Some non-scrollable elements are added to non-fast-scrollable region
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-10-08  Sami Kyostila  <skyostil@chromium.org>
2
3         Some non-scrollable elements are added to non-fast-scrollable region
4         https://bugs.webkit.org/show_bug.cgi?id=97927
5
6         Reviewed by James Robinson.
7
8         Only RenderLayers that can actually be scrolled should be added to the
9         ScrollingCoordinator's non-fast scrollable region. Otherwise we may
10         needlessly fall back to main thread scrolling.
11
12         Test: ScrollingCoordinatorChromiumTest.clippedBodyTest
13
14         * rendering/RenderLayer.cpp:
15         (WebCore::RenderLayer::updateScrollbarsAfterLayout):
16         (WebCore::RenderLayer::updateScrollbarsAfterStyleChange):
17
18 2012-10-08  Simon Fraser  <simon.fraser@apple.com>
19
20         Move layerTreeAsText to window.internals
21         https://bugs.webkit.org/show_bug.cgi?id=98690
22
23         Reviewed by James Robinson.
24
25         Add window.internals.layerTreeAsText(document), and change the tests to use it.
26         I'll remove testRunner.layerTreeAsText() in a later patch.
27
28         * testing/Internals.cpp:
29         (WebCore::Internals::layerTreeAsText):
30         * testing/Internals.h:
31         (Internals):
32         * testing/Internals.idl:
33
34 2012-10-08  Jon Lee  <jonlee@apple.com>
35
36         Add render object that paints plugin snapshots
37         https://bugs.webkit.org/show_bug.cgi?id=98322
38         <rdar://problem/12426546>
39
40         Reviewed by Simon Fraser.
41
42         First, teach plugins to maintain a set of states when plugin snapshotting is enabled.
43
44         Second, a new RenderSnapshottedPlugIn class is a RenderEmbeddedObject that knows how to paint
45         snapshots when the plugin is not visibly playing. It maintains a RenderImageResource to
46         the generated poster image.
47
48         * html/HTMLPlugInElement.cpp:
49         (WebCore::HTMLPlugInElement::HTMLPlugInElement): By default all plugins play on load.
50         * html/HTMLPlugInElement.h: Move the inheritance of ImageLoaderClientBase down to
51         HTMLPlugInImageElement, since that is the class that actually deals with image-based plugins.
52         (WebCore::HTMLPlugInElement::displayState): Add bit for display state.
53         (WebCore::HTMLPlugInElement::setDisplayState):
54         (WebCore::HTMLPlugInElement::updateSnapshot):
55
56         * html/HTMLPlugInImageElement.cpp:
57         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): If plugin snapshotting is
58         enabled, plugin state is set to wait for a poster image.
59         (WebCore::HTMLPlugInImageElement::createRenderer): Create RenderSnapshottedPlugIn if
60         plugin snapshotting is enabled.
61         (WebCore::HTMLPlugInImageElement::updateSnapshot): Once a snapshot is available, update the
62         renderer and set its state to wait for user input to start the plugin.
63         * html/HTMLPlugInImageElement.h:
64         (HTMLPlugInImageElement):
65
66         * rendering/RenderObject.h:
67         (WebCore::RenderObject::isSnapshottedPlugIn): Add new function to identify
68         RenderSnapshottedPlugIn instances. Since RenderSnapshottedPlugIn inherits from
69         RenderEmbeddedObject, isEmbeddedObject() still returns true.
70         * rendering/RenderEmbeddedObject.h:
71         (RenderEmbeddedObject): Elevate a few virtual methods to protected for
72         RenderSnapshottedPlugIn to override.
73
74         * rendering/RenderSnapshottedPlugIn.cpp: Added.
75         (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): Initialize snapshot
76         resource.
77         (WebCore::RenderSnapshottedPlugIn::~RenderSnapshottedPlugIn): Shut down snapshot
78         image resource to remove the renderer as a client, and remove image from memory cache.
79         (WebCore::RenderSnapshottedPlugIn::plugInImageElement): Convenience function to get the
80         HTML element.
81         (WebCore::RenderSnapshottedPlugIn::updateSnapshot): Cache the snapshot, and repaint.
82         (WebCore::RenderSnapshottedPlugIn::paint): If the plugin is not playing, paint like a
83         RenderImage does.
84         (WebCore::RenderSnapshottedPlugIn::paintReplaced): Paint the snapshot and overlay if the
85         plugin is not playing.
86         (WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshot): Inspired by
87         RenderImage::paintReplaced() and RenderImage::paintIntoRect().
88         * rendering/RenderSnapshottedPlugIn.h: Added.
89         (WebCore::RenderSnapshottedPlugIn::isSnapshottedPlugin): Returns true.
90
91         * rendering/RenderTheme.h: Add a function that paints the overlay on top of the snapshot.
92         * rendering/RenderThemeMac.h:
93         * rendering/RenderThemeMac.mm:
94         (WebCore::RenderThemeMac::paintPlugInSnapshotOverlay):
95
96         * WebCore.xcodeproj/project.pbxproj: Add new RenderSnapshottedPlugIn class.
97         * CMakeLists.txt: Ditto.
98         * GNUmakefile.list.am: Ditto.
99         * Target.pri: Ditto.
100         * WebCore.gypi: Ditto.
101         * WebCore.vcproj/WebCore.vcproj: Ditto.
102         * rendering/RenderingAllInOne.cpp: Ditto.
103
104 2012-10-08  Hans Muller  <hmuller@adobe.com>
105
106         [CSS Exclusions] Add support for polygonal shapes
107         https://bugs.webkit.org/show_bug.cgi?id=96811
108
109         Reviewed by Dirk Schulze.
110
111         Initial version of the layout support for polygonal exclusion shapes: the ExclusionPolygon class.
112         Supports the public ExclusionShape operations using the algorithm described here:
113         http://hansmuller-webkit.blogspot.com/2012/06/horizontal-box-polygon-intersection-for.html.
114         Although both the "included" and "excluded" operations are supported, only the former is
115         used, since only shape-inside is supported at the moment.
116
117         The ExclusionPolygon class stores the polygon's edges in an interval tree.
118
119         Polygon edges are represented by the ExclusionPolygonEdge struct, which records the indices of
120         the pair of vertices joined by the edge.  Edge vertex index1 is usually less than index2, except
121         the last edge where index2 is 0.  We plan to improve the algorithm that creates the edges
122         by spanning vertices contained in sequences of more than two colinear vertices. For example,
123         a triangular polygon might be specified with 5 vertices like this: 3,0 5,0, 5,5, 4,4 2,2, 0,0.
124         By spanning the extra colinear points: 0,0 5,0, 5,5, which implies index1-index2 edges: 5-1 1-2 2-5.
125
126         Although the implementation supports complex polygons, the layout code is limited to
127         essentially rectangular shapes until a patch for https://bugs.webkit.org/show_bug.cgi?id=96813
128         lands.
129
130         Tests: fast/exclusions/shape-inside/shape-inside-polygon-rectangle.html
131                fast/exclusions/shape-inside/shape-inside-simple-polygon-001.html
132                fast/exclusions/shape-inside/shape-inside-simple-polygon-002.html
133                fast/exclusions/shape-inside/shape-inside-simple-polygon-003.html
134                fast/exclusions/shape-inside/shape-inside-simple-polygon-004.html
135
136         * CMakeLists.txt:
137         * GNUmakefile.list.am:
138         * Target.pri:
139         * WebCore.gypi:
140         * WebCore.vcproj/WebCore.vcproj:
141         * WebCore.xcodeproj/project.pbxproj:
142         * rendering/ExclusionPolygon.cpp: Added.
143         (WebCore):
144         (EdgeIntersection): Internal description of the intersection of a polygon edge and a horizontal line.
145         (WebCore::ExclusionPolygon::ExclusionPolygon): See the introductory text above for a description of this type.
146         (WebCore::computeXIntersection): Find and classify the X intercept of a polygon edge with horizontal line, if any.
147         (WebCore::ExclusionPolygon::rightVertexY): This method is used to decide if a horizontal line "crosses" a vertex.
148         (WebCore::appendIntervalX): Append an x coordinate to a vector of ExclusionIntervals.
149         (WebCore::ExclusionPolygon::computeXIntersections): Return a vector of the intersections of a horizontal line with the polygon's edges.
150         (WebCore::ExclusionPolygon::computeEdgeIntersections): Return a vector of the X projections of the edges that overlap a horizonal rectangle.
151         (WebCore::ExclusionPolygon::getExcludedIntervals): Return a SegmentList of the X intervals within a horizontal rectangle that overlap the polygon.
152         (WebCore::ExclusionPolygon::getIncludedIntervals): Return the X intervals within a horizontal rectangle that fit inside the polygon.
153         * rendering/ExclusionPolygon.h: Added.
154         (WebCore):
155         (ExclusionPolygon):
156         (WebCore::ExclusionPolygon::getXAt): X coordinate of a polygon vertex
157         (WebCore::ExclusionPolygon::getYAt): Y coordinate of a polygon vertex
158         (WebCore::ExclusionPolygon::numberOfVertices):
159         (WebCore::ExclusionPolygon::fillRule): A WindRule value that defines "inside" for self-intersecting polygons.
160         (ExclusionPolygonEdge):
161         (WebCore::ExclusionPolygonEdge::ExclusionPolygonEdge):
162         (WebCore::ExclusionPolygonEdge::vertex1):
163         (WebCore::ExclusionPolygonEdge::vertex2):
164         (WebCore::ExclusionPolygonEdge::minX):
165         (WebCore::ExclusionPolygonEdge::minY):
166         (WebCore::ExclusionPolygonEdge::maxX):
167         (WebCore::ExclusionPolygonEdge::maxY):
168         * rendering/ExclusionShape.cpp:
169         (WebCore::createExclusionPolygon): Return a new ExclusionPolygon.
170         (WebCore):
171         (WebCore::ExclusionShape::createExclusionShape): Added support for BasicShape::BASIC_SHAPE_POLYGON.
172         * rendering/ExclusionShapeInsideInfo.cpp:
173         (WebCore::ExclusionShapeInsideInfo::isExclusionShapeInsideInfoEnabledForRenderBlock): Enable BASIC_SHAPE_POLYGON shapes for RenderBlocks.
174
175 2012-10-08  Tony Chang  <tony@chromium.org>
176
177         Replace 2 uses of updateLogicalHeight with computeLogicalHeight
178         https://bugs.webkit.org/show_bug.cgi?id=98677
179
180         Reviewed by Ojan Vafai.
181
182         This is part of bug 96804.  Convert RenderTextControl and RenderSVGForeignObject to
183         override the const computeLogicalHeight method rather than the updateLogicalHeight
184         setter method.
185
186         No new tests, there should be no behavior change as this is just a refactor.
187
188         * rendering/RenderTextControl.cpp:
189         (WebCore::RenderTextControl::computeLogicalHeight): Pass logicalHeight through rather than setting height.
190         This is a slight correctness fix, although we don't support vertical inputs yet.
191         * rendering/RenderTextControl.h:
192         (RenderTextControl):
193         * rendering/svg/RenderSVGForeignObject.cpp:
194         (WebCore::RenderSVGForeignObject::computeLogicalHeight):
195         * rendering/svg/RenderSVGForeignObject.h:
196         (RenderSVGForeignObject):
197
198 2012-10-08  Min Qin  <qinmin@chromium.org>
199
200         Upstream some tweaks for overlay play button on Android
201         https://bugs.webkit.org/show_bug.cgi?id=98671
202
203         Reviewed by Adam Barth.
204
205         This change stops displaying the overlay play button if video height is too small
206         No test for this. Will rebase layout test expectations for android later.
207
208         * css/mediaControlsChromiumAndroid.css:
209         (video::-webkit-media-controls-overlay-enclosure):
210
211 2012-10-08  Simon Fraser  <simon.fraser@apple.com>
212
213         Some GraphicsLayer cleanup to separate the concepts of using a tile cache, and being the main tile cache layer
214         https://bugs.webkit.org/show_bug.cgi?id=98574
215
216         Reviewed by Dean Jackson.
217
218         GraphicsLayerCA assumed that using a TileCache equated to being the main page tile
219         cache layer, which has some special considerations. Make these two concepts separate
220         to get closer to being able to use TileCaches in place of CATiledLayer.
221
222         * platform/graphics/GraphicsLayer.h:
223         (GraphicsLayer): Remove m_usingTileCache member, which was not appropriate
224         for this class to have.
225         * platform/graphics/GraphicsLayer.cpp:
226         (WebCore::GraphicsLayer::GraphicsLayer): Remove init of m_usingTileCache.
227         (WebCore::GraphicsLayer::debugBorderInfo): Can no longer use m_usingTileCache to
228         get the blue color, so moved code into a virtual debugBorderInfo() method.
229         (WebCore::GraphicsLayer::updateDebugIndicators): Call the virtual debugBorderInfo().
230         * platform/graphics/GraphicsLayerClient.h: Remove the usingTileCache() callback;
231         we now just cache this information in the GraphicsLayerCA on creation.
232         * platform/graphics/ca/GraphicsLayerCA.cpp:
233         (WebCore::GraphicsLayerCA::GraphicsLayerCA): Init m_isPageTileCacheLayer to false,
234         then set to m_isPageTileCacheLayer if the client says we should create a tile cache.
235         (WebCore::GraphicsLayerCA::platformCALayerShowRepaintCounter): Overidden to avoid duplicate repaint
236         counters in the top-left tile.
237         (WebCore::GraphicsLayerCA::updateLayerBackgroundColor): If this layer is the page tile cache layer,
238         we allow setting of its background color.
239         (WebCore::GraphicsLayerCA::debugBorderInfo): Overidden to use a blue color for tiles.
240         (WebCore::GraphicsLayerCA::requiresTiledLayer): Don't make CATiledLayers for the page tile cache.
241         * platform/graphics/ca/GraphicsLayerCA.h:
242         (GraphicsLayerCA):
243         * platform/graphics/ca/PlatformCALayerClient.h:
244         (PlatformCALayerClient): Need to pass the platform layer into platformCALayerShowRepaintCounter()
245         so we can distinguish between calls for tiles, and calls for the tile cache layer itself.
246         * platform/graphics/ca/mac/TileCache.mm:
247         (WebCore::TileCache::shouldShowRepaintCounters): Pass 0 to platformCALayerShowRepaintCounter() to
248         indicate that we're asking about a tile.
249         * platform/graphics/mac/WebLayer.mm:
250         (drawLayerContents): Now we can just rely on platformCALayerShowRepaintCounter() to tell us whether
251         to draw the repaint counter.
252         (-[WebLayer setNeedsDisplayInRect:]):
253         * platform/graphics/mac/WebTiledLayer.mm:
254         (-[WebTiledLayer setNeedsDisplayInRect:]):
255         * rendering/RenderLayerBacking.h:
256         (WebCore::RenderLayerBacking::usingTileCache):
257         (RenderLayerBacking):
258         * rendering/RenderLayerCompositor.cpp:
259         (WebCore::RenderLayerCompositor::documentBackgroundColorDidChange): We can ask the RenderLayerBacking
260         whether it's for the tile cache, rather than going to the GraphicsLayer.
261         * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
262         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerShowRepaintCounter):
263
264 2012-10-08  Huang Dongsung  <luxtella@company100.net>
265
266         [Qt] Make ImageBufferQt use premultiplied converting functions in Color.h instead of its own mechanism.
267         https://bugs.webkit.org/show_bug.cgi?id=98582
268
269         Reviewed by Eric Seidel.
270
271         Only Qt port failed canvas/philip/tests/2d.imageData.put.unchanged.html because
272         ImageBufferQt converts from or to a premultiplied color using its own code. When
273         we convert twice from an unmultiplied color to a premultiplied color and then to
274         an unmultiplied color using this code, the calculated result are pretty
275         different against the input color. It is why Gtk passes this test although Qt
276         fails. Gtk port uses them in Color.h.
277
278         In addition, Qt should use the functions in Color.h to reduce duplicated codes.
279
280         Tests: canvas/philip/tests/2d.imageData.put.unchanged.html: Fixed a test case
281
282         * platform/graphics/qt/ImageBufferQt.cpp:
283         (WebCore::getImageData):
284         (WebCore::convertBGRAToRGBA):
285         (WebCore::ImageBuffer::putByteArray):
286
287 2012-10-08  Tab Atkins  <jackalmage@gmail.com>
288
289         Remove "orphaned units" quirk
290         https://bugs.webkit.org/show_bug.cgi?id=98553
291
292         Reviewed by Eric Seidel.
293
294         This patch removes our "orphaned units" quirk.
295         We have an "orphaned units" quirk to match IE, which allows things like "width: 20 px;".
296         But FF and Opera don't have it and aren't aware of bugs for it,
297         and it's not in Simon Pieters' Quirks Mode spec <http://dvcs.w3.org/hg/quirks-mode/raw-file/tip/Overview.html>
298
299         No new tests, because I'm killing a quirk.
300
301         * css/CSSParser.cpp:
302         (WebCore::CSSParser::parseValue):
303         * css/CSSParser.h:
304         (CSSParser):
305
306 2012-10-08  Robert Hogan  <robert@webkit.org>
307
308         Border, margin and padding of an inline's inline ancestors counted twice
309         https://bugs.webkit.org/show_bug.cgi?id=63074
310
311         Reviewed by David Hyatt.
312
313         In a line such as '<span><span><img>Text' the border, padding and margin belonging
314         to the two spans was counted twice by RenderBlockLineLayout::nextLineBreak(): once
315         when adding the width of the <img> object to the line, and a second time when adding
316         the 'Text'. The result was that nextLineBreak() now had a length for the line that 
317         exceeded the line's maximum length and inserted a bogus line break.
318
319         This all happened because the helper function that is used to add in the border etc.
320         from inline ancestors was crawling up the tree each time. It doesn't need to do that, it
321         should stop crawling up the tree when the current object is not the first or last sibling below a parent.
322
323         Test: fast/inline/bpm-inline-ancestors.html
324
325         * rendering/RenderBlockLineLayout.cpp:
326         (WebCore::shouldAddBorderPaddingMargin): Broke this check out into a helper function so that it 
327         can help inlineLogicalWidth() return early and also treat empty RenderTexts the same as no previous/next
328         sibling on the line. This ensures that collapsed leading space does not interfere with the decision to
329         crawl up the ancestors accumulating border, padding, and margin.
330         (WebCore):
331         (WebCore::inlineLogicalWidth): Return early once the current child is no longer on the edge of its line - 
332         this ensures the border, padding and margin of ancestors is not counted twice. 
333
334 2012-10-08  Mike West  <mkwst@chromium.org>
335
336         Null-check for DOMWindow before feeding it to FeatureObserver.
337         https://bugs.webkit.org/show_bug.cgi?id=98624
338
339         Reviewed by Adam Barth.
340
341         We shouldn't call out to FeatureObserver in
342         ContentSecurityPolicy::didReceiveHeader if the policy's document doesn't
343         have a DOMWindow.
344
345         Test: http/tests/security/contentSecurityPolicy/xmlhttprequest-protected-resource-does-not-crash.html
346
347         * page/ContentSecurityPolicy.cpp:
348         (WebCore::ContentSecurityPolicy::didReceiveHeader):
349             Null check 'document->domWindow' before passing it on.
350         * page/FeatureObserver.cpp:
351         (WebCore::FeatureObserver::observe):
352             ASSERT 'domWindow'.
353
354 2012-10-08  Nate Chapin  <japhet@chromium.org>
355
356         Loader cleanup : Simplify FrameLoader/DocumentLoader setupForReplace()
357         https://bugs.webkit.org/show_bug.cgi?id=49072
358
359         Reviewed by Eric Seidel.
360
361         This patch contains one small known behavior change: multipart/x-mixed-replace main resources with text/html parts
362         will no longer load the text/html progressively. In practice, loading the html progressively causes the document
363         to get cleared as soon as the next part's data starts arriving, which leads to a blank page most of the time. This case
364         seems to be pathological, as IE, FF, Opera and WebKit all do something different currently. This patch will cause
365         us to behave like Firefox, which is the most sane of the current behaviors.
366
367         Test: http/tests/multipart/multipart-html.php
368
369         * loader/DocumentLoader.cpp:
370         (WebCore::DocumentLoader::commitData): Use isMultipartReplacingLoad() helper.
371         (WebCore::DocumentLoader::receivedData):
372         (WebCore::DocumentLoader::setupForReplace): Renamed from setupForReplaceByMIMEType(). Call maybeFinishLoadingMultipartContent()
373             instead of doing identical work inline. After we call frameLoader()->setReplacing(), we will never load progressively, so remove
374             the if (doesProgressiveLoad(newMIMEType)) {} block.
375         (WebCore::DocumentLoader::isMultipartReplacingLoad):
376         (WebCore::DocumentLoader::maybeFinishLoadingMultipartContent): Inline the old DocumentLoader::setupForeReplace(), check
377             frameLoader()->isReplacing() instead of the delete doesProgressiveLoad().
378         * loader/DocumentLoader.h:
379         * loader/FrameLoader.cpp:
380         (WebCore::FrameLoader::setupForReplace): Move all calls to revertToProvisionalState here.
381         * loader/MainResourceLoader.cpp:
382         (WebCore::MainResourceLoader::didReceiveResponse): Call setupForReplace(), renamed from setupForReplaceByMIMEType().
383
384 2012-10-08  Zoltan Horvath  <zoltan@webkit.org>
385
386         [Qt] r122720 causes performance regression with DirectFB on ARMv7
387         https://bugs.webkit.org/show_bug.cgi?id=97548
388
389         Reviewed by Jocelyn Turcotte.
390
391         Revert the rest of r122720. This change modifies the NativeImagePtr from QImage* to QPixmap*.
392
393         Covered by existing tests.
394
395         * bridge/qt/qt_pixmapruntime.cpp:
396         (JSC::Bindings::assignToHTMLImageElement):
397         (JSC::Bindings::QtPixmapRuntime::toQt):
398         * platform/DragImage.h:
399         (WebCore):
400         * platform/graphics/GraphicsContext.h:
401         (GraphicsContext):
402         * platform/graphics/Image.h:
403         (Image):
404         * platform/graphics/NativeImagePtr.h:
405         (WebCore):
406         * platform/graphics/gstreamer/ImageGStreamer.h:
407         * platform/graphics/gstreamer/ImageGStreamerQt.cpp:
408         (ImageGStreamer::ImageGStreamer):
409         * platform/graphics/qt/GraphicsContext3DQt.cpp:
410         (WebCore::GraphicsContext3D::getImageData):
411         * platform/graphics/qt/GraphicsContextQt.cpp:
412         (WebCore::GraphicsContext::pushTransparencyLayerInternal):
413         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
414         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
415         * platform/graphics/qt/ImageBufferDataQt.h:
416         (ImageBufferData):
417         * platform/graphics/qt/ImageBufferQt.cpp:
418         (WebCore::ImageBufferData::ImageBufferData):
419         (WebCore):
420         (WebCore::ImageBufferData::toQImage):
421         (WebCore::ImageBuffer::copyImage):
422         (WebCore::ImageBuffer::clip):
423         (WebCore::ImageBuffer::platformTransformColorSpace):
424         (WebCore::getImageData):
425         (WebCore::ImageBuffer::putByteArray):
426         (WebCore::encodeImage):
427         (WebCore::ImageBuffer::toDataURL):
428         * platform/graphics/qt/ImageDecoderQt.cpp:
429         (WebCore::ImageFrame::asNewNativeImage):
430         * platform/graphics/qt/ImageQt.cpp:
431         (graphics):
432         (loadResourcePixmap):
433         (WebCore::Image::loadPlatformResource):
434         (WebCore::Image::setPlatformResource):
435         (WebCore::Image::drawPattern):
436         (WebCore::BitmapImage::BitmapImage):
437         (WebCore::BitmapImage::draw):
438         (WebCore::BitmapImage::checkForSolidColor):
439         (WebCore::BitmapImage::create):
440         * platform/graphics/qt/PatternQt.cpp:
441         (WebCore::Pattern::createPlatformPattern):
442         * platform/graphics/qt/StillImageQt.cpp:
443         (WebCore::StillImage::StillImage):
444         (WebCore::StillImage::~StillImage):
445         (WebCore::StillImage::currentFrameHasAlpha):
446         (WebCore::StillImage::size):
447         (WebCore::StillImage::nativeImageForCurrentFrame):
448         (WebCore::StillImage::draw):
449         * platform/graphics/qt/StillImageQt.h:
450         (WebCore::StillImage::create):
451         (WebCore::StillImage::createForRendering):
452         (StillImage):
453         * platform/graphics/qt/TransparencyLayer.h:
454         (WebCore::TransparencyLayer::TransparencyLayer):
455         (TransparencyLayer):
456         * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
457         (WebCore::GraphicsSurface::createReadOnlyImage):
458         * platform/graphics/texmap/TextureMapperGL.cpp:
459         (WebCore::BitmapTextureGL::updateContents):
460         * platform/qt/ClipboardQt.cpp:
461         (WebCore::ClipboardQt::createDragImage):
462         (WebCore::ClipboardQt::declareAndWriteDragImage):
463         * platform/qt/CursorQt.cpp:
464         (WebCore::createCustomCursor):
465         * platform/qt/DragImageQt.cpp:
466         (WebCore::createDragImageFromImage):
467         * platform/qt/PasteboardQt.cpp:
468         (WebCore::Pasteboard::writeImage):
469
470 2012-10-08  Carlos Garcia Campos  <cgarcia@igalia.com>
471
472         Unreviewed. Fix make distcheck.
473
474         * GNUmakefile.list.am: Add missing header file to compilation.
475
476 2012-10-08  Sheriff Bot  <webkit.review.bot@gmail.com>
477
478         Unreviewed, rolling out r130619.
479         http://trac.webkit.org/changeset/130619
480         https://bugs.webkit.org/show_bug.cgi?id=98634
481
482         Causes many crashes on the EFL bots. (Requested by rakuco on
483         #webkit).
484
485         * platform/RunLoop.h:
486         (RunLoop):
487         * platform/efl/RunLoopEfl.cpp:
488         (WebCore::RunLoop::RunLoop):
489         (WebCore::RunLoop::wakeUpEvent):
490         (WebCore::RunLoop::wakeUp):
491
492 2012-10-08  Byungwoo Lee  <bw80.lee@samsung.com>
493
494         [EFL] Use ecore_main_loop_thread_safe_call_async() to wakeup main loop.
495         https://bugs.webkit.org/show_bug.cgi?id=98505
496
497         Reviewed by Kenneth Rohde Christiansen.
498
499         Instead of ecore_pipe_write(),
500         use ecore_main_loop_thread_safe_call_async() to wakeup ecore main loop.
501
502         According to the EFL API document, this function is designed to dispatch
503         a function on ecore main loop by avoiding dead lock or race condition. 
504         With this function, webkit doesn't need to maintain ecore pipe also.
505
506         No new tests. The function to wakeup main loop is changed.
507
508         * platform/RunLoop.h:
509         (RunLoop):
510         * platform/efl/RunLoopEfl.cpp:
511         (WebCore::RunLoop::RunLoop):
512         (WebCore::RunLoop::wakeUpEvent):
513         (WebCore::RunLoop::wakeUp):
514
515 2012-10-07  Arpita Bahuguna  <arpitabahuguna@gmail.com>
516
517         :first-line pseudo selector ignoring words created from :before
518         https://bugs.webkit.org/show_bug.cgi?id=80794
519
520         Reviewed by Daniel Bates.
521
522         The :first-line pseudo-element style is not applied for content
523         which is generated from the :before/:after pseudo-elements.
524
525         Test: fast/css/first-line-style-for-before-after-content.html
526
527         * rendering/RenderObject.cpp:
528         (WebCore::firstLineStyleForCachedUncachedType):
529         Added a new static helper function incorporating the common
530         functionality of both uncachedFirstLineStyle() and firstLineStyleSlowCase()
531         functions. It also modifies the functionality to handle the
532         scenario when :first-line style needs to be applied on content
533         generated from :before/:after.
534
535         While getting the :first-line style we should also consider the case
536         when the content is generated from a :before/:after pseudo-element in
537         which case the RenderInline's parent should be considered for
538         obtaining the first-line style.
539
540         (WebCore):
541         (WebCore::RenderObject::uncachedFirstLineStyle):
542         (WebCore::RenderObject::firstLineStyleSlowCase):
543         Moved the duplicate code between the two functions to the common
544         helper function firstLineStyleForCachedUncachedType().
545
546 2012-10-07  Peter Wang  <peter.wang@torchmobile.com.cn>
547
548         Web Inspector: The front-end should provide the position in original source file when set a breakpoint
549         https://bugs.webkit.org/show_bug.cgi?id=93473
550
551         Reviewed by Yury Semikhatsky.
552
553         Since frontend truncates the indent, the first statement in a line must match the breakpoint (line, 0).
554         With this patch JSC debugger can support both normal and "Pretty Print" mode.
555
556         No new test case. This patch can be verified with cases in "LayoutTests/inspector/debugger/".
557
558         * bindings/js/ScriptDebugServer.cpp:
559         (WebCore::ScriptDebugServer::ScriptDebugServer):
560         (WebCore::ScriptDebugServer::hasBreakpoint):
561         (WebCore::ScriptDebugServer::createCallFrameAndPauseIfNeeded):
562         (WebCore::ScriptDebugServer::pauseIfNeeded):
563         * bindings/js/ScriptDebugServer.h:
564         (ScriptDebugServer):
565
566 2012-10-07  Martin Robinson  <mrobinson@igalia.com>
567
568         [Soup] Clean up ResourceError creation
569         https://bugs.webkit.org/show_bug.cgi?id=98521
570
571         Reviewed by Carlos Garcia Campos.
572
573         Simplify the creation of ResourcErrors in ResourceHandleSoup. This is
574         part of a process to make the libsoup networking backend more hackable.
575
576         No new tests. This shouldn't change functionality.
577
578         * GNUmakefile.list.am: Added new file.
579         * PlatformEfl.cmake: Added new file.
580         * platform/network/soup/ResourceError.h:
581         (ResourceError): Added new factories.
582         * platform/network/soup/ResourceErrorSoup.cpp: Added.
583         (WebCore::failingURI): Added this helper.
584         (WebCore::ResourceError::httpError): New factory.
585         (WebCore::ResourceError::genericIOError): Ditto.
586         (WebCore::ResourceError::tlsError): Ditto.
587         (WebCore::ResourceError::timeoutError): Ditto.
588         * platform/network/soup/ResourceHandleSoup.cpp:
589         (WebCore::handleUnignoredTLSErrors): Created this helper which merges
590         some of the logic from sendRequestCallback.
591         (WebCore::sendRequestCallback): Use the new helper.
592         (WebCore::requestTimeoutCallback): Use the new factory.
593
594 2012-10-07  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
595
596         Rename first/second to key/value in HashMap iterators
597         https://bugs.webkit.org/show_bug.cgi?id=82784
598
599         Reviewed by Eric Seidel.
600
601         * Modules/geolocation/Geolocation.cpp:
602         (WebCore::Geolocation::Watchers::find):
603         (WebCore::Geolocation::Watchers::remove):
604         * Modules/indexeddb/IDBDatabase.cpp:
605         (WebCore::IDBDatabase::objectStoreNames):
606         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
607         (WebCore::IDBDatabaseBackendImpl::metadata):
608         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
609         (WebCore::IDBFactoryBackendImpl::deleteDatabase):
610         (WebCore::IDBFactoryBackendImpl::openBackingStore):
611         (WebCore::IDBFactoryBackendImpl::open):
612         * Modules/indexeddb/IDBObjectStore.cpp:
613         (WebCore::IDBObjectStore::indexNames):
614         (WebCore::IDBObjectStore::put):
615         (WebCore::IDBObjectStore::index):
616         (WebCore::IDBObjectStore::deleteIndex):
617         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
618         (WebCore::IDBObjectStoreBackendImpl::metadata):
619         (WebCore::makeIndexWriters):
620         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
621         * Modules/indexeddb/IDBTransaction.cpp:
622         (WebCore::IDBTransaction::objectStore):
623         (WebCore::IDBTransaction::objectStoreDeleted):
624         (WebCore::IDBTransaction::onAbort):
625         (WebCore::IDBTransaction::dispatchEvent):
626         * Modules/mediastream/MediaConstraintsImpl.cpp:
627         (WebCore::MediaConstraintsImpl::getMandatoryConstraints):
628         (WebCore::MediaConstraintsImpl::getMandatoryConstraintValue):
629         * Modules/webdatabase/AbstractDatabase.cpp:
630         (WebCore::AbstractDatabase::performOpenAndVerify):
631         * Modules/webdatabase/DatabaseTracker.cpp:
632         (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
633         * Modules/webdatabase/OriginUsageRecord.cpp:
634         (WebCore::OriginUsageRecord::diskUsage):
635         * Modules/webdatabase/SQLTransactionCoordinator.cpp:
636         (WebCore::SQLTransactionCoordinator::acquireLock):
637         (WebCore::SQLTransactionCoordinator::releaseLock):
638         (WebCore::SQLTransactionCoordinator::shutdown):
639         * Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
640         (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
641         * Modules/webdatabase/chromium/QuotaTracker.cpp:
642         (WebCore::QuotaTracker::getDatabaseSizeAndSpaceAvailableToOrigin):
643         (WebCore::QuotaTracker::updateDatabaseSize):
644         * Modules/websockets/WebSocketDeflateFramer.cpp:
645         (WebCore::WebSocketExtensionDeflateFrame::processResponse):
646         * Modules/websockets/WebSocketExtensionDispatcher.cpp:
647         (WebCore::WebSocketExtensionDispatcher::appendAcceptedExtension):
648         * accessibility/AXObjectCache.cpp:
649         (WebCore::AXObjectCache::~AXObjectCache):
650         * bindings/gobject/DOMObjectCache.cpp:
651         (WebKit::DOMObjectCache::clearByFrame):
652         * bindings/js/DOMObjectHashTableMap.h:
653         (WebCore::DOMObjectHashTableMap::~DOMObjectHashTableMap):
654         (WebCore::DOMObjectHashTableMap::get):
655         * bindings/js/JSDOMBinding.cpp:
656         (WebCore::cacheDOMStructure):
657         * bindings/js/JSDOMGlobalObject.cpp:
658         (WebCore::JSDOMGlobalObject::visitChildren):
659         * bindings/js/JSDOMGlobalObject.h:
660         (WebCore::getDOMConstructor):
661         * bindings/js/PageScriptDebugServer.cpp:
662         (WebCore::PageScriptDebugServer::addListener):
663         (WebCore::PageScriptDebugServer::removeListener):
664         * bindings/js/ScriptCachedFrameData.cpp:
665         (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
666         (WebCore::ScriptCachedFrameData::restore):
667         * bindings/js/ScriptController.cpp:
668         (WebCore::ScriptController::~ScriptController):
669         (WebCore::ScriptController::clearWindowShell):
670         (WebCore::ScriptController::attachDebugger):
671         (WebCore::ScriptController::updateDocument):
672         (WebCore::ScriptController::createRootObject):
673         (WebCore::ScriptController::collectIsolatedContexts):
674         (WebCore::ScriptController::cleanupScriptObjectsForPlugin):
675         (WebCore::ScriptController::clearScriptObjects):
676         * bindings/js/ScriptController.h:
677         (WebCore::ScriptController::windowShell):
678         (WebCore::ScriptController::existingWindowShell):
679         * bindings/js/ScriptDebugServer.cpp:
680         (WebCore::ScriptDebugServer::setBreakpoint):
681         (WebCore::ScriptDebugServer::removeBreakpoint):
682         (WebCore::ScriptDebugServer::hasBreakpoint):
683         * bindings/js/SerializedScriptValue.cpp:
684         (WebCore::CloneSerializer::checkForDuplicate):
685         (WebCore::CloneSerializer::dumpIfTerminal):
686         (WebCore::CloneSerializer::write):
687         * bindings/scripts/CodeGeneratorV8.pm:
688         (GenerateImplementation):
689         * bindings/scripts/test/V8/V8Float64Array.cpp:
690         (WebCore::V8Float64Array::GetRawTemplate):
691         (WebCore::V8Float64Array::GetTemplate):
692         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
693         (WebCore::V8TestActiveDOMObject::GetRawTemplate):
694         (WebCore::V8TestActiveDOMObject::GetTemplate):
695         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
696         (WebCore::V8TestCustomNamedGetter::GetRawTemplate):
697         (WebCore::V8TestCustomNamedGetter::GetTemplate):
698         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
699         (WebCore::V8TestEventConstructor::GetRawTemplate):
700         (WebCore::V8TestEventConstructor::GetTemplate):
701         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
702         (WebCore::V8TestEventTarget::GetRawTemplate):
703         (WebCore::V8TestEventTarget::GetTemplate):
704         * bindings/scripts/test/V8/V8TestException.cpp:
705         (WebCore::V8TestException::GetRawTemplate):
706         (WebCore::V8TestException::GetTemplate):
707         * bindings/scripts/test/V8/V8TestInterface.cpp:
708         (WebCore::V8TestInterface::GetRawTemplate):
709         (WebCore::V8TestInterface::GetTemplate):
710         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
711         (WebCore::V8TestMediaQueryListListener::GetRawTemplate):
712         (WebCore::V8TestMediaQueryListListener::GetTemplate):
713         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
714         (WebCore::V8TestNamedConstructor::GetRawTemplate):
715         (WebCore::V8TestNamedConstructor::GetTemplate):
716         * bindings/scripts/test/V8/V8TestNode.cpp:
717         (WebCore::V8TestNode::GetRawTemplate):
718         (WebCore::V8TestNode::GetTemplate):
719         * bindings/scripts/test/V8/V8TestObj.cpp:
720         (WebCore::V8TestObj::GetRawTemplate):
721         (WebCore::V8TestObj::GetTemplate):
722         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
723         (WebCore::V8TestSerializedScriptValueInterface::GetRawTemplate):
724         (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
725         * bindings/v8/DOMWrapperWorld.cpp:
726         (WebCore::DOMWrapperWorld::deallocate):
727         (WebCore::DOMWrapperWorld::ensureIsolatedWorld):
728         * bindings/v8/NPV8Object.cpp:
729         (WebCore::freeV8NPObject):
730         (WebCore::npCreateV8ScriptObject):
731         * bindings/v8/ScriptController.cpp:
732         (WebCore::ScriptController::clearScriptObjects):
733         (WebCore::ScriptController::resetIsolatedWorlds):
734         (WebCore::ScriptController::ensureIsolatedWorldContext):
735         (WebCore::ScriptController::existingWindowShellInternal):
736         (WebCore::ScriptController::evaluateInIsolatedWorld):
737         (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
738         (WebCore::ScriptController::cleanupScriptObjectsForPlugin):
739         (WebCore::ScriptController::collectIsolatedContexts):
740         * bindings/v8/SerializedScriptValue.cpp:
741         * bindings/v8/V8DOMMap.h:
742         (WebCore::WeakReferenceMap::removeIfPresent):
743         (WebCore::WeakReferenceMap::visit):
744         * bindings/v8/V8PerContextData.cpp:
745         (WebCore::V8PerContextData::dispose):
746         * bindings/v8/npruntime.cpp:
747         * bridge/IdentifierRep.cpp:
748         (WebCore::IdentifierRep::get):
749         * bridge/NP_jsobject.cpp:
750         (ObjectMap::add):
751         (ObjectMap::remove):
752         * bridge/runtime_root.cpp:
753         (JSC::Bindings::RootObject::invalidate):
754         * css/CSSCanvasValue.cpp:
755         (WebCore::CSSCanvasValue::canvasChanged):
756         (WebCore::CSSCanvasValue::canvasResized):
757         * css/CSSComputedStyleDeclaration.cpp:
758         (WebCore::counterToCSSValue):
759         * css/CSSCrossfadeValue.cpp:
760         (WebCore::CSSCrossfadeValue::crossfadeChanged):
761         * css/CSSFontFaceSource.cpp:
762         (WebCore::CSSFontFaceSource::getFontData):
763         * css/CSSFontSelector.cpp:
764         (WebCore::CSSFontSelector::addFontFaceRule):
765         (WebCore::CSSFontSelector::getFontData):
766         * css/CSSImageGeneratorValue.cpp:
767         (WebCore::CSSImageGeneratorValue::addClient):
768         (WebCore::CSSImageGeneratorValue::removeClient):
769         (WebCore::CSSImageGeneratorValue::getImage):
770         * css/CSSSegmentedFontFace.cpp:
771         (WebCore::CSSSegmentedFontFace::getFontData):
772         * css/CSSSelector.cpp:
773         (WebCore::CSSSelector::parsePseudoType):
774         * css/CSSValuePool.cpp:
775         (WebCore::CSSValuePool::createColorValue):
776         (WebCore::CSSValuePool::createFontFamilyValue):
777         (WebCore::CSSValuePool::createFontFaceValue):
778         * css/PropertySetCSSStyleDeclaration.cpp:
779         (WebCore::PropertySetCSSStyleDeclaration::cloneAndCacheForCSSOM):
780         * css/RuleSet.cpp:
781         (WebCore::reportAtomRuleMap):
782         (WebCore::RuleSet::addToRuleSet):
783         (WebCore::shrinkMapVectorsToFit):
784         * css/StyleBuilder.cpp:
785         (WebCore::ApplyPropertyCounter::applyInheritValue):
786         (WebCore::ApplyPropertyCounter::applyValue):
787         * css/StyleResolver.cpp:
788         (WebCore::StyleResolver::collectFeatures):
789         (WebCore::StyleResolver::ruleSetForScope):
790         (WebCore::StyleResolver::appendAuthorStylesheets):
791         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
792         (WebCore::StyleResolver::collectMatchingRulesForList):
793         * css/StyleSheetContents.cpp:
794         (WebCore::StyleSheetContents::parserAddNamespace):
795         (WebCore::StyleSheetContents::determineNamespace):
796         * dom/CheckedRadioButtons.cpp:
797         (WebCore::CheckedRadioButtons::addButton):
798         (WebCore::CheckedRadioButtons::removeButton):
799         * dom/ChildListMutationScope.cpp:
800         (WebCore::ChildListMutationAccumulator::getOrCreate):
801         * dom/Document.cpp:
802         (WebCore::Document::windowNamedItems):
803         (WebCore::Document::documentNamedItems):
804         (WebCore::Document::getCSSCanvasElement):
805         (WebCore::Document::cachedImmutableAttributeData):
806         (WebCore::Document::getCachedLocalizer):
807         * dom/DocumentMarkerController.cpp:
808         (WebCore::DocumentMarkerController::markerContainingPoint):
809         (WebCore::DocumentMarkerController::renderedRectsForMarkers):
810         (WebCore::DocumentMarkerController::removeMarkers):
811         (WebCore::DocumentMarkerController::repaintMarkers):
812         (WebCore::DocumentMarkerController::invalidateRenderedRectsForMarkersInRect):
813         (WebCore::DocumentMarkerController::showMarkers):
814         * dom/DocumentOrderedMap.cpp:
815         (WebCore::DocumentOrderedMap::remove):
816         * dom/DocumentStyleSheetCollection.cpp:
817         (WebCore::DocumentStyleSheetCollection::pageGroupUserSheets):
818         * dom/ElementAttributeData.cpp:
819         (WebCore::ensureAttrListForElement):
820         * dom/EventDispatcher.cpp:
821         (WebCore::EventRelatedTargetAdjuster::findRelatedTarget):
822         * dom/IdTargetObserverRegistry.cpp:
823         (WebCore::IdTargetObserverRegistry::addObserver):
824         (WebCore::IdTargetObserverRegistry::removeObserver):
825         * dom/MutationObserverInterestGroup.cpp:
826         (WebCore::MutationObserverInterestGroup::isOldValueRequested):
827         (WebCore::MutationObserverInterestGroup::enqueueMutationRecord):
828         * dom/Node.cpp:
829         (WebCore::Node::dumpStatistics):
830         (WebCore::Node::clearRareData):
831         (WebCore::NodeListsNodeData::invalidateCaches):
832         (WebCore::collectMatchingObserversForMutation):
833         * dom/NodeRareData.h:
834         (WebCore::NodeListsNodeData::addCacheWithAtomicName):
835         (WebCore::NodeListsNodeData::addCacheWithName):
836         (WebCore::NodeListsNodeData::addCacheWithQualifiedName):
837         (WebCore::NodeListsNodeData::adoptTreeScope):
838         * dom/ProcessingInstruction.cpp:
839         (WebCore::ProcessingInstruction::checkStyleSheet):
840         * dom/ScriptExecutionContext.cpp:
841         (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
842         (WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
843         (WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
844         (WebCore::ScriptExecutionContext::stopActiveDOMObjects):
845         (WebCore::ScriptExecutionContext::adjustMinimumTimerInterval):
846         * dom/SelectorQuery.cpp:
847         (WebCore::SelectorQueryCache::add):
848         * dom/SpaceSplitString.cpp:
849         (WebCore::SpaceSplitStringData::create):
850         * dom/StyledElement.cpp:
851         (WebCore::StyledElement::updateAttributeStyle):
852         * editing/mac/AlternativeTextUIController.mm:
853         (WebCore::AlternativeTextUIController::AlernativeTextContextController::alternativesForContext):
854         * html/FormController.cpp:
855         (WebCore::SavedFormState::serializeTo):
856         (WebCore::SavedFormState::appendControlState):
857         (WebCore::SavedFormState::takeControlState):
858         (WebCore::SavedFormState::getReferencedFilePaths):
859         (WebCore::FormKeyGenerator::formKey):
860         (WebCore::FormController::createSavedFormStateMap):
861         (WebCore::FormController::formElementsState):
862         (WebCore::FormController::takeStateForFormElement):
863         (WebCore::FormController::getReferencedFilePaths):
864         * html/HTMLCollection.cpp:
865         (WebCore::HTMLCollectionCacheBase::append):
866         * html/canvas/WebGLFramebuffer.cpp:
867         (WebCore::WebGLFramebuffer::getAttachment):
868         (WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
869         (WebCore::WebGLFramebuffer::checkStatus):
870         (WebCore::WebGLFramebuffer::deleteObjectImpl):
871         (WebCore::WebGLFramebuffer::initializeAttachments):
872         * inspector/CodeGeneratorInspector.py:
873         * inspector/DOMPatchSupport.cpp:
874         (WebCore::DOMPatchSupport::diff):
875         (WebCore::DOMPatchSupport::innerPatchChildren):
876         (WebCore::DOMPatchSupport::removeChildAndMoveToNew):
877         * inspector/InjectedScriptManager.cpp:
878         (WebCore::InjectedScriptManager::injectedScriptForId):
879         (WebCore::InjectedScriptManager::injectedScriptIdFor):
880         (WebCore::InjectedScriptManager::discardInjectedScriptsFor):
881         (WebCore::InjectedScriptManager::releaseObjectGroup):
882         (WebCore::InjectedScriptManager::injectedScriptFor):
883         * inspector/InspectorCSSAgent.cpp:
884         (WebCore::SelectorProfile::commitSelector):
885         (WebCore::SelectorProfile::commitSelectorTime):
886         (WebCore::SelectorProfile::toInspectorObject):
887         (WebCore::UpdateRegionLayoutTask::onTimer):
888         (WebCore::InspectorCSSAgent::forcePseudoState):
889         (WebCore::InspectorCSSAgent::asInspectorStyleSheet):
890         (WebCore::InspectorCSSAgent::assertStyleSheetForId):
891         (WebCore::InspectorCSSAgent::didRemoveDOMNode):
892         (WebCore::InspectorCSSAgent::didModifyDOMAttr):
893         (WebCore::InspectorCSSAgent::resetPseudoStates):
894         * inspector/InspectorConsoleAgent.cpp:
895         (WebCore::InspectorConsoleAgent::stopTiming):
896         (WebCore::InspectorConsoleAgent::count):
897         * inspector/InspectorDOMAgent.cpp:
898         (WebCore::InspectorDOMAgent::nodeForId):
899         (WebCore::InspectorDOMAgent::performSearch):
900         (WebCore::InspectorDOMAgent::getSearchResults):
901         * inspector/InspectorDOMDebuggerAgent.cpp:
902         (WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest):
903         * inspector/InspectorDOMStorageAgent.cpp:
904         (WebCore::InspectorDOMStorageAgent::clearFrontend):
905         (WebCore::InspectorDOMStorageAgent::enable):
906         (WebCore::InspectorDOMStorageAgent::storageId):
907         (WebCore::InspectorDOMStorageAgent::getDOMStorageResourceForId):
908         (WebCore::InspectorDOMStorageAgent::didUseDOMStorage):
909         (WebCore::InspectorDOMStorageAgent::memoryBytesUsedByStorageCache):
910         * inspector/InspectorDatabaseAgent.cpp:
911         (WebCore::InspectorDatabaseAgent::enable):
912         (WebCore::InspectorDatabaseAgent::databaseId):
913         (WebCore::InspectorDatabaseAgent::findByFileName):
914         (WebCore::InspectorDatabaseAgent::databaseForId):
915         * inspector/InspectorDebuggerAgent.cpp:
916         (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
917         (WebCore::InspectorDebuggerAgent::removeBreakpoint):
918         (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
919         (WebCore::InspectorDebuggerAgent::searchInContent):
920         (WebCore::InspectorDebuggerAgent::getScriptSource):
921         (WebCore::InspectorDebuggerAgent::didParseSource):
922         * inspector/InspectorIndexedDBAgent.cpp:
923         (WebCore):
924         * inspector/InspectorMemoryAgent.cpp:
925         (WebCore):
926         * inspector/InspectorPageAgent.cpp:
927         (WebCore::cachedResourcesForFrame):
928         (WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
929         (WebCore::InspectorPageAgent::frameDetached):
930         * inspector/InspectorProfilerAgent.cpp:
931         (WebCore::InspectorProfilerAgent::getProfileHeaders):
932         (WebCore):
933         (WebCore::InspectorProfilerAgent::getProfile):
934         * inspector/InspectorResourceAgent.cpp:
935         (WebCore::buildObjectForHeaders):
936         (WebCore::InspectorResourceAgent::willSendRequest):
937         (WebCore::InspectorResourceAgent::documentThreadableLoaderStartedLoadingForClient):
938         (WebCore::InspectorResourceAgent::willLoadXHR):
939         (WebCore::InspectorResourceAgent::replayXHR):
940         * inspector/InspectorState.cpp:
941         (WebCore::InspectorState::getBoolean):
942         (WebCore::InspectorState::getString):
943         (WebCore::InspectorState::getLong):
944         (WebCore::InspectorState::getDouble):
945         (WebCore::InspectorState::getObject):
946         * inspector/InspectorStyleSheet.cpp:
947         (WebCore::InspectorStyle::styleWithProperties):
948         (WebCore::InspectorStyleSheet::inspectorStyleForId):
949         * inspector/InspectorValues.cpp:
950         (WebCore::InspectorObjectBase::get):
951         (WebCore::InspectorObjectBase::writeJSON):
952         * inspector/InspectorWorkerAgent.cpp:
953         (WebCore::InspectorWorkerAgent::workerContextTerminated):
954         (WebCore::InspectorWorkerAgent::createWorkerFrontendChannelsForExistingWorkers):
955         (WebCore::InspectorWorkerAgent::destroyWorkerFrontendChannels):
956         * inspector/MemoryInstrumentationImpl.cpp:
957         (WebCore::MemoryInstrumentationClientImpl::countObjectSize):
958         * inspector/MemoryInstrumentationImpl.h:
959         (WebCore::MemoryInstrumentationClientImpl::totalSize):
960         (WebCore::MemoryInstrumentationClientImpl::reportedSizeForAllTypes):
961         * inspector/NetworkResourcesData.cpp:
962         (WebCore::NetworkResourcesData::setXHRReplayData):
963         (WebCore::NetworkResourcesData::removeCachedResource):
964         (WebCore::NetworkResourcesData::clear):
965         * loader/CrossOriginAccessControl.cpp:
966         (WebCore::isSimpleCrossOriginAccessRequest):
967         (WebCore::createAccessControlPreflightRequest):
968         * loader/CrossOriginPreflightResultCache.cpp:
969         (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders):
970         (WebCore::CrossOriginPreflightResultCache::canSkipPreflight):
971         * loader/DocumentLoader.cpp:
972         (WebCore::DocumentLoader::getSubresources):
973         (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):
974         * loader/MainResourceLoader.cpp:
975         (WebCore::MainResourceLoader::didReceiveResponse):
976         * loader/ResourceLoadScheduler.cpp:
977         (WebCore::ResourceLoadScheduler::servePendingRequests):
978         * loader/appcache/ApplicationCache.cpp:
979         (WebCore::ApplicationCache::removeResource):
980         (WebCore::ApplicationCache::clearStorageID):
981         (WebCore::ApplicationCache::dump):
982         * loader/appcache/ApplicationCacheGroup.cpp:
983         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
984         (WebCore::ApplicationCacheGroup::startLoadingEntry):
985         (WebCore::ApplicationCacheGroup::addEntry):
986         * loader/appcache/ApplicationCacheHost.cpp:
987         (WebCore::ApplicationCacheHost::fillResourceList):
988         * loader/appcache/ApplicationCacheResource.cpp:
989         (WebCore::ApplicationCacheResource::estimatedSizeInStorage):
990         * loader/appcache/ApplicationCacheStorage.cpp:
991         (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
992         (WebCore::ApplicationCacheStorage::cacheGroupForURL):
993         (WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
994         (WebCore::ApplicationCacheStorage::store):
995         (WebCore::ApplicationCacheStorage::empty):
996         (WebCore::ApplicationCacheStorage::storeCopyOfCache):
997         * loader/archive/ArchiveFactory.cpp:
998         (WebCore::ArchiveFactory::registerKnownArchiveMIMETypes):
999         * loader/cache/CachedRawResource.cpp:
1000         (WebCore::CachedRawResource::canReuse):
1001         * loader/cache/CachedResource.cpp:
1002         (WebCore::CachedResource::switchClientsToRevalidatedResource):
1003         (WebCore::CachedResource::updateResponseAfterRevalidation):
1004         * loader/cache/CachedResourceClientWalker.h:
1005         (WebCore::CachedResourceClientWalker::CachedResourceClientWalker):
1006         * loader/cache/CachedResourceLoader.cpp:
1007         (WebCore::CachedResourceLoader::~CachedResourceLoader):
1008         (WebCore::CachedResourceLoader::requestResource):
1009         (WebCore::CachedResourceLoader::reloadImagesIfNotDeferred):
1010         (WebCore::CachedResourceLoader::removeCachedResource):
1011         (WebCore::CachedResourceLoader::garbageCollectDocumentResources):
1012         * loader/cache/MemoryCache.cpp:
1013         (WebCore::MemoryCache::removeResourcesWithOrigin):
1014         (WebCore::MemoryCache::getOriginsWithCache):
1015         (WebCore::MemoryCache::getStatistics):
1016         (WebCore::MemoryCache::setDisabled):
1017         * loader/icon/IconDatabase.cpp:
1018         (WebCore::IconDatabase::removeAllIcons):
1019         (WebCore::IconDatabase::iconRecordCountWithData):
1020         (WebCore::IconDatabase::performPendingRetainAndReleaseOperations):
1021         * page/DOMWindow.cpp:
1022         (WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents):
1023         (WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
1024         * page/EventHandler.cpp:
1025         (WebCore::EventHandler::handleTouchEvent):
1026         * page/Frame.cpp:
1027         (WebCore::Frame::injectUserScripts):
1028         * page/PageGroup.cpp:
1029         (WebCore::PageGroup::pageGroup):
1030         (WebCore::PageGroup::closeLocalStorage):
1031         (WebCore::PageGroup::clearLocalStorageForAllOrigins):
1032         (WebCore::PageGroup::clearLocalStorageForOrigin):
1033         (WebCore::PageGroup::syncLocalStorage):
1034         (WebCore::PageGroup::addUserScriptToWorld):
1035         (WebCore::PageGroup::addUserStyleSheetToWorld):
1036         (WebCore::PageGroup::removeUserScriptFromWorld):
1037         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
1038         * page/PageSerializer.cpp:
1039         (WebCore::PageSerializer::urlForBlankFrame):
1040         * page/SecurityPolicy.cpp:
1041         (WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):
1042         (WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry):
1043         * page/Settings.cpp:
1044         (WebCore::setGenericFontFamilyMap):
1045         (WebCore::getGenericFontFamilyForScript):
1046         * page/SpeechInput.cpp:
1047         (WebCore::SpeechInput::registerListener):
1048         * page/TouchDisambiguation.cpp:
1049         (WebCore::findGoodTouchTargets):
1050         * page/WindowFeatures.cpp:
1051         (WebCore::WindowFeatures::boolFeature):
1052         (WebCore::WindowFeatures::floatFeature):
1053         * page/animation/AnimationController.cpp:
1054         (WebCore::AnimationControllerPrivate::updateAnimations):
1055         (WebCore::AnimationControllerPrivate::suspendAnimationsForDocument):
1056         (WebCore::AnimationControllerPrivate::resumeAnimationsForDocument):
1057         (WebCore::AnimationControllerPrivate::numberOfActiveAnimations):
1058         * page/animation/CompositeAnimation.cpp:
1059         (WebCore::CompositeAnimation::clearRenderer):
1060         (WebCore::CompositeAnimation::updateTransitions):
1061         (WebCore::CompositeAnimation::updateKeyframeAnimations):
1062         (WebCore::CompositeAnimation::animate):
1063         (WebCore::CompositeAnimation::getAnimatedStyle):
1064         (WebCore::CompositeAnimation::setAnimating):
1065         (WebCore::CompositeAnimation::timeToNextService):
1066         (WebCore::CompositeAnimation::getAnimationForProperty):
1067         (WebCore::CompositeAnimation::suspendAnimations):
1068         (WebCore::CompositeAnimation::resumeAnimations):
1069         (WebCore::CompositeAnimation::overrideImplicitAnimations):
1070         (WebCore::CompositeAnimation::resumeOverriddenImplicitAnimations):
1071         (WebCore::CompositeAnimation::isAnimatingProperty):
1072         (WebCore::CompositeAnimation::numberOfActiveAnimations):
1073         * platform/Language.cpp:
1074         (WebCore::languageDidChange):
1075         * platform/MIMETypeRegistry.cpp:
1076         (WebCore::MIMETypeRegistry::getNormalizedMIMEType):
1077         * platform/audio/HRTFElevation.cpp:
1078         (WebCore::getConcatenatedImpulseResponsesForSubject):
1079         * platform/blackberry/CookieManager.cpp:
1080         (WebCore::CookieManager::generateHtmlFragmentForCookies):
1081         (WebCore::CookieManager::removeAllCookies):
1082         * platform/blackberry/CookieMap.cpp:
1083         (WebCore::CookieMap::removeOldestCookie):
1084         (WebCore::CookieMap::getAllChildCookies):
1085         * platform/cf/BinaryPropertyList.cpp:
1086         (WebCore::BinaryPropertyListPlan::writeIntegerArray):
1087         * platform/chromium/support/WebHTTPLoadInfo.cpp:
1088         (WebKit::addHeader):
1089         * platform/chromium/support/WebURLRequest.cpp:
1090         (WebKit::WebURLRequest::visitHTTPHeaderFields):
1091         * platform/chromium/support/WebURLResponse.cpp:
1092         (WebKit::WebURLResponse::addHTTPHeaderField):
1093         (WebKit::WebURLResponse::visitHTTPHeaderFields):
1094         * platform/graphics/DisplayRefreshMonitor.cpp:
1095         (WebCore::DisplayRefreshMonitorManager::ensureMonitorForClient):
1096         (WebCore::DisplayRefreshMonitorManager::unregisterClient):
1097         * platform/graphics/FontCache.cpp:
1098         (WebCore::FontCache::getCachedFontPlatformData):
1099         (WebCore::FontCache::getVerticalData):
1100         (WebCore::FontCache::getCachedFontData):
1101         (WebCore::FontCache::releaseFontData):
1102         (WebCore::FontCache::purgeInactiveFontData):
1103         * platform/graphics/GlyphPageTreeNode.cpp:
1104         (WebCore::GlyphPageTreeNode::treeGlyphPageCount):
1105         (WebCore::GlyphPageTreeNode::pageCount):
1106         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
1107         (WebCore::GlyphPageTreeNode::pruneTreeFontData):
1108         (WebCore::GlyphPageTreeNode::pruneCustomFontData):
1109         (WebCore::GlyphPageTreeNode::pruneFontData):
1110         (WebCore::GlyphPageTreeNode::showSubtree):
1111         (showGlyphPageTrees):
1112         * platform/graphics/TiledBackingStore.cpp:
1113         (WebCore::TiledBackingStore::updateTileBuffers):
1114         (WebCore::TiledBackingStore::resizeEdgeTiles):
1115         (WebCore::TiledBackingStore::setKeepRect):
1116         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
1117         (WebCore::AVFWrapper::avfWrapperForCallbackContext):
1118         * platform/graphics/blackberry/LayerTiler.cpp:
1119         (WebCore::LayerTiler::layerVisibilityChanged):
1120         (WebCore::LayerTiler::uploadTexturesIfNeeded):
1121         (WebCore::LayerTiler::addTileJob):
1122         (WebCore::LayerTiler::deleteTextures):
1123         (WebCore::LayerTiler::pruneTextures):
1124         (WebCore::LayerTiler::bindContentsTexture):
1125         * platform/graphics/blackberry/TextureCacheCompositingThread.cpp:
1126         (WebCore::TextureCacheCompositingThread::textureForTiledContents):
1127         (WebCore::TextureCacheCompositingThread::textureForColor):
1128         * platform/graphics/ca/GraphicsLayerCA.cpp:
1129         (WebCore::GraphicsLayerCA::moveOrCopyAnimations):
1130         (WebCore::GraphicsLayerCA::pauseAnimation):
1131         (WebCore::GraphicsLayerCA::layerDidDisplay):
1132         (WebCore::GraphicsLayerCA::updateGeometry):
1133         (WebCore::GraphicsLayerCA::updateTransform):
1134         (WebCore::GraphicsLayerCA::updateChildrenTransform):
1135         (WebCore::GraphicsLayerCA::updateMasksToBounds):
1136         (WebCore::GraphicsLayerCA::updateContentsVisibility):
1137         (WebCore::GraphicsLayerCA::updateContentsOpaque):
1138         (WebCore::GraphicsLayerCA::updateBackfaceVisibility):
1139         (WebCore::GraphicsLayerCA::updateFilters):
1140         (WebCore::GraphicsLayerCA::ensureStructuralLayer):
1141         (WebCore::GraphicsLayerCA::updateLayerDrawsContent):
1142         (WebCore::GraphicsLayerCA::updateContentsImage):
1143         (WebCore::GraphicsLayerCA::updateContentsRect):
1144         (WebCore::GraphicsLayerCA::updateMaskLayer):
1145         (WebCore::GraphicsLayerCA::updateLayerAnimations):
1146         (WebCore::GraphicsLayerCA::setAnimationOnLayer):
1147         (WebCore::GraphicsLayerCA::removeCAAnimationFromLayer):
1148         (WebCore::GraphicsLayerCA::pauseCAAnimationOnLayer):
1149         (WebCore::GraphicsLayerCA::suspendAnimations):
1150         (WebCore::GraphicsLayerCA::resumeAnimations):
1151         (WebCore::GraphicsLayerCA::findOrMakeClone):
1152         (WebCore::GraphicsLayerCA::setOpacityInternal):
1153         (WebCore::GraphicsLayerCA::updateOpacityOnLayer):
1154         * platform/graphics/ca/mac/TileCache.mm:
1155         (WebCore::TileCache::~TileCache):
1156         (WebCore::TileCache::setNeedsDisplay):
1157         (WebCore::TileCache::setScale):
1158         (WebCore::TileCache::setAcceleratesDrawing):
1159         (WebCore::TileCache::setTileDebugBorderWidth):
1160         (WebCore::TileCache::setTileDebugBorderColor):
1161         (WebCore::TileCache::revalidateTiles):
1162         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
1163         (PlatformCALayer::animationStarted):
1164         (resubmitAllAnimations):
1165         (PlatformCALayer::animationForKey):
1166         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
1167         (WebCore::LookupAltName):
1168         (WebCore::fontContainsCharacter):
1169         * platform/graphics/chromium/FontUtilsChromiumWin.cpp:
1170         (WebCore::getDerivedFontData):
1171         * platform/graphics/filters/CustomFilterGlobalContext.cpp:
1172         (WebCore::CustomFilterGlobalContext::~CustomFilterGlobalContext):
1173         (WebCore::CustomFilterGlobalContext::getValidatedProgram):
1174         (WebCore::CustomFilterGlobalContext::removeValidatedProgram):
1175         * platform/graphics/filters/CustomFilterProgram.cpp:
1176         (WebCore::CustomFilterProgram::notifyClients):
1177         * platform/graphics/harfbuzz/HarfBuzzSkia.cpp:
1178         (WebCore::getCachedHarfbuzzFace):
1179         (WebCore::releaseCachedHarfbuzzFace):
1180         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
1181         (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
1182         (WebCore::HarfBuzzNGFace::~HarfBuzzNGFace):
1183         * platform/graphics/mac/SimpleFontDataCoreText.cpp:
1184         (WebCore::SimpleFontData::getCFStringAttributes):
1185         * platform/graphics/mac/SimpleFontDataMac.mm:
1186         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
1187         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
1188         (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
1189         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
1190         (WebCore::GraphicsContext3D::compileShader):
1191         (WebCore::GraphicsContext3D::mappedSymbolName):
1192         (WebCore::GraphicsContext3D::getShaderiv):
1193         (WebCore::GraphicsContext3D::getShaderInfoLog):
1194         (WebCore::GraphicsContext3D::getShaderSource):
1195         * platform/graphics/openvg/EGLDisplayOpenVG.cpp:
1196         (WebCore::EGLDisplayOpenVG::~EGLDisplayOpenVG):
1197         (WebCore::EGLDisplayOpenVG::destroySurface):
1198         (WebCore::EGLDisplayOpenVG::contextForSurface):
1199         * platform/graphics/texmap/TextureMapperGL.cpp:
1200         (WebCore::TextureMapperGLData::SharedGLData::currentSharedGLData):
1201         (WebCore::TextureMapperGLData::SharedGLData::~SharedGLData):
1202         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
1203         (WebCore::TextureMapperShaderManager::getShaderProgram):
1204         (WebCore::TextureMapperShaderManager::getShaderForFilter):
1205         * platform/graphics/wince/FontPlatformData.cpp:
1206         (WebCore::FixedSizeFontData::create):
1207         * platform/gtk/DataObjectGtk.cpp:
1208         (WebCore::DataObjectGtk::forClipboard):
1209         * platform/gtk/GtkDragAndDropHelper.cpp:
1210         (WebCore::GtkDragAndDropHelper::handleGetDragData):
1211         (WebCore::GtkDragAndDropHelper::handleDragLeave):
1212         (WebCore::GtkDragAndDropHelper::handleDragMotion):
1213         (WebCore::GtkDragAndDropHelper::handleDragDataReceived):
1214         (WebCore::GtkDragAndDropHelper::handleDragDrop):
1215         * platform/gtk/RedirectedXCompositeWindow.cpp:
1216         (WebCore::filterXDamageEvent):
1217         * platform/gtk/RenderThemeGtk3.cpp:
1218         (WebCore::gtkStyleChangedCallback):
1219         (WebCore::getStyleContext):
1220         * platform/mac/ScrollbarThemeMac.mm:
1221         (+[WebScrollbarPrefsObserver appearancePrefsChanged:]):
1222         * platform/network/CredentialStorage.cpp:
1223         (WebCore::CredentialStorage::set):
1224         (WebCore::CredentialStorage::get):
1225         * platform/network/HTTPHeaderMap.cpp:
1226         (WebCore::HTTPHeaderMap::copyData):
1227         (WebCore::HTTPHeaderMap::get):
1228         * platform/network/MIMEHeader.cpp:
1229         (WebCore::MIMEHeader::parseHeader):
1230         * platform/network/ResourceHandle.cpp:
1231         (WebCore::ResourceHandle::create):
1232         * platform/network/ResourceRequestBase.cpp:
1233         (WebCore::ResourceRequestBase::addHTTPHeaderField):
1234         (WebCore::ResourceRequestBase::addHTTPHeaderFields):
1235         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
1236         (WebCore::ResourceRequest::targetTypeFromMimeType):
1237         (WebCore::ResourceRequest::initializePlatformRequest):
1238         * platform/network/cf/ResourceHandleCFNet.cpp:
1239         (WebCore::makeFinalRequest):
1240         * platform/network/cf/ResourceRequestCFNet.cpp:
1241         (WebCore::setHeaderFields):
1242         * platform/network/curl/ResourceHandleManager.cpp:
1243         (WebCore::ResourceHandleManager::initializeHandle):
1244         * platform/network/mac/ResourceRequestMac.mm:
1245         (WebCore::ResourceRequest::doUpdatePlatformRequest):
1246         * platform/network/qt/ResourceRequestQt.cpp:
1247         (WebCore::ResourceRequest::toNetworkRequest):
1248         * platform/network/soup/ResourceHandleSoup.cpp:
1249         (WebCore::sendRequestCallback):
1250         (WebCore::ResourceHandle::setClientCertificate):
1251         * platform/network/soup/ResourceRequestSoup.cpp:
1252         (WebCore::ResourceRequest::updateSoupMessage):
1253         (WebCore::ResourceRequest::toSoupMessage):
1254         * platform/network/soup/ResourceResponseSoup.cpp:
1255         (WebCore::ResourceResponse::toSoupMessage):
1256         * platform/network/win/ResourceHandleWin.cpp:
1257         (WebCore::ResourceHandle::start):
1258         * platform/qt/RunLoopQt.cpp:
1259         (WebCore::RunLoop::TimerBase::timerFired):
1260         * platform/text/LocaleToScriptMappingDefault.cpp:
1261         (WebCore::scriptNameToCode):
1262         (WebCore::localeToScriptCodeForFontSelection):
1263         * platform/text/TextEncodingRegistry.cpp:
1264         (WebCore::pruneBlacklistedCodecs):
1265         (WebCore::dumpTextEncodingNameMap):
1266         * platform/text/transcoder/FontTranscoder.cpp:
1267         (WebCore::FontTranscoder::converterType):
1268         * platform/text/win/TextCodecWin.cpp:
1269         (WebCore::LanguageManager::LanguageManager):
1270         (WebCore::getCodePage):
1271         (WebCore::TextCodecWin::registerExtendedEncodingNames):
1272         (WebCore::TextCodecWin::registerExtendedCodecs):
1273         (WebCore::TextCodecWin::enumerateSupportedEncodings):
1274         * platform/win/ClipboardUtilitiesWin.cpp:
1275         (WebCore::getDataMapItem):
1276         (WebCore::getClipboardData):
1277         (WebCore::setClipboardData):
1278         * platform/win/ClipboardWin.cpp:
1279         (WebCore::ClipboardWin::types):
1280         * platform/win/FileSystemWin.cpp:
1281         (WebCore::cachedStorageDirectory):
1282         * platform/win/RunLoopWin.cpp:
1283         (WebCore::RunLoop::TimerBase::timerFired):
1284         * platform/win/WCDataObject.cpp:
1285         (WebCore::WCDataObject::createInstance):
1286         * platform/wince/MIMETypeRegistryWinCE.cpp:
1287         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
1288         * platform/wx/ContextMenuWx.cpp:
1289         (WebCore::ContextMenu::appendItem):
1290         * plugins/PluginDatabase.cpp:
1291         (WebCore::PluginDatabase::refresh):
1292         (WebCore::PluginDatabase::MIMETypeForExtension):
1293         (WebCore::PluginDatabase::remove):
1294         * plugins/PluginMainThreadScheduler.cpp:
1295         (WebCore::PluginMainThreadScheduler::scheduleCall):
1296         (WebCore::PluginMainThreadScheduler::dispatchCalls):
1297         * plugins/PluginStream.cpp:
1298         (WebCore::PluginStream::startStream):
1299         * plugins/blackberry/PluginDataBlackBerry.cpp:
1300         (WebCore::PluginData::initPlugins):
1301         * plugins/wx/PluginDataWx.cpp:
1302         (WebCore::PluginData::initPlugins):
1303         * rendering/ExclusionShapeInsideInfo.cpp:
1304         (WebCore::ExclusionShapeInsideInfo::ensureExclusionShapeInsideInfoForRenderBlock):
1305         * rendering/FlowThreadController.cpp:
1306         (WebCore::FlowThreadController::unregisterNamedFlowContentNode):
1307         * rendering/InlineFlowBox.cpp:
1308         (WebCore::InlineFlowBox::requiresIdeographicBaseline):
1309         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
1310         * rendering/RenderBlock.cpp:
1311         (WebCore::RenderBlock::clearFloats):
1312         * rendering/RenderBlockLineLayout.cpp:
1313         (WebCore::setLogicalWidthForTextRun):
1314         * rendering/RenderBoxModelObject.cpp:
1315         (WebCore::ImageQualityController::highQualityRepaintTimerFired):
1316         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
1317         * rendering/RenderCounter.cpp:
1318         (WebCore::RenderCounter::destroyCounterNodes):
1319         (WebCore::RenderCounter::destroyCounterNode):
1320         (WebCore::updateCounters):
1321         (WebCore::RenderCounter::rendererStyleChanged):
1322         * rendering/RenderFlowThread.cpp:
1323         (WebCore::RenderFlowThread::setRegionRangeForBox):
1324         (WebCore::RenderFlowThread::getRegionRangeForBox):
1325         * rendering/RenderLayer.cpp:
1326         (WebCore::RenderLayer::paint):
1327         (WebCore::performOverlapTests):
1328         * rendering/RenderLayerFilterInfo.cpp:
1329         (WebCore::RenderLayerFilterInfo::filterInfoForRenderLayer):
1330         (WebCore::RenderLayerFilterInfo::createFilterInfoForRenderLayerIfNeeded):
1331         * rendering/RenderNamedFlowThread.cpp:
1332         (WebCore::RenderNamedFlowThread::dependsOn):
1333         (WebCore::RenderNamedFlowThread::pushDependencies):
1334         * rendering/RenderRegion.cpp:
1335         (WebCore::RenderRegion::setRenderBoxRegionInfo):
1336         (WebCore::RenderRegion::setRegionObjectsRegionStyle):
1337         (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
1338         (WebCore::RenderRegion::computeChildrenStyleInRegion):
1339         * rendering/RenderTableSection.cpp:
1340         (WebCore::RenderTableSection::cachedCollapsedBorder):
1341         * rendering/RenderThemeMac.mm:
1342         (WebCore::RenderThemeMac::systemColor):
1343         * rendering/RenderView.cpp:
1344         (WebCore::RenderView::selectionBounds):
1345         (WebCore::RenderView::setSelection):
1346         * rendering/RenderWidget.cpp:
1347         (WebCore::WidgetHierarchyUpdatesSuspensionScope::moveWidgets):
1348         * rendering/RootInlineBox.cpp:
1349         (WebCore::RootInlineBox::ascentAndDescentForBox):
1350         * rendering/VerticalPositionCache.h:
1351         (WebCore::VerticalPositionCache::get):
1352         * rendering/svg/RenderSVGInlineText.cpp:
1353         (WebCore::RenderSVGInlineText::characterStartsNewTextChunk):
1354         * rendering/svg/RenderSVGResourceFilter.cpp:
1355         (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged):
1356         * rendering/svg/RenderSVGResourceGradient.cpp:
1357         (WebCore::RenderSVGResourceGradient::applyResource):
1358         * rendering/svg/RenderSVGResourcePattern.cpp:
1359         (WebCore::RenderSVGResourcePattern::applyResource):
1360         * rendering/svg/SVGResourcesCache.cpp:
1361         (WebCore::SVGResourcesCache::resourceDestroyed):
1362         * rendering/svg/SVGRootInlineBox.cpp:
1363         (WebCore::swapItemsInLayoutAttributes):
1364         * rendering/svg/SVGTextLayoutAttributes.cpp:
1365         (WebCore::SVGTextLayoutAttributes::dump):
1366         * rendering/svg/SVGTextLayoutAttributesBuilder.cpp:
1367         (WebCore::SVGTextLayoutAttributesBuilder::buildCharacterDataMap):
1368         (WebCore::SVGTextLayoutAttributesBuilder::fillCharacterDataMap):
1369         * rendering/svg/SVGTextLayoutEngine.cpp:
1370         (WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath):
1371         * rendering/svg/SVGTextMetricsBuilder.cpp:
1372         (WebCore::SVGTextMetricsBuilder::measureTextRenderer):
1373         * storage/StorageAreaSync.cpp:
1374         (WebCore::StorageAreaSync::syncTimerFired):
1375         (WebCore::StorageAreaSync::performImport):
1376         (WebCore::StorageAreaSync::sync):
1377         * storage/StorageMap.cpp:
1378         (WebCore::StorageMap::key):
1379         (WebCore::StorageMap::setItem):
1380         * storage/StorageNamespaceImpl.cpp:
1381         (WebCore::StorageNamespaceImpl::localStorageNamespace):
1382         (WebCore::StorageNamespaceImpl::copy):
1383         (WebCore::StorageNamespaceImpl::close):
1384         (WebCore::StorageNamespaceImpl::clearAllOriginsForDeletion):
1385         (WebCore::StorageNamespaceImpl::sync):
1386         * svg/SVGDocumentExtensions.cpp:
1387         (WebCore::SVGDocumentExtensions::removeAnimationElementFromTarget):
1388         (WebCore::SVGDocumentExtensions::removeAllAnimationElementsFromTarget):
1389         (WebCore::SVGDocumentExtensions::addPendingResource):
1390         (WebCore::SVGDocumentExtensions::isElementPendingResources):
1391         (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
1392         (WebCore::SVGDocumentExtensions::setOfElementsReferencingTarget):
1393         (WebCore::SVGDocumentExtensions::removeAllTargetReferencesForElement):
1394         (WebCore::SVGDocumentExtensions::removeAllElementReferencesForTarget):
1395         * svg/SVGElement.cpp:
1396         (WebCore::SVGElement::~SVGElement):
1397         * svg/animation/SMILTimeContainer.cpp:
1398         (WebCore::SMILTimeContainer::setElapsed):
1399         (WebCore::SMILTimeContainer::updateAnimations):
1400         * svg/graphics/SVGImageCache.cpp:
1401         (WebCore::SVGImageCache::~SVGImageCache):
1402         (WebCore::SVGImageCache::removeClientFromCache):
1403         (WebCore::SVGImageCache::requestedSizeAndScales):
1404         (WebCore::SVGImageCache::imageContentChanged):
1405         (WebCore::SVGImageCache::redraw):
1406         (WebCore::SVGImageCache::lookupOrCreateBitmapImageForRenderer):
1407         * svg/graphics/filters/SVGFilterBuilder.h:
1408         (WebCore::SVGFilterBuilder::effectReferences):
1409         (WebCore::SVGFilterBuilder::addBuiltinEffects):
1410         * svg/properties/SVGAnimatedProperty.h:
1411         (WebCore::SVGAnimatedProperty::~SVGAnimatedProperty):
1412         * svg/properties/SVGAttributeToPropertyMap.cpp:
1413         (WebCore::SVGAttributeToPropertyMap::addProperties):
1414         (WebCore::SVGAttributeToPropertyMap::synchronizeProperties):
1415         * workers/WorkerContext.cpp:
1416         (WebCore::WorkerContext::hasPendingActivity):
1417         * workers/WorkerEventQueue.cpp:
1418         (WebCore::WorkerEventQueue::close):
1419         * xml/XMLHttpRequest.cpp:
1420         (WebCore::XMLHttpRequest::setRequestHeaderInternal):
1421         (WebCore::XMLHttpRequest::getAllResponseHeaders):
1422         * xml/XPathFunctions.cpp:
1423         (WebCore::XPath::createFunction):
1424         * xml/XPathParser.cpp:
1425         (isAxisName):
1426         * xml/XSLTProcessorLibxslt.cpp:
1427         (WebCore::xsltParamArrayFromParameterMap):
1428         * xml/XSLTProcessorQt.cpp:
1429         (WebCore::XSLTProcessor::transformToString):
1430
1431 2012-10-07  Geoffrey Garen  <ggaren@apple.com>
1432
1433         REGRESSION (r130584): Crashes in JSC::MarkedAllocator::allocateSlowCase, failing fast/dom/gc-dom-tree-lifetime.html
1434         https://bugs.webkit.org/show_bug.cgi?id=98612
1435
1436         Reviewed by Darin Adler.
1437
1438         Since DOM modification can happen outside of JS, calls into JS due to
1439         DOM modification need to take the JS lock.
1440
1441         * bindings/js/JSNodeCustom.cpp:
1442         (WebCore::willCreatePossiblyOrphanedTreeByRemovalSlowCase): Take the JS
1443         lock before doing a JS allocation, since this may be a JS entrypoint.
1444
1445         * bindings/js/JSNodeCustom.h:
1446         (WebCore::willCreatePossiblyOrphanedTreeByRemoval): Split out a slow case
1447         to help the inliner.
1448
1449 2012-10-07  Nick Carter  <nick@chromium.org>
1450
1451         [chromium] Crash in WebCore::GraphicsLayerChromium::setContentsToImage
1452         https://bugs.webkit.org/show_bug.cgi?id=98456
1453
1454         Reviewed by James Robinson.
1455
1456         Handle null return of nativeImageForCurrentFrame.
1457
1458         Test: compositing/images/truncated-direct-png-image.html
1459
1460         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
1461         (WebCore::GraphicsLayerChromium::setContentsToImage):
1462
1463 2012-10-07  Benjamin Poulain  <benjamin@webkit.org>
1464
1465         WTFURL: implement URL port removal for HTMLAnchorElement
1466         https://bugs.webkit.org/show_bug.cgi?id=98604
1467
1468         Reviewed by Adam Barth.
1469
1470         * platform/KURLWTFURL.cpp:
1471         (WebCore::KURL::hasPort):
1472         (WebCore::KURL::removePort):
1473         (WebCore::KURL::isHierarchical):
1474         Implement those methods to pass the port removal test of HTMLAnchorElement.
1475
1476 2012-10-05  Dirk Schulze  <krit@webkit.org>
1477
1478         SVG radialGradient should support 'fr' for focal radius (just like Canvas)
1479         https://bugs.webkit.org/show_bug.cgi?id=97986
1480
1481         Reviewed by Daniel Bates.
1482
1483         Update SVGRadialGradient to the changed behavior in SVG2: http://www.w3.org/TR/SVG2/pservers.html#RadialGradients
1484         SVG2 adds the focal radius for radial gradients. Color stops will start from the edge of
1485         the focal radius.
1486         The new specification does not limit the focal point to be inside the radial gradients radius.
1487         This makes SVGRadialGradient consistent with the radial gradient on Canvas.
1488
1489         Test: svg/custom/radialGradient-focal-radius.svg
1490
1491         * rendering/svg/RenderSVGResourceRadialGradient.cpp:
1492             Remove checks for position of focal point. The focal point
1493             can be placed every where outside the radius of the gradient now.
1494         (WebCore::RenderSVGResourceRadialGradient::focalRadius):
1495             Add new method to get the focal radius from SVGRadialGradientElement.
1496         (WebCore::RenderSVGResourceRadialGradient::buildGradient):
1497         * rendering/svg/RenderSVGResourceRadialGradient.h:
1498         (RenderSVGResourceRadialGradient):
1499         * rendering/svg/SVGRenderTreeAsText.cpp:
1500         (WebCore::writeSVGResourceContainer):
1501             Modify DRT output to include the focal radius.
1502         * svg/RadialGradientAttributes.h:
1503         (WebCore::RadialGradientAttributes::RadialGradientAttributes):
1504         (WebCore::RadialGradientAttributes::fr):
1505         (WebCore::RadialGradientAttributes::setFr):
1506         (WebCore::RadialGradientAttributes::hasFr):
1507         (RadialGradientAttributes):
1508             New setters and getters for focal radius.
1509         * svg/SVGRadialGradientElement.cpp:
1510         (WebCore):
1511         (WebCore::SVGRadialGradientElement::SVGRadialGradientElement):
1512         (WebCore::SVGRadialGradientElement::isSupportedAttribute):
1513         (WebCore::SVGRadialGradientElement::parseAttribute):
1514         (WebCore::SVGRadialGradientElement::collectGradientAttributes):
1515         (WebCore::SVGRadialGradientElement::selfHasRelativeLengths):
1516             Ditto.
1517         * svg/SVGRadialGradientElement.h:
1518         (SVGRadialGradientElement):
1519         * svg/SVGRadialGradientElement.idl:
1520         * svg/svgattrs.in:
1521             Add 'fr' as new attribute to the SVG attribute list.
1522
1523 2012-10-07  Glenn Adams  <glenn@skynav.com>
1524
1525         Use start instead of -webkit-auto in default and quirks mode stylesheets.
1526         https://bugs.webkit.org/show_bug.cgi?id=98609
1527
1528         Reviewed by Antti Koivisto.
1529
1530         Change text-align use of legacy '-webkit-auto' to 'start' in the few places where it is used
1531         in default/quirks stylesheets.
1532         
1533         No new tests. No change of rendering/styling behavior. No performance impact.
1534
1535         * css/html.css:
1536         (input, textarea, keygen, select, button, isindex):
1537         (ruby > rt):
1538         * css/quirks.css:
1539         (table):
1540
1541 2012-10-06  Raul Hudea  <rhudea@adobe.com>
1542
1543         -webkit-clip-path should parse IRIs
1544         https://bugs.webkit.org/show_bug.cgi?id=96381
1545
1546         Reviewed by Andreas Kling.
1547
1548         Implemented the clipping via referencing a SVG clipPath. Currently it works only if the clipPath is defined
1549         before using it on an HTML element. The forward reference issue is tracked via https://bugs.webkit.org/show_bug.cgi?id=90405.
1550
1551         Tests: css3/masking/clip-path-reference-userSpaceOnUse.html
1552                css3/masking/clip-path-reference.html
1553                fast/masking/parsing-clip-path-iri.html
1554
1555         * css/CSSComputedStyleDeclaration.cpp:
1556         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Add handling for SVG clipPath references.
1557         * css/CSSParser.cpp:
1558         (WebCore::CSSParser::parseValue): Add handling for SVG clipPath references.
1559         * css/StyleBuilder.cpp:
1560         (WebCore::ApplyPropertyClipPath::applyValue): Add handling for SVG references.
1561         * rendering/ClipPathOperation.h:
1562         (ReferenceClipPathOperation): Added a new class corresponding to SVG referenced clipPath.
1563         (WebCore::ReferenceClipPathOperation::create):
1564         (WebCore::ReferenceClipPathOperation::url):
1565         (WebCore::ReferenceClipPathOperation::fragment):
1566         (WebCore::ReferenceClipPathOperation::operator==):
1567         (WebCore::ReferenceClipPathOperation::ReferenceClipPathOperation):
1568         (WebCore):
1569         * rendering/RenderLayer.cpp:
1570         (WebCore::RenderLayer::paintLayerContents): Add handling for ReferenceClipPathOperation.
1571         * rendering/svg/RenderSVGResourceClipper.h:
1572         (RenderSVGResourceClipper): Made applyClippingToContext public as it needs to be called directly for HTML elements.
1573
1574 2012-10-06  Pratik Solanki  <psolanki@apple.com>
1575
1576         Reduce calls to CGImageSourceCopyPropertiesAtIndex from frameSizeAtIndex
1577         https://bugs.webkit.org/show_bug.cgi?id=98607
1578
1579         Reviewed by Dan Bernstein.
1580
1581         Refactor code so that we avoid a second call to CGImageSourceCopyPropertiesAtIndex under
1582         ImageSource::frameSizeAtIndex().
1583
1584         No new tests because no functional change.
1585
1586         * platform/graphics/cg/ImageSourceCG.cpp:
1587         (WebCore::orientationFromProperties):
1588         (WebCore):
1589         (WebCore::ImageSource::frameSizeAtIndex):
1590         (WebCore::ImageSource::orientationAtIndex):
1591
1592 2012-10-06  Mark Rowe  <mrowe@apple.com>
1593
1594         Build fix.
1595
1596         Stop calling -[NSSliderCell setTitle:]. It's never done anything on OS X.
1597
1598         * rendering/RenderThemeMac.mm:
1599         (WebCore::RenderThemeMac::sliderThumbHorizontal):
1600         (WebCore::RenderThemeMac::sliderThumbVertical):
1601
1602 2012-10-06  Andreas Kling  <kling@webkit.org>
1603
1604         Clipboard::types() should return an ordered collection.
1605         <http://webkit.org/b/98547>
1606
1607         Reviewed by Darin Adler.
1608
1609         Let Clipboard::types() return a ListHashSet<String> instead of a HashSet<String> to make sure
1610         it retains the order in which type strings are added.
1611
1612         No test, this fixes an issue that was uncovered when lowering the default table size of WTF
1613         hash tables, causing the HashSet<String> to rehash and reorder itself.
1614
1615         * bindings/js/JSClipboardCustom.cpp:
1616         (WebCore::JSClipboard::types):
1617         * bindings/v8/custom/V8ClipboardCustom.cpp:
1618         (WebCore::V8Clipboard::typesAccessorGetter):
1619         * dom/Clipboard.h:
1620         (Clipboard):
1621         * platform/blackberry/ClipboardBlackBerry.cpp:
1622         (WebCore::ClipboardBlackBerry::types):
1623         * platform/blackberry/ClipboardBlackBerry.h:
1624         (ClipboardBlackBerry):
1625         * platform/chromium/ChromiumDataObject.cpp:
1626         (WebCore::ChromiumDataObject::types):
1627         * platform/chromium/ChromiumDataObject.h:
1628         (ChromiumDataObject):
1629         * platform/chromium/ClipboardChromium.cpp:
1630         (WebCore::ClipboardChromium::types):
1631         * platform/chromium/ClipboardChromium.h:
1632         (ClipboardChromium):
1633         * platform/efl/ClipboardEfl.cpp:
1634         (WebCore::ClipboardEfl::types):
1635         * platform/efl/ClipboardEfl.h:
1636         (ClipboardEfl):
1637         * platform/gtk/ClipboardGtk.cpp:
1638         (WebCore::ClipboardGtk::types):
1639         * platform/gtk/ClipboardGtk.h:
1640         (ClipboardGtk):
1641         * platform/mac/ClipboardMac.h:
1642         (ClipboardMac):
1643         * platform/mac/ClipboardMac.mm:
1644         (WebCore::addHTMLClipboardTypesForCocoaType):
1645         (WebCore::ClipboardMac::types):
1646         * platform/qt/ClipboardQt.cpp:
1647         (WebCore::ClipboardQt::types):
1648         * platform/qt/ClipboardQt.h:
1649         (ClipboardQt):
1650         * platform/win/ClipboardWin.cpp:
1651         (WebCore::addMimeTypesForFormat):
1652         (WebCore::ClipboardWin::types):
1653         * platform/win/ClipboardWin.h:
1654         (ClipboardWin):
1655         * platform/wx/ClipboardWx.cpp:
1656         (WebCore::ClipboardWx::types):
1657         * platform/wx/ClipboardWx.h:
1658         (ClipboardWx):
1659
1660 2012-10-06  Geoffrey Garen  <ggaren@apple.com>
1661
1662         If Node X is reachable from JavaScript, all Nodes in the same tree should be kept alive
1663         https://bugs.webkit.org/show_bug.cgi?id=88834
1664
1665         Reviewed by Gavin Barraclough.
1666
1667         Follow-up patch to address some comments by Darin Adler.
1668
1669         * bindings/js/JSNodeCustom.h:
1670         (WebCore::willCreatePossiblyOrphanedTreeByRemoval): Save some space by
1671         collapsing comment lines. Use Node::hasChildNodes() for brevity.
1672
1673 2012-10-06  Benjamin Poulain  <benjamin@webkit.org>
1674
1675         Fix weird use of KURL's protocolIs
1676         https://bugs.webkit.org/show_bug.cgi?id=98584
1677
1678         Reviewed by Adam Barth.
1679
1680         Converting a KURL to string is a bad idea.
1681
1682         Invalid URLs can return a string that pass the tests, while an
1683         invalid URL will fail protocolIs().
1684
1685         * loader/cache/CachedResource.cpp:
1686         (WebCore::CachedResource::removeClient):
1687         * platform/graphics/MediaPlayer.cpp:
1688         (WebCore::MediaPlayer::load):
1689         * platform/network/DataURL.cpp:
1690         (WebCore::handleDataURL):
1691
1692 2012-10-06  Dan Bernstein  <mitz@apple.com>
1693
1694         WebCore part of <rdar://problem/12446507> [mac] WebKit clients cannot change the behavior of text-rendering: auto
1695         https://bugs.webkit.org/show_bug.cgi?id=98601
1696
1697         Reviewed by Darin Adler.
1698
1699         * WebCore.exp.in: Exported Font::setDefaultTypesettingFeatures().
1700         * platform/graphics/Font.cpp:
1701         (WebCore::Font::s_defaultTypesettingFeatures): Defined this static.
1702         (WebCore::Font::setDefaultTypesettingFeatures): Added this setter.
1703         (WebCore::Font::defaultTypesettingFeatures): Added this getter.
1704         * platform/graphics/Font.h:
1705         (WebCore::Font::typesettingFeatures): Changed to use the value of the new static member
1706         s_defaultTypesettingFeatures, rather than 0, if text-redering is set to auto.
1707
1708 2012-10-04  Geoffrey Garen  <ggaren@apple.com>
1709
1710         If Node X is reachable from JavaScript, all Nodes in the same tree should be kept alive
1711         https://bugs.webkit.org/show_bug.cgi?id=88834
1712
1713         Reviewed by Gavin Barraclough.
1714
1715         * bindings/js/JSNodeCustom.cpp:
1716         (WebCore::isObservable): Clarified this comment, since it seems to have
1717         misled some folks. 
1718
1719         * bindings/js/JSNodeCustom.h:
1720         (WebCore::willCreatePossiblyOrphanedTreeByRemoval): New helper function
1721         to ensure that a disconnected tree is visible to JavaScript.
1722
1723         * bindings/js/ScriptState.cpp:
1724         (WebCore::mainWorldScriptState): Need to check for null because a document's
1725         frame can be null.
1726
1727         * dom/ContainerNode.cpp:
1728         (WebCore::dispatchChildRemovalEvents): When we remove a subtree from the
1729         document, we sever the reference that JavaScript previously held by
1730         referencing its root. So, we give JavaScript an opportunity to establish
1731         a reference to the new root.
1732
1733 2012-10-06  Byungwoo Lee  <bw80.lee@samsung.com>
1734
1735         Fix build warning : -Wunused-parameter.
1736         https://bugs.webkit.org/show_bug.cgi?id=98583
1737
1738         Reviewed by Kentaro Hara.
1739
1740         Use ASSERT_UNUSED() macro to remove build warning.
1741
1742         * plugins/PluginStream.cpp:
1743         (WebCore::PluginStream::delayDeliveryTimerFired):
1744         (WebCore::PluginStream::didReceiveResponse):
1745         (WebCore::PluginStream::didReceiveData):
1746         (WebCore::PluginStream::didFail):
1747         (WebCore::PluginStream::didFinishLoading):
1748         * plugins/PluginView.cpp:
1749         (WebCore::PluginView::requestTimerFired):
1750         (WebCore::PluginView::invalidateTimerFired):
1751
1752 2012-10-05  Adam Barth  <abarth@webkit.org>
1753
1754         [V8] toV8(Node*, ...) does more work than needed (6% faster on dom-traverse)
1755         https://bugs.webkit.org/show_bug.cgi?id=98567
1756
1757         Reviewed by Kentaro Hara.
1758
1759         This patch introduces toV8Fast for Node*. This function works a
1760         differently from the existing toV8 function in two ways:
1761
1762         1) It uses the inline wrapper cache in Node to determine if we're
1763            executing in the main world. This is faster both in the case when
1764            isolated worlds exist because we don't need to retrieve any state
1765            for the current context.
1766
1767         2) It doesn't attempt to inline the hash table lookup used to find the
1768            wrapper in the isolated world. There isn't a big need to inline this
1769            code since performance in the isolated world case is dominated by
1770            the hash table lookup.
1771
1772         Because of these two changes, toV8Fast is small enough to inline into
1773         each attribute getter profitably. Over time, I would like to convert
1774         all the performance critical uses of toV8(Node*) to toV8Fast. At that
1775         point, we can delete toV8 and rename toV8Slow to toV8.
1776
1777         * bindings/scripts/CodeGeneratorV8.pm:
1778         (GenerateHeader):
1779         (GenerateNormalAttrGetter):
1780
1781 2012-10-05  Huang Dongsung  <luxtella@company100.net>
1782
1783         [mac] REGRESSION (r122215): Animated GIF outside the viewport doesn't play when scrolled into view.
1784         https://bugs.webkit.org/show_bug.cgi?id=94874
1785
1786         Reviewed by Simon Fraser.
1787
1788         Rollback previous patch because this patch caused two problems.
1789         1. GIF animation is occasionally paused when tiled scrolling is enabled.
1790         2. This change regressed Apple's Membuster benchmark by ~20% (80MB.)
1791
1792         * loader/cache/CachedImage.cpp:
1793         (WebCore::CachedImage::shouldPauseAnimation):
1794         * loader/cache/CachedImage.h:
1795         (CachedImage):
1796         * loader/cache/CachedResource.h:
1797         * loader/cache/MemoryCache.cpp:
1798         (WebCore::MemoryCache::pruneLiveResourcesToSize):
1799         * rendering/RenderObject.cpp:
1800         (WebCore::RenderObject::willRenderImage):
1801
1802 2012-10-05  Xianzhu Wang  <wangxianzhu@chromium.org>
1803
1804         OpenTypeVerticalData issue with DroidSansFallback.ttf on chromium-android and chromium-linux
1805         https://bugs.webkit.org/show_bug.cgi?id=97824
1806
1807         Reviewed by Tony Chang.
1808
1809         The issue occurred when a font that contains vert GSUB table but doesn't have
1810         a DFLT script and the first script doesn't have vert feature. Added logic to
1811         handle the case.
1812
1813         Test: fast/writing-mode/vertical-subst-font-vert-no-dflt.html
1814
1815         * platform/graphics/opentype/OpenTypeVerticalData.cpp:
1816         (FeatureList):
1817         (WebCore::OpenType::FeatureList::findFeature): Added to find the matching feature in FeatureList.
1818         (WebCore::OpenType::GSUBTable::feature): Added logic to handle the case of no DFLT script and no vert feature under the first script.
1819
1820 2012-10-05  Tony Chang  <tony@chromium.org>
1821
1822         Form controls should always be horizontal
1823         https://bugs.webkit.org/show_bug.cgi?id=98563
1824
1825         Reviewed by Ojan Vafai.
1826
1827         Fix a regression where we didn't force form controls to be horizontal.
1828
1829         Tests: fast/dom/HTMLMeterElement/meter-writing-mode.html
1830                fast/dom/HTMLProgressElement/progress-writing-mode.html
1831                fast/table/colspanMinWidth-vertical.html
1832
1833         * css/html.css:
1834         (input, textarea, keygen, select, button, isindex, meter, progress):
1835
1836 2012-10-05  Sheriff Bot  <webkit.review.bot@gmail.com>
1837
1838         Unreviewed, rolling out r130556 and r130564.
1839         http://trac.webkit.org/changeset/130556
1840         http://trac.webkit.org/changeset/130564
1841         https://bugs.webkit.org/show_bug.cgi?id=98572
1842
1843         The patch wasn't reviewed by a reviewer and it is breaking
1844         Chromium Windows (Requested by jchaffraix on #webkit).
1845
1846         * WebCore.exp.in:
1847         * WebCore.xcodeproj/project.pbxproj:
1848         * css/mediaControls.css:
1849         (video::-webkit-media-text-track-container):
1850         (video::-webkit-media-text-track-past-nodes):
1851         (video::-webkit-media-text-track-future-nodes):
1852         (video::-webkit-media-text-track-display):
1853         * html/HTMLMediaElement.cpp:
1854         (WebCore::HTMLMediaElement::HTMLMediaElement):
1855         (WebCore::HTMLMediaElement::attach):
1856         (WebCore::HTMLMediaElement::userIsInterestedInThisLanguage):
1857         (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind):
1858         (WebCore::HTMLMediaElement::setClosedCaptionsVisible):
1859         (WebCore::HTMLMediaElement::updateClosedCaptionsControls):
1860         * html/HTMLMediaElement.h:
1861         (HTMLMediaElement):
1862         * html/shadow/MediaControlElements.cpp:
1863         (WebCore):
1864         (WebCore::MediaControlTextTrackContainerElement::updateSizes):
1865         * html/shadow/MediaControlElements.h:
1866         (MediaControlTextTrackContainerElement):
1867         * html/shadow/MediaControlRootElement.cpp:
1868         (WebCore::MediaControlRootElement::updateTextTrackDisplay):
1869         * html/shadow/MediaControlRootElement.h:
1870         (MediaControlRootElement):
1871         * html/shadow/MediaControls.h:
1872         (MediaControls):
1873         * html/track/TextTrack.cpp:
1874         (WebCore::TextTrack::TextTrack):
1875         (WebCore::TextTrack::isValidKindKeyword):
1876         (WebCore::TextTrack::setKind):
1877         (WebCore::TextTrack::setMode):
1878         (WebCore::TextTrack::mode):
1879         * html/track/TextTrack.h:
1880         (WebCore::TextTrack::create):
1881         (WebCore::TextTrack::kind):
1882         (TextTrack):
1883         (WebCore::TextTrack::label):
1884         (WebCore::TextTrack::setLabel):
1885         (WebCore::TextTrack::language):
1886         (WebCore::TextTrack::setLanguage):
1887         * html/track/TextTrackCue.cpp:
1888         (WebCore::TextTrackCueBox::TextTrackCueBox):
1889         (WebCore::TextTrackCueBox::shadowPseudoId):
1890         (WebCore):
1891         (WebCore::TextTrackCue::updateDisplayTree):
1892         * html/track/TextTrackCue.h:
1893         (TextTrackCueBox):
1894         (TextTrackCue):
1895         * platform/mac/WebCoreSystemInterface.h:
1896         * platform/mac/WebCoreSystemInterface.mm:
1897         * rendering/CaptionPreferencesChangedListener.h: Removed.
1898         * rendering/RenderTheme.h:
1899         (WebCore):
1900         (RenderTheme):
1901         * rendering/RenderThemeMac.h:
1902         (RenderThemeMac):
1903         * rendering/RenderThemeMac.mm:
1904         (WebCore):
1905         (WebCore::RenderThemeMac::RenderThemeMac):
1906         (WebCore::RenderThemeMac::~RenderThemeMac):
1907
1908 2012-10-05  Tim Horton  <timothy_horton@apple.com>
1909
1910         [cg] GraphicsContextCG should ask CG whether the shadow offset workaround is required
1911         https://bugs.webkit.org/show_bug.cgi?id=98565
1912         <rdar://problem/12436468>
1913
1914         Reviewed by Simon Fraser.
1915
1916         On Mountain Lion and above, CG can tell us whether we need to work around incorrect
1917         shadow offsets. Prior to Mountain Lion, we should assume we need to apply the workaround.
1918
1919         No new tests, as this requires an obscure configuration to test.
1920
1921         * WebCore.exp.in:
1922         * platform/graphics/cg/GraphicsContextCG.cpp:
1923         (WebCore::applyShadowOffsetWorkaroundIfNeeded):
1924         (WebCore::GraphicsContext::setPlatformShadow):
1925         * platform/mac/WebCoreSystemInterface.h: Add wkCGContextDrawsWithCorrectShadowOffsets.
1926         * platform/mac/WebCoreSystemInterface.mm: Add wkCGContextDrawsWithCorrectShadowOffsets.
1927
1928 2012-10-05  Anders Carlsson  <andersca@apple.com>
1929
1930         Try to fix the build.
1931
1932         * rendering/RenderThemeMac.mm:
1933         (WebCore::RenderThemeMac::captionsWindowColor):
1934
1935 2012-10-05  Eric Seidel  <eric@webkit.org>
1936
1937         Remove needless virtual calls and inline RenderStyle::logical* to make table layout faster
1938         https://bugs.webkit.org/show_bug.cgi?id=98550
1939
1940         Reviewed by Andreas Kling.
1941
1942         This shaved another 5% (100ms) off of the runtime of resizecol.html microbenchmark:
1943         http://www.robohornet.org/tests/resizecol.html
1944
1945         * rendering/AutoTableLayout.cpp:
1946         (WebCore::AutoTableLayout::recalcColumn):
1947         * rendering/style/RenderStyle.cpp:
1948         * rendering/style/RenderStyle.h:
1949
1950 2012-10-04  Eric Carlson  <eric.carlson@apple.com>
1951
1952         Allow ports to override text track rendering style
1953         https://bugs.webkit.org/show_bug.cgi?id=97800
1954         <rdar://problem/12044964>
1955
1956         Reviewed by Silvia Pfeiffer.
1957
1958         * WebCore.exp.in: Export new WebkitSystemInterface functions.
1959         * WebCore.xcodeproj/project.pbxproj: Add CaptionPreferencesChangedListener.h.
1960
1961         * css/mediaControls.css: Rearrange the caption CSS so it is possible to style the cue window,
1962             background, and text independently.
1963
1964         * html/HTMLMediaElement.cpp:
1965         (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_disableCaptions with theme->userPrefersCaptions().
1966         (WebCore::HTMLMediaElement::attach): Register for caption preferences change callbacks.
1967         (WebCore::HTMLMediaElement::detach): Unregister for caption preferences change callbacks.
1968         (WebCore::HTMLMediaElement::userPrefersCaptions): Return theme->userPrefersCaptions().
1969         (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind): Consider userPrefersCaptions().
1970         (WebCore::HTMLMediaElement::setClosedCaptionsVisible): Move the code that marks all tracks as
1971             un-configured to markCaptionAndSubtitleTracksAsUnconfigured so it can be reused.
1972         (WebCore::HTMLMediaElement::captionPreferencesChanged): New, force a reevaluation of all text tracks.
1973         (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): New, code moved from 
1974             setClosedCaptionsVisible
1975         * html/HTMLMediaElement.h: Inherit from CaptionPreferencesChangedListener.
1976
1977         * html/shadow/MediaControlElements.cpp:
1978         (WebCore::MediaControlTextTrackContainerElement::userCaptionPreferencesChanged): New, if theme
1979             has a captions style sheet override, inject it into the current page group, otherwise
1980             remove injected sheet.
1981         (WebCore::MediaControlTextTrackContainerElement::updateSizes): Get rid of unnecessary member
1982             variable. Get caption font scale from theme instead of hard coding.
1983         * html/shadow/MediaControlElements.h:
1984
1985         * html/shadow/MediaControlRootElement.cpp:
1986         (WebCore::MediaControlRootElement::userCaptionPreferencesChanged): New.
1987         (WebCore::MediaControlRootElement::updateTextTrackDisplay):
1988         * html/shadow/MediaControlRootElement.h: Add userCaptionPreferencesChanged, minor cleanup.
1989
1990         * html/shadow/MediaControls.h:
1991         (WebCore::MediaControls::userCaptionPreferencesChanged): New.
1992
1993         * html/track/TextTrackCue.cpp:
1994         (WebCore::TextTrackCueBox::TextTrackCueBox): Set the shadow pseudo id.
1995         (WebCore::TextTrackCueBox::textTrackCueBoxShadowPseudoId): New, class method to return the 
1996             shadow pseudo id so it can be used elsewhere.
1997         (WebCore::TextTrackCueBox::shadowPseudoId): Call textTrackCueBoxShadowPseudoId.
1998         (WebCore::TextTrackCue::pastNodesShadowPseudoId): New, class method to return the 
1999             shadow pseudo id so it can be used elsewhere.
2000         (WebCore::TextTrackCue::futureNodesShadowPseudoId): Ditto.
2001         (WebCore::TextTrackCue::updateDisplayTree):
2002         * html/track/TextTrackCue.h:
2003
2004         * platform/mac/WebCoreSystemInterface.h: Updated.
2005         * platform/mac/WebCoreSystemInterface.mm: Ditto.
2006
2007         * rendering/CaptionPreferencesChangedListener.h: Added.
2008
2009         * rendering/RenderTheme.h:
2010         (WebCore::RenderTheme::userPrefersCaptions): New, default do-nothing implementation.
2011         (WebCore::RenderTheme::userHasCaptionPreferences): Ditto.
2012         (WebCore::RenderTheme::captionFontSizeScale): Ditto.
2013         (WebCore::RenderTheme::captionsStyleSheetOverride): Ditto.
2014         (WebCore::RenderTheme::registerForCaptionPreferencesChangedCallbacks): Ditto.
2015         (WebCore::RenderTheme::unregisterForCaptionPreferencesChangedCallbacks): Ditto.
2016
2017         * rendering/RenderThemeMac.h:
2018         * rendering/RenderThemeMac.mm:
2019         (WebCore::userCaptionPreferencesChangedNotificationCallback): New, receives preference changed notifications.
2020         (WebCore::RenderThemeMac::RenderThemeMac): Initialize m_listeningForCaptionPreferenceNotifications.
2021         (WebCore::RenderThemeMac::~RenderThemeMac): Unregister for notifications if necessary.
2022         (WebCore::RenderThemeMac::userHasCaptionPreferences): New, passthrough to WKSI function.
2023         (WebCore::RenderThemeMac::userPrefersCaptions): Ditto.
2024         (WebCore::RenderThemeMac::captionsWindowColor): Return Color with user's caption window color preference.
2025         (WebCore::RenderThemeMac::captionsBackgroundColor): Return Color with user's caption 
2026             background color preference.
2027         (WebCore::RenderThemeMac::captionsTextColor): Return Color with user's caption text color preference.
2028         (WebCore::RenderThemeMac::captionsEdgeColorForTextColor): Return Color for text edge effect.
2029         (WebCore::RenderThemeMac::cssPropertyWithTextEdgeColor): Return String with CSS to set a text-shadow
2030             or webkit-text-stroke property.
2031         (WebCore::RenderThemeMac::cssColorProperty): Return a String with css to set a property 
2032             with a color value.
2033         (WebCore::RenderThemeMac::captionsTextEdgeStyle): Return a String with css to style caption 
2034             text with the user's preferred text edge stye.
2035         (WebCore::RenderThemeMac::captionsDefaultFont): Return a String with css to style caption
2036             text with the user's preferred font.
2037         (WebCore::RenderThemeMac::captionsStyleSheetOverride): Return a String with css to style captions
2038             with the user's preferred style.
2039         (WebCore::RenderThemeMac::captionFontSizeScale): Return the user's preferred caption font scale.
2040         (WebCore::RenderThemeMac::captionPreferencesChanged): Notify listeners of caption preference change.
2041         (WebCore::RenderThemeMac::registerForCaptionPreferencesChangedCallbacks): Add a caption preferences 
2042             changes listener.
2043         (WebCore::RenderThemeMac::unregisterForCaptionPreferencesChangedCallbacks): Remove a caption preferences
2044             changes listener.
2045
2046 2012-10-05  Takashi Sakamoto  <tasak@google.com>
2047
2048         Inline continuations create :after generated content on style recalcs
2049         https://bugs.webkit.org/show_bug.cgi?id=93170
2050
2051         Reviewed by Abhishek Arya.
2052
2053         The bug is caused by RenderInline::styleDidChange's setContinuation(0).
2054         RenderObjectChildList uses continuation to know whether the given
2055         renderer should have AFTER render object or not.
2056         However, setContinuation(0) makes RenderObjectChildList to
2057         misunderstand that all continuations are last continuation.
2058         To avoid the misunderstanding, added a new flag to class
2059         RenderObejctChildList to enable/disable updating :after content (and
2060         also :before content).
2061
2062         Tests: fast/css-generated-content/after-with-inline-continuation.html
2063                fast/css-generated-content/dynamic-apply-after-for-inline.html
2064
2065         * rendering/RenderInline.cpp:
2066         (WebCore::RenderInline::styleDidChange):
2067         Disable upating :after content for continuations which are not
2068         the last one during setStyle just after setContinuation(0).
2069         The setStyle invokes RenderInline::styleDidChange and also invokes
2070         updateBeforeAfterContent via the styleDidChange. This means,
2071         the last continuation's updateBeforeAfterContent is also invoked
2072         after setContinuation(0). We have to update :after for the last
2073         continuation.
2074         * rendering/RenderObjectChildList.cpp:
2075         (WebCore):
2076         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
2077         If s_updateBeforeAfterContent is false, quickly exit
2078         updateBeforeAfterContent.
2079         * rendering/RenderObjectChildList.h:
2080         (RenderObjectChildList):
2081         Added a new flag s_enableUpdateBeforeAfterContent to enable/disable
2082         updating :before or :after content.
2083
2084 2012-10-05  Simon Fraser  <simon.fraser@apple.com>
2085
2086         Don't assume that TileCache layers are opaque
2087         https://bugs.webkit.org/show_bug.cgi?id=98555
2088
2089         Reviewed by Dean Jackson.
2090
2091         TileCache previously set all its tile CALayers as opaque.
2092         However, we will need non-opaque tile caches when we use this
2093         tile cache for tiled layers, so add a member function to
2094         control tile opacity.
2095         
2096         RenderLayerBacking already calls m_graphicsLayer->setContentsOpaque()
2097         using the FrameView's notion of opaqueness, so this change will
2098         cause the main tile cache to be non-opaque if external forces have
2099         set the FrameView to be non-opaque.
2100         
2101         Also tweak the layer border widths on tiled layers.
2102
2103         * platform/graphics/ca/mac/TileCache.h:
2104         (TileCache):
2105         (WebCore::TileCache::tilesAreOpaque):
2106         * platform/graphics/ca/mac/TileCache.mm:
2107         (WebCore::TileCache::TileCache):
2108         (WebCore::TileCache::setTilesOpaque):
2109         (WebCore::TileCache::createTileLayer):
2110         * platform/graphics/ca/mac/WebTileCacheLayer.mm:
2111         (-[WebTileCacheLayer setOpaque:]):
2112         (-[WebTileCacheLayer isOpaque]):
2113         (-[WebTileCacheLayer setBorderWidth:]):
2114
2115 2012-10-05  Tony Chang  <tony@chromium.org>
2116
2117         Fix margin box ascent computation in flexbox
2118         https://bugs.webkit.org/show_bug.cgi?id=98540
2119
2120         Reviewed by Ojan Vafai.
2121
2122         The margin box ascent doesn't depend on the margin below the box.
2123
2124         Tests: css3/flexbox/flex-align.html: Fixed a test case and removed a FIXME.
2125                css3/flexbox/flex-align-vertical-writing-mode.html: Similar test case.
2126
2127         * rendering/RenderFlexibleBox.cpp:
2128         (WebCore::RenderFlexibleBox::marginBoxAscentForChild):
2129
2130 2012-10-05  Ojan Vafai  <ojan@chromium.org>
2131
2132         Deprecated flexboxes subtract scrollbar width/height twice
2133         https://bugs.webkit.org/show_bug.cgi?id=98552
2134
2135         Reviewed by Tony Chang.
2136
2137         This is a regression from http://trac.webkit.org/changeset/119507.
2138         The problem is that contentHeight subtracts the scrollbar and
2139         RenderDeprecatedFlexbox subtracts the scrollbar.
2140
2141         -Make it so that we only access override sizes if one has been set.
2142         I think this makes the calling code more clear.
2143         -If we don't have one set, grab the height/width - borderAndPadding.
2144         -Add a FIXME to change this all back to being borderbox sizes.
2145         There's something trick with making table padding/border work right for that
2146         though (noted in the original patch).
2147
2148         Test: fast/flexbox/flexing-overflow-scroll-item.html
2149
2150         * rendering/RenderBox.cpp:
2151         (WebCore::RenderBox::overrideLogicalContentWidth):
2152         (WebCore::RenderBox::overrideLogicalContentHeight):
2153         (WebCore::RenderBox::availableLogicalHeightUsing):
2154         * rendering/RenderBox.h:
2155         (RenderBox):
2156         * rendering/RenderDeprecatedFlexibleBox.cpp:
2157         (WebCore::contentWidthForChild):
2158         (WebCore):
2159         (WebCore::contentHeightForChild):
2160         (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
2161         (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
2162         (WebCore::RenderDeprecatedFlexibleBox::allowedChildFlex):
2163
2164 2012-10-05  Eric Seidel  <eric@webkit.org>
2165
2166         Make tables which don't use col/row span much faster to layout
2167         https://bugs.webkit.org/show_bug.cgi?id=98221
2168
2169         Reviewed by Julien Chaffraix.
2170
2171         My sense is that most tables on webpages do not use colspan/rowspan
2172         so I stole another bit from RenderTableCell::m_column to avoid
2173         having to re-parse the colSpan/rowSpan attributes for every cell
2174         when doing table layout.
2175         This made these symbols disappear from biggrid.html/redraw.html (dglazkov's spreadsheets benchmarks)
2176         as well as moved our robohornet/resizecol.html number from an average of 3221ms to 2608ms (~20%!).
2177
2178         I removed m_hasHTMLTableCellElement (from http://trac.webkit.org/changeset/97691)
2179         since it was attempting to do the same sort of optimization.
2180
2181         * rendering/RenderTableCell.cpp:
2182         (WebCore::RenderTableCell::RenderTableCell):
2183         (WebCore::RenderTableCell::parseColSpanFromDOM):
2184         (WebCore::RenderTableCell::parseRowSpanFromDOM):
2185         (WebCore::RenderTableCell::layout):
2186         * rendering/RenderTableCell.h:
2187         (WebCore::RenderTableCell::colSpan):
2188         (WebCore::RenderTableCell::rowSpan):
2189         (RenderTableCell):
2190
2191 2012-10-05  Oli Lan  <olilan@chromium.org>
2192
2193         Allow EventHandler to handle longpress gestures, including longpress selection on Android.
2194         https://bugs.webkit.org/show_bug.cgi?id=98173
2195         
2196         Reviewed by Ryosuke Niwa.
2197
2198         Adds handling for GestureLongPress to EventHandler::handleGestureEvent, with a new
2199         handleGestureLongPress method. On Android, this method selects the closest word
2200         if the gesture event was over non-link text.
2201
2202         This is tested via a new chromium test WebViewTest.LongPressSelection.  
2203
2204         * page/EventHandler.cpp:
2205         (WebCore::EventHandler::selectClosestWordFromHitTestResult):
2206         (WebCore::EventHandler::selectClosestWordFromMouseEvent):
2207         (WebCore):
2208         (WebCore::EventHandler::handleGestureEvent):
2209         (WebCore::EventHandler::handleGestureLongPress):
2210         * page/EventHandler.h:
2211         (EventHandler):
2212
2213 2012-10-05  Tab Atkins  <jackalmage@gmail.com>
2214
2215         <marquee> element forces itself to be at least 1em high, regardless of 'height' declaration
2216         https://bugs.webkit.org/show_bug.cgi?id=18098
2217
2218         Reviewed by Eric Seidel.
2219
2220         This restriction originally existed to match IE, but IE changed some time ago to be normal instead.
2221         We're the last browser, afaict, to still enforce this de-facto restriction.
2222         This patch makes <marquee> instead act like a normal element.
2223
2224         Tests: fast/css/MarqueeLayoutTest.html (rewritten from the older, bad version)
2225
2226         * rendering/RenderMarquee.cpp:
2227         (WebCore::RenderMarquee::updateMarqueeStyle):
2228
2229 2012-10-05  Joe Mason  <jmason@rim.com>
2230
2231         [BlackBerry] Fix regression in proxy auth
2232         https://bugs.webkit.org/show_bug.cgi?id=98533
2233
2234         Reviewed by Yong Li.
2235
2236         The proxy auth dialog gets the proxy address from
2237         BlackBerry::Platform::Settings::proxyAddress, which returns
2238         "host:port", but we try to parse it with a KURL, which expects
2239         "scheme://host:port".  Since this is an http proxy, add http:// to the
2240         url to get it to parse.
2241
2242         PR 220567.
2243
2244         * platform/network/blackberry/NetworkJob.cpp:
2245         (WebCore::NetworkJob::sendRequestWithCredentials):
2246
2247 2012-10-05  Jer Noble  <jer.noble@apple.com>
2248
2249         No autorelease pool in place, causing buildup of autoreleased objects.
2250         https://bugs.webkit.org/show_bug.cgi?id=98522
2251         <rdar://problem/11647950>
2252
2253         Reviewed by Alexey Proskuryakov.
2254
2255         Wrap each timer callback in an AutodrainPool, ensuring an autorelease
2256         pool is present during calls from C/C++ into ObjC.
2257
2258         * platform/cf/RunLoopTimerCF.cpp:
2259         (WebCore::timerFired):
2260
2261 2012-10-05  Ryosuke Niwa  <rniwa@webkit.org>
2262
2263         Deleting across multiple paragraphs can change the style of surrounding text
2264         https://bugs.webkit.org/show_bug.cgi?id=97266
2265
2266         Reviewed by Levi Weintraub.
2267
2268         Preserve editing styles from CSS rules in wrappingStyleForSerialization as well as inline styles
2269         even when we're not annotating. We don't want to preserve all styles because it's against
2270         the user expectation to keep borders, etc... when merging paragraphs. We also don't want to copy
2271         styles from a mail blockquote because that's not a style the user has applied. See the comment
2272         in EditingStyle::wrappingStyleForSerialization.
2273
2274         Test: editing/deleting/merge-paragraph-with-style-from-rule.html
2275
2276         * editing/EditingStyle.cpp:
2277         (WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement):
2278         (WebCore::EditingStyle::wrappingStyleForSerialization):
2279
2280 2012-10-05  Dan Bernstein  <mitz@apple.com>
2281
2282         Reversing a GlyphBuffer needlessly queries its size multiple times
2283         https://bugs.webkit.org/show_bug.cgi?id=98530
2284
2285         Reviewed by Simon Fraser.
2286
2287         No new tests because there is no change in behavior.
2288
2289         * WebCore.xcodeproj/project.pbxproj:
2290         * platform/graphics/FontFastPath.cpp:
2291         (WebCore::Font::getGlyphsAndAdvancesForSimpleText): Replaced the condition
2292         (i < glyphBuffer.size() / 2) with the equivalent test (i < end).
2293         * platform/graphics/mac/FontComplexTextMac.cpp:
2294         (WebCore::Font::getGlyphsAndAdvancesForComplexText): Ditto.
2295
2296 2012-10-05  JosĂ© Dapena Paz  <jdapena@igalia.com>
2297
2298         [GTK] Add support for creating EGL contexts
2299         https://bugs.webkit.org/show_bug.cgi?id=77921
2300
2301         Reviewed by Martin Robinson.
2302
2303         This patch adds support for EGL, using OpenGL and OpenGL ES 2. Both
2304         options are set up on compile time, with the configure options
2305         --enable-egl and --enable-gles2.
2306
2307         The implementation only adds support for EGL on top of X11, to
2308         isolate the changes to the minimum. More changes should come
2309         later to enable EGL for other targets (as Wayland).
2310
2311         No new tests required, as existing WebGL and AC tests should cover
2312         the cases.
2313
2314         * GNUmakefile.am:
2315         * GNUmakefile.list.am:
2316         * platform/graphics/GraphicsContext3D.h:
2317         (GraphicsContext3D):
2318         * platform/graphics/OpenGLESShims.h:
2319         * platform/graphics/cairo/GLContext.cpp:
2320         (WebCore):
2321         (WebCore::GLContext::sharedX11Display):
2322         (WebCore::GLContext::cleanupSharedX11Display):
2323         (WebCore::activeContextList):
2324         (WebCore::GLContext::addActiveContext):
2325         (WebCore::GLContext::removeActiveContext):
2326         (WebCore::GLContext::cleanupActiveContextsAtExit):
2327         (WebCore::GLContext::createContextForWindow):
2328         (WebCore::GLContext::createOffscreenContext):
2329         * platform/graphics/cairo/GLContext.h:
2330         (GLContext):
2331         * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
2332         (WebCore::GraphicsContext3D::create):
2333         (WebCore::GraphicsContext3D::GraphicsContext3D):
2334         (WebCore::GraphicsContext3D::~GraphicsContext3D):
2335         (WebCore::GraphicsContext3D::isGLES2Compliant):
2336         * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
2337         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
2338         * platform/graphics/clutter/GraphicsContext3DClutter.cpp:
2339         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
2340         * platform/graphics/egl/GLContextEGL.cpp: Added.
2341         (WebCore):
2342         (WebCore::sharedEGLDisplay):
2343         (WebCore::getEGLConfig):
2344         (WebCore::GLContextEGL::createWindowContext):
2345         (WebCore::GLContextEGL::createPbufferContext):
2346         (WebCore::GLContextEGL::createPixmapContext):
2347         (WebCore::GLContextEGL::createContext):
2348         (WebCore::GLContextEGL::GLContextEGL):
2349         (WebCore::GLContextEGL::~GLContextEGL):
2350         (WebCore::GLContextEGL::canRenderToDefaultFramebuffer):
2351         (WebCore::GLContextEGL::defaultFrameBufferSize):
2352         (WebCore::GLContextEGL::makeContextCurrent):
2353         (WebCore::GLContextEGL::swapBuffers):
2354         (WebCore::GLContextEGL::waitNative):
2355         (WebCore::GLContextEGL::platformContext):
2356         * platform/graphics/egl/GLContextEGL.h: Added.
2357         (WebCore):
2358         (GLContextEGL):
2359         * platform/graphics/glx/GLContextGLX.cpp:
2360         (WebCore::GLContextGLX::createWindowContext):
2361         (WebCore::GLContextGLX::createPbufferContext):
2362         (WebCore::GLContextGLX::createPixmapContext):
2363         (WebCore::GLContextGLX::createContext):
2364         (WebCore::GLContextGLX::~GLContextGLX):
2365         (WebCore::GLContextGLX::defaultFrameBufferSize):
2366         (WebCore::GLContextGLX::makeContextCurrent):
2367         (WebCore::GLContextGLX::swapBuffers):
2368         (WebCore):
2369         (WebCore::GLContextGLX::waitNative):
2370         * platform/graphics/glx/GLContextGLX.h:
2371         (GLContextGLX):
2372         * platform/graphics/mac/GraphicsContext3DMac.mm:
2373         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
2374         (WebCore::GraphicsContext3D::releaseShaderCompiler):
2375         (WebCore):
2376         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
2377         (WebCore::GraphicsContext3D::readPixels):
2378         (WebCore::GraphicsContext3D::reshapeFBOs):
2379         (WebCore::GraphicsContext3D::renderbufferStorage):
2380         * platform/graphics/qt/GraphicsContext3DQt.cpp:
2381         * platform/graphics/texmap/TextureMapper.h:
2382         * platform/gtk/RedirectedXCompositeWindow.cpp:
2383         (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
2384         (WebCore::RedirectedXCompositeWindow::~RedirectedXCompositeWindow):
2385         (WebCore::RedirectedXCompositeWindow::resize):
2386         * platform/gtk/RedirectedXCompositeWindow.h:
2387
2388 2012-10-04  Jon Lee  <jonlee@apple.com>
2389
2390         Add a setting to enable plugin snapshotting
2391         https://bugs.webkit.org/show_bug.cgi?id=98319
2392         <rdar://problem/12426480>
2393
2394         Reviewed by Brady Eidson.
2395
2396         Add a new bit for this preference.
2397
2398         * page/Settings.cpp:
2399         (WebCore::Settings::Settings): Preference is false by default.
2400         * page/Settings.h: Added m_plugInSnapshottingEnabled bit.
2401         (WebCore::Settings::setPlugInSnapshottingEnabled): Set the bit.
2402         (WebCore::Settings::plugInSnapshottingEnabled): Return the bit.
2403
2404 2012-10-05  Vsevolod Vlasov  <vsevik@chromium.org>
2405
2406         Unreviewed inspector front-end closure compilaiton fixes.
2407
2408         * inspector/InjectedScriptCanvasModuleSource.js:
2409         * inspector/InjectedScriptExterns.js:
2410         (InjectedScriptHost.prototype.getInternalProperties):
2411         * inspector/front-end/DockController.js:
2412         * inspector/front-end/externs.js:
2413         (InspectorFrontendHostAPI.prototype.requestSetDockSide):
2414
2415 2012-10-05  Tab Atkins  <jackalmage@gmail.com>
2416
2417         Replace uses of prefixed properties with unprefixed versions in the UA stylesheets
2418         https://bugs.webkit.org/show_bug.cgi?id=98453
2419
2420         Reviewed by Ojan Vafai.
2421
2422         Switched 'border-radius' and 'box-shadow' to their unprefixed version in the UA stylesheets.
2423
2424         No new tests, because the unprefixed properties have the same behavior as the prefixed.
2425
2426         * css/fullscreenQuickTime.css:
2427         (video:-webkit-full-screen::-webkit-media-controls-panel):
2428         * css/html.css:
2429         (keygen, select):
2430         (select[size][multiple]):
2431         (select[size="1"]):
2432         (::-webkit-validation-bubble-message):
2433         * css/themeBlackBerry.css:
2434         (input, textarea):
2435         * css/themeChromiumAndroid.css:
2436         (select[size][multiple]):
2437         * css/themeQtNoListboxes.css:
2438         (select[size][multiple]):
2439         * css/themeWin.css:
2440         (select[size="1"]):
2441         * css/view-source.css:
2442         (.webkit-html-message-bubble):
2443
2444 2012-10-05  Kevin Ellis  <kevers@chromium.org>
2445
2446         [chromium] Only inflate the height of rows in a popup menu when a touch device is detected.
2447         https://bugs.webkit.org/show_bug.cgi?id=98515
2448
2449         Reviewed by Adam Barth.
2450
2451         Enforces a minimum row height for popup menus when a touch device is
2452         detected.  In a previous patch (r127597), the sizing of popup was 
2453         consolidated for touch and non-touch.  Based on user feedback, reverting
2454         to the old behavior for non-touch and only adding padding for touch
2455         devices seems like a much safer strategy.  This patch is not a direct
2456         revert of r127567 since the padding previously used for touch is a bit
2457         excessive.
2458
2459         Covered by existing tests.
2460
2461         * platform/chromium/PopupListBox.cpp:
2462         (WebCore::PopupListBox::getRowHeight):
2463         * platform/chromium/PopupMenuChromium.cpp:
2464         (WebCore):
2465         * platform/chromium/PopupMenuChromium.h:
2466         (WebCore::PopupMenuChromium::optionRowHeightForTouch):
2467         (WebCore::PopupMenuChromium::setOptionRowHeightForTouch):
2468         (PopupMenuChromium):
2469
2470 2012-10-05  Alexander Pavlov  <apavlov@chromium.org>
2471
2472         Web Inspector: [Styles] Unable to edit properties in broken stylesheets
2473         https://bugs.webkit.org/show_bug.cgi?id=98246
2474
2475         Reviewed by Vsevolod Vlasov.
2476
2477         Pop source data for invalid rules off the stack whenever we have consecutive CSSParser::markRuleHeaderStart() invocations.
2478
2479         Test: inspector/styles/parse-stylesheet-errors.html
2480
2481         * css/CSSParser.cpp:
2482         (WebCore::CSSParser::popRuleData):
2483         (WebCore::CSSParser::markRuleHeaderStart):
2484         (WebCore::CSSParser::markRuleBodyStart):
2485         * css/CSSParser.h:
2486         (CSSParser):
2487
2488 2012-10-05  Gabor Rapcsanyi  <rgabor@webkit.org>
2489
2490         Add ARM-NEON support to VectorMath in WebAudio
2491         https://bugs.webkit.org/show_bug.cgi?id=98131
2492
2493         Reviewed by Zoltan Herczeg.
2494
2495         Speed up vector operations in WebAudio with NEON intrinsics.
2496
2497         * platform/audio/VectorMath.cpp:
2498         (WebCore::VectorMath::vsma):
2499         (WebCore::VectorMath::vsmul):
2500         (WebCore::VectorMath::vadd):
2501         (WebCore::VectorMath::vmul):
2502         (WebCore::VectorMath::zvmul):
2503         (WebCore::VectorMath::vsvesq):
2504         (WebCore::VectorMath::vmaxmgv):
2505
2506 2012-10-05  Simon Hausmann  <simon.hausmann@digia.com>
2507
2508         Unreviewed, rolling out r130495.
2509         http://trac.webkit.org/changeset/130495
2510         https://bugs.webkit.org/show_bug.cgi?id=98268
2511
2512         Made WK2 tests crash.
2513
2514         * Target.pri:
2515         * platform/qt/QStyleFacade.cpp: Removed.
2516         * platform/qt/QStyleFacade.h: Removed.
2517
2518 2012-10-05  Simon Hausmann  <simon.hausmann@digia.com>
2519
2520         [Qt] Make RenderThemeQStyle/ScrollbarThemeQStyle compile without QStyle/QtWidgets
2521         https://bugs.webkit.org/show_bug.cgi?id=98268
2522
2523         Reviewed by Tor Arne Vestbø.
2524
2525         Extracted QStyle/QWidget related code into a QWebStyle class that implements the QStyleFacade interface.
2526
2527         QStyleFacade is a pure interface that lives in WebCore/platform/qt
2528         (next to RenderThemeQStyle and ScrollbarThemeQStyle) and provides a
2529         minimal interface of what we need to draw with QStyle as well as basic
2530         hit testing and metric retrieval. It also provides a
2531         QStyleFacadeOption class that aggregates common meta-data for
2532         rendering primitives, such as direction, rectangle, state (sunken,
2533         enabled, etc.) or palette. It also provides some more slider/scrollbar
2534         specific fields in a slider sub-structure.
2535
2536         RenderThemeQStyle/ScrollbarThemeQStyle used to instantiate specific QStyleOption sub-classes and populate
2537         them with state information from render objects, before calling straight to QStyle. Most of the common code
2538         was encapsulated in StylePainterQStyle.
2539
2540         The new RenderThemeQStyle/ScrolllbarThemeQStyle uses common code in
2541         StylePainterQStyle to populate state into QStyleFacadeOption before
2542         calling into QStyleFacade.
2543
2544         The style facade is then implemented by QStyleFacadeImp, which extracts
2545         meta-data from QStyleFacadeOption arguments, populates style
2546         primitive specific QStyleOption objects and then calls on QStyle.
2547
2548         RenderThemeQStyle/ScrollbarThemeQStyle can only use interface methods
2549         from QStyleFacade. QStyleFacadeImp on the other hand will live in the
2550         separate QtWebKitWidgets library in the future and therefore cannot use
2551         any WebCore types.
2552
2553         * Target.pri:
2554         * platform/qt/QStyleFacade.cpp: Added.
2555         (WebCore):
2556         (WebCore::QStyleFacade::styleForPage):
2557         * platform/qt/QStyleFacade.h: Added.
2558         (WebCore):
2559         (QStyleFacade):
2560         (WebCore::QStyleFacade::~QStyleFacade):
2561         (WebCore::QStyleFacadeOption::QStyleFacadeOption):
2562         (QStyleFacadeOption):
2563         * platform/qt/RenderThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.cpp.
2564         (WebCore):
2565         (WebCore::RenderThemeQStyle::getStylePainter):
2566         (WebCore::StylePainterQStyle::StylePainterQStyle):
2567         (WebCore::StylePainterQStyle::init):
2568         (WebCore::RenderThemeQStyle::create):
2569         (WebCore::RenderThemeQStyle::setStyleFactoryFunction):
2570         (WebCore::RenderThemeQStyle::styleFactory):
2571         (WebCore::RenderThemeQStyle::RenderThemeQStyle):
2572         (WebCore::RenderThemeQStyle::~RenderThemeQStyle):
2573         (WebCore::RenderThemeQStyle::setPaletteFromPageClientIfExists):
2574         (WebCore::RenderThemeQStyle::inflateButtonRect):
2575         (WebCore::RenderThemeQStyle::computeSizeBasedOnStyle):
2576         (WebCore::RenderThemeQStyle::adjustButtonStyle):
2577         (WebCore::RenderThemeQStyle::setButtonPadding):
2578         (WebCore::RenderThemeQStyle::paintButton):
2579         (WebCore::RenderThemeQStyle::paintTextField):
2580         (WebCore::RenderThemeQStyle::adjustTextAreaStyle):
2581         (WebCore::RenderThemeQStyle::paintTextArea):
2582         (WebCore::RenderThemeQStyle::setPopupPadding):
2583         (WebCore::RenderThemeQStyle::colorPalette):
2584         (WebCore::RenderThemeQStyle::paintMenuList):
2585         (WebCore::RenderThemeQStyle::adjustMenuListButtonStyle):
2586         (WebCore::RenderThemeQStyle::paintMenuListButton):
2587         (WebCore::RenderThemeQStyle::animationDurationForProgressBar):
2588         (WebCore::RenderThemeQStyle::paintProgressBar):
2589         (WebCore::RenderThemeQStyle::paintSliderTrack):
2590         (WebCore::RenderThemeQStyle::adjustSliderTrackStyle):
2591         (WebCore::RenderThemeQStyle::paintSliderThumb):
2592         (WebCore::RenderThemeQStyle::adjustSliderThumbStyle):
2593         (WebCore::RenderThemeQStyle::paintSearchField):
2594         (WebCore::RenderThemeQStyle::adjustSearchFieldDecorationStyle):
2595         (WebCore::RenderThemeQStyle::paintSearchFieldDecoration):
2596         (WebCore::RenderThemeQStyle::adjustSearchFieldResultsDecorationStyle):
2597         (WebCore::RenderThemeQStyle::paintSearchFieldResultsDecoration):
2598         (WebCore::RenderThemeQStyle::paintInnerSpinButton):
2599         (WebCore::RenderThemeQStyle::initializeCommonQStyleOptions):
2600         (WebCore::RenderThemeQStyle::adjustSliderThumbSize):
2601         * platform/qt/RenderThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.h.
2602         (WebCore):
2603         (RenderThemeQStyle):
2604         (WebCore::RenderThemeQStyle::qStyle):
2605         (StylePainterQStyle):
2606         (WebCore::StylePainterQStyle::isValid):
2607         (WebCore::StylePainterQStyle::paintButton):
2608         (WebCore::StylePainterQStyle::paintTextField):
2609         (WebCore::StylePainterQStyle::paintComboBox):
2610         (WebCore::StylePainterQStyle::paintComboBoxArrow):
2611         (WebCore::StylePainterQStyle::paintSliderTrack):
2612         (WebCore::StylePainterQStyle::paintSliderThumb):
2613         (WebCore::StylePainterQStyle::paintInnerSpinButton):
2614         (WebCore::StylePainterQStyle::paintProgressBar):
2615         (WebCore::StylePainterQStyle::paintScrollCorner):
2616         (WebCore::StylePainterQStyle::paintScrollBar):
2617         * platform/qt/ScrollbarThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.cpp.
2618         (WebCore):
2619         (WebCore::ScrollbarThemeQStyle::ScrollbarThemeQStyle):
2620         (WebCore::ScrollbarThemeQStyle::~ScrollbarThemeQStyle):
2621         (WebCore::scPart):
2622         (WebCore::scrollbarPart):
2623         (WebCore::initSliderStyleOption):
2624         (WebCore::ScrollbarThemeQStyle::paint):
2625         (WebCore::ScrollbarThemeQStyle::hitTest):
2626         (WebCore::ScrollbarThemeQStyle::shouldCenterOnThumb):
2627         (WebCore::ScrollbarThemeQStyle::invalidatePart):
2628         (WebCore::ScrollbarThemeQStyle::scrollbarThickness):
2629         (WebCore::ScrollbarThemeQStyle::thumbPosition):
2630         (WebCore::ScrollbarThemeQStyle::thumbLength):
2631         (WebCore::ScrollbarThemeQStyle::trackPosition):
2632         (WebCore::ScrollbarThemeQStyle::trackLength):
2633         (WebCore::ScrollbarThemeQStyle::paintScrollCorner):
2634         * platform/qt/ScrollbarThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.h.
2635         (WebCore):
2636         (ScrollbarThemeQStyle):
2637         (WebCore::ScrollbarThemeQStyle::qStyle):
2638
2639 2012-10-05  Andrei Bucur  <abucur@adobe.com>
2640
2641         Incomplete repaint of boxes with inset box-shadow and padding when resized
2642         https://bugs.webkit.org/show_bug.cgi?id=59863
2643
2644         Reviewed by Simon Fraser.
2645
2646         The patch extends the repaint rectangle to include the inset shadow extent for renderers that resize and need to be repainted. The rectangle computations are also better fragmented and easier to read.
2647
2648         New Test: fast/repaint/box-shadow-inset-repaint.html
2649
2650         * rendering/RenderObject.cpp:
2651         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
2652         * rendering/style/RenderStyle.cpp:
2653         (WebCore::RenderStyle::getShadowInsetExtent):
2654         (WebCore):
2655         * rendering/style/RenderStyle.h:
2656
2657 2012-10-04  Kent Tamura  <tkent@chromium.org>
2658
2659         Fix sub-field width to the maximum width of a placeholder and the maximum value
2660         https://bugs.webkit.org/show_bug.cgi?id=98481
2661
2662         Reviewed by Hajime Morita.
2663
2664         We can't assume a placeholder text is shorter than the width of
2665         digits. The placeholder string for the year field of
2666         input[type=week] is "----", but input[type=date] will have a
2667         localized string for it.
2668
2669         We should set the 'width' CSS property to the maximum of the
2670         placeholder width and the maximum value width in order to prevent
2671         the field width from growing/narrowing.
2672
2673         Before this patch, we secured four digits space for a year field,
2674         and allowed the field to grow its width when a larger year is
2675         set. After this patch, we don't allow it to grow because the
2676         'width' property is set to the maximum width.
2677
2678         Update week-multiple-fields-appearance-basic.html, and the
2679         following tests are affected.
2680         - fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-classes.html
2681         - fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements.html
2682         - fast/forms/week-multiple-fields/week-multiple-fields-appearance-style.html
2683
2684         * html/shadow/DateTimeNumericFieldElement.cpp:
2685         (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
2686         Enable customStyleForRenderer.
2687         (WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
2688         Added. The code is similar to DateTimeSymbolicFieldElement::customStyleForRenderer().
2689         (WebCore::DateTimeNumericFieldElement::formatValue):
2690         Made a function with the code in value(). This is used in
2691         customStyleForRenderer() and value().
2692         (WebCore::DateTimeNumericFieldElement::value): Use formatValue().
2693         * html/shadow/DateTimeNumericFieldElement.h:
2694         (DateTimeNumericFieldElement): Declare new functions.
2695
2696 2012-10-05  Kent Tamura  <tkent@chromium.org>
2697
2698         Improve spelling and performance of Localizer.cpp
2699         https://bugs.webkit.org/show_bug.cgi?id=98485
2700
2701         Reviewed by Kentaro Hara.
2702
2703         Some improvements pointed in webkit.org/b/98229#c5.
2704
2705         No new tests because of no behavior change.
2706
2707         * platform/text/Localizer.h:
2708         (Localizer):
2709          - Rename dateTimeFormatWithSecond to dateTimeFormatWithSeconds
2710          - Rename dateTimeFormatWithoutSecond to dateTimeFormatWithoutSeconds
2711          - Add data members: m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
2712         * platform/text/Localizer.cpp:
2713         (WebCore::Localizer::timeFormat): Check isNull instead of isEmpty
2714         (WebCore::Localizer::shortTimeFormat): Ditto.
2715         (WebCore::Localizer::dateTimeFormatWithSeconds):
2716         - Renamed.
2717         - Cache the concatenation result to a data member.
2718         (WebCore::Localizer::dateTimeFormatWithoutSeconds): Ditto.
2719
2720         * html/DateTimeInputType.cpp:
2721         (WebCore::DateTimeInputType::setupLayoutParameters): Follow the renaming.
2722         * html/DateTimeLocalInputType.cpp:
2723         (WebCore::DateTimeLocalInputType::setupLayoutParameters): Ditto.
2724
2725 2012-10-04  Kenichi Ishibashi  <bashi@chromium.org>
2726
2727         [WebSocket] ExtensionParser should have its own file
2728         https://bugs.webkit.org/show_bug.cgi?id=98475
2729
2730         Reviewed by Yuta Kitamura.
2731
2732         Factor out ExtensionParser from WebSocketExtensionDispatcher and rename it as WebSocketExtensionParser.
2733         WebSocketExtensionParser has its own file.
2734
2735         No changes in behavior. Added a test case for parsing Sec-WebSocket-Extensions field as a chromium unit test.
2736
2737         * CMakeLists.txt: Added WebSocketExtensionParser.
2738         * GNUmakefile.list.am: Ditto.
2739         * Modules/websockets/WebSocketExtensionDispatcher.cpp:
2740         (WebCore::WebSocketExtensionDispatcher::processHeaderValue):
2741         Use WebSocketExtensionParser::parseExtension() to parser extension header value.
2742         * Modules/websockets/WebSocketExtensionParser.cpp: Added.
2743         (WebCore):
2744         (WebCore::WebSocketExtensionParser::finished): Moved from ExtensionParser.
2745         (WebCore::WebSocketExtensionParser::parsedSuccessfully): Ditto.
2746         (WebCore::isSeparator): Ditto.
2747         (WebCore::WebSocketExtensionParser::skipSpaces): Ditto.
2748         (WebCore::WebSocketExtensionParser::consumeToken): Ditto.
2749         (WebCore::WebSocketExtensionParser::consumeQuotedString): Ditto.
2750         (WebCore::WebSocketExtensionParser::consumeQuotedStringOrToken): Ditto.
2751         (WebCore::WebSocketExtensionParser::consumeCharacter): Ditto.
2752         (WebCore::WebSocketExtensionParser::parseExtension): Moved from WebSocketExtensionDispatcher.
2753         * Modules/websockets/WebSocketExtensionParser.h: Added.
2754         (WebCore):
2755         (WebSocketExtensionParser):
2756         (WebCore::WebSocketExtensionParser::WebSocketExtensionParser):
2757         (WebCore::WebSocketExtensionParser::currentToken):
2758         * Target.pri: Added WebSocketExtensionParser.
2759         * WebCore.gypi: Ditto.
2760         * WebCore.vcproj/WebCore.vcproj: Ditto.
2761         * WebCore.xcodeproj/project.pbxproj: Ditto.
2762
2763 2012-10-04  Kunihiko Sakamoto  <ksakamoto@chromium.org>
2764
2765         <input> size attribute should throw INDEX_SIZE_ERR when set to 0
2766         https://bugs.webkit.org/show_bug.cgi?id=61675
2767
2768         Reviewed by Kent Tamura.
2769
2770         According to the spec, the size IDL attribute of input elements is limited
2771         to only non-negative numbers greater than zero. It should throw INDEX_SIZE_ERR
2772         exception when set to 0. New behavior matches both Firefox and IE.
2773         Spec: http://www.w3.org/TR/html5/common-input-element-attributes.html#the-size-attribute
2774
2775         Test: fast/dom/HTMLInputElement/input-size-attribute.html
2776
2777         * html/HTMLInputElement.cpp:
2778         (WebCore::HTMLInputElement::setSize):
2779         * html/HTMLInputElement.h:
2780         (HTMLInputElement):
2781         * html/HTMLInputElement.idl:
2782
2783 2012-10-04  Kent Tamura  <tkent@chromium.org>
2784
2785         Fix font for date/time input types.
2786         https://bugs.webkit.org/show_bug.cgi?id=98478
2787
2788         Reviewed by Kentaro Hara.
2789
2790         input[type=date] should use monospace font if
2791         ENABLE_INPUT_MULTIPLE_FIELDS_UI && ENABLE_INPUT_TYPE_DATE.
2792
2793         For other date/time types, they should use monospace font only
2794         if their types are enabled. input[type="foo"] matches input
2795         element with type="foo" even if the foo type is not supported.
2796
2797         The input[type=date] change is covered by
2798         fast/forms/date/calendar-picker-appearance.html,
2799         platform/chromium/fast/forms/date/date-suggestion-picker-appearance*.html
2800
2801         * css/html.css:
2802         (input[type="date"]):
2803         (input[type="datetime"]):
2804         (input[type="datetime-local"]):
2805         (input[type="month"]):
2806         (input[type="time"]):
2807
2808 2012-10-04  Hajime Morrita  <morrita@google.com>
2809
2810         [Refactoring] Some classes in StyleResolver.cpp/h could have its own file.
2811         https://bugs.webkit.org/show_bug.cgi?id=98469
2812
2813         Reviewed by Dimitri Glazkov.
2814
2815         This change extracts RuleData, RuleSet, RuleFeature and Featurs class
2816         to its own file: RuleSet.h/cpp and RuleFeature.h/cpp
2817
2818         RuleFeature class is moved fro StyleResolver inner class to plain WebCore class.
2819         Feaures class is renamed to RuleFeatureSet to avoid possible name conflict.
2820
2821         No new tests. Just splitting file and doing simple rename.
2822
2823         * CMakeLists.txt:
2824         * GNUmakefile.list.am:
2825         * Target.pri:
2826         * WebCore.gypi:
2827         * WebCore.xcodeproj/project.pbxproj:
2828         * css/CSSAllInOne.cpp:
2829         * css/RuleFeature.cpp: Added.
2830         (WebCore):
2831         (WebCore::RuleFeatureSet::add):
2832         (WebCore::RuleFeatureSet::clear):
2833         (WebCore::RuleFeatureSet::reportMemoryUsage):
2834         * css/RuleFeature.h: Added.
2835         (WebCore):
2836         (RuleFeature):
2837         (WebCore::RuleFeature::RuleFeature):
2838         (RuleFeatureSet):
2839         (WebCore::RuleFeatureSet::RuleFeatureSet):
2840         * css/RuleSet.cpp: Added.
2841         (WebCore):
2842         (WebCore::isSelectorMatchingHTMLBasedOnRuleHash):
2843         (WebCore::selectorListContainsUncommonAttributeSelector):
2844         (WebCore::isCommonAttributeSelectorAttribute):
2845         (WebCore::containsUncommonAttributeSelector):
2846         (WebCore::RuleData::RuleData):
2847         (WebCore::RuleData::reportMemoryUsage):
2848         (WebCore::reportAtomRuleMap):
2849         (WebCore::RuleSet::reportMemoryUsage):
2850         (WebCore::RuleSet::RuleSetSelectorPair::reportMemoryUsage):
2851         (WebCore::collectFeaturesFromSelector):
2852         (WebCore::collectFeaturesFromRuleData):
2853         (WebCore::RuleSet::addToRuleSet):
2854         (WebCore::RuleSet::addRule):
2855         (WebCore::RuleSet::addPageRule):
2856         (WebCore::RuleSet::addRegionRule):
2857         (WebCore::RuleSet::addRulesFromSheet):
2858         (WebCore::RuleSet::addStyleRule):
2859         (WebCore::shrinkMapVectorsToFit):
2860         (WebCore::RuleSet::shrinkToFit):
2861         * css/RuleSet.h: Added.
2862         (WebCore):
2863         (RuleData):
2864         (WebCore::RuleData::position):
2865         (WebCore::RuleData::rule):
2866         (WebCore::RuleData::selector):
2867         (WebCore::RuleData::selectorIndex):
2868         (WebCore::RuleData::hasFastCheckableSelector):
2869         (WebCore::RuleData::hasMultipartSelector):
2870         (WebCore::RuleData::hasRightmostSelectorMatchingHTMLBasedOnRuleHash):
2871         (WebCore::RuleData::containsUncommonAttributeSelector):
2872         (WebCore::RuleData::specificity):
2873         (WebCore::RuleData::linkMatchType):
2874         (WebCore::RuleData::hasDocumentSecurityOrigin):
2875         (WebCore::RuleData::isInRegionRule):
2876         (WebCore::RuleData::descendantSelectorIdentifierHashes):
2877         (SameSizeAsRuleData):
2878         (RuleSet):
2879         (WebCore::RuleSet::create):
2880         (WebCore::RuleSet::disableAutoShrinkToFit):
2881         (WebCore::RuleSet::features):
2882         (WebCore::RuleSet::idRules):
2883         (WebCore::RuleSet::classRules):
2884         (WebCore::RuleSet::tagRules):
2885         (WebCore::RuleSet::shadowPseudoElementRules):
2886         (WebCore::RuleSet::linkPseudoClassRules):
2887         (WebCore::RuleSet::focusPseudoClassRules):
2888         (WebCore::RuleSet::universalRules):
2889         (WebCore::RuleSet::pageRules):
2890         (WebCore::RuleSet::RuleSetSelectorPair::RuleSetSelectorPair):
2891         (RuleSetSelectorPair):
2892         (WebCore::RuleSet::RuleSet):
2893         * css/StyleResolver.cpp:
2894         (WebCore):
2895         (WebCore::makeRuleSet):
2896         (WebCore::StyleResolver::collectMatchingRulesForList):
2897         * css/StyleResolver.h:
2898         (StyleResolver):
2899
2900 2012-10-04  Adam Barth  <abarth@webkit.org>
2901
2902         FeatureObserver should distinguish between legacy HTML and text notifications
2903         https://bugs.webkit.org/show_bug.cgi?id=98441
2904
2905         Reviewed by Tony Chang.
2906
2907         We might be able to drop support for legacy HTML notifications before
2908         we can drop support for legacy text notifications. We should measure
2909         and find out.
2910
2911         * Modules/notifications/NotificationCenter.idl:
2912         * page/FeatureObserver.h:
2913
2914 2012-10-04  Pravin D  <pravind.2k4@gmail.com>
2915
2916         Removing the unused member variable m_wasMalformed from HTMLFormElement class and its related code frgment.
2917         https://bugs.webkit.org/show_bug.cgi?id=98444
2918
2919         Reviewed by Eric Seidel.
2920
2921         The member variable m_wasMalformed of HTMLFormElement class was used to determine if the <form> tag was malformed or not.
2922         This information was used elsewhere to decide if bottom margins have to be included for such a <form>.
2923         However currently this member variable is not being set by any code following code refactoring in HTML parser class.
2924
2925         Code cleanup patch. No new tests required.
2926
2927         * html/HTMLFormElement.cpp:
2928         (WebCore::HTMLFormElement::HTMLFormElement):
2929           Removed m_wasMalformed initialization.
2930
2931         * html/HTMLFormElement.h:
2932         (HTMLFormElement):
2933          Removed m_wasMalformed variable.
2934          Removed m_wasMalformed variable's setter and getter functions.
2935
2936         * rendering/RenderBlock.cpp:
2937         (WebCore::RenderBlock::layoutBlock):
2938          Removed code fragment using/dependent on m_wasMalformed.
2939
2940 2012-10-04  Rik Cabanier  <cabanier@adobe.com>
2941
2942         Turn Compositing on by default in WebKit build
2943         https://bugs.webkit.org/show_bug.cgi?id=98315
2944
2945         Reviewed by Simon Fraser.
2946
2947         enable -webkit-blend-mode on trunk.
2948
2949         No new tests. Existing blending test were updated.
2950
2951         * Configurations/FeatureDefines.xcconfig:
2952         * css/CSSPropertyNames.in:
2953         * css/CSSValueKeywords.in:
2954
2955 2012-10-04  Hayato Ito  <hayato@chromium.org>
2956
2957         [Refactoring] Introduce a traversal strategy in SelectorChecker
2958         https://bugs.webkit.org/show_bug.cgi?id=97298
2959
2960         Reviewed by Antti Koivisto.
2961
2962         We extract DOM traversal code from SelectorChecker so that we can use another traversal strategy.
2963         Another traversal strategy will be introduced in Bug 96990.
2964
2965         Since this code path is very hot, we were very careful not to regress performance.
2966         We will use template specialization to change the traversal implementation.
2967
2968         We confirmed that this patch does not regress SelectorCheckerPerformance. I have checked the performance of
2969         the added test in my Linux Box using run-perf-tests.
2970
2971         The performance of the added test before using this patch was:
2972
2973           RESULT CSS: PseudoClassSelectors= 3399.68308031 runs/s
2974           median= 3404.48685564 runs/s, stdev= 37.3480114449 runs/s, min= 3272.64871114 runs/s, max= 3438.72385184 runs/s
2975
2976         When we used this patch, the performance was:
2977
2978           RESULT CSS: PseudoClassSelectors= 3367.74473886 runs/s
2979           median= 3367.12072755 runs/s, stdev= 14.1464547639 runs/s, min= 3348.55881171 runs/s, max= 3395.98212857 runs/s
2980
2981         Test: PerformanceTests/CSS/PseudoClass-Selectors.html
2982
2983         * css/SelectorChecker.cpp:
2984         (WebCore):
2985         (WebCore::SelectorChecker::checkSelector): Make this a template method to accept another Context type.
2986         Another Context type will be introduced in coming patch.
2987         (WebCore::SelectorChecker::checkOneSelector):
2988         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstChild):
2989         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastChild):
2990         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstOfType):
2991         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastOfType):
2992         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsBefore):
2993         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeBefore):
2994         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsAfter):
2995         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeAfter):
2996         * css/SelectorChecker.h:
2997         (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
2998         (SelectorCheckingContext):
2999         (SelectorChecker):
3000         (DOMTraversalStrategy): Extracted the DOM traversal code from SelectorChecker. Another traversal code
3001         will be introduced the coming patch.
3002
3003 2012-10-04  Eric Seidel  <eric@webkit.org>
3004
3005         SVGAttributeHashTranslator does not need to copy QualifiedName in the common case
3006         https://bugs.webkit.org/show_bug.cgi?id=98473
3007
3008         Reviewed by Adam Barth.
3009
3010         I tested this using instruments on a test case which modified SVG attributes in a loop.
3011         I believe pdr has some perf-tests in this area, but they weren't needed here.  A simple sample showed this as a huge win,
3012         since we're no longer creating a QualifiedName (and thus adding it to the hash) on each QualifiedName-based lookup in SVG.
3013
3014         * svg/SVGElement.h:
3015         (WebCore::SVGAttributeHashTranslator::hash):
3016         (WebCore::SVGAttributeHashTranslator::equal):
3017
3018 2012-10-04  Julien Chaffraix  <jchaffraix@webkit.org>
3019
3020         Split the intrinsic padding update code out of RenderTableSection::layoutRows
3021         https://bugs.webkit.org/show_bug.cgi?id=98454
3022
3023         Reviewed by Eric Seidel.
3024
3025         RenderTableSection::layoutRows is very long and it's difficult to see what's
3026         going on. This change moves the intrinsic padding update code into RenderTableCell
3027         for clarity. While at it, cleaned up a bit the code (renaming variables, functions).
3028
3029         Change covered by existing table tests.
3030
3031         * rendering/RenderTableCell.cpp:
3032         (WebCore::RenderTableCell::computeIntrinsicPadding):
3033         Added this new function that does the update. Removed the 'default' case, replaced by
3034         the explicit label BASELINE_MIDDLE.
3035
3036         * rendering/RenderTableCell.h:
3037         (WebCore::RenderTableCell::setIntrinsicPaddingBefore):
3038         (WebCore::RenderTableCell::setIntrinsicPaddingAfter):
3039         (WebCore::RenderTableCell::setIntrinsicPadding):
3040         Moved those setters to the private section as we want other classes
3041         to use computeIntrinsicPadding.
3042
3043         * rendering/RenderTableSection.cpp:
3044         (WebCore::RenderTableSection::layoutRows):
3045         Replaced the code with a call to RenderTableCell::computeIntrinsicPadding.
3046         Also moved 2 variables in the loop per our coding style.
3047
3048         * rendering/RenderTableSection.h:
3049         (WebCore::RenderTableSection::rowBaseline):
3050         Renamed to match our coding style.
3051
3052 2012-10-04  Nate Chapin  <japhet@chromium.org>
3053
3054         Crash in EventHandler::mouseMoved().
3055         https://bugs.webkit.org/show_bug.cgi?id=98460
3056
3057         Reviewed by Abhishek Arya.
3058
3059         No new tests, this fixes fast/events/mouse-moved-remove-frame-crash.html.
3060
3061         * page/EventHandler.cpp:
3062         (WebCore::EventHandler::mouseMoved):
3063
3064 2012-10-04  Adam Barth  <abarth@webkit.org>
3065
3066         [V8] NotificationCenter leaks because it uses buggy custom bindings
3067         https://bugs.webkit.org/show_bug.cgi?id=98445
3068
3069         Reviewed by Tony Chang.
3070
3071         There's no reason to use custom bindings here. All they do is cause leaks..
3072
3073         * Modules/notifications/NotificationCenter.idl:
3074         * bindings/v8/custom/V8NotificationCenterCustom.cpp:
3075
3076 2012-10-04  Tab Atkins  <jackalmage@gmail.com>
3077
3078         Selector specificity categories "overflow" into higher categories
3079         https://bugs.webkit.org/show_bug.cgi?id=98295
3080
3081         Reviewed by Eric Seidel.
3082
3083         This patch adds per-component overflow guards for CSS selector specificity.
3084         Previously, we didn't guard against overflow. 
3085         Since we stored each component as a byte mapped into a single unsigned int for the whole specificity,
3086         256 of a particular simple selector was equivalent to 1 of the next-higher-group selector.
3087         This violated the Selectors specification,
3088         which requires the components to be compared lexicographically.
3089
3090         Tests: /fast/selectors/specificity-overflow.html
3091
3092         * css/CSSSelector.cpp:
3093         (WebCore::CSSSelector::specificity):
3094
3095 2012-10-04  Enrica Casucci  <enrica@apple.com>
3096
3097         Font::glyphDataAndPageForCharacter doesn't account for text orientation when using systemFallback on a cold cache.
3098         https://bugs.webkit.org/show_bug.cgi?id=98452.
3099
3100         Reviewed by Dan Bernstein.
3101
3102         The text orientation was considered only when there is a cache hit.
3103         This change moves the logic to handle text orientation to a separate
3104         inline function that is called also when the glyph is added to the cache.
3105
3106         Test: fast/text/vertical-rl-rtl-linebreak.html
3107
3108         * platform/graphics/FontFastPath.cpp:
3109         (WebCore::applyTextOrientationForCharacter): Added.
3110         (WebCore::Font::glyphDataAndPageForCharacter): Modified to use the new function in
3111         both cases of cold and warm cache.
3112
3113 2012-10-04  Adam Klein  <adamk@chromium.org>
3114
3115         MutationRecord attributeName should be null for non attribute changes
3116         https://bugs.webkit.org/show_bug.cgi?id=98438
3117
3118         Reviewed by Ojan Vafai.
3119
3120         Test: fast/mutation/mutation-record-nullity.html
3121
3122         * dom/MutationRecord.idl:
3123
3124 2012-10-04  Simon Fraser  <simon.fraser@apple.com>
3125
3126         Final part of "sync" to "flush" renaming
3127         https://bugs.webkit.org/show_bug.cgi?id=98430
3128
3129         Reviewed by Tim Horton.
3130
3131         Change method names on GraphicsLayer and GraphicsLayerClient that
3132         refer to "sync" to use the term "flush" instead, to be consistent
3133         with the rest of the code.
3134
3135         * platform/graphics/GraphicsLayer.h:
3136         (WebCore::GraphicsLayer::flushCompositingState):
3137         (WebCore::GraphicsLayer::flushCompositingStateForThisLayerOnly):
3138         * platform/graphics/GraphicsLayerClient.h:
3139         (GraphicsLayerClient):
3140         * platform/graphics/blackberry/GraphicsLayerBlackBerry.h:
3141         (WebCore::GraphicsLayerBlackBerry::notifyFlushRequired):
3142         * platform/graphics/blackberry/LayerWebKitThread.cpp:
3143         (WebCore::LayerWebKitThread::setNeedsCommit):
3144         * platform/graphics/ca/GraphicsLayerCA.cpp:
3145         (WebCore::GraphicsLayerCA::flushCompositingState):
3146         (WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly):
3147         (WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
3148         (WebCore::GraphicsLayerCA::positionForCloneRootLayer):
3149         (WebCore::GraphicsLayerCA::noteLayerPropertyChanged):
3150         * platform/graphics/ca/GraphicsLayerCA.h:
3151         (GraphicsLayerCA):
3152         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
3153         (WebCore::GraphicsLayerTextureMapper::notifyChange):
3154         (WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):
3155         (WebCore::GraphicsLayerTextureMapper::flushCompositingState):
3156         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
3157         (GraphicsLayerTextureMapper):
3158         * platform/graphics/texmap/TextureMapperLayer.cpp:
3159         (WebCore::TextureMapperLayer::flushCompositingState):
3160         (WebCore::TextureMapperLayer::flushCompositingStateSelf):
3161         * platform/graphics/texmap/TextureMapperLayer.h:
3162         (TextureMapperLayer):
3163         * rendering/RenderLayerBacking.cpp:
3164         (WebCore::RenderLayerBacking::notifyFlushRequired):
3165         * rendering/RenderLayerBacking.h:
3166         (RenderLayerBacking):
3167         * rendering/RenderLayerCompositor.cpp:
3168         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
3169         * rendering/RenderLayerCompositor.h:
3170         (WebCore::RenderLayerCompositor::notifyFlushRequired):
3171
3172 2012-10-04  Tab Atkins  <tabatkins@google.com>
3173
3174         1ex should equal .5em when the font has no x-height metric
3175         https://bugs.webkit.org/show_bug.cgi?id=80360
3176
3177         Reviewed by Eric Seidel.
3178
3179         Updated FontMetrics and CSSPrimitiveValue to have/use an explicit "hasXHeight" flag to determine how to size an 'ex' unit.
3180
3181         Updated a few of the platform font files to set the flag properly.
3182
3183         Patch cleanup by David Barr <davidbarr@chromium.org>.
3184
3185         Test: fast/css/ex-unit-with-no-x-height.html
3186
3187         * css/CSSPrimitiveValue.cpp:
3188         (WebCore::CSSPrimitiveValue::computeLengthDouble):
3189         * platform/graphics/FontMetrics.h:
3190         (WebCore::FontMetrics::FontMetrics):
3191         (WebCore::FontMetrics::setXHeight):
3192         (FontMetrics):
3193         (WebCore::FontMetrics::hasXHeight):
3194         (WebCore::FontMetrics::setHasXHeight):
3195         (WebCore::FontMetrics::reset):
3196         * platform/graphics/skia/SimpleFontDataSkia.cpp:
3197         (WebCore::SimpleFontData::platformInit):
3198
3199 2012-10-04  Ryosuke Niwa  <rniwa@webkit.org>
3200
3201         Build fix after r130411. Add the right offset.
3202         Also use RefPtr instead of a raw pointer for next and previous pointers.
3203
3204         * editing/ReplaceSelectionCommand.cpp:
3205         (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):
3206
3207 2012-10-04  Alec Flett  <alecflett@chromium.org>
3208
3209         IndexedDB: promote objectstore/index backend ids to the frontend
3210         https://bugs.webkit.org/show_bug.cgi?id=97834
3211
3212         Reviewed by Tony Chang.
3213
3214         Expose int64-based database/objectStore/index ids to the renderer,
3215         step 1 of 2. Support both styles of createObjectStore and
3216         createIndex: those that take an explicit id, and those that take
3217         -1, meaning to autogenerate an id on the backend. In part 2, after
3218         the chromium side lands, support for the autogenerated ids will be
3219         removed. (See https://bugs.webkit.org/show_bug.cgi?id=98085)
3220
3221         This is a part of larger refactoring work to ultimately make the interface
3222         between the frontend and the backend simpler.
3223
3224         No new tests, extensive ASSERTs and existing tests cover correctness.
3225
3226         * Modules/indexeddb/IDBBackingStore.h:
3227         (IDBBackingStore):
3228         * Modules/indexeddb/IDBDatabase.cpp:
3229         (WebCore::IDBDatabase::createObjectStore):
3230         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
3231         (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
3232         (WebCore::IDBDatabaseBackendImpl::openInternal):
3233         (WebCore::IDBDatabaseBackendImpl::metadata):
3234         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
3235         (WebCore):
3236         (WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal):
3237         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
3238         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
3239         (IDBDatabaseBackendImpl):
3240         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
3241         (IDBDatabaseBackendInterface):
3242         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
3243         (WebCore::IDBIndexBackendImpl::metadata):
3244         * Modules/indexeddb/IDBIndexBackendImpl.h:
3245         (WebCore::IDBIndexBackendImpl::create):
3246         (IDBIndexBackendImpl):
3247         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
3248         (WebCore):
3249         (WebCore::getMaxObjectStoreId):
3250         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
3251         (WebCore::IDBLevelDBBackingStore::deleteDatabase):
3252         (WebCore::IDBLevelDBBackingStore::getObjectStores):
3253         (WebCore::setMaxObjectStoreId):
3254         (WebCore::IDBLevelDBBackingStore::createObjectStore):
3255         (WebCore::getMaxIndexId):
3256         (WebCore::setMaxIndexId):
3257         (WebCore::IDBLevelDBBackingStore::createIndex):
3258         * Modules/indexeddb/IDBLevelDBBackingStore.h:
3259         (IDBLevelDBBackingStore):
3260         * Modules/indexeddb/IDBMetadata.h:
3261         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
3262         (IDBDatabaseMetadata):
3263         (WebCore::IDBObjectStoreMetadata::IDBObjectStoreMetadata):
3264         (IDBObjectStoreMetadata):
3265         (WebCore::IDBIndexMetadata::IDBIndexMetadata):
3266         (IDBIndexMetadata):
3267         * Modules/indexeddb/IDBObjectStore.cpp:
3268         (WebCore::IDBObjectStore::createIndex):
3269         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
3270         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
3271         (WebCore::IDBObjectStoreBackendImpl::metadata):
3272         (WebCore::IDBObjectStoreBackendImpl::createIndex):
3273         (WebCore):
3274         (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
3275         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
3276         (WebCore::IDBObjectStoreBackendImpl::create):
3277         (IDBObjectStoreBackendImpl):
3278         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
3279 2012-10-04  Pravin D  <pravind.2k4@gmail.com>
3280
3281         Layout broken after cloning and re-inserting a table with a misplaced <form>
3282         https://bugs.webkit.org/show_bug.cgi?id=86746
3283
3284         Reviewed by Julien Chaffraix.
3285
3286         There is a concept of demotion for a <form> contained in a table. A <form> is demoted if its immediate parent
3287         is either a <table>, table sections (tbody, etc) or a table row (tr). A renderer for such a <form> is created only
3288         if its display is one of the table display types (TABLE, INLINE_TABLE, TABLE_FOOTER_GROUP, etc).
3289         However when a <table> containing a demoted <form> is cloned, the <form> does not retain its demotion state and 
3290         results in the table getting improperly rendered.
3291
3292         Test: fast/table/form-with-non-table-display-inside-table-elements.html
3293
3294         * html/HTMLFormElement.cpp:
3295         (WebCore::HTMLFormElement::copyNonAttributePropertiesFromElement):
3296           Extended the virtual function for HTMLFormElement class specific implementation.
3297           The function is used to copy any necessary state information(member variables) associated with
3298           the <form> element being cloned to the current node.
3299           For HTMLFormElement node the member variable can be classified into five groups based on the 
3300           information they hold:
3301             1) Variables containing information regarding <form> subtree and elements associated with it.
3302                These get updated as and when an element is added to the <form> subtree.
3303             2) Variables containing <form> submit state information.
3304             3) Flag to hold information if reset() has been called.
3305             4) Flag(m_wasDemoted) that indicates whether the form is demoted or not, based on which it needs to
3306                be handled differently during creation of its renderer.
3307                This information is currently being updated only during the HTML tree construction phase.
3308             5) Flag(m_wasMalformed) to hold information if the <form> is malformed or not.
3309
3310           Variables of group (1) will be updated as and when elements are added to the <form> subtree. Whereas,
3311           (2) and (3) hold instance specific information, thus copying them is not required. Also (5) is currently not
3312           being used(not set by any code).
3313
3314           On the other hand, (4) is required to be copied during cloning as this information cannot be accessed
3315           during the cloning process.
3316
3317         (WebCore):
3318         * html/HTMLFormElement.h:
3319           Added copyNonAttributePropertiesFromElement() declaration.
3320
3321 2012-10-04  Dean Jackson  <dino@apple.com>
3322
3323         Attribute and Uniform variable names need translation in shader
3324         https://bugs.webkit.org/show_bug.cgi?id=70989
3325
3326         Reviewed by Tim Horton (and Darin Adler).
3327
3328         WebGL specifies some maximum lengths for variable names (attributes
3329         and uniforms). Also, some GL drivers have issues with long names. For
3330         that reason, ANGLE has an option to rewrite the shader, translating
3331         long names into short names. Turning this on helps shaders compile,
3332         but we need to keep a mapping between the original names and the
3333         translated names, so that we bind to the right location from user code
3334         (which won't ever see the translated source).
3335
3336         This provided an opportunity to clean up some other bits of code:
3337         CSS Filters examined the uniform names after a compilation; It can
3338         now use the variable name map. I also added a typedef for the
3339         HashMaps that keep the shader, the source code and the variable name
3340         mappings.
3341
3342         I also opened a followup bug to make sure these tables are deleted
3343         when the associated shaders (or linked programs) go away:
3344         https://bugs.webkit.org/show_bug.cgi?id=98204
3345
3346         Covered by existing tests (with some enhancements):
3347         - fast/canvas/webgl/attrib-location-length-limits.html:
3348         - fast/canvas/webgl/uniform-location-length-limits.html:
3349
3350         * platform/graphics/ANGLEWebKitBridge.cpp:
3351         (WebCore::getSymbolInfo): Extracts all the information on symbols (either attributes
3352         or uniforms) from the newly compiled shader.
3353         (WebCore):
3354         (WebCore::ANGLEWebKitBridge::compileShaderSource): New method name.
3355         * platform/graphics/ANGLEWebKitBridge.h:
3356         (WebCore::getUniforms): Deleted this method.
3357         (WebCore::ANGLEShaderSymbol::isSampler): Make sure the symbol is a uniform.
3358         (ANGLEWebKitBridge):
3359         * platform/graphics/GraphicsContext3D.h:
3360         (WebCore::GraphicsContext3D::SymbolInfo::SymbolInfo): A new object that
3361         holds the size, type and translated name of a symbol from a WebGL shader.
3362         (ShaderSourceEntry):
3363         (WebCore::GraphicsContext3D::ShaderSourceEntry::ShaderSourceEntry): Now keeps track
3364         of the translated source code and symbol mappings.
3365         (WebCore::GraphicsContext3D::ShaderSourceEntry::symbolMap): Helper function to
3366         get the member variable corresponding to the type of symbol you're asking fo.
3367         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
3368         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram): Calls new method
3369         name which also produces a set of symbols to examine.
3370         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
3371         (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE): We now can pass
3372         in some extra compile options to do translation of long symbol names. Also fill the
3373         map of translated symbol names.
3374         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
3375         (WebCore::GraphicsContext3D::compileShader):
3376         (WebCore::GraphicsContext3D::mappedSymbolName): Returns the mapped name for
3377         a shader symbol if it was translated during compilation.
3378         (WebCore):
3379         (WebCore::GraphicsContext3D::getAttribLocation):
3380         (WebCore::GraphicsContext3D::getShaderiv):
3381         (WebCore::GraphicsContext3D::getShaderInfoLog):
3382         (WebCore::GraphicsContext3D::getShaderSource):
3383         (WebCore::GraphicsContext3D::getUniformLocation):
3384
3385 2012-10-04  Alpha Lam  <hclam@chromium.org>
3386
3387         [skia] Drawing a subrect of bitmap image is misaligned
3388         https://bugs.webkit.org/show_bug.cgi?id=95121
3389
3390         Reviewed by Stephen White.
3391
3392         When drawing a subrect of BitmapImage and the subrect is not aligned
3393         to integer boundaries, skia expands it to the closest enclosing integer
3394         rectangle. This creates prominent rendering artifacts when an image
3395         is used as background and its sub-regions are invalidated frequently.
3396
3397         This patch fixes the problem by doing alignment to integer boundaries
3398         and clipping for both cases of RESAMPLE_AWESOME and RESAMPLE_LINEAR.
3399
3400         A clip rect is applied to the canvas using original destination
3401         rectangle, while source and destination rectangles are enlarged
3402         appropriately to ensure source rectangle is aligned.
3403
3404         This patch also fixes a closely related problem. In RESAMPLE_AWESOME
3405         resampling mode the previous algorithm applies different approximated
3406         scale factor for each scaled image fragment. This caused the stitched
3407         image to look ugly.
3408
3409         Scale factor is approximated using entire image size, this gives a
3410         more accurate approximation because of greater denominator and a
3411         consistent scale factor across all fragments.
3412
3413         Changes in Skia enable caching of the scaled image and return the
3414         scaled fragment because scale factor is now consistent for all
3415         fragments.
3416
3417         Tests: fast/images/paint-subrect-grid.html
3418                fast/images/paint-subrect.html
3419                fast/images/repaint-subrect-grid.html
3420
3421         * platform/graphics/skia/ImageSkia.cpp:
3422         (WebCore::computeResamplingMode): Use float for width and height.
3423         (WebCore):
3424         (WebCore::areBoundariesIntegerAligned):
3425         (WebCore::computeBitmapDrawRects):
3426         (WebCore::extractScaledImageFragment):
3427         (WebCore::drawResampledBitmap): New algorithm for drawing scaled image fragment.
3428         (WebCore::paintSkBitmap):
3429         (WebCore::Image::drawPattern):
3430         (WebCore::BitmapImage::draw): Use SkRect instead of SkIRect.
3431         (WebCore::BitmapImageSingleFrameSkia::draw):
3432         * platform/graphics/skia/NativeImageSkia.cpp:
3433         Changing the algorithm for extracting a scaled image fragment.
3434         A fragment is now identified by (scaledImageSize, scaledImageSubset).
3435         (WebCore::NativeImageSkia::hasResizedBitmap):
3436         (WebCore::NativeImageSkia::resizedBitmap):
3437         (WebCore::NativeImageSkia::shouldCacheResampling):
3438         (WebCore::NativeImageSkia::CachedImageInfo::CachedImageInfo):
3439         (WebCore):
3440         (WebCore::NativeImageSkia::CachedImageInfo::isEqual):
3441         (WebCore::NativeImageSkia::CachedImageInfo::set):
3442         (WebCore::NativeImageSkia::CachedImageInfo::rectInSubset):
3443         * platform/graphics/skia/NativeImageSkia.h:
3444         (NativeImageSkia):
3445         (CachedImageInfo):
3446
3447 2012-10-03  Ryosuke Niwa  <rniwa@webkit.org>
3448
3449         ReplaceSelectionCommand should merge text nodes
3450         https://bugs.webkit.org/show_bug.cgi?id=98188
3451
3452         Reviewed by Levi Weintraub.
3453
3454         Added mergeTextNodesAroundPosition to ReplaceSelectionCommand to merge text nodes after the replace in
3455         completeHTMLReplacement. Also fixed a bunch of bugs in other classes and functions to make this work.
3456
3457         This behavior change is tested by existing tests.
3458
3459         * editing/InsertParagraphSeparatorCommand.cpp:
3460         (WebCore::InsertParagraphSeparatorCommand::doApply): When splitting a text node, place the insertionPosition
3461         at the end of the first half. Leaving it at the beginning of the second half confuses the rest of the code in
3462         the function. However, the logic to handle the "insignificant" white spaces needs the position at the start of
3463         the second half. So keep this position.
3464         * editing/ReplaceSelectionCommand.cpp:
3465         (WebCore::ReplaceSelectionCommand::doApply): Update visibleStart after inserting a paragraph separator so that
3466         the logic to cleanup the nested div checks the right condition (right beneath it starting with a long comment).
3467         (WebCore::ReplaceSelectionCommand::addSpacesForSmartReplace): Insert a space for smart paste at the appropriate
3468         offset instead of at the end of endNode. Also update the layout before obtaining startDownstream as we may have 
3469         modified the DOM by inserting a space for endNode. Finally, a non-breaking space should be treated like a space
3470         isCharacterSmartReplaceExempt for the purpose of smart replace. e.g. if we're inserting "world" after
3471         "hello&nbsp;", we shouldn't be inserting another space between "hello" and "world".
3472         (WebCore::ReplaceSelectionCommand::completeHTMLReplacement):
3473         (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition): Added. Merge text nodes around position, and
3474         adjust position and positionOnlyToBeUpdated accordingly. We need to call updatePositionForNodeRemoval when
3475         positions were before or after the text node.
3476         * editing/ReplaceSelectionCommand.h:
3477         (ReplaceSelectionCommand):
3478
3479 2012-10-04  Tony Chang  <tony@chromium.org>
3480
3481         Fix <input type="month"> tests
3482         https://bugs.webkit.org/show_bug.cgi?id=98426
3483
3484         Reviewed by Ojan Vafai.
3485
3486         The month picker uses flexbox and assumes that it will be aligned with
3487         the last line box. This looks visually correct. I will follow up on
3488         www-style to see what the expected behavior is.
3489
3490         Tests: fast/forms/month-multiple-fields tests cover this.
3491
3492         * rendering/RenderFlexibleBox.cpp:
3493         * rendering/RenderFlexibleBox.h:
3494
3495 2012-10-04  Sheriff Bot  <webkit.review.bot@gmail.com>
3496
3497         Unreviewed, rolling out r130396.
3498         http://trac.webkit.org/changeset/130396
3499         https://bugs.webkit.org/show_bug.cgi?id=98421
3500
3501         This patch is causing crashes on 4 tests on Lion Debug and
3502         Mountain Lion Debug (Requested by jernoble on #webkit).
3503
3504         * rendering/RenderLayerCompositor.cpp:
3505         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
3506         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
3507         * rendering/RenderLayerCompositor.h:
3508         * testing/InternalSettings.cpp:
3509         (WebCore::InternalSettings::Backup::Backup):
3510         (WebCore::InternalSettings::Backup::restoreTo):
3511         * testing/InternalSettings.h:
3512         (Backup):
3513
3514 2012-10-04  Tony Chang  <tony@chromium.org>
3515
3516         inline-flex baseline is sometimes wrong
3517         https://bugs.webkit.org/show_bug.cgi?id=96188
3518
3519         Reviewed by Ojan Vafai.
3520
3521         Implement the necessary methods to get the proper baseline alignment of flexbox.
3522         We were falling back to the inline-block behavior.
3523
3524         Test: css3/flexbox/flexbox-baseline.html
3525
3526         * rendering/RenderFlexibleBox.cpp:
3527         (WebCore::RenderFlexibleBox::RenderFlexibleBox):
3528         (WebCore::RenderFlexibleBox::baselinePosition): Used to get the baseline of the box.
3529         Mostly just the first line box baseline.
3530         (WebCore):
3531         (WebCore::RenderFlexibleBox::lastLineBoxBaseline): This is used for getting the baseline when in an inline-block.
3532         We actually don't want the last line, but the flexbox's baseline.
3533         (WebCore::RenderFlexibleBox::firstLineBoxBaseline): Compute the baseline according to the rules in the spec.
3534         (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems): Keep track of the number of children on the
3535         first line so we don't have to re-compute this when getting the baseline.
3536         (WebCore::RenderFlexibleBox::crossAxisExtentForChild): Make const.
3537         (WebCore::RenderFlexibleBox::mainAxisExtentForChild): Make const.
3538         (WebCore::RenderFlexibleBox::hasAutoMarginsInCrossAxis): Make const.
3539         * rendering/RenderFlexibleBox.h: Add a size_t to keep track of how many children are in the first line.
3540
3541 2012-10-04  Xianzhu Wang  <wangxianzhu@chromium.org>
3542
3543         [Chromium] Should set unitsPerEm in SimpleFontDataSkia.cpp
3544         https://bugs.webkit.org/show_bug.cgi?id=98100
3545
3546         Reviewed by Stephen White.
3547
3548         At least on chromium-linux and chromium-android, unitsPerEm was not set
3549         according to the information in the font, causing at least problems in
3550         OpenTypeVerticalData when calculating vertical advance.
3551
3552         Test: fast/writing-mode/vertical-font-vmtx-units-per-em.html
3553
3554         * platform/graphics/skia/SimpleFontDataSkia.cpp:
3555         (WebCore::SimpleFontData::platformInit):
3556
3557 2012-10-04  Simon Fraser  <simon.fraser@apple.com>
3558
3559         Standardize on "flush" terminology for compositing layer flushing/syncing
3560         https://bugs.webkit.org/show_bug.cgi?id=98321
3561
3562         Reviewed by Simon Fraser.
3563
3564         Rename compositing-related methods that refer to "syncing" to instead
3565         refer to "flushing".
3566
3567         * WebCore.exp.in:
3568         * loader/EmptyClients.h:
3569         (WebCore::EmptyChromeClient::scheduleCompositingLayerFlush):
3570         * page/ChromeClient.h:
3571         (ChromeClient):
3572         * page/FrameView.cpp:
3573         (WebCore::FrameView::flushCompositingStateForThisFrame):
3574         (WebCore::FrameView::flushCompositingStateIncludingSubframes):
3575         (WebCore::FrameView::paintContents):
3576         * page/FrameView.h:
3577         (FrameView):
3578         * rendering/RenderLayerCompositor.cpp:
3579         (WebCore::RenderLayerCompositor::scheduleLayerFlush):
3580         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
3581
3582 2012-10-04  Peter Rybin  <peter.rybin@gmail.com>
3583
3584         Web Inspector: expose object internal properties such as PrimitiveValue or BoundThis
3585         https://bugs.webkit.org/show_bug.cgi?id=94397
3586
3587         Reviewed by Yury Semikhatsky.
3588
3589         Internal property access is built from Injected Script to V8 debug API. JSC binding
3590         has a stub imlpementation. Protocol is updated to explicitly reflect internal properties.
3591
3592         Test: inspector-protocol/runtime-getProperties.html
3593
3594         * bindings/js/JSInjectedScriptHostCustom.cpp:
3595         (WebCore::JSInjectedScriptHost::getInternalProperties):
3596         (WebCore):
3597         * bindings/v8/DebuggerScript.js:
3598         * bindings/v8/ScriptDebugServer.cpp:
3599         (WebCore::ScriptDebugServer::getInternalProperties):
3600         (WebCore):
3601         * bindings/v8/ScriptDebugServer.h:
3602         (ScriptDebugServer):
3603         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
3604         (WebCore::V8InjectedScriptHost::getInternalPropertiesCallback):
3605         (WebCore):
3606         * inspector/InjectedScript.cpp:
3607         (WebCore::InjectedScript::getInternalProperties):
3608         (WebCore):
3609         * inspector/InjectedScript.h:
3610         (InjectedScript):
3611         * inspector/InjectedScriptHost.idl:
3612         * inspector/InjectedScriptSource.js:
3613         (.):
3614         * inspector/Inspector.json:
3615         * inspector/InspectorRuntimeAgent.cpp:
3616         (WebCore::InspectorRuntimeAgent::getProperties):
3617         * inspector/InspectorRuntimeAgent.h:
3618         (InspectorRuntimeAgent):
3619
3620 2012-10-04  Sami Kyostila  <skyostil@chromium.org>
3621
3622         Fixed position visibility check does not consider descendants
3623         https://bugs.webkit.org/show_bug.cgi?id=98144
3624
3625         Reviewed by Simon Fraser.
3626
3627         The check against creating composition layers for invisible fixed positioned
3628         elements is too aggressive in that it does not consider descendants of the
3629         fixed positioned element that may be visible even though the element itself is
3630         out of view.
3631
3632         Fix the problem by calculating the true composited bounds of the fixed
3633         element instead of just using the size of the fixed layer. Because calculating
3634         the true bounds may be expensive, it is only done if the fixed layer itself is
3635         invisible.
3636
3637         Test: compositing/layer-creation/fixed-position-absolute-descendant.html
3638
3639         * rendering/RenderLayerCompositor.cpp:
3640         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
3641         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
3642         * rendering/RenderLayerCompositor.h:
3643
3644 2012-10-04  Vsevolod Vlasov  <vsevik@chromium.org>
3645
3646         Web Inspector: When uiSourceCode content has diverged from VM script, call frames should be shown in temporary script based uiSourceCodes.
3647         https://bugs.webkit.org/show_bug.cgi?id=98385
3648
3649         Reviewed by Pavel Feldman.
3650
3651         When javaScriptSource diverges from VM, ResourceScriptMapping now switches debugging
3652         to temporary VM scripts based uiSourceCode with isDivergedReplacement property set.
3653         Added hasDivergedFromVM and isDivergingFromVM properties to JavaScriptSource.
3654         JavaScriptSourceFrame and ScriptSnippetsModel are updated to process breakpoint changes correctly.
3655
3656         * inspector/front-end/BreakpointManager.js:
3657         (WebInspector.BreakpointManager.prototype.restoreBreakpoints):
3658         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
3659         * inspector/front-end/JavaScriptSource.js:
3660         (WebInspector.JavaScriptSource.prototype.workingCopyCommitted):
3661         (WebInspector.JavaScriptSource.prototype.workingCopyChanged):
3662         (WebInspector.JavaScriptSource.prototype.fireHasDivergedFromVMChanged):
3663         * inspector/front-end/JavaScriptSourceFrame.js:
3664         (WebInspector.JavaScriptSourceFrame.prototype.commitEditing):
3665         (WebInspector.JavaScriptSourceFrame.prototype._hasDivergedFromVM):
3666         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
3667         (WebInspector.JavaScriptSourceFrame.prototype._getBreakpointDecorations):
3668         (WebInspector.JavaScriptSourceFrame.prototype._muteBreakpointsWhileEditing):
3669         (WebInspector.JavaScriptSourceFrame.prototype._didEditContent):
3670         (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
3671         (WebInspector.JavaScriptSourceFrame.prototype._addBreakpointDecoration):
3672         * inspector/front-end/ResourceScriptMapping.js:
3673         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
3674         (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVMChanged):
3675         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
3676         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
3677         * inspector/front-end/ScriptSnippetModel.js:
3678         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
3679         (WebInspector.ScriptSnippetModel.prototype._restoreBreakpoints):
3680         * inspector/front-end/ScriptsPanel.js:
3681         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
3682         * inspector/front-end/UISourceCode.js:
3683         (WebInspector.UISourceCode.prototype.formatted):
3684
3685 2012-10-04  Vsevolod Vlasov  <vsevik@chromium.org>
3686
3687         Web Inspector: Scripts panel should not automatically switch to snippet evaluation when previously evaluated snippet is edited.
3688         https://bugs.webkit.org/show_bug.cgi?id=98402
3689
3690         Reviewed by Pavel Feldman.
3691
3692         Scripts panel does not automatically switch to snippet evaluation when
3693         one edits previously evaluated snippet.
3694
3695         * inspector/front-end/ScriptSnippetModel.js:
3696         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
3697         * inspector/front-end/ScriptsPanel.js:
3698         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
3699
3700 2012-10-04  Balazs Kelemen  <kbalazs@webkit.org>
3701
3702         Don't allow to disable compositing in forced compositing mode
3703         https://bugs.webkit.org/show_bug.cgi?id=98048
3704
3705         Reviewed by Jocelyn Turcotte.
3706
3707         Make forced compositing mode imply accelerated compositing. This will
3708         avoid unexpected situations for platforms that don't want to support
3709         the non-accelerated rendering path.
3710
3711         Covered by existing tests.
3712
3713         * WebCore.exp.in: Export Settings::setAcceleratedCompositingEnabled
3714         because it has been deinlined.
3715         * page/Settings.cpp:
3716         (WebCore::Settings::setAcceleratedCompositingEnabled):
3717         (WebCore::Settings::setForceCompositingMode):
3718         (WebCore):
3719         * page/Settings.h:
3720         (Settings):
3721         (WebCore::Settings::forceCompositingMode): Make it const as a side fix.
3722
3723 2012-10-04  Harald Alvestrand  <hta@google.com>
3724
3725         Change RTCPeerConnection GetStats to use Date timestamp format
3726         https://bugs.webkit.org/show_bug.cgi?id=98263
3727
3728         Reviewed by Yury Semikhatsky.
3729
3730         Tested by extension to RTCPeerConnection-stats test.
3731
3732         * Modules/mediastream/RTCStatsElement.cpp:
3733         (WebCore::RTCStatsElement::create):
3734         (WebCore::RTCStatsElement::RTCStatsElement):
3735         * Modules/mediastream/RTCStatsElement.h: long -> double
3736         (RTCStatsElement):
3737         (WebCore::RTCStatsElement::timestamp):
3738         * Modules/mediastream/RTCStatsElement.idl: long -> Date
3739         * Modules/mediastream/RTCStatsReport.cpp:
3740         (WebCore::RTCStatsReport::addElement):
3741         * Modules/mediastream/RTCStatsReport.h:
3742         (RTCStatsReport):
3743         * Modules/mediastream/RTCStatsResponse.cpp:
3744         (WebCore::RTCStatsResponse::addElement):
3745         * Modules/mediastream/RTCStatsResponse.h:
3746         (RTCStatsResponse):
3747         * platform/chromium/support/WebRTCStatsResponse.cpp:
3748         (WebKit::WebRTCStatsResponse::addElement):
3749         * platform/mediastream/RTCStatsResponseBase.h:
3750         (RTCStatsResponseBase):
3751
3752 2012-10-04  Sheriff Bot  <webkit.review.bot@gmail.com>
3753
3754         Unreviewed, rolling out r130377.
3755         http://trac.webkit.org/changeset/130377
3756         https://bugs.webkit.org/show_bug.cgi?id=98392
3757
3758         Chromium Win compilation is broken (Requested by yurys on
3759         #webkit).
3760
3761         * Modules/mediastream/RTCStatsElement.cpp:
3762         (WebCore::RTCStatsElement::create):
3763         (WebCore::RTCStatsElement::RTCStatsElement):
3764         * Modules/mediastream/RTCStatsElement.h:
3765         (RTCStatsElement):
3766         (WebCore::RTCStatsElement::timestamp):
3767         * Modules/mediastream/RTCStatsElement.idl:
3768         * Modules/mediastream/RTCStatsReport.cpp:
3769         (WebCore::RTCStatsReport::addElement):
3770         * Modules/mediastream/RTCStatsReport.h:
3771         (RTCStatsReport):
3772         * Modules/mediastream/RTCStatsResponse.cpp:
3773         (WebCore::RTCStatsResponse::addElement):
3774         * Modules/mediastream/RTCStatsResponse.h:
3775         (RTCStatsResponse):
3776         * platform/chromium/support/WebRTCStatsResponse.cpp:
3777         (WebKit::WebRTCStatsResponse::addElement):
3778         * platform/mediastream/RTCStatsResponseBase.h:
3779         (RTCStatsResponseBase):
3780
3781 2012-10-04  Harald Alvestrand  <hta@google.com>
3782
3783         Change RTCPeerConnection GetStats to use Date timestamp format
3784         https://bugs.webkit.org/show_bug.cgi?id=98263
3785
3786         Reviewed by Adam Barth.
3787
3788         Tested by extension to RTCPeerConnection-stats test.
3789
3790         * Modules/mediastream/RTCStatsElement.cpp:
3791         (WebCore::RTCStatsElement::create):
3792         (WebCore::RTCStatsElement::RTCStatsElement):
3793         * Modules/mediastream/RTCStatsElement.h: long -> double
3794         (RTCStatsElement):
3795         (WebCore::RTCStatsElement::timestamp):
3796         * Modules/mediastream/RTCStatsElement.idl: long -> Date
3797         * Modules/mediastream/RTCStatsReport.cpp:
3798         (WebCore::RTCStatsReport::addElement):
3799         * Modules/mediastream/RTCStatsReport.h:
3800         (RTCStatsReport):
3801         * Modules/mediastream/RTCStatsResponse.cpp:
3802         (WebCore::RTCStatsResponse::addElement):
3803         * Modules/mediastream/RTCStatsResponse.h:
3804         (RTCStatsResponse):
3805         * platform/chromium/support/WebRTCStatsResponse.cpp:
3806         (WebKit::WebRTCStatsResponse::addElement):
3807         * platform/mediastream/RTCStatsResponseBase.h:
3808         (RTCStatsResponseBase):
3809
3810 2012-10-05  Kent Tamura  <tkent@chromium.org>
3811
3812         [Chromium] Enable the multiple fields UI for input[type=date]
3813         https://bugs.webkit.org/show_bug.cgi?id=98351
3814
3815         Reviewed by Hajime Morita.
3816
3817         Touch files related to ENABLE_INPUT_TYPE_DATE_LEGACY_UI to avoid build
3818         issues.
3819
3820         No new tests. Many tests will be landed shortly.
3821
3822         * html/DateInputType.cpp:
3823         * html/DateInputType.h:
3824
3825 2012-10-04  Kent Tamura  <tkent@chromium.org>
3826
3827         Add code for input[type=date] with the multiple fields UI
3828         https://bugs.webkit.org/show_bug.cgi?id=98340
3829
3830         Reviewed by Hajime Morita.
3831
3832         The new code is available if !ENABLE(INPUT_TYPE_DATE_LEGACY_UI). At this
3833         moment, there are no platforms enabling the new code. We're going to
3834         enable it soon on desktop Chromium, and add tests. Then we're going to
3835         remove the code for ENABLE(INPUT_TYPE_DATE_LEGACY_UI).
3836
3837         ENABLE(INPUT_TYPE_DATE_LEGACY_UI) means the current UI; input[type=date]
3838         is represetnted as a kind of text field, and it has code to invoke a
3839         calendar picker.
3840         ENABLE(CALENDAR_PICKER) was used wrongly. It meant calendar picker
3841         support + text field UI of input[type=date]. Now it means only calendar
3842         picker support.
3843
3844         * html/DateInputType.h:
3845         (WebCore): If ENABLE(INPUT_MULTIPLE_FIELDS_UI) &&
3846         !ENABLE(INPUT_TYPE_DATE_LEGACY_UI), change the base class to the class
3847         for multiple fields UI.
3848         (DateInputType): Wrap the code for text fields behavior and calendar
3849         picker UI with ENABLE(INPUT_TYPE_DATE_LEGACY_UI). Add functions for
3850         ENABLE(INPUT_MULTIPLE_FIELDS_UI)
3851         * html/DateInputType.cpp:
3852         (WebCore::DateInputType::DateInputType):
3853         Change the flag name; CALENDAR_PICKER -> INPUT_TYPE_DATE_LEGACY_UI
3854         (WebCore): ditto.
3855         (WebCore::DateInputType::formatDateTimeFieldsState):
3856         A callback for multiple fields UI. This constructs a string value from
3857         each of values of multiple fields.
3858         Note that we don't need to do +1 to month().
3859         (WebCore::DateInputType::setupLayoutParameters):
3860         A callback for multiple fields UI. Passes information to build UI.
3861
3862         * html/BaseMultipleFieldsDateAndTimeInputType.h:
3863         (BaseMultipleFieldsDateAndTimeInputType):
3864         Add m_pickerIndicatorIsAlwaysVisible member, wrap some members with flags.
3865         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
3866         (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
3867         Initialize m_pickerIndicatorIsAlwaysVisible.
3868         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
3869         If a type supports calendar picker, we should always show the picker
3870         indicator. We introduce m_pickerIndicatorIsAlwaysVisible flag, and ask
3871         RenderTheme for support status of each of types.
3872         Add a local variable 'document' to avoid multiple element()->document().
3873         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updatePickerIndicatorVisibility):
3874         - If m_pickerIndicatorIsAlwaysVisible, don't hide the picker indicator element.
3875         - Wrap the code with appropriate flags.
3876
3877         * rendering/RenderTheme.h:
3878         (WebCore::RenderTheme::supportsCalendarPicker): Added.
3879         * rendering/RenderThemeChromiumMac.h: Override supportsCalendarPicker.
3880         * rendering/RenderThemeChromiumMac.mm:
3881         (WebCore::RenderThemeChromiumMac::supportsCalendarPicker):
3882         Added. Delegate to RenderThemeChromiumCommon.
3883         * rendering/RenderThemeChromiumSkia.h: Override supportsCalendarPicker.
3884         * rendering/RenderThemeChromiumSkia.cpp:
3885         (WebCore::RenderThemeChromiumSkia::supportsCalendarPicker):
3886         Added. Delegate to RenderThemeChromiumCommon.
3887         * rendering/RenderThemeChromiumCommon.h:
3888         (RenderThemeChromiumCommon): Declare supportsCalendarPicker.
3889         * rendering/RenderThemeChromiumCommon.cpp:
3890         (WebCore::RenderThemeChromiumCommon::supportsCalendarPicker):
3891         Returns true if the type is "date."
3892
3893         * html/DateTimeFieldsState.h:
3894         (DateTimeFieldsState): Add a comment for the m_month field.
3895
3896 2012-10-04  Kent Tamura  <tkent@chromium.org>
3897
3898         DateTimeYearFieldElement should respect min/max values specified by page authors
3899         https://bugs.webkit.org/show_bug.cgi?id=98227
3900
3901         Reviewed by Hajime Morita.
3902
3903         Before this patch, we always set 1 to the minimum limit and 275760 to
3904         the maximum limit for a year field, and a user can specify any year
3905         regardless of min/max attributes. Such wide range is unnecessary for
3906         normal applications and we should provide a way to limit the range.
3907
3908         Test: fast/forms/month-multiple-fields/month-multiple-fields-keyboard-events.html
3909
3910         * html/shadow/DateTimeFieldElements.h:
3911         To add four constructor arguments, introduce Parameters struct.
3912         Actually, we add the followings;
3913          - minimum year in UI
3914          - maximum year in UI
3915          - min attribute is specified
3916          - max attribute is specified
3917         (Parameters):
3918         (WebCore::DateTimeYearFieldElement::Parameters::Parameters):
3919         (DateTimeYearFieldElement):
3920         * html/shadow/DateTimeFieldElements.cpp:
3921         (WebCore::DateTimeYearFieldElement::DateTimeYearFieldElement): ditto.
3922         (WebCore::DateTimeYearFieldElement::create): ditto.
3923         (WebCore::DateTimeYearFieldElement::clampValueForHardLimits):
3924         Override DateTimeNumericFieldElement::clampValueForHardLimits.
3925         By this, we allow to set out-of-range year values.
3926         (WebCore::currentFullYear): A helper to get the current year.
3927         (WebCore::DateTimeYearFieldElement::defaultValueForStepDown):
3928         If the field has no value and step down operation occurs,
3929          - the field has the current year if the max attribute is not specified.
3930          - the field has the maximum value otherwise.
3931         (WebCore::DateTimeYearFieldElement::defaultValueForStepUp): Similar change.
3932
3933         * html/shadow/DateTimeNumericFieldElement.h:
3934         (DateTimeNumericFieldElement): Declare clampValueForHardLimits.
3935         * html/shadow/DateTimeNumericFieldElement.cpp:
3936         (WebCore::DateTimeNumericFieldElement::clampValueForHardLimits):
3937         (WebCore::DateTimeNumericFieldElement::setValueAsInteger):
3938         Call clampValueForHardLimits instead of clampValue in order to
3939         distinguish limits for UI and limits for internal value update.
3940
3941         * html/shadow/DateTimeEditElement.h:
3942         (LayoutParameters): Add minimumYear and maximumYear members.
3943         (WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters):
3944         Initialize minimumYear and maximumYear.
3945         (WebCore::DateTimeEditElement::LayoutParameters::undefinedYear):
3946         Represents 'undefined' value for minimumYear and maximumYear.
3947         * html/shadow/DateTimeEditElement.cpp:
3948         (WebCore::DateTimeEditBuilder::visitField):
3949         Preparas DateTimeYearField::Parameters and pass it to the DateTimeYearField factory.