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