1 2014-07-04 Andreas Kling <akling@apple.com>
3 Fast path for jsStringWithCache() when asked for the same string repeatedly.
4 <https://webkit.org/b/134635>
6 Reviewed by Darin Adler.
9 * bindings/js/JSDOMBinding.cpp:
10 (WebCore::jsStringWithCache): Deleted.
11 * bindings/js/JSDOMBinding.h:
12 (WebCore::JSValueTraits<String>::arrayJSValue):
13 (WebCore::jsStringWithCache): Deleted.
14 * bridge/c/c_utility.cpp:
15 (JSC::Bindings::convertNPVariantToValue):
16 * loader/cache/CachedResourceHandle.h:
18 2014-07-04 Zalan Bujtas <zalan@apple.com>
20 Subpixel rendering: ebay.com rotating billboard on the main page has cut off buttons.
21 https://bugs.webkit.org/show_bug.cgi?id=134636
22 <rdar://problem/17529112>
24 Reviewed by Darin Adler.
26 Missing pixel snapping when clipping the transparency layer for BackgroundBleedUseTransparencyLayer.
27 Clipping needs to take the same snapping strategy as the rest of the painting code.
29 Test: fast/borders/border-radius-on-subpixel-position-non-hidpi.html
31 * rendering/RenderBox.cpp:
32 (WebCore::RenderBox::paintBoxDecorations):
34 2014-05-10 Andreas Kling <akling@apple.com>
36 QualifiedName should use RefPtr<QualifiedNameImpl> internally.
37 <https://webkit.org/b/132796>
39 We were not inlining ~QualifiedName() and it was showing up in some
40 profiles (over 1% on dom-attr.html.)
42 This patch modernizes QualifiedName a bit by using RefPtr to store
43 the QualifiedNameImpl instead of doing manual ref() and deref()
44 in out-of-line functions.
46 Reviewed by Darin Adler.
49 * dom/QualifiedName.cpp:
50 (WebCore::QNameComponentsTranslator::translate):
51 (WebCore::QualifiedName::QualifiedName):
52 (WebCore::QualifiedName::~QualifiedName): Deleted.
53 (WebCore::QualifiedName::deref): Deleted.
54 * dom/QualifiedName.h:
55 (WebCore::QualifiedName::QualifiedNameImpl::create):
56 (WebCore::QualifiedName::QualifiedName):
57 (WebCore::QualifiedName::isHashTableDeletedValue):
58 (WebCore::QualifiedName::~QualifiedName):
59 (WebCore::QualifiedName::operator=):
60 (WebCore::QualifiedName::impl):
61 (WebCore::QualifiedName::ref): Deleted.
63 2014-07-04 Dean Jackson <dino@apple.com>
65 [iOS] [Media] Prevent page zoom if it started in the video element
66 https://bugs.webkit.org/show_bug.cgi?id=134640
67 <rdar://problem/16630794>
69 Reviewed by Sam Weinig.
71 In r170572 I attempted to prevent the page zoom from happening
72 when the user was attempting to fullscreen the video. That fix was
73 not complete, because it relied on the touchstart event being
74 sent before a gesture event. It turns out this doesn't always happen,
75 so we need to apply the same check in the gesture event - if the
76 gesture began with two fingers on the media, don't do a page zoom.
77 The exception is zooming out, if you've managed to make the video
78 cover the entire screen (also, the pinch-out-of-fullscreen gesture
79 does not get handled by WebKit).
81 * Modules/mediacontrols/mediaControlsiOS.js:
82 (ControllerIOS.prototype.handleBaseGestureChange): Add a check to
83 make sure our pinch didn't start in the video element.
85 2014-07-04 Hunseop Jeong <hs85.jeong@samsung.com>
87 [CoordinatedGraphics] Use the C++11 syntax to clean-up for loops
88 https://bugs.webkit.org/show_bug.cgi?id=134594
90 Reviewed by Darin Adler.
92 Convert a couple of loops to range-based for
94 No change in functionality, no new tests.
96 * platform/graphics/TiledBackingStore.cpp:
97 (WebCore::TiledBackingStore::updateTileBuffers):
98 (WebCore::TiledBackingStore::resizeEdgeTiles):
99 (WebCore::TiledBackingStore::setKeepRect):
100 * platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:
101 (WebCore::CompositingCoordinator::~CompositingCoordinator):
102 (WebCore::CompositingCoordinator::flushPendingImageBackingChanges):
103 (WebCore::CompositingCoordinator::setVisibleContentsRect):
104 (WebCore::CompositingCoordinator::purgeBackingStores):
105 * platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp:
106 (WebCore::CoordinatedBackingStore::removeAllTiles):
107 (WebCore::CoordinatedBackingStore::paintToTextureMapper):
108 (WebCore::CoordinatedBackingStore::drawBorder):
109 (WebCore::CoordinatedBackingStore::drawRepaintCounter):
110 (WebCore::CoordinatedBackingStore::commitTileOperations):
111 * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
112 (WebCore::CoordinatedGraphicsScene::adjustPositionForFixedLayers):
113 (WebCore::CoordinatedGraphicsScene::commitPendingBackingStoreOperations):
115 2014-07-04 Andreas Kling <akling@apple.com>
117 CTTE: ScriptElement always has a HTTPScriptElement or SVGScriptElement.
118 <https://webkit.org/b/134637>
120 Have ScriptElement store the pointer to the more specific subclass
121 element as a reference. Also made the constructor protected since
122 nobody should instantiate ScriptElement directly.
124 Reviewed by Antti Koivisto.
126 * dom/ScriptElement.cpp:
127 (WebCore::ScriptElement::ScriptElement):
128 (WebCore::ScriptElement::childrenChanged):
129 (WebCore::ScriptElement::dispatchErrorEvent):
130 (WebCore::ScriptElement::prepareScript):
131 (WebCore::ScriptElement::requestScript):
132 (WebCore::ScriptElement::executeScript):
133 (WebCore::ScriptElement::notifyFinished):
134 (WebCore::ScriptElement::ignoresLoadRequest):
135 (WebCore::ScriptElement::scriptContent):
136 * dom/ScriptElement.h:
137 (WebCore::ScriptElement::element):
138 * dom/ScriptRunner.cpp:
139 (WebCore::ScriptRunner::queueScriptForExecution):
140 * html/HTMLScriptElement.cpp:
141 (WebCore::HTMLScriptElement::HTMLScriptElement):
142 * svg/SVGScriptElement.cpp:
143 (WebCore::SVGScriptElement::SVGScriptElement):
145 2014-07-04 Julien Quint <pom@graougraou.com>
147 input type=range element should only fire change events after committing a value
148 https://bugs.webkit.org/show_bug.cgi?id=134545
150 Reviewed by Dean Jackson.
152 A "change" event was fired every time the slider thumb element was dragged
153 by the user. The "change" event is now fired only after the thumb
154 element has stopped moving; previously, both "input" and "change" events
155 where dispatched while changes were being made. This new behavior is
156 consistent with the specification (cf.
157 http://www.whatwg.org/specs/web-apps/current-work/multipage/common-input-element-attributes.html#event-input-change),
158 as well as other implementations such as Firefox and Chrome.
160 * Modules/mediacontrols/mediaControlsApple.js:
161 (Controller.prototype.createControls): Listen to the "input" event
162 rather than the "change" event for the timeline control in order to
163 keep track of value changes when the user is dragging the thumb.
164 * accessibility/AccessibilitySlider.cpp:
165 (WebCore::AccessibilitySlider::setValue): Dispatch "change" event while
166 setting the new value rather than dispatching later, since setting the
167 value now clears the change flag.
168 * html/RangeInputType.cpp:
169 (WebCore::RangeInputType::setValue): Update the text value of the
170 control in the case when no event is to be dispatched, so that this
171 value can be checked the next time a "change" event dispatch is
173 * html/shadow/SliderThumbElement.cpp:
174 (WebCore::SliderThumbElement::setPositionFromPoint): Removed the
175 dispatch of the "change" event, and no longer track the text value of
176 the element as a result of dispatching a "change" event.
177 (WebCore::SliderThumbElement::stopDragging): Dispatch the "change" event
178 on completing the drag.
180 2014-07-04 Andreas Kling <akling@apple.com>
182 CTTE: ApplicationCacheHost always has a DocumentLoader.
183 <https://webkit.org/b/b/128435>
185 Have ApplicationCacheHost store the backpointer to its owning
186 DocumentLoader as a reference.
188 Reviewed by Sam Weinig.
190 * loader/DocumentLoader.cpp:
191 (WebCore::DocumentLoader::DocumentLoader):
192 (WebCore::DocumentLoader::startLoadingMainResource):
193 * loader/appcache/ApplicationCacheHost.cpp:
194 (WebCore::ApplicationCacheHost::ApplicationCacheHost):
195 (WebCore::ApplicationCacheHost::~ApplicationCacheHost):
196 (WebCore::ApplicationCacheHost::selectCacheWithoutManifest):
197 (WebCore::ApplicationCacheHost::selectCacheWithManifest):
198 (WebCore::ApplicationCacheHost::maybeLoadMainResource):
199 (WebCore::ApplicationCacheHost::maybeLoadFallbackForMainResponse):
200 (WebCore::ApplicationCacheHost::maybeLoadFallbackForMainError):
201 (WebCore::ApplicationCacheHost::failedLoadingMainResource):
202 (WebCore::ApplicationCacheHost::finishedLoadingMainResource):
203 (WebCore::ApplicationCacheHost::maybeLoadResource):
204 (WebCore::ApplicationCacheHost::maybeLoadFallbackForError):
205 (WebCore::ApplicationCacheHost::maybeLoadSynchronously):
206 (WebCore::ApplicationCacheHost::notifyDOMApplicationCache):
207 (WebCore::ApplicationCacheHost::stopDeferringEvents):
208 (WebCore::ApplicationCacheHost::scheduleLoadFallbackResourceFromApplicationCache):
209 (WebCore::ApplicationCacheHost::update):
210 (WebCore::ApplicationCacheHost::swapCache):
211 (WebCore::ApplicationCacheHost::abort):
212 (WebCore::ApplicationCacheHost::isApplicationCacheEnabled):
213 * loader/appcache/ApplicationCacheHost.h:
214 (WebCore::ApplicationCacheHost::documentLoader): Deleted.
216 2014-07-04 Antti Koivisto <antti@apple.com>
218 REGRESSION(r159345): Lines are clipped between pages when printing web content from Safari
219 https://bugs.webkit.org/show_bug.cgi?id=134633
220 <rdar://problem/17088936>
222 Reviewed by Zalan Bujtas.
224 Test: printing/simple-lines-break.html
226 * rendering/SimpleLineLayout.cpp:
227 (WebCore::SimpleLineLayout::canUseFor):
229 Disable simple lines if global pagination is enabled.
230 Printing does not currently use flow threads which we already test for.
232 2014-07-04 Zan Dobersek <zdobersek@igalia.com>
234 Unreviewed. Fixing the build after r170795.
236 Mac didn't like that change as it seems to properly typedef long long to int64_t.
237 That's not the case on 64-bit Linux (for some reason), so I'm changing the type of
238 the two long long variables in FormDataElement to int64_t to avoid any further trouble.
240 * platform/network/FormData.h:
242 2014-07-03 Brady Eidson <beidson@apple.com>
244 When showing the selection menu, include menu options for all selected phone numbers.
245 <rdar://problem/16983434>, <rdar://problem/16874568>, and https://bugs.webkit.org/show_bug.cgi?id=134613
247 Reviewed by Tim Horton.
249 * English.lproj/Localizable.strings:
252 (WebCore::rangesOverlap): Fix reversed arguments that caused some types of overlaps to not be detected.
254 2014-07-03 Daniel Bates <dabates@apple.com>
257 https://bugs.webkit.org/show_bug.cgi?id=134500
259 Rubber-stamped by Anders Carlsson.
261 Substitute WTF::move() for std::move().
263 * Modules/battery/NavigatorBattery.cpp:
264 * Modules/encryptedmedia/MediaKeys.cpp:
265 * Modules/gamepad/NavigatorGamepad.cpp:
266 * Modules/gamepad/deprecated/NavigatorGamepad.cpp:
267 * Modules/geolocation/NavigatorGeolocation.cpp:
268 * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
269 * Modules/indexeddb/IDBDatabaseBackend.cpp:
270 * Modules/indexeddb/IDBDatabaseBackend.h:
273 2014-07-03 Benjamin Poulain <bpoulain@apple.com>
275 [iOS][WK2] Fix small bugs of dynamicViewportSizeUpdate that were causing inaccuracies in the computed target
276 https://bugs.webkit.org/show_bug.cgi?id=134582
278 Reviewed by Tim Horton.
281 * platform/ScrollView.h:
282 (WebCore::ScrollView::unobscuredContentSize):
283 * platform/ios/ScrollViewIOS.mm:
284 (WebCore::ScrollView::unobscuredContentRect):
285 (WebCore::ScrollView::setUnobscuredContentSize):
287 2014-07-02 Brent Fulgham <bfulgham@apple.com>
289 [Mac] WebKit1 WebView iframe not responding to scroll gestures
290 https://bugs.webkit.org/show_bug.cgi?id=134569
291 <rdar://problem/17309008>
293 Reviewed by Simon Fraser.
295 New test: platform/mac/fast/scrolling/scroll-iframe-fragment.html
297 WK1 scrollable areas are implemented on top of PlatformWidget (i.e., NSView) objects. They only
298 perform a scroll operation if the EventHandler::handleWheelEvent method returns 'false', indicating
299 that the Cocoa layer should do scrolling work. This is in contrast to WK2, where the scrolling is
300 handled separately and we return 'true' from EventHandler::handleWheelEvent to indicate that the
301 scroll event has been handled and that no other work is needed. This mismatch in the meaning of
302 EventHandler::handleWheelEvent means that WK1 views do not properly handle scroll wheel events.
304 To correct this, we need to see if we are acting on an Element backed by a PlatformWidget. When we
305 are (the WK1 case) we want to return 'false' to instruct the Cocoa object to do the scroll operation.
306 To implement proper latching behavior in WK1, we must return 'true' in the case where we are latched
307 to a PlatformWidget, and that PlatformWidget did not start the scroll gesture at the edge of
308 the region in the dominant scroll direction.
310 Finally, additional logic was needed to determine whether the PlatformWidget is scrolled to the
311 edge in the dominant scroll direction.
313 * page/EventHandler.cpp:
314 (WebCore::EventHandler::platformCompleteWheelEvent): Added stub.
315 (WebCore::EventHandler::platformCompletePlatformWidgetWheelEvent): Added stub.
316 (WebCore::EventHandler::handleWheelEvent): Call new platformCompletePlatformWidgetWheelEvent if the
317 event was handled for a PlatformWidget.
318 * page/EventHandler.h:
319 * page/mac/EventHandlerMac.mm:
320 (WebCore::widgetForEventTarget): Added helper function.
321 (WebCore::scrollViewForEventTarget): Added helper function.
322 (WebCore::eventTargetIsPlatformWidget): Added helper function.
323 (WebCore::EventHandler::platformPrepareForWheelEvents): Check whether we are at a scrolled edge
324 for the NSView (PlatformWidget) case.
325 (WebCore::EventHandler::platformCompleteWheelEvent): Return 'false' when handling WK1-style scrolls.
326 (WebCore::EventHandler::platformCompletePlatformWidgetWheelEvent): Added. We generally want to
327 return false so the PlatformWidget handles scrolling, except in the case where we are latched to
328 a PlatformWidget, which has already performed its scroll, and we want to avoid propegating a
329 scroll event to an enclosing region.
331 2014-07-03 Pratik Solanki <psolanki@apple.com>
333 Preserve old behavior of creating an NSURLRequest of the exact same type as passed to us
334 https://bugs.webkit.org/show_bug.cgi?id=134605
335 <rdar://problem/17544641>
337 Reviewed by Andreas Kling.
339 We have client code that passes us a subclass of NSURLRequest to load resource. Later when
340 we call willSendRequest, they test to make sure they get an object of the same type. My
341 optimization in r170642 broke this path when I cleared out the NSURLRequest object. We
342 already had code in updateNSURLRequest() that was taking this quirk into account but I broke
343 that. Fix it by reverting to old behavior for such clients.
345 No new tests though we need one. I will add it later.
347 * platform/network/cf/ResourceRequest.h:
348 * platform/network/cf/ResourceRequestCFNet.cpp:
349 (WebCore::ResourceRequest::doUpdatePlatformRequest):
350 (WebCore::ResourceRequest::doUpdatePlatformHTTPBody):
351 (WebCore::ResourceRequest::setStorageSession):
352 * platform/network/ios/ResourceRequestIOS.mm:
353 (WebCore::ResourceRequest::updateNSURLRequest):
354 (WebCore::ResourceRequest::clearOrUpdateNSURLRequest):
356 2014-07-02 Anders Carlsson <andersca@apple.com>
358 Stop using EncoderAdapter/DecoderAdapter for FormData
359 https://bugs.webkit.org/show_bug.cgi?id=134571
361 Reviewed by Andreas Kling.
364 * platform/network/FormData.cpp:
365 (WebCore::encodeElement): Deleted.
366 (WebCore::decodeElement): Deleted.
367 (WebCore::FormData::encode): Deleted.
368 (WebCore::FormData::decode): Deleted.
369 * platform/network/FormData.h:
370 (WebCore::FormDataElement::encode):
371 (WebCore::FormDataElement::decode):
372 (WebCore::FormData::encode):
373 (WebCore::FormData::decode):
375 2014-07-03 Brady Eidson <beidson@apple.com>
377 Selection rects sent to ServicesOverlayController are wrong.
378 <rdar://problem/16727796> and https://bugs.webkit.org/show_bug.cgi?id=134568
380 Reviewed by Darin Adler (and Tim Horton and Ryosuke Niwa).
384 Update the gatherer to keep GapRects separate from LayoutRects:
385 * editing/SelectionRectGatherer.cpp:
386 (WebCore::SelectionRectGatherer::addRects):
387 (WebCore::SelectionRectGatherer::Notifier::~Notifier):
388 (WebCore::SelectionRectGatherer::clearAndCreateNotifier):
389 * editing/SelectionRectGatherer.h:
391 * page/EditorClient.h:
392 (WebCore::EditorClient::selectionRectsDidChange): Updated to take LayoutRects and GapRects separately.
394 Change RenderSelectionInfo to also hang on to the individual rects that formed the final bounding rect:
395 * rendering/RenderSelectionInfo.h:
396 (WebCore::RenderSelectionInfo::RenderSelectionInfo): If the RenderObject is a RenderText, then call
397 collectSelectionRectsForLineBoxes instead of selectionRectForRepaint.
398 (WebCore::RenderSelectionInfo::rects):
400 * rendering/RenderText.cpp:
401 (WebCore::RenderText::collectSelectionRectsForLineBoxes): Added
402 (WebCore::RenderText::selectionRectForRepaint):
403 * rendering/RenderText.h:
405 * rendering/RenderTextLineBoxes.cpp:
406 (WebCore::RenderTextLineBoxes::collectSelectionRectsForRange): Added
407 * rendering/RenderTextLineBoxes.h:
409 * rendering/RenderView.cpp:
410 (WebCore::RenderView::setSubtreeSelection): Add the list of rects to the gatherer instead of just
413 2014-07-03 Brady Eidson <beidson@apple.com>
415 Possible crash in IconDatabase in WebCore::IconDatabase::dispatchDidRemoveAllIconsOnMainThread
416 <rdar://problem/17437687> and https://bugs.webkit.org/show_bug.cgi?id=134517
418 Reviewed by Eric Carlson.
420 Since WebCore::IconDatabase is not RefCounted there’s no obvious way to keep it alive until it is
421 truly no longer needed.
423 This isn’t generally a problem because they are usually a singleton that lasts the lifetime of the process.
425 In the WebKit2 case, WebCore::IconDatabases can come and go as their owning WebIconDatabases come and go.
427 So we can rely on WebIconDatabase to handle the lifetime appropriately.
429 * loader/icon/IconDatabase.cpp:
430 (WebCore::IconDatabase::close): If the database is actually closed, notify the client.
431 (WebCore::IconDatabase::IconDatabase):
432 (WebCore::IconDatabase::isOpen): Take into account whether there’s any main thread callbacks, plus what
433 is covered by isOpenBesidesMainThreadCallbacks.
434 (WebCore::IconDatabase::isOpenBesidesMainThreadCallbacks): Take into account whether the sync thread
435 is still running and whether or not the database file is still open.
436 (WebCore::IconDatabase::checkClosedAfterMainThreadCallback): Checks to see if the database has just
437 become 100% closed and - if so - notify the client.
438 (WebCore::IconDatabase::dispatchDidImportIconURLForPageURLOnMainThread): Updated to increment the main thread
439 callback count and to call checkClosedAfterMainThreadCallback when done.
440 (WebCore::IconDatabase::dispatchDidImportIconDataForPageURLOnMainThread): Ditto.
441 (WebCore::IconDatabase::dispatchDidRemoveAllIconsOnMainThread): Ditto.
442 (WebCore::IconDatabase::dispatchDidFinishURLImportOnMainThread): Ditto.
443 * loader/icon/IconDatabase.h:
445 * loader/icon/IconDatabaseClient.h:
446 (WebCore::IconDatabaseClient::didClose): Added. For the IconDatabase to tell its client it is 100% closed.
448 2014-07-03 Chris Fleizach <cfleizach@apple.com>
450 AX: VoiceOver does not read aria-expanded attribute on controls in Safari
451 https://bugs.webkit.org/show_bug.cgi?id=134527
453 Reviewed by Mario Sanchez Prada.
455 Expose whether the ARIA expanded property is present or not.
457 * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
458 (-[WebAccessibilityObjectWrapper accessibilitySupportsARIAExpanded]):
460 2014-07-02 Jon Honeycutt <jhoneycutt@apple.com>
462 Removing an element with CSS -webkit-overflow-scrolling: touch breaks
463 subsequent touch events
465 <https://bugs.webkit.org/show_bug.cgi?id=134584>
466 <rdar://problem/17202021>
468 This issue is caused by the order of teardown for RenderLayers.
470 RenderLayer clears its m_backing in its destructor, calling the
471 RenderLayerBacking destructor. The RenderLayerBacking destructor calls
472 RenderLayerCompositor::willRemoveScrollingLayer(), which tries to
473 access the RenderLayer's backing that has already been cleared. This
474 causes us to skip the call to ChromeClient::removeScrollingLayer(),
475 resulting in a stale view that can block touch events.
477 Reviewed by Simon Fraser.
479 * rendering/RenderLayerBacking.cpp:
480 (WebCore::RenderLayerBacking::updateScrollingLayers):
481 When calling willRemoveScrollingLayerWithBacking(), pass both the layer
482 and the RenderLayerBacking.
484 * rendering/RenderLayerCompositor.cpp:
485 (WebCore::RenderLayerCompositor::willRemoveScrollingLayerWithBacking):
486 Renamed. Use the passed RenderLayerBacking, as the RenderLayer's
487 backing might have already been cleared.
488 (WebCore::RenderLayerCompositor::willRemoveScrollingLayer): Deleted.
490 * rendering/RenderLayerCompositor.h:
491 Renamed willRemoveScrollingLayer() to
492 willRemoveScrollingLayerWithBacking() and added a parameter.
494 2014-07-01 Mark Rowe <mrowe@apple.com>
496 Ensure that the WebKit bundle version in the user agent string continues to match the current format.
497 <https://webkit.org/b/134524> / <rdar://problem/17447771>
499 Reviewed by Simon Fraser.
501 * page/cocoa/UserAgent.h:
502 * page/cocoa/UserAgent.mm:
503 (WebCore::userVisibleWebKitBundleVersionFromFullVersion): Updated to take an NSString now that it's internal
505 (WebCore::userAgentBundleVersionFromFullVersionString): Limit the bundle version included in the user agent
506 string to three components.
507 * page/ios/UserAgentIOS.mm:
508 (WebCore::standardUserAgentWithApplicationName): Update to call userAgentBundleVersionFromFullVersionString.
509 * page/mac/UserAgentMac.mm:
510 (WebCore::standardUserAgentWithApplicationName): Ditto.
512 2014-07-01 Mark Rowe <mrowe@apple.com>
514 <https://webkit.org/b/134522> Remove duplication in code that prepares the user agent string on Mac and iOS
516 Reviewed by Simon Fraser.
518 * page/cocoa/UserAgent.h:
519 * page/cocoa/UserAgent.mm:
520 (WebCore::userVisibleWebKitBundleVersionFromFullVersion): Moved from WebKit2.
521 * page/ios/UserAgentIOS.mm:
522 (WebCore::standardUserAgentWithApplicationName): Pass the WebKit bundle version through userVisibleWebKitBundleVersionFromFullVersion
523 before including it in the user agent string.
524 * page/mac/UserAgentMac.mm:
525 (WebCore::standardUserAgentWithApplicationName): Ditto.
527 2014-07-02 Mark Rowe <mrowe@apple.com>
529 <https://webkit.org/b/134521> iOS should use shared code to determine the system marketing version
531 Reviewed by Simon Fraser.
533 * WebCore.xcodeproj/project.pbxproj: Add the new files, and sort the groups they're in.
534 * page/cocoa/UserAgent.h: Copied from Source/WebCore/page/mac/UserAgent.h.
535 * page/cocoa/UserAgent.mm: Renamed from Source/WebCore/page/mac/UserAgent.h.
536 Move systemMarketingVersionForUserAgentString to a location where it can be shared between
538 * page/ios/UserAgentIOS.mm:
539 (WebCore::standardUserAgentWithApplicationName): Switch to systemMarketingVersionForUserAgentString.
540 * page/mac/UserAgentMac.mm:
541 * platform/cocoa/SystemVersion.h: Renamed from Source/WebCore/platform/mac/SystemVersionMac.h.
542 * platform/cocoa/SystemVersion.mm: Renamed from Source/WebCore/platform/mac/SystemVersionMac.mm.
543 Move to a location that makes it clear this is shared between Mac and iOS. Enable the modern Mac
544 codepath for iOS as well.
546 2014-07-02 Anders Carlsson <andersca@apple.com>
548 Remove keyed coding from FormData
549 https://bugs.webkit.org/show_bug.cgi?id=134565
551 Reviewed by Tim Horton.
553 * platform/network/FormData.cpp:
554 (WebCore::encodeElement): Deleted.
555 (WebCore::decodeElement): Deleted.
556 (WebCore::FormData::encode): Deleted.
557 (WebCore::FormData::decode): Deleted.
558 * platform/network/FormData.h:
560 2014-07-02 Anders Carlsson <andersca@apple.com>
562 Get rid of the HistoryItem encoding/decoding in WebCore
563 https://bugs.webkit.org/show_bug.cgi?id=134564
565 Reviewed by Beth Dakin.
568 * history/HistoryItem.cpp:
569 (WebCore::HistoryItem::encodeBackForwardTree): Deleted.
570 (WebCore::encodeRect): Deleted.
571 (WebCore::encodeSize): Deleted.
572 (WebCore::HistoryItem::encodeBackForwardTreeNode): Deleted.
573 (WebCore::DecodeRecursionStackElement::DecodeRecursionStackElement): Deleted.
574 (WebCore::decodeRect): Deleted.
575 (WebCore::decodeSize): Deleted.
576 (WebCore::HistoryItem::decodeBackForwardTree): Deleted.
577 * history/HistoryItem.h:
579 2014-07-02 Alex Christensen <achristensen@webkit.org>
581 [WebGL] Fix crash when glsl expressions are too complex.
582 https://bugs.webkit.org/show_bug.cgi?id=134554
583 <rdar://problem/17540462>
585 Reviewed by Dean Jackson.
587 This fixes the Khronos test conformance/glsl/bugs/long-expressions-should-not-crash.html.
589 * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
590 (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
591 Add SH_LIMIT_EXPRESSION_COMPLEXITY to the ANGLE compile options.
593 2014-07-02 Benjamin Poulain <benjamin@webkit.org>
595 WebCore JIT: rename registerCount to something less generic and add new types for lists of registers and lists of stack references
596 https://bugs.webkit.org/show_bug.cgi?id=134552
598 Reviewed by Alex Christensen.
601 -The name registerCount was a little too generic. Rename that to "maximumRegisterCount" to avoid confusion.
602 -Add a new type RegisterVector for any vector holding registers. This is just to avoid repeating the inline
603 size everywhere, no functional change.
604 -Same idea for the stack: welcome StackReferenceVector!
606 * cssjit/FunctionCall.h:
607 (WebCore::FunctionCall::saveAllocatedCallerSavedRegisters):
608 Remove the appendVector here. It was unnecessarily cautious, StackAllocator already protect us
611 * cssjit/RegisterAllocator.h:
612 (WebCore::RegisterAllocator::allocatedRegisters):
613 * cssjit/SelectorCompiler.cpp:
614 (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
615 Changing from the count of "calleeSavedRegisterCount" to "maximumRegisterCount" will cause
616 calleeSavedRegisterStackReferences to always overallocate.
617 The code generator is never on the heap, so that should not change anything.
619 * cssjit/StackAllocator.h:
620 (WebCore::StackAllocator::push):
621 (WebCore::StackAllocator::pop):
623 2014-07-02 Dan Bernstein <mitz@apple.com>
625 Remove some code only needed for versions of Safari that are no longer supported
626 https://bugs.webkit.org/show_bug.cgi?id=134537
628 Reviewed by Anders Carlsson.
630 * bindings/objc/DOMHTML.mm:
631 (-[DOMHTMLInputElement _rectOnScreen]): Deleted.
632 (-[DOMHTMLInputElement _replaceCharactersInRange:withString:selectingFromIndex:]): Deleted.
633 (-[DOMHTMLInputElement _selectedRange]): Deleted.
634 * bindings/objc/DOMPrivate.h:
635 * editing/EditorCommand.cpp:
636 (WebCore::createCommandMap):
638 2014-07-02 Carlos Garcia Campos <cgarcia@igalia.com>
640 [GStreamer] MediaPlayerPrivateGStreamer.cpp fails to build when VIDEO_TRACK is enabled and using GSTREAMER_MPEGTS
641 https://bugs.webkit.org/show_bug.cgi?id=134548
643 Reviewed by Philippe Normand.
645 Include AtomicStringHash.h when ENABLE(VIDEO_TRACK) && USE(GSTREAMER_MPEGTS)
646 since it's used by HashMap<AtomicString, RefPtr<InbandMetadataTextTrackPrivateGStreamer>>
648 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
650 2014-07-02 Carlos Garcia Campos <cgarcia@igalia.com>
652 [GTK] Unstable headers should include webkitdomdefines-unstable.h
653 https://bugs.webkit.org/show_bug.cgi?id=134540
655 Reviewed by Martin Robinson.
657 Instead of the class header that can only be included from webkitdom.h.
659 * bindings/scripts/CodeGeneratorGObject.pm:
662 2014-07-02 Mario Sanchez Prada <mario.prada@samsung.com>
664 REGRESSION(r170008): [GTK] Layout Tests fast/forms/option-constructor-selected.html and fast/forms/select-live-pseudo-selectors.html crash.
665 https://bugs.webkit.org/show_bug.cgi?id=134399
667 Reviewed by Chris Fleizach.
669 Check that the value of optionIndex passed as a parameter is valid
670 before calling didUpdateActiveOption() over the item of the menu
671 list, to prevent crashes in platforms where renderers (and therefore
672 accessibility objects) might not be created for items at the time
673 of calling AccessibilityMenuList::didUpdateActiveOption().
675 * accessibility/AccessibilityMenuList.cpp:
676 (WebCore::AccessibilityMenuList::didUpdateActiveOption): Added check.
678 2014-07-02 Carlos Garcia Campos <cgarcia@igalia.com>
680 [GTK] Do not add forward declaration of class struct for interfaces
681 https://bugs.webkit.org/show_bug.cgi?id=134297
683 Reviewed by Martin Robinson.
685 * PlatformGTK.cmake: Make files generated by
686 gobject-generate-headers.pl script depend on it.
687 * bindings/gobject/WebKitDOMEventTarget.h: Remove forward declaration.
688 * bindings/gobject/WebKitDOMNodeFilter.h: Ditto
689 * bindings/gobject/WebKitDOMXPathNSResolver.h: Ditto.
690 * bindings/scripts/gobject-generate-headers.pl: Use Iface instead
691 of Class suffix for interfaces.
693 2014-07-01 Carlos Garcia Campos <cgarcia@igalia.com>
695 [GTK] XPathNSResolver should be exposed as an interface instead of as a class
696 https://bugs.webkit.org/show_bug.cgi?id=134028
698 Reviewed by Gustavo Noronha Silva.
700 Add custom implementation of WebKitDOMXPathNSResolver to expose it
701 as an interface instead of a class. It also includes an internal
702 default implementation of the interface to support methods that
703 create a XPathNSResolver using the native implementation.
705 * PlatformGTK.cmake: Add new files to compilation.
706 * bindings/gobject/GObjectXPathNSResolver.cpp: Added.
707 (WebCore::GObjectXPathNSResolver::~GObjectXPathNSResolver):
708 (WebCore::GObjectXPathNSResolver::lookupNamespaceURI): Call
709 webkit_dom_xpath_ns_resolver_lookup_namespace_uri().
710 * bindings/gobject/GObjectXPathNSResolver.h: Added.
711 (WebCore::GObjectXPathNSResolver::create):
712 (WebCore::GObjectXPathNSResolver::GObjectXPathNSResolver): Create
713 a new GObjectXPathNSResolver for the given WebKitDOMXPathNSResolver.
714 * bindings/gobject/WebKitDOMXPathNSResolver.cpp: Added.
715 (webkit_dom_xpath_ns_resolver_default_init):
716 (webkit_dom_xpath_ns_resolver_lookup_namespace_uri):
717 (webkitDOMNativeXPathNSResolverFinalize):
718 (webkitDOMNativeXPathNSResolverConstructor):
719 (webkit_dom_native_xpath_ns_resolver_init):
720 (webkit_dom_native_xpath_ns_resolver_class_init):
721 (webkitDOMNativeXPathNSResolverLookupNamespaceURI):
722 (webkitDOMXPathNSResolverIfaceInit):
723 (WebKit::core): Return the native XPathNSResolver when using the
724 internal implementation or create a custom XPathNSResolver when
725 using a user provided WebKitDOMXPathNSResolver.
727 * bindings/gobject/WebKitDOMXPathNSResolver.h: Added.
728 * bindings/gobject/WebKitDOMXPathNSResolverPrivate.h: Added.
729 * bindings/scripts/CodeGeneratorGObject.pm:
730 (GenerateFunction): Add exceptions for XPathNSResolver since
731 the core method returns a PassRefPtr.
733 2014-07-01 Frédéric Wang <fred.wang@free.fr>
735 The OpenType MATH table is not read on Mac
736 https://bugs.webkit.org/show_bug.cgi?id=133569
738 Reviewed by Chris Fleizach.
740 An incorrect tag format is used to load the OpenType MATH table on Mac.
741 This commit makes the format consistent with what is used for other tables on Mac.
742 This will allow to load the MATH table and to use it for the MathML rendering.
744 No new tests. platform/graphics/opentype already contains tests for the OpenType MATH support.
746 * platform/graphics/opentype/OpenTypeMathData.cpp:
748 2014-07-01 Alex Christensen <achristensen@webkit.org>
750 [Win64] Unreviewed build fix.
752 * WebCore.vcxproj/WebCore.vcxproj:
753 Exclude CA files from 32 and 64 bit WinCairo builds.
754 * WebCore.vcxproj/WebCoreTestSupport.vcxproj:
755 Don't use a precompiled header in 32 or 63 bit builds of MockCDM.cpp.
757 2014-07-01 Alex Christensen <achristensen@webkit.org>
759 Reduce dynamic memory allocation in css jit.
760 https://bugs.webkit.org/show_bug.cgi?id=134416
762 Reviewed by Benjamin Poulain.
764 * cssjit/FunctionCall.h:
765 (WebCore::FunctionCall::saveAllocatedRegisters):
766 * cssjit/RegisterAllocator.h:
767 * cssjit/SelectorCompiler.cpp:
768 (WebCore::SelectorCompiler::addPseudoClassType):
769 (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
770 (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
771 * cssjit/StackAllocator.h:
772 (WebCore::StackAllocator::push):
773 (WebCore::StackAllocator::pop):
774 Use inlineCapacity template parameter to reduce malloc calls.
775 I use 32 as the inline capacity for non-register related vectors because that
776 is probably big enough for the selector compiler, and if it is not then a malloc
777 call will not be significant because the selector is very complex.
779 2014-07-01 Eric Carlson <eric.carlson@apple.com>
781 WebVTT percentage value can be a float
782 https://bugs.webkit.org/show_bug.cgi?id=134511
784 Reviewed by Brent Fulgham.
786 No new tests, existing tests modified.
788 * html/track/TextTrackCueGeneric.cpp:
789 (WebCore::TextTrackCueGeneric::setLine): int -> double.
790 (WebCore::TextTrackCueGeneric::setPosition): Ditto.
791 * html/track/TextTrackCueGeneric.h:
793 * html/track/VTTCue.cpp:
794 (WebCore::VTTCue::setLine): Ditto.
795 (WebCore::VTTCue::setPosition): Ditto.
796 (WebCore::VTTCue::setCueSettings): Support floating point values for line, position, and size.
797 (WebCore::scanPercentage): Deleted.
798 * html/track/VTTCue.h:
800 * html/track/VTTScanner.cpp:
801 (WebCore::VTTScanner::scanFloat): Support negative values.
802 * html/track/VTTScanner.h:
804 * html/track/WebVTTParser.cpp: Include parseFloatPercentageValue in non-WEBVTT_REGIONS builds.
805 * html/track/WebVTTParser.h:
807 * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
808 (WebCore::InbandTextTrackPrivateAVF::processCueAttributes): Drive by change to take a cue
809 reference rather than a pointer.
810 (WebCore::InbandTextTrackPrivateAVF::processAttributedStrings): Ditto.
811 (WebCore::InbandTextTrackPrivateAVF::removeCompletedCues): Loop over all cues, don't LOG that
812 we are asking the client to delete the cue because the client will have already deleted
813 it when status when to GenericCueData::Complete.
814 * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
816 2014-07-01 Simon Fraser <simon.fraser@apple.com>
818 Improve behavior of position:sticky on zoomed pages
819 https://bugs.webkit.org/show_bug.cgi?id=134535
820 <rdar://problem/12898829>
822 Reviewed by Dean Jackson.
824 Despite r138036, position:sticky still had incorrect behavior in zoomed pages.
826 Fix by removing the scaling of the rect from viewportConstrainedVisibleContentRect(),
827 since all the other math happens in unscaled coordinates.
829 * rendering/RenderBoxModelObject.cpp:
830 (WebCore::RenderBoxModelObject::constrainingRectForStickyPosition):
832 2014-07-01 Alex Christensen <achristensen@webkit.org>
834 [WebGL] Fix PVRTC extension.
835 https://bugs.webkit.org/show_bug.cgi?id=134525
837 Reviewed by Dean Jackson.
839 * html/canvas/WebGLRenderingContext.cpp:
840 (WebCore::WebGLRenderingContext::validateCompressedTexDimensions):
841 Remove the return false which I mistakenly committed in r170128
842 and make the gl error match the S3TC error and the khronos test.
844 2014-07-01 Chris Fleizach <cfleizach@apple.com>
846 AX: iOS does not expose ARIA toggle buttons at all (not even as a regular button)
847 https://bugs.webkit.org/show_bug.cgi?id=133875
849 Reviewed by Enrica Casucci.
851 Support the toggle button type in iOS.
853 Test: platform/ios-sim/accessibility/toggle-button.html
855 * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
856 (-[WebAccessibilityObjectWrapper accessibilityCanFuzzyHitTest]):
857 (-[WebAccessibilityObjectWrapper accessibilityTraits]):
858 (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
860 2014-07-01 Dean Jackson <dino@apple.com>
862 [iOS] Subsampled JPEG images do not draw correctly via the canvas APIs
863 https://bugs.webkit.org/show_bug.cgi?id=134513
864 <rdar://problem/12078860>
865 <rdar://problem/16745393>
867 Reviewed by Tim Horton.
869 Subsampled images (e.g. JPEG) were not consistently using
870 their original dimensions and subsampled dimensions. This caused
871 things like texImage2D to pack the pixels incorrectly, or drawImage
872 to squish the rendering.
874 Renamed m_scale to m_subsamplingScale on FrameData.
876 Tests: fast/canvas/image-potential-subsample.html
877 fast/canvas/webgl/tex-image-and-sub-image-2d-with-potentially-subsampled-image.html
879 * platform/graphics/BitmapImage.cpp:
880 (WebCore::BitmapImage::cacheFrame): Rename to m_subsamplingScale.
881 (WebCore::BitmapImage::frameAtIndex): Ditto.
882 * platform/graphics/BitmapImage.h:
883 (WebCore::FrameData::FrameData): Ditto.
884 * platform/graphics/cg/BitmapImageCG.cpp:
885 (WebCore::FrameData::clear): Ditto.
886 (WebCore::BitmapImage::BitmapImage): Ditto.
887 (WebCore::BitmapImage::draw): Use a scaledSrcRect that reflects the subsampled size,
888 rather than assuming the srcRect accurately reflects how many pixels we have
890 (WebCore::BitmapImage::copyUnscaledFrameAtIndex):
891 * platform/graphics/cg/GraphicsContext3DCG.cpp:
892 (WebCore::GraphicsContext3D::ImageExtractor::extractImage): Similar fix, although this
893 time we just ask the image decoder to take into account the subsampled size
894 when it is "generating" a frame, causing it to use the bitmap data it has already
897 2014-07-01 Joseph Pecoraro <pecoraro@apple.com>
899 Web Inspector: Selected DOM element highlights invisible near bottom of the viewport (topContentInset?)
900 https://bugs.webkit.org/show_bug.cgi?id=133818
902 Reviewed by Beth Dakin.
904 * inspector/InspectorOverlay.cpp:
905 (WebCore::InspectorOverlay::update):
906 Take the topContentInset into account when sizing the InspectorOverlay's FrameView.
908 2014-07-01 Chris Fleizach <cfleizach@apple.com>
910 AX: HTML indeterminate IDL attribute not mapped to checkbox value=2
911 https://bugs.webkit.org/show_bug.cgi?id=134492
913 Reviewed by Andreas Kling.
915 Support the indeterminate attribute in AX code.
917 Test: Update existing test: accessibility/aria-checked-mixed-value
919 * accessibility/AccessibilityObject.cpp:
920 (WebCore::AccessibilityObject::checkboxOrRadioValue):
922 2014-07-01 Myles C. Maxfield <mmaxfield@apple.com>
924 Typing an automatic text replacement phrase after a br in contenteditable is not rendered as expected
925 https://bugs.webkit.org/show_bug.cgi?id=133883
927 Reviewed by Enrica Casucci.
929 enclosingDeletableElement() makes sure that the element's container is editable, but not
930 that it is capable of having content inside it (like how a <br> can't).
932 No new tests. I don't think this is testable because it requires setting some state in System Preferences.
934 * editing/DeleteButtonController.cpp:
935 (WebCore::enclosingDeletableElement):
937 2014-07-01 Alex Christensen <achristensen@webkit.org>
939 [iOS] Unreviewed build fix after r170640.
941 * page/EditorClient.h:
942 (WebCore::EditorClient::selectedTelephoneNumberRangesChanged):
943 Add ifdefs to make everything compile and link.
945 2014-07-01 Daniel Bates <dabates@apple.com>
947 Remove unnecessary calls to std::move()
948 https://bugs.webkit.org/show_bug.cgi?id=134493
950 Reviewed by Anders Carlsson.
952 * Modules/encryptedmedia/CDM.cpp:
954 * css/CSSGrammar.y.in:
955 * css/CSSPrimitiveValue.cpp:
956 (WebCore::CSSPrimitiveValue::formatNumberValue):
957 * css/MediaQuery.cpp:
958 (WebCore::MediaQuery::MediaQuery):
959 * platform/graphics/mac/FontMac.mm:
960 (WebCore::Font::dashesForIntersectionsWithRect):
962 2014-07-01 Zalan Bujtas <zalan@apple.com>
964 Subpixel rendering: Pixel crack in breadcrumbs at devforums.apple.com.
965 https://bugs.webkit.org/show_bug.cgi?id=134491
967 Reviewed by Simon Fraser.
969 Do not early round geometry values, while computing background image position. It changes the final
970 subpixel values and that could lead to wrong snap positions.
971 pixelSnapBackgroundImageGeometryForPainting() takes care of geometry snapping.
973 Test: fast/backgrounds/background-image-size-double-rounding.html
975 * rendering/RenderBoxModelObject.cpp:
976 (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
978 2014-07-01 Pratik Solanki <psolanki@apple.com>
980 Create NSURLRequest lazily when USE(CFNETWORK) is enabled
981 https://bugs.webkit.org/show_bug.cgi?id=134441
983 Reviewed by Andreas Kling.
985 No new tests. Should be covered by existing tests.
987 * platform/network/cf/ResourceRequest.h:
988 (WebCore::ResourceRequest::ResourceRequest):
989 (WebCore::ResourceRequest::encodingRequiresPlatformData):
990 * platform/network/cf/ResourceRequestCFNet.cpp:
991 (WebCore::ResourceRequest::doUpdatePlatformRequest):
992 (WebCore::ResourceRequest::doUpdatePlatformHTTPBody):
993 (WebCore::ResourceRequest::setStorageSession):
994 * platform/network/cocoa/ResourceRequestCocoa.mm:
995 (WebCore::ResourceRequest::nsURLRequest):
997 2014-07-01 Brady Eidson <beidson@apple.com>
999 Combine the Telephone and Selection overlay controllers, updating UI behavior.
1000 https://bugs.webkit.org/show_bug.cgi?id=134461
1002 Reviewed by Tim Horton.
1007 (WebCore::Range::contains): Returns true if the Range completely contains the passed-in Range.
1010 2014-07-01 Antti Koivisto <antti@apple.com>
1012 REGRESSION(160908): vube.com video won't play after going into and out of fullscreen
1013 https://bugs.webkit.org/show_bug.cgi?id=134489
1015 Reviewed by Zalan Bujtas.
1017 Test: fullscreen/full-screen-plugin.html
1019 It is difficult to restore the render tree correctly in all cases after removing a full screen
1020 renderer from the tree. r160908 avoided dealing with this by simply always reconstructing the subtree.
1021 Unfortunately plugin lifetime is currently tied to its renderer so this would cause the plugin to restart.
1023 With this patch we avoid reconstruction in normal cases and only force it if the render tree is complicated.
1026 (WebCore::unwrapFullScreenRenderer):
1028 Force reconstruction conditionally.
1030 (WebCore::Document::webkitWillEnterFullScreenForElement):
1031 (WebCore::Document::webkitDidExitFullScreenForElement):
1032 * rendering/RenderFullScreen.cpp:
1033 (WebCore::RenderFullScreen::wrapRenderer):
1034 (WebCore::RenderFullScreen::unwrapRenderer):
1036 Deal with the simple case of single child, possibly in anonymous wrapper.
1037 In other cases request reconstruction.
1038 This is covered by the existing fullscreen tests.
1040 * rendering/RenderFullScreen.h:
1042 2014-07-01 Zan Dobersek <zdobersek@igalia.com>
1044 Remove remaining Vector<> copies in WebCore accessibility code
1045 https://bugs.webkit.org/show_bug.cgi?id=133263
1047 Reviewed by Darin Adler.
1049 * accessibility/AXObjectCache.cpp:
1050 (WebCore::AXObjectCache::notificationPostTimerFired): Don't copy the Vector member and
1051 then clear it -- move it into the local variable instead.
1052 * accessibility/AccessibilityNodeObject.cpp:
1053 (WebCore::AccessibilityNodeObject::ariaLabeledByText): Move the axElements Vector into
1054 the AccessibilityText constructor.
1055 (WebCore::AccessibilityNodeObject::stringValue): Create a const reference to the Vector of
1056 HTMLSelectElement's list items instead of copying it.
1057 * accessibility/AccessibilityObject.h:
1058 (WebCore::AccessibilityText::AccessibilityText): Take the Vector parameter by non-const
1059 value and move it into the member variable.
1060 * accessibility/AccessibilityRenderObject.cpp:
1061 (WebCore::AccessibilityRenderObject::stringValue): Create a const reference to the Vector
1062 of HTMLSelectElement's list items instead of copying it.
1063 (WebCore::AccessibilityRenderObject::ariaSelectedRows): Wrap the AccessibilityChildrenVector
1064 iteration in a lambda. Use it to iterate over either the newly-constructed Vector (in case
1065 the object has the tree role) or the reference to the vector returned by
1066 AccessibilityTable::rows() (in case the object is an AccessibilityTable instance).
1068 2014-06-30 Commit Queue <commit-queue@webkit.org>
1070 Unreviewed, rolling out r170605.
1071 https://bugs.webkit.org/show_bug.cgi?id=134484
1073 The changes cause crashes on ARM64 (Requested by benjaminp on
1078 "Reduce dynamic memory allocation in css jit."
1079 https://bugs.webkit.org/show_bug.cgi?id=134416
1080 http://trac.webkit.org/changeset/170605
1082 2014-06-30 Anders Carlsson <andersca@apple.com>
1084 Change the AddBackForwardItem message to take a page state object
1085 https://bugs.webkit.org/show_bug.cgi?id=134475
1087 Reviewed by Andreas Kling.
1091 2014-06-30 Benjamin Poulain <benjamin@webkit.org>
1093 [iOS][WK2] Do not put tap highlight on images that are not in links, and on applet/embed/object
1094 https://bugs.webkit.org/show_bug.cgi?id=134471
1095 <rdar://problem/17513542>
1097 Reviewed by Enrica Casucci.
1099 UIKit has some special code to avoid tap highlight on certain type of object. This is not very flexible
1100 since the page has no way of overriding that behavior.
1102 This patch implement the same feature by changing the default stylesheet. The tap highlight is disabled
1103 by default for those object, and enabled for images that are in a link.
1106 (applet, embed, object, img):
1107 (:-webkit-any-link img):
1109 2014-06-30 Myles C. Maxfield <mmaxfield@apple.com>
1111 All Indic text is rendered as boxes on iOS
1112 https://bugs.webkit.org/show_bug.cgi?id=134464
1114 Reviewed by Simon Fraser.
1116 I made a typo in r170207.
1118 Test: fast/text/indic.html
1120 * platform/graphics/ios/FontCacheIOS.mm:
1121 (WebCore::languageSpecificFallbackFont):
1123 2014-06-30 Myles C. Maxfield <mmaxfield@apple.com>
1125 [iOS] languageSpecificFallbackFont() is not consistent
1126 https://bugs.webkit.org/show_bug.cgi?id=134473
1128 Reviewed by Darin Adler.
1130 It can use "<" throughout the function as well as keeping the fallthrough behavior consistent.
1132 No tests because there is no behavior change.
1134 * platform/graphics/ios/FontCacheIOS.mm:
1135 (WebCore::languageSpecificFallbackFont):
1137 2014-06-30 Brent Fulgham <bfulgham@apple.com>
1139 [Win] Unreviewed gardening.
1141 * WebCore.vcxproj/WebCore.vcxproj: Do not compile JSFileException
1142 and JSFileReaderSync multiple times.
1144 2014-06-30 Daniel Bates <dabates@apple.com>
1146 Avoid copying function object in lambda function in ScrollingThread::dispatchBarrier(); actually use move semantics
1147 https://bugs.webkit.org/show_bug.cgi?id=134470
1149 Reviewed by Anders Carlsson.
1151 Currently we always copy construct the captured std::function object when calling callOnMainThread()
1152 in the lambda function created in ScrollingThread::dispatchBarrier() because captured variables are
1153 const in a lambda expression's body by default. That is, the std::function object is captured as const.
1154 Instead, we should mark this lambda expression as mutable so the captured std::function object is
1155 non-const and hence we can use move semantics when passing it to callOnMainThread().
1157 * page/scrolling/ScrollingThread.cpp:
1158 (WebCore::ScrollingThread::dispatchBarrier):
1160 2014-06-30 Anders Carlsson <andersca@apple.com>
1162 Adopt the legacy session decoding inside WebPage::restoreSession for now
1163 https://bugs.webkit.org/show_bug.cgi?id=134465
1165 Reviewed by Sam Weinig.
1169 2014-06-30 Commit Queue <commit-queue@webkit.org>
1171 Unreviewed, rolling out r170578.
1172 https://bugs.webkit.org/show_bug.cgi?id=134462
1174 causes assertions loading nytimes.com on iOS (Requested by
1179 "Create NSURLRequest lazily when USE(CFNETWORK) is enabled"
1180 https://bugs.webkit.org/show_bug.cgi?id=134441
1181 http://trac.webkit.org/changeset/170578
1183 2014-06-30 Alex Christensen <achristensen@webkit.org>
1185 Reduce dynamic memory allocation in css jit.
1186 https://bugs.webkit.org/show_bug.cgi?id=134416
1188 Reviewed by Benjamin Poulain.
1190 * cssjit/FunctionCall.h:
1191 (WebCore::FunctionCall::FunctionCall):
1192 (WebCore::FunctionCall::saveAllocatedCallerSavedRegisters):
1193 * cssjit/RegisterAllocator.h:
1194 * cssjit/SelectorCompiler.cpp:
1195 (WebCore::SelectorCompiler::addPseudoClassType):
1196 (WebCore::SelectorCompiler::SelectorCodeGenerator::generatePrologue):
1197 (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
1198 (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
1199 Use inlineCapacity template parameter to reduce malloc calls.
1200 I use 16 and 32 as the inline capacity for non-register related vectors because that
1201 is probably big enough for the selector compiler, and if it is not then a malloc
1202 call will not be significant because the selector is very complex.
1203 * cssjit/StackAllocator.h:
1204 (WebCore::StackAllocator::push):
1205 Pass a vector of stack references to match calls to pop and to avoid a call to appendVector.
1207 2014-06-30 Alex Christensen <achristensen@webkit.org>
1209 Use non-thumb registers in armv7 css jit.
1210 https://bugs.webkit.org/show_bug.cgi?id=134450
1212 Reviewed by Geoff Garen.
1214 * cssjit/RegisterAllocator.h:
1215 (WebCore::RegisterAllocator::isValidRegister):
1216 (WebCore::RegisterAllocator::isCallerSavedRegister):
1217 Use additional general purpose registers.
1218 * cssjit/SelectorCompiler.cpp:
1219 (WebCore::SelectorCompiler::SelectorCodeGenerator::compile):
1220 (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
1221 Always succeed when compiling css selectors.
1223 2014-06-30 Myles C. Maxfield <mmaxfield@apple.com>
1225 Tiles on bottom of screen are not always allocated when necessary
1226 https://bugs.webkit.org/show_bug.cgi?id=134272
1228 Reviewed by Simon Fraser.
1230 The initial visibleRect is in the coordinate of the root layer, so its origin
1231 is at the top left of the view. The initial rect we were using doesn't
1232 include the contents inset, so it was too short, which was causing tiles near
1233 the bottom of the screen to not always be allocated if the tile threshold was
1234 close to the bottom of the view. Instead, we want to include the contents
1235 inset size so the visible rect includes the entire view.
1236 GraphicsLayerCA::recursiveCommitChanges() takes care of mapping and cropping
1237 the visible rect into the tiled layer's coordinate system, at which point it
1238 is used for visible tile logic.
1240 Test: platform/mac-wk2/tiled-drawing/visible-rect-content-inset.html
1242 * platform/graphics/ca/TileCoverageMap.cpp:
1243 (WebCore::TileCoverageMap::update):
1244 * rendering/RenderLayerCompositor.cpp:
1245 (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
1247 2014-06-30 Brent Fulgham <bfulgham@apple.com>
1249 [Win] Unreviewed project gardening.
1251 * WebCore.vcxproj/WebCore.vcxproj: Clean up path information so
1252 files appear in appropriate places in project view.
1253 * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
1255 2014-06-30 Zalan Bujtas <zalan@apple.com>
1257 Remove redundant repaintCompositedLayers() parameter and its dependencies.
1258 https://bugs.webkit.org/show_bug.cgi?id=134431
1260 Reviewed by Darin Adler.
1262 No change in functionality.
1264 * rendering/RenderLayer.cpp:
1265 (WebCore::RenderLayer::convertToPixelSnappedLayerCoords): Deleted.
1266 (WebCore::RenderLayer::convertToLayerCoords): Deleted.
1267 * rendering/RenderLayer.h:
1268 * rendering/RenderLayerCompositor.cpp:
1269 (WebCore::RenderLayerCompositor::repaintCompositedLayers):
1270 (WebCore::RenderLayerCompositor::recursiveRepaintLayer):
1271 * rendering/RenderLayerCompositor.h:
1273 2014-06-30 Alex Christensen <achristensen@webkit.org>
1275 Remove webkit prefix from pointer lock.
1276 https://bugs.webkit.org/show_bug.cgi?id=134312
1278 Reviewed by Dean Jackson.
1281 (WebCore::Document::exitPointerLock):
1282 (WebCore::Document::pointerLockElement):
1283 (WebCore::Document::webkitExitPointerLock): Deleted.
1284 (WebCore::Document::webkitPointerLockElement): Deleted.
1288 (WebCore::Element::requestPointerLock):
1289 (WebCore::Element::webkitRequestPointerLock): Deleted.
1293 * dom/MouseEvent.idl:
1294 * dom/MouseRelatedEvent.h:
1295 (WebCore::MouseRelatedEvent::movementX):
1296 (WebCore::MouseRelatedEvent::movementY):
1297 (WebCore::MouseRelatedEvent::webkitMovementX): Deleted.
1298 (WebCore::MouseRelatedEvent::webkitMovementY): Deleted.
1299 * page/PointerLockController.cpp:
1300 (WebCore::PointerLockController::PointerLockController):
1301 Initialize all data members.
1302 (WebCore::PointerLockController::requestPointerLock):
1303 (WebCore::PointerLockController::didAcquirePointerLock):
1304 (WebCore::PointerLockController::didNotAcquirePointerLock):
1305 (WebCore::PointerLockController::didLosePointerLock):
1307 2014-06-30 Myles C. Maxfield <mmaxfield@apple.com>
1309 U16_IS_SURROGATE should not be called with a UChar32
1310 https://bugs.webkit.org/show_bug.cgi?id=134440
1312 Reviewed by Darin Adler.
1314 No new tests because there is no behavior change.
1316 * platform/graphics/mac/ComplexTextController.cpp:
1317 (WebCore::advanceByCombiningCharacterSequence):
1319 2014-06-30 Ryuan Choi <ryuan.choi@samsung.com>
1321 [EFL] Remove m_evasObject from Widget
1322 https://bugs.webkit.org/show_bug.cgi?id=134442
1324 Reviewed by Gyuyoung Kim.
1326 Since WebKit1/EFL was dropped, we don't need to keep the m_evasObject
1327 in the Widget.cpp because it's not used for WebKit2/Efl.
1329 * platform/Widget.h:
1330 (WebCore::Widget::evasObject): Deleted.
1331 * platform/efl/ScrollbarEfl.cpp:
1332 Removed WebKit1/Efl specific code which uses m_evasObject.
1333 It will be a dummy until WebKit2/Efl support proper scrollbar implementation.
1334 (WebCore::ScrollbarEfl::ScrollbarEfl):
1335 (WebCore::ScrollbarEfl::~ScrollbarEfl):
1336 (WebCore::ScrollbarEfl::setParent):
1337 (WebCore::ScrollbarEfl::frameRectsChanged):
1338 (WebCore::ScrollbarEfl::invalidate):
1339 (ScrollbarEfl::ScrollbarEfl): Deleted.
1340 (ScrollbarEfl::~ScrollbarEfl): Deleted.
1341 (scrollbarEflEdjeMessage): Deleted.
1342 (ScrollbarEfl::setParent): Deleted.
1343 (ScrollbarEfl::updateThumbPosition): Deleted.
1344 (ScrollbarEfl::updateThumbProportion): Deleted.
1345 (ScrollbarEfl::updateThumbPositionAndProportion): Deleted.
1346 (ScrollbarEfl::frameRectsChanged): Deleted.
1347 (ScrollbarEfl::invalidate): Deleted.
1348 * platform/efl/ScrollbarEfl.h:
1349 Removed unnecessary methods. In addition, applied final, override keyword.
1350 (WebCore::ScrollbarEfl::handleMouseMoveEvent): Deleted.
1351 (WebCore::ScrollbarEfl::handleMouseOutEvent): Deleted.
1352 (WebCore::ScrollbarEfl::handleMousePressEvent): Deleted.
1353 (WebCore::ScrollbarEfl::handleMouseReleaseEvent): Deleted.
1354 * platform/efl/WidgetEfl.cpp:
1355 (WebCore::Widget::Widget):
1356 (WebCore::Widget::setEvasObject): Deleted.
1358 2014-06-30 Eva Balazsfalvi <evab.u-szeged@partner.samsung.com>
1360 Fix deprecated warning with bison 3
1361 https://bugs.webkit.org/show_bug.cgi?id=133791
1363 Reviewed by Csaba Osztrogonác.
1365 No new tests because no functional changes.
1367 * css/CSSGrammar.y.in:
1368 * xml/XPathGrammar.y:
1370 2014-06-30 Jaehun Lim <ljaehun.lim@samsung.com>
1372 Remove HarfBuzzShaper::setDrawRange()
1373 https://bugs.webkit.org/show_bug.cgi?id=134243
1375 Reviewed by Gyuyoung Kim.
1377 setDrawRange() is not used anywhere. Remove it.
1378 And m_fromIndex and m_toIndex are changed by only setDrawRange().
1379 So remove them too and use the default values instead of them.
1381 No new tests, no behavior changes.
1383 * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
1384 (WebCore::HarfBuzzShaper::HarfBuzzShaper):
1385 (WebCore::HarfBuzzShaper::fillGlyphBufferFromHarfBuzzRun):
1386 currentCharacterIndex is unsigned, always greater than 0. Clean up if statements.
1387 (WebCore::HarfBuzzShaper::setDrawRange): Deleted.
1388 * platform/graphics/harfbuzz/HarfBuzzShaper.h:
1390 2014-06-29 Pratik Solanki <psolanki@apple.com>
1392 Create NSURLRequest lazily when USE(CFNETWORK) is enabled
1393 https://bugs.webkit.org/show_bug.cgi?id=134441
1395 Reviewed by Sam Weinig.
1397 No new tests. Should be covered by exsting tests.
1399 * platform/network/cf/ResourceRequest.h:
1400 (WebCore::ResourceRequest::ResourceRequest):
1401 * platform/network/cf/ResourceRequestCFNet.cpp:
1402 (WebCore::ResourceRequest::doUpdatePlatformRequest):
1403 (WebCore::ResourceRequest::doUpdatePlatformHTTPBody):
1404 (WebCore::ResourceRequest::setStorageSession):
1405 * platform/network/cocoa/ResourceRequestCocoa.mm:
1406 (WebCore::ResourceRequest::nsURLRequest):
1408 2014-06-29 Ryuan Choi <ryuan.choi@samsung.com>
1410 [EFL] Remove netscape plugin implementation from WebCore
1411 https://bugs.webkit.org/show_bug.cgi?id=134438
1413 Reviewed by Gyuyoung Kim.
1415 Because WebKit1/Efl was dropped, PluginPackageEfl.cpp and PluginViewEfl.cpp are not necessary.
1417 * PlatformEfl.cmake:
1418 * plugins/efl/PluginPackageEfl.cpp: Removed.
1419 * plugins/efl/PluginViewEfl.cpp: Removed.
1420 * plugins/x11/PluginViewX11.cpp: Removed.
1421 This file is to share common code between WebKit1/Efl and WebKit1/GTk.
1422 Now, both ports are dropped WebKit1 support and the GTK port already removed the related files at r167016.
1424 2014-06-29 Yoav Weiss <yoav@yoav.ws>
1426 Add support for HTMLImageElement's sizes attribute
1427 https://bugs.webkit.org/show_bug.cgi?id=133620
1429 Reviewed by Dean Jackson.
1431 Tests: fast/dom/HTMLImageElement/sizes/image-sizes-1x.html
1432 fast/dom/HTMLImageElement/sizes/image-sizes-2x.html
1433 fast/dom/HTMLImageElement/sizes/image-sizes-js-change.html
1434 fast/dom/HTMLImageElement/sizes/image-sizes-js-innerhtml.html
1435 http/tests/loading/sizes/preload-image-sizes-2x.html
1436 http/tests/loading/sizes/preload-image-sizes.html
1438 This patch adds support for HTMLImageElement's sizes attribute and the
1439 related srcset extended syntax as defined in
1440 http://picture.responsiveimages.org/.
1441 This sizes attribute syntax is added to the CSSGrammar and parsed by
1443 The SourceSizeList class is generated by the parser, and used to get
1444 the final source size.
1445 HTMLImageElement and HTMLPreloadScanner send this value to
1447 HTMLSrcsetParser uses this value in order to pick the right resource.
1449 * CMakeLists.txt: Added css/SourceSizeList.cpp.
1450 * Configurations/FeatureDefines.xcconfig: Added the PICTURE_SIZES flag.
1451 * WebCore.vcxproj/WebCore.vcxproj: Added css/SourceSizeList.*.
1452 * WebCore.vcxproj/WebCore.vcxproj.filters: Added css/SourceSizeList.*.
1453 * WebCore.xcodeproj/project.pbxproj: Added css/SourceSizeList.*.
1454 * css/CSSGrammar.y.in: Added 4 grammar rules that define a Media condition,
1455 Source size list, Source size length and source size.
1456 * css/CSSParser.cpp:
1457 (WebCore::CSSParser::parseSizesAttribute): Parse the sizes attribute.
1458 (WebCore::CSSParser::detectAtToken): Set the token to SIZESATTR.
1460 * css/SourceSizeList.cpp: Added. Defined the SourceSize and SourceSizeList classes.
1461 (WebCore::SourceSize::match):
1462 (WebCore::computeLength):
1463 (WebCore::defaultValue):
1464 (WebCore::SourceSize::length):
1465 (WebCore::SourceSizeList::parseSizesAttribute):
1466 (WebCore::SourceSizeList::getEffectiveSize):
1467 * css/SourceSizeList.h: Added.
1468 (WebCore::SourceSize::SourceSize):
1469 (WebCore::SourceSizeList::append):
1470 * html/HTMLImageElement.cpp: Integrated sizes attribute parsing and added currentSrc.
1471 (WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
1472 (WebCore::HTMLImageElement::parseAttribute):
1473 (WebCore::HTMLImageElement::currentSrc):
1474 * html/HTMLImageElement.h:
1475 * html/HTMLImageElement.idl:
1476 * html/parser/HTMLDocumentParser.cpp: Added information required for sizes parsing to
1477 HTMLPreloadScanner calls.
1478 (WebCore::HTMLDocumentParser::pumpTokenizer):
1479 (WebCore::HTMLDocumentParser::insert):
1480 (WebCore::HTMLDocumentParser::append):
1481 (WebCore::HTMLDocumentParser::appendCurrentInputStreamToPreloadScannerAndScan):
1482 * html/parser/HTMLPreloadScanner.cpp: Integrated sizes attribute parsing.
1483 (WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
1484 (WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):
1485 (WebCore::TokenPreloadScanner::scan):
1486 (WebCore::HTMLPreloadScanner::scan):
1487 * html/parser/HTMLPreloadScanner.h:
1488 * html/parser/HTMLSrcsetParser.cpp: Added 'w' descriptor parsing sizes based normalization.
1489 (WebCore::parseDescriptors):
1490 (WebCore::pickBestImageCandidate):
1491 (WebCore::bestFitSourceForImageAttributes):
1492 * html/parser/HTMLSrcsetParser.h:
1494 2014-06-29 Andreas Kling <akling@apple.com>
1496 No need to lazily initialize ResourceResponse internals when accessing timing data.
1497 <https://webkit.org/b/134437>
1498 <rdar://problem/17499876>
1500 When building with ENABLE(WEB_TIMING), the last thing that would happen when
1501 serializing a ResourceResponse in the network process is that we'd retrieve
1502 the ResourceLoadTiming to encode it as part of the response. Doing so would
1503 trigger the lazy instantiation of ResourceResponse's internal data structures.
1505 Since timing data is not actually lazily instantiated, we can just not do that.
1507 This shaves off ~550ms of network process main thread time on PLT, reducing
1508 response latency by not doing unnecessary stuff before letting the web process
1509 look at the downloaded data.
1511 Reviewed by Gavin Barraclough.
1514 * platform/network/ResourceResponseBase.cpp:
1515 (WebCore::ResourceResponseBase::adopt):
1516 (WebCore::ResourceResponseBase::resourceLoadTiming): Deleted.
1517 (WebCore::ResourceResponseBase::setResourceLoadTiming): Deleted.
1518 * platform/network/ResourceResponseBase.h:
1519 (WebCore::ResourceResponseBase::resourceLoadTiming):
1521 2014-06-29 Pratik Solanki <pratik.solanki@gmail.com>
1523 Refactor ResourceRequest into Cocoa and iOS specific files
1524 https://bugs.webkit.org/show_bug.cgi?id=134430
1526 Reviewed by Andreas Kling.
1528 No new tests because no functional changes.
1530 * WebCore.xcodeproj/project.pbxproj:
1531 * platform/network/cf/ResourceRequestCFNet.cpp:
1532 (WebCore::ResourceRequest::applyWebArchiveHackForMail): Deleted.
1533 * platform/network/cocoa/ResourceRequestCocoa.mm: Copied from Source/WebCore/platform/network/mac/ResourceRequestMac.mm.
1534 (WebCore::ResourceRequest::nsURLRequest):
1535 (WebCore::ResourceRequest::cfURLRequest):
1536 (WebCore::ResourceRequest::doUpdateResourceRequest):
1537 (WebCore::ResourceRequest::doUpdateResourceHTTPBody):
1538 (WebCore::ResourceRequest::doUpdatePlatformRequest):
1539 (WebCore::ResourceRequest::doUpdatePlatformHTTPBody):
1540 (WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties):
1541 (WebCore::ResourceRequest::applyWebArchiveHackForMail):
1542 (WebCore::ResourceRequest::setStorageSession):
1543 * platform/network/ios/ResourceRequestIOS.mm: Added.
1544 (WebCore::ResourceRequest::useQuickLookResourceCachingQuirks):
1545 (WebCore::ResourceRequest::ResourceRequest):
1546 (WebCore::ResourceRequest::updateNSURLRequest):
1547 * platform/network/mac/ResourceRequestMac.mm:
1548 (WebCore::initQuickLookResourceCachingQuirks):
1549 (WebCore::ResourceRequest::useQuickLookResourceCachingQuirks):
1550 (WebCore::ResourceRequest::ResourceRequest):
1551 (WebCore::ResourceRequest::updateNSURLRequest):
1552 (WebCore::ResourceRequest::applyWebArchiveHackForMail):
1553 (WebCore::ResourceRequest::nsURLRequest): Deleted.
1554 (WebCore::ResourceRequest::cfURLRequest): Deleted.
1555 (WebCore::ResourceRequest::doUpdateResourceRequest): Deleted.
1556 (WebCore::ResourceRequest::doUpdateResourceHTTPBody): Deleted.
1557 (WebCore::ResourceRequest::doUpdatePlatformRequest): Deleted.
1558 (WebCore::ResourceRequest::doUpdatePlatformHTTPBody): Deleted.
1559 (WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties): Deleted.
1560 (WebCore::ResourceRequest::setStorageSession): Deleted.
1562 2014-06-29 Youenn Fablet <youenn.fablet@crf.canon.fr>
1564 TextCodecICU::encode turns the whole string as yen signs if there is any backslash in it
1565 https://bugs.webkit.org/show_bug.cgi?id=133678
1567 Reviewed by Alexey Proskuryakov.
1569 Test: fast/encoding/backslash-encoding-jp.html
1571 * platform/text/TextCodecICU.cpp:
1572 (WebCore::TextCodecICU::encode): fixed the copy of characters other than backslash.
1574 2014-06-28 Dean Jackson <dino@apple.com>
1576 [iOS] Pinching into a video (fullscreen gesture) leaves page zoomed in
1577 https://bugs.webkit.org/show_bug.cgi?id=134433
1578 <rdar://problem/16630794>
1580 Reviewed by Eric Carlson.
1582 Detect the number of target touches (those directly on the
1583 video element) and disable the page zoom if it looks
1584 like the user is trying to trigger fullscreen.
1586 * Modules/mediacontrols/mediaControlsiOS.js:
1587 (ControllerIOS.prototype.handleBaseGestureStart): If we are seeing
1588 two touches in this video element, don't trigger fullscreen. The
1589 exception is if we haven't yet started playback.
1590 (ControllerIOS.prototype.handleBaseGestureChange): Don't allow fullscreen
1591 if we haven't started playback (iOS 7 behaviour).
1592 (ControllerIOS.prototype.handleWrapperTouchStart): Keep track of the
1593 number of targetted touches.
1595 2014-06-27 Simon Fraser <simon.fraser@apple.com>
1597 [iOS WK2] position:fixed inside accelerated overflow:scroll is jumpy
1598 https://bugs.webkit.org/show_bug.cgi?id=134426
1599 <rdar://problem/17474523>
1601 Reviewed by Tim Horton.
1603 After committing a new layer tree (with possibly stale position:fixed layer
1604 positions), we need the scrolling tree to update those positions based on
1605 the current scroll offset.
1607 Give ScrollingTreeScrollingNode an implementation of updateLayersAfterAncestorChange()
1608 which is required to update fixed/sticky child nodes.
1611 * page/scrolling/ScrollingTreeScrollingNode.cpp:
1612 (WebCore::ScrollingTreeScrollingNode::updateLayersAfterAncestorChange):
1613 * page/scrolling/ScrollingTreeScrollingNode.h:
1615 2014-06-28 Juan A. Suarez Romero <jasuarez@igalia.com> and Carlos Garcia Campos <cgarcia@igalia.com>
1617 [GTK] Use public getter/setter in GObject DOM bindings properties implementation.
1618 https://bugs.webkit.org/show_bug.cgi?id=134390.
1620 Reviewed by Carlos Garcia Campos.
1622 The current GObject DOM bindings generator is duplicating code when
1623 implementing the get/set_property methods and the public
1624 getters/setters, instead of making one invoking the other.
1626 This commit changes this behaviour so the code is not duplicated,
1627 making it easier to maintain.
1629 No new tests needed.
1631 * bindings/scripts/CodeGeneratorGObject.pm:
1633 (GenerateProperties):
1635 (GetCoreObject): Deleted.
1636 * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
1637 (webkit_dom_test_active_dom_object_get_property):
1638 * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
1639 (webkit_dom_test_event_constructor_get_property):
1640 * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
1641 (webkit_dom_test_exception_get_property):
1642 * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
1643 (webkit_dom_test_interface_set_property):
1644 (webkit_dom_test_interface_get_property):
1645 * bindings/scripts/test/GObject/WebKitDOMTestNondeterministic.cpp:
1646 (webkit_dom_test_nondeterministic_set_property):
1647 (webkit_dom_test_nondeterministic_get_property):
1648 * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
1649 (webkit_dom_test_obj_set_property):
1650 (webkit_dom_test_obj_get_property):
1651 * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
1652 (webkit_dom_test_serialized_script_value_interface_get_property):
1653 * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.cpp:
1654 (webkit_dom_test_typedefs_set_property):
1655 (webkit_dom_test_typedefs_get_property):
1656 * bindings/scripts/test/GObject/WebKitDOMattribute.cpp:
1657 (webkit_dom_test_exception_get_property):
1658 (webkit_dom_attribute_get_property):
1660 2014-06-28 Radu Stavila <stavila@adobe.com>
1662 [New Multicolumn] Elements with rounded corners and overflow:hidden do not properly clip their content
1663 https://bugs.webkit.org/show_bug.cgi?id=133941
1665 Reviewed by Darin Adler.
1667 When having a multicol element inside an element with overflow:hidden and border-radius,
1668 the fragments representing the columns need to have the border radius set also, to ensure
1671 Test: fast/multicol/newmulticol/multicol-clip-rounded-corners.html
1673 * rendering/RenderLayer.cpp:
1674 (WebCore::RenderLayer::collectFragments):
1676 2014-06-27 Zalan Bujtas <zalan@apple.com>
1678 Subpixel rendering: Background clipping with subpixel behaves differently when composited.
1679 https://bugs.webkit.org/show_bug.cgi?id=134422
1681 Reviewed by Simon Fraser.
1683 Adjust cliprect with the subpixel offset from the graphics layer the same way we do it for painting.
1684 It ensures that cliprect starts from the right position when graphics layer is not on the same
1685 coordinates as the associated render layer.
1687 Test: compositing/hidpi-compositing-layer-with-subpixel-offset-accumulation-clipping.html
1689 * rendering/RenderLayer.cpp:
1690 (WebCore::RenderLayer::clipToRect):
1691 (WebCore::RenderLayer::paintLayer):
1692 (WebCore::RenderLayer::applyFilters):
1693 (WebCore::RenderLayer::paintTransformedLayerIntoFragments):
1694 (WebCore::RenderLayer::paintBackgroundForFragments):
1695 (WebCore::RenderLayer::paintForegroundForFragments):
1696 (WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
1697 (WebCore::RenderLayer::paintOutlineForFragments):
1698 (WebCore::RenderLayer::paintMaskForFragments):
1699 (WebCore::RenderLayer::paintOverflowControlsForFragments):
1700 (WebCore::RenderLayer::calculateClipRects):
1701 * rendering/RenderLayer.h:
1703 2014-06-27 Brent Fulgham <bfulgham@apple.com>
1705 [Win] Implement parts of the AVFOUNDATION_LOADER_DELEGATE logic for Windows
1706 https://bugs.webkit.org/show_bug.cgi?id=134418
1708 Reviewed by Eric Carlson.
1710 Land an initial implementation of AVFOUNDATION_LOADER_DELEGATE for
1713 * DerivedSources.cpp: Add new IDL files
1714 * DerivedSources.make: Add check for AVFOUNDATION_LOADER_DELEGATE.
1715 * Modules/encryptedmedia/CDMPrivateMediaPlayer.cpp: Added (ported from
1717 * WebCore.vcxproj/WebCore.vcxproj: Update for new files.
1718 * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
1719 * WebCore.vcxproj/WebCoreCommon.props: Add new search paths.
1720 * WebCore.vcxproj/WebCoreTestSupport.vcxproj: Update for new files.
1721 * WebCore.vcxproj/WebCoreTestSupport.vcxproj.filters: Ditto.
1722 * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
1723 (WebCore::MediaPlayerPrivateAVFoundation::extractKeyURIKeyIDAndCertificateFromInitData):
1724 Moved from MediaPlayerPrivateAVFoundationObjC.
1725 * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
1726 * platform/graphics/avfoundation/cf/AVFoundationCFSoftLinking.h:
1727 Update for new API calls.
1728 * platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.cpp: Added.
1729 * platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.h: Added.
1730 * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
1731 Updated for new AVFOUNDATION_LOADER_DELEGATE methods.
1732 * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
1733 * platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp: Added.
1734 * platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.h: Added.
1735 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
1736 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1737 Remove method that was moved to base class.
1739 2014-06-27 Benjamin Poulain <benjamin@webkit.org>
1741 Remove BufferForAppendingHyphen
1742 https://bugs.webkit.org/show_bug.cgi?id=134376
1744 Reviewed by Darin Adler.
1746 It is legacy, from a time when that code was using a Vector.
1748 The problem is that StringBuilder's memory was also implicitly used to keep
1749 the string alive for the lifespan of the TextRun. That seems quite dangerous
1750 as changes in StringBuilder could have changed that.
1752 To fix the lifetime issue, my first idea was to make it explicit by passing
1753 a String reference to hold the memory alive, and a boolean to say if the text
1754 need an hyphen. The problem with that is this code is very hot and I made things
1757 The solution with this patch is to just pass a pointer to a String to do both
1758 the buffer reference, and the decision to add the hyphen. Having a single
1759 argument with 2 meanings is not pretty but that's not worse than the old buffer.
1761 * editing/TextIterator.cpp:
1762 * rendering/InlineTextBox.cpp:
1763 (WebCore::InlineTextBox::localSelectionRect):
1764 (WebCore::InlineTextBox::paint):
1765 (WebCore::InlineTextBox::paintSelection):
1766 (WebCore::InlineTextBox::constructTextRun):
1767 (WebCore::adjustCharactersAndLengthForHyphen): Deleted.
1768 * rendering/InlineTextBox.h:
1769 (WebCore::BufferForAppendingHyphen::BufferForAppendingHyphen): Deleted.
1770 * rendering/RenderText.cpp:
1772 2014-06-27 Jeremy Jones <jeremyj@apple.com>
1774 Lazily link frameworks in WebVideoFullscreenInterfaceAVKit.
1775 https://bugs.webkit.org/show_bug.cgi?id=134407
1777 Reviewed by Eric Carlson.
1779 * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
1780 (-[WebAVPlayerController init]):
1781 Load AVPlayerController on use.
1782 (WebVideoFullscreenInterfaceAVKit::WebVideoFullscreenInterfaceAVKit):
1783 Remove loading on construction.
1784 (WebVideoFullscreenInterfaceAVKit::setCurrentTime): Load AVValueTiming on use.
1785 (WebVideoFullscreenInterfaceAVKit::setupFullscreen): Load several classes on use.
1786 (WebVideoFullscreenInterfaceAVKit::exitFullscreen): Load UIColor on use.
1788 2014-06-27 Alex Christensen <achristensen@webkit.org>
1790 Remove extra operations from 64-bit or on armv7.
1791 https://bugs.webkit.org/show_bug.cgi?id=134408
1793 Reviewed by Geoffrey Garen.
1795 * cssjit/SelectorCompiler.cpp:
1796 (WebCore::SelectorCompiler::SelectorCodeGenerator::addFlagsToElementStyleFromContext):
1797 Only do or operations if it would change values.
1798 Often we're only setting one flag, so half the operations are not necessary.
1800 2014-06-27 Beth Dakin <bdakin@apple.com>
1802 ScrollView::rootViewToTotalContents() needs to take topContentInset into account
1803 https://bugs.webkit.org/show_bug.cgi?id=134415
1805 <rdar://problem/17473633>
1807 Reviewed by Simon Fraser.
1809 This affects hit testing in headers aka PageBanners.
1811 The root view will be anchored above the start of the total contents if there is a
1812 topContentInset, so the inset value should be subtracted to get into the right
1813 coordinate space here.
1814 * platform/ScrollView.cpp:
1815 (WebCore::ScrollView::rootViewToTotalContents):
1817 2014-06-27 Antti Koivisto <antti@apple.com>
1819 Flush throttling with remote layers
1820 https://bugs.webkit.org/show_bug.cgi?id=134398
1822 Reviewed by Darin Adler.
1824 With remote layer trees the flush scheduling lives in the WebKit2 layer. The throttling code
1825 needs to live there as well.
1827 Add the required callbacks and disable the existing throttling code in RenderLayerCompositor
1828 when remote layers are in use. Later we can get rid of the RenderLayerCompositor throttling code.
1830 * WebCore.xcodeproj/project.pbxproj:
1831 * loader/FrameLoader.cpp:
1832 (WebCore::FrameLoader::loadProgressingStatusChanged):
1833 * page/ChromeClient.h:
1834 (WebCore::ChromeClient::adjustLayerFlushThrottling):
1835 * page/FrameView.cpp:
1836 (WebCore::FrameView::disableLayerFlushThrottlingTemporarilyForInteraction):
1837 (WebCore::FrameView::loadProgressingStatusChanged):
1839 Factor the progress status change activities to a function.
1841 (WebCore::FrameView::updateLayerFlushThrottling):
1842 (WebCore::FrameView::setExposedRect):
1844 Move the call to adjustTiledBackingCoverage from WebKit to here.
1846 (WebCore::FrameView::updateLayerFlushThrottlingInAllFrames): Deleted.
1848 * page/LayerFlushThrottleState.h: Added.
1849 * rendering/RenderLayerCompositor.cpp:
1850 (WebCore::RenderLayerCompositor::RenderLayerCompositor):
1852 2014-06-27 Brady Eidson <beidson@apple.com>
1854 The user pressing a button on a gamepad should cause gamepads to become visible to all NavigatorGamepads.
1855 https://bugs.webkit.org/show_bug.cgi?id=134375
1857 Reviewed by Darin Adler.
1859 No new tests (Not yet a tested config)
1861 * Modules/gamepad/GamepadManager.cpp:
1862 (WebCore::GamepadManager::platformGamepadConnected): Also call to makeGamepadsVisibileToBlindNavigators.
1863 (WebCore::GamepadManager::platformGamepadDisconnected):
1864 (WebCore::GamepadManager::platformGamepadInputActivity): Call makeGamepadsVisibileToBlindNavigators.
1865 (WebCore::GamepadManager::makeGamepadsVisibileToBlindNavigators): Walk through each blind navigator
1866 notifying it of each connected Gamepad.
1867 (WebCore::GamepadManager::registerNavigator): Also add to the blind navigator set.
1868 (WebCore::GamepadManager::unregisterNavigator): Also remove from the blind navigator set.
1869 * Modules/gamepad/GamepadManager.h:
1871 * platform/GamepadProviderClient.h: Added platformGamepadInputActivity.
1873 * platform/mac/HIDGamepadProvider.cpp:
1874 (WebCore::HIDGamepadProvider::HIDGamepadProvider):
1875 (WebCore::HIDGamepadProvider::valuesChanged): Set the input notification timer which will notify the clients
1876 that a button was pressed.
1877 (WebCore::HIDGamepadProvider::inputNotificationTimerFired): Perform that notification.
1878 * platform/mac/HIDGamepadProvider.h:
1880 2014-06-27 Brady Eidson <beidson@apple.com>
1882 HIDGamepads should populate themselves with initial input values
1883 https://bugs.webkit.org/show_bug.cgi?id=134381
1885 Reviewed by Darin Adler.
1887 No new tests (Not yet a tested config)
1889 * platform/mac/HIDGamepad.cpp:
1890 (WebCore::HIDGamepad::getCurrentValueForElement):
1891 (WebCore::HIDGamepad::initElements): Loop through all the saved elements to get current values.
1892 (WebCore::HIDGamepad::maybeAddButton):
1893 (WebCore::HIDGamepad::maybeAddAxis):
1894 * platform/mac/HIDGamepad.h:
1895 (WebCore::HIDGamepadElement::HIDGamepadElement):
1896 (WebCore::HIDGamepadButton::HIDGamepadButton):
1897 (WebCore::HIDGamepadAxis::HIDGamepadAxis):
1899 2014-06-27 Peyton Randolph <prandolph@apple.com>
1901 Add feature flag for link long-press gesture.
1902 https://bugs.webkit.org/show_bug.cgi?id=134262
1904 Reviewed by Enrica Casucci.
1906 * Configurations/FeatureDefines.xcconfig:
1907 Add ENABLE_LINK_LONG_PRESS.
1909 2014-06-26 Brady Eidson <beidson@apple.com>
1911 HIDGamepadProvider should only be active when someone is interested in Gamepads.
1912 https://bugs.webkit.org/show_bug.cgi?id=134374
1914 Reviewed by Darin Adler.
1916 No new tests (Not yet a tested config)
1918 * Modules/gamepad/GamepadManager.cpp:
1919 (WebCore::GamepadManager::registerNavigator): Add some logging.
1920 (WebCore::GamepadManager::unregisterNavigator): Ditto.
1922 * platform/mac/HIDGamepadProvider.cpp:
1923 (WebCore::HIDGamepadProvider::HIDGamepadProvider):
1924 (WebCore::HIDGamepadProvider::connectionDelayTimerFired): Stop suppressing connection callbacks
1925 (WebCore::HIDGamepadProvider::openAndScheduleManager):
1926 (WebCore::HIDGamepadProvider::closeAndUnscheduleManager): Stop listening for gamepad events, and clear
1927 all current gamepads.
1928 (WebCore::HIDGamepadProvider::startMonitoringGamepads): If the first client, call openAndScheduleManager
1929 (WebCore::HIDGamepadProvider::stopMonitoringGamepads): If the last client, call closeAndUnscheduleManager
1930 (WebCore::HIDGamepadProvider::deviceAdded): If this callback came while we were suppressing connection
1931 callbacks, it is a startup event for already-connected gamepads. Stop suppressing callbacks in a later
1932 spin of the runloop.
1933 (WebCore::HIDGamepadProvider::deviceRemoved):
1934 * platform/mac/HIDGamepadProvider.h:
1935 (WebCore::HIDGamepadProvider::setShouldDispatchCallbacks): Deleted.
1937 2014-06-27 Alex Christensen <achristensen@webkit.org>
1939 Prevent unnecessary register saving in css jit.
1940 https://bugs.webkit.org/show_bug.cgi?id=133955
1942 Reviewed by Geoff Garen.
1944 * cssjit/FunctionCall.h:
1945 (WebCore::FunctionCall::prepareAndCall):
1946 (WebCore::FunctionCall::cleanupPostCall):
1947 (WebCore::FunctionCall::saveAllocatedCallerSavedRegisters):
1948 (WebCore::FunctionCall::restoreAllocatedCallerSavedRegisters):
1949 (WebCore::FunctionCall::saveAllocatedRegisters): Renamed to saveAllocatedCallerSavedRegisters.
1950 (WebCore::FunctionCall::restoreAllocatedRegisters): Renamed to restoreAllocatedCallerSavedRegisters.
1951 Only push caller saved registers before function calls.
1952 * cssjit/RegisterAllocator.h:
1953 (WebCore::RegisterAllocator::isValidRegister):
1954 Corrected register ranges.
1955 (WebCore::RegisterAllocator::isCallerSavedRegister): Added.
1957 2014-06-27 Beth Dakin <bdakin@apple.com>
1959 Custom scrollbars should not create ScrollbarPainters on Mac
1960 https://bugs.webkit.org/show_bug.cgi?id=134406
1962 <rdar://problem/16178301>
1964 Reviewed by Tim Horton.
1966 The solution here is to return early in ScrollbarThemeMac::registerScrollbar() if
1967 the scrollbar is custom. However, since this function is called during the
1968 RenderScrollbar and Scrollbar constructor, we need to re-implement
1969 Scrollbar::isCustomScrollbar() to return a member variable that is passed into the
1970 constructor. Otherwise, we will get Scrollbar’s implementation is
1971 isCustomScrollbar() wrongfully returning false since instead of the derived
1972 class’s implementation.
1974 Scrollbar constructor now has an option parameter isCustomScrollbar that defaults
1975 to false. That value is returned by isCustomScrollbar()
1976 * platform/Scrollbar.cpp:
1977 (WebCore::Scrollbar::Scrollbar):
1978 * platform/Scrollbar.h:
1980 Return early if this is a custom scrollbar since the rest of the function deals
1981 with creating a native scrollbar and getting it in the right state.
1982 * platform/mac/ScrollbarThemeMac.mm:
1983 (WebCore::ScrollbarThemeMac::registerScrollbar):
1985 Send true to the Scrollbar constructor to indicate that this is a custom
1987 * rendering/RenderScrollbar.cpp:
1988 (WebCore::RenderScrollbar::RenderScrollbar):
1989 * rendering/RenderScrollbar.h:
1991 2014-06-27 Eric Carlson <eric.carlson@apple.com>
1993 [Mac] AVMetadataKeySpaceISOUserData not defined on 10.8
1994 https://bugs.webkit.org/show_bug.cgi?id=134401
1996 Reviewed by Jer Noble.
1998 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1999 (WebCore::metadataType): Use SOFT_LINK_POINTER_OPTIONAL for AVMetadataKeySpaceISOUserData
2000 so we don't have problems on OS versions where it isn't defined.
2002 2014-06-27 Martin Hodovan <mhodovan.u-szeged@partner.samsung.com>
2004 REGRESSION (r168685): css calc() expression fails
2005 https://bugs.webkit.org/show_bug.cgi?id=134059
2007 The expression 'calc((100% - 20px) / 3' did not work properly after r168685,
2008 because primitiveType() function in CSSCalculationValue.cpp has handled
2009 CalcPercentLength and CalcPercentNumber categories as if they were angles.
2010 The patch fixes this incorrect behavior.
2012 Reviewed by Simon Fraser.
2014 Test: fast/css/calc-percentage-pixel.html
2016 * css/CSSCalculationValue.cpp:
2018 2014-06-27 Jer Noble <jer.noble@apple.com>
2020 [MSE] http/tests/media/media-source/mediasource-append-buffer.html is failing
2021 https://bugs.webkit.org/show_bug.cgi?id=134389
2023 Reviewed by Eric Carlson.
2025 Two subtests in mediasource-append-buffer.html are failing. Bring setDuration() up to spec
2026 by throwing an exception if the duration is called while any SourceBuffer is updating. Do
2027 not cancel pending events when a SourceBuffer is removed from its MediaSource. And mark the
2028 SourceBuffer as having pending activity if there are pending events to be fired.
2030 * Modules/mediasource/MediaSource.cpp:
2031 (WebCore::MediaSource::setDuration):
2032 * Modules/mediasource/SourceBuffer.cpp:
2033 (WebCore::SourceBuffer::removedFromMediaSource):
2034 (WebCore::SourceBuffer::hasPendingActivity):
2036 2014-06-26 Simon Fraser <simon.fraser@apple.com>
2038 [iOS WK2] Fix touch-scrollable elements with overflow:scroll on just one axis, and RTL scrolling
2039 https://bugs.webkit.org/show_bug.cgi?id=134377
2040 <rdar://problem/16762224>
2042 Reviewed by Tim Horton.
2044 Make -webkit-overflow-scrolling:touch scrolling work correctly when one axis
2045 has overflow:scroll and the other overflow:hidden. Also fix scrolling in RTL
2048 An RTL scroller with overflow-x:hidden will have a non-zero scroll origin,
2049 and needs to truncate the scrolled content on the left side. To pass the
2050 correct geometry to the UI process, we need to introduce the concept of
2051 "reachable" size as well as total content size; normally these are the same,
2052 but will differ when scrolling is only allowed on one axis but there is overflow
2055 To get the reachable size, add RenderLayer::scrollableContentsSize().
2057 RenderLayer::visibleSize() was wrong; the function should return the size of the
2058 scrollable portion, but used layer size which includes borders. Fix to use pixelSnappedClientWidth()/Height(),
2059 which is what we use for scrollbar computations.
2062 * page/scrolling/AsyncScrollingCoordinator.cpp:
2063 (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
2064 (WebCore::AsyncScrollingCoordinator::updateFrameScrollingNode):
2065 (WebCore::AsyncScrollingCoordinator::updateOverflowScrollingNode):
2066 * page/scrolling/ScrollingCoordinator.h:
2067 * page/scrolling/ScrollingStateScrollingNode.cpp:
2068 (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
2069 (WebCore::ScrollingStateScrollingNode::setReachableContentsSize):
2070 * page/scrolling/ScrollingStateScrollingNode.h:
2071 (WebCore::ScrollingStateScrollingNode::reachableContentsSize):
2072 * page/scrolling/ScrollingTreeScrollingNode.cpp:
2073 (WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
2074 * page/scrolling/ScrollingTreeScrollingNode.h:
2075 (WebCore::ScrollingTreeScrollingNode::reachableContentsSize):
2076 * rendering/RenderLayer.cpp:
2077 (WebCore::RenderLayer::visibleSize):
2078 (WebCore::RenderLayer::scrollableContentsSize):
2079 * rendering/RenderLayer.h:
2080 * rendering/RenderLayerCompositor.cpp:
2081 (WebCore::updateScrollingLayerWithClient):
2082 (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):
2084 2014-06-27 Bear Travis <betravis@adobe.com>
2086 [Feature Queries] Fix feature queries build on Mac
2087 https://bugs.webkit.org/show_bug.cgi?id=134359
2089 Reviewed by Antti Koivisto.
2091 Update the XCode project and Feature Queries code to build on Mac.
2093 There are existing tests for supports in the LayoutTests/css3 directory.
2095 * WebCore.xcodeproj/project.pbxproj: Add the Feature Queries files
2096 to the XCode project.
2097 * css/CSSGrammar.y.in: Update CSSParserExpression to CSSParserValueList.
2098 * css/DOMWindowCSS.idl: Add ImplementationLacksVTable metadata.
2100 2014-06-27 Jer Noble <jer.noble@apple.com>
2102 [MSE] media/media-source/media-source-tracks.html is crashy
2103 https://bugs.webkit.org/show_bug.cgi?id=134385
2105 Reviewed by Eric Carlson.
2107 Fix the refactoring error (self assignment) introduced by r170488.
2109 * Modules/mediasource/SourceBuffer.cpp:
2110 (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
2112 2014-06-27 Mark Hahnenberg <mhahnenberg@apple.com>
2114 XHR should keep attributes on instance
2115 https://bugs.webkit.org/show_bug.cgi?id=134363
2117 Reviewed by Sam Weinig.
2119 Test: js/dom/xhr-prototype-define-property.html
2121 Having them on the prototype broke some sites due to the fact that these DOM attributes are currently
2122 not configurable. Once we make them configurable, we can move XHR attributes back to the prototype.
2124 * bindings/scripts/CodeGeneratorJS.pm:
2125 (InterfaceRequiresAttributesOnInstanceForCompatibility):
2127 2014-06-27 Jeremy Jones <jeremyj@apple.com>
2129 removeCodedFrames should modify ref to TrackBuffer no a copy.
2130 https://bugs.webkit.org/show_bug.cgi?id=134380
2132 Reviewed by Daniel Bates.
2134 * Modules/mediasource/SourceBuffer.cpp:
2135 (WebCore::SourceBuffer::removeCodedFrames):
2136 Iterate with a reference.
2138 2014-06-27 Zalan Bujtas <zalan@apple.com>
2140 Set cliprect radius unconditionally in RenderLayer.
2141 https://bugs.webkit.org/show_bug.cgi?id=134396
2143 Reviewed by Simon Fraser.
2145 No change in functionality.
2147 * rendering/RenderLayer.cpp:
2148 (WebCore::RenderLayer::calculateClipRects):
2150 2014-06-27 Manuel Rego Casasnovas <rego@igalia.com>
2152 [CSS Grid Layout] Interaction between auto-placement and column / row spanning
2153 https://bugs.webkit.org/show_bug.cgi?id=110633
2155 Reviewed by Sergio Villar Senin.
2157 Modify auto-placement algorithm in order to support span in both
2158 definite and automatic positions.
2160 This patch fixes examples like:
2162 grid-column: 2 / span 3;
2166 grid-column: span 3;
2168 Tests: fast/css-grid-layout/grid-item-auto-placement-automatic-span.html
2169 fast/css-grid-layout/grid-item-auto-placement-definite-span.html
2171 * rendering/RenderGrid.cpp:
2172 (WebCore::RenderGrid::GridIterator::isEmptyAreaEnough): New method that
2173 checks if a grid area is or not empty.
2174 (WebCore::RenderGrid::GridIterator::nextEmptyGridArea): Updated method
2175 that now receives two arguments with the span value in both directions.
2176 (WebCore::RenderGrid::ensureGridSize): Renamed from gridRow(). Adapted
2177 method to grow in both directions at the same time if needed. It ensures
2178 that the grid is big enough to insert a new item.
2179 (WebCore::RenderGrid::insertItemIntoGrid): Only leave the method that
2180 receives a GridCoordinate. It uses ensureGridSize() before inserting the
2182 (WebCore::RenderGrid::populateExplicitGridAndOrderIterator): Ensure that
2183 the grid is big enough to place the largest span for auto-positioned
2185 (WebCore::RenderGrid::createEmptyGridAreaAtSpecifiedPositionsOutsideGrid):
2186 New method that returns a GridCoordinate outside current grid with the
2187 requested dimensions.
2188 (WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid): Adapted
2189 method to calculate the item's span and use the new version of
2190 nextEmptyGridArea(). If an empty area is not found it uses
2191 createEmptyGridAreaAtSpecifiedPositionsOutsideGrid() to place the item.
2192 (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid): Ditto.
2193 (WebCore::RenderGrid::growGrid): Renamed to ensureGridSize().
2194 * rendering/RenderGrid.h: Modify methods headers and add new method
2196 * rendering/style/GridCoordinate.h:
2197 (WebCore::GridSpan::integerSpan): Add new simple method to return the
2198 span value of a position.
2199 * rendering/style/GridResolvedPosition.cpp:
2200 (WebCore::GridResolvedPosition::resolveGridPositionsFromAutoPlacementPosition):
2201 Implement method to take into account span in auto-placement algorithm.
2202 (WebCore::GridResolvedPosition::adjustGridPositionsFromStyle): Add new
2203 checks related with named grid line spans in auto-positioned items,
2204 which is not allowed according to the spec.
2205 * rendering/style/GridResolvedPosition.h: Update method header.
2207 2014-06-27 Mahesh Kulkarni <mahesh.kk@samsung.com>
2209 [XHR] open method must uppercase only standard method types
2210 https://bugs.webkit.org/show_bug.cgi?id=134264
2212 Reviewed by Darin Adler.
2214 As per step-5 of http://xhr.spec.whatwg.org/#the-open()-method only
2215 DELETE, PUT, GET, POST, OPTIONS, HEAD are standard. Use other methods as is without case change.
2216 All tests from w3c-test suite pass http://w3c-test.org/XMLHttpRequest/open-method-case-sensitive.htm.
2217 This merges blink changes from r176592.
2219 Tests: http/tests/xmlhttprequest/xmlhttprequest-open-method-allowed.html
2220 http/tests/xmlhttprequest/xmlhttprequest-open-method-case-insensitive.html
2222 * xml/XMLHttpRequest.cpp:
2223 (WebCore::XMLHttpRequest::uppercaseKnownHTTPMethod):
2225 2014-06-27 Andre Moreira Magalhaes <andre.magalhaes@collabora.co.uk>
2227 Increase priority on SharedTimer source.
2228 http://bugs.webkit.org/show_bug.cgi?id=134109
2230 While running webkit on a Debian virtual machine I stumbled upon an issue where JS
2231 setTimeout callbacks were not being properly invoked due to machine limitations and the
2232 usage of a low priority on setTimeout timers.
2234 This patch increases the SharedTimer source priority to use the default glib priority which
2235 fixes the issue, making setTimeout JS calls work properly on the test environment.
2237 Reviewed by Gustavo Noronha Silva.
2239 * platform/gtk/SharedTimerGtk.cpp:
2240 (WebCore::setSharedTimerFireInterval):
2242 2014-06-27 Zalan Bujtas <zalan@apple.com>
2244 Remove redundant offsetFromAncestor() call from RenderLayer::localClipRect().
2245 https://bugs.webkit.org/show_bug.cgi?id=134378
2247 Reviewed by Simon Fraser.
2249 No change in functionality.
2251 * rendering/RenderLayer.cpp:
2252 (WebCore::RenderLayer::calculateClipRects):
2254 2014-06-27 Philippe Normand <pnormand@igalia.com>
2256 [GTK] 8tracks.com triggers annoying pop-up window/installation of "About protocol source plugin" (GStreamer?)
2257 https://bugs.webkit.org/show_bug.cgi?id=133605
2259 Reviewed by Carlos Garcia Campos.
2261 Don't attempt to load blank URLs with the GStreamer media
2262 player. Those URLs trigger the codec installer which is useless in
2263 this scenario. This patch also renames some of the variables of
2264 the ::load method, as suggested by Carlos.
2266 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2267 (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
2268 Check video-sink validity before disconnecting its signal handlers.
2269 (WebCore::MediaPlayerPrivateGStreamer::load): Don't load blank
2271 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
2272 (WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
2273 Disconnect repaint handler only if it's valid.
2275 2014-06-26 Carlos Garcia Campos <cgarcia@igalia.com>
2277 [GTK] Expose getter and setter functions for attributes named type
2278 https://bugs.webkit.org/show_bug.cgi?id=134300
2280 Reviewed by Martin Robinson.
2282 We skip those because the getter conflicts with the get_type()
2283 function of all GObjects. We should use a different name for them. As
2284 a general rule we use the last word of the class name, something like:
2286 webkit_dom_blob_get_type() -> webkit_dom_blob_get_blob_type()
2287 webkit_dom_event_get_type() -> webkit_dom_event_get_event_type()
2289 It's consistent with other existing DOM methods like
2290 webkit_dom_xpath_result_get_result_type() or webkit_dom_css_value_get_css_value_type().
2291 This patch also adds some exceptions for particular cases.
2293 * bindings/gobject/webkitdom.symbols: Add new public symbols.
2294 * bindings/scripts/CodeGeneratorGObject.pm:
2295 (GetFunctionSigName): Helper function to return the function name
2296 that takes into account all exceptions when generating getters and
2297 setters of attributes named type. Otherwise the name is returned unmodified.
2298 (GenerateFunction): Use GetFunctionSigName().
2299 (GenerateFunctions): Do not skip functions for type attributes.
2301 2014-06-27 Sungmann Cho <sungmann.cho@navercorp.com>
2303 Remove unnecessary #include in HistoryController
2304 https://bugs.webkit.org/show_bug.cgi?id=134369
2306 Reviewed by Daniel Bates.
2308 After the landing of https://webkit.org/b/130099, HistoryController doesn't need
2309 WebCore::Settings class. So we can remove the related header.
2311 * loader/HistoryController.cpp:
2313 2014-06-26 Jeongeun Kim <je_julie.kim@samsung.com>
2315 REGRESSION (r170287): SVGDocumentExtensions::rebuildElements() called on removed element
2316 https://bugs.webkit.org/show_bug.cgi?id=134304
2318 Reviewed by Daniel Bates.
2320 Roll out <http://trac.webkit.org/170287> (https://bugs.webkit.org/show_bug.cgi?id=134186)
2321 as it led to SVGDocumentExtensions::rebuildElements() being called on an element(s) that
2322 may no longer be in the document.
2324 * dom/ContainerNode.cpp:
2325 (WebCore::ContainerNode::removeChild):
2326 (WebCore::ContainerNode::removeChildren):
2328 (WebCore::Document::commonTeardown):
2329 (WebCore::Document::implicitClose):
2330 * history/CachedFrame.cpp:
2331 (WebCore::CachedFrameBase::restore):
2332 * svg/SVGDocumentExtensions.cpp:
2333 (WebCore::SVGDocumentExtensions::startAnimations):
2334 (WebCore::SVGDocumentExtensions::pauseAnimations):
2335 (WebCore::SVGDocumentExtensions::unpauseAnimations):
2336 (WebCore::SVGDocumentExtensions::dispatchSVGLoadEventToOutermostSVGElements):
2337 (WebCore::SVGDocumentExtensions::rebuildElements):
2338 * svg/SVGDocumentExtensions.h:
2340 2014-06-26 Tim Horton <timothy_horton@apple.com>
2342 [WK2] Pinch-zoom shadows can overlap headers and footers
2343 https://bugs.webkit.org/show_bug.cgi?id=134372
2344 <rdar://problem/16004095>
2346 Reviewed by Simon Fraser.
2349 * rendering/RenderLayerCompositor.cpp:
2350 (WebCore::RenderLayerCompositor::updateLayerForHeader):
2351 (WebCore::RenderLayerCompositor::updateLayerForFooter):
2352 Put header/footer layers in front of the root content layer instead of behind.
2353 Ideally nothing would ever overlap them, but this will give them precedence regardless.
2355 2014-06-26 David Kilzer <ddkilzer@apple.com>
2357 [Win] Always NULL-terminate the string in createUTF8String()
2358 <http://webkit.org/b/134353>
2359 <rdar://problem/17471783>
2361 Reviewed by Brent Fulgham.
2363 * plugins/PluginView.cpp:
2364 (WebCore::createUTF8String): Pull out CString length into local
2365 variable. Switch to use memcpy. Always NULL-terminate the
2368 2014-06-26 Jer Noble <jer.noble@apple.com>
2370 [MSE][Mac] Crash in WebCore::MediaPlayerPrivateMediaSourceAVFObjC::buffered const + 13
2371 https://bugs.webkit.org/show_bug.cgi?id=134367
2373 Reviewed by Darin Adler.
2375 Add a couple of null-checks to protect against methods being called in the brief time
2376 between when the object is created and when it's asked to load.
2378 * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
2379 (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::durationDouble):
2380 (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::buffered):
2382 2014-06-26 Gyuyoung Kim <gyuyoung.kim@samsung.com>
2384 Rearrange conditions to find invalid protocol in NavigatorContentUtils::verifyProtocolHandlerScheme()
2385 https://bugs.webkit.org/show_bug.cgi?id=134289
2387 Reviewed by Darin Adler.
2389 If we do early return when there is invalid protocol, we're able to avoid unnecessary call flow.
2391 No new tests, covered by existing tests.
2393 * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
2394 (WebCore::verifyProtocolHandlerScheme):
2396 2014-06-26 Benjamin Poulain <bpoulain@apple.com>
2398 [WK1] Use native touch event's timestamp for DOM touch event
2399 https://bugs.webkit.org/show_bug.cgi?id=134326
2401 Reviewed by Enrica Casucci.
2403 * platform/ios/PlatformEventFactoryIOS.mm:
2404 (WebCore::PlatformTouchEventBuilder::PlatformTouchEventBuilder):
2405 Use device event timestamp to get more accurate timing information. This also removes
2406 the variance introduced by WebKit when computing velocity/acceleration/etc.
2408 2014-06-26 Balazs Kelemen <b.kelemen@samsung.com>
2410 Memcache migth not be pruned when it should for https pages
2411 https://bugs.webkit.org/show_bug.cgi?id=134361
2413 Reviewed by Geoffrey Garen.
2415 There is no reason we should not try to prune in case of a https resource.
2417 No observable change in behavior, no tests.
2419 * loader/cache/CachedResource.cpp:
2420 (WebCore::CachedResource::removeClient):
2421 Call prune unconditionally and remove an unnecessary branch.
2423 2014-06-26 Alexey Proskuryakov <ap@apple.com>
2425 REGRESSION: Mountain Lion: Gmail's "in new window" view of mail threads is very slow to load its content
2426 https://bugs.webkit.org/show_bug.cgi?id=133882
2427 <rdar://problem/17271965>
2429 Reviewed by Brady Eidson.
2431 This goes to pre-r161796 behavior on 10.8 and 10.9. We schedule the requests internally,
2432 and only give 6 of them to CFNetwork at a time. Except for synchronous requests,
2433 which still use the improved approach, and don't count against 6 connections.
2435 * loader/ResourceLoadScheduler.cpp:
2436 (WebCore::ResourceLoadScheduler::scheduleLoad):
2437 * platform/network/cf/ResourceRequest.h:
2438 (WebCore::ResourceRequest::resourcePrioritiesEnabled):
2439 * platform/network/cf/ResourceRequestCFNet.cpp:
2440 (WebCore::ResourceRequest::doUpdatePlatformRequest):
2441 (WebCore::ResourceRequest::doUpdateResourceRequest):
2442 (WebCore::initializeMaximumHTTPConnectionCountPerHost): Deleted.
2443 * platform/network/mac/ResourceRequestMac.mm:
2444 (WebCore::ResourceRequest::doUpdateResourceRequest):
2445 (WebCore::ResourceRequest::doUpdatePlatformRequest):
2447 2014-06-26 Brady Eidson <beidson@apple.com>
2449 Remove use of PlatformStrategies for Gamepad API.
2450 https://bugs.webkit.org/show_bug.cgi?id=134348
2452 Reviewed by Dean Jackson.
2454 No new tests (Not yet a tested config)
2456 Introduce a virtual GamepadProvider with a process-global shared provider.
2457 The base implementation of the GamepadProvider does nothing.
2458 * platform/GamepadProvider.cpp: Renamed from Source/WebKit/mac/WebCoreSupport/WebHIDGamepadController.h.
2459 (WebCore::GamepadProvider::shared):
2460 (WebCore::GamepadProvider::setSharedProvider):
2461 (WebCore::GamepadProvider::startMonitoringGamepads):
2462 (WebCore::GamepadProvider::stopMonitoringGamepads):
2463 (WebCore::GamepadProvider::platformGamepads):
2464 * platform/GamepadProvider.h: Renamed from Source/WebCore/platform/GamepadStrategy.h.
2465 (WebCore::GamepadProvider::~GamepadProvider):
2467 * platform/GamepadProviderClient.h: Renamed from Source/WebCore/platform/GamepadStrategyClient.h.
2468 (WebCore::GamepadProviderClient::~GamepadProviderClient):
2470 GamepadManager is now a GamepadProviderClient:
2471 * Modules/gamepad/GamepadManager.cpp:
2472 (WebCore::GamepadManager::GamepadManager):
2473 (WebCore::GamepadManager::registerNavigator):
2474 (WebCore::GamepadManager::unregisterNavigator):
2475 * Modules/gamepad/GamepadManager.h:
2477 Remove the GamepadStrategy altogether:
2478 * platform/PlatformStrategies.h:
2479 (WebCore::PlatformStrategies::PlatformStrategies):
2480 (WebCore::PlatformStrategies::gamepadStrategy): Deleted.
2482 Call to the shared GamepadProvider instead of the strategy:
2483 * Modules/gamepad/NavigatorGamepad.cpp:
2484 (WebCore::NavigatorGamepad::gamepads):
2485 (WebCore::NavigatorGamepad::gamepadsBecameVisible):
2486 (WebCore::NavigatorGamepad::gamepadConnected):
2488 HIDGamepadListener is now a subclass of GamepadProvider that implements the HID based management.
2489 LegacyWebKit on Mac will install the shared HIDGamepadProvider instead of the default GamepadProvider:
2490 * platform/mac/HIDGamepadProvider.cpp: Renamed from Source/WebCore/platform/mac/HIDGamepadListener.cpp.
2491 (WebCore::deviceMatchingDictionary):
2492 (WebCore::deviceAddedCallback):
2493 (WebCore::deviceRemovedCallback):
2494 (WebCore::deviceValuesChangedCallback):
2495 (WebCore::HIDGamepadProvider::shared):
2496 (WebCore::HIDGamepadProvider::HIDGamepadProvider):
2497 (WebCore::HIDGamepadProvider::indexForNewlyConnectedDevice):
2498 (WebCore::HIDGamepadProvider::startMonitoringGamepads):
2499 (WebCore::HIDGamepadProvider::stopMonitoringGamepads):
2500 (WebCore::HIDGamepadProvider::deviceAdded):
2501 (WebCore::HIDGamepadProvider::deviceRemoved):
2502 (WebCore::HIDGamepadProvider::valuesChanged):
2503 (WebCore::HIDGamepadProvider::removeGamepadForDevice):
2504 * platform/mac/HIDGamepadProvider.h: Renamed from Source/WebCore/platform/mac/HIDGamepadListener.h.
2505 (WebCore::HIDGamepadProvider::platformGamepads):
2506 (WebCore::HIDGamepadProvider::setShouldDispatchCallbacks):
2509 * WebCore.xcodeproj/project.pbxproj:
2511 * platform/mac/HIDGamepad.h: Fix incorrect comment
2513 2014-06-26 Andreas Kling <akling@apple.com>
2515 Skip memcmp()ing fully downloaded resources after they become mmap()able.
2516 <https://webkit.org/b/134362>
2518 When we receive word that a downloaded resource is now available for mmap()ing
2519 from the file system, we don't need to compare against the buffered data,
2520 since even if there were a mismatch, the cached version should be the canonical one.
2522 This was added as belt-and-suspenders while the supporting mechanism was being
2523 developed in CFNetwork, and there's no evidence of a race today. This change
2524 turns the runtime checks into debug-only assertions.
2526 Saves ~300ms of main thread time on PLT.
2528 Reviewed by Geoff Garen.
2530 * loader/cache/CachedResource.cpp:
2531 (WebCore::CachedResource::tryReplaceEncodedData):
2533 2014-06-26 Jer Noble <jer.noble@apple.com>
2535 [MSE] Refactoring: Use C++11 for-loops in SourceBuffer.
2536 https://bugs.webkit.org/show_bug.cgi?id=134352
2538 Reviewed by Darin Adler.
2540 Use C++11 style for-loops where appropriate in SourceBuffer now that the
2541 SampleMap ordered objects support them.
2543 * Modules/mediasource/SourceBuffer.cpp:
2544 (WebCore::SourceBuffer::sourceBufferPrivateSeekToTime):
2545 (WebCore::SourceBuffer::sourceBufferPrivateFastSeekTimeForMediaTime):
2546 (WebCore::SourceBuffer::sourceBufferPrivateAppendComplete):
2547 (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
2548 (WebCore::SourceBuffer::validateInitializationSegment):
2549 (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
2551 2014-06-25 Joseph Pecoraro <pecoraro@apple.com>
2553 [iOS]: Tapping <button> outside of a form is no longer working
2554 https://bugs.webkit.org/show_bug.cgi?id=134319
2555 <rdar://problem/17213346>
2557 Reviewed by Daniel Bates.
2559 Restore behavior of allowing <button> clicks outside of <form>.
2560 This used to be iOS behavior before it was removed in favor of the
2561 OpenSource (Android?) behavior. Now, willRespondToMouseClickEvents
2562 is only used by iOS, so lets restore the iOS behavior.
2564 * html/HTMLButtonElement.cpp:
2565 (WebCore::HTMLButtonElement::willRespondToMouseClickEvents):
2567 2014-06-26 Jer Noble <jer.noble@apple.com>
2569 Unreviewed build-fix. Remove unintentionial rename of MediaTime.h -> MediaTimeHash.h.
2571 * Modules/mediasource/SampleMap.h:
2573 2014-06-26 Eric Carlson <eric.carlson@apple.com>
2575 [iOS] no need to deactivate audio session
2576 https://bugs.webkit.org/show_bug.cgi?id=134350
2578 Reviewed by Jer Noble.
2580 * platform/audio/mac/MediaSessionManagerMac.cpp:
2581 (MediaSessionManager::updateSessionState): Don't bother calling
2582 AudioSession::setActive(false), WebCore's audio session will be deactivated
2583 automatically if another application begins playing audio.
2585 2014-06-26 Jer Noble <jer.noble@apple.com>
2587 [MSE] Refactoring: Differentiate between SampleMap decode and presentation order methods
2588 https://bugs.webkit.org/show_bug.cgi?id=134349
2590 Reviewed by Geoffrey Garen.
2592 Refactor SampleMap to clarify the distinction between methods which return decode-order
2593 iterators and ones which retun presentation-order iterators.
2595 Add two classes, PresentationOrderSampleMap and DecodeOrderSampleMap, to contain the actual
2596 MediaTime-to-Sample maps, and move the methods returning presentation-order and decode-order
2597 iterators to each, respectively. Rename the {presentation,decode}{Begin,End}() methods to
2598 begin() and end() so the objects can be used in C++11 for-loops.
2600 Update all the call sites in SourceBuffer to use the new ordered objects.
2602 * Modules/mediasource/SampleMap.cpp:
2603 (WebCore::SampleIsLessThanMediaTimeComparator::operator()): Use new ordered objects.
2604 (WebCore::SampleIsGreaterThanMediaTimeComparator::operator()): Ditto.
2605 (WebCore::SampleMap::clear): Ditto.
2606 (WebCore::SampleMap::addSample): Ditto.
2607 (WebCore::SampleMap::removeSample): Ditto.
2608 (WebCore::PresentationOrderSampleMap::findSampleContainingPresentationTime): Renamed from SampleMap version.
2609 (WebCore::PresentationOrderSampleMap::findSampleAfterPresentationTime): Ditto.
2610 (WebCore::DecodeOrderSampleMap::findSampleWithDecodeTime): Ditto.
2611 (WebCore::PresentationOrderSampleMap::reverseFindSampleContainingPresentationTime): Ditto.
2612 (WebCore::PresentationOrderSampleMap::reverseFindSampleBeforePresentationTime): Ditto.
2613 (WebCore::DecodeOrderSampleMap::reverseFindSampleWithDecodeTime): Ditto.
2614 (WebCore::DecodeOrderSampleMap::findSyncSamplePriorToPresentationTime): Ditto.
2615 (WebCore::DecodeOrderSampleMap::findSyncSamplePriorToDecodeIterator): Ditto.
2616 (WebCore::DecodeOrderSampleMap::findSyncSampleAfterPresentationTime): Ditto.
2617 (WebCore::DecodeOrderSampleMap::findSyncSampleAfterDecodeIterator): Ditto.
2618 (WebCore::PresentationOrderSampleMap::findSamplesBetweenPresentationTimes): Ditto.
2619 (WebCore::PresentationOrderSampleMap::findSamplesWithinPresentationRange): Ditto.
2620 (WebCore::DecodeOrderSampleMap::findDependentSamples): Ditto.
2621 * Modules/mediasource/SampleMap.h:
2622 (WebCore::PresentationOrderSampleMap::begin): Renamed from presentationBegin().
2623 (WebCore::PresentationOrderSampleMap::end): Renamed from presentationEnd().
2624 (WebCore::PresentationOrderSampleMap::rbegin): Renamed from reversePresentationBegin().
2625 (WebCore::PresentationOrderSampleMap::rend): Renamed from reversePresentationEnd().
2626 (WebCore::DecodeOrderSampleMap::begin): Renamed from decodeBegin().
2627 (WebCore::DecodeOrderSampleMap::end): Renamed from decodeEnd().
2628 (WebCore::DecodeOrderSampleMap::rbegin): Renamed from reverseDecodeBegin().
2629 (WebCore::DecodeOrderSampleMap::rend): Renamed from reverseDecodeEnd().
2630 (WebCore::SampleMap::SampleMap): Create new ordered objects.
2631 (WebCore::SampleMap::sizeInBytes): Use new ordered objects.
2632 (WebCore::SampleMap::decodeOrder): Simple accessor.
2633 (WebCore::SampleMap::presentationOrder): Simple accessor.
2634 * Modules/mediasource/SourceBuffer.cpp:
2635 (WebCore::SourceBuffer::sourceBufferPrivateSeekToTime): Use new ordered objects.
2636 (WebCore::SourceBuffer::sourceBufferPrivateFastSeekTimeForMediaTime): Ditto.
2637 (WebCore::SourceBuffer::removeCodedFrames): Ditto.
2638 (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Ditto.
2639 (WebCore::SourceBuffer::bufferedSamplesForTrackID): Ditto.
2641 2014-06-26 Chris Fleizach <cfleizach@apple.com>
2643 Add an undo group for each dictated utterance in WebKit
2644 https://bugs.webkit.org/show_bug.cgi?id=134086
2646 Applied review comments from Sam Weinig.
2648 Move the associated USE #define into Platform.h.
2650 * WebCore.xcodeproj/project.pbxproj:
2651 * editing/mac/TextUndoInsertionMarkup.h: Removed.
2652 * editing/mac/TextUndoInsertionMarkupMac.h:
2654 2014-06-26 Shivakumar JM <shiva.jm@samsung.com>
2656 [EFL][WK2] Fix Debug Build Error in Webcore module.
2657 https://bugs.webkit.org/show_bug.cgi?id=134345
2659 Reviewed by Zalan Bujtas.
2661 Use static cast to change the type of variable to fix error
2663 * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
2664 (WebCore::HarfBuzzShaper::setDrawRange):
2666 2014-06-26 Eric Carlson <eric.carlson@apple.com>
2668 [Mac] allow host application to canonicalize media urls
2669 https://bugs.webkit.org/show_bug.cgi?id=134329
2671 Reviewed by Dean Jackson.
2673 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2674 (WebCore::canonicalURL): New, use NSURLProtocol to canonicalize a URL.
2675 (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Call canonicalURL.
2677 2014-06-26 Carlos Garcia Campos <cgarcia@igalia.com>
2679 [GTK] Add padding for future expansion to WebKitDOMEventTargetIface
2680 https://bugs.webkit.org/show_bug.cgi?id=134298
2682 Reviewed by Martin Robinson.
2684 * bindings/gobject/WebKitDOMEventTarget.h:
2686 2014-06-25 Carlos Garcia Campos <cgarcia@igalia.com>
2688 [GTK] Add support for constants in GObject DOM bindings
2689 https://bugs.webkit.org/show_bug.cgi?id=133983
2691 Reviewed by Martin Robinson.
2693 * bindings/gobject/webkitdom.symbols: Add stable constants.
2694 * bindings/scripts/CodeGeneratorGObject.pm:
2695 (GenerateHeader): Add constants to the header.
2696 (Generate): Pass the interface object to GenerateHeader to get the constants
2697 (IsInterfaceSymbol): Helper function that returns whether the given
2698 symbol belongs to the interface. Check also constants now.
2699 (ReadStableSymbols): Use IsInterfaceSymbol().
2700 * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
2701 * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
2703 2014-06-26 Manuel Rego Casasnovas <rego@igalia.com>
2705 [CSS Grid Layout] Properly support for z-index on grid items
2706 https://bugs.webkit.org/show_bug.cgi?id=103329
2708 Reviewed by Benjamin Poulain.
2710 From Blink r157620 by <jchaffraix@chromium.org> and r172402 by
2711 <wangxianzhu@chromium.org>.
2713 The specification says that grid should match flexbox and force
2714 grid items to be stacking context if z-index is set, regardless
2715 of 'position'. After this change, this is what happens.
2717 Previously z-index changes of static positioned objects were ignored.
2718 However, z-index is applicable for some static positioned objects,
2719 such as grid items. Ignoring them makes the object not to be properly
2720 painted on z-index change.
2722 As StyleResolver has ensured that z-index is non-auto only if
2723 applicable, RenderStyle::changeRequiresLayerRepaint() should not check
2724 again (with inconsistent conditions).
2726 Tests: fast/css-grid-layout/grid-item-z-index-change-repaint.html
2727 fast/css-grid-layout/grid-item-z-index-stacking-context.html
2728 fast/css-grid-layout/grid-item-z-index-support.html
2730 * css/StyleResolver.cpp:
2731 (WebCore::isDisplayFlexibleOrGridBox): Add new method to check if parent
2732 display is flexbox or grid.
2733 (WebCore::StyleResolver::adjustRenderStyle): Use new method in z-index
2735 * rendering/style/RenderStyle.cpp:
2736 (WebCore::RenderStyle::changeRequiresLayerRepaint): Move z-index checks
2737 out of non-static positioned objects if.
2739 2014-06-25 Dean Jackson <dino@apple.com>
2741 HIDGamepad should use CFIndex when looping
2742 https://bugs.webkit.org/show_bug.cgi?id=134337
2744 Reviewed by Dan Bernstein.
2746 * platform/mac/HIDGamepad.cpp:
2747 (WebCore::HIDGamepad::initElementsFromArray): Replace int with CFIndex, and use
2748 a local variable for CFArrayCount.
2750 2014-06-25 Ryosuke Niwa <rniwa@webkit.org>
2752 Build fix attempt after r170465.
2754 * platform/mac/HIDGamepad.cpp:
2755 (WebCore::HIDGamepad::initElementsFromArray):
2757 2014-06-25 Dean Jackson <dino@apple.com>
2759 [Mac] Radio buttons and checkboxes vanish when redrawn
2760 https://bugs.webkit.org/show_bug.cgi?id=134335
2762 Reviewed by Dan Bernstein.
2764 I screwed up when landing r170343 by moving some code around
2765 which broke the logic. We need to query the animation
2766 state for controls after we draw (both statically and animated).
2768 * platform/mac/ThemeMac.mm:
2769 (WebCore::paintToggleButton): We need to check the state of animation again, after
2772 2014-06-25 Brady Eidson <beidson@apple.com>
2774 Add HID-based gamepad implementation for Mac
2775 https://bugs.webkit.org/show_bug.cgi?id=134324
2777 Reviewed by Dean Jackson.
2779 No new tests (Not yet a tested config)
2781 * Modules/gamepad/Gamepad.cpp:
2782 (WebCore::Gamepad::Gamepad):
2783 (WebCore::Gamepad::updateFromPlatformGamepad): Update the Gamepad’s data from the passed-in PlatformGamepad.
2784 * Modules/gamepad/Gamepad.h:
2786 * Modules/gamepad/GamepadButton.h:
2787 (WebCore::GamepadButton::create): Change to use Ref instead of RefPtr.
2789 GamepadManager is a GamepadStrategyClient that receives notifications from the platform gamepad implementation
2790 and forwards them to NavigatorGamepad objects. In the future it will also handle event dispatch and exposing
2791 gamepads to the API layer when a button is pressed:
2792 * Modules/gamepad/GamepadManager.cpp: Added.
2793 (WebCore::GamepadManager::shared):
2794 (WebCore::GamepadManager::GamepadManager):
2795 (WebCore::GamepadManager::platformGamepadConnected):
2796 (WebCore::GamepadManager::platformGamepadDisconnected):
2797 (WebCore::GamepadManager::registerNavigator):
2798 (WebCore::GamepadManager::unregisterNavigator):
2799 * Modules/gamepad/GamepadManager.h:
2801 The NavigatorGamepad supplement actually manages visibility of Gamepads on a per-DOMWindow basis:
2802 * Modules/gamepad/NavigatorGamepad.cpp:
2803 (WebCore::NavigatorGamepad::NavigatorGamepad):
2804 (WebCore::NavigatorGamepad::~NavigatorGamepad):
2805 (WebCore::NavigatorGamepad::from):
2806 (WebCore::NavigatorGamepad::gamepads):
2807 (WebCore::NavigatorGamepad::gamepadsBecameVisible):
2808 (WebCore::NavigatorGamepad::gamepadConnected):
2809 (WebCore::NavigatorGamepad::gamepadDisconnected):
2810 * Modules/gamepad/NavigatorGamepad.h:
2811 (WebCore::NavigatorGamepad::navigationStart):
2813 HIDGamepad is a PlatformGamepad that wraps an IOHIDDeviceRef and keeps input values updated:
2814 * platform/mac/HIDGamepad.cpp: Added.
2815 (WebCore::HIDGamepad::HIDGamepad):
2816 (WebCore::HIDGamepad::initElements):
2817 (WebCore::HIDGamepad::initElementsFromArray):
2818 (WebCore::HIDGamepad::maybeAddButton):
2819 (WebCore::HIDGamepad::maybeAddAxis):
2820 (WebCore::HIDGamepad::valueChanged):
2821 * platform/mac/HIDGamepad.h: Added.
2822 (WebCore::HIDGamepadElement::HIDGamepadElement):
2823 (WebCore::HIDGamepadElement::~HIDGamepadElement):
2824 (WebCore::HIDGamepadElement::isButton):
2825 (WebCore::HIDGamepadElement::isAxis):
2826 (WebCore::HIDGamepadButton::HIDGamepadButton):
2827 (WebCore::HIDGamepadAxis::HIDGamepadAxis):
2828 (WebCore::HIDGamepad::hidDevice):
2830 HIDGamepadListener wraps an IOHIDManagerRef and continuously listens for changes to Gamepad-type
2831 devices plugged in to the system:
2832 * platform/mac/HIDGamepadListener.cpp: Added.
2833 (WebCore::deviceMatchingDictionary):
2834 (WebCore::deviceAddedCallback):
2835 (WebCore::deviceRemovedCallback):
2836 (WebCore::deviceValuesChangedCallback):
2837 (WebCore::HIDGamepadListener::shared):
2838 (WebCore::HIDGamepadListener::HIDGamepadListener):
2839 (WebCore::HIDGamepadListener::indexForNewlyConnectedDevice):
2840 (WebCore::HIDGamepadListener::deviceAdded):
2841 (WebCore::HIDGamepadListener::deviceRemoved):
2842 (WebCore::HIDGamepadListener::valuesChanged):
2843 (WebCore::HIDGamepadListener::removeGamepadForDevice):
2844 * platform/mac/HIDGamepadListener.h: Copied from Source/WebCore/Modules/gamepad/NavigatorGamepad.cpp.
2845 (WebCore::HIDGamepadListenerClient::~HIDGamepadListenerClient):
2846 (WebCore::HIDGamepadListener::setClient):
2847 (WebCore::HIDGamepadListener::platformGamepads):
2848 (WebCore::HIDGamepadListener::setShouldDispatchCallbacks):
2851 * WebCore.xcodeproj/project.pbxproj:
2853 2014-06-25 Ryosuke Niwa <rniwa@webkit.org>
2855 WebProgressTracker updates progress too frequently
2856 https://bugs.webkit.org/show_bug.cgi?id=134185
2858 Reviewed by Tim Horton.
2860 The old code throttled the progress update to when either 100ms has passed or the delta is at least 2%
2861 but this was still not enough in pages that loaded in sub-seconds. The new code always throttles it at 200ms.
2863 * loader/ProgressTracker.cpp:
2864 (WebCore::ProgressTracker::ProgressTracker):
2865 (WebCore::ProgressTracker::incrementProgress):
2866 * loader/ProgressTracker.h:
2868 2014-06-25 Simon Fraser <simon.fraser@apple.com>
2870 [iOS WK2] Fixed position elements jump around when zooming
2871 https://bugs.webkit.org/show_bug.cgi?id=134328
2872 <rdar://problem/17447048>
2874 Reviewed by Zalan Bujtas.
2876 If a given remote layer tree commit contains changes of layers for viewport-constrained
2877 objects, then the associated scrolling tree also needs to show that the layers changed,
2878 since we need to re-run the "viewport changed" logic in the UI process to get the
2879 layers correctly positioned for the current zoom level.
2881 The bug was that page scale changes resulted in small "pixel alignment" position
2882 changes which touched layers, but we didn't commit any scrolling tree changes. So
2883 the scrolling tree commit would result in visibly stale layer positions, with no scrolling tree
2884 update to adjust them for the current transient zoom.
2886 Fix by making use of the existing "alignment offset" field in the ViewportConstraints
2887 data, and having RemoteScrollingCoordinatorProxy::connectStateNodeLayers() note that
2888 fixed or sticky layers changed if any properties of fixed or sticky scrolling tree
2891 * page/scrolling/ScrollingConstraints.h:
2892 (WebCore::StickyPositionViewportConstraints::operator==):
2893 * platform/graphics/GraphicsLayer.h:
2894 (WebCore::GraphicsLayer::pixelAlignmentOffset):
2895 * platform/graphics/ca/GraphicsLayerCA.cpp:
2896 (WebCore::GraphicsLayerCA::updateGeometry):
2897 * platform/graphics/ca/GraphicsLayerCA.h:
2898 * rendering/RenderLayerCompositor.cpp:
2899 (WebCore::RenderLayerCompositor::computeFixedViewportConstraints):
2900 (WebCore::RenderLayerCompositor::computeStickyViewportConstraints):
2902 2014-06-25 Simon Fraser <simon.fraser@apple.com>
2904 [iOS WK2] Tweak the logic used to choose the scale at which position:fixed gets pushed out of view
2905 https://bugs.webkit.org/show_bug.cgi?id=134323
2907 Reviewed by Benjamin Poulain.
2909 Previously we used a fixed scale (1.2x) at which we'd start pushing position:fixed elements
2910 out of the viewport. This worked well on iPad, but terribly on iPhone. Instead, choose a scale
2911 relative to how much of the page is visible width-wise, the threshold being 2/3 of the page width.
2912 The width is clamped to get reasonable behavior on wide pages.
2914 * page/FrameView.cpp:
2915 (WebCore::FrameView::rectForViewportConstrainedObjects):
2917 2014-06-25 Brady Eidson <beidson@apple.com>
2919 Add new platform gamepad abstractions
2920 https://bugs.webkit.org/show_bug.cgi?id=134325
2922 Reviewed by Dean Jackson.
2924 No new tests (Not yet a tested config)
2926 - GamepadStrategy lets ports customize the 3 basic behaviors needed for a gamepad
2927 implementation to feed the API in WebCore.
2928 - GamepadStrategyClient gives arbitrary objects in WebCore the ability to register
2929 for callbacks with the GamepadStrategy.
2930 - PlatformGamepad is a platform-agnostic object that represents the data that
2931 feeds into the Gamepad object that is exposed to web content.
2933 The code in this patch is dead as-is, but https://bugs.webkit.org/show_bug.cgi?id=134324
2934 will contain an immediate follow-up patch that uses it.
2936 Makes sense to review them separately.
2938 * WebCore.xcodeproj/project.pbxproj:
2940 * platform/GamepadStrategy.h: Added.
2941 (WebCore::GamepadStrategy::~GamepadStrategy):
2943 * platform/GamepadStrategyClient.h: Added.
2944 (WebCore::GamepadStrategyClient::~GamepadStrategyClient):
2946 * platform/PlatformGamepad.h: Added.
2947 (WebCore::PlatformGamepad::~PlatformGamepad):
2948 (WebCore::PlatformGamepad::id):
2949 (WebCore::PlatformGamepad::lastUpdateTime):
2950 (WebCore::PlatformGamepad::connectTime):
2951 (WebCore::PlatformGamepad::PlatformGamepad):
2953 * platform/PlatformStrategies.h:
2954 (WebCore::PlatformStrategies::gamepadStrategy):
2955 (WebCore::PlatformStrategies::PlatformStrategies):
2957 2014-06-25 Zalan Bujtas <zalan@apple.com>
2959 Assertion failed: CGPathAddRoundedRect asserts on non-renderable rounded rectangle.
2960 https://bugs.webkit.org/show_bug.cgi?id=134288
2962 Reviewed by Simon Fraser.
2964 Speculative fix. This changeset attempts to address a possible mantissa overflow of radius
2965 when checking whether the rounded rectangle is renderable.
2966 We convert both the radius and the rectangle values to CGFloat(float/double) to perform
2967 this renderable check, instead of always using float.
2969 * platform/graphics/FloatRoundedRect.cpp:
2970 (WebCore::FloatRoundedRect::Radii::scale): Move scale(float, float) from RoundedRect to FloatRoundedRect.
2971 (WebCore::FloatRoundedRect::isRenderable): Add check if radius is >= 0.
2972 * platform/graphics/FloatRoundedRect.h:
2973 * platform/graphics/RoundedRect.cpp:
2974 (WebCore::RoundedRect::Radii::scale):
2975 (WebCore::RoundedRect::pixelSnappedRoundedRectForPainting): use FloatRoundeRect::Radii.
2976 * platform/graphics/RoundedRect.h:
2977 * platform/graphics/cg/PathCG.cpp:
2978 (WebCore::Path::platformAddPathForRoundedRect): use epsilon() to ensure width/height is always >= even with mantissa overflow.
2980 2014-06-25 Jer Noble <jer.noble@apple.com>
2982 [MSE] removeCodedFrames() can remove more than it should
2983 https://bugs.webkit.org/show_bug.cgi?id=134320
2985 Reviewed by Geoff Garen.
2987 removeCodedFrames() can remove more samples than it should because it compares an iterator
2988 in presentation timespace to one in decode timespace. Clean up this code by removing frames
2989 in decode order. Rename variables and add comments to make explicit which timespace defines
2990 the iterators being used.
2992 * Modules/mediasource/SourceBuffer.cpp:
2993 (WebCore::SourceBuffer::removeCodedFrames):
2995 2014-06-25 Beth Dakin <bdakin@apple.com>
2997 Crash in ScrollingTree::isRubberBandInProgress()
2998 https://bugs.webkit.org/show_bug.cgi?id=134316
3000 <rdar://problem/16247911>
3002 Reviewed by Geoffrey Garen.
3004 This crash appears to have been caused by http://trac.webkit.org/changeset/161276
3005 which moved the ScrollingNode creation code from ScrollingTree over to
3006 ScrollingCoordinator. This creates a thread safety issue. In the crashing case, we
3007 believe that the ScrollingCoordinator's ScrollingTree pointer had been null-ed out
3008 even though the ScrollingTree was kept alive by the bind call to propagate
3009 commitNewTreeState() over to the scrolling thread. The fix is to move node
3010 creation back to the ScrollingTree and to use the this pointer to create new
3011 nodes rather than the ScrollingCoordinator's ScrollingTree pointer.
3013 Don't allow ScrollingCoordinator to handle ScrollingTreeNode creation.
3014 * page/scrolling/AsyncScrollingCoordinator.h:
3016 Re-name createNode to createScrollingTreeNode().
3017 * page/scrolling/ScrollingTree.cpp:
3018 (WebCore::ScrollingTree::updateTreeFromStateNode):
3019 * page/scrolling/ScrollingTree.h:
3021 Remove this implementation of createNode that called into the
3022 ScrollingCoordinator.
3023 * page/scrolling/ThreadedScrollingTree.cpp:
3024 (WebCore::ThreadedScrollingTree::createNode): Deleted.
3025 * page/scrolling/ThreadedScrollingTree.h:
3027 Don't allow ScrollingCoordinator to handle ScrollingTreeNode creation.
3028 * page/scrolling/ios/ScrollingCoordinatorIOS.h:
3029 * page/scrolling/ios/ScrollingCoordinatorIOS.mm:
3030 (WebCore::ScrollingCoordinatorIOS::createScrollingTreeNode): Deleted.
3032 Re-name createNode to createScrollingTreeNode, and actually create the nodes here.
3033 * page/scrolling/ios/ScrollingTreeIOS.cpp:
3034 (WebCore::ScrollingTreeIOS::createScrollingTreeNode):
3035 (WebCore::ScrollingTreeIOS::createNode): Deleted.
3036 * page/scrolling/ios/ScrollingTreeIOS.h:
3038 Don't allow ScrollingCoordinator to handle ScrollingTreeNode creation.
3039 * page/scrolling/mac/ScrollingCoordinatorMac.h:
3040 * page/scrolling/mac/ScrollingCoordinatorMac.mm:
3041 (WebCore::ScrollingCoordinatorMac::createScrollingTreeNode): Deleted.
3043 Add the implementation of createScrollingTreeNode() for the Mac to
3044 ScrollingTreeMac since it can create Mac-specific nodes.
3045 * page/scrolling/mac/ScrollingTreeMac.cpp:
3046 (ScrollingTreeMac::createScrollingTreeNode):
3047 * page/scrolling/mac/ScrollingTreeMac.h:
3049 2014-06-25 Enrica Casucci <enrica@apple.com>
3051 iOS build fix after http://trac.webkit.org/changeset/170447.
3054 * editing/mac/TextUndoInsertionMarkup.h:
3056 2014-06-25 Chris Fleizach <cfleizach@apple.com>
3058 Add an undo group for each dictated utterance in WebKit
3059 https://bugs.webkit.org/show_bug.cgi?id=134086
3061 Reviewed by Enrica Casucci.
3063 Provide a mechanism for ending the current undo group on a text insertion.
3064 This allows a stream of text, that is normally part of one undo group, to be
3065 broken up so that subsequent undo commands will only undo portions of the text stream.
3068 * WebCore.xcodeproj/project.pbxproj:
3069 * editing/mac/TextUndoInsertionMarkup.h: Added.
3070 * editing/mac/TextUndoInsertionMarkup.mm: Added.
3071 (WebCore::shouldRegisterInsertionUndoGroup):
3072 (WebCore::registerInsertionUndoGrouping):
3074 2014-06-25 Joseph Pecoraro <pecoraro@apple.com>
3076 [iOS]: WK2 Inspector Node Search
3077 https://bugs.webkit.org/show_bug.cgi?id=134279
3079 Reviewed by Benjamin Poulain.
3082 Export Node::inspect for WebKit2.
3084 2014-06-25 Dana Burkart <dburkart@apple.com>
3086 Add support for 5-tuple versioning.
3088 Reviewed by David Farler.
3090 * Configurations/Version.xcconfig:
3092 2014-06-25 Jer Noble <jer.noble@apple.com>
3094 [MSE][Mac] REGRESSION(r170336) - zero tolerance seeks are ignored.
3095 https://bugs.webkit.org/show_bug.cgi?id=134310
3097 Reviewed by Brent Fulgham.
3099 Tests for zero tolerance seeks were inadvertantly reversed in r170336.
3101 * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
3102 (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal):
3104 2014-06-25 Jer Noble <jer.noble@apple.com>
3106 [MSE][Mac] Pause playback when readyState drops below HAVE_FUTURE_DATA, and do not complete seek until it rises above HAVE_METADATA.
3107 https://bugs.webkit.org/show_bug.cgi?id=134306
3109 Reviewed by Eric Carlson.
3111 Pause the synchronizer before seeking, and do not resume the synchronizer until it both reports that the seek completed,
3112 and that the readyState rises above HAVE_METADATA. In every other location where we change the rate of the synchronizer,
3113 gate that rate change on the above.
3115 * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
3116 * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
3117 (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC): Check shouldBePlaying().
3118 (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::playInternal): Ditto.
3119 (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekWithTolerance): Unset m_seekCompleted.
3120 (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal): Pause the synchronizer.
3121 (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setRateDouble): Check shouldBePlaying().
3122 (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::shouldBePlaying): Test m_seeking, !m_seekCompleted, and the readyState.
3123 (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setReadyState): Set m_seekCompleted; check shouldBePlaying() and play if appropriate.
3125 2014-06-25 Jer Noble <jer.noble@apple.com>
3127 [MSE] Update monitorSourceBuffers to match recent spec changes
3128 https://bugs.webkit.org/show_bug.cgi?id=134305
3130 Reviewed by Eric Carlson.
3132 In W3C bug #24347, the text for the third clause of Source Buffer Monitoring was updated. Update our
3133 implementation to match the new text.
3135 * Modules/mediasource/MediaSource.cpp:
3136 (WebCore::MediaSource::monitorSourceBuffers):
3138 2014-06-25 Alex Christensen <achristensen@webkit.org>
3139 And peavo@outlook.com <peavo@outlook.com>
3141 Use references instead of pointers in RenderTheme.
3142 https://bugs.webkit.org/show_bug.cgi?id=134261
3144 Reviewed by Zalan Bujtas.
3146 * css/StyleResolver.cpp:
3147 (WebCore::StyleResolver::adjustRenderStyle):
3148 * html/TextFieldInputType.cpp:
3149 (WebCore::TextFieldInputType::shouldHaveSpinButton):
3150 * html/shadow/SliderThumbElement.cpp:
3151 (WebCore::RenderSliderThumb::updateAppearance):
3152 * platform/efl/RenderThemeEfl.cpp:
3153 (WebCore::RenderThemeEfl::adjustSizeConstraints):
3154 (WebCore::RenderThemeEfl::applyEdjeRTLState):
3155 (WebCore::RenderThemeEfl::isControlStyled):
3156 (WebCore::RenderThemeEfl::paintThemePart):
3157 (WebCore::RenderThemeEfl::supportsFocusRing):
3158 (WebCore::RenderThemeEfl::adjustSliderTrackStyle):
3159 (WebCore::RenderThemeEfl::adjustSliderThumbStyle):
3160 (WebCore::RenderThemeEfl::adjustSliderThumbSize):
3161 (WebCore::RenderThemeEfl::adjustCheckboxStyle):
3162 (WebCore::RenderThemeEfl::adjustRadioStyle):
3163 (WebCore::RenderThemeEfl::adjustButtonStyle):
3164 (WebCore::RenderThemeEfl::adjustMenuListStyle):
3165 (WebCore::RenderThemeEfl::adjustMenuListButtonStyle):
3166 (WebCore::RenderThemeEfl::adjustTextFieldStyle):
3167 (WebCore::RenderThemeEfl::adjustTextAreaStyle):
3168 (WebCore::RenderThemeEfl::adjustSearchFieldResultsButtonStyle):
3169 (WebCore::RenderThemeEfl::adjustSearchFieldResultsDecorationPartStyle):
3170 (WebCore::RenderThemeEfl::adjustSearchFieldCancelButtonStyle):
3171 (WebCore::RenderThemeEfl::adjustSearchFieldStyle):
3172 (WebCore::RenderThemeEfl::adjustInnerSpinButtonStyle):
3173 (WebCore::RenderThemeEfl::adjustProgressBarStyle):
3174 (WebCore::RenderThemeEfl::animationRepeatIntervalForProgressBar):
3175 (WebCore::RenderThemeEfl::animationDurationForProgressBar):
3176 * platform/efl/RenderThemeEfl.h:
3177 * platform/gtk/RenderThemeGtk.cpp:
3178 (WebCore::RenderThemeGtk::supportsFocusRing):
3179 (WebCore::RenderThemeGtk::adjustButtonStyle):
3180 (WebCore::RenderThemeGtk::adjustMenuListStyle):
3181 (WebCore::RenderThemeGtk::adjustMenuListButtonStyle):
3182 (WebCore::RenderThemeGtk::adjustSearchFieldResultsButtonStyle):
3183 (WebCore::adjustSearchFieldIconStyle):
3184 (WebCore::RenderThemeGtk::adjustSearchFieldResultsDecorationPartStyle):
3185 (WebCore::RenderThemeGtk::adjustSearchFieldCancelButtonStyle):
3186 (WebCore::RenderThemeGtk::adjustSearchFieldStyle):
3187 (WebCore::RenderThemeGtk::adjustSliderTrackStyle):
3188 (WebCore::RenderThemeGtk::adjustSliderThumbStyle):
3189 (WebCore::borderRadiiFromStyle):
3190 (WebCore::RenderThemeGtk::paintMediaSliderTrack):
3191 (WebCore::RenderThemeGtk::paintMediaSliderThumb):
3192 (WebCore::RenderThemeGtk::paintMediaVolumeSliderTrack):
3193 (WebCore::RenderThemeGtk::adjustProgressBarStyle):
3194 (WebCore::RenderThemeGtk::animationRepeatIntervalForProgressBar):
3195 (WebCore::RenderThemeGtk::animationDurationForProgressBar):
3196 (WebCore::RenderThemeGtk::calculateProgressRect):
3197 * platform/gtk/RenderThemeGtk.h:
3198 * platform/gtk/RenderThemeGtk2.cpp:
3199 (WebCore::setToggleSize):
3200 (WebCore::RenderThemeGtk::setCheckboxSize):
3201 (WebCore::RenderThemeGtk::setRadioSize):
3202 (WebCore::RenderThemeGtk::comboBoxArrowSize):
3203 (WebCore::RenderThemeGtk::getComboBoxPadding):
3204 (WebCore::RenderThemeGtk::popupInternalPaddingLeft):
3205 (WebCore::RenderThemeGtk::popupInternalPaddingRight):
3206 (WebCore::RenderThemeGtk::popupInternalPaddingTop):
3207 (WebCore::RenderThemeGtk::popupInternalPaddingBottom):
3208 (WebCore::RenderThemeGtk::paintMenuList):
3209 (WebCore::RenderThemeGtk::adjustSliderThumbSize):
3210 (WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle):
3211 * platform/gtk/RenderThemeGtk3.cpp:
3212 (WebCore::setToggleSize):
3213 (WebCore::RenderThemeGtk::setCheckboxSize):
3214 (WebCore::RenderThemeGtk::setRadioSize):
3215 (WebCore::getComboBoxMetrics):
3216 (WebCore::RenderThemeGtk::popupInternalPaddingLeft):
3217 (WebCore::RenderThemeGtk::popupInternalPaddingRight):
3218 (WebCore::RenderThemeGtk::popupInternalPaddingTop):
3219 (WebCore::RenderThemeGtk::popupInternalPaddingBottom):
3220 (WebCore::RenderThemeGtk::adjustSliderThumbSize):
3221 (WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle):
3222 * rendering/RenderButton.cpp:
3223 (WebCore::RenderButton::layout):
3224 * rendering/RenderInline.cpp:
3225 (WebCore::RenderInline::paintOutline):
3226 * rendering/RenderMediaControls.cpp:
3227 (WebCore::RenderMediaControls::adjustMediaSliderThumbSize):
3228 * rendering/RenderMediaControls.h:
3229 * rendering/RenderMenuList.cpp:
3230 (WebCore::RenderMenuList::adjustInnerStyle):
3231 (RenderMenuList::computeIntrinsicLogicalWidths):
3232 (RenderMenuList::menuStyle):
3233 * rendering/RenderMeter.cpp:
3234 (WebCore::RenderMeter::updateLogicalWidth):
3235 (WebCore::RenderMeter::computeLogicalHeight):
3236 * rendering/RenderObject.cpp:
3237 (WebCore::RenderObject::paintOutline):
3238 * rendering/RenderProgress.cpp:
3239 (WebCore::RenderProgress::updateAnimationState):
3240 * rendering/RenderTextControlSingleLine.cpp:
3241 (WebCore::RenderTextControlSingleLine::layout):
3242 * rendering/RenderTheme.cpp:
3243 (WebCore::RenderTheme::adjustStyle):
3244 (WebCore::RenderTheme::isControlStyled):
3245 (WebCore::RenderTheme::supportsFocusRing):
3246 (WebCore::RenderTheme::stateChanged):
3247 (WebCore::RenderTheme::adjustCheckboxStyle):
3248 (WebCore::RenderTheme::adjustRadioStyle):
3249 (WebCore::RenderTheme::adjustButtonStyle):
3250 (WebCore::RenderTheme::adjustInnerSpinButtonStyle):
3251 (WebCore::RenderTheme::adjustTextFieldStyle):
3252 (WebCore::RenderTheme::adjustTextAreaStyle):
3253 (WebCore::RenderTheme::adjustMenuListStyle):
3254 (WebCore::RenderTheme::adjustInputFieldSpeechButtonStyle):
3255 (WebCore::RenderTheme::adjustMeterStyle):
3256 (WebCore::RenderTheme::meterSizeForBounds):
3257 (WebCore::RenderTheme::animationRepeatIntervalForProgressBar):
3258 (WebCore::RenderTheme::animationDurationForProgressBar):
3259 (WebCore::RenderTheme::adjustProgressBarStyle):
3260 (WebCore::RenderTheme::shouldHaveSpinButton):
3261 (WebCore::RenderTheme::adjustMediaControlStyle):
3262 (WebCore::RenderTheme::adjustSliderTrackStyle):
3263 (WebCore::RenderTheme::adjustSliderThumbStyle):
3264 (WebCore::RenderTheme::adjustSliderThumbSize):
3265 (WebCore::RenderTheme::adjustSearchFieldStyle):
3266 (WebCore::RenderTheme::adjustSearchFieldCancelButtonStyle):
3267 (WebCore::RenderTheme::adjustSearchFieldDecorationPartStyle):
3268 (WebCore::RenderTheme::adjustSearchFieldResultsDecorationPartStyle):
3269 (WebCore::RenderTheme::adjustSearchFieldResultsButtonStyle):
3270 * rendering/RenderTheme.h:
3271 (WebCore::RenderTheme::supportsHover):
3272 (WebCore::RenderTheme::minimumMenuListSize):
3273 (WebCore::RenderTheme::popupInternalPaddingLeft):
3274 (WebCore::RenderTheme::popupInternalPaddingRight):
3275 (WebCore::RenderTheme::popupInternalPaddingTop):
3276 (WebCore::RenderTheme::popupInternalPaddingBottom):
3277 (WebCore::RenderTheme::popupMenuSize):
3278 (WebCore::RenderTheme::setCheckboxSize):
3279 (WebCore::RenderTheme::setRadioSize):
3280 (WebCore::RenderTheme::setButtonSize):
3281 * rendering/RenderThemeIOS.h:
3282 * rendering/RenderThemeIOS.mm:
3283 (WebCore::RenderThemeIOS::adjustCheckboxStyle):
3284 (WebCore::RenderThemeIOS::isControlStyled):
3285 (WebCore::RenderThemeIOS::adjustRadioStyle):
3286 (WebCore::RenderThemeIOS::popupInternalPaddingRight):
3287 (WebCore::RenderThemeIOS::adjustRoundBorderRadius):
3288 (WebCore::RenderThemeIOS::adjustMenuListButtonStyle):
3289 (WebCore::RenderThemeIOS::adjustSliderTrackStyle):
3290 (WebCore::RenderThemeIOS::adjustSliderThumbSize):
3291 (WebCore::RenderThemeIOS::animationRepeatIntervalForProgressBar):
3292 (WebCore::RenderThemeIOS::animationDurationForProgressBar):
3293 (WebCore::RenderThemeIOS::adjustSearchFieldStyle):
3294 (WebCore::RenderThemeIOS::adjustButtonStyle):
3295 (WebCore::RenderThemeIOS::setButtonSize):
3296 (WebCore::RenderThemeIOS::shouldHaveSpinButton):
3297 * rendering/RenderThemeMac.h:
3298 * rendering/RenderThemeMac.mm:
3299 (WebCore::RenderThemeMac::isControlStyled):
3300 (WebCore::RenderThemeMac::controlSizeForFont):
3301 (WebCore::RenderThemeMac::sizeForFont):
3302 (WebCore::RenderThemeMac::sizeForSystemFont):
3303 (WebCore::RenderThemeMac::setSizeFromFont):
3304 (WebCore::RenderThemeMac::setFontFromControlSize):
3305 (WebCore::RenderThemeMac::controlSizeForSystemFont):
3306 (WebCore::RenderThemeMac::adjustTextFieldStyle):
3307 (WebCore::RenderThemeMac::adjustTextAreaStyle):
3308 (WebCore::RenderThemeMac::paintMenuList):
3309 (WebCore::RenderThemeMac::meterSizeForBounds):
3310 (WebCore::RenderThemeMac::paintMeter):
3311 (WebCore::RenderThemeMac::levelIndicatorFor):
3312 (WebCore::RenderThemeMac::progressBarRectForBounds):
3313 (WebCore::RenderThemeMac::minimumProgressBarHeight):
3314 (WebCore::RenderThemeMac::animationRepeatIntervalForProgressBar):
3315 (WebCore::RenderThemeMac::animationDurationForProgressBar):
3316 (WebCore::RenderThemeMac::adjustProgressBarStyle):
3317 (WebCore::RenderThemeMac::paintProgressBar):
3318 (WebCore::RenderThemeMac::adjustMenuListStyle):
3319 (WebCore::RenderThemeMac::popupInternalPaddingLeft):
3320 (WebCore::RenderThemeMac::popupInternalPaddingRight):
3321 (WebCore::RenderThemeMac::popupInternalPaddingTop):
3322 (WebCore::RenderThemeMac::popupInternalPaddingBottom):
3323 (WebCore::RenderThemeMac::popupMenuSize):
3324 (WebCore::RenderThemeMac::minimumMenuListSize):
3325 (WebCore::RenderThemeMac::adjustSliderTrackStyle):
3326 (WebCore::RenderThemeMac::adjustSliderThumbStyle):
3327 (WebCore::RenderThemeMac::setSearchCellState):
3328 (WebCore::RenderThemeMac::setSearchFieldSize):
3329 (WebCore::RenderThemeMac::adjustSearchFieldStyle):
3330 (WebCore::RenderThemeMac::adjustSearchFieldCancelButtonStyle):
3331 (WebCore::RenderThemeMac::adjustSearchFieldDecorationPartStyle):
3332 (WebCore::RenderThemeMac::adjustSearchFieldResultsDecorationPartStyle):
3333 (WebCore::RenderThemeMac::adjustSearchFieldResultsButtonStyle):
3334 (WebCore::RenderThemeMac::adjustSliderThumbSize):
3335 * rendering/RenderThemeSafari.cpp:
3336 (WebCore::RenderThemeSafari::isControlStyled):
3337 (WebCore::RenderThemeSafari::adjustRepaintRect):
3338 (WebCore::RenderThemeSafari::baselinePosition):
3339 (WebCore::RenderThemeSafari::controlSizeForFont):
3340 (WebCore::RenderThemeSafari::sizeForFont):
3341 (WebCore::RenderThemeSafari::sizeForSystemFont):
3342 (WebCore::RenderThemeSafari::setSizeFromFont):
3343 (WebCore::RenderThemeSafari::setFontFromControlSize):
3344 (WebCore::RenderThemeSafari::controlSizeForSystemFont):
3345 (WebCore::RenderThemeSafari::paintCheckbox):
3346 (WebCore::RenderThemeSafari::setCheckboxSize):
3347 (WebCore::RenderThemeSafari::paintRadio):
3348 (WebCore::RenderThemeSafari::setRadioSize):
3349 (WebCore::RenderThemeSafari::setButtonPaddingFromControlSize):
3350 (WebCore::RenderThemeSafari::adjustButtonStyle):
3351 (WebCore::RenderThemeSafari::setButtonSize):
3352 (WebCore::RenderThemeSafari::adjustTextFieldStyle):
3353 (WebCore::RenderThemeSafari::adjustTextAreaStyle):
3354 (WebCore::RenderThemeSafari::paintMenuList):
3355 (WebCore::RenderThemeSafari::adjustMenuListStyle):
3356 (WebCore::RenderThemeSafari::popupInternalPaddingLeft):
3357 (WebCore::RenderThemeSafari::popupInternalPaddingRight):
3358 (WebCore::RenderThemeSafari::popupInternalPaddingTop):
3359 (WebCore::RenderThemeSafari::popupInternalPaddingBottom):
3360 (WebCore::RenderThemeSafari::adjustMenuListButtonStyle):
3361 (WebCore::RenderThemeSafari::minimumMenuListSize):
3362 (WebCore::RenderThemeSafari::adjustSliderThumbStyle):
3363 (WebCore::RenderThemeSafari::adjustSliderThumbSize):
3364 (WebCore::RenderThemeSafari::setSearchFieldSize):
3365 (WebCore::RenderThemeSafari::adjustSearchFieldStyle):
3366 (WebCore::RenderThemeSafari::adjustSearchFieldCancelButtonStyle):
3367 (WebCore::RenderThemeSafari::adjustSearchFieldDecorationPartStyle):
3368 (WebCore::RenderThemeSafari::adjustSearchFieldResultsDecorationPartStyle):
3369 (WebCore::RenderThemeSafari::adjustSearchFieldResultsButtonStyle):
3370 (WebCore::RenderThemeSafari::adjustMeterStyle):
3371 (WebCore::RenderThemeSafari::meterSizeForBounds):
3372 (WebCore::RenderThemeSafari::paintMeter):
3373 * rendering/RenderThemeSafari.h:
3374 * rendering/RenderThemeWin.cpp:
3375 (WebCore::RenderThemeWin::supportsHover):
3376 (WebCore::RenderThemeWin::supportsFocusRing):
3377 (WebCore::RenderThemeWin::adjustInnerSpinButtonStyle):
3378 (WebCore::RenderThemeWin::setCheckboxSize):
3379 (WebCore::RenderThemeWin::paintTextField):
3380 (WebCore::RenderThemeWin::paintMenuList):
3381 (WebCore::RenderThemeWin::adjustMenuListStyle):
3382 (WebCore::RenderThemeWin::adjustMenuListButtonStyle):
3383 (WebCore::RenderThemeWin::adjustSliderThumbSize):
3384 (WebCore::RenderThemeWin::adjustSearchFieldStyle):
3385 (WebCore::RenderThemeWin::adjustSearchFieldCancelButtonStyle):
3386 (WebCore::RenderThemeWin::adjustSearchFieldDecorationPartStyle):
3387 (WebCore::RenderThemeWin::adjustSearchFieldResultsDecorationPartStyle):
3388 (WebCore::RenderThemeWin::adjustSearchFieldResultsButtonStyle):
3389 (WebCore::RenderThemeWin::adjustMeterStyle):
3390 (WebCore::RenderThemeWin::meterSizeForBounds):
3391 (WebCore::RenderThemeWin::paintMeter):
3392 * rendering/RenderThemeWin.h:
3393 (WebCore::RenderThemeWin::paintCheckbox):
3394 (WebCore::RenderThemeWin::paintRadio):
3395 (WebCore::RenderThemeWin::setRadioSize):
3396 (WebCore::RenderThemeWin::paintTextArea):
3397 (WebCore::RenderThemeWin::popupOptionSupportsTextIndent):
3398 (WebCore::RenderThemeWin::paintSearchFieldDecorationPart):
3399 (WebCore::RenderThemeWin::adjustButtonStyle):
3400 (WebCore::RenderThemeWin::adjustTextFieldStyle):
3401 (WebCore::RenderThemeWin::adjustTextAreaStyle):
3402 (WebCore::RenderThemeWin::shouldShowPlaceholderWhenFocused):
3404 2014-06-25 Benjamin Poulain <benjamin@webkit.org>
3406 [Mac] Update the time base of event's timestamp when the system time changes
3407 https://bugs.webkit.org/show_bug.cgi?id=134293
3409 Reviewed by Anders Carlsson.
3411 * platform/mac/PlatformEventFactoryMac.mm:
3412 (WebCore::cachedStartupTimeIntervalSince1970): Since events timestamps are absolute time, they also
3413 need to be updated if the system clock changes.
3415 2014-06-25 Dirk Schulze <krit@webkit.org>
3417 Add all blend modes to feBlend
3419 feBlend should support all blend modes from CSS and Canvas
3420 https://bugs.webkit.org/show_bug.cgi?id=134296
3422 Reviewed by Dean Jackson.
3424 Add all blend modes to <feBlend> (the SVG filter primitive) that are also
3425 supported by HTML Canvas and CSS.
3427 In addition, add "normal" blend mode to HTML Canvas as requested by the
3428 CSS Compositing and Blending specification. (Referenced from HTML Canvas.)
3429 With this change, SVG, CSS and Canvas truly share the same blend modes and
3430 even the same keywords. This is much easier to for web authors.
3432 http://www.w3.org/TR/2014/CR-compositing-1-20140220/#ltblendmodegt
3434 Test: svg/filters/feBlend-all-blendmodes.svg