3e6c92cd905d19d3cf530e8caa6335c29a29a803
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-02-13  Kondapally Kalyan  <kalyan.kondapally@intel.com>
2
3         [WebGL][EFL][GTK][Qt]Add support for OES_vertex_array_object.
4         https://bugs.webkit.org/show_bug.cgi?id=109382
5
6         Reviewed by Kenneth Russell.
7
8         Covered by fast/canvas/webgl/oes-vertex-array-object.html
9
10         This patch adds support for using Vertex Array Object with OpenGl.
11         The patch adds support for loading necessary opengl functions
12         and support for checking GL_ARB_vertex_array_object. The support
13         for OES_vertex_array_object is advertised if GL_ARB_vertex_array_object is
14         supported.
15
16         * platform/graphics/OpenGLShims.cpp:
17         (WebCore::initializeOpenGLShims):
18         * platform/graphics/OpenGLShims.h:
19         (_OpenGLFunctionTable):
20         Added support for loading the necessary functions.
21
22         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
23         (WebCore::Extensions3DOpenGL::createVertexArrayOES):
24         (WebCore::Extensions3DOpenGL::deleteVertexArrayOES):
25         (WebCore::Extensions3DOpenGL::isVertexArrayOES):
26         (WebCore::Extensions3DOpenGL::bindVertexArrayOES):
27         (WebCore::Extensions3DOpenGL::supportsExtension):
28
29         (WebCore):
30         (WebCore::Extensions3DOpenGL::isVertexArrayObjectSupported):
31         * platform/graphics/opengl/Extensions3DOpenGL.h:
32         (Extensions3DOpenGL):
33
34 2013-02-13  Eberhard Graether  <egraether@google.com>
35
36         chromium: remove CompositorHUDFontAtlas
37         https://bugs.webkit.org/show_bug.cgi?id=109328
38
39         Reviewed by James Robinson.
40
41         After switching the HudLayer to use skia's font rendering the
42         CompositorHUDFontAtlas has become obsolete. This change removes
43         this class and the related WebLayerTreeView API.
44
45         No new tests.
46
47         * WebCore.gypi:
48         * platform/graphics/chromium/CompositorHUDFontAtlas.cpp: Removed.
49         * platform/graphics/chromium/CompositorHUDFontAtlas.h: Removed.
50
51 2013-02-13  Dean Jackson  <dino@apple.com>
52
53         Small update to speech bubble for captions menu [Mac]
54         https://bugs.webkit.org/show_bug.cgi?id=109641
55
56         Reviewed by Eric Carlson
57
58         Small adjustment to the embedded SVG that draws a speech bubble
59         for the captions button. Remove a polygon that was so small
60         it looked like a rendering error.
61
62         * css/mediaControlsQuickTime.css:
63         (video::-webkit-media-controls-toggle-closed-captions-button):
64
65 2013-02-13  Dean Jackson  <dino@apple.com>
66
67         Clicking outside captions menu should dismiss it
68         https://bugs.webkit.org/show_bug.cgi?id=109648
69
70         Reviewed by Eric Carlson.
71
72         Add a virtual override to the platform-specific
73         defaultEventHandler to intercept any click in the controls,
74         and hide the captions menu if it is showing.
75
76         Test: media/video-controls-captions-trackmenu-hide-on-click.html
77
78         * html/shadow/MediaControlsApple.cpp:
79         (WebCore::MediaControlsApple::defaultEventHandler): Override from MediaControls. Hide
80             captions menu if a click event comes in.
81         * html/shadow/MediaControlsApple.h:
82
83 2013-02-13  Tommy Widenflycht  <tommyw@google.com>
84
85         MediaStream API: Use the source id when creating new tracks
86         https://bugs.webkit.org/show_bug.cgi?id=109688
87
88         Reviewed by Adam Barth.
89
90         This patch reuses the ids from the source when creating tracks instead of creating a new one.
91         This was requested by the chromium port to greatly simplify their implementation.
92         In the longer run the API should be rewritten to only use tracks instead of sources.
93
94         Covered by existing tests.
95
96         * platform/chromium/support/WebMediaStream.cpp:
97         (WebKit::WebMediaStream::audioTracks):
98         (WebKit::WebMediaStream::videoTracks):
99         (WebKit::WebMediaStream::initialize):
100         (WebKit):
101         * platform/chromium/support/WebMediaStreamTrack.cpp:
102         (WebKit::WebMediaStreamTrack::initialize):
103         (WebKit):
104         * platform/mediastream/MediaStreamComponent.h:
105         (WebCore::MediaStreamComponent::create):
106         (MediaStreamComponent):
107         (WebCore::MediaStreamComponent::MediaStreamComponent):
108         (WebCore):
109         * platform/mediastream/MediaStreamDescriptor.h:
110         (WebCore::MediaStreamDescriptor::create):
111         (MediaStreamDescriptor):
112         (WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
113
114 2013-02-13  Eric Seidel  <eric@webkit.org>
115
116         Use fancy new Vector-based String constructors in the WebVTT parser
117         https://bugs.webkit.org/show_bug.cgi?id=109619
118
119         Reviewed by Benjamin Poulain.
120
121         No change in behavior. Added some FIXMEs for future perf optimization.
122
123         * html/track/WebVTTParser.cpp:
124         (WebCore::WebVTTParser::constructTreeFromToken):
125
126 2013-02-13  Morten Stenshorne  <mstensho@opera.com>
127
128         WebKit ignores column-rules wider than column-gap
129         https://bugs.webkit.org/show_bug.cgi?id=15553
130
131         Paint column rules even if they are wider than the gap.
132         Rules wider than the gap should just overlap with column contents.
133
134         Reviewed by Eric Seidel.
135
136         Test: fast/multicol/rule-thicker-than-gap.html
137
138         * rendering/RenderBlock.cpp:
139         (WebCore::RenderBlock::paintColumnRules):
140
141 2013-02-13  Philip Rogers  <pdr@google.com>
142
143         Replace SVG bitmap cache with directly-rendered SVG
144         https://bugs.webkit.org/show_bug.cgi?id=106159
145
146         Reviewed by Tim Horton.
147
148         This patch removes the caching of SVG bitmaps so SVG images are rendered directly. This
149         enables WebKit to pass the IE Chalkboard demo in 10s on a Z620:
150         http://ie.microsoft.com/testdrive/Performance/Chalkboard/
151
152         On a simple scaled SVG benchmark similar to the IE10 Chalkboard demo
153         (http://philbit.com/SvgImagePerformance/viewport.html):
154             without patch: ~20FPS
155             with patch: ~55FPS
156
157         The bitmap SVG image cache had several shortcomings:
158             - The bitmap cache prevented viewport rendering. (WK104693)
159             - Bitmap memory usage was high. (WK106484)
160             - Caching animating images was expensive.
161
162         This change removes almost all of the SVGImageCache implementation, replacing it with
163         directly-rendered SVG. Instead of caching bitmaps, an SVGImageForContainer is cached which
164         is a thin wrapper around an SVG image with the associated container size and scale.
165         When rendering patterns (e.g., tiled backgrounds), a temporary bitmap is used for
166         performance. This change also removes the redraw timer of the old cache, instead relying
167         on the SVG image to notify clients if the image changes (e.g., during animations).
168
169         This patch fixes two existing bugs (WK99481 and WK104189) that were due to caching bitmaps
170         at a fixed size. A test has been added for each of these bugs.
171
172         Tests: svg/as-image/svg-image-scaled.html
173                svg/as-image/svg-image-viewbox.html
174
175         * CMakeLists.txt:
176         * GNUmakefile.list.am:
177         * Target.pri:
178         * WebCore.gypi:
179         * WebCore.vcproj/WebCore.vcproj:
180         * WebCore.xcodeproj/project.pbxproj:
181         * loader/cache/CachedImage.cpp:
182         (WebCore::CachedImage::lookupOrCreateImageForRenderer):
183         (WebCore::CachedImage::setContainerSizeForRenderer):
184         (WebCore::CachedImage::clear):
185         (WebCore::CachedImage::changedInRect):
186
187             SVG images are no longer special-cased here. When the SVG image changes, users are
188             notified through this function, and users can then request their content to be redrawn.
189
190         * svg/graphics/SVGImage.cpp:
191         (WebCore::SVGImage::setContainerSize):
192         (WebCore::SVGImage::drawForContainer):
193
194             drawForContainer lays out the SVG content for a specific container size and renders it.
195             The logic is fairly straightforward but a note about the scales and zooms here:
196                 the destination rect parameter is zoomed but not scaled
197                 the source rect parameter is zoomed but not scaled
198                 the context is scaled but not zoomed
199             SVGImage::draw(...) only accepts a source and destination rect but does not consider
200             scale or zoom. Therefore, drawForContainer removes the zoom component from the source
201             so SVGImage::draw(...) will draw from the pre-zoom source to the post-zoom destination.
202
203         (WebCore::SVGImage::drawPatternForContainer):
204
205             For performance, drawPatternForContainer renders the SVG content onto a bitmap, then
206             has the bitmap image draw the pattern. This is necessary because drawPattern is used
207             for tiling.
208
209         (WebCore):
210         (WebCore::SVGImage::startAnimation):
211         (WebCore::SVGImage::stopAnimation):
212         (WebCore::SVGImage::resetAnimation):
213         (WebCore::SVGImage::reportMemoryUsage):
214         * svg/graphics/SVGImage.h:
215         (WebCore):
216         (SVGImage):
217         * svg/graphics/SVGImageCache.cpp:
218
219             Instead of storing a SizeAndScales values for each renderer, a SVGImageForContainer
220             is stored which is just a thin wrapper around an SVG image that contains container
221             sizing information. By combining the image and size information, the two maps of
222             SVGImageCache have been merged into one.
223
224             To make this patch easier to review, SVGImageCache still exists and works similar to
225             how it did before the patch. Now, SVGImageCache simply stores the SVGImageForContainers.
226             In a followup patch it will be removed.
227
228             Note: the redraw timer of SVGImageCache has been removed because animation
229             invalidation is now properly propagated back to the image clients.
230
231         (WebCore):
232         (WebCore::SVGImageCache::SVGImageCache):
233         (WebCore::SVGImageCache::~SVGImageCache):
234         (WebCore::SVGImageCache::removeClientFromCache):
235         (WebCore::SVGImageCache::setContainerSizeForRenderer):
236         (WebCore::SVGImageCache::imageSizeForRenderer):
237
238             Previously, this function returned the scaled image size which was incorrect. The image
239             size is used by clients such as GraphicsContext2D to determine the source size
240             for drawing the image. draw() accepts zoomed but not scaled values, so this has been
241             changed.
242
243         (WebCore::SVGImageCache::imageForRenderer):
244
245             A FIXME has been added here to not set the scale on every lookup. This can be improved
246             by setting the page scale factor in setContainerSizeForRenderer() in a future patch.
247
248         * svg/graphics/SVGImageCache.h:
249         (WebCore):
250         (SVGImageCache):
251         * svg/graphics/SVGImageForContainer.cpp: Added.
252         (WebCore):
253
254             SVGImageForContainer is a thin wrapper around an SVG image. The lifetime of the
255             SVGImage will be longer than the image cache.
256
257         (WebCore::SVGImageForContainer::size):
258
259             This is the only logic in SVGImageForContainer. The size returned needs to be zoomed
260             but not scaled because it is used (e.g., by RenderImage) to pass back into draw() which
261             takes zoomed but not scaled values.
262
263         (WebCore::SVGImageForContainer::draw):
264         (WebCore::SVGImageForContainer::drawPattern):
265         * svg/graphics/SVGImageForContainer.h: Added.
266         (WebCore):
267         (SVGImageForContainer):
268
269             In a future patch SVGImageForContainer can be made immutable but without a refactoring
270             for not setting the page scale factor in SVGImageCache::lookupOrCreateImageForRenderer,
271             setters are needed.
272
273         (WebCore::SVGImageForContainer::create):
274         (WebCore::SVGImageForContainer::containerSize):
275         (WebCore::SVGImageForContainer::pageScale):
276         (WebCore::SVGImageForContainer::zoom):
277         (WebCore::SVGImageForContainer::setSize):
278         (WebCore::SVGImageForContainer::setZoom):
279         (WebCore::SVGImageForContainer::setPageScale):
280         (WebCore::SVGImageForContainer::SVGImageForContainer):
281         (WebCore::SVGImageForContainer::destroyDecodedData):
282         (WebCore::SVGImageForContainer::decodedSize):
283
284 2013-02-12  Antti Koivisto  <antti@apple.com>
285
286         Avoid updating timer heap when nothing changes
287         https://bugs.webkit.org/show_bug.cgi?id=109630
288
289         Reviewed by Andreas Kling.
290
291         When the fire time of a Timer is changed we remove it from the timer heap and reinsert it. This is pretty slow. 
292         Turns out that in ~80% of cases we are already in the heap and the insertion position is the same as the 
293         original position. We can check if anything is actually going to change before doing this work.
294         
295         This makes starting a timer ~30% faster in average, ~0.1% progression in PLT3.
296         
297         * platform/Timer.cpp:
298         (TimerHeapLessThanFunction):
299         (WebCore::TimerHeapLessThanFunction::operator()):
300         (WebCore::parentHeapPropertyHolds):
301         (WebCore):
302         (WebCore::childHeapPropertyHolds):
303         (WebCore::TimerBase::hasValidHeapPosition):
304         
305             The code here assumes that STL heap is a normal binary heap. If there is a different implementation
306             somewhere the assertions will catch it.
307
308         (WebCore::TimerBase::updateHeapIfNeeded):
309         
310             Skip updating the heap if it is already valid.
311
312         (WebCore::TimerBase::setNextFireTime):
313         * platform/Timer.h:
314         (TimerBase):
315
316 2013-02-13  Martin Robinson  <mrobinson@igalia.com>
317
318         [GTK] Remove remaining dead code from the GLib unicode backend
319         https://bugs.webkit.org/show_bug.cgi?id=109707
320
321         Reviewed by Philippe Normand.
322
323         * platform/KURL.cpp:
324         (WebCore::appendEncodedHostname):
325         * platform/text/TextEncoding.cpp:
326         (WebCore::TextEncoding::encode):
327         * platform/text/TextEncodingRegistry.cpp:
328         (WebCore::buildBaseTextCodecMaps):
329         (WebCore::extendTextCodecMaps):
330
331 2013-02-13  Xianzhu Wang  <wangxianzhu@chromium.org>
332
333         Heap-use-after-free in WebCore::ScrollingCoordinator::hasVisibleSlowRepaintViewportConstrainedObjects
334         https://bugs.webkit.org/show_bug.cgi?id=108695
335
336         See comments of RenderLayerModelObject::willBeDestroyed() below for details.
337
338         Reviewed by Abhishek Arya.
339
340         Test: ManulTests/scrolling-coordinator-viewport-constrained-crash.html
341         Unable to write a normal layout test because
342         1) must waitUntilDone() to reproduce the crash but the redirected URL can't notifyDone();
343         2) Can't use a frame to contain the test because ScrollingCoordinator handles only the main frame.
344
345         * rendering/RenderBoxModelObject.cpp:
346         (WebCore::RenderBoxModelObject::willBeDestroyed): Moved removeViewportConstrainedObject() call into RenderLayerModelObject::willBeDestroyed() because only RenderLayerModelObjects can be added as viewportConstrainedObjects.
347         * rendering/RenderLayerModelObject.cpp:
348         (WebCore::RenderLayerModelObject::willBeDestroyed): Changed this->view() (then view->frameView()) to this->frame() (then frame->view()) because when willBeDestroyed() is called, the document has set its renderView to 0 thus this->view() will return 0, causing removeViewportConstrainedObject() not called and a deleted RenderLayerModelObject in FrameView's viewportConstrainedObjects.
349
350 2013-02-13  Florin Malita  <fmalita@chromium.org>
351
352         [SVG] OOB access in SVGListProperty::replaceItemValues()
353         https://bugs.webkit.org/show_bug.cgi?id=109293
354
355         Replacing a list property item with itself should be a no-op. This patch updates the related
356         APIs and logic to detect the self-replace case and prevent removal of the item from the list.
357
358         To avoid scanning the list multiple times, removeItemFromList() is updated to operate on
359         indices and a findItem() method is added to resolve an item to an index.
360
361         Reviewed by Dirk Schulze.
362
363         No new tests: updated existing tests cover the change.
364
365         * svg/properties/SVGAnimatedListPropertyTearOff.h:
366         (WebCore::SVGAnimatedListPropertyTearOff::findItem):
367         (SVGAnimatedListPropertyTearOff):
368         (WebCore::SVGAnimatedListPropertyTearOff::removeItemFromList):
369         * svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:
370         (WebCore::SVGAnimatedPathSegListPropertyTearOff::findItem):
371         (SVGAnimatedPathSegListPropertyTearOff):
372         (WebCore::SVGAnimatedPathSegListPropertyTearOff::removeItemFromList):
373         Add a findItem() delegating method, and update removeItemFromList() to use the new
374         index-based API.
375
376         * svg/properties/SVGListProperty.h:
377         (WebCore::SVGListProperty::insertItemBeforeValues):
378         (WebCore::SVGListProperty::insertItemBeforeValuesAndWrappers):
379         (WebCore::SVGListProperty::replaceItemValues):
380         (WebCore::SVGListProperty::replaceItemValuesAndWrappers):
381         (SVGListProperty):
382         Updated to handle the no-op case for insertItemBefore() & replaceItem().
383
384         * svg/properties/SVGListPropertyTearOff.h:
385         (WebCore::SVGListPropertyTearOff::findItem):
386         (WebCore::SVGListPropertyTearOff::removeItemFromList):
387         Index-based API updates.
388
389         (WebCore::SVGListPropertyTearOff::processIncomingListItemValue):
390         (WebCore::SVGListPropertyTearOff::processIncomingListItemWrapper):
391         * svg/properties/SVGPathSegListPropertyTearOff.cpp:
392         (WebCore::SVGPathSegListPropertyTearOff::processIncomingListItemValue):
393         Detect the self-replace case and return without removing the item from the list.
394
395         * svg/properties/SVGPathSegListPropertyTearOff.h:
396         (WebCore::SVGPathSegListPropertyTearOff::findItem):
397         (WebCore::SVGPathSegListPropertyTearOff::removeItemFromList):
398         (SVGPathSegListPropertyTearOff):
399         (WebCore::SVGPathSegListPropertyTearOff::processIncomingListItemWrapper):
400         * svg/properties/SVGStaticListPropertyTearOff.h:
401         (WebCore::SVGStaticListPropertyTearOff::processIncomingListItemValue):
402         (WebCore::SVGStaticListPropertyTearOff::processIncomingListItemWrapper):
403         Index-based API updates.
404
405 2013-02-13  Takashi Sakamoto  <tasak@google.com>
406
407         [Refactoring] StyleResolver::State should have methods to access its member variables.
408         https://bugs.webkit.org/show_bug.cgi?id=108563
409
410         Reviewed by Antti Koivisto.
411
412         Made all member variables private and added methods to access the
413         variables, because most of the member variables are read-only.
414         We don't need to update those read-only variables while resolving
415         styles.
416
417         No new tests, because just refactoring.
418
419         * css/SVGCSSStyleSelector.cpp:
420         (WebCore::StyleResolver::applySVGProperty):
421         * css/StyleResolver.cpp:
422         (WebCore):
423         (WebCore::StyleResolver::collectMatchingRules):
424         (WebCore::StyleResolver::collectMatchingRulesForRegion):
425         (WebCore::StyleResolver::sortAndTransferMatchedRules):
426         (WebCore::StyleResolver::matchScopedAuthorRules):
427         (WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
428         (WebCore::StyleResolver::matchHostRules):
429         (WebCore::StyleResolver::matchAuthorRules):
430         (WebCore::StyleResolver::matchUserRules):
431         (WebCore::StyleResolver::matchUARules):
432         (WebCore::StyleResolver::collectMatchingRulesForList):
433         (WebCore::StyleResolver::sortMatchedRules):
434         (WebCore::StyleResolver::matchAllRules):
435         (WebCore::StyleResolver::State::initElement):
436         (WebCore::StyleResolver::initElement):
437         Modified to invoke m_state.initElement if a given element is
438         different from current m_state's element.
439         (WebCore::StyleResolver::State::initForStyleResolve):
440         Moved from StyleResolver.
441         (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
442         (WebCore::StyleResolver::canShareStyleWithControl):
443         (WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
444         (WebCore::StyleResolver::canShareStyleWithElement):
445         (WebCore::StyleResolver::locateSharedStyle):
446         (WebCore::StyleResolver::styleForElement):
447         (WebCore::StyleResolver::styleForKeyframe):
448         (WebCore::StyleResolver::keyframeStylesForAnimation):
449         (WebCore::StyleResolver::pseudoStyleForElement):
450         Changed ASSERT in the first line. ASSERT(m_state.parentStyle) would be
451         wrong, because it depends on previous resolving. However,
452         initForStyleResolve will also update m_state.parentStyle. No code in
453         pseudoStyleForElement depends on previous resolving state.
454         (WebCore::StyleResolver::styleForPage):
455         (WebCore::StyleResolver::defaultStyleForElement):
456         (WebCore::StyleResolver::adjustRenderStyle):
457         (WebCore::StyleResolver::updateFont):
458         (WebCore::StyleResolver::pseudoStyleRulesForElement):
459         (WebCore::StyleResolver::ruleMatches):
460         Added one more parameter, dynamicPseudo, because dynamicPseudo in
461         State class is just used for returning matched pseudo style from
462         this ruleMatches to collectMatchingRulesForList. No need to keep
463         dynamicPseudo while resolving styles.
464         (WebCore::StyleResolver::checkRegionSelector):
465         Removed m_pseudoStyle = NOPSEUDO, because this method uses just
466         SelectorChecker::matched. SelectorChecker doesn't see StyleResolver's
467         m_pseudoStyle directly. Need to use SelectorCheckerContext. So no
468         need to set m_pseudoStyle to be NOPSEUDO.
469         (WebCore::StyleResolver::applyProperties):
470         (WebCore::StyleResolver::applyMatchedProperties):
471         (WebCore::StyleResolver::isLeftPage):
472         (WebCore::StyleResolver::applyPropertyToStyle):
473         (WebCore::StyleResolver::useSVGZoomRules):
474         (WebCore::createGridTrackBreadth):
475         (WebCore::StyleResolver::resolveVariables):
476         (WebCore::StyleResolver::applyProperty):
477         (WebCore::StyleResolver::cachedOrPendingFromValue):
478         (WebCore::StyleResolver::generatedOrPendingFromValue):
479         (WebCore::StyleResolver::setOrPendingFromValue):
480         (WebCore::StyleResolver::cursorOrPendingFromValue):
481         (WebCore::StyleResolver::checkForTextSizeAdjust):
482         (WebCore::StyleResolver::initializeFontStyle):
483         (WebCore::StyleResolver::setFontSize):
484         (WebCore::StyleResolver::colorFromPrimitiveValue):
485         (WebCore::StyleResolver::loadPendingSVGDocuments):
486         (WebCore::StyleResolver::cachedOrPendingStyleShaderFromValue):
487         (WebCore::StyleResolver::loadPendingShaders):
488         (WebCore::StyleResolver::parseCustomFilterTransformParameter):
489         (WebCore::StyleResolver::createFilterOperations):
490         (WebCore::StyleResolver::loadPendingImage):
491         (WebCore::StyleResolver::loadPendingImages):
492         * css/StyleResolver.h:
493         (WebCore::StyleResolver::style):
494         (WebCore::StyleResolver::parentStyle):
495         (WebCore::StyleResolver::rootElementStyle):
496         (WebCore::StyleResolver::element):
497         (WebCore::StyleResolver::hasParentNode):
498         (StyleResolver):
499         (WebCore::StyleResolver::State::State):
500         (State):
501         (WebCore::StyleResolver::State::clear):
502         Modified to use clear at the end of styleForElement.
503         (WebCore::StyleResolver::State::document):
504         (WebCore::StyleResolver::State::element):
505         (WebCore::StyleResolver::State::styledElement):
506         (WebCore::StyleResolver::State::setStyle):
507         (WebCore::StyleResolver::State::style):
508         (WebCore::StyleResolver::State::takeStyle):
509         (WebCore::StyleResolver::State::ensureRuleList):
510         (WebCore::StyleResolver::State::takeRuleList):
511         (WebCore::StyleResolver::State::parentNode):
512         (WebCore::StyleResolver::State::setParentStyle):
513         (WebCore::StyleResolver::State::parentStyle):
514         (WebCore::StyleResolver::State::rootElementStyle):
515         (WebCore::StyleResolver::State::regionForStyling):
516         (WebCore::StyleResolver::State::setSameOriginOnly):
517         (WebCore::StyleResolver::State::isSameOriginOnly):
518         (WebCore::StyleResolver::State::pseudoStyle):
519         (WebCore::StyleResolver::State::elementLinkState):
520         (WebCore::StyleResolver::State::distributedToInsertionPoint):
521         (WebCore::StyleResolver::State::setElementAffectedByClassRules):
522         (WebCore::StyleResolver::State::elementAffectedByClassRules):
523         (WebCore::StyleResolver::State::setApplyPropertyToRegularStyle):
524         (WebCore::StyleResolver::State::setApplyPropertyToVisitedLinkStyle):
525         (WebCore::StyleResolver::State::applyPropertyToRegularStyle):
526         (WebCore::StyleResolver::State::applyPropertyToVisitedLinkStyle):
527         (WebCore::StyleResolver::State::pendingImageProperties):
528         (WebCore::StyleResolver::State::pendingSVGDocuments):
529         (WebCore::StyleResolver::State::setHasPendingShaders):
530         (WebCore::StyleResolver::State::hasPendingShaders):
531         (WebCore::StyleResolver::State::setLineHeightValue):
532         (WebCore::StyleResolver::State::lineHeightValue):
533         (WebCore::StyleResolver::State::setFontDirty):
534         (WebCore::StyleResolver::State::fontDirty):
535         (WebCore::StyleResolver::State::cacheBorderAndBackground):
536         (WebCore::StyleResolver::State::hasUAAppearance):
537         (WebCore::StyleResolver::State::borderData):
538         (WebCore::StyleResolver::State::backgroundData):
539         (WebCore::StyleResolver::State::backgroundColor):
540         (WebCore::StyleResolver::State::fontDescription):
541         (WebCore::StyleResolver::State::parentFontDescription):
542         (WebCore::StyleResolver::State::setFontDescription):
543         (WebCore::StyleResolver::State::setZoom):
544         (WebCore::StyleResolver::State::setEffectiveZoom):
545         (WebCore::StyleResolver::State::setTextSizeAdjust):
546         (WebCore::StyleResolver::State::setWritingMode):
547         (WebCore::StyleResolver::State::setTextOrientation):
548         fontDescription, ... and setTextOrientation were moved from
549         StyleResolver.
550         (WebCore::StyleResolver::State::matchedRules):
551         (WebCore::StyleResolver::State::addMatchedRule):
552         Moved from StyleResolver.
553         (WebCore::StyleResolver::applyPropertyToRegularStyle):
554         (WebCore::StyleResolver::applyPropertyToVisitedLinkStyle):
555         (WebCore::StyleResolver::fontDescription):
556         (WebCore::StyleResolver::parentFontDescription):
557         (WebCore::StyleResolver::setFontDescription):
558         (WebCore::StyleResolver::setZoom):
559         (WebCore::StyleResolver::setEffectiveZoom):
560         (WebCore::StyleResolver::setTextSizeAdjust):
561         (WebCore::StyleResolver::setWritingMode):
562         (WebCore::StyleResolver::setTextOrientation):
563         These fontDescription, ..., setTextOrientation are wrappers to
564         invoke State's methods. StyleBuilder still depends on StyleResolver
565         and invokes these methods. So we need these wrappers.
566
567 2013-02-13  Allan Sandfeld Jensen  <allan.jensen@digia.com>
568
569         [Qt] window.open passes height and width parameters even if not defined in a page
570         https://bugs.webkit.org/show_bug.cgi?id=107705
571
572         Reviewed by Kenneth Rohde Christiansen.
573
574         Do not override width or height of 0, as that indicates default size, and not minimum size.
575
576         Tested by tst_qwebpage.
577
578         * page/DOMWindow.cpp:
579         (WebCore::DOMWindow::adjustWindowRect):
580
581 2013-02-13  Rashmi Shyamasundar  <rashmi.s2@samsung.com>
582
583         The 2D Canvas functions fillText()/strokeText() should display nothing when maxWidth is less then or equal to zero
584         https://bugs.webkit.org/show_bug.cgi?id=102656
585
586         Reviewed by Dirk Schulze.
587
588         The functions fillText()/strokeText() should not display anything when 
589         maxWidth is less than or equal to zero, according to spec :
590         http://www.w3.org/TR/2dcontext/#text-preparation-algorithm
591
592         Test: fast/canvas/canvas-fillText-maxWidth-zero.html
593
594         * html/canvas/CanvasRenderingContext2D.cpp:
595         (WebCore::CanvasRenderingContext2D::drawTextInternal):
596
597 2013-02-13  ChangSeok Oh  <shivamidow@gmail.com>
598
599         [GTK][AC] Implement basic transform animations with clutter ac backend
600         https://bugs.webkit.org/show_bug.cgi?id=109363
601
602         Reviewed by Gustavo Noronha Silva.
603
604         Implement basic transform animation with clutter ac backend.
605         GraphicsLayerClutter is almost same with GraphicsLayerCA. And PlatformClutterAnimation
606         interfaces are also similar with PlatformCAAnimation, but they are implemented
607         with native clutter APIs. Clutter backend AC supports a basic single transform animation
608         with this patch now, but additive animation combination and keyframe animation
609         are not supported yet.
610
611         Covered by existing animation tests.
612
613         * platform/graphics/clutter/GraphicsLayerActor.cpp:
614         (graphicsLayerActorSetTransform):
615         * platform/graphics/clutter/GraphicsLayerClutter.cpp:
616         (WebCore::isTransformTypeTransformationMatrix):
617         (WebCore):
618         (WebCore::isTransformTypeFloatPoint3D):
619         (WebCore::isTransformTypeNumber):
620         (WebCore::getTransformFunctionValue):
621         (WebCore::getValueFunctionNameForTransformOperation):
622         (WebCore::GraphicsLayerClutter::setTransformAnimationEndpoints):
623         (WebCore::GraphicsLayerClutter::appendToUncommittedAnimations):
624         (WebCore::GraphicsLayerClutter::createTransformAnimationsFromKeyframes):
625         * platform/graphics/clutter/GraphicsLayerClutter.h:
626         (GraphicsLayerClutter):
627         * platform/graphics/clutter/PlatformClutterAnimation.cpp:
628         (WebCore::toClutterActorPropertyString):
629         (WebCore):
630         (WebCore::PlatformClutterAnimation::supportsValueFunction):
631         (WebCore::PlatformClutterAnimation::duration):
632         (WebCore::PlatformClutterAnimation::setDuration):
633         (WebCore::PlatformClutterAnimation::setAdditive):
634         (WebCore::PlatformClutterAnimation::valueFunction):
635         (WebCore::PlatformClutterAnimation::setValueFunction):
636         (WebCore::PlatformClutterAnimation::setFromValue):
637         (WebCore::PlatformClutterAnimation::setToValue):
638         (WebCore::PlatformClutterAnimation::timeline):
639         (WebCore::PlatformClutterAnimation::addClutterTransitionForProperty):
640         (WebCore::PlatformClutterAnimation::addOpacityTransition):
641         (WebCore::PlatformClutterAnimation::addTransformTransition):
642         (WebCore::PlatformClutterAnimation::addAnimationForKey):
643         * platform/graphics/clutter/PlatformClutterAnimation.h:
644         (PlatformClutterAnimation):
645
646 2013-02-13  Ilya Tikhonovsky  <loislo@chromium.org>
647
648         Web Inspector: Native Memory Instrumentation: reportLeaf method doesn't report the leaf node properly.
649         https://bugs.webkit.org/show_bug.cgi?id=109554
650
651         In some cases leaves have no pointer so with the old schema we can't generate nodeId for them because we
652         can't insert 0 into hashmap. It happens when we call addPrivateBuffer method.
653
654         Drive by fix: I introduced a client interface for the HeapGraphSerializer.
655         It helps me to do the tests for the serializer.
656
657         Reviewed by Yury Semikhatsky.
658
659         It is covered by newly added tests in TestWebKitAPI.
660
661         * inspector/HeapGraphSerializer.cpp:
662         (WebCore::HeapGraphSerializer::HeapGraphSerializer):
663         (WebCore::HeapGraphSerializer::pushUpdate):
664         (WebCore::HeapGraphSerializer::reportNode):
665         (WebCore::HeapGraphSerializer::toNodeId):
666         (WebCore::HeapGraphSerializer::addRootNode):
667         * inspector/HeapGraphSerializer.h:
668         (HeapGraphSerializer):
669         (Client):
670         (WebCore::HeapGraphSerializer::Client::~Client):
671         * inspector/InspectorMemoryAgent.cpp:
672         (WebCore):
673         (WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):
674
675 2013-02-13  Yury Semikhatsky  <yurys@chromium.org>
676
677         Web Inspector: add experimental native heap graph to Timeline panel
678         https://bugs.webkit.org/show_bug.cgi?id=109687
679
680         Reviewed by Alexander Pavlov.
681
682         Added experimentatl support for native heap graph on the Timeline panel.
683         Native memory usage data is collected after each top level task and can
684         be displayed instead of DOM counters graph on the Timeline panel if
685         corresponding experiment is enabled in the inspector settings.
686
687         * inspector/Inspector.json:
688         * inspector/InspectorController.cpp:
689         (WebCore::InspectorController::InspectorController):
690         * inspector/InspectorTimelineAgent.cpp:
691         (TimelineAgentState):
692         (WebCore::InspectorTimelineAgent::setIncludeDomCounters):
693         (WebCore):
694         (WebCore::InspectorTimelineAgent::setIncludeNativeMemoryStatistics):
695         (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
696         (WebCore::InspectorTimelineAgent::setDOMCounters):
697         (WebCore::InspectorTimelineAgent::setNativeHeapStatistics):
698         (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
699         * inspector/InspectorTimelineAgent.h:
700         (WebCore):
701         (WebCore::InspectorTimelineAgent::create):
702         (InspectorTimelineAgent):
703         * inspector/WorkerInspectorController.cpp:
704         (WebCore::WorkerInspectorController::WorkerInspectorController):
705         * inspector/front-end/MemoryStatistics.js:
706         (WebInspector.MemoryStatistics):
707         * inspector/front-end/NativeMemoryGraph.js:
708         (WebInspector.NativeMemoryGraph):
709         (WebInspector.NativeMemoryGraph.prototype._onRecordAdded.addStatistics):
710         (WebInspector.NativeMemoryGraph.prototype._onRecordAdded):
711         * inspector/front-end/Settings.js:
712         (WebInspector.ExperimentsSettings):
713         * inspector/front-end/TimelinePanel.js:
714
715 2013-02-13  Vladislav Kaznacheev  <kaznacheev@chromium.org>
716
717         Web Inspector: Fixed colorpicker editing and scrolling.
718         https://bugs.webkit.org/show_bug.cgi?id=109434.
719
720         Reviewed by Alexander Pavlov.
721
722         The color picker scrolling logic relied on the fixed DOM structure which changed with the introduction of
723         SidebarPaneStack (https://bugs.webkit.org/show_bug.cgi?id=108183).
724         Added a special CSS class to mark the scroll target.
725
726         No new tests.
727
728         * inspector/front-end/SplitView.js:
729         (WebInspector.SplitView):
730         * inspector/front-end/StylesSidebarPane.js:
731         (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
732         * inspector/front-end/TabbedPane.js:
733         (WebInspector.TabbedPane):
734  
735 2013-02-13  Andrey Lushnikov  <lushnikov@chromium.org>
736
737         Web Inspector: fix js compilation warnings in TextPrompt
738         https://bugs.webkit.org/show_bug.cgi?id=109685
739
740         Reviewed by Alexander Pavlov.
741
742         Mark last argument of _applySuggestion function as optional.
743
744         No new tests: no change in behaviour.
745
746         * inspector/front-end/TextPrompt.js:
747
748 2013-02-13  Pablo Flouret  <pablof@motorola.com>
749
750         Implement css-conditional's CSS.supports()
751         https://bugs.webkit.org/show_bug.cgi?id=100324
752
753         Reviewed by Antti Koivisto.
754
755         http://dev.w3.org/csswg/css3-conditional/#the-css-interface
756
757         The supports() method provides the css @supports rule's corresponding
758         dom api.
759         The patch also adds the CSS interface on DOMWindow, which holds "useful
760         CSS-related functions that do not belong elsewhere". This is where
761         supports() lives.
762
763         Test: css3/supports-dom-api.html
764
765         * CMakeLists.txt:
766         * DerivedSources.cpp:
767         * DerivedSources.make:
768         * DerivedSources.pri:
769         * GNUmakefile.list.am:
770         * Target.pri:
771         * WebCore.exp.in:
772         * WebCore.gypi:
773         * WebCore.vcproj/WebCore.vcproj:
774         * WebCore.xcodeproj/project.pbxproj:
775         * bindings/gobject/GNUmakefile.am:
776         * bindings/scripts/CodeGeneratorGObject.pm:
777         (SkipFunction):
778             Add DOMWindowCSS.* to the build systems.
779
780         * bindings/scripts/CodeGenerator.pm:
781         (WK_lcfirst):
782             Handle CSS prefixes correctly (s/cSS/css/).
783
784         * css/CSSGrammar.y.in:
785         * css/CSSParser.cpp:
786         (WebCore::CSSParser::CSSParser):
787         (WebCore::CSSParser::parseSupportsCondition):
788         (WebCore::CSSParser::detectAtToken):
789         * css/CSSParser.h:
790             webkit_supports_condition parses just the condition part of an
791             @supports rule and evaluates it, outputting whether the condition
792             is supported or not.
793
794         * css/CSSAllInOne.cpp:
795         * css/DOMWindowCSS.cpp: Added.
796         * css/DOMWindowCSS.h: Added.
797         * css/DOMWindowCSS.idl: Added.
798             The CSS interface object.
799
800         * page/DOMWindow.cpp:
801         (WebCore::DOMWindow::css):
802         * page/DOMWindow.h:
803         * page/DOMWindow.idl:
804             window.CSS
805
806 2013-02-13  Vladislav Kaznacheev  <kaznacheev@chromium.org>
807
808         Web Inspector: Simplify SplitView to rely more on CSS
809         https://bugs.webkit.org/show_bug.cgi?id=109426
810
811         Reviewed by Vsevolod Vlasov.
812
813         Simplified Javascript code by moving large part of the layout logic into CSS rules. The patch is larger than it
814         should be because one of the clients (TimelinePanel) is breaking SplitView incapsulation by reparenting its
815         resizer.
816
817         No new tests.
818
819         * inspector/front-end/SidebarView.js:
820         (WebInspector.SidebarView):
821         * inspector/front-end/SplitView.js:
822         (WebInspector.SplitView):
823         (WebInspector.SplitView.prototype._innerSetVertical):
824         (WebInspector.SplitView.prototype.setSecondIsSidebar):
825         (WebInspector.SplitView.prototype._showOnly):
826         (WebInspector.SplitView.prototype._removeAllLayoutProperties):
827         * inspector/front-end/TimelinePanel.js:
828         * inspector/front-end/cssNamedFlows.css:
829         (.css-named-flow-collections-view .split-view-sidebar):
830         (.css-named-flow-collections-view .split-view-sidebar .sidebar-content):
831         (.css-named-flow-collections-view .split-view-sidebar .selection):
832         (.css-named-flow-collections-view .split-view-sidebar .named-flow-overflow::before, .css-named-flow-collections-view .region-empty:before, .css-named-flow-collections-view .region-fit::before, .css-named-flow-collections-view .region-overset::before):
833         (.css-named-flow-collections-view .split-view-sidebar .named-flow-overflow::before):
834         * inspector/front-end/splitView.css:
835         (.split-view-contents.maximized):
836         (.split-view-vertical .split-view-contents):
837         (.split-view-vertical .split-view-contents-first):
838         (.split-view-vertical .split-view-contents-first.maximized):
839         (.split-view-vertical .split-view-contents-second):
840         (.split-view-vertical .split-view-contents-second.maximized):
841         (.split-view-horizontal .split-view-contents):
842         (.split-view-horizontal .split-view-contents-first):
843         (.split-view-horizontal .split-view-contents-first.maximized):
844         (.split-view-horizontal .split-view-contents-second):
845         (.split-view-horizontal .split-view-contents-second.maximized):
846         (.split-view-vertical .split-view-sidebar.split-view-contents-first:not(.maximized)):
847         (.split-view-vertical .split-view-sidebar.split-view-contents-second:not(.maximized)):
848         (.split-view-horizontal .split-view-sidebar.split-view-contents-first:not(.maximized)):
849         (.split-view-horizontal .split-view-sidebar.split-view-contents-second:not(.maximized)):
850         (.split-view-vertical .split-view-resizer):
851         (.split-view-horizontal .split-view-resizer):
852         * inspector/front-end/timelinePanel.css:
853         (.timeline.split-view-vertical .split-view-resizer):
854         (#timeline-container .split-view-sidebar):
855
856 2013-02-13  Kentaro Hara  <haraken@chromium.org>
857
858         Unreviewed, rolling out r142730.
859         http://trac.webkit.org/changeset/142730
860         https://bugs.webkit.org/show_bug.cgi?id=109666
861
862         chromium browser tests are failing
863
864         * bindings/scripts/CodeGeneratorV8.pm:
865         (GenerateNormalAttrGetter):
866         (GenerateNormalAttrSetter):
867         (GenerateSingleBatchedAttribute):
868         (GenerateImplementation):
869         * bindings/scripts/test/V8/V8TestInterface.cpp:
870         (TestInterfaceV8Internal):
871         (WebCore):
872         * bindings/scripts/test/V8/V8TestObj.cpp:
873         (WebCore):
874
875 2013-02-13  Tamas Czene  <tczene@inf.u-szeged.hu>
876
877         OpenCL implementation of Flood SVG filters.
878         https://bugs.webkit.org/show_bug.cgi?id=109580
879
880         Reviewed by Zoltan Herczeg.
881
882         * Target.pri:
883         * platform/graphics/filters/FEFlood.h:
884         (FEFlood):
885         * platform/graphics/gpu/opencl/FilterContextOpenCL.cpp:
886         (WebCore):
887         (WebCore::PROGRAM_STR):
888         (WebCore::FilterContextOpenCL::compileFill):
889         (WebCore::FilterContextOpenCL::fill):
890         * platform/graphics/gpu/opencl/FilterContextOpenCL.h:
891         (WebCore::FilterContextOpenCL::FilterContextOpenCL):
892         (FilterContextOpenCL):
893         * platform/graphics/gpu/opencl/OpenCLFEFlood.cpp: Added.
894         (WebCore):
895         (WebCore::FEFlood::platformApplyOpenCL):
896
897 2013-02-13  Mike West  <mkwst@chromium.org>
898
899         location.href does not throw SECURITY_ERR when accessed across origins with JSC bindings
900         https://bugs.webkit.org/show_bug.cgi?id=43891
901
902         Reviewed by Adam Barth.
903
904         Other browsers (IE, Firefox, and Opera) throw an exception when accessing
905         properties of a Location object across origins, as the spec suggests[1].
906         WebKit is currently the outlier.
907
908         This has a few negative effects: developers are forced to hack around
909         access violations in two ways rather than having a single code path, and
910         (more annoyingly) developers are unable to avoid generating the error
911         message. See every ad on the internet for the effect on the console. :)
912
913         This patch adds a SECURITY_ERR exception to these access violations,
914         which is the first step towards getting rid of the console spam. Getting
915         rid of the message entirely will require a solution to
916         http://wkbug.com/98050.
917
918         A fairly inconclusive thread[2] on webkit-dev popped up in 2010 and
919         trailed off without reaching conclusion. A more recent thread reached
920         agreement that this patch seems like a reasonable thing to do[3].
921
922         This is the JSC half of the patch. V8 is coming in http://wkbug.com/43892
923
924         [1]: http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#security-location
925         [2]: https://lists.webkit.org/pipermail/webkit-dev/2010-August/013880.html
926         [2]: https://lists.webkit.org/pipermail/webkit-dev/2012-February/023636.html
927
928         * bindings/js/JSLocationCustom.cpp:
929         (WebCore::JSLocation::getOwnPropertySlotDelegate):
930
931 2013-02-13  Andrew Wilson  <atwilson@chromium.org>
932
933         Unreviewed Chromium gyp-file cleanup after glib backend removal.
934         https://bugs.webkit.org/show_bug.cgi?id=109672
935
936         Removed references to GLib unicode backend:
937
938         * WebCore.gypi:
939
940 2013-02-12  Kentaro Hara  <haraken@chromium.org>
941
942         [V8] Generate wrapper methods for custom getters/setters
943         https://bugs.webkit.org/show_bug.cgi?id=109666
944
945         Reviewed by Adam Barth.
946
947         Currently V8 directly calls back custom getters/setters written
948         in custom binding files. This makes it impossible for code generators
949         to hook custom getters/setters (e.g. Code generators cannot insert a code
950         for FeatureObservation into custom getters/setters). We should generate
951         wrapper methods for custom getters/setters.
952
953         In the future, I will insert TRACE_EVENT() macros into these wrapper methods
954         to profile DOM getters/setters/methods.
955
956         * bindings/scripts/CodeGeneratorV8.pm:
957         (GenerateNormalAttrGetter):
958         (GenerateNormalAttrSetter):
959         (GenerateSingleBatchedAttribute):
960         (GenerateImplementation):
961         * bindings/scripts/test/V8/V8TestInterface.cpp:
962         (WebCore::TestInterfaceV8Internal::supplementalStr3AttrGetter):
963         (TestInterfaceV8Internal):
964         (WebCore::TestInterfaceV8Internal::supplementalStr3AttrSetter):
965         (WebCore):
966         * bindings/scripts/test/V8/V8TestObj.cpp:
967         (WebCore::TestObjV8Internal::customAttrAttrGetter):
968         (TestObjV8Internal):
969         (WebCore::TestObjV8Internal::customAttrAttrSetter):
970         (WebCore):
971
972 2013-02-13  Sheriff Bot  <webkit.review.bot@gmail.com>
973
974         Unreviewed, rolling out r142611.
975         http://trac.webkit.org/changeset/142611
976         https://bugs.webkit.org/show_bug.cgi?id=109668
977
978         Suggest box is not shown anymore when user types "window." in
979         inspector console. (Requested by vsevik on #webkit).
980
981         * inspector/front-end/TextPrompt.js:
982         (WebInspector.TextPrompt.prototype.complete):
983
984 2013-02-13  Kentaro Hara  <haraken@chromium.org>
985
986         [V8] There is no XXXConstructor that requires a custom getter
987         https://bugs.webkit.org/show_bug.cgi?id=109667
988
989         Reviewed by Adam Barth.
990
991         Currently '[Custom] attribute XXXConstructor xxx' generates
992         XXXAttrGetter(). However, there is no XXXConstructor with [Custom].
993         In addition, it does make no sense to generate XXXAttrGetter() for such cases.
994         We can remove the logic from CodeGeneratorV8.pm.
995
996         * bindings/scripts/CodeGeneratorV8.pm:
997         (GenerateSingleBatchedAttribute):
998
999 2013-02-12  Hajime Morrita  <morrita@google.com>
1000
1001         [Internals] setShadowDOMEnabled() shouldn't be used except a few tests.
1002         https://bugs.webkit.org/show_bug.cgi?id=109642
1003
1004         Reviewed by Kent Tamura.
1005
1006         InternalSettings.setShadowDOMEnabled() shouldn't be called after
1007         any relevant DOM bindings are touched. However for fuzzers, it
1008         isn't trivial to regulate its behavior.
1009
1010         This change whitelists the URL of running test for prevent
1011         unintended API calls. This doesn't hurt the Internals usability
1012         since the API is called from just a couple of tests and the number
1013         isn't expected to grow.
1014
1015         Test: fast/dom/shadow/shadow-dom-enabled-flag-whitelist.html
1016
1017         * testing/InternalSettings.cpp:
1018         (WebCore::urlIsWhitelisted):
1019         (WebCore):
1020         (WebCore::InternalSettings::setShadowDOMEnabled):
1021
1022 2013-02-12  Vsevolod Vlasov  <vsevik@chromium.org>
1023
1024         Web Inspector: Introduce version controller to migrate settings versions.
1025         https://bugs.webkit.org/show_bug.cgi?id=109553
1026
1027         Reviewed by Yury Semikhatsky.
1028
1029         This patch introduces version controller that could be used to migrate inspector settings.
1030
1031         Test: inspector/version-controller.html
1032
1033         * inspector/front-end/Settings.js:
1034         (WebInspector.Settings):
1035         (WebInspector.VersionController):
1036         (WebInspector.VersionController.prototype.set _methodsToRunToUpdateVersion):
1037         (WebInspector.VersionController.prototype._updateVersionFrom0To1):
1038         * inspector/front-end/inspector.js:
1039
1040 2013-02-12  Martin Robinson  <mrobinson@igalia.com>
1041
1042         [GTK] Remove the GLib unicode backend
1043         https://bugs.webkit.org/show_bug.cgi?id=109627
1044
1045         Reviewed by Benjamin Poulain.
1046
1047         Remove references to the GLib unicode backend from WebCore.
1048
1049         * GNUmakefile.list.am: Update the source list.
1050         * platform/text/gtk/TextBreakIteratorGtk.cpp: Removed.
1051         * platform/text/gtk/TextCodecGtk.cpp: Removed.
1052         * platform/text/gtk/TextCodecGtk.h: Removed.
1053
1054 2013-02-12  Chris Fleizach  <cfleizach@apple.com>
1055
1056          AX: crash when accessing AccessibilityScrollbar after page has been unloaded
1057          https://bugs.webkit.org/show_bug.cgi?id=109524
1058
1059          Reviewed by Ryosuke Niwa.
1060
1061          AX clients can hold onto AccesibilityScrollbar references that reference parent
1062          AccessibilityScrollViews that have already gone away.
1063
1064          AccessibilityScrollView is not calling detachFromParent after it is removed, which
1065          leads to a crash. The fix is to clearChildren() when an object is deallocated.
1066
1067          I could not create a test because the crash only manifests over multiple page loads.
1068
1069          * accessibility/AccessibilityObject.cpp:
1070          (WebCore::AccessibilityObject::detach):
1071
1072 2013-02-12  Hayato Ito  <hayato@chromium.org>
1073
1074         Use FocusEvent.relatedTarget in {FocusIn,FocusOut,Focus,Blur}EventDispatchMediator.
1075         https://bugs.webkit.org/show_bug.cgi?id=109650
1076
1077         Reviewed by Dimitri Glazkov.
1078
1079         Set FocusEvent.relatedTarget in its constructor so that each
1080         EventDispatchMediator can use FocusEvent.relatedTarget rather than
1081         its redundant m_{old,new}FocusedNode member variable.
1082
1083         I've also removed FIXME comments, mentioning bug 109261, since I
1084         can not reproduce the issue.
1085
1086         No new tests. No change in functionality.
1087
1088         * dom/FocusEvent.cpp:
1089         (WebCore::FocusEventDispatchMediator::create):
1090         (WebCore::FocusEventDispatchMediator::FocusEventDispatchMediator):
1091         (WebCore::FocusEventDispatchMediator::dispatchEvent):
1092         (WebCore::BlurEventDispatchMediator::create):
1093         (WebCore::BlurEventDispatchMediator::BlurEventDispatchMediator):
1094         (WebCore::BlurEventDispatchMediator::dispatchEvent):
1095         (WebCore::FocusInEventDispatchMediator::create):
1096         (WebCore::FocusInEventDispatchMediator::FocusInEventDispatchMediator):
1097         (WebCore::FocusInEventDispatchMediator::dispatchEvent):
1098         (WebCore::FocusOutEventDispatchMediator::create):
1099         (WebCore::FocusOutEventDispatchMediator::FocusOutEventDispatchMediator):
1100         (WebCore::FocusOutEventDispatchMediator::dispatchEvent):
1101         * dom/FocusEvent.h:
1102         (FocusEventDispatchMediator):
1103         (BlurEventDispatchMediator):
1104         (FocusInEventDispatchMediator):
1105         (FocusOutEventDispatchMediator):
1106         * dom/Node.cpp:
1107         (WebCore::Node::dispatchFocusInEvent):
1108         (WebCore::Node::dispatchFocusOutEvent):
1109         (WebCore::Node::dispatchFocusEvent):
1110         (WebCore::Node::dispatchBlurEvent):
1111
1112 2013-02-12  Takashi Sakamoto  <tasak@google.com>
1113
1114         [Refactoring] Make SelectorChecker::mode a constructor parameter.
1115         https://bugs.webkit.org/show_bug.cgi?id=109653
1116
1117         Reviewed by Dimitri Glazkov.
1118
1119         No new tests, because just refactoring.
1120
1121         * css/SelectorChecker.cpp:
1122         (WebCore::SelectorChecker::SelectorChecker):
1123         Made mode a constructor parameter.
1124         * css/SelectorChecker.h:
1125         Removed setMode.
1126         (SelectorChecker):
1127         * css/StyleResolver.cpp:
1128         (WebCore::StyleResolver::ruleMatches):
1129         (WebCore::StyleResolver::checkRegionSelector):
1130         * dom/SelectorQuery.cpp:
1131         (WebCore::SelectorQuery::matches):
1132         (WebCore::SelectorQuery::queryAll):
1133         (WebCore::SelectorQuery::queryFirst):
1134         * html/shadow/ContentSelectorQuery.cpp:
1135         (WebCore::ContentSelectorChecker::ContentSelectorChecker):
1136
1137 2013-02-12  Andreas Kling  <akling@apple.com>
1138
1139         Remove Element::ensureAttributeData().
1140         <http://webkit.org/b/109643>
1141
1142         Reviewed by Anders Carlsson.
1143
1144         * dom/Element.h:
1145         * dom/Element.cpp:
1146         (WebCore::Element::classAttributeChanged):
1147         (WebCore::Element::shouldInvalidateDistributionWhenAttributeChanged):
1148
1149             Use attributeData() instead of ensureAttributeData(), it's already guaranteed to exist in
1150             both these functions as they are called in response to attribute changes.
1151
1152         * svg/SVGElement.h:
1153         (WebCore::SVGElement::invalidateSVGAttributes):
1154
1155             Use mutableAttributeData() instead of ensureAttributeData() when invalidating animated
1156             SVG attributes. While I can't find any bugs caused by this, an element with property animations
1157             shouldn't share attribute data with other elements.
1158
1159 2013-02-12  Hayato Ito  <hayato@chromium.org>
1160
1161         Make {FocusIn,FocusOut,Focus,Blur}EventDispatchMediator type safe.
1162         https://bugs.webkit.org/show_bug.cgi?id=109561
1163
1164         Reviewed by Dimitri Glazkov.
1165
1166         Use FocusEvent rather than Event in {FocusIn,FocusOut,Focus,Blur}EventDispatchMediator.
1167
1168         No new tests. No change in functionality.
1169
1170         * dom/FocusEvent.cpp:
1171         (WebCore::FocusEventDispatchMediator::create):
1172         (WebCore::FocusEventDispatchMediator::FocusEventDispatchMediator):
1173         (WebCore::BlurEventDispatchMediator::create):
1174         (WebCore::BlurEventDispatchMediator::BlurEventDispatchMediator):
1175         (WebCore::FocusInEventDispatchMediator::create):
1176         (WebCore::FocusInEventDispatchMediator::FocusInEventDispatchMediator):
1177         (WebCore::FocusOutEventDispatchMediator::create):
1178         (WebCore::FocusOutEventDispatchMediator::FocusOutEventDispatchMediator):
1179         * dom/FocusEvent.h:
1180         (FocusEventDispatchMediator):
1181         (WebCore::FocusEventDispatchMediator::event):
1182         (BlurEventDispatchMediator):
1183         (WebCore::BlurEventDispatchMediator::event):
1184         (FocusInEventDispatchMediator):
1185         (WebCore::FocusInEventDispatchMediator::event):
1186         (FocusOutEventDispatchMediator):
1187         (WebCore::FocusOutEventDispatchMediator::event):
1188
1189 2013-02-12  Eric Seidel  <eric@webkit.org>
1190
1191         Fix HTMLToken::Attribute member naming and update callsites to use Vector-based String functions
1192         https://bugs.webkit.org/show_bug.cgi?id=109638
1193
1194         Reviewed by Adam Barth.
1195
1196         Darin Adler noted in:
1197         https://bugs.webkit.org/show_bug.cgi?id=109408#c4
1198         that HTMLToken::Attribute (then MarkupTokenBase::Attribute)
1199         was a struct, yet incorrectly used m_ for its public members.
1200
1201         This patch fixes the members to not have the m_, and since I was
1202         touching all callers, I also updated all callers to use modern
1203         Vector-based String creation/append functions instead of manually
1204         calling UChar*, size_t versions.
1205
1206         There should be no behavior change to this patch.  Where I saw
1207         performance/memory bugs, I noted them with FIXMEs to keep
1208         this change simple.
1209
1210         * html/HTMLViewSourceDocument.cpp:
1211         (WebCore::HTMLViewSourceDocument::processTagToken):
1212         * html/parser/AtomicHTMLToken.h:
1213         (WebCore::AtomicHTMLToken::publicIdentifier):
1214         (WebCore::AtomicHTMLToken::systemIdentifier):
1215         (WebCore::AtomicHTMLToken::AtomicHTMLToken):
1216         (WebCore::AtomicHTMLToken::initializeAttributes):
1217         * html/parser/CompactHTMLToken.cpp:
1218         (WebCore::CompactHTMLToken::CompactHTMLToken):
1219         * html/parser/HTMLMetaCharsetParser.cpp:
1220         (WebCore::HTMLMetaCharsetParser::processMeta):
1221         (WebCore::HTMLMetaCharsetParser::checkForMetaCharset):
1222         * html/parser/HTMLPreloadScanner.cpp:
1223         (WebCore::StartTagScanner::processAttributes):
1224         (WebCore::HTMLPreloadScanner::scan):
1225         (WebCore::HTMLPreloadScanner::processPossibleBaseTag):
1226         (WebCore::HTMLPreloadScanner::processToken):
1227         * html/parser/HTMLToken.h:
1228         (Range):
1229         (Attribute):
1230         (WebCore::HTMLToken::clear):
1231         (WebCore::HTMLToken::startIndex):
1232         (WebCore::HTMLToken::endIndex):
1233         (WebCore::HTMLToken::end):
1234         (WebCore::HTMLToken::nameString):
1235         (WebCore::HTMLToken::addNewAttribute):
1236         (WebCore::HTMLToken::beginAttributeName):
1237         (WebCore::HTMLToken::endAttributeName):
1238         (WebCore::HTMLToken::beginAttributeValue):
1239         (WebCore::HTMLToken::endAttributeValue):
1240         (WebCore::HTMLToken::appendToAttributeName):
1241         (WebCore::HTMLToken::appendToAttributeValue):
1242         (WebCore::HTMLToken::eraseValueOfAttribute):
1243         * html/parser/HTMLTokenizer.cpp:
1244         (WebCore::AtomicHTMLToken::nameForAttribute):
1245         * html/parser/HTMLViewSourceParser.cpp:
1246         (WebCore::HTMLViewSourceParser::updateTokenizerState):
1247         * html/parser/XSSAuditor.cpp:
1248         (WebCore::findAttributeWithName):
1249         (WebCore::XSSAuditor::filterParamToken):
1250         (WebCore::XSSAuditor::eraseDangerousAttributesIfInjected):
1251         (WebCore::XSSAuditor::eraseAttributeIfInjected):
1252         (WebCore::XSSAuditor::decodedSnippetForAttribute):
1253
1254 2013-02-12  Ryosuke Niwa  <rniwa@webkit.org>
1255
1256         Build fix.
1257
1258         * editing/Editor.h:
1259         (WebCore::Editor::avoidIntersectionWithDeleteButtonController):
1260
1261 2013-02-12  Nate Chapin  <japhet@chromium.org>
1262
1263         REGRESSION: Reloading a local file doesn't pick up changes
1264         https://bugs.webkit.org/show_bug.cgi?id=109344
1265
1266         Reviewed by Alexey Proskuryakov.
1267
1268         Test: http/tests/cache/reload-main-resource.php
1269
1270         * loader/cache/CachedResource.cpp:
1271         (WebCore::CachedResource::load):
1272         * loader/cache/CachedResourceLoader.cpp:
1273         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
1274         (WebCore::CachedResourceLoader::cachePolicy): Don't use subresourceCachePolicy()
1275             for main resources.
1276         * loader/cache/CachedResourceLoader.h:
1277         (CachedResourceLoader):
1278
1279 2013-02-12  Ryosuke Niwa  <rniwa@webkit.org>
1280
1281         Turn avoidIntersectionWithNode into Editor member functions to encapsulate delete button controller
1282         https://bugs.webkit.org/show_bug.cgi?id=109549
1283
1284         Reviewed by Tony Chang.
1285
1286         Renamed avoidIntersectionWithNode to Editor::avoidIntersectionWithDeleteButtonController and added trivial
1287         implementations when delete button controllers are disabled (ENABLE_DELETION_UI is 0).
1288
1289         * editing/DeleteButtonController.cpp:
1290         * editing/EditCommand.cpp:
1291         (WebCore::EditCommand::EditCommand):
1292         * editing/Editor.cpp:
1293         (WebCore::Editor::avoidIntersectionWithDeleteButtonController): Moved from htmlediting.cpp and renamed.
1294         The version that takes VisibleSelection has been updated to use updatePositionForNodeRemoval to share
1295         mode code with that function.
1296         (WebCore::Editor::rangeForPoint):
1297         * editing/Editor.h:
1298         (WebCore::Editor::avoidIntersectionWithDeleteButtonController): Added; trivial implementations.
1299         * editing/htmlediting.cpp:
1300         * editing/htmlediting.h:
1301         * editing/markup.cpp:
1302         (WebCore::createMarkupInternal): Extracted from createMarkup.
1303         (WebCore::createMarkup):
1304
1305 2013-02-12  Joseph Pecoraro  <pecoraro@apple.com>
1306
1307         [iOS] Enable PAGE_VISIBILITY_API
1308         https://bugs.webkit.org/show_bug.cgi?id=109399
1309
1310         Reviewed by David Kilzer.
1311
1312         * Configurations/FeatureDefines.xcconfig:
1313
1314 2013-02-12  Andreas Kling  <akling@apple.com>
1315
1316         Move ElementAttributeData into Element.cpp/h
1317         <http://webkit.org/b/109610>
1318
1319         Reviewed by Anders Carlsson.
1320
1321         Removed ElementAttributeData.cpp/h and moved the class itself into Element headquarters.
1322         In the near future, Element should be the only client of this class, and thus it won't
1323         be necessary for other classes to know anything about it.
1324
1325         * dom/ElementAttributeData.cpp: Removed.
1326         * dom/ElementAttributeData.h: Removed.
1327         * CMakeLists.txt:
1328         * GNUmakefile.list.am:
1329         * Target.pri:
1330         * WebCore.gypi:
1331         * WebCore.xcodeproj/project.pbxproj:
1332         * dom/DOMAllInOne.cpp:
1333         * dom/DocumentSharedObjectPool.cpp:
1334         * dom/Element.cpp:
1335         * dom/Element.h:
1336         * workers/SharedWorker.cpp:
1337         * Modules/webdatabase/DatabaseManager.cpp: Add ExceptionCode.h since Element.h doesn't pull it in anymore.
1338
1339 2013-02-12  Simon Fraser  <simon.fraser@apple.com>
1340
1341         Crash when scrolling soon after page starts loading
1342         https://bugs.webkit.org/show_bug.cgi?id=109631
1343         <rdar://problem/13157533&13159627&13196727>
1344         
1345         Reviewed by Anders Carlsson.
1346         
1347         Make the scrolling tree more robust when the root state node,
1348         and/or scrolling node are null. This can happen if we try to
1349         handle a wheel event before we've done the first scrolling
1350         tree commit.
1351
1352         * page/scrolling/ScrollingStateTree.cpp:
1353         (WebCore::ScrollingStateTree::commit): Handle the case where
1354         m_rootStateNode is null. We'll still commit, but the state tree
1355         will have no state nodes.
1356         * page/scrolling/ScrollingTree.cpp:
1357         (WebCore::ScrollingTree::handleWheelEvent): Null-check m_rootNode.
1358         (WebCore::ScrollingTree::commitNewTreeState): Handle a null root node.
1359         (WebCore::ScrollingTree::updateTreeFromStateNode): If the rood state node
1360         is null, just clear the map and null out the root scrolling node.
1361         * page/scrolling/ScrollingTree.h: m_debugInfoLayer was unused.
1362         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
1363         (WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView): It may be possible
1364         to get here before we've registered the root scroll layer, in which case scrollLayerID()
1365         will be 0. Assert to see if this can ever happen.
1366         (WebCore::ScrollingCoordinatorMac::scrollingStateTreeAsText): Handle case of rootStateNode()
1367         being null.
1368
1369 2013-02-12  Raymond Toy  <rtoy@google.com>
1370
1371         Synchronize setting of panner node model and processing
1372         https://bugs.webkit.org/show_bug.cgi?id=109599
1373
1374         Reviewed by Chris Rogers.
1375
1376         No new tests.
1377
1378         * Modules/webaudio/PannerNode.cpp:
1379         (WebCore::PannerNode::process):
1380         (WebCore::PannerNode::setPanningModel):
1381         * Modules/webaudio/PannerNode.h:
1382
1383 2013-02-12  Dean Jackson  <dino@apple.com>
1384
1385         Add class name for snapshotted plugin based on dimensions
1386         https://bugs.webkit.org/show_bug.cgi?id=108369
1387
1388         Reviewed by Simon Fraser.
1389
1390         As the size of the plugin changes, the Shadow Root for the snapshot
1391         might want to toggle different interfaces. Expose "tiny", "small",
1392         "medium" and "large" classes on the Shadow. (The dimensions are
1393         currently chosen fairly arbitrarily).
1394
1395         Because we only know the dimensions after layout, we set up
1396         a post layout task to add the class. Luckily there already was
1397         a post layout task for plugins - I just updated it to handle
1398         both real and snapshotted plugins. This involved modifying
1399         the list of RenderEmbeddedObjects in FrameView to take generic
1400         RenderObjects, and decide which type they are when calling
1401         the update method.
1402
1403         * html/HTMLPlugInImageElement.cpp: Some new dimensions for the various size thresholds.
1404         (WebCore::classNameForShadowRootSize): New static function that returns a class name
1405             after examining the size of the object.
1406         (WebCore::HTMLPlugInImageElement::updateSnapshotInfo): Sets the class name for
1407             the shadow root. This is called in the post layout task.
1408         (WebCore::shouldPlugInShowLabelAutomatically): Use new size names.
1409         (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Ditto.
1410         * html/HTMLPlugInImageElement.h:
1411         (HTMLPlugInImageElement): New method updateSnapshotInfo.
1412
1413         * page/FrameView.cpp:
1414         (WebCore::FrameView::addWidgetToUpdate): Change RenderEmbeddedObject* to RenderObject*.
1415         (WebCore::FrameView::removeWidgetToUpdate): Ditto
1416         (WebCore::FrameView::updateWidget): Branch based on EmbeddedObject vs SnapshottedPlugIn. Call
1417             plugin snapshot update if necessary.
1418         (WebCore::FrameView::updateWidgets): Handle both EmbeddedObject and SnapshottedPlugIn cases.
1419         * page/FrameView.h: Change RenderEmbeddedObject* to RenderObject* for post layout widget updates.
1420
1421         * rendering/RenderSnapshottedPlugIn.cpp:
1422         (WebCore::RenderSnapshottedPlugIn::layout): New virtual override. If size has changed, ask the
1423             FrameView to recalculate size after layout.
1424         * rendering/RenderSnapshottedPlugIn.h: New layout() method.
1425
1426 2013-02-12  Mike West  <mkwst@chromium.org>
1427
1428         Implement script MIME restrictions for X-Content-Type-Options: nosniff
1429         https://bugs.webkit.org/show_bug.cgi?id=71851
1430
1431         Reviewed by Adam Barth.
1432
1433         This patch adds support for 'X-Content-Type-Options: nosniff' when
1434         deciding whether or not to execute a given chunk of JavaScript. If the
1435         header is present, script will only execute if it matches a predefined
1436         set of MIME types[1] that are deemed "executable". Scripts served with
1437         types that don't match the list will not execute.
1438
1439         IE introduced this feature, and Gecko is working on an implementation[2]
1440         now. There's been some discussion on the WHATWG list about formalizing
1441         the specification for this feature[3], but nothing significant has been
1442         decided.
1443
1444         This implementation's list of acceptible MIME types differs from IE's:
1445         it matches the list of supported JavaScript MIME types defined in
1446         MIMETypeRegistry::initializeSupportedJavaScriptMIMETypes()[4]. In
1447         particular, the VBScript types are not accepted, and
1448         'text/javascript1.{1,2,3}' are accepted, along with 'text/livescript'.
1449
1450         This feature is locked tightly behind the ENABLE_NOSNIFF flag, which is
1451         currently only enabled on the Chromium port.
1452
1453         [1]: http://msdn.microsoft.com/en-us/library/gg622941(v=vs.85).aspx
1454         [2]: https://bugzilla.mozilla.org/show_bug.cgi?id=471020
1455         [3]: http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-November/037974.html
1456         [4]: http://trac.webkit.org/browser/trunk/Source/WebCore/platform/MIMETypeRegistry.cpp?rev=142086#L307
1457
1458         Tests: http/tests/security/contentTypeOptions/invalid-content-type-options-allowed.html
1459                http/tests/security/contentTypeOptions/nosniff-script-allowed.html
1460                http/tests/security/contentTypeOptions/nosniff-script-blocked.html
1461                http/tests/security/contentTypeOptions/nosniff-script-without-content-type-allowed.html
1462
1463         * dom/ScriptElement.cpp:
1464         (WebCore::ScriptElement::executeScript):
1465             Before executing script, ensure that it shouldn't be blocked due to
1466             its MIME type. If it is blocked, write an error message to the
1467             console.
1468         * loader/cache/CachedScript.cpp:
1469         (WebCore::CachedScript::mimeType):
1470             Make scripts' MIME type available outside the context of
1471             CachedScript in order to correctly populate error messages we write
1472             to the console in ScriptElement::executeScript
1473         (WebCore):
1474         (WebCore::CachedScript::mimeTypeAllowedByNosniff):
1475         * loader/cache/CachedScript.h:
1476         (CachedScript):
1477             A new method which checks the resource's HTTP headers to set the
1478             'nosniff' disposition, and compares the resource's MIME type against
1479             the list of allowed executable types. Returns true iff the script
1480             is allowed.
1481         * platform/network/HTTPParsers.cpp:
1482         (WebCore):
1483         (WebCore::parseContentTypeOptionsHeader):
1484         * platform/network/HTTPParsers.h:
1485             Adds a new enum which relates the sniffable status of the resource,
1486             and a method to parse the HTTP header.
1487
1488 2013-02-12  Adam Barth  <abarth@webkit.org>
1489
1490         Threaded HTML parser should pass the remaining fast/tokenizer tests
1491         https://bugs.webkit.org/show_bug.cgi?id=109607
1492
1493         Reviewed by Eric Seidel.
1494
1495         This patch fixes some edge cases involving document.write. Previously,
1496         we would drop input characters on the floor if the tokenizer wasn't
1497         able to consume them synchronously. In this patch, we send the unparsed
1498         characters to the background thread for consumption after rewinding the
1499         input stream.
1500
1501         * html/parser/BackgroundHTMLInputStream.cpp:
1502         (WebCore::BackgroundHTMLInputStream::rewindTo):
1503         * html/parser/BackgroundHTMLInputStream.h:
1504         (BackgroundHTMLInputStream):
1505         * html/parser/BackgroundHTMLParser.cpp:
1506         (WebCore::BackgroundHTMLParser::resumeFrom):
1507         * html/parser/BackgroundHTMLParser.h:
1508         (Checkpoint):
1509         * html/parser/HTMLDocumentParser.cpp:
1510         (WebCore::HTMLDocumentParser::canTakeNextToken):
1511         (WebCore::HTMLDocumentParser::didFailSpeculation):
1512         (WebCore::HTMLDocumentParser::pumpTokenizer):
1513         (WebCore::HTMLDocumentParser::finish):
1514         * html/parser/HTMLInputStream.h:
1515         (WebCore::HTMLInputStream::closeWithoutMarkingEndOfFile):
1516         (HTMLInputStream):
1517
1518 2013-02-12  Csaba Osztrogon√°c  <ossy@webkit.org>
1519
1520         Unreviewed buildfix for !ENABLE(INSPECTOR) platforms after r142654.
1521
1522         * inspector/InspectorInstrumentation.h:
1523         (WebCore::InspectorInstrumentation::scriptsEnabled):
1524
1525 2013-02-12  Christophe Dumez  <ch.dumez@sisa.samsung.com>
1526
1527         Remove remaining traces of Web Intents
1528         https://bugs.webkit.org/show_bug.cgi?id=109586
1529
1530         Reviewed by Eric Seidel.
1531
1532         Remove remaining traces of Web Intents as the functionality was
1533         removed in r142549.
1534
1535         No new tests, no behavior change for layout tests.
1536
1537         * GNUmakefile.features.am.in:
1538         * html/HTMLTagNames.in:
1539
1540 2013-02-12  Robert Hogan  <robert@webkit.org>
1541
1542         REGRESSION(r136967): Combination of float and clear yields to bad layout
1543         https://bugs.webkit.org/show_bug.cgi?id=109476
1544
1545         Reviewed by Levi Weintraub.
1546
1547         Test: fast/block/margin-collapse/self-collapsing-block-with-float-children.html
1548
1549         The change made at http://trac.webkit.org/changeset/136967 only needs to worry about the first floated
1550         child of a self-collapsing block. The ones that follow are not affected by its margins.
1551
1552         * rendering/RenderBlockLineLayout.cpp:
1553         (WebCore::RenderBlock::LineBreaker::skipLeadingWhitespace):
1554
1555 2013-02-12  Levi Weintraub  <leviw@chromium.org>
1556
1557         ASSERTION FAILED: !object || object->isBox(), UNKNOWN in WebCore::RenderListItem::positionListMarker
1558         https://bugs.webkit.org/show_bug.cgi?id=108699
1559
1560         Reviewed by Abhishek Arya.
1561
1562         RenderListItems performs special management of its children to maintain list markers. Splitting a flow
1563         through a list item results in assumptions made inside RenderListItem failing, so for now, avoid splitting
1564         flows when inside one.
1565
1566         Test: fast/multicol/span/list-multi-column-crash.html
1567
1568         * rendering/RenderBlock.cpp:
1569         (WebCore::RenderBlock::containingColumnsBlock):
1570
1571 2013-02-12  Roger Fong  <roger_fong@apple.com>
1572
1573         Unreviewed Windows build fix.
1574
1575         * testing/Internals.cpp:
1576         (WebCore::Internals::resetToConsistentState):
1577         (WebCore::Internals::Internals):
1578
1579 2013-02-12  Vivek Galatage  <vivek.vg@samsung.com>
1580
1581         Web Inspector: JavaScript execution disabled by browser/UA should be notified to the front-end
1582         https://bugs.webkit.org/show_bug.cgi?id=109402
1583
1584         Reviewed by Yury Semikhatsky.
1585
1586         Whenever the UA/Browser changes the Script Execution state of a page, it should notify the
1587         inspector front-end. Added the InspectorInstrumentation method didScriptExecutionStateChange
1588         to achieve this. Also the state change triggered by the inspector should be ignored to avoid
1589         infinite loop.
1590
1591         Test: inspector/script-execution-state-change-notification.html
1592
1593         * inspector/Inspector.json:
1594         * inspector/InspectorInstrumentation.cpp:
1595         (WebCore):
1596         (WebCore::InspectorInstrumentation::scriptsEnabledImpl):
1597         * inspector/InspectorInstrumentation.h:
1598         (InspectorInstrumentation):
1599         (WebCore::InspectorInstrumentation::scriptsEnabled):
1600         (WebCore):
1601         * inspector/InspectorPageAgent.cpp:
1602         (WebCore::InspectorPageAgent::InspectorPageAgent):
1603         (WebCore::InspectorPageAgent::setScriptExecutionDisabled):
1604         (WebCore::InspectorPageAgent::scriptsEnabled):
1605         (WebCore):
1606         * inspector/InspectorPageAgent.h:
1607         (InspectorPageAgent):
1608         * inspector/front-end/ResourceTreeModel.js:
1609         (WebInspector.PageDispatcher.prototype.javascriptDialogClosed):
1610         (WebInspector.PageDispatcher.prototype.scriptsEnabled):
1611         * page/Settings.cpp:
1612         (WebCore::Settings::setScriptEnabled):
1613
1614 2013-02-12  Antti Koivisto  <antti@apple.com>
1615
1616         Cache timer heap pointer to timers
1617         https://bugs.webkit.org/show_bug.cgi?id=109597
1618
1619         Reviewed by Andreas Kling.
1620
1621         Accessing timer heap through thread global storage is slow (~0.1% in PLT3). We can cache the heap pointer to
1622         each TimerBase. There are not huge numbers of timers around so memory is not an issue and many timers are heavily reused.
1623
1624         * platform/Timer.cpp:
1625         (WebCore::threadGlobalTimerHeap):
1626         (WebCore::TimerHeapReference::operator=):
1627         (WebCore::TimerHeapIterator::checkConsistency):
1628         (WebCore::TimerBase::TimerBase):
1629         (WebCore::TimerBase::checkHeapIndex):
1630         (WebCore::TimerBase::setNextFireTime):
1631         * platform/Timer.h:
1632         (WebCore::TimerBase::timerHeap):
1633         (TimerBase):
1634
1635 2013-02-12  Adam Barth  <abarth@webkit.org>
1636
1637         BackgroundHTMLParser::resumeFrom should take a struct
1638         https://bugs.webkit.org/show_bug.cgi?id=109598
1639
1640         Reviewed by Eric Seidel.
1641
1642         This patch is purely a syntatic change that paves the way for fixing
1643         the partial-entity document.write tests. To fix those tests, we'll need
1644         to pass more information to resumeFrom, but we're hitting the argument
1645         limits in Functional.h. Rather than adding yet more arguments, this
1646         patch moves to a single argument that's a struct.
1647
1648         * html/parser/BackgroundHTMLParser.cpp:
1649         (WebCore::BackgroundHTMLParser::resumeFrom):
1650         * html/parser/BackgroundHTMLParser.h:
1651         (Checkpoint):
1652         (BackgroundHTMLParser):
1653         * html/parser/HTMLDocumentParser.cpp:
1654         (WebCore::HTMLDocumentParser::didFailSpeculation):
1655
1656 2013-02-12  Elliott Sprehn  <esprehn@chromium.org>
1657
1658         rootRenderer in FrameView is really RenderView
1659         https://bugs.webkit.org/show_bug.cgi?id=109510
1660
1661         Reviewed by Eric Seidel.
1662
1663         The global function rootRenderer(FrameView*) is really just a way
1664         to get the RenderView from the Frame so replace it with a renderView()
1665         method and replace usage of the word "root" with renderView so it's
1666         obvious the root we're talking about is the renderView. This is an
1667         important distinction to make since we also have rootRenderer in the code
1668         for the documentElement()'s renderer and we also have a "layout root" which
1669         is entirely different.
1670
1671         No new tests, just refactoring.
1672
1673         * page/FrameView.cpp:
1674         (WebCore::FrameView::rootRenderer): Removed.
1675         (WebCore::FrameView::setFrameRect):
1676         (WebCore::FrameView::adjustViewSize):
1677         (WebCore::FrameView::updateCompositingLayersAfterStyleChange):
1678         (WebCore::FrameView::updateCompositingLayersAfterLayout):
1679         (WebCore::FrameView::clearBackingStores):
1680         (WebCore::FrameView::restoreBackingStores):
1681         (WebCore::FrameView::usesCompositedScrolling):
1682         (WebCore::FrameView::layerForHorizontalScrollbar):
1683         (WebCore::FrameView::layerForVerticalScrollbar):
1684         (WebCore::FrameView::layerForScrollCorner):
1685         (WebCore::FrameView::tiledBacking):
1686         (WebCore::FrameView::scrollLayerID):
1687         (WebCore::FrameView::layerForOverhangAreas):
1688         (WebCore::FrameView::flushCompositingStateForThisFrame):
1689         (WebCore::FrameView::hasCompositedContent):
1690         (WebCore::FrameView::enterCompositingMode):
1691         (WebCore::FrameView::isSoftwareRenderable):
1692         (WebCore::FrameView::didMoveOnscreen):
1693         (WebCore::FrameView::willMoveOffscreen):
1694         (WebCore::FrameView::layout):
1695         (WebCore::FrameView::embeddedContentBox):
1696         (WebCore::FrameView::contentsInCompositedLayer):
1697         (WebCore::FrameView::scrollContentsFastPath):
1698         (WebCore::FrameView::scrollContentsSlowPath):
1699         (WebCore::FrameView::maintainScrollPositionAtAnchor):
1700         (WebCore::FrameView::scrollPositionChanged):
1701         (WebCore::FrameView::repaintFixedElementsAfterScrolling):
1702         (WebCore::FrameView::updateFixedElementsAfterScrolling):
1703         (WebCore::FrameView::visibleContentsResized):
1704         (WebCore::FrameView::scheduleRelayoutOfSubtree):
1705         (WebCore::FrameView::needsLayout):
1706         (WebCore::FrameView::setNeedsLayout):
1707         (WebCore::FrameView::performPostLayoutTasks):
1708         (WebCore::FrameView::updateControlTints):
1709         (WebCore::FrameView::paintContents):
1710         (WebCore::FrameView::forceLayoutForPagination):
1711         (WebCore::FrameView::adjustPageHeightDeprecated):
1712         (WebCore::FrameView::resetTrackedRepaints):
1713         (WebCore::FrameView::isVerticalDocument):
1714         (WebCore::FrameView::isFlippedDocument):
1715         * page/FrameView.h:
1716         (WebCore::FrameView::renderView): Added.
1717
1718 2013-02-12  Tomas Popela  <tpopela@redhat.com>
1719
1720         [GTK][Introspection] GObject bindings for DataTransferItemList - one add() method must be removed from .idl
1721         https://bugs.webkit.org/show_bug.cgi?id=109180
1722
1723         Reviewed by Xan Lopez.
1724
1725         When compiling WebKit with --enable-introspection and generating GObject bindings
1726         for DataTransferItemList we must disable one add() method, because GObject is
1727         based on C and C does not allow two functions with the same name.
1728
1729         No tests needed.
1730
1731         * bindings/scripts/CodeGeneratorGObject.pm:
1732
1733 2013-02-12  Uday Kiran  <udaykiran@motorola.com>
1734
1735         Background size width specified in viewport percentage units not working
1736         https://bugs.webkit.org/show_bug.cgi?id=109536
1737
1738         Reviewed by Antti Koivisto.
1739
1740         Corrected the check for viewport percentage unit while calculating
1741         background image width.
1742
1743         Test: fast/backgrounds/size/backgroundSize-viewportPercentage-width.html
1744
1745         * rendering/RenderBoxModelObject.cpp:
1746         (WebCore::RenderBoxModelObject::calculateFillTileSize):
1747
1748 2013-02-12  Abhishek Arya  <inferno@chromium.org>
1749
1750         Heap-use-after-free in WebCore::DeleteButtonController::enable
1751         https://bugs.webkit.org/show_bug.cgi?id=109447
1752
1753         Reviewed by Ryosuke Niwa.
1754
1755         RefPtr frame pointer since it can get deleted due to mutation events
1756         fired inside AppendNodeCommand::doUnapply.
1757
1758         No new tests. Testcase is hard to minimize due to recursive
1759         calls with DOMNodeRemovedFromDocument mutation event.
1760
1761         * editing/CompositeEditCommand.cpp:
1762         (WebCore::EditCommandComposition::unapply):
1763         (WebCore::EditCommandComposition::reapply):
1764
1765 2013-02-12  Eric Seidel  <eric@webkit.org>
1766
1767         Remove HTMLTokenTypes header (and split out AtomicHTMLToken.h from HTMLToken.h)
1768         https://bugs.webkit.org/show_bug.cgi?id=109525
1769
1770         Reviewed by Adam Barth.
1771
1772         We no longer need a separate HTMLTokenTypes class now that NEW_XML is gone.
1773         However, to remove HTMLTokenTypes, I had to split AtomicHTMLToken.h from
1774         HTMLToken.h (to fix a circular dependancy).
1775
1776         * GNUmakefile.list.am:
1777         * Target.pri:
1778         * WebCore.gypi:
1779         * WebCore.vcproj/WebCore.vcproj:
1780         * WebCore.vcxproj/WebCore.vcxproj:
1781         * WebCore.vcxproj/WebCore.vcxproj.filters:
1782         * WebCore.xcodeproj/project.pbxproj:
1783         * html/HTMLViewSourceDocument.cpp:
1784         (WebCore::HTMLViewSourceDocument::addSource):
1785         * html/parser/AtomicHTMLToken.h: Added.
1786         (WebCore):
1787         (AtomicHTMLToken):
1788         (WebCore::AtomicHTMLToken::create):
1789         (WebCore::AtomicHTMLToken::forceQuirks):
1790         (WebCore::AtomicHTMLToken::type):
1791         (WebCore::AtomicHTMLToken::name):
1792         (WebCore::AtomicHTMLToken::setName):
1793         (WebCore::AtomicHTMLToken::selfClosing):
1794         (WebCore::AtomicHTMLToken::getAttributeItem):
1795         (WebCore::AtomicHTMLToken::attributes):
1796         (WebCore::AtomicHTMLToken::characters):
1797         (WebCore::AtomicHTMLToken::charactersLength):
1798         (WebCore::AtomicHTMLToken::isAll8BitData):
1799         (WebCore::AtomicHTMLToken::comment):
1800         (WebCore::AtomicHTMLToken::publicIdentifier):
1801         (WebCore::AtomicHTMLToken::systemIdentifier):
1802         (WebCore::AtomicHTMLToken::clearExternalCharacters):
1803         (WebCore::AtomicHTMLToken::AtomicHTMLToken):
1804         (WebCore::AtomicHTMLToken::initializeAttributes):
1805         * html/parser/BackgroundHTMLParser.cpp:
1806         (WebCore::BackgroundHTMLParser::simulateTreeBuilder):
1807         * html/parser/CompactHTMLToken.cpp:
1808         (WebCore::CompactHTMLToken::CompactHTMLToken):
1809         * html/parser/CompactHTMLToken.h:
1810         (WebCore::CompactHTMLToken::type):
1811         * html/parser/HTMLConstructionSite.cpp:
1812         (WebCore::HTMLConstructionSite::insertDoctype):
1813         (WebCore::HTMLConstructionSite::insertComment):
1814         (WebCore::HTMLConstructionSite::insertCommentOnDocument):
1815         (WebCore::HTMLConstructionSite::insertCommentOnHTMLHtmlElement):
1816         (WebCore::HTMLConstructionSite::insertSelfClosingHTMLElement):
1817         (WebCore::HTMLConstructionSite::insertForeignElement):
1818         * html/parser/HTMLDocumentParser.cpp:
1819         (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
1820         (WebCore::HTMLDocumentParser::constructTreeFromHTMLToken):
1821         * html/parser/HTMLDocumentParser.h:
1822         * html/parser/HTMLMetaCharsetParser.cpp:
1823         (WebCore::HTMLMetaCharsetParser::checkForMetaCharset):
1824         * html/parser/HTMLPreloadScanner.cpp:
1825         (WebCore::isStartTag):
1826         (WebCore::isStartOrEndTag):
1827         (WebCore::HTMLPreloadScanner::processToken):
1828         * html/parser/HTMLSourceTracker.cpp:
1829         (WebCore::HTMLSourceTracker::start):
1830         (WebCore::HTMLSourceTracker::sourceForToken):
1831         * html/parser/HTMLStackItem.h:
1832         (WebCore::HTMLStackItem::HTMLStackItem):
1833         * html/parser/HTMLToken.h:
1834         (WebCore::HTMLToken::clear):
1835         (WebCore::HTMLToken::isUninitialized):
1836         (WebCore::HTMLToken::type):
1837         (WebCore::HTMLToken::makeEndOfFile):
1838         (WebCore::HTMLToken::data):
1839         (WebCore::HTMLToken::name):
1840         (WebCore::HTMLToken::appendToName):
1841         (WebCore::HTMLToken::forceQuirks):
1842         (WebCore::HTMLToken::setForceQuirks):
1843         (WebCore::HTMLToken::beginDOCTYPE):
1844         (WebCore::HTMLToken::publicIdentifier):
1845         (WebCore::HTMLToken::systemIdentifier):
1846         (WebCore::HTMLToken::setPublicIdentifierToEmptyString):
1847         (WebCore::HTMLToken::setSystemIdentifierToEmptyString):
1848         (WebCore::HTMLToken::appendToPublicIdentifier):
1849         (WebCore::HTMLToken::appendToSystemIdentifier):
1850         (WebCore::HTMLToken::selfClosing):
1851         (WebCore::HTMLToken::setSelfClosing):
1852         (WebCore::HTMLToken::beginStartTag):
1853         (WebCore::HTMLToken::beginEndTag):
1854         (WebCore::HTMLToken::addNewAttribute):
1855         (WebCore::HTMLToken::appendToAttributeName):
1856         (WebCore::HTMLToken::appendToAttributeValue):
1857         (WebCore::HTMLToken::attributes):
1858         (WebCore::HTMLToken::eraseValueOfAttribute):
1859         (WebCore::HTMLToken::ensureIsCharacterToken):
1860         (WebCore::HTMLToken::characters):
1861         (WebCore::HTMLToken::appendToCharacter):
1862         (WebCore::HTMLToken::comment):
1863         (WebCore::HTMLToken::beginComment):
1864         (WebCore::HTMLToken::appendToComment):
1865         (WebCore::HTMLToken::eraseCharacters):
1866         (HTMLToken):
1867         * html/parser/HTMLTokenTypes.h: Removed.
1868         * html/parser/HTMLTokenizer.cpp:
1869         (WebCore::AtomicHTMLToken::usesName):
1870         (WebCore::AtomicHTMLToken::usesAttributes):
1871         (WebCore::HTMLTokenizer::flushBufferedEndTag):
1872         (WebCore::HTMLTokenizer::nextToken):
1873         * html/parser/HTMLTokenizer.h:
1874         (WebCore::HTMLTokenizer::saveEndTagNameIfNeeded):
1875         (WebCore::HTMLTokenizer::haveBufferedCharacterToken):
1876         * html/parser/HTMLTreeBuilder.cpp:
1877         (WebCore::HTMLTreeBuilder::processToken):
1878         (WebCore::HTMLTreeBuilder::processDoctypeToken):
1879         (WebCore::HTMLTreeBuilder::processFakeStartTag):
1880         (WebCore::HTMLTreeBuilder::processFakeEndTag):
1881         (WebCore::HTMLTreeBuilder::processFakePEndTagIfPInButtonScope):
1882         (WebCore::HTMLTreeBuilder::processIsindexStartTagForInBody):
1883         (WebCore):
1884         (WebCore::HTMLTreeBuilder::processStartTagForInBody):
1885         (WebCore::HTMLTreeBuilder::processStartTagForInTable):
1886         (WebCore::HTMLTreeBuilder::processStartTag):
1887         (WebCore::HTMLTreeBuilder::processBodyEndTagForInBody):
1888         (WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
1889         (WebCore::HTMLTreeBuilder::processEndTagForInTableBody):
1890         (WebCore::HTMLTreeBuilder::processEndTagForInRow):
1891         (WebCore::HTMLTreeBuilder::processEndTagForInCell):
1892         (WebCore::HTMLTreeBuilder::processEndTagForInBody):
1893         (WebCore::HTMLTreeBuilder::processEndTagForInTable):
1894         (WebCore::HTMLTreeBuilder::processEndTag):
1895         (WebCore::HTMLTreeBuilder::processComment):
1896         (WebCore::HTMLTreeBuilder::processCharacter):
1897         (WebCore::HTMLTreeBuilder::defaultForBeforeHTML):
1898         (WebCore::HTMLTreeBuilder::defaultForBeforeHead):
1899         (WebCore::HTMLTreeBuilder::defaultForInHead):
1900         (WebCore::HTMLTreeBuilder::defaultForInHeadNoscript):
1901         (WebCore::HTMLTreeBuilder::defaultForAfterHead):
1902         (WebCore::HTMLTreeBuilder::processStartTagForInHead):
1903         (WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag):
1904         (WebCore::HTMLTreeBuilder::processGenericRawTextStartTag):
1905         (WebCore::HTMLTreeBuilder::processScriptStartTag):
1906         (WebCore::HTMLTreeBuilder::shouldProcessTokenInForeignContent):
1907         (WebCore::HTMLTreeBuilder::processTokenInForeignContent):
1908         * html/parser/HTMLViewSourceParser.cpp:
1909         (WebCore::HTMLViewSourceParser::updateTokenizerState):
1910         * html/parser/TextDocumentParser.cpp:
1911         (WebCore::TextDocumentParser::insertFakePreElement):
1912         * html/parser/XSSAuditor.cpp:
1913         (WebCore::XSSAuditor::filterToken):
1914         (WebCore::XSSAuditor::filterScriptToken):
1915         (WebCore::XSSAuditor::filterObjectToken):
1916         (WebCore::XSSAuditor::filterParamToken):
1917         (WebCore::XSSAuditor::filterEmbedToken):
1918         (WebCore::XSSAuditor::filterAppletToken):
1919         (WebCore::XSSAuditor::filterIframeToken):
1920         (WebCore::XSSAuditor::filterMetaToken):
1921         (WebCore::XSSAuditor::filterBaseToken):
1922         (WebCore::XSSAuditor::filterFormToken):
1923
1924 2013-02-12  Pablo Flouret  <pablof@motorola.com>
1925
1926         Handle error recovery in @supports
1927         https://bugs.webkit.org/show_bug.cgi?id=103934
1928
1929         Reviewed by Antti Koivisto.
1930
1931         Tests 021, 024, 031, and 033 in
1932         http://hg.csswg.org/test/file/5f94e4b03ed9/contributors/opera/submitted/css3-conditional
1933         fail because there's no explicit error recovery in @support's grammar.
1934         Opera and Firefox pass the tests.
1935
1936         No new tests, modified css3/supports{,-cssom}.html
1937
1938         * css/CSSGrammar.y.in:
1939         * css/CSSParser.cpp:
1940         (WebCore::CSSParser::createSupportsRule):
1941         (WebCore::CSSParser::markSupportsRuleHeaderEnd):
1942         (WebCore::CSSParser::popSupportsRuleData):
1943         * css/CSSParser.h:
1944
1945 2013-02-12  Eric Carlson  <eric.carlson@apple.com>
1946
1947         [Mac] guard against NULL languages array
1948         https://bugs.webkit.org/show_bug.cgi?id=109595
1949
1950         Reviewed by Dean Jackson.
1951
1952         No new tests, existing tests won't crash if this is correct.
1953
1954         * page/CaptionUserPreferencesMac.mm:
1955         (WebCore::CaptionUserPreferencesMac::preferredLanguages):
1956
1957 2013-02-12  Emil A Eklund  <eae@chromium.org>
1958
1959         TransformState::move should not round offset to int
1960         https://bugs.webkit.org/show_bug.cgi?id=108266
1961
1962         Reviewed by Simon Fraser.
1963         
1964         Currently TransformState::move rounds the offset to the nearest
1965         integer values, this results in operations using TransformState
1966         to compute a position to misreport the location, specifically
1967         Element:getBoundingClientRect and repaint rects. Sizes are
1968         handled correctly and do not have the same problem.
1969
1970         Tests: fast/sub-pixel/boundingclientrect-subpixel-margin.html
1971                fast/sub-pixel/clip-rect-box-consistent-rounding.html
1972
1973         * page/FrameView.cpp:
1974         (WebCore::FrameView::convertFromRenderer):
1975         Change to use pixel snapping instead of enclosing box. All other
1976         code paths use pixelSnappedIntRect to align the rects to device
1977         pixels however this used enclosingIntRect (indirectly through
1978         the FloatQuad::enclosingBoundingBox call).
1979         Without the rounding in TransformState this causes repaint rects
1980         for elements on subpixel bounds to be too large by up to one
1981         pixel on each axis. For normal repaints this isn't really a
1982         problem but in scrollContentsSlowPath it can result in moving
1983         too large a rect.
1984
1985         * platform/graphics/transforms/TransformState.cpp:
1986         (WebCore::TransformState::translateTransform):
1987         (WebCore::TransformState::translateMappedCoordinates):
1988         Change to take a LayoutSize instead of an IntSize.
1989
1990         (WebCore::TransformState::move):
1991         (WebCore::TransformState::applyAccumulatedOffset):
1992         * platform/graphics/transforms/TransformState.h:
1993         Remove rounding logic and use original, more precise, value.
1994
1995         * rendering/RenderGeometryMap.cpp:
1996         (WebCore::RenderGeometryMap::mapToContainer):
1997         Remove rounding logic and use original, more precise, value.
1998
1999 2013-02-12  Jessie Berlin  <jberlin@apple.com>
2000
2001         Rollout r142618, it broke all the Mac builds.
2002
2003         * inspector/HeapGraphSerializer.cpp:
2004         (WebCore::HeapGraphSerializer::HeapGraphSerializer):
2005         (WebCore::HeapGraphSerializer::pushUpdate):
2006         (WebCore::HeapGraphSerializer::reportNode):
2007         (WebCore::HeapGraphSerializer::toNodeId):
2008         (WebCore::HeapGraphSerializer::addRootNode):
2009         * inspector/HeapGraphSerializer.h:
2010         (WebCore):
2011         (HeapGraphSerializer):
2012         * inspector/InspectorMemoryAgent.cpp:
2013         (WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):
2014
2015 2013-02-12  Rafael Weinstein  <rafaelw@chromium.org>
2016
2017         [HTMLTemplateElement] <template> inside of <head> may not create <body> if EOF is hit
2018         https://bugs.webkit.org/show_bug.cgi?id=109338
2019
2020         Reviewed by Adam Barth.
2021
2022         This patch adds the logic to clear the stack of open elements back to the first <template> when EOF
2023         is hit. This allows a <body> to be generated if the initial <template> was opened inside of <head>.
2024
2025         Tests added to html5lib.
2026
2027         * html/parser/HTMLTreeBuilder.cpp:
2028         (WebCore):
2029         (WebCore::HTMLTreeBuilder::popAllTemplates):
2030         (WebCore::HTMLTreeBuilder::processEndTag):
2031         (WebCore::HTMLTreeBuilder::processEndOfFile):
2032         * html/parser/HTMLTreeBuilder.h:
2033         (HTMLTreeBuilder):
2034
2035 2013-02-12  Dominic Mazzoni  <dmazzoni@google.com>
2036
2037         ASSERTION FAILED: i < size(), UNKNOWN in WebCore::AccessibilityMenuListPopup::didUpdateActiveOption
2038         https://bugs.webkit.org/show_bug.cgi?id=109452
2039
2040         Reviewed by Chris Fleizach.
2041
2042         Send the accessibility childrenChanged notification in
2043         HTMLSelectElement::setRecalcListItems instead of in childrenChanged
2044         so that all possible codepaths are caught.
2045
2046         Test: accessibility/insert-selected-option-into-select-causes-crash.html
2047
2048         * html/HTMLSelectElement.cpp:
2049         (WebCore::HTMLSelectElement::childrenChanged):
2050         (WebCore::HTMLSelectElement::setRecalcListItems):
2051
2052 2013-02-12  Peter Rybin  <prybin@chromium.org>
2053
2054         Web Inspector: for event listener provide handler function value in protocol and in UI
2055         https://bugs.webkit.org/show_bug.cgi?id=109284
2056
2057         Reviewed by Yury Semikhatsky.
2058
2059         The feature implies that we include a real handler function value into event listener description.
2060         Protocol description, inspector DOM agent (with V8 and JSC backends) and front-end is patched accordingly.
2061
2062         * bindings/js/ScriptEventListener.cpp:
2063         (WebCore::eventListenerHandler):
2064         (WebCore):
2065         (WebCore::eventListenerHandlerScriptState):
2066         * bindings/js/ScriptEventListener.h:
2067         (WebCore):
2068         * bindings/v8/ScriptEventListener.cpp:
2069         (WebCore::eventListenerHandler):
2070         (WebCore):
2071         (WebCore::eventListenerHandlerScriptState):
2072         * bindings/v8/ScriptEventListener.h:
2073         (WebCore):
2074         * inspector/Inspector.json:
2075         * inspector/InspectorDOMAgent.cpp:
2076         (WebCore::InspectorDOMAgent::getEventListenersForNode):
2077         (WebCore::InspectorDOMAgent::buildObjectForEventListener):
2078         * inspector/InspectorDOMAgent.h:
2079         (InspectorDOMAgent):
2080         * inspector/front-end/DOMAgent.js:
2081         (WebInspector.DOMNode.prototype.eventListeners):
2082         * inspector/front-end/EventListenersSidebarPane.js:
2083         (WebInspector.EventListenersSidebarPane.prototype.update):
2084         (.):
2085
2086 2013-02-12  Yury Semikhatsky  <yurys@chromium.org>
2087
2088         Web Inspector: add initial implementation of native memory graph to Timeline
2089         https://bugs.webkit.org/show_bug.cgi?id=109578
2090
2091         Reviewed by Alexander Pavlov.
2092
2093         This change adds inital implementation of native memory graph UI. The graph
2094         will be shown in the same place as DOM counters graph on the Timeline panel.
2095
2096         Added NativeMemoryGraph.js that reuses parts of DOM counters graph
2097         implementation. MemoryStatistics.js was refactor to allow sharing
2098         more code between DOM counters and native memory graph.
2099
2100         * WebCore.gypi:
2101         * WebCore.vcproj/WebCore.vcproj:
2102         * inspector/compile-front-end.py:
2103         * inspector/front-end/MemoryStatistics.js:
2104         (WebInspector.MemoryStatistics):
2105         (WebInspector.MemoryStatistics.prototype._createCurrentValuesBar):
2106         (WebInspector.MemoryStatistics.prototype._createCounterUIList):
2107         (WebInspector.MemoryStatistics.prototype._createCounterUIList.getNodeCount):
2108         (WebInspector.MemoryStatistics.prototype._createCounterUIList.getListenerCount):
2109         (WebInspector.MemoryStatistics.prototype._canvasHeight):
2110         (WebInspector.MemoryStatistics.prototype._updateSize):
2111         (WebInspector.MemoryStatistics.prototype._highlightCurrentPositionOnGraphs):
2112         (WebInspector.MemoryStatistics.prototype._drawMarker):
2113         * inspector/front-end/NativeMemoryGraph.js: Added.
2114         (WebInspector.NativeMemoryGraph):
2115         (WebInspector.NativeMemoryCounterUI):
2116         (WebInspector.NativeMemoryCounterUI.prototype._hslToString):
2117         (WebInspector.NativeMemoryCounterUI.prototype.updateCurrentValue):
2118         (WebInspector.NativeMemoryCounterUI.prototype.clearCurrentValueAndMarker):
2119         (WebInspector.NativeMemoryGraph.prototype._createCurrentValuesBar):
2120         (WebInspector.NativeMemoryGraph.prototype._createCounterUIList.getCounterValue):
2121         (WebInspector.NativeMemoryGraph.prototype._createCounterUIList):
2122         (WebInspector.NativeMemoryGraph.prototype._canvasHeight):
2123         (WebInspector.NativeMemoryGraph.prototype._onRecordAdded.addStatistics):
2124         (WebInspector.NativeMemoryGraph.prototype._onRecordAdded):
2125         (WebInspector.NativeMemoryGraph.prototype._draw):
2126         (WebInspector.NativeMemoryGraph.prototype._clearCurrentValueAndMarker):
2127         (WebInspector.NativeMemoryGraph.prototype._updateCurrentValue):
2128         (WebInspector.NativeMemoryGraph.prototype._restoreImageUnderMarker):
2129         (WebInspector.NativeMemoryGraph.prototype._saveImageUnderMarker):
2130         (WebInspector.NativeMemoryGraph.prototype._drawMarker):
2131         (WebInspector.NativeMemoryGraph.prototype._maxCounterValue):
2132         (WebInspector.NativeMemoryGraph.prototype._resetTotalValues):
2133         (WebInspector.NativeMemoryGraph.prototype.valueGetter):
2134         (WebInspector.NativeMemoryGraph.prototype._drawGraph):
2135         (WebInspector.NativeMemoryGraph.prototype._discardImageUnderMarker):
2136         * inspector/front-end/TimelinePanel.js:
2137         * inspector/front-end/WebKit.qrc:
2138         * inspector/front-end/timelinePanel.css:
2139         (#memory-graphs-canvas-container.dom-counters .resources-dividers):
2140         (.memory-category-value):
2141
2142 2013-02-12  Andrey Lushnikov  <lushnikov@chromium.org>
2143
2144         Web Inspector: refactor some reusable functionality from BraceHighlighter
2145         https://bugs.webkit.org/show_bug.cgi?id=109574
2146
2147         Reviewed by Pavel Feldman.
2148
2149         New test: inspector/editor/text-editor-brace-highlighter.html
2150
2151         Extract functionality which, for given line and cursor position, will
2152         return position for a brace that should be highlighted. Add a layout
2153         test to verify brace highlighter funcionality.
2154
2155         * inspector/front-end/DefaultTextEditor.js:
2156         (WebInspector.TextEditorMainPanel.BraceHighlightController.prototype.activeBraceColumnForCursorPosition):
2157         (WebInspector.TextEditorMainPanel.BraceHighlightController.prototype.handleSelectionChange):
2158         * inspector/front-end/TextUtils.js:
2159         (WebInspector.TextUtils.isOpeningBraceChar):
2160         (WebInspector.TextUtils.isClosingBraceChar):
2161         (WebInspector.TextUtils.isBraceChar):
2162
2163 2013-02-12  Ilya Tikhonovsky  <loislo@chromium.org>
2164
2165         Web Inspector: Native Memory Instrumentation: reportLeaf method doesn't report the leaf node properly.
2166         https://bugs.webkit.org/show_bug.cgi?id=109554
2167
2168         In some cases leaves have no pointer so with the old schema we can't generate nodeId for them because we
2169         can't insert 0 into hashmap. It happens when we call addPrivateBuffer method.
2170
2171         Drive by fix: I introduced a client interface for the HeapGraphSerializer.
2172         It helps me to do the tests for the serializer.
2173
2174         Reviewed by Yury Semikhatsky.
2175
2176         It is covered by newly added tests in TestWebKitAPI.
2177
2178         * inspector/HeapGraphSerializer.cpp:
2179         (WebCore::HeapGraphSerializer::HeapGraphSerializer):
2180         (WebCore::HeapGraphSerializer::pushUpdate):
2181         (WebCore::HeapGraphSerializer::reportNode):
2182         (WebCore::HeapGraphSerializer::toNodeId):
2183         (WebCore::HeapGraphSerializer::addRootNode):
2184         * inspector/HeapGraphSerializer.h:
2185         (HeapGraphSerializerClient):
2186         (WebCore::HeapGraphSerializerClient::~HeapGraphSerializerClient):
2187         (HeapGraphSerializer):
2188         * inspector/InspectorMemoryAgent.cpp:
2189         (WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):
2190
2191 2013-02-12  Vsevolod Vlasov  <vsevik@chromium.org>
2192
2193         Web Inspector: Introduce version controller to migrate settings versions.
2194         https://bugs.webkit.org/show_bug.cgi?id=109553
2195
2196         Reviewed by Yury Semikhatsky.
2197
2198         This patch introduces version controller that could be used to migrate inspector settings.
2199
2200         Test: inspector/version-controller.html
2201
2202         * inspector/front-end/Settings.js:
2203         (WebInspector.Settings):
2204         (WebInspector.VersionController):
2205         (WebInspector.VersionController.prototype.set _methodsToRunToUpdateVersion):
2206         (WebInspector.VersionController.prototype._updateVersionFrom0To1):
2207         * inspector/front-end/inspector.js:
2208
2209 2013-02-12  Vsevolod Vlasov  <vsevik@chromium.org>
2210
2211         Web Inspector: File system should produce more verbose error messages and recover from errors
2212         https://bugs.webkit.org/show_bug.cgi?id=109571
2213
2214         Reviewed by Alexander Pavlov.
2215
2216         Error handler prints original file system call params now.
2217         Added callbacks to error handler to recover from errors.
2218
2219         * inspector/front-end/FileSystemProjectDelegate.js:
2220         (WebInspector.FileSystemProjectDelegate.prototype.contentCallback):
2221         (WebInspector.FileSystemProjectDelegate.prototype.searchInFileContent):
2222         (WebInspector.FileSystemUtils.errorMessage):
2223         (.fileSystemLoaded):
2224         (.fileEntryLoaded):
2225         (.errorHandler):
2226         (WebInspector.FileSystemUtils.requestFileContent):
2227         (WebInspector.FileSystemUtils.setFileContent):
2228         (WebInspector.FileSystemUtils._readDirectory):
2229         (.innerCallback):
2230         (WebInspector.FileSystemUtils._requestEntries):
2231
2232 2013-02-12  Vsevolod Vlasov  <vsevik@chromium.org>
2233
2234         Web Inspector: Get rid of unnecessary complexity in FileSystemUtil: remove _getDirectory() method.
2235         https://bugs.webkit.org/show_bug.cgi?id=109567
2236
2237         Reviewed by Alexander Pavlov.
2238
2239         The code in this method was redundant as the same result could be achieved by using File System API directly.
2240
2241         * inspector/front-end/FileSystemProjectDelegate.js:
2242
2243 2013-02-12  Alexander Pavlov  <apavlov@chromium.org>
2244
2245         Web Inspector: [SuggestBox] SuggestBox not hidden when prefix is empty and there is preceding input
2246         https://bugs.webkit.org/show_bug.cgi?id=109568
2247
2248         Reviewed by Vsevolod Vlasov.
2249
2250         The suggestbox would get hidden in the case of empty input, yet it should get hidden
2251         in the case of empty user-entered prefix (which is a wider notion.)
2252
2253         * inspector/front-end/TextPrompt.js:
2254         (WebInspector.TextPrompt.prototype.complete):
2255
2256 2013-02-12  Andrey Lushnikov  <lushnikov@chromium.org>
2257
2258         Web Inspector: separate SuggestBox from TextPrompt
2259         https://bugs.webkit.org/show_bug.cgi?id=109430
2260
2261         Reviewed by Alexander Pavlov.
2262
2263         Create WebInspector.SuggestBoxDelegate interface and
2264         refactor TextPrompt to use this interface. Separate SuggestBox into
2265         WebInspector.SuggestBox namespace and put it into its own file.
2266
2267         No new tests: no change in behaviour.
2268
2269         * WebCore.gypi:
2270         * WebCore.vcproj/WebCore.vcproj:
2271         * inspector/compile-front-end.py:
2272         * inspector/front-end/SuggestBox.js: Added.
2273         (WebInspector.SuggestBoxDelegate):
2274         (WebInspector.SuggestBoxDelegate.prototype.applySuggestion):
2275         (WebInspector.SuggestBoxDelegate.prototype.acceptSuggestion):
2276         (WebInspector.SuggestBoxDelegate.prototype.userEnteredText):
2277         (WebInspector.SuggestBox):
2278         (WebInspector.SuggestBox.prototype.get visible):
2279         (WebInspector.SuggestBox.prototype.get hasSelection):
2280         (WebInspector.SuggestBox.prototype._onscrollresize):
2281         (WebInspector.SuggestBox.prototype._updateBoxPositionWithExistingAnchor):
2282         (WebInspector.SuggestBox.prototype._updateBoxPosition):
2283         (WebInspector.SuggestBox.prototype._onboxmousedown):
2284         (WebInspector.SuggestBox.prototype.hide):
2285         (WebInspector.SuggestBox.prototype.removeFromElement):
2286         (WebInspector.SuggestBox.prototype._applySuggestion):
2287         (WebInspector.SuggestBox.prototype.acceptSuggestion):
2288         (WebInspector.SuggestBox.prototype._selectClosest):
2289         (WebInspector.SuggestBox.prototype.updateSuggestions):
2290         (WebInspector.SuggestBox.prototype._onItemMouseDown):
2291         (WebInspector.SuggestBox.prototype._createItemElement):
2292         (WebInspector.SuggestBox.prototype._updateItems):
2293         (WebInspector.SuggestBox.prototype._selectItem):
2294         (WebInspector.SuggestBox.prototype._canShowBox):
2295         (WebInspector.SuggestBox.prototype._rememberRowCountPerViewport):
2296         (WebInspector.SuggestBox.prototype._completionsReady):
2297         (WebInspector.SuggestBox.prototype.upKeyPressed):
2298         (WebInspector.SuggestBox.prototype.downKeyPressed):
2299         (WebInspector.SuggestBox.prototype.pageUpKeyPressed):
2300         (WebInspector.SuggestBox.prototype.pageDownKeyPressed):
2301         (WebInspector.SuggestBox.prototype.enterKeyPressed):
2302         (WebInspector.SuggestBox.prototype.tabKeyPressed):
2303         * inspector/front-end/TextPrompt.js:
2304         (WebInspector.TextPrompt.prototype.userEnteredText):
2305         (WebInspector.TextPrompt.prototype._attachInternal):
2306         (WebInspector.TextPrompt.prototype._completionsReady):
2307         (WebInspector.TextPrompt.prototype.applySuggestion):
2308         (WebInspector.TextPrompt.prototype._applySuggestion):
2309         (WebInspector.TextPrompt.prototype.enterKeyPressed):
2310         (WebInspector.TextPrompt.prototype.upKeyPressed):
2311         (WebInspector.TextPrompt.prototype.downKeyPressed):
2312         (WebInspector.TextPrompt.prototype.pageUpKeyPressed):
2313         (WebInspector.TextPrompt.prototype.pageDownKeyPressed):
2314         * inspector/front-end/WebKit.qrc:
2315         * inspector/front-end/inspector.html:
2316
2317 2013-02-12  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
2318
2319         [TexMap] Apply frames-per-second debug counter to WK1.
2320         https://bugs.webkit.org/show_bug.cgi?id=109540
2321
2322         Reviewed by Noam Rosenthal.
2323
2324         Adds basysKom copyright info to TextureMapperFPSCounter header.
2325
2326         * platform/graphics/texmap/TextureMapperFPSCounter.cpp:
2327         * platform/graphics/texmap/TextureMapperFPSCounter.h:
2328
2329 2013-02-12  Sheriff Bot  <webkit.review.bot@gmail.com>
2330
2331         Unreviewed, rolling out r142531.
2332         http://trac.webkit.org/changeset/142531
2333         https://bugs.webkit.org/show_bug.cgi?id=109569
2334
2335         Causes html5lib/run-template layout test to crash. (Requested
2336         by atwilson_ on #webkit).
2337
2338         * html/parser/HTMLTreeBuilder.cpp:
2339         (WebCore::HTMLTreeBuilder::processTemplateEndTag):
2340         (WebCore::HTMLTreeBuilder::processColgroupEndTagForInColumnGroup):
2341         (WebCore::HTMLTreeBuilder::processEndOfFile):
2342         * html/parser/HTMLTreeBuilder.h:
2343         (HTMLTreeBuilder):
2344
2345 2013-02-12  Zan Dobersek  <zdobersek@igalia.com>
2346
2347         [GTK] Enable CSS image-set support in development builds
2348         https://bugs.webkit.org/show_bug.cgi?id=109475
2349
2350         Reviewed by Martin Robinson.
2351
2352         No new tests - majority of the related tests now passes.
2353
2354         * GNUmakefile.features.am.in: Add the feature define for the CSS image-set feature
2355         with the define value defaulting to 0. The value gets overridden with 1 in development
2356         builds, meaning the feature is enabled under that configuration.
2357
2358 2013-02-12  Zan Dobersek  <zdobersek@igalia.com>
2359
2360         [GTK] Enable DOM4 events constructors in development builds
2361         https://bugs.webkit.org/show_bug.cgi?id=109471
2362
2363         Reviewed by Martin Robinson.
2364
2365         No new tests - the related tests now pass.
2366
2367         * GNUmakefile.features.am.in: Add the feature define for the DOM4 events
2368         constructors feature, its value defaulting to 0. This value is overridden
2369         with 1 in development builds, effectively enabling the feature.
2370
2371 2013-02-12  Zan Dobersek  <zdobersek@igalia.com>
2372
2373         Unreviewed build fix for the GTK port after r142595.
2374         Adding the TextureMapperFPSCounter files to the list of build targets
2375         in case of using the OpenGL texture mapper.
2376
2377         * GNUmakefile.list.am:
2378
2379 2013-02-12  Andrey Kosyakov  <caseq@chromium.org>
2380
2381         Web Inspector: fix closure compiler warnings in extension server and API
2382         https://bugs.webkit.org/show_bug.cgi?id=109563
2383
2384         Reviewed by Vsevolod Vlasov.
2385
2386         * inspector/front-end/ExtensionAPI.js: drive-by: make sure we fail if extensionServer is not defined in outer scope.
2387         * inspector/front-end/ExtensionServer.js:
2388         (WebInspector.ExtensionServer.prototype.):
2389         (WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage):
2390         * inspector/front-end/externs.js: add extensionServer
2391
2392 2013-02-12  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
2393
2394         Unreviewed. Fix !ENABLE(INSPECTOR) builds after r142575
2395
2396         * inspector/InspectorInstrumentation.h:
2397         (WebCore::InspectorInstrumentation::willDispatchEvent):
2398
2399 2013-02-12  Andrey Lushnikov  <lushnikov@chromium.org>
2400
2401         Web Inspector: move showWhitespace option into experiments
2402         https://bugs.webkit.org/show_bug.cgi?id=109552
2403
2404         Reviewed by Vsevolod Vlasov.
2405
2406         Remove "show whitespace" setting and add it to experiments.
2407
2408         No new tests: fixed an existing test to verify changes.
2409
2410         * English.lproj/localizedStrings.js:
2411         * inspector/front-end/DefaultTextEditor.js:
2412         (WebInspector.TextEditorMainPanel):
2413         (WebInspector.TextEditorMainPanel.prototype.wasShown):
2414         (WebInspector.TextEditorMainPanel.prototype.willHide):
2415         * inspector/front-end/Settings.js:
2416         (WebInspector.ExperimentsSettings):
2417         * inspector/front-end/SettingsScreen.js:
2418         (WebInspector.GenericSettingsTab):
2419
2420 2013-02-12  Tamas Czene  <tczene@inf.u-szeged.hu>
2421
2422         Add error checking into OpenCL version of SVG filters.
2423         https://bugs.webkit.org/show_bug.cgi?id=107444
2424
2425         Reviewed by Zoltan Herczeg.
2426
2427         In case of an error the program runs through all the remaining filters by doing nothing. 
2428         After that deletes the results of every filter and starts software rendering.
2429
2430         * platform/graphics/filters/FilterEffect.cpp:
2431         (WebCore):
2432         (WebCore::FilterEffect::applyAll): At software rendering this is a simple inline methode, but at OpenCL rendering it releases OpenCL things. If we have an error remove filter's results and start software rendering.
2433         (WebCore::FilterEffect::clearResultsRecursive):
2434         (WebCore::FilterEffect::openCLImageToImageBuffer):
2435         (WebCore::FilterEffect::createOpenCLImageResult):
2436         (WebCore::FilterEffect::transformResultColorSpace):
2437         * platform/graphics/filters/FilterEffect.h:
2438         (FilterEffect):
2439         (WebCore::FilterEffect::applyAll):
2440         * platform/graphics/gpu/opencl/FilterContextOpenCL.cpp:
2441         (WebCore::FilterContextOpenCL::isFailed):
2442         (WebCore):
2443         (WebCore::FilterContextOpenCL::freeResources):
2444         (WebCore::FilterContextOpenCL::destroyContext):
2445         (WebCore::FilterContextOpenCL::compileTransformColorSpaceProgram):
2446         (WebCore::FilterContextOpenCL::openCLTransformColorSpace):
2447         (WebCore::FilterContextOpenCL::compileProgram):
2448         (WebCore::FilterContextOpenCL::freeResource):
2449         * platform/graphics/gpu/opencl/FilterContextOpenCL.h:
2450         (WebCore::FilterContextOpenCL::FilterContextOpenCL):
2451         (WebCore::FilterContextOpenCL::setInError):
2452         (WebCore::FilterContextOpenCL::inError):
2453         (FilterContextOpenCL):
2454         (WebCore::FilterContextOpenCL::RunKernel::RunKernel):
2455         (WebCore::FilterContextOpenCL::RunKernel::addArgument):
2456         (WebCore::FilterContextOpenCL::RunKernel::run):
2457         (RunKernel):
2458         * platform/graphics/gpu/opencl/OpenCLFEColorMatrix.cpp:
2459         (WebCore::FilterContextOpenCL::compileFEColorMatrix):
2460         (WebCore::FEColorMatrix::platformApplyOpenCL):
2461         * platform/graphics/gpu/opencl/OpenCLFETurbulence.cpp:
2462         (WebCore::FilterContextOpenCL::compileFETurbulence):
2463         (WebCore::FETurbulence::platformApplyOpenCL):
2464         * rendering/svg/RenderSVGResourceFilter.cpp:
2465         (WebCore::RenderSVGResourceFilter::postApplyResource):
2466
2467 2013-02-12  Huang Dongsung  <luxtella@company100.net>
2468
2469         [TexMap] Apply frames-per-second debug counter to WK1.
2470         https://bugs.webkit.org/show_bug.cgi?id=109540
2471
2472         Reviewed by Noam Rosenthal.
2473
2474         r142524 implemented frames-per-second debug counter on WK2. This patch
2475         applies frames-per-second debug counter to WK1 also.
2476
2477         Visual debugging feature, no need for new tests.
2478
2479         * CMakeLists.txt:
2480         * GNUmakefile.list.am:
2481         * Target.pri:
2482         * platform/graphics/texmap/TextureMapper.h:
2483         * platform/graphics/texmap/TextureMapperFPSCounter.cpp: Added.
2484         (WebCore):
2485         (WebCore::TextureMapperFPSCounter::TextureMapperFPSCounter):
2486         (WebCore::TextureMapperFPSCounter::updateFPSAndDisplay):
2487         * platform/graphics/texmap/TextureMapperFPSCounter.h: Added.
2488         (WebCore):
2489         (TextureMapperFPSCounter):
2490         * platform/graphics/texmap/TextureMapperGL.cpp:
2491         (WebCore):
2492         (WebCore::TextureMapperGL::drawNumber):
2493           Rename from drawRepaintCounter to drawNumber.
2494         * platform/graphics/texmap/TextureMapperGL.h:
2495         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
2496         (WebCore::TextureMapperImageBuffer::drawNumber):
2497         * platform/graphics/texmap/TextureMapperImageBuffer.h:
2498         (TextureMapperImageBuffer):
2499         * platform/graphics/texmap/TextureMapperTiledBackingStore.cpp:
2500         (WebCore::TextureMapperTiledBackingStore::drawRepaintCounter):
2501         * platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp:
2502         (WebCore::CoordinatedBackingStore::drawRepaintCounter):
2503         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
2504           Move frames-per-second debug counter code to TextureMapperFPSCounter.
2505         (WebCore::CoordinatedGraphicsScene::CoordinatedGraphicsScene):
2506         (WebCore::CoordinatedGraphicsScene::paintToCurrentGLContext):
2507         (WebCore::CoordinatedGraphicsScene::paintToGraphicsContext):
2508         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
2509
2510 2013-02-11  Yury Semikhatsky  <yurys@chromium.org>
2511
2512         Web Inspector: stack trace is cut at native bind if inspector is closed
2513         https://bugs.webkit.org/show_bug.cgi?id=109427
2514
2515         Reviewed by Pavel Feldman.
2516
2517         Only top frame is collected instead of full stack trace when inspector
2518         front-end is closed to avoid expensive operations when exceptions are
2519         thrown.
2520
2521         Test: http/tests/inspector-enabled/console-exception-while-no-inspector.html
2522
2523         * inspector/InspectorConsoleAgent.cpp:
2524         (WebCore::InspectorConsoleAgent::addMessageToConsole):
2525
2526 2013-02-12  Kent Tamura  <tkent@chromium.org>
2527
2528         INPUT_MULTIPLE_FIELDS_UI: Mouse click not on sub-fields in multiple fields input  should not move focus
2529         https://bugs.webkit.org/show_bug.cgi?id=109544
2530
2531         Reviewed by Kentaro Hara.
2532
2533         This is similar to Bug 108914, "Should not move focus if the element
2534         already has focus." We fixed a focus() case in Bug 108914. However we
2535         still have the problem in a case of focusing by mouse click.
2536
2537         The fix for Bug 108914 intercepted focus() function to change the
2538         behavior. However focus-by-click doesn't call focus(), but calls
2539         FocusController::setFocusedNode. To fix this problem, we introduce
2540         oldFocusedNode argument to handleFocusEvent, and
2541         BaseMultipleFieldsDateAndTimeInputType::handleFocusEvent restores the
2542         focus to oldFocusedNode if oldFocusedNode is one of sub-fields.
2543         handleFocusEvent is called whenever the focused node is changed.
2544
2545         We don't need InputType::willCancelFocus any more because the new code
2546         in handleFocusEvent covers it.
2547
2548         Tests: Update fast/forms/time-multiple-fields/time-multiple-fields-focus.html.
2549
2550         * html/HTMLTextFormControlElement.h:
2551         (WebCore::HTMLTextFormControlElement::handleFocusEvent):
2552         Add oldFocusedNode argument.
2553         * html/HTMLTextFormControlElement.cpp:
2554         (WebCore::HTMLTextFormControlElement::dispatchFocusEvent):
2555         Pass oldFocusedNode to handleFocusEvent.
2556
2557         * html/HTMLInputElement.h:
2558         (HTMLInputElement):
2559          - Add oldFocusedNode argument to handleFocusEvent.
2560          - Remove focus() override.
2561         * html/HTMLInputElement.cpp: Remove focus() override.
2562         (WebCore::HTMLInputElement::handleFocusEvent):
2563         Pass oldFocusedNode to InputType::handleFocusEvent.
2564         * html/InputType.cpp: Remove willCancelFocus.
2565         (WebCore::InputType::handleFocusEvent):
2566         Add oldFocusedNode argument.
2567         * html/InputType.h:
2568         (InputType): Ditto.
2569         * html/PasswordInputType.cpp:
2570         (WebCore::PasswordInputType::handleFocusEvent): Ditto.
2571         * html/PasswordInputType.h:
2572         (PasswordInputType): Ditto.
2573
2574         * html/BaseMultipleFieldsDateAndTimeInputType.h:
2575         (BaseMultipleFieldsDateAndTimeInputType):
2576         Remove willCancelFocus, and add oldFocusedNode argument to handleFocusEvent.
2577         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
2578         (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleFocusEvent):
2579         Pass oldFocusedNode to DateTimeEditElement::focusByOwner if the
2580         direction is FocusDirectionNone.
2581
2582         * html/shadow/DateTimeEditElement.h:
2583         (DateTimeEditElement): Add oldFocusedNode argument to focusByOwner.
2584         * html/shadow/DateTimeEditElement.cpp:
2585         (WebCore::DateTimeEditElement::focusByOwner):
2586         If oldFocusedNode is one of sub-fields, focus on it again.
2587
2588 2013-02-12  Takashi Sakamoto  <tasak@google.com>
2589
2590         [Refactoring] Make m_selectorChecker in StyleResolver an on-stack object.
2591         https://bugs.webkit.org/show_bug.cgi?id=108595
2592
2593         Reviewed by Eric Seidel.
2594
2595         StyleResolver uses SelectorChecker's mode to change its resolving mode.
2596         However it is a state of StyleResolver. StyleResolver should have the
2597         mode and make SelectorChecker instance on a stack while required.
2598
2599         No new tests, just refactoring.
2600
2601         * css/SelectorChecker.cpp:
2602         (WebCore::SelectorChecker::fastCheckRightmostSelector):
2603         (WebCore::SelectorChecker::fastCheck):
2604         (WebCore::SelectorChecker::commonPseudoClassSelectorMatches):
2605         (WebCore::SelectorChecker::matchesFocusPseudoClass):
2606         Changed to static class function, because these methods never use
2607         "this".
2608         (WebCore):
2609         * css/SelectorChecker.h:
2610         (SelectorChecker):
2611         * css/StyleResolver.cpp:
2612         (WebCore::StyleResolver::StyleResolver):
2613         (WebCore::StyleResolver::collectMatchingRules):
2614         Now, matchesFocusPseudoClass is not a static method of
2615         SelectorChecker, so replaced "m_selectorChecker." with
2616         "SelectorChecker::".
2617         (WebCore::StyleResolver::sortAndTransferMatchedRules):
2618         (WebCore::StyleResolver::collectMatchingRulesForList):
2619         (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
2620         (WebCore::StyleResolver::matchUARules):
2621         (WebCore::StyleResolver::adjustRenderStyle):
2622         (WebCore::StyleResolver::pseudoStyleRulesForElement):
2623         Use m_mode instead of m_selectorChecker.mode().
2624         Also use document()->inQuirksMode() instead of
2625         m_selectoChecker.strictParsing().
2626         (WebCore::StyleResolver::ruleMatches):
2627         (WebCore::StyleResolver::checkRegionSelector):
2628         Created an on-stack SelectorChecker object and used it to check
2629         selectors.
2630         * css/StyleResolver.h:
2631         (WebCore::StyleResolver::State::State):
2632         Added m_mode, this keeps m_selectorChecker's mode.
2633         (State):
2634         (StyleResolver):
2635         Removed m_selectorChecker.
2636
2637 2013-02-11  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>
2638
2639         [Qt][EFL][WebGL] Minor refactoring of GraphicsSurface/GraphicsSurfaceGLX
2640         https://bugs.webkit.org/show_bug.cgi?id=108686
2641
2642         Reviewed by Noam Rosenthal.
2643
2644         Remove unused platformSurface()/m_platformSurface from GraphicsSurface.
2645         Move m_texture from GraphicsSurface to GLX GraphicsSurfacePrivate to match
2646         Win and Mac implementations.
2647
2648         No new tests, refactoring only.
2649
2650         * platform/graphics/surfaces/GraphicsSurface.cpp:
2651         (WebCore::GraphicsSurface::GraphicsSurface):
2652         * platform/graphics/surfaces/GraphicsSurface.h:
2653         (GraphicsSurface):
2654         * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
2655         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
2656         (WebCore::GraphicsSurfacePrivate::swapBuffers):
2657         (WebCore::GraphicsSurfacePrivate::surface):
2658         (GraphicsSurfacePrivate):
2659         (WebCore::GraphicsSurfacePrivate::textureID):
2660         (WebCore::GraphicsSurfacePrivate::clear):
2661         (WebCore::GraphicsSurface::platformExport):
2662         (WebCore::GraphicsSurface::platformGetTextureID):
2663         (WebCore::GraphicsSurface::platformSwapBuffers):
2664         (WebCore::GraphicsSurface::platformCreate):
2665         (WebCore::GraphicsSurface::platformImport):
2666         (WebCore::GraphicsSurface::platformDestroy):
2667
2668 2013-02-11  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>
2669
2670         [EFL][WebGL] WebGL content is not painted after resizing the viewport.
2671         https://bugs.webkit.org/show_bug.cgi?id=106358
2672
2673         Reviewed by Noam Rosenthal.
2674
2675         When page size changes and layer parameters get updated LayerTreeRenderer::setLayerState
2676         clears the layer backing store and detaches the canvas surface from the layer. If the layer
2677         size is not changed then the canvas is not recreated. This leaves the canvas detached from
2678         the layer, but still referenced from m_surfaceBackingStores.
2679         Don't assign layer backing store to layer in assignImageBackingToLayer if there is a canvas
2680         surface already attached to the layer.
2681
2682         Test: fast/canvas/webgl/webgl-layer-update.html
2683
2684         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
2685         (WebCore::CoordinatedGraphicsScene::setLayerState):
2686         (WebCore::CoordinatedGraphicsScene::assignImageBackingToLayer):
2687         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
2688
2689 2013-02-11  Eric Carlson  <eric.carlson@apple.com>
2690
2691         [Mac] Track language selection should be sticky
2692         https://bugs.webkit.org/show_bug.cgi?id=109466
2693
2694         Reviewed by Dean Jackson.
2695
2696         Choosing a text track from the caption menu should make that track's language the
2697         preferred caption language. Turning captions off from the menu should disable captions
2698         in videos loaded subsequently.
2699
2700         OS X has system support for these settings, so changes made by DRT should not change the
2701         settings on the user's system. Add support for all other ports in DRT only.
2702
2703         Test: media/track/track-user-preferences.html
2704
2705         * WebCore.exp.in: Export PageGroup::captionPreferences().
2706
2707         * html/HTMLMediaElement.cpp:
2708         (WebCore::HTMLMediaElement::HTMLMediaElement): Use page()->group().captionPreferences().
2709         (WebCore::HTMLMediaElement::attach): Ditto.
2710         (WebCore::HTMLMediaElement::detach): Ditto.
2711         (WebCore::HTMLMediaElement::userPrefersCaptions): Ditto.
2712         (WebCore::HTMLMediaElement::configureTextTrackGroup): Ditto. Update for 
2713             preferredLanguageFromList change.
2714         (WebCore::HTMLMediaElement::toggleTrackAtIndex): Set user prefs for captions visible and
2715             caption language as appropriate.
2716
2717         * html/shadow/MediaControlElements.cpp:
2718         (WebCore::MediaControlClosedCaptionsTrackListElement::defaultEventHandler): Remove unneeded comment.
2719         (WebCore::MediaControlTextTrackContainerElement::updateSizes):  Use page()->group().captionPreferences().
2720
2721         * html/shadow/MediaControlsApple.cpp:
2722         (WebCore::MediaControlsApple::closedCaptionTracksChanged): Update caption menu button visibility.
2723
2724         * page/CaptionUserPreferences.h:
2725         (WebCore::CaptionUserPreferences::userPrefersCaptions): Support "testing" mode.
2726         (WebCore::CaptionUserPreferences::setUserPrefersCaptions): Ditto.
2727         (WebCore::CaptionUserPreferences::registerForPreferencesChangedCallbacks): Ditto.
2728         (WebCore::CaptionUserPreferences::unregisterForPreferencesChangedCallbacks): Ditto.
2729         (WebCore::CaptionUserPreferences::setPreferredLanguage): Ditto.
2730         (WebCore::CaptionUserPreferences::preferredLanguages): Ditto.
2731         (WebCore::CaptionUserPreferences::testingMode): Ditto.
2732         (WebCore::CaptionUserPreferences::setTestingMode): Ditto.
2733         (WebCore::CaptionUserPreferences::CaptionUserPreferences): Ditto.
2734
2735         * page/CaptionUserPreferencesMac.h:
2736         * page/CaptionUserPreferencesMac.mm:
2737         (WebCore::CaptionUserPreferencesMac::userPrefersCaptions): Support "testing" mode.
2738         (WebCore::CaptionUserPreferencesMac::setUserPrefersCaptions): Ditto.
2739         (WebCore::CaptionUserPreferencesMac::userHasCaptionPreferences): Ditto.
2740         (WebCore::CaptionUserPreferencesMac::registerForPreferencesChangedCallbacks): Change name from
2741             registerForCaptionPreferencesChangedCallbacks. Support "testing" mode.
2742         (WebCore::CaptionUserPreferencesMac::unregisterForPreferencesChangedCallbacks):  Change name from
2743             unregisterForCaptionPreferencesChangedCallbacks. Support "testing" mode.
2744         (WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): Support "testing" mode.
2745         (WebCore::CaptionUserPreferencesMac::captionFontSizeScale): Ditto.
2746         (WebCore::CaptionUserPreferencesMac::setPreferredLanguage): Ditto.
2747         (WebCore::CaptionUserPreferencesMac::preferredLanguages): Ditto. Return the platform override when set.
2748
2749         * page/PageGroup.cpp:
2750         (WebCore::PageGroup::registerForCaptionPreferencesChangedCallbacks): Remove because it is already
2751             available from the caption preference object.
2752         (WebCore::PageGroup::unregisterForCaptionPreferencesChangedCallbacks): Ditto.
2753         (WebCore::PageGroup::userPrefersCaptions): Ditto.
2754         (WebCore::PageGroup::userHasCaptionPreferences): Ditto.
2755         (WebCore::PageGroup::captionFontSizeScale): Ditto.
2756         * page/PageGroup.h:
2757
2758         * platform/Language.cpp:
2759         (WebCore::preferredLanguageFromList): Take the list of preferred languages instead of assuming
2760             the system list.
2761         * platform/Language.h:
2762
2763         * testing/Internals.cpp:
2764         (WebCore::Internals::resetToConsistentState): Disable caption testing mode.
2765         (WebCore::Internals::Internals): Enable caption testing mode so the user's system
2766             preferences are not modified.
2767
2768 2013-02-11  Huang Dongsung  <luxtella@company100.net>
2769
2770         Coordinated Graphics: Make CoordinatedGraphicsScene not know contents size.
2771         https://bugs.webkit.org/show_bug.cgi?id=108922
2772
2773         Reviewed by Noam Rosenthal.
2774
2775         Currently, CoordinatedGraphicsScene has two methods to know contents
2776         size: setContentsSize() and setVisibleContentsRect(). Contents size is
2777         used when adjusting a scroll position, but adjustment is not needed
2778         because EFL and Qt platform code (currently PageViewportController)
2779         already adjusts a scroll position, and it is natural for each platform
2780         to be in charge of adjusting. So this patch makes CoordinatedGraphicsScene
2781         not know contents size.
2782
2783         In addition, now DrawingAreaProxy::coordinatedLayerTreeHostProxy() is only used
2784         to get CoordinatedGraphicsScene.
2785
2786         This patch can only be tested manually since there is no automated
2787         testing facilities for in-motion touch.
2788         Test: ManualTests/fixed-position.html
2789               ManualTests/nested-fixed-position.html
2790
2791         * platform/graphics/texmap/TextureMapperLayer.cpp:
2792         (WebCore::TextureMapperLayer::setScrollPositionDeltaIfNeeded):
2793         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
2794         (WebCore::CoordinatedGraphicsScene::setScrollPosition):
2795         (WebCore::CoordinatedGraphicsScene::adjustPositionForFixedLayers):
2796         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
2797         (CoordinatedGraphicsScene):
2798
2799 2013-02-11  Huang Dongsung  <luxtella@company100.net>
2800
2801         Coordinated Graphics: remove the DidChangeScrollPosition message.
2802         https://bugs.webkit.org/show_bug.cgi?id=108051
2803
2804         Reviewed by Noam Rosenthal.
2805         Signed off for WebKit2 by Benjamin Poulain.
2806
2807         Currently, we use the DidChangeScrollPosition message to send the scroll
2808         position that WebCore used in this frame to UI Process. We had to have
2809         some member variables for the DidChangeScrollPosition message.
2810         However, we can send a scroll position via the DidRenderFrame message,
2811         because CoordinatedGraphicsScene::m_renderedContentsScrollPosition is
2812         updated at the moment of flushing. So we can remove the
2813         DidChangeScrollPosition message and some redundant member variables.
2814
2815         No tests. No change in behavior.
2816
2817         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
2818         (WebCore::CoordinatedGraphicsScene::flushLayerChanges):
2819         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
2820         (CoordinatedGraphicsScene):
2821
2822 2013-02-11  Ryosuke Niwa  <rniwa@webkit.org>
2823
2824         Disable delete button controller on non-Mac ports and delete EditorClient::shouldShowDeleteInterface
2825         https://bugs.webkit.org/show_bug.cgi?id=109534
2826
2827         Reviewed by Anders Carlsson.
2828
2829         * editing/DeleteButtonController.cpp:
2830         (WebCore::DeleteButtonController::show):
2831         * editing/Editor.cpp:
2832         (WebCore):
2833         * editing/Editor.h:
2834         (Editor):
2835         * loader/EmptyClients.h:
2836         (WebCore::EmptyEditorClient::shouldDeleteRange):
2837         (EmptyEditorClient):
2838         (WebCore::EmptyEditorClient::shouldShowDeleteInterface):
2839         * page/EditorClient.h:
2840         (EditorClient):
2841
2842 2013-02-11  Hayato Ito  <hayato@chromium.org>
2843
2844         Factor EventContext and introduces MouseOrFocusEventContext.
2845         https://bugs.webkit.org/show_bug.cgi?id=109278
2846
2847         Reviewed by Dimitri Glazkov.
2848
2849         To supoort Touch event retargeting (bug 107800), we have to factor
2850         event retargeting code so that it can support not only MouseEvent or FocusEvent,
2851         but also other events.
2852
2853         This is the first attempt to refactor event retargeting code, a
2854         separated patch from bug 109156.  EventContext is now factored and
2855         MouseOrFocusEventContext was introduced to support MouseEvent or
2856         FocusEvent separately.
2857
2858         In following patches, I'll introduce TouchEventContext and
2859         TouchEventDispatchMediator to support Touch event retargeting.
2860
2861         No new tests. No change in functionality.
2862
2863         * dom/EventContext.cpp:
2864         (WebCore::EventContext::EventContext): Factor relatedTarget out from EventContext into MouseOrFocusEventContext.
2865         (WebCore::EventContext::~EventContext):
2866         (WebCore):
2867         (WebCore::EventContext::handleLocalEvents):
2868         (WebCore::EventContext::isMouseOrFocusEventContext):
2869         (WebCore::MouseOrFocusEventContext::MouseOrFocusEventContext):  New. Handles MouseEvent's (or FocusEvent's) relatedTarget retargeting.
2870         (WebCore::MouseOrFocusEventContext::~MouseOrFocusEventContext):
2871         (WebCore::MouseOrFocusEventContext::handleLocalEvents):
2872         (WebCore::MouseOrFocusEventContext::isMouseOrFocusEventContext):
2873         * dom/EventContext.h:
2874         (EventContext):
2875         (WebCore::EventContext::node):
2876         (WebCore::EventContext::target):
2877         (WebCore::EventContext::currentTargetSameAsTarget):
2878         (WebCore):
2879         (MouseOrFocusEventContext):
2880         (WebCore::MouseOrFocusEventContext::relatedTarget):
2881         (WebCore::MouseOrFocusEventContext::setRelatedTarget):
2882         * dom/EventDispatcher.cpp:
2883         (WebCore::EventRelatedTargetAdjuster::adjust):
2884         (WebCore::EventDispatcher::adjustRelatedTarget):
2885         (WebCore::EventDispatcher::ensureEventPath):  Renamad from ensureEventAncestors. Use the DOM Core terminology.
2886         (WebCore::EventDispatcher::dispatchEvent):
2887         (WebCore::EventDispatcher::dispatchEventAtCapturing):
2888         (WebCore::EventDispatcher::dispatchEventAtTarget):
2889         (WebCore::EventDispatcher::dispatchEventAtBubbling):
2890         (WebCore::EventDispatcher::dispatchEventPostProcess):
2891         (WebCore::EventDispatcher::topEventContext):
2892         * dom/EventDispatcher.h:
2893         (EventRelatedTargetAdjuster):
2894         (EventDispatcher):
2895         * inspector/InspectorInstrumentation.cpp:
2896         (WebCore):
2897         (WebCore::eventHasListeners):
2898         (WebCore::InspectorInstrumentation::willDispatchEventImpl):
2899         * inspector/InspectorInstrumentation.h:
2900         (InspectorInstrumentation):
2901         (WebCore::InspectorInstrumentation::willDispatchEvent):
2902
2903 2013-02-11  peavo@outlook.com  <peavo@outlook.com>
2904
2905         [Curl] setCookiesFromDOM function does not save cookies to disk.
2906         https://bugs.webkit.org/show_bug.cgi?id=109285
2907
2908         Reviewed by Brent Fulgham.
2909
2910         Write cookies to disk by using the Curl easy api.
2911
2912         * platform/network/curl/CookieJarCurl.cpp:
2913         (WebCore::setCookiesFromDOM):Write cookie to disk.
2914         * platform/network/curl/ResourceHandleManager.cpp:
2915         (WebCore::ResourceHandleManager::getCurlShareHandle): Added method to get Curl share handle.
2916         (WebCore::ResourceHandleManager::getCookieJarFileName): Added method to get cookie file name.
2917         * platform/network/curl/ResourceHandleManager.h: Added methods to get cookie file name, and Curl share handle.
2918
2919 2013-02-11  Hayato Ito  <hayato@chromium.org>
2920
2921         Split each RuleSet and feature out from StyleResolver into its own class.
2922         https://bugs.webkit.org/show_bug.cgi?id=107777
2923
2924         Reviewed by Dimitri Glazkov.
2925
2926         Re-landing r141964, which was reverted in r141973, since r141964 seem to be innocent.
2927
2928         No tests. No change in behavior.
2929
2930         * CMakeLists.txt:
2931         * GNUmakefile.list.am:
2932         * Target.pri:
2933         * WebCore.gypi:
2934         * WebCore.xcodeproj/project.pbxproj:
2935         * css/CSSAllInOne.cpp:
2936         * css/DocumentRuleSets.cpp: Added.
2937         (WebCore):
2938         (WebCore::DocumentRuleSets::DocumentRuleSets):
2939         (WebCore::DocumentRuleSets::~DocumentRuleSets):
2940         (WebCore::DocumentRuleSets::initUserStyle): New helper to initialize each RuleSets.
2941         (WebCore::DocumentRuleSets::collectRulesFromUserStyleSheets): Factored out from StyleResolver.
2942         (WebCore::makeRuleSet): Ditto.
2943         (WebCore::DocumentRuleSets::resetAuthorStyle): Ditto.
2944         (WebCore::DocumentRuleSets::appendAuthorStyleSheets): Ditto.
2945         (WebCore::DocumentRuleSets::collectFeatures): Ditto.
2946         (WebCore::DocumentRuleSets::reportMemoryUsage): New methods to report memory usage. Factored out from StyleResolver.
2947         * css/DocumentRuleSets.h: Added.
2948         (WebCore):
2949         (DocumentRuleSets):
2950         (WebCore::DocumentRuleSets::authorStyle): Moved from StyleResolver.
2951         (WebCore::DocumentRuleSets::userStyle): Ditto.
2952         (WebCore::DocumentRuleSets::features): Ditto.
2953         (WebCore::DocumentRuleSets::sibling): Ditto.
2954         (WebCore::DocumentRuleSets::uncommonAttribute): Ditto.
2955         * css/StyleResolver.cpp:
2956         (WebCore::StyleResolver::StyleResolver):
2957         (WebCore::StyleResolver::appendAuthorStyleSheets): Now calls DocumentRuleSets::appendAuthorStyleSheets.
2958         (WebCore::StyleResolver::matchAuthorRules): Use m_ruleSets.
2959         (WebCore::StyleResolver::matchUserRules): Ditto.
2960         (WebCore::StyleResolver::classNamesAffectedByRules): Ditto.
2961         (WebCore::StyleResolver::locateCousinList): Ditto.
2962         (WebCore::StyleResolver::canShareStyleWithElement): Ditto.
2963         (WebCore::StyleResolver::locateSharedStyle): Ditto.
2964         (WebCore::StyleResolver::styleForPage): Ditto.
2965         (WebCore::StyleResolver::checkRegionStyle): Ditto.
2966         (WebCore::StyleResolver::applyProperty): Ditto.
2967         (WebCore::StyleResolver::reportMemoryUsage): Now calls DocumentRuleSets::reportMemoryUsage.
2968         * css/StyleResolver.h:
2969         (WebCore::StyleResolver::scopeResolver):
2970         (StyleResolver):
2971         (WebCore::StyleResolver::ruleSets): accessor r to DocumentRuleSets.
2972         (WebCore::StyleResolver::usesSiblingRules): Use m_ruleSets.
2973         (WebCore::StyleResolver::usesFirstLineRules): Ditto.
2974         (WebCore::StyleResolver::usesBeforeAfterRules): Ditto.
2975         (WebCore::StyleResolver::hasSelectorForAttribute): Ditto.
2976         (WebCore::StyleResolver::hasSelectorForClass): Ditto.
2977         (WebCore::StyleResolver::hasSelectorForId): Ditto.
2978         * dom/DocumentStyleSheetCollection.cpp:
2979         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
2980
2981 2013-02-11  Keishi Hattori  <keishi@webkit.org>
2982
2983         REGRESSION (r140778):Calendar Picker buttons are wrong when rtl
2984         https://bugs.webkit.org/show_bug.cgi?id=109158
2985
2986         Reviewed by Kent Tamura.
2987
2988         The calendar picker button's icon and position where wrong when rtl.
2989
2990
2991         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ar.html
2992
2993         * Resources/pagepopups/calendarPicker.css:
2994         (.year-month-button-left .year-month-button): Use -webkit-margin-end so the margin is applide to the right side.
2995         (.year-month-button-right .year-month-button): Use -webkit-margin-start so the margin is applide to the right side.
2996         (.today-clear-area .today-button): Use -webkit-margin-end so the margin is applide to the right side.
2997         * Resources/pagepopups/calendarPicker.js:
2998         (YearMonthController.prototype._attachLeftButtonsTo): Flip icon image when rtl.
2999         (YearMonthController.prototype._attachRightButtonsTo): Ditto.
3000
3001 2013-02-11  KwangYong Choi  <ky0.choi@samsung.com>
3002
3003         REGRESSION (r142549): Remove web intents code
3004         https://bugs.webkit.org/show_bug.cgi?id=109532
3005
3006         Reviewed by Nico Weber.
3007
3008         Remove remaning code related to web intents.
3009
3010         No new tests, no change on behavior.
3011
3012         * UseJSC.cmake:
3013         * bindings/js/JSIntentConstructor.cpp: Removed.
3014
3015 2013-02-11  Kenneth Russell  <kbr@google.com>
3016
3017         Add temporary typedef to ANGLEWebKitBridge to support incompatible API upgrade
3018         https://bugs.webkit.org/show_bug.cgi?id=109127
3019
3020         Reviewed by Dean Jackson.
3021
3022         No new tests. Built and tested WebKit and Chromium with this change.
3023
3024         * platform/graphics/ANGLEWebKitBridge.cpp:
3025         (WebCore):
3026             Define temporary typedef spanning int -> size_t change.
3027         (WebCore::getValidationResultValue):
3028         (WebCore::getSymbolInfo):
3029             Use temporary typedef.
3030
3031 2013-02-11  Kentaro Hara  <haraken@chromium.org>
3032
3033         [V8] ScheduledAction::m_context can be empty, so we shouldn't
3034         retrieve an Isolate by using m_context->GetIsolate()
3035         https://bugs.webkit.org/show_bug.cgi?id=109523
3036
3037         Reviewed by Adam Barth.
3038
3039         Chromium bug: https://code.google.com/p/chromium/issues/detail?id=175307#makechanges
3040
3041         Currently ScheduledAction is retrieving an Isolate by using m_context->GetIsolate().
3042         This can crash because ScheduledAction::m_context can be empty. Specifically,
3043         ScheduledAction::m_context is set to ScriptController::currentWorldContext(),
3044         which can return an empty handle when a frame does not exist. In addition,
3045         'if(context.IsEmpty())' in ScheduledAction.cpp implies that it can be empty.
3046
3047         Alternately, we should pass an Isolate explicitly when a ScheduledAction is instantiated.
3048
3049         No tests. The Chromium crash report doesn't provide enough information
3050         to reproduce the bug.
3051
3052         * bindings/v8/ScheduledAction.cpp:
3053         (WebCore::ScheduledAction::ScheduledAction):
3054         (WebCore):
3055         (WebCore::ScheduledAction::~ScheduledAction):
3056         * bindings/v8/ScheduledAction.h:
3057         (ScheduledAction):
3058         * bindings/v8/custom/V8DOMWindowCustom.cpp:
3059         (WebCore::WindowSetTimeoutImpl):
3060         * bindings/v8/custom/V8WorkerContextCustom.cpp:
3061         (WebCore::SetTimeoutOrInterval):
3062
3063 2013-02-11  Adenilson Cavalcanti  <cavalcantii@gmail.com>
3064
3065         Build fix: r142549 broke EFL build
3066         https://bugs.webkit.org/show_bug.cgi?id=109527
3067
3068         Reviewed by Kentaro Hara.
3069
3070         No new tests, no change on behavior.
3071
3072         * CMakeLists.txt:
3073
3074 2013-02-11  Simon Fraser  <simon.fraser@apple.com>
3075
3076         REGRESSION (r142520?): Space no longer scrolls the page
3077         https://bugs.webkit.org/show_bug.cgi?id=109526
3078
3079         Reviewed by Tim Horton.
3080
3081         ScrollingTree::updateTreeFromStateNode() used to bail early when it had
3082         no children (no fixed or sticky elements), but that left updateAfterChildren()
3083         uncalled. Fix by always calling updateAfterChildren(), which updates the scroll
3084         position.
3085
3086         * page/scrolling/ScrollingTree.cpp:
3087         (WebCore::ScrollingTree::updateTreeFromStateNode):
3088
3089 2013-02-11  Tim Horton  <timothy_horton@apple.com>
3090
3091         Remove extra early-return in FrameView::setScrollPosition
3092
3093         Rubber-stamped by Simon Fraser.
3094
3095         * page/FrameView.cpp:
3096         (WebCore::FrameView::setScrollPosition):
3097
3098 2013-02-11  Arko Saha  <arko@motorola.com>
3099
3100         [Microdata] Fix crash after r141034 in chromuim port
3101         https://bugs.webkit.org/show_bug.cgi?id=109514
3102
3103         Reviewed by Ryosuke Niwa.
3104
3105         Added V8SkipVTableValidation extended attribute to skip
3106         VTable validation check for DOMSettableTokenList interface.
3107
3108         This patch fixes below test failures:
3109         Tests: fast/dom/MicroData/domsettabletokenlist-attributes-add-token.html
3110                fast/dom/MicroData/domsettabletokenlist-attributes-out-of-range-index.html
3111                fast/dom/MicroData/element-with-empty-itemprop.html
3112                fast/dom/MicroData/itemprop-add-remove-tokens.html
3113                fast/dom/MicroData/itemprop-for-an-element-must-be-correct.html
3114                fast/dom/MicroData/itemprop-must-be-read-only.html
3115                fast/dom/MicroData/itemprop-reflected-by-itemProp-property.html
3116                fast/dom/MicroData/itemref-add-remove-tokens.html
3117                fast/dom/MicroData/itemref-attribute-reflected-by-itemRef-property.html
3118                fast/dom/MicroData/itemref-for-an-element-must-be-correct.html
3119                fast/dom/MicroData/itemref-must-be-read-only.html
3120                fast/dom/MicroData/itemtype-add-remove-tokens.html
3121                fast/dom/MicroData/itemtype-attribute-test.html
3122                fast/dom/MicroData/microdata-domtokenlist-attribute-add-remove-tokens.html
3123                fast/dom/MicroData/properties-collection-namedgetter-with-invalid-name.html
3124                fast/dom/MicroData/propertynodelist-add-remove-itemprop-tokens.html
3125                fast/dom/MicroData/propertynodelist-add-remove-itemref-tokens.html
3126
3127         * html/DOMSettableTokenList.idl:
3128
3129 2013-02-11  Adam Barth  <abarth@webkit.org>
3130
3131         Load event fires too early with threaded HTML parser (take 2)
3132         https://bugs.webkit.org/show_bug.cgi?id=109485
3133
3134         Reviewed by Eric Seidel.
3135
3136         This patch restores the code that was removed in
3137         http://trac.webkit.org/changeset/142492 and adds code to
3138         DocumentLoader.cpp to avoid the regression.
3139
3140         * dom/Document.cpp:
3141         (WebCore::Document::hasActiveParser):
3142         (WebCore::Document::decrementActiveParserCount):
3143         * loader/DocumentLoader.cpp:
3144         (WebCore::DocumentLoader::isLoadingInAPISense):
3145
3146 2013-02-11  Eric Seidel  <eric@webkit.org>
3147
3148         Fold HTMLTokenizerState back into HTMLTokenizer now that MarkupTokenizerBase is RFG
3149         https://bugs.webkit.org/show_bug.cgi?id=109502
3150
3151         Reviewed by Tony Gentilcore.
3152
3153         Just a search replace of HTMLTokenizerState with HTMLTokenizer and moving the enum.
3154         This restores us to the peacefull world pre-NEW_XML.
3155
3156         * html/parser/BackgroundHTMLParser.cpp:
3157         (WebCore::BackgroundHTMLParser::forcePlaintextForTextDocument):
3158         (WebCore::BackgroundHTMLParser::simulateTreeBuilder):
3159         * html/parser/HTMLDocumentParser.cpp:
3160         (WebCore::tokenizerStateForContextElement):
3161         (WebCore::HTMLDocumentParser::forcePlaintextForTextDocument):
3162         (WebCore::HTMLDocumentParser::pumpTokenizer):
3163         * html/parser/HTMLTokenizer.cpp:
3164         (WebCore::isEndTagBufferingState):
3165         (WebCore):
3166         (WebCore::HTMLTokenizer::reset):
3167         (WebCore::HTMLTokenizer::flushEmitAndResumeIn):
3168         (WebCore::HTMLTokenizer::nextToken):
3169         (WebCore::HTMLTokenizer::updateStateFor):
3170         * html/parser/HTMLTokenizer.h:
3171         (HTMLTokenizer):
3172         (WebCore::HTMLTokenizer::create):
3173         (WebCore::HTMLTokenizer::shouldSkipNullCharacters):
3174         (WebCore::HTMLTokenizer::emitEndOfFile):
3175         * html/parser/HTMLTreeBuilder.cpp:
3176         (WebCore::HTMLTreeBuilder::processStartTagForInBody):
3177         (WebCore::HTMLTreeBuilder::processEndTag):
3178         (WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag):
3179         (WebCore::HTMLTreeBuilder::processGenericRawTextStartTag):
3180         (WebCore::HTMLTreeBuilder::processScriptStartTag):
3181         * html/parser/TextViewSourceParser.cpp:
3182         (WebCore::TextViewSourceParser::TextViewSourceParser):
3183
3184 2013-02-11  Kentaro Hara  <haraken@chromium.org>
3185
3186         Build fix after r142528
3187         https://bugs.webkit.org/show_bug.cgi?id=109520
3188
3189         Reviewed by Eric Seidel.
3190
3191         r142528 changed GIFImageReader from a struct to a class.
3192         We also need to fix a forward declaration.
3193
3194         No tests.
3195
3196         * platform/image-decoders/gif/GIFImageDecoder.h:
3197
3198 2013-02-11  Nico Weber  <thakis@chromium.org>
3199
3200         Remove web intents code
3201         https://bugs.webkit.org/show_bug.cgi?id=109501
3202
3203         Reviewed by Eric Seidel.
3204
3205         See thread "Removing ENABLE(WEB_INTENTS) code" on webkit-dev.
3206
3207         * DerivedSources.make:
3208         * Modules/intents/DOMWindowIntents.cpp: Removed.
3209         * Modules/intents/DOMWindowIntents.h: Removed.
3210         * Modules/intents/DOMWindowIntents.idl: Removed.
3211         * Modules/intents/DeliveredIntent.cpp: Removed.
3212         * Modules/intents/DeliveredIntent.h: Removed.
3213         * Modules/intents/DeliveredIntent.idl: Removed.
3214         * Modules/intents/Intent.cpp: Removed.
3215         * Modules/intents/Intent.h: Removed.
3216         * Modules/intents/Intent.idl: Removed.
3217         * Modules/intents/IntentRequest.cpp: Removed.
3218         * Modules/intents/IntentRequest.h: Removed.
3219         * Modules/intents/IntentResultCallback.h: Removed.
3220         * Modules/intents/IntentResultCallback.idl: Removed.
3221         * Modules/intents/NavigatorIntents.cpp: Removed.
3222         * Modules/intents/NavigatorIntents.h: Removed.
3223         * Modules/intents/NavigatorIntents.idl: Removed.
3224         * WebCore.gyp/WebCore.gyp:
3225         * WebCore.gypi:
3226         * bindings/generic/RuntimeEnabledFeatures.cpp:
3227         (WebCore):
3228         * bindings/generic/RuntimeEnabledFeatures.h:
3229         (RuntimeEnabledFeatures):
3230         * bindings/v8/custom/V8IntentCustom.cpp: Removed.
3231         * html/HTMLElementsAllInOne.cpp:
3232         * html/HTMLIntentElement.cpp: Removed.
3233         * html/HTMLIntentElement.h: Removed.
3234         * html/HTMLIntentElement.idl: Removed.
3235         * loader/EmptyClients.cpp:
3236         * loader/EmptyClients.h:
3237         (EmptyFrameLoaderClient):
3238         * loader/FrameLoaderClient.h:
3239         (WebCore):
3240         * page/DOMWindow.idl:
3241
3242 2013-02-11  Eric Seidel  <eric@webkit.org>
3243
3244         Fix Mac build after http://trac.webkit.org/changeset/142535.
3245
3246         Unreviewed build fix.
3247
3248         * html/parser/HTMLTokenizer.h:
3249         (WebCore::HTMLTokenizer::emitAndReconsumeIn):
3250
3251 2013-02-11  David Farler  <dfarler@apple.com>
3252
3253         Make WebCore Derived Sources work with SDK identifiers too
3254         https://bugs.webkit.org/show_bug.cgi?id=109324
3255
3256         Reviewed by Sam Weinig.
3257
3258         * WebCore.xcodeproj/project.pbxproj: Pass SDKROOT to make for DerivedSources.make
3259
3260 2013-02-11  Zhenyao Mo  <zmo@google.com>
3261
3262         WEBGL_compressed_texture_s3tc extension can be enabled even when not supported
3263         https://bugs.webkit.org/show_bug.cgi?id=109508
3264
3265         Reviewed by Kenneth Russell.
3266
3267         * html/canvas/WebGLRenderingContext.cpp:
3268         (WebCore):
3269         (WebCore::WebGLRenderingContext::getExtension): Check whether the extension support is there before returning the extension pointer.
3270
3271 2013-02-11  Emil A Eklund  <eae@chromium.org>
3272
3273         Change RenderFrameSet::paint to use m-rows/m_cols directly.
3274         https://bugs.webkit.org/show_bug.cgi?id=108503
3275
3276         Reviewed by Eric Seidel.
3277
3278         Test: fast/frames/invalid-frameset.html
3279
3280         * rendering/RenderFrameSet.cpp:
3281         (WebCore::RenderFrameSet::paint):
3282
3283 2013-02-11  Yong Li  <yoli@rim.com>
3284
3285         XMLHttpRequestProgressEventThrottle::resume() always schedules timer even when unnecessary
3286         https://bugs.webkit.org/show_bug.cgi?id=105348
3287
3288         Reviewed by Alexey Proskuryakov.
3289
3290         Let resume() clear the defer flag and return if there is deferred events to dispatch.
3291
3292         No new tests as this should not affect existing cross-platform behavior. It should be
3293         OK as long as it doesn't break anything.
3294
3295         * xml/XMLHttpRequestProgressEventThrottle.cpp:
3296         (WebCore::XMLHttpRequestProgressEventThrottle::resume):
3297
3298 2013-02-11  Eric Seidel  <eric@webkit.org>
3299
3300         Fold MarkupTokenizerBase into HTMLTokenizer now that it is the only subclass
3301         https://bugs.webkit.org/show_bug.cgi?id=109499
3302
3303         Reviewed by Adam Barth.
3304
3305         For great justice.  And sanity.
3306         Epic amount of template code deleted.
3307
3308         * GNUmakefile.list.am:
3309         * Target.pri:
3310         * WebCore.gypi:
3311         * WebCore.vcproj/WebCore.vcproj:
3312         * WebCore.vcxproj/WebCore.vcxproj:
3313         * WebCore.vcxproj/WebCore.vcxproj.filters:
3314         * WebCore.xcodeproj/project.pbxproj:
3315         * html/parser/HTMLTokenizer.cpp:
3316         (WebCore::HTMLTokenizer::HTMLTokenizer):
3317         * html/parser/HTMLTokenizer.h:
3318         (HTMLTokenizer):
3319         (Checkpoint):
3320         (WebCore::HTMLTokenizer::state):
3321         (WebCore::HTMLTokenizer::setState):
3322         (WebCore::HTMLTokenizer::shouldSkipNullCharacters):
3323         (WebCore::HTMLTokenizer::bufferCharacter):
3324         (WebCore::HTMLTokenizer::emitAndResumeIn):
3325         (WebCore::HTMLTokenizer::emitAndReconsumeIn):
3326         (WebCore::HTMLTokenizer::emitEndOfFile):
3327         (WebCore::HTMLTokenizer::haveBufferedCharacterToken):
3328         * xml/parser/MarkupTokenizerBase.h: Removed.
3329
3330 2013-02-11  Anton Vayvod  <avayvod@chromium.org>
3331
3332         [Text Autosizing] Collect narrow descendants and process them separately. Refactoring for
3333         a change to follow.
3334         https://bugs.webkit.org/show_bug.cgi?id=109054
3335
3336         Preparational change to combine narrow descendants of the same autosizing cluster into
3337         groups by the width difference between the descendant and the block containing all text of
3338         the parent autosizing cluster. The groups will be autosized with the same multiplier.
3339
3340         For example, on sites with a sidebar, sometimes the paragraphs next to the sidebar will have
3341         a large margin individually applied (via a CSS selector), causing them all to individually
3342         appear narrower than their enclosing blockContainingAllText. Rather than making each of
3343         these paragraphs into a separate cluster, we eventually want to be able to merge them back
3344         together into one (or a few) descendant clusters.
3345
3346         Reviewed by Julien Chaffraix.
3347
3348         No behavioral changes thus no new tests or test changes.
3349
3350         * rendering/TextAutosizer.cpp:
3351         (TextAutosizingClusterInfo): Vector of narrow descendants.
3352         (WebCore::TextAutosizer::processCluster): Process narrow descendants separately.
3353         (WebCore::TextAutosizer::processContainer):
3354
3355             Remember narrow descendants of the parent cluster for later processing.
3356
3357 2013-02-11  Enrica Casucci  <enrica@apple.com>
3358
3359         Add ENABLE_DELETION_UI to control the use of the deletion UI.
3360         https://bugs.webkit.org/show_bug.cgi?id=109463.
3361
3362         Reviewed by Ryosuke Niwa.
3363         
3364         This patch adds #if ENABLE(DELETION_UI) in every spot where
3365         DeleteButtonController is used. This class is now only instantiated
3366         if the feature is enabled. I've also done some cleanup in the
3367         DeleteButtonController class, removing unused methods and making
3368         private some methods only used internally to the class.
3369         Both DeleteButtonController and DeleteButton classes are now excluded
3370         from the compilation if the feature is not enabled.
3371
3372         No new tests, no change of functionality.
3373
3374         * dom/ContainerNode.cpp:
3375         (WebCore::ContainerNode::cloneChildNodes):
3376         * editing/CompositeEditCommand.cpp:
3377         (WebCore::EditCommandComposition::unapply):
3378         (WebCore::EditCommandComposition::reapply):
3379         (WebCore::CompositeEditCommand::apply):
3380         * editing/DeleteButton.cpp:
3381         * editing/DeleteButtonController.cpp:
3382         * editing/DeleteButtonController.h: Some cleanup.
3383         (WebCore::DeleteButtonController::enabled): Made private.
3384         * editing/EditCommand.cpp:
3385         (WebCore::EditCommand::EditCommand):
3386         * editing/Editor.cpp:
3387         (WebCore::Editor::notifyComponentsOnChangedSelection):
3388         (WebCore::Editor::Editor):
3389         (WebCore::Editor::rangeForPoint):
3390         (WebCore::Editor::deviceScaleFactorChanged):
3391         * editing/Editor.h:
3392         * editing/htmlediting.cpp: avoidIntersectionWithNode is
3393         used only if the feature is enabled.
3394         * editing/htmlediting.h:
3395         * editing/markup.cpp:
3396         (WebCore::createMarkup):
3397         (WebCore::createFragmentFromNodes):
3398         * rendering/RenderTable.cpp: Removed unnecessary include
3399         fo DeleteButtonController.h
3400
3401 2013-02-11  Rafael Weinstein  <rafaelw@chromium.org>
3402
3403         [HTMLTemplateElement] <template> inside of <head> may not create <body> if EOF is hit
3404         https://bugs.webkit.org/show_bug.cgi?id=109338
3405
3406         Reviewed by Adam Barth.
3407
3408         This patch adds the logic to clear the stack of open elements back to the first <template> when EOF
3409         is hit. This allows a <body> to be generated if the initial <template> was opened inside of <head>.
3410
3411         Tests added to html5lib.
3412
3413         * html/parser/HTMLTreeBuilder.cpp:
3414         (WebCore):
3415         (WebCore::HTMLTreeBuilder::popAllTemplates):
3416         (WebCore::HTMLTreeBuilder::processEndTag):
3417         (WebCore::HTMLTreeBuilder::processEndOfFile):
3418         * html/parser/HTMLTreeBuilder.h:
3419         (HTMLTreeBuilder):
3420
3421 2013-02-11  Andreas Kling  <akling@apple.com>
3422
3423         RenderText::isAllCollapsibleWhitespace() shouldn't upconvert string to 16-bit.
3424         <http://webkit.org/b/109354>
3425
3426         Reviewed by Eric Seidel.
3427
3428         254 KB progression on Membuster3.
3429
3430         * rendering/RenderText.cpp:
3431         (WebCore::RenderText::isAllCollapsibleWhitespace):
3432
3433 2013-02-11  Alpha Lam  <hclam@chromium.org>
3434
3435         Fix code style violations in GIFImageReader.{cc|h}
3436         https://bugs.webkit.org/show_bug.cgi?id=109007
3437
3438         Reviewed by Stephen White.
3439
3440         This is just a style clean up for GIFImageReader.{cc|h}.
3441
3442         There's going to be a lot changes in these two files and style check
3443         will add a lot of noise in later reviews. Fix style problems first.
3444
3445         There is no change in logic at all. Just style fixes.
3446
3447         No new tests.
3448
3449         * platform/image-decoders/gif/GIFImageDecoder.cpp:
3450         (WebCore::GIFImageDecoder::frameCount):
3451         (WebCore::GIFImageDecoder::repetitionCount):
3452         (WebCore::GIFImageDecoder::haveDecodedRow):
3453         (WebCore::GIFImageDecoder::initFrameBuffer):
3454         * platform/image-decoders/gif/GIFImageReader.cpp:
3455         (GIF