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