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