077e2f9c9719551c8bdcc95b33bf2bb558bac981
[WebKit.git] / Source / WebCore / ChangeLog
1 2012-12-11  Alexis Menard  <alexis@webkit.org>
2
3         Cleanup: Use consistent naming in CSSParser when dealing with the forward slash operator.
4         https://bugs.webkit.org/show_bug.cgi?id=104699
5
6         Reviewed by Daniel Bates.
7
8         http://trac.webkit.org/changeset/136525 added an helper function to
9         check if a CSSParserValue is a forward slash operator.
10         BorderImageParseContext is also dealing with the forward slash operator
11         but its naming is inconsistent with isForwardSlashOperator(). This is
12         fixed with this patch where BorderImageParseContext::{allowSlash,
13         commitSlash}() is now replaced by BorderImageParseContext::{allowForwardSlashOperator,
14         commitForwardSlashOperator}().
15
16         No new tests : just a renaming, covered by existing tests..
17
18         * css/CSSParser.cpp:
19         (WebCore::CSSParser::parseFillPosition): A little fixup on the way, use
20         isForwardSlashOperator() instead of the current code here.
21         (WebCore::BorderImageParseContext::BorderImageParseContext):
22         (WebCore::BorderImageParseContext::allowForwardSlashOperator):
23         (WebCore::BorderImageParseContext::commitImage):
24         (WebCore::BorderImageParseContext::commitImageSlice):
25         (WebCore::BorderImageParseContext::commitForwardSlashOperator):
26         (WebCore::BorderImageParseContext::commitBorderWidth):
27         (WebCore::BorderImageParseContext::commitBorderOutset):
28         (WebCore::BorderImageParseContext::commitRepeat):
29         (BorderImageParseContext):
30         (WebCore::CSSParser::parseBorderImage):
31
32 2012-12-11  Nate Chapin  <japhet@chromium.org>
33
34         cr-linux valgrind is showing leaks due to r137333.
35
36         Rubber-stamped by Antti Koivisto.
37
38         MainResourceLoader's destructor should call m_resource->removeClient(this) is m_resource is still non-null.
39         The missing removeClient() call will leak the CachedResource.
40
41         No new tests, should shut valgrind up.
42
43         * loader/MainResourceLoader.cpp:
44         (WebCore::MainResourceLoader::~MainResourceLoader):
45
46 2012-12-11  Andreas Kling  <akling@apple.com>
47
48         REGRESSION(r133492): Heap-use-after-free in WebCore::Element::normalizeAttributes
49         <http://webkit.org/b/104488>
50
51         Reviewed by Antti Koivisto.
52
53         Don't cache the AttrNodeList* in a local when iterating over an Element's Attr nodes since
54         that pointer may go stale if JS runs in response to a DOMSubtreeModified event below Node::normalize().
55
56         Test: fast/dom/normalize-attributes-mutation-event-crash.html
57
58         * dom/Element.cpp:
59         (WebCore::Element::normalizeAttributes):
60
61 2012-12-11  Jonathon Jongsma  <jonathon.jongsma@collabora.co.uk>
62
63         [GTK] Soup network logs are frequently interrupted by other logging messages
64         https://bugs.webkit.org/show_bug.cgi?id=104668
65
66         Reviewed by Martin Robinson.
67
68         Set an external soup log printer that uses the WebKit logging
69         infrastructure so that log messages are properly synchronized.
70
71         * platform/network/soup/ResourceHandleSoup.cpp:
72         (WebCore::soupLogPrinter):
73         (WebCore):
74         (WebCore::ensureSessionIsInitialized):
75
76 2012-12-11  Elliott Sprehn  <esprehn@chromium.org>
77
78         Switch to new PseudoElement based :before and :after
79         https://bugs.webkit.org/show_bug.cgi?id=104462
80
81         Reviewed by Antti Koivisto.
82
83         Switch to the new PseudoElement based generated content implementation
84         that moves :before and :after into the DOM. This also switches to using
85         the ComposedShadowTreeWalker for determining the siblings of PseudoElement's
86         making the new generated content implementation support adding :before
87         and :after into <input> elements.
88
89         Tests: fast/css-generated-content/block-inside-inline.html
90                fast/css-generated-content/box-orient.html
91
92         * dom/ComposedShadowTreeWalker.cpp:
93         (WebCore::ComposedShadowTreeWalker::pseudoAwareNextSibling):
94         (WebCore):
95         (WebCore::ComposedShadowTreeWalker::pseudoAwarePreviousSibling):
96         (WebCore::ComposedShadowTreeWalker::traverseParent):
97         * dom/ComposedShadowTreeWalker.h:
98         (ComposedShadowTreeWalker):
99         * dom/Element.cpp:
100         (WebCore::Element::attach):
101         (WebCore::Element::recalcStyle):
102         * dom/Node.cpp:
103         * dom/Node.h:
104         (Node):
105         * dom/NodeRenderingContext.cpp:
106         (WebCore::NodeRenderingContext::nextRenderer):
107         (WebCore::NodeRenderingContext::previousRenderer):
108         (WebCore::NodeRenderingContext::createRendererForElementIfNeeded):
109         * dom/Position.cpp:
110         (WebCore::Position::Position):
111         (WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight):
112         * editing/visible_units.cpp:
113         (WebCore::logicallyPreviousBox):
114         (WebCore::logicallyNextBox):
115         (WebCore::startPositionForLine):
116         (WebCore::endPositionForLine):
117         * html/HTMLTextFormControlElement.cpp:
118         (WebCore::HTMLTextFormControlElement::childShouldCreateRenderer):
119         * page/DragController.cpp:
120         (WebCore::DragController::draggableNode):
121         * rendering/RenderBlock.cpp:
122         (WebCore::RenderBlock::styleDidChange):
123         (WebCore::RenderBlock::splitBlocks):
124         (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
125         (WebCore::RenderBlock::createReplacementRunIn):
126         (WebCore::RenderBlock::isSelectionRoot):
127         * rendering/RenderBlock.h:
128         (RenderBlock):
129         * rendering/RenderButton.cpp:
130         * rendering/RenderButton.h:
131         (RenderButton):
132         * rendering/RenderInline.cpp:
133         (WebCore::RenderInline::styleDidChange):
134         (WebCore::RenderInline::addChildIgnoringContinuation):
135         (WebCore::RenderInline::splitInlines):
136         * rendering/RenderListItem.cpp:
137         (WebCore::RenderListItem::updateMarkerLocation):
138         * rendering/RenderObject.cpp:
139         (WebCore::RenderObject::createVisiblePosition):
140         * rendering/RenderObject.h:
141         (WebCore::RenderObject::nonPseudoNode):
142         (RenderObject):
143         (WebCore::RenderObject::clearNode):
144         (WebCore::RenderObject::generatingNode):
145         * rendering/RenderObjectChildList.cpp:
146         * rendering/RenderObjectChildList.h:
147         (RenderObjectChildList):
148         * rendering/RenderRubyText.cpp:
149         * rendering/RenderRubyText.h:
150         (RenderRubyText):
151         * rendering/RenderTableRow.cpp:
152         (WebCore::RenderTableRow::styleDidChange):
153         * rendering/RenderTableRow.h:
154         * rendering/RenderTableSection.cpp:
155         (WebCore::RenderTableSection::addChild):
156         * rendering/RenderWidget.cpp:
157         (WebCore::RenderWidget::destroy):
158
159 2012-12-11  Jacky Jiang  <zhajiang@rim.com>
160
161         [BlackBerry] Clean up unused defaultViewportArguments in RenderThemeBlackBerry.cpp
162         https://bugs.webkit.org/show_bug.cgi?id=104683
163
164         Reviewed by Rob Buis.
165
166         * platform/blackberry/RenderThemeBlackBerry.cpp:
167         (WebCore::determineFullScreenMultiplier):
168
169 2012-12-11  Nate Chapin  <japhet@chromium.org>
170
171         Route main resource loads through the memory cache.
172         https://bugs.webkit.org/show_bug.cgi?id=49246
173
174         Reviewed by Antti Koivisto.
175
176         Note that this patch doesn't actually enable caching of main resources. That will be done in a later patch.
177         The MainResourceLoader actually has an underlying SubresourceLoader (with the cache layer between them).
178         In several places, the MainResourceLoader's SubresourceLoader is treated as special.
179
180         No new tests, as this is primarily a refactor. A couple of expected results changed slightly.
181
182         * loader/DocumentLoader.cpp:
183         (WebCore::DocumentLoader::setRequest):
184         (WebCore::DocumentLoader::subresource):
185         (WebCore::DocumentLoader::addSubresourceLoader): Because the SubresourceLoader underlying the main resource
186             needs special handling in certain cases, track it separately from the real SubresourceLoaders.
187         (WebCore::DocumentLoader::removeSubresourceLoader):
188         (WebCore::DocumentLoader::startLoadingMainResource):
189         * loader/MainResourceLoader.cpp:
190         (WebCore::MainResourceLoader::MainResourceLoader):
191         (WebCore::MainResourceLoader::receivedError):
192         (WebCore::MainResourceLoader::cancel):
193         (WebCore::MainResourceLoader::clearResource):
194         (WebCore):
195         (WebCore::MainResourceLoader::frameLoader):
196         (WebCore::MainResourceLoader::request):
197         (WebCore::MainResourceLoader::continueAfterNavigationPolicy):
198         (WebCore::MainResourceLoader::resourceData):
199         (WebCore::MainResourceLoader::redirectReceived):
200         (WebCore::MainResourceLoader::willSendRequest):
201         (WebCore::MainResourceLoader::continueAfterContentPolicy):
202         (WebCore::MainResourceLoader::responseReceived):
203         (WebCore::MainResourceLoader::dataReceived):
204         (WebCore::MainResourceLoader::didFinishLoading):
205         (WebCore::MainResourceLoader::notifyFinished):
206         (WebCore::MainResourceLoader::reportMemoryUsage):
207         (WebCore::MainResourceLoader::handleSubstituteDataLoadNow):
208         (WebCore::MainResourceLoader::load):
209         (WebCore::MainResourceLoader::setDefersLoading):
210         (WebCore::MainResourceLoader::defersLoading):
211         (WebCore::MainResourceLoader::setShouldBufferData):
212         (WebCore::MainResourceLoader::loader):
213         (WebCore::MainResourceLoader::identifier):
214         * loader/MainResourceLoader.h:
215         (MainResourceLoader):
216         (WebCore::MainResourceLoader::documentLoader):
217         * loader/ResourceLoader.cpp:
218         (WebCore::ResourceLoader::willSendRequest):
219         * loader/ResourceLoader.h:
220         (WebCore::ResourceLoader::defersLoading):
221         (WebCore::ResourceLoader::cancelled):
222         * loader/appcache/ApplicationCacheHost.cpp:
223         (WebCore::ApplicationCacheHost::maybeLoadFallbackForMainResponse):
224         (WebCore::ApplicationCacheHost::maybeLoadFallbackForMainError):
225         * loader/mac/DocumentLoaderMac.cpp:
226         (WebCore::DocumentLoader::schedule):
227         (WebCore::DocumentLoader::unschedule):
228
229 2012-12-11  Aaron Colwell  <acolwell@chromium.org>
230
231         Update MediaSource to allow append() calls in "ended" state.
232         https://bugs.webkit.org/show_bug.cgi?id=104581
233
234         Reviewed by Eric Carlson.
235
236         Updated append and setTimestampOffset to allow appending in the "ended" readyState. An append() call
237         in the "ended" state now triggers a transition to the "open" state and allows the append to succeed.
238
239         Tests: http/tests/media/media-source/video-media-source-append-in-ended-state.html
240                http/tests/media/media-source/video-media-source-append-with-offset-in-ended-state.html
241                http/tests/media/media-source/video-media-source-zero-byte-append-in-ended-state.html
242
243         * Modules/mediasource/MediaSource.cpp:
244         (WebCore::MediaSource::append):
245         (WebCore::MediaSource::setTimestampOffset):
246
247 2012-12-11  Robert Hogan  <robert@webkit.org>
248
249         REGRESSION(r121789): Text not wrapping in presence of floating objects
250         https://bugs.webkit.org/show_bug.cgi?id=101803
251
252         Reviewed by David Hyatt.
253
254         When determining if a line needs to offset to avoid any floats use RenderBlock::lineHeight() 
255         to estimate the height of the line. If the container has floats stacked up with different widths
256         that straddle the line, using a height of zero will make the first line think it has
257         more width available than it actually does and it will end up extruding from its container.
258         
259         The logic for finding the offset of inline blocks and images needs to use a similar heuristic.
260         So nextLineBreak() now updates the available width if it encounters a replaced element (e.g. inline block,
261         image) at the start of a line, using the height of the element to decide which floats to avoid. 
262         RenderBlock::computeInlineDirectionPositionsForLine() does the same thing when laying out the line.
263
264         Tests: fast/block/float/floats-offset-image-quirk-lineheight.html
265                fast/block/float/floats-offset-image-quirk.html
266                fast/block/float/floats-offset-image-strict-lineheight.html
267                fast/block/float/floats-offset-image-strict.html
268                fast/block/float/floats-offset-inline-block-quirk-lineheight.html
269                fast/block/float/floats-offset-inline-block-strict-lineheight.html
270                fast/block/float/floats-offset-linebox-contain-block.html
271                fast/block/float/floats-offset-linebox-contain-inline.html
272                fast/block/float/floats-wrap-inside-inline-006.html
273                fast/block/float/floats-wrap-inside-inline-007.html
274
275         * rendering/RenderBlockLineLayout.cpp:
276         (LineWidth):
277         (WebCore::logicalHeightForLine):
278             This method needs to cope with the quirk where an image alone on a line will get its descent stripped away so
279             ignore the height of the line and use the height of the image in that case.
280         (WebCore::LineWidth::updateAvailableWidth):
281         (WebCore::updateLogicalInlinePositions):
282         (WebCore):
283         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
284         (WebCore::RenderBlock::computeInlineDirectionPositionsForSegment):
285         (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
286
287 2012-12-11  Carlos Garcia Campos  <cgarcia@igalia.com>
288
289         [GTK] Install GObject DOM bindings headers in its own directory
290         https://bugs.webkit.org/show_bug.cgi?id=104663
291
292         Reviewed by Gustavo Noronha Silva.
293
294         Move the headers from webkit to webkitdom directory.
295
296         * bindings/gobject/GNUmakefile.am:
297         * bindings/gobject/WebKitDOMBinding.h:
298         * bindings/gobject/WebKitDOMCustom.h:
299         * bindings/gobject/WebKitDOMEventTarget.h:
300         * bindings/gobject/WebKitDOMEventTargetPrivate.h:
301         * bindings/gobject/WebKitDOMObject.h:
302         * bindings/scripts/CodeGeneratorGObject.pm:
303         (Generate):
304         (WriteData):
305         * bindings/scripts/gobject-generate-headers.pl:
306         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
307         * bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
308         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
309         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObjectPrivate.h:
310         * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
311         * bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
312         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
313         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetterPrivate.h:
314         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
315         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructorPrivate.h:
316         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
317         * bindings/scripts/test/GObject/WebKitDOMTestEventTargetPrivate.h:
318         * bindings/scripts/test/GObject/WebKitDOMTestException.h:
319         * bindings/scripts/test/GObject/WebKitDOMTestExceptionPrivate.h:
320         * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
321         * bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h:
322         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
323         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListenerPrivate.h:
324         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
325         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructorPrivate.h:
326         * bindings/scripts/test/GObject/WebKitDOMTestNode.h:
327         * bindings/scripts/test/GObject/WebKitDOMTestNodePrivate.h:
328         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
329         * bindings/scripts/test/GObject/WebKitDOMTestObjPrivate.h:
330         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h:
331         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructorsPrivate.h:
332         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
333         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterfacePrivate.h:
334
335 2012-12-11  Mark Pilgrim  <pilgrim@chromium.org>
336
337         [Chromium] Clean up unused interfaces in PlatformSupport
338         https://bugs.webkit.org/show_bug.cgi?id=104674
339
340         Reviewed by Darin Fisher.
341
342         Part of a refactoring series. See tracking bug 82948. Also, there
343         were some function declarations that were supposed to be removed
344         as part of bug 102699 but got left out of the final patch.
345
346         * platform/chromium/PlatformSupport.h:
347         (WebCore):
348         (PlatformSupport):
349
350 2012-12-11  Joone Hur  <joone.hur@intel.com>, Gustavo Noronha Silva  <gustavo.noronha@collabora.com>
351
352         [GTK] Update GraphicsLayerClutter
353         https://bugs.webkit.org/show_bug.cgi?id=92045
354
355         Reviewed by Gustavo Noronha Silva.
356
357         Add more methods to GraphicsLayerClutter in order to run CSS 3D transforms 
358         by using GraphicsLayerActor.
359
360         No new tests. This will be covered by pixel tests for Qt and GTK+ accelerated
361         compositing and 3D transforms.
362
363         * platform/graphics/clutter/GraphicsLayerClutter.cpp:
364         (WebCore):
365         (WebCore::GraphicsLayerClutter::GraphicsLayerClutter):
366         (WebCore::idleDestroy):
367         (WebCore::GraphicsLayerClutter::~GraphicsLayerClutter):
368         (WebCore::GraphicsLayerClutter::setName):
369         (WebCore::GraphicsLayerClutter::platformLayer): Returns the platform layer(ClutterAcotr).
370         (WebCore::GraphicsLayerClutter::setNeedsDisplay): Update the display.
371         (WebCore::GraphicsLayerClutter::setNeedsDisplayInRect): Update part of the Display.
372         (WebCore::GraphicsLayerClutter::setAnchorPoint):
373         (WebCore::GraphicsLayerClutter::setPosition):
374         (WebCore::GraphicsLayerClutter::setSize):
375         (WebCore::GraphicsLayerClutter::setTransform):
376         (WebCore::GraphicsLayerClutter::setDrawsContent):
377         (WebCore::GraphicsLayerClutter::setParent):
378         (WebCore::GraphicsLayerClutter::setChildren):
379         (WebCore::GraphicsLayerClutter::addChild):
380         (WebCore::GraphicsLayerClutter::addChildAtIndex):
381         (WebCore::GraphicsLayerClutter::addChildBelow):
382         (WebCore::GraphicsLayerClutter::addChildAbove):
383         (WebCore::GraphicsLayerClutter::replaceChild):
384         (WebCore::GraphicsLayerClutter::removeFromParent):
385         (WebCore::GraphicsLayerClutter::platformClutterLayerPaintContents):
386         (WebCore::GraphicsLayerClutter::platformClutterLayerAnimationStarted):
387         (WebCore::GraphicsLayerClutter::repaintLayerDirtyRects):
388         (WebCore::GraphicsLayerClutter::computePositionRelativeToBase):
389         (WebCore::GraphicsLayerClutter::flushCompositingState): Synchronize the corresponding Actors with the current 
390         compositing states of this GraphicsLayer and its child layers. 
391         (WebCore::GraphicsLayerClutter::recursiveCommitChanges):
392         (WebCore::GraphicsLayerClutter::flushCompositingStateForThisLayerOnly): Commit batched changes non-recursively. 
393         (WebCore::GraphicsLayerClutter::commitLayerChangesAfterSublayers): Reset layer changes after we recurse on children.
394         (WebCore::GraphicsLayerClutter::noteSublayersChanged):
395         (WebCore::GraphicsLayerClutter::noteLayerPropertyChanged):
396         (WebCore::GraphicsLayerClutter::commitLayerChangesBeforeSublayers): Commit layer changes before we recurse on children.
397         (WebCore::GraphicsLayerClutter::updateGeometry): Updated the position and size of the Actor.
398         (WebCore::GraphicsLayerClutter::updateSublayerList): Updated the list of child Actors. 
399         (WebCore::GraphicsLayerClutter::updateLayerNames):
400         (WebCore::GraphicsLayerClutter::updateTransform):
401         (WebCore::GraphicsLayerClutter::updateLayerDrawsContent):
402         (WebCore::GraphicsLayerClutter::layerForSuperlayer):
403         * platform/graphics/clutter/GraphicsLayerClutter.h:
404         (WebCore):
405         (WebCore::GraphicsLayerClutter::primaryLayer):
406         (GraphicsLayerClutter):
407
408 2012-12-11  Jessie Berlin  <jberlin@apple.com>
409
410         Revert incorrect build fix.
411
412         * WebCore.exp.in:
413
414 2012-12-11  Jessie Berlin  <jberlin@apple.com>
415
416         Fix the Mac build after r137261
417
418         * WebCore.exp.in:
419
420 2012-12-11  Joone Hur  <joone.hur@intel.com>, Gustavo Noronha Silva  <gustavo.noronha@collabora.com>
421
422         [GTK] Add GraphicsLayerActor
423         https://bugs.webkit.org/show_bug.cgi?id=91940
424
425         Reviewed by Gustavo Noronha Silva.
426
427         GraphicsLayerActor, which is a new ClutterActor, represents a node in the GPU-renderable layer tree
428         when accelerated compositing is enabled with Clutter as acceleration backend.
429         This patch allows to support basic features of CSS 3D Transforms.
430
431         No new tests. This will be covered by pixel tests for Qt and GTK+ accelerated
432         compositing and 3D transforms.
433
434         * GNUmakefile.list.am:
435         * platform/graphics/clutter/GraphicsLayerActor.cpp: Added.
436         (_GraphicsLayerActorPrivate):
437         (graphics_layer_actor_class_init): GObject configuration of a new Clutter Actor.
438         (graphics_layer_actor_init): Initialization of the private data of this actor.
439         (graphicsLayerActorSetProperty): GObject property setter.
440         (graphicsLayerActorGetProperty): GObject property getter.
441         (graphicsLayerActorDispose): Called to drop all references to other objects.
442         (graphicsLayerActorAllocate):  Called to set the coordinates of an actor.
443         (graphicsLayerActorApplyTransform): Applying the transformation to an actor before painting it.
444         (graphicsLayerActorPaint): Called to paint the actor.
445         (graphicsLayerActorDraw): Called each time a ClutterCairoTexture has been invalidated.
446         (graphicsLayerActorAdded): Called each time an actor has been added to container.
447         (graphicsLayerActorRemoved): Called each time an actor is removed from container.
448         (graphicsLayerActorNew): Create a specific layer type of GraphicsLayerActor object.
449         (graphicsLayerActorNewWithClient): Create a specific layer type of GraphicsLayerActor object with 
450         its PlatformClutterClientLayer.
451         (graphicsLayerActorSetClient): Added setter to set the PlatformClutterClientLayer.
452         (graphicsLayerActorGetClient): Added getter to get the PlatformClutterClientLayer.
453         (graphicsLayerActorRemoveAll): Remove all child actors.
454         (graphicsLayerUpdateTexture): Create a ClutterCairoTexture.
455         (graphicsLayerActorGetSurface): Added setter to set a cairo_surface_t.
456         (graphicsLayerActorSetSurface): Added getter to get the cairo_surface_t.
457         (graphicsLayerActorInvalidateRectangle):
458         (graphicsLayerActorSetTransform): Set a CoglMatrix to apply matrix transform.
459         (graphicsLayerActorSetAnchorPoint):
460         (graphicsLayerActorGetAnchorPoint):
461         (graphicsLayerActorSetScrollPosition):
462         (graphicsLayerActorGetnChildren):
463         (graphicsLayerActorReplaceSublayer):
464         (graphicsLayerActorInsertSublayer):
465         (graphicsLayerActorSetSublayers):
466         (graphicsLayerActorGetLayerType):
467         (graphicsLayerActorSetLayerType):
468         (graphicsLayerActorSetTranslateX):
469         (graphicsLayerActorGetTranslateX):
470         (graphicsLayerActorSetTranslateY):
471         (graphicsLayerActorGetTranslateY):
472         (graphicsLayerActorSetDrawsContent): Added setter to paint content inside a layer.
473         (graphicsLayerActorGetDrawsContent): Added getter to get the value of the drawsContent. 
474         * platform/graphics/clutter/GraphicsLayerActor.h: Added.
475         (_GraphicsLayerActor):
476         (_GraphicsLayerActorClass):
477         * platform/graphics/clutter/GraphicsLayerClutter.h:
478         (WebCore):
479
480 2012-12-11  Mike West  <mkwst@chromium.org>
481
482         Web Inspector: ConsoleTypes should not expose MessageType - it should be private to inspector.
483         https://bugs.webkit.org/show_bug.cgi?id=66371
484
485         Reviewed by Pavel Feldman.
486
487         We can simplify console message generation a bit, as nothing outside the
488         Console object itself will generate messages of any type other than
489         LogMessageType. This patch refactors the externally-facing API endpoints
490         on ScriptExecutionContext and Console to drop the MessageType parameter,
491         moves the MessageType enum into a new InspectorConsoleTypes.h header,
492         and updates all the call sites (and ChromeClients) to drop the parameter
493         from their interfaces.
494
495         As a temporary bandage for ports using this interface, this patch
496         includes aliases for the new methods that retain the old interface.
497         I'll remove them in a future patch.
498
499         Here, we only refactor an internal interface. No tests should break.
500
501         * GNUmakefile.list.am:
502         * Target.pri:
503         * WebCore.gypi:
504         * WebCore.vcproj/WebCore.vcproj:
505         * WebCore.xcodeproj/project.pbxproj:
506             We added a new file! OMG!
507         * Modules/webaudio/AudioBufferSourceNode.cpp:
508         (WebCore::AudioBufferSourceNode::looping):
509         (WebCore::AudioBufferSourceNode::setLooping):
510         * Modules/webdatabase/AbstractDatabase.cpp:
511         (WebCore::AbstractDatabase::logErrorMessage):
512         * Modules/websockets/WebSocket.cpp:
513         (WebCore::WebSocket::connect):
514         (WebCore::WebSocket::send):
515         (WebCore::WebSocket::close):
516         (WebCore::WebSocket::setBinaryType):
517         * Modules/websockets/WebSocketChannel.cpp:
518         (WebCore::WebSocketChannel::fail):
519         (WebCore::WebSocketChannel::didFailSocketStream):
520         * bindings/js/JSCustomXPathNSResolver.cpp:
521         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
522         * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
523         (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
524         * css/MediaList.cpp:
525         (WebCore::addResolutionWarningMessageToConsole):
526         * dom/Document.cpp:
527         (WebCore::Document::logExceptionToConsole):
528         (WebCore::Document::processHttpEquiv):
529         (WebCore::Document::addMessage):
530         * dom/Document.h:
531         (Document):
532         * dom/ScriptElement.cpp:
533         (WebCore::ScriptElement::notifyFinished):
534         * dom/ScriptExecutionContext.cpp:
535         (WebCore::ScriptExecutionContext::AddConsoleMessageTask::performTask):
536         (WebCore::ScriptExecutionContext::addConsoleMessage):
537         * dom/ScriptExecutionContext.h:
538         (ScriptExecutionContext):
539         (WebCore::ScriptExecutionContext::AddConsoleMessageTask::create):
540         (WebCore::ScriptExecutionContext::AddConsoleMessageTask::AddConsoleMessageTask):
541         * dom/ViewportArguments.cpp:
542         (WebCore::reportViewportWarning):
543         * fileapi/WebKitBlobBuilder.cpp:
544         (WebCore::BlobBuilder::append):
545         * html/HTMLFormControlElement.cpp:
546         (WebCore::shouldAutofocus):
547         * html/HTMLFormElement.cpp:
548         (WebCore::HTMLFormElement::validateInteractively):
549         * html/HTMLIFrameElement.cpp:
550         (WebCore::HTMLIFrameElement::parseAttribute):
551         * html/HTMLTrackElement.cpp:
552         (WebCore::HTMLTrackElement::canLoadUrl):
553         * html/canvas/CanvasRenderingContext2D.cpp:
554         (WebCore::CanvasRenderingContext2D::getImageData):
555         * html/canvas/WebGLRenderingContext.cpp:
556         (WebCore):
557         (WebCore::WebGLRenderingContext::printWarningToConsole):
558         * html/parser/XSSAuditor.cpp:
559         (WebCore::XSSAuditor::init):
560         (WebCore::XSSAuditor::filterToken):
561         * inspector/ConsoleAPITypes.h: Added.
562         (WebCore):
563         * inspector/ConsoleMessage.h:
564         * inspector/InspectorConsoleAgent.h:
565         * inspector/InspectorDebuggerAgent.h:
566         * inspector/InspectorInstrumentation.cpp:
567         (WebCore):
568         * inspector/InspectorInstrumentation.h:
569         * inspector/InspectorProfilerAgent.cpp:
570         * loader/EmptyClients.h:
571         (WebCore::EmptyChromeClient::addMessageToConsole):
572         * loader/FrameLoader.cpp:
573         (WebCore::FrameLoader::reportLocalLoadFailed):
574         (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
575         * loader/ImageLoader.cpp:
576         (WebCore::ImageLoader::notifyFinished):
577         * loader/MainResourceLoader.cpp:
578         (WebCore::MainResourceLoader::didReceiveResponse):
579         * loader/MixedContentChecker.cpp:
580         (WebCore::MixedContentChecker::logWarning):
581         * loader/TextTrackLoader.cpp:
582         (WebCore::TextTrackLoader::corsPolicyPreventedLoad):
583         * loader/appcache/ApplicationCacheGroup.cpp:
584         (WebCore::ApplicationCacheGroup::abort):
585         (WebCore::ApplicationCacheGroup::didReceiveResponse):
586         (WebCore::ApplicationCacheGroup::didFinishLoading):
587         (WebCore::ApplicationCacheGroup::didFail):
588         (WebCore::ApplicationCacheGroup::didReceiveManifestResponse):
589         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
590         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
591         * loader/cache/CachedResourceLoader.cpp:
592         (WebCore::CachedResourceLoader::printAccessDeniedMessage):
593         * page/ChromeClient.h:
594         (ChromeClient):
595             Drop LogMessageType from everywhere.
596         * page/Console.cpp:
597         (WebCore::Console::addMessage):
598         (WebCore::internalAddMessage):
599         (WebCore::Console::error):
600         (WebCore::Console::log):
601         (WebCore::Console::warn):
602         (WebCore::Console::dir):
603         (WebCore::Console::dirxml):
604         (WebCore::Console::clear):
605         (WebCore::Console::trace):
606         (WebCore::Console::assertCondition):
607         * page/Console.h:
608         (Console):
609             Create a new internalAddMessage that's used for the various
610             Console message types. Everything else routes through
611             ::addMessage.
612         * page/ConsoleTypes.h:
613             Drop MessageTypes from this file, add it to ConsoleAPIType.h
614         * page/ContentSecurityPolicy.cpp:
615         (WebCore::ContentSecurityPolicy::logToConsole):
616         * page/DOMWindow.cpp:
617         (WebCore::DOMWindow::dispatchMessageEventWithOriginCheck):
618         (WebCore::DOMWindow::printErrorMessage):
619         * page/EventSource.cpp:
620         (WebCore::EventSource::didReceiveResponse):
621         * svg/SVGDocumentExtensions.cpp:
622         (WebCore::reportMessage):
623         * workers/DefaultSharedWorkerRepository.cpp:
624         (SharedWorkerProxy):
625         (WebCore::postConsoleMessageTask):
626         (WebCore::SharedWorkerProxy::postConsoleMessageToWorkerObject):
627         * workers/SharedWorkerContext.cpp:
628         (WebCore::SharedWorkerContext::logExceptionToConsole):
629         * workers/WorkerContext.cpp:
630         (WebCore::WorkerContext::addMessage):
631         (WebCore::WorkerContext::addMessageToWorkerConsole):
632         * workers/WorkerContext.h:
633         (WorkerContext):
634         * workers/WorkerMessagingProxy.cpp:
635         (WebCore::postConsoleMessageTask):
636         (WebCore::WorkerMessagingProxy::postConsoleMessageToWorkerObject):
637         * workers/WorkerMessagingProxy.h:
638         (WorkerMessagingProxy):
639         * workers/WorkerReportingProxy.h:
640         (WorkerReportingProxy):
641         * xml/XMLHttpRequest.cpp:
642         (WebCore::logConsoleError):
643         (WebCore::XMLHttpRequest::send):
644         * xml/XSLTProcessorLibxslt.cpp:
645         (WebCore::XSLTProcessor::parseErrorFunc):
646         * xml/XSLTProcessorQt.cpp:
647         (WebCore::XSLTMessageHandler::handleMessage):
648             Drop LogMessageType from everywhere.
649
650 2012-12-11  Simon Hausmann  <simon.hausmann@digia.com>
651
652         [Qt] Unreviewed, rolling out r137313 and r137316 because they broke the system-sqlite build.
653
654         * WebCore.pri:
655
656 2012-12-11  Simon Hausmann  <simon.hausmann@digia.com>
657
658         Unreviewed Qt build fix: Don't error out if SQLITE3SRCDIR isn't set but
659         we have a system sqlite to use.
660
661         * WebCore.pri:
662
663 2012-12-11  Oswald Buddenhagen  <oswald.buddenhagen@digia.com>
664
665         [Qt] make qtbase source requirement explicit
666
667         Reviewed by Simon Hausmann.
668
669         getting rid of QT.<module>.sources references, as they don't go well
670         with real modularization.
671
672         * WebCore.pri:
673
674 2012-12-11  Oswald Buddenhagen  <oswald.buddenhagen@digia.com>
675
676         [Qt] move SQLITE3SRCDIR assignment to only use site
677
678         Reviewed by Simon Hausmann.
679
680         Target.pri includes WebCore.pri the almost first thing, so that is
681         covered as well.
682
683         * WebCore.pri:
684
685 2012-12-11  Eugene Klyuchnikov  <eustas@chromium.org>
686
687         Web Inspector: Timeline: rename "Parse" to "Parse HTML".
688         https://bugs.webkit.org/show_bug.cgi?id=104639
689
690         Reviewed by Yury Semikhatsky.
691
692         "Parse" sounds ambiguous, it could mean JSON.parse() or Date.parse().
693         "Parse HTML" is a much more clear record description.
694
695         * inspector/front-end/TimelinePresentationModel.js: Fix text.
696
697 2012-12-11  Oswald Buddenhagen  <oswald.buddenhagen@digia.com>
698
699         [Qt] change setup of QMAKE_MOC
700
701         Reviewed by Simon Hausmann.
702
703         don't load(moc) explicitly - turns out that this breaks
704         debug_and_release builds (the feature does not like being loaded before
705         default_post has been loaded).
706         so instead just do a minimal call to find the moc executable.
707
708         as it's in fact only two files which need it, so de-centralize this call
709         for the sake of saving some cpu cycles spent in qmake.
710
711         * DerivedSources.pri:
712
713 2012-12-11  Alexander Pavlov  <apavlov@chromium.org>
714
715         REGRESSION(r136948): inspector/styles/import-pseudoclass-crash.html hits an assertion
716         https://bugs.webkit.org/show_bug.cgi?id=104473
717
718         Reviewed by Vsevolod Vlasov.
719
720         Avoid building full CSSOM wrappers up front during rule matching.
721         Instead, move this code down to the point where these wrappers are actually needed.
722
723         * inspector/InspectorCSSAgent.cpp:
724         (WebCore::InspectorCSSAgent::willMatchRule):
725         (WebCore::InspectorCSSAgent::willProcessRule):
726         * inspector/InspectorCSSAgent.h:
727         (WebCore):
728         (InspectorCSSAgent):
729         * inspector/InspectorInstrumentation.cpp:
730         (WebCore):
731         (WebCore::InspectorInstrumentation::willMatchRuleImpl):
732         (WebCore::InspectorInstrumentation::willProcessRuleImpl):
733
734 2012-12-11  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
735
736         [GStreamer] Avoid linking to GStreamer video libraries if only using ENABLE_AUDIO
737         https://bugs.webkit.org/show_bug.cgi?id=104590
738
739         Reviewed by Philippe Normand.
740
741         Make getVideoSizeAndFormatFromCaps() only available when ENABLE_VIDEO is set.
742
743         No new tests, no change in behavior.
744
745         * platform/graphics/gstreamer/GStreamerVersioning.cpp:
746         * platform/graphics/gstreamer/GStreamerVersioning.h:
747
748 2012-12-11  Zeno Albisser  <zeno@webkit.org>
749
750         [Qt][Mac] Fix transparency for WebGL content.
751         https://bugs.webkit.org/show_bug.cgi?id=104659
752
753         When drawing a texture to the TextureMapper the flag SupportsBlending
754         must be passed in order to allow for transparent webgl content.
755         We are doing this for GLX already, but the flag was still missing
756         in GraphicsSurfaceMac.
757
758         Reviewed by Kenneth Rohde Christiansen.
759
760         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
761         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
762
763 2012-12-11  Alexander Pavlov  <apavlov@chromium.org>
764
765         Web Inspector: Duplicate emulated touch events in iframe
766         https://bugs.webkit.org/show_bug.cgi?id=104653
767
768         Reviewed by Vsevolod Vlasov.
769
770         Synthetic touch events should be dispatched only on the frame containing its target, not on its ancestor frames,
771         up to the top frame.
772
773         * page/EventHandler.cpp:
774         (WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):
775           Do not dispatch a synthetic touch event on the current frame if its target is in a subframe.
776
777 2012-12-11  Kondapally Kalyan  <kalyan.kondapally@intel.com>
778
779         [EFL][WebGL] Regression(r137211) WebGL is broken with NVIDIA Drivers.
780         https://bugs.webkit.org/show_bug.cgi?id=104652.
781
782         Reviewed by Kenneth Rohde Christiansen.
783
784         Reverting some of the changes from r137211, as it causes regressions
785         on NVIDIA drivers.
786
787         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
788         (WebCore::GraphicsContext3D::GraphicsContext3D):
789         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
790         (GraphicsContext3DPrivate::copyToGraphicsSurface):
791         * platform/graphics/opengl/GLPlatformSurface.cpp:
792         (WebCore::GLPlatformSurface::updateContents):
793         * platform/graphics/opengl/GLPlatformSurface.h:
794         (GLPlatformSurface):
795
796 2012-12-11  Pavel Feldman  <pfeldman@chromium.org>
797
798         Web Inspector: follow up to r136974: do not process shortcuts while editing
799         https://bugs.webkit.org/show_bug.cgi?id=104440
800
801         Reviewed by Alexander Pavlov.
802
803         Currently, typing H while editing node results in corresponding shortcut processing.
804
805         * inspector/front-end/ElementsTreeOutline.js:
806         (WebInspector.ElementsTreeOutline):
807         (WebInspector.ElementsTreeOutline.prototype.handleShortcut):
808         (WebInspector.ElementsTreeElement.prototype.onenter):
809         (WebInspector.ElementsTreeElement.prototype._startEditingAttribute):
810         (WebInspector.ElementsTreeElement.prototype.dispose):
811         (WebInspector.ElementsTreeElement.prototype._startEditingAsHTML):
812         (WebInspector.ElementsTreeElement.prototype._editingCancelled):
813
814 2012-12-11  Ken Kania  <kkania@chromium.org>
815
816         [Inspector] Add command for dispatching mouse events.
817         https://bugs.webkit.org/show_bug.cgi?id=104074
818
819         Reviewed by Yury Semikhatsky.
820
821         Platform mouse event coordinates are relative to the containing window,
822         but the inspector command assumes they follow standard web coordinates,
823         where the origin is at the top left of the page and y increases as you
824         go down. We convert the coordinates to the window before constructing
825         the event. This also fixes the fact that some platforms have flipped
826         coordinate systems.
827         Also, update dispatchKeyEvent test to follow simpler dispatchMouseEvent
828         test.
829
830         Test: inspector-protocol/input/dispatchMouseEvent.html
831
832         * inspector/Inspector.json:
833         * inspector/InspectorInputAgent.cpp:
834         (WebCore::InspectorInputAgent::dispatchMouseEvent):
835         (WebCore):
836         * inspector/InspectorInputAgent.h:
837         (InspectorInputAgent):
838
839 2012-12-11  Pavel Feldman  <pfeldman@chromium.org>
840
841         Not reviewed: follow up to r137283: reduce inspector toolbar spacing 1px.
842
843         * inspector/front-end/inspector.css:
844         (body.dock-to-bottom:not(.show-toolbar-icons) .toolbar-item.toggleable):
845         (body.dock-to-bottom:not(.show-toolbar-icons) .toolbar-item.toggleable.toggled-on):
846
847 2012-12-11  Kent Tamura  <tkent@chromium.org>
848
849         Refactoring: Rename Element::shouldMatchReadOnlySelector and shouldMatchReadWriteSelector
850         https://bugs.webkit.org/show_bug.cgi?id=104651
851
852         Reviewed by Kentaro Hara.
853
854         ':read-only' and ':read-write' are pseudo classes. They are not
855         selectors in the context of these functions.  This patch rename them so
856         that they contain 'pseudo class,' and make them match to an existing
857         function, matchesFocusPseudoClass.
858
859         No new tests. This shouldn't make behavior changes.
860
861         * css/SelectorChecker.cpp:
862         (WebCore::SelectorChecker::checkOneSelector):
863         * dom/Element.cpp:
864         (WebCore::Element::recalcStyle):
865         (WebCore::Element::matchesReadOnlyPseudoClass):
866         (WebCore::Element::matchesReadWritePseudoClass):
867         * dom/Element.h:
868         (Element):
869         * html/HTMLInputElement.cpp:
870         (WebCore::HTMLInputElement::matchesReadOnlyPseudoClass):
871         (WebCore::HTMLInputElement::matchesReadWritePseudoClass):
872         * html/HTMLInputElement.h:
873         (HTMLInputElement):
874         * html/HTMLTextAreaElement.cpp:
875         (WebCore::HTMLTextAreaElement::matchesReadOnlyPseudoClass):
876         (WebCore::HTMLTextAreaElement::matchesReadWritePseudoClass):
877         * html/HTMLTextAreaElement.h:
878         (HTMLTextAreaElement):
879         * html/shadow/SliderThumbElement.cpp:
880         (WebCore::SliderThumbElement::matchesReadOnlyPseudoClass):
881         (WebCore::SliderThumbElement::matchesReadWritePseudoClass):
882         * html/shadow/SliderThumbElement.h:
883         (SliderThumbElement):
884         * html/shadow/SpinButtonElement.cpp:
885         (WebCore::SpinButtonElement::matchesReadOnlyPseudoClass):
886         (WebCore::SpinButtonElement::matchesReadWritePseudoClass):
887         * html/shadow/SpinButtonElement.h:
888         (SpinButtonElement):
889         * rendering/RenderTheme.cpp:
890         (WebCore::RenderTheme::isReadOnlyControl):
891
892 2012-12-11  Pavel Feldman  <pfeldman@chromium.org>
893
894         Web Inspector: add more horizontal spacing for toolbar items in docked to bottom mode
895         https://bugs.webkit.org/show_bug.cgi?id=104655
896
897         Reviewed by Alexander Pavlov.
898
899         Drive-by increase height to 26px.
900
901         * inspector/front-end/inspector.css:
902         (#toolbar):
903         (body:not(.show-toolbar-icons) .toolbar-item):
904         (body.dock-to-bottom:not(.show-toolbar-icons) .toolbar-item.toggleable):
905         (body.dock-to-bottom:not(.show-toolbar-icons) .toolbar-item.toggleable.toggled-on):
906         (body.show-toolbar-icons.dock-to-bottom .toolbar-item.toggleable):
907         (#toolbar-dropdown-arrow):
908         (#main):
909
910 2012-12-11  Keishi Hattori  <keishi@webkit.org>
911
912         Use histogram enumeration in Calendar Picker so we can get stats on UI usage
913         https://bugs.webkit.org/show_bug.cgi?id=104646
914
915         Reviewed by Kent Tamura.
916
917         Use histogram support to get stats on the calendar picker so we can improve the UI.
918
919         No new tests.
920
921         * Resources/pagepopups/calendarPicker.js:
922         (CalendarPicker):
923         (CalendarPicker.prototype.recordAction): Records action to histogram.
924         (CalendarPicker.prototype.handleToday): Record action.
925         (CalendarPicker.prototype.handleClear): Ditto.
926         (YearMonthController.prototype._showPopup): Ditto.
927         (YearMonthController.prototype._handleYearMonthChange): Ditto.
928         (YearMonthController.prototype._handleButtonClick): Ditto.
929         (DaysTable.prototype._handleDayClick): Ditto.
930         * page/PagePopupController.cpp:
931         (WebCore::PagePopupController::histogramEnumeration):
932         (WebCore):
933         * page/PagePopupController.h:
934         (PagePopupController):
935         * page/PagePopupController.idl: Added histogramEnumeration.
936
937 2012-12-11  Hajime Morrita  <morrita@google.com>
938
939         IsActiveFlag, IsHoverFlag, InActiveChainFlag can be unified.
940         https://bugs.webkit.org/show_bug.cgi?id=103697
941
942         Reviewed by Ryosuke Niwa.
943
944         To save two more NodeFlags bits, this patch inroduces
945         UserActionElementSet to get IsLinkFlag, IsHoverFlag,
946         InActiveChainFlag together. These three old flags are replaced by
947         UserActionElementSet::ElementFlags and UserActionElementSet
948         collection which tracks elements which are flagged with one of
949         a ElementFlags.
950
951         When marking an element as active for example, WebKit sets
952         UserActionElementSet::IsActiveFlag to the element and store it
953         into corresponding element set of the document. This set maintains
954         marked elements and corresponding flags for each elements.
955
956         UserActionElementSet can be seen as a yet another rare data for
957         these flags. However, the following characteristics of these flags
958         make adding a new data structure on Document an attractive
959         alternative:
960
961         - UserActionElementSet is maintained for each Document instead of a
962           global collecton. This fits element lifetime better.
963
964         - The number of elements which have these flags is generally
965           small, and a group of elements for each flag is largely overlapped
966           due to its nature. This property keeps the set small, and lets
967           flag retrieval efficient. On majority of the elements, all these
968           flags are false thus the check is done by just checking
969           IsInUserActionFlag.
970
971         As a bonus, isFocused flag, which was on NodeRareData, is also moved to this model.
972
973         No new tests, covered by existing test.
974
975         * CMakeLists.txt:
976         * GNUmakefile.list.am:
977         * Target.pri:
978         * WebCore.gypi:
979         * WebCore.xcodeproj/project.pbxproj:
980         * dom/DOMAllInOne.cpp:
981         * dom/Document.cpp:
982         (WebCore::Document::removedLastRef):
983         (WebCore::Document::updateHoverActiveState):
984         * dom/Document.h:
985         (WebCore::Document::userActionElements): Added.
986         (Document):
987         * dom/Node.cpp:
988         (WebCore::Node::detach):
989         * dom/Node.h:
990         (WebCore):
991         (WebCore::Node::isUserActionElement): Added.
992         (WebCore::Node::setUserActionElement): Added.
993         (Node):
994         (WebCore::Node::active): Switched to UserActionElementSet.
995         (WebCore::Node::inActiveChain): Switched to UserActionElementSet.
996         (WebCore::Node::hovered): Switched to UserActionElementSet.
997         (WebCore::Node::focused): Switched to UserActionElementSet.
998         (WebCore::Node::setFocus): Switched to UserActionElementSet.
999         (WebCore::Node::setActive): Switched to UserActionElementSet.
1000         (WebCore::Node::setHovered): Switched to UserActionElementSet.
1001         * dom/NodeRareData.h:
1002         (WebCore::NodeRareData::NodeRareData):
1003         (NodeRareData):
1004         * dom/UserActionElementSet.cpp: Added.
1005         (WebCore):
1006         (WebCore::UserActionElementSet::instanceFor):
1007         (WebCore::UserActionElementSet::UserActionElementSet):
1008         (WebCore::UserActionElementSet::~UserActionElementSet):
1009         (WebCore::UserActionElementSet::didDetach):
1010         (WebCore::UserActionElementSet::documentDidRemoveLastRef):
1011         (WebCore::UserActionElementSet::hasFlags):
1012         (WebCore::UserActionElementSet::setFlags):
1013         (WebCore::UserActionElementSet::clearFlags):
1014         * dom/UserActionElementSet.h: Added.
1015         (WebCore):
1016         (UserActionElementSet):
1017         (WebCore::UserActionElementSet::create):
1018         (WebCore::UserActionElementSet::isFocused):
1019         (WebCore::UserActionElementSet::setFocused):
1020         (WebCore::UserActionElementSet::isActive):
1021         (WebCore::UserActionElementSet::setActive):
1022         (WebCore::UserActionElementSet::isInActiveChain):
1023         (WebCore::UserActionElementSet::setInActiveChain):
1024         (WebCore::UserActionElementSet::isHovered):
1025         (WebCore::UserActionElementSet::setHovered):
1026         (WebCore::UserActionElementSet::setFlags):
1027
1028 2012-12-11  Kent Tamura  <tkent@chromium.org>
1029
1030         INPUT_MULTIPLE_FIELDS_UI: Disable focus navigation by right/left keys in RTL locales
1031         https://bugs.webkit.org/show_bug.cgi?id=104644
1032
1033         Reviewed by Hajime Morita.
1034
1035         Pressing the left key should focus on the field at the left of the
1036         current focused field, and pressing the right key should focus on the
1037         field at the right of the current focused field. This works well in LTR
1038         locales.
1039         In RTL locale, the current code doesn't work. We disable this behavior
1040         for RTL locales for now. This issue will be handled in Bug 104650.
1041
1042         No new tests. Update some *-multiple-fields tests for new behavior.
1043
1044         * html/shadow/DateTimeFieldElement.cpp:
1045         (WebCore::DateTimeFieldElement::defaultKeyboardEventHandler):
1046         If this sub-field is in an RTL locale, we don't change focus.
1047         (WebCore::DateTimeFieldElement::localeForOwner):
1048         Moved from DateTimeNumericFieldElement.
1049         * html/shadow/DateTimeFieldElement.h:
1050         (DateTimeFieldElement): Remove isRTL, add localeForOwner.
1051         * html/shadow/DateTimeNumericFieldElement.cpp: Remove localeForOwner.
1052         * html/shadow/DateTimeNumericFieldElement.h:
1053         (DateTimeNumericFieldElement): Ditto.
1054
1055 2012-12-11  Pavel Podivilov  <podivilov@google.com>
1056
1057         Remove pango files deleted at r137263 form WebCore.gypi.
1058
1059         Unreviewed, gardening.
1060
1061         * WebCore.gypi:
1062
1063 2012-12-11  Zan Dobersek  <zandobersek@gmail.com>
1064
1065         [GTK] Feature enabling/disabling should be possible through build-webkit
1066         https://bugs.webkit.org/show_bug.cgi?id=99271
1067
1068         Reviewed by Gustavo Noronha Silva.
1069
1070         Move the contents of GNUmakefile.features.am into GNUmakefile.features.am.in.
1071         The former is then copied from the latter but then appropriately modified if
1072         the build-webkit script overrides any of the default feature defines.
1073
1074         No new tests - no new testable functionality.
1075
1076         * GNUmakefile.features.am.in: Renamed from Source/WebCore/GNUmakefile.features.am.
1077
1078 2012-12-11  Jinwoo Song  <jinwoo7.song@samsung.com>
1079
1080         [QT][EFL][WK2] Move the GraphicsSurfaceGLX.cpp to common place
1081         https://bugs.webkit.org/show_bug.cgi?id=104433
1082
1083         Reviewed by Kenneth Rohde Christiansen.
1084
1085         QT and EFL are commonly using the GraphicsSurfaceGLX.cpp and
1086         it looks better to move this file to /glx directory.
1087
1088         * PlatformEfl.cmake:
1089         * Target.pri:
1090         * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp: Renamed from Source/WebCore/platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp.
1091         (WebCore):
1092         (OffScreenRootWindow):
1093         (WebCore::OffScreenRootWindow::OffScreenRootWindow):
1094         (WebCore::OffScreenRootWindow::getXWindow):
1095         (WebCore::OffScreenRootWindow::display):
1096         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
1097         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
1098         (GraphicsSurfacePrivate):
1099         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
1100         (WebCore::GraphicsSurfacePrivate::createSurface):
1101         (WebCore::GraphicsSurfacePrivate::createPixmap):
1102         (WebCore::GraphicsSurfacePrivate::textureIsYInverted):
1103         (WebCore::GraphicsSurfacePrivate::makeCurrent):
1104         (WebCore::GraphicsSurfacePrivate::doneCurrent):
1105         (WebCore::GraphicsSurfacePrivate::swapBuffers):
1106         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
1107         (WebCore::GraphicsSurfacePrivate::display):
1108         (WebCore::GraphicsSurfacePrivate::glxPixmap):
1109         (WebCore::GraphicsSurfacePrivate::size):
1110         (WebCore::resolveGLMethods):
1111         (WebCore::GraphicsSurface::platformExport):
1112         (WebCore::GraphicsSurface::platformGetTextureID):
1113         (WebCore::GraphicsSurface::platformCopyToGLTexture):
1114         (WebCore::GraphicsSurface::platformCopyFromTexture):
1115         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
1116         (WebCore::GraphicsSurface::platformFrontBuffer):
1117         (WebCore::GraphicsSurface::platformSwapBuffers):
1118         (WebCore::GraphicsSurface::platformSize):
1119         (WebCore::GraphicsSurface::platformCreate):
1120         (WebCore::GraphicsSurface::platformImport):
1121         (WebCore::GraphicsSurface::platformLock):
1122         (WebCore::GraphicsSurface::platformUnlock):
1123         (WebCore::GraphicsSurface::platformDestroy):
1124         (WebCore::GraphicsSurface::platformBeginPaint):
1125         (WebCore::GraphicsSurface::createReadOnlyImage):
1126
1127 2012-12-11  Mike West  <mkwst@chromium.org>
1128
1129         Web Inspector: Evaluate private browsing mode's effect on console messages.
1130         https://bugs.webkit.org/show_bug.cgi?id=104383
1131
1132         Reviewed by Pavel Feldman.
1133
1134         Two sets of console messages are currently gated on private browsing
1135         mode being inactive. This patch centralizes the private browsing checks
1136         in order to apply them equally to all console messages, and changes the
1137         granularity at which they act.
1138
1139         The current checks block the console messages entirely. This patch
1140         blocks only notifications to ChromeClient and ensures that messages
1141         won't be passed to printf where they might end up in system logs.
1142         Notifications to InspectorInstrumentation seem safe; so far as I can
1143         tell, there's no compelling reason to prevent console-based debugging
1144         in private browsing mode. This patch excludes those calls from the
1145         private browsing check.
1146
1147         Test: inspector/console/clients-ignored-in-privatebrowsing.html
1148
1149         * loader/cache/CachedResourceLoader.cpp:
1150         (WebCore::CachedResourceLoader::printAccessDeniedMessage):
1151             Drop the private browsing check.
1152         * page/Console.cpp:
1153         (WebCore::Console::addMessage):
1154             Add private browsing checks to the two ::addMessage variants that
1155             do real work. Ensure that calls to printf and notifications to
1156             ChromeClients are gated on these checks, but always allow
1157             notifications to InspectorInstrumentation.
1158         * page/DOMWindow.cpp:
1159         (WebCore::DOMWindow::printErrorMessage):
1160             Drop the private browsing check.
1161
1162 2012-12-10  Dan Winship  <danw@gnome.org>
1163
1164         [Soup] Fix spelling of "initiating" in API.
1165
1166         Reviewed by Martin Robinson.
1167
1168         No new tests (just internal renaming).
1169
1170         * platform/network/ResourceHandle.h:
1171         (ResourceHandle):
1172         * platform/network/soup/ResourceHandleSoup.cpp:
1173         (WebCore):
1174         (WebCore::setSoupRequestInitiatingPageIDFromNetworkingContext):
1175         (WebCore::ResourceHandle::start):
1176         (WebCore::ResourceHandle::getSoupRequestInitiatingPageID):
1177
1178 2012-12-10  Martin Robinson  <mrobinson@igalia.com>
1179
1180         [GTK] Remove the Pango backend
1181         https://bugs.webkit.org/show_bug.cgi?id=104569
1182
1183         Reviewed by Daniel Bates.
1184
1185         Remove the Pango backend entirely. The EFL build has no support for it and it's
1186         not really maintained enough for the GTK+ port, now that HarfbuzzNG shapes complex
1187         text when Freetype is the active text rendering backend.
1188
1189         No new tests. This does not change behavior.
1190
1191         * GNUmakefile.am: Remove Pango backend options and move Freetype options to the common list.
1192         * GNUmakefile.list.am: Ditto.
1193         * platform/graphics/FontPlatformData.h:
1194         * platform/graphics/pango/FontCachePango.cpp: Removed.
1195         * platform/graphics/pango/FontCustomPlatformDataPango.cpp: Removed.
1196         * platform/graphics/pango/FontPango.cpp: Removed.
1197         * platform/graphics/pango/FontPlatformData.h: Removed.
1198         * platform/graphics/pango/FontPlatformDataPango.cpp: Removed.
1199         * platform/graphics/pango/GlyphPageTreeNodePango.cpp: Removed.
1200         * platform/graphics/pango/PangoUtilities.cpp: Removed.
1201         * platform/graphics/pango/PangoUtilities.h: Removed.
1202         * platform/graphics/pango/SimpleFontDataPango.cpp: Removed.
1203
1204 2012-12-11  Andrey Adaikin  <aandrey@chromium.org>
1205
1206         Web Inspector: [WebGL] prevent GC from collecting WebGLObject instances currently bound to the context state
1207         https://bugs.webkit.org/show_bug.cgi?id=104119
1208
1209         Reviewed by Pavel Feldman.
1210
1211         This is to prevent GC from collecting resources bound to a context (WebGL or 2D).
1212         Otherwise, for example in WebGL, subsequent calls to gl.getParameter() may return a recently created
1213         instance that is no longer bound to a Resource object (thus, no history to replay it later).
1214
1215         * inspector/InjectedScriptCanvasModuleSource.js:
1216         (.):
1217
1218 2012-12-11  Zan Dobersek  <zandobersek@gmail.com>
1219
1220         Unreviewed build fix after r137243.
1221
1222         * bindings/gobject/GNUmakefile.am:
1223
1224 2012-12-10  No'am Rosenthal  <noam@webkit.org>
1225
1226         REGRESSION (r137006): CSS clip on solid color composited div broken
1227         https://bugs.webkit.org/show_bug.cgi?id=104604
1228
1229         Reviewed by Simon Fraser.
1230
1231         Disable direct compositing of background color for clipping layers.
1232
1233         Test: compositing/geometry/clip-inside.html
1234
1235         * rendering/RenderLayerBacking.cpp:
1236         (WebCore::supportsDirectBoxDecorationsComposition):
1237             Never allow direct background composition if there is a clip.
1238
1239 2012-12-10  Simon Fraser  <simon.fraser@apple.com>
1240
1241         REGRESSION (r137215): WebKit stretches and shrinks a part of screen on scroll
1242         https://bugs.webkit.org/show_bug.cgi?id=104626
1243
1244         Reviewed by Beth Dakin.
1245
1246         r137215 removed a compositing layer repaint on size changes. However, there
1247         are cases where the compositing code constrains layer size by clipping
1248         with the viewport and a clipping ancestor. When that happens, we must
1249         invalidate the layer on a size change to avoid showing stretched or
1250         shrunken content.
1251
1252         Test: compositing/repaint/clipped-layer-size-change.html
1253
1254         * rendering/RenderLayerBacking.cpp:
1255         (WebCore::RenderLayerBacking::RenderLayerBacking):
1256         (WebCore::RenderLayerBacking::updateCompositedBounds):
1257         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
1258         * rendering/RenderLayerBacking.h:
1259         (RenderLayerBacking):
1260
1261 2012-12-10  Dean Jackson  <dino@apple.com>
1262
1263         Remove old WebKit Animation API code
1264         https://bugs.webkit.org/show_bug.cgi?id=104611
1265
1266         Reviewed by Simon Fraser.
1267
1268         Remove the existing, unused animation API code. We'll look into
1269         implementing the W3C Animation API if/when it is stable.
1270
1271         * CMakeLists.txt: Remove WebKitAnimation and WebKitAnimationList classes.
1272         * DerivedSources.cpp:
1273         * DerivedSources.make:
1274         * DerivedSources.pri:
1275         * GNUmakefile.list.am:
1276         * Target.pri:
1277         * UseJSC.cmake:
1278         * UseV8.cmake:
1279         * WebCore.gypi:
1280         * WebCore.vcproj/WebCore.vcproj:
1281         * WebCore.xcodeproj/project.pbxproj:
1282         * bindings/js/JSBindingsAllInOne.cpp: Remove includes.
1283         * bindings/js/JSWebKitAnimationCustom.cpp: Removed.
1284         * bindings/js/JSWebKitAnimationListCustom.cpp: Removed.
1285         * dom/Element.cpp: Remove API.
1286         * dom/Element.h: Ditto.
1287         * dom/Element.idl: Ditto.
1288         * page/DOMWindow.idl: Ditto.
1289         * page/WebKitAnimation.cpp: Removed.
1290         * page/WebKitAnimation.h: Removed.
1291         * page/WebKitAnimation.idl: Removed.
1292         * page/WebKitAnimationList.cpp: Removed.
1293         * page/WebKitAnimationList.h: Removed.
1294         * page/WebKitAnimationList.idl: Removed.
1295         * page/animation/AnimationController.cpp: Remove API.
1296         * page/animation/AnimationController.h: Ditto.
1297         * page/animation/AnimationControllerPrivate.h: Ditto.
1298         * page/animation/CompositeAnimation.cpp: Ditto.
1299         * page/animation/CompositeAnimation.h: Ditto.
1300
1301 2012-12-10  Jessie Berlin  <jberlin@apple.com>
1302
1303         Fix the Mac build after r137233
1304
1305         * html/shadow/HTMLShadowElement.h:
1306         Remove a declaration of a member variable that was moved to the InsertionPoint superclass.
1307
1308 2012-12-10  KyungTae Kim  <ktf.kim@samsung.com>
1309
1310         Build fix after r137221
1311         https://bugs.webkit.org/show_bug.cgi?id=104617
1312
1313         Unreviewed build fix
1314
1315         * html/HTMLPropertiesCollection.cpp:
1316         (WebCore::nextNodeWithProperty):
1317
1318 2012-12-10  Hajime Morrita  <morrita@google.com>
1319
1320         [Shadow DOM][Refactoring] HTMLContentElement,HTMLShadowElement::m_registeredWithShadowRoot should be moved to InsertionPoint
1321         https://bugs.webkit.org/show_bug.cgi?id=104516
1322
1323         Reviewed by Dimitri Glazkov.
1324
1325         This change pulls duplicated code in removedFrom() and
1326         insertedInto() of both both HTMLShadowElement and
1327         HTMLContentElement to their super class InsertionPoint.
1328
1329         This is a part of effor that encapsulate node distribution algorithm to
1330         ContentDistributor and its family.
1331
1332         No new tests, no behavior change.
1333
1334         * dom/ShadowRoot.cpp:
1335         (WebCore::ShadowRoot::registerInsertionPoint): Added.
1336         (WebCore::ShadowRoot::unregisterInsertionPoint): Added.
1337         * dom/ShadowRoot.h:
1338         (ShadowRoot):
1339         * html/shadow/ContentDistributor.cpp:
1340         (WebCore::ShadowRootContentDistributionData::regiterInsertionPoint): Generalized two methods for <content> and <shadow>.
1341         (WebCore):
1342         (WebCore::ShadowRootContentDistributionData::unregisterInsertionPoint): Ditto.
1343         * html/shadow/ContentDistributor.h:
1344         (ShadowRootContentDistributionData):
1345         * html/shadow/HTMLContentElement.cpp:
1346         (WebCore::HTMLContentElement::HTMLContentElement):
1347         * html/shadow/HTMLContentElement.h:
1348         * html/shadow/HTMLShadowElement.cpp:
1349         (WebCore::HTMLShadowElement::HTMLShadowElement):
1350         * html/shadow/HTMLShadowElement.h:
1351         * html/shadow/InsertionPoint.cpp:
1352         (WebCore::InsertionPoint::InsertionPoint):
1353         (WebCore::InsertionPoint::insertedInto): Pulled up from subclasses
1354         (WebCore::InsertionPoint::removedFrom): Pulled up from subclasses
1355         * html/shadow/InsertionPoint.h:
1356         (InsertionPoint):
1357
1358 2012-12-10  Jon Lee  <jonlee@apple.com>
1359
1360         Keep track of plug-in snapshots clicked by user
1361         https://bugs.webkit.org/show_bug.cgi?id=103206
1362         <rdar://problem/12746483>
1363
1364         Reviewed by Anders Carlsson.
1365
1366         * html/HTMLPlugInImageElement.cpp:
1367         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): Initially the hash is
1368         unknown. Set to 0. Move the check for whether to snapshot the plugin into the
1369         new function subframeLoaderWillLoadPlugIn.
1370         (WebCore::HTMLPlugInImageElement::userDidClickSnapshot): Rename
1371         setPendingClickEvent to userDidClickSnapshot. In addition to holding onto the
1372         click event used to activate the plug-in, the function now also tells the plug-in
1373         client to add the origin hash as an auto-start origin.
1374         (WebCore::HTMLPlugInImageElement::subframeLoaderWillLoadPlugIn): Calculate the
1375         hash based on the provided URL, which is the URL the plug-in will load. Extend
1376         the check that used to be in the constructor to see if the plug-in should not
1377         automatically load, including checking the plug-in size and whether the hash
1378         is an auto-start origin.
1379         * html/HTMLPlugInImageElement.h: Rename setPendingClickEvent to userDidClickSnapshot
1380         and add a variable for the origin hash.
1381
1382         * loader/SubframeLoader.cpp:
1383         (WebCore::SubframeLoader::requestPlugin): When the loader is about to load the
1384         plug-in, pass the URL to the element, so that it can calculate the hash.
1385
1386         * page/Page.cpp:
1387         (WebCore::Page::Page): Take the plugInClient from the page clients.
1388         (WebCore::Page::~Page): If the client exists, tell it that the page is being
1389         destroyed.
1390         (WebCore::Page::PageClients::PageClients): Initialize this optional client to
1391         null.
1392         * page/Page.h: Add PlugInClient to page clients.
1393         (PageClients): Add PlugInClient variable.
1394         (WebCore::Page::plugInClient):
1395         * page/PlugInClient.h: Added.
1396
1397         * rendering/RenderSnapshottedPlugIn.cpp:
1398         (WebCore::RenderSnapshottedPlugIn::handleEvent): Call the renamed function
1399         userDidClickSnapshot().
1400         (WebCore::RenderSnapshottedPlugIn::layout): Move the check of the plug-in size
1401         to subframeLoaderWillLoadPlugIn.
1402
1403         Add PlugInClient.h.
1404         * GNUmakefile.list.am:
1405         * Target.pri:
1406         * WebCore.vcproj/WebCore.vcproj:
1407         * WebCore.xcodeproj/project.pbxproj:
1408
1409 2012-12-10  Antti Koivisto  <antti@apple.com>
1410
1411         Not reviewed.
1412         
1413         Build fix.
1414
1415         * html/HTMLPropertiesCollection.cpp:
1416         (WebCore::nextNodeWithProperty):
1417         * page/TouchDisambiguation.cpp:
1418         (WebCore::boundingBoxForEventNodes):
1419
1420 2012-12-10  Beth Dakin  <bdakin@apple.com>
1421
1422         https://bugs.webkit.org/show_bug.cgi?id=104602
1423         DidHitRelevantRepaintedObjectsAreaThreshold LayoutMilestone fires too 
1424         early on some pages with iframes
1425
1426         Reviewed by Simon Fraser.
1427
1428         This change makes it so that any RenderObjects inside iframes are not 
1429         considered relevant.
1430         * page/Page.cpp:
1431         (WebCore::Page::addRelevantRepaintedObject):
1432
1433 2012-12-10  David Grogan  <dgrogan@chromium.org>
1434
1435         IndexedDB: Propagate more leveldb errors to script
1436         https://bugs.webkit.org/show_bug.cgi?id=104422
1437
1438         Reviewed by Tony Chang.
1439
1440         These are the last places that ignore leveldb errors that can get the
1441         usual ok/found treatment.
1442
1443         Nothing called getBool, so it is deleted.
1444
1445         * Modules/indexeddb/IDBBackingStore.cpp:
1446         (WebCore):
1447         (WebCore::getInt):
1448         (WebCore::isSchemaKnown):
1449         (WebCore::setUpMetadata):
1450         (WebCore::getMaxObjectStoreId):
1451         (WebCore::IDBBackingStore::open):
1452         (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
1453         (WebCore::getNewDatabaseId):
1454         (WebCore::IDBBackingStore::createIDBDatabaseMetaData):
1455         (WebCore::setMaxObjectStoreId):
1456         (WebCore::getNewVersionNumber):
1457         (WebCore::IDBBackingStore::putRecord):
1458         (WebCore::setMaxIndexId):
1459         * Modules/indexeddb/IDBBackingStore.h:
1460         (IDBBackingStore):
1461         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
1462         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
1463         (WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::perform):
1464
1465 2012-12-09  Antti Koivisto  <antti@apple.com>
1466
1467         Factor node traversal into standalone functions
1468         https://bugs.webkit.org/show_bug.cgi?id=104507
1469
1470         Reviewed by Eric Seidel.
1471
1472         Node traversal functions are currently Node and ContainerNode members. Their implementations
1473         are confusingly scattered over multiple header and source files. These functions have no particular
1474         reason to be members as they don't require non-public access. They should be made freestanding
1475         function instead and gathered together.
1476         
1477         This patch adds NodeTraversal namespace, defined in NodeTraversal.h. It contains freestanding
1478         functions for traversing Nodes. Most popular functions are inlined (as before) and
1479         there are ContainerNode specific specializations (as before).
1480         
1481         In client code
1482         
1483             node = node->traverseNextNode();
1484             node = node->traverseNextSibling();
1485         
1486         becomes
1487         
1488             node = NodeTraversal::next(node);
1489             node = NodeTraversal::nextSkippingChildren(node);
1490             
1491         etc.
1492
1493         * WebCore.exp.in:
1494         * WebCore.xcodeproj/project.pbxproj:
1495         * accessibility/AccessibilityNodeObject.cpp:
1496         (WebCore::AccessibilityNodeObject::accessibilityDescriptionForElements):
1497         * accessibility/AccessibilityObject.cpp:
1498         (WebCore::AccessibilityObject::firstAccessibleObjectFromNode):
1499         * accessibility/AccessibilityRenderObject.cpp:
1500         (WebCore::AccessibilityRenderObject::addImageMapChildren):
1501         * bindings/js/JSDocumentCustom.cpp:
1502         (WebCore::toJS):
1503         * css/SelectorChecker.cpp:
1504         (WebCore::SelectorChecker::allVisitedStateChanged):
1505         (WebCore::SelectorChecker::visitedStateChanged):
1506         * css/StyleInvalidationAnalysis.cpp:
1507         (WebCore::StyleInvalidationAnalysis::invalidateStyle):
1508         * dom/ContainerNode.cpp:
1509         (WebCore::dispatchChildInsertionEvents):
1510         (WebCore::dispatchChildRemovalEvents):
1511         * dom/ContainerNode.h:
1512         (ContainerNode):
1513         (WebCore):
1514         * dom/ContainerNodeAlgorithms.h:
1515         (WebCore::ChildFrameDisconnector::collectDescendant):
1516         * dom/Document.cpp:
1517         (WebCore::Document::buildAccessKeyMap):
1518         (WebCore::Document::removeAllEventListeners):
1519         (WebCore::Document::updateBaseURL):
1520         (WebCore::Document::processBaseElement):
1521         (WebCore::Document::nodeAbsIndex):
1522         (WebCore::Document::nodeWithAbsIndex):
1523         (WebCore::Document::getFocusableNodes):
1524         * dom/DocumentMarkerController.cpp:
1525         (WebCore::DocumentMarkerController::markersInRange):
1526         (WebCore::DocumentMarkerController::setMarkersActive):
1527         (WebCore::DocumentMarkerController::hasMarkers):
1528         (WebCore::DocumentMarkerController::clearDescriptionOnMarkersIntersectingRange):
1529         * dom/DocumentOrderedMap.cpp:
1530         (WebCore::DocumentOrderedMap::get):
1531         * dom/ElementShadow.cpp:
1532         (WebCore::ElementShadow::collectSelectFeatureSetFrom):
1533         * dom/Node.cpp:
1534         (WebCore::Node::normalize):
1535         (WebCore::Node::lazyAttach):
1536         (WebCore):
1537         (WebCore::Node::detach):
1538         (WebCore::traverseTreeAndMark):
1539         * dom/Node.h:
1540         (Node):
1541         * dom/NodeIterator.cpp:
1542         (WebCore::NodeIterator::NodePointer::moveToNext):
1543         (WebCore::NodeIterator::NodePointer::moveToPrevious):
1544         (WebCore::NodeIterator::updateForNodeRemoval):
1545         * dom/NodeTraversal.h: Added.
1546         (WebCore):
1547         (NodeTraversal):
1548         (WebCore::NodeTraversal::traverseNextNodeTemplate):
1549         (WebCore::NodeTraversal::next):
1550         (WebCore::NodeTraversal::traverseNextSiblingTemplate):
1551         (WebCore::NodeTraversal::nextSibling):
1552         * dom/Range.cpp:
1553         (WebCore::Range::toString):
1554         (WebCore::Range::checkDeleteExtract):
1555         (WebCore::Range::firstNode):
1556         (WebCore::Range::pastLastNode):
1557         (WebCore::Range::textRects):
1558         (WebCore::Range::textQuads):
1559         (WebCore::Range::getBorderAndTextQuads):
1560         * dom/TreeScope.cpp:
1561         (WebCore::TreeScope::labelElementForId):
1562         (WebCore::TreeScope::findAnchor):
1563         * dom/TreeScopeAdopter.cpp:
1564         (WebCore::TreeScopeAdopter::moveTreeToNewScope):
1565         (WebCore::TreeScopeAdopter::moveTreeToNewDocument):
1566         * dom/TreeWalker.cpp:
1567         (WebCore::TreeWalker::nextNode):
1568         * editing/ApplyStyleCommand.cpp:
1569         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
1570         (WebCore::ApplyStyleCommand::fixRangeAndApplyInlineStyle):
1571         (WebCore::containsNonEditableRegion):
1572         (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
1573         (WebCore::ApplyStyleCommand::removeStyleFromRunBeforeApplyingStyle):
1574         (WebCore::ApplyStyleCommand::removeInlineStyle):
1575         * editing/BreakBlockquoteCommand.cpp:
1576         (WebCore::BreakBlockquoteCommand::doApply):
1577         * editing/CompositeEditCommand.cpp:
1578         (WebCore::CompositeEditCommand::deleteInsignificantText):
1579         (WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
1580         * editing/DeleteSelectionCommand.cpp:
1581         (WebCore::firstEditablePositionInNode):
1582         (WebCore::DeleteSelectionCommand::makeStylingElementsDirectChildrenOfEditableRootToPreventStyleLoss):
1583         (WebCore::DeleteSelectionCommand::handleGeneralDelete):
1584         * editing/EditCommand.cpp:
1585         (WebCore::SimpleEditCommand::addNodeAndDescendants):
1586         * editing/EditingStyle.cpp:
1587         (WebCore::EditingStyle::triStateOfStyle):
1588         (WebCore::EditingStyle::textDirectionForSelection):
1589         * editing/Editor.cpp:
1590         (WebCore::Editor::simplifyMarkup):
1591         * editing/FrameSelection.cpp:
1592         (WebCore::scanForForm):
1593         (WebCore::FrameSelection::setSelectionFromNone):
1594         * editing/InsertParagraphSeparatorCommand.cpp:
1595         (WebCore::InsertParagraphSeparatorCommand::doApply):
1596         * editing/ReplaceSelectionCommand.cpp:
1597         (WebCore::ReplacementFragment::removeUnrenderedNodes):
1598         (WebCore::ReplacementFragment::removeInterchangeNodes):
1599         (WebCore::ReplaceSelectionCommand::InsertedNodes::willRemoveNodePreservingChildren):
1600         (WebCore::ReplaceSelectionCommand::InsertedNodes::willRemoveNode):
1601         (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
1602         (WebCore::removeHeadContents):
1603         (WebCore::ReplaceSelectionCommand::handleStyleSpans):
1604         * editing/ReplaceSelectionCommand.h:
1605         (WebCore::ReplaceSelectionCommand::InsertedNodes::pastLastLeaf):
1606         * editing/SimplifyMarkupCommand.cpp:
1607         (WebCore::SimplifyMarkupCommand::doApply):
1608         * editing/TextIterator.cpp:
1609         (WebCore::TextIterator::advance):
1610         (WebCore::shouldEmitNewlineAfterNode):
1611         * editing/htmlediting.cpp:
1612         (WebCore::hasARenderedDescendant):
1613         * editing/mac/EditorMac.mm:
1614         (WebCore::Editor::fontForSelection):
1615         * editing/markup.cpp:
1616         (WebCore::completeURLs):
1617         (WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):
1618         (WebCore::findNodesSurroundingContext):
1619         (WebCore::trimFragment):
1620         * editing/visible_units.cpp:
1621         (WebCore::startOfParagraph):
1622         (WebCore::endOfParagraph):
1623         * html/HTMLCollection.cpp:
1624         (WebCore::nextNode):
1625         * html/HTMLElement.cpp:
1626         (WebCore::setHasDirAutoFlagRecursively):
1627         (WebCore::HTMLElement::directionality):
1628         (WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged):
1629         (WebCore::HTMLElement::getItemRefElements):
1630         * html/HTMLFieldSetElement.cpp:
1631         (WebCore::HTMLFieldSetElement::invalidateDisabledStateUnder):
1632         (WebCore::HTMLFieldSetElement::refreshElementsIfNeeded):
1633         * html/HTMLFormElement.cpp:
1634         (WebCore::HTMLFormElement::formElementIndex):
1635         * html/HTMLLabelElement.cpp:
1636         (WebCore::HTMLLabelElement::control):
1637         * html/HTMLLegendElement.cpp:
1638         (WebCore::HTMLLegendElement::associatedControl):
1639         * html/HTMLMapElement.cpp:
1640         (WebCore::HTMLMapElement::mapMouseEvent):
1641         * html/HTMLNameCollection.cpp:
1642         (WebCore::HTMLNameCollection::virtualItemAfter):
1643         * html/HTMLOptionElement.cpp:
1644         (WebCore::HTMLOptionElement::collectOptionInnerText):
1645         * html/HTMLPropertiesCollection.cpp:
1646         (WebCore::nextNodeWithProperty):
1647         * html/HTMLSelectElement.cpp:
1648         (WebCore::HTMLSelectElement::recalcListItems):
1649         * html/HTMLTextFormControlElement.cpp:
1650         (WebCore::HTMLTextFormControlElement::selection):
1651         (WebCore::HTMLTextFormControlElement::innerTextValue):
1652         (WebCore::HTMLTextFormControlElement::valueWithHardLineBreaks):
1653         * html/RadioInputType.cpp:
1654         (WebCore::RadioInputType::handleKeydownEvent):
1655         * html/shadow/ContentDistributor.cpp:
1656         (WebCore::ShadowRootContentDistributionData::ensureInsertionPointList):
1657         * inspector/InspectorDOMAgent.cpp:
1658         (WebCore::InspectorDOMAgent::performSearch):
1659         * inspector/InspectorMemoryAgent.cpp:
1660         * page/FocusController.cpp:
1661         (WebCore::FocusController::findFocusCandidateInContainer):
1662         * page/Frame.cpp:
1663         (WebCore::Frame::searchForLabelsAboveCell):
1664         (WebCore::Frame::searchForLabelsBeforeElement):
1665         * rendering/RenderNamedFlowThread.cpp:
1666         (WebCore::RenderNamedFlowThread::getRanges):
1667         * svg/SVGSVGElement.cpp:
1668         (WebCore::SVGSVGElement::collectIntersectionOrEnclosureList):
1669         (WebCore::SVGSVGElement::getElementById):
1670         * svg/SVGUseElement.cpp:
1671         (WebCore::removeDisallowedElementsFromSubtree):
1672         * svg/animation/SMILTimeContainer.cpp:
1673         (WebCore::SMILTimeContainer::updateDocumentOrderIndexes):
1674         * xml/XPathNodeSet.cpp:
1675         (WebCore::XPath::NodeSet::traversalSort):
1676         * xml/XPathStep.cpp:
1677         (WebCore::XPath::Step::nodesInAxis):
1678         * xml/XPathUtil.cpp:
1679         (WebCore::XPath::stringValue):
1680
1681 2012-12-10  Min Qin  <qinmin@chromium.org>
1682
1683         Sending multi-touch events to the same Iframe
1684         https://bugs.webkit.org/show_bug.cgi?id=97973
1685
1686         Reviewed by Dimitri Glazkov.
1687
1688         Multi-Touch in different iframe can give both documents access to each other.
1689         This could cause cross-origin access. To solve this, all the touch events should
1690         be sent to the iframe where the first touchstart happens.
1691
1692         Test: fast/events/touch/multi-touch-inside-iframes.html
1693               fast/events/touch/multi-touch-inside-nested-iframes.html
1694
1695         * page/EventHandler.cpp:
1696         (WebCore::EventHandler::handleTouchEvent):
1697         * page/EventHandler.h:
1698
1699 2012-12-10  KyungTae Kim  <ktf.kim@samsung.com>
1700
1701         [soup] Fix build warning in ResourceHandleSoup.cpp
1702         https://bugs.webkit.org/show_bug.cgi?id=104605
1703
1704         Reviewed by Martin Robinson.
1705
1706         The nextMultipartResponsePartCallback has unused parameter 'source',
1707         comment out it to fix 'unused parameter' build warning.
1708
1709         * platform/network/soup/ResourceHandleSoup.cpp:
1710         (WebCore::nextMultipartResponsePartCallback):
1711
1712 2012-12-10  Simon Fraser  <simon.fraser@apple.com>
1713
1714         Fix frame border painting in tiled drawing mode
1715         https://bugs.webkit.org/show_bug.cgi?id=104453
1716         <rdar://problem/11678611>
1717
1718         Reviewed by Dan Bernstein.
1719
1720         Frame borders were not correctly invalidated when in tiled drawing mode, because
1721         RenderFrameSet::layout() invalidated directly on the view, which skips the tile
1722         cache.
1723         
1724         Fix by invalidating like all other renderers, via the repaint container.
1725         
1726         Also, the layer transform should be updated before the invalidation, and
1727         we make use of RenderObject::updateLayerTransform() which has the same behavior
1728         as the old code.
1729
1730         Attempts to make a layout test failed. Resizing composited framesets repainted
1731         via layer resizing, and an attempt to make a ref test in tiled drawing mode
1732         failed (the test passed without the patch).
1733
1734         * rendering/RenderFrameSet.cpp:
1735         (WebCore::RenderFrameSet::layout):
1736
1737 2012-12-10  Simon Fraser  <simon.fraser@apple.com>
1738
1739         When converting a layer into a tiled layer, ensure that we update the visible rect
1740         https://bugs.webkit.org/show_bug.cgi?id=104467
1741
1742         Reviewed by Darin Adler.
1743
1744         When a GraphicsLayerCA toggles to use a TileCache, we have to ensure that the
1745         layer's visible rect (which is used to ensure tile coverage) is updated in
1746         the same commit. Otherwise we can get blank layers until something else causes
1747         the visible rect to be updated.
1748
1749         Test: compositing/tiling/tiled-layer-resize.html
1750
1751         * platform/graphics/ca/GraphicsLayerCA.cpp:
1752         (WebCore::GraphicsLayerCA::dumpAdditionalProperties): With the debug flag, dump the TiledBacking
1753         address for ease of debugging.
1754         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): Set the VisibleRectChanged bit in
1755         m_uncommittedChanges if we've just switched to a tiled layer.
1756
1757 2012-12-10  Simon Fraser  <simon.fraser@apple.com>
1758
1759         Don't unconditionally repaint compositing layers when their size changes
1760         https://bugs.webkit.org/show_bug.cgi?id=104461
1761
1762         Reviewed by Sam Weinig.
1763
1764         RenderLayerBacking always repainted the entire compositing layer when its size
1765         changed. This was done to fix repaint issues when outline widths changes, but
1766         that issue is now solved by repainting in GraphicsLayer::setOffsetFromRenderer(),
1767         add in r134628. I believe this is no longer necessary.
1768         
1769         Always repainting when the size changes is terrible for the tile cache when
1770         loading large documents, as all tiles repaint every time the document gets
1771         longer.
1772
1773         Test: compositing/repaint/resize-repaint.html
1774
1775         * rendering/RenderLayerBacking.cpp:
1776         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
1777
1778 2012-12-10  Ojan Vafai  <ojan@chromium.org>
1779
1780         Unreviewed, rolling out r134150.
1781         http://trac.webkit.org/changeset/134150
1782         https://bugs.webkit.org/show_bug.cgi?id=99940
1783
1784         Caused JS-based tooltips to remain during scroll on Facebook
1785         and Gmail. Rollout until I have time to experiment with less
1786         aggresive approaches.
1787
1788         * page/EventHandler.cpp:
1789         (WebCore):
1790         (WebCore::MaximumDurationTracker::MaximumDurationTracker):
1791         (WebCore::MaximumDurationTracker::~MaximumDurationTracker):
1792         (MaximumDurationTracker):
1793         (WebCore::EventHandler::EventHandler):
1794         (WebCore::EventHandler::clear):
1795         (WebCore::EventHandler::mouseMoved):
1796         (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
1797         (WebCore::EventHandler::fakeMouseMoveEventTimerFired):
1798         * page/EventHandler.h:
1799         (EventHandler):
1800         * platform/Timer.h:
1801
1802 2012-12-10  Yi Shen  <max.hong.shen@gmail.com>
1803
1804         Keyboard caret movement in textarea with RTL Override Character can make tab unresponsive
1805         https://bugs.webkit.org/show_bug.cgi?id=103067
1806
1807         Reviewed by Ryosuke Niwa.
1808
1809         For textarea with RTL override character, the line break could be the previous leaf InlineTextBox of
1810         the InlineTextBox for the RTL override text. When overshots the left/right, make sure the 
1811         leftVisuallyDistinctCandidate and rightVisuallyDistinctCandidate return the visually distinct 
1812         left/right position by ignoring the line break.
1813
1814         Test: editing/selection/move-by-character-crash-test-textarea.html
1815
1816         * editing/VisiblePosition.cpp:
1817         (WebCore::VisiblePosition::leftVisuallyDistinctCandidate):
1818         (WebCore::VisiblePosition::rightVisuallyDistinctCandidate):
1819
1820 2012-12-10  Kondapally Kalyan  <kalyan.kondapally@intel.com>
1821
1822         [EFL][WebGL] Minor Refactoring in GraphicsContext3DEfl.
1823         https://bugs.webkit.org/show_bug.cgi?id=104553.
1824
1825         Reviewed by Kenneth Rohde Christiansen.
1826
1827         We use different FBO for canvas and offscreen surface of our platform layer.
1828         Thus we need to manage any bound buffers while copying contents to the surface. Currently, Surface
1829         always uses double buffering but in future we should be able to configure it to use either
1830         double or single buffer. For these use cases, it would be handy to bind buffers directly to
1831         FBO used by the surface. This patch does the needed changes in GraphicsContext3DEfl and
1832         PlatformSurface. Also, removes some unused code.
1833
1834         Covered by existing tests.
1835
1836         Relevant changes in GraphicsContext3DEfl to obtain FBO id from PlatformSurface.
1837         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
1838         (WebCore::GraphicsContext3D::GraphicsContext3D):
1839         (WebCore::GraphicsContext3D::~GraphicsContext3D):
1840
1841         Renamed createGraphicsSurface to didResizeCanvas.
1842         (WebCore::GraphicsContext3D::createGraphicsSurfaces):
1843         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
1844         (GraphicsContext3DPrivate::didResizeCanvas):
1845         (GraphicsContext3DPrivate::copyToGraphicsSurface):
1846         * platform/graphics/efl/GraphicsContext3DPrivate.h:
1847         (GraphicsContext3DPrivate):
1848
1849         Header cleanup.
1850         * platform/graphics/opengl/GLDefs.h:
1851         * platform/graphics/opengl/GLPlatformContext.cpp:
1852         (WebCore::GLPlatformContext::createContext):
1853         * platform/graphics/opengl/GLPlatformContext.h:
1854
1855         Added initialize method to expose FBO id of the surface.
1856         Removed unused code.
1857         * platform/graphics/opengl/GLPlatformSurface.cpp:
1858         (WebCore::GLPlatformSurface::initialize):
1859         (WebCore):
1860         (WebCore::GLPlatformSurface::updateContents):
1861         * platform/graphics/opengl/GLPlatformSurface.h:
1862         (GLPlatformSurface):
1863         * platform/graphics/surfaces/glx/GLXSurface.h:
1864
1865 2012-12-07  Simon Fraser  <simon.fraser@apple.com>
1866
1867         Tidy up the tiled scrolling indicator, fix with zooming
1868         https://bugs.webkit.org/show_bug.cgi?id=104386
1869
1870         Reviewed by Tim Horton.
1871
1872         Fix the tiled scrolling indicator to not get tiny when zooming,
1873         to not poke out of the bottom of the window, and to not look
1874         so crappy.
1875
1876         * platform/graphics/ca/mac/TileCache.mm:
1877         (WebCore::TileCache::updateTileCoverageMap):
1878         (WebCore::TileCache::drawTileMapContents):
1879
1880 2012-12-10  Sheriff Bot  <webkit.review.bot@gmail.com>
1881
1882         Unreviewed, rolling out r136817.
1883         http://trac.webkit.org/changeset/136817
1884         https://bugs.webkit.org/show_bug.cgi?id=104596
1885
1886         This patch was an unnecessarily complex solution to handling
1887         conversion of union types. (Requested by mpruett on #webkit).
1888
1889         * bindings/js/JSDictionary.cpp:
1890         (WebCore::JSDictionary::convertValue):
1891         * bindings/js/JSDictionary.h:
1892         (WebCore::JSDictionary::tryGetPropertyAndResult):
1893
1894 2012-12-10  Tab Atkins  <tabatkins@google.com>
1895
1896         Deprecate prefixed linear-gradient and radial-gradient functions
1897         https://bugs.webkit.org/show_bug.cgi?id=104591
1898
1899         Reviewed by Dean Jackson.
1900
1901         Rename the old gradient parsing functions in anticipation of functions that parse the new syntax.
1902
1903         No new tests added - this is a rename and has no functionality change.
1904
1905         * css/CSSParser.cpp:
1906         (WebCore::CSSParser::parseDeprecatedLinearGradient):
1907         (WebCore::CSSParser::parseDeprecatedRadialGradient):
1908         (WebCore::CSSParser::parseGeneratedImage):
1909         * css/CSSParser.h:
1910
1911 2012-12-10  Mark Pilgrim  <pilgrim@chromium.org>
1912
1913         [Chromium][Win] Remove theme-related functions from PlatformSupport
1914         https://bugs.webkit.org/show_bug.cgi?id=102699
1915
1916         Reviewed by Adam Barth.
1917
1918         Call theme engine directly instead of going through
1919         PlatformSupport. Part of a refactoring series. See tracking bug 82948.
1920
1921         * platform/chromium/PlatformSupport.h:
1922         (PlatformSupport):
1923         * platform/chromium/ScrollbarThemeChromiumWin.cpp:
1924         (WebCore::ScrollbarThemeChromiumWin::paintTrackPiece):
1925         (WebCore::ScrollbarThemeChromiumWin::paintButton):
1926         * rendering/RenderThemeChromiumWin.cpp:
1927         (WebCore):
1928         (WebCore::RenderThemeChromiumWin::paintButton):
1929         (WebCore::RenderThemeChromiumWin::paintSliderTrack):
1930         (WebCore::RenderThemeChromiumWin::paintSliderThumb):
1931         (WebCore::RenderThemeChromiumWin::paintMenuList):
1932         (WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
1933         (WebCore::RenderThemeChromiumWin::paintInnerSpinButton):
1934         (WebCore::RenderThemeChromiumWin::paintProgressBar):
1935
1936 2012-12-10  Dean Jackson  <dino@apple.com>
1937
1938         Support for CSS widows and orphans
1939         https://bugs.webkit.org/show_bug.cgi?id=9410
1940
1941         Reviewed by Darin Adler.
1942
1943         The CSS 'widow' and 'orphan' properties were supported by the parser and
1944         style system, but were not actually doing anything in layout. Now they do!
1945
1946         In order to not break existing content, I unfortunately had to go against
1947         the specification and change our default value from 2 to auto. A value of
1948         auto means that widows and orphans will not cause any page/column breaks.
1949
1950         Supporting orphans was a small change. During line layout, if we realise
1951         we need to move to a new page in a situation that would create an orphan,
1952         move the entire block to the new page. There was already code to do this.
1953
1954         Support for widows was trickier. When we finish laying out a block, count
1955         the number of hanging lines. If we've created a widow, and there are enough
1956         available lines on the previous page, then steal some and remember the line
1957         to break at. Trigger a relayout. Then notice the line that was marked for
1958         breaking and avoid the widow. This means some blocks go through layout
1959         twice, but as long as the widow value is small it shouldn't be a huge penalty.
1960
1961         Tests: fast/multicol/widows-and-orphans.html (new test)
1962                printing/page-break-orphans.html
1963                printing/page-break-orphans-and-widows.html
1964                printing/page-break-widows.html
1965
1966         * css/CSSComputedStyleDeclaration.cpp:
1967         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Return CSSValueAuto for widows and orphans if necessary.
1968         * css/CSSParser.cpp:
1969         (WebCore::CSSParser::parseValue): Support "auto" in widow and orphan property parsing.
1970         * css/StyleBuilder.cpp:
1971         (WebCore::StyleBuilder::StyleBuilder): Change property handler to something that supports auto.
1972         * page/animation/CSSPropertyAnimation.cpp:
1973         (WebCore::CSSPropertyAnimation::ensurePropertyMap): Add widows and orphans to the animation map.
1974         * rendering/RenderBlock.cpp:
1975         (WebCore::RenderBlock::layoutBlockChild): Detect if we've caused a widow-fixing break, and request relayout evaluation.
1976         (WebCore::RenderBlock::markForPaginationRelayoutIfNeeded): Test for a widow-fixing line.
1977         (WebCore::RenderBlock::setBreakAtLineToAvoidWidow): New function to remember where we should break on next layout.
1978         (WebCore::RenderBlock::adjustLinePositionForPagination): Move the entire block to a new page if this would create an orphan.
1979         * rendering/RenderBlock.h:
1980         (WebCore::RenderBlock::shouldBreakAtLineToAvoidWidow): New function to indicate if we are remembering a widow.
1981         (WebCore::RenderBlock::clearShouldBreakAtLineToAvoidWidow): Reset the line breaks.
1982         (WebCore::RenderBlock::lineBreakToAvoidWidow):
1983         (WebCore::RenderBlock::RenderBlockRareData::RenderBlockRareData): Add a flag for indicating if we are remembering a line, and the actual line itself.
1984         * rendering/RenderBlockLineLayout.cpp:
1985         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): The code to detect and fix widows. Explained above.
1986         * rendering/style/RenderStyle.h: New methods for indicating if widows and orphans are non-default values.
1987         * rendering/style/StyleRareInheritedData.cpp: Ditto.
1988         * rendering/style/StyleRareInheritedData.h: Ditto.
1989
1990 2012-12-10  Zan Dobersek  <zandobersek@gmail.com>
1991
1992         REGRESSION (r118735): svg/dom/complex-svgView-specification.html, svg/dom/SVGViewSpec.html, svg/dom/viewspec-parser.html failing on GTK Linux 64-bit Release
1993         https://bugs.webkit.org/show_bug.cgi?id=87734
1994
1995         Reviewed by Martin Robinson.
1996
1997         Don't modify ResourceRequest's URL to have the value of the (encoded)
1998         URI of the SoupMessage. The only exception is in the case of cancelled
1999         SoupMessage - the URL of the ResourceRequest should then be null.
2000
2001         No new tests - existing tests should show no regressions.
2002
2003         * platform/network/soup/ResourceRequestSoup.cpp:
2004         (WebCore::ResourceRequest::updateFromSoupMessage):
2005
2006 2012-12-10  Gustavo Noronha Silva  <gns@gnome.org>
2007
2008         Unreviewed distcheck fix.
2009
2010         * GNUmakefile.list.am:
2011
2012 2012-12-10  Eric Seidel  <eric@webkit.org>
2013
2014         Caused crashes in v8.  Rolling out until abarth can fix.  See cr-issue 165136 for more info
2015         https://bugs.webkit.org/show_bug.cgi?id=104575
2016
2017         Unreviewed, just rolling out r136559.
2018
2019         * bindings/v8/V8GCController.cpp:
2020         * bindings/v8/V8NodeFilterCondition.cpp:
2021         (WebCore::V8NodeFilterCondition::V8NodeFilterCondition):
2022         (WebCore::V8NodeFilterCondition::acceptNode):
2023         * bindings/v8/V8NodeFilterCondition.h:
2024         (WebCore::V8NodeFilterCondition::create):
2025         (V8NodeFilterCondition):
2026         * dom/NodeFilter.h:
2027
2028 2012-12-10  Eric Carlson  <eric.carlson@apple.com>
2029
2030         Unreviewed build fix after r137167.
2031
2032         * WebCore.xcodeproj/project.pbxproj: Add InbandTextTrackPrivate.h to framework private 
2033             headers.
2034
2035 2012-12-10  Martin Robinson  <mrobinson@igalia.com>
2036
2037         Fix the GTK+ build after a collision of two patches.
2038
2039         Unreviewed build fix.
2040
2041         * bindings/gobject/GNUmakefile.am: The GObject DOM bindings library needs to
2042         include the harfbuzz cflags when compiling.
2043
2044 2012-12-10  Parth Patel  <parpatel@rim.com>
2045
2046         Make hiddenPageDomTimerInterval a setting
2047         https://bugs.webkit.org/show_bug.cgi?id=104555
2048
2049         Reviewed by Yong Li.
2050
2051         Make hiddenPageDomTimerInterval a setting so client can customize it.
2052
2053         No new tests are needed.
2054
2055         * page/Page.cpp:
2056         (WebCore):
2057         (WebCore::Page::setVisibilityState):
2058         * page/Settings.cpp:
2059         (WebCore):
2060         (WebCore::Settings::setHiddenPageDOMTimerAlignmentInterval):
2061         (WebCore::Settings::hiddenPageDOMTimerAlignmentInterval):
2062         * page/Settings.h:
2063         (Settings):
2064
2065 2012-12-10  peavo@outlook.com  <peavo@outlook.com>
2066
2067         [WinCairo] Compile fix in ImageCairoWin.cpp
2068         https://bugs.webkit.org/show_bug.cgi?id=104554
2069
2070         Reviewed by Brent Fulgham.
2071
2072         * platform/graphics/win/ImageCairoWin.cpp:
2073         (WebCore::BitmapImage::getHBITMAPOfSize): Added parameter.
2074         (WebCore::BitmapImage::drawFrameMatchingSourceSize): Added parameter.
2075
2076 2012-12-10  Mike West  <mkwst@chromium.org>
2077
2078         Log to console when script is blocked by sandbox attributes.
2079         https://bugs.webkit.org/show_bug.cgi?id=104365
2080
2081         Reviewed by Ojan Vafai.
2082
2083         Adds a console message to cover script execution blocked within the
2084         context of a sandboxed frame which lacks the 'allow-scripts' permission.
2085
2086         * bindings/ScriptControllerBase.cpp:
2087         (WebCore::ScriptController::canExecuteScripts):
2088             Log a warning when sandboxing flags block script execution.
2089
2090 2012-12-10  Chris Fleizach  <cfleizach@apple.com>
2091
2092         AX: Crash in NSAccessibilityUnignoredDescendant
2093         https://bugs.webkit.org/show_bug.cgi?id=104468
2094
2095         Reviewed by Anders Carlsson.
2096
2097         This crash occurred because AccessibilityScrollView stopped retaining it's ScrollView pointer.
2098
2099         Unfortunately, there was still a case that didn't correctly clear that variable. 
2100
2101         That case was when a Frame had a new FrameView associated with it. The old FrameView didn't inform the 
2102         accessibility object cache that it should be removed. As a result, when the FrameView deallocated and 
2103         did try to remove, it used the wrong AXObjectCache because it was no longer correctly hooked into the 
2104         document tree.
2105
2106         No new tests. Existing tests will stop crashing.
2107  
2108         * page/Frame.cpp:
2109         (WebCore::Frame::setView): change the name of the method that tells the FrameView to detach
2110         * page/FrameView.cpp:
2111         (WebCore::FrameView::~FrameView):
2112         (WebCore::FrameView::removeFromAXObjectCache): add a method that can be called in multiple places
2113         (WebCore::FrameView::isFrameView):
2114         (WebCore::FrameView::prepareForDetach): detaches scrollbars and accessibility
2115         * page/FrameView.h:
2116         (FrameView):
2117
2118 2012-12-10  Mark Pilgrim  <pilgrim@chromium.org>
2119
2120         [Chromium] Move getPluginsList out of PlatformSupport
2121         https://bugs.webkit.org/show_bug.cgi?id=96507
2122
2123         Reviewed by Darin Fisher.
2124
2125         Part of a refactoring series. See tracking bug 82948.
2126
2127         * WebCore.gypi:
2128         * platform/chromium/PlatformSupport.h:
2129         (PlatformSupport):
2130         * plugins/chromium/PluginDataChromium.cpp:
2131         (WebCore::PluginCache::plugins):
2132         * plugins/chromium/PluginListBuilder.cpp: Added.
2133         (WebKit):
2134         (WebKit::PluginListBuilder::addPlugin):
2135         (WebKit::PluginListBuilder::addMediaTypeToLastPlugin):
2136         (WebKit::PluginListBuilder::addFileExtensionToLastMediaType):
2137         * plugins/chromium/PluginListBuilder.h: Added.
2138         (WebKit):
2139         (PluginListBuilder):
2140         (WebKit::PluginListBuilder::PluginListBuilder):
2141
2142 2012-12-10  Carlos Garcia Campos  <cgarcia@igalia.com>
2143
2144         [GTK] Build GObject DOM bindings as a separate library
2145         https://bugs.webkit.org/show_bug.cgi?id=104527
2146
2147         Reviewed by Xan Lopez.
2148
2149         * bindings/gobject/GNUmakefile.am: Add libWebCoreDOM library.
2150         * bindings/gobject/WebKitDOMBinding.h: Define private macros.
2151         * bindings/gobject/WebKitDOMCustom.h: Don't include webkit/webkitdefines.h.
2152         * bindings/gobject/WebKitDOMEventTarget.h: Ditto.
2153         * bindings/gobject/WebKitDOMObject.h: Ditto.
2154         * bindings/scripts/CodeGeneratorGObject.pm:
2155         (Generate): Don't include webkitglobalsprivate.h.
2156         (WriteData): Don't include webkit/webkitdefines.h.
2157         * bindings/scripts/gobject-generate-headers.pl: Define WEBKIT_API
2158         macro in webkitdomdefines.h.
2159         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
2160         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
2161         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
2162         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
2163         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
2164         * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
2165         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
2166         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
2167         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
2168         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
2169         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
2170         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
2171         * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
2172         * bindings/scripts/test/GObject/WebKitDOMTestException.h:
2173         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
2174         * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
2175         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
2176         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
2177         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
2178         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
2179         * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
2180         * bindings/scripts/test/GObject/WebKitDOMTestNode.h:
2181         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
2182         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
2183         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
2184         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h:
2185         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
2186         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
2187
2188 2012-12-10  Adam Klein  <adamk@chromium.org>
2189
2190         In InbandTextTrackPrivate, return emptyAtoms instead of emptyString() by default.
2191
2192         Unreviewed build fix.
2193
2194         * platform/graphics/InbandTextTrackPrivate.h:
2195         (WebCore::InbandTextTrackPrivate::label):
2196         (WebCore::InbandTextTrackPrivate::language):
2197
2198 2012-12-10  Ilya Tikhonovsky  <loislo@chromium.org>
2199
2200         Web Inspector: Native Memory Instrumentation: instrument RenderBox descendants.
2201         https://bugs.webkit.org/show_bug.cgi?id=104026
2202
2203         Reviewed by Eric Seidel.
2204
2205         Plain vanilla instrumentation for RenderBox descendants.
2206
2207         * rendering/RenderFrameSet.cpp:
2208         (WebCore::RenderFrameSet::reportMemoryUsage):
2209         (WebCore):
2210         (WebCore::RenderFrameSet::GridAxis::reportMemoryUsage):
2211         * rendering/RenderFrameSet.h:
2212         (RenderFrameSet):
2213         (GridAxis):
2214         * rendering/RenderListMarker.cpp:
2215         (WebCore::RenderListMarker::reportMemoryUsage):
2216         (WebCore):
2217         * rendering/RenderListMarker.h:
2218         (RenderListMarker):
2219         * rendering/RenderReplaced.cpp:
2220         (WebCore::RenderReplaced::reportMemoryUsage):
2221         (WebCore):
2222         * rendering/RenderReplaced.h:
2223         (RenderReplaced):
2224         * rendering/RenderTableCol.cpp:
2225         (WebCore::RenderTableCol::reportMemoryUsage):
2226         (WebCore):
2227         * rendering/RenderTableCol.h:
2228         (RenderTableCol):
2229         * rendering/RenderTableRow.cpp:
2230         (WebCore::RenderTableRow::reportMemoryUsage):
2231         (WebCore):
2232         * rendering/RenderTableRow.h:
2233         (RenderTableRow):
2234         * rendering/RenderTableSection.cpp:
2235         (WebCore::RenderTableSection::reportMemoryUsage):
2236         (WebCore):
2237         (WebCore::RenderTableSection::RowStruct::reportMemoryUsage):
2238         (WebCore::RenderTableSection::CellStruct::reportMemoryUsage):
2239         * rendering/RenderTableSection.h:
2240         (CellStruct):
2241         (RowStruct):
2242
2243 2012-12-10  Alejandro Piñeiro  <apinheiro@igalia.com>
2244
2245         AX: wrong Enabled states on a ListBox
2246         https://bugs.webkit.org/show_bug.cgi?id=104483
2247
2248         Reviewed by Chris Fleizach.
2249
2250         Test: accessibility/listbox-enabled-states.html
2251
2252         * accessibility/AccessibilityListBoxOption.cpp:
2253         (WebCore::AccessibilityListBoxOption::isEnabled): taking into
2254         account the DISABLED attribute and the aria-disabled attribute to
2255         decide if the item is enabled or not.
2256
2257 2012-12-10  Adam Klein  <adamk@chromium.org>
2258
2259         cr-win build fix after r137161.
2260
2261         Unreviewed.
2262
2263         * platform/graphics/MediaPlayer.h: Replace forward-decl of
2264         InbandTextTrackPrivate with #include as the definition is required.
2265
2266 2012-12-10  Alexis Menard  <alexis@webkit.org>
2267
2268         [CSS3 Backgrounds and Borders] Remove CSS3_BACKGROUND feature flag.
2269         https://bugs.webkit.org/show_bug.cgi?id=104539
2270
2271         Reviewed by Antonio Gomes.
2272
2273         As discussed on webkit-dev it is not needed to keep this feature flag 
2274         as support for <position> type is a small feature that is already 
2275         implemented by three other UAs. It was useful while landing this 
2276         feature as partial bits were landed one after one.
2277
2278         No new tests : the feature is covered by various tests and it is already enabled in many ports.
2279
2280         * Configurations/FeatureDefines.xcconfig:
2281         * GNUmakefile.am:
2282         * GNUmakefile.features.am:
2283         * css/CSSParser.cpp:
2284         (WebCore::CSSParser::parseFillPosition):
2285         (WebCore::CSSParser::parseFillProperty):
2286         * css/CSSParser.h:
2287         * css/CSSToStyleMap.cpp:
2288         (WebCore::CSSToStyleMap::mapFillXPosition):
2289         (WebCore::CSSToStyleMap::mapFillYPosition):
2290         * rendering/style/FillLayer.cpp:
2291         (SameSizeAsFillLayer):
2292         (WebCore::FillLayer::FillLayer):
2293         (WebCore::FillLayer::operator=):
2294         (WebCore::FillLayer::operator==):
2295         (WebCore::FillLayer::fillUnsetProperties):
2296         * rendering/style/FillLayer.h:
2297         (WebCore::FillLayer::backgroundXOrigin):
2298         (WebCore::FillLayer::backgroundYOrigin):
2299         (WebCore::FillLayer::isBackgroundOriginSet):
2300         (WebCore::FillLayer::clearXPosition):
2301         (WebCore::FillLayer::clearYPosition):
2302         (FillLayer):
2303
2304 2012-12-10  Eric Carlson  <eric.carlson@apple.com>
2305
2306         Add support for in-band text tracks to Mac port
2307         https://bugs.webkit.org/show_bug.cgi?id=103663
2308
2309         Reviewed by Sam Weinig.
2310
2311         Test: media/track/track-in-band.html
2312
2313         * GNUmakefile.list.am: Move InbandTextTrackPrivate.h to platform/graphics. Add InbandTextTrackPrivateClient.h.
2314         * Target.pri: Ditto.
2315         * WebCore.gypi: Ditto.
2316
2317         * WebCore.xcodeproj/project.pbxproj: Add new files.
2318
2319         * html/HTMLMediaElement.cpp:
2320         (WebCore::HTMLMediaElement::setReadyState): No need to call processInbandTextTracks, in-band tracks
2321             are now registered by the media engine as they are discovered.
2322         (WebCore::HTMLMediaElement::mediaPlayerDidAddTrack): New, called by the media player when a new
2323             in-band track is found.
2324         (WebCore::HTMLMediaElement::mediaPlayerDidRemoveTrack): New, called by the media player when an
2325             in-band track goes away.
2326         * html/HTMLMediaElement.h:
2327
2328         * html/track/InbandTextTrack.cpp:
2329         (WebCore::InbandTextTrack::InbandTextTrack): Use m_private instead of tracksPrivate because
2330             it is zeroed during assignment.
2331
2332         * platform/graphics/MediaPlayer.cpp:
2333         (WebCore::MediaPlayer::addTextTrack): New MediaPlayerClient method to allow MediaPlayerPrivate subclasses
2334             to add a new in-band track.
2335         (WebCore::MediaPlayer::removeTextTrack): New MediaPlayerClient method to allow MediaPlayerPrivate subclasses
2336             to remove a new in-band track.
2337         * platform/graphics/MediaPlayer.h:
2338         * platform/graphics/MediaPlayerPrivate.h:
2339
2340         * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp: Added.
2341         (WebCore::InbandTextTrackPrivateAVF::InbandTextTrackPrivateAVF):
2342         (WebCore::InbandTextTrackPrivateAVF::~InbandTextTrackPrivateAVF):
2343         (WebCore::InbandTextTrackPrivateAVF::processCueAttributes): Convert an attribute string into WebVTT 
2344             cue setting and content strings.
2345         (WebCore::InbandTextTrackPrivateAVF::processCue): Process a new cue.
2346         (WebCore::InbandTextTrackPrivateAVF::disconnect): Clear member variables.
2347         (WebCore::InbandTextTrackPrivateAVF::resetCueValues): Reset cue values to defaults.
2348         (WebCore::InbandTextTrackPrivateAVF::setMode): Set track mode and call player's trackModeChanged.
2349         * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h: Added.
2350
2351         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: Initialize 
2352             m_inbandTrackConfigurationPending.
2353         (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
2354         (WebCore::MediaPlayerPrivateAVFoundation::seekCompleted): Flush the currently accumulating
2355             cue so it doesn't get the wrong duration.
2356         (WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification): Handle InbandTracksNeedConfiguration.
2357         (WebCore::MediaPlayerPrivateAVFoundation::flushCurrentCue): New, pass the current cue up to the client.
2358         (WebCore::MediaPlayerPrivateAVFoundation::configureInbandTracks): Configure in-band tracks.
2359         (WebCore::MediaPlayerPrivateAVFoundation::trackModeChanged): Schedule a call to configureInbandTracks.
2360         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
2361
2362         * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.h: Added.
2363         * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm: Added.
2364         (WebCore::InbandTextTrackPrivateAVFObjC::InbandTextTrackPrivateAVFObjC):
2365         (WebCore::InbandTextTrackPrivateAVFObjC::disconnect):
2366         (WebCore::InbandTextTrackPrivateAVFObjC::kind): Return track kind.
2367         (WebCore::InbandTextTrackPrivateAVFObjC::label): Return track label.
2368         (WebCore::InbandTextTrackPrivateAVFObjC::language): Return track language.
2369         (WebCore::InbandTextTrackPrivateAVFObjC::isDefault): 
2370         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
2371         (MediaPlayerPrivateAVFoundationObjC):
2372         (WebCore::MediaPlayerPrivateAVFoundationObjC::playerItem):
2373         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2374         (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Initialize m_currentTrack.
2375         (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad): Clear m_legibleOutput.
2376         (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Create and initialize m_legibleOutput.
2377         (WebCore::MediaPlayerPrivateAVFoundationObjC::processTextTracks): Called when the player item's
2378             "tracks" changes, add and remove in-band text tracks as necessary.
2379         (WebCore::MediaPlayerPrivateAVFoundationObjC::processCue): Pass an attributed string to the current 
2380             track to be processed.
2381         (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTrack): Tell AVFoundation to select an in-band track.
2382         (WebCore::MediaPlayerPrivateAVFoundationObjC::currentTrack): Return the current track.
2383         (-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]): Legible
2384             output delegate.
2385
2386 2012-12-10  Pavel Feldman  <pfeldman@chromium.org>
2387
2388         Web Inspector: fix front-end compilation warnings
2389         https://bugs.webkit.org/show_bug.cgi?id=104557
2390
2391         Reviewed by Alexander Pavlov.
2392
2393         Corresponding annotations added.
2394
2395         * inspector/Inspector.json:
2396         * inspector/InspectorDOMAgent.cpp:
2397         (WebCore::InspectorDOMAgent::highlightNode):
2398         * inspector/InspectorDOMAgent.h:
2399         (InspectorDOMAgent):
2400         * inspector/front-end/CSSStyleModel.js:
2401         (WebInspector.CSSStyleDeclaration.prototype.):
2402         (WebInspector.CSSStyleDeclaration.prototype.insertPropertyAt):
2403         * inspector/front-end/ConsoleMessage.js:
2404         (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreview):
2405         * inspector/front-end/DOMAgent.js:
2406         (WebInspector.DOMAgent.prototype.highlightDOMNode):
2407         * inspector/front-end/DOMPresentationUtils.js:
2408         (WebInspector.DOMPresentationUtils.linkifyNodeReference):
2409         * inspector/front-end/ObjectPropertiesSection.js:
2410         (WebInspector.ObjectPropertyTreeElement.prototype.update):
2411         * inspector/front-end/Toolbar.js:
2412
2413 2012-12-10  Zeno Albisser  <zeno@webkit.org>
2414
2415         [Qt] MediaPlayerQTKit broken after switching QPainter to raster engine.
2416         https://bugs.webkit.org/show_bug.cgi?id=104550
2417
2418         With Qt5 QPainter changed to using the raster engine.
2419         Therefore we no longer have an NSGraphicsContext that we can
2420         use for drawing video frames.
2421         With this patch we are rendering the video frame into an image buffer
2422         and then paint it manually using QPainter.
2423
2424         Reviewed by Simon Hausmann.
2425
2426         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2427         (WebCore):
2428         (WebCore::swapBgrToRgb):
2429             Swap the color format from BGR to RGB,
2430             since BGR is not supported by QImage.
2431         (WebCore::MediaPlayerPrivateQTKit::paint):
2432
2433 2012-12-10  peavo@outlook.com  <peavo@outlook.com>
2434
2435         [WinCairo] Link fix in InspectorController.cpp
2436         https://bugs.webkit.org/show_bug.cgi?id=104556
2437
2438         Reviewed by Pavel Feldman.
2439
2440         * inspector/InspectorController.cpp:
2441         (WebCore::InspectorController::InspectorController): Added missing #if check.
2442
2443 2012-12-10  Pavel Feldman  <pfeldman@chromium.org>
2444
2445         Web Inspector: remove the Overrides / Settings context menu from gear icon
2446         https://bugs.webkit.org/show_bug.cgi?id=104546
2447
2448         Reviewed by Alexander Pavlov.
2449
2450         It sounds like too many people don't like the way it works. Bringing things back: overrides will be a tab in settings for now.
2451         Moving present behavior to under experiment.
2452
2453         * inspector/front-end/OverridesView.js:
2454         (WebInspector.OverridesView):
2455         * inspector/front-end/Settings.js:
2456         (WebInspector.ExperimentsSettings):
2457         * inspector/front-end/SettingsScreen.js:
2458         (WebInspector.OverridesSettingsTab):
2459         (WebInspector.SettingsController):
2460         (WebInspector.SettingsController.prototype.get statusBarItem):
2461         (WebInspector.SettingsController.prototype._mouseDown.showSettings):
2462         (WebInspector.SettingsController.prototype._mouseDown):
2463         (WebInspector.SettingsController.prototype._mouseUp):
2464         * inspector/front-end/helpScreen.css:
2465         (#settings-screen .tabbed-pane-header):
2466         (#settings-screen .tabbed-pane-header-tabs):
2467         (#settings-screen .tabbed-pane-header-tab):
2468
2469 2012-12-10  Kent Tamura  <tkent@chromium.org>
2470
2471         Visual order of empty value placeholder in INPUT_MULTIPLE_FIELDS_UI is wrong in RTL
2472         https://bugs.webkit.org/show_bug.cgi?id=104438
2473
2474         Reviewed by Hajime Morita.
2475
2476         No new tests. This updates datetimelocal-appearance-l10n.html for he-il
2477         and ar-eg locales.
2478
2479         * html/shadow/DateTimeNumericFieldElement.cpp:
2480         (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
2481         We should not append Right-to-left-mark to each of placeholder
2482         strings. It makes numeric field separators such as ':' and '/' RTL, and
2483         makes a wrong visual order. We use unicode-bidi:bidi-override and
2484         direction:ltr instead. It means we force LTR only to this element
2485         * html/shadow/DateTimeNumericFieldElement.h:
2486         Makes m_placeholder const again.
2487         * html/shadow/DateTimeEditElement.cpp:
2488         (WebCore::DateTimeEditBuilder::visitLiteral):
2489         Explicitly set right-to-left-mark before S, WS, ON types according to
2490         Unicod Bidirectional Algorithm Table 4 [1]. This is needed because we
2491         don't have context like "This literal follows European/Arabic numbers"
2492         in a case of showing placeholders.
2493         [1] http://www.unicode.org/reports/tr9/#Bidirectional_Character_Types
2494
2495 2012-12-09  Gustavo Noronha Silva  <gustavo.noronha@collabora.com>
2496
2497         [Soup] utilize multipart/x-mixed-replace support recently added to libsoup
2498         https://bugs.webkit.org/show_bug.cgi?id=94515
2499
2500         Reviewed by Martin Robinson.
2501
2502         The multipart/x-mixed-replace content type is often used for providing
2503         "push" server support, with each part in the multipart response
2504         replacing the previous one in the rendering. Soup recently acquired
2505         support for multipart/x-mixed replace, which this change utilizes.
2506
2507         Covered by existing multipart/x-mixed-replace tests.
2508
2509         * platform/network/ResourceHandleInternal.h:
2510         (ResourceHandleInternal): add new member to this class, the multipart input stream
2511         * platform/network/soup/ResourceHandleSoup.cpp:
2512         (WebCore::cleanupSoupRequestOperation): also clear the multipart input stream on
2513         cleanup
2514         (WebCore::nextPartCallback): callback that handles reporting the new response delivered
2515         with the new part, if any; uses the factored out updateFromSoupMessageHeaders method
2516         (WebCore::sendRequestCallback): handle multipart/x-mixed-replace responses by
2517         requesting the next part
2518         (WebCore::readCallback): when reading has finished, request the next part when
2519         handling a multipart/x-mixed-replace response
2520         * platform/network/soup/ResourceResponse.h:
2521         (ResourceResponse): add declaration for new method
2522         * platform/network/soup/ResourceResponseSoup.cpp:
2523         (WebCore::ResourceResponse::updateFromSoupMessage): call new updateFromSoupMessageHeaders
2524         method, instead of dealing with the message headers directly
2525         (WebCore::ResourceResponse::updateFromSoupMessageHeaders): new method, factored out from
2526         updateFromSoupMessage, so this same code can be reused for updating responses for
2527         multipart/x-mixed-replace responses parts
2528
2529 2012-12-10  Zoltan Nyul  <zoltan.nyul@intel.com>
2530
2531         Implement testRunner.setViewModeMediaFeature() in WebKitTestRunner
2532         https://bugs.webkit.org/show_bug.cgi?id=103886
2533
2534         Reviewed by Kenneth Rohde Christiansen.
2535
2536         Export symbol for WebCore::Page::setViewMode on Mac.
2537
2538         No new tests, no behavior change for layout tests.
2539
2540         * WebCore.exp.in:
2541
2542 2012-12-10  Martin Robinson  <mrobinson@igalia.com>
2543
2544         [GTK] Bring Harfbuzz-ng support to Gtk
2545         https://bugs.webkit.org/show_bug.cgi?id=92098
2546
2547         Reviewed by Gustavo Noronha Silva.
2548
2549         Enable HarfBuzz support by default. With the Freetype backend we no longer
2550         fall back to Pango for rendering complex text.
2551
2552         No new tests. This is covered by existing tests.
2553
2554         * GNUmakefile.am: Add HarfBuzz include directories and define.
2555         * GNUmakefile.list.am: Add HarfBuzz files to source list and remove
2556         Pango ones.
2557         * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
2558         (WebCore::FontPlatformData::operator==): To properly render fallback
2559         fonts via HarfBuzz , it's important that we actually ask Fontconfig
2560         whether or not two patterns are the same. This ensures that when patterns
2561         are just copies of one another they only take up one slot in the font cache
2562         and appear to be the same font to HarfBuzzShaper.
2563
2564 2012-12-10  Alexander Pavlov  <apavlov@chromium.org>
2565
2566         Web Inspector: [Overrides] Unable to change values in Device Metrics override setting
2567         https://bugs.webkit.org/show_bug.cgi?id=104542
2568
2569         Reviewed by Vsevolod Vlasov.
2570
2571         Remove inadvertent object property assignment.
2572
2573         * inspector/front-end/OverridesView.js:
2574
2575 2012-12-10  Michael Brüning  <michael.bruning@digia.com>
2576
2577         [Qt] Builds for Mac are tied to the OS system instead of the SDK version.
2578         https://bugs.webkit.org/show_bug.cgi?id=104529
2579
2580         Reviewed by Simon Hausmann.
2581
2582         Using work by Eike Ziller <eike.ziller@digia.com>.
2583
2584         The build system now first tries to assign the correct system libraries
2585         for the SDK being used for Mac builds. If this does not yield any
2586         result, it falls back to using the Mac OS version to determine the
2587         correct library.
2588
2589         No new tests (not applicable).
2590
2591         * WebCore.pri:
2592
2593 2012-12-10  Ilya Tikhonovsky  <loislo@chromium.org>
2594
2595         Unreviewed: touch RenderingAllInOne.cpp to fix Apple Windows builder.
2596
2597         * rendering/RenderingAllInOne.cpp:
2598
2599 2012-12-10  Eugene Klyuchnikov  <eustas@chromium.org>
2600
2601         Web Inspector: Network: newly added items are not filtered.
2602         https://bugs.webkit.org/show_bug.cgi?id=104021
2603
2604         Reviewed by Vsevolod Vlasov.
2605
2606         Extracted method to higlight/hide record according to filter.
2607         Used this method to process newly created records.
2608
2609         * inspector/front-end/NetworkPanel.js:
2610         (WebInspector.NetworkLogView.prototype._applyFilter): Extracted.
2611         (WebInspector.NetworkLogView.prototype.performFilter): Refactored.
2612
2613 2012-12-09  Ilya Tikhonovsky  <loislo@chromium.org>
2614
2615         Web Inspector: Unreviewed: move reportMemoryUsage to public section.
2616
2617         * rendering/RenderBlock.h:
2618         (RenderBlock):
2619         * rendering/RenderBox.h:
2620         (RenderBox):
2621
2622 2012-12-08  Pavel Feldman  <pfeldman@chromium.org>
2623
2624         Web Inspector: adds an option to remove toolbar icons.
2625         https://bugs.webkit.org/show_bug.cgi?id=95654
2626
2627         Reviewed by Vsevolod Vlasov.
2628
2629         - removes compact mode in favor or dock-to-bottom
2630         - introduces setting for hiding toolbar icons
2631
2632         * inspector/front-end/DockController.js:
2633         (WebInspector.DockController.prototype._toggleDockState):
2634         * inspector/front-end/Settings.js:
2635         (WebInspector.ExperimentsSettings):
2636         * inspector/front-end/Toolbar.js:
2637         (WebInspector.Toolbar.prototype.setDockedToBottom):
2638         (WebInspector.Toolbar.prototype._toolbarDragStart):
2639         (WebInspector.Toolbar.prototype._toolbarDrag):
2640         * inspector/front-end/helpScreen.css:
2641         (body.dock-to-bottom .help-content):
2642         * inspector/front-end/inspector.css:
2643         (body.dock-to-bottom #toolbar):
2644         (body.no-toolbar-icons #toolbar):
2645         (body.dock-to-bottom.port-qt #toolbar):
2646         (body.dock-to-bottom.inactive #toolbar):
2647         (body.no-toolbar-icons .toolbar-item.toggleable):
2648         (body.dock-to-bottom .toolbar-item.toggleable):
2649         (body.dock-to-bottom .toolbar-icon):
2650         (body.no-toolbar-icons .toolbar-icon):
2651         (body.no-toolbar-icons #main):
2652         (body.dock-to-bottom .toolbar-icon.custom-toolbar-icon):
2653         (body.dock-to-bottom .toolbar-item:active .toolbar-icon):
2654         (body.dock-to-bottom .toolbar-label):
2655         (body.dock-to-bottom #search-toolbar-label):
2656         (body.no-toolbar-icons .toolbar-label):
2657         (body.no-toolbar-icons #toolbar-dropdown):
2658         (#toolbar-dropdown .scrollable-content):
2659         (#toolbar-dropdown .toolbar-item.toggleable:hover):
2660         (body.no-toolbar-icons #toolbar-dropdown .toolbar-label):
2661         (body.no-toolbar-icons #toolbar-dropdown .toolbar-item):
2662         (body.dock-to-bottom .toolbar-item.resources .toolbar-icon):
2663         (body.dock-to-bottom .toolbar-item.network .toolbar-icon):
2664         (body.dock-to-bottom .toolbar-item.scripts .toolbar-icon):
2665         (body.dock-to-bottom .toolbar-item.timeline .toolbar-icon):
2666         (body.dock-to-bottom .toolbar-item.profiles .toolbar-icon):
2667         (body.dock-to-bottom .toolbar-item.audits .toolbar-icon):
2668         (body.dock-to-bottom .toolbar-item.console .toolbar-icon):
2669         (body.dock-to-bottom.port-qt .toolbar-item.close-left, body.dock-to-bottom.port-qt .toolbar-item.close-right):
2670         (body.dock-to-bottom #main):
2671
2672 2012-12-10  Kent Tamura  <tkent@chromium.org>
2673
2674         Refactoring: Remove HTMLFormControlElement::autofocus
2675         https://bugs.webkit.org/show_bug.cgi?id=104524
2676
2677         Reviewed by Kentaro Hara.
2678
2679         autofocus function is used only by HTMLFormControlElement itself, no
2680         sub-classes override it, and it is not exposed via an IDL attribute,
2681
2682         No new tests. This doesn't make any behavior changes.
2683
2684         * html/HTMLFormControlElement.cpp:
2685         (WebCore::shouldAutofocus): Use fastHasAttribute instead of autofocus().
2686         * html/HTMLFormControlElement.h: Remove autofocus().
2687
2688 2012-12-10  Jonathan Liu  <net147@gmail.com>
2689
2690         Fix GC3Dintptr and GC3Dsizeiptr typedefs for Win64
2691         https://bugs.webkit.org/show_bug.cgi?id=104426
2692
2693         Reviewed by Simon Hausmann.
2694
2695         The GC3Dintptr and GC3Dsizeiptr typedefs are incorrect for Win64 as
2696         LLP64 is used there. This would result in compile error due to
2697         narrowing conversion of 64-bit pointer to signed long int which is
2698         32-bit.
2699
2700         * platform/graphics/GraphicsTypes3D.h:
2701
2702 2012-12-10  Kent Tamura  <tkent@chromium.org>
2703
2704         Refactoring: Introduce HTMLFormControlElement::isDisabledOrReadOnly
2705         https://bugs.webkit.org/show_bug.cgi?id=104508
2706
2707         Reviewed by Kentaro Hara.
2708
2709         We have a lot of code like element->disabled || element->readOnly().
2710         isDisabledOrReadOnly makes them simpler.
2711
2712         No new tests. This make no behaivor change.
2713
2714         * html/HTMLFormControlElement.h:
2715         (WebCore::HTMLFormControlElement::isDisabledOrReadOnly):
2716         Added. Note that the implmentation of disabled() is not just "return m_disabled;".
2717
2718         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
2719         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
2720         Use isDisabledOrReadOnly.
2721         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
2722         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToMouseEvents): Ditto.
2723         (WebCore::BaseMultipleFieldsDateAndTimeInputType::isPickerIndicatorOwnerDisabledOrReadOnly): Ditto.
2724         * html/ColorInputType.cpp:
2725         (WebCore::ColorInputType::handleDOMActivateEvent): Ditto.
2726         (WebCore::ColorInputType::didChooseColor): Ditto.
2727         * html/HTMLFormControlElement.cpp:
2728         (WebCore::HTMLFormControlElement::recalcWillValidate): Ditto.
2729         * html/HTMLTextAreaElement.h:
2730         (WebCore::HTMLTextAreaElement::valueMissing): Ditto.
2731         * html/RangeInputType.cpp:
2732         (WebCore::RangeInputType::handleMouseDownEvent): Ditto.
2733         (WebCore::RangeInputType::handleTouchEvent): Ditto.
2734         (WebCore::RangeInputType::handleKeydownEvent): Ditto.
2735         * html/SearchInputType.cpp:
2736         (WebCore::SearchInputType::handleKeydownEvent): Ditto.
2737         * html/TextFieldInputType.cpp:
2738         (WebCore::TextFieldInputType::handleKeydownEventForSpinButton): Ditto.
2739         (WebCore::TextFieldInputType::shouldSpinButtonRespondToMouseEvents): Ditto.
2740         * html/shadow/TextControlInnerElements.cpp:
2741         (WebCore::SearchFieldCancelButtonElement::defaultEventHandler): Ditto.
2742         (WebCore::SearchFieldCancelButtonElement::willRespondToMouseClickEvents): Ditto.
2743         (WebCore::InputFieldSpeechButtonElement::defaultEventHandler): Ditto.
2744         * html/shadow/TextFieldDecorationElement.cpp:
2745         (WebCore::TextFieldDecorationElement::defaultEventHandler): Ditto.
2746         (WebCore::TextFieldDecorationElement::willRespondToMouseMoveEvents): Ditto.
2747         (WebCore::TextFieldDecorationElement::willRespondToMouseClickEvents): Ditto.
2748
2749 2012-12-10  Pavel Feldman  <pfeldman@chromium.org>
2750
2751         Web Inspector: console broken? - console.dirxml behaves like console.log
2752         https://bugs.webkit.org/show_bug.cgi?id=104245
2753
2754         Reviewed by Vsevolod Vlasov.
2755
2756         Do not generate preview for dirxml.
2757
2758         * inspector/front-end/ConsoleMessage.js:
2759         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
2760
2761 2012-12-10  Kent Tamura  <tkent@chromium.org>
2762
2763         Refactoring: Remove HTMLFormControlElement::setDisabled
2764         https://bugs.webkit.org/show_bug.cgi?id=104510
2765
2766         Reviewed by Kentaro Hara.
2767
2768         Remove it because the number of call sites is only one, and the
2769         setDisabled implementation is equivalent to setBooleanAttribute.
2770
2771         No new tests. This should not make behavior changes.
2772
2773         * html/HTMLFormControlElement.cpp: Remove setDisabled.
2774         * html/HTMLFormControlElement.h: Ditto.
2775         * html/FileInputType.cpp:
2776         (WebCore::FileInputType::disabledAttributeChanged):
2777         Replace setDisabled with setBooleanAttribute.
2778
2779 2012-12-10  Hajime Morrita  <morrita@google.com>
2780
2781         [Shadow DOM][Refacdtoring] nextTo() and previousTo() can be part of ContentDistribution
2782         https://bugs.webkit.org/show_bug.cgi?id=104514
2783
2784         Reviewed by Kentaro Hara.
2785
2786         InsertionPoint::nextTo() and InsertionPoint::previousTo() are an
2787         query to distributed nodes, which is what ContentDistribution
2788         represents. We can move them to better home.
2789
2790         No new tests. No behavior change.
2791
2792         * html/shadow/ContentDistributor.cpp:
2793         (WebCore::ContentDistribution::nextTo): Moved from InsertionPoint
2794         (WebCore):
2795         (WebCore::ContentDistribution::previousTo): Moved from InsertionPoint
2796         * html/shadow/ContentDistributor.h:
2797         (ContentDistribution):
2798         * html/shadow/InsertionPoint.cpp:
2799         * html/shadow/InsertionPoint.h:
2800         (WebCore::InsertionPoint::nextTo): Delegated to ContentDistribution
2801         (WebCore::InsertionPoint::previousTo): Delegated to ContentDistribution
2802
2803 2012-12-10  Joanmarie Diggs  <jdiggs@igalia.com>
2804
2805         [GTK] accessibility/language-attribute.html is failing
2806         https://bugs.webkit.org/show_bug.cgi?id=98369
2807
2808         Reviewed by Chris Fleizach.
2809
2810         The test is failing for two reasons: Not exposing the language
2811         for accessible objects and AccessibilityUIElement::language() not
2812         being implemented.
2813
2814         No new tests; instead, unskipped the previously-failing test.
2815
2816         * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
2817         (getAttributeSetForAccessibilityObject): Expose the language via AtkText attribute
2818
2819 2012-12-09  Takashi Sakamoto  <tasak@google.com>
2820
2821         [Shadow DOM]: reset-style-inheritance doesn't work for insertion point
2822         https://bugs.webkit.org/show_bug.cgi?id=103711
2823
2824         Reviewed by Hajime Morita.
2825
2826         reset-style-inheritance can be specified by using insertion points'
2827         attribute, e.g. <content reset-style-inheritance>.
2828         c.f. shadow dom spec:
2829         https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#styles
2830
2831         No new tests. Updated an existing test,
2832         fast/dom/shadow/insertion-point-resetStyleInheritance.html to cover
2833         this feature.
2834
2835         * html/HTMLAttributeNames.in:
2836         Added HTMLNames::reset_style_inheritanceAttr.
2837         * html/shadow/InsertionPoint.cpp:
2838         (WebCore::InsertionPoint::InsertionPoint):
2839         (WebCore::InsertionPoint::parseAttribute):
2840         Since both shadow and content elements have to support
2841         reset-style-inheritance, added InsertionPoint::parseAttribute.
2842         (WebCore::InsertionPoint::resetStyleInheritance):
2843         (WebCore::InsertionPoint::setResetStyleInheritance):
2844         Modified to update reset-style-inheritance attribute value.
2845         * html/shadow/InsertionPoint.h:
2846         (InsertionPoint):
2847         Removed m_shouldResetStyleInheritance. Instead, use
2848         reset-style-inheritance attribute value.
2849
2850 2012-12-09  Ilya Tikhonovsky  <loislo@chromium.org>
2851
2852         Native Memory Instrumentation: instrument a part of RenderObject class tree.
2853         https://bugs.webkit.org/show_bug.cgi?id=103564
2854
2855         Reviewed by Eric Seidel.
2856
2857         Many RenderObject descendants have OwnPtrs and RefPtrs members.
2858         Looks like we have to instrument all the RenderObject classes and visit
2859         all the render objects instead of counting entire render arena memory.
2860
2861         * WebCore.exp.in:
2862         * dom/Node.cpp:
2863         (WebCore::Node::reportMemoryUsage):
2864         * dom/WebCoreMemoryInstrumentation.cpp:
2865         (WebCore):
2866         * inspector/InspectorMemoryAgent.cpp:
2867         (WebCore::reportRenderTreeInfo):
2868         (WebCore):
2869         * platform/PlatformMemoryInstrumentation.cpp:
2870         (WebCore):
2871         * platform/PlatformMemoryInstrumentation.h:
2872         (PlatformMemoryTypes):
2873         * platform/graphics/GraphicsLayer.cpp:
2874         (WebCore::GraphicsLayer::reportMemoryUsage):
2875         (WebCore):
2876         * platform/graphics/GraphicsLayer.h:
2877         (GraphicsLayer):
2878         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
2879         (WebCore::GraphicsLayerChromium::reportMemoryUsage):
2880         (WebCore):
2881         * platform/graphics/chromium/GraphicsLayerChromium.h:
2882         (GraphicsLayerChromium):
2883         * rendering/RenderBlock.cpp:
2884         (WebCore::RenderBlock::reportMemoryUsage):
2885         (WebCore):
2886         * rendering/RenderBlock.h:
2887         (RenderBlock):
2888         * rendering/RenderBox.cpp:
2889         (WebCore::RenderBox::reportMemoryUsage):
2890         (WebCore):
2891         * rendering/RenderBox.h:
2892         (RenderBox):
2893         * rendering/RenderInline.cpp:
2894         (WebCore::RenderInline::reportMemoryUsage):
2895         (WebCore):
2896         * rendering/RenderInline.h:
2897         (RenderInline):
2898         * rendering/RenderLayer.cpp:
2899         (WebCore::RenderLayer::reportMemoryUsage):
2900         (WebCore):
2901         * rendering/RenderLayer.h:
2902         (RenderLayer):
2903         * rendering/RenderLayerBacking.cpp:
2904         (WebCore::RenderLayerBacking::reportMemoryUsage):
2905         (WebCore):
2906         * rendering/RenderLayerBacking.h:
2907         (RenderLayerBacking):
2908         * rendering/RenderLayerCompositor.cpp:
2909         (WebCore::RenderLayerCompositor::reportMemoryUsage):
2910         (WebCore):
2911         * rendering/RenderLayerCompositor.h:
2912         (RenderLayerCompositor):
2913         * rendering/RenderLayerModelObject.cpp:
2914         (WebCore::RenderLayerModelObject::reportMemoryUsage):
2915         (WebCore):
2916         * rendering/RenderLayerModelObject.h:
2917         (RenderLayerModelObject):
2918         * rendering/RenderObject.cpp:
2919         (WebCore::RenderObject::reportMemoryUsage):
2920         (WebCore):
2921         * rendering/RenderObject.h:
2922         (RenderObject):
2923         * rendering/RenderText.cpp:
2924         (WebCore::RenderText::reportMemoryUsage):
2925         (WebCore):
2926         * rendering/RenderText.h:
2927         (RenderText):
2928         * rendering/RenderView.cpp:
2929         (WebCore::RenderView::reportMemoryUsage):
2930         (WebCore):
2931         * rendering/RenderView.h:
2932         (RenderView):
2933
2934 2012-12-09  Ryosuke Niwa  <rniwa@webkit.org>
2935
2936         REGRESSION (r137003): failures in MicroData tests on EFL, GTK
2937         https://bugs.webkit.org/show_bug.cgi?id=104469
2938
2939         Reviewed by Darin Adler.
2940
2941         Fix the regression by calling propertyNodeList on HTMLPropertiesCollection
2942         in the named getter for HTMLCollection. It's a miracle that the old code prior to r137003
2943         worked at all since the return type of namedItem was different.
2944
2945         Existing tests cover this.
2946
2947         * bindings/js/JSHTMLCollectionCustom.cpp:
2948         (WebCore::JSHTMLCollection::nameGetter):
2949         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
2950         (WebCore::V8HTMLCollection::namedPropertyGetter):
2951
2952 2012-12-09  Joanmarie Diggs  <jdiggs@igalia.com>
2953
2954         [GTK] accessibility/placeholder.html is failing
2955         https://bugs.webkit.org/show_bug.cgi?id=98373
2956
2957         Reviewed by Martin Robinson.
2958
2959         The test was failing because the placeholder text was not supported and
2960         AccessibilityUIElement::stringAttributeValue() was not implemented.
2961
2962         No new tests; instead the failing test was unskipped.
2963
2964         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
2965         (webkitAccessibleGetAttributes): Add the placeholder text as an AtkAttribute
2966         of the AtkObject, as is done in Gtk+ 3.
2967
2968 2012-12-09  Kondapally Kalyan  <kalyan.kondapally@intel.com>
2969
2970         [EFL] [WebGL] Path is not resized correctly.
2971         https://bugs.webkit.org/show_bug.cgi?id=104458.
2972
2973         Reviewed by Kenneth Rohde Christiansen.
2974
2975         In GraphicsContext3D::paintToCanvas, we flip the contents and draw on the surface.
2976         The operations done to flip the image (translation and scale) are done before rectangle with correct size
2977         is added to current path. This resulted in updating pixels at wrong positions.
2978
2979         Covered by existing tests.
2980
2981         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
2982         (WebCore::GraphicsContext3D::paintToCanvas):
2983
2984 2012-12-09  Joone Hur  <joone.hur@intel.com>
2985
2986         [GTK][AC] build fix after r130525 and r133332
2987         https://bugs.webkit.org/show_bug.cgi?id=104491
2988
2989         Reviewed by Martin Robinson.
2990
2991         Build fix for Accelerated Compositing Clutter backend after r130525 and r133332.
2992
2993         * platform/graphics/clutter/GraphicsLayerClutter.cpp:
2994         * platform/gtk/RedirectedXCompositeWindow.cpp:
2995         * platform/gtk/RedirectedXCompositeWindow.h:
2996
2997 2012-12-09  Carlos Garcia Campos  <cgarcia@igalia.com>
2998
2999         [GTK] Use GObject casts instead of C++ cast for GObjects in DOM bindings
3000         https://bugs.webkit.org/show_bug.cgi?id=104492
3001
3002         Reviewed by Martin Robinson.
3003
3004         * bindings/scripts/CodeGeneratorGObject.pm:
3005         (GenerateCFile):
3006         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
3007         (WebKit::kit):
3008         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
3009         (WebKit::kit):
3010         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
3011         (WebKit::kit):
3012         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
3013         (WebKit::kit):
3014         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
3015         (WebKit::kit):
3016         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
3017         (WebKit::kit):
3018         * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
3019         (WebKit::kit):
3020         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
3021         (WebKit::kit):
3022         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
3023         (WebKit::kit):
3024         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
3025         (WebKit::kit):
3026         * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
3027         (WebKit::kit):
3028         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
3029         (WebKit::kit):
3030         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
3031         (WebKit::kit):
3032         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
3033         (WebKit::kit):
3034
3035 2012-12-09  Pavel Feldman  <pfeldman@chromium.org>
3036
3037         Web Inspector: do not treat object as equal to itself when logging to console
3038         https://bugs.webkit.org/show_bug.cgi?id=104487
3039
3040         Reviewed by Alexander Pavlov.
3041
3042         Otherwise, mutating object in a loop results in the repeat count update instead of generation of the new preview.
3043
3044         Test: inspector/console/console-object-preview.html
3045
3046         * inspector/ConsoleMessage.cpp:
3047         (WebCore::ConsoleMessage::isEqual):
3048
3049 2012-12-09  Carlos Garcia Campos  <cgarcia@igalia.com>
3050
3051         Remove unused code in GObject DOM bindings generator
3052         https://bugs.webkit.org/show_bug.cgi?id=104490
3053
3054         Reviewed by Martin Robinson.
3055
3056         * bindings/scripts/CodeGeneratorGObject.pm:
3057         (GenerateProperties): Remove code to install event listeners and
3058         signals.
3059
3060 2012-12-09  Zan Dobersek  <zandobersek@gmail.com>
3061
3062         Unreviewed update for the GObject bindings after r137074 and r137078.
3063
3064         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
3065         (webkit_dom_test_event_target_dispatch_event):
3066         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
3067         (webkit_dom_test_interface_supplemental_method2):
3068         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
3069         (webkit_dom_test_obj_method_that_requires_all_args_and_throws):
3070         (webkit_dom_test_obj_method_with_exception):
3071         (webkit_dom_test_obj_with_script_state_void_exception):
3072         (webkit_dom_test_obj_with_script_state_obj_exception):
3073         (webkit_dom_test_obj_with_script_execution_context_and_script_state_obj_exception):
3074         (webkit_dom_test_obj_strict_function):
3075         (webkit_dom_test_obj_get_attr_with_getter_exception):
3076         (webkit_dom_test_obj_set_attr_with_setter_exception):
3077         (webkit_dom_test_obj_get_string_attr_with_getter_exception):
3078         (webkit_dom_test_obj_set_string_attr_with_setter_exception):
3079         (webkit_dom_test_obj_get_with_script_state_attribute_raises):
3080         (webkit_dom_test_obj_get_with_script_execution_context_attribute_raises):
3081         (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute_raises):
3082
3083 2012-12-09  Carlos Garcia Campos  <cgarcia@igalia.com>
3084
3085         Fix the GError check in GObject DOM bindings.
3086
3087         Reviewed by Xan Lopez.
3088
3089         Previous commit introduced a check to make sure the passed GError
3090         is valid in all DOM methods receiving an error.
3091
3092         * bindings/scripts/CodeGeneratorGObject.pm:
3093         (GetGReturnMacro): Check that the passed GError either is NULL or
3094         the pointer has been initialized to NULL.
3095
3096 2012-12-09  Leo Yang  <leoyang@rim.com>
3097
3098         [BlackBerry] Adapt to name change of createNetworkBufferByCopyingData()
3099         https://bugs.webkit.org/show_bug.cgi?id=104449
3100
3101         Reviewed by Rob Buis.
3102
3103         Name change no new tests.
3104
3105         * platform/network/blackberry/rss/RSSFilterStream.cpp:
3106         (WebCore::RSSFilterStream::handleRSSContent):
3107
3108 2012-12-09  Carlos Garcia Campos  <cgarcia@igalia.com>
3109
3110         [GTK] Clean up g_return macros usage in GObject DOM bindings
3111         https://bugs.webkit.org/show_bug.cgi?id=101079
3112
3113         Reviewed by Xan Lopez.
3114
3115         Several improvements:
3116
3117           - Move g_return macros at the beginning of the methods.
3118           - Use them only to check parameters of public API.
3119           - Use GObject macros to check GObjects.
3120           - Check also GError parameters.
3121           - Use early returns in kit and core methods, since they should
3122             work even if g_return macros are disabled handling NULL
3123             gracefully.
3124
3125         * bindings/scripts/CodeGeneratorGObject.pm:
3126         (GetGReturnMacro):
3127         (GenerateFunction):
3128         (GenerateCFile):
3129         (Generate):
3130         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
3131         (WebKit::kit):
3132         (WebKit::core):
3133         (WebKit::wrapFloat64Array):
3134         (webkit_dom_float64array_foo):
3135         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
3136         (WebKit::kit):
3137         (WebKit::core):
3138         (WebKit::wrapTestActiveDOMObject):
3139         (webkit_dom_test_active_dom_object_exciting_function):
3140         (webkit_dom_test_active_dom_object_post_message):
3141         (webkit_dom_test_active_dom_object_get_exciting_attr):
3142         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
3143         (WebKit::kit):
3144         (WebKit::core):
3145         (WebKit::wrapTestCallback):
3146         (webkit_dom_test_callback_callback_with_no_param):
3147         (webkit_dom_test_callback_callback_with_class1param):
3148         (webkit_dom_test_callback_callback_with_class2param):
3149         (webkit_dom_test_callback_callback_with_non_bool_return_type):
3150         (webkit_dom_test_callback_callback_with_string_list):
3151         (webkit_dom_test_callback_callback_with_boolean):
3152         (webkit_dom_test_callback_callback_requires_this_to_pass):
3153         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
3154         (WebKit::kit):
3155         (WebKit::core):
3156         (WebKit::wrapTestCustomNamedGetter):
3157         (webkit_dom_test_custom_named_getter_another_function):
3158         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
3159         (WebKit::kit):
3160         (WebKit::core):
3161         (WebKit::wrapTestEventConstructor):
3162         (webkit_dom_test_event_constructor_get_attr1):
3163         (webkit_dom_test_event_constructor_get_attr2):
3164         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
3165         (WebKit::kit):
3166         (WebKit::core):
3167         (WebKit::wrapTestEventTarget):
3168         (webkit_dom_test_event_target_item):
3169         (webkit_dom_test_event_target_dispatch_event):
3170         * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
3171         (WebKit::kit):
3172         (WebKit::core):
3173         (WebKit::wrapTestException):
3174         (webkit_dom_test_exception_get_name):
3175         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
3176         (WebKit::kit):
3177         (WebKit::core):
3178         (WebKit::wrapTestInterface):
3179         (webkit_dom_test_interface_supplemental_method1):
3180         (webkit_dom_test_interface_supplemental_method2):
3181         (webkit_dom_test_interface_supplemental_method4):
3182         (webkit_dom_test_interface_get_supplemental_str1):
3183         (webkit_dom_test_interface_get_supplemental_str2):
3184         (webkit_dom_test_interface_set_supplemental_str2):
3185         (webkit_dom_test_interface_get_supplemental_node):
3186         (webkit_dom_test_interface_set_supplemental_node):
3187         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
3188         (WebKit::kit):
3189         (WebKit::core):
3190         (WebKit::wrapTestMediaQueryListListener):
3191         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
3192         (WebKit::kit):
3193         (WebKit::core):
3194         (WebKit::wrapTestNamedConstructor):
3195         * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
3196         (WebKit::kit):
3197         (WebKit::core):
3198         (WebKit::wrapTestNode):
3199         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
3200         (WebKit::kit):
3201         (WebKit::core):
3202         (WebKit::wrapTestObj):
3203         (webkit_dom_test_obj_void_method):
3204         (webkit_dom_test_obj_void_method_with_args):
3205         (webkit_dom_test_obj_long_method):
3206         (webkit_dom_test_obj_long_method_with_args):
3207         (webkit_dom_test_obj_obj_method):
3208         (webkit_dom_test_obj_obj_method_with_args):
3209         (webkit_dom_test_obj_method_that_requires_all_args_and_throws):
3210         (webkit_dom_test_obj_serialized_value):
3211         (webkit_dom_test_obj_idb_key):
3212         (webkit_dom_test_obj_options_object):
3213         (webkit_dom_test_obj_method_with_exception):
3214         (webkit_dom_test_obj_with_script_state_void):
3215         (webkit_dom_test_obj_with_script_state_obj):
3216         (webkit_dom_test_obj_with_script_state_void_exception):
3217         (webkit_dom_test_obj_with_script_state_obj_exception):
3218         (webkit_dom_test_obj_with_script_execution_context):
3219         (webkit_dom_test_obj_with_script_execution_context_and_script_state):
3220         (webkit_dom_test_obj_with_script_execution_context_and_script_state_obj_exception):
3221         (webkit_dom_test_obj_with_script_execution_context_and_script_state_with_spaces):
3222         (webkit_dom_test_obj_method_with_optional_arg):
3223         (webkit_dom_test_obj_method_with_non_optional_arg_and_optional_arg):
3224         (webkit_dom_test_obj_method_with_non_optional_arg_and_two_optional_args):
3225         (webkit_dom_test_obj_method_with_optional_string):
3226         (webkit_dom_test_obj_method_with_optional_string_is_undefined):
3227         (webkit_dom_test_obj_method_with_optional_string_is_null_string):
3228         (webkit_dom_test_obj_conditional_method1):
3229         (webkit_dom_test_obj_conditional_method2):
3230         (webkit_dom_test_obj_conditional_method3):
3231         (webkit_dom_test_obj_class_method):
3232         (webkit_dom_test_obj_class_method_with_optional):
3233         (webkit_dom_test_obj_overloaded_method1):
3234         (webkit_dom_test_obj_convert1):
3235         (webkit_dom_test_obj_convert2):
3236         (webkit_dom_test_obj_convert4):
3237         (webkit_dom_test_obj_convert5):
3238         (webkit_dom_test_obj_mutable_point_function):
3239         (webkit_dom_test_obj_immutable_point_function):
3240         (webkit_dom_test_obj_orange):
3241         (webkit_dom_test_obj_strict_function):
3242         (webkit_dom_test_obj_variadic_string_method):
3243         (webkit_dom_test_obj_variadic_double_method):
3244         (webkit_dom_test_obj_variadic_node_method):
3245         (webkit_dom_test_obj_get_read_only_long_attr):
3246         (webkit_dom_test_obj_get_read_only_string_attr):
3247         (webkit_dom_test_obj_get_read_only_test_obj_attr):
3248         (webkit_dom_test_obj_get_short_attr):
3249         (webkit_dom_test_obj_set_short_attr):
3250         (webkit_dom_test_obj_get_unsigned_short_attr):
3251         (webkit_dom_test_obj_set_unsigned_short_attr):
3252         (webkit_dom_test_obj_get_long_attr):
3253         (webkit_dom_test_obj_set_long_attr):
3254         (webkit_dom_test_obj_get_long_long_attr):
3255         (webkit_dom_test_obj_set_long_long_attr):
3256         (webkit_dom_test_obj_get_unsigned_long_long_attr):
3257         (webkit_dom_test_obj_set_unsigned_long_long_attr):
3258         (webkit_dom_test_obj_get_string_attr):
3259         (webkit_dom_test_obj_set_string_attr):
3260         (webkit_dom_test_obj_get_test_obj_attr):
3261         (webkit_dom_test_obj_set_test_obj_attr):
3262         (webkit_dom_test_obj_get_xml_obj_attr):
3263         (webkit_dom_test_obj_set_xml_obj_attr):
3264         (webkit_dom_test_obj_get_create):
3265         (webkit_dom_test_obj_set_create):
3266         (webkit_dom_test_obj_get_reflected_string_attr):
3267         (webkit_dom_test_obj_set_reflected_string_attr):
3268         (webkit_dom_test_obj_get_reflected_integral_attr):
3269         (webkit_dom_test_obj_set_reflected_integral_attr):
3270         (webkit_dom_test_obj_get_reflected_unsigned_integral_attr):
3271         (webkit_dom_test_obj_set_reflected_unsigned_integral_attr):
3272         (webkit_dom_test_obj_get_reflected_boolean_attr):
3273         (webkit_dom_test_obj_set_reflected_boolean_attr):
3274         (webkit_dom_test_obj_get_reflected_url_attr):
3275         (webkit_dom_test_obj_set_reflected_url_attr):
3276         (webkit_dom_test_obj_get_reflected_custom_integral_attr):
3277         (webkit_dom_test_obj_set_reflected_custom_integral_attr):
3278         (webkit_dom_test_obj_get_reflected_custom_boolean_attr):
3279         (webkit_dom_test_obj_set_reflected_custom_boolean_attr):
3280         (webkit_dom_test_obj_get_reflected_custom_url_attr):
3281         (webkit_dom_test_obj_set_reflected_custom_url_attr):
3282         (webkit_dom_test_obj_get_attr_with_getter_exception):
3283         (webkit_dom_test_obj_set_attr_with_getter_exception):
3284         (webkit_dom_test_obj_get_attr_with_setter_exception):
3285         (webkit_dom_test_obj_set_attr_with_setter_exception):
3286         (webkit_dom_test_obj_get_string_attr_with_getter_exception):
3287         (webkit_dom_test_obj_set_string_attr_with_getter_exception):
3288         (webkit_dom_test_obj_get_string_attr_with_setter_exception):
3289         (webkit_dom_test_obj_set_string_attr_with_setter_exception):
3290         (webkit_dom_test_obj_get_with_script_state_attribute):
3291         (webkit_dom_test_obj_set_with_script_state_attribute):
3292         (webkit_dom_test_obj_get_with_script_execution_context_attribute):
3293         (webkit_dom_test_obj_set_with_script_execution_context_attribute):
3294         (webkit_dom_test_obj_get_with_script_state_attribute_raises):
3295         (webkit_dom_test_obj_set_with_script_state_attribute_raises):
3296         (webkit_dom_test_obj_get_with_script_execution_context_attribute_raises):
3297         (webkit_dom_test_obj_set_with_script_execution_context_attribute_raises):
3298         (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute):
3299         (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute):
3300         (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute_raises):
3301         (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute_raises):
3302         (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_with_spaces_attribute):
3303         (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_with_spaces_attribute):
3304         (webkit_dom_test_obj_get_conditional_attr1):
3305         (webkit_dom_test_obj_set_conditional_attr1):
3306         (webkit_dom_test_obj_get_conditional_attr2):
3307         (webkit_dom_test_obj_set_conditional_attr2):
3308         (webkit_dom_test_obj_get_conditional_attr3):
3309         (webkit_dom_test_obj_set_conditional_attr3):
3310         (webkit_dom_test_obj_get_any_attribute):
3311         (webkit_dom_test_obj_set_any_attribute):
3312         (webkit_dom_test_obj_get_content_document):
3313         (webkit_dom_test_obj_get_mutable_point):
3314         (webkit_dom_test_obj_set_mutable_point):
3315         (webkit_dom_test_obj_get_immutable_point):
3316         (webkit_dom_test_obj_set_immutable_point):
3317         (webkit_dom_test_obj_get_strawberry):
3318         (webkit_dom_test_obj_set_strawberry):
3319         (webkit_dom_test_obj_get_strict_float):
3320         (webkit_dom_test_obj_set_strict_float):
3321         (webkit_dom_test_obj_get_description):
3322         (webkit_dom_test_obj_get_id):
3323         (webkit_dom_test_obj_set_id):
3324         (webkit_dom_test_obj_get_hash):
3325         (webkit_dom_test_obj_get_replaceable_attribute):
3326         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
3327         (WebKit::kit):
3328         (WebKit::core):
3329         (WebKit::wrapTestSerializedScriptValueInterface):
3330         (webkit_dom_test_serialized_script_value_interface_accept_transfer_list):
3331         (webkit_dom_test_serialized_script_value_interface_multi_transfer_list):
3332         (webkit_dom_test_serialized_script_value_interface_get_value):
3333         (webkit_dom_test_serialized_script_value_interface_set_value):
3334         (webkit_dom_test_serialized_script_value_interface_get_readonly_value):
3335         (webkit_dom_test_serialized_script_value_interface_get_cached_value):
3336         (webkit_dom_test_serialized_script_value_interface_set_cached_value):
3337         (webkit_dom_test_serialized_script_value_interface_get_ports):
3338         (webkit_dom_test_serialized_script_value_interface_get_cached_readonly_value):
3339
3340 2012-12-09  Carlos Garcia Campos  <cgarcia@igalia.com>
3341
3342         [GTK] Use a private struct and placement new syntax in GObject DOM bindings
3343         https://bugs.webkit.org/show_bug.cgi?id=101074
3344
3345         Reviewed by Xan Lopez.
3346
3347         It allows to use RefPtr for the wrapped object and it simplifies
3348         the code. Only the classes deriving from WebKitDOMObject keep a
3349         reference of the wrapped object in a private struct. The wrapped
3350         object is added to the cache in GObjectClass::constructor() and
3351         removed in GObjectClass::finalize().
3352
3353         * bindings/gobject/WebKitDOMBinding.cpp:
3354         (WebKit::createWrapper):
3355         (WebKit::kit):
3356         (WebKit::wrapEventTarget):
3357         * bindings/scripts/CodeGeneratorGObject.pm:
3358         (GetParentImplClassName):
3359         (GenerateProperties):
3360         (GenerateCFile):
3361         (Generate):
3362         (WriteData):
3363         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
3364         (WebKit::kit):
3365         (WebKit::core):
3366         (WebKit::wrapFloat64Array):
3367         (webkit_dom_float64array_class_init):
3368         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
3369         (_WebKitDOMTestActiveDOMObjectPrivate):
3370         (WebKit::kit):
3371         (WebKit::core):
3372         (WebKit::wrapTestActiveDOMObject):
3373         (webkit_dom_test_active_dom_object_finalize):
3374         (webkit_dom_test_active_dom_object_constructor):
3375         (webkit_dom_test_active_dom_object_class_init):
3376         (webkit_dom_test_active_dom_object_init):
3377         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
3378         (_WebKitDOMTestCallbackPrivate):
3379         (WebKit::kit):
3380         (WebKit::core):
3381         (WebKit::wrapTestCallback):
3382         (webkit_dom_test_callback_finalize):
3383         (webkit_dom_test_callback_constructor):
3384         (webkit_dom_test_callback_class_init):
3385         (webkit_dom_test_callback_init):
3386         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
3387         (_WebKitDOMTestCustomNamedGetterPrivate):
3388         (WebKit::kit):
3389         (WebKit::core):
3390         (WebKit::wrapTestCustomNamedGetter):
3391         (webkit_dom_test_custom_named_getter_finalize):
3392         (webkit_dom_test_custom_named_getter_constructor):
3393         (webkit_dom_test_custom_named_getter_class_init):
3394         (webkit_dom_test_custom_named_getter_init):
3395         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
3396         (_WebKitDOMTestEventConstructorPrivate):
3397         (WebKit::kit):
3398         (WebKit::core):
3399         (WebKit::wrapTestEventConstructor):
3400         (webkit_dom_test_event_constructor_finalize):
3401         (webkit_dom_test_event_constructor_constructor):
3402         (webkit_dom_test_event_constructor_class_init):
3403         (webkit_dom_test_event_constructor_init):
3404         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
3405         (_WebKitDOMTestEventTargetPrivate):
3406         (WebKit::kit):
3407         (WebKit::core):
3408         (WebKit::wrapTestEventTarget):
3409         (webkit_dom_test_event_target_finalize):
3410         (webkit_dom_test_event_target_constructor):
3411         (webkit_dom_test_event_target_class_init):
3412         (webkit_dom_test_event_target_init):
3413         * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
3414         (_WebKitDOMTestExceptionPrivate):
3415         (WebKit::kit):
3416         (WebKit::core):
3417         (WebKit::wrapTestException):
3418         (webkit_dom_test_exception_finalize):
3419         (webkit_dom_test_exception_constructor):
3420         (webkit_dom_test_exception_class_init):
3421         (webkit_dom_test_exception_init):
3422         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
3423         (_WebKitDOMTestInterfacePrivate):
3424         (WebKit::kit):
3425         (WebKit::core):
3426         (WebKit::wrapTestInterface):
3427         (webkit_dom_test_interface_finalize):
3428         (webkit_dom_test_interface_constructor):
3429         (webkit_dom_test_interface_class_init):
3430         (webkit_dom_test_interface_init):
3431         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
3432         (_WebKitDOMTestMediaQueryListListenerPrivate):
3433         (WebKit::kit):
3434         (WebKit::core):
3435         (WebKit::wrapTestMediaQueryListListener):
3436         (webkit_dom_test_media_query_list_listener_finalize):
3437         (webkit_dom_test_media_query_list_listener_constructor):
3438         (webkit_dom_test_media_query_list_listener_class_init):
3439         (webkit_dom_test_media_query_list_listener_init):
3440         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
3441         (_WebKitDOMTestNamedConstructorPrivate):
3442         (WebKit::kit):
3443         (WebKit::core):
3444         (WebKit::wrapTestNamedConstructor):
3445         (webkit_dom_test_named_constructor_finalize):
3446         (webkit_dom_test_named_constructor_constructor):
3447         (webkit_dom_test_named_constructor_class_init):
3448         (webkit_dom_test_named_constructor_init):
3449         * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
3450         (WebKit::kit):
3451         (WebKit::core):
3452         (WebKit::wrapTestNode):
3453         (webkit_dom_test_node_class_init):
3454         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
3455         (_WebKitDOMTestObjPrivate):
3456         (WebKit::kit):
3457         (WebKit::core):
3458         (WebKit::wrapTestObj):
3459         (webkit_dom_test_obj_finalize):
3460         (webkit_dom_test_obj_constructor):
3461         (webkit_dom_test_obj_class_init):
3462         (webkit_dom_test_obj_init):
3463         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
3464         (_WebKitDOMTestOverloadedConstructorsPrivate):
3465         (WebKit::kit):
3466         (WebKit::core):
3467         (WebKit::wrapTestOverloadedConstructors):
3468         (webkit_dom_test_overloaded_constructors_finalize):
3469         (webkit_dom_test_overloaded_constructors_constructor):
3470         (webkit_dom_test_overloaded_constructors_class_init):
3471         (webkit_dom_test_overloaded_constructors_init):
3472         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
3473         (_WebKitDOMTestSerializedScriptValueInterfacePrivate):
3474         (WebKit::kit):
3475         (WebKit::core):
3476         (WebKit::wrapTestSerializedScriptValueInterface):
3477         (webkit_dom_test_serialized_script_value_interface_finalize):
3478         (webkit_dom_test_serialized_script_value_interface_constructor):
3479         (webkit_dom_test_serialized_script_value_interface_class_init):
3480         (webkit_dom_test_serialized_script_value_interface_init):
3481
3482 2012-12-09  Jon Lee  <jonlee@apple.com>
3483
3484         [WK2] Move button image to injected bundle
3485         https://bugs.webkit.org/show_bug.cgi?id=104107
3486         <rdar://problem/12813842>
3487
3488         Reviewed by Simon Fraser.
3489
3490         Update RenderSnapshottedPlugIn to retrieve the start button image from the ChromeClient. Expand the
3491         kinds of images available for use as the button. Try to find the best sized button to use for the plug-in,
3492         otherwise use no image at all.
3493
3494         * rendering/RenderSnapshottedPlugIn.h: Add an enum representing the size to use. Remove the label rect
3495         variable since it is unneeded.
3496         * rendering/RenderSnapshottedPlugIn.cpp:
3497         (WebCore::RenderSnapshottedPlugIn::startLabelImage): Maintain a cache of the images for reuse. Index into the
3498         array using the enum. If the image has been loaded, or an attempt was made, then return the result. Otherwise
3499         ask the chrome client for the image.
3500         (WebCore::RenderSnapshottedPlugIn::paintLabel): Determine the proper label to use, and paint if the image is
3501         available.
3502         (WebCore::RenderSnapshottedPlugIn::tryToFitStartLabel): Compare the label size with the provided content
3503         box. Return a LayoutRect representing the label's placement. If it doesn't fit, return an empty rect.
3504         (WebCore::RenderSnapshottedPlugIn::layout): The rect is not needed because it is all determined at paint time.
3505
3506         * page/ChromeClient.h:
3507         (WebCore::ChromeClient::plugInStartLabelImage): Added.
3508
3509         * WebCore.exp.in: Expose GraphicsContext::drawNativeImage() for WKImageCG.cpp.
3510         * WebCore.xcodeproj/project.pbxproj: Remove start button assets.
3511         * Resources/startButton.png: Removed.
3512         * Resources/startButton@2x.png: Removed.
3513
3514 2012-12-09  Sheriff Bot  <webkit.review.bot@gmail.com>
3515
3516         Unreviewed, rolling out r137053.
3517         http://trac.webkit.org/changeset/137053
3518         https://bugs.webkit.org/show_bug.cgi?id=104471
3519
3520         Broke PerformanceTests/Parser/html-parser.html (Requested by
3521         mkwst_ on #webkit).
3522
3523         * bindings/ScriptControllerBase.cpp:
3524         (WebCore::ScriptController::canExecuteScripts):
3525
3526 2012-12-09  Kangil Han  <kangil.han@samsung.com>
3527
3528         Fix unused parameter compile warnings
3529         https://bugs.webkit.org/show_bug.cgi?id=104463
3530
3531         Reviewed by Kentaro Hara.
3532
3533         Remove compile warning messages by omitting parameter name.
3534
3535         * platform/graphics/surfaces/GraphicsSurface.cpp:
3536         (WebCore::GraphicsSurface::GraphicsSurface):
3537
3538 2012-12-08  Rakesh KN  <rakeshchaitan@gmail.com>
3539
3540         Build break if SVG is disabled
3541         https://bugs.webkit.org/show_bug.cgi?id=104452
3542
3543         Reviewed by Darin Adler.
3544
3545         Build breaking after r136975 if SVG is disabled.
3546         No new tests required.
3547
3548         * rendering/FilterEffectRenderer.cpp:
3549         (WebCore::FilterEffectRenderer::buildReferenceFilter):
3550         As document is not an argument anymore, removing UNUSED_PARAM against it.
3551         * rendering/FilterEffectRenderer.h:
3552         Added forward declaration for RenderObject.
3553
3554 2012-12-08  Mike West  <mkwst@chromium.org>
3555
3556         Log to console when script is blocked by sandbox attributes.
3557         https://bugs.webkit.org/show_bug.cgi?id=104365
3558
3559         Reviewed by Ojan Vafai.
3560
3561         Adds a console message to cover script execution blocked within the
3562         context of a sandboxed frame which lacks the 'allow-scripts' permission.
3563
3564         * bindings/ScriptControllerBase.cpp:
3565         (WebCore::ScriptController::canExecuteScripts):
3566             Log a warning when sandboxing flags block script execution.
3567
3568 2012-12-08  No'am Rosenthal  <noam@webkit.org>
3569
3570         Use background color for GraphicsLayers when applicable
3571         https://bugs.webkit.org/show_bug.cgi?id=103786
3572
3573         Updated RenderLayerBacking to call GraphicsLayer::setContentsToBackgroundColor when the following conditions take place:
3574         1. The layer doesn't paint its own content, other than background/decoration.
3575         2. There are no borders or other box decorations (border radius, borders, outline, shadow etc.)
3576         3. The image has only a background color, and no background image.
3577         4. background-composite is set to source-over, and background-clip is anything apart from text.
3578         5. The port supports setContentsToBackgroundColor.
3579
3580         This allows any implementation of GraphicsLayer that supports setContentsToBackgroundColor to avoid allocating a backing store
3581         for that layer, but instead draw that solid color directly.
3582         In addition to setting the background color, the layer's contentsRect needs to be adjusted, since the default contents rect of
3583         a layer is not always equivalent to the rect where the background is supposed to be painted, which is derived from the box's
3584         background-clip property.
3585
3586         Reviewed by Simon Fraser.
3587
3588         Tests: compositing/background-color/background-color-alpha.html
3589                compositing/background-color/background-color-change-to-text.html
3590                compositing/background-color/background-color-composite.html
3591                compositing/background-color/background-color-container.html
3592                compositing/background-color/background-color-content-clip.html
3593                compositing/background-color/background-color-padding-change.html
3594                compositing/background-color/background-color-padding-clip.html
3595                compositing/background-color/background-color-simple.html
3596                compositing/background-color/background-color-text-change.html
3597                compositing/background-color/background-color-text-clip.html
3598
3599         * platform/graphics/GraphicsLayer.h:
3600         (WebCore::GraphicsLayer::supportsBackgroundColorContent):
3601             Allows different implementation of GraphicsLayer to identify whether they implement setContentsToBackgroundColor.
3602             Currently only the MAC implementation and TextureMapper falls under that category.
3603
3604         * rendering/RenderBox.h:
3605         (WebCore::RenderBox::paddingBoxRect):
3606             Added paddingBoxRect to compliment borderBoxRect and contentsBoxRect. paddingBoxRect corresponds to 
3607             background-clip: padding.
3608
3609         * rendering/RenderLayerBacking.cpp:
3610         (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
3611             Update the background color if needed, for every configuration change.
3612             This should accomodate the old behavior for full-screen, while enabling background color changes for other layers.
3613
3614         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
3615             Move the contentsRect logic to updateContentsRect.
3616
3617         (WebCore::RenderLayerBacking::updateContentsRect):
3618             Use the background box when directly compositing backgrounds.
3619
3620         (WebCore::RenderLayerBacking::updateBackgroundColor):
3621             Set the background color if applicable, otherwise set to trasnparent and clear.
3622             This was not needed in the past because background colors were only used for the special case of full-screen.
3623
3624         (WebCore::supportsDirectBoxDecorationsComposition):
3625             Helper function to determine whether a particular background can be directly composited. Right now only 
3626             background color can be composited, and only if the GraphicsLayer implementation supports background colors.
3627             Also we don't yet support background-clip: text and any background-composite other than source-over.
3628
3629         (WebCore::RenderLayerBacking::paintsBoxDecorations):
3630             Apply the new supportsDirectBoxDecorationsComposition logic.
3631
3632         (WebCore::RenderLayerBacking::contentsBox):
3633             Remove unnecessary local variable.
3634
3635         (WebCore::backgroundRectForBox):
3636         (WebCore::RenderLayerBacking::backgroundBox):
3637             Figure out the correct rect for the GraphicsLayer's contentsRect, based on the renderer's backgroundClip.
3638             The rectangle has to be adjusted based on the composited layer offset, and snapped to an IntRect as 
3639             GraphicsLayer::contentsRect expects snapped pixels.
3640
3641
3642 2012-12-08  Patrick Gansterer  <paroga@webkit.org>
3643
3644         Build fix for WinCE after r137011.
3645
3646         * platform/graphics/GraphicsContext.h:
3647         * platform/graphics/wince/GraphicsContextWinCE.cpp:
3648         (WebCore::GraphicsContext::setPlatformCompositeOperation):
3649         (WebCore::GraphicsContext::drawBitmap):
3650         * platform/graphics/wince/ImageBufferWinCE.cpp:
3651         (WebCore::BufferedImage::draw):
3652         (WebCore::ImageBuffer::draw):
3653         * platform/graphics/wince/ImageWinCE.cpp:
3654         (WebCore::BitmapImage::getHBITMAPOfSize):
3655         (WebCore::BitmapImage::drawFrameMatchingSourceSize):
3656         (WebCore::BitmapImage::draw):
3657         * platform/graphics/wince/SharedBitmap.cpp:
3658         (WebCore::SharedBitmap::draw):
3659         * platform/graphics/wince/SharedBitmap.h:
3660
3661 2012-12-08  Gavin Peters  <gavinp@chromium.org>
3662
3663         Add status events on <link rel=prerender> elements.
3664         https://bugs.webkit.org/show_bug.cgi?id=96474
3665
3666         Reviewed by Adam Barth.
3667
3668         The new PrerenderStatusEvent is sent to link elements when
3669         prerenders are started by the embedder, and also sent when they
3670         are stopped. Pages using this feature can now serialize launching
3671         prerenders, and track timing performance.
3672
3673         Tested in a new WebKitUnitTest for the chromium port.
3674
3675         * GNUmakefile.list.am:
3676         * Target.pri:
3677         * WebCore.gypi:
3678         * WebCore.vcproj/WebCore.vcproj:
3679         * WebCore.xcodeproj/project.pbxproj:
3680         * dom/EventNames.h:
3681         (WebCore):
3682         * html/HTMLLinkElement.cpp:
3683         (WebCore):
3684         (WebCore::HTMLLinkElement::didStartLinkPrerender):
3685         (WebCore::HTMLLinkElement::didStopLinkPrerender):
3686         (WebCore::HTMLLinkElement::didSendLoadForLinkPrerender):
3687         (WebCore::HTMLLinkElement::didSendDOMContentLoadedForLinkPrerender):
3688         * html/HTMLLinkElement.h:
3689         (HTMLLinkElement):
3690         * loader/LinkLoader.cpp:
3691         (WebCore::LinkLoader::didStartPrerender):
3692         (WebCore):
3693         (WebCore::LinkLoader::didStopPrerender):
3694         (WebCore::LinkLoader::didSendLoadForPrerender):
3695         (WebCore::LinkLoader::didSendDOMContentLoadedForPrerender):
3696         (WebCore::LinkLoader::loadLink):
3697         * loader/LinkLoader.h:
3698         (LinkLoader):
3699         * loader/LinkLoaderClient.h:
3700         (LinkLoaderClient):
3701         * loader/Prerenderer.cpp:
3702         (WebCore::Prerenderer::render):
3703         * loader/Prerenderer.h:
3704         (WebCore):
3705         (Prerenderer):
3706         * platform/PrerenderClient.h: Copied from Source/WebCore/loader/LinkLoaderClient.h.
3707         (WebCore):
3708         (PrerenderClient):
3709         (WebCore::PrerenderClient::~PrerenderClient):
3710         * platform/PrerenderHandle.h:
3711         (WebCore):
3712         (PrerenderHandle):
3713         * platform/chromium/Prerender.cpp:
3714         (WebCore::Prerender::Prerender):
3715         (WebCore::Prerender::removeClient):
3716         (WebCore):
3717         (WebCore::Prerender::add):
3718         (WebCore::Prerender::cancel):
3719         (WebCore::Prerender::abandon):
3720         (WebCore::Prerender::didStartPrerender):
3721         (WebCore::Prerender::didStopPrerender):
3722         (WebCore::Prerender::didSendLoadForPrerender):
3723         (WebCore::Prerender::didSendDOMContentLoadedForPrerender):
3724         * platform/chromium/Prerender.h:
3725         (WebKit):
3726         (WebCore):
3727         (Prerender):
3728         * platform/chromium/PrerenderHandle.cpp:
3729         (WebCore::PrerenderHandle::create):
3730         (WebCore::PrerenderHandle::PrerenderHandle):
3731         (WebCore::PrerenderHandle::~PrerenderHandle):
3732         (WebCore::PrerenderHandle::removeClient):
3733         (WebCore):
3734         * platform/chromium/support/WebPrerender.cpp:
3735         (WebKit::WebPrerender::toPrerender):
3736         (WebKit):
3737         (WebKit::WebPrerender::assign):
3738         (WebKit::WebPrerender::isNull):
3739         (WebKit::WebPrerender::didStartPrerender):
3740         (WebKit::WebPrerender::didStopPrerender):
3741         (WebKit::WebPrerender::didSendLoadForPrerender):
3742         (WebKit::WebPrerender::didSendDOMContentLoadedForPrerender):
3743
3744 2012-12-08  Gustavo Noronha Silva  <gns@gnome.org>
3745
3746         Reviewed by Martin Robinson.
3747
3748         Update the Chromium/Chrome version we advertise in our User-Agent
3749         string to version 25, to better match our current reality.
3750
3751         * platform/gtk/UserAgentGtk.cpp:
3752         (WebCore::standardUserAgent):
3753
3754 2012-12-08  Sheriff Bot  <webkit.review.bot@gmail.com>
3755
3756         Unreviewed, rolling out r137006.
3757         http://trac.webkit.org/changeset/137006
3758         https://bugs.webkit.org/show_bug.cgi?id=104446
3759
3760         Broke plugin painting on Mac (youtube, etc.) (Requested by
3761         thorton_ on #webkit).
3762
3763         * platform/graphics/GraphicsLayer.h:
3764         (GraphicsLayer):
3765         * rendering/RenderBox.h:
3766         * rendering/RenderLayerBacking.cpp:
3767         (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
3768         (WebCore::clipBox):
3769         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
3770         (WebCore::RenderLayerBacking::updateDrawsContent):
3771         (WebCore::RenderLayerBacking::updateBackgroundColor):
3772         (WebCore::RenderLayerBacking::paintsBoxDecorations):
3773         (WebCore::RenderLayerBacking::contentChanged):
3774         (WebCore::RenderLayerBacking::updateImageContents):
3775         (WebCore::RenderLayerBacking::contentsBox):
3776         * rendering/RenderLayerBacking.h:
3777         (RenderLayerBacking):
3778
3779 2012-12-08  Wei James  <james.wei@intel.com>
3780
3781         Remove incorrect ASSERT for m_error in CachedResource
3782         https://bugs.webkit.org/show_bug.cgi?id=104333
3783
3784         Reviewed by Nate Chapin.
3785
3786         This assertion was brought in https://bugs.webkit.org/show_bug.cgi?id=100901 
3787         When the request is canceled, m_error.isNull() should be true.
3788
3789         run webkit_unit_tests Debug build.
3790
3791         * loader/cache/CachedResource.cpp:
3792         (WebCore::CachedResource::stopLoading):
3793
3794 2012-12-08  Ryosuke Niwa  <rniwa@webkit.org>
3795
3796         Qt Linux Minimal build fix after r136975.
3797
3798         * dom/ElementRareData.h:
3799         (ElementRareData):
3800
3801 2012-12-08  Ryosuke Niwa  <rniwa@webkit.org>
3802
3803         Qt Linux Minimal build fix attempt after r136959.
3804
3805         * inspector/InspectorInstrumentation.h:
3806         (WebCore::InspectorInstrumentation::layerTreeDidChange):
3807         (WebCore::InspectorInstrumentation::renderLayerDestroyed):
3808
3809 2012-12-08  Xan Lopez  <xlopez@igalia.com>
3810
3811         Build fix after r137003. Wrap Microdata only sections with ENABLE(MICRODATA).
3812
3813         * dom/NodeRareData.h:
3814         (NodeRareData):
3815
3816 2012-12-08  Ryosuke Niwa  <rniwa@webkit.org>
3817
3818         Build fix after r137003. Wrap NodeMutationObserverData with ENABLE(MUTATION_OBSERVERS).
3819
3820         * dom/NodeRareData.h:
3821         (NodeRareData):
3822
3823 2012-12-08  Patrick Gansterer  <paroga@webkit.org>
3824
3825         Build fix for ENABLE(SVG) && !ENABLE(FILTERS) after r136975.
3826
3827         * rendering/svg/SVGResources.cpp:
3828         (WebCore::SVGResources::buildCachedResources):
3829
3830 2012-12-08  Adam Klein  <adamk@chromium.org>
3831
3832         HTMLTemplateElement.innerHTML should be parsed into the template contents owner document
3833         https://bugs.webkit.org/show_bug.cgi?id=104407
3834
3835         Reviewed by Eric Seidel.
3836
3837         When parsing via innerHTML, ensure that all operations (including the
3838         initial fragment creation) occur in the proper document to avoid,
3839         e.g., images loading while being parsed into the template contents.
3840         This matches the parsing behavior during page load.
3841
3842         Test: fast/dom/HTMLTemplateElement/innerHTML-inert.html
3843
3844         * editing/markup.cpp:
3845         (WebCore::createFragmentForInnerOuterHTML):
3846
3847 2012-12-08  ChangSeok Oh  <shivamidow@gmail.com>
3848
3849         Assertion failed at WebCore::RedirectedXCompositeWindow::context()
3850         https://bugs.webkit.org/show_bug.cgi?id=104349
3851
3852         Reviewed by Martin Robinson.
3853
3854         We should return GLContext if m_needsContext is CreateGLContext. By the way
3855         CreateGLContext is a enum value and its default value is 0. So checking
3856         ASSERT(m_needsContext) causes a crash on debug build.
3857         ASSERT(m_needsContext == CreateGLContext) is better here.
3858
3859         No new tests since we can verify this with already existing AC tests.
3860
3861         * platform/gtk/RedirectedXCompositeWindow.cpp:
3862         (WebCore::RedirectedXCompositeWindow::context):
3863
3864 2012-12-07  Rik Cabanier  <cabanier@adobe.com>
3865
3866         Extend platform layer so it can pass blend modes to the compositing calls
3867         https://bugs.webkit.org/show_bug.cgi?id=104176
3868
3869         Reviewed by Dirk Schulze.
3870
3871         Adding blend mode enumeration to drawImage functions + stored blendmode in graphics context 
3872
3873         No new tests, no new functionality.
3874
3875         * html/HTMLCanvasElement.cpp:
3876         (WebCore::HTMLCanvasElement::paint):
3877         * platform/graphics/BitmapImage.h:
3878         * platform/graphics/CrossfadeGeneratedImage.cpp:
3879         (WebCore::CrossfadeGeneratedImage::draw):
3880         * platform/graphics/CrossfadeGeneratedImage.h:
3881         (CrossfadeGeneratedImage):
3882         * platform/graphics/GeneratedImage.h:
3883         (GeneratedImage):
3884         * platform/graphics/GeneratorGeneratedImage.cpp:
3885         (WebCore::GeneratorGeneratedImage::draw):
3886         * platform/graphics/GeneratorGeneratedImage.h:
3887         (GeneratorGeneratedImage):
3888         * platform/graphics/GraphicsContext.cpp:
3889         (WebCore::GraphicsContext::drawImage):
3890         (WebCore):
3891         (WebCore::GraphicsContext::drawImageBuffer):
3892         (WebCore::GraphicsContext::setCompositeOperation):
3893         * platform/graphics/GraphicsContext.h:
3894         (WebCore::GraphicsContextState::GraphicsContextState):
3895         (GraphicsContextState):
3896         (GraphicsContext):
3897         * platform/graphics/Image.cpp:
3898         (WebCore::Image::draw):
3899         (WebCore::Image::drawTiled):
3900         * platform/graphics/Image.h:
3901         (Image):
3902         * platform/graphics/ImageBuffer.h:
3903         (ImageBuffer):
3904         * platform/graphics/cairo/BitmapImageCairo.cpp:
3905         (WebCore::BitmapImage::draw):
3906         * platform/graphics/cairo/GraphicsContextCairo.cpp:
3907         (WebCore::GraphicsContext::setPlatformCompositeOperation):
3908         * platform/graphics/cairo/ImageBufferCairo.cpp:
3909         (WebCore::ImageBuffer::draw):
3910         * platform/graphics/cg/BitmapImageCG.cpp:
3911         (WebCore::BitmapImage::draw):
3912         * platform/graphics/cg/GraphicsContextCG.cpp:
3913         (WebCore::GraphicsContext::drawNativeImage):
3914         (WebCore::GraphicsContext::setPlatformCompositeOperation):
3915         * platform/graphics/cg/ImageBufferCG.cpp:
3916         (WebCore::ImageBuffer::draw):
3917         * platform/graphics/cg/PDFDocumentImage.cpp:
3918         (WebCore::PDFDocumentImage::draw):
3919         * platform/graphics/cg/PDFDocumentImage.h:
3920         (PDFDocumentImage):
3921         * platform/graphics/qt/GraphicsContextQt.cpp:
3922         (WebCore::GraphicsContext::setPlatformCompositeOperation):
3923         * platform/graphics/qt/ImageBufferQt.cpp:
3924         (WebCore::ImageBuffer::draw):
3925         * platform/graphics/qt/ImageQt.cpp:
3926         (WebCore::BitmapImage::draw):
3927         * platform/graphics/qt/StillImageQt.cpp:
3928         (WebCore::StillImage::draw):
3929         * platform/graphics/qt/StillImageQt.h:
3930         (StillImage):
3931         * platform/graphics/skia/BitmapImageSingleFrameSkia.h:
3932         (BitmapImageSingleFrameSkia):
3933         * platform/graphics/skia/GraphicsContextSkia.cpp:
3934         (WebCore::GraphicsContext::setPlatformCompositeOperation):
3935         * platform/graphics/skia/ImageBufferSkia.cpp:
3936         (WebCore::ImageBuffer::draw):
3937         * platform/graphics/skia/ImageSkia.cpp:
3938         (WebCore::BitmapImage::draw):
3939         (WebCore::BitmapImageSingleFrameSkia::draw):
3940         * platform/graphics/win/ImageCGWin.cpp:
3941         (WebCore::BitmapImage::getHBITMAPOfSize):
3942         (WebCore::BitmapImage::drawFrameMatchingSourceSize):
3943         * svg/graphics/SVGImage.cpp:
3944         (WebCore::SVGImage::drawSVGToImageBuffer):
3945         (WebCore::SVGImage::draw):
3946         (WebCore::SVGImage::nativeImageForCurrentFrame):
3947         * svg/graphics/SVGImage.h:
3948         (SVGImage):
3949
3950 2012-12-07  Alpha Lam  <hclam@chromium.org>
3951
3952         [chromium] ImageDecodingStore should cache partially decoded images
3953         https://bugs.webkit.org/show_bug.cgi?id=103796
3954
3955         Reviewed by Stephen White.
3956
3957         Implement caching for incomplete images, meaning the image is partially
3958         decoded. The image is cached together with partially decoded ImageDecoder.
3959         This allows decoding to resume in a later time.
3960
3961         Caching logic for incomplete images is implemented in ImageDecodingStore.
3962
3963         Logic for resuming image decoding is implemented in ImageFrameGenerator.
3964
3965         ImageDecodingStore allows storing incomplete image with the decoder.
3966         The cache entry can be used in a later time to read and write (i.e. resume
3967         decoding.) To avoid the same entry being written and read at the same time,
3968         an incomplete entry can be used by one user only. Concurrent access to
3969         an incomplete entry should never happen and is checked by an assert.
3970         An entry can becomes complete when decoding is finished. In this case
3971         the associated decoder is deleted. Once an entry becomes complete concurrent
3972         read is allowed.
3973
3974         ImageFrameGenerator performs the logic to resume image decoding. It
3975         performs the following operations in sequence:
3976         - Try to lookup a complete image
3977         - Try to perform scaling on a complete image
3978         - Try to lookup an incomplete image and resume decoding & scaling
3979         - Everything fails, start decoding from scratch
3980         The entire sequence of operations in under a mutex, hence there will be
3981         no more than 1 user of an incomplete cache entry at the same time.
3982
3983         New unit tests in ImageDecodingStoreTest and ImageFrameGeneratorTest.
3984
3985         * platform/graphics/chromium/ImageDecodingStore.cpp:
3986         (WebCore::ImageDecodingStore::lockCache):
3987         Change of method definition to return an image and ImageDecoder.
3988         (WebCore::ImageDecodingStore::unlockCache):
3989         (WebCore::ImageDecodingStore::insertAndLockCache):
3990         (WebCore::ImageDecodingStore::overwriteAndLockCache):
3991         New method to allow an incomplete cache entry be overwritten.
3992         (WebCore):
3993         * platform/graphics/chromium/ImageDecodingStore.h:
3994         (ImageDecodingStore):
3995         (WebCore::ImageDecodingStore::CacheEntry::createAndUse):
3996         (WebCore::ImageDecodingStore::CacheEntry::CacheEntry):
3997         (WebCore::ImageDecodingStore::CacheEntry::cachedImage):
3998         (WebCore::ImageDecodingStore::CacheEntry::cachedDecoder):
3999         (WebCore::ImageDecodingStore::CacheEntry::releaseCachedDecoder):
4000         (WebCore::ImageDecodingStore::CacheEntry::overwriteCachedImage):
4001         New method to allow an incomplete image be overwitten.
4002         (CacheEntry):
4003         * platform/graphics/chromium/ImageFrameGenerator.cpp:
4004         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
4005         (WebCore::ImageFrameGenerator::decodeAndScale):
4006         (WebCore::ImageFrameGenerator::tryToLockCompleteCache):
4007         (WebCore::ImageFrameGenerator::tryToScale):
4008         (WebCore::ImageFrameGenerator::tryToResumeDecodeAndScale):
4009         New method to lookup an incomplete cache entry and resume decoding.
4010         (WebCore):
4011         (WebCore::ImageFrameGenerator::tryToDecodeAndScale):
4012         (WebCore::ImageFrameGenerator::decoder):
4013         New helper method to do decoding for a full sized image.
4014         (WebCore::ImageFrameGenerator::prepareData):
4015         New helper method to prepare data safely.
4016         * platform/graphics/chromium/ImageFrameGenerator.h:
4017         (ImageFrameGenerator):
4018         * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
4019         (WebCore::LazyDecodingPixelRef::onLockPixels):
4020         * platform/graphics/chromium/ScaledImageFragment.h:
4021         (WebCore::ScaledImageFragment::setIsComplete):
4022
4023 2012-12-07  Alexis Menard  <alexis@webkit.org>
4024
4025         Enable CSS3 position offset for CSS Masking.
4026         https://bugs.webkit.org/show_bug.cgi?id=104252
4027
4028         Reviewed by Dirk Schulze.
4029
4030         To follow CSS3 background-position, mask-position should also support
4031         the new <position> type (http://dvcs.w3.org/hg/FXTF/raw-file/tip/masking/index.html#mask-property).
4032         Now the code is shared between background and mask I renamed the
4033         functions used to be more generic. Note that the feature flag is not
4034         meant to stay and will be removed in a following commit.
4035
4036         No new tests : I modified LayoutTests/fast/masking/parsing-mask.html to
4037         cover the new feature.
4038
4039         * css/CSSComputedStyleDeclaration.cpp:
4040         (WebCore::createPositionListForLayer):
4041         * css/CSSParser.cpp:
4042         (WebCore::isFillPositionKeyword):
4043         (WebCore::CSSParser::parse4ValuesFillPosition):
4044         (WebCore::CSSParser::parse3ValuesFillPosition):
4045         (WebCore::CSSParser::isPotentialPositionValue):
4046         (WebCore::CSSParser::parseFillPosition):
4047         (WebCore::CSSParser::parse2ValuesFillPosition):
4048         (WebCore::CSSParser::parseFillProperty):
4049         (WebCore::CSSParser::parseTransformOriginShorthand):
4050         (WebCore::CSSParser::parseRadialGradient):
4051         (WebCore::CSSParser::parsePerspectiveOrigin):
4052         * css/CSSParser.h:
4053         * css/CSSToStyleMap.cpp:
4054         (WebCore::CSSToStyleMap::mapFillXPosition):
4055         (WebCore::CSSToStyleMap::mapFillYPosition):
4056
4057 2012-12-07  No'am Rosenthal  <noam@webkit.org>
4058
4059         Use background color for GraphicsLayers when applicable
4060         https://bugs.webkit.org/show_bug.cgi?id=103786
4061
4062         Updated RenderLayerBacking to call GraphicsLayer::setContentsToBackgroundColor when the following conditions take place:
4063         1. The layer doesn't paint its own content, other than background/decoration.
4064         2. There are no borders or other box decorations (border radius, borders, outline, shadow etc.)
4065         3. The image has only a background color, and no background image.
4066         4. background-composite is set to source-over, and background-clip is anything apart from text.
4067         5. The port supports setContentsToBackgroundColor.
4068
4069         This allows any implementation of GraphicsLayer that supports setContentsToBackgroundColor to avoid allocating a backing store
4070         for that layer, but instead draw that solid color directly.
4071         In addition to setting the background color, the layer's contentsRect needs to be adjusted, since the default contents rect of
4072         a layer is not always equivalent to the rect where the background is supposed to be painted, which is derived from the box's
4073         background-clip property.
4074
4075         Reviewed by Simon Fraser.
4076
4077         Tests: compositing/background-color/background-color-alpha.html
4078                compositing/background-color/background-color-change-to-text.html
4079                compositing/background-color/background-color-composite.html
4080                compositing/background-color/background-color-container.html
4081                compositing/background-color/background-color-content-clip.html
4082                compositing/background-color/background-color-padding-change.html
4083                compositing/background-color/background-color-padding-clip.html
4084                compositing/background-color/background-color-simple.html
4085                compositing/background-color/background-color-text-change.html
4086                compositing/background-color/background-color-text-clip.html
4087
4088         * platform/graphics/GraphicsLayer.h:
4089         (WebCore::GraphicsLayer::supportsBackgroundColorContent):
4090             Allows different implementation of GraphicsLayer to identify whether they implement setContentsToBackgroundColor.
4091             Currently only the MAC implementation and TextureMapper falls under that category.
4092
4093         * rendering/RenderBox.h:
4094         (WebCore::RenderBox::paddingBoxRect):
4095             Added paddingBoxRect to compliment borderBoxRect and contentsBoxRect. paddingBoxRect corresponds to 
4096             background-clip: padding.
4097
4098         * rendering/RenderLayerBacking.cpp:
4099         (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
4100             Update the background color if needed, for every configuration change.
4101             This should accomodate the old behavior for full-screen, while enabling background color changes for other layers.
4102
4103         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
4104             Move the contentsRect logic to updateContentsRect.
4105
4106         (WebCore::RenderLayerBacking::updateContentsRect):
4107             Use the background box when directly compositing backgrounds.
4108
4109         (WebCore::RenderLayerBacking::updateBackgroundColor):
4110             Set the background color if applicable, otherwise set to trasnparent and clear.
4111             This was not needed in the past because background colors were only used for the special case of full-screen.
4112
4113         (WebCore::supportsDirectBoxDecorationsComposition):
4114             Helper function to determine whether a particular background can be directly composited. Right now only 
4115             background color can be composited, and only if the GraphicsLayer implementation supports background colors.
4116             Also we don't yet support background-clip: text and any background-composite other than source-over.
4117
4118         (WebCore::RenderLayerBacking::paintsBoxDecorations):
4119             Apply the new supportsDirectBoxDecorationsComposition logic.
4120
4121         (WebCore::RenderLayerBacking::contentsBox):
4122             Remove unnecessary local variable.
4123
4124