1 2014-08-01 Tim Horton <timothy_horton@apple.com>
5 * bindings/objc/DOM.mm:
6 (-[DOMRange renderedImageForcingBlackText:renderedImageForcingBlackText:]):
7 We use CGImageRef instead of NSImage here on iOS.
9 2014-08-01 Renato Nagy <nagy.renato@stud.u-szeged.hu>
11 ASSERTION FAILED: listNode in WebCore::RenderListItem::updateListMarkerNumbers
12 https://bugs.webkit.org/show_bug.cgi?id=134970
14 Reviewed by Zalan Bujtas.
16 Removed an unnecessary assert, because the null return value of enclosingList() is
17 handled properly after this assert.
19 * rendering/RenderListItem.cpp:
20 (WebCore::RenderListItem::updateListMarkerNumbers):
22 2014-08-01 Gyuyoung Kim <gyuyoung.kim@samsung.com>
24 Replace DEPRECATED_DEFINE_STATIC_LOCAL with NeverDestroyed<T> in NavigatorContentUtils
25 https://bugs.webkit.org/show_bug.cgi?id=135494
27 Reviewed by Andrei Bucur.
29 Use static NeverDestroyed<T> variables instead of the DEPRECATED_DEFINE_STATIC_LOCAL macro.
31 No new tests, no behavior changes.
33 * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
34 (WebCore::customHandlersStateString):
35 (WebCore::NavigatorContentUtils::isProtocolHandlerRegistered):
37 2014-07-31 Benjamin Poulain <bpoulain@apple.com>
39 Remove shadowPseudoId() override from the shadow media controls
40 https://bugs.webkit.org/show_bug.cgi?id=135474
42 Reviewed by Eric Carlson.
46 * html/shadow/MediaControlElementTypes.h:
47 * html/shadow/MediaControlElements.cpp:
48 (WebCore::MediaControlPanelElement::MediaControlPanelElement):
49 (WebCore::MediaControlPanelEnclosureElement::MediaControlPanelEnclosureElement):
50 (WebCore::MediaControlOverlayEnclosureElement::MediaControlOverlayEnclosureElement):
51 (WebCore::MediaControlTimelineContainerElement::MediaControlTimelineContainerElement):
52 (WebCore::MediaControlVolumeSliderContainerElement::MediaControlVolumeSliderContainerElement):
53 (WebCore::MediaControlStatusDisplayElement::MediaControlStatusDisplayElement):
54 (WebCore::MediaControlPanelMuteButtonElement::MediaControlPanelMuteButtonElement):
55 (WebCore::MediaControlVolumeSliderMuteButtonElement::MediaControlVolumeSliderMuteButtonElement):
56 (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement):
57 (WebCore::MediaControlOverlayPlayButtonElement::MediaControlOverlayPlayButtonElement):
58 (WebCore::MediaControlSeekForwardButtonElement::MediaControlSeekForwardButtonElement):
59 (WebCore::MediaControlSeekBackButtonElement::MediaControlSeekBackButtonElement):
60 (WebCore::MediaControlRewindButtonElement::MediaControlRewindButtonElement):
61 (WebCore::MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement):
62 (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
63 (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
64 (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement):
65 (WebCore::MediaControlTimelineElement::MediaControlTimelineElement):
66 (WebCore::MediaControlPanelVolumeSliderElement::MediaControlPanelVolumeSliderElement):
67 (WebCore::MediaControlFullscreenVolumeSliderElement::MediaControlFullscreenVolumeSliderElement):
68 (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement):
69 (WebCore::MediaControlFullscreenVolumeMinButtonElement::MediaControlFullscreenVolumeMinButtonElement):
70 (WebCore::MediaControlFullscreenVolumeMaxButtonElement::MediaControlFullscreenVolumeMaxButtonElement):
71 (WebCore::MediaControlTimeRemainingDisplayElement::MediaControlTimeRemainingDisplayElement):
72 (WebCore::MediaControlCurrentTimeDisplayElement::MediaControlCurrentTimeDisplayElement):
73 (WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement):
74 (WebCore::MediaControlPanelElement::shadowPseudoId): Deleted.
75 (WebCore::MediaControlPanelEnclosureElement::shadowPseudoId): Deleted.
76 (WebCore::MediaControlOverlayEnclosureElement::shadowPseudoId): Deleted.
77 (WebCore::MediaControlTimelineContainerElement::shadowPseudoId): Deleted.
78 (WebCore::MediaControlVolumeSliderContainerElement::shadowPseudoId): Deleted.
79 (WebCore::MediaControlStatusDisplayElement::shadowPseudoId): Deleted.
80 (WebCore::MediaControlPanelMuteButtonElement::shadowPseudoId): Deleted.
81 (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId): Deleted.
82 (WebCore::MediaControlPlayButtonElement::shadowPseudoId): Deleted.
83 (WebCore::MediaControlOverlayPlayButtonElement::shadowPseudoId): Deleted.
84 (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId): Deleted.
85 (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId): Deleted.
86 (WebCore::MediaControlRewindButtonElement::shadowPseudoId): Deleted.
87 (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId): Deleted.
88 (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId): Deleted.
89 (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId): Deleted.
90 (WebCore::MediaControlClosedCaptionsTrackListElement::shadowPseudoId): Deleted.
91 (WebCore::MediaControlTimelineElement::shadowPseudoId): Deleted.
92 (WebCore::MediaControlPanelVolumeSliderElement::shadowPseudoId): Deleted.
93 (WebCore::MediaControlFullscreenVolumeSliderElement::shadowPseudoId): Deleted.
94 (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId): Deleted.
95 (WebCore::MediaControlFullscreenVolumeMinButtonElement::shadowPseudoId): Deleted.
96 (WebCore::MediaControlFullscreenVolumeMaxButtonElement::shadowPseudoId): Deleted.
97 (WebCore::MediaControlTimeRemainingDisplayElement::shadowPseudoId): Deleted.
98 (WebCore::MediaControlCurrentTimeDisplayElement::shadowPseudoId): Deleted.
99 (WebCore::MediaControlTextTrackContainerElement::textTrackContainerElementShadowPseudoId): Deleted.
100 (WebCore::MediaControlTextTrackContainerElement::shadowPseudoId): Deleted.
101 * html/shadow/MediaControlElements.h:
102 * html/shadow/MediaControls.cpp:
103 (WebCore::MediaControls::MediaControls):
104 (WebCore::MediaControls::shadowPseudoId): Deleted.
105 * html/shadow/MediaControls.h:
107 2014-07-31 Timothy Horton <timothy_horton@apple.com>
109 Build fix for platforms where we should have automaticallyAdjustsContentInsets but it isn't public yet
111 * platform/mac/ScrollViewMac.mm:
113 2014-07-31 Carlos Alberto Lopez Perez <clopez@igalia.com>
115 [EFL] Add support for building with Geoclue2.
116 https://bugs.webkit.org/show_bug.cgi?id=135455
118 Reviewed by Gyuyoung Kim.
120 No new tests required, no new functionality.
122 * PlatformEfl.cmake: Generate derived sources for Geoclue2Interface
123 and include gio-unix path.
125 2014-07-31 Zalan Bujtas <zalan@apple.com>
127 Subpixel rendering: Region painting needs to take subpixel accumulation into account.
128 https://bugs.webkit.org/show_bug.cgi?id=135469
130 Similar to non-region painting, when the context is translated, we need to propagate
131 the subpixel difference so that renderers get snapped to the same position as if they
132 were not part of a region.
134 Reviewed by Simon Fraser.
136 Covered by existing tests/not testable (webkit.org/b/135470)
138 * html/shadow/MediaControlElements.cpp:
139 (WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):
140 * page/FrameView.cpp:
141 (WebCore::FrameView::paintContents):
142 * rendering/RenderLayer.cpp:
143 (WebCore::RenderLayer::paint):
144 (WebCore::RenderLayer::calculateClipRects):
145 * rendering/RenderLayer.h:
147 2014-07-31 Jer Noble <jer.noble@apple.com>
149 [iOS] Video in an <embed> has a bad aspect ratio when in fullscreen mode.
150 https://bugs.webkit.org/show_bug.cgi?id=135481
152 Reviewed by Simon Fraser.
154 Do not change the gravity of our AVPlayerLayer when in full screen mode; its gravity
155 is controlled by setVideoFullscreenGravity(), and should not be affected by style changes.
157 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
158 (WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoLayerGravity):
160 2014-07-31 Beth Dakin <bdakin@apple.com>
162 Hit-testing broken in WebKit 1 views with AppKit's contentInsets
163 https://bugs.webkit.org/show_bug.cgi?id=135434
165 <rdar://problem/17850323>
167 Reviewed by Benjamin Poulain.
169 AppKit's contentInsets are factored into scroll positions and mouse positions, but
170 in WebCore, we generally want all of those things to be factored out so that, for
171 example, the scroll position of a document pinned to the top is the same whether
172 or not there is a contentInset. So to fix hit-testing in WebKit 1 views with
173 contentInsets, this patch factors the inset out or into of all coordinate
174 conversion methods just like we do for the WebKit2 contentInset.
176 This patch also adds the ability to test WK1 platformContentInsets with
177 window.internals, and it re-names convertFromRenderer to
178 convertFromRendererToContainingView and also re-names convertToRenderer to
179 convertFromContainingViewToRenderer.
181 ScrollView::topContentInset() takes an optional parameter indicating whether the
182 caller wants the WebCore::Page contentInset or the platform content inset. It’s
183 necessary to distinguish between these cases because there is a lot of code that
184 only wants the WebCore::Page contentInset since that feature is actually
185 implemented in WebCore as opposed to being implemented at the platform level.
187 * page/FrameView.cpp:
188 (WebCore::FrameView::topContentInset):
190 For layout test purposes, set the platforTopContentInset here if there is a
192 (WebCore::FrameView::topContentInsetDidChange):
194 Re-named functions, also all coordinate conversion functions call
195 topContentInset(ManualOrPlatformContentInset)
196 (WebCore::FrameView::convertFromContainingViewToRenderer):
197 (WebCore::FrameView::convertToContainingView):
198 (WebCore::FrameView::convertFromContainingView):
199 (WebCore::FrameView::convertFromRenderer): Deleted.
200 (WebCore::FrameView::convertToRenderer): Deleted.
203 (WebCore::Page::setTopContentInset):
204 * platform/ScrollView.cpp:
205 (WebCore::ScrollView::documentScrollOffsetRelativeToViewOrigin):
206 (WebCore::ScrollView::documentScrollPositionRelativeToViewOrigin):
207 (WebCore::ScrollView::contentsToRootView):
208 (WebCore::ScrollView::rootViewToTotalContents):
209 (WebCore::ScrollView::contentsToWindow):
210 (WebCore::ScrollView::platformTopContentInset):
211 (WebCore::ScrollView::platformSetTopContentInset):
212 * platform/ScrollView.h:
213 (WebCore::ScrollView::topContentInset):
214 * platform/ios/ScrollViewIOS.mm:
215 (WebCore::ScrollView::platformTopContentInset):
216 (WebCore::ScrollView::platformSetTopContentInset):
218 Implement new platform inset-related functions using AppKit's implementation.
219 * platform/mac/ScrollViewMac.mm:
220 (WebCore::ScrollView::platformTopContentInset):
221 (WebCore::ScrollView::platformSetTopContentInset):
223 When we set the scroll position for the documentView, we have to factor the inset
224 back into the WebCore scroll position.
225 (WebCore::ScrollView::platformSetScrollPosition):
228 * rendering/RenderLayer.cpp:
229 (WebCore::RenderLayer::convertFromScrollbarToContainingView):
230 (WebCore::RenderLayer::convertFromContainingViewToScrollbar):
231 * rendering/RenderListBox.cpp:
232 (WebCore::RenderListBox::convertFromScrollbarToContainingView):
233 (WebCore::RenderListBox::convertFromContainingViewToScrollbar):
235 2014-07-31 Dean Jackson <dino@apple.com>
237 Default buttons do not pulse in OS X 10.10
238 https://bugs.webkit.org/show_bug.cgi?id=135447
239 <rdar://problem/17875896>
241 Reviewed by Dan Bernstein.
243 OS X Yosemite does not have the animated pulsing default
244 buttons seen in previous releases. We don't need to have
245 a timer in RenderButton constantly triggering repaints.
247 * platform/mac/ThemeMac.mm:
248 (WebCore::paintButton): No need to advance the animation.
249 * rendering/RenderButton.cpp:
250 (WebCore::RenderButton::styleDidChange): Ask the theme if it
251 should advance the animation.
252 * rendering/RenderTheme.h:
253 (WebCore::RenderTheme::defaultButtonHasAnimation): Virtual function
254 indicating if the button needs to repaint.
255 * rendering/RenderThemeMac.h:
256 * rendering/RenderThemeMac.mm:
257 (WebCore::RenderThemeMac::defaultButtonHasAnimation): Provide platform
258 specific result on Yosemite and above.
260 2014-07-31 Tim Horton <timothy_horton@apple.com>
262 DOM::renderedImageForcingBlackText returns an image with the wrong logical size on 2x displays
263 https://bugs.webkit.org/show_bug.cgi?id=135442
264 <rdar://problem/17614632>
266 Reviewed by Simon Fraser.
268 * bindings/objc/DOM.mm:
269 (-[DOMRange renderedImageForcingBlackText:renderedImageForcingBlackText:]):
270 Scale the NSImage size by the device scale factor,
271 similar to what we did for drag images in r167403.
272 Ideally this scaling would happen in the code that
273 generates the images, but this is a much larger change
274 with much more regression potential.
276 2014-07-31 Bear Travis <betravis@adobe.com>
278 [CSS Font Loading] Rename document.fontloader to document.fonts
279 https://bugs.webkit.org/show_bug.cgi?id=135393
281 Reviewed by Bem Jones-Bey.
283 The most recent version of the specification has renamed
284 document.fontloader to document.fonts. This change updates the
285 names in WebCore and LayoutTests.
287 Fixed up existing tests under LayoutTests/fast/css/fontloader-*
288 and LayoutTests/http/webfont/fontloader-*
290 * css/CSSFontFace.cpp:
291 (WebCore::CSSFontFace::notifyFontLoader):
292 (WebCore::CSSFontFace::notifyLoadingDone):
294 (WebCore::Document::fonts):
295 (WebCore::Document::fontloader): Deleted.
298 * page/FrameView.cpp:
299 (WebCore::FrameView::performPostLayoutTasks):
301 2014-07-31 Andrei Bucur <abucur@adobe.com>
303 REGRESSION: Search highlight is broken in RTL multicolumn content
304 https://bugs.webkit.org/show_bug.cgi?id=135452
306 Reviewed by Simon Fraser.
308 The offsets for elements inside RTL multi-column elements are incorrectly computed because
309 the columns don't calculate their left position according to the writing direction.
311 The patch extracts the column position computation in two helper functions (for top and left)
312 so they can be used when needed in different parts of the code. In our case, the |columnLogicalLeft|
313 function should be used inside |columnTranslationForOffset|.
315 Test: fast/multicol/content-bounding-box-rtl.html
317 * rendering/RenderMultiColumnSet.cpp:
318 (WebCore::RenderMultiColumnSet::columnLogicalLeft): Return the logical left of a column relative to the set.
319 (WebCore::RenderMultiColumnSet::columnLogicalTop): Return the logical top of a column relative to the set.
320 (WebCore::RenderMultiColumnSet::columnRectAt): Split the code between columnLogicalLeft and columnLogicalTop.
321 (WebCore::RenderMultiColumnSet::collectLayerFragments): Make code clearer by adding a new line.
322 (WebCore::RenderMultiColumnSet::columnTranslationForOffset): Use columnLogicalLeft instead of duplicating logic.
323 * rendering/RenderMultiColumnSet.h:
325 2014-07-31 Martin Hodovan <mhodovan.u-szeged@partner.samsung.com>
327 Eliminate "FractionConversion" from CSSPrimitiveValue::convertToLength
328 https://bugs.webkit.org/show_bug.cgi?id=135377
330 Reviewed by Darin Adler.
332 The FractionConversion argument in CSSPrimitiveValue::convertToLength
333 doesn't seem to actually have a purpose. It is for converting numbers
334 into Length(x * 100, Percent), but this case shouldn't be reachable.
335 The original patch introducing it doesn't shed any light either:
336 [https://bugs.webkit.org/show_bug.cgi?id=74913
338 This patch removes the now unused FractionConversion argument. Note
339 that we can probably also merge the two Fixed conversions, as the
340 two only differ in clamping large numbers (probably unintended).
342 Patch by Timothy Loh, backported from Blink: https://codereview.chromium.org/71253002
346 * css/CSSCalculationValue.cpp:
347 (WebCore::determineCategory):
349 (WebCore::parseTransformTranslateArguments):
350 (WebCore::parseTranslateTransformValue):
351 (WebCore::parseTransformArguments): Deleted.
352 * css/CSSPrimitiveValueMappings.h:
353 (WebCore::CSSPrimitiveValue::convertToLength):
354 * css/DeprecatedStyleBuilder.cpp:
355 (WebCore::ApplyPropertyClip::convertToLength):
356 * css/StyleResolver.cpp:
357 (WebCore::StyleResolver::convertToIntLength):
358 (WebCore::StyleResolver::convertToFloatLength):
359 * css/TransformFunctions.cpp:
360 (WebCore::convertToFloatLength):
362 2014-07-31 Joseph Pecoraro <pecoraro@apple.com>
364 Web Inspector: console.profile missing profile information
365 https://bugs.webkit.org/show_bug.cgi?id=135432
367 Reviewed by Timothy Hatcher.
369 By switching console.profile to start/stop the timeline we would
370 not have a chance to recompile JS functions with profiling information.
371 This used to work because whenever the inspector was open we would
372 have profiling information enabled. Go back to that behavior.
374 * inspector/InspectorController.cpp:
375 (WebCore::InspectorController::profilerEnabled):
376 Instead of checking if the timeline agent has started, check if the
377 timeline agent has been created. Going back to the normal behavior
378 of always having profiling information when the inspector is open.
380 * inspector/InspectorTimelineAgent.h:
381 * inspector/InspectorTimelineAgent.cpp:
382 (WebCore::InspectorTimelineAgent::didCreateFrontendAndBackend):
383 Recompile initializing the timeline agent to include profiling information.
385 (WebCore::InspectorTimelineAgent::willDestroyFrontendAndBackend):
386 Recompile destrying the timeline agent, only if needed.
388 (WebCore::InspectorTimelineAgent::willCallFunction):
389 (WebCore::InspectorTimelineAgent::didCallFunction):
390 (WebCore::InspectorTimelineAgent::willEvaluateScript):
391 (WebCore::InspectorTimelineAgent::didEvaluateScript):
392 Using a boolean to track nested calls would not give expected
393 behavior when un-nesting. Switch to a counter to ensure that
394 as we start profiling in the outermost level we then stop
395 profiling at that same level and not inside an inner nesting.
397 2014-07-31 Wenson Hsieh <wenson_hsieh@apple.com>
399 Refactor EventHandler to call ScrollAnimator::handleWheelEvent for overflow scrolling
400 https://bugs.webkit.org/show_bug.cgi?id=135195
402 Reviewed by Beth Dakin.
404 ScrollableArea::handleWheelEvent is not currently being used to handle wheel events for overflow scrolling; it instead directly invokes ScrollableArea::scroll.
405 In order to expose wheel phases on Mac, the PlatformWheelEvent itself should propagate down to ScrollableArea, not just the scroll granularity, direction and
406 multiplier required by ScrollableArea::scroll. With this patch, PlatformWheelEvent will be "shipped" along with the WheelEvent.
408 No new tests, since behavior should not have changed.
410 * page/EventHandler.cpp:
411 (WebCore::didScrollInScrollableAreaForSingleAxis): Calls ScrollableArea::scroll directly using WheelEvent's data. Used to handle programmatic WheelEvents, e.g. from JavaScript.
412 (WebCore::handleWheelEventInAppropriateEnclosingBoxForSingleAxis): Finds the correct ScrollableArea and attempts to scroll it using the information contained in the WheelEvent via ScrollableArea::handleWheelEvent
413 (WebCore::EventHandler::defaultWheelEventHandler): Updated to use handleWheelEventInAppropriateEnclosingBoxForSingleAxis instead of scrollNode.
414 (WebCore::scrollNode): Deleted.
415 * rendering/RenderListBox.h: Made RenderListBox::scroll public so it can be invoked from EventHandler::handleWheelEventInAppropriateEnclosingBoxForSingleAxis.
416 * rendering/RenderNamedFlowThread.cpp: Refactored to let EventHandler update nextScrollBlock in the case of isRenderNamedFlowThread().
417 (WebCore::RenderNamedFlowThread::fragmentFromRenderBoxAsRenderBlock):
418 * rendering/RenderNamedFlowThread.h:
420 2014-07-31 Dan Bernstein <mitz@apple.com>
422 WebCore part of: Server trust authentication challenges aren’t sent to the navigation delegate
423 https://bugs.webkit.org/show_bug.cgi?id=135327
425 Reviewed by Alexey Proskuryakov.
427 * platform/network/cf/ResourceHandleCFNet.cpp:
428 (WebCore::ResourceHandle::receivedCredential): Don’t try to change the persistence of
429 credentials used for server trust, because the platform doesn’t support persistence values
430 other than Session for server trust.
431 * platform/network/mac/ResourceHandleMac.mm:
432 (WebCore::ResourceHandle::receivedCredential): Ditto.
434 2014-07-31 Dan Bernstein <mitz@apple.com>
436 Tried to fix building with the OS X 10.9 SDK while targeting OS X 10.8.
438 * platform/network/cocoa/CredentialCocoa.mm:
439 (WebCore::toCredentialPersistence):
441 2014-07-31 Dan Bernstein <mitz@apple.com>
443 Reverted r171854, because it broke building with the OS X 10.8 SDK.
445 * platform/network/cocoa/CredentialCocoa.mm:
446 (WebCore::toCredentialPersistence):
448 2014-07-31 Dan Bernstein <mitz@apple.com>
450 Tried to fix building with the OS X 10.9 SDK while targeting OS X 10.8.
452 * platform/network/cocoa/CredentialCocoa.mm:
453 (WebCore::toCredentialPersistence):
455 2014-07-31 Jer Noble <jer.noble@apple.com>
457 REGRESSION(??): [iOS] Disabling MediaPlaybackRequiresUserGesture does not remove user gesture requirement for entering full screen.
458 https://bugs.webkit.org/show_bug.cgi?id=135443
460 Reviewed by Dean Jackson.
462 Allow full screen mode to be entered without a user gesture if the gesture requirement for media playback
465 * html/HTMLMediaElement.cpp:
466 (WebCore::HTMLMediaElement::HTMLMediaElement):
468 2014-07-31 Andrei Bucur <abucur@adobe.com>
470 [CSS Multicolumn] Clear the lines when switching to multi-column layout
471 https://bugs.webkit.org/show_bug.cgi?id=135127
473 Reviewed by Alexandru Chiculita.
475 When switching an element to multi-column layout it becomes a container of block
476 children. When this happens the existing line boxes must be deleted in addition
477 to clearing the hasInlineChildren flag.
479 Tests: fast/multicol/inline-container-to-multicol.html
480 fast/multicol/inline-container-to-multicol-float.html
481 fast/multicol/inline-container-to-multicol-positioned.html
483 * rendering/RenderBlockFlow.cpp:
484 (WebCore::RenderBlockFlow::createMultiColumnFlowThread):
486 2014-07-30 Andreas Kling <akling@apple.com>
488 PropertyName's internal string is always atomic.
489 <https://webkit.org/b/135451>
491 Use PropertyName::publicName() directly instead of taking the slow route
492 through AtomicString::findStringWithHash().
494 These strings are always atomic, and findStringWithHash() would trudge
495 through a full hash lookup just to discover that indeed, they are!
497 Reviewed by Benjamin Poulain.
499 * bindings/js/JSDOMBinding.cpp:
500 (WebCore::findAtomicString): Deleted.
501 * bindings/js/JSDOMBinding.h:
502 * bindings/js/JSDOMWindowCustom.cpp:
503 (WebCore::namedItemGetter):
504 (WebCore::JSDOMWindow::getOwnPropertySlot):
505 (WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
506 * bindings/js/JSHTMLDocumentCustom.cpp:
507 (WebCore::JSHTMLDocument::canGetItemsForName):
508 (WebCore::JSHTMLDocument::nameGetter):
510 2014-07-30 Benjamin Poulain <benjamin@webkit.org>
512 ElementRuleCollector: group the shadow tree code
513 https://bugs.webkit.org/show_bug.cgi?id=135410
515 Reviewed by Andreas Kling.
517 * css/ElementRuleCollector.cpp:
518 (WebCore::ElementRuleCollector::collectMatchingRules):
519 Little cleanup: group the shadow tree rule collection in the same block.
521 2014-07-30 Benjamin Poulain <benjamin@webkit.org>
523 Cleanup DetailsMarkerControl
524 https://bugs.webkit.org/show_bug.cgi?id=135429
526 Reviewed by Andreas Kling.
528 Remove the override of shadowPseudoId(). This is a simple type of shadowId,
529 it should use the generic pseudo() path.
531 Move DetailsMarkerControl::create() out-of-line. One could justify inlining the constructor,
532 inlining the ::create() function has little value.
534 * html/shadow/DetailsMarkerControl.cpp:
535 (WebCore::DetailsMarkerControl::create):
536 (WebCore::DetailsMarkerControl::DetailsMarkerControl):
537 (WebCore::DetailsMarkerControl::rendererIsNeeded):
538 (WebCore::DetailsMarkerControl::shadowPseudoId): Deleted.
539 (WebCore::DetailsMarkerControl::summaryElement): Deleted.
540 * html/shadow/DetailsMarkerControl.h:
541 (WebCore::DetailsMarkerControl::create): Deleted.
543 2014-07-30 Benjamin Poulain <bpoulain@apple.com>
545 Remove UploadButtonElement::shadowPseudoId()
546 https://bugs.webkit.org/show_bug.cgi?id=135435
548 Reviewed by Andreas Kling.
550 Use the generic pseudo() path instead of a custom shadowPseudoId().
552 * html/FileInputType.cpp:
553 (WebCore::UploadButtonElement::create):
554 (WebCore::UploadButtonElement::createForMultiple):
555 (WebCore::UploadButtonElement::UploadButtonElement):
556 Set the type in the common constructor instead of the call sites.
557 (WebCore::UploadButtonElement::shadowPseudoId): Deleted.
558 * html/FileInputType.h:
560 2014-07-30 Benjamin Poulain <bpoulain@apple.com>
562 Remove SpinButtonElement::shadowPseudoId
563 https://bugs.webkit.org/show_bug.cgi?id=135436
565 Reviewed by Andreas Kling.
567 Use the generic pseudo.
569 * html/shadow/SpinButtonElement.cpp:
570 (WebCore::SpinButtonElement::SpinButtonElement):
571 (WebCore::SpinButtonElement::shadowPseudoId): Deleted.
572 * html/shadow/SpinButtonElement.h:
574 2014-07-30 Benjamin Poulain <bpoulain@apple.com>
576 Clean up YouTubeEmbedShadowElement
577 https://bugs.webkit.org/show_bug.cgi?id=135437
579 Reviewed by Andreas Kling.
581 * html/shadow/YouTubeEmbedShadowElement.cpp:
582 (WebCore::YouTubeEmbedShadowElement::YouTubeEmbedShadowElement):
583 (WebCore::YouTubeEmbedShadowElement::pluginElement): Deleted.
584 This is unused in WebCore.
586 (WebCore::YouTubeEmbedShadowElement::shadowPseudoId): Deleted.
587 Use the generic pseudo path instead of a custom shadowPseudoId.
588 * html/shadow/YouTubeEmbedShadowElement.h:
590 2014-07-30 Benjamin Poulain <bpoulain@apple.com>
592 Remove shadowPseudoId() from InputFieldSpeechButtonElement and SearchFieldCancelButtonElement
593 https://bugs.webkit.org/show_bug.cgi?id=135438
595 Reviewed by Andreas Kling.
597 Use the generic path.
599 * html/shadow/TextControlInnerElements.cpp:
600 (WebCore::SearchFieldCancelButtonElement::SearchFieldCancelButtonElement):
601 (WebCore::InputFieldSpeechButtonElement::InputFieldSpeechButtonElement):
602 (WebCore::SearchFieldCancelButtonElement::shadowPseudoId): Deleted.
603 (WebCore::InputFieldSpeechButtonElement::shadowPseudoId): Deleted.
604 * html/shadow/TextControlInnerElements.h:
606 2014-07-30 Andy Estes <aestes@apple.com>
608 USE(CONTENT_FILTERING) should be ENABLE(CONTENT_FILTERING)
609 https://bugs.webkit.org/show_bug.cgi?id=135439
611 Reviewed by Tim Horton.
613 We now support two different platform content filters, and will soon support a mock content filter (as part of
614 webkit.org/b/128858). This makes content filtering a feature of WebKit, not just an adoption of a third-party
615 library. ENABLE() is the correct macro to use for such a feature.
617 * Configurations/FeatureDefines.xcconfig:
619 * loader/DocumentLoader.cpp:
620 (WebCore::DocumentLoader::finishedLoading):
621 (WebCore::DocumentLoader::responseReceived):
622 (WebCore::DocumentLoader::commitData):
623 (WebCore::DocumentLoader::dataReceived):
624 * loader/DocumentLoader.h:
625 * loader/FrameLoaderClient.h:
626 * platform/ContentFilter.h:
627 * platform/ios/ContentFilterIOS.mm:
628 * platform/mac/ContentFilterMac.mm:
630 2014-07-30 Andreas Kling <akling@apple.com>
632 Static hash tables no longer need to be coupled with a VM.
633 <https://webkit.org/b/135421>
635 Update for JSC::ClassInfo changes.
637 Remove the JSNoStaticTables mode for IDL code generation, which was used to
638 ensure that each VM had its own unique copy of certain static tables.
639 This was used for interfaces that could be used in workers, and now there's
640 no need to manually annotate these things anymore.
642 Also remove the DOMObjectHashTableMap class that was only used for this.
644 Reviewed by Geoffrey Garen.
646 * Modules/indexeddb/IDBAny.idl:
647 * Modules/indexeddb/IDBCursor.idl:
648 * Modules/indexeddb/IDBCursorWithValue.idl:
649 * Modules/indexeddb/IDBDatabase.idl:
650 * Modules/indexeddb/IDBFactory.idl:
651 * Modules/indexeddb/IDBIndex.idl:
652 * Modules/indexeddb/IDBKeyRange.idl:
653 * Modules/indexeddb/IDBObjectStore.idl:
654 * Modules/indexeddb/IDBOpenDBRequest.idl:
655 * Modules/indexeddb/IDBRequest.idl:
656 * Modules/indexeddb/IDBTransaction.idl:
657 * Modules/indexeddb/IDBVersionChangeEvent.idl:
658 * Modules/webdatabase/Database.idl:
659 * Modules/webdatabase/DatabaseSync.idl:
660 * Modules/webdatabase/SQLError.idl:
661 * Modules/webdatabase/SQLException.idl:
662 * Modules/webdatabase/SQLResultSet.idl:
663 * Modules/webdatabase/SQLResultSetRowList.idl:
664 * Modules/webdatabase/SQLTransaction.idl:
665 * Modules/webdatabase/SQLTransactionSync.idl:
666 * Modules/websockets/CloseEvent.idl:
667 * Modules/websockets/WebSocket.idl:
668 * WebCore.xcodeproj/project.pbxproj:
669 * bindings/js/DOMObjectHashTableMap.cpp: Removed.
670 * bindings/js/DOMObjectHashTableMap.h: Removed.
671 * bindings/js/JSDOMBinding.cpp:
672 (WebCore::getHashTableForGlobalData): Deleted.
673 * bindings/js/JSDOMBinding.h:
674 (WebCore::getStaticValueSlotEntryWithoutCaching):
675 * bindings/js/JSDOMGlobalObject.cpp:
676 * bindings/js/JSDOMWindowBase.cpp:
677 * bindings/js/JSDOMWindowCustom.cpp:
678 (WebCore::JSDOMWindow::getOwnPropertySlot):
679 (WebCore::JSDOMWindow::put):
680 * bindings/js/JSDOMWindowShell.cpp:
681 * bindings/js/JSImageConstructor.cpp:
682 * bindings/js/JSLocationCustom.cpp:
683 (WebCore::JSLocation::putDelegate):
684 * bindings/js/JSStorageCustom.cpp:
685 (WebCore::JSStorage::deleteProperty):
686 (WebCore::JSStorage::putDelegate):
687 * bindings/js/JSWorkerGlobalScopeBase.cpp:
688 * bindings/js/WebCoreJSClientData.h:
689 * bindings/scripts/CodeGeneratorJS.pm:
690 (GenerateGetOwnPropertySlotBody):
691 (GenerateImplementation):
692 (GenerateConstructorHelperMethods):
693 (hashTableAccessor): Deleted.
694 (prototypeHashTableAccessor): Deleted.
695 (constructorHashTableAccessor): Deleted.
696 * bindings/scripts/IDLAttributes.txt:
697 * bridge/c/CRuntimeObject.cpp:
698 * bridge/c/c_instance.cpp:
699 * bridge/objc/ObjCRuntimeObject.mm:
700 * bridge/objc/objc_instance.mm:
701 * bridge/objc/objc_runtime.mm:
702 * bridge/runtime_array.cpp:
703 * bridge/runtime_method.cpp:
704 * bridge/runtime_object.cpp:
705 * crypto/CryptoKey.idl:
706 * css/CSSFontFaceLoadEvent.idl:
707 * dom/DOMCoreException.idl:
708 * dom/DOMStringList.idl:
709 * dom/ErrorEvent.idl:
711 * dom/EventException.idl:
712 * dom/EventListener.idl:
713 * dom/MessageChannel.idl:
714 * dom/MessageEvent.idl:
715 * dom/MessagePort.idl:
716 * dom/ProgressEvent.idl:
719 * fileapi/FileError.idl:
720 * fileapi/FileException.idl:
721 * fileapi/FileList.idl:
722 * fileapi/FileReader.idl:
723 * fileapi/FileReaderSync.idl:
725 * page/EventSource.idl:
726 * page/WorkerNavigator.idl:
727 * workers/DedicatedWorkerGlobalScope.idl:
728 * workers/SharedWorkerGlobalScope.idl:
729 * workers/WorkerGlobalScope.idl:
730 * workers/WorkerLocation.idl:
731 * xml/XMLHttpRequest.idl:
732 * xml/XMLHttpRequestException.idl:
733 * xml/XMLHttpRequestProgressEvent.idl:
734 * xml/XMLHttpRequestUpload.idl:
736 2014-07-30 Dan Bernstein <mitz@apple.com>
738 <rdar://problem/17199364> [Mac] Popup button arrows appear on the left, underlapping text, when the UI layout direction is right-to-left
739 https://bugs.webkit.org/show_bug.cgi?id=135426
741 Reviewed by Dean Jackson.
743 No test, because the UI layout direction in the test harness is always left-to-right.
745 * rendering/RenderThemeMac.mm:
746 (WebCore::RenderThemeMac::popupButton): Forced the user interface layout direction of the
747 NSPopUpButtonCell to left-to-right. Added a FIXME about how we could make this vary based on
748 the direction of the <select>, though that would require additional changes elsewhere.
750 2014-07-30 Dan Bernstein <mitz@apple.com>
752 Made Credential hold onto an NSURLCredential when needed.
753 Work towards fixing https://bugs.webkit.org/show_bug.cgi?id=135327
755 Reviewed by Alexey Proskuryakov.
757 No change in functionality.
759 * WebCore.exp.in: Updated.
761 * platform/network/Credential.h: Removed definition of CERTIFICATE_CREDENTIALS_SUPPORTED,
762 which is not used anymore.
764 * platform/network/CredentialBase.h:
765 (WebCore::CredentialBase::encodingRequiresPlatformData): Added a base implementation that
768 * platform/network/cf/AuthenticationCF.cpp:
769 Changed to use the Credential constructor that takes an CFURLCredential, and the new
770 cfCredential member function. Made the createCF and core functions Windows-only and
771 therefore removed the CERTIFICATE_CREDENTIALS_SUPPORTED code from them.
772 * platform/network/cf/AuthenticationCF.h:
774 * platform/network/cf/CredentialStorageCFNet.cpp:
775 (WebCore::CredentialStorage::getFromPersistentStorage): Changed to construct a Credential
776 from a CFURLCredential.
777 (WebCore::CredentialStorage::saveToPersistentStorage): Changed to use the new cfCredential
780 * platform/network/cf/ResourceHandleCFNet.cpp:
781 (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Ditto to both.
782 (WebCore::ResourceHandle::receivedCredential): Ditto.
784 * platform/network/cocoa/CredentialCocoa.h:
785 Replaced the m_identity, m_certificates and m_type member variables with an m_nsCredential
786 one holding onto an NSURLCredential. Declared constructors from and getters for
787 NSURLCredential and CFURLCredentialRef.
788 (WebCore::Credential::encodingRequiresPlatformData): Override that checks the
789 NSURLCredential if necessary.
791 * platform/network/cocoa/CredentialCocoa.mm:
792 (WebCore::toNSURLCredentialPersistence): New helper function.
793 (WebCore::toCredentialPersistence): Ditto.
794 (WebCore::Credential::Credential): Defined constructors to create or take an
796 (WebCore::Credential::cfCredential): Added.
797 (WebCore::Credential::nsCredential): Added. Returns nil for the empty credential.
798 (WebCore::Credential::isEmpty): Changed to check m_nsCredential.
799 (WebCore::Credential::platformCompare): Changed to compare m_nsCredential if needed.
800 (WebCore::Credential::encodingRequiresPlatformData): Returns true if the credential is not
801 a user and a password.
803 * platform/network/mac/AuthenticationMac.h: Removed mac and core functions for Credential.
804 * platform/network/mac/AuthenticationMac.mm:
805 (-[WebCoreAuthenticationClientAsChallengeSender useCredential:forAuthenticationChallenge:]):
806 Changed to use Credential constructor that takes an NSURLCredential.
807 (WebCore::AuthenticationChallenge::AuthenticationChallenge): Ditto. Also use the
810 * platform/network/mac/CredentialStorageMac.mm:
811 (WebCore::CredentialStorage::getFromPersistentStorage): Use new Credential constructor.
813 * platform/network/mac/ResourceHandleMac.mm:
814 (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Ditto. Also use the
816 (WebCore::ResourceHandle::receivedCredential): Ditto.
818 2014-07-30 Sergio Villar Senin <svillar@igalia.com>
820 [GTK] Build depends on OpenGL ES
821 https://bugs.webkit.org/show_bug.cgi?id=135289
823 Reviewed by Martin Robinson.
825 Guard the OpenGL ES code with USE(OPENGL_ES_2).
827 * platform/graphics/opengl/Extensions3DOpenGLES.cpp:
828 * platform/graphics/opengl/Extensions3DOpenGLES.h:
830 2014-07-30 Radu Stavila <stavila@adobe.com>
832 Member name collision in RenderView and SelectionSubtreeRoot
833 https://bugs.webkit.org/show_bug.cgi?id=135233
835 Reviewed by Mihnea Ovidenie.
837 The selectionStart/End members in RenderView have been renamed to fix confusion caused by the fact that
838 RenderView inherits SelectionSubtreeRoot, which also has the same selectionStart/End members.
840 No new tests required, no new functionality.
842 * rendering/RenderBlock.cpp:
843 (WebCore::RenderBlock::isSelectionRoot):
844 * rendering/RenderView.cpp:
845 (WebCore::RenderView::RenderView):
846 (WebCore::RenderView::setSelection):
847 (WebCore::RenderView::getSelection):
848 * rendering/RenderView.h:
850 2014-07-30 Zan Dobersek <zdobersek@igalia.com>
852 [TexMap] Move TextureMapperLayer::textureMapper() definition into the header
853 https://bugs.webkit.org/show_bug.cgi?id=135384
855 Reviewed by Martin Robinson.
857 Move the definitions of TextureMapperLayer::textureMapper() and TextureMapperLayer::rootLayer()
858 into the TextureMapperLayer header. This makes both functions inline-able, removing unnecessary
859 calling overhead in GraphicsLayerTextureMapper::flushCompositingState() and
860 GraphicsLayerTextureMapper::updateBackingStoreIfNeeded().
862 TextureMapperLayer::rootLayer() now also returns a reference.
864 * platform/graphics/texmap/TextureMapperLayer.cpp:
865 (WebCore::TextureMapperLayer::~TextureMapperLayer):
866 (WebCore::TextureMapperLayer::rootLayer): Deleted.
867 (WebCore::TextureMapperLayer::textureMapper): Deleted.
868 * platform/graphics/texmap/TextureMapperLayer.h:
869 (WebCore::TextureMapperLayer::textureMapper):
870 (WebCore::TextureMapperLayer::rootLayer):
872 2014-07-29 Andreas Kling <akling@apple.com>
874 Crash when using 'em' units to specify font-size inside animation keyframe.
875 <https://webkit.org/b/135395>
876 <rdar://problem/17851910>
878 We'd forgotten to initialize the "parent style" when resolving keyframe
879 styles, and this led to a crash in length conversion where the code
880 assumes a parent style will be present.
882 To keep this fix minimal, simply make the "parent style" a clone of the
885 Reviewed by Simon Fraser.
887 Test: fast/animation/keyframe-with-font-size-in-em-units.html
889 * css/StyleResolver.cpp:
890 (WebCore::StyleResolver::styleForKeyframe):
892 2014-07-29 Pratik Solanki <psolanki@apple.com>
894 [iOS] REGRESSION(r171526): PDF documents fail to load in WebKit1 with disk image caching enabled
895 https://bugs.webkit.org/show_bug.cgi?id=135359
896 <rdar://problem/17824645>
898 Reviewed by Darin Adler.
900 r171526 broke the case where we have a memory mapped file from the DiskImageCache in the
901 SharedBuffer. In such a case, m_buffer is empty and createCFData() returned an
902 WebCoreSharedBufferData with an empty buffer.
904 Fix this by taking the easy route of bringing back the old code for the disk image cache
905 file backed case. In the long run we probably want to remove the iOS specific disk image
908 Review also uncovered another bug in r171526 where we were balancing an Objective-C alloc
909 with a CFRelease which is incorrect when running under GC. Fix that by using adoptNS along
910 with adoptCF which is what the code did before.
912 No new tests because the bug only occurs on device and we can't run tests on device yet.
914 * platform/mac/SharedBufferMac.mm:
915 (-[WebCoreSharedBufferData initWithDiskImageSharedBuffer:]):
916 (-[WebCoreSharedBufferData length]):
917 (-[WebCoreSharedBufferData bytes]):
918 (WebCore::SharedBuffer::createCFData):
920 2014-07-29 Benjamin Poulain <bpoulain@apple.com>
922 VisitedLinkState::determineLinkState should take a reference
923 https://bugs.webkit.org/show_bug.cgi?id=135375
925 Reviewed by Sam Weinig.
927 * css/StyleResolver.cpp:
928 (WebCore::StyleResolver::State::initElement):
929 * dom/VisitedLinkState.h:
930 (WebCore::VisitedLinkState::determineLinkState):
932 2014-07-29 Brady Eidson <beidson@apple.com>
934 Make WKOriginDataManager actually operate on IndexedDatabases.
935 https://bugs.webkit.org/show_bug.cgi?id=135346
937 Reviewed by Sam Weinig (and David Kilzer and Alex Christensen)
941 2014-07-29 Dan Bernstein <mitz@apple.com>
943 Moved the Cocoa-specific parts of CredentialBase into a Cocoa-specific Credential class.
944 Work towards fixing https://bugs.webkit.org/show_bug.cgi?id=135327
946 Reviewed by Alexey Proskuryakov.
948 No change in functionality.
950 * WebCore.exp.in: Updated for functions moved in the class hierarchy.
952 * WebCore.xcodeproj/project.pbxproj: Added CredentialCocoa.{h,mm}.
954 * platform/network/Credential.h: For Cocoa, include CredentialCocoa.h instead of the generic
956 (WebCore::Credential::Credential): Removed #if CERTIFICATE_CREDENTIALS_SUPPORTED code.
958 * platform/network/CredentialBase.cpp:
959 (WebCore::CredentialBase::CredentialBase): Changed to use emptyString instead of "", removed
960 #if CERTIFICATE_CREDENTIALS_SUPPORTED code.
961 (WebCore::CredentialBase::isEmpty): Ditto.
962 (WebCore::CredentialBase::compare): Renamed operator== to this, removed
963 #if CERTIFICATE_CREDENTIALS_SUPPORTED code, but changed the end to call platformCompare.
964 (WebCore::CredentialBase::identity): Deleted.
965 (WebCore::CredentialBase::certificates): Deleted.
966 (WebCore::CredentialBase::type): Deleted.
967 * platform/network/CredentialBase.h: Removed #if CERTIFICATE_CREDENTIALS_SUPPORTED members.
968 (WebCore::CredentialBase::platformCompare): Added a base implementation that returns true.
969 (WebCore::operator==): Changed to use CredentialBase::compare.
971 * platform/network/cocoa/CredentialCocoa.h: Added.
972 (WebCore::Credential::Credential):
973 * platform/network/cocoa/CredentialCocoa.mm: Added.
974 (WebCore::Credential::Credential): Moved the constructor that takes an identity and
976 (WebCore::Credential::isEmpty): Moved here.
977 (WebCore::Credential::identity): Ditto.
978 (WebCore::Credential::certificates): Ditto.
979 (WebCore::Credential::type): Ditto.
980 (WebCore::Credential::platformCompare): Moved the code that compares client-certificate
983 * platform/network/mac/AuthenticationMac.mm:
984 (WebCore::mac): Removed #if CERTIFICATE_CREDENTIALS_SUPPORTED guards in this Cocoa-only
986 (WebCore::core): Ditto.
988 2014-07-29 Daniel Bates <dabates@apple.com>
990 Use WTF::move() instead of std::move() to help ensure move semantics
991 https://bugs.webkit.org/show_bug.cgi?id=135351
993 Reviewed by Alexey Proskuryakov.
995 * page/CaptionUserPreferences.cpp:
996 (WebCore::CaptionUserPreferences::updateCaptionStyleSheetOveride):
998 2014-07-29 Mihnea Ovidenie <mihnea@adobe.com>
1000 [CSSRegions] Assertion failure hit testing a region-based multicolumn in a region
1001 https://bugs.webkit.org/show_bug.cgi?id=135385
1003 Reviewed by Andrei Bucur.
1005 When a region-based multicolumn element is displayed and hit tested in a region,
1006 we have to disable the named flow region information not only for painting,
1007 but also for hit-testing. This is a follow-up for https://bugs.webkit.org/show_bug.cgi?id=132121,
1008 which provided the fix for painting.
1010 Test: fast/regions/assert-hit-test-multicol-in-region.html
1012 * rendering/RenderLayer.cpp:
1013 (WebCore::RenderLayer::hitTestLayer):
1015 2014-07-29 Zalan Bujtas <zalan@apple.com>
1017 Cleanup RenderSelectionInfoBase/RenderSelectionInfo/RenderBlockSelectionInfo.
1018 https://bugs.webkit.org/show_bug.cgi?id=135326
1020 Reviewed by Darin Adler.
1022 1. Move implementation to RenderSelectInfo.cpp
1023 2. RenderSelectionInfoBase/RenderSelectionInfo/RenderBlockSelectionInfo take Render* reference.
1024 3. Remove unused functions.
1025 4. Add RenderSelectionInfoBase::repaintRectangle()
1027 No change in behavior.
1029 * WebCore.xcodeproj/project.pbxproj:
1030 * rendering/RenderSelectionInfo.cpp: Added.
1031 (WebCore::RenderSelectionInfoBase::RenderSelectionInfoBase):
1032 (WebCore::RenderSelectionInfoBase::repaintRectangle):
1033 (WebCore::RenderSelectionInfo::RenderSelectionInfo):
1034 (WebCore::RenderSelectionInfo::repaint):
1035 (WebCore::RenderBlockSelectionInfo::RenderBlockSelectionInfo):
1036 (WebCore::RenderBlockSelectionInfo::repaint):
1037 * rendering/RenderSelectionInfo.h:
1038 (WebCore::RenderSelectionInfo::collectedSelectionRects):
1039 (WebCore::RenderSelectionInfoBase::RenderSelectionInfoBase): Deleted.
1040 (WebCore::RenderSelectionInfoBase::object): Deleted.
1041 (WebCore::RenderSelectionInfo::RenderSelectionInfo): Deleted.
1042 (WebCore::RenderSelectionInfo::repaint): Deleted.
1043 (WebCore::RenderSelectionInfo::rects): Deleted.
1044 (WebCore::RenderBlockSelectionInfo::RenderBlockSelectionInfo): Deleted.
1045 (WebCore::RenderBlockSelectionInfo::repaint): Deleted.
1046 (WebCore::RenderBlockSelectionInfo::block): Deleted.
1047 * rendering/RenderView.cpp:
1048 (WebCore::RenderView::subtreeSelectionBounds):
1049 (WebCore::RenderView::repaintSubtreeSelection):
1050 (WebCore::RenderView::clearSubtreeSelection):
1051 (WebCore::RenderView::applySubtreeSelection):
1053 2014-07-28 Pratik Solanki <psolanki@apple.com>
1055 Get SharedBuffer.h out of ResourceBuffer.h (and a few other places)
1056 https://bugs.webkit.org/show_bug.cgi?id=131782
1058 Original patch by Tim Horton.
1059 Reviewed by Darin Adler.
1061 No new tests because no functional changes.
1063 * Modules/indexeddb/IDBCallbacks.h:
1064 * Modules/indexeddb/IDBCursorBackend.h:
1065 * loader/ios/DiskImageCacheIOS.h:
1066 Forward declare SharedBuffer in headers.
1068 * Modules/indexeddb/IDBRequest.cpp:
1069 * loader/cache/CachedImage.cpp:
1070 * loader/icon/IconLoader.cpp:
1071 * loader/ios/DiskImageCacheIOS.mm:
1072 * loader/cache/MemoryCache.cpp:
1073 * loader/mac/ResourceBuffer.mm:
1074 Include SharedBuffer.h in implementation files.
1076 * Modules/notifications/Notification.h:
1077 * loader/appcache/ApplicationCacheGroup.h:
1078 Remove unnecessary includes.
1080 * loader/ResourceBuffer.cpp:
1081 (WebCore::ResourceBuffer::adoptSharedBuffer):
1082 * loader/ResourceBuffer.h:
1083 Out-of-line adoptSharedBuffer so that the PassRefPtr doesn't require including SharedBuffer.h.
1085 * platform/graphics/opentype/OpenTypeMathData.cpp:
1086 * platform/graphics/opentype/OpenTypeMathData.h:
1087 Out-of-line destructor to avoid requiring SharedBuffer.h for the RefPtr.
1088 Forward-declare SharedBuffer in the header, include in implementation.
1090 2014-07-29 Zan Dobersek <zdobersek@igalia.com>
1092 [TexMap] GraphicsLayerTextureMapper::addAnimation() box size parameter should be FloatSize
1093 https://bugs.webkit.org/show_bug.cgi?id=135237
1095 Reviewed by Martin Robinson.
1097 * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
1098 (WebCore::GraphicsLayerTextureMapper::addAnimation):
1099 * platform/graphics/texmap/GraphicsLayerTextureMapper.h: The boxSize parameter of the
1100 addAnimation() method must be of the same type as the parameter in the base class
1101 declaration -- a const FloatSize reference. Only then is the base virtual method
1104 2014-07-28 Dan Bernstein <mitz@apple.com>
1110 2014-07-28 Dan Bernstein <mitz@apple.com>
1112 Introduced CredentialBase and made Credential derive from it
1113 Work towards fixing https://bugs.webkit.org/show_bug.cgi?id=135327
1115 Reviewed by Darin Adler.
1117 No change in functionality.
1119 * CMakeLists.txt: Updated for source file rename.
1121 * WebCore.exp.in: Changed to export CredentialBase symbols.
1123 * WebCore.vcxproj/WebCore.vcxproj: Updated for source file rename and new header.
1124 * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
1126 * WebCore.xcodeproj/project.pbxproj: Ditto.
1128 * platform/network/Credential.cpp: Renamed to CredentialBase.cpp.
1130 * platform/network/Credential.h: Defined Credential to derive from CredentialBase.
1132 * platform/network/CredentialBase.cpp: Renamed Credential.cpp to this. Updated for the new
1135 * platform/network/CredentialBase.h: Copied from Credential.h, renamed the class to
1136 CredentialBase, and made the constructors protected.
1138 2014-07-28 Zalan Bujtas <zalan@apple.com>
1140 REGRESSION(r164133): Selection disappears after scrolling on nytimes.com
1141 https://bugs.webkit.org/show_bug.cgi?id=135361
1143 Reviewed by Ryosuke Niwa.
1145 Ensure that when a RenderElement, part of the current selection is removed,
1146 we recalculate and update the selection soon after layout.
1148 Test: fast/dynamic/selection-gets-cleared-when-part-of-it-gets-removed.html
1150 * editing/FrameSelection.cpp:
1151 (WebCore::FrameSelection::setNeedsSelectionUpdate):
1152 (WebCore::FrameSelection::didLayout): didLayout name reflects its functionality better.
1153 (WebCore::FrameSelection::layoutDidChange): Deleted.
1154 * editing/FrameSelection.h: : move some functions to private.
1155 * page/FrameView.cpp:
1156 (WebCore::FrameView::performPostLayoutTasks):
1157 * rendering/RenderBlockFlow.cpp:
1158 (WebCore::RenderBlockFlow::willBeDestroyed):
1159 * rendering/RenderElement.cpp:
1160 (WebCore::RenderElement::removeChildInternal):
1161 * rendering/RenderInline.cpp:
1162 (WebCore::RenderInline::willBeDestroyed):
1164 2014-07-28 Dean Jackson <dino@apple.com>
1166 [Media iOS] Touching play button feels unresponsive
1167 https://bugs.webkit.org/show_bug.cgi?id=135370
1168 <rdar://problem/17756281>
1170 Reviewed by Simon Fraser.
1172 Add an :active rule that shows a slightly darker button when touched.
1174 * Modules/mediacontrols/mediaControlsiOS.css:
1175 (audio::-webkit-media-controls-start-playback-button:active):
1177 2014-07-28 Brady Eidson <beidson@apple.com>
1179 REGRESSION(168376): Standalone images pasted to Outlook 2011 don't display
1180 <rdar://problem/17768371> and https://bugs.webkit.org/show_bug.cgi?id=135363
1182 Reviewed by Tim Horton.
1184 Outlook isn’t prepared to handle the resource load callbacks when sent synchronously.
1186 r168376 was an optimization that we no longer need, so the simplest fix is to roll it out.
1188 * editing/mac/EditorMac.mm:
1189 (WebCore::Editor::WebContentReader::readImage):
1191 * loader/archive/ArchiveResource.cpp:
1192 (WebCore::ArchiveResource::ArchiveResource):
1193 * loader/archive/ArchiveResource.h:
1194 (WebCore::ArchiveResource::setShouldLoadImmediately): Deleted.
1195 (WebCore::ArchiveResource::shouldLoadImmediately): Deleted.
1197 * loader/cache/CachedResourceLoader.cpp:
1198 (WebCore::CachedResourceLoader::requestResource):
1200 2014-07-28 Mark Hahnenberg <mhahnenberg@apple.com>
1202 ASSERTION FAILED: m_heap->vm()->currentThreadIsHoldingAPILock()
1203 https://bugs.webkit.org/show_bug.cgi?id=135352
1205 Reviewed by Oliver Hunt.
1207 * Modules/plugins/QuickTimePluginReplacement.mm:
1208 (WebCore::QuickTimePluginReplacement::ensureReplacementScriptInjected): This should be taking a
1209 JSLock like its sibling methods do (e.g. installReplacement).
1211 2014-07-28 Antti Koivisto <antti@apple.com>
1213 <embed> videos flashes constantly while playing inline on iPad, making it unwatchable
1214 https://bugs.webkit.org/show_bug.cgi?id=135356
1215 <rdar://problem/16828238>
1217 Reviewed by Simon Fraser.
1219 The shadow tree for media controls is scheduling style recalc. The general silliness of
1220 HTMLPlugInImageElement::willRecalcStyle/willDetachRenderers is turning those into render
1221 tree reconstructions causing flicker.
1223 * html/HTMLPlugInImageElement.cpp:
1224 (WebCore::HTMLPlugInImageElement::willRecalcStyle):
1226 Don't do the forced renderer reconstruction if there is no style change for the element
1227 or its ancestors. This way recalcs scheduled by the shadow tree don't trigger the widget
1230 2014-07-27 Brent Fulgham <bfulgham@apple.com>
1232 [Mac, iOS] Paint-on closed captions get out-of-order in Safari
1233 https://bugs.webkit.org/show_bug.cgi?id=135332
1234 <rdar://problem/15317278>
1236 Reviewed by Jer Noble.
1238 * html/shadow/MediaControlElements.cpp:
1239 (WebCore::MediaControlTextTrackContainerElement::updateDisplay): If the
1240 number of active cues is greater than the current set of CSS boxes representing
1241 the cues, throw away the CSS boxes and re-layout all the cues.
1242 * html/track/InbandGenericTextTrack.cpp:
1243 (WebCore::InbandGenericTextTrack::addGenericCue): Add some logging.
1244 (WebCore::InbandGenericTextTrack::removeGenericCue): Ditto.
1245 * html/track/TextTrackCueGeneric.cpp:
1246 (WebCore::TextTrackCueGeneric::isOrderedBefore): Revise ordering rules so that we put
1247 newer cues earlier in the layout order so they are drawn towards the bottom
1248 of the screen. Only do this for Generic captions.
1249 * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
1250 (WebCore::InbandTextTrackPrivateAVF::processAttributedStrings): Adjust logging
1252 (WebCore::InbandTextTrackPrivateAVF::removeCompletedCues): Add logging.
1254 2014-07-28 Andreas Kling <akling@apple.com>
1256 REGRESSION (r160806): CSS zoom property doesn't work on anything inside anchors.
1257 <https://webkit.org/b/135344>
1258 <rdar://problem/17759577>
1260 When DeprecatedStyleBuilder applies the CSS zoom property (ApplyPropertyZoom)
1261 it first resets the "effective zoom" by calling RenderStyle::setEffectiveZoom().
1263 This mechanism was not resistent to being called multiple times, due to the
1264 optimization in RenderStyle::setZoom() to avoid copy-on-writing the shared data
1265 when setting some property to the already-set value.
1267 The bug would happen in this sequence:
1270 - setEffectiveZoom(1);
1271 - setZoom(2); // this updates the effective zoom
1273 - setEffectiveZoom(1);
1274 - setZoom(2); // this doesn't update the effective zoom
1276 When we run the second setZoom(2); call, the RenderStyle's zoom value is 2
1277 already and we'll early return without updating the effective zoom.
1279 This change moves the updating of the effective zoom in setZoom() to take place
1280 before the early return due to overwriting with the same value.
1282 Note: the fact that we're apply the zoom property twice is an inefficiency that
1283 we should figure out a way to avoid in the future.
1285 Reviewed by Simon Fraser.
1287 Test: fast/css/zoom-inside-link.html
1289 * rendering/style/RenderStyle.h:
1290 (WebCore::RenderStyle::setZoom):
1292 2014-07-28 Bear Travis <betravis@adobe.com>
1294 [CSS Font Loading] Update Font Loading Code
1295 https://bugs.webkit.org/show_bug.cgi?id=135340
1297 Reviewed by Antti Koivisto.
1299 Update the Font Loading code to build again, as trunk has evolved
1300 since the feature was originally written. Mostly, this requires
1301 updating the code to work with the new Font representation.
1303 The original tests were enabled only for the Chromium port.
1304 They will need to be updated when the feature is enabled by default.
1306 * WebCore.xcodeproj/project.pbxproj: Add missing files.
1307 * css/FontLoader.cpp: Update to new Font representation.
1308 (WebCore::LoadFontCallback::createFromParams):
1309 (WebCore::LoadFontCallback::~LoadFontCallback):
1310 (WebCore::FontLoader::loadFont):
1311 (WebCore::FontLoader::checkFont):
1312 (WebCore::applyPropertyToCurrentStyle):
1313 (WebCore::FontLoader::resolveFontStyle):
1315 2014-07-28 Wenson Hsieh <wenson_hsieh@apple.com>
1317 Let WheelEvent wrap a PlatformWheelEvent
1318 https://bugs.webkit.org/show_bug.cgi?id=135244
1320 WheelEvent now wraps a PlatformWheelEvent. m_directionInvertedFromDevice, as well as m_phase and m_momentumPhase
1321 have been removed, since the information is redundant in PlatformWheelEvent. Note that deltaX and deltaY have
1322 NOT been replaced, since we need double precision instead of float precision.
1324 Reviewed by Beth Dakin.
1326 No new tests, since behavior should not have changed.
1328 * dom/WheelEvent.cpp:
1329 (WebCore::WheelEvent::WheelEvent):
1330 (WebCore::WheelEvent::initWheelEvent):
1332 (WebCore::WheelEvent::wheelEvent): Returns a non-null pointer to the PlatformWheelEvent iff WheelEvent was initialized by PlatformWheelEvent.
1333 (WebCore::WheelEvent::webkitDirectionInvertedFromDevice): Updated to use PlatformWheelEvent.
1334 (WebCore::WheelEvent::phase): Updated to use PlatformWheelEvent.
1335 (WebCore::WheelEvent::momentumPhase): Updated to use PlatformWheelEvent.
1337 2014-07-28 Brent Fulgham <bfulgham@apple.com>
1339 Unreviewed 'merge' fix.
1341 * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
1342 Correct line endings to allow EWS merges again.
1344 2014-07-28 Zoltan Horvath <zoltan@webkit.org>
1346 [CSS3-Text] Adjust text-justify implementation to the latest spec
1347 https://bugs.webkit.org/show_bug.cgi?id=135317
1349 Reviewed by Darin Adler.
1351 Text-justify no longer accepts the following values: Inter-ideograph, inter-
1352 cluster, and kashida. This patch removes them and updates the tests as well.
1354 [1] http://dev.w3.org/csswg/css-text-3/#propdef-text-justify
1356 Updated existing tests.
1358 * css/CSSParser.cpp:
1359 (WebCore::isValidKeywordPropertyAndValue):
1360 * css/CSSPrimitiveValueMappings.h:
1361 (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1362 (WebCore::CSSPrimitiveValue::operator TextJustify):
1363 * css/CSSValueKeywords.in:
1364 * rendering/style/RenderStyle.cpp:
1365 (WebCore::RenderStyle::changeRequiresLayout):
1366 * rendering/style/RenderStyleConstants.h:
1367 * rendering/style/StyleRareInheritedData.h:
1369 2014-07-28 Radu Stavila <stavila@adobe.com>
1371 REGRESSION (r169105): Crash in selection
1372 https://bugs.webkit.org/show_bug.cgi?id=134303
1374 Reviewed by Mihnea Ovidenie.
1376 When splitting the selection between different subtrees, all subtrees must have their selection cleared before
1377 starting to apply the new selection. Otherwise, when selecting objects in a named flow thread and going up
1378 its containing block chain, we can end up in the view's selection root, which has not yet been updated and so
1379 we get inconsistent data.
1381 To achieve this goal, the selection update was split into a "clear" and an "apply" method. The updateSelectionForSubtrees
1382 method first iterates through all subtrees and performs the "clear" method and then starts all over again
1383 and performs the "apply" method.
1385 Test: fast/regions/selection/crash-deselect.html
1387 * WebCore.xcodeproj/project.pbxproj:
1388 * rendering/RenderSelectionInfo.h:
1389 * rendering/RenderView.cpp:
1390 (WebCore::RenderView::setSelection):
1391 (WebCore::RenderView::splitSelectionBetweenSubtrees):
1392 (WebCore::RenderView::updateSelectionForSubtrees): Added, clears and re-applies selection for all selection subtrees.
1393 (WebCore::RenderView::clearSubtreeSelection): Added, clears selection and returns previously selected information.
1394 (WebCore::RenderView::applySubtreeSelection): Added, updates the selection status of all objects inside the selection tree, compares old and new data and repaints accordingly.
1395 (WebCore::RenderView::setSubtreeSelection): Deleted.
1396 * rendering/RenderView.h:
1397 * rendering/SelectionSubtreeRoot.cpp:
1398 (WebCore::SelectionSubtreeRoot::SelectionSubtreeRoot):
1399 * rendering/SelectionSubtreeRoot.h:
1400 (WebCore::SelectionSubtreeRoot::OldSelectionData::OldSelectionData):
1402 2014-07-28 Yusuke Suzuki <utatane.tea@gmail.com>
1404 CSS: Fix :visited behavior for SubSelectors
1405 https://bugs.webkit.org/show_bug.cgi?id=135324
1407 Reviewed by Benjamin Poulain.
1409 Disable :visited match for the selectors that has SubSelectors.
1411 Tests: fast/history/nested-visited-test-complex.html
1412 fast/history/sibling-visited-test-complex.html
1414 * css/SelectorChecker.cpp:
1415 (WebCore::SelectorChecker::matchRecursively):
1417 2014-07-27 Ryuan Choi <ryuan.choi@samsung.com>
1419 Remove GraphicsSurfaceGLX.cpp
1420 https://bugs.webkit.org/show_bug.cgi?id=135279
1422 Reviewed by Darin Adler.
1424 GraphicsSurfaceGLX.cpp is not used since Qt dropped and Efl port changed at r146458
1426 * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp: Removed.
1428 2014-07-27 Bruno de Oliveira Abinader <bruno.d@partner.samsung.com>
1430 Support for :enabled selector on Anchor & Area elements
1431 https://bugs.webkit.org/show_bug.cgi?id=134826
1433 Reviewed by Darin Adler.
1435 Updates the PseudoClassEnabled selector checker to check for Anchor & Area
1436 elements with a 'href' attribute.
1438 Spec: http://html.spec.whatwg.org/#selector-enabled
1440 Test: fast/css/css-selector-enabled-links.html
1442 * css/SelectorCheckerTestFunctions.h:
1443 (WebCore::isEnabled): Added check for anchor & area elements.
1445 2014-07-27 Daniel Bates <dabates@apple.com>
1447 [WK2] Crash when accessing window.localStorage after calling window.close()
1448 https://bugs.webkit.org/show_bug.cgi?id=135328
1449 <rdar://problem/17315237>
1451 Reviewed by Sam Weinig.
1453 Fixes an issue where accessing local storage for the first time after calling window.close()
1456 For now, we should disallow accessing local storage after calling window.close() regardless of
1457 whether it's the first access to local storage as this seems like a bad idiom to support. Note,
1458 this represents a change in behavior from WebKit1. If such usage of window.localStorage turns
1459 out to be reasonable then we can visit this decision again in <https://bugs.webkit.org/show_bug.cgi?id=135330>.
1461 Tests: storage/domstorage/localstorage/access-storage-after-window-close.html
1462 storage/domstorage/localstorage/access-storage-then-set-value-in-storage-after-window-close.html
1463 storage/domstorage/localstorage/set-value-in-storage-after-window-close.html
1465 * page/DOMWindow.cpp:
1466 (WebCore::DOMWindow::localStorage): Modified to only return the cached local storage or
1467 create a new local storage so long as the page isn't being closed. Also, substitute nullptr
1469 (WebCore::DOMWindow::close): Call Page::setIsClosing() to mark that the page is closing.
1471 (WebCore::Page::Page): Initialize m_isClosing to false.
1473 (WebCore::Page::setIsClosing): Added.
1474 (WebCore::Page::isClosing): Added.
1476 2014-07-27 Filip Pizlo <fpizlo@apple.com>
1478 Merge r170090, r170092, r170129, r170141, r170161, r170215, r170275, r170375, r170376, r170382, r170383, r170399, r170436, r170489, r170490, r170556 from ftlopt.
1480 This fixes the previous mismerge and adds test coverage for the thing that went wrong.
1481 Also, this adds some helpers for making it easier to inspect JavaScript values.
1483 * testing/Internals.cpp:
1484 (WebCore::Internals::description):
1485 * testing/Internals.h:
1486 * testing/Internals.idl:
1488 2014-07-25 Mark Lam <mark.lam@apple.com>
1490 [ftlopt] Renamed DebuggerActivation to DebuggerScope.
1491 <https://webkit.org/b/134273>
1493 Reviewed by Michael Saboff.
1497 * ForwardingHeaders/debugger/DebuggerActivation.h: Removed.
1498 - Removed because this is not used.
1500 2014-07-26 Brian J. Burg <burg@cs.washington.edu>
1502 Web Replay: log and enforce session/segment state machine transitions
1503 https://bugs.webkit.org/show_bug.cgi?id=135224
1505 Reviewed by Timothy Hatcher.
1507 For debugging purposes, log session and segment state transitions.
1508 Assert that segment state transitions are valid.
1510 No new tests. No behavior was changed.
1512 * replay/ReplayController.cpp:
1513 (WebCore::logDispatchedDOMEvent):
1514 (WebCore::sessionStateToString):
1515 (WebCore::segmentStateToString):
1516 (WebCore::ReplayController::setSessionState):
1517 (WebCore::ReplayController::setSegmentState):
1518 (WebCore::ReplayController::createSegment):
1519 (WebCore::ReplayController::completeSegment): Remove a wrong state transition.
1520 (WebCore::ReplayController::loadSegmentAtIndex):
1521 (WebCore::ReplayController::unloadSegment): Fix a now-erroneous assertion.
1522 (WebCore::ReplayController::startPlayback):
1523 (WebCore::ReplayController::pausePlayback):
1524 (WebCore::ReplayController::willDispatchEvent):
1525 (WebCore::ReplayController::cancelPlayback):
1526 * replay/ReplayController.h:
1528 2014-07-26 Filip Pizlo <fpizlo@apple.com>
1530 Unreviewed, roll out r171641-r171644. It broke some tests; will investigate and
1533 * ForwardingHeaders/debugger/DebuggerActivation.h: Added.
1535 2014-07-26 Timothy Horton <timothy_horton@apple.com>
1537 Crash in Web Content Process under ~PDFDocument under clearTouchEventListeners at topDocument()
1538 https://bugs.webkit.org/show_bug.cgi?id=135319
1539 <rdar://problem/17315168>
1541 Reviewed by Darin Adler and Antti Koivisto.
1545 (WebCore::Document::Document):
1546 (WebCore::Document::prepareForDestruction):
1547 Add a flag on Document, m_hasPreparedForDestruction, which ensures
1548 that each Document only goes through prepareForDestruction() once.
1549 prepareForDestruction() can be called a number of times during teardown,
1550 but it's only necessary to actually execute it once.
1552 This was previously achieved by virtue of all callers of prepareForDestruction()
1553 first checking hasLivingRenderTree, and prepareForDestruction() tearing down
1554 the render tree, but that meant that prepareForDestruction() was not called
1555 for Documents who never had a render tree in the first place.
1557 The only part of prepareForDestruction() that is now predicated on hasLivingRenderTree()
1558 is the call to destroyRenderTree(); the rest of the function has the potential to be relevant
1559 for non-rendered placeholder documents and can safely deal with them in other ways.
1561 It is important to call prepareForDestruction() on non-rendered placeholder documents
1562 because some of the cleanup (like disconnectFromFrame()) is critical to safe destruction.
1564 * loader/FrameLoader.cpp:
1565 (WebCore::FrameLoader::clear):
1566 Call prepareForDestruction() even if we don't have a living render tree.
1567 For the sake of minimizing change, removeFocusedNodeOfSubtree still
1568 depends on having a living render tree before calling prepareForDestruction().
1571 (WebCore::Frame::setView):
1572 (WebCore::Frame::setDocument):
1573 Call prepareForDestruction() even if we don't have a living render tree.
1575 2014-07-25 Filip Pizlo <fpizlo@apple.com>
1577 Merge r170090, r170092, r170129, r170141, r170161, r170215, r170275, r170375, r170376, r170382, r170383, r170399, r170436, r170489, r170490, r170556 from ftlopt.
1579 2014-07-25 Mark Lam <mark.lam@apple.com>
1581 [ftlopt] Renamed DebuggerActivation to DebuggerScope.
1582 <https://webkit.org/b/134273>
1584 Reviewed by Michael Saboff.
1588 * ForwardingHeaders/debugger/DebuggerActivation.h: Removed.
1589 - Removed because this is not used.
1591 2014-07-25 Zalan Bujtas <zalan@apple.com>
1593 Subpixel rendering: Rounded rect gets non-renderable at certain subpixel size.
1594 https://bugs.webkit.org/show_bug.cgi?id=135314
1595 <rdar://problem/17812921>
1597 Reviewed by Tim Horton.
1599 While calculating the rounded rect for painting, the radius is adjusted to compensate
1600 for the pixel snapped size. However while scaling the radius, certain values overflow
1601 (float) mantissa and it produces a non-renderable rounded rect where the radius becomes bigger
1602 than the rectangle dimensions. In such cases, we need to shrink the radius to make it
1605 Test: transitions/rounded-rect-becomes-non-renderable-while-transitioning.html
1607 * platform/graphics/RoundedRect.cpp:
1608 (WebCore::RoundedRect::pixelSnappedRoundedRectForPainting): shrink the radius by
1609 one device pixel. It is as good as any other small value.
1611 2014-07-25 Jer Noble <jer.noble@apple.com>
1613 [EME][Mac] CDM error messages not piped through to MediaKeySession correctly; clients don't receive error events
1614 https://bugs.webkit.org/show_bug.cgi?id=135312
1615 <rdar://problem/17817223>
1617 Reviewed by Brent Fulgham.
1619 Set (and clear) the client interface so that errors can be piped from the CDMSession up to the MediaKeySession.
1621 * Modules/encryptedmedia/MediaKeySession.cpp:
1622 (WebCore::MediaKeySession::MediaKeySession):
1623 (WebCore::MediaKeySession::close):
1625 2014-07-25 Jer Noble <jer.noble@apple.com>
1627 [MSE] Playback stalls & readyState drops to HAVE_CURRENT_DATA at end of stream with unbalanced buffered SourceBuffers
1628 https://bugs.webkit.org/show_bug.cgi?id=135291
1629 <rdar://problem/17715503>
1631 Reviewed by Sam Weinig.
1633 Test: media/media-source/media-source-end-of-stream-buffered.html
1635 When determining the correct ReadyState for the MediaSource in monitorSourceBuffers(), use the same
1636 definition of "buffered" as is used in the calculation of HTMLMediaElement.buffered and in the
1637 Stream Ended algorithm. Namely, when the stream has ended, treat each SourceBuffer as if its last
1638 buffered range extends to the duration of the stream. This allows playback to continue through to
1639 the duration without stalling due to monitorSourceBuffers().
1641 * Modules/mediasource/SourceBuffer.cpp:
1642 (WebCore::SourceBuffer::bufferedAccountingForEndOfStream): Added; extends the last range in buffered
1643 to MediaSource::duration() if the MediaSource is ended.
1644 (WebCore::SourceBuffer::hasCurrentTime): Uses bufferedAccountingForEndOfStream().
1645 (WebCore::SourceBuffer::hasFutureTime): Ditto.
1646 (WebCore::SourceBuffer::canPlayThrough): Ditto.
1647 * Modules/mediasource/SourceBuffer.h:
1649 Add a convenience method for determining whether the MediaSource has ended:
1650 * Modules/mediasource/MediaSource.cpp:
1651 (WebCore::MediaSource::isEnded):
1652 * Modules/mediasource/MediaSource.h:
1654 Add start() and end() methods that don't take a (usually ignored) isValid inout parameter. Add duration()
1655 and maximumBufferedTime() convenience methods:
1656 * platform/graphics/PlatformTimeRanges.cpp:
1657 (WebCore::PlatformTimeRanges::start):
1658 (WebCore::PlatformTimeRanges::end):
1659 (WebCore::PlatformTimeRanges::duration):
1660 (WebCore::PlatformTimeRanges::maximumBufferedTime):
1661 * platform/graphics/PlatformTimeRanges.h:
1663 2014-07-25 Pratik Solanki <psolanki@apple.com>
1665 [iOS] REGRESSION(r171526): Images fail to load sometimes
1666 https://bugs.webkit.org/show_bug.cgi?id=135304
1667 <rdar://problem/17811922>
1669 Reviewed by Alexey Proskuryakov.
1671 SharedBuffer::createCFData() calls data() as a way to coalesce the data array elements and
1672 segments into m_buffer. However, data() has an optimization where if we had a single element
1673 in the data array, it would just return that and not do coalescing. So when we passed
1674 m_buffer to WebCoreSharedData, we passed a buffer with no data in it.
1676 Fix this by bringing the optimization to createCFData() and return the CFDataRef from the
1677 data array if we just have a single element.
1679 No new tests. Should be covered by existing tests.
1681 * platform/mac/SharedBufferMac.mm:
1682 (WebCore::SharedBuffer::createCFData):
1684 2014-07-25 Jer Noble <jer.noble@apple.com>
1686 [MSE] High CPU usage in SampleMap::findSamplesWithinPresentationRange() with a large number of buffered samples.
1687 https://bugs.webkit.org/show_bug.cgi?id=135247
1689 Reviewed by Geoffrey Garen.
1691 Anchor our search for overlapping frames to the end of the search range when the overlap range is sufficiently
1692 close to the end of the search range. The common case for this search is when a sample is about to be appended
1693 to the end of the sample queue, so this should turn most searches into no-ops.
1695 * Modules/mediasource/SampleMap.cpp:
1696 (WebCore::PresentationOrderSampleMap::findSamplesWithinPresentationRangeFromEnd):
1697 * Modules/mediasource/SampleMap.h:
1698 * Modules/mediasource/SourceBuffer.cpp:
1699 (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
1701 2014-07-25 Gavin Barraclough <baraclough@apple.com>
1703 Yosemite version number is 101000
1704 https://bugs.webkit.org/show_bug.cgi?id=135301
1706 Reviewed by Sam Weinig.
1709 * platform/ContentFilter.h:
1710 * platform/mac/ScrollViewMac.mm:
1711 (WebCore::ScrollView::platformVisibleContentRect):
1712 * platform/mac/ThemeMac.mm:
1713 (WebCore::updateStates):
1714 (WebCore::paintToggleButton):
1715 * platform/network/cf/CookieJarCFNet.cpp:
1716 (WebCore::copyCookiesForURLWithFirstPartyURL):
1717 * platform/network/cf/ResourceRequest.h:
1718 (WebCore::ResourceRequest::resourcePrioritiesEnabled):
1719 * rendering/RenderThemeMac.mm:
1720 (WebCore::RenderThemeMac::search):
1722 2014-07-25 David Hyatt <hyatt@apple.com>
1724 [New Multicolumn] RenderViews paginated as RL or LR don't handle percentage widths correctly.
1725 REGRESSION: Images don’t scale to fit in page in vertical text books
1727 https://bugs.webkit.org/show_bug.cgi?id=135204
1728 <rdar://problem/17043792>
1730 Reviewed by Simon Fraser.
1732 Added fast/multicol/pagination/RightToLeft-max-width.html
1734 * rendering/RenderView.cpp:
1735 (WebCore::RenderView::availableLogicalHeight):
1736 Put back in the same code that used to exist for the old columns (but ported to the new
1739 2014-07-25 Dan Bernstein <mitz@apple.com>
1741 [Mac] Unneeded MobileMe workaround in ResourceHandle::receivedCredential
1742 https://bugs.webkit.org/show_bug.cgi?id=135297
1744 Reviewed by Alexey Proskuryakov.
1746 * platform/network/mac/ResourceHandleMac.mm:
1747 (WebCore::ResourceHandle::receivedCredential): Removed the site-specific behavior for
1750 2014-07-25 Commit Queue <commit-queue@webkit.org>
1752 Unreviewed, rolling out r171480.
1753 https://bugs.webkit.org/show_bug.cgi?id=135300
1755 it broke replaced elements in pagination (Requested by dhyatt_
1760 "Ensure we compute the min and max height of replaced elements
1761 to 'none' or 0 when appropriate."
1762 https://bugs.webkit.org/show_bug.cgi?id=135181
1763 http://trac.webkit.org/changeset/171480
1765 2014-07-25 Commit Queue <commit-queue@webkit.org>
1767 Unreviewed, rolling out r171587.
1768 https://bugs.webkit.org/show_bug.cgi?id=135294
1770 Made fast/dom/HTMLObjectElement/beforeload-set-text-
1771 crash.xhtml crash again (Requested by ap on #webkit).
1775 "REGRESSION (r169105): Crash in selection"
1776 https://bugs.webkit.org/show_bug.cgi?id=134303
1777 http://trac.webkit.org/changeset/171587
1779 2014-07-25 Dan Bernstein <mitz@apple.com>
1781 ResourceErrorBase::compare doesn’t call the right platformCompare override
1782 https://bugs.webkit.org/show_bug.cgi?id=135240
1784 Reviewed by Alexey Proskuryakov.
1786 * platform/network/ResourceErrorBase.cpp:
1787 (WebCore::ResourceErrorBase::compare): Changed to call ResourceError::platformCompare.
1788 * platform/network/cf/ResourceError.h: Made platformCompare public.
1789 * platform/network/soup/ResourceError.h: Ditto.
1791 2014-07-25 Dan Bernstein <mitz@apple.com>
1793 [Cocoa] WebProtectionSpace::receivesCredentialSecurely incorrectly returns false in some cases
1794 https://bugs.webkit.org/show_bug.cgi?id=135241
1796 Reviewed by Alexey Proskuryakov.
1798 * WebCore.exp.in: Export ProtectionSpace::receivesCredentialSecurely.
1800 * platform/network/cocoa/ProtectionSpaceCocoa.h: Declare override of receivesCredentialSecurely.
1801 * platform/network/cocoa/ProtectionSpaceCocoa.mm:
1802 (WebCore::ProtectionSpace::receivesCredentialSecurely): Use -[NSURLProtectionSpace receivesCredentialSecurely].
1804 2014-07-25 Zalan Bujtas <zalan@apple.com>
1806 Subpixel rendering: iOS video playback controls look blurry.
1807 https://bugs.webkit.org/show_bug.cgi?id=135245
1808 <rdar://problem/16878037>
1810 Reviewed by Simon Fraser.
1812 This patch introduces a compositing parent of the overlay control panel so that
1813 the transformed overlay panel becomes sharp. This is a workaround for webkit.org/b/135246.
1815 Can't find a way to test it yet.
1817 * Modules/mediacontrols/mediaControlsApple.css:
1818 (video::-webkit-media-controls-panel-composited-parent):
1819 * Modules/mediacontrols/mediaControlsApple.js:
1820 (Controller.prototype.createControls):
1821 (Controller.prototype.addControls):
1822 * Modules/mediacontrols/mediaControlsiOS.css:
1823 (video::-webkit-media-controls-panel-composited-parent):
1824 * Modules/mediacontrols/mediaControlsiOS.js: This is a workaround for webkit.org/b/135248
1825 It pushes the overlay panel down to close the gap with the video element. Since the
1826 panel's size in css pixels is scale dependent, the gap needs to be scale dependent too.
1827 (ControllerIOS.prototype.set pageScaleFactor):
1829 2014-07-24 Dirk Schulze <krit@webkit.org>
1831 Turn x/y to presentation attributes
1832 https://bugs.webkit.org/show_bug.cgi?id=135215
1834 Reviewed by Dean Jackson.
1836 This follows the patch for width and height presentation attributes and
1837 turns x and y to presentation attributes as well:
1839 http://trac.webkit.org/changeset/171341
1841 Tests: svg/css/parse-length.html
1842 transitions/svg-layout-transition.html
1844 Added copyright where I forgot it in previous patch.
1846 * css/CSSComputedStyleDeclaration.cpp: Computed style of x and y.
1847 (WebCore::ComputedStyleExtractor::propertyValue):
1848 * css/CSSParser.cpp:
1849 (WebCore::isSimpleLengthPropertyID): Add x and y to list.
1850 * css/DeprecatedStyleBuilder.cpp:
1851 (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder): Resolve x and y.
1852 * css/SVGCSSParser.cpp:
1853 (WebCore::CSSParser::parseSVGValue): Parse x and y property.
1854 * css/SVGCSSPropertyNames.in: Add x and y to list of names.
1855 * css/StyleResolver.h:
1856 * page/animation/CSSPropertyAnimation.cpp: Animate x and y as Length.
1857 (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
1858 * rendering/style/RenderStyle.h: Add x and y setters and getters.
1859 * rendering/style/SVGRenderStyle.cpp: Add x and y setters for StyleLayoutData.
1860 (WebCore::SVGRenderStyle::SVGRenderStyle):
1861 (WebCore::SVGRenderStyle::operator==):
1862 (WebCore::SVGRenderStyle::copyNonInheritedFrom):
1863 (WebCore::SVGRenderStyle::diff):
1864 * rendering/style/SVGRenderStyle.h:
1865 (WebCore::SVGRenderStyle::setX):
1866 (WebCore::SVGRenderStyle::setY):
1867 (WebCore::SVGRenderStyle::x):
1868 (WebCore::SVGRenderStyle::y):
1869 * rendering/style/SVGRenderStyleDefs.cpp: Add StyleLayoutData for style storing.
1870 (WebCore::StyleLayoutData::StyleLayoutData):
1871 (WebCore::StyleLayoutData::copy):
1872 (WebCore::StyleLayoutData::operator==):
1873 * rendering/style/SVGRenderStyleDefs.h:
1874 (WebCore::StyleLayoutData::create):
1875 (WebCore::StyleLayoutData::operator!=):
1876 * rendering/svg/RenderSVGRect.cpp:
1877 (WebCore::RenderSVGRect::updateShapeFromElement):
1878 * rendering/svg/SVGPathData.cpp: Use RenderStyle values rather than attribute values.
1879 (WebCore::updatePathFromRectElement):
1880 * svg/SVGAnimationElement.cpp:
1881 (WebCore::SVGAnimationElement::isTargetAttributeCSSProperty): Fix text detection.
1882 * svg/SVGElement.cpp: Add x and y to the relevant property lists.
1883 (WebCore::populateAttributeNameToCSSPropertyIDMap):
1884 (WebCore::populateCSSPropertyWithSVGDOMNameToAnimatedPropertyTypeMap):
1885 * svg/SVGFilterElement.cpp: Style update on change of x and y.
1886 (WebCore::SVGFilterElement::svgAttributeChanged):
1887 * svg/SVGMaskElement.cpp: Ditto.
1888 (WebCore::SVGMaskElement::svgAttributeChanged):
1889 * svg/SVGPatternElement.cpp: Ditto.
1890 (WebCore::SVGPatternElement::svgAttributeChanged):
1891 * svg/SVGRectElement.cpp: Ditto.
1892 (WebCore::SVGRectElement::svgAttributeChanged):
1893 * svg/SVGTextPositioningElement.cpp: Exclude x and y of text elements since they
1894 are lists instead of individual values. Solution about to be discussed
1895 in the WG. Keep current behavior for now.
1896 (WebCore::SVGTextPositioningElement::collectStyleForPresentationAttribute):
1897 (WebCore::SVGTextPositioningElement::isPresentationAttribute):
1898 * svg/SVGTextPositioningElement.h:
1900 2014-07-24 Yusuke Suzuki <utatane.tea@gmail.com>
1902 CSS JIT: Implement Pseudo Element
1903 https://bugs.webkit.org/show_bug.cgi?id=134835
1905 Reviewed by Benjamin Poulain.
1907 Implement Pseudo Element handling for CSS JIT SelectorCompiler.
1908 At first, we start with the simple implementation. We handle limited number of pseudo element,
1909 before, after, first-line, first-letter.
1911 Tests: fast/selectors/pseudo-element-inside-any.html
1912 fast/selectors/querySelector-pseudo-element-inside-functional-pseudo-class-any.html
1913 fast/selectors/querySelector-pseudo-element-inside-functional-pseudo-class-not.html
1914 fast/selectors/querySelector-pseudo-element.html
1916 * css/ElementRuleCollector.cpp:
1917 (WebCore::ElementRuleCollector::ruleMatches):
1918 * css/SelectorChecker.cpp:
1919 (WebCore::SelectorChecker::matchRecursively):
1920 * cssjit/SelectorCompiler.cpp:
1921 (WebCore::SelectorCompiler::SelectorFragment::SelectorFragment):
1922 (WebCore::SelectorCompiler::constructFragments):
1923 (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
1924 (WebCore::SelectorCompiler::SelectorCodeGenerator::loadCheckingContext):
1925 (WebCore::SelectorCompiler::SelectorCodeGenerator::branchOnResolvingModeWithCheckingContext):
1926 (WebCore::SelectorCompiler::SelectorCodeGenerator::branchOnResolvingMode):
1927 (WebCore::SelectorCompiler::SelectorCodeGenerator::jumpIfNotResolvingStyle):
1928 (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
1929 (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsActive):
1930 (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsHovered):
1931 (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasPseudoElement):
1932 (WebCore::SelectorCompiler::SelectorCodeGenerator::generateRequestedPseudoElementEqualsToSelectorPseudoElement):
1933 (WebCore::SelectorCompiler::SelectorCodeGenerator::generateMarkPseudoStyleForPseudoElement):
1934 * cssjit/SelectorCompiler.h:
1935 * rendering/style/RenderStyle.h:
1936 * rendering/style/RenderStyleConstants.h:
1938 2014-07-24 Radu Stavila <stavila@adobe.com>
1940 REGRESSION (r169105): Crash in selection
1941 https://bugs.webkit.org/show_bug.cgi?id=134303
1943 Patch by Radu Stavila <stavila@adobe.com> on 2014-07-24
1944 Reviewed by David Hyatt.
1946 When splitting the selection between different subtrees, all subtrees must have their selection cleared before
1947 starting to apply the new selection. Otherwise, when selecting objects in a named flow thread and going up
1948 its containing block chain, we can end up in the view's selection root, which has not yet been updated and so
1949 we get inconsistent data.
1951 To achieve this goal, the selection update was split into a "clear" and an "apply" method. The updateSelectionForSubtrees
1952 method first iterates through all subtrees and performs the "clear" method and then starts all over again
1953 and performs the "apply" method.
1955 Test: fast/regions/selection/crash-deselect.html
1957 * WebCore.xcodeproj/project.pbxproj:
1958 * rendering/RenderSelectionInfo.h:
1959 * rendering/RenderView.cpp:
1960 (WebCore::RenderView::setSelection):
1961 (WebCore::RenderView::splitSelectionBetweenSubtrees):
1962 (WebCore::RenderView::updateSelectionForSubtrees): Added, clears and re-applies selection for all selection subtrees.
1963 (WebCore::RenderView::clearSubtreeSelection): Added, clears selection and returns previously selected information.
1964 (WebCore::RenderView::applySubtreeSelection): Added, updates the selection status of all objects inside the selection tree, compares old and new data and repaints accordingly.
1965 (WebCore::RenderView::setSubtreeSelection): Deleted.
1966 * rendering/RenderView.h:
1967 * rendering/SelectionSubtreeRoot.cpp:
1968 (WebCore::SelectionSubtreeRoot::SelectionSubtreeRoot):
1969 * rendering/SelectionSubtreeRoot.h:
1970 (WebCore::SelectionSubtreeRoot::OldSelectionData::OldSelectionData):
1972 2014-07-24 Ryosuke Niwa <rniwa@webkit.org>
1974 REGRESSION(r164401): Placing a caret doesn't bring up autocorrection panel
1975 https://bugs.webkit.org/show_bug.cgi?id=135278
1977 Reviewed by Tim Horton.
1979 The bug was caused by editorUIUpdateTimerFired calling respondToChangedSelection only if the selection was
1980 triggered by dictation instead of only if it was NOT triggered by dictation.
1982 Prior to r164401, AlternativeTextController::respondToMarkerAtEndOfWord exited early when SetSelectionOptions
1983 had DictationTriggered set. r164401 intended to move this check to editorUIUpdateTimerFired to avoid passing
1984 options around but the boolean condition was erroneously flipped.
1986 Fixed the bug by negating the condition in editorUIUpdateTimerFired.
1988 No new tests for now since autocorrection panel cannot be tested automatically. (We should really automate this!)
1990 * editing/Editor.cpp:
1991 (WebCore::Editor::editorUIUpdateTimerFired):
1993 2014-07-24 Pratik Solanki <psolanki@apple.com>
1995 REGRESSION(r171526): [GTK] Massive crashes.
1996 https://bugs.webkit.org/show_bug.cgi?id=135283
1998 Unreviewed. GTK build fix after r171526. Initialize m_buffer in SharedBuffer constructor.
2000 * platform/soup/SharedBufferSoup.cpp:
2001 (WebCore::SharedBuffer::SharedBuffer):
2003 2014-07-24 Tim Horton <timothy_horton@apple.com>
2005 Crashes under scanSelectionForTelephoneNumbers in Range::text() on some sites
2006 https://bugs.webkit.org/show_bug.cgi?id=135281
2007 <rdar://problem/17803347>
2009 Reviewed by Ryosuke Niwa.
2011 * editing/Editor.cpp:
2012 (WebCore::Editor::scanSelectionForTelephoneNumbers):
2013 toNormalizedRange is not guaranteed to return a non-null range.
2014 If it returns null, pass the empty markedRanges down to the client as our new set.
2016 2014-07-24 Dan Bernstein <mitz@apple.com>
2018 WebCore part of <rdar://problem/17593701> Assertion failure in WebPage::reload (!m_pendingNavigationID) when reloading after a same-document back navigation
2019 https://bugs.webkit.org/show_bug.cgi?id=135129
2021 Reviewed by Darin Adler.
2023 * WebCore.exp.in: Exported equalIgnoringFragmentIdentifier(const URL&, const URL&).
2025 2014-07-24 Simon Fraser <simon.fraser@apple.com>
2027 [iOS WK1] CSS viewport units use the wrong viewport size in WebKit1
2028 https://bugs.webkit.org/show_bug.cgi?id=135254
2029 <rdar://problem/17781423>
2031 Reviewed by Tim Horton.
2033 Test: fast/css/viewport-units-dynamic.html
2035 In WebKit1 on iOS, we want to resolve viewport units against the visible
2036 viewport, not the legacy WK1 notion of the "viewport" which is the entire document.
2038 Fixes rendering of medium.com articles in WK1 views on iPad.
2040 * page/FrameView.cpp:
2041 (WebCore::FrameView::viewportSizeForCSSViewportUnits):
2043 2014-07-24 Myles C. Maxfield <mmaxfield@apple.com>
2045 Crash when measuring a glyphs from a fallback SVG font
2046 https://bugs.webkit.org/show_bug.cgi?id=135264
2048 Reviewed by Simon Fraser.
2050 We can't realize font data for all fallback fonts ahead
2051 of time, but we don't have all the necessary context to
2052 realize SVG fallback data when it's needed. For now, we
2053 can just bail; however, a larger, more invasive fix is
2056 Test: svg/text/svg-fallback-font-crash.html
2058 * platform/graphics/WidthIterator.cpp:
2059 (WebCore::applyFontTransforms):
2061 2014-07-24 Daniel Bates <dabates@apple.com>
2062 And Alexey Proskuryakov <ap@apple.com>
2064 [iOS] REGRESSION (WebKit2): Can't login to Wordpress.com, facebook.com when always allowing cookies
2065 https://bugs.webkit.org/show_bug.cgi?id=135273
2066 <rdar://problem/17598815>
2068 Reviewed by Alexey Proskuryakov.
2070 Fixes an issue where cookies may be created in the wrong cookie store.
2072 Currently, when we update the CFURLRequest object associated with a ResourceRequest object
2073 we explicitly set a cookie storage, cookie accept policy, and SSL properties based on the
2074 corresponding values in the old CFURLRequest object (if we have one). This ultimately leads
2075 to CFNetwork associating the cookies for the request with a different cookie store when we
2076 handle the request in the NetworkProcess. Instead, we shouldn't set these properties
2077 explicitly as we already copy them implicitly earlier (via CFURLRequestCreateMutableCopy()).
2079 * platform/network/cf/ResourceRequestCFNet.cpp:
2080 (WebCore::ResourceRequest::doUpdatePlatformRequest):
2082 2014-07-24 Peyton Randolph <prandolph@apple.com>
2084 Rename feature flag for long-press gesture on Mac.
2085 https://bugs.webkit.org/show_bug.cgi?id=135259
2087 Reviewed by Beth Dakin.
2089 * Configurations/FeatureDefines.xcconfig:
2090 Rename LINK_LONG_PRESS to MAC_LONG_PRESS.
2092 2014-07-24 Dan Bernstein <mitz@apple.com>
2094 Fixed Windows build fix.
2096 * platform/network/cf/AuthenticationCF.cpp:
2098 2014-07-24 Dan Bernstein <mitz@apple.com>
2100 Attempted Windows build fix.
2102 * platform/network/cf/AuthenticationCF.cpp:
2103 (WebCore::AuthenticationChallenge::AuthenticationChallenge):
2104 * platform/network/cf/CredentialStorageCFNet.cpp:
2105 (WebCore::CredentialStorage::getFromPersistentStorage):
2106 * platform/network/cf/ProtectionSpaceCFNet.cpp:
2107 (WebCore::ProtectionSpace::receivesCredentialSecurely):
2108 (WebCore::ProtectionSpaceBase::receivesCredentialSecurely): Deleted.
2110 2014-07-24 Dan Bernstein <mitz@apple.com>
2112 <rdar://problem/17766348> [Cocoa] WebCore::ProtectionSpace doesn’t preserve all NSURLProtectionSpace properties, such as the distinguishedNames array
2113 https://bugs.webkit.org/show_bug.cgi?id=135229
2115 Reviewed by Alexey Proskuryakov.
2117 * CMakeLists.txt: Updated for rename of a source file.
2119 * WebCore.exp.in: Updated.
2121 * WebCore.vcxproj/WebCore.vcxproj: Updated for rename of source files, added
2122 ProtectionSpaceCFNet.{cpp,h}.
2123 * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
2125 * WebCore.xcodeproj/project.pbxproj: Updated for rename of source files, added
2126 ProtectionSpaceCococa.{h.mm}.
2128 * platform/network/ProtectionSpace.cpp: Renamed to ProtectionSpaceBase.cpp.
2129 * platform/network/ProtectionSpace.h: This file was renamed to ProtectionSpaceBase.h, and
2130 in its place added a generic ProtectionSpace class that just derives from
2131 ProtectionSpaceBase. For Cocoa and CFNetwork, ProtectionSpace{Cocoa,CFNet}.h is included
2132 instead of the generic class.
2134 * platform/network/ProtectionSpaceBase.cpp: Renamed ProtectionSpace.cpp to this.
2135 (WebCore::ProtectionSpaceBase::ProtectionSpaceBase): Updated for rename.
2136 (WebCore::ProtectionSpaceBase::host): Ditto.
2137 (WebCore::ProtectionSpaceBase::port): Ditto.
2138 (WebCore::ProtectionSpaceBase::serverType): Ditto.
2139 (WebCore::ProtectionSpaceBase::isProxy): Ditto.
2140 (WebCore::ProtectionSpaceBase::realm): Ditto.
2141 (WebCore::ProtectionSpaceBase::authenticationScheme): Ditto.
2142 (WebCore::ProtectionSpaceBase::receivesCredentialSecurely): Removed CFNetwork-specific part,
2143 which is now implemented in ProtectionSpaceCFNet.cpp.
2144 (WebCore::ProtectionSpaceBase::compare): Replaced operator== with this, and made it call
2145 ProtectionSpace::platformCompare at the end if needed.
2147 * platform/network/ProtectionSpaceBase.h: Renamed ProtectionSpace.h to this.
2148 (WebCore::ProtectionSpaceBase::encodingRequiresPlatformData): Added with a default
2149 implementation that returns false, for ProtectionSpace implementations to override.
2150 (WebCore::ProtectionSpaceBase::platformCompare): Added with a default implementation that
2151 returns true, for ProtectionSpace implementations to override.
2152 (WebCore::operator==): Changed to call compare.
2154 * platform/network/cf/AuthenticationCF.cpp:
2155 (WebCore::AuthenticationChallenge::AuthenticationChallenge): Changed to use the
2156 ProtectionSpace constructor that takes a CFURLProtectionSpaceRef.
2157 (WebCore::createCF): Changed to use ProtectionSpace::cfSpace.
2159 * platform/network/cf/AuthenticationCF.h: Guarded a couple of functiosn that aren’t used in
2160 Cocoa with #if PLATFORM(WIN).
2162 * platform/network/cf/CredentialStorageCFNet.cpp:
2163 (WebCore::CredentialStorage::getFromPersistentStorage): Changed to use
2164 ProtectionSpace::cfSpace.
2165 (WebCore::CredentialStorage::saveToPersistentStorage): Ditto.
2167 * platform/network/cf/ProtectionSpaceCFNet.cpp: Added.
2168 (WebCore::ProtectionSpaceBase::receivesCredentialSecurely): Override with the
2169 CFNetwork-specific test that was previously in ProtectionSpace.cpp.
2171 * platform/network/cf/ProtectionSpaceCFNet.h: Copied from Source/WebCore/platform/network/ProtectionSpace.h.
2172 Declare ProtectionSpace and override receivesCredentialSecurely.
2174 * platform/network/mac/AuthenticationMac.h: Deleted the ProtectionSpace core() and mac().
2175 * platform/network/mac/AuthenticationMac.mm:
2176 (WebCore::AuthenticationChallenge::AuthenticationChallenge): Changed to use the
2177 ProtectionSpace constructor that takes an NSURLProtectionSpace.
2178 (WebCore::mac): Changed to use ProtectionSpace::nsSpace.
2180 * platform/network/mac/CredentialStorageMac.mm:
2181 (WebCore::CredentialStorage::getFromPersistentStorage): Ditto.
2183 * platform/network/mac/ResourceHandleMac.mm:
2184 (WebCore::ResourceHandle::receivedCredential): Changed to use the ProtectionSpace
2185 constructor that takes an NSURLProtectionSpace.
2187 * platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
2188 (-[WebCoreResourceHandleAsDelegate connection:canAuthenticateAgainstProtectionSpace:]):
2191 * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
2192 (-[WebCoreResourceHandleAsOperationQueueDelegate connection:canAuthenticateAgainstProtectionSpace:]):
2195 2014-07-24 Benjamin Poulain <benjamin@webkit.org>
2197 [WK2] Fixed/Sticky layers can get mispositioned when the layer tree commit change their position or size
2198 https://bugs.webkit.org/show_bug.cgi?id=135227
2199 <rdar://problem/17279500>
2201 Reviewed by Simon Fraser.
2203 Keep track of the creation/destruction of Fixed and Sticky nodes in the ScrollingTree.
2205 * page/scrolling/ScrollingTree.cpp:
2206 (WebCore::ScrollingTree::ScrollingTree):
2207 * page/scrolling/ScrollingTree.h:
2208 (WebCore::ScrollingTree::hasFixedOrSticky):
2209 (WebCore::ScrollingTree::fixedOrStickyNodeAdded):
2210 (WebCore::ScrollingTree::fixedOrStickyNodeRemoved):
2211 * page/scrolling/mac/ScrollingTreeFixedNode.mm:
2212 (WebCore::ScrollingTreeFixedNode::ScrollingTreeFixedNode):
2213 (WebCore::ScrollingTreeFixedNode::~ScrollingTreeFixedNode):
2214 * page/scrolling/mac/ScrollingTreeStickyNode.mm:
2215 (WebCore::ScrollingTreeStickyNode::ScrollingTreeStickyNode):
2216 (WebCore::ScrollingTreeStickyNode::~ScrollingTreeStickyNode):
2218 2014-07-24 Wenson Hsieh <wenson_hsieh@apple.com>
2220 Let WheelEvent wrap a PlatformWheelEvent
2221 https://bugs.webkit.org/show_bug.cgi?id=135244
2223 When WheelEvent is initialized with a PlatformWheelEvent, store that PlatformWheelEvent for future use.
2225 Reviewed by Beth Dakin.
2227 No new tests because behavior should not have changed.
2229 * dom/WheelEvent.cpp: Added method to access the PlatformWheelEvent.
2230 (WebCore::WheelEvent::WheelEvent):
2231 * dom/WheelEvent.h: Added field to store PlatformWheelEvent, if initialized via PlatformWheelEvent.
2232 (WebCore::WheelEvent::wheelEvent):
2234 2014-07-24 Brian J. Burg <burg@cs.washington.edu>
2236 Web Replay: don't encode/decode primitive types that lack explicit sizes
2237 https://bugs.webkit.org/show_bug.cgi?id=133430
2239 Reviewed by Anders Carlsson.
2241 Remove uses of unsigned long in encode/decode methods because the type lacks an
2242 explicit size. Move frame index serialization away from using unsigned long.
2244 * replay/ReplayController.cpp:
2245 (WebCore::logDispatchedDOMEvent): Fix the format string.
2246 * replay/SerializationMethods.cpp:
2247 (WebCore::frameIndexFromDocument):
2248 (WebCore::frameIndexFromFrame):
2249 (WebCore::documentFromFrameIndex):
2250 (WebCore::frameFromFrameIndex):
2251 (JSC::EncodingTraits<PluginData>::encodeValue):
2252 (JSC::EncodingTraits<PluginData>::decodeValue):
2253 * replay/SerializationMethods.h:
2254 * replay/WebInputs.json: Remove primitive types without explicit sizes.
2256 2014-07-24 Pratik Solanki <psolanki@apple.com>
2258 Sharing SharedBuffer between WebCore and ImageIO is racy and crash prone
2259 https://bugs.webkit.org/show_bug.cgi?id=135069
2260 <rdar://problem/17470655>
2262 Reviewed by Simon Fraser.
2264 When passing image data to ImageIO for decoding, we pass an NSData subclass that is a wraper
2265 around SharedBuffer. This can be a problem when ImageIO tries to access the data on the CA
2266 thread. End result is data corruption on large image loads and potential crashes. The fix is
2267 to have SharedBuffer create a copy of its data if the data has been passed to ImageIO and
2268 might be accessed concurrently.
2270 Since Vector is not refcounted, we do this by having a new refcounted object in SharedBuffer
2271 that contains the buffer and we pass that in our NSData subclass WebCoreSharedBufferData.
2272 Code that would result in the Vector memory moving e.g. append(), resize(), now checks to
2273 see if the buffer was shared and if so, will create a new copy of the vector. This ensures
2274 that the main thread does not end up invalidating the vector memory that we have passed it
2277 No new tests because no functional changes.
2279 * loader/cache/CachedResource.cpp:
2280 (WebCore::CachedResource::makePurgeable):
2281 Remove early return - createPurgeableMemory() has the correct check now.
2282 * platform/SharedBuffer.cpp:
2283 (WebCore::SharedBuffer::SharedBuffer):
2284 (WebCore::SharedBuffer::adoptVector):
2285 (WebCore::SharedBuffer::createPurgeableBuffer):
2286 Don't create purgeable buffer if we are sharing the buffer.
2287 (WebCore::SharedBuffer::append):
2288 (WebCore::SharedBuffer::clear):
2289 (WebCore::SharedBuffer::copy):
2290 (WebCore::SharedBuffer::duplicateDataBufferIfNecessary): Added.
2291 Create a new copy of the data if we have shared the buffer and if appending to it would
2292 exceed the capacity of the vector resulting in memmove.
2293 (WebCore::SharedBuffer::appendToInternalBuffer): Added.
2294 (WebCore::SharedBuffer::clearInternalBuffer): Added.
2295 (WebCore::SharedBuffer::buffer):
2296 Create a new copy of the buffer if we have shared it.
2297 (WebCore::SharedBuffer::getSomeData):
2298 * platform/SharedBuffer.h:
2299 * platform/cf/SharedBufferCF.cpp:
2300 (WebCore::SharedBuffer::SharedBuffer):
2301 (WebCore::SharedBuffer::singleDataArrayBuffer):
2302 (WebCore::SharedBuffer::maybeAppendDataArray):
2303 * platform/mac/SharedBufferMac.mm:
2304 Pass the InternalBuffer object to WebCoreSharedBufferData
2305 (-[WebCoreSharedBufferData dealloc]):
2306 (-[WebCoreSharedBufferData initWithSharedBufferInternalBuffer:]):
2307 (-[WebCoreSharedBufferData length]):
2308 (-[WebCoreSharedBufferData bytes]):
2309 (WebCore::SharedBuffer::createNSData):
2310 Call createCFData() instead of duplicating code.
2311 (WebCore::SharedBuffer::createCFData):
2312 If the data is in purgeable memory, make a copy of it since m_buffer was cleared when
2313 creating the purgeable buffer.
2314 (-[WebCoreSharedBufferData initWithSharedBuffer:]): Deleted.
2316 2014-07-24 peavo@outlook.com <peavo@outlook.com>
2318 [Curl] Enable file logging.
2319 https://bugs.webkit.org/show_bug.cgi?id=135202
2321 Reviewed by Alex Christensen.
2323 The Curl api offers the possibility to write log messages to file. Enable this for debugging purposes.
2325 * platform/network/curl/ResourceHandleManager.cpp:
2326 (WebCore::ResourceHandleManager::ResourceHandleManager):
2327 (WebCore::ResourceHandleManager::~ResourceHandleManager):
2328 (WebCore::ResourceHandleManager::initializeHandle):
2329 * platform/network/curl/ResourceHandleManager.h:
2331 2014-07-24 Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com>
2333 Sort WebCore.exp.in after r171252
2334 https://bugs.webkit.org/show_bug.cgi?id=135239
2336 Reviewed by Csaba Osztrogonác.
2340 2014-07-24 Mihnea Ovidenie <mihnea@adobe.com>
2342 [New Multicolumn] Assertion failure when an input element has multicolumn style
2343 https://bugs.webkit.org/show_bug.cgi?id=135234
2345 Reviewed by Andrei Bucur.
2347 Restrict the assertion in RenderBlock::canComputeRegionRangeForBox
2348 only to RenderNamedFlowThread objects since for RenderMultiColumnFlowThread
2349 objects we can compute a range of regions during their parent block layout.
2351 Test: fast/multicol/newmulticol/input-as-multicol.html
2353 * rendering/RenderBlock.cpp:
2354 (WebCore::canComputeRegionRangeForBox):
2356 2014-07-23 Jeremy Jones <jeremyj@apple.com>
2358 Transparent fullscreen background when video is not present.
2359 https://bugs.webkit.org/show_bug.cgi?id=135226
2361 Reviewed by Simon Fraser.
2363 Set background to black just before beginning the animation to fullscreen.
2365 * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
2366 (WebVideoFullscreenInterfaceAVKit::enterFullscreen): set background color black.
2368 2014-07-23 Joseph Pecoraro <pecoraro@apple.com>
2370 ScriptController::updateDocument ASSERT mutating map while iterating map
2371 https://bugs.webkit.org/show_bug.cgi?id=135211
2373 Reviewed by Oliver Hunt.
2375 Avoid iterating over m_windowShells in more places. This prevents
2376 the possibility of a collection during JSC allocation which might
2377 cause a mutation to m_windowShells (HTMLMediaElement destruction).
2379 Have ScriptController defriend ScriptCachedFrameData by providing
2380 a getter for the list of window shells.
2382 * bindings/js/ScriptCachedFrameData.cpp:
2383 (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
2384 (WebCore::ScriptCachedFrameData::restore):
2385 * bindings/js/ScriptController.cpp:
2386 (WebCore::ScriptController::windowShells):
2387 (WebCore::ScriptController::clearWindowShell):
2388 (WebCore::ScriptController::attachDebugger):
2389 (WebCore::ScriptController::updateDocument):
2390 * bindings/js/ScriptController.h:
2392 2014-07-23 Commit Queue <commit-queue@webkit.org>
2394 Unreviewed, rolling out r171498.
2395 https://bugs.webkit.org/show_bug.cgi?id=135223
2397 It will regress some scroll position restoration on navigation
2398 (r167916). (Requested by smfr on #webkit).
2402 "[iOS WK2] Header bar on nytimes articles lands in the wrong
2403 place after rubberbanding"
2404 https://bugs.webkit.org/show_bug.cgi?id=135221
2405 http://trac.webkit.org/changeset/171498
2407 2014-07-23 Tim Horton <timothy_horton@apple.com>
2409 REGRESSION (r171376): Sometimes we detect less than the whole phone number
2410 https://bugs.webkit.org/show_bug.cgi?id=135220
2411 <rdar://problem/17783423>
2413 Reviewed by Brady Eidson.
2415 * editing/Editor.cpp:
2416 (WebCore::Editor::scanSelectionForTelephoneNumbers):
2417 Use the visible selection's start and end instead of base and extent, because they'll
2418 always be in the right order in the case of a directional selection (base can be *after* extent
2419 if you select from right to left). This fixes the code that expands the selection.
2421 Pass the *entire* expanded selection to DataDetectors, instead of using TextIterator.
2422 This way, we will find each number only once, and will never get part of a phone number once
2423 and then the whole phone number later.
2425 2014-07-23 Simon Fraser <simon.fraser@apple.com>
2427 [iOS WK2] Header bar on nytimes articles lands in the wrong place after rubberbanding
2428 https://bugs.webkit.org/show_bug.cgi?id=135221
2430 Reviewed by Tim Horton.
2432 Add a function on GraphicsLayer to force a flush of the layer position
2433 to the underlying graphics system, so that when layers cease being
2434 scroll-coordinated, we can ensure that their layers are repositioned
2435 in the correct location.
2438 * platform/graphics/GraphicsLayer.h:
2439 (WebCore::GraphicsLayer::forcePositionUpdate):
2440 * platform/graphics/ca/GraphicsLayerCA.cpp:
2441 (WebCore::GraphicsLayerCA::forcePositionUpdate):
2442 * platform/graphics/ca/GraphicsLayerCA.h:
2443 * rendering/RenderLayerCompositor.cpp:
2444 (WebCore::RenderLayerCompositor::detachScrollCoordinatedLayer):
2446 2014-07-23 Pratik Solanki <psolanki@apple.com>
2448 Get rid of SharedBuffer::NSDataRetainPtrWithoutImplicitConversionOperator
2449 https://bugs.webkit.org/show_bug.cgi?id=135219
2451 Reviewed by Anders Carlsson.
2453 No new tests because no functional changes.
2455 * loader/ResourceBuffer.h:
2456 * loader/mac/ResourceBuffer.mm:
2457 (WebCore::ResourceBuffer::createNSData):
2458 * platform/SharedBuffer.h:
2459 (WebCore::SharedBuffer::NSDataRetainPtrWithoutImplicitConversionOperator::NSDataRetainPtrWithoutImplicitConversionOperator): Deleted.
2460 * platform/mac/SharedBufferMac.mm:
2461 (WebCore::SharedBuffer::createNSData):
2463 2014-07-23 Zalan Bujtas <zalan@apple.com>
2465 Subpixel rendering: Cleanup RenderLayerCompositor::deviceScaleFactor()
2466 https://bugs.webkit.org/show_bug.cgi?id=135208
2468 Reviewed by Simon Fraser.
2470 Use m_renderView.document() to retrieve device scale factor value. m_renderView.document()
2471 is always available while this->page() is not.
2473 No change in behavior.
2475 * rendering/RenderLayerBacking.cpp:
2476 (WebCore::RenderLayerBacking::updateTransform):
2477 (WebCore::RenderLayerBacking::computeTransformOriginForPainting):
2478 * rendering/RenderLayerCompositor.cpp:
2479 (WebCore::RenderLayerCompositor::deviceScaleFactor):
2481 2014-07-23 peavo@outlook.com <peavo@outlook.com>
2483 [WinCairo] Gstreamer rendering is not working.
2484 https://bugs.webkit.org/show_bug.cgi?id=135201
2486 Reviewed by Alex Christensen.
2488 WinCairo does not support accelerated rendering yet.
2490 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
2491 (WebCore::MediaPlayerPrivateGStreamerBase::supportsAcceleratedRendering):
2493 2014-07-23 Commit Queue <commit-queue@webkit.org>
2495 Unreviewed, rolling out r171455.
2496 https://bugs.webkit.org/show_bug.cgi?id=135209
2498 completely broke selection highlight invalidation (Requested
2499 by thorton on #webkit).
2503 "REGRESSION (r169105): Crash in selection"
2504 https://bugs.webkit.org/show_bug.cgi?id=134303
2505 http://trac.webkit.org/changeset/171455
2507 2014-07-23 Alex Christensen <achristensen@webkit.org>
2509 Compile window-inactive and fullscreen pseudoclasses in css selectors.
2510 https://bugs.webkit.org/show_bug.cgi?id=135200
2512 Reviewed by Benjamin Poulain.
2514 * css/SelectorChecker.cpp:
2515 (WebCore::SelectorChecker::checkOne):
2516 Removed the check of context.hasSelectionPseudo for a window-inactive pseudoclass.
2517 Moved logic to SelectorCheckerTestFunctions.h to share with the selector compiler.
2518 * css/SelectorCheckerTestFunctions.h:
2519 (WebCore::isWindowInactive):
2520 (WebCore::matchesFullScreenAnimatingFullScreenTransitionPseudoClass):
2521 (WebCore::matchesFullScreenAncestorPseudoClass):
2522 (WebCore::matchesFullScreenDocumentPseudoClass):
2523 Added from SelectorChecker.cpp.
2524 * cssjit/SelectorCompiler.cpp:
2525 (WebCore::SelectorCompiler::addPseudoClassType):
2526 Added unoptimized pseudoclass cases for window-inactive and fullscreen pseudoclasses.
2527 Explicitly listed uncompiled pseudoclasses for future work instead of using a default.
2529 2014-07-23 Brent Fulgham <bfulgham@apple.com>
2531 [Win] Use NO_RETURN_DUE_TO_CRASH on Windows.
2532 https://bugs.webkit.org/show_bug.cgi?id=13519
2534 Reviewed by Mark Lam.
2536 * svg/SVGZoomAndPan.h: Add NO_RETURN_DUE_TO_CRASH to
2537 header so function declarations match implementation.
2539 2014-07-23 Joseph Pecoraro <pecoraro@apple.com>
2541 JSDOMWindowShell leaks on pages with media elements
2542 https://bugs.webkit.org/show_bug.cgi?id=135178
2544 Reviewed by Oliver Hunt.
2546 The DOMWindowWorld for HTMLMediaElements with MEDIA_CONTROLS_SCRIPT
2547 was not getting cleared and removed.
2549 * bindings/js/ScriptController.cpp:
2550 (WebCore::ScriptController::clearWindowShell):
2551 Iterate over a copy of the values. A sweep / garbage collection caused by
2552 any JSC allocation during iteration could trigger a mutation of the m_windowShells
2553 table that was being iterating. So instead iterate a list that won't mutate.
2555 * html/HTMLMediaElement.cpp:
2556 (WebCore::HTMLMediaElement::~HTMLMediaElement):
2557 If we had an isolated world, release as much memory as possible.
2559 2014-07-23 Bem Jones-Bey <bjonesbe@adobe.com>
2561 Ensure we compute the min and max height of replaced elements to 'none' or 0 when appropriate.
2562 https://bugs.webkit.org/show_bug.cgi?id=135181
2564 Reviewed by David Hyatt.
2566 If a replaced element has a percentage min or max height specified then that height value should
2567 compute to 'none' for max-height and 0 for min-height when its containing block
2568 does not have a height 'specified explicitly'.
2570 This is based on a Blink patch by Robert Hogan.
2572 Tests: css2.1/20110323/max-height-percentage-003.html
2573 fast/replaced/max-height-percentage-quirks.html
2574 fast/replaced/min-height-percentage-quirks.html
2575 fast/replaced/min-height-percentage.html
2577 * rendering/RenderBox.cpp:
2578 (WebCore::RenderBox::logicalHeightComputesAsNone):
2579 (WebCore::RenderBox::computeReplacedLogicalHeightRespectingMinMaxHeight):
2580 * rendering/RenderBox.h:
2582 2014-07-23 Bem Jones-Bey <bjonesbe@adobe.com>
2584 Remove CSS_EXCLUSIONS compile flag and leftover code
2585 https://bugs.webkit.org/show_bug.cgi?id=135175
2587 Reviewed by Zoltan Horvath.
2589 At this point, the CSS_EXCLUSIONS flag guards nothing but some useless
2590 stubs. This removes the flag and the useless code.
2592 No new tests, just removing code.
2594 * Configurations/FeatureDefines.xcconfig:
2595 * bindings/generic/RuntimeEnabledFeatures.cpp:
2596 (WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
2597 * bindings/generic/RuntimeEnabledFeatures.h:
2598 (WebCore::RuntimeEnabledFeatures::setCSSExclusionsEnabled): Deleted.
2599 (WebCore::RuntimeEnabledFeatures::cssExclusionsEnabled): Deleted.
2600 * testing/InternalSettings.cpp:
2601 (WebCore::InternalSettings::Backup::Backup):
2602 (WebCore::InternalSettings::Backup::restoreTo):
2603 (WebCore::InternalSettings::setCSSExclusionsEnabled): Deleted.
2604 * testing/InternalSettings.h:
2605 * testing/InternalSettings.idl:
2607 2014-07-23 Jer Noble <jer.noble@apple.com>
2609 [MSE][Mac] Support abort() in SourceBufferPrivateAVFObjC.
2610 https://bugs.webkit.org/show_bug.cgi?id=135163
2612 Reviewed by Brent Fulgham.
2614 Recreate the parser when asked to abort().
2616 * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
2617 (WebCore::SourceBufferPrivateAVFObjC::abort):
2619 2014-07-23 Myles C. Maxfield <mmaxfield@apple.com>
2621 Migrate accessibility/ to using nullptr instead of 0
2622 https://bugs.webkit.org/show_bug.cgi?id=135185
2624 Reviewed by Simon Fraser.
2626 No new tests because there is no behavior change.
2628 * accessibility/AXObjectCache.cpp:
2629 (WebCore::AXObjectCache::focusedImageMapUIElement):
2630 (WebCore::AXObjectCache::focusedUIElementForPage):
2631 (WebCore::AXObjectCache::get):
2632 (WebCore::AXObjectCache::getOrCreate):
2633 (WebCore::AXObjectCache::rootObject):
2634 (WebCore::AXObjectCache::rootObjectForFrame):
2635 * accessibility/AXObjectCache.h:
2636 (WebCore::AXObjectCache::focusedUIElementForPage):
2637 (WebCore::AXObjectCache::get):
2638 (WebCore::AXObjectCache::getOrCreate):
2639 (WebCore::AXObjectCache::rootObject):
2640 (WebCore::AXObjectCache::rootObjectForFrame):
2641 (WebCore::AXObjectCache::rootAXEditableElement):
2642 * accessibility/AccessibilityARIAGridRow.cpp:
2643 (WebCore::AccessibilityARIAGridRow::disclosedByRow):
2644 * accessibility/AccessibilityImageMapLink.cpp:
2645 (WebCore::AccessibilityImageMapLink::AccessibilityImageMapLink):
2646 (WebCore::AccessibilityImageMapLink::parentObject):
2647 * accessibility/AccessibilityListBox.cpp:
2648 (WebCore::AccessibilityListBox::listBoxOptionAccessibilityObject):
2649 (WebCore::AccessibilityListBox::elementAccessibilityHitTest):
2650 * accessibility/AccessibilityListBoxOption.cpp:
2651 (WebCore::AccessibilityListBoxOption::AccessibilityListBoxOption):
2652 (WebCore::AccessibilityListBoxOption::parentObject):
2653 (WebCore::AccessibilityListBoxOption::listBoxOptionParentNode):
2654 * accessibility/AccessibilityMenuListPopup.cpp:
2655 (WebCore::AccessibilityMenuListPopup::menuListOptionAccessibilityObject):
2656 * accessibility/AccessibilityMockObject.cpp:
2657 (WebCore::AccessibilityMockObject::AccessibilityMockObject):
2658 * accessibility/AccessibilityMockObject.h:
2659 * accessibility/AccessibilityNodeObject.cpp:
2660 (WebCore::AccessibilityNodeObject::detach):
2661 (WebCore::AccessibilityNodeObject::firstChild):
2662 (WebCore::AccessibilityNodeObject::lastChild):
2663 (WebCore::AccessibilityNodeObject::previousSibling):
2664 (WebCore::AccessibilityNodeObject::nextSibling):
2665 (WebCore::AccessibilityNodeObject::parentObject):
2666 (WebCore::AccessibilityNodeObject::document):
2667 (WebCore::AccessibilityNodeObject::anchorElement):
2668 (WebCore::nativeActionElement):
2669 (WebCore::AccessibilityNodeObject::actionElement):
2670 (WebCore::AccessibilityNodeObject::mouseButtonListener):
2671 (WebCore::AccessibilityNodeObject::labelForElement):
2672 (WebCore::AccessibilityNodeObject::menuItemElementForMenu):
2673 (WebCore::AccessibilityNodeObject::menuButtonForMenu):
2674 * accessibility/AccessibilityObject.cpp:
2675 (WebCore::AccessibilityObject::AccessibilityObject):
2676 (WebCore::AccessibilityObject::detach):
2677 (WebCore::AccessibilityObject::firstAccessibleObjectFromNode):
2678 (WebCore::AccessibilityObject::findMatchingObjects):
2679 (WebCore::renderListItemContainerForNode):
2680 (WebCore::AccessibilityObject::accessibilityObjectForPosition):
2681 (WebCore::AccessibilityObject::document):
2682 (WebCore::AccessibilityObject::page):
2683 (WebCore::AccessibilityObject::documentFrameView):
2684 (WebCore::AccessibilityObject::anchorElementForNode):
2685 (WebCore::AccessibilityObject::headingElementForNode):
2686 (WebCore::AccessibilityObject::firstAnonymousBlockChild):
2687 (WebCore::AccessibilityObject::element):
2688 (WebCore::AccessibilityObject::focusedUIElement):
2689 (WebCore::AccessibilityObject::scrollToMakeVisibleWithSubFocus):
2690 * accessibility/AccessibilityObject.h:
2691 (WebCore::AccessibilityObject::node):
2692 (WebCore::AccessibilityObject::renderer):
2693 (WebCore::AccessibilityObject::selectedRadioButton):
2694 (WebCore::AccessibilityObject::selectedTabItem):
2695 (WebCore::AccessibilityObject::accessibilityHitTest):
2696 (WebCore::AccessibilityObject::firstChild):
2697 (WebCore::AccessibilityObject::lastChild):
2698 (WebCore::AccessibilityObject::previousSibling):
2699 (WebCore::AccessibilityObject::nextSibling):
2700 (WebCore::AccessibilityObject::parentObjectIfExists):
2701 (WebCore::AccessibilityObject::observableObject):
2702 (WebCore::AccessibilityObject::titleUIElement):
2703 (WebCore::AccessibilityObject::correspondingLabelForControlElement):
2704 (WebCore::AccessibilityObject::correspondingControlForLabelElement):
2705 (WebCore::AccessibilityObject::scrollBar):
2706 (WebCore::AccessibilityObject::anchorElement):
2707 (WebCore::AccessibilityObject::actionElement):
2708 (WebCore::AccessibilityObject::widget):
2709 (WebCore::AccessibilityObject::widgetForAttachmentView):
2710 (WebCore::AccessibilityObject::activeDescendant):
2711 (WebCore::AccessibilityObject::mathRadicandObject):
2712 (WebCore::AccessibilityObject::mathRootIndexObject):
2713 (WebCore::AccessibilityObject::mathUnderObject):
2714 (WebCore::AccessibilityObject::mathOverObject):
2715 (WebCore::AccessibilityObject::mathNumeratorObject):
2716 (WebCore::AccessibilityObject::mathDenominatorObject):
2717 (WebCore::AccessibilityObject::mathBaseObject):
2718 (WebCore::AccessibilityObject::mathSubscriptObject):
2719 (WebCore::AccessibilityObject::mathSuperscriptObject):
2720 (WebCore::AccessibilityObject::getScrollableAreaIfScrollable):
2721 * accessibility/AccessibilityProgressIndicator.cpp:
2722 (WebCore::AccessibilityProgressIndicator::progressElement):
2723 (WebCore::AccessibilityProgressIndicator::meterElement):
2724 * accessibility/AccessibilityRenderObject.cpp:
2725 (WebCore::AccessibilityRenderObject::detach):
2726 (WebCore::AccessibilityRenderObject::renderBoxModelObject):
2727 (WebCore::AccessibilityRenderObject::firstChild):
2728 (WebCore::AccessibilityRenderObject::lastChild):
2729 (WebCore::startOfContinuations):
2730 (WebCore::childBeforeConsideringContinuations):
2731 (WebCore::AccessibilityRenderObject::previousSibling):
2732 (WebCore::AccessibilityRenderObject::nextSibling):
2733 (WebCore::nextContinuation):
2734 (WebCore::AccessibilityRenderObject::renderParentObject):
2735 (WebCore::AccessibilityRenderObject::parentObject):
2736 (WebCore::AccessibilityRenderObject::anchorElement):
2737 (WebCore::AccessibilityRenderObject::textUnderElement):
2738 (WebCore::AccessibilityRenderObject::node):
2739 (WebCore::AccessibilityRenderObject::labelElementContainer):
2740 (WebCore::AccessibilityRenderObject::internalLinkElement):
2741 (WebCore::AccessibilityRenderObject::titleUIElement):
2742 (WebCore::AccessibilityRenderObject::setFocused):
2743 (WebCore::AccessibilityRenderObject::topRenderer):
2744 (WebCore::AccessibilityRenderObject::document):
2745 (WebCore::AccessibilityRenderObject::widget):
2746 (WebCore::AccessibilityRenderObject::accessibilityParentForImageMap):
2747 (WebCore::AccessibilityRenderObject::documentFrameView):
2748 (WebCore::AccessibilityRenderObject::widgetForAttachmentView):
2749 (WebCore::AccessibilityRenderObject::rootEditableElementForPosition):
2750 (WebCore::AccessibilityRenderObject::visiblePositionForPoint):
2751 (WebCore::AccessibilityRenderObject::accessibilityImageMapHitTest):
2752 (WebCore::AccessibilityRenderObject::remoteSVGElementHitTest):
2753 (WebCore::AccessibilityRenderObject::accessibilityHitTest):
2754 (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
2755 (WebCore::AccessibilityRenderObject::correspondingLabelForControlElement):
2756 (WebCore::AccessibilityRenderObject::observableObject):
2757 (WebCore::AccessibilityRenderObject::inheritsPresentationalRole):
2758 (WebCore::AccessibilityRenderObject::detachRemoteSVGRoot):
2759 (WebCore::AccessibilityRenderObject::addHiddenChildren):
2760 (WebCore::AccessibilityRenderObject::setAccessibleName):
2761 (WebCore::AccessibilityRenderObject::getScrollableAreaIfScrollable):
2762 (WebCore::AccessibilityRenderObject::mathRadicandObject):
2763 (WebCore::AccessibilityRenderObject::mathRootIndexObject):
2764 (WebCore::AccessibilityRenderObject::mathNumeratorObject):
2765 (WebCore::AccessibilityRenderObject::mathDenominatorObject):
2766 (WebCore::AccessibilityRenderObject::mathUnderObject):
2767 (WebCore::AccessibilityRenderObject::mathOverObject):
2768 (WebCore::AccessibilityRenderObject::mathBaseObject):
2769 (WebCore::AccessibilityRenderObject::mathSubscriptObject):
2770 (WebCore::AccessibilityRenderObject::mathSuperscriptObject):
2771 * accessibility/AccessibilitySVGRoot.cpp:
2772 (WebCore::AccessibilitySVGRoot::AccessibilitySVGRoot):
2773 * accessibility/AccessibilityScrollView.cpp:
2774 (WebCore::AccessibilityScrollView::detach):
2775 (WebCore::AccessibilityScrollView::scrollBar):
2776 (WebCore::AccessibilityScrollView::updateScrollbars):
2777 (WebCore::AccessibilityScrollView::addChildScrollbar):
2778 (WebCore::AccessibilityScrollView::clearChildren):
2779 (WebCore::AccessibilityScrollView::webAreaObject):
2780 (WebCore::AccessibilityScrollView::accessibilityHitTest):
2781 (WebCore::AccessibilityScrollView::documentFrameView):
2782 (WebCore::AccessibilityScrollView::parentObject):
2783 (WebCore::AccessibilityScrollView::parentObjectIfExists):
2784 * accessibility/AccessibilityScrollbar.cpp:
2785 (WebCore::AccessibilityScrollbar::document):
2786 * accessibility/AccessibilitySpinButton.cpp:
2787 (WebCore::AccessibilitySpinButton::AccessibilitySpinButton):
2788 * accessibility/AccessibilityTable.cpp:
2789 (WebCore::AccessibilityTable::AccessibilityTable):
2790 (WebCore::AccessibilityTable::clearChildren):
2791 (WebCore::AccessibilityTable::cellForColumnAndRow):
2792 * accessibility/AccessibilityTableCell.cpp:
2793 (WebCore::AccessibilityTableCell::parentTable):
2794 (WebCore::AccessibilityTableCell::titleUIElement):
2795 * accessibility/AccessibilityTableColumn.cpp:
2796 (WebCore::AccessibilityTableColumn::headerObject):
2797 (WebCore::AccessibilityTableColumn::headerObjectForSection):
2798 * accessibility/AccessibilityTableRow.cpp:
2799 (WebCore::AccessibilityTableRow::parentTable):
2800 (WebCore::AccessibilityTableRow::headerObject):
2801 * accessibility/ios/AXObjectCacheIOS.mm:
2802 (WebCore::AXObjectCache::detachWrapper):
2803 * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
2804 (-[WebAccessibilityObjectWrapper detach]):
2805 (-[WebAccessibilityObjectWrapper tableCellParent]):
2806 (-[WebAccessibilityObjectWrapper tableParent]):
2807 (-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
2808 (-[WebAccessibilityObjectWrapper convertRectToScreenSpace:]):
2810 (-[WebAccessibilityObjectWrapper _convertToDOMRange:]):
2811 * accessibility/mac/AXObjectCacheMac.mm:
2812 (WebCore::AXObjectCache::detachWrapper):
2813 * accessibility/mac/AccessibilityObjectMac.mm:
2814 (WebCore::AccessibilityObject::detachFromParent):
2815 (WebCore::AccessibilityObject::accessibilityIgnoreAttachment):
2816 * accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
2817 (-[WebAccessibilityObjectWrapperBase detach]):
2818 * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
2819 (CreateCGColorIfDifferent):
2820 (-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
2822 (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
2823 * accessibility/win/AccessibilityObjectWrapperWin.h:
2824 (WebCore::AccessibilityObjectWrapper::AccessibilityObjectWrapper):
2826 2014-07-23 Mihnea Ovidenie <mihnea@adobe.com>
2828 ASSERTION FAILED: generatingElement() in WebCore::RenderNamedFlowFragment::regionOversetState
2829 https://bugs.webkit.org/show_bug.cgi?id=135153
2831 Reviewed by David Hyatt.
2833 Even though the CSSRegions spec defines the behaviour of a multicolumn region,
2834 we currently do not support this functionality. This patch ensures that a multicolumn
2835 element does not become a region. In the future, when we will implement the multicolumn
2836 as region functionality, http://dev.w3.org/csswg/css-regions/#multi-column-regions, we
2837 will remove this restriction.
2839 Test: fast/regions/multicol-as-region-prevented.html
2841 * rendering/RenderBlockFlow.cpp:
2842 (WebCore::RenderBlockFlow::createRenderNamedFlowFragmentIfNeeded):
2844 2014-07-23 Zan Dobersek <zdobersek@igalia.com>
2846 [CMake] Avoid building WebCore with ANGLE's OpenGL/EGL headers
2847 https://bugs.webkit.org/show_bug.cgi?id=135167
2849 Reviewed by Martin Robinson.
2851 * CMakeLists.txt: Don't add ANGLE/include to the WebCore_INCLUDE_DIRECTORIES list
2852 as this results in ANGLE's OpenGL and EGL headers being included, instead of the
2853 headers that are provided by the system. Only the ANGLESupport library should be built
2854 with that specific header inclusion path.
2856 2014-07-10 Radu Stavila <stavila@adobe.com>
2858 REGRESSION (r169105): Crash in selection
2859 https://bugs.webkit.org/show_bug.cgi?id=134303
2861 Reviewed by David Hyatt.
2863 When splitting the selection between different subtrees, all subtrees must have their selection cleared before
2864 starting to apply the new selection. Otherwise, when selecting objects in a named flow thread and going up
2865 its containing block chain, we can end up in the view's selection root, which has not yet been updated and so
2866 we get inconsistent data.
2868 To achieve this goal, the selection update was split into a "clear" and an "apply" method. The updateSelectionForSubtrees
2869 method first iterates through all subtrees and performs the "clear" method and then starts all over again
2870 and performs the "apply" method.
2872 Also, the selectionStart/End members in RenderView have been renamed to fix problems caused by the fact that
2873 RenderView inherits SelectionSubtreeRoot, which also has the same selectionStart/End members.
2875 Test: fast/regions/selection/crash-deselect.html
2877 * WebCore.xcodeproj/project.pbxproj:
2878 * rendering/RenderBlock.cpp:
2879 (WebCore::RenderBlock::isSelectionRoot):
2880 * rendering/RenderSelectionInfo.h:
2881 * rendering/RenderView.cpp:
2882 (WebCore::RenderView::RenderView):
2883 (WebCore::RenderView::setSelection): Renamed m_selectionStart/End to m_unsplitSelectionStart/End
2884 (WebCore::RenderView::splitSelectionBetweenSubtrees):
2885 (WebCore::RenderView::updateSelectionForSubtrees): Added, clears and re-applies selection for all selection subtrees.
2886 (WebCore::RenderView::clearSubtreeSelection): Added, clears selection and returns previously selected information.
2887 (WebCore::RenderView::applySubtreeSelection): Added, updates the selection status of all objects inside the selection tree, compares old and new data and repaints accordingly.
2888 (WebCore::RenderView::getSelection): Renamed m_selectionStart/End to m_unsplitSelectionStart/End
2889 (WebCore::RenderView::setSubtreeSelection): Deleted.
2890 * rendering/RenderView.h:
2891 * rendering/SelectionSubtreeRoot.cpp:
2892 (WebCore::SelectionSubtreeRoot::SelectionSubtreeRoot):
2893 * rendering/SelectionSubtreeRoot.h:
2894 (WebCore::SelectionSubtreeRoot::OldSelectionData::OldSelectionData):
2896 2014-07-22 Brent Fulgham <bfulgham@apple.com>
2898 [Win] Build fix for bot.
2900 * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
2901 (WebCore::createLegibleOutputSubtypes): Declare 'wvtt' locally, rather
2902 than relying on potentially unavailable declaration.
2904 2014-07-22 Brent Fulgham <bfulgham@apple.com>
2906 [Win] Build fix for Windows bots
2908 * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp: Provide missing
2909 structure definition when needed by bot.
2911 2014-07-22 Brent Fulgham <bfulgham@apple.com>
2913 [Win] Build fix for EWS bots.
2915 * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp: Forward declare
2916 structure definition.
2918 2014-07-22 Brent Fulgham <bfulgham@apple.com>
2920 [Win] Fix Crash when handling Legible Output callbacks
2921 https://bugs.webkit.org/show_bug.cgi?id=134946
2923 Reviewed by Dean Jackson.
2925 Relanding after adding fixes to support build bots.
2927 * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
2928 (WebCore::InbandTextTrackPrivateAVF::processNativeSamples): Remove
2929 Windows-specific 'ASSERT_NOT_REACHED' code path.
2930 * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
2931 (WebCore::createLegibleOutputSubtypes): Added.
2932 (WebCore::AVFWrapper::createPlayerItem): Updated to request native
2933 samples from AVFoundationCF.
2935 2014-07-16 Myles C. Maxfield <mmaxfield@apple.com>
2937 Copying and pasting trivial H2 content causes a crash in firstPositionInNode
2938 https://bugs.webkit.org/show_bug.cgi?id=134897
2940 Reviewed by Ryosuke Niwa.
2942 ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder() attempts
2943 to move pasted headings out of existed headings, with out regard to if the existing
2944 heading is the contenteditable root.
2946 Test: editing/pasteboard/heading-crash.html
2948 * editing/ReplaceSelectionCommand.cpp:
2949 (WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
2951 2014-07-22 Ryuan Choi <ryuan.choi@samsung.com>
2953 Remove dead APIs from TiledBackingStore
2954 https://bugs.webkit.org/show_bug.cgi?id=135158
2956 Reviewed by Gyuyoung Kim.
2958 setContentsFrozen and related code of TiledBackingStore are not used since Qt port is removed.
2960 * platform/graphics/TiledBackingStore.cpp:
2961 (WebCore::TiledBackingStore::TiledBackingStore):
2962 (WebCore::TiledBackingStore::updateTileBuffers):
2963 (WebCore::TiledBackingStore::setContentsScale):
2964 (WebCore::TiledBackingStore::createTiles):
2965 (WebCore::TiledBackingStore::startTileBufferUpdateTimer):
2966 (WebCore::TiledBackingStore::startBackingStoreUpdateTimer):
2967 (WebCore::TiledBackingStore::commitScaleChange): Deleted.
2968 (WebCore::TiledBackingStore::isBackingStoreUpdatesSuspended): Deleted.
2969 (WebCore::TiledBackingStore::isTileBufferUpdatesSuspended): Deleted.
2970 (WebCore::TiledBackingStore::setContentsFrozen): Deleted.
2971 * platform/graphics/TiledBackingStore.h:
2972 (WebCore::TiledBackingStore::contentsFrozen): Deleted.
2974 2014-07-22 Alex Christensen <achristensen@webkit.org>
2976 Fix window-inactive css selectors when using querySelector.
2977 https://bugs.webkit.org/show_bug.cgi?id=135149
2979 Reviewed by Tim Horton.
2981 Test: fast/selectors/querySelector-window-inactive.html
2983 * css/SelectorChecker.cpp:
2984 (WebCore::SelectorChecker::checkOne):
2985 Removed default and implemented case PseudoClassWindowInactive.
2987 2014-07-22 Tim Horton <timothy_horton@apple.com>
2989 REGRESSION (r171016): Reproducible infinite spin selecting phone number
2990 https://bugs.webkit.org/show_bug.cgi?id=135183
2991 <rdar://problem/17727342>
2993 Reviewed by Ryosuke Niwa.
2995 * editing/Editor.cpp:
2996 (WebCore::Editor::scanRangeForTelephoneNumbers):
2997 Make use of TextIterator::subrange, which knows how to make a subrange from character positions,
2998 instead of assuming that our character positions translate directly to positions in the incoming range.
2999 Make use of DocumentMarkerController::addMarker, which takes a range and applies the marker to
3000 all text nodes inside the range as appropriate.
3001 Fix naming of the shadowed 'length' local.
3002 Fix a typo in the comment.
3004 2014-07-22 Myles C. Maxfield <mmaxfield@apple.com>
3006 [iOS] [OSX] Don't transcode WOFF on platforms that support it natively
3007 https://bugs.webkit.org/show_bug.cgi?id=134904
3009 Reviewed by Andreas Kling.
3011 No new tests because there is no behavior change.
3013 * loader/cache/CachedFont.cpp:
3014 (WebCore::CachedFont::ensureCustomFontData):
3016 2014-07-22 peavo@outlook.com <peavo@outlook.com>
3018 [Win] Crash after plugin is unloaded.
3019 https://bugs.webkit.org/show_bug.cgi?id=119044
3021 Reviewed by Darin Adler.
3023 We need to invalidate all runtime objects when a plugin view is destroyed, in case the plugin is unloaded,
3024 and one of these runtime objects accesses the plugin function table upon destruction afterwards, which will cause a crash.
3025 If we use the weak pointer to the runtime object when invalidating, it will be null if it's in the WeakImpl::Dead state.
3026 This means the runtime object will not be invalidated, possibly causing a crash if the plugin is unloaded.
3027 It should be safe to use the raw pointer to the runtime object when invalidating, since finalized runtime objects
3028 will be removed from the set of runtime objects in the method RootObject::finalize().
3030 * bridge/runtime_root.cpp:
3031 (JSC::Bindings::RootObject::invalidate): Make sure all runtime objects are invalidated by getting the raw runtime object pointer from the hash key.
3033 2014-07-22 Enrica Casucci <enrica@apple.com>
3035 REGRESSION (WebKit2): Selection inside accelerated overflow:scroll doesn't track scrolling.
3036 https://bugs.webkit.org/show_bug.cgi?id=135180
3037 <rdar://problem/16721055>
3039 Reviewed by Simon Fraser.
3041 AsyncScrollingCoordinator will force a selection update on iOS
3042 when scrolling terminates in an overflow scroll.
3044 * loader/EmptyClients.h:
3045 * page/EditorClient.h:
3046 * page/scrolling/AsyncScrollingCoordinator.cpp:
3047 (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
3048 * page/scrolling/ScrollingTree.h:
3049 (WebCore::ScrollingTree::scrollingTreeNodeWillStartScroll):
3050 (WebCore::ScrollingTree::scrollingTreeNodeDidEndScroll):
3052 2014-07-22 Myles C. Maxfield <mmaxfield@apple.com>
3054 [Mac] Cocoa throws exception when the return type of NSAccessibilityLinkedUIElementsAttribute is not an array
3055 https://bugs.webkit.org/show_bug.cgi?id=135165
3057 Reviewed by Simon Fraser.
3059 Return an empty array instead of nil.
3063 * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
3064 (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
3066 2014-07-22 Commit Queue <commit-queue@webkit.org>
3068 Unreviewed, rolling out r171357.
3069 https://bugs.webkit.org/show_bug.cgi?id=135173
3071 broke Windows build. (Requested by bfulgham on #webkit).
3075 "[Win] Fix Crash when handling Legible Output callbacks"
3076 https://bugs.webkit.org/show_bug.cgi?id=134946
3077 http://trac.webkit.org/changeset/171357
3079 2014-07-22 Brent Fulgham <bfulgham@apple.com>
3081 [Win] Fix Crash when handling Legible Output callbacks
3082 https://bugs.webkit.org/show_bug.cgi?id=134946
3084 Reviewed by Dean Jackson.
3086 * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
3087 (WebCore::InbandTextTrackPrivateAVF::processNativeSamples): Remove
3088 Windows-specific 'ASSERT_NOT_REACHED' code path.
3089 * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
3090 (WebCore::createLegibleOutputSubtypes): Added.
3091 (WebCore::AVFWrapper::createPlayerItem): Updated to request native
3092 samples from AVFoundationCF.
3094 2014-07-21 Sam Weinig <sam@webkit.org>
3096 [Cocoa] WKScriptMessageHandlers don't seem to function properly after navigating
3097 https://bugs.webkit.org/show_bug.cgi?id=135148
3099 Reviewed by Geoffrey Garen.
3101 The "webkit" property on the window was not getting installed for subsequent
3102 loads due to intricate dance playing setting the JSDOMWindow where the DOMWindow
3103 object is not yet in a Frame when the JSDOMWindow is created. Since we were
3104 adding the "webkit" property on construction, the property was returning null
3105 thinking it had no Frame and was in a bad state. We can fix this by making the
3106 "webkit" property behave like all the other window properties moving its getting
3107 to JSDOMWindow::getOwnPropertySlot.
3109 Added API test (WebKit2Cocoa/UserContentController).
3111 * bindings/js/JSDOMWindowBase.cpp:
3112 (WebCore::JSDOMWindowBase::finishCreation):
3113 * bindings/js/JSDOMWindowCustom.cpp:
3114 (WebCore::jsDOMWindowWebKit):
3115 (WebCore::JSDOMWindow::getOwnPropertySlot):
3117 2014-07-22 Brent Fulgham <bfulgham@apple.com>
3119 [Win] Fix Leak in WebCore::createGlobalImageFileDescriptor
3120 https://bugs.webkit.org/show_bug.cgi?id=134423
3121 <rdar://problem/17492758>
3123 Reviewed by Geoffrey Garen.
3125 * platform/win/PasteboardWin.cpp:
3126 (WebCore::createGlobalImageFileDescriptor): Unlock and release the
3127 HGLOBAL when exiting early.
3129 2014-07-21 Myles C. Maxfield <mmaxfield@apple.com>
3131 Clicking on links while accessibility is enabled sometimes crashes
3132 https://bugs.webkit.org/show_bug.cgi?id=135074
3134 Reviewed by Chris Fleizach.
3136 When an accessibility request comes in from the system, we call updateBackingStore() on the
3137 relevant AccessibilityObject, which triggers a relayout of the entire document. This relayout
3138 might delete that accessibility node and its parent, which would cause the node to be deleted.
3139 After the stack unwinds, we then call a member function on the node without checking for this
3142 Test: accessibility/parent-delete.html
3144 * accessibility/AccessibilityObject.cpp:
3145 (WebCore::AccessibilityObject::updateBackingStore): Retain the node for the duration of the
3148 2014-07-22 Jeremy Jones <jeremyj@apple.com>
3150 Don't create new UIWindow for video fullscreen.
3151 https://bugs.webkit.org/show_bug.cgi?id=135038
3153 Reviewed by Darin Adler.
3156 * platform/ios/WebVideoFullscreenControllerAVKit.h: use UIView instead of UIScreen.
3157 * platform/ios/WebVideoFullscreenControllerAVKit.mm:
3158 (-[WebVideoFullscreenController enterFullscreen:]): provide parent UIView.
3159 * platform/ios/WebVideoFullscreenInterfaceAVKit.h: remove UIWindow.
3160 * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
3161 (WebVideoFullscreenInterfaceAVKit::setupFullscreen): ditto
3162 (WebVideoFullscreenInterfaceAVKit::cleanupFullscreen): ditto
3163 (WebVideoFullscreenInterfaceAVKit::invalidate): ditto
3164 (WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen): ditto
3166 2014-07-22 Carlos Alberto Lopez Perez <clopez@igalia.com>
3168 [GTK] Rollout r170529 due to ~10% performance regression on the
3169 perf test Animation/balls.
3170 https://bugs.webkit.org/show_bug.cgi?id=134972
3172 Reviewed by Martin Robinson.
3175 "Increase priority on SharedTimer source."
3176 https://trac.webkit.org/r170529
3178 2014-07-18 Dirk Schulze <krit@webkit.org>
3180 Turn width/height to presentation attributes
3181 https://bugs.webkit.org/show_bug.cgi?id=135046
3183 Reviewed by Dean Jackson.
3185 The elements <svg>, <image>, <pattern>, <mask> and <foreignObject> have the
3186 'width' and 'height' attributes. So far they can just be set by SVG DOM or
3187 setAttribute. Furthermore, animations just work with SVG Animation - No support
3188 for CSS Animations and CSS Transitions. We started to turn the width and height
3189 attributes on SVG roots to presentation attributes already. A presentation
3190 attribute is a CSS property that can also be set by DOM (or now by SVG DOM).
3192 This patch turns all width and height attributes to presentation attributes. It
3193 basically allows authors to style width and height with CSS as well. Width and
3194 height can now be set with CSS style sheets and can be animated with CSS.
3196 To some degree it made it possible to remove code duplication. However, since
3197 SVG DOM requires us to use SVGLength types and since we did not turn all
3198 SVG attributes to the CSS length values (and our internal Length struct) yet,
3199 we still need a hybrid - a bridge between SVGLength (for SVG DOM) and Length (for
3200 RenderStyle). Once we move all attributes to use the Length struct, we can make SVGLength
3201 a wrapper for Length and can move more code to the render tree.
3203 The current challenge is to synchronize SVG DOM, normal DOM and RenderStyle.
3204 With this patch we handle most part in RenderStyle. SVG DOM changes are
3205 synchronized to DOM and RenderStyle will call needsStyleRecalc. Furthermore,
3206 SVG Animations will continue to animate the SVG DOM (and synchronize the changes
3207 back to RenderStyle) if the element has a JS property for the currently animated
3213 <animate attributeName="width">
3216 The <rect> element has the SVG DOM property 'width'. Therefore, we animate the SVG DOM
3217 property and synchronize RenderStyle.
3220 <animate attributeName="width">
3223 The <ellipse> element does NOT have the SVG DOM property 'width'. Therefore, we
3224 animate the CSS property directly. With synchronizing RenderStyle in all cases, we
3225 make sure that the CSS cascade works even on animating on multiple SVG hierarchy
3226 levels (animation of 'width' on <g> and inheriting the property value on a child
3229 With using presentation attributes, we also inherit the CSS property parsing for
3230 SVG attributes. <rect width=" 100px "> is possible now. (Note the trailing whitespaces.)
3231 This follows a recent resolution of the SVG WG.
3233 Since we turned width and height to presentation attributes, the layout optimization
3234 selfHasRelativeLengths() in the DOM can't be used anymore. selfHasRelativeLengths() was
3235 intended to solve a problem where we did not layout relatively position/sized elements
3236 when the parent changes its size. However, as a side effect it did not call layout
3237 for absolutely positioned/sized elements since the layout does not change. I run
3238 all performance tests that we have and even wrote a test with hundreds of elements
3239 that would be affected by this optimization. The differences were inside the sigma
3240 of a normal test run. (Means I couldn't measure a performance difference.)
3241 Therefore, it is not worth it to keep the "optimization" around and I will probably
3242 remove it entirely for all basic shapes but <path> and <polygon> in future patches.
3244 Tests: svg/css/parse-height.html
3245 svg/css/parse-width.html
3246 svg/css/width-height-presentation-attribute-expected.svg
3247 svg/css/width-height-presentation-attribute.svg
3249 * css/CSSComputedStyleDeclaration.cpp:
3250 (WebCore::ComputedStyleExtractor::propertyValue): We never calculated the computed
3251 value of width/height for SVG elements and returned auto instead. This is based
3252 on a rule of CSS 2 and needs to be fixed in CSS3.
3253 * css/DeprecatedStyleBuilder.cpp:
3254 (WebCore::ApplyPropertyLength::applyValue): Length always incorporates the zoom level.
3255 In SVG we still apply the zoom after all operations by scaling the context. We need
3256 to take this in account for Length and don't apply zoom on SVG inline elements.
3257 * css/StyleResolver.cpp:
3258 (WebCore::StyleResolver::useSVGZoomRulesForLength):
3260 * css/StyleResolver.h:
3261 * rendering/svg/RenderSVGRect.cpp:
3262 (WebCore::RenderSVGRect::updateShapeFromElement): Do not call width() and height() on
3263 SVG DOM but use the values of RenderStyle instead.
3264 * rendering/svg/SVGPathData.cpp:
3265 (WebCore::updatePathFromRectElement): Ditto.
3266 * svg/SVGAnimateElement.cpp:
3267 (WebCore::SVGAnimateElement::resetAnimatedType): We need to differ between CSS properties
3268 with and without SVG DOM on the current element. In the later case we animate the
3269 SVG DOM and need to synch RenderStyle.
3270 (WebCore::SVGAnimateElement::clearAnimatedType): Ditto.
3271 (WebCore::SVGAnimateElement::applyResultsToTarget): Ditto.
3272 * svg/SVGAnimationElement.cpp:
3273 (WebCore::SVGAnimationElement::isTargetAttributeCSSProperty): This checks if the CSS property
3274 has to be synched with SVG DOM.
3275 (WebCore::SVGAnimationElement::shouldApplyAnimation): Ditto.
3276 * svg/SVGAnimationElement.h:
3277 * svg/SVGElement.cpp:
3278 (WebCore::populateAttributeNameToCSSPropertyIDMap): Add width and heigth to the CSS property
3279 list for presentation attributes.
3280 (WebCore::populateCSSPropertyWithSVGDOMNameToAnimatedPropertyTypeMap): CSS properties with
3281 SVG DOM synchronization need to be treated differently. Collect them in a separate map.
3282 (WebCore::cssPropertyWithSVGDOMNameToAnimatedPropertyTypeMap): Caller for the map.
3283 (WebCore::SVGElement::animatedPropertyTypeForAttribute): We need to check both maps here:
3284 CSS properties and CSS properties with SVG DOM synch.
3285 (WebCore::SVGElement::isAnimatableCSSProperty): Ditto.
3286 (WebCore::SVGElement::isPresentationAttributeWithSVGDOM): Just return true if the property name
3287 is in the map of properties with SVG DOM for the current element.
3289 (WebCore::SVGElement::invalidateSVGPresentationAttributeStyle): Call needsStyleRecalc.
3290 * svg/SVGFilterElement.cpp: Make width/height presentation attribute.
3291 (WebCore::SVGFilterElement::svgAttributeChanged):
3292 (WebCore::SVGFilterElement::selfHasRelativeLengths): Deleted.
3293 * svg/SVGFilterElement.h: Ditto.
3294 * svg/SVGForeignObjectElement.cpp:
3295 (WebCore::SVGForeignObjectElement::svgAttributeChanged):
3296 (WebCore::SVGForeignObjectElement::selfHasRelativeLengths): Deleted.
3297 * svg/SVGForeignObjectElement.h:
3298 * svg/SVGImageElement.cpp: Ditto.
3299 (WebCore::SVGImageElement::svgAttributeChanged):
3300 (WebCore::SVGImageElement::isPresentationAttribute): Deleted.
3301 (WebCore::SVGImageElement::collectStyleForPresentationAttribute): Deleted.
3302 (WebCore::SVGImageElement::selfHasRelativeLengths): Deleted.
3303 * svg/SVGImageElement.h:
3304 * svg/SVGLength.h: Transform an Length value to an absolute value by taking the SVG viewport
3305 into account. (An SVG viewport is not the same as the CSS viewport.)
3306 * svg/SVGLengthContext.cpp: Ditto.
3307 (WebCore::SVGLengthContext::valueForLength):
3308 * svg/SVGLengthContext.h:
3309 * svg/SVGMaskElement.cpp: Make width/height presentation attribute.
3310 (WebCore::SVGMaskElement::svgAttributeChanged):
3311 (WebCore::SVGMaskElement::selfHasRelativeLengths): Deleted.
3312 * svg/SVGMaskElement.h:
3313 * svg/SVGPatternElement.cpp: Ditto.
3314 (WebCore::SVGPatternElement::svgAttributeChanged):
3315 (WebCore::SVGPatternElement::selfHasRelativeLengths): Deleted.
3316 * svg/SVGPatternElement.h:
3317 * svg/SVGRectElement.cpp: Ditto.
3318 (WebCore::SVGRectElement::svgAttributeChanged):
3319 (WebCore::SVGRectElement::selfHasRelativeLengths): Deleted.
3320 * svg/SVGRectElement.h:
3321 * svg/SVGSVGElement.cpp: Ditto.
3322 (WebCore::SVGSVGElement::svgAttributeChanged): Clean up redundant layout calls.
3323 (WebCore::SVGSVGElement::isPresentationAttribute): Deleted.
3324 (WebCore::SVGSVGElement::collectStyleForPresentationAttribute): Deleted.
3325 * svg/SVGSVGElement.h:
3326 * svg/properties/SVGAnimatedProperty.cpp: Synchronize SVG DOM with DOM.
3327 (WebCore::SVGAnimatedProperty::commitChange):
3329 2014-07-22 Adrian Perez de Castro <aperez@igalia.com>
3331 [GStreamer] [GTK] WebKit does not build with GStreamer 1.4
3332 https://bugs.webkit.org/show_bug.cgi?id=135114
3334 Reviewed by Philippe Normand.
3336 Fix build with GStreamer 1.4
3338 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
3339 Change GstMpegTs-prefixed types to use the GstMpegts prefix.
3340 (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
3341 (WebCore::MediaPlayerPrivateGStreamer::processMpegTsSection):
3342 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
3345 2014-07-21 Benjamin Poulain <bpoulain@apple.com>
3347 [iOS][WK2] Improve event throttling for Scroll Events
3348 https://bugs.webkit.org/show_bug.cgi?id=135082
3349 <rdar://problem/17445266>
3351 Reviewed by Simon Fraser.
3353 This patch is composed of two parts. The first part in the WebKit layer
3354 track an approximate measurement of the main thread responsiveness.
3355 The second part in WebCore use that information to avoid sending events
3356 if a page is unresponsive.
3358 In WebCore, this patch only consider scroll events so far. Hopefully the concept
3359 should be easy to generalize.
3361 * loader/EmptyClients.h:
3362 * page/ChromeClient.h:
3363 Chrome client provides us with one information: how long an incoming event should be delayed.
3364 Every port is free to implement whatever logic is suitable for them.
3366 * page/FrameView.cpp:
3367 (WebCore::FrameView::FrameView):
3368 (WebCore::FrameView::reset):
3369 (WebCore::FrameView::delayedScrollEventTimerFired):
3370 (WebCore::FrameView::scrollPositionChanged):
3371 (WebCore::FrameView::sendScrollEvent):
3373 Scroll events do not have any associated information so they can be coalesced by just skipping
3374 all input hapenning during the throttling delay.
3376 The implementation is done by using a timer to delay the events.
3378 2014-07-21 Tim Horton <timothy_horton@apple.com>
3380 Avoid putting empty-sized surfaces into IOSurfacePool
3381 https://bugs.webkit.org/show_bug.cgi?id=135136
3383 Reviewed by Simon Fraser.
3385 * platform/graphics/cg/IOSurfacePool.cpp:
3386 (WebCore::IOSurfacePool::addSurface):
3387 Avoid adding 0x0 surfaces to the pool, because they will wreak havoc
3388 when their size is used as the key in the CachedSurfaceMap.
3389 Additionally, avoid any empty sizes, because they're just pointless.
3391 2014-07-21 Beth Dakin <bdakin@apple.com>
3393 WK1 should always setAcceleratedCompositingForFixedPositionEnabled(true) on
3395 https://bugs.webkit.org/show_bug.cgi?id=135135
3397 Reviewed by Darin Adler.
3399 This patch gets rid of the ChromeClient function that was introduced with
3400 http://trac.webkit.org/changeset/171308 We’ll just enable the Setting instead.
3401 * css/StyleResolver.cpp:
3402 (WebCore::StyleResolver::adjustRenderStyle):
3403 (WebCore::fixedPositionCreatesStackingContext): Deleted.
3404 * page/ChromeClient.h:
3405 (WebCore::ChromeClient::requiresAcceleratedCompositingForViewportConstrainedPosition): Deleted.
3406 * rendering/RenderLayerCompositor.cpp:
3407 (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
3409 2014-07-21 Simon Fraser <simon.fraser@apple.com>
3411 [iOS WK2] Turn off position:fixed behavior when the keyboard is up
3412 https://bugs.webkit.org/show_bug.cgi?id=132537
3414 Reviewed by Benjamin Poulain.
3416 Export RenderObject::localToContainerPoint().
3420 2014-07-21 Jer Noble <jer.noble@apple.com>
3422 [MSE] YouTube video decode error when variant-switching
3423 https://bugs.webkit.org/show_bug.cgi?id=135128
3425 Reviewed by Brent Fulgham.