1 2013-07-29 Alex Christensen <achristensen@apple.com>
3 Moved GLTransportSurface.h and .cpp out of efl-specific directory.
4 https://bugs.webkit.org/show_bug.cgi?id=119163
6 Reviewed by Alexis Menard.
8 * PlatformEfl.cmake: Changed directory of GLTransportSurface.cpp.
9 * platform/graphics/surfaces/GLTransportSurface.cpp: Copied from WebCore/platform/graphics/surfaces/efl/GLTransportSurface.cpp.
10 * platform/graphics/surfaces/GLTransportSurface.h: Copied from WebCore/platform/graphics/surfaces/efl/GLTransportSurface.h.
11 * platform/graphics/surfaces/efl/GLTransportSurface.cpp: Removed.
12 * platform/graphics/surfaces/efl/GLTransportSurface.h: Removed.
14 2013-07-29 Alex Christensen <achristensen@apple.com>
16 Speculative implementation of missing GraphicsContext3D methods on Windows.
17 https://bugs.webkit.org/show_bug.cgi?id=119167
19 Reviewed by Dean Jackson.
21 * WebCore.vcxproj/WebCore.vcxproj:
22 * WebCore.vcxproj/WebCore.vcxproj.filters:
23 * platform/graphics/win/GraphicsContext3DWin.cpp: Added.
24 (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
25 (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
26 (WebCore::GraphicsContext3D::create):
27 (WebCore::GraphicsContext3D::GraphicsContext3D):
28 (WebCore::GraphicsContext3D::~GraphicsContext3D):
29 (WebCore::GraphicsContext3D::setContextLostCallback):
30 (WebCore::GraphicsContext3D::setErrorMessageCallback):
31 (WebCore::GraphicsContext3D::makeContextCurrent):
32 (WebCore::GraphicsContext3D::platformGraphicsContext3D):
33 (WebCore::GraphicsContext3D::platformTexture):
34 (WebCore::GraphicsContext3D::isGLES2Compliant):
35 (WebCore::GraphicsContext3D::platformLayer):
37 2013-07-29 Dean Jackson <dino@apple.com>
39 Max IOSurfaceDimension should be an inclusive upper bound
40 https://bugs.webkit.org/show_bug.cgi?id=119206
41 <rdar://problem/14555311>
43 Reviewed by Simon Fraser.
45 The maxIOSurfaceDimension value should be an inclusive upper bound.
46 Change the greater than or equal to into a greater than. This will
47 allow canvas elements of this dimension to be accelerated.
49 * platform/graphics/cg/ImageBufferCG.cpp:
50 (WebCore::ImageBuffer::ImageBuffer): Change >= to >
52 2013-07-29 Renata Hodovan <reni@webkit.org>
54 ASSERT_NOT_REACHED was touched in WebCore::SVGAnimatedType::valueAsString
55 https://bugs.webkit.org/show_bug.cgi?id=118744
57 Reviewed by Philip Rogers.
59 If we have an <animateTransform> tag that sets the attributeName and attributeType
60 properties however they are not consistent and we shouldn't try to apply it.
61 It is already checked and catched in SVGAnimateElement::resetAnimatedType() but
62 DontApplyAnimation case isn't handled properly. The patch forces an early return
65 Test: svg/animations/attributeNameAndAttributeTypeMissmatch.svg
67 * svg/SVGAnimateElement.cpp:
68 (WebCore::SVGAnimateElement::resetAnimatedType):
70 2013-07-29 Allan Sandfeld Jensen <allan.jensen@digia.com>
72 REGRESSION(148300) GIFs not reanimated after resumeActiveDOMObjectAndAnimations
73 https://bugs.webkit.org/show_bug.cgi?id=119217
75 Reviewed by Tim Horton.
77 Commit 148300 introduced a new better was of restarting GIF animations after
78 they have been suspended. Unfortunately the method was not activated when a page
79 is resumed but only when it is returning from background.
81 This fixes GIF animations that are stopped during user interaction on Qt and other
82 platforms using suspendActiveDOMObjectAndAnimations.
85 (WebCore::Frame::resumeActiveDOMObjectsAndAnimations):
87 2013-07-29 Alex Christensen <achristensen@apple.com>
89 Made EGL useable by non-cairo ports.
90 https://bugs.webkit.org/show_bug.cgi?id=119177
92 Reviewed by Brent Fulgham.
94 * platform/graphics/cairo/GLContext.h:
95 * platform/graphics/egl/GLContextEGL.cpp:
96 (WebCore::GLContextEGL::GLContextEGL):
97 * platform/graphics/egl/GLContextEGL.h:
98 Protected Cairo-specific code with #if USE(CAIRO)
100 2013-07-29 Sergio Correia <sergio.correia@openbossa.org>
102 CoordinatedGraphics: Add API to get and set the active state of a WebView
103 https://bugs.webkit.org/show_bug.cgi?id=119067
105 Reviewed by Noam Rosenthal.
107 Added a method to return whether a scene is active or not.
109 No new tests, no behavior change.
111 * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
112 (WebCore::CoordinatedGraphicsScene::isActive): Added method to return the
113 active state of the scene.
115 2013-07-29 Mario Sanchez Prada <mario.prada@samsung.com>
117 [ATK] Issues with edge cases when getting offsets for a text range in AtkText
118 https://bugs.webkit.org/show_bug.cgi?id=118908
120 Reviewed by Martin Robinson.
122 Reimplement getSelectionOffsetsForObject() just in term of
123 Positions instead of using ranges, which makes it simpler and
124 works better. Also, make sure we use the right Node as reference
125 for the accessibility object by getting the proper one both for
126 text control objects (e.g. input, text area) and normal ones.
128 * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
129 (getNodeForAccessibilityObject): New helper function to ensure we
130 always get the relevant object from the DOM tree for a given
131 accessibility object, in the context of the implementation of
132 AtkText, so it works both with Text Controls and other elements.
133 (getSelectionOffsetsForObject): Rewritten this function in terms
134 of VisiblePositions and avoiding weird operations with ranges, so
135 we have more control to fine tune the results and give more
136 accurate ones. Besides, now it works better with edge cases.
138 2013-07-29 Zan Dobersek <zdobersek@igalia.com>
141 https://bugs.webkit.org/show_bug.cgi?id=118981
143 Reviewed by Anders Carlsson.
145 * dom/Clipboard.h: Add forward declaration for the Range class. This was not necessary until now as the forward
146 declaration was introduced in the DragImage header, from where it's being removed due to not being required in that class.
147 * page/Frame.h: Ditto.
148 * platform/DragImage.cpp: Remove the unnecessary DragController and FontRenderingMode header inclusions.
149 The latter is already included in the header.
150 * platform/DragImage.h: Remove the forward declaration for the Range class - it's not used by the DragImage class at all.
152 2013-07-29 Kwang Yul Seo <skyul@company100.net>
154 [EFL] Improve string use in ErrorsEfl
155 https://bugs.webkit.org/show_bug.cgi?id=119207
157 Reviewed by Christophe Dumez.
159 Use ASCIILiteral for constant strings becoming WTFStrings.
163 * platform/efl/ErrorsEfl.cpp:
164 (WebCore::cancelledError):
165 (WebCore::blockedError):
166 (WebCore::cannotShowURLError):
167 (WebCore::interruptedForPolicyChangeError):
168 (WebCore::cannotShowMIMETypeError):
169 (WebCore::fileDoesNotExistError):
170 (WebCore::pluginWillHandleLoadError):
171 (WebCore::downloadCancelledByUserError):
172 (WebCore::printerNotFoundError):
173 (WebCore::invalidPageRangeToPrint):
175 2013-07-28 Andreas Kling <akling@apple.com>
177 Don't update the text track override CSS every time a media element is created.
178 <http://webkit.org/b/119199>
179 <rdar://problem/14572855>
181 Reviewed by Darin Adler.
183 We should only have to update the CSS if the accessibility caption preferences are changed.
184 This was forcing a full style recalc in every Document any time a media element is instantiated.
186 * page/CaptionUserPreferencesMediaAF.cpp:
187 (WebCore::CaptionUserPreferencesMediaAF::setInterestedInCaptionPreferenceChanges):
189 2013-07-28 Andy Estes <aestes@apple.com>
191 Stop exporting Widget::frameRectsChanged()
192 https://bugs.webkit.org/show_bug.cgi?id=119196
194 Reviewed by Darin Adler.
196 The definition is inlined in a private header, so there's no need to
197 export a symbol to link against. On the Mac, since we compile with
198 -fvisibility-inlines-hidden, removing the symbol from the export file
199 silences an ld warning about exporting a hidden symbol.
201 * WebCore.exp.in: Removed __ZN7WebCore6Widget17frameRectsChangedEv.
203 2013-07-28 Sam Weinig <sam@webkit.org>
205 Clean up CSSPrimitiveValue::equals a bit
206 https://bugs.webkit.org/show_bug.cgi?id=119195
208 Reviewed by Andreas Kling.
210 * css/CSSPrimitiveValue.cpp:
211 (WebCore::CSSPrimitiveValue::equals):
212 This should not change behavior, but is quite a bit clearer.
214 2013-07-27 Ryuan Choi <ryuan.choi@samsung.com>
216 [EFL] Bump required version of EFL to 1.7
217 https://bugs.webkit.org/show_bug.cgi?id=119144
219 Reviewed by Christophe Dumez.
221 * platform/efl/FileSystemEfl.cpp: Removed workaround code which was fixed at Eina 1.7
222 (WebCore::listDirectory):
224 2013-07-27 Jacky Jiang <zhajiang@blackberry.com>
226 Replace all uses of GraphicsLayer::create function with the one that takes a GraphicsLayerFactory
227 https://bugs.webkit.org/show_bug.cgi?id=119186
229 Reviewed by Anders Carlsson.
231 Remove GraphicsLayer::create(GraphicsLayerClient*) function since it's
232 been deprecated by r130072.
236 * platform/graphics/GraphicsLayer.h:
237 * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
238 * platform/graphics/ca/GraphicsLayerCA.cpp:
239 * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
241 2013-07-27 Alexey Proskuryakov <ap@apple.com>
243 HTMLParserScheduler gets into an inconsistent state when suspended for reasons
244 other than WillDeferLoading
245 https://bugs.webkit.org/show_bug.cgi?id=119172
247 Reviewed by Sam Weinig.
249 When loading is not deferred, even a suspended parser will be processing new data
250 from network, potentially starting its next chunk timer.
252 Limit suspending to when we can actually enforce it.
254 Here is what happens for each ReasonForSuspension:
255 - JavaScriptDebuggerPaused: continuing to parse is probably wrong, but in practice,
256 this is unlikely to happen while debugging, and wasn't properly prevented before
258 - WillDeferLoading: No change in behavior.
259 - DocumentWillBecomeInactive: This is about page cache, and documents are only allowed
260 to be cached when fully loaded.
261 - PageWillBeSuspended: This appears to be part of Frame::suspendActiveDOMObjectsAndAnimations()
262 implementation, I'm guessing that it is appropriate to continue loading.
265 (WebCore::Document::suspendScheduledTasks):
266 (WebCore::Document::resumeScheduledTasks):
267 Only suspend/resume parsing when loading is deferred. This is not expressed directly,
268 but it's important to do this to avoid executing JS behind alerts and other modal dialogs.
270 * html/parser/HTMLParserScheduler.h: Added m_suspended member variable for assertions.
272 * html/parser/HTMLParserScheduler.cpp:
273 (WebCore::HTMLParserScheduler::HTMLParserScheduler):
274 (WebCore::HTMLParserScheduler::continueNextChunkTimerFired):
275 (WebCore::HTMLParserScheduler::scheduleForResume):
276 (WebCore::HTMLParserScheduler::suspend):
277 (WebCore::HTMLParserScheduler::resume):
278 Update m_suspended and assert as appropriate. No behavior changes for release mode.
280 * page/Frame.cpp: (WebCore::Frame::suspendActiveDOMObjectsAndAnimations):
283 2013-07-27 Alexey Proskuryakov <ap@apple.com>
285 Make SuspendableTimer safer
286 https://bugs.webkit.org/show_bug.cgi?id=119127
288 Reviewed by Sam Weinig.
290 SuspendableTimer now enforces that it stays suspended until resumed (or until stopped
291 and started again). To ensure this, TimerBase is now a private base class, and parts of
292 its interface that clients use are reimplemented with suspend/resume in mind.
294 Derived classes are still allowed to override TimerBase virtual functions (notably
295 fired() and alignedFireTime()).
297 * dom/DocumentEventQueue.cpp:
298 (WebCore::DocumentEventQueueTimer): Removed an extraneous WTF_MAKE_NONCOPYABLE,
299 TimerBase has it already.
300 (WebCore::DocumentEventQueueTimer::create): Use our normal create() pattern.
301 (WebCore::DocumentEventQueue::DocumentEventQueue): Made the constructor private, accordingly.
302 (WebCore::DocumentEventQueue::cancelEvent): Use SuspendableTimer::cancel(), which
303 is a new name to disambiguate TimerBase::stop() and ActiveDOMObject::stop().
304 (WebCore::DocumentEventQueue::close): Ditto.
307 (WebCore::DOMTimer::fired): Now that SuspendableTimer knows whether it's currently
308 suspended, assert that it's not.
309 (WebCore::DOMTimer::didStop): Separated ActiveDOMObject::stop() implementation from
310 additional cleanup, allowing for better SuspendableTimer encapsulation.
312 * page/DOMTimer.h: Added FINAL and OVVERIDE specifiers as appropriate.
314 * page/SuspendableTimer.h: Added FINAL (and OVERRIDE) qualifiers to ActiveDOMObject
315 methods. A derived class that wants to override current behavior is most likely not
316 a timer, and thus shouldn't be a derived class.
317 (WebCore::SuspendableTimer::isActive): SuspendableTimer with a next fire time is
318 active even if suspended, we shouldn't overwrite its saved data thinking that it's
320 (WebCore::SuspendableTimer::isSuspended): Exposed to clients (m_suspended is no
323 * page/SuspendableTimer.cpp:
324 (WebCore::SuspendableTimer::SuspendableTimer): Updated for new variable names.
325 (WebCore::SuspendableTimer::stop): This is ActiveDOMObject::stop(), which is called
326 before final destruction. We don't track this state directly, but can approximate
327 with setting m_suspended, so even if someone tries to start the timer afterwards,
329 (WebCore::SuspendableTimer::suspend): Updated for new names.
330 (WebCore::SuspendableTimer::resume): Ditto.
331 (WebCore::SuspendableTimer::didStop): No-op default implementation for client hook.
332 (WebCore::SuspendableTimer::cancel): Equivalent of TimerBase::stop(), which also
333 works when suspended.
334 (WebCore::SuspendableTimer::startRepeating): Replacement for TimerBase function with
335 the same name, which works correctly when suspended. We don't want to actually start
336 the timer in this case.
337 (WebCore::SuspendableTimer::startOneShot): Ditto.
338 (WebCore::SuspendableTimer::repeatInterval): Ditto.
339 (WebCore::SuspendableTimer::augmentFireInterval): Ditto.
340 (WebCore::SuspendableTimer::augmentRepeatInterval): Ditto.
342 2013-07-27 Sam Weinig <sam@webkit.org>
344 Add assertions for CSSPrimitiveValue's m_value.valueID accessor
345 https://bugs.webkit.org/show_bug.cgi?id=119180
347 Reviewed by Andreas Kling.
349 * css/CSSPrimitiveValueMappings.h:
350 (WebCore::CSSPrimitiveValue::operator CSSReflectionDirection):
351 (WebCore::CSSPrimitiveValue::operator ColumnSpan):
352 (WebCore::CSSPrimitiveValue::operator PrintColorAdjust):
353 (WebCore::CSSPrimitiveValue::operator EBorderStyle):
354 (WebCore::CSSPrimitiveValue::operator OutlineIsAuto):
355 (WebCore::CSSPrimitiveValue::operator CompositeOperator):
356 (WebCore::CSSPrimitiveValue::operator ControlPart):
357 (WebCore::CSSPrimitiveValue::operator EBackfaceVisibility):
358 (WebCore::CSSPrimitiveValue::operator EFillAttachment):
359 (WebCore::CSSPrimitiveValue::operator EFillBox):
360 (WebCore::CSSPrimitiveValue::operator EFillRepeat):
361 (WebCore::CSSPrimitiveValue::operator EBoxPack):
362 (WebCore::CSSPrimitiveValue::operator EBoxAlignment):
363 (WebCore::CSSPrimitiveValue::operator EBoxDecorationBreak):
364 (WebCore::CSSPrimitiveValue::operator BackgroundEdgeOrigin):
365 (WebCore::CSSPrimitiveValue::operator EBoxSizing):
366 (WebCore::CSSPrimitiveValue::operator EBoxDirection):
367 (WebCore::CSSPrimitiveValue::operator EBoxLines):
368 (WebCore::CSSPrimitiveValue::operator EBoxOrient):
369 (WebCore::CSSPrimitiveValue::operator ECaptionSide):
370 (WebCore::CSSPrimitiveValue::operator EClear):
371 (WebCore::CSSPrimitiveValue::operator ECursor):
372 (WebCore::CSSPrimitiveValue::operator CursorVisibility):
373 (WebCore::CSSPrimitiveValue::operator EDisplay):
374 (WebCore::CSSPrimitiveValue::operator EEmptyCell):
375 (WebCore::CSSPrimitiveValue::operator EAlignItems):
376 (WebCore::CSSPrimitiveValue::operator EJustifyContent):
377 (WebCore::CSSPrimitiveValue::operator EFlexDirection):
378 (WebCore::CSSPrimitiveValue::operator EAlignContent):
379 (WebCore::CSSPrimitiveValue::operator EFlexWrap):
380 (WebCore::CSSPrimitiveValue::operator EFloat):
381 (WebCore::CSSPrimitiveValue::operator LineBreak):
382 (WebCore::CSSPrimitiveValue::operator EListStylePosition):
383 (WebCore::CSSPrimitiveValue::operator EListStyleType):
384 (WebCore::CSSPrimitiveValue::operator EMarginCollapse):
385 (WebCore::CSSPrimitiveValue::operator EMarqueeBehavior):
386 (WebCore::CSSPrimitiveValue::operator RegionFragment):
387 (WebCore::CSSPrimitiveValue::operator EMarqueeDirection):
388 (WebCore::CSSPrimitiveValue::operator ENBSPMode):
389 (WebCore::CSSPrimitiveValue::operator EOverflow):
390 (WebCore::CSSPrimitiveValue::operator EPageBreak):
391 (WebCore::CSSPrimitiveValue::operator EPosition):
392 (WebCore::CSSPrimitiveValue::operator EResize):
393 (WebCore::CSSPrimitiveValue::operator ETableLayout):
394 (WebCore::CSSPrimitiveValue::operator ETextAlign):
395 (WebCore::CSSPrimitiveValue::operator TextAlignLast):
396 (WebCore::CSSPrimitiveValue::operator TextJustify):
397 (WebCore::CSSPrimitiveValue::operator TextDecoration):
398 (WebCore::CSSPrimitiveValue::operator TextDecorationStyle):
399 (WebCore::CSSPrimitiveValue::operator TextUnderlinePosition):
400 (WebCore::CSSPrimitiveValue::operator ETextSecurity):
401 (WebCore::CSSPrimitiveValue::operator ETextTransform):
402 (WebCore::CSSPrimitiveValue::operator EUnicodeBidi):
403 (WebCore::CSSPrimitiveValue::operator EUserDrag):
404 (WebCore::CSSPrimitiveValue::operator EUserModify):
405 (WebCore::CSSPrimitiveValue::operator EUserSelect):
406 (WebCore::CSSPrimitiveValue::operator EVerticalAlign):
407 (WebCore::CSSPrimitiveValue::operator EVisibility):
408 (WebCore::CSSPrimitiveValue::operator EWhiteSpace):
409 (WebCore::CSSPrimitiveValue::operator EWordBreak):
410 (WebCore::CSSPrimitiveValue::operator EOverflowWrap):
411 (WebCore::CSSPrimitiveValue::operator TextDirection):
412 (WebCore::CSSPrimitiveValue::operator WritingMode):
413 (WebCore::CSSPrimitiveValue::operator TextCombine):
414 (WebCore::CSSPrimitiveValue::operator RubyPosition):
415 (WebCore::CSSPrimitiveValue::operator TextEmphasisPosition):
416 (WebCore::CSSPrimitiveValue::operator TextOverflow):
417 (WebCore::CSSPrimitiveValue::operator TextEmphasisFill):
418 (WebCore::CSSPrimitiveValue::operator TextEmphasisMark):
419 (WebCore::CSSPrimitiveValue::operator TextOrientation):
420 (WebCore::CSSPrimitiveValue::operator EPointerEvents):
421 (WebCore::CSSPrimitiveValue::operator FontDescription::Kerning):
422 (WebCore::CSSPrimitiveValue::operator FontSmoothingMode):
423 (WebCore::CSSPrimitiveValue::operator FontWeight):
424 (WebCore::CSSPrimitiveValue::operator FontItalic):
425 (WebCore::CSSPrimitiveValue::operator FontSmallCaps):
426 (WebCore::CSSPrimitiveValue::operator TextRenderingMode):
427 (WebCore::CSSPrimitiveValue::operator ColorSpace):
428 (WebCore::CSSPrimitiveValue::operator Hyphens):
429 (WebCore::CSSPrimitiveValue::operator LineSnap):
430 (WebCore::CSSPrimitiveValue::operator LineAlign):
431 (WebCore::CSSPrimitiveValue::operator Order):
432 (WebCore::CSSPrimitiveValue::operator ESpeak):
433 (WebCore::CSSPrimitiveValue::operator BlendMode):
434 (WebCore::CSSPrimitiveValue::operator LineCap):
435 (WebCore::CSSPrimitiveValue::operator LineJoin):
436 (WebCore::CSSPrimitiveValue::operator WindRule):
437 (WebCore::CSSPrimitiveValue::operator EAlignmentBaseline):
438 (WebCore::CSSPrimitiveValue::operator EBorderCollapse):
439 (WebCore::CSSPrimitiveValue::operator EBorderFit):
440 (WebCore::CSSPrimitiveValue::operator EImageRendering):
441 (WebCore::CSSPrimitiveValue::operator ETransformStyle3D):
442 (WebCore::CSSPrimitiveValue::operator ColumnAxis):
443 (WebCore::CSSPrimitiveValue::operator ColumnProgression):
444 (WebCore::CSSPrimitiveValue::operator WrapFlow):
445 (WebCore::CSSPrimitiveValue::operator WrapThrough):
446 (WebCore::CSSPrimitiveValue::operator GridAutoFlow):
447 (WebCore::CSSPrimitiveValue::operator EBufferedRendering):
448 (WebCore::CSSPrimitiveValue::operator EColorInterpolation):
449 (WebCore::CSSPrimitiveValue::operator EColorRendering):
450 (WebCore::CSSPrimitiveValue::operator EDominantBaseline):
451 (WebCore::CSSPrimitiveValue::operator EShapeRendering):
452 (WebCore::CSSPrimitiveValue::operator ETextAnchor):
453 (WebCore::CSSPrimitiveValue::operator SVGWritingMode):
454 (WebCore::CSSPrimitiveValue::operator EVectorEffect):
455 (WebCore::CSSPrimitiveValue::operator EMaskType):
456 Assert that the CSSPrimitiveValue is holding a CSSValueID before accessing it.
458 2013-07-26 Sam Weinig <sam@webkit.org>
460 Stop pretending to support <string> for text-align.
461 https://bugs.webkit.org/show_bug.cgi?id=119107
463 Reviewed by Andreas Kling.
465 Test: fast/css/text-align-string-crash.html
468 (WebCore::CSSParser::parseValue):
469 Stop pretending to support <string> for text-align.
471 * css/DeprecatedStyleBuilder.cpp:
472 (WebCore::ApplyPropertyTextAlign::applyValue):
473 ASSERT that only value IDs get passed.
475 2013-07-26 Gyuyoung Kim <gyuyoung.kim@samsung.com>
477 Introduce toSVGRectElement(), use it
478 https://bugs.webkit.org/show_bug.cgi?id=119126
480 Reviewed by Andreas Kling.
482 As a step to change static_cast with toSVGXXX, static_cast<SVGRectElement*> can
483 be changed with toSVGRectElement().
485 No new tests, no behavior change.
487 * rendering/svg/RenderSVGRect.cpp:
488 (WebCore::RenderSVGRect::updateShapeFromElement):
489 * rendering/svg/SVGPathData.cpp:
490 (WebCore::updatePathFromRectElement):
491 * rendering/svg/SVGRenderTreeAsText.cpp:
492 (WebCore::operator<<):
493 * svg/SVGRectElement.h:
494 (WebCore::toSVGRectElement):
496 2013-07-26 Yongjun Zhang <yongjun_zhang@apple.com>
498 With frame flattening on, too many resize events fired if document is resized in onresize handler.
499 https://bugs.webkit.org/show_bug.cgi?id=119075
501 Reviewed by Simon Fraser.
503 With http://trac.webkit.org/changeset/149287, WebCore also sends resize event in FrameView::setFrameRect. When
504 flattening an iframe, setFrameRect could be called multiple times from RenderFrameBase::layoutWithFlattening and
505 we could get multiple resize events. This patch adds a flag in FrameView to disallow sending resize events if
506 we are inside layoutWithFlattening. The resize event will be sent in performPostLayoutTasks after the iframe
509 Manually tested by verifying the rendering slowness in www.hi-pda.com is fixed when frame flattening is enabled.
511 * page/FrameView.cpp:
512 (WebCore::FrameView::FrameView):
513 (WebCore::FrameView::setFrameRect):
515 (WebCore::FrameView::setResizeEventAllowed):
516 (WebCore::FrameView::resizeEventAllowed):
517 * rendering/RenderFrameBase.cpp:
518 (WebCore::RenderFrameBase::layoutWithFlattening):
520 2013-07-26 Dean Jackson <dino@apple.com>
522 Allow new transitions to run even when controller is suspended
523 https://bugs.webkit.org/show_bug.cgi?id=119171
524 <rdar://problem/14511404>
526 Reviewed by Simon Fraser.
528 Expose a new property on AnimationController that allows newly created
529 animations to run even if the controller says it is suspended. See WebKit
530 ChangeLog for more details.
532 Test: transitions/created-while-suspended.html
534 * WebCore.exp.in: Export the new methods so WebView can use them.
535 * page/animation/AnimationController.cpp:
536 (WebCore::AnimationControllerPrivate::AnimationControllerPrivate): Initialize new flag to false.
537 (WebCore::AnimationControllerPrivate::startAnimationsIfNotSuspended): Check new flag is not true.
538 (WebCore::AnimationControllerPrivate::setAllowsNewAnimationsWhileSuspended): Expose setter.
539 (WebCore::AnimationController::allowsNewAnimationsWhileSuspended): "Public" getter.
540 (WebCore::AnimationController::setAllowsNewAnimationsWhileSuspended): "Public" setter.
541 * page/animation/AnimationController.h:
542 * page/animation/AnimationControllerPrivate.h:
543 (WebCore::AnimationControllerPrivate::allowsNewAnimationsWhileSuspended):
544 * page/animation/CompositeAnimation.cpp:
545 (WebCore::CompositeAnimation::CompositeAnimation): Only suspend if new flag is false. Everything else
546 relies on the m_suspended flag, so the real code change is this one line.
548 2013-07-26 Brent Fulgham <bfulgham@apple.com>
550 [Windows] Unreviewed build fix.
552 * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
553 (WebCore::createMetadataKeyNames): Do not include Media Selection
554 synbols when building without Media Selection API.
556 2013-07-26 Oliver Hunt <oliver@apple.com>
558 REGRESSION(FTL?): Crashes in plugin tests
559 https://bugs.webkit.org/show_bug.cgi?id=119141
561 Reviewed by Michael Saboff.
563 Getting the correct semantics to appease the inspector is fairly
564 awful with the iterator system. For the time being lets just revert
565 to requesting a full stack trace as we did in the past.
567 * bindings/js/ScriptCallStackFactory.cpp:
568 (WebCore::createScriptCallStack):
570 2013-07-26 Brent Fulgham <bfulgham@apple.com>
572 [Windows] Unreviewed build fix.
574 Correct build when targeting a release that does not have the AVCF
575 Legible Output infrastructure.
577 * platform/graphics/avfoundation/cf/AVFoundationCFSoftLinking.h: Exclude
578 a soft-link target when the API doesn't exist.
579 * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
580 Correct include options for non-Legible Output supporting environments.
581 (WebCore::MediaPlayerPrivateAVFoundationCF::processLegacyClosedCaptionsTracks):
582 Prevent build failure when building with legacy caption support.
584 2013-07-26 Andreas Kling <akling@apple.com>
586 Apply FINAL to the RenderObject hierarchy.
587 <http://webkit.org/b/115977>
589 Mostly from Blink r148795 by <cevans@chromium.org>
590 <http://src.chromium.org/viewvc/blink?view=revision&revision=148795>
592 * rendering/: Beat things with the FINAL stick.
593 * WebCore.exp.in: Export a now-needed symbol.
595 2013-07-26 Tim Horton <timothy_horton@apple.com>
597 Add a mode where autosizing fixes the FrameView height to at least the WKView height
598 https://bugs.webkit.org/show_bug.cgi?id=119104
599 <rdar://problem/14549021>
601 Reviewed by Anders Carlsson.
603 * WebCore.exp.in: Export FrameView::setAutoSizeFixedMinimumHeight.
604 * page/FrameView.cpp:
605 (WebCore::FrameView::FrameView):
606 Initialize m_autoSizeFixedMinimumHeight to 0.
608 (WebCore::FrameView::autoSizeIfEnabled):
609 Increase the FrameView height to m_autoSizeFixedMinimumHeight if necessary,
610 and do another layout. Store the computed intrinsic content size.
612 (WebCore::FrameView::setAutoSizeFixedMinimumHeight): Added.
615 (WebCore::FrameView::autoSizingIntrinsicContentSize): Added.
617 2013-07-26 Brent Fulgham <bfulgham@apple.com>
619 [Windows] Remove workarounds now that rdar://problem/14390466 is fixed.
620 https://bugs.webkit.org/show_bug.cgi?id=119150
622 Reviewed by Anders Carlsson.
624 * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
625 (WebCore::AVFWrapper::createPlayer): Remove workaround to add legible output
626 after player is created.
627 (WebCore::AVFWrapper::createPlayerItem): Remove workaround to delay adding
628 legible output until player is created.
629 (WebCore::AVFWrapper::platformLayer): Get rid of unused temporary.
631 2013-07-26 Brent Fulgham <bfulgham@apple.com>
633 [Windows] Unreviewed gardening.
635 * WebCore.vcxproj/WebCore.vcxproj: Add missing header file to ease code viewing.
636 * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
638 2013-07-26 Arvid Nilsson <anilsson@rim.com>
640 [BlackBerry] LayerTiler fails to render layer after waking up
641 https://bugs.webkit.org/show_bug.cgi?id=119146
643 Reviewed by George Staikos.
645 When the application is backgrounded, all tiles are freed up to
646 release memory back to the system. We also mark the contents as dirty
647 in LayerTiler::deleteTextures() so tiles will be repopulated when
650 The problem was caused by an optimization to avoid re-rendering tiles
651 repeatedly until the UI thread catches up with the fact that we have
652 indeed rendered those tiles (which will happen when the UI thread next
655 When contents are dirty, we're not supposed to perform this
656 optimization (i.e. we're not supposed to skip rendering) because the
657 appearance of the layer has changed, so we do need to render those
658 tiles. Unfortunately, the code that was supposed to forget the list of
659 tiles rendered was in a conditional, "if (frontVisibility)", which
660 happened to be false sometimes when the app woke up again. So we ended
661 up perpetually skipping those render jobs, and the UI thread kept
662 yelling at us to render them.
664 Fixed by unconditionally dropping the list of tiles rendered when
667 This can't be detected without pixel tests, which BB DRT currently
672 * platform/graphics/blackberry/LayerTiler.cpp:
673 (WebCore::LayerVisibility::clearTilesRendered):
674 (WebCore::LayerTiler::updateTextureContentsIfNeeded):
676 2013-07-25 Ryosuke Niwa <rniwa@webkit.org>
678 Remove unused HTMLTextFormControlElement::textRendererAfterUpdateLayout
679 https://bugs.webkit.org/show_bug.cgi?id=119121
681 Reviewed by Andreas Kling.
683 Merge https://chromium.googlesource.com/chromium/blink/+/3255ce725711707fe1fd18be91a6d06789517220.
685 * html/HTMLTextFormControlElement.cpp:
686 * html/HTMLTextFormControlElement.h:
688 2013-07-25 Ryosuke Niwa <rniwa@webkit.org>
690 Fix document leak when selection is created inside the document
691 https://bugs.webkit.org/show_bug.cgi?id=119122
693 Reviewed by Andreas Kling.
695 Merge https://chromium.googlesource.com/chromium/blink/+/b908cb4c8da93316d787de31c93f2a43de332a10
697 The bug was caused by FrameSelection::m_previousCaretNode holding onto a Node, leaking its document.
698 Fixed the bug by explicitly clearing it in FrameSelection::prepareForDestruction.
700 Test: editing/selection/leak-document-with-selection-inside.html
702 * editing/FrameSelection.cpp:
703 (WebCore::FrameSelection::prepareForDestruction):
705 2013-07-25 Andreas Kling <akling@apple.com>
707 ChromeClient::focusedNodeChanged() should be focusedElementChanged().
708 <http://webkit.org/b/119110>
710 Reviewed by Anders Carlsson.
712 Because only Elements can be focused.
715 (WebCore::Document::setFocusedElement):
716 * loader/EmptyClients.h:
717 (WebCore::EmptyChromeClient::focusedElementChanged):
719 (WebCore::Chrome::focusedElementChanged):
721 * page/ChromeClient.h:
723 2013-07-25 Kwang Yul Seo <skyul@company100.net>
725 [WK2][Soup] Add private browsing support
726 https://bugs.webkit.org/show_bug.cgi?id=118657
728 Reviewed by Gustavo Noronha Silva.
730 Support private browsing by adding a method to create a private
731 browsing soup session. This private browsing session uses a
732 non-persistent cookie jar and does not use the disk cache feature.
734 No new tests. Covered by existing private browsing tests.
736 * platform/network/NetworkStorageSession.h:
737 (WebCore::NetworkStorageSession::isPrivateBrowsingSession):
738 Add USE(SOUP) guard to isPrivateBrowsingSession() and m_isPrivate.
740 * platform/network/ResourceHandle.h:
741 Add a factory method to create a private browsing session for soup.
743 * platform/network/soup/CookieJarSoup.cpp:
744 (WebCore::createPrivateBrowsingCookieJar):
745 * platform/network/soup/CookieJarSoup.h:
746 Add a method to create a non-persistent cookie jar for private browsing.
748 * platform/network/soup/NetworkStorageSessionSoup.cpp:
749 (WebCore::NetworkStorageSession::NetworkStorageSession):
750 Initialize m_isPrivate to false.
751 (WebCore::NetworkStorageSession::createPrivateBrowsingSession):
752 Implement the method by invoking ResourceHandle::createPrivateBrowsingSession.
754 * platform/network/soup/ResourceHandleSoup.cpp:
755 (WebCore::createSoupSession):
756 Extract common soup session creation code so that both defaultSession
757 and createPrivateBrowsingSession can use this function to create a soup
759 (WebCore::ResourceHandle::defaultSession):
760 Change to use createSoupSession.
761 (WebCore::ResourceHandle::createPrivateBrowsingSession):
762 Create a session which uses a non-persistent cookie jar.
764 2013-07-25 Tim Horton <timothy_horton@apple.com>
766 Null check m_frame in maximum and minimumScrollPosition
767 https://bugs.webkit.org/show_bug.cgi?id=119109
768 <rdar://problem/14545393>
770 Reviewed by Darin Adler.
772 * page/FrameView.cpp:
773 (WebCore::FrameView::minimumScrollPosition):
774 (WebCore::FrameView::maximumScrollPosition):
775 Null-check m_frame (and move the early-return after the clamp-to-0
776 as the revert in r152911 should have).
778 2013-07-25 Anders Carlsson <andersca@apple.com>
780 Localizable.strings generated by extract-localizable-strings should be UTF-8
781 https://bugs.webkit.org/show_bug.cgi?id=119106
783 Reviewed by Mark Rowe.
785 * English.lproj/Localizable.strings:
786 Re-encode this as UTF-8 and remove the BOM.
788 * WebCore.xcodeproj/project.pbxproj:
789 Set the file encoding of Localizable.strings to UTF-8.
791 2013-07-25 Ryosuke Niwa <rniwa@webkit.org>
793 Don't force layout when querying a fixed or non-box margin/padding property
794 https://bugs.webkit.org/show_bug.cgi?id=118032
796 Reviewed by David Hyatt.
798 Merge https://chromium.googlesource.com/chromium/blink/+/66427d0825fcc2975bd50220cdcaa2504d6f36e5.
800 This patch avoids layout in ComputedStyleExtractor::propertyValue for margin and padding properties
801 when they are of fixed length. According to the Blink patch's author, this improves the page load
802 time of economist.com by 27%.
804 The actual code change is significantly different from the original Blink patch since we've done
805 some refactorins in r152938 and r153067 to make this change more self-contained.
807 Test: fast/css/computed-width-without-renderer.html
809 * css/CSSComputedStyleDeclaration.cpp:
810 (WebCore::zoomAdjustedPaddingOrMarginPixelValue):
811 (WebCore::paddingOrMarginIsRendererDependent):
812 (WebCore::isLayoutDependent):
813 (WebCore::ComputedStyleExtractor::propertyValue):
815 2013-07-25 Sam Weinig <sam@webkit.org>
817 -[WebHTMLView attributedSubstringForProposedRange:actualRange:] does not include strikethrough attribute in the returned attributed string
818 https://bugs.webkit.org/show_bug.cgi?id=119099
819 <rdar://problem/13439291>
821 Reviewed by Enrica Casucci.
824 API Test: AttributedStringTest_Strikethrough
826 * platform/mac/HTMLConverter.mm:
827 (+[WebHTMLConverter editingAttributedStringFromRange:]):
828 Set the NSStrikethroughStyleAttributeName attribute when text-decoration: line-through is seen.
830 2013-07-25 Pratik Solanki <psolanki@apple.com>
832 Unreviewed build fix after r153333.
834 * platform/network/cf/ResourceResponseCFNet.cpp: Remove toTimeT since it is no longer called.
836 2013-07-25 Christophe Dumez <ch.dumez@sisa.samsung.com>
838 Unreviewed EFL build fix after r153315.
840 Fix build error after we started compiling with c++0x support
843 * platform/efl/RenderThemeEfl.cpp:
844 (WebCore::toEdjeGroup):
846 2013-07-25 Anders Carlsson <andersca@apple.com>
848 Remove lastModifiedDate from ResourceResponse
849 https://bugs.webkit.org/show_bug.cgi?id=119092
851 Reviewed by Andreas Kling.
853 Computing m_lastResponseDate is costly on some platforms and we already have a better way to
854 get the last response time, so convert the two call sites that used to call ResourceresponseBase::lastModifiedDate()
855 over to using lastModified() instead.
857 * platform/network/ResourceResponseBase.cpp:
858 (WebCore::ResourceResponseBase::ResourceResponseBase):
859 (WebCore::ResourceResponseBase::adopt):
860 (WebCore::ResourceResponseBase::copyData):
861 * platform/network/ResourceResponseBase.h:
862 * platform/network/cf/ResourceResponseCFNet.cpp:
863 (WebCore::ResourceResponse::platformLazyInit):
864 * plugins/PluginStream.cpp:
865 (WebCore::lastModifiedDate):
866 (WebCore::PluginStream::startStream):
868 2013-07-25 Yi Shen <max.hong.shen@gmail.com>
870 Optimize the thread locks for API Shims
871 https://bugs.webkit.org/show_bug.cgi?id=118573
873 Reviewed by Geoffrey Garen.
875 Remove the thread lock from API Shims if the VM has an exclusive thread (e.g. the VM
876 only used by WebCore's main thread).
878 No new tests required since no functionality changed.
880 * bindings/js/JSDOMWindowBase.cpp:
881 (WebCore::JSDOMWindowBase::commonVM):
883 2013-07-25 Bear Travis <betravis@adobe.com>
885 [CSS Shapes] Shape methods and member variables should be guarded with the CSS_SHAPES flag
886 https://bugs.webkit.org/show_bug.cgi?id=117277
888 Reviewed by Alexandru Chiculita.
890 This patch adds some compile guards that were missing from the RenderStyle and
891 StyleRareNonInheritedData files. When the compile guard caused parameters to
892 not be used, the parameters were marked using UNUSED_PARAM.
894 * css/CSSPropertyNames.in: Inserting a line to trigger build.
895 * rendering/RenderBlock.cpp:
896 (WebCore::shapeInfoRequiresRelayout):
897 (WebCore::RenderBlock::updateRegionsAndShapesBeforeChildLayout):
898 (WebCore::RenderBlock::logicalRightFloatOffsetForLine):
899 * rendering/RenderBox.cpp:
900 (WebCore::isCandidateForOpaquenessTest):
901 * rendering/RenderBox.h:
902 * rendering/RenderObject.h:
903 * rendering/style/RenderStyle.cpp:
904 (WebCore::RenderStyle::changeRequiresLayout):
905 (WebCore::RenderStyle::changeRequiresRepaint):
906 * rendering/style/RenderStyle.h:
907 * rendering/style/StyleRareNonInheritedData.cpp:
908 (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
909 (WebCore::StyleRareNonInheritedData::operator==):
910 * rendering/style/StyleRareNonInheritedData.h:
912 2013-07-24 Gyuyoung Kim <gyuyoung.kim@samsung.com>
914 Introduce toSVGPatternElement(), use it
915 https://bugs.webkit.org/show_bug.cgi?id=119013
917 Reviewed by Andreas Kling.
919 As a step to change static_cast with toSVGXXX, static_cast<SVGPatternElement*> can
920 be changed with toSVGPatternElement().
922 Merge from https://src.chromium.org/viewvc/blink?view=rev&revision=154734
924 * rendering/svg/RenderSVGResourcePattern.cpp:
925 (WebCore::RenderSVGResourcePattern::buildPattern):
926 * rendering/svg/SVGRenderTreeAsText.cpp:
927 (WebCore::writeSVGResourceContainer):
928 * rendering/svg/SVGResources.cpp:
929 (WebCore::targetReferenceFromResource):
930 * svg/SVGPatternElement.h:
931 (WebCore::toSVGPatternElement):
933 2013-06-21 Mark Lam <mark.lam@apple.com>
935 Fixed broken build: updated to match SmallStrings changes in r151864.
941 * bindings/js/JSDOMBinding.h:
942 (WebCore::jsStringWithCache):
944 2013-06-15 Filip Pizlo <fpizlo@apple.com>
946 Concurrent JIT shouldn't try to recompute the CodeBlockHash as part of debug dumps, since doing so may fail if dealing with a CachedScript that doesn't have its script string handy
947 https://bugs.webkit.org/show_bug.cgi?id=117676
949 Reviewed by Sam Weinig.
951 Remove the broken hack for the concurrent JIT, since now the concurrent JIT won't use this code anymore.
953 No new tests because no new behavior.
955 * loader/cache/CachedScript.cpp:
956 (WebCore::CachedScript::script):
958 2013-06-10 Mark Lam <mark.lam@apple.com>
960 Introducing the StackIterator class.
961 https://bugs.webkit.org/show_bug.cgi?id=117390.
963 Reviewed by Geoffrey Garen.
967 * ForwardingHeaders/interpreter/StackIterator.h: Added.
968 * bindings/js/JSXMLHttpRequestCustom.cpp:
969 (WebCore::JSXMLHttpRequest::send):
970 * bindings/js/ScriptCallStackFactory.cpp:
971 (WebCore::createScriptCallStack):
973 2013-06-09 Filip Pizlo <fpizlo@apple.com>
975 Unreviewed, fix build. Use at() instead of operator[] because of ambiguity on some compilers.
977 * page/CaptionUserPreferencesMac.mm:
978 (WebCore::languageIdentifier):
980 2013-05-27 Filip Pizlo <fpizlo@apple.com>
982 testRunner should be able to tell you if a function is DFG compiled
983 https://bugs.webkit.org/show_bug.cgi?id=116847
985 Reviewed by Mark Hahnenberg.
987 Bail early if we're in the compilation thread. This is only relevant for
990 No new tests becase no new behavior.
992 * loader/cache/CachedScript.cpp:
993 (WebCore::CachedScript::script):
995 2013-05-25 Mark Lam <mark.lam@apple.com>
997 Remove Interpreter::retrieveLastCaller().
998 https://bugs.webkit.org/show_bug.cgi?id=116753.
1000 Reviewed by Geoffrey Garen.
1002 This is part of the refactoring effort to get rid of functions walking
1003 the JS stack in their own way.
1007 * bindings/js/JSXMLHttpRequestCustom.cpp:
1008 (WebCore::JSXMLHttpRequest::send):
1009 * bindings/js/ScriptCallStackFactory.cpp:
1010 (WebCore::createScriptCallStack):
1012 2013-05-05 Geoffrey Garen <ggaren@apple.com>
1014 Rolled back in r149527 with crash fixed.
1016 Reviewed by Oliver Hunt.
1018 Rationalized 'this' value conversion
1019 https://bugs.webkit.org/show_bug.cgi?id=115542
1021 2013-04-29 Filip Pizlo <fpizlo@apple.com>
1023 fourthTier: String::utf8() should also be available as StringImpl::utf8() so that you don't have to ref() a StringImpl just to get its utf8()
1024 https://bugs.webkit.org/show_bug.cgi?id=115393
1026 Reviewed by Geoffrey Garen.
1028 No new tests because no new behavior.
1030 * Modules/websockets/WebSocket.cpp:
1031 (WebCore::WebSocket::close):
1032 * Modules/websockets/WebSocketChannel.cpp:
1033 (WebCore::WebSocketChannel::send):
1034 * html/MediaFragmentURIParser.cpp:
1035 (WebCore::MediaFragmentURIParser::parseFragments):
1037 2013-07-24 Simon Fraser <simon.fraser@apple.com>
1039 [iOS] Captions are clipped in documents using pagination
1040 https://bugs.webkit.org/show_bug.cgi?id=119072
1042 Reviewed by Beth Dakin.
1044 MediaControlTextTrackContainerElement::createTextTrackRepresentationImage() is called
1045 to paint captions into a layer used for fullscreen video. It did the painting using
1046 a subtree paint, but starting at the root RenderView's layer. This is problematic,
1047 because the caption painting is subject to clipping for columns, and any enclosing
1048 overflow:hidden container.
1050 Fix this by starting the paint at the MediaControlTextTrackContainerElement's
1051 renderer's layer. By doing this we don't have to worry about an offset, so no
1052 translation is required.
1054 Also make sure we update layer before grabbing the renderer (in case layout
1057 * html/shadow/MediaControlElements.cpp:
1058 (WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):
1060 2013-07-24 Simon Fraser <simon.fraser@apple.com>
1062 REGRESSION (r152335): Mac Pro title occluded in MobileSafari; can't scroll page
1063 https://bugs.webkit.org/show_bug.cgi?id=119066
1064 <rdar://problem/14499184>
1066 Reviewed by Daniel Bates.
1068 Following <http://trac.webkit.org/changeset/152335> (bug #118337) we set
1069 the z-index to 0 on every element with CSS "overflow: scroll" and
1070 "-webkit-overflow-scrolling: touch" regardless of whether the element has
1071 non-auto z-index. Instead we should only set the z-index to 0 for such elements
1072 that have an auto z-index.
1074 * css/StyleResolver.cpp:
1075 (WebCore::StyleResolver::adjustRenderStyle):
1077 2013-07-24 Ryosuke Niwa <rniwa@webkit.org>
1079 Use-after-free in ApplyStyleCommand::removeInlineStyle
1080 https://bugs.webkit.org/show_bug.cgi?id=118627
1082 Reviewed by Oliver Hunt.
1084 Merge https://chromium.googlesource.com/chromium/blink/+/b6471d077e012b05ccba14d0ce8e6d616106c8e6
1086 Unfortunately, there is no test case for this bug.
1088 * editing/ApplyStyleCommand.cpp:
1089 (WebCore::ApplyStyleCommand::removeInlineStyle):
1091 2013-07-24 Zan Dobersek <zdobersek@igalia.com>
1093 Remove CheckedInt, use Checked<T, RecordOverflow> instead
1094 https://bugs.webkit.org/show_bug.cgi?id=119022
1096 Reviewed by Oliver Hunt.
1098 Following the cleanup in r153062, the CheckedInt uses are replaced with
1099 using the Checked<T, RecordOverflow> class. The CheckedInt header is not
1100 used anywhere anymore and is thus removed.
1102 * GNUmakefile.list.am:
1103 * WebCore.xcodeproj/project.pbxproj:
1104 * html/canvas/CheckedInt.h: Removed.
1105 * html/canvas/DataView.cpp:
1106 (WebCore::DataView::create):
1107 * html/canvas/WebGLBuffer.cpp:
1108 (WebCore::WebGLBuffer::associateBufferSubDataImpl):
1109 * html/canvas/WebGLRenderingContext.cpp:
1110 (WebCore::WebGLRenderingContext::drawArrays):
1112 2013-07-24 Andreas Kling <akling@apple.com>
1114 RenderMenuList computes the width of its longest option twice.
1115 <http://webkit.org/b/119046>
1116 <rdar://problem/14534679>
1118 Reviewed by Darin Adler.
1120 Rename the RenderMenuList::m_optionsChanged flag to m_needsOptionsWidthUpdate,
1121 and make sure it gets cleared after we do a width computation in response to font changes.
1123 * rendering/RenderMenuList.cpp:
1124 (WebCore::RenderMenuList::styleDidChange):
1126 2013-07-24 Zan Dobersek <zdobersek@igalia.com>
1128 Make KURL::hasPath private
1129 https://bugs.webkit.org/show_bug.cgi?id=118279
1131 Reviewed by Darin Adler.
1133 * platform/KURL.h: The KURL::hasPath method is not used outside of the KURL class, so it is made private.
1135 2013-07-24 Jessie Berlin <jberlin@apple.com>
1137 Remove WKPageGetPlugInInformation - it is not used anymore
1138 https://bugs.webkit.org/show_bug.cgi?id=119047
1140 Rubber-stamped by Alexey Proskuryakov.
1142 Revert r152328, which added a key used only in the callback info for
1143 WKPageGetPlugInInformation.
1147 2013-07-24 Robert Hogan <robert@webkit.org>
1149 Border drawing incorrect when using both border-collapse: collapse and overflow: hidden on a table
1150 https://bugs.webkit.org/show_bug.cgi?id=18305
1152 Reviewed by David Hyatt.
1154 overflowClipRect() clips out the table's half of a collapsed border when there is an overflow clip
1155 on the table. This prevents the table's half of the border ever getting painted.
1157 To fix this, clip to the border box of tables when we're in the paint phase that gets the sections to draw the collapsed borders
1158 or when we're self painting. This will allow the table's half of the border to get painted. In the case where the table is self
1159 painting we ensure that content gets clipped to cell's side of the collapsed border by ensuring the clip passed to child layers
1160 from the table clips to the inside of the collapsed border.
1162 It's worth noting that a table's collapsed borders are painted by the table's layer using functions in
1163 RenderTableSection and RenderTableCell. So if a table section has a self-painting layer this patch still works, because
1164 the borders aren't painted by the section's layer.
1166 Tests: fast/table/overflow-table-collapsed-borders-cell-painting-table-self-painting-layer.html
1167 fast/table/overflow-table-collapsed-borders-cell-painting.html
1168 fast/table/overflow-table-collapsed-borders-section-layer-painting.html
1169 fast/table/overflow-table-collapsed-borders-section-layer-table-self-painting-layer.html
1170 fast/table/overflow-table-collapsed-borders-section-self-painting-layer-painting.html
1171 fast/table/overflow-table-collapsed-borders-section-self-painting-layer-table-self-painting-layer.html
1172 fast/table/table-overflow.html
1174 * rendering/RenderBox.cpp:
1175 (WebCore::RenderBox::pushContentsClip):
1176 (WebCore::RenderBox::overflowClipRect):
1177 * rendering/RenderBox.h:
1178 (WebCore::RenderBox::overflowClipRectForChildLayers):
1179 * rendering/RenderLayer.cpp:
1180 (WebCore::RenderLayer::calculateClipRects):
1181 * rendering/RenderTable.cpp:
1182 (WebCore::RenderTable::overflowClipRect):
1183 * rendering/RenderTable.h:
1184 (WebCore::RenderTable::overflowClipRectForChildLayers):
1186 2013-07-24 Frédéric Wang <fred.wang@free.fr>
1188 Graphical elements inside mphantom should not be visible.
1189 https://bugs.webkit.org/show_bug.cgi?id=116600.
1191 Reviewed by Chris Fleizach.
1193 Test: mathml/presentation/phantom.html
1195 * rendering/mathml/RenderMathMLFraction.cpp:
1196 (WebCore::RenderMathMLFraction::paint): don't paint the fraction bar when the visibility is not "visible"
1197 * rendering/mathml/RenderMathMLRoot.cpp:
1198 (WebCore::RenderMathMLRoot::paint): don't paint the radical symbol when the visibility is not "visible"
1200 2013-07-24 Brendan Long <b.long@cablelabs.com>
1202 WebVTTParser's identifier buffering can ignore subsequent lines
1203 https://bugs.webkit.org/show_bug.cgi?id=118483
1205 Reviewed by Eric Carlson.
1207 No new tests since this bug can't be reproduced in layout tests.
1209 * html/track/WebVTTParser.cpp:
1210 (WebCore::WebVTTParser::parseBytes): Only buffer the identifier if we haven't read an entire line.
1212 2013-07-23 Andreas Kling <akling@apple.com>
1214 REGRESSION(r150867): FrameView auto-sizing + delegate denied image load may cause StyleResolver to re-enter itself.
1215 <rdar://problem/14324895>
1216 <http://webkit.org/b/119023>
1218 Reviewed by Simon Fraser.
1220 The bug happened when FrameView::autoSizeIfEnabled() was getting called below FrameLoader::checkCompleted()
1221 triggered by an incorrect loadDone() callback originating in SubresourceLoader::didCancel().
1223 * css/StyleResolver.cpp:
1224 (WebCore::StyleResolver::loadPendingResources):
1226 Add an assertion that this function is not getting re-entered. If a similar bug occurs
1227 in the future, this will help the lucky person debugging.
1229 * loader/SubresourceLoader.cpp:
1230 (WebCore::SubresourceLoader::didCancel):
1232 Don't notifyDone() if the SubresourceLoader is in Uninitialized state.
1234 2013-07-23 Tim Horton <timothy_horton@apple.com>
1236 Pixel-snap the unavailable plugin indicator arrow for maximum sharpness
1237 https://bugs.webkit.org/show_bug.cgi?id=119024
1238 <rdar://problem/14523331>
1240 Reviewed by Anders Carlsson.
1242 * rendering/RenderEmbeddedObject.cpp:
1243 (WebCore::addReplacementArrowPath):
1244 (WebCore::RenderEmbeddedObject::getReplacementTextGeometry):
1245 Pixel-snap the unavailable plugin indicator arrow. Snapping directions
1246 were chosen by eye/symmetry to look best on 1x and 2x devices at
1247 1x and 2x page scale.
1249 2013-07-19 Ryosuke Niwa <rniwa@webkit.org>
1251 The computed values of fix length padding should be subpixel precision like margin
1252 https://bugs.webkit.org/show_bug.cgi?id=118936
1254 Reviewed by Simon Fraser.
1256 The bug was caused by ComputedStyleExtractor::propertyValue always returning the used value
1257 for padding. Fixed the bug by returning the computed value when they're of fixed length.
1259 This aligns the behaviors of getComputedStyle(~).padding~ with getComputedStyle(~).margin~,
1260 which had been fixed in r102149. While the current CSSOM specification says getComputedStyle
1261 should return the used values for margins when display property is set to anything but none,
1262 new behavior matches that of Chrome, Firefox, and Internet Explorer.
1264 Also extracted zoomAdjustedPaddingOrMarginPixelValue to reduce the code duplication.
1266 Test: fast/css/getComputedStyle/getComputedStyle-padding-margin-subpixel-length.html
1268 * css/CSSComputedStyleDeclaration.cpp:
1269 (WebCore::zoomAdjustedPaddingOrMarginPixelValue): Extracted.
1270 (WebCore::ComputedStyleExtractor::propertyValue):
1272 2013-07-23 Alex Christensen <achristensen@apple.com>
1274 Updated ANGLE to latest git commit (047373aa3eb408be62be52ade840fa5f11e72337).
1275 https://bugs.webkit.org/show_bug.cgi?id=118550
1277 Reviewed by Dean Jackson.
1279 * CMakeLists.txt: Renamed DetectRecursion to DetectCallDepth and added Uniform.cpp.
1281 2013-07-23 Zan Dobersek <zdobersek@igalia.com>
1283 Use Checked<uint32_t, RecordOverflow> instead of CheckedInt in GraphicsContext3D
1284 https://bugs.webkit.org/show_bug.cgi?id=118988
1286 Reviewed by Oliver Hunt.
1288 Use the WTF's Checked class, with uint32_t as the numeric type and RecordOverflow as the overflow handler,
1289 instead of the CheckedInt class. This removes a layering violation that's occurring due to including the CheckedInt
1290 header that's currently located in the WebCore layer (alongside the HTML canvas code in Source/WebCore/html/canvas).
1292 * platform/graphics/GraphicsContext3D.cpp:
1293 (WebCore::GraphicsContext3D::computeImageSizeInBytes):
1295 2013-07-23 Zalan Bujtas <zalan@apple.com>
1297 REGRESSION(r152313): Links in certain twitter postings don't warp correctly on page
1298 https://bugs.webkit.org/show_bug.cgi?id=118435
1300 Reviewed by David Hyatt.
1302 When we find an empty inline in the middle of the word, prefer breaking it before
1303 instead of after to match other browsers' rendering.
1305 Test: fast/text/whitespace/inline-whitespace-wrapping-12.html
1307 * rendering/RenderBlockLineLayout.cpp:
1308 (WebCore::canBreakAtThisPosition):
1310 2013-07-23 Alexey Proskuryakov <ap@apple.com>
1312 Dictionary hotkey does not work on vertical text
1313 https://bugs.webkit.org/show_bug.cgi?id=118993
1314 <rdar://problem/14478260>
1316 Reviewed by Enrica Casucci.
1318 Test: platform/mac/editing/input/firstrectforcharacterrange-vertical.html
1320 * editing/Editor.cpp:
1321 (WebCore::collapseCaretWidth): A helper function.
1322 (WebCore::Editor::firstRectForRange): Many changes:
1323 - use RenderObject::absoluteBoundingBoxRectForRange() in regular case, because
1324 that's more direct that getting caret rects and computing bounding rect from those.
1325 - handle collapsed ranges separately, because absoluteBoundingBoxRectForRange()
1326 doesn't provide the needed result, and because it can be done faster.
1327 - wherever we use carets to compute the result, account for vertical text (in a hackish
1328 way, as we don't have layout information at Editor level).
1330 * rendering/RenderBlock.cpp: (WebCore::RenderBlock::localCaretRect): Removed
1333 2013-07-23 Bem Jones-Bey <bjonesbe@adobe.com>
1335 [CSS Shapes] New positioning model: Borders
1336 https://bugs.webkit.org/show_bug.cgi?id=118822
1338 Reviewed by Dean Jackson.
1340 Converting to the shape coordinate system was not properly accounting
1341 for borders and padding. This has been fixed and a new convienence
1342 method added because of the added complexity of the conversion.
1344 Test: csswg/submitted/shapes/shape-outside/shape-outside-floats-square-border-000.html
1346 * rendering/RenderBlock.cpp:
1347 (WebCore::RenderBlock::logicalLeftFloatOffsetForLine): Update to use
1348 computeSegmentsForContainingBlockLine to do the coordinate
1350 (WebCore::RenderBlock::logicalRightFloatOffsetForLine): Ditto.
1351 * rendering/RenderBlockLineLayout.cpp:
1352 (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded): Ditto.
1353 * rendering/shapes/ShapeOutsideInfo.cpp:
1354 (WebCore::ShapeOutsideInfo::computeSegmentsForContainingBlockLine):
1355 Add new method to do the coordinate conversion from the containing
1356 block coordinate system to the coordinate system of the shape so
1357 that the segments can be correctly calculated.
1359 2013-07-23 Allan Sandfeld Jensen <allan.jensen@digia.com>
1361 Remove deprecated and unused compositing settings
1362 https://bugs.webkit.org/show_bug.cgi?id=119014
1364 Reviewed by Andreas Kling.
1368 2013-07-23 Tim Horton <timothy_horton@apple.com>
1370 Add a test for plug-in unavailability indicator obscurity detection
1371 https://bugs.webkit.org/show_bug.cgi?id=119007
1373 Reviewed by Anders Carlsson.
1375 Test: plugins/unavailable-plugin-indicator-obscurity.html
1377 Expose the ability to test whether the unavailable plugin indicator
1378 is obscured via the internals object.
1380 * testing/Internals.cpp:
1381 (WebCore::Internals::isPluginUnavailabilityIndicatorObscured):
1382 * testing/Internals.h:
1383 * testing/Internals.idl:
1384 Expose RenderEmbeddedObject::isReplacementObscured as
1385 internals.isPluginUnavailabilityIndicatorObscured for testing purposes.
1387 2013-07-23 Zan Dobersek <zdobersek@igalia.com>
1389 [Soup] Clean up header inclusions in ResourceRequest(Soup), SocketStreamHandle
1390 https://bugs.webkit.org/show_bug.cgi?id=118984
1392 Reviewed by Darin Adler.
1394 Execute a minor cleanup of the header inclusions in Soup-specific ResourceRequestSoup.cpp, ResourceRequest.h
1395 and SocketStreamHandle.h source files. The inclusions are sorted into proper order, with blank lines and unnecessary
1396 reinclusions removed.
1398 * platform/network/soup/ResourceRequest.h:
1399 * platform/network/soup/ResourceRequestSoup.cpp:
1400 * platform/network/soup/SocketStreamHandle.h:
1402 2013-07-23 Zan Dobersek <zdobersek@igalia.com>
1404 [Soup] Remove unnecessary header inclusions in ResourceHandleSoup.cpp
1405 https://bugs.webkit.org/show_bug.cgi?id=118983
1407 Reviewed by Martin Robinson.
1409 Remove inclusions of the CachedResourceLoader, ChromeClient, Frame and Page headers. These are not
1410 necessary (anymore) and only prevent the source file to be built independently of WebCore, as it should be.
1412 * platform/network/soup/ResourceHandleSoup.cpp:
1414 2013-07-23 Zan Dobersek <zdobersek@igalia.com>
1416 Remove unnecessary header inclusions in GraphicsContext3D.cpp, GraphicsContext3DOpenGLCommon.cpp
1417 https://bugs.webkit.org/show_bug.cgi?id=118989
1419 Reviewed by Darin Adler.
1421 * platform/graphics/GraphicsContext3D.cpp: Remove the unnecessary DrawingBuffer header inclusion.
1422 * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: Remove the unnecessary
1423 CanvasRenderingContext and WebGLObject header inclusions.
1425 2013-07-23 Zan Dobersek <zdobersek@igalia.com>
1427 Remove the topDocumentURL member of the GraphicsContext3D::Attributes struct
1428 https://bugs.webkit.org/show_bug.cgi?id=118987
1430 Reviewed by Darin Adler.
1432 Remove the topDocumentURL member that currently resides in the GraphicsContext3D::Attributes struct.
1433 It's not used anywhere and only has one place where it is set, in WebGLRenderingContext::create.
1435 * html/canvas/WebGLRenderingContext.cpp:
1436 (WebCore::WebGLRenderingContext::create):
1437 * platform/graphics/GraphicsContext3D.h:
1439 2013-07-23 Zan Dobersek <zdobersek@igalia.com>
1441 Remove unused DrawingBuffer::paintRenderingResultsToImageData
1442 https://bugs.webkit.org/show_bug.cgi?id=118986
1444 Reviewed by Darin Adler.
1446 Remove the paintRenderingResultsToImageData method of the DrawingBuffer class. It is not used anywhere
1447 and also introduces a nasty layering violation by including and operating with the ImageData class.
1449 * platform/graphics/gpu/DrawingBuffer.cpp:
1450 * platform/graphics/gpu/DrawingBuffer.h:
1452 2013-07-23 Zan Dobersek <zdobersek@igalia.com>
1454 Remove unnecessary includes in FormDataBuilder.cpp
1455 https://bugs.webkit.org/show_bug.cgi?id=118991
1457 Reviewed by Darin Adler.
1459 * platform/network/FormDataBuilder.cpp: Remove the Frame and FrameLoader header inclusions,
1460 nothing these two headers provide is used in this source file.
1462 2013-07-23 Zan Dobersek <zdobersek@igalia.com>
1464 Fix the style of the ContentDispositionType enum definition
1465 https://bugs.webkit.org/show_bug.cgi?id=118990
1467 Reviewed by Darin Adler.
1469 * platform/network/HTTPParsers.h: Align the style of the ContentDispositionType enumeration
1470 definition with the other enumeration definitions in the HTTPParsers header, using the
1471 'enum Name { ... }' style instead of a typedef.
1473 2013-07-23 Zan Dobersek <zdobersek@igalia.com>
1475 [GTK] Mock GDK_IS_X11_DISPLAY macro can be redefined unnecessarily
1476 https://bugs.webkit.org/show_bug.cgi?id=118980
1478 Reviewed by Martin Robinson.
1480 * platform/gtk/GtkVersioning.h: Only define the GDK_IS_X11_DISPLAY macro when using the GTK+ 2 API version
1481 as that's the only supported configuration where the macro is not defined. Definining it only if it's not
1482 yet defined at the time of inclusion of this header can cause redefinitions in GTK+ headers that are normally
1485 2013-07-22 Beth Dakin <bdakin@apple.com>
1487 StickyPositionConstraints should store the constrainingRectAtLastLayout
1488 https://bugs.webkit.org/show_bug.cgi?id=118999
1490 Reviewed by Simon Fraser.
1492 Much like how FixedPositionConstraints store a viewportRectAtLastLayout,
1493 StickyConstraints should store a constrainingRectAtLastLayout. We'll need this to
1494 get sticky right in overflow areas once overflow areas scroll on the scrolling
1497 * page/scrolling/ScrollingConstraints.h:
1498 (WebCore::StickyPositionViewportConstraints::StickyPositionViewportConstraints):
1499 (WebCore::StickyPositionViewportConstraints::constrainingRectAtLastLayout):
1500 (WebCore::StickyPositionViewportConstraints::setConstrainingRectAtLastLayout):
1501 * rendering/RenderBoxModelObject.cpp:
1502 (WebCore::RenderBoxModelObject::computeStickyPositionConstraints):
1504 2013-07-22 Santosh Mahto <santosh.ma@samsung.com>
1506 DateInputType constructor initiate incorrect base class
1507 https://bugs.webkit.org/show_bug.cgi?id=118962
1509 Reviewed by Gyuyoung Kim.
1511 No new test required since solving code error
1513 * html/DateInputType.cpp:
1514 (WebCore::DateInputType::DateInputType):
1515 Corrected the base class instantiation in constructor.
1517 2013-07-22 Tim Horton <timothy_horton@apple.com>
1519 Plug-in unavailability indicator should not be displayed if a blocked plugin's indicator is clipped
1520 https://bugs.webkit.org/show_bug.cgi?id=118998
1521 <rdar://problem/14511268>
1523 Reviewed by Anders Carlsson.
1525 * html/HTMLEmbedElement.cpp:
1526 (WebCore::HTMLEmbedElement::updateWidget):
1527 * html/HTMLObjectElement.cpp:
1528 (WebCore::HTMLObjectElement::updateWidget):
1529 * html/HTMLPlugInElement.cpp:
1530 (WebCore::HTMLPlugInElement::defaultEventHandler):
1531 (WebCore::HTMLPlugInElement::supportsFocus):
1532 * html/HTMLPlugInImageElement.cpp:
1533 (WebCore::HTMLPlugInImageElement::updateWidgetIfNecessary):
1534 * loader/SubframeLoader.cpp:
1535 (WebCore::SubframeLoader::createJavaAppletWidget):
1536 (WebCore::SubframeLoader::loadPlugin):
1537 * page/FrameView.cpp:
1538 (WebCore::FrameView::updateWidget):
1539 Rename showsUnavailablePluginIndicator to isPluginUnavailable, since being unavailable
1540 and actually showing the indicator are two totally different things.
1542 * WebCore.exp.in: Expose setUnavailablePluginIndicatorIsHidden.
1544 * rendering/RenderEmbeddedObject.cpp:
1545 (WebCore::RenderEmbeddedObject::RenderEmbeddedObject):
1546 Rename m_showsUnavailablePluginIndicator to m_isPluginUnavailable.
1547 Add m_isUnavailablePluginIndicatorHidden, defaulting to false.
1549 (WebCore::RenderEmbeddedObject::setPluginUnavailabilityReasonWithDescription):
1550 Set m_isPluginUnavailable when we get an unavailability reason.
1552 (WebCore::RenderEmbeddedObject::paint):
1553 (WebCore::RenderEmbeddedObject::setUnavailablePluginIndicatorIsHidden): Added.
1555 * rendering/RenderEmbeddedObject.h:
1556 (WebCore::RenderEmbeddedObject::isPluginUnavailable): Added.
1558 (WebCore::RenderEmbeddedObject::showsUnavailablePluginIndicator):
1559 Repurpose "showsUnavailablePluginIndicator" to actually represent whether
1560 the indicator is displayed (i.e. the plugin is unavailable, and the
1561 indicator is not hidden).
1563 2013-07-22 Tim Horton <timothy_horton@apple.com>
1565 RenderEmbeddedObject::isReplacementObscured should include the arrow in its area-of-interest
1566 https://bugs.webkit.org/show_bug.cgi?id=118995
1567 <rdar://problem/14516421>
1569 Reviewed by Anders Carlsson.
1571 * rendering/RenderEmbeddedObject.cpp:
1572 (WebCore::RenderEmbeddedObject::unavailablePluginIndicatorBounds):
1573 Rename method from replacementTextRect to unavailablePluginIndicatorBounds for accuracy.
1574 Use the bounding box of the indicator's path, which includes the rounded rect behind
1575 the text as well as the arrow button.
1577 (WebCore::RenderEmbeddedObject::isReplacementObscured):
1578 * rendering/RenderEmbeddedObject.h:
1580 2013-07-22 Tim Horton <timothy_horton@apple.com>
1582 <applet> plugins are instantiated post-attach (instead of post-layout like for object and embed)
1583 https://bugs.webkit.org/show_bug.cgi?id=118994
1584 <rdar://problem/14511232>
1586 Reviewed by Anders Carlsson.
1588 Make <applet> consistent with <object> and <embed>, deferring plugin
1589 instantiation to post-layout, so that layout is up-to-date if anything
1590 needs it (like RenderEmbeddedObject::isReplacementObscured) during creation.
1592 * html/HTMLAppletElement.cpp:
1593 (WebCore::HTMLAppletElement::updateWidget):
1594 Copy code from HTMLObjectElement/HTMLEmbedElement that defers plugin
1595 creation until post-layout tasks. Java is always an NPAPI plugin, so
1596 we should always defer if requested.
1598 2013-07-22 Benjamin Poulain <benjamin@webkit.org>
1600 Do not allocate 2 AtomicString just to do a comparison in HTMLAnchorElement::setRel()
1601 https://bugs.webkit.org/show_bug.cgi?id=118941
1603 Reviewed by Gavin Barraclough.
1605 Currently, the only type of link relation supported by HTMLAnchorElement is RelationNoReferrer.
1607 To find the value, we create a SpaceSplitString with the input value of the attribute (which
1608 create one or more AtomicString depending on the input). Then we create a new AtomicString for
1609 the literal "noreferrer". Finally, we compare the pointers and throw away all the AtomicStrings.
1611 This causes a lot of memory operations for something really simple.
1613 This patch adds a little helper method to SpaceSplitString to find a literal in the input. The only
1614 allocation happens if we need to foldCase(). The following operations are done without allocating
1615 new buffer and without hashing the input.
1617 * dom/SpaceSplitString.cpp:
1618 (WebCore::tokenizeSpaceSplitString):
1619 (WebCore::AppendTokenToVectorTokenProcessor::AppendTokenToVectorTokenProcessor):
1620 (WebCore::AppendTokenToVectorTokenProcessor::processToken):
1621 (WebCore::SpaceSplitStringData::createVector):
1622 (WebCore::TokenIsEqualToCStringTokenProcessor::TokenIsEqualToCStringTokenProcessor):
1623 (WebCore::TokenIsEqualToCStringTokenProcessor::processToken):
1624 (WebCore::TokenIsEqualToCStringTokenProcessor::referenceStringWasFound):
1625 (WebCore::SpaceSplitString::spaceSplitStringContainsValue):
1626 * dom/SpaceSplitString.h:
1627 (WebCore::SpaceSplitString::spaceSplitStringContainsValue):
1628 * html/HTMLAnchorElement.cpp:
1629 (WebCore::HTMLAnchorElement::setRel):
1631 2013-07-22 Zalan Bujtas <zalan@apple.com>
1633 segfault in RenderLayerCompositor when the iframe's position attribute is changed and it embeds <object>.
1634 https://bugs.webkit.org/show_bug.cgi?id=118965
1636 Reviewed by Simon Fraser.
1638 Do not change the composition state unless we can reliably figure out the iframe's size.
1639 If the renderer is not yet attached, its size is not computable.
1641 Test: compositing/iframes/iframe-position-absolute-with-padding-percentage-crash.html
1643 * rendering/RenderLayerCompositor.cpp:
1644 (WebCore::RenderLayerCompositor::requiresCompositingForFrame):
1646 2013-07-22 Chris Fleizach <cfleizach@apple.com>
1648 AX: VoiceOver only read the first column in a safari table
1649 https://bugs.webkit.org/show_bug.cgi?id=118992
1651 Reviewed by Tim Horton.
1653 In case the first section has fewer columns than the rest of the table, the AXTable was only reporting the number of
1654 columns for the first section. We need to take the max number of columns out of all sections.
1656 Test: accessibility/table-with-mismatch-column-count-in-initial-section.html
1658 * accessibility/AccessibilityTable.cpp:
1659 (WebCore::AccessibilityTable::addChildren):
1661 2013-07-22 Beth Dakin <bdakin@apple.com>
1663 StickyPositionContraints should not need to change to account for a RenderLayer's
1665 https://bugs.webkit.org/show_bug.cgi?id=118958
1667 <rdar://problem/12469203>
1669 Reviewed by Simon Fraser.
1671 Before this patch, to get sticky offsets right in overflow areas, the
1672 StickyPositionConstraints changed on every scroll to factor it in. This will be a
1673 problem once we can scroll overflow areas on the scrolling thread. The constraints
1674 should never have to change to account for the scroll position. This patch fixes
1675 that issue by changing the StickyPositionViewportConstraints’s containerBlockRect
1676 and stickyBoxRect to be in a coordinate space that is relative to the scrolling
1677 ancestor rather than being absolute. This patch also removes ‘absolute’ from those
1678 variable names since they are no longer absolute.
1680 A few re-names in the StickyPositionViewportConstraints class. The parameter to
1681 computeStickyOffset() used to be called viewportRect, and is now called
1682 constrainingRect. m_absoluteStickyBoxRect is now m_stickyBoxRect, and
1683 m_absoluteContainingBlockRect is now m_containingBlockRect. And finally,
1684 layerPositionForViewportRect() is now layerPositionForConstrainingRect()
1685 * page/scrolling/ScrollingConstraints.cpp:
1686 (WebCore::StickyPositionViewportConstraints::computeStickyOffset):
1687 (WebCore::StickyPositionViewportConstraints::layerPositionForConstrainingRect):
1688 * page/scrolling/ScrollingConstraints.h:
1689 (WebCore::StickyPositionViewportConstraints::StickyPositionViewportConstraints):
1690 (WebCore::StickyPositionViewportConstraints::containingBlockRect):
1691 (WebCore::StickyPositionViewportConstraints::setContainingBlockRect):
1692 (WebCore::StickyPositionViewportConstraints::stickyBoxRect):
1693 (WebCore::StickyPositionViewportConstraints::setStickyBoxRect):
1694 (WebCore::StickyPositionViewportConstraints::operator==):
1696 Accounting for the re-names.
1697 * page/scrolling/ScrollingStateStickyNode.cpp:
1698 (WebCore::ScrollingStateStickyNode::syncLayerPositionForViewportRect):
1699 (WebCore::ScrollingStateStickyNode::dumpProperties):
1700 * page/scrolling/mac/ScrollingTreeStickyNode.mm:
1701 (WebCore::ScrollingTreeStickyNode::parentScrollPositionDidChange):
1703 Compute all values relative to the scrolling ancestor. This requires some juggling
1704 in the overflow case to factor border and padding in or out.
1705 * rendering/RenderBoxModelObject.cpp:
1706 (WebCore::RenderBoxModelObject::computeStickyPositionConstraints):
1708 This is where the scrollOffset should be factored in.
1709 (WebCore::RenderBoxModelObject::stickyPositionOffset):
1711 2013-07-22 Dean Jackson <dino@apple.com>
1713 PlugIn content can disappear after restarting
1714 https://bugs.webkit.org/show_bug.cgi?id=118982
1716 Reviewed by Simon Fraser.
1718 When a snapshotted plug-in is restarted, we inserted its compositing
1719 layer back into the tree, but didn't recalculate style. This meant
1720 that a subsequent compositing tree operation (such as any hardware
1721 animation) could cause the content to disappear.
1723 * html/HTMLPlugInImageElement.cpp:
1724 (WebCore::HTMLPlugInImageElement::setDisplayState): Force a style recalc.
1725 (WebCore::HTMLPlugInImageElement::removeSnapshotTimerFired): Ditto.
1727 2013-07-22 Zalan Bujtas <zalan@apple.com>
1729 REGRESSION(r152227) Images with compositing layer don't show up unless the containing window is resized.
1730 https://bugs.webkit.org/show_bug.cgi?id=118951
1732 Reviewed by Simon Fraser.
1734 Ensure that the content rect is initialized when the image is set on the graphics layer.
1736 RenderLayerBacking::updateGraphicsLayerGeometry() only updates the contents rect when
1737 the associated graphics layer has a content layer. Since the image gets committed
1738 on the graphics layer after the update calls, the contents rect is left uninitialized.
1740 Test: compositing/images/positioned-image-content-rect.html
1742 * rendering/RenderLayerBacking.cpp:
1743 (WebCore::RenderLayerBacking::updateImageContents):
1745 2013-07-22 Diego Pino Garcia <dpino@igalia.com>
1747 [Old Web Inspector] When right-clicking on a DataGrid column, show editing menu option as "Edit <columnName>" instead of just "Edit"
1748 https://bugs.webkit.org/show_bug.cgi?id=118971
1750 Reviewed by Timothy Hatcher.
1752 * English.lproj/localizedStrings.js:
1753 * inspector/front-end/DataGrid.js: Change "Edit" for "Edit <columnTitle>"
1754 (WebInspector.DataGrid.prototype._contextMenuInDataTable):
1756 2013-07-22 Alex Christensen <achristensen@apple.com>
1758 Added assembly files to Windows 64-bit builds.
1759 https://bugs.webkit.org/show_bug.cgi?id=118931
1761 Reviewed by Brent Fulgham.
1763 * WebCore.vcxproj/WebCore.vcxproj: Added PaintHooks.asm for x64 and enabled MASM.
1764 * WebCore.vcxproj/WebCore.vcxproj.filters: Added PaintHooks.asm.
1766 2013-07-22 Jakob Petsovits <jpetsovits@blackberry.com>
1768 [BlackBerry] Fix WebGL to a 2D canvas copies.
1769 https://bugs.webkit.org/show_bug.cgi?id=118921
1770 https://jira.bbqnx.net/browse/BRWSR-12714
1773 Reviewed by George Staikos.
1775 The transform here was converted incorrectly when it
1776 replaced the pixel copy that was there before.
1777 As a true draw transformation, it doesn't need the "- 1"
1778 modification that pixel copies often require.
1780 Fixes existing webgl/conformance/canvas tests.
1782 * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
1783 (WebCore::GraphicsContext3D::paintToCanvas):
1785 2013-07-22 peavo@outlook.com <peavo@outlook.com>
1787 [Curl] Download fails for certain urls.
1788 https://bugs.webkit.org/show_bug.cgi?id=118468
1790 Reviewed by Brent Fulgham.
1792 The current Curl download implementation has a few shortcomings:
1793 1) Downloading from secure locations fails. We need to provide Curl with the path to a certificate file (.pem file).
1794 2) Cookies are not set in the download request. We need to give Curl the path to the cookie file.
1795 3) When a normal load is converted to a download, some of the headers from the original request is not sent (e.g. Referer, User agent).
1797 * platform/network/curl/CurlDownload.cpp:
1798 (WebCore::CurlDownload::CurlDownload): Initialize custom headers member.
1799 (WebCore::CurlDownload::~CurlDownload): Free custom headers member.
1800 (WebCore::CurlDownload::init): Set certificate and cookie file path.
1801 (WebCore::CurlDownload::closeFile): Check file handle against value for invalid platform handle.
1802 (WebCore::CurlDownload::writeDataToFile): Added utility method to write download data to file.
1803 (WebCore::CurlDownload::addHeaders): Added utility method to add headers to request.
1804 (WebCore::CurlDownload::didReceiveData): Use writeDataToFile utility method.
1805 * platform/network/curl/CurlDownload.h:
1806 Put class in WebCore namespace.
1807 Added method to init download from resource handle, request, and response object.
1808 Added utility method to write download data to file.
1809 Added utility method to add headers to request.
1810 Added custom headers member.
1812 2013-07-22 Eric Carlson <eric.carlson@apple.com>
1814 [iOS] captions sometimes positioned incorrectly after fullscreen state change
1815 https://bugs.webkit.org/show_bug.cgi?id=118912
1817 Reviewed by Jer Noble.
1819 * html/shadow/MediaControlElements.cpp:
1820 (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Call clearTextTrackRepresentation.
1821 (WebCore::MediaControlTextTrackContainerElement::updateTimerFired):Â Call updateDisplay so
1822 cues are re-rendered with the updated size.
1823 (WebCore::MediaControlTextTrackContainerElement::clearTextTrackRepresentation): Cleanup the
1824 text track representation.
1825 (WebCore::MediaControlTextTrackContainerElement::enteredFullscreen): New, force cues to be updated.
1826 (WebCore::MediaControlTextTrackContainerElement::exitedFullscreen): Ditto.
1827 * html/shadow/MediaControlElements.h:
1829 * html/shadow/MediaControls.cpp:
1830 (WebCore::MediaControls::enteredFullscreen): Call MediaControlTextTrackContainerElement::enteredFullscreen.
1831 (WebCore::MediaControls::exitedFullscreen): Call MediaControlTextTrackContainerElement::exitedFullscreen.
1833 2013-07-22 Allan Sandfeld Jensen <allan.jensen@digia.com>
1835 [Qt][WK1] Support direct painting without GraphicsSurface
1836 https://bugs.webkit.org/show_bug.cgi?id=118302
1838 Reviewed by Jocelyn Turcotte.
1840 Configure the WebGL OpenGL context to share texture with
1841 the HostWindow OpenGL if available, and paint accelerated
1842 using the the now shared textures.
1844 This should return the performance without GraphicsSurface
1845 on the WK1 code path to what it was before r135995 (28/11 2012).
1847 * platform/graphics/qt/GraphicsContext3DQt.cpp:
1848 (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
1849 (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
1851 2013-07-22 Gyuyoung Kim <gyuyoung.kim@samsung.com>
1853 Introduce toSVGUseElement(), use it
1854 https://bugs.webkit.org/show_bug.cgi?id=118942
1856 Reviewed by Allan Sandfeld Jensen.
1858 As a step to change static_cast with toSVGXXX, static_cast<SVGUseElement*> can
1859 be changed with toSVGUseElement().
1861 No new tests, no behavior change.
1863 * dom/EventRetargeter.h:
1864 (WebCore::EventRetargeter::eventTargetRespectingTargetRules):
1865 * page/EventHandler.cpp:
1866 (WebCore::instanceAssociatedWithShadowTreeElement):
1867 * rendering/svg/RenderSVGResourceClipper.cpp:
1868 (WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
1869 * rendering/svg/RenderSVGTransformableContainer.cpp:
1870 (WebCore::RenderSVGTransformableContainer::calculateLocalTransform):
1871 * svg/SVGStyledElement.cpp:
1872 (WebCore::SVGStyledElement::title):
1873 * svg/SVGUseElement.cpp:
1874 (WebCore::dumpInstanceTree):
1875 (WebCore::SVGUseElement::buildInstanceTree):
1876 (WebCore::SVGUseElement::expandUseElementsInShadowTree):
1877 * svg/SVGUseElement.h:
1878 (WebCore::toSVGUseElement):
1880 2013-07-22 Gyuyoung Kim <gyuyoung.kim@samsung.com>
1882 Use toSVGPathElement() instead of static_cast<>
1883 https://bugs.webkit.org/show_bug.cgi?id=118960
1885 Reviewed by Allan Sandfeld Jensen.
1887 Though there is toSVGPathElement(), some files still use static_cast<SVGPathElement*>.
1888 To remove all static_cast<> use, we need to change argument from SVGElement to Element.
1890 Merge from https://src.chromium.org/viewvc/blink?view=rev&revision=154621
1892 No new tests, no behavior change.
1894 * rendering/svg/RenderSVGTextPath.cpp:
1895 (WebCore::RenderSVGTextPath::layoutPath):
1896 * rendering/svg/SVGPathData.cpp:
1897 (WebCore::updatePathFromPathElement):
1898 * rendering/svg/SVGRenderTreeAsText.cpp:
1899 (WebCore::operator<<):
1900 * svg/SVGMPathElement.cpp:
1901 (WebCore::SVGMPathElement::pathElement):
1902 * svg/SVGPathElement.h:
1903 (WebCore::toSVGPathElement):
1904 * svg/SVGPathSegList.cpp:
1905 (WebCore::SVGPathSegList::commitChange):
1906 * svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:
1907 (WebCore::SVGAnimatedPathSegListPropertyTearOff::animValDidChange):
1908 * svg/properties/SVGPathSegListPropertyTearOff.cpp:
1909 (WebCore::SVGPathSegListPropertyTearOff::contextElement):
1911 2013-07-11 Allan Sandfeld Jensen <allan.jensen@digia.com>
1913 [Qt] Implement more of DOM3 KeyEvent key-identifiers
1914 https://bugs.webkit.org/show_bug.cgi?id=118566
1916 Reviewed by Jocelyn Turcotte.
1918 Implemented as many of the key values from http://www.w3.org/TR/DOM-Level-3-Events/#key-values-list
1919 as Qt keycodes support.
1921 Also corrected the mapping of the Menu key, which was confused because MENU
1922 is also the ancient Microsoft speak for the Alt keys.
1924 * platform/qt/PlatformKeyboardEventQt.cpp:
1925 (WebCore::keyIdentifierForQtKeyCode):
1927 2013-07-21 Gyuyoung Kim <gyuyoung.kim@samsung.com>
1929 Introduce toSVGGradientElement(), use it
1930 https://bugs.webkit.org/show_bug.cgi?id=118943
1932 Reviewed by Andreas Kling.
1934 As a step to change static_cast with toSVGXXX, static_cast<SVGGradientElement*> can
1935 be changed with toSVGGradientElement().
1937 No new tests, no behavior change.
1939 * rendering/svg/RenderSVGGradientStop.cpp:
1940 (WebCore::RenderSVGGradientStop::gradientElement):
1941 * rendering/svg/RenderSVGResourceGradient.cpp:
1942 (WebCore::RenderSVGResourceGradient::applyResource):
1943 * rendering/svg/SVGResources.cpp:
1944 (WebCore::targetReferenceFromResource):
1945 * svg/SVGGradientElement.h:
1946 (WebCore::toSVGGradientElement):
1947 * svg/SVGLinearGradientElement.cpp:
1948 (WebCore::SVGLinearGradientElement::collectGradientAttributes):
1949 * svg/SVGRadialGradientElement.cpp:
1950 (WebCore::SVGRadialGradientElement::collectGradientAttributes):
1952 2013-07-21 Andreas Kling <akling@apple.com>
1954 KURL creates duplicate strings when completing data: URIs.
1955 <http://webkit.org/b/118952>
1956 <rdar://problem/14504480>
1958 Reviewed by Anders Carlsson.
1960 When checking if the original URL input string can be reused, compare against the part
1961 of the parsing buffer that we would actually return, not the entire buffer.
1963 632 kB progression on <http://www.nytimes.com/>
1965 Test: KURLTest.KURLDataURIStringSharing
1967 * platform/KURL.cpp:
1968 (WebCore::KURL::parse):
1970 2013-07-20 Benjamin Poulain <benjamin@webkit.org>
1972 Add ASCIILiteral() on strings allocated often enough to appear in my Instruments
1973 https://bugs.webkit.org/show_bug.cgi?id=118937
1975 Reviewed by Alexey Proskuryakov.
1977 * html/BaseCheckableInputType.cpp:
1978 (WebCore::BaseCheckableInputType::saveFormControlState):
1979 (WebCore::BaseCheckableInputType::fallbackValue):
1980 * html/HTMLTextFormControlElement.cpp:
1981 (WebCore::HTMLTextFormControlElement::updatePlaceholderVisibility):
1982 * inspector/InspectorApplicationCacheAgent.cpp:
1983 (WebCore::InspectorApplicationCacheAgent::InspectorApplicationCacheAgent):
1984 * loader/cache/CachedScript.cpp:
1985 (WebCore::CachedScript::CachedScript):
1986 * platform/network/ResourceRequestBase.h:
1987 (WebCore::ResourceRequestBase::ResourceRequestBase):
1989 2013-07-20 Dean Jackson <dino@apple.com>
1991 Updated ANGLE is leaking like a sieve
1992 https://bugs.webkit.org/show_bug.cgi?id=118939
1994 Rollout 152863, r152821, r152929 and r152755.
1998 2013-07-19 Jer Noble <jer.noble@apple.com>
2000 Pagination: Do not paint the baseBackgroundColor if asked to skipRootBackground.
2001 https://bugs.webkit.org/show_bug.cgi?id=118933
2003 Reviewed by Simon Fraser.
2005 Captions rendered through TextTrackRepresentation are rendered with a background
2006 color when in paginated views. Do not fill the paint area with the
2007 baseBackgroundColor when the paint flags include SkipRootBackground.
2009 * rendering/RenderView.cpp:
2010 (WebCore::RenderView::paint):
2012 2013-07-19 Brady Eidson <beidson@apple.com>
2014 Pages should not be able to abuse users inside beforeunload handlers.
2015 <rdar://problem/14475779> and https://bugs.webkit.org/show_bug.cgi?id=118871.
2017 Reviewed by Alexey Proskuryakov.
2019 Tests: fast/loader/show-only-one-beforeunload-dialog.html
2020 http/tests/misc/iframe-beforeunload-dialog-matching-ancestor-securityorigin.html
2021 http/tests/misc/iframe-beforeunload-dialog-not-matching-ancestor-securityorigin.html
2023 * loader/FrameLoader.cpp:
2024 (WebCore::FrameLoader::FrameLoader):
2025 (WebCore::FrameLoader::shouldClose):
2026 (WebCore::FrameLoader::handleBeforeUnloadEvent):
2027 (WebCore::FrameLoader::shouldCloseFiringBeforeUnloadEvent): Renamed from fireBeforeUnloadEvent.
2028 Add logic to enforce "1 beforeunload dialog per navigation" as well as "iframes can only show beforeunload
2029 dialogs if their entire ancestry's security origins match the navigating frame."
2030 * loader/FrameLoader.h:
2031 * loader/FrameLoader.h:
2033 Add the ability for Page to know when any frame is dispatching beforeunload:
2035 (WebCore::Page::Page):
2036 (WebCore::Page::incrementFrameHandlingBeforeUnloadEventCount):
2037 (WebCore::Page::decrementFrameHandlingBeforeUnloadEventCount):
2038 (WebCore::Page::isAnyFrameHandlingBeforeUnloadEvent):
2041 * page/DOMWindow.cpp:
2042 (WebCore::DOMWindow::print): Disallow if any frame is in beforeunload dispatch.
2043 (WebCore::DOMWindow::alert): Ditto.
2044 (WebCore::DOMWindow::confirm): Ditto.
2045 (WebCore::DOMWindow::prompt): Ditto.
2046 (WebCore::DOMWindow::showModalDialog): Ditto.
2048 2013-07-19 Chris Fleizach <cfleizach@apple.com>
2050 AX: VoiceOver not detecting misspelled words don't work in all cases
2051 https://bugs.webkit.org/show_bug.cgi?id=118924
2053 Reviewed by Tim Horton.
2055 VoiceOver is now looking for a new misspelled attribute.
2057 * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
2058 (AXAttributeStringSetSpelling):
2059 (AXAttributedStringAppendText):
2061 2013-07-19 Ryosuke Niwa <rniwa@webkit.org>
2063 Extract computeRenderStyleForProperty and nodeOrItsAncestorNeedsStyleRecalc from ComputedStyleExtractor::propertyValue
2064 https://bugs.webkit.org/show_bug.cgi?id=118930
2066 Reviewed by Andreas Kling.
2068 Extracted two functions as a preparation to fix bugs 118032 and 118618.
2070 * css/CSSComputedStyleDeclaration.cpp:
2071 (WebCore::nodeOrItsAncestorNeedsStyleRecalc):
2072 (WebCore::computeRenderStyleForProperty):
2073 (WebCore::ComputedStyleExtractor::propertyValue):
2075 2013-07-19 Andreas Kling <akling@apple.com>
2077 Cache style declaration CSSOM wrappers directly on MutableStylePropertySet.
2078 <http://webkit.org/b/118883>
2080 Reviewed by Gavin Barraclough
2082 Merge https://chromium.googlesource.com/chromium/blink/+/183bcd51eb0e79cab930cf46695df05dc793630f
2083 From Blink r153700 by <ager@chromium.org>:
2085 In my measurements the mapping is adding more overhead than just having a field
2086 in all MutableStylePropertySet objects. So this saves memory and makes access
2089 * css/StylePropertySet.cpp:
2090 (WebCore::MutableStylePropertySet::MutableStylePropertySet):
2091 (WebCore::MutableStylePropertySet::~MutableStylePropertySet):
2092 (WebCore::StylePropertySet::hasCSSOMWrapper):
2093 (WebCore::MutableStylePropertySet::cssStyleDeclaration):
2094 (WebCore::MutableStylePropertySet::ensureCSSStyleDeclaration):
2095 (WebCore::MutableStylePropertySet::ensureInlineCSSStyleDeclaration):
2096 * css/StylePropertySet.h:
2097 (WebCore::StylePropertySet::StylePropertySet):
2099 2013-07-19 Brent Fulgham <bfulgham@apple.com>
2101 [Windows] Avoid passing addresses of temporaries to Windows API.
2102 https://bugs.webkit.org/show_bug.cgi?id=118917
2104 Reviewed by Anders Carlsson.
2106 The temporary Vector returned by String::charactersWithNullTermination
2107 was going out of scope before its first use, causing Windows API to
2108 receive garbage memory.
2110 * platform/win/ContextMenuWin.cpp:
2111 (WebCore::ContextMenu::createPlatformContextMenuFromItems):
2112 * platform/win/PasteboardWin.cpp:
2113 (WebCore::createGlobalHDropContent):
2114 * platform/win/SSLKeyGeneratorWin.cpp:
2115 (WebCore::WebCore::signedPublicKeyAndChallengeString):
2117 2013-07-19 Zoltan Horvath <zoltan@webkit.org>
2119 [CSS Shapes] Remove lineWithinShapeBounds() from ShapeInfo since it's no longer used
2120 https://bugs.webkit.org/show_bug.cgi?id=118913
2122 Reviewed by Andreas Kling.
2124 No new tests, no behavior change.
2126 * rendering/shapes/ShapeInfo.h: Remove lineWithinShapeBounds().
2128 2013-07-19 Alex Christensen <achristensen@apple.com>
2130 Added x64 configuration to Visual Studio build.
2131 https://bugs.webkit.org/show_bug.cgi?id=118888
2133 Reviewed by Brent Fulgham.
2135 * WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj:
2136 * WebCore.vcxproj/WebCore.vcxproj:
2137 * WebCore.vcxproj/WebCoreGenerated.vcxproj:
2138 * WebCore.vcxproj/WebCoreTestSupport.vcxproj:
2140 2013-07-19 Abhijeet Kandalkar <abhijeet.k@samsung.com>
2142 Spatial Navigation handling of space key in <select> appears to confuse listIndex and optionIndex.
2143 https://bugs.webkit.org/show_bug.cgi?id=99525
2145 HTMLSelect Element inherently contains the logic to focus option node and thus, implementing an explicit logic to find the focus index is not required.
2147 Reviewed by Joseph Pecoraro.
2149 Test: fast/spatial-navigation/snav-multiple-select-optgroup.html
2151 * html/HTMLSelectElement.cpp:
2152 (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
2153 * page/SpatialNavigation.cpp:
2154 (WebCore::canScrollInDirection):
2155 * rendering/RenderListBox.cpp:
2156 (WebCore::RenderListBox::addFocusRingRects):
2158 2013-07-19 David Hyatt <hyatt@apple.com>
2160 OSX: ePub: Unable to select text in vertical Japanese book
2161 https://bugs.webkit.org/show_bug.cgi?id=118864
2162 <rdar://problem/14109351>
2164 Reviewed by Dan Bernstein and Sam Weinig.
2166 This patch fixes all of the various writing-mode and pagination combinations
2167 so that the columns are painted in the correct location. The code that sets up
2168 the initial painting translation offset in the block direction and that advances
2169 that offset has been pulled into two helper functions, initialBlockOffsetForPainting
2170 and blockDeltaForPaintingNextColumn, and that code is now shared by the four call
2171 sites that need it (painting and hit testing in RenderBlock and painting and hit testing
2174 This patch also backs out the maximumScrollPosition change, since it only occurred because
2175 of incorrect sizing of the RenderView, and this sizing issue has now been corrected by
2176 ensuring that computeLogicalHeight() always makes sure you are the size of the viewport
2177 and does not shrink you to the column height.
2179 There was also a race condition that caused pagination to be incorrect if layout occurred
2180 before the html/body renderer that set the writing-mode were available. When this happened,
2181 the writing mode got propagated up to the view, but the column styles didn't get
2182 adjusted to compensate for the writing mode change.
2184 Added tests for every pagination and writing-mode combination in fast/multicol/pagination.
2186 * css/StyleResolver.cpp:
2187 (WebCore::StyleResolver::styleForDocument):
2188 (WebCore::StyleResolver::adjustRenderStyle):
2189 Move setStylesForPaginationMode into RenderStyle and make it a member function. This is
2190 necessary so that the style can be adjusted dynamically to fix the race condition mentioned
2193 * page/FrameView.cpp:
2194 (WebCore::FrameView::maximumScrollPosition):
2195 Back out this change since the symptom it was fixing only occurred because the logical
2196 height of the view was being set incorrectly.
2198 * rendering/RenderBlock.cpp:
2199 (WebCore::RenderBlock::checkForPaginationLogicalHeightChange):
2200 Patch the column code that sets up the initial page height to use the pagination API's
2201 page height rather than the viewport logical height. This allows the view to still match
2202 the viewport in dimensions rather than being incorrectly sized to the column height.
2204 (WebCore::RenderBlock::initialBlockOffsetForPainting):
2205 (WebCore::RenderBlock::blockDeltaForPaintingNextColumn):
2206 Two new helper functions used to set up the block direction paint/hit testing translation.
2207 The major bug fix that occurred in this code is that the old block axis code didn't handle
2208 reversal correctly and it also used physical coordinates to try to determine the translation
2209 offset, when you really need to use logical coordinates in the original writing mode coordinate
2210 system to determine the offset.
2212 (WebCore::RenderBlock::paintColumnContents):
2213 Patched to call the new helper functions.
2215 (WebCore::ColumnRectIterator::ColumnRectIterator):
2216 (WebCore::ColumnRectIterator::adjust):
2217 (WebCore::ColumnRectIterator::update):
2218 Patched to call the new helper functions.
2220 * rendering/RenderBlock.h:
2221 Add the two new helper functions to the RenderBlock header.
2223 * rendering/RenderBox.cpp:
2224 (WebCore::RenderBox::styleDidChange):
2225 If the writing mode of the html/body propagates to the viewport and changes its writing mode,
2226 also change our column styles to match if we're in paginated mode.
2228 (WebCore::RenderBox::computeLogicalHeight):
2229 (WebCore::RenderBox::computePercentageLogicalHeight):
2230 Call the new pageOrViewLogicalHeight function on RenderView instead of
2231 RenderBox::viewLogicalHeightForPercentages (which is now removed).
2233 * rendering/RenderLayer.cpp:
2234 (WebCore::RenderLayer::paintChildLayerIntoColumns):
2235 (WebCore::RenderLayer::hitTestChildLayerColumns):
2236 Patched to use the two new helper functions for block direction paint offset setup and
2239 * rendering/RenderView.cpp:
2240 (WebCore::RenderView::pageOrViewLogicalHeight):
2241 New helper function that does what viewLogicalHeightForPercentages used to do but also
2242 handles returning the page length for block axis column progression. Again, this is to
2243 allow the view to retain its correct size (matching the viewport).
2245 (WebCore::RenderView::viewLogicalHeight):
2246 Back out the code that made the view grow or shrink to the size of the Pagination API page
2247 length when the progression was block axis. This was the source of most of the scroll origin
2248 and scrolling issues.
2250 * rendering/RenderView.h:
2251 Add the new pageOrViewLogicalHeight() function.
2253 * rendering/style/RenderStyle.cpp:
2254 (WebCore::RenderStyle::setColumnStylesFromPaginationMode):
2255 This is the old StyleResolver function for setting up the column styles. It's in RenderStyle
2256 now so that it can be called at any time to change a style rather than only at style resolution
2259 * rendering/style/RenderStyle.h:
2260 Declaration of the setColumnStylesFromPaginationMode function.
2262 2013-07-19 peavo@outlook.com <peavo@outlook.com>
2264 [Curl] Http response code 401 (Authentication required) is not handled.
2265 https://bugs.webkit.org/show_bug.cgi?id=118849
2267 Reviewed by Brent Fulgham.
2269 The current Curl implementation does not handle a 401 response.
2270 When receiving http code 401, we need to give a notification that authorization is required, by calling the appropriate notification method.
2271 This gives a WebKit client the possibility to present a password dialog to the user.
2272 In response to this, we should provide Curl with the given username and password, so another request can be sent with the given credentials.
2274 * platform/network/ResourceHandle.h:
2275 Added method to check if credential storage should be used.
2276 * platform/network/ResourceHandleInternal.h:
2277 Added member to keep track of number of authentication failures.
2278 (WebCore::ResourceHandleInternal::ResourceHandleInternal):
2279 * platform/network/curl/ResourceHandleCurl.cpp:
2280 (WebCore::ResourceHandle::shouldUseCredentialStorage):
2281 Added method to check if credential storage should be used.
2282 (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
2283 Implement method; notify client when authentication is required.
2284 (WebCore::ResourceHandle::receivedCredential):
2285 Implement method; provide Curl with password and username when available.
2286 (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
2287 Implement method; reset Curl username and password.
2288 (WebCore::ResourceHandle::receivedCancellation):
2289 Implement method; notify client that authorization has been cancelled.
2290 * platform/network/curl/ResourceHandleManager.cpp:
2291 (WebCore::isHttpAuthentication):
2292 Added function to check if http code is an 'Authorization required' code.
2293 (WebCore::getProtectionSpace):
2294 Added function to initialize a protection space object from a Curl handle and a response object.
2295 (WebCore::headerCallback):
2296 Notify client when authorization is required.
2297 (WebCore::ResourceHandleManager::applyAuthenticationToRequest):
2298 Added method to set Curl username and password.
2299 (WebCore::ResourceHandleManager::initializeHandle):
2300 Use method to set Curl username and password.
2301 * platform/network/curl/ResourceHandleManager.h:
2302 Added method to set Curl username and password.
2304 2013-07-19 Radu Stavila <stavila@adobe.com>
2306 Hover doesn't work for block elements inside a href element
2307 https://bugs.webkit.org/show_bug.cgi?id=118907
2309 Reviewed by David Hyatt.
2311 Added test for hovering block elements inside a href element.
2313 Test: fast/css/hover-display-block.html
2315 * rendering/RenderObject.cpp:
2316 (WebCore::RenderObject::hoverAncestor):
2318 2013-07-19 Zoltan Horvath <zoltan@webkit.org>
2320 [CSS Shapes] Clear overflowing line's segments in pushShapeContentOverflowBelowTheContentBox
2321 https://bugs.webkit.org/show_bug.cgi?id=118002
2323 Reviewed by David Hyatt.
2325 When the last line in the shape overlaps with the shape bottom boundaries we need to clear the computed segments. (We need to compute
2326 the segments anyway, since shape-outside's code uses the same code path to determine its segments and the line containing is not a
2327 requirement in that case.) Rather then doing the job in RenderBlock::LineBreaker::nextLineBreak I moved the functionality to its correct
2328 place to pushShapeContentOverflowBelowTheContentBox. Now all the overflow related functionality is located in one function. I fixed the
2329 corresponding layout test.
2331 Tests: I modified shape-inside-overflow.html.
2333 * rendering/RenderBlockLineLayout.cpp:
2334 (WebCore::pushShapeContentOverflowBelowTheContentBox): Remove segments if line overlaps with the shape's boundaries.
2335 (WebCore::RenderBlock::LineBreaker::nextLineBreak): Move segments clear logic to pushShapeContentOverflowBelowContentBox.
2337 2013-07-19 Geoffrey Garen <ggaren@apple.com>
2339 TrailingObjects shouldn't shrink vector capacity in a loop
2340 https://bugs.webkit.org/show_bug.cgi?id=118322
2342 Reviewed by Darin Adler.
2344 This seems to take about 3% off the profile of loading a large text file.
2346 * rendering/RenderBlockLineLayout.cpp:
2347 (WebCore::TrailingObjects::clear): clear() has the built-in side effect
2348 of throwing away existing capacity. Use shrink(0) to indicate that we
2349 want to keep our existing capacity.
2351 2013-07-19 Diego Pino Garcia <dpino@igalia.com>
2353 [GTK] Merge decamelizations fix ups in the GObject DOM bindings code generator
2354 https://bugs.webkit.org/show_bug.cgi?id=117543
2356 Reviewed by Carlos Garcia Campos.
2358 Ensure that all the code that calls to decamelize() applies the same fix ups
2360 Now all functions that need to decamelize a string should simply call
2361 to decamelize(). This function calls to FixUpDecamelize to apply some
2364 * bindings/scripts/CodeGeneratorGObject.pm:
2365 (decamelize): decamelizes a string and applies fix ups
2366 (FixUpDecamelize): applies a series of fix ups to a decamelized string
2367 (GetParentGObjType): moved fix ups to FixUpDecamelize()
2368 (GenerateProperties): simply call to decamelize
2369 (GenerateHeader): simply call to decamelize
2370 (GetGReturnMacro): simply call to decamelize
2371 (GenerateFunction): simply call to decamelize
2372 (GenerateCFile): simply call to decamelize
2373 (GenerateEventTargetIface): simply call to decamelize
2375 2013-07-19 Kwang Yul Seo <skyul@company100.net>
2379 Fix an assertion failure which causes debug bots to fail.
2381 * platform/network/NetworkStateNotifier.cpp:
2382 (WebCore::NetworkStateNotifier::addNetworkStateChangeListener):
2384 2013-07-19 Miguel Gomez <magomez@igalia.com>
2386 [GTK] media/video-seek-multiple.html is failing
2387 https://bugs.webkit.org/show_bug.cgi?id=117580
2389 Reviewed by Philippe Normand.
2391 When receiving several seek calls in a row, ensure that the final position
2392 is the one requested in the last call received.
2394 Already covered in test media/video-seek-multiple.html
2396 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2397 (WebCore::MediaPlayerPrivateGStreamer::seek):
2399 2013-07-19 Kangil Han <kangil.han@samsung.com>
2401 Use explicit HTMLFrameElementBase cast and introduce toHTMLFrameElementBase
2402 https://bugs.webkit.org/show_bug.cgi?id=118873
2404 Reviewed by Ryosuke Niwa.
2406 It should be HTMLFrameElementBase that embraces both HTMLFrameElement and HTMLIFrameElement.
2407 This also makes correct toFooElement possible.
2408 Next, to avoid direct use of static_cast, this patch introduces toHTMLFrameElementBase for code cleanup.
2410 * editing/FrameSelection.cpp:
2411 (WebCore::scanForForm):
2412 * html/HTMLBodyElement.cpp:
2413 (WebCore::HTMLBodyElement::didNotifySubtreeInsertions):
2414 * html/HTMLFrameElementBase.h:
2415 (WebCore::toHTMLFrameElementBase):
2416 * loader/SubframeLoader.cpp:
2417 (WebCore::SubframeLoader::loadSubframe):
2418 * page/EventHandler.cpp:
2419 (WebCore::targetIsFrame):
2420 * page/FrameView.cpp:
2421 (WebCore::FrameView::init):
2422 * rendering/RenderFrameBase.cpp:
2423 (WebCore::RenderFrameBase::layoutWithFlattening):
2424 * rendering/RenderLayer.cpp:
2425 (WebCore::frameElementAndViewPermitScroll):
2426 (WebCore::RenderLayer::scrollRectToVisible):
2428 2013-07-18 Christophe Dumez <ch.dumez@sisa.samsung.com>
2430 Bindings generation tests are failing
2431 https://bugs.webkit.org/show_bug.cgi?id=118877
2433 Reviewed by Kentaro Hara.
2435 I inadvertently removed the wrong part of the if statement
2436 in r152845, causing hasAttribute() to be used unconditionally
2437 for reflected boolean attributes instead of fastHasAttribute().
2438 This patch fixes the issue.
2440 No new tests, covered by bindings tests.
2442 * bindings/scripts/CodeGenerator.pm:
2445 2013-07-18 Kwang Yul Seo <skyul@company100.net>
2447 WorkerGlobalScope should support onoffline/ononline event handlers
2448 https://bugs.webkit.org/show_bug.cgi?id=118832
2450 Reviewed by Alexey Proskuryakov.
2452 HTML5 spec says that WorkerGlobalScope should support
2453 onoffline/ononline event handlers as stated in
2454 http://www.whatwg.org/specs/web-apps/current-work/multipage/offline.html#event-offline
2456 Modified NetworkStateNotifier to support multiple callbacks and added a
2457 callback to dispatch offline and online events to WorkerGlobalScope
2458 when network state is changed.
2460 No new test because the current test infrastructure does not provide a
2461 mock network state notifier.
2464 (WebCore::networkStateChanged):
2465 Change the function to take an additional argument, isOnLine so that we
2466 can remove a call to NetworkStateNotifier::onLine().
2467 (WebCore::Page::Page):
2468 Use NetworkStateNotifier::addNetworkStateChangeListener which
2469 allows us to add multiple callbacks.
2471 * platform/network/NetworkStateNotifier.cpp:
2472 (WebCore::NetworkStateNotifier::addNetworkStateChangeListener):
2473 Replace NetworkStateNotifier::setNetworkStateChangedFunction with
2474 NetworkStateNotifier::addNetworkStateChangeListener.
2475 (WebCore::NetworkStateNotifier::notifyNetworkStateChange):
2476 A helper method to notify all registered network state change
2478 * platform/network/NetworkStateNotifier.h:
2479 (WebCore::NetworkStateNotifier::NetworkStateNotifier):
2480 * platform/network/blackberry/NetworkStateNotifierBlackBerry.cpp:
2481 (WebCore::NetworkStateNotifier::NetworkStateNotifier):
2482 (WebCore::NetworkStateNotifier::networkStateChange):
2483 * platform/network/efl/NetworkStateNotifierEfl.cpp:
2484 (WebCore::NetworkStateNotifier::networkInterfaceChanged):
2485 (WebCore::NetworkStateNotifier::NetworkStateNotifier):
2486 * platform/network/mac/NetworkStateNotifierMac.cpp:
2487 (WebCore::NetworkStateNotifier::networkStateChangeTimerFired):
2488 (WebCore::NetworkStateNotifier::NetworkStateNotifier):
2489 * platform/network/qt/NetworkStateNotifierQt.cpp:
2490 (WebCore::NetworkStateNotifier::updateState):
2491 (WebCore::NetworkStateNotifier::NetworkStateNotifier):
2492 * platform/network/win/NetworkStateNotifierWin.cpp:
2493 (WebCore::NetworkStateNotifier::addressChanged):
2494 (WebCore::NetworkStateNotifier::NetworkStateNotifier):
2495 Replace m_networkStateChangedFunction() with notifyNetworkStateChange().
2497 * workers/Worker.cpp:
2498 (WebCore::networkStateChanged):
2499 Notify network state change by iterating all Workers.
2500 (WebCore::Worker::Worker):
2501 Initialize allWorkers and add networkStateChanged to
2502 NetworkStateNotifier in first invocation. Add this Worker to
2504 (WebCore::Worker::~Worker):
2505 Remove this Worker from allWorkers.
2506 (WebCore::Worker::notifyNetworkStateChange):
2508 * workers/WorkerGlobalScope.h:
2509 Add onoffline and ononline event handlers.
2510 * workers/WorkerGlobalScope.idl:
2511 Add onoffline and ononline event handlers
2512 * workers/WorkerGlobalScopeProxy.h:
2514 * workers/WorkerMessagingProxy.cpp:
2515 (WebCore::NotifyNetworkStateChangeTask::create):
2516 (WebCore::NotifyNetworkStateChangeTask::NotifyNetworkStateChangeTask):
2517 (WebCore::NotifyNetworkStateChangeTask::performTask):
2518 A subclass of ScriptExecutionContext::Task to dispatch offline and
2519 online events to WorkerGlobalScope.
2520 (WebCore::WorkerMessagingProxy::notifyNetworkStateChange):
2521 Notify network state change using ScriptExecutionContext::postTask to
2522 dispatch events across threads.
2523 * workers/WorkerMessagingProxy.h:
2525 2013-07-18 Ryosuke Niwa <rniwa@webkit.org>
2527 Build fix after r152876.
2529 * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
2530 (WebCore::MediaPlayerPrivateAVFoundation::processNewAndRemovedTextTracks):
2532 2013-07-18 Brent Fulgham <bfulgham@apple.com>
2534 [Media] Share more code between Mac and Windows implementation files.
2535 https://bugs.webkit.org/show_bug.cgi?id=118801
2537 Reviewed by Eric Carlson.
2539 * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
2540 (WebCore::MediaPlayerPrivateAVFoundation::clearTextTracks): Move
2541 implementation from ObjC file to parent file.
2542 (WebCore::MediaPlayerPrivateAVFoundation::processNewAndRemovedTextTracks):
2544 * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
2545 Remove duplicate implementation.
2546 * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
2548 * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
2550 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
2552 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2555 2013-07-18 Alex Christensen <achristensen@apple.com>
2557 Fixed compile errors for non-Cairo platforms using EGL.
2558 https://bugs.webkit.org/show_bug.cgi?id=118536
2560 Reviewed by Brent Fulgham.
2562 * platform/graphics/egl/GLContextEGL.cpp: Added #if USE(CAIRO) around cairo.h.
2563 (WebCore::GLContextEGL::~GLContextEGL): Added #if USE(CAIRO) around cairo_device_destroy call.
2565 2013-07-18 Jer Noble <jer.noble@apple.com>
2567 New PDFPlugin doesn't support WebKitOmitPDFSupport, acts as if Plug-ins are off
2568 https://bugs.webkit.org/show_bug.cgi?id=118858
2570 Reviewed by Eric Carlson.
2572 Expand the scope of rejecting non video/ or audio/ MIME types when
2573 filling the MIME type cache.
2575 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2576 (WebCore::shouldRejectMIMEType): Added utility function.
2578 2013-07-17 Brent Fulgham <bfulgham@apple.com>
2580 [Windows] Support in-band text tracks.
2581 https://bugs.webkit.org/show_bug.cgi?id=103770
2583 Reviewed by Eric Carlson.
2585 Existing media tests cover these features.
2587 * WebCore.vcxproj/WebCore.vcxproj: Add new files for Windows captions
2588 * WebCore.vcxproj/WebCore.vcxproj.filters: ditto.
2589 * config.h: Make sure proper buid flags are turned on when building
2590 with AVCF_LEGIBLE_OUTPUT.
2591 * page/CaptionUserPreferencesMediaAF.cpp: Revise to reduce soft linking
2592 duplication between Mac and Windows.
2593 * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp: Update
2594 to support Windows platform by removing compiler guards and adding
2595 Windows declarations for soft-link functions.
2596 * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h: Ditto.
2597 * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
2598 Remove build guards preventing Windows from using LegibleOutput
2600 (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
2601 (WebCore::MediaPlayerPrivateAVFoundation::seek):
2602 (WebCore::MediaPlayerPrivateAVFoundation::seekCompleted):
2603 (WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification):
2604 (WebCore::MediaPlayerPrivateAVFoundation::trackModeChanged):
2605 * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
2606 (WebCore::MediaPlayerPrivateAVFoundation::contentsNeedsDisplay): Ditto
2607 * platform/graphics/avfoundation/cf/AVFoundationCFSoftLinking.h:
2608 Add new LegibleOutput support functions, and try to reduce duplication
2609 between Windows and Mac soft link declarations.
2610 * platform/graphics/avfoundation/cf/CoreMediaSoftLinking.h: Ditto.
2611 * platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.cpp: Added.
2612 (WebCore::InbandTextTrackPrivateAVCF::InbandTextTrackPrivateAVCF):
2613 (WebCore::InbandTextTrackPrivateAVCF::disconnect):
2614 (WebCore::InbandTextTrackPrivateAVCF::kind):
2615 (WebCore::InbandTextTrackPrivateAVCF::isClosedCaptions):
2616 (WebCore::InbandTextTrackPrivateAVCF::isSDH):
2617 (WebCore::InbandTextTrackPrivateAVCF::containsOnlyForcedSubtitles):
2618 (WebCore::InbandTextTrackPrivateAVCF::isMainProgramContent):
2619 (WebCore::InbandTextTrackPrivateAVCF::isEasyToRead):
2620 (WebCore::InbandTextTrackPrivateAVCF::label):
2621 (WebCore::InbandTextTrackPrivateAVCF::language):
2622 (WebCore::InbandTextTrackPrivateAVCF::isDefault):
2623 * platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.h: Added.
2624 (WebCore::InbandTextTrackPrivateAVCF::create):
2625 (WebCore::InbandTextTrackPrivateAVCF::~InbandTextTrackPrivateAVCF):
2626 (WebCore::InbandTextTrackPrivateAVCF::mediaSelectionOption):
2627 * platform/graphics/avfoundation/cf/InbandTextTrackPrivateLegacyAVCF.cpp: Added.
2628 (WebCore::InbandTextTrackPrivateLegacyAVCF::InbandTextTrackPrivateLegacyAVCF):
2629 (WebCore::InbandTextTrackPrivateLegacyAVCF::disconnect):
2630 (WebCore::InbandTextTrackPrivateLegacyAVCF::kind):
2631 (WebCore::InbandTextTrackPrivateLegacyAVCF::isClosedCaptions):
2632 (WebCore::InbandTextTrackPrivateLegacyAVCF::containsOnlyForcedSubtitles):
2633 (WebCore::InbandTextTrackPrivateLegacyAVCF::isMainProgramContent):
2634 (WebCore::InbandTextTrackPrivateLegacyAVCF::isEasyToRead):
2635 (WebCore::InbandTextTrackPrivateLegacyAVCF::label):
2636 (WebCore::InbandTextTrackPrivateLegacyAVCF::language):
2637 * platform/graphics/avfoundation/cf/InbandTextTrackPrivateLegacyAVCF.h: Added.
2638 (WebCore::InbandTextTrackPrivateLegacyAVCF::create):
2639 (WebCore::InbandTextTrackPrivateLegacyAVCF::~InbandTextTrackPrivateLegacyAVCF):
2640 (WebCore::InbandTextTrackPrivateLegacyAVCF::avPlayerItemTrack):
2641 * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
2642 Update to support LegibleOutput features for the Windows port.
2643 (WebCore::AVFWrapper::currentTrack): Added.
2644 (WebCore::AVFWrapper::legibleOutput): Added.
2645 (WebCore::createMetadataKeyNames): Added missing key names.
2646 (WebCore::avLegibleOutput): Added.
2647 (WebCore::safeMediaSelectionGroupForLegibleMedia): Added.
2648 (WebCore::MediaPlayerPrivateAVFoundationCF::cancelLoad): Clear text
2649 tracks when cancelling.
2650 (WebCore::MediaPlayerPrivateAVFoundationCF::setCurrentTrack): Added.
2651 (WebCore::MediaPlayerPrivateAVFoundationCF::currentTrack): Added.
2652 (WebCore::MediaPlayerPrivateAVFoundationCF::platformDuration): Revised
2653 to match logic in Objective C implementation.
2654 (WebCore::MediaPlayerPrivateAVFoundationCF::currentTime): Revised
2655 to match logic in Objective C implementation.
2656 (WebCore::MediaPlayerPrivateAVFoundationCF::paintCurrentFrameInContext):
2657 Check presence of metadata before proceeding. Revised to match logic
2658 in Objective C implementation.
2659 (WebCore::MediaPlayerPrivateAVFoundationCF::paint): Ditto.
2660 (WebCore::MediaPlayerPrivateAVFoundationCF::tracksChanged): Update for
2661 in-band text tracks.
2662 (WebCore::MediaPlayerPrivateAVFoundationCF::clearTextTracks): Added.
2663 (WebCore::MediaPlayerPrivateAVFoundationCF::processLegacyClosedCaptionsTracks):
2665 (WebCore::MediaPlayerPrivateAVFoundationCF::processNewAndRemovedTextTracks):
2667 (WebCore::MediaPlayerPrivateAVFoundationCF::processMediaSelectionOptions):
2669 (WebCore::AVFWrapper::setCurrentTrack): Added.
2670 (WebCore::MediaPlayerPrivateAVFoundationCF::languageOfPrimaryAudioTrack):
2672 (WebCore::AVFWrapper::AVFWrapper): Add new initializers.
2673 (WebCore::AVFWrapper::~AVFWrapper): Clean up text track information.
2674 (WebCore::AVFWrapper::createPlayer): Add Legible Output support.
2675 (WebCore::AVFWrapper::createPlayerItem): Ditto.
2676 (WebCore::LegibleOutputData::LegibleOutputData): Added.
2677 (WebCore::AVFWrapper::processCue): Added.
2678 (WebCore::AVFWrapper::legibleOutputCallback): Added.
2679 (WebCore::AVFWrapper::safeMediaSelectionGroupForLegibleMedia): Added.
2680 * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
2681 Update to support LegibleOutput features for the Windows port.
2682 * platform/win/SoftLinking.h: Change signature of variable accessor
2683 to match Mac so reduce duplicate code.
2685 2013-07-18 Christophe Dumez <ch.dumez@sisa.samsung.com>
2687 Make atob() / btoa() argument non optional
2688 https://bugs.webkit.org/show_bug.cgi?id=118844
2690 Reviewed by Kentaro Hara.
2692 According to the latest specification, the argument to atob() / btoa()
2693 should not be optional:
2694 http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#windowbase64
2696 This patch makes WebKit behave according to the specification. The argument
2697 is also mandatory in Firefox, IE10 and Blink.
2699 atob() / btoa() are also moved to their own WindowBase64 interface which
2700 the Window interface implements. This does not change the behavior but
2701 this is closer to the specification and it will make exposing those
2702 methods to workers easier later on.
2704 No new tests, already covered by:
2705 fast/dom/Window/atob-btoa.html
2708 * DerivedSources.make:
2709 * DerivedSources.pri:
2710 * GNUmakefile.list.am:
2711 * page/DOMWindow.idl:
2712 * page/WindowBase64.idl: Added.
2714 2013-07-18 Antoine Quint <graouts@apple.com>
2716 Crash in WebCore::createMarkup()
2717 https://bugs.webkit.org/show_bug.cgi?id=118847
2719 Reviewed by Ryosuke Niwa.
2721 Also check that we have a containingBlock() for the renderer() so that we
2722 may safely call node() on it.
2724 * editing/markup.cpp:
2725 (WebCore::highestAncestorToWrapMarkup):
2727 2013-07-18 Praveen R Jadhav <praveen.j@samsung.com>
2729 Only the first call to 'stop' method of AudioBufferSourceNode must be entertained.
2730 https://bugs.webkit.org/show_bug.cgi?id=118776
2732 Reviewed by Jer Noble.
2734 Subsequent calls to 'stop' for a AudioSourceBufferNode throws an exception.
2735 End time set by first 'stop' method is used for processing.
2737 No new tests. audiobuffersource-exception.html is updated.
2739 * Modules/webaudio/AudioScheduledSourceNode.cpp:
2740 (WebCore::AudioScheduledSourceNode::stop):
2742 2013-07-18 Christophe Dumez <ch.dumez@sisa.samsung.com>
2744 Simplify SVG animated type handling in the JSC bindings generator
2745 https://bugs.webkit.org/show_bug.cgi?id=118845
2747 Reviewed by Kentaro Hara.
2749 Simplify IsSVGAnimatedType subroutine in the bindings generator so that
2750 we no longer need to hardcode SVG animated types. Also remove the
2751 CanUseFastAttribute subroutine as it is equivalent to IsSVGAnimatedType.
2752 This allows us to simplify the GetterExpression subroutine so that
2753 we can use fastHasAttribute() unconditionally for boolean type.
2755 No new tests, no behavior change.
2757 * bindings/scripts/CodeGenerator.pm:
2758 (IsSVGAnimatedType):
2761 2013-07-18 Christophe Dumez <ch.dumez@sisa.samsung.com>
2763 Use [ImplementedAs] instead of special casing in the bindings generators
2764 https://bugs.webkit.org/show_bug.cgi?id=118848
2766 Reviewed by Kentaro Hara.
2768 In several instances, special casing were used in the bindings generator to avoid
2769 name clashes in the implementation. The [ImplementedBy] IDL extended attribute is
2770 meant to solve this issue so we now use it instead.
2772 No new tests, no behavior change.
2774 * bindings/scripts/CodeGenerator.pm:
2776 (AttributeNameForGetterAndSetter):
2777 * bindings/scripts/CodeGeneratorJS.pm:
2778 (GenerateImplementation):
2780 * bindings/scripts/CodeGeneratorObjC.pm:
2782 (GenerateImplementation):
2783 * svg/SVGAElement.idl:
2784 * svg/SVGFECompositeElement.cpp:
2785 (WebCore::SVGFECompositeElement::SVGFECompositeElement):
2786 (WebCore::SVGFECompositeElement::parseAttribute):
2787 (WebCore::SVGFECompositeElement::setFilterEffectAttribute):
2788 (WebCore::SVGFECompositeElement::build):
2789 * svg/SVGFECompositeElement.h:
2790 * svg/SVGFECompositeElement.idl:
2791 * svg/SVGFEMorphologyElement.cpp:
2792 (WebCore::SVGFEMorphologyElement::SVGFEMorphologyElement):
2793 (WebCore::SVGFEMorphologyElement::parseAttribute):
2794 (WebCore::SVGFEMorphologyElement::setFilterEffectAttribute):
2795 (WebCore::SVGFEMorphologyElement::build):
2796 * svg/SVGFEMorphologyElement.h:
2797 * svg/SVGFEMorphologyElement.idl:
2798 * svg/SVGTransform.cpp:
2799 (WebCore::SVGTransform::updateSVGMatrix):
2800 * svg/SVGTransform.h:
2801 * svg/SVGTransform.idl:
2803 2013-07-18 Zalan Bujtas <zalan@apple.com>
2805 Incorrect calculated width for mspace.
2806 https://bugs.webkit.org/show_bug.cgi?id=118601
2808 Reviewed by Chris Fleizach.
2810 Use intrinsic logical widths to size <mspace> properly.
2811 This patch also fixes an assert on isPreferredLogicalHeightDirty() which occurs
2812 while layouting <mspace>. The assert fix is required, so that the sizing can be
2815 Test: mathml/presentation/mspace-prefered-width.html
2817 * rendering/mathml/RenderMathMLBlock.cpp:
2818 (WebCore::parseMathMLLength): switch to LayoutUnits.
2819 (WebCore::parseMathMLNamedSpace): switch to LayoutUnits.
2820 * rendering/mathml/RenderMathMLBlock.h:
2821 * rendering/mathml/RenderMathMLFraction.cpp:
2822 (WebCore::RenderMathMLFraction::updateFromElement):
2823 * rendering/mathml/RenderMathMLFraction.h:
2824 * rendering/mathml/RenderMathMLSpace.cpp:
2825 (WebCore::RenderMathMLSpace::computeIntrinsicLogicalWidths):
2826 * rendering/mathml/RenderMathMLSpace.h:
2828 2013-07-18 Ryosuke Niwa <rniwa@webkit.org>
2830 willWriteSelectionToPasteboard and willPerformDragSourceAction editing callbacks are not called for drag and drop
2831 https://bugs.webkit.org/show_bug.cgi?id=118828
2833 Reviewed by Gavin Barraclough.
2835 Call these two callbacks when we start a drag and drop.
2837 No new tests for now but we should start logging these callbacks in DRT and WTR's EditorClients.
2839 * page/DragController.cpp:
2840 (WebCore::DragController::startDrag):
2842 2013-07-18 Santosh Mahto <santosh.ma@samsung.com>
2844 ASSERTION FAILED: !listItems().size() || m_activeSelectionAnchorIndex >= 0 in WebCore::HTMLSelectElement::updateListBoxSelection
2845 https://bugs.webkit.org/show_bug.cgi?id=118591
2847 Reviewed by Kent Tamura.
2849 Test: fast/forms/select/selectall-command-crash.html
2851 * html/HTMLSelectElement.cpp:
2852 (WebCore::HTMLSelectElement::selectAll):
2853 We should return this function if activeSelectionAnchorIndex is not valid index
2855 2013-07-18 Ryuan Choi <ryuan.choi@samsung.com>
2857 [EFL] Refactor spin.edc not to use offset
2858 https://bugs.webkit.org/show_bug.cgi?id=118830
2860 Reviewed by Gyuyoung Kim.
2862 EDJE allows offset to specify the pixel based position,
2863 but it's not good way if you want to locate object like arrow top or bottom.
2865 Instead, this patch uses align property.
2867 * platform/efl/DefaultTheme/widget/spinner/spinner.edc:
2869 2013-07-18 Nick Diego Yamane <nick.yamane@openbossa.org>
2871 [gstreamer] Avoid calls to g_slist_index in webKitWebAudioSrcLoop()
2872 https://bugs.webkit.org/show_bug.cgi?id=118827
2874 Reviewed by Philippe Normand.
2876 webKitWebAudioSrcLoop() currently calls g_slist_index for each element
2877 to get its index in a list it's iterating over. g_list_index function uses
2878 a sequential search to find that element, which is clearly unecessary.
2879 This patch adds a local variable to store the current index and use it
2880 instead of calling g_slist_index function.
2882 No new tests, no behavior changes.
2884 * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
2885 (webKitWebAudioSrcLoop):
2887 2013-07-17 Gyuyoung Kim <gyuyoung.kim@samsung.com>
2889 Introduce toSVGInlineFlowBox() and use it
2890 https://bugs.webkit.org/show_bug.cgi?id=118794
2892 Reviewed by Andreas Kling.
2894 As a step to change static_cast with toSVGXXX, static_cast<SVGInlineFlowBox*> can
2895 be changed with toSVGInlineFlowBox().
2897 Blink merge from https://src.chromium.org/viewvc/blink?view=rev&revision=154385
2899 No new tests, no behavior change.
2901 * rendering/svg/SVGInlineFlowBox.cpp:
2902 (WebCore::SVGInlineFlowBox::paintSelectionBackground):
2903 * rendering/svg/SVGInlineFlowBox.h:
2904 (WebCore::toSVGInlineFlowBox):
2905 * rendering/svg/SVGRootInlineBox.cpp:
2906 (WebCore::SVGRootInlineBox::paint):
2907 (WebCore::SVGRootInlineBox::layoutCharactersInTextBoxes):
2908 (WebCore::SVGRootInlineBox::layoutChildBoxes):
2910 2013-07-17 Gyuyoung Kim <gyuyoung.kim@samsung.com>
2912 Use toSVGMarkerElement() instead of static_cast<>
2913 https://bugs.webkit.org/show_bug.cgi?id=118800
2915 Reviewed by Andreas Kling.
2917 Though there is toSVGMarkerElement(), some files still use static_cast<SVGMarkerElement*>.
2918 To remove all static_cast<> use, we need to change argument from SVGElement to Node.
2920 No new tests, no behavior changes.
2922 * rendering/svg/RenderSVGResourceMarker.cpp:
2923 (WebCore::RenderSVGResourceMarker::referencePoint):
2924 (WebCore::RenderSVGResourceMarker::angle):
2925 (WebCore::RenderSVGResourceMarker::markerTransformation):
2926 (WebCore::RenderSVGResourceMarker::viewportTransform):
2927 (WebCore::RenderSVGResourceMarker::calcViewport):
2928 * rendering/svg/RenderSVGResourceMarker.h:
2929 (WebCore::RenderSVGResourceMarker::markerUnits):
2930 * svg/SVGMarkerElement.h:
2931 (WebCore::toSVGMarkerElement):
2933 2013-07-17 Jacky Jiang <zhajiang@blackberry.com>
2935 Dereference null pointer crash in Length::decrementCalculatedRef()
2936 https://bugs.webkit.org/show_bug.cgi?id=118686
2938 Reviewed by Simon Fraser.
2940 Length(Calculated) won't insert any CalculationValue to CalculationValueHandleMap;
2941 therefore, we dereference null CalculationValue pointer when the temporary
2942 Length object goes out of the scope.
2943 Length(Calculated) is not allowed as it doesn't make sense that we construct
2944 a Calculated Length object with uninitialized calc expression.
2945 The code just wants to blend with zero. To fix the bug, we can just blend
2946 with Length(0, Fixed) here as we currently can blend different type units
2947 and zero has the same behavior regardless of unit.
2949 Test: transitions/transition-transform-translate-calculated-length-crash.html
2951 * platform/graphics/transforms/TranslateTransformOperation.cpp:
2952 (WebCore::TranslateTransformOperation::blend):
2954 2013-07-17 Tim Horton <timothy_horton@apple.com>
2956 Update blocked/missing plug-in UI
2957 https://bugs.webkit.org/show_bug.cgi?id=118347
2958 <rdar://problem/14209318>
2960 Reviewed by Sam Weinig.
2963 Export RenderEmbeddedObject::setPluginUnavailabilityReasonWithDescription.
2965 * rendering/RenderEmbeddedObject.cpp:
2966 (WebCore::replacementTextRoundedRectPressedColor):
2967 (WebCore::replacementTextRoundedRectColor):
2968 (WebCore::replacementTextColor):
2969 Change colors to new design and add some more constants.
2971 (WebCore::shouldUnavailablePluginMessageBeButton): Added.
2973 (WebCore::RenderEmbeddedObject::setPluginUnavailabilityReasonWithDescription): Added.
2974 (WebCore::RenderEmbeddedObject::setPluginUnavailabilityReason):
2975 Call through to the -WithDescription variant.
2977 (WebCore::RenderEmbeddedObject::paintReplaced):
2978 Fill the background, and otherwise match the new design.
2980 (WebCore::addReplacementArrowPath):
2981 Add an arrow to the given path, inside the given rect.
2983 (WebCore::RenderEmbeddedObject::getReplacementTextGeometry):
2984 Add a 1px padding to the bottom of the text.
2985 Add a circle and an arrow into the indicator as per the new design.
2987 (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
2988 Hit-test the indicator arrow as well; otherwise, the fact that the arrow
2989 is a hole in the path means it won't be hit.
2991 * rendering/RenderEmbeddedObject.h:
2993 2013-07-17 Commit Queue <commit-queue@webkit.org>
2995 Unreviewed, rolling out r152701, r152703, r152739, r152754,
2997 http://trac.webkit.org/changeset/152701
2998 http://trac.webkit.org/changeset/152703
2999 http://trac.webkit.org/changeset/152739
3000 http://trac.webkit.org/changeset/152754
3001 http://trac.webkit.org/changeset/152756
3002 https://bugs.webkit.org/show_bug.cgi?id=118821
3004 this was a buggy fix and we're going to try something
3005 different (Requested by thorton on #webkit).
3008 * DerivedSources.make:
3009 * DerivedSources.pri:
3012 * WebCore.vcxproj/WebCore.vcxproj:
3013 * WebCore.vcxproj/WebCore.vcxproj.filters:
3014 * WebCore.xcodeproj/project.pbxproj:
3015 * css/CSSDefaultStyleSheets.cpp:
3016 (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
3017 * css/unavailablePlugIns.css: Removed.
3018 * dom/EventListener.h:
3019 * html/HTMLAppletElement.cpp:
3020 (WebCore::HTMLAppletElement::updateWidget):
3021 * html/HTMLPlugInElement.cpp:
3022 (WebCore::HTMLPlugInElement::defaultEventHandler):
3023 * html/HTMLPlugInImageElement.cpp:
3024 (WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot):
3025 * loader/SubframeLoader.cpp:
3026 (WebCore::SubframeLoader::createJavaAppletWidget):
3027 * page/ChromeClient.h:
3028 (WebCore::ChromeClient::shouldUnavailablePluginMessageBeButton):
3029 * rendering/RenderEmbeddedObject.cpp:
3030 (WebCore::replacementTextRoundedRectPressedColor):
3031 (WebCore::RenderEmbeddedObject::RenderEmbeddedObject):
3032 (WebCore::RenderEmbeddedObject::setPluginUnavailabilityReason):
3033 (WebCore::RenderEmbeddedObject::setUnavailablePluginIndicatorIsPressed):
3034 (WebCore::RenderEmbeddedObject::paint):
3035 (WebCore::RenderEmbeddedObject::paintReplaced):
3036 (WebCore::RenderEmbeddedObject::getReplacementTextGeometry):
3037 (WebCore::RenderEmbeddedObject::replacementTextRect):
3038 (WebCore::RenderEmbeddedObject::isReplacementObscured):
3039 (WebCore::RenderEmbeddedObject::layout):
3040 (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
3041 (WebCore::shouldUnavailablePluginMessageBeButton):
3042 (WebCore::RenderEmbeddedObject::handleUnavailablePluginIndicatorEvent):
3043 (WebCore::RenderEmbeddedObject::getCursor):
3044 (WebCore::RenderEmbeddedObject::canHaveChildren):
3045 * rendering/RenderEmbeddedObject.h:
3046 * rendering/RenderWidget.h:
3048 2013-07-17 Simon Fraser <simon.fraser@apple.com>
3050 Optimize RenderLayerCompositor's OverlapMap
3051 https://bugs.webkit.org/show_bug.cgi?id=118764
3053 Reviewed by Tim Horton.
3055 Overlap stack items can have RectLists with hundreds of rectangles.
3056 This makes the linear search in OverlapMap::overlapsLayers() very slow.
3058 Optimize by storing the bounding rect of the list of rects, and doing an early
3059 check on that. This reduces time spent in RenderLayer::scrollTo() by 13% in some
3060 content with lots of layers inside an overflow:scroll.
3062 * rendering/RenderLayerCompositor.cpp:
3063 (WebCore::RenderLayerCompositor::OverlapMap::overlapsLayers):
3064 (WebCore::RenderLayerCompositor::OverlapMap::popCompositingContainer):
3065 (WebCore::RenderLayerCompositor::OverlapMap::RectList::append):
3066 (WebCore::RenderLayerCompositor::OverlapMap::RectList::intersects):
3068 2013-07-17 Bem Jones-Bey <bjonesbe@adobe.com>
3070 [CSS Shapes] Port refactoring of shape-outside code from Blink
3071 https://bugs.webkit.org/show_bug.cgi?id=118757
3073 Reviewed by Dean Jackson.
3075 Refactor the left and right offset methods to reduce the number of
3076 arguments by splitting the methods into smaller methods. This
3077 refactoring was requested as part of porting support for stacked
3078 floats with shape-outside to Blink.
3080 Also add a variable when calling computeSegmentsForLine to make it
3081 more readable and easier to follow the coordinate system change.
3083 No new tests, no behavior change.
3085 * rendering/RenderBlock.cpp:
3086 (WebCore::RenderBlock::computeLogicalLocationForFloat): Update to use
3087 the refactored IgnoringShapeOutside methods.
3088 (WebCore::RenderBlock::logicalLeftFloatOffsetForLine): New method to
3089 compute the offset contributed by left floats.
3090 (WebCore::RenderBlock::adjustLogicalLeftOffsetForLine): New method to
3091 compute misc adjustments to the left offset.
3092 (WebCore::RenderBlock::logicalRightFloatOffsetForLine): New method to
3093 compute the offset contributed by right floats.
3094 (WebCore::RenderBlock::adjustLogicalRightOffsetForLine): New method to
3095 compute misc adjustments to the right offset.
3096 * rendering/RenderBlock.h:
3097 (WebCore::RenderBlock::logicalRightOffsetForLine): Implement original
3098 method in terms of the float offset computation method and the
3099 offset adjustment method. This method takes into account the
3100 shape-outside on any floats when computing the offset.
3101 (WebCore::RenderBlock::logicalLeftOffsetForLine): Ditto.
3102 (WebCore::RenderBlock::logicalRightOffsetForLineIgnoringShapeOutside):
3103 Compute the right offset as if there was no shape-outside on any
3105 (WebCore::RenderBlock::logicalLeftOffsetForLineIgnoringShapeOutside):
3106 Compute the left offset as if there was no shape-outside on any
3108 * rendering/RenderBlockLineLayout.cpp:
3109 (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded): Update
3110 to use a variable to make the calls to computeSegmentsForLine more
3111 explicit about the coordinate system conversion.
3113 2013-07-17 Zalan Bujtas <zalan@apple.com>
3115 Wrong linebox height, when block element parent has vertical-align property defined.
3116 https://bugs.webkit.org/show_bug.cgi?id=118245
3118 Reviewed by David Hyatt.
3120 Do not push the current element to the next, when it is still considered empty, even with
3121 some object(s) in front. Behave as if it was actually empty.
3122 Inline elements like <span></span> generate such lines.
3124 Test: fast/css/empty-span-with-parent-div-and-vertical-align.html
3126 * rendering/RenderBlockLineLayout.cpp:
3127 (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
3129 2013-07-17 Andreas Kling <akling@apple.com>
3131 CSS selector list splitting should be by component, not by selector.
3132 <http://webkit.org/b/118761>
3133 <rdar://problem/14421609>
3135 Reviewed by Antti Koivisto.
3137 Test (amended): fast/css/rule-selector-overflow.html
3139 * css/CSSSelectorList.h:
3140 * css/CSSSelectorList.cpp:
3141 (WebCore::CSSSelectorList::CSSSelectorList):
3142 (WebCore::CSSSelectorList::componentCount):
3143 * css/CSSStyleRule.cpp:
3144 (WebCore::CSSStyleRule::setSelectorText):
3146 Renamed CSSSelectorList::length() to componentCount() and made it public.
3150 maximumSelectorCount => maximumSelectorComponentCount
3152 * css/StyleRule.cpp:
3153 (WebCore::StyleRule::splitIntoMultipleRulesWithMaximumSelectorComponentCount):
3155 Make the splits after accumulating 'maximumSelectorComponentCount' components.
3158 * css/StyleSheetContents.cpp:
3159 (WebCore::StyleSheetContents::parserAppendRule):
3161 splitIntoMultipleRulesWithMaximumSelectorCount => splitIntoMultipleRulesWithMaximumSelectorComponentCount
3163 2013-07-17 Rob Buis <rwlbuis@webkit.org>
3165 [Mac] REGRESSION(r152685): svg/custom/xlink-prefix-in-attributes.html failed unexpectedly
3166 https://bugs.webkit.org/show_bug.cgi?id=118701
3168 Reviewed by Ryosuke Niwa.
3170 Use the computed attribute prefix, otherwise href being in xlink namespace but not having any prefix
3171 will cause outputting the xlink namespace in appendNamespace.
3173 Patch fixes svg/custom/xlink-prefix-in-attributes.html.
3175 * editing/MarkupAccumulator.cpp:
3176 (WebCore::MarkupAccumulator::appendAttribute):
3178 2013-07-17 Chris Fleizach <cfleizach@apple.com>
3180 Regression: columnheader/rowheader roles not exposed correctly
3181 https://bugs.webkit.org/show_bug.cgi?id=113628
3183 Reviewed by Tim Horton.
3185 When we determine the row and column headers we look at the ARIA role being returned, but
3186 since TableCell overrides the determineAccessibilityRole method, the ARIA role is never set.
3188 Test: platform/mac/accessibility/aria-columnrowheaders.html
3190 * accessibility/AccessibilityTableCell.cpp:
3191 (WebCore::AccessibilityTableCell::determineAccessibilityRole):
3193 2013-07-17 Christophe Dumez <ch.dumez@sisa.samsung.com>
3195 Get rid of SVGPoint special case from the bindings generator
3196 https://bugs.webkit.org/show_bug.cgi?id=118783
3198 Reviewed by Kentaro Hara.
3200 Get rid of SVGPoint special case from the bindings generator by adding a
3201 new SVGPoint.h header that contains a typedef to FloatPoint.
3203 Also use SVGPoint type in the implementation API for consistency with
3206 No new tests, no behavior change.
3208 * bindings/scripts/CodeGenerator.pm:
3209 (SkipIncludeHeader):
3210 * bindings/scripts/test/JS/JSTestObj.cpp:
3211 (WebCore::jsTestObjMutablePoint):
3212 (WebCore::jsTestObjImmutablePoint):
3213 (WebCore::setJSTestObjMutablePoint):
3214 (WebCore::setJSTestObjImmutablePoint):
3215 (WebCore::jsTestObjPrototypeFunctionMutablePointFunction):
3216 (WebCore::jsTestObjPrototypeFunctionImmutablePointFunction):
3217 * bindings/scripts/test/JS/JSTestTypedefs.cpp:
3218 (WebCore::jsTestTypedefsPrototypeFunctionImmutablePointFunction):
3219 * bindings/scripts/test/ObjC/DOMTestObj.mm:
3220 (-[DOMTestObj mutablePoint]):
3221 (-[DOMTestObj immutablePoint]):
3222 (-[DOMTestObj mutablePointFunction]):
3223 (-[DOMTestObj immutablePointFunction]):
3224 * bindings/scripts/test/ObjC/DOMTestTypedefs.mm:
3225 (-[DOMTestTypedefs immutablePointFunction]):
3226 * rendering/svg/RenderSVGRoot.cpp:
3227 (WebCore::RenderSVGRoot::buildLocalToBorderBoxTransform):
3228 * rendering/svg/SVGTextQuery.cpp:
3229 (WebCore::SVGTextQuery::startPositionOfCharacter):
3230 (WebCore::SVGTextQuery::endPositionOfCharacter):
3231 (WebCore::SVGTextQuery::characterNumberAtPosition):
3232 * rendering/svg/SVGTextQuery.h:
3233 * svg/SVGPathElement.cpp:
3234 (WebCore::SVGPathElement::getPointAtLength):
3235 * svg/SVGPathElement.h:
3236 * svg/SVGPathTraversalStateBuilder.cpp:
3237 (WebCore::SVGPathTraversalStateBuilder::currentPoint):
3238 * svg/SVGPathTraversalStateBuilder.h:
3239 * svg/SVGPathUtilities.cpp:
3240 (WebCore::getPointAtLengthOfSVGPathByteStream):
3241 * svg/SVGPathUtilities.h:
3242 * svg/SVGPoint.h: Added.
3243 * svg/SVGPointList.cpp:
3244 (WebCore::SVGPointList::valueAsString):
3245 * svg/SVGPointList.h:
3246 * svg/SVGSVGElement.cpp:
3247 (WebCore::SVGSVGElement::createSVGPoint):
3248 * svg/SVGSVGElement.h:
3249 * svg/SVGTextContentElement.cpp:
3250 (WebCore::SVGTextContentElement::getStartPositionOfChar):
3251 (WebCore::SVGTextContentElement::getEndPositionOfChar):
3252 (WebCore::SVGTextContentElement::getCharNumAtPosition):
3253 * svg/SVGTextContentElement.h:
3254 * svg/SVGZoomEvent.cpp:
3255 (WebCore::SVGZoomEvent::previousTranslate):
3256 (WebCore::SVGZoomEvent::newTranslate):
3257 * svg/SVGZoomEvent.h:
3259 2013-07-17 Carlos Garcia Campos <cgarcia@igalia.com>
3261 [GStreamer] webkitwebsrc: use SubResourceLoader
3262 https://bugs.webkit.org/show_bug.cgi?id=73743
3264 Reviewed by Philippe Normand.
3266 * GNUmakefile.list.am: Add new files to compilation.
3267 * PlatformEfl.cmake: Ditto.
3268 * PlatformGTK.cmake: Ditto.
3269 * loader/SubresourceLoader.h: Add getOrCreateReadBuffer() when
3271 * loader/cache/CachedRawResource.h:
3272 * loader/cache/CachedRawResourceClient.h:
3273 (WebCore::CachedRawResourceClient::getOrCreateReadBuffer): Added
3274 to allow the client to allocate the read buffer.
3275 * loader/cache/CachedResource.h:
3276 (WebCore::CachedResource::getOrCreateReadBuffer):
3277 * loader/soup/CachedRawResourceSoup.cpp: Added.
3278 (WebCore::CachedRawResource::getOrCreateReadBuffer): Iterate the
3279 clients until one returns a valid read buffer or return NULL to
3280 fallback to the default read buffer.
3281 * loader/soup/SubresourceLoaderSoup.cpp: Added.
3282 (WebCore::SubresourceLoader::getOrCreateReadBuffer): Call
3283 CachedResource::getOrCreateReadBuffer().
3284 * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
3285 (StreamingClient): Make this a CachedRawResourceClient.
3286 (_WebKitWebSrcPrivate): Remove frame and resourceHandle and add a
3287 cached resource handle.
3288 (webKitWebSrcDispose): Clear the player pointer.
3289 (webKitWebSrcStop): Remove the client from the cached resource.
3290 (webKitWebSrcStart): Use CachedResourceLoader to schedule a
3291 CachedRawResource load for the media without buffering the data.
3292 (webKitWebSrcNeedDataMainCb): Call CachedResource::setDefersLoading.
3293 (webKitWebSrcEnoughDataMainCb): Ditto.
3294 (webKitWebSrcSetMediaPlayer): Simply update the player pointer.
3295 (StreamingClient::responseReceived): Update to the
3296 CachedRawResourceClient API.
3297 (StreamingClient::dataReceived): Ditto.
3298 (StreamingClient::getOrCreateReadBuffer): Ditto.
3299 (StreamingClient::notifyFinished): Ditto.
3301 2013-07-17 Kwang Yul Seo <skyul@company100.net>
3303 Remove unused member variable m_domURL from WorkerGlobalScope
3304 https://bugs.webkit.org/show_bug.cgi?id=118784
3306 Reviewed by Christophe Dumez.
3308 WorkerContext::webkitURL() was removed in r107082, and this was the
3309 only place where the member variable |m_domURL| in WorkerContext was
3310 mutated. This variable is no longer needed and so it should be removed.
3314 * workers/WorkerGlobalScope.h:
3316 2013-07-17 Mihai Maerean <mmaerean@adobe.com>
3318 ASSERTION FAILED: layoutState->m_renderer == this in WebCore::RenderBlock::offsetFromLogicalTopOfFirstPage
3319 https://bugs.webkit.org/show_bug.cgi?id=118587
3321 Reviewed by David Hyatt.
3323 The fix consists in not calling containingBlockLogicalHeightForPositioned for flow threads (in
3324 RenderBox::availableLogicalHeightUsing) as it gets to handle the RenderView as it would have been flowed into
3327 Test: fast/regions/crash-div-outside-body-vertical-rl.html
3329 * rendering/RenderBox.cpp:
3330 (WebCore::RenderBox::availableLogicalHeightUsing):
3332 2013-07-17 Kangil Han <kangil.han@samsung.com>
3334 Use toHTMLMediaElement
3335 https://bugs.webkit.org/show_bug.cgi?id=118727
3337 Reviewed by Ryosuke Niwa.
3339 To avoid direct use of static_cast, this patch uses toHTMLMediaElement for code cleanup.
3341 * bindings/js/JSHTMLMediaElementCustom.cpp:
3342 (WebCore::JSHTMLMediaElement::setController):
3343 * html/HTMLMediaElement.h:
3344 (WebCore::toHTMLMediaElement):
3345 * html/HTMLSourceElement.cpp:
3346 (WebCore::HTMLSourceElement::insertedInto):
3347 (WebCore::HTMLSourceElement::removedFrom):
3348 * html/HTMLTrackElement.cpp:
3349 (WebCore::HTMLTrackElement::removedFrom):
3350 (WebCore::HTMLTrackElement::mediaElement):
3351 * html/shadow/MediaControlElementTypes.cpp:
3352 (WebCore::toParentMediaElement):
3353 * loader/SubframeLoader.cpp:
3354 (WebCore::SubframeLoader::loadMediaPlayerProxyPlugin):
3355 * page/FrameView.cpp:
3356 (WebCore::FrameView::updateWidget):
3357 * platform/efl/RenderThemeEfl.cpp:
3358 (WebCore::RenderThemeEfl::paintMediaFullscreenButton):
3359 (WebCore::RenderThemeEfl::paintMediaMuteButton):
3360 (WebCore::RenderThemeEfl::paintMediaToggleClosedCaptionsButton):
3361 * platform/graphics/wince/MediaPlayerProxy.cpp:
3362 (WebCore::WebMediaPlayerProxy::initEngine):
3363 (WebCore::WebMediaPlayerProxy::element):
3364 * platform/gtk/RenderThemeGtk.cpp:
3365 (WebCore::getMediaElementFromRenderObject):
3366 * rendering/HitTestResult.cpp:
3367 (WebCore::HitTestResult::mediaElement):
3368 * rendering/RenderLayerBacking.cpp:
3369 (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
3370 * rendering/RenderLayerCompositor.cpp:
3371 (WebCore::RenderLayerCompositor::requiresCompositingForVideo):
3372 * rendering/RenderMedia.cpp:
3373 (WebCore::RenderMedia::mediaElement):
3374 * rendering/RenderThemeMac.mm:
3375 (WebCore::RenderThemeMac::paintMediaSliderTrack):
3376 * rendering/RenderThemeWinCE.cpp:
3377 (WebCore::mediaElementParent):
3378 * testing/Internals.cpp:
3379 (WebCore::Internals::simulateAudioInterruption):
3381 2013-07-16 Ryuan Choi <ryuan.choi@samsung.com>
3383 Remove Platform(EFL) guard from Widget::frameRectsChanged
3384 https://bugs.webkit.org/show_bug.cgi?id=118782
3386 Reviewed by Christophe Dumez.
3388 Since r58487, Widget::frameRectsChanged was moved to cpp and guarded.
3389 But we can move back to header because WebKit/Efl refactored related code in r145710.
3391 No new tests, refactoring.
3393 * platform/Widget.cpp: Removed platform guard and move frameRectsChangd() back to header.
3394 * platform/Widget.h:
3395 (WebCore::Widget::frameRectsChanged):
3396 * platform/efl/WidgetEfl.cpp:
3398 2013-07-16 Alex Christensen <achristensen@apple.com>
3400 Update ANGLE to r2426.
3401 https://bugs.webkit.org/show_bug.cgi?id=118550
3403 Reviewed by Dean Jackson.
3405 * CMakeLists.txt: Renamed DetectRecursion to DetectCallDepth and added builtin_symbol_table.
3407 2013-07-16 Tim Horton <timothy_horton@apple.com>
3409 Many crashes loading Java applets after r152701
3410 https://bugs.webkit.org/show_bug.cgi?id=118760
3411 <rdar://problem/14462836>
3413 Reviewed by Dean Jackson.
3415 * html/HTMLAppletElement.cpp:
3416 (WebCore::HTMLAppletElement::updateWidget):
3417 Re-acquire the renderer after calling createJavaAppletWidget,
3418 because it can cause reattach, leaving our renderer pointer stale.
3420 * loader/SubframeLoader.cpp:
3421 (WebCore::SubframeLoader::createJavaAppletWidget):
3422 Null-check renderer, as element->renderEmbeddedObject() can very clearly
3423 return null in some cases.
3425 2013-07-16 Pratik Solanki <psolanki@apple.com>
3427 Missing break in WebGLRenderingContext::validateCompressedTexFuncData()
3428 https://bugs.webkit.org/show_bug.cgi?id=118742
3430 Reviewed by Ryosuke Niwa.
3432 * html/canvas/WebGLRenderingContext.cpp:
3433 (WebCore::WebGLRenderingContext::validateCompressedTexFuncData):
3435 2013-07-16 Andreas Kling <akling@apple.com>
3437 Atomicize HTMLAnchorElement.hash before passing it to JS.
3438 <http://webkit.org/b/118748>
3439 <rdar://problem/14459780>
3441 Reviewed by Sam Weinig.
3443 Instead of generating a unique string from '#' + the URL hash every time HTMLAnchorElement.hash
3444 is queried, turn it into an AtomicString. This prevents massive memory usage in scripts that
3447 Reduces memory consumption by 4.65 MB when viewing the full HTML5 spec at <http://whatwg.org/c>
3449 * html/HTMLAnchorElement.cpp:
3450 (WebCore::HTMLAnchorElement::hash):
3452 2013-07-16 Brendan Long <b.long@cablelabs.com>
3454 Make WebVTTParser return cue data instead of cue DOM objects
3455 https://bugs.webkit.org/show_bug.cgi?id=118687
3457 Reviewed by Eric Carlson.
3459 No new tests because this doesn't change functionality.
3461 * html/track/InbandTextTrack.cpp:
3462 Make TextTrackCueMap handle WebVTTCues instead of just generic cues.
3463 m_dataToCueMap and m_cueToDataMap were renamed m_genericDataToCueMap
3464 and m_genericCueToDataMap. The cue maps were turned into pointers so we
3465 only allocate the ones we need.
3466 (WebCore::TextTrackCueMap::TextTrackCueMap): Initialize maps to 0.
3467 (WebCore::TextTrackCueMap::~TextTrackCueMap): Delete allocated maps.
3468 (WebCore::TextTrackCueMap::add): Changed to allocate cue maps as needed, and added WebVTT version.
3469 (WebCore::TextTrackCueMap::find): Checked to check if cue maps are allocated, and added WebVTT version.
3470 (WebCore::TextTrackCueMap::findGenericData): Changed to accept TextTrackCue instead of TextTrackCueGeneric.
3471 (WebCore::TextTrackCueMap::findWebVTTData): Same as findGenericData, except for WebVTTCueData.
3472 (WebCore::TextTrackCueMap::remove): Accept TextTrackCue instead of TextTrackCueGeneric, and look in both maps.
3473 (WebCore::InbandTextTrack::addWebVTTCue): Added, based on addGenericCue.
3474 (WebCore::InbandTextTrack::removeWebVTTCue): Added, almost identical to removeGenericCue.
3475 (WebCore::InbandTextTrack::removeCue): m_cueMap.remove() takes a TextTrackCue now so it can remove both types of cue.
3476 (WebCore::InbandTextTrack::willRemoveTextTrackPrivate): Use ASSERT_UNUSED instead of UNUSED_PARAM + ASSERT.
3477 * html/track/InbandTextTrack.h: Add new functions above, change maps to pointers and add maps for holding WebVTT cues.
3478 * html/track/WebVTTParser.cpp:
3479 (WebCore::WebVTTParser::getNewCues): Return WebVTTCueData instead of TextTrackCue.
3480 (WebCore::WebVTTParser::createNewCue): Create WebVTTCueData instead of TextTrackCue.
3481 * html/track/WebVTTParser.h: Add WebVTTCueData class, based on GenericCueData.
3482 The following functions are just constructors, destructors, getters, or setters.
3483 (WebCore::WebVTTCueData::create):
3484 (WebCore::WebVTTCueData::~WebVTTCueData):
3485 (WebCore::WebVTTCueData::startTime):
3486 (WebCore::WebVTTCueData::setStartTime):
3487 (WebCore::WebVTTCueData::endTime):
3488 (WebCore::WebVTTCueData::setEndTime):
3489 (WebCore::WebVTTCueData::id):
3490 (WebCore::WebVTTCueData::setId):
3491 (WebCore::WebVTTCueData::content):
3492 (WebCore::WebVTTCueData::setContent):
3493 (WebCore::WebVTTCueData::settings):
3494 (WebCore::WebVTTCueData::setSettings):
3495 (WebCore::WebVTTCueData::WebVTTCueData):
3496 * loader/TextTrackLoader.cpp:
3497 (WebCore::TextTrackLoader::getNewCues): Convert WebVTTCueData to TextTrackCue when we get them.
3498 * platform/graphics/InbandTextTrackPrivateClient.h: Add addWebVTTCue and removeWebVTTCue functions to the interface.
3500 2013-07-16 Tim Horton <timothy_horton@apple.com>
3502 Use the correct cursor value for the unavailable plugin indicator
3503 https://bugs.webkit.org/show_bug.cgi?id=118747
3504 <rdar://problem/14456498>
3506 Reviewed by Dean Jackson.
3508 CSS says "pointer" is the hand cursor, not "hand".
3510 * css/unavailablePlugIns.css:
3511 (object::-webkit-unavailable-plugin-content > div):
3512 (object::-webkit-unavailable-plugin-content > div > span):
3514 2013-07-16 Simon Fraser <simon.fraser@apple.com>
3516 Protect against the LayerFlushController being deleted inside its flushLayers() callback
3517 https://bugs.webkit.org/show_bug.cgi?id=118741
3519 Reviewed by Tim Horton.
3521 It's possible (especially on iOS) for the LayerFlushController to be destroyed
3522 inside its callback, via -[WebView _close]. Protect against this by making
3523 it refcounted, and holding a ref across the callback.
3525 Due to the odd relationship in which LayerFlushController owns its LayerFlushScheduler
3526 by value, we achieve this by allowing subclasses of LayerFlushScheduler
3527 to override runLoopObserverCallback(). WebViewLayerFlushScheduler uses the
3528 override to protect the owner of the LayerFlushScheduler, which is the
3529 LayerFlushController, when the callback is firing.
3532 * platform/graphics/ca/LayerFlushScheduler.h: Make runLoopObserverCallback() and the dtor virtual.
3534 2013-07-16 Christophe Dumez <ch.dumez@sisa.samsung.com>
3536 Get rid of multiple inheritance support from the bindings generators
3537 https://bugs.webkit.org/show_bug.cgi?id=118353
3539 Reviewed by Kentaro Hara.
3541 Remove multiple inheritance support from the bindings generators (except
3542 the ObjC one which still needs it for now). Multiple inheritance is no
3543 longer supported in Web IDL and it makes the scripts more complex than
3546 Multiple inheritance support is no longer needed now that our SVG
3547 interfaces have been updated to use the simpler SVG2 inheritance model
3548 and use Web IDL 'implements' statements.
3550 Note that the IDL parser still support multiple inheritance for now in
3551 order not to break the ObjC bindings generator.
3553 No new tests, no behavior change.
3555 * bindings/scripts/CodeGenerator.pm:
3556 * bindings/scripts/CodeGeneratorCPP.pm:
3557 (GetParentImplClassName):
3559 (GenerateImplementation):
3560 * bindings/scripts/CodeGeneratorGObject.pm:
3561 (GetParentClassName):
3562 (GetParentImplClassName):
3563 (GetParentGObjType):
3564 * bindings/scripts/CodeGeneratorJS.pm:
3565 (GetParentClassName):
3567 (GenerateImplementation):
3568 (GenerateConstructorDefinition):
3569 * bindings/scripts/CodeGeneratorObjC.pm:
3570 (AddMethodsConstantsAndAttributesFromParentInterfaces):
3571 (GenerateImplementation):
3572 * bindings/scripts/IDLParser.pm:
3577 2013-07-16 Eric Carlson <eric.carlson@apple.com>
3579 HTMLMediaElement should not add cues for disabled text tracks
3580 https://bugs.webkit.org/show_bug.cgi?id=118682
3582 Reviewed by Ryosuke Niwa.
3584 Merge https://src.chromium.org/viewvc/blink?view=rev&revision=153810
3586 Tests: media/track/track-disabled-addcue.html
3587 media/track/track-disabled.html
3589 * html/HTMLMediaElement.cpp:
3590 (WebCore::HTMLMediaElement::textTrackAddCues): Do nothing if the track is disabled.
3591 (WebCore::HTMLMediaElement::textTrackAddCue): Ditto.
3593 2013-07-16 Krzysztof Czech <k.czech@ymail.com>
3595 [ATK] Adds support for aria-haspopup property.
3596 https://bugs.webkit.org/show_bug.cgi?id=117834
3598 Reviewed by Christophe Dumez.
3600 Adds support for aria-haspopup property.
3602 Tests: accessibility/element-haspopup.html
3603 accessibility/popup-button-title.html
3605 * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
3606 (webkitAccessibleGetAttributes):
3608 2013-07-16 VÃctor Manuel Jáquez Leal <vjaquez@igalia.com>
3610 [texmap][GStreamer] upload onto the texture only the buffer to be painted
3611 https://bugs.webkit.org/show_bug.cgi?id=118471
3613 Reviewed by Philippe Normand.
3615 Right now all the buffers are uploaded onto the texture. With this
3616 logic pose situations where buffers that will not be painted are
3619 This patch uploads only the buffers that are going to be shown.
3621 With this approach, the buffers may arrive before a GraphicsLayer is
3622 set, so we should be more cautious with GraphicsLayerTextureMapper's
3625 No new tests, covered by existing tests.
3627 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
3628 (WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
3629 (WebCore::MediaPlayerPrivateGStreamerBase::updateTexture):
3630 (WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):
3631 (WebCore::MediaPlayerPrivateGStreamerBase::paint):
3632 (WebCore::MediaPlayerPrivateGStreamerBase::paintToTextureMapper):
3633 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
3634 * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
3635 (WebCore::GraphicsLayerTextureMapper::~GraphicsLayerTextureMapper):
3636 (WebCore::GraphicsLayerTextureMapper::setContentsToMedia):
3638 2013-07-16 VÃctor Manuel Jáquez Leal <vjaquez@igalia.com>
3640 [GStreamer] verify and log the received caps in the video sink
3641 https://bugs.webkit.org/show_bug.cgi?id=118559
3643 Reviewed by Philippe Normand.
3645 Verify the correctness of the received caps in the video sink, and
3646 also log them for debugging purposes.
3648 No new tests, no behavior change.
3650 * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
3651 (webkitVideoSinkSetCaps):
3653 2013-07-16 Kangil Han <kangil.han@samsung.com>
3655 Use toHTMLSelectElement and dismiss isHTMLSelectElement
3656 https://bugs.webkit.org/show_bug.cgi?id=118714
3658 Reviewed by Ryosuke Niwa.
3660 To avoid direct use of static_cast, this patch introduces toHTMLIFrameElement for code cleanup.
3661 Additionally, this patch removes isHTMLSelectElement because not all element subclasses can be checked by a combination of tag names.
3663 * html/HTMLSelectElement.h:
3664 (WebCore::toHTMLSelectElement):
3665 * testing/Internals.cpp:
3666 (WebCore::Internals::isSelectPopupVisible):
3668 2013-07-15 Yuta Kitamura <yutak@chromium.org>
3670 Fix a crash in Range::processContents().
3672 NULL ptr in WebCore::Range::processAncestorsAndTheirSiblings
3673 https://bugs.webkit.org/show_bug.cgi?id=77614
3675 Reviewed by Ryosuke Niwa.
3677 This change is ported from Blink revision 153483:
3678 https://src.chromium.org/viewvc/blink?revision=153483&view=revision
3680 This crash can be initiated by calling Range.detach() while deleteContents()
3681 is processing the same range. Range::processContents() should save the state
3682 of the range since mutation events can change the state of the range.
3684 Test: fast/dom/Range/detach-range-during-deletecontents.html
3687 (WebCore::Range::processContents):
3688 * dom/RangeBoundaryPoint.h:
3689 (WebCore::RangeBoundaryPoint::RangeBoundaryPoint):
3691 2013-07-15 Ryosuke Niwa <rniwa@webkit.org>
3693 Input element that becomes visible during a simulated click event from an associated label element doesn't get focused
3694 https://bugs.webkit.org/show_bug.cgi?id=118700
3696 Reviewed by Kent Tamura.
3698 Inspired by https://chromium.googlesource.com/chromium/blink/+/6435f70d53403b250e261a914f30d55142f81476.
3700 The bug was caused by isMouseFocusable() check in HTMLLabelElement::defaultEventHandler not updating the layout even
3701 though the call to dispatchSimulatedClick may have dirtied the render tree.
3703 Explicitly update the layout so that we have up-to-date render tree.
3705 Test: fast/forms/label/label-becomes-visible-while-clicking-on-label.html
3707 * html/HTMLLabelElement.cpp:
3708 (WebCore::HTMLLabelElement::defaultEventHandler):
3710 2013-07-15 Kangil Han <kangil.han@samsung.com>
3712 Introduce toHTMLIFrameElement
3713 https://bugs.webkit.org/show_bug.cgi?id=118672
3715 Reviewed by Ryosuke Niwa.
3717 To avoid direct use of static_cast, this patch introduces toHTMLIFrameElement for code cleanup.
3719 * bindings/js/JSHTMLDocumentCustom.cpp:
3720 (WebCore::JSHTMLDocument::nameGetter):
3721 * css/StyleResolver.cpp:
3722 (WebCore::StyleResolver::adjustRenderStyle):
3724 (WebCore::Document::seamlessParentIFrame):
3725 * html/HTMLIFrameElement.h:
3726 (WebCore::toHTMLIFrameElement):
3727 * rendering/RenderEmbeddedObject.cpp:
3728 (WebCore::RenderEmbeddedObject::viewCleared):
3729 * rendering/RenderIFrame.cpp:
3730 (WebCore::RenderIFrame::isSeamless):
3731 (WebCore::RenderIFrame::flattenFrame):
3733 2013-07-15 Chris Rogers <crogers@google.com>
3735 Add support for WaveShaperNode.oversample
3736 https://bugs.webkit.org/show_bug.cgi?id=117435
3738 Reviewed by Kenneth Russell.
3741 https://codereview.chromium.org/15619003/
3743 Please see specification for details:
3744 https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#WaveShaperNode
3746 .oversample specifies what type of oversampling (if any) should be used when applying the shaping curve.
3747 The default value is "none", meaning the curve will be applied directly to the input samples.
3748 A value of "2x" or "4x" can improve the quality of the processing by avoiding some aliasing,
3749 with the "4x" value yielding the highest quality.
3751 Tests: webaudio/waveshaper-oversample-2x.html
3752 webaudio/waveshaper-oversample-4x.html
3755 * GNUmakefile.list.am:
3756 * Modules/webaudio/WaveShaperDSPKernel.cpp:
3757 (WebCore::WaveShaperDSPKernel::WaveShaperDSPKernel):
3758 (WebCore::WaveShaperDSPKernel::lazyInitializeOversampling):
3759 (WebCore::WaveShaperDSPKernel::process):
3760 (WebCore::WaveShaperDSPKernel::processCurve):
3761 (WebCore::WaveShaperDSPKernel::processCurve2x):
3762 (WebCore::WaveShaperDSPKernel::processCurve4x):
3763 (WebCore::WaveShaperDSPKernel::reset):
3764 (WebCore::WaveShaperDSPKernel::latencyTime):
3765 * Modules/webaudio/WaveShaperDSPKernel.h:
3766 * Modules/webaudio/WaveShaperNode.cpp:
3767 (WebCore::WaveShaperNode::WaveShaperNode):
3768 (WebCore::WaveShaperNode::setOversample):
3769 (WebCore::WaveShaperNode::oversample):
3770 * Modules/webaudio/WaveShaperNode.h:
3771 (WebCore::WaveShaperNode::latency):
3772 * Modules/webaudio/WaveShaperNode.idl:
3773 * Modules/webaudio/WaveShaperProcessor.cpp:
3774 (WebCore::WaveShaperProcessor::WaveShaperProcessor):
3775 (WebCore::WaveShaperProcessor::setOversample):
3776 * Modules/webaudio/WaveShaperProcessor.h:
3777 (WebCore::WaveShaperProcessor::oversample):
3778 * WebCore.xcodeproj/project.pbxproj:
3779 * platform/audio/DownSampler.cpp: Added.
3780 (WebCore::DownSampler::DownSampler):
3781 (WebCore::DownSampler::initializeKernel):
3782 (WebCore::DownSampler::process):
3783 (WebCore::DownSampler::reset):
3784 (WebCore::DownSampler::latencyFrames):
3785 * platform/audio/DownSampler.h: Added.
3786 * platform/audio/UpSampler.cpp: Added.
3787 (WebCore::UpSampler::UpSampler):
3788 (WebCore::UpSampler::initializeKernel):
3789 (WebCore::UpSampler::process):
3790 (WebCore::UpSampler::reset):
3791 (WebCore::UpSampler::latencyFrames):
3792 * platform/audio/UpSampler.h: Added.
3794 2013-07-15 Tim Horton <timothy_horton@apple.com>
3796 Update blocked/missing plug-in UI
3797 https://bugs.webkit.org/show_bug.cgi?id=118347
3798 <rdar://problem/14209318>
3800 Reviewed by Sam Weinig.
3801 Patch by Anders Carlsson, Antoine Quint, Sam Weinig, and myself.
3804 * DerivedSources.make:
3805 * DerivedSources.pri:
3808 * WebCore.vcxproj/WebCore.vcxproj:
3809 * WebCore.vcxproj/WebCore.vcxproj.filters:
3810 * WebCore.xcodeproj/project.pbxproj:
3811 * css/CSSDefaultStyleSheets.cpp:
3812 * css/unavailablePlugIns.css: Added.
3813 Add new Source/WebCore/css/unavailablePlugIns.css stylesheet.
3815 * dom/EventListener.h:
3816 New event listener type to support the creation of an event listener
3817 for the label and icon for missing / blocked plug-in UI.
3819 * html/HTMLPlugInElement.cpp:
3820 (WebCore::HTMLPlugInElement::defaultEventHandler):
3821 Remove explicit event handling since we're now using a DOM event handler
3822 on the label and icon in the shadow root.
3824 * html/HTMLPlugInImageElement.cpp:
3825 (WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot):
3826 Don't populate the shadow root with plugin snapshotting elements
3827 if we're not planning on showing a snapshot, because this means that
3828 the shadow root was created for the unavailable plugin indicator instead.
3830 * page/ChromeClient.h:
3831 (WebCore::ChromeClient::shouldUnavailablePluginMessageIncludeButton):
3832 * rendering/RenderEmbeddedObject.cpp:
3833 (WebCore::RenderEmbeddedObject::RenderEmbeddedObject):
3834 (WebCore::shouldUnavailablePluginMessageIncludeButton):
3835 Rename from shouldUnavailablePluginMessageBeButton to
3836 shouldUnavailablePluginMessageIncludeButton for accuracy.
3838 (WebCore::RenderEmbeddedObject::setPluginUnavailabilityReasonDescription):
3839 Set custom text to be displayed in the unavailability indicator.
3841 (WebCore::RenderEmbeddedObject::setPluginUnavailabilityReason):
3842 (WebCore::RenderEmbeddedObject::handleUnavailablePluginButtonClickEvent):
3843 (WebCore::RenderEmbeddedObject::willBeDestroyed):
3844 (WebCore::RenderEmbeddedObject::isReplacementObscured):
3845 (WebCore::RenderEmbeddedObjectEventListener::handleEvent):
3846 (WebCore::RenderEmbeddedObjectEventListener::operator==):
3847 Remove the old code used to render the missing / blocked plug-in UI in C++ in favor
3848 of populating a shadow root in setPluginUnavailabilityReason(). We add a DOM event
3849 listener in the shadow root to eventually call into unavailablePluginButtonClicked()
3850 on the ChromeClient.
3852 (WebCore::RenderEmbeddedObject::paint):
3853 (WebCore::RenderEmbeddedObject::layout):
3854 Paint and lay out UA shadow root children.
3856 (WebCore::RenderEmbeddedObject::canHaveChildren):
3857 canHaveChildren can use the existence of a UA shadow root to decide
3858 whether a RenderEmbeddedObject can have children.
3860 * rendering/RenderEmbeddedObject.h:
3861 (WebCore::RenderEmbeddedObjectEventListener::create):
3862 (WebCore::RenderEmbeddedObjectEventListener::cast):
3863 (WebCore::RenderEmbeddedObjectEventListener::RenderEmbeddedObjectEventListener):
3864 Create the new event listener class necessary to handle events in the shadow root.
3866 (WebCore::RenderEmbeddedObject::pluginUnavailabilityReasonDescription): Added.
3868 * rendering/RenderWidget.h:
3869 Promote willBeDestroyed() to be public so we may override it in the RenderEmbeddedObject subclass.
3871 2013-07-15 Andreas Kling <akling@apple.com>
3873 Pack WebCore::Font slightly better.
3874 <http://webkit.org/b/118681>
3875 <rdar://problem/14446014>
3877 Reviewed by Sam Weinig.
3879 Knock 8 bytes off of Font by packing the members better. Reduces memory consumption by 429 kB when
3880 viewing the full HTML5 spec at <http://whatwg.org/c>
3882 * platform/graphics/Font.h:
3883 (WebCore::Font::typesettingFeatures):
3885 2013-07-15 Rob Buis <rwlbuis@webkit.org>
3887 XMLSerializer doesn't include namespaces on nodes in HTML documents
3888 https://bugs.webkit.org/show_bug.cgi?id=16496
3890 Reviewed by Ryosuke Niwa.
3892 Introduce a xml fragment serialization mode as indicated by
3893 http://html5.org/specs/dom-parsing.html#xmlserializer (commit 00b84d2). In this mode
3894 the XML fragment serialization algorithm is respected, the changes in this patch do the following:
3896 - elements are self-closing if otherwise this would lead to invalid xml syntax.
3897 - the resulting xml is XML namespace-well-formed (http://www.w3.org/TR/xml-names11/#Conformance).
3898 This is achieved by always, when in xml fragment serialization mode, attempting to write out the element/attribute namespace,
3899 preventing using the XML namespace as a default namespace and special casing the use of element's in XML namespace by using the xml prefix.
3901 The chosen approach matches FireFox 25 behavior.
3903 Test: fast/dom/dom-serialize-namespace.html
3905 * WebCore.order: Adapt to changed createMarkup signature.
3906 * editing/MarkupAccumulator.cpp:
3907 (WebCore::MarkupAccumulator::MarkupAccumulator):
3908 (WebCore::MarkupAccumulator::serializeNodesWithNamespaces): makes sure xml namespace/prefix is known so it is never used in namespace declarations.
3909 (WebCore::MarkupAccumulator::appendNamespace): Avoid adding namespace declarations that do not differ from current default namespace.
3910 (WebCore::MarkupAccumulator::appendOpenTag): Print xml prefix if the element's namespace is XML to avoid conflicts.
3911 (WebCore::MarkupAccumulator::appendAttribute):
3912 (WebCore::MarkupAccumulator::shouldAddNamespaceAttribute): Also take into account xmlns attributes with no namespace.
3913 (WebCore::MarkupAccumulator::shouldSelfClose): Force self-closing to create well-formed XML elements.
3914 * editing/MarkupAccumulator.h: Use EFragmentSerialization.
3915 (WebCore::MarkupAccumulator::inXMLFragmentSerialization):
3916 * editing/markup.cpp:
3917 (WebCore::createMarkup):
3918 * editing/markup.h: Add EFragmentSerialization enum.
3919 * xml/XMLSerializer.cpp:
3920 (WebCore::XMLSerializer::serializeToString):
3922 2013-07-15 Ryosuke Niwa <rniwa@webkit.org>
3924 MediaFragmentURIParser::parseFragments shouldn't upconvert 8-bit string
3925 https://bugs.webkit.org/show_bug.cgi?id=118692
3927 Reviewed by Michael Saboff.
3929 Merge https://chromium.googlesource.com/chromium/blink/+/2aa17cc56a807f7e05d386d6eb66cda25e6b0542.
3931 * html/MediaFragmentURIParser.cpp:
3932 (WebCore::MediaFragmentURIParser::parseFragments):
3934 2013-07-15 Kwang Yul Seo <skyul@company100.net>
3936 NetworkStorageSession::createDefaultSession is only implemented by Soup
3937 https://bugs.webkit.org/show_bug.cgi?id=118679
3939 Reviewed by Alexey Proskuryakov.
3941 Remove NetworkStorageSession::createDefaultSession() because
3942 NetworkStorageSession::defaultStorageSession() returns the default
3945 No new tests, no behavior change.
3947 * platform/network/NetworkStorageSession.h:
3948 * platform/network/soup/NetworkStorageSessionSoup.cpp:
3950 2013-07-15 Ryosuke Niwa <rniwa@webkit.org>
3952 compositionstart event should contain the text to be replaced
3953 https://bugs.webkit.org/show_bug.cgi?id=118684
3955 Reviewed by Alexey Proskuryakov.
3957 Merge https://chromium.googlesource.com/chromium/blink/+/9e04f728a95ad7d4783b1d31c3cdc1412dd6cc4d.
3959 DOM3 level 3 specifies compositionstart event's data to be the text to be replaced.
3960 http://www.w3.org/TR/DOM-Level-3-Events/#event-type-compositionstart
3962 According to the author of the Blink change, IE10 on Windows and Firefox22 on Linux confirms
3963 to the specified behavior.
3965 Test: fast/events/ime-composition-events-001.html
3967 * editing/Editor.cpp:
3968 (WebCore::Editor::setComposition):
3970 2013-07-15 Ryosuke Niwa <rniwa@webkit.org>
3972 xmlDocPtrForString shouldn't upconvert 8-bit string
3973 https://bugs.webkit.org/show_bug.cgi?id=118693
3975 Reviewed by Michael Saboff.
3977 Merge https://chromium.googlesource.com/chromium/blink/+/5d9b240db74591c3689415c7b7c5180fadb379e9
3979 Prior to this changeset, we were upconverting the entire XML document.
3980 Let xmllib2 parse a document as iso-8859-1 when it's a 8-bit string.
3982 * xml/parser/XMLDocumentParserLibxml2.cpp:
3983 (WebCore::nativeEndianUTF16Encoding):
3984 (WebCore::xmlDocPtrForString):
3986 2013-07-15 Roger Fong <roger_fong@apple.com>
3988 Replace WKCACFTypes include with d3d9 include.
3990 Rubberstamped by Eric Carlson.
3992 * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
3994 2013-07-15 Antoine Quint <graouts@apple.com>
3996 Text with "text-overflow:ellipsis" and an SVG font do not render correctly
3997 https://bugs.webkit.org/show_bug.cgi?id=118669
3999 Reviewed by David Kilzer.
4001 Partial runs may be routed through the complex path in several Font functions. While incomplete,
4002 we can check for a non-NULL run.renderingContext() and exempt runs that have it from being forced
4003 down the complex path. A more thorough fix is already tracked by http://webkit.org/b/100050.
4005 Adding a new testcase which is a copy of svg/text/text-overflow-ellipsis-svgfont.html with kerning
4006 and ligatures turned on explicitly since DRT runs with those off by default and this option is required
4007 to be on for the issue to reproduce.
4009 Fix courtesy of Dan Bernstein.
4011 Test: svg/text/text-overflow-ellipsis-svgfont-kerning-ligatures.html
4013 * platform/graphics/Font.cpp:
4014 (WebCore::Font::drawText):
4015 (WebCore::Font::drawEmphasisMarks):
4016 (WebCore::Font::selectionRectForText):
4018 2013-07-15 peavo@outlook.com <peavo@outlook.com>
4020 [Curl] Download does not replace existing file.
4021 https://bugs.webkit.org/show_bug.cgi?id=118356
4023 Reviewed by Brent Fulgham.
4025 If the download target file already exists, it is not replaced after the download has finished.
4026 At this point, the user would have already approved to replace the file, so it should be replaced.
4028 * platform/network/curl/CurlDownload.cpp:
4029 (CurlDownload::moveFileToDestination): Move file and replace it if it already exists.
4030 If the new file is on a different volume, do a copy/delete operation.
4032 2013-07-15 Luciano Wolf <luciano.wolf@openbossa.org>
4034 [CoordinatedGraphics] Crash at CoordinatedGraphicsScene::updateImageBacking
4035 https://bugs.webkit.org/show_bug.cgi?id=118613
4037 The operations of creating/removing/updating/clearing weren't in the
4038 right sequence. Changing the order solves the issue because when an image is
4039 replaced the old one is deleted before the new one is created, and IDs are
4040 not unique in cairo (they're based on the image pointer).
4042 Reviewed by Noam Rosenthal.
4044 * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
4045 (WebCore::CoordinatedGraphicsScene::syncImageBackings):
4047 2013-07-15 Brian Holt <brian.holt@samsung.com>
4049 [ATK] Leak: Leak in WebKitAccessibleTextGetText
4050 https://bugs.webkit.org/show_bug.cgi?id=118596
4052 Reviewed by Carlos Garcia Campos.