Fullscreen element should not share styles with it's siblings.
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-01-15  Charles Wei  <charles.wei@torchmobile.com.cn>
2
3         Fullscreen element should not share styles with it's siblings.
4         https://bugs.webkit.org/show_bug.cgi?id=106888
5
6         Reviewed by George Staikos.
7
8         Test: fullscreen/full-screen-no-style-sharing.html
9
10         * css/StyleResolver.cpp:
11         (WebCore::StyleResolver::canShareStyleWithElement):
12
13 2013-01-15  Tim Horton  <timothy_horton@apple.com>
14
15         Clamp TileCache visibleRect to WKView's visibleRect
16         https://bugs.webkit.org/show_bug.cgi?id=106601
17         <rdar://problem/12843164>
18
19         Reviewed by Simon Fraser.
20
21         * platform/graphics/TiledBacking.h:
22         (TiledBacking): Add setExposedRect and setClipsToExposedRect.
23         * platform/graphics/ca/mac/TileCache.h:
24         (TileCache): Add setExposedRect, setClipsToExposedRect, and storage for their respective values.
25         * platform/graphics/ca/mac/TileCache.mm:
26         (WebCore::TileCache::TileCache): Initialize m_clipsToExposedRect to false.
27         (WebCore::TileCache::setExposedRect): Update exposedRect and revalidate tiles.
28         (WebCore::TileCache::setClipsToExposedRect): Update clipsToExposedRect and revalidate tiles;
29         if we're going from unclipped to clipped, we already have tiles, so we can skip tile revalidation.
30         (WebCore::TileCache::computeTileCoverageRect): Intersect exisiting visible rect with
31         exposed rect to get the visible rect we actually care about.
32         (WebCore::TileCache::revalidateTiles): Ditto.
33         * rendering/RenderLayerCompositor.cpp:
34         (WebCore::RenderLayerCompositor::requiresOverhangAreasLayer): Don't create an overhang layer if the frame isn't scrollable.
35         (WebCore::RenderLayerCompositor::requiresContentShadowLayer): Don't create a shadow layer if the frame isn't scrollable.
36
37 2013-01-15  Roger Fong  <roger_fong@apple.com>
38
39         Get rid of a straggling dependency on SafariThemeConstants in RenderThemeWin.
40
41         Rubberstamped by Timothy Horton.
42
43         * rendering/RenderThemeWin.cpp:
44         (WebCore::RenderThemeWin::supportsClosedCaptioning):
45         * rendering/RenderThemeWin.h:
46
47 2013-01-15  Hayato Ito  <hayato@chromium.org>
48
49         Group all request parameters which are used to match CSS Rules into a parameter object.
50         https://bugs.webkit.org/show_bug.cgi?id=106879
51
52         Reviewed by Dimitri Glazkov.
53
54         Introduces a MatchRequest which groups all request parameters to match CSS rules.
55
56         Factoring, no change in behavior.
57
58         * css/StyleResolver.cpp:
59         (WebCore::StyleResolver::collectMatchingRules):
60         (WebCore::StyleResolver::collectMatchingRulesForRegion):
61         (WebCore::StyleResolver::matchScopedAuthorRules):
62         (WebCore::StyleResolver::matchHostRules):
63         (WebCore::StyleResolver::matchAuthorRules):
64         (WebCore::StyleResolver::matchUserRules):
65         (WebCore::StyleResolver::matchUARules):
66         (WebCore::StyleResolver::collectMatchingRulesForList):
67         (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
68         * css/StyleResolver.h:
69         (WebCore::StyleResolver::MatchRequest::MatchRequest):
70         (MatchRequest):
71         (StyleResolver):
72
73 2013-01-15  Simon Fraser  <simon.fraser@apple.com>
74
75         Add the ability for a RenderLayerBacking to have a layer that renders backgrounds.
76         https://bugs.webkit.org/show_bug.cgi?id=106961
77
78         Reviewed by Dean Jackson.
79
80         In some cases we need a compositing layer to render its background into
81         a separate GraphicsLayer (e.g. for background-attachment: fixed in some scenarios).
82         
83         To support this, have RenderLayer optionally create a GraphicsLayer for the background.
84         Currently nothing causes background layers to get created.
85         
86         Having a background layer requires that we add an additional containment layer
87         which encloses the background, primary and foreground layers, since the 
88         background layer has to be composited behind the primary content. This containment
89         layer gets any transform, including page scale on the RenderView's layer.
90         
91         No new tests; there's no way to create a background layer yet. This was tested during
92         development by forcing a background layer.
93
94         * rendering/RenderLayerBacking.cpp:
95         (WebCore::RenderLayerBacking::updateDebugIndicators): Show borders on both new layers
96         and repaint counters on the background layer.
97         (WebCore::RenderLayerBacking::destroyGraphicsLayers): Clear the two new layers.
98         (WebCore::RenderLayerBacking::updateTransform): If we have a containment layer, it
99         takes the transform (and clear the transform on the primary layer).
100         (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Make the background
101         layer if we need one (currently never).
102         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Position and size
103         the containment layer if we have one. If we do, then the m_graphicsLayer will
104         be at 0,0 in that containment layer. The background layer is also sized similarly
105         to the foreground layer.
106         (WebCore::RenderLayerBacking::updateInternalHierarchy): Adapt to the new hierarchy
107         with containment and background layers if we have them.
108         (WebCore::RenderLayerBacking::updateBackgroundLayer): Here's where we create the background
109         and containment layers.
110         (WebCore::RenderLayerBacking::childForSuperlayers): If we have a containment layer, that's
111         what gets attached to our parent.
112         (WebCore::RenderLayerBacking::getCurrentTransform): The containment layer gets the transform
113         if we have one, so check that here.
114         (WebCore::RenderLayerBacking::backingStoreMemoryEstimate):
115         (WebCore::RenderLayerBacking::reportMemoryUsage):
116         * rendering/RenderLayerBacking.h:
117         (RenderLayerBacking):
118         * rendering/RenderLayerCompositor.cpp:
119         (WebCore::RenderLayerCompositor::deviceOrPageScaleFactorChanged): We need to start notifying
120         about page/device scale on the containment layer if there is one (since it takes page scale), so
121         use childForSuperlayers() rather than just getting the primary layer.
122
123 2013-01-15  Pan Deng  <pan.deng@intel.com>
124
125         Remove Key3 and Challenge Response fields from Websocket implementation and Web Inspector.
126         https://bugs.webkit.org/show_bug.cgi?id=105738.
127
128         Reviewed by Kent Tamura.
129
130         Key3 and Challenge Response fields were obsoleted in IETF websocket spec, this patch removes related
131         code in Websocket and Web Inspector
132
133         No new tests as no new functionality added.
134
135         * Modules/websockets/WebSocketHandshakeRequest.cpp: remove Key3 related code
136         * Modules/websockets/WebSocketHandshakeRequest.h: 
137         (WebSocketHandshakeRequest):
138         * Modules/websockets/WebSocketHandshakeResponse.cpp: remove Challenge response related code
139         * Modules/websockets/WebSocketHandshakeResponse.h: 
140         (WebSocketHandshakeResponse):
141         * inspector/Inspector.json: remove Key3 and Challenge response fields definition
142         * inspector/InspectorResourceAgent.cpp: remove Key3 and Challenge response field from inspector agent
143         (WebCore):
144         (WebCore::InspectorResourceAgent::willSendWebSocketHandshakeRequest):
145         (WebCore::InspectorResourceAgent::didReceiveWebSocketHandshakeResponse):
146         * inspector/front-end/NetworkManager.js: 
147         (WebInspector.NetworkDispatcher.prototype.webSocketWillSendHandshakeRequest): 
148         (WebInspector.NetworkDispatcher.prototype.webSocketHandshakeResponseReceived): 
149         * inspector/front-end/RequestHeadersView.js: remove Key3 and Challenge response item from front-end.
150         (WebInspector.RequestHeadersView.prototype._refreshRequestHeaders):
151         (WebInspector.RequestHeadersView.prototype._refreshResponseHeaders):
152         (WebInspector.RequestHeadersView.prototype._refreshHeaders):
153
154 2013-01-15  Antti Koivisto  <antti@apple.com>
155
156         ASSERT(!m_queue.killed() && m_threadID) hit in StorageThread::scheduleTask on low memory warning
157         https://bugs.webkit.org/show_bug.cgi?id=106960
158
159         Reviewed by Mark Rowe.
160
161         We were scheduling a memory clearing task to terminated StorageThreads.
162         
163         Remove thread from the active thread list when terminate is scheduled. Add when thread is started.
164
165         * storage/StorageThread.cpp:
166         (WebCore::activeStorageThreads):
167         (WebCore::StorageThread::StorageThread):
168         (WebCore::StorageThread::~StorageThread):
169         (WebCore::StorageThread::start):
170         (WebCore::StorageThread::terminate):
171         (WebCore::StorageThread::releaseFastMallocFreeMemoryInAllThreads):
172
173 2013-01-15  Luke Macpherson   <macpherson@chromium.org>
174
175         Don't do indiscriminate cast & call in StylePropertySet::PropertyReference::cssName() on release builds.
176         https://bugs.webkit.org/show_bug.cgi?id=106867
177
178         Reviewed by Darin Adler.
179
180         Check CSSValue::isVariableValue() before casting to CSSVariableValue.
181
182         Covered by existing variables tests.
183
184         * css/StylePropertySet.cpp:
185         (WebCore::StylePropertySet::PropertyReference::cssName):
186
187 2013-01-15  Emil A Eklund  <eae@chromium.org>
188
189         [Sub pixel layout] RTL cells with padding wraps
190         https://bugs.webkit.org/show_bug.cgi?id=106843
191
192         Reviewed by Levi Weintraub.
193         
194         At certain zoom levels table cells with padding wraps for rtl
195         content.
196
197         Test: fast/sub-pixel/table-rtl-padding.html
198
199         * rendering/RenderTable.h: Override paddingStart/End to return
200         integer values for padding as we do elsewhere in the table code.
201
202 2013-01-15  Dominic Mazzoni  <dmazzoni@google.com>
203
204         Use-after-free in AXObjectCache::notificationPostTimerFired
205         https://bugs.webkit.org/show_bug.cgi?id=106106
206
207         Reviewed by Ryosuke Niwa.
208
209         Fixes a crash that occurs when a Node is adopted by another document,
210         in particular one that isn't part of the page, and then deleted,
211         which wasn't triggering the code that removed the Node from
212         AXObjectCache. Now, a Node is removed from the AXObjectCache whenever
213         its Document changes.
214
215         Test: accessibility/crash-adopt-node-from-new-document.html
216
217         * dom/Node.cpp:
218         (WebCore::Node::didMoveToNewDocument):
219
220 2013-01-15  Arnaud Renevier  <a.renevier@sisa.samsung.com>
221
222         Add Canvas blend modes to Cairo
223         https://bugs.webkit.org/show_bug.cgi?id=105074
224
225         Reviewed by Martin Robinson.
226
227         Blend mode implementation for cairo. If BlendMode is normal, use
228         CompositeOperator; otherwise, consider CompositeOperator is
229         source-over.
230
231         Add toCairoOperator(BlendMode) to translate BlendMode to matching
232         cairo_operator_t. 
233
234         * platform/graphics/cairo/BitmapImageCairo.cpp:
235         (WebCore::BitmapImage::draw):
236         * platform/graphics/cairo/CairoUtilities.cpp:
237         (WebCore::toCairoOperator):
238         * platform/graphics/cairo/CairoUtilities.h:
239         (WebCore):
240         * platform/graphics/cairo/GraphicsContextCairo.cpp:
241         (WebCore::GraphicsContext::setPlatformCompositeOperation):
242
243 2013-01-15  Dima Gorbik  <dgorbik@apple.com>
244         Implement matching by the voice attribute for WebVTT ::cue pseudo element
245         https://bugs.webkit.org/show_bug.cgi?id=106762
246
247         Reviewed by Eric Carlson.
248
249         Implemented matching cue WebVTT elements by a voice attribute by adding a WebVTT specific voice attribute.
250         For DOM trees title attribute is used instead as this is required by specs.
251
252         * html/track/TextTrackCue.cpp:
253         (WebCore::TextTrackCue::copyWebVTTNodeToDOMTree): set a title argument instead of a voice attribute for the DOM tree.
254         * html/track/TextTrackCue.h:
255         (WebCore::TextTrackCue::voiceAttributeName):
256         * html/track/WebVTTParser.cpp:
257         (WebCore::WebVTTParser::constructTreeFromToken):
258
259 2013-01-15  Simon Fraser  <simon.fraser@apple.com>
260
261         Some ScrollingCoördinator-related cleanup in RenderLayerBacking
262         https://bugs.webkit.org/show_bug.cgi?id=106950
263
264         Reviewed by Beth Dakin.
265         
266         Wrap up code that gets the ScrollingCoordinator into a utility function.
267         Pull code out of updateGraphicsLayerGeometry() that registers layers with
268         the ScrollingCoordinator, for cleanliness.
269
270         * rendering/RenderLayerBacking.cpp:
271         (WebCore::scrollingCoordinatorFromLayer):
272         (WebCore::RenderLayerBacking::adjustTileCacheCoverage):
273         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
274         (WebCore::RenderLayerBacking::registerScrollingLayers):
275         (WebCore::RenderLayerBacking::attachToScrollingCoordinatorWithParent):
276         (WebCore::RenderLayerBacking::detachFromScrollingCoordinator):
277         * rendering/RenderLayerBacking.h:
278         (RenderLayerBacking):
279
280 2013-01-15  Beth Dakin  <bdakin@apple.com>
281
282         https://bugs.webkit.org/show_bug.cgi?id=106940
283         Suspend CSS animations for background tabs
284
285         Reviewed by Simon Fraser.
286
287         * page/Page.cpp:
288         (WebCore::Page::setVisibilityState):
289
290 2013-01-15  Levi Weintraub  <leviw@chromium.org>
291
292         Unreviewed, rolling out r139790.
293         http://trac.webkit.org/changeset/139790
294         https://bugs.webkit.org/show_bug.cgi?id=106948
295
296         The patch is failing its own test.
297
298         * dom/ContainerNode.cpp:
299         (WebCore::ContainerNode::parserInsertBefore):
300         (WebCore::ContainerNode::parserRemoveChild):
301         (WebCore::ContainerNode::parserAppendChild):
302         * html/parser/HTMLScriptRunner.cpp:
303         (WebCore::HTMLScriptRunner::executeParsingBlockingScript):
304         (WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
305         (WebCore::HTMLScriptRunner::execute):
306         (WebCore::HTMLScriptRunner::executeScriptsWaitingForLoad):
307         (WebCore::HTMLScriptRunner::executeScriptsWaitingForStylesheets):
308         (WebCore::HTMLScriptRunner::executeScriptsWaitingForParsing):
309         (WebCore::HTMLScriptRunner::runScript):
310
311 2013-01-15  Emil A Eklund  <eae@chromium.org>
312
313         REGRESSION (r121599): incorrect border scaling when zoomed
314         https://bugs.webkit.org/show_bug.cgi?id=106944
315
316         Reviewed by Levi Weintraub.
317         
318         Fix bug in ApplyPropertyComputeLength::applyValue where zooming
319         of non-pixel values was incorrect.
320
321         Test: fast/sub-pixel/zoomed-em-border.html
322
323         * css/StyleBuilder.cpp:
324         (WebCore::ApplyPropertyComputeLength::applyValue):
325
326 2013-01-15  Simon Fraser  <simon.fraser@apple.com>
327
328         Rename RenderLayerBacking's m_containmentLayer to m_childContainmentLayer to better describe its purpose
329         https://bugs.webkit.org/show_bug.cgi?id=106947
330
331         Reviewed by Dean Jackson.
332         
333         Simple rename of m_containmentLayer to m_childContainmentLayer. I'll
334         be adding another "container" layer for background layers shortly,
335         and wanted to improve clarity.
336
337         * rendering/RenderLayerBacking.cpp:
338         (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
339         (WebCore::RenderLayerBacking::destroyGraphicsLayers):
340         (WebCore::RenderLayerBacking::updateInternalHierarchy):
341         (WebCore::RenderLayerBacking::updateClippingLayers):
342         (WebCore::RenderLayerBacking::parentForSublayers):
343         (WebCore::RenderLayerBacking::backingStoreMemoryEstimate):
344         (WebCore::RenderLayerBacking::reportMemoryUsage):
345         * rendering/RenderLayerBacking.h:
346         (WebCore::RenderLayerBacking::hasClippingLayer):
347         (WebCore::RenderLayerBacking::clippingLayer):
348         (WebCore::RenderLayerBacking::hasTileCacheFlatteningLayer):
349         (WebCore::RenderLayerBacking::tileCacheFlatteningLayer):
350         (RenderLayerBacking):
351
352 2013-01-15  Enrica Casucci  <enrica@apple.com>
353
354         Add a new set of WebKit2 APIs for text search and
355         search results management.
356         https://bugs.webkit.org/show_bug.cgi?id=106834.
357         <rdar://problem/12597159>
358
359         Reviewed by Simon Fraser.
360         
361         Adding new API to perform text search in WebKit2 without using
362         the stock UI. The new interface provides all the information
363         necessary to write a custom UI for search.
364
365         Added new TextWebKitAPI test.
366
367         * WebCore.exp.in: Added new exported methods.
368         * editing/Editor.cpp:
369         (WebCore::Editor::countMatchesForText): Added new parameter to store
370         all the ranges relative to the matches found.
371         * editing/Editor.h: Modified the interface of countMatchesForText and removed
372         the other definition of countMatchesForText with a different signature.
373         * page/Page.cpp:
374         (WebCore::Page::findStringMatchingRanges): Added.
375         (WebCore::Page::markAllMatchesForText): Changed to use the new unified
376         countMatchesForText.
377         * page/Page.h:
378
379 2013-01-15  Alexandru Chiculita  <achicu@adobe.com>
380
381         [Compositor] Do not disable overlap testing for layers in front of 3D transformed layers
382         https://bugs.webkit.org/show_bug.cgi?id=106721
383
384         Reviewed by Simon Fraser.
385
386         RenderLayerCompositor is checking for overlapping layers and tries to figure out all the layers that need
387         to be drawn using composited layers. It doesn't know anything about animations yet and it only works with "start"
388         and "end" states. However, it knows that animations might happen, so in that cases it will avoid to do any optimizations,
389         as layers might get moved.
390
391         The overlapping layers optimization was also disabled for 3D layers. However, 3D layers can be computed in WebKit and 
392         can be checked for overlap using just the "start"/"stop" states. In this patch I enable that optimization for 3D layers, too.
393         The result is that more layers are drawn in software mode now, so I've updated a couple of test results.
394
395         Tests: compositing/layer-creation/overlap-transformed-3d.html
396                compositing/layer-creation/overlap-transformed-preserved-3d.html
397
398         * rendering/RenderLayerCompositor.cpp:
399         (WebCore::RenderLayerCompositor::computeCompositingRequirements):
400
401 2013-01-15  Elliott Sprehn  <esprehn@gmail.com>
402
403         HTML parser should queue MutationRecords for its operations
404         https://bugs.webkit.org/show_bug.cgi?id=89351
405
406         Reviewed by Eric Seidel.
407
408         Generate mutation records inside the parser. This is done by using a
409         ChildListMutationScope in the ContainerNode::parser* methods and then
410         adding delivery before each <script> element would be processed by
411         the parser.
412
413         Test: fast/dom/MutationObserver/parser-mutations.html
414
415         * dom/ContainerNode.cpp:
416         (WebCore::ContainerNode::parserInsertBefore):
417         (WebCore::ContainerNode::parserRemoveChild):
418         (WebCore::ContainerNode::parserAppendChild):
419         * html/parser/HTMLScriptRunner.cpp:
420         (WebCore::HTMLScriptRunner::executeParsingBlockingScript):
421         (WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
422         (WebCore::HTMLScriptRunner::execute):
423         (WebCore::HTMLScriptRunner::executeScriptsWaitingForLoad):
424         (WebCore::HTMLScriptRunner::executeScriptsWaitingForStylesheets):
425         (WebCore::HTMLScriptRunner::executeScriptsWaitingForParsing):
426         (WebCore::HTMLScriptRunner::runScript):
427
428 2013-01-15  Ojan Vafai  <ojan@chromium.org>
429
430         Unreviewed, rolling out r139782.
431         http://trac.webkit.org/changeset/139782
432         https://bugs.webkit.org/show_bug.cgi?id=106939
433
434         Broke preferred widths on list markers.
435
436         * rendering/RenderListMarker.cpp:
437         (WebCore::RenderListMarker::layout):
438         (WebCore::RenderListMarker::computePreferredLogicalWidths):
439
440 2013-01-15  Elliott Sprehn  <esprehn@chromium.org>
441
442         Heap-use-after-free in WebCore::RenderObject::willBeRemovedFromTree
443         https://bugs.webkit.org/show_bug.cgi?id=106384
444
445         Reviewed by Abhishek Arya.
446
447         Always walk up from beforeChild until the parent() is the owner of the
448         child list, otherwise we can end up in situations where
449         newChild->parent() == owner but newChild->nextSibling()->parent() != owner
450         which is a recipe for security bugs. Previously we only walked up through
451         anonymous blocks, but missed anonymous inline blocks like those generated
452         by <ruby>.
453
454         Test: fast/css-generated-content/bug-106384.html
455
456         * rendering/RenderObjectChildList.cpp:
457         (WebCore::RenderObjectChildList::insertChildNode):
458
459 2013-01-15  Ojan Vafai  <ojan@chromium.org>
460
461         Remove bogus assert added in http://trac.webkit.org/changeset/139772.
462         * rendering/RenderBox.h:
463         (WebCore::RenderBox::computePreferredLogicalWidths):
464
465 2013-01-15  Ojan Vafai  <ojan@chromium.org>
466
467         Moving updating of margins from computePreferredLogicalWidths to layout
468         https://bugs.webkit.org/show_bug.cgi?id=106939
469
470         Reviewed by Levi Weintraub.
471
472         The margins don't affect it's preferred width. We should update them
473         during layout like we do in other classes (e.g. RenderBlock).
474
475         * rendering/RenderListMarker.cpp:
476         (WebCore::RenderListMarker::layout):
477         (WebCore::RenderListMarker::computePreferredLogicalWidths):
478
479 2013-01-15  Adam Barth  <abarth@webkit.org>
480
481         Generalize DocumentWeakReference into WTF::WeakPtr
482         https://bugs.webkit.org/show_bug.cgi?id=106854
483
484         Reviewed by Darin Adler.
485
486         This patch replaces DocumentWeakReference with WeakPtr. There should be
487         no change in behavior.
488
489         * dom/Document.cpp:
490         (WebCore):
491         (WebCore::Document::Document):
492         (WebCore::Document::~Document):
493         (WebCore::PerformTaskContext::PerformTaskContext):
494         (PerformTaskContext):
495         (WebCore::Document::didReceiveTask):
496         (WebCore::Document::postTask):
497         (WebCore::Document::reportMemoryUsage):
498         * dom/Document.h:
499         (WebCore):
500         (Document):
501
502 2013-01-15  James Simonsen  <simonjam@chromium.org>
503
504         [User Timing] INVALID_ACCESS_ERR should be thrown if measuring from a 0 Nav Timing value
505         https://bugs.webkit.org/show_bug.cgi?id=106935
506
507         Reviewed by Tony Gentilcore.
508
509         Test: http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure_exception.html
510
511         * page/PerformanceUserTiming.cpp:
512         (WebCore::UserTiming::findExistingMarkStartTime):
513
514 2013-01-15  Tommy Widenflycht  <tommyw@google.com>
515
516         MediaStream API: Rename the [add|remove]Track callbacks to [add|remove]RemoteTrack for clarity
517         https://bugs.webkit.org/show_bug.cgi?id=106791
518
519         Reviewed by Adam Barth.
520
521         No tests needed.
522
523         * Modules/mediastream/MediaStream.cpp:
524         (WebCore::MediaStream::addRemoteTrack):
525         (WebCore::MediaStream::removeRemoteTrack):
526         * Modules/mediastream/MediaStream.h:
527         * platform/mediastream/MediaStreamCenter.cpp:
528         (WebCore::MediaStreamCenter::addMediaStreamTrack):
529         (WebCore::MediaStreamCenter::removeMediaStreamTrack):
530         * platform/mediastream/MediaStreamDescriptor.h:
531         (MediaStreamDescriptorClient):
532
533 2013-01-15  Mark Pilgrim  <pilgrim@chromium.org>
534
535         [Chromium] Move SocketStreamHandle and SocketStreamHandleInternal to WebCore/platform
536         https://bugs.webkit.org/show_bug.cgi?id=106899
537
538         Reviewed by Adam Barth.
539
540         Part of a larger refactoring series; see tracking bug 106829.
541
542         * WebCore.gypi:
543         * platform/network/chromium/SocketStreamHandle.cpp: Copied from Source/WebKit/chromium/src/SocketStreamHandle.cpp.
544         (WebCore::SocketStreamHandleInternal::send):
545         (WebCore::SocketStreamHandleInternal::didOpenStream):
546         (WebCore::SocketStreamHandleInternal::didSendData):
547         (WebCore::SocketStreamHandleInternal::didReceiveData):
548         (WebCore::SocketStreamHandleInternal::didClose):
549         (WebCore::SocketStreamHandleInternal::didFail):
550         * platform/network/chromium/SocketStreamHandleInternal.h: Copied from Source/WebKit/chromium/src/SocketStreamHandleInternal.h.
551
552 2013-01-15  Ojan Vafai  <ojan@chromium.org>
553
554         RenderText::computePreferredLogicalWidths does not need to be public
555         https://bugs.webkit.org/show_bug.cgi?id=106934
556
557         Reviewed by Levi Weintraub.
558
559         * rendering/RenderCounter.h:
560         Add OVERRIDE keyword.
561         * rendering/RenderText.h:
562         Make protected.
563
564 2013-01-15  Ojan Vafai  <ojan@chromium.org>
565
566         Cleanup visibility of some computePreferredLogicalWidths calls
567         https://bugs.webkit.org/show_bug.cgi?id=106933
568
569         Reviewed by Levi Weintraub.
570
571         No need for these to be public.
572
573         * rendering/RenderBox.h:
574         (WebCore::RenderBox::computePreferredLogicalWidths):
575         This should never get called in practice. Add an assert to that effect.
576
577         * rendering/RenderGrid.h:
578         (RenderGrid):
579         * rendering/RenderReplica.h:
580         (RenderReplica):
581         * rendering/RenderScrollbarPart.h:
582         (RenderScrollbarPart):
583
584 2013-01-13  Dirk Schulze  <dschulze@adobe.com>
585
586         [CSS Filters] brightness() function doesn't work as specified
587         https://bugs.webkit.org/show_bug.cgi?id=106674
588
589         Reviewed by Dean Jackson.
590
591         The brightness filter implementation modified the intercept instead of the slope on
592         the feComponentTransfer function. The passed amount acts as multiplier for each
593         color chanel now.
594
595         Existing tests cover the changes and were updated.
596
597         * css/CSSParser.cpp:
598         (WebCore::CSSParser::parseBuiltinFilterArguments):
599         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
600         (PlatformCALayer::setFilters):
601         * rendering/FilterEffectRenderer.cpp:
602         (WebCore::FilterEffectRenderer::build):
603
604 2013-01-15  Zan Dobersek  <zandobersek@gmail.com>
605
606         [GTK] Enable Performance Timeline, Resource Timing, Navigation Timing features
607         https://bugs.webkit.org/show_bug.cgi?id=106197
608
609         Reviewed by Martin Robinson.
610
611         No new tests - existing layout tests are being unskipped, only a few fail
612         (but their failures are of cross-platform nature).
613
614         * GNUmakefile.features.am.in: Add feature defines for all three features.
615         They are disabled by default for now.
616         * GNUmakefile.list.am: Add missing build targets.
617         * bindings/gobject/GNUmakefile.am: Ditto.
618         * bindings/js/JSPerformanceEntryCustom.cpp: Added the necessary custom bindings.
619         Mimics the custom V8 bindings.
620         (WebCore):
621         (WebCore::toJS):
622
623 2013-01-15  Alexis Menard  <alexis@webkit.org>
624
625         Unprefixed transitionend event doesn't seem to be implemented, which breaks many sites
626         https://bugs.webkit.org/show_bug.cgi?id=105647
627
628         Reviewed by Julien Chaffraix.
629
630         Add support for transitionend event delivery as part as the unprefixing
631         work on CSS Transitions. This patch adds some code in EventTarget to
632         figure out if the current event to dispatch has a prefixed version or
633         not. Then from the list of listeners we deduce which event should be delivered
634         (prefixed or unprefixed).
635
636         In the case of the CSS Transitions, WebKit will now behave as follow :
637         if an event listener is attached to the prefixed version of the
638         transition end event then only the prefixed event will be send.
639         If an event listener is attached to the unprefixed version
640         of the transition end event then only the unprefixed event will be
641         send. If there are event listeners on both unprefixed and prefixed
642         events then only the unprefixed event will be send.
643
644         The behavior was discussed here :
645         http://lists.webkit.org/pipermail/webkit-dev/2013-January/023301.html.
646
647         Tests: transitions/transition-end-event-unprefixed-01.html
648                transitions/transition-end-event-unprefixed-02.html
649
650         * dom/Document.cpp:
651         (WebCore::Document::addListenerTypeIfNeeded): Register the prefixed
652         listener too as transitionend listeners so that we properly dispatch
653         events for them.
654         * dom/EventNames.h:
655         (WebCore): Add the new transitionend name.
656         * dom/EventTarget.cpp:
657         (WebCore::createMatchingPrefixedEvent):
658         (WebCore::prefixedType):
659         (WebCore::EventTarget::fireEventListeners): Find out if somebody is
660         listening for unprefixed events, if so we always send the unprefixed
661         event, if not then we create a prefixed event and send it.
662         * page/animation/AnimationController.cpp:
663         (WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle):
664         * page/animation/ImplicitAnimation.cpp:
665         (WebCore::ImplicitAnimation::sendTransitionEvent): Always create by
666         default unprefixed events.
667
668 2013-01-15  Tony Gentilcore  <tonyg@chromium.org>
669
670         Make AtomicMarkupTokenBase use a bare UChar* for external characters
671         https://bugs.webkit.org/show_bug.cgi?id=106919
672
673         Reviewed by Eric Seidel.
674
675         This allows an arbitrary backing for external characters which is necessary for the threaded HTML parser.
676
677         No new tests because no new functionality.
678
679         * html/parser/HTMLTreeBuilder.cpp:
680         (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::ExternalCharacterTokenBuffer):
681         (WebCore::HTMLTreeBuilder::processTokenInForeignContent):
682         * xml/parser/MarkupTokenBase.h:
683         (WebCore::AtomicMarkupTokenBase::AtomicMarkupTokenBase):
684         (WebCore::AtomicMarkupTokenBase::characters):
685         (AtomicMarkupTokenBase):
686         (WebCore::AtomicMarkupTokenBase::charactersLength):
687         (WebCore::AtomicMarkupTokenBase::clearExternalCharacters):
688         * xml/parser/XMLTreeBuilder.cpp:
689         (WebCore::XMLTreeBuilder::processCharacter):
690
691 2013-01-15  Arko Saha  <arko@motorola.com>
692
693         Microdata: propertiesCollection[name] should return undefined if item doesn't have a property named 'name'
694         https://bugs.webkit.org/show_bug.cgi?id=106849
695
696         Reviewed by Kentaro Hara.
697
698         We should return undefined if hasNamedItem() is false.
699
700         Test: fast/dom/MicroData/properties-collection-namedgetter-with-invalid-name.html
701
702         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
703         (WebCore::V8HTMLCollection::namedPropertyGetter):
704
705 2013-01-15  Michael Pruett  <michael@68k.org>
706
707         [GTK] Fix build after r139665
708         https://bugs.webkit.org/show_bug.cgi?id=106917
709
710         Reviewed by Dean Jackson.
711
712         * GNUmakefile.list.am:
713
714 2013-01-15  Antti Koivisto  <antti@apple.com>
715
716         Move parent pointer from TreeShared to subclass
717         https://bugs.webkit.org/show_bug.cgi?id=106910
718
719         Reviewed by Darin Adler.
720
721         This simplifies both TreeShared and clients, and makes code dealing with parents more understandable in general.
722
723         * dom/Document.h:
724         (WebCore::Node::Node):
725         * dom/Node.cpp:
726         (WebCore::Node::reportMemoryUsage):
727         * dom/Node.h:
728     
729             Add m_parentOrHostNode variable (matching the accessor names).
730
731         (Node):
732         (WebCore::Node::hasTreeSharedParent):
733         (WebCore::Node::parentNode):
734         (WebCore::Node::setParentOrHostNode):
735         (WebCore::Node::parentOrHostNode):
736         * platform/TreeShared.h:
737         (WebCore):
738         (WebCore::TreeShared::TreeShared):
739         (WebCore::TreeShared::deref):
740         
741             Call subclass hasTreeSharedParent() to figure out if it is time to delete.
742
743         (TreeShared):
744
745             Remove parent pointer and accessors.
746             Remove ParentNodeType template parameter.
747             Remove now unnecessay reportMemoryUsage().
748
749         (WebCore::adopted):
750         * svg/SVGElementInstance.cpp:
751         (WebCore::SVGElementInstance::SVGElementInstance):
752         * svg/SVGElementInstance.h:
753         
754             Add m_parentInstance variable.
755
756         (WebCore::SVGElementInstance::setParentOrHostNode):
757         (WebCore::SVGElementInstance::parentNode):
758         (SVGElementInstance):
759         (WebCore::SVGElementInstance::hasTreeSharedParent):
760
761 2013-01-15  Simon Fraser  <simon.fraser@apple.com>
762
763         Allow tiled WKViews to have transparent backgrounds
764         https://bugs.webkit.org/show_bug.cgi?id=106400
765
766         Reviewed by Anders Carlsson.
767         
768         When WKViews were set to have transparent backgrounds, they still
769         obscured content behind the view, for several reasons.
770         
771         First, when in tiled scrolling mode, WKView set the background
772         of its layer to opaque white. Fix by using the clearColor (effectively
773         removing the background color) if the view has a non-opaque background.
774         
775         Second, RenderLayerBacking just looked at FrameViews's isTransparent()
776         when deciding to make TileCache tiles non-opaque, but it also needs to
777         consider FrameViews with a non-opaque base background color. The
778         same logic was necessary to avoid setting an opaque white background
779         color on the TileCache layer.
780         
781         Finally, for views with non-opaque backgrounds, we don't want to display
782         linen, so RenderLayerCompositor::requiresOverhangAreasLayer() was changed
783         to return false in that case.
784         
785         View transparency is not testable in layout tests.
786
787         * page/FrameView.cpp:
788         (WebCore::FrameView::hasOpaqueBackground):
789         * page/FrameView.h:
790         * rendering/RenderLayerBacking.cpp:
791         (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
792         (WebCore::RenderLayerBacking::updateBackgroundColor):
793         * rendering/RenderLayerCompositor.cpp:
794         (WebCore::RenderLayerCompositor::requiresOverhangAreasLayer):
795
796 2013-01-15  Ojan Vafai  <ojan@chromium.org>
797
798         RenderView does not need to override computePreferredLogicalWidth
799         https://bugs.webkit.org/show_bug.cgi?id=106852
800
801         Reviewed by Levi Weintraub.
802
803         Calling minPreferredLogicalWidth calls computePreferredLogicalWidth,
804         which happens a few lines later in layoutWithFlattening. No need
805         to call it explicitly.
806
807         * rendering/RenderFrameBase.cpp:
808         (WebCore::RenderFrameBase::layoutWithFlattening):
809         * rendering/RenderView.cpp:
810         * rendering/RenderView.h:
811
812 2013-01-15  Vsevolod Vlasov  <vsevik@chromium.org>
813
814         Unreviewed, remove file that was accidentally added to the wrong patch.
815
816         * inspector/front-end/FileSystemWorkspaceProvider.js: Removed.
817
818 2013-01-15  Florin Malita  <fmalita@chromium.org>
819
820         [Chromium] Incorrect opaque region tracking for PlatformContextSkia::drawRRect
821         https://bugs.webkit.org/show_bug.cgi?id=106898
822
823         Reviewed by Stephen White.
824
825         Since drawRRect() doesn't cover the whole bounding rect, it needs to pass a didDrawBounded
826         notification down to the opaque region tracker (instead of didDrawRect as it currently
827         does).
828
829         Test: platform/chromium/compositing/rounded-corners.html
830
831         * platform/graphics/skia/PlatformContextSkia.h:
832         (WebCore::PlatformContextSkia::drawRRect):
833
834 2013-01-15  Allan Sandfeld Jensen  <allan.jensen@digia.com>
835
836         [Qt] WebGL does not require accelerated compositing
837         https://bugs.webkit.org/show_bug.cgi?id=106892
838
839         Reviewed by Jocelyn Turcotte.
840
841         Allow the creation of WebGL canvas even when accelerated compositing is not enabled.
842
843         * html/HTMLCanvasElement.cpp:
844         (WebCore::HTMLCanvasElement::getContext):
845
846 2013-01-15  Andrey Lushnikov  <lushnikov@chromium.org>
847
848         Web Inspector: refactor DefaultTextEditor's paintLine method
849         https://bugs.webkit.org/show_bug.cgi?id=106893
850
851         Reviewed by Pavel Feldman.
852
853         Move render ranges functionality out of paintLine method into separate subroutine.
854
855         No new tests: no change in behaviour.
856
857         * inspector/front-end/DefaultTextEditor.js:
858         (WebInspector.TextEditorMainPanel.prototype._renderRanges): Added.
859         (WebInspector.TextEditorMainPanel.prototype._paintLine):
860         (WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
861
862 2013-01-15  Elliott Sprehn  <esprehn@gmail.com>
863
864         display:inline's hover behavior is not applied to ::before and ::after pseudo elements
865         https://bugs.webkit.org/show_bug.cgi?id=91723
866
867         Reviewed by Eric Seidel.
868
869         When hovering over the anonymous text renderers inside :before and :after
870         we would correctly detect a hit in InlineTextBox::nodeAtPoint, but would
871         then fail to set the correct node for the hit test because in
872         RenderObject::updateHitTestResult node() is null. Instead we should walk
873         up the render tree to the PseudoElement and treat it as if we hit that.
874
875         Test: fast/css-generated-content/hover-inline.html
876
877         * rendering/RenderObject.cpp:
878         (WebCore::RenderObject::updateHitTestResult):
879
880 2013-01-15  Zeno Albisser  <zeno@webkit.org>
881
882         GraphicsSurface: Canvas with WebGL content is painted off by one pixel
883         https://bugs.webkit.org/show_bug.cgi?id=106446
884
885         When painting to TextureMapper the provided targetRect is in contents
886         coordinate system. This leads to an off by one pixel error when painting
887         outlines of 1px.
888         This needs to be taken into account in the transformation matrix
889         and in the TextureMapperGL::drawTexture call.
890
891         Test: fast/canvas/webgl/webgl-composite-modes.html
892
893         Reviewed by Noam Rosenthal.
894
895         * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
896         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
897         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
898         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
899         * platform/graphics/surfaces/win/GraphicsSurfaceWin.cpp:
900         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
901
902 2013-01-14  Kentaro Hara  <haraken@chromium.org>
903
904         [V8] Make an Isolate parameter mandatory in SerializedScriptValue methods
905         https://bugs.webkit.org/show_bug.cgi?id=106800
906
907         Reviewed by Adam Barth.
908
909         SerializedScriptValue methods are used by both V8 bindings
910         and WebCore. So they should support both an Isolate-version
911         method and an non-Isolate version method.
912
913         There are two ways to accomplish that:
914
915         [1] Use an optional Isolate parameter.
916
917         [2] Implement two versions and delegate the non-Isolate
918         version method to the Isolate version method.
919
920         I would prefer the approach [2], because I'd like to statically
921         make sure that we never pass a 0 Isolate. If we take the approach
922         [1], we need to insert ASSERT(isolate) here and there.
923
924         This patch implements the approach [2].
925
926         No tests. No change in behavior.
927
928         * bindings/v8/SerializedScriptValue.cpp:
929         (WebCore::SerializedScriptValue::create):
930         (WebCore):
931         (WebCore::SerializedScriptValue::nullValue):
932         (WebCore::SerializedScriptValue::undefinedValue):
933         (WebCore::SerializedScriptValue::booleanValue):
934         (WebCore::SerializedScriptValue::numberValue):
935         (WebCore::SerializedScriptValue::SerializedScriptValue):
936         * bindings/v8/SerializedScriptValue.h:
937         (SerializedScriptValue):
938
939 2013-01-15  Dongwoo Joshua Im  <dw.im@samsung.com>
940
941         [CSS] Rename the enum, from "ETextAlignLast" to "TextAlignLast"
942         https://bugs.webkit.org/show_bug.cgi?id=106887
943
944         Reviewed by Alexis Menard.
945
946         No new tests are added since there is no behavior changes.
947
948         * css/CSSPrimitiveValueMappings.h:
949         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
950         (WebCore::CSSPrimitiveValue::operator TextAlignLast):
951         * css/StyleBuilder.cpp:
952         (WebCore::StyleBuilder::StyleBuilder):
953         * rendering/style/RenderStyle.h:
954         * rendering/style/RenderStyleConstants.h:
955         * rendering/style/StyleRareInheritedData.h:
956         (StyleRareInheritedData):
957
958 2013-01-15  Tommy Widenflycht  <tommyw@google.com>
959
960         MediaStream API: Fixing crashing bug in MediaStream
961         https://bugs.webkit.org/show_bug.cgi?id=106886
962
963         Reviewed by Eric Seidel.
964
965         Fixing crashing bug during destruction.
966
967         No new tests needed.
968
969         * Modules/mediastream/MediaStream.cpp:
970         (WebCore::MediaStream::contextDestroyed):
971
972 2013-01-15  Allan Sandfeld Jensen  <allan.jensen@digia.com>
973
974         [Qt][CSS Shaders] Make custom filter render in Wk1 mode
975         https://bugs.webkit.org/show_bug.cgi?id=101532
976
977         Reviewed by Noam Rosenthal.
978
979         Handle ValidatedCustomFilterOperations which are used by WebKit1. To keep the cache of compiled programs working, 
980         the cache has been updated to use CustomFilterProgramInfo as a hash key. CustomFilterProgramInfo is an existing
981         class specifically designed for this purpose.
982
983         * platform/graphics/texmap/TextureMapperGL.cpp:
984         (WebCore::getPassesRequiredForFilter):
985         (WebCore::TextureMapperGL::removeCachedCustomFilterProgram):
986         (WebCore::TextureMapperGL::drawUsingCustomFilter):
987         (WebCore::BitmapTextureGL::applyFilters):
988         * platform/graphics/texmap/TextureMapperGL.h:
989         (TextureMapperGL):
990
991 2013-01-15  Andrey Adaikin  <aandrey@chromium.org>
992
993         Web Inspector: [Canvas] introduce CallArgument type into the protocol
994         https://bugs.webkit.org/show_bug.cgi?id=106640
995
996         Reviewed by Yury Semikhatsky.
997
998         CallArgument type abstraction to describe arguments of a canvas context call.
999         Drive-by: Introduce a CanvasContext to fix the wrong contextId value in the protocol.
1000         The contextId should point to the Resource that represents a context (2D or 3D canvas).
1001
1002         * inspector/InjectedScriptCanvasModuleSource.js:
1003         (.):
1004         * inspector/Inspector.json:
1005         * inspector/front-end/CanvasProfileView.js:
1006
1007 2012-12-28  Vsevolod Vlasov  <vsevik@chromium.org>
1008
1009         Web Inspector: Support inspector file system access with isolated file system through InspectorFrontendHost.
1010         https://bugs.webkit.org/show_bug.cgi?id=105727
1011
1012         Reviewed by Pavel Feldman.
1013
1014         File system access through isolated file system is implemented in inspector.
1015         File system access requests are sent through InspectorFrontendHost.
1016         Introduced IsolatedFileSystemModel encapsulating file system access logic. 
1017         Introduced FileSystemMapping that provides mapping between workspace uris and file system pathes.
1018         DOMFileSystem.createIsolatedFileSystem modified to accept optional registeredName parameter.
1019
1020         * Modules/filesystem/DOMFileSystem.cpp:
1021         (WebCore::DOMFileSystem::createIsolatedFileSystem):
1022         * Modules/filesystem/DOMFileSystem.h:
1023         (DOMFileSystem):
1024         * WebCore.gypi:
1025         * WebCore.vcproj/WebCore.vcproj:
1026         * inspector/InspectorFrontendClient.h:
1027         (InspectorFrontendClient):
1028         * inspector/InspectorFrontendClientLocal.h:
1029         (WebCore::InspectorFrontendClientLocal::supportsFileSystems):
1030         (WebCore::InspectorFrontendClientLocal::requestFileSystems):
1031         (WebCore::InspectorFrontendClientLocal::addFileSystem):
1032         (WebCore::InspectorFrontendClientLocal::removeFileSystem):
1033         (InspectorFrontendClientLocal):
1034         * inspector/InspectorFrontendHost.cpp:
1035         (WebCore::InspectorFrontendHost::supportsFileSystems):
1036         (WebCore):
1037         (WebCore::InspectorFrontendHost::requestFileSystems):
1038         (WebCore::InspectorFrontendHost::addFileSystem):
1039         (WebCore::InspectorFrontendHost::removeFileSystem):
1040         (WebCore::InspectorFrontendHost::isolatedFileSystem):
1041         * inspector/InspectorFrontendHost.h:
1042         (WebCore):
1043         (InspectorFrontendHost):
1044         * inspector/InspectorFrontendHost.idl:
1045         * inspector/compile-front-end.py:
1046         * inspector/front-end/FileSystemMapping.js: Added.
1047         * inspector/front-end/InspectorFrontendAPI.js:
1048         (InspectorFrontendAPI.fileSystemsLoaded):
1049         (InspectorFrontendAPI.fileSystemRemoved):
1050         (InspectorFrontendAPI.fileSystemAdded):
1051         * inspector/front-end/InspectorFrontendHostStub.js:
1052         (.WebInspector.InspectorFrontendHostStub.prototype.supportsFileSystems):
1053         (.WebInspector.InspectorFrontendHostStub.prototype.requestFileSystems):
1054         (.WebInspector.InspectorFrontendHostStub.prototype.addFileSystem):
1055         (.WebInspector.InspectorFrontendHostStub.prototype.removeFileSystem):
1056         (.WebInspector.InspectorFrontendHostStub.prototype.isolatedFileSystem):
1057         * inspector/front-end/IsolatedFileSystemModel.js: Added.
1058         * inspector/front-end/WebKit.qrc:
1059         * inspector/front-end/externs.js:
1060         (DOMFileSystem):
1061         (InspectorFrontendHostAPI.prototype.supportsFileSystems):
1062         (InspectorFrontendHostAPI.prototype.requestFileSystems):
1063         (InspectorFrontendHostAPI.prototype.addFileSystem):
1064         (InspectorFrontendHostAPI.prototype.removeFileSystem):
1065         (InspectorFrontendHostAPI.prototype.isolatedFileSystem):
1066         * inspector/front-end/inspector.html:
1067         * inspector/front-end/inspector.js:
1068
1069 2013-01-15  Kondapally Kalyan  <kalyan.kondapally@intel.com>
1070
1071         [EFL][WebGL] Add error handling to carefully manage Window backing pixmaps.
1072         https://bugs.webkit.org/show_bug.cgi?id=106582
1073
1074         Reviewed by Kenneth Rohde Christiansen.
1075
1076         We use XCompositeNameWindowPixmap to create a pixmap that serves as a reference to
1077         the off-screen storage for a Window Handle. We expect the Window to be valid and
1078         the created glx pixmap to be a valid drawable. This may not be true always.
1079         This patch adds support for X Error checks and handles the generated errors.
1080
1081         Covered by existing WebGL layout tests.
1082
1083         * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
1084         (WebCore):
1085         (WebCore::handleXPixmapCreationError):
1086         (ScopedXPixmapCreationErrorHandler):
1087         (WebCore::ScopedXPixmapCreationErrorHandler::ScopedXPixmapCreationErrorHandler):
1088         (WebCore::ScopedXPixmapCreationErrorHandler::~ScopedXPixmapCreationErrorHandler):
1089         (WebCore::ScopedXPixmapCreationErrorHandler::isValidOperation):
1090         Helper Class to catch XErrors.
1091
1092         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
1093         (WebCore::GraphicsSurfacePrivate::createPixmap): Added support to check and handle generated XErrors.
1094         (WebCore::GraphicsSurfacePrivate::findFBConfigWithAlpha):
1095         (WebCore::GraphicsSurfacePrivate::clear): Destroys GL Resources.
1096         (GraphicsSurfacePrivate):
1097
1098 2013-01-15  Kondapally Kalyan  <kalyan.kondapally@intel.com>
1099
1100         [EFL] [WebGL] Minor cleanup in PlatformContext.
1101         https://bugs.webkit.org/show_bug.cgi?id=106758
1102
1103         Reviewed by Kenneth Rohde Christiansen.
1104
1105         We currently have different implementations of CurrentContextWrapper for EGL and GLX.
1106         This patch cleans up the code to use same implementation for both the backends.
1107
1108         * platform/graphics/opengl/GLPlatformContext.cpp:
1109         (GLCurrentContextWrapper):
1110         (WebCore::GLCurrentContextWrapper::GLCurrentContextWrapper):
1111         (WebCore::GLCurrentContextWrapper::~GLCurrentContextWrapper):
1112
1113         Common implementation for both EGL and GLX.
1114         (WebCore::createOffScreenContext):
1115         (WebCore::GLPlatformContext::createContext):
1116         * platform/graphics/surfaces/egl/EGLContext.cpp:
1117         * platform/graphics/surfaces/egl/EGLContext.h:
1118         * platform/graphics/surfaces/glx/GLXContext.h:
1119
1120         Removed code related to CurrentContextWrapper.
1121
1122 2013-01-14  Ryosuke Niwa  <rniwa@webkit.org>
1123
1124         platform/mac/accessibility/progressbar.html fails on Mac WK1 and WK2
1125         https://bugs.webkit.org/show_bug.cgi?id=106850
1126
1127         Reviewed by Chris Fleizach.
1128
1129         The bug was caused by some callers of supportsFocus directly calling that of Node.
1130         Fixed the bug by calling HTMLElement's so that the virtual function on Element gets
1131         called as needed.
1132
1133         * html/HTMLMeterElement.cpp:
1134         (WebCore::HTMLMeterElement::supportsFocus):
1135         * html/HTMLOutputElement.cpp:
1136         (WebCore::HTMLOutputElement::supportsFocus):
1137         * html/HTMLProgressElement.cpp:
1138         (WebCore::HTMLProgressElement::supportsFocus):
1139
1140 2013-01-14  Dima Gorbik  <dgorbik@apple.com>
1141
1142         Implement ID selector matching for the WebVTT ::cue pseudo element
1143         https://bugs.webkit.org/show_bug.cgi?id=105481
1144
1145         Reviewed by Eric Carlson.
1146
1147         Implemented matching cue WebVTT elements by an identifier. Identifiers of all WebVTT nodes in the rendering tree for 
1148         a given cue are set to match the cue identifier.
1149
1150         Existing tests were modified to cover this case.
1151
1152         * html/track/TextTrackCue.cpp:
1153         (WebCore::TextTrackCue::markFutureAndPastNodes):
1154
1155 2013-01-14  Mark Pilgrim  <pilgrim@chromium.org>
1156
1157         [Chromium] Use explicit WebKit prefixes in BlobRegistryProxy
1158         https://bugs.webkit.org/show_bug.cgi?id=106859
1159
1160         Reviewed by Adam Barth.
1161
1162         As requested in https://bugs.webkit.org/show_bug.cgi?id=106831#c2
1163
1164         * platform/network/chromium/BlobRegistryProxy.cpp:
1165         (WebCore::BlobRegistryProxy::registerBlobURL):
1166
1167 2013-01-14  Max Vujovic  <mvujovic@adobe.com>
1168
1169         [ANGLE] Update ANGLE in WebKit
1170         https://bugs.webkit.org/show_bug.cgi?id=106274
1171
1172         Unreviewed build fix for GTK after http://trac.webkit.org/changeset/139702
1173
1174         * GNUmakefile.am:
1175
1176 2013-01-14  Dean Jackson  <dino@apple.com>
1177
1178         Yet another unreviewed attempted QT build fix, this time because
1179         it's falling over on Filters.
1180
1181         * rendering/RenderSnapshottedPlugIn.cpp:
1182         (WebCore):
1183         (WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshotWithLabel):
1184
1185 2013-01-14  Dean Jackson  <dino@apple.com>
1186
1187         Unreviewed EFL build fix.
1188
1189         * CMakeLists.txt:
1190
1191 2013-01-14  Dean Jackson  <dino@apple.com>
1192
1193         Blur the label background of a snapshotted plugin
1194         https://bugs.webkit.org/show_bug.cgi?id=106630
1195
1196         Reviewed by Simon Fraser.
1197
1198         When we are showing a label indicating the plugin has been snapshotted,
1199         slightly blur the snapshot behind the label so that it is more clear. I expect
1200         that if/when other ports pick up this code, we'll need to separate the
1201         UI treatment somewhat, but this is ok for a first step.
1202
1203         * rendering/RenderSnapshottedPlugIn.cpp:
1204         (RenderSnapshottedPlugInBlurFilter): Private class to use FEGaussianBlur to blur an image.
1205         (WebCore::RenderSnapshottedPlugInBlurFilter::create):
1206         (WebCore::RenderSnapshottedPlugInBlurFilter::setSourceImageRect):
1207         (WebCore::RenderSnapshottedPlugInBlurFilter::sourceImageRect):
1208         (WebCore::RenderSnapshottedPlugInBlurFilter::filterRegion):
1209         (WebCore::RenderSnapshottedPlugInBlurFilter::output):
1210         (WebCore::RenderSnapshottedPlugInBlurFilter::RenderSnapshottedPlugInBlurFilter):
1211         (WebCore::RenderSnapshottedPlugInBlurFilter::apply):
1212         (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): New member variable to hold a cached version of a preblurred snapshot.
1213         (WebCore::RenderSnapshottedPlugIn::~RenderSnapshottedPlugIn): Remember to remove the preblurred image from the cache.
1214         (WebCore::RenderSnapshottedPlugIn::updateSnapshot): Zero the preblurred version if it exists.
1215         (WebCore::RenderSnapshottedPlugIn::paintReplaced): Either paint snapshot or blurred snapshot with label.
1216         (WebCore::RenderSnapshottedPlugIn::paintSnapshot): New method to paint a full sized snapshot.
1217         (WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshot):
1218         (WebCore::snapshottedPluginImageForLabelDisplay): Static function to produce the blurred snapshot.
1219         (WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshotWithLabel): Calls paintSnapshot with the blurred snapshot on Mac.
1220         * rendering/RenderSnapshottedPlugIn.h:
1221
1222 2013-01-14  Mark Pilgrim  <pilgrim@chromium.org>
1223
1224         [Chromium] Move BlobRegistryProxy into WebCore
1225         https://bugs.webkit.org/show_bug.cgi?id=106831
1226
1227         Reviewed by Adam Barth.
1228
1229         Part of a larger refactoring series to remove layering violations
1230         in Chromium. See tracking bug 106829.
1231
1232         * WebCore.gypi:
1233         * platform/network/chromium/BlobRegistryProxy.cpp: Added.
1234         (WebCore):
1235         (WebCore::blobRegistry):
1236         (WebCore::BlobRegistryProxy::BlobRegistryProxy):
1237         (WebCore::BlobRegistryProxy::registerBlobURL):
1238         (WebCore::BlobRegistryProxy::unregisterBlobURL):
1239         * platform/network/chromium/BlobRegistryProxy.h: Added.
1240         (WebCore):
1241         (BlobRegistryProxy):
1242         (WebCore::BlobRegistryProxy::loadResourceSynchronously):
1243         (WebCore::BlobRegistryProxy::~BlobRegistryProxy):
1244
1245 2013-01-14  Levi Weintraub  <leviw@chromium.org>
1246
1247         Rolling out r139618. Appears to be causing sporadic crashes on Debug bots.
1248
1249         * Modules/mediastream/MediaStream.cpp:
1250         (WebCore::processTrack):
1251         * Modules/mediastream/MediaStreamTrack.cpp:
1252         (WebCore::MediaStreamTrack::readyState):
1253         * Modules/mediastream/MediaStreamTrack.h:
1254         * Modules/mediastream/MediaStreamTrack.idl:
1255
1256 2013-01-14  Levi Weintraub  <leviw@chromium.org>
1257
1258         Rolling out r139678. This triggered a number of WebAudio crashes on Debug bots.
1259
1260         * platform/audio/chromium/AudioDestinationChromium.cpp:
1261         (WebCore::AudioDestinationChromium::AudioDestinationChromium):
1262
1263 2013-01-09  Levi Weintraub <leviw@chromium.org>
1264
1265         Rolling out r139683. It broke a bunch of webkit_unit_tests.
1266
1267 2013-01-14  Ojan Vafai  <ojan@chromium.org>
1268
1269         RenderListItem does not need to override computePreferredLogicalWidth
1270         https://bugs.webkit.org/show_bug.cgi?id=106839
1271
1272         Reviewed by Levi Weintraub.
1273
1274         Apparently there was a time when the list marker was considered part of
1275         the list item's preferred width, but that is no longer the case.
1276         This code was added in r3421. The code around preferred widths has change
1277         a lot since then.
1278
1279         * rendering/RenderListItem.cpp:
1280         * rendering/RenderListItem.h:
1281
1282 2013-01-13  Dima Gorbik  <dgorbik@apple.com>
1283
1284         Implement element type selectors for the WebVTT ::cue pseudo class
1285         https://bugs.webkit.org/show_bug.cgi?id=105480
1286
1287         Reviewed by Antti Koivisto.
1288
1289         Implemented tag matching for the WebVTT specific tags "c" and "v". All common html tags like "b" and "i" are 
1290         handled without any changes to the code. Creating a rendering tree and DOM tree now use different code paths. 
1291         They both are made by cloning and modifying the tree produced by the parser. Voice tags now use spans for both 
1292         rendering and DOM trees to conform to specs. Since this changes a lot of code little refactoring has been
1293         done. Removed m_hasInnerTimestamps since it is no longer needed, it doesn't affect anything. m_documentFragment 
1294         was renamed to m_webVTTNodeTree.
1295
1296         Existing tests were modified to cover this case.
1297
1298         * html/track/TextTrackCue.cpp:
1299         (WebCore::TextTrackCue::TextTrackCue):
1300         (WebCore::TextTrackCue::setText): rename m_documentFragment to m_webVTTNodeTree
1301         (WebCore::TextTrackCue::createWebVTTNodeTree): parse the cue if it hasn't been parsed before.
1302         (WebCore::TextTrackCue::copyWebVTTNodeToDOMTree): clone and prepare a node for using in the DOM tree according to specs.
1303         (WebCore::TextTrackCue::getCueAsHTML): get a DOM tree for the cue.
1304         (WebCore::TextTrackCue::createCueRenderingTree): create a rendering tree (main tree is just being cloned for now).
1305         (WebCore::TextTrackCue::markFutureAndPastNodes): tightening the argument type.
1306         (WebCore::TextTrackCue::updateDisplayTree):
1307         (WebCore::TextTrackCue::getDisplayTree): code cleanup, removed m_hasInnerTimeStamps.
1308         * html/track/TextTrackCue.h:
1309         (WebCore::TextTrackCue::voiceElementTagName):
1310         (TextTrackCue):
1311         (WebCore::TextTrackCue::classElementTagName):
1312         * html/track/WebVTTParser.cpp:
1313         (WebCore::WebVTTParser::constructTreeFromToken): type of the newly created elements was changed to Element to avoid hitting 
1314         an assertion when cloning because a cloned element will not have HTMLElement type for elements with "v" and "c" tag.
1315
1316 2013-01-14  Xianzhu Wang  <wangxianzhu@chromium.org>
1317
1318         Sometimes RenderLayer::updateNeedsCompositedScrolling is not called
1319         https://bugs.webkit.org/show_bug.cgi?id=106271
1320
1321         Reviewed by Simon Fraser.
1322
1323         1. If a layer has no out-of-flow descendant, m_hasOutOfFlowPositionedDescendant won't change and won't trigger updateNeedsCompositedScrolling in updateDescendantDependentFlags. Set m_hasOutOfFlowPositionedDescendantDirty to true and call updateNeedsCompositedScrolling when the dirty flag becomes false from true.
1324         2. When the content size changes causing change of scrollable status, updateNeedsCompositedScrolling should also be called.
1325
1326         Test: compositing/overflow/dynamic-composited-scrolling-status.html
1327
1328         * page/FrameView.cpp:
1329         (WebCore::FrameView::addScrollableArea): Returns whether the scrollable area has just been newly added.
1330         (WebCore::FrameView::removeScrollableArea): Returns whether the scrollable area has just been removed.
1331         * page/FrameView.h:
1332         (FrameView):
1333         * rendering/RenderLayer.cpp:
1334         (WebCore::RenderLayer::RenderLayer): Changed the initial value of m_hasOutOfFlowPositionedDescendantDirty to true to make sure m_hasOutOfFlowPositionedDescendant will be updated initially.
1335         (WebCore::RenderLayer::updateDescendantDependentFlags): Call updateNeedsCompositedScrolling when m_hasOutOfFlowPositionedDescendantDirty is true.
1336         (RenderLayer::updateScrollableAreaSet): Calls updateNeedsCompositedScrolling() when scrollable status changes.
1337         * rendering/RenderLayer.h:
1338         (RenderLayer):
1339
1340 2013-01-14  Ryosuke Niwa  <rniwa@webkit.org>
1341
1342         EFL build fix after r139681.
1343
1344         * dom/NodeRareData.h:
1345         (WebCore::NodeMicroDataTokenLists::NodeMicroDataTokenLists):
1346
1347 2013-01-14  Tien-Ren Chen  <trchen@chromium.org>
1348
1349         Correct FrameView::scrollableAreaBoundingBox() calculation in the presence of transforms
1350         https://bugs.webkit.org/show_bug.cgi?id=105075
1351
1352         Reviewed by Simon Fraser.
1353
1354         As mentioned by the FIXME comment, we need to ask the renderer for the
1355         absolute bounding box of a frame for correct transformation.
1356         This fixes the bug that iframe cannot be scrolled properly when it is
1357         transformed.
1358
1359         Tests: scrollingcoordinator/non-fast-scrollable-region-scaled-iframe.html
1360                scrollingcoordinator/non-fast-scrollable-region-transformed-iframe.html
1361
1362         * page/FrameView.cpp:
1363         (WebCore::FrameView::scrollableAreaBoundingBox):
1364
1365 2013-01-14  Nate Chapin  <japhet@chromium.org>
1366
1367         Enable reuse of cached main resources
1368         https://bugs.webkit.org/show_bug.cgi?id=105667
1369
1370         Reviewed by Antti Koivisto.
1371
1372         Test: http/tests/cache/cached-main-resource.html
1373
1374         * WebCore.exp.in:
1375         * dom/Document.cpp:
1376         (WebCore::Document::hasManifest): Returns true if the <html> element has a non-empty manifest attribute.
1377         * dom/Document.h:
1378         (Document):
1379         * loader/FrameLoader.cpp:
1380         (WebCore::FrameLoader::loadedResourceFromMemoryCache): Don't send delegate callbacks for cache hit here, since
1381             MainResourceLoader will take care of it.
1382         * loader/MainResourceLoader.cpp:
1383         (WebCore::MainResourceLoader::MainResourceLoader):
1384         (WebCore::MainResourceLoader::receivedError):
1385         (WebCore::MainResourceLoader::willSendRequest):
1386         (WebCore::MainResourceLoader::responseReceived): Don't try to cache loads from the application cache.
1387         (WebCore::MainResourceLoader::didFinishLoading): Don't try to cache loads from the application cache.
1388         (WebCore::MainResourceLoader::load): Ensure we create a resource load identifier for cache hits. Also,
1389             ensure we correctly popualate fragment identifiers in the ResourceRequest reported to DocumentLoader.
1390         (WebCore::MainResourceLoader::identifier):
1391         * loader/MainResourceLoader.h: Rename m_substituteDataLoadIdentifier to m_identifierForLoadWithoutResourceLoader
1392             to better describe when it is used.
1393         * loader/cache/CachedRawResource.cpp:
1394         (WebCore::CachedRawResource::didAddClient): Synthesize redirect notifications for cache hits if necessary.
1395         (WebCore::CachedRawResource::willSendRequest): Note the redirects we received.
1396         (WebCore::CachedRawResource::canReuse): Don't reuse a resource if the redirect chain included a "Cache-control: no-store".
1397         * loader/cache/CachedRawResource.h:
1398         (CachedRawResource):
1399         (RedirectPair):
1400         (WebCore::CachedRawResource::RedirectPair::RedirectPair):
1401         * loader/cache/CachedResource.cpp:
1402         (WebCore::CachedResource::addClientToSet):: Don't return cached data for a main resource synchronously
1403         * loader/cache/CachedResource.h:
1404         (WebCore::CachedResource::canReuse):
1405         (CachedResource):
1406         * loader/cache/CachedResourceLoader.cpp:
1407         (WebCore::CachedResourceLoader::determineRevalidationPolicy): Permit cache reuse for main resources.
1408         * testing/Internals.cpp:
1409         (WebCore::Internals::isLoadingFromMemoryCache):
1410         (WebCore):
1411         * testing/Internals.h:
1412         (Internals):
1413         * testing/Internals.idl:
1414
1415 2013-01-11  Ryosuke Niwa  <rniwa@webkit.org>
1416
1417         Move functions from NodeRareData to ElementRareData and other classes
1418         https://bugs.webkit.org/show_bug.cgi?id=106679
1419
1420         Reviewed by Benjamin Poulain.
1421
1422         Moved tab index related functions from NodeRareData to ElementRareData since only
1423         HTMLElement uses them, and moved related functions on Node to Element accordingly.
1424
1425         Also replaced transientMutationObserverRegistry and ensureTransientMutationObserverRegistry
1426         by ensureMutationObserverData, and moved micro-data related member functions into
1427         NodeMicroDataTokenLists, and moved NodeMutationObserverData and NodeMicroDataTokenLists
1428         out of NodeRareData as they're used outside of NodeRareData now.
1429
1430         The intention is to move more code into NodeMutationObserverData and NodeMicroDataTokenLists
1431         in the follow up patches so that they can detect the removability of NodeRareData.
1432
1433         No new tests are added since there should be no behavior changes.
1434
1435         * dom/Element.cpp:
1436         (WebCore::Element::clearTabIndexExplicitlyIfNeeded):
1437         (WebCore::Element::setTabIndexExplicitly):
1438         (WebCore::Element::tabIndex):
1439         (WebCore::Element::supportsFocus):
1440         * dom/Element.h:
1441         (Element):
1442         * dom/ElementRareData.h:
1443         (ElementRareData):
1444         (WebCore::ElementRareData::tabIndex):
1445         (WebCore::ElementRareData::setTabIndexExplicitly):
1446         (WebCore::ElementRareData::tabIndexSetExplicitly):
1447         (WebCore::ElementRareData::clearTabIndexExplicitly):
1448         * dom/Node.cpp:
1449         (WebCore::Node::tabIndex):
1450         (WebCore::Node::supportsFocus):
1451         (WebCore::Node::mutationObserverRegistry):
1452         (WebCore::Node::transientMutationObserverRegistry):
1453         (WebCore::Node::registerMutationObserver):
1454         (WebCore::Node::registerTransientMutationObserver):
1455         (WebCore::Node::itemProp):
1456         (WebCore::Node::setItemProp):
1457         (WebCore::Node::itemRef):
1458         (WebCore::Node::setItemRef):
1459         (WebCore::Node::itemType):
1460         (WebCore::Node::setItemType):
1461         * dom/Node.h:
1462         (Node):
1463         * dom/NodeRareData.h:
1464         (NodeMutationObserverData):
1465         (WebCore::NodeMutationObserverData::create):
1466         (NodeMicroDataTokenLists):
1467         (WebCore::NodeMicroDataTokenLists::create):
1468         (WebCore::NodeMicroDataTokenLists::itemProp):
1469         (WebCore::NodeMicroDataTokenLists::itemRef):
1470         (WebCore::NodeMicroDataTokenLists::itemType):
1471         (NodeRareData):
1472         (WebCore::NodeRareData::mutationObserverData):
1473         (WebCore::NodeRareData::ensureMutationObserverData):
1474         (WebCore::NodeRareData::ensureMicroDataTokenLists):
1475         * html/HTMLElement.cpp:
1476         (WebCore::HTMLElement::parseAttribute):
1477
1478 2013-01-14  Ojan Vafai  <ojan@chromium.org>
1479
1480         Remove unnecessary setNeedsLayoutAndPrefWidthsRecalc from RenderTable
1481         https://bugs.webkit.org/show_bug.cgi?id=106832
1482
1483         Reviewed by Levi Weintraub.
1484
1485         These are both called from locations that either set these bits themselves
1486         or clearly don't need these bits set (e.g. computePreferredLogicalWidths).
1487
1488         * rendering/RenderTable.cpp:
1489         (WebCore::RenderTable::splitColumn):
1490         (WebCore::RenderTable::appendColumn):
1491
1492 2013-01-14  Chris Rogers  <crogers@google.com>
1493
1494         Switch AudioDestinationChromium over to new createAudioDevice() method
1495         https://bugs.webkit.org/show_bug.cgi?id=106816
1496
1497         Reviewed by James Robinson.
1498
1499         * platform/audio/chromium/AudioDestinationChromium.cpp:
1500         (WebCore::AudioDestinationChromium::AudioDestinationChromium):
1501
1502 2013-01-14  Huang Dongsung  <luxtella@company100.net>
1503
1504         [TexMap] Use a premuliplied color in TextureMapperGL.
1505         https://bugs.webkit.org/show_bug.cgi?id=105786
1506
1507         Reviewed by Noam Rosenthal.
1508
1509         TextureMapperGL always uses a premultiplied color, so we must convert
1510         an unmultiplied color to a premultiplied color before setting the uniform value of
1511         colorLocation.
1512
1513         Test: compositing/background-color/background-color-alpha-with-opacity.html
1514
1515         * platform/graphics/texmap/TextureMapperGL.cpp:
1516         (WebCore::TextureMapperGL::drawBorder):
1517         (WebCore::TextureMapperGL::drawSolidColor):
1518         (WebCore::prepareFilterProgram):
1519         * platform/graphics/texmap/TextureMapperLayer.cpp:
1520         (WebCore::blendWithOpacity):
1521         (WebCore):
1522         (WebCore::TextureMapperLayer::paintSelf):
1523             TextureMapperLayer must not convert solidColor to premultiplied
1524             color, because TextureMapperImageBuffer expects unmultiplied color.
1525
1526 2013-01-14  Arko Saha  <arko@motorola.com>
1527
1528         Microdata: REGRESSION(r138725): Causes crash in chromium port
1529         https://bugs.webkit.org/show_bug.cgi?id=106828
1530
1531         Reviewed by Ryosuke Niwa.
1532
1533         We should hold PropertyNodeList in RefPtr<PropertyNodeList>.
1534
1535         Test: fast/dom/MicroData/propertiescollection-crash.html
1536
1537         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
1538         (WebCore::V8HTMLCollection::namedPropertyGetter):
1539
1540 2013-01-14  Tien-Ren Chen  <trchen@chromium.org>
1541
1542         Positioned children of an overflow:visible container should ignore scroll offset when updating layer position
1543         https://bugs.webkit.org/show_bug.cgi?id=106814
1544
1545         Reviewed by Simon Fraser.
1546
1547         This patch fixes a bug in RenderLayer::updateLayerPosition that
1548         scrollLeft / scrollTop of a block should only be effective when the
1549         block has overflow clipping. The bug results in rendering artifacts
1550         and triggers a RenderGeometryMap assertion falure.
1551
1552         Fixes http://crbug.com/167985
1553
1554         Test: fast/overflow/overflow-visible-should-ignore-scroll.html
1555
1556         * rendering/RenderLayer.cpp:
1557         (WebCore::RenderLayer::updateLayerPosition):
1558
1559 2013-01-14  Alec Flett  <alecflett@chromium.org>
1560
1561         IndexedDB: Remove IDBObjectStore/IndexBackendImpl and support functions
1562         https://bugs.webkit.org/show_bug.cgi?id=106605
1563
1564         Remove all uses of IDBObjectStoreBackendInterface and IDBIndexBackend*,
1565         as they are no longer used after recent refactoring.
1566
1567         Reviewed by Darin Fisher.
1568
1569         * GNUmakefile.list.am:
1570         * Modules/indexeddb/IDBCallbacks.h:
1571         (WebCore):
1572         * Modules/indexeddb/IDBCursor.cpp:
1573         (WebCore::IDBCursor::update):
1574         * Modules/indexeddb/IDBDatabase.cpp:
1575         (WebCore::IDBDatabase::createObjectStore):
1576         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
1577         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
1578         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
1579         (IDBDatabaseBackendImpl):
1580         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
1581         (WebCore):
1582         (IDBDatabaseBackendInterface):
1583         * Modules/indexeddb/IDBFactoryBackendImpl.h:
1584         (IDBFactoryBackendImpl):
1585         * Modules/indexeddb/IDBFactoryBackendInterface.h:
1586         (IDBFactoryBackendInterface):
1587         * Modules/indexeddb/IDBIndex.cpp:
1588         * Modules/indexeddb/IDBIndexBackendInterface.h: Removed.
1589         * Modules/indexeddb/IDBObjectStore.cpp:
1590         (WebCore::IDBObjectStore::add):
1591         (WebCore::IDBObjectStore::put):
1592         * Modules/indexeddb/IDBObjectStore.h:
1593         (IDBObjectStore):
1594         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
1595         (WebCore::IDBObjectStoreBackendImpl::makeIndexWriters):
1596         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
1597         (WebCore::IDBObjectStoreBackendImpl::IndexWriter::IndexWriter):
1598         (IndexWriter):
1599         (IDBObjectStoreBackendImpl):
1600         * Modules/indexeddb/IDBObjectStoreBackendInterface.h: Removed.
1601         * Modules/indexeddb/IDBTransaction.cpp:
1602         * Modules/indexeddb/IDBTransactionBackendImpl.h:
1603         (IDBTransactionBackendImpl):
1604         * Modules/indexeddb/IDBTransactionBackendInterface.h:
1605         (WebCore):
1606         * Modules/indexeddb/IDBTransactionCoordinator.cpp:
1607         * Target.pri:
1608         * WebCore.gypi:
1609         * WebCore.vcproj/WebCore.vcproj:
1610         * WebCore.xcodeproj/project.pbxproj:
1611
1612 2013-01-14  Max Vujovic  <mvujovic@adobe.com>
1613
1614         [ANGLE] Update ANGLE in WebKit
1615         https://bugs.webkit.org/show_bug.cgi?id=106274
1616
1617         Reviewed by Dean Jackson.
1618
1619         Update ANGLE to r1641.
1620
1621         Update the files used in the EFL and GTK builds.
1622
1623         No new tests. No change in behavior.
1624
1625         * CMakeLists.txt:
1626         * GNUmakefile.list.am:
1627
1628 2013-01-14  Julien Chaffraix  <jchaffraix@webkit.org>
1629
1630         REGRESSION (r132591): Underpainting @ uofmchildrenshospital.org
1631         https://bugs.webkit.org/show_bug.cgi?id=105861
1632
1633         Reviewed by David Hyatt.
1634
1635         Test: fast/repaint/overhanging-float-detach-repaint.html
1636
1637         The issue comes from overhanging float not contributing to their containing block's
1638         overflow. This meant that repaint() would ignore them leading to an under-repaint.
1639         The fix is simple: force all the overhanging floats to repaint themselves.
1640
1641         * rendering/RenderObject.cpp:
1642         (WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):
1643
1644 2013-01-14  Dominic Mazzoni  <dmazzoni@google.com>
1645
1646         AX: Need to implement ColorWellRole
1647         https://bugs.webkit.org/show_bug.cgi?id=106756
1648
1649         Reviewed by Chris Fleizach.
1650
1651         Maps input type=color to the accessible role ColorWellRole.
1652         Adds a new accessor to AccessibilityObject to get the color
1653         value in a cross-platform way that doesn't require parsing.
1654
1655         Test: accessibility/color-well.html
1656
1657         * accessibility/AccessibilityNodeObject.cpp:
1658         (WebCore::AccessibilityNodeObject::determineAccessibilityRole):
1659         (WebCore::AccessibilityNodeObject::colorValue):
1660         (WebCore):
1661         * accessibility/AccessibilityNodeObject.h:
1662         (AccessibilityNodeObject):
1663         * accessibility/AccessibilityObject.h:
1664         (WebCore::AccessibilityObject::isColorWell):
1665         (AccessibilityObject):
1666         (WebCore::AccessibilityObject::colorValue):
1667         * accessibility/AccessibilityRenderObject.cpp:
1668         (WebCore::AccessibilityRenderObject::stringValue):
1669         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
1670         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
1671         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
1672         * html/HTMLInputElement.cpp:
1673         (WebCore):
1674         (WebCore::HTMLInputElement::isColorControl):
1675         * html/HTMLInputElement.h:
1676         (HTMLInputElement):
1677
1678 2013-01-11  Emil A Eklund  <eae@chromium.org>
1679
1680         offsetWidth/height incorrect for images when zoomed
1681         https://bugs.webkit.org/show_bug.cgi?id=106624
1682
1683         Reviewed by Levi Weintraub.
1684         
1685         offsetWidth and height are incorrect for images at certain zoom
1686         levels due to flooring the values ones adjusted for zoom.
1687         By rounding the value instead we avoid the problem and return
1688         the right size.
1689
1690         Test: fast/images/zoomed-offset-size.html
1691
1692         * dom/Element.cpp:
1693         (WebCore::Element::offsetWidth):
1694         (WebCore::Element::offsetHeight):
1695         (WebCore::Element::clientWidth):
1696         (WebCore::Element::clientHeight):
1697         Change to round (as opposed to floor) the zoom adjusted value.
1698         
1699         * rendering/RenderObject.h:
1700         (WebCore::adjustLayoutUnitForAbsoluteZoom):
1701         * rendering/style/RenderStyle.h:
1702         (WebCore::adjustLayoutUnitForAbsoluteZoom):
1703         Add LayoutUnit version of adjustForAbsoluteZoom to avoid float
1704         conversion.
1705
1706 2013-01-14  Mark Pilgrim  <pilgrim@chromium.org>
1707
1708         [Chromium] Move AudioDestinationChromium into WebCore
1709         https://bugs.webkit.org/show_bug.cgi?id=106803
1710
1711         Reviewed by Adam Barth.
1712
1713         This doesn't really belong in WebKit/chromium/src since it defines
1714         things directly in the WebCore namespace.
1715
1716         * WebCore.gypi:
1717         * platform/audio/chromium/AudioDestinationChromium.cpp: Added.
1718         (WebCore):
1719         (WebCore::AudioDestination::create):
1720         (WebCore::AudioDestinationChromium::AudioDestinationChromium):
1721         (WebCore::AudioDestinationChromium::~AudioDestinationChromium):
1722         (WebCore::AudioDestinationChromium::start):
1723         (WebCore::AudioDestinationChromium::stop):
1724         (WebCore::AudioDestination::hardwareSampleRate):
1725         (WebCore::AudioDestinationChromium::render):
1726         (WebCore::AudioDestinationChromium::provideInput):
1727         * platform/audio/chromium/AudioDestinationChromium.h: Added.
1728         (WebCore):
1729         (AudioDestinationChromium):
1730         (WebCore::AudioDestinationChromium::isPlaying):
1731         (WebCore::AudioDestinationChromium::sampleRate):
1732
1733 2013-01-14  Adrian Perez de Castro  <aperez@igalia.com>
1734
1735         [GTK] Fix indentation for GStreamer supported MIME types list
1736         https://bugs.webkit.org/show_bug.cgi?id=106812
1737
1738         Reviewed by Philippe Normand.
1739
1740         No tests. No change in behavior.
1741
1742         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1743
1744 2013-01-14  John Bauman  <jbauman@chromium.org>
1745
1746         Use correct size for DrawingBuffer readback
1747         https://bugs.webkit.org/show_bug.cgi?id=106744
1748
1749         Reviewed by Kenneth Russell.
1750
1751         The value getInternalFramebufferSize is bogus if there's a
1752         DrawingBuffer, so use size() instead.
1753
1754         * platform/graphics/chromium/DrawingBufferChromium.cpp:
1755         (WebCore::DrawingBuffer::paintCompositedResultsToCanvas):
1756
1757 2013-01-14  Joshua Bell  <jsbell@chromium.org>
1758
1759         Bindings: Remove special cases for DOMString[]
1760         https://bugs.webkit.org/show_bug.cgi?id=106506
1761
1762         Remove special in binding code generators that map DOMString[] to DOMStringList.
1763         Array (T[]) and sequence (sequence<T>) are supported enough now that to be used
1764         for Internals, which is the only IDL that needed updating.
1765
1766         Reviewed by Adam Barth.
1767
1768         Tests: fast/forms/file/selected-files-from-history-state.html
1769                fast/forms/state-restore-broken-state.html
1770                fast/forms/state-restore-skip-stateless.html
1771
1772         Bindings test results updated for JS/V8.
1773
1774         * bindings/scripts/CodeGenerator.pm: Remove redundant IsArrayType (use GetArrayType instead)
1775         (IsRefPtrType): Array and Sequence types are not RefPtr types.
1776         * bindings/scripts/CodeGeneratorJS.pm:
1777         (IndexGetterReturnsStrings): Remove special case for DOMString[].
1778         (AddIncludesForType): Skip Array types, just like Sequence types. (Should probably recurse
1779         for the base type, but not needed for now.)
1780         (GenerateParametersCheckExpression): s/IsArrayType/GetArrayType/
1781         (GetNativeType): Remove special case for DOMString[].
1782         (GetNativeTypeForCallbacks): Ditto.
1783         (JSValueToNative): Ditto.
1784         * bindings/scripts/CodeGeneratorV8.pm:
1785         (GenerateParametersCheckExpression): s/IsArrayType/GetArrayType/
1786         (GetNativeType): Remove special case for DOMString[].
1787         (JSValueToNative): Ditto.
1788         (GetV8HeaderName): Ditto.
1789         (IsWrapperType):
1790         * bindings/scripts/test/JS/JSTestObj.cpp:
1791         (WebCore):
1792         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
1793         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod9):
1794         (WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
1795         (WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
1796         * bindings/scripts/test/JS/JSTestObj.h:
1797         (WebCore):
1798         * bindings/scripts/test/TestObj.idl: Added explicit new cases for DOMStringList
1799         * bindings/scripts/test/V8/V8TestObj.cpp:
1800         (WebCore::TestObjV8Internal::overloadedMethod7Callback):
1801         (WebCore::TestObjV8Internal::overloadedMethod9Callback):
1802         (WebCore::TestObjV8Internal::stringArrayFunctionCallback):
1803         (TestObjV8Internal):
1804         (WebCore::TestObjV8Internal::domStringListFunctionCallback):
1805         (WebCore):
1806         (WebCore::ConfigureV8TestObjTemplate):
1807         * testing/Internals.cpp:
1808         (WebCore::Internals::formControlStateOfPreviousHistoryItem):
1809         (WebCore::Internals::setFormControlStateOfPreviousHistoryItem):
1810         (WebCore::Internals::iconURLs):
1811         (WebCore::Internals::getReferencedFilePaths):
1812         * testing/Internals.h:
1813         (Internals):
1814         * testing/Internals.idl: Produce DOMString[], consume sequence<DOMString> to match tests.
1815
1816 2013-01-14  Elliott Sprehn  <esprehn@chromium.org>
1817
1818         Clean up WebVTTNodeType code
1819         https://bugs.webkit.org/show_bug.cgi?id=106714
1820
1821         Reviewed by Tony Chang.
1822
1823         There's no reason for so many methods just to compare some enums.
1824         The existing code can also be simplified quite a bit.
1825
1826         No new tests, just refactoring.
1827
1828         * css/SelectorChecker.cpp:
1829         (WebCore::SelectorChecker::checkOne):
1830         * css/StyleResolver.cpp:
1831         (WebCore::StyleResolver::collectMatchingRules):
1832         (WebCore::StyleResolver::canShareStyleWithElement):
1833         * dom/Element.cpp:
1834         (WebCore::Element::webVTTNodeType):
1835         (WebCore::Element::setWebVTTNodeType):
1836         * dom/Element.h:
1837         (Element):
1838         * dom/ElementRareData.h:
1839         (WebCore::ElementRareData::setWebVTTNodeType):
1840         (WebCore::ElementRareData::webVTTNodeType):
1841         (ElementRareData):
1842         * dom/NodeRareData.h:
1843         (WebCore::NodeRareData::NodeRareData):
1844         (NodeRareData):
1845         * html/track/TextTrack.h:
1846         * html/track/TextTrackCue.cpp:
1847         (WebCore::TextTrackCue::markFutureAndPastNodes):
1848
1849 2013-01-14  Antti Koivisto  <antti@apple.com>
1850
1851         REGRESSION (r139218): Flaky assertion in WebCore::StorageTask::StorageTask releasing memory
1852         https://bugs.webkit.org/show_bug.cgi?id=106718
1853
1854         Reviewed by Andreas Kling.
1855
1856         Type assertion was missing a new type.
1857
1858         * storage/StorageTask.cpp:
1859         (WebCore::StorageTask::StorageTask):
1860
1861 2013-01-14  Yury Semikhatsky  <yurys@chromium.org>
1862
1863         [REGRESSION] Dev Tools popup for Workers forgets sizes/shows tiny in top left
1864         https://bugs.webkit.org/show_bug.cgi?id=106807
1865
1866         Reviewed by Pavel Feldman.
1867
1868         Open dedicated worker inspector 600x600 by default and remember its size
1869         after resizing.
1870
1871         * inspector/front-end/Settings.js:
1872         * inspector/front-end/WorkerManager.js:
1873
1874 2013-01-14  Kentaro Hara  <haraken@chromium.org>
1875
1876         [V8] Make an Isolate parameter mandatory in associateObjectWithWrapper()
1877         https://bugs.webkit.org/show_bug.cgi?id=106784
1878
1879         Reviewed by Adam Barth.
1880
1881         No tests. No change in behavior.
1882
1883         * bindings/v8/V8DOMWrapper.h:
1884         (V8DOMWrapper):
1885
1886 2013-01-14  Kentaro Hara  <haraken@chromium.org>
1887
1888         [V8] Make an Isolate parameter mandatory in ScriptDebugServer::interruptAndRun()
1889         https://bugs.webkit.org/show_bug.cgi?id=106779
1890
1891         Reviewed by Adam Barth.
1892
1893         This is one of steps to make an Isolate parameter mandatory.
1894
1895         No tests. No change in behavior.
1896
1897         * bindings/v8/ScriptDebugServer.h:
1898         (ScriptDebugServer):
1899
1900 2013-01-14  Kentaro Hara  <haraken@chromium.org>
1901
1902         [V8] Make an Isolate parameter mandatory in wrap()
1903         https://bugs.webkit.org/show_bug.cgi?id=106783
1904
1905         Reviewed by Adam Barth.
1906
1907         Now it's safe to make an Isolate parameter in wrap().
1908
1909         No tests. No change in behavior.
1910
1911         * bindings/scripts/CodeGeneratorV8.pm:
1912         (GenerateHeader):
1913         * bindings/scripts/test/V8/V8Float64Array.h:
1914         (WebCore):
1915         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
1916         (WebCore::wrap):
1917         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
1918         (WebCore::wrap):
1919         * bindings/scripts/test/V8/V8TestEventConstructor.h:
1920         (WebCore::wrap):
1921         * bindings/scripts/test/V8/V8TestEventTarget.h:
1922         (WebCore::wrap):
1923         * bindings/scripts/test/V8/V8TestException.h:
1924         (WebCore::wrap):
1925         * bindings/scripts/test/V8/V8TestInterface.h:
1926         (WebCore::wrap):
1927         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
1928         (WebCore::wrap):
1929         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
1930         (WebCore::wrap):
1931         * bindings/scripts/test/V8/V8TestNode.h:
1932         (WebCore::wrap):
1933         * bindings/scripts/test/V8/V8TestObj.h:
1934         (WebCore::wrap):
1935         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
1936         (WebCore::wrap):
1937         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
1938         (WebCore::wrap):
1939
1940 2013-01-14  Tommy Widenflycht  <tommyw@google.com>
1941
1942         MediaStream API: Update MediaStreamTrack::readyState to match specification
1943         https://bugs.webkit.org/show_bug.cgi?id=106781
1944
1945         Reviewed by Adam Barth.
1946
1947         MediaStreamTrack::readyState now returns a string like the rest of the RTC classes.
1948
1949         Existing tests expanded to cover patch.
1950
1951         * Modules/mediastream/MediaStream.cpp:
1952         (WebCore::processTrack):
1953         * Modules/mediastream/MediaStreamTrack.cpp:
1954         (WebCore::MediaStreamTrack::readyState):
1955         (WebCore::MediaStreamTrack::ended):
1956         (WebCore):
1957         * Modules/mediastream/MediaStreamTrack.h:
1958         (MediaStreamTrack):
1959         * Modules/mediastream/MediaStreamTrack.idl:
1960
1961 2013-01-14  Vsevolod Vlasov  <vsevik@chromium.org>
1962
1963         Web Inspector: Audit Tool's False Positive on Set-Cookie header
1964         https://bugs.webkit.org/show_bug.cgi?id=106794
1965
1966         Reviewed by Pavel Feldman.
1967
1968         Header value is now returned as undefined if there is no such header as it was before regression.
1969
1970         Test: http/tests/inspector/audits/set-cookie-header-audit-no-false-positive.html
1971
1972         * inspector/front-end/AuditRules.js:
1973         (WebInspector.AuditRules.CSSRuleBase.prototype.sheetsCallback): Drive-by fix, callback should be called even when there is no headers. 
1974         * inspector/front-end/NetworkRequest.js:
1975         (WebInspector.NetworkRequest.prototype._headerValue):
1976
1977 2013-01-14  Eric Carlson  <eric.carlson@apple.com>
1978
1979         Do not pass nil when initializing legible output
1980         https://bugs.webkit.org/show_bug.cgi?id=106799
1981
1982         Reviewed by Jessie Berlin.
1983
1984         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1985         (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): -[AVPlayerItemLegibleOutput initWithDependencyFactory:mediaSubtypesForNativeRepresentation:]
1986             wants an empty NSArray rather than nil.
1987
1988 2013-01-14  Andrey Adaikin  <aandrey@chromium.org>
1989
1990         Web Inspector: [Canvas] UI: add control buttons for doing the replay steps
1991         https://bugs.webkit.org/show_bug.cgi?id=106788
1992
1993         Reviewed by Pavel Feldman.
1994
1995         Adding UI control buttons for doing the Canvas replay steps.
1996         Drive-by: fixed a bug in DataGrid (found by the JSCompiler).
1997
1998         * inspector/front-end/CanvasProfileView.js:
1999         (WebInspector.CanvasProfileView):
2000         (WebInspector.CanvasProfileView.prototype._createControlButton):
2001         (WebInspector.CanvasProfileView.prototype._onReplayStepClick):
2002         (WebInspector.CanvasProfileView.prototype._onReplayFirstStepClick):
2003         (WebInspector.CanvasProfileView.prototype._onReplayLastStepClick):
2004         (WebInspector.CanvasProfileView.prototype._enableWaitIcon):
2005         (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
2006         (WebInspector.CanvasProfileView.prototype._replayTraceLog):
2007         (WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
2008         (WebInspector.CanvasProfileType.prototype._updateDecorationElement):
2009         * inspector/front-end/DOMExtension.js:
2010         (Element.prototype.enableStyleClass):
2011         * inspector/front-end/DataGrid.js:
2012         (WebInspector.DataGrid.prototype.setRootNode):
2013         (WebInspector.DataGrid.prototype._startEditingColumnOfDataGridNode):
2014         (WebInspector.DataGrid.prototype.moveToNextIfNeeded):
2015         (WebInspector.DataGrid.prototype._editingCommitted):
2016         (WebInspector.DataGridNode):
2017         * inspector/front-end/canvasProfiler.css:
2018         (.canvas-replay-image):
2019         (.canvas-replay-image.wait):
2020         (.canvas-replay-controls):
2021         (.canvas-replay-log):
2022         (.canvas-control-button):
2023         (.canvas-control-button:active):
2024         (.canvas-control-button:disabled):
2025         (.canvas-control-button img):
2026         (.canvas-replay-first-step img):
2027         (.canvas-replay-next-step img):
2028         (.canvas-replay-prev-step img):
2029         (.canvas-replay-last-step img):
2030
2031 2013-01-14  Tommy Widenflycht  <tommyw@google.com>
2032
2033         MediaStream API: Update the track accessors on MediaStream to match the latest specification
2034         https://bugs.webkit.org/show_bug.cgi?id=106660
2035
2036         Reviewed by Adam Barth.
2037
2038         The spec has significantly changed how tracks are accessed from a MediaStream:
2039         http://dev.w3.org/2011/webrtc/editor/getusermedia.html
2040
2041         In short: the attributes audioTrack/videoTrack that returned special MediaStreamTrackLists have been
2042         replaced by the functions getAudioTracks()/getVideoTracks that return standard sequences of
2043         MediaStreamTracks.
2044
2045         Existing tests updated and expanded to cover patch.
2046
2047         * CMakeLists.txt:
2048         * GNUmakefile.list.am:
2049         * Modules/mediastream/MediaStream.cpp:
2050         (WebCore::MediaStream::create):
2051         (WebCore::MediaStream::MediaStream):
2052         (WebCore::MediaStream::~MediaStream):
2053         (WebCore::MediaStream::readyState):
2054         (WebCore):
2055         (WebCore::MediaStream::addTrack):
2056         (WebCore::MediaStream::removeTrack):
2057         (WebCore::MediaStream::getTrackById):
2058         (WebCore::MediaStream::streamEnded):
2059         (WebCore::MediaStream::contextDestroyed):
2060         (WebCore::MediaStream::scheduleDispatchEvent):
2061         (WebCore::MediaStream::scheduledEventTimerFired):
2062         * Modules/mediastream/MediaStream.h:
2063         (MediaStream):
2064         (WebCore::MediaStream::getAudioTracks):
2065         (WebCore::MediaStream::getVideoTracks):
2066         * Modules/mediastream/MediaStream.idl:
2067         * Modules/mediastream/MediaStreamTrackList.cpp: Removed.
2068         * Modules/mediastream/MediaStreamTrackList.h: Removed.
2069         * Modules/mediastream/MediaStreamTrackList.idl: Removed.
2070         * Modules/webaudio/AudioContext.cpp:
2071         (WebCore::AudioContext::createMediaStreamSource):
2072         * WebCore.gypi:
2073         * dom/EventTargetFactory.in:
2074         * platform/mediastream/MediaStreamDescriptor.h:
2075         (WebCore::MediaStreamDescriptor::addAudioComponent):
2076         (WebCore::MediaStreamDescriptor::removeAudioComponent):
2077         (WebCore::MediaStreamDescriptor::addVideoComponent):
2078         (WebCore::MediaStreamDescriptor::removeVideoComponent):
2079
2080 2013-01-14  Kentaro Hara  <haraken@chromium.org>
2081
2082         [V8] Add m_isolate to ScriptController, WorkerScriptController and V8DOMWindowShell
2083         https://bugs.webkit.org/show_bug.cgi?id=106771
2084
2085         Reviewed by Adam Barth.
2086
2087         This is one of the steps to pass an Isolate everywhere.
2088
2089         No tests. No change in behavior.
2090
2091         * bindings/v8/ScriptController.cpp:
2092         (WebCore::ScriptController::ScriptController):
2093         (WebCore::ScriptController::windowShell):
2094         * bindings/v8/ScriptController.h:
2095         (ScriptController):
2096         * bindings/v8/V8DOMWindowShell.cpp:
2097         (WebCore::V8DOMWindowShell::create):
2098         (WebCore::V8DOMWindowShell::V8DOMWindowShell):
2099         (WebCore::V8DOMWindowShell::initializeIfNeeded):
2100         (WebCore::V8DOMWindowShell::installDOMWindow):
2101         * bindings/v8/V8DOMWindowShell.h:
2102         (V8DOMWindowShell):
2103         * bindings/v8/V8Initializer.cpp:
2104         (WebCore::V8Initializer::initializeMainThreadIfNeeded):
2105         (WebCore::V8Initializer::initializeWorker):
2106         * bindings/v8/V8Initializer.h:
2107         (V8Initializer):
2108         * bindings/v8/WorkerScriptController.cpp:
2109         (WebCore::WorkerScriptController::WorkerScriptController):
2110         (WebCore::WorkerScriptController::initializeContextIfNeeded):
2111
2112 2013-01-14  Alexander Pavlov  <apavlov@chromium.org>
2113
2114         Web Inspector: [Styles] Color names parsed inside "background-image" values
2115         https://bugs.webkit.org/show_bug.cgi?id=106770
2116
2117         Reviewed by Pavel Feldman.
2118
2119         Test: inspector/styles/url-color-swatch.html
2120
2121         Spaces were not allowed in url(...) CSS property values.
2122
2123         * inspector/front-end/StylesSidebarPane.js:
2124
2125 2013-01-14  Kentaro Hara  <haraken@chromium.org>
2126
2127         [V8] Pass an Isolate to associateObjectWithWrapper()
2128         https://bugs.webkit.org/show_bug.cgi?id=106773
2129
2130         Reviewed by Adam Barth.
2131
2132         In preparation for making an Isolate parameter mandatory
2133         in associateObjectWithWrapper(), this patch passes an
2134         Isolate to associateObjectWithWrapper().
2135
2136         No tests. No change in behavior.
2137
2138         * bindings/v8/custom/V8ArrayBufferCustom.cpp:
2139         (WebCore::V8ArrayBuffer::constructorCallbackCustom):
2140         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
2141         (WebCore::wrapArrayBufferView):
2142         (WebCore::constructWebGLArray):
2143         * bindings/v8/custom/V8AudioContextCustom.cpp:
2144         (WebCore::V8AudioContext::constructorCallbackCustom):
2145         * bindings/v8/custom/V8DOMFormDataCustom.cpp:
2146         (WebCore::V8DOMFormData::constructorCallbackCustom):
2147         * bindings/v8/custom/V8DataViewCustom.cpp:
2148         (WebCore::V8DataView::constructorCallbackCustom):
2149         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
2150         (WebCore::v8HTMLImageElementConstructorCallback):
2151         * bindings/v8/custom/V8IntentCustom.cpp:
2152         (WebCore::V8Intent::constructorCallbackCustom):
2153         * bindings/v8/custom/V8MessageChannelCustom.cpp:
2154         (WebCore::V8MessageChannel::constructorCallbackCustom):
2155         * bindings/v8/custom/V8MutationObserverCustom.cpp:
2156         (WebCore::V8MutationObserver::constructorCallbackCustom):
2157         * bindings/v8/custom/V8WebKitPointCustom.cpp:
2158         (WebCore::V8WebKitPoint::constructorCallbackCustom):
2159         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
2160         (WebCore::V8XMLHttpRequest::constructorCallbackCustom):
2161
2162 2013-01-14  Kentaro Hara  <haraken@chromium.org>
2163
2164         [V8] Call Isolate::GetCurrent() in a callback from WebCore
2165         https://bugs.webkit.org/show_bug.cgi?id=106766
2166
2167         Reviewed by Adam Barth.
2168
2169         The objective is to pass an Isolate everywhere.
2170         Given that a callback from WebCore is an entry point to V8,
2171         we can call Isolate::GetCurrent() at the head of the callback
2172         and pass it to other places. (In practice, handleEvent() is
2173         the only callback used in the current WebKit.)
2174
2175         No tests. No change in behavior.
2176
2177         * bindings/scripts/CodeGeneratorV8.pm:
2178         (GenerateCallbackImplementation):
2179         (NativeToJSValue):
2180         * bindings/scripts/test/V8/V8TestCallback.cpp:
2181         (WebCore::V8TestCallback::callbackWithNoParam):
2182         (WebCore::V8TestCallback::callbackWithClass1Param):
2183         (WebCore::V8TestCallback::callbackWithClass2Param):
2184         (WebCore::V8TestCallback::callbackWithStringList):
2185         (WebCore::V8TestCallback::callbackWithBoolean):
2186         (WebCore::V8TestCallback::callbackRequiresThisToPass):
2187
2188 2013-01-14  Tommy Widenflycht  <tommyw@google.com>
2189
2190         MediaStream API: Change MediaStream::readyState to an boolean attribute called ended.
2191         https://bugs.webkit.org/show_bug.cgi?id=106568
2192
2193         Reviewed by Adam Barth.
2194
2195         See specification: http://dev.w3.org/2011/webrtc/editor/getusermedia.html
2196
2197         Existings tests updated to cover patch.
2198
2199         * Modules/mediastream/LocalMediaStream.cpp:
2200         (WebCore::LocalMediaStream::stop):
2201         * Modules/mediastream/MediaStream.cpp:
2202         (WebCore::MediaStream::ended):
2203         (WebCore::MediaStream::streamEnded):
2204         * Modules/mediastream/MediaStream.h:
2205         (MediaStream):
2206         (WebCore::MediaStream::isLocal):
2207         * Modules/mediastream/MediaStream.idl:
2208         * Modules/mediastream/MediaStreamTrackList.cpp:
2209         (WebCore::MediaStreamTrackList::add):
2210         (WebCore::MediaStreamTrackList::remove):
2211
2212 2013-01-14  Alexander Pavlov  <apavlov@chromium.org>
2213
2214         Web Inspector: [Styles] HTML color names not converted to RGB/HEX/HSL when "Color format" feature used
2215         https://bugs.webkit.org/show_bug.cgi?id=106767
2216
2217         Reviewed by Vsevolod Vlasov.
2218
2219         We used to render named colors as names regardless of the selected color format option.
2220
2221         * inspector/front-end/StylesSidebarPane.js:
2222         (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
2223
2224 2013-01-14  Andrei Bucur  <abucur@adobe.com>
2225
2226         Crash caused by incomplete cleanup of regions information for anonymous block
2227         https://bugs.webkit.org/show_bug.cgi?id=106191
2228
2229         Reviewed by Abhishek Arya.
2230
2231         When an anonymous block is no longer required it is removed from the render tree and deleted. For example, this can happen when an anonymous block children change
2232         from inlines to blocks. The patch updates the removeLeftoverAnonymousBlock function to delete the flow thread information attached to the obsolete anonymous block.
2233         The removeFromRenderFlowThread() function is recursive and it needs to be called after the anonymous block children were reparented and the child list cleared.
2234         I've also placed the children reset operation before clearing the parent because the latter also deletes the inRenderFlowThread flag from the object and it makes
2235         flow thread ownership detection impossible.
2236
2237         Tests: fast/regions/remove-leftover-anon-block-crash.html
2238
2239         * rendering/RenderBlock.cpp:
2240         (WebCore::RenderBlock::removeLeftoverAnonymousBlock):
2241
2242 2013-01-14  Kentaro Hara  <haraken@chromium.org>
2243
2244         [V8] Make an Isolate parameter mandatory in v8DateOrNull()
2245         https://bugs.webkit.org/show_bug.cgi?id=106765
2246
2247         Reviewed by Adam Barth.
2248
2249         This is one of the efforts to kill all optional Isolate parameters.
2250
2251         No tests. No change in behavior.
2252
2253         * bindings/v8/V8Binding.h:
2254         (WebCore::v8DateOrNull):
2255
2256 2013-01-14  Pablo Flouret  <pablof@motorola.com>
2257
2258         Allow nesting of at-rules
2259         https://bugs.webkit.org/show_bug.cgi?id=106696
2260
2261         Reviewed by Allan Sandfeld Jensen.
2262
2263         http://dev.w3.org/csswg/css3-conditional/ introduces the
2264         concept of grouping rules, and allows for them to be nested. In
2265         particular, this change affects @media (and is needed for @supports as
2266         well).
2267
2268         Test: fast/css/nested-at-rules.html
2269
2270         * css/CSSGrammar.y.in:
2271             Move media to the block_valid_rule list.
2272
2273         * css/RuleSet.cpp:
2274         (WebCore::RuleSet::addRegionRule):
2275         (WebCore::RuleSet::addChildRules):
2276         (WebCore::RuleSet::addRulesFromSheet):
2277         * css/RuleSet.h:
2278             Rip out the rule-adding loop into a new method, for added
2279             cleanliness and recursing.
2280
2281 2013-01-14  Eugene Klyuchnikov  <eustas@chromium.org>
2282
2283         Web Inspector: [Network] Add domain column
2284         https://bugs.webkit.org/show_bug.cgi?id=106757
2285
2286         Reviewed by Pavel Feldman.
2287
2288         Adding new column will ease domain tracking / sorting.
2289
2290         * inspector/front-end/NetworkPanel.js: Added column.
2291         * inspector/front-end/NetworkRequest.js:
2292         (WebInspector.NetworkRequest.prototype.get domain): Added getter.
2293
2294 2013-01-14  Qiankun Miao  <qiankun.miao@intel.com>
2295
2296         Fix a typo error in the comments in PlatformContextSkia.h
2297         https://bugs.webkit.org/show_bug.cgi?id=105612
2298
2299         Reviewed by Stephen White.
2300
2301         "If false we're rendering to a GraphicsContext for a web page, if false
2302         we're not (as is the case when rendering to a canvas object)." is
2303         self-contradictory. The second "flase" in the comments should be
2304         "true". If true, we're rendering to an ImageBuffer which has a canvas
2305         object.
2306
2307         * platform/graphics/skia/PlatformContextSkia.h:
2308         (PlatformContextSkia):
2309
2310 2013-01-14  Ilya Tikhonovsky  <loislo@chromium.org>
2311
2312         Web Inspector: Native Memory Instrumentation: fix instrumentation for already instrumented classes 3/3
2313         https://bugs.webkit.org/show_bug.cgi?id=106764
2314
2315         Reviewed by Vsevolod Vlasov.
2316
2317         Last three classes with not instrumented members were fixed.
2318
2319         * css/CSSGroupingRule.cpp:
2320         (WebCore::CSSGroupingRule::reportMemoryUsage):
2321         * css/StyleScopeResolver.cpp:
2322         (WebCore::StyleScopeResolver::reportMemoryUsage):
2323         * loader/cache/CachedResourceLoader.cpp:
2324         (WebCore::CachedResourceLoader::reportMemoryUsage):
2325
2326 2013-01-10  Ilya Tikhonovsky  <loislo@chromium.org>
2327
2328         Web Inspector: Native Memory Instrumentation: fix instrumentation for already instrumented classes 2/N
2329         https://bugs.webkit.org/show_bug.cgi?id=106546
2330
2331         Reviewed by Vsevolod Vlasov.
2332
2333         Many nontrivial class members were added into reportMemoryUsage methods.
2334
2335         * bindings/v8/V8PerIsolateData.cpp:
2336         (WebCore::V8PerIsolateData::reportMemoryUsage):
2337         * css/CSSMediaRule.cpp:
2338         (WebCore::CSSMediaRule::reportMemoryUsage):
2339         * css/CSSProperty.cpp:
2340         (WebCore::CSSProperty::reportMemoryUsage):
2341         * css/CSSStyleSheet.cpp:
2342         (WebCore::CSSStyleSheet::reportMemoryUsage):
2343         * css/MediaList.cpp:
2344         (WebCore::MediaList::reportMemoryUsage):
2345         * css/RuleSet.cpp:
2346         (WebCore::RuleData::reportMemoryUsage):
2347         (WebCore::RuleSet::reportMemoryUsage):
2348         (WebCore::RuleSet::RuleSetSelectorPair::reportMemoryUsage):
2349         * css/StyleResolver.cpp:
2350         (WebCore::StyleResolver::MatchedPropertiesCacheItem::reportMemoryUsage):
2351         (WebCore::StyleResolver::reportMemoryUsage):
2352         * css/StyleSheetContents.cpp:
2353         (WebCore::StyleSheetContents::reportMemoryUsage):
2354         * dom/TreeScope.cpp:
2355         (WebCore::TreeScope::reportMemoryUsage):
2356         * inspector/HeapGraphSerializer.cpp:
2357         (WebCore::HeapGraphSerializer::reportMemoryUsage):
2358         * inspector/InspectorMemoryAgent.cpp:
2359         * inspector/InspectorProfilerAgent.cpp:
2360         (WebCore::InspectorProfilerAgent::reportMemoryUsage):
2361         * inspector/MemoryInstrumentationImpl.cpp:
2362         (WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage):
2363         * loader/DocumentLoader.cpp:
2364         (WebCore::DocumentLoader::reportMemoryUsage):
2365         * loader/FrameLoader.cpp:
2366         (WebCore::FrameLoader::reportMemoryUsage):
2367         * loader/MainResourceLoader.cpp:
2368         (WebCore::MainResourceLoader::reportMemoryUsage):
2369         * loader/Prerenderer.cpp:
2370         (WebCore::Prerenderer::reportMemoryUsage):
2371         * loader/ResourceLoader.cpp:
2372         (WebCore::ResourceLoader::reportMemoryUsage):
2373         * loader/cache/CachedImage.cpp:
2374         (WebCore::CachedImage::reportMemoryUsage):
2375         * page/Page.cpp:
2376         (WebCore::Page::reportMemoryUsage):
2377
2378 2013-01-13  Levi Weintraub  <leviw@chromium.org>
2379
2380         Unreviewed gardening. Rolling out r139537. It broke platforms without sub-pixel layout.
2381
2382         * dom/Element.cpp:
2383         (WebCore::Element::offsetWidth):
2384         (WebCore::Element::offsetHeight):
2385         (WebCore::Element::clientWidth):
2386         (WebCore::Element::clientHeight):
2387         * rendering/RenderObject.h:
2388         (WebCore::adjustLayoutUnitForAbsoluteZoom):
2389         * rendering/style/RenderStyle.h:
2390         (WebCore::adjustLayoutUnitForAbsoluteZoom):
2391
2392 2013-01-13  Dima Gorbik  <dgorbik@apple.com>
2393
2394         Styling disappears from the cue that's being styled by ::cue pseudo element
2395         https://bugs.webkit.org/show_bug.cgi?id=106723
2396
2397         Reviewed by Antti Koivisto.
2398
2399         Fixes a regression caused by r138966. Setting a pseudoId in TextTrackCue::updateDisplayTree for m_allDocumentNodes
2400         was triggering recalculating styles the next run loop. Now when this was removed we append the WebVTT tree after its children have
2401         been marked by markFutureAndPastNodes so that correct styles are set within this append call.
2402
2403         Test: media/track/track-css-cue-lifetime.html
2404
2405         * html/track/TextTrackCue.cpp:
2406         (WebCore::TextTrackCue::markFutureAndPastNodes): changing the type of the first argument because DocumentFragment is not a subclass
2407         of Element.
2408         (WebCore::TextTrackCue::updateDisplayTree): appending the WebVTT rendering tree after its children have been marked properly.
2409         * html/track/TextTrackCue.h:
2410         (TextTrackCue):
2411
2412 2013-01-12  David Grogan  <dgrogan@chromium.org>
2413
2414         IndexedDB: Provide LevelDB with IDBEnv instead of Env::Default
2415         https://bugs.webkit.org/show_bug.cgi?id=106135
2416
2417         Reviewed by Tony Chang.
2418
2419         IDBEnv only changes the name of the histogram where errors are logged.
2420
2421         * platform/leveldb/LevelDBDatabase.cpp:
2422         (WebCore::LevelDBDatabase::destroy):
2423         (WebCore::LevelDBDatabase::open):
2424         (WebCore::LevelDBDatabase::openInMemory):
2425
2426 2013-01-12  Gavin Peters  <gavinp@chromium.org>
2427
2428         Regression(r119759): Heap-use-after-free in webkit_glue::WebURLLoaderImpl::Context::OnReceivedResponse
2429         https://bugs.webkit.org/show_bug.cgi?id=103563
2430
2431         A subresource could receive a body on a 404 if its call to CachedResource::error() resulted in a nested message loop.
2432         That caused a crash when data was received, as the Subresource was in the Finished state already. Now when receiving
2433         data we ignore these bodies, avoiding the crash.
2434
2435         Reviewed by Nate Chapin.
2436
2437         No new tests in WebKit, since it required a nested message loop which isn't present in chromium DumpRender tree.
2438         There's a Chrome side browser test, see https://codereview.chromium.org/11778083/
2439
2440         * loader/SubresourceLoader.cpp:
2441         (WebCore::SubresourceLoader::checkForHTTPStatusCodeError):
2442
2443 2013-01-12  Robert Hogan  <robert@webkit.org>
2444
2445         Available height should respect min and max height
2446         https://bugs.webkit.org/show_bug.cgi?id=106479
2447
2448         Reviewed by Ojan Vafai.
2449         
2450         When calculating a relative positioned block's offset as a percentage of its container, respect the min
2451         and max height set on the container
2452
2453         Tests: fast/block/percent-top-respects-max-height.html
2454                fast/block/percent-top-respects-min-height.html
2455
2456         * rendering/RenderBox.cpp:
2457         (WebCore::RenderBox::availableLogicalHeight):
2458
2459 2013-01-12  Victor Carbune  <victor@rosedu.org>
2460
2461         CC Button doesn't always show up
2462         https://bugs.webkit.org/show_bug.cgi?id=106653
2463
2464         Reviewed by Eric Carlson.
2465
2466         Added extra checks to existing test.
2467
2468         * html/shadow/MediaControls.cpp:
2469         (WebCore::MediaControls::closedCaptionTracksChanged):
2470         Enforced visibility of captions button whenever the track list changes.
2471         (WebCore):
2472         * html/shadow/MediaControls.h:
2473         (MediaControls):
2474
2475 2013-01-11  Dan Beam  <dbeam@chromium.org>
2476
2477         [clean up] Remove HTMLFormElement::AutocompleteResultError in favor of more specific Error reasons
2478         https://bugs.webkit.org/show_bug.cgi?id=106610
2479
2480         Reviewed by Darin Fisher.
2481
2482         No new tests (none needed).
2483
2484         * html/HTMLFormElement.cpp: 
2485         (WebCore::HTMLFormElement::finishRequestAutocomplete): Removed handling of AutocompleteResultError.
2486         * html/HTMLFormElement.h: Removed HTMLFormElement::AutocompleteResultError in favor of more specific errors.
2487
2488 2013-01-10  Filip Pizlo  <fpizlo@apple.com>
2489
2490         JITThunks should not compile only because of luck
2491         https://bugs.webkit.org/show_bug.cgi?id=105696
2492
2493         Rubber stamped by Sam Weinig.
2494
2495         All .cpp files that use the JSC internal API must now transitively include
2496         Operations.h, and none of the major JSC headers do it for you to avoid
2497         circularity. WebCore doesn't have to worry about circularity with JSC, so
2498         this changes all of the major WebCore JSC base headers to include
2499         Operations.h.
2500
2501         * bindings/js/BindingState.h:
2502         * bindings/js/JSArrayBufferViewHelper.h:
2503         * bindings/js/JSCustomXPathNSResolver.h:
2504         * bindings/js/JSDOMBinding.h:
2505         * bindings/js/JSDOMGlobalObject.h:
2506         * bindings/js/JSDictionary.h:
2507         * bindings/js/JSMessagePortCustom.h:
2508         * bindings/js/JSNodeFilterCondition.h:
2509         * bindings/js/ScriptValue.h:
2510         * bindings/js/ScriptWrappable.h:
2511         * bindings/js/SerializedScriptValue.cpp:
2512         * bridge/c/c_utility.h:
2513         * bridge/jsc/BridgeJSC.h:
2514         * dom/Node.cpp:
2515         * html/HTMLCanvasElement.cpp:
2516         * html/HTMLImageLoader.cpp:
2517         * plugins/efl/PluginViewEfl.cpp:
2518         * xml/XMLHttpRequest.cpp:
2519
2520 2013-01-11  Emil A Eklund  <eae@chromium.org>
2521
2522         offsetWidth/height incorrect for images when zoomed
2523         https://bugs.webkit.org/show_bug.cgi?id=106624
2524
2525         Reviewed by Levi Weintraub.
2526         
2527         offsetWidth and height are incorrect for images at certain zoom
2528         levels due to flooring the values ones adjusted for zoom.
2529         By rounding the value instead we avoid the problem and return
2530         the right size.
2531
2532         Test: fast/images/zoomed-offset-size.html
2533
2534         * dom/Element.cpp:
2535         (WebCore::Element::offsetWidth):
2536         (WebCore::Element::offsetHeight):
2537         (WebCore::Element::clientWidth):
2538         (WebCore::Element::clientHeight):
2539         Change to round (as opposed to floor) the zoom adjusted value.
2540         
2541         * rendering/RenderObject.h:
2542         (WebCore::adjustLayoutUnitForAbsoluteZoom):
2543         * rendering/style/RenderStyle.h:
2544         (WebCore::adjustLayoutUnitForAbsoluteZoom):
2545         Add LayoutUnit version of adjustForAbsoluteZoom to avoid float
2546         conversion.
2547
2548 2013-01-11  Ojan Vafai  <ojan@chromium.org>
2549
2550         Fixed width overrides intrinsic min-width/max-width for text inputs and listboxes
2551         https://bugs.webkit.org/show_bug.cgi?id=106675
2552
2553         Reviewed by Emil A Eklund.
2554
2555         Implement computeIntrinsicLogicalWidths so that RenderBox::computeLogicalWidthInRegionUsing
2556         can get the correct intrinsic sizes instead of the preferred sizes.
2557
2558         Test: fast/forms/select/listbox-intrinsic-min-width-applies-with-fixed-width.html
2559
2560         * rendering/RenderListBox.cpp:
2561         (WebCore::RenderListBox::computeIntrinsicLogicalWidths):
2562         (WebCore):
2563         (WebCore::RenderListBox::computePreferredLogicalWidths):
2564         * rendering/RenderListBox.h:
2565         (RenderListBox):
2566         * rendering/RenderTextControl.cpp:
2567         (WebCore::RenderTextControl::computeIntrinsicLogicalWidths):
2568         (WebCore):
2569         (WebCore::RenderTextControl::computePreferredLogicalWidths):
2570         * rendering/RenderTextControl.h:
2571         (RenderTextControl):
2572
2573 2013-01-10  Ojan Vafai  <ojan@chromium.org>
2574
2575         Setting width overrides intrinsic min-width/max-width on flexboxes and their subclasses
2576         https://bugs.webkit.org/show_bug.cgi?id=106617
2577
2578         Reviewed by Tony Chang.
2579
2580         Override computeIntrinsicLogicalWidths for all RenderFlexibleBox and RenderDeprecatedFlexibleBox
2581         classes that override computePreferredLogicalWidths so that RenderBox can use
2582         computeIntrinsicLogicalWidths in order to get the correct intrinsic values.
2583
2584         Tests: css3/flexbox/intrinsic-min-width-applies-with-fixed-width.html
2585                fast/flexbox/intrinsic-min-width-applies-with-fixed-width.html
2586                fast/forms/select/intrinsic-min-width-applies-with-fixed-width.html
2587
2588         * rendering/RenderBox.cpp:
2589         (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
2590         fit-content needs to use the intrinsic sizes not the preferred sizes
2591         since a fixed width overrides the preferred size.
2592         As best I can tell, the sizesLogicalWidthToFitContent codepath can keep
2593         using preferred widths, which are considerably faster, since that's only used
2594         computing width values. Added a clause to that if-statement to make this more
2595         explicit.
2596
2597         * rendering/RenderDeprecatedFlexibleBox.cpp:
2598         (WebCore::RenderDeprecatedFlexibleBox::computeIntrinsicLogicalWidths):
2599         (WebCore::RenderDeprecatedFlexibleBox::computePreferredLogicalWidths):
2600         * rendering/RenderDeprecatedFlexibleBox.h:
2601         (RenderDeprecatedFlexibleBox):
2602         * rendering/RenderFlexibleBox.cpp:
2603         (WebCore::RenderFlexibleBox::computeIntrinsicLogicalWidths):
2604         (WebCore):
2605         (WebCore::RenderFlexibleBox::computePreferredLogicalWidths):
2606         * rendering/RenderFlexibleBox.h:
2607         * rendering/RenderMenuList.cpp:
2608         (WebCore::RenderMenuList::computeIntrinsicLogicalWidths):
2609         (WebCore):
2610         (WebCore::RenderMenuList::computePreferredLogicalWidths):
2611         * rendering/RenderMenuList.h:
2612         (RenderMenuList):
2613         * rendering/RenderSlider.cpp:
2614         (WebCore::RenderSlider::computeIntrinsicLogicalWidths):
2615         (WebCore):
2616         (WebCore::RenderSlider::computePreferredLogicalWidths):
2617         * rendering/RenderSlider.h:
2618         (RenderSlider):
2619         No logic changes in any of these computeIntrinsic methods. Just moving
2620         the code over from the computePreferred methods.
2621
2622 2013-01-11  Tony Gentilcore  <tonyg@chromium.org>
2623
2624         Move HTMLTokenTypes to its own file
2625         https://bugs.webkit.org/show_bug.cgi?id=106722
2626
2627         Reviewed by Levi Weintraub.
2628
2629         Also mark AtomicHTMLToken ctor as explicit.
2630
2631         No new tests because no new functionality.
2632
2633         * GNUmakefile.list.am:
2634         * Target.pri:
2635         * WebCore.gypi:
2636         * WebCore.vcproj/WebCore.vcproj:
2637         * WebCore.xcodeproj/project.pbxproj:
2638         * html/parser/HTMLToken.h:
2639         (WebCore::AtomicHTMLToken::AtomicHTMLToken):
2640         * html/parser/HTMLTokenTypes.h: Added.
2641         (WebCore):
2642         (HTMLTokenTypes):
2643         (DoctypeData):
2644         (WebCore::HTMLTokenTypes::DoctypeData::DoctypeData):
2645
2646 2013-01-11  Elliott Sprehn  <esprehn@chromium.org>
2647
2648         No need to initialize RefPtrs to 0 in ElementRareData
2649         https://bugs.webkit.org/show_bug.cgi?id=106717
2650
2651         Reviewed by Ryosuke Niwa.
2652
2653         RefPtrs initialize themself to null, so there's no reason
2654         to do it manually. This was code leftover from when
2655         PseudoElements were stored in bare ptrs instead of in
2656         RefPtrs.
2657
2658         No new tests, just refactoring.
2659
2660         * dom/ElementRareData.h:
2661         (WebCore::ElementRareData::ElementRareData):
2662
2663 2013-01-11  Huang Dongsung  <luxtella@company100.net>
2664
2665         [TexMap] Rename current[Transform|Opacity|Filters] in TextureMapperLayer.
2666         https://bugs.webkit.org/show_bug.cgi?id=105760
2667
2668         Reviewed by Noam Rosenthal.
2669
2670         TextureMapperLayer has two transform members: an original value and a
2671         changeable value. The changeable value would be changed by animations.
2672         This patch puts 'current' prefix on the changeable value to clarify
2673         its purpose. Opacity and filters ditto.
2674
2675         No new tests. Refactoring only.
2676
2677         * platform/graphics/texmap/TextureMapperLayer.cpp:
2678         (WebCore::TextureMapperLayer::computeTransformsRecursive):
2679         (WebCore::TextureMapperLayer::paintSelf):
2680         (WebCore::TextureMapperLayer::paintSelfAndChildren):
2681         (WebCore::TextureMapperLayer::intermediateSurfaceRect):
2682         (WebCore::TextureMapperLayer::shouldPaintToIntermediateSurface):
2683         (WebCore::TextureMapperLayer::isVisible):
2684         (WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica):
2685         (WebCore::TextureMapperLayer::paintRecursive):
2686         (WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
2687         (WebCore::TextureMapperLayer::syncAnimations):
2688         (WebCore::TextureMapperLayer::setScrollPositionDeltaIfNeeded):
2689         * platform/graphics/texmap/TextureMapperLayer.h:
2690         (WebCore::TextureMapperLayer::TextureMapperLayer):
2691         (TextureMapperLayer):
2692         (WebCore::TextureMapperLayer::State::State):
2693
2694 2013-01-11  Tony Gentilcore  <tonyg@chromium.org>
2695
2696         Move constructTreeFromHTMLToken into HTMLDocumentParser
2697         https://bugs.webkit.org/show_bug.cgi?id=106694
2698
2699         Reviewed by Adam Barth.
2700
2701         This way it will sit parallel to a new constructTreeFromCompactHTMLToken method.
2702
2703         No new tests because no new functionality.
2704
2705         * html/parser/HTMLDocumentParser.cpp:
2706         (WebCore::HTMLDocumentParser::pumpTokenizer):
2707         (WebCore::HTMLDocumentParser::constructTreeFromHTMLToken):
2708         (WebCore):
2709         * html/parser/HTMLDocumentParser.h:
2710         * html/parser/HTMLTreeBuilder.cpp:
2711         * html/parser/HTMLTreeBuilder.h:
2712         (HTMLTreeBuilder):
2713
2714 2013-01-11  Robert Iannucci  <iannucci@chromium.org>
2715
2716         Explicitly set msvs_cygwin_shell to true for actions in WebKit
2717         https://bugs.webkit.org/show_bug.cgi?id=106706
2718
2719         Reviewed by Tony Chang.
2720
2721         Currently, msvs_cygwin_shell is set to 1 by default. This patch
2722         explicitly sets it on the actions which will break if msvs_cygwin_shell
2723         were set to 0. This is in preparation for changing the default value of
2724         msvs_cygwin_shell, which in turn is in preparation of the removal of
2725         cygwin as a buld-system requirement.
2726
2727         Since this change will have no semantic effect, no new tests are
2728         required.
2729
2730         * WebCore.gyp/WebCore.gyp:
2731
2732 2013-01-11  Joshua Bell  <jsbell@chromium.org>
2733
2734         IndexedDB: IDBTransaction should manage lifetime of IDBRequests
2735         https://bugs.webkit.org/show_bug.cgi?id=106678
2736
2737         Reviewed by Tony Chang.
2738
2739         Ensure reference count of IDBRequests don't bounce off zero if there are no script
2740         references are while the events are arriving.
2741
2742         No new tests - no detectable behavior changes.
2743
2744         * Modules/indexeddb/IDBRequest.cpp:
2745         (WebCore::IDBRequest::create): Register with transaction (which now takes a ref) here to...
2746         (WebCore::IDBRequest::IDBRequest): ...avoid having to relax adoption requirements here.
2747         * Modules/indexeddb/IDBTransaction.cpp: Keep RefPtr<>s to outstanding requests.
2748         (WebCore::IDBTransaction::~IDBTransaction):
2749         (WebCore::IDBTransaction::abort):
2750         (WebCore::IDBTransaction::onAbort):
2751         * Modules/indexeddb/IDBTransaction.h:
2752
2753 2013-01-11  James Simonsen  <simonjam@chromium.org>
2754
2755         [Resource Timing] XMLHttpRequests should have initiator type 'xmlhttprequest'
2756         https://bugs.webkit.org/show_bug.cgi?id=106409
2757
2758         Reviewed by Nate Chapin.
2759
2760         The initiator is passed through ThreadableLoaderOptions to the CachedResourceRequest. This is
2761         optional, so other users of ThreadableLoader will have the default initiator of 'request'. Note
2762         that synchronous XHRs don't show up in the Resource Timing buffer yet.
2763
2764         Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_initiator_types.html
2765
2766         * loader/DocumentThreadableLoader.cpp:
2767         (WebCore::DocumentThreadableLoader::loadRequest):
2768         * loader/ThreadableLoader.h:
2769         (ThreadableLoaderOptions):
2770         * loader/cache/CachedResourceRequestInitiators.cpp:
2771         (WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):
2772         * loader/cache/CachedResourceRequestInitiators.h:
2773         (CachedResourceRequestInitiators):
2774         * xml/XMLHttpRequest.cpp:
2775         (WebCore::XMLHttpRequest::createRequest):
2776
2777 2013-01-11  James Simonsen  <simonjam@chromium.org>
2778
2779         Restore old semantics to webkitRequestAnimationFrame callbacks
2780         https://bugs.webkit.org/show_bug.cgi?id=106697
2781
2782         Reviewed by James Robinson.
2783
2784         Sites that use GWT <= 2.4 are buggy and rely on Date.now()-like callback values.
2785         We'll restore that behavior to the prefixed version of webkitRequestAnimationFrame.
2786         requestAnimationFrame will continue to follow the spec.
2787
2788         Test: fast/animation/request-animation-frame-prefix.html
2789
2790         * dom/RequestAnimationFrameCallback.h:
2791         (RequestAnimationFrameCallback):
2792         * dom/ScriptedAnimationController.cpp:
2793         (WebCore::ScriptedAnimationController::serviceScriptedAnimations):
2794         * page/DOMWindow.cpp:
2795         (WebCore::DOMWindow::requestAnimationFrame):
2796         (WebCore):
2797         (WebCore::DOMWindow::webkitRequestAnimationFrame):
2798         * page/DOMWindow.h:
2799         (DOMWindow):
2800         * page/DOMWindow.idl:
2801
2802 2013-01-11  Sheriff Bot  <webkit.review.bot@gmail.com>
2803
2804         Unreviewed, rolling out r139044.
2805         http://trac.webkit.org/changeset/139044
2806         https://bugs.webkit.org/show_bug.cgi?id=106702
2807
2808         Caused various scrolling anomolies on Mac with drag and drop
2809         (Requested by smfr on #webkit).
2810
2811         * page/AutoscrollController.cpp:
2812         (WebCore::AutoscrollController::AutoscrollController):
2813         (WebCore::AutoscrollController::autoscrollTimerFired):
2814         * page/AutoscrollController.h:
2815         (WebCore):
2816         (AutoscrollController):
2817         * page/EventHandler.cpp:
2818         (WebCore::EventHandler::updateDragAndDrop):
2819         * rendering/RenderBox.cpp:
2820         (WebCore):
2821         (WebCore::RenderBox::autoscroll):
2822         * rendering/RenderBox.h:
2823         (RenderBox):
2824         * rendering/RenderLayer.cpp:
2825         (WebCore::RenderLayer::autoscroll):
2826         * rendering/RenderLayer.h:
2827         (RenderLayer):
2828         * rendering/RenderListBox.cpp:
2829         (WebCore::RenderListBox::autoscroll):
2830         * rendering/RenderListBox.h:
2831         (RenderListBox):
2832         * rendering/RenderTextControlSingleLine.cpp:
2833         (WebCore::RenderTextControlSingleLine::autoscroll):
2834         * rendering/RenderTextControlSingleLine.h:
2835         (RenderTextControlSingleLine):
2836
2837 2013-01-11  Rafael Weinstein  <rafaelw@chromium.org>
2838
2839         Prevent HTMLPreloadScanner from fetching resources inside <template>
2840         https://bugs.webkit.org/show_bug.cgi?id=106687
2841
2842         Reviewed by Adam Barth.
2843
2844         This patch adds a simple counter to the preload scanner which increments on template start
2845         tag and decrements on template element. It only fetchs resources when the counter is at zero
2846         (i.e. for elements not contained by a template element).
2847
2848         Test re-enabled within fast/dom/HTMLTemplateElement/inertContents.html
2849
2850         * html/parser/HTMLPreloadScanner.cpp:
2851         (WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
2852         (WebCore::HTMLPreloadScanner::processToken):
2853         * html/parser/HTMLPreloadScanner.h:
2854         (HTMLPreloadScanner):
2855
2856 2013-01-11  Tony Gentilcore  <tonyg@chromium.org>
2857
2858         We should be able to checkpoint and restore the HTMLTokenizer across threads
2859         https://bugs.webkit.org/show_bug.cgi?id=106597
2860
2861         Based on patch by Adam Barth.
2862
2863         This has the ability to create a checkpoint any time the parser is blocked on a script.
2864         We clear m_appropriateEndTagName after each end tag is flushed so that the ASSERT in
2865         canCreateCheckpoint() will pass.
2866
2867         Reviewed by Adam Barth.
2868
2869         No new tests because no new functionality.
2870
2871         * html/parser/HTMLDocumentParser.cpp:
2872         (WebCore::HTMLDocumentParser::HTMLDocumentParser):
2873         (WebCore::HTMLDocumentParser::pumpTokenizer):
2874         * html/parser/HTMLDocumentParser.h:
2875         (WebCore):
2876         (HTMLDocumentParser):
2877         * html/parser/HTMLTokenizer.cpp:
2878         (WebCore):
2879         (WebCore::HTMLTokenizer::canCreateCheckpoint):
2880         (WebCore::HTMLTokenizer::createCheckpoint):
2881         (WebCore::HTMLTokenizer::restoreFromCheckpoint):
2882         * html/parser/HTMLTokenizer.h:
2883         (HTMLTokenizer):
2884         (Checkpoint):
2885         (WebCore::HTMLTokenizer::Checkpoint::Checkpoint):
2886         * xml/parser/MarkupTokenizerBase.h:
2887         (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::InputStreamPreprocessor):
2888         (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::skipNextNewLine):
2889         (InputStreamPreprocessor):
2890         (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::reset):
2891
2892 2013-01-11  Tony Chang  <tony@chromium.org>
2893
2894         [chromium] Don't regenerate all bindings when any idl file changes
2895         https://bugs.webkit.org/show_bug.cgi?id=106604
2896
2897         Reviewed by Kentaro Hara.
2898
2899         Currently, every idl file is a dependency of generating the supplemental dependency map
2900         and generating bindings is a dependency of the map. This means that touching any idl file
2901         causes us to regenerate all the bindings.
2902
2903         Change it so that generating bindings only depends on the idl files that have Supplemental= in them.
2904         We only have 24 idl files with Supplemental (3.7% of the 638 idl files in WebCore) so modifying
2905         any of those will cause all bindings to be regenerated.
2906
2907         If you add or remove a new idl file, you have to rerun gyp which will fix up any dependencies.
2908         If you edit an existing file and add Supplemental= to it, you will now need to rerun gyp_{webkit,chromium}.
2909         I think that's a reasonable tradeoff since it seems highly unlikely that you would adding Supplemental=
2910         to an existing file without renaming it. The bots will always be fine because they always run
2911         gyp after updating.
2912
2913         No new tests, this is a build only change.
2914
2915         * WebCore.gyp/WebCore.gyp: Remove <(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp, which was causing
2916         the full rebuild. The step to generate this file is still a hard dependency so it will still be generated and
2917         used by generate-bindings.pl. Also remove <@(webcore_test_support_idl_files). This was saying we should regenerate
2918         all bindings if a test idl file changed. That doesn't make sense.
2919         * WebCore.gyp/scripts/supplemental_idl_files.py: Added.
2920         (DoMain):
2921
2922 2013-01-11  Alexandru Chiculita  <achicu@adobe.com>
2923
2924         Element is displayed behind a composited layer when clipping is used on a previous element
2925         https://bugs.webkit.org/show_bug.cgi?id=104981
2926
2927         Reviewed by Simon Fraser.
2928
2929         RenderLayerCompositor::computeCompositingRequirements uses the local bounding box of the layers to optimize the number of composited 
2930         layers that are created. That's needed in order to make sure that composited layers that are displayed behind non-composited
2931         layers are correctly promoting the layers in front to be composited. Otherwise the non-composited layers are rendered
2932         in the parent composited layer, displaying behind the other composited layers. That might be wrong as the correct paint order might not be
2933         preserved.
2934
2935         In order to make animations work, there's a flag that will disable that optimization. That's because the animations run in the platform
2936         layer and the platform layer doesn't know about the layers that are not promoted to composited layers. When the overlapping of the layers
2937         is computed it just uses the start or the stop state, but no intermediate states. For that reason, all the 'top' layers in front of animated 
2938         elements will become composited.
2939
2940         When an animation has a clipping rectangle, then we know for sure that the animation is going to be contained inside the clip area, so WebKit 
2941         uses the bounding box of the clipping area to detect the overlapping layers, so there's no need to disable the optimization in that case.
2942
2943         However, if there is a different animation displaying behind the clipping container, we cannot safely disable that optimization anymore. That's
2944         because we still don't know what are the intermediate states of that particular animated layer. The bug was that the optimization was re-enabled
2945         anyway, even in this particular case.
2946
2947         In order to fix it, I changed the logic, so that instead of re-enabling the optimization after a clipping container, it will just avoid to propagate 
2948         the internal state to the following layers when there's no need to so.
2949
2950         Note that 3D transforms behave like animations for now and disable the optimization. Because of that some of the existing tests ended up
2951         creating more layers than needed. That's because the tests had an overflow area that recreated the issue that this patch fixes, but with
2952         3D transforms instead of animations. 3D transforms will be treated in a separate patch.
2953
2954         Tests: compositing/layer-creation/overlap-animation-clipping.html
2955                compositing/layer-creation/overlap-animation-container.html
2956
2957         * rendering/RenderLayerCompositor.cpp:
2958         (WebCore::RenderLayerCompositor::computeCompositingRequirements):
2959
2960 2013-01-11  Philip Rogers  <pdr@google.com>
2961
2962         Skip CachedImage::CreateImage if we don't have image data
2963         https://bugs.webkit.org/show_bug.cgi?id=106156
2964
2965         Reviewed by Nate Chapin.
2966
2967         This patch skips image creation if we do not have image data. This can occur during
2968         cache revalidation when the revalidation request (304 not modified) comes back without
2969         any content. In this revalidation case, the http spec requires that a mimetype not be set
2970         on the response to prevent a cached resource from having a different mimetype
2971         from the revalidated resource. Because revalidation requests do not have a mimetype,
2972         CachedImage::CreateImage() will fail on SVG images. This patch prevents
2973         CachedImage::CreateImage() from being called during revalidation.
2974
2975         No new tests as there are no observable changes from this patch.
2976
2977         * loader/cache/CachedImage.cpp:
2978         (WebCore::CachedImage::data):
2979
2980 2013-01-11  Kentaro Hara  <haraken@chromium.org>
2981
2982         Unreviewed. Rebaselined run-bindings-tests.
2983
2984         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
2985         (WebCore::TestEventConstructorV8Internal::attr1AttrGetter):
2986         (WebCore::TestEventConstructorV8Internal::attr2AttrGetter):
2987         * bindings/scripts/test/V8/V8TestException.cpp:
2988         (WebCore::TestExceptionV8Internal::nameAttrGetter):
2989         * bindings/scripts/test/V8/V8TestInterface.cpp:
2990         (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrGetter):
2991         (WebCore::TestInterfaceV8Internal::supplementalStr1AttrGetter):
2992         (WebCore::TestInterfaceV8Internal::supplementalStr2AttrGetter):
2993         * bindings/scripts/test/V8/V8TestObj.cpp:
2994         (WebCore::TestObjV8Internal::readOnlyStringAttrAttrGetter):
2995         (WebCore::TestObjV8Internal::staticStringAttrAttrGetter):
2996         (WebCore::TestObjV8Internal::stringAttrAttrGetter):
2997         (WebCore::TestObjV8Internal::reflectedStringAttrAttrGetter):
2998         (WebCore::TestObjV8Internal::reflectedURLAttrAttrGetter):
2999         (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrGetter):
3000         (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrGetter):
3001         (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrGetter):
3002         (WebCore::TestObjV8Internal::hashAttrGetter):
3003         (WebCore::TestObjV8Internal::conditionalMethod1Callback):
3004
3005 2013-01-11  Levi Weintraub  <leviw@chromium.org>
3006
3007         RenderGeometryMap and TransformState disagree with sub-pixel layout and translations
3008         https://bugs.webkit.org/show_bug.cgi?id=106047
3009
3010         Reviewed by Simon Fraser.
3011
3012         Mirror RenderGeometryMap's optimization for integer-translated transforms in TransformState.
3013         This avoids the current behavior where the two can disagree on mappings, since RenderGeometryMap
3014         pixel-snapped later when a translation occurred between two sub-pixel containers.
3015
3016         Test: fast/layers/geometry-map-transform-state-translation-mismatch.html
3017
3018         * platform/graphics/transforms/TransformState.h:
3019         (WebCore::TransformState::setQuad): Clear accumulatedOffset when setting a new quad. Note: this
3020         implementation only works properly when only tracking a quad.
3021         * platform/graphics/transforms/TransformState.cpp:
3022         (WebCore::TransformState::applyTransform): apply integral translations to the accumulatedOffset
3023         for performance and consistency with RenderGeometryMap.
3024
3025 2013-01-11  Abhishek Arya  <inferno@chromium.org>
3026
3027         Heap-use-after-free in WebCore::RenderText::computePreferredLogicalWidths
3028         https://bugs.webkit.org/show_bug.cgi?id=95901
3029
3030         Reviewed by Simon Fraser.
3031
3032         Prevent re-entrancy of view layout. Loading of SVG document during font load
3033         causes it to re-enter layout and blowing the style away from underneath.
3034         
3035         Test: Go to http://www.speckproducts.com and make sure crash does not happen.
3036
3037         * dom/Document.cpp:
3038         (WebCore::Document::updateLayout):
3039
3040 2013-01-11  Kentaro Hara  <haraken@chromium.org>
3041
3042         [V8] Do not create a local handle for a cached v8 string that is returned to V8 immediately
3043         https://bugs.webkit.org/show_bug.cgi?id=106557
3044
3045         Reviewed by Adam Barth.
3046
3047         Currently we are always creating a local handle for a cached
3048         V8 string returned to V8:
3049
3050           Handle<Value> v8String(StringImpl* impl, Isolate* isolate) {
3051             ...;
3052             return Local<String>::New(isolate, m_cachedString);
3053           }
3054
3055         However, we don't need to create a local handle in a case
3056         where it is guaranteed that no V8 object allocation is conducted
3057         before a control flow returns back to V8. In particular, in a case
3058         where a cached V8 string is immediately returned to V8, we don't
3059         need to create a local handle:
3060
3061           Handle<Value> xxxxAttrGetter() {
3062             ...;
3063             return v8String(imp->xxxx(), isolate);  // This can return a persistent handle safely.
3064           }
3065
3066         This patch improves performance of div.id by 9.2%.
3067
3068         No tests. No change in behavior.
3069
3070         * bindings/scripts/CodeGeneratorV8.pm:
3071         (GenerateNormalAttrGetter):
3072         (GenerateCallbackImplementation):
3073         (GenerateFunctionCallString):
3074         (NativeToJSValue):
3075         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
3076         (WebCore::TestEventConstructorV8Internal::attr1AttrGetter):
3077         (WebCore::TestEventConstructorV8Internal::attr2AttrGetter):
3078         * bindings/scripts/test/V8/V8TestException.cpp:
3079         (WebCore::TestExceptionV8Internal::nameAttrGetter):
3080         * bindings/scripts/test/V8/V8TestInterface.cpp:
3081         (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrGetter):
3082         (WebCore::TestInterfaceV8Internal::supplementalStr1AttrGetter):
3083         (WebCore::TestInterfaceV8Internal::supplementalStr2AttrGetter):
3084         * bindings/scripts/test/V8/V8TestObj.cpp:
3085         (WebCore::TestObjV8Internal::readOnlyStringAttrAttrGetter):
3086         (WebCore::TestObjV8Internal::staticStringAttrAttrGetter):
3087         (WebCore::TestObjV8Internal::stringAttrAttrGetter):
3088         (WebCore::TestObjV8Internal::reflectedStringAttrAttrGetter):
3089         (WebCore::TestObjV8Internal::reflectedURLAttrAttrGetter):
3090         (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrGetter):
3091         (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrGetter):
3092         (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrGetter):
3093         (WebCore::TestObjV8Internal::hashAttrGetter):
3094         (WebCore::TestObjV8Internal::conditionalMethod1Callback):
3095         * bindings/v8/V8Binding.h:
3096         (WebCore::v8String):
3097         (WebCore::v8StringOrNull):
3098         (WebCore::v8StringOrUndefined):
3099         * bindings/v8/V8ValueCache.cpp:
3100         (WebCore::StringCache::v8ExternalStringSlow):
3101         * bindings/v8/V8ValueCache.h:
3102         (WebCore::StringCache::v8ExternalString):
3103         (StringCache):
3104
3105 2013-01-11  Carlos Garcia Campos  <cgarcia@igalia.com>
3106
3107         Unreviewed. Fix make distcheck.
3108
3109         * GNUmakefile.list.am: Add missing header files.
3110
3111 2013-01-11  Xianzhu Wang  <wangxianzhu@chromium.org>
3112
3113         RenderLayerCompositor should let ScrollingCoordinator update main thread scrolling reasons after change of layers
3114         https://bugs.webkit.org/show_bug.cgi?id=105652
3115
3116         Reviewed by Simon Fraser.
3117
3118         Let ScrollingCoordinator know the change of ViewportConstrainedNotCompositedReason in time.
3119         By the way moved RenderLayerCompositor::FixedPositionLayerNotCompositedReason to RenderLayer::ViewportConstrainedNotCompositedReason.
3120
3121         Tests: compositing/layer-creation/fixed-position-in-view-dynamic.html
3122                compositing/layer-creation/fixed-position-out-of-view-dynamic.html
3123
3124         * page/scrolling/ScrollingCoordinator.cpp:
3125         (WebCore::ScrollingCoordinator::hasVisibleSlowRepaintViewportConstrainedObjects):
3126         (WebCore::ScrollingCoordinator::mainThreadScrollingReasons):
3127         (WebCore::ScrollingCoordinator::mainThreadScrollingReasonsAsText):
3128         * page/scrolling/ScrollingCoordinator.h:
3129         (ScrollingCoordinator):
3130         * page/scrolling/mac/ScrollingCoordinatorMac.h:
3131         (WebCore::ScrollingCoordinatorMac::hasVisibleSlowRepaintViewportConstrainedObjects):
3132         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
3133         (WebCore::logThreadedScrollingMode):
3134         * rendering/RenderLayer.cpp:
3135         (WebCore::RenderLayer::RenderLayer):
3136         (WebCore::RenderLayer::paintLayer):
3137         * rendering/RenderLayer.h:
3138         (RenderLayer): Moved RenderLayerCompositor::FixedPositionLayerNotCompositedReason to here and renamed it to ViewportConstrainedNotCompositedReason.
3139         (WebCore::RenderLayer::setViewportConstrainedNotCompositedReason):
3140         (WebCore::RenderLayer::viewportConstrainedNotCompositedReason):
3141         * rendering/RenderLayerCompositor.cpp:
3142         (WebCore::RenderLayerCompositor::updateCompositingLayers):
3143         (WebCore::RenderLayerCompositor::updateBacking): Now updates ViewportConstrainedNotCompositedReason here instead of in computeCompositingRequirements before so that the reason is updated in time.
3144         (WebCore::RenderLayerCompositor::computeCompositingRequirements):
3145         (WebCore::RenderLayerCompositor::needsToBeComposited):
3146         (WebCore::RenderLayerCompositor::requiresCompositingLayer):
3147         (WebCore::RenderLayerCompositor::reasonForCompositing):
3148         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
3149         (WebCore::RenderLayerCompositor::reportMemoryUsage):
3150         * rendering/RenderLayerCompositor.h:
3151         (RenderLayerCompositor):
3152
3153 2013-01-11  Kenneth Russell  <kbr@google.com>
3154
3155         [Chromium] WebGL typed array constructor crashes on exception
3156         https://bugs.webkit.org/show_bug.cgi?id=106308
3157
3158         Reviewed by Kentaro Hara.
3159
3160         Check for empty handles (indicating exception thrown) after calls
3161         into V8 VM.
3162
3163         Added new case from Khronos typed array conformance tests to
3164         fast/canvas/webgl/array-unit-tests.html.
3165
3166         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
3167         (WebCore::constructWebGLArray):
3168             Check for empty handles after calls into V8 VM.
3169
3170 2013-01-11  Kentaro Hara  <haraken@chromium.org>
3171
3172         [V8] Slightly optimize getWrapperFast()
3173         https://bugs.webkit.org/show_bug.cgi?id=106667
3174
3175         Reviewed by Adam Barth.
3176
3177         This patch improves an if condition in getWrapperFast(),
3178         as commented in DOMDataStore.h.
3179
3180         This patch improves performance of div.firstChild from
3181         15.1 ns to 14.0 ns (+7.8%), although I couldn't observe
3182         performance improvement in Dromaeo/dom-traverse.
3183
3184         No tests. No change in behavior.
3185
3186         * bindings/v8/DOMDataStore.h:
3187         (WebCore::DOMDataStore::getWrapperFast):
3188
3189 2013-01-11  Florin Malita  <fmalita@chromium.org>
3190
3191         [SVG] Suppress resource rebuilding for unattached and shadow elements
3192         https://bugs.webkit.org/show_bug.cgi?id=106664
3193
3194         Reviewed by Dirk Schulze.
3195
3196         SVGStyledElement::buildPendingResourcesIfNeeded() can be called while cloning a subtree
3197         (as nodes are inserted into the clone, while still detached) or when elements are inserted
3198         into the shadow tree. Both of these cases are problematic for SVGUseElement and can trigger
3199         indirect recursion in SVGUseElement::buildPendingResource.
3200
3201         Since shadow and !inDocument() nodes are of no interest to ID dependents (they cannot be
3202         found by ID in the document), the patch short-circuits buildPendingResource() for these
3203         cases.
3204
3205         Test: svg/custom/use-rebuild-resources-crash.svg
3206
3207         * svg/SVGStyledElement.cpp:
3208         (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
3209
3210 2013-01-11  Dominic Mazzoni  <dmazzoni@google.com>
3211
3212         AX: Computed hierarchical level is not consistent with aria-level
3213         https://bugs.webkit.org/show_bug.cgi?id=106638
3214
3215         Reviewed by Chris Fleizach.
3216
3217         Make hierarchicalLevel computation 1-based to match the aria-level spec.
3218
3219         Extends an existing test: platform/mac/accessibility/aria-tree.html.
3220
3221         * accessibility/AccessibilityNodeObject.cpp:
3222         (WebCore::AccessibilityNodeObject::hierarchicalLevel):
3223         * accessibility/AccessibilityObject.h:
3224         (AccessibilityObject):
3225         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
3226         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
3227
3228 2013-01-11  Vsevolod Vlasov  <vsevik@chromium.org>
3229
3230         Web Inspector: Workspace should support several projects and should not have temporary UISourceCodes.
3231         https://bugs.webkit.org/show_bug.cgi?id=105856
3232
3233         Reviewed by Pavel Feldman.
3234
3235         Workspace now supports several projects with the networkProject being a main one.
3236         Replaced temporary UISourceCodes with specific projects (debugger and liveedit).
3237         The concept of workspace reset on navigation is now replaced with project reset concept instead.
3238         Introduced snippets project (that is not reset on navigation).
3239         Script mappings are now reset on GlobalObjectCleared event.
3240
3241         * inspector/front-end/BreakpointManager.js:
3242         (WebInspector.BreakpointManager):
3243         (WebInspector.BreakpointManager.prototype._innerSetBreakpoint):
3244         (WebInspector.BreakpointManager.prototype._filteredBreakpointLocations):
3245         (WebInspector.BreakpointManager.prototype.toggleAllBreakpoints):
3246         (WebInspector.BreakpointManager.prototype.removeAllBreakpoints):
3247         (WebInspector.BreakpointManager.prototype._projectWillReset.get for):
3248         (WebInspector.BreakpointManager.prototype._projectWillReset):
3249         * inspector/front-end/CSSStyleModel.js:
3250         (WebInspector.CSSStyleModel):
3251         (WebInspector.CSSStyleModel.prototype._inspectedURLChanged):
3252         (WebInspector.CSSStyleModel.prototype._resetSourceMappings):
3253         (WebInspector.CSSStyleModelResourceBinding):
3254         (WebInspector.CSSStyleModelResourceBinding.prototype._viaInspectorResourceURL):
3255         (WebInspector.CSSStyleModelResourceBinding.prototype._reset):
3256         * inspector/front-end/CompilerScriptMapping.js:
3257         (WebInspector.CompilerScriptMapping):
3258         (WebInspector.CompilerScriptMapping.prototype._debuggerReset):
3259         * inspector/front-end/DebuggerScriptMapping.js:
3260         * inspector/front-end/DefaultScriptMapping.js:
3261         (WebInspector.DefaultScriptMapping):
3262         (WebInspector.DefaultScriptMapping.prototype.addScript):
3263         (WebInspector.DefaultScriptMapping.prototype._debuggerReset):
3264         * inspector/front-end/ExtensionServer.js:
3265         (WebInspector.ExtensionServer.prototype._onGetPageResources):
3266         * inspector/front-end/FilteredItemSelectionDialog.js:
3267         (WebInspector.OpenResourceDialog.show):
3268         * inspector/front-end/LiveEditSupport.js:
3269         (WebInspector.LiveEditSupport):
3270         (WebInspector.LiveEditSupport.prototype.uiSourceCodeForLiveEdit):
3271         (WebInspector.LiveEditSupport.prototype._debuggerReset):
3272         * inspector/front-end/NetworkUISourceCodeProvider.js:
3273         (WebInspector.NetworkUISourceCodeProvider):
3274         (WebInspector.NetworkUISourceCodeProvider.prototype._mainFrameNavigated):
3275         (WebInspector.NetworkUISourceCodeProvider.prototype._addFile):
3276         (WebInspector.NetworkUISourceCodeProvider.prototype._reset):
3277         * inspector/front-end/ResourceScriptMapping.js:
3278         (WebInspector.ResourceScriptMapping):
3279         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
3280         (WebInspector.ResourceScriptMapping.prototype._debuggerReset):
3281         * inspector/front-end/RevisionHistoryView.js:
3282         (WebInspector.RevisionHistoryView):
3283         (WebInspector.RevisionHistoryView.prototype._projectWillReset):
3284         * inspector/front-end/SASSSourceMapping.js:
3285         (_bindUISourceCode):
3286         * inspector/front-end/ScriptSnippetModel.js:
3287         (WebInspector.ScriptSnippetModel):
3288         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
3289         (WebInspector.ScriptSnippetModel.prototype.reset):
3290         * inspector/front-end/ScriptsNavigator.js:
3291         * inspector/front-end/ScriptsPanel.js:
3292         (WebInspector.ScriptsPanel):
3293         (WebInspector.ScriptsPanel.prototype._addUISourceCode):
3294         (WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
3295         (WebInspector.ScriptsPanel.prototype._removeUISourceCodes):
3296         (WebInspector.ScriptsPanel.prototype._debuggerWasDisabled):
3297         (WebInspector.ScriptsPanel.prototype._debuggerReset):
3298         (WebInspector.ScriptsPanel.prototype._projectWillReset):
3299         (WebInspector.ScriptsPanel.prototype.canShowAnchorLocation):
3300         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
3301         (WebInspector.ScriptsPanel.prototype.showGoToSourceDialog):
3302         * inspector/front-end/SimpleWorkspaceProvider.js:
3303         (WebInspector.SimpleWorkspaceProvider):
3304         (WebInspector.SimpleWorkspaceProvider.prototype.addFile):
3305         (WebInspector.SimpleWorkspaceProvider.prototype.addFileForURL):
3306         (WebInspector.SimpleWorkspaceProvider.prototype.reset):
3307         * inspector/front-end/StylesSourceMapping.js:
3308         (WebInspector.StylesSourceMapping):
3309         (WebInspector.StylesSourceMapping.prototype._projectWillReset):
3310         * inspector/front-end/TabbedEditorContainer.js:
3311         (WebInspector.TabbedEditorContainer.prototype.reset):
3312         * inspector/front-end/UISourceCode.js:
3313         (WebInspector.UISourceCode.prototype.project):
3314         * inspector/front-end/Workspace.js:
3315         (WebInspector.WorkspaceController):
3316         (WebInspector.WorkspaceController.prototype._inspectedURLChanged):
3317         (WebInspector.Project):
3318         (WebInspector.Project.prototype.name):
3319         (WebInspector.Project.prototype.isServiceProject):
3320         (WebInspector.Project.prototype._reset):
3321         (WebInspector.Workspace):
3322         (WebInspector.Workspace.prototype.uiSourceCodeForURL):
3323         (WebInspector.Workspace.prototype.uiSourceCodeForURI):
3324         (WebInspector.Workspace.prototype.addProject):
3325         (WebInspector.Workspace.prototype.project):
3326         (WebInspector.Workspace.prototype.projects):
3327         (WebInspector.Workspace.prototype.uiSourceCodes):
3328         (WebInspector.Workspace.prototype.projectForUISourceCode):
3329         (WebInspector.Workspace.prototype.requestFileContent):
3330         (WebInspector.Workspace.prototype.setFileContent):
3331         (WebInspector.Workspace.prototype.searchInFileContent):
3332         * inspector/front-end/inspector.js:
3333         * inspector/front-end/utilities.js:
3334
3335 2013-01-11  Eugene Klyuchnikov  <eustas@chromium.org>
3336
3337         Web Inspector: [Resources] Make grid columns set configurable.
3338         https://bugs.webkit.org/show_bug.cgi?id=105739
3339
3340         Reviewed by Pavel Feldman.
3341
3342         Added context menu on grid header to hide/show grid columns.
3343         Hidden columns set is persisted.
3344
3345         * inspector/front-end/DataGrid.js:
3346         Fixed show/hide behavior, introduced weight control.
3347         * inspector/front-end/NetworkPanel.js:
3348         Added member to track visibility of columns in detailerd mode. Added
3349         context menu for grid header.
3350
3351 2013-01-11  Andras Becsi  <andras.becsi@digia.com>
3352
3353         [Qt] Fix the build if libxslt is not available but libxml2 is
3354         https://bugs.webkit.org/show_bug.cgi?id=106661
3355
3356         Reviewed by Simon Hausmann.
3357
3358         On Linux building the xml parser sources fails if the needed libxslt
3359         dependencies are not installed but libxml2 is.
3360
3361         * WebCore.pri: add libxml2 to pkg-config if not on mac.
3362
3363 2013-01-11  Stephen Chenney  <schenney@chromium.org>
3364         Objects can be re-added to the AXObjectCache during removal
3365         https://bugs.webkit.org/show_bug.cgi?id=104171
3366
3367         The problem occurs when a label's corresponding element is a sibling
3368         that precedes it in the render tree, and the corresponding element is
3369         removed. The corresponding element's AX render object is removed, but
3370         then recreated when accessibilityIsIgnored() invokes correspondingControl()
3371         on the label. The corresponding renderer then has an AX render object
3372         that survives beyond the deleted renderer, leading to invalid memory
3373         accesses.
3374
3375         The solution is to rearrange the calls to delete the renderer's AX
3376         render object only when we are sure it will no longer be required.
3377
3378         Reviewed by Simon Fraser.
3379
3380         Test: accessibility/corresponding-control-deleted-crash.html
3381
3382         * rendering/RenderObject.cpp:
3383         (WebCore::RenderObject::willBeDestroyed): Move the call to remove the
3384         renderer from the AXCache to after the renderer is removed from the
3385         render tree. This means that the AXObject still exists during renderer
3386         removal, as we require.
3387
3388 2013-01-11  Allan Sandfeld Jensen  <allan.jensen@digia.com>
3389
3390         [Qt][WK1] Web Audio support
3391         https://bugs.webkit.org/show_bug.cgi?id=106651
3392
3393         Reviewed by Jocelyn Turcotte.
3394
3395         Convert JavaScript Uint8Array to QByteArray. This conversion is necessary to support testRunner.setAudioData().
3396
3397         * bridge/qt/qt_runtime.cpp:
3398         (JSC::Bindings::isJSUint8Array):
3399         (Bindings):
3400         (JSC::Bindings::valueRealType):
3401         (JSC::Bindings::convertValueToQVariant):
3402
3403 2013-01-11  Anton Vayvod  <avayvod@chromium.org>
3404
3405         Text Autosizing - elements much narrower than its parent autosizing clusters should be autosized separately.
3406         https://bugs.webkit.org/show_bug.cgi?id=105188
3407
3408         Reviewed by Kenneth Rohde Christiansen.
3409
3410         Some blocks of text might be narrower than their parent clusters and should be autosized separately.
3411         This helps with autosizing for the pages implementing the sidebars as a narrow blocks of text with wide margins and
3412         the main content being positioned atop this margin (or vice versa).
3413
3414         * rendering/TextAutosizer.cpp:
3415         (WebCore::TextAutosizer::isContainerAutosizingCluster):
3416
3417             Returns true if the container is more than 200 pixels narrower than its parent cluster's lowest common
3418             ancestor of all the text nodes.
3419
3420 2013-01-11  Andreas Kling  <akling@apple.com>
3421
3422         Remove unused CSSSelector(QualifiedName) constructor.
3423         <http://webkit.org/b/106652>
3424
3425         Reviewed by Antti Koivisto.
3426
3427         * css/CSSSelector.h:
3428         (CSSSelector):
3429
3430 2013-01-11  Zan Dobersek  <zandobersek@gmail.com>
3431
3432         [GTK] Disable the ENABLE_LEGACY_WEB_AUDIO feature define in release builds
3433         https://bugs.webkit.org/show_bug.cgi?id=106577
3434
3435         Reviewed by Philippe Normand.
3436
3437         The Web Audio feature is not enabled in the release builds, so there's
3438         no need to enable the legacy Web Audio API either.
3439
3440         No new tests - no new functionality.
3441
3442         * GNUmakefile.features.am.in:
3443
3444 2013-01-11  Antoine Quint  <graouts@apple.com>
3445
3446         Web Inspector: Option+Click on Node Expander Doesn't Work the First Time
3447         https://bugs.webkit.org/show_bug.cgi?id=66868
3448
3449         Up to now, the TreeElement.prototype.expandRecursively() method would correctly
3450         expand children recursively based on the provided depth, but would not wait to
3451         perform this task until all child nodes had been populated, which means that this
3452         would only work incrementally with one additional level of child nodes being shown
3453         expanded in the DOM tree upon alt+clicking a given node with a deep hierarchy.
3454         
3455         In order to fix this, this patch adds a new optional argument to the DOMAgent's
3456         requestChildNodes() methods to provide the depth at which we want to retrieve children
3457         of a given node. The DOMAgent provides a new .getSubtree() method that calls
3458         requestChildNodes() with the provided depth.
3459
3460         Then in ElementsTreeOutline, we subclass .expandRecursively() to first call DOMAgent's
3461         new .getSubtree() method and then call the default implementation when all nodes
3462         have been retrieved from the backend.
3463
3464         Reviewed by Pavel Feldman.
3465
3466         Tests: inspector-protocol/dom-request-child-nodes-depth.html
3467                inspector/elements/expand-recursively.html
3468
3469         * inspector/Inspector.json: Add the new `depth` parameter to DOM.requestChildNodes().
3470         * inspector/InspectorDOMAgent.cpp:
3471         (WebCore::InspectorDOMAgent::pushChildNodesToFrontend): Add a new optional `depth` parameter
3472         which defaults to 1.
3473         (WebCore::InspectorDOMAgent::requestChildNodes): Add a new optional `depth` parameter
3474         which defaults to 1 and allows -1 as an unbound value.
3475         * inspecto