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