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