Fast path for jsStringWithCache() when asked for the same string repeatedly.
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2014-07-04  Andreas Kling  <akling@apple.com>
2
3         Fast path for jsStringWithCache() when asked for the same string repeatedly.
4         <https://webkit.org/b/134635>
5
6         Reviewed by Darin Adler.
7
8         * WebCore.exp.in:
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:
17
18 2014-07-04  Zalan Bujtas  <zalan@apple.com>
19
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>
23
24         Reviewed by Darin Adler.
25
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.
28
29         Test: fast/borders/border-radius-on-subpixel-position-non-hidpi.html
30
31         * rendering/RenderBox.cpp:
32         (WebCore::RenderBox::paintBoxDecorations):
33
34 2014-05-10  Andreas Kling  <akling@apple.com>
35
36         QualifiedName should use RefPtr<QualifiedNameImpl> internally.
37         <https://webkit.org/b/132796>
38
39         We were not inlining ~QualifiedName() and it was showing up in some
40         profiles (over 1% on dom-attr.html.)
41
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.
45
46         Reviewed by Darin Adler.
47
48         * WebCore.exp.in:
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.
62
63 2014-07-04  Dean Jackson  <dino@apple.com>
64
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>
68
69         Reviewed by Sam Weinig.
70
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).
80
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.
84
85 2014-07-04  Hunseop Jeong  <hs85.jeong@samsung.com>
86
87         [CoordinatedGraphics] Use the C++11 syntax to clean-up for loops 
88         https://bugs.webkit.org/show_bug.cgi?id=134594
89
90         Reviewed by Darin Adler.
91
92         Convert a couple of loops to range-based for 
93
94         No change in functionality, no new tests.
95
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):
114
115 2014-07-04  Andreas Kling  <akling@apple.com>
116
117         CTTE: ScriptElement always has a HTTPScriptElement or SVGScriptElement.
118         <https://webkit.org/b/134637>
119
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.
123
124         Reviewed by Antti Koivisto.
125
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):
144
145 2014-07-04  Julien Quint  <pom@graougraou.com>
146
147         input type=range element should only fire change events after committing a  value
148         https://bugs.webkit.org/show_bug.cgi?id=134545
149
150         Reviewed by Dean Jackson.
151
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.
159
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
172         requested.
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.
179
180 2014-07-04  Andreas Kling  <akling@apple.com>
181
182         CTTE: ApplicationCacheHost always has a DocumentLoader.
183         <https://webkit.org/b/b/128435>
184
185         Have ApplicationCacheHost store the backpointer to its owning
186         DocumentLoader as a reference.
187
188         Reviewed by Sam Weinig.
189
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.
215
216 2014-07-04  Antti Koivisto  <antti@apple.com>
217
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>
221
222         Reviewed by Zalan Bujtas.
223
224         Test: printing/simple-lines-break.html
225
226         * rendering/SimpleLineLayout.cpp:
227         (WebCore::SimpleLineLayout::canUseFor):
228         
229             Disable simple lines if global pagination is enabled.
230             Printing does not currently use flow threads which we already test for.
231
232 2014-07-04  Zan Dobersek  <zdobersek@igalia.com>
233
234         Unreviewed. Fixing the build after r170795.
235
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.
239
240         * platform/network/FormData.h:
241
242 2014-07-03  Brady Eidson  <beidson@apple.com>
243
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
246
247         Reviewed by Tim Horton.
248
249         * English.lproj/Localizable.strings:
250
251         * dom/Range.cpp:
252         (WebCore::rangesOverlap): Fix reversed arguments that caused some types of overlaps to not be detected.
253
254 2014-07-03  Daniel Bates  <dabates@apple.com>
255
256         Add WTF::move()
257         https://bugs.webkit.org/show_bug.cgi?id=134500
258
259         Rubber-stamped by Anders Carlsson.
260
261         Substitute WTF::move() for std::move().
262
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:
271         [...]
272
273 2014-07-03  Benjamin Poulain  <bpoulain@apple.com>
274
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
277
278         Reviewed by Tim Horton.
279
280         * WebCore.exp.in:
281         * platform/ScrollView.h:
282         (WebCore::ScrollView::unobscuredContentSize):
283         * platform/ios/ScrollViewIOS.mm:
284         (WebCore::ScrollView::unobscuredContentRect):
285         (WebCore::ScrollView::setUnobscuredContentSize):
286
287 2014-07-02  Brent Fulgham  <bfulgham@apple.com>
288
289         [Mac] WebKit1 WebView iframe not responding to scroll gestures
290         https://bugs.webkit.org/show_bug.cgi?id=134569
291         <rdar://problem/17309008>
292
293         Reviewed by Simon Fraser.
294
295         New test: platform/mac/fast/scrolling/scroll-iframe-fragment.html
296
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.
303
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.
309
310         Finally, additional logic was needed to determine whether the PlatformWidget is scrolled to the
311         edge in the dominant scroll direction.
312
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.
330
331 2014-07-03  Pratik Solanki  <psolanki@apple.com>
332
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>
336
337         Reviewed by Andreas Kling.
338
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.
344
345         No new tests though we need one. I will add it later.
346
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):
355
356 2014-07-02  Anders Carlsson  <andersca@apple.com>
357
358         Stop using EncoderAdapter/DecoderAdapter for FormData
359         https://bugs.webkit.org/show_bug.cgi?id=134571
360
361         Reviewed by Andreas Kling.
362
363         * WebCore.exp.in:
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):
374
375 2014-07-03  Brady Eidson  <beidson@apple.com>
376
377         Selection rects sent to ServicesOverlayController are wrong.
378         <rdar://problem/16727796> and https://bugs.webkit.org/show_bug.cgi?id=134568
379
380         Reviewed by Darin Adler (and Tim Horton and Ryosuke Niwa).
381
382         * WebCore.exp.in:
383
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:
390
391         * page/EditorClient.h:
392         (WebCore::EditorClient::selectionRectsDidChange): Updated to take LayoutRects and GapRects separately.
393
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):
399
400         * rendering/RenderText.cpp:
401         (WebCore::RenderText::collectSelectionRectsForLineBoxes): Added
402         (WebCore::RenderText::selectionRectForRepaint):
403         * rendering/RenderText.h:
404
405         * rendering/RenderTextLineBoxes.cpp:
406         (WebCore::RenderTextLineBoxes::collectSelectionRectsForRange): Added
407         * rendering/RenderTextLineBoxes.h:
408
409         * rendering/RenderView.cpp:
410         (WebCore::RenderView::setSubtreeSelection): Add the list of rects to the gatherer instead of just 
411           the bounding rect.
412
413 2014-07-03  Brady Eidson  <beidson@apple.com>
414
415         Possible crash in IconDatabase in WebCore::IconDatabase::dispatchDidRemoveAllIconsOnMainThread
416         <rdar://problem/17437687> and https://bugs.webkit.org/show_bug.cgi?id=134517
417
418         Reviewed by Eric Carlson.
419
420         Since WebCore::IconDatabase is not RefCounted there’s no obvious way to keep it alive until it is
421         truly no longer needed.
422
423         This isn’t generally a problem because they are usually a singleton that lasts the lifetime of the process.
424
425         In the WebKit2 case, WebCore::IconDatabases can come and go as their owning WebIconDatabases come and go.
426
427         So we can rely on WebIconDatabase to handle the lifetime appropriately. 
428
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:
444
445         * loader/icon/IconDatabaseClient.h:
446         (WebCore::IconDatabaseClient::didClose): Added. For the IconDatabase to tell its client it is 100% closed.
447
448 2014-07-03  Chris Fleizach  <cfleizach@apple.com>
449
450         AX: VoiceOver does not read aria-expanded attribute on controls in Safari
451         https://bugs.webkit.org/show_bug.cgi?id=134527
452
453         Reviewed by Mario Sanchez Prada.
454
455         Expose whether the ARIA expanded property is present or not.
456
457         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
458         (-[WebAccessibilityObjectWrapper accessibilitySupportsARIAExpanded]):
459
460 2014-07-02  Jon Honeycutt  <jhoneycutt@apple.com>
461
462         Removing an element with CSS -webkit-overflow-scrolling: touch breaks
463         subsequent touch events
464
465         <https://bugs.webkit.org/show_bug.cgi?id=134584>
466         <rdar://problem/17202021>
467
468         This issue is caused by the order of teardown for RenderLayers.
469
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.
476
477         Reviewed by Simon Fraser.
478
479         * rendering/RenderLayerBacking.cpp:
480         (WebCore::RenderLayerBacking::updateScrollingLayers):
481         When calling willRemoveScrollingLayerWithBacking(), pass both the layer
482         and the RenderLayerBacking.
483
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.
489
490         * rendering/RenderLayerCompositor.h:
491         Renamed willRemoveScrollingLayer() to
492         willRemoveScrollingLayerWithBacking() and added a parameter.
493
494 2014-07-01  Mark Rowe  <mrowe@apple.com>
495
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>
498
499         Reviewed by Simon Fraser.
500
501         * page/cocoa/UserAgent.h:
502         * page/cocoa/UserAgent.mm:
503         (WebCore::userVisibleWebKitBundleVersionFromFullVersion): Updated to take an NSString now that it's internal
504         to the file.
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.
511
512 2014-07-01  Mark Rowe  <mrowe@apple.com>
513
514         <https://webkit.org/b/134522> Remove duplication in code that prepares the user agent string on Mac and iOS
515
516         Reviewed by Simon Fraser.
517
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.
526
527 2014-07-02  Mark Rowe  <mrowe@apple.com>
528
529         <https://webkit.org/b/134521> iOS should use shared code to determine the system marketing version
530
531         Reviewed by Simon Fraser.
532
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
537         Mac and iOS.
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.
545
546 2014-07-02  Anders Carlsson  <andersca@apple.com>
547
548         Remove keyed coding from FormData
549         https://bugs.webkit.org/show_bug.cgi?id=134565
550
551         Reviewed by Tim Horton.
552
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:
559
560 2014-07-02  Anders Carlsson  <andersca@apple.com>
561
562         Get rid of the HistoryItem encoding/decoding in WebCore
563         https://bugs.webkit.org/show_bug.cgi?id=134564
564
565         Reviewed by Beth Dakin.
566
567         * WebCore.exp.in:
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:
578
579 2014-07-02  Alex Christensen  <achristensen@webkit.org>
580
581         [WebGL] Fix crash when glsl expressions are too complex.
582         https://bugs.webkit.org/show_bug.cgi?id=134554
583         <rdar://problem/17540462>
584
585         Reviewed by Dean Jackson.
586         
587         This fixes the Khronos test conformance/glsl/bugs/long-expressions-should-not-crash.html.
588
589         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
590         (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
591         Add SH_LIMIT_EXPRESSION_COMPLEXITY to the ANGLE compile options.
592
593 2014-07-02  Benjamin Poulain  <benjamin@webkit.org>
594
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
597
598         Reviewed by Alex Christensen.
599
600         Little cleanup:
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!
605
606         * cssjit/FunctionCall.h:
607         (WebCore::FunctionCall::saveAllocatedCallerSavedRegisters):
608         Remove the appendVector here. It was unnecessarily cautious, StackAllocator already protect us
609         from mistakes.
610
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.
618
619         * cssjit/StackAllocator.h:
620         (WebCore::StackAllocator::push):
621         (WebCore::StackAllocator::pop):
622
623 2014-07-02  Dan Bernstein  <mitz@apple.com>
624
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
627
628         Reviewed by Anders Carlsson.
629
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):
637
638 2014-07-02  Carlos Garcia Campos  <cgarcia@igalia.com>
639
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
642
643         Reviewed by Philippe Normand.
644
645         Include AtomicStringHash.h when ENABLE(VIDEO_TRACK) && USE(GSTREAMER_MPEGTS)
646         since it's used by HashMap<AtomicString, RefPtr<InbandMetadataTextTrackPrivateGStreamer>>
647
648         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
649
650 2014-07-02  Carlos Garcia Campos  <cgarcia@igalia.com>
651
652         [GTK] Unstable headers should include webkitdomdefines-unstable.h
653         https://bugs.webkit.org/show_bug.cgi?id=134540
654
655         Reviewed by Martin Robinson.
656
657         Instead of the class header that can only be included from webkitdom.h.
658
659         * bindings/scripts/CodeGeneratorGObject.pm:
660         (WriteData):
661
662 2014-07-02  Mario Sanchez Prada  <mario.prada@samsung.com>
663
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
666
667         Reviewed by Chris Fleizach.
668
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().
674
675         * accessibility/AccessibilityMenuList.cpp:
676         (WebCore::AccessibilityMenuList::didUpdateActiveOption): Added check.
677
678 2014-07-02  Carlos Garcia Campos  <cgarcia@igalia.com>
679
680         [GTK] Do not add forward declaration of class struct for interfaces
681         https://bugs.webkit.org/show_bug.cgi?id=134297
682
683         Reviewed by Martin Robinson.
684
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.
692
693 2014-07-01  Carlos Garcia Campos  <cgarcia@igalia.com>
694
695         [GTK] XPathNSResolver should be exposed as an interface instead of as a class
696         https://bugs.webkit.org/show_bug.cgi?id=134028
697
698         Reviewed by Gustavo Noronha Silva.
699
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.
704
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.
726         (WebKit::kit):
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.
732
733 2014-07-01  Frédéric Wang  <fred.wang@free.fr>
734
735         The OpenType MATH table is not read on Mac
736         https://bugs.webkit.org/show_bug.cgi?id=133569
737
738         Reviewed by Chris Fleizach.
739
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.
743
744         No new tests. platform/graphics/opentype already contains tests for the OpenType MATH support.
745
746         * platform/graphics/opentype/OpenTypeMathData.cpp:
747
748 2014-07-01  Alex Christensen  <achristensen@webkit.org>
749
750         [Win64] Unreviewed build fix.
751
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.
756
757 2014-07-01  Alex Christensen  <achristensen@webkit.org>
758
759         Reduce dynamic memory allocation in css jit.
760         https://bugs.webkit.org/show_bug.cgi?id=134416
761
762         Reviewed by Benjamin Poulain.
763
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.
778
779 2014-07-01  Eric Carlson  <eric.carlson@apple.com>
780
781         WebVTT percentage value can be a float
782         https://bugs.webkit.org/show_bug.cgi?id=134511
783
784         Reviewed by Brent Fulgham.
785
786         No new tests, existing tests modified.
787
788         * html/track/TextTrackCueGeneric.cpp:
789         (WebCore::TextTrackCueGeneric::setLine): int -> double.
790         (WebCore::TextTrackCueGeneric::setPosition): Ditto.
791         * html/track/TextTrackCueGeneric.h:
792
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:
799
800         * html/track/VTTScanner.cpp:
801         (WebCore::VTTScanner::scanFloat): Support negative values.
802         * html/track/VTTScanner.h:
803
804         * html/track/WebVTTParser.cpp: Include parseFloatPercentageValue in non-WEBVTT_REGIONS builds.
805         * html/track/WebVTTParser.h:
806
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:
815
816 2014-07-01  Simon Fraser  <simon.fraser@apple.com>
817
818         Improve behavior of position:sticky on zoomed pages
819         https://bugs.webkit.org/show_bug.cgi?id=134535
820         <rdar://problem/12898829>
821
822         Reviewed by Dean Jackson.
823
824         Despite r138036, position:sticky still had incorrect behavior in zoomed pages.
825         
826         Fix by removing the scaling of the rect from viewportConstrainedVisibleContentRect(),
827         since all the other math happens in unscaled coordinates.
828
829         * rendering/RenderBoxModelObject.cpp:
830         (WebCore::RenderBoxModelObject::constrainingRectForStickyPosition):
831
832 2014-07-01  Alex Christensen  <achristensen@webkit.org>
833
834         [WebGL] Fix PVRTC extension.
835         https://bugs.webkit.org/show_bug.cgi?id=134525
836
837         Reviewed by Dean Jackson.
838
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.
843
844 2014-07-01  Chris Fleizach  <cfleizach@apple.com>
845
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
848
849         Reviewed by Enrica Casucci.
850
851         Support the toggle button type in iOS.
852
853         Test: platform/ios-sim/accessibility/toggle-button.html
854
855         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
856         (-[WebAccessibilityObjectWrapper accessibilityCanFuzzyHitTest]):
857         (-[WebAccessibilityObjectWrapper accessibilityTraits]):
858         (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
859
860 2014-07-01  Dean Jackson  <dino@apple.com>
861
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>
866
867         Reviewed by Tim Horton.
868
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.
873
874         Renamed m_scale to m_subsamplingScale on FrameData.
875
876         Tests: fast/canvas/image-potential-subsample.html
877                fast/canvas/webgl/tex-image-and-sub-image-2d-with-potentially-subsampled-image.html
878
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
889         in the Bitmap.
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
895         decoded.
896
897 2014-07-01  Joseph Pecoraro  <pecoraro@apple.com>
898
899         Web Inspector: Selected DOM element highlights invisible near bottom of the viewport (topContentInset?)
900         https://bugs.webkit.org/show_bug.cgi?id=133818
901
902         Reviewed by Beth Dakin.
903
904         * inspector/InspectorOverlay.cpp:
905         (WebCore::InspectorOverlay::update):
906         Take the topContentInset into account when sizing the InspectorOverlay's FrameView.
907
908 2014-07-01  Chris Fleizach  <cfleizach@apple.com>
909
910         AX: HTML indeterminate IDL attribute not mapped to checkbox value=2
911         https://bugs.webkit.org/show_bug.cgi?id=134492
912
913         Reviewed by Andreas Kling.
914
915         Support the indeterminate attribute in AX code.
916
917         Test: Update existing test: accessibility/aria-checked-mixed-value
918
919         * accessibility/AccessibilityObject.cpp:
920         (WebCore::AccessibilityObject::checkboxOrRadioValue):
921
922 2014-07-01  Myles C. Maxfield  <mmaxfield@apple.com>
923
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
926
927         Reviewed by Enrica Casucci.
928
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).
931
932         No new tests. I don't think this is testable because it requires setting some state in System Preferences.
933
934         * editing/DeleteButtonController.cpp:
935         (WebCore::enclosingDeletableElement):
936
937 2014-07-01  Alex Christensen  <achristensen@webkit.org>
938
939         [iOS] Unreviewed build fix after r170640.
940
941         * page/EditorClient.h:
942         (WebCore::EditorClient::selectedTelephoneNumberRangesChanged):
943         Add ifdefs to make everything compile and link.
944
945 2014-07-01  Daniel Bates  <dabates@apple.com>
946
947         Remove unnecessary calls to std::move()
948         https://bugs.webkit.org/show_bug.cgi?id=134493
949
950         Reviewed by Anders Carlsson.
951
952         * Modules/encryptedmedia/CDM.cpp:
953         (WebCore::CDM::CDM):
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):
961
962 2014-07-01  Zalan Bujtas  <zalan@apple.com>
963
964         Subpixel rendering: Pixel crack in breadcrumbs at devforums.apple.com.
965         https://bugs.webkit.org/show_bug.cgi?id=134491
966
967         Reviewed by Simon Fraser.
968
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.
972
973         Test: fast/backgrounds/background-image-size-double-rounding.html
974
975         * rendering/RenderBoxModelObject.cpp:
976         (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
977
978 2014-07-01  Pratik Solanki  <psolanki@apple.com>
979
980         Create NSURLRequest lazily when USE(CFNETWORK) is enabled
981         https://bugs.webkit.org/show_bug.cgi?id=134441
982
983         Reviewed by Andreas Kling.
984
985         No new tests. Should be covered by existing tests.
986
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):
996
997 2014-07-01  Brady Eidson  <beidson@apple.com>
998
999         Combine the Telephone and Selection overlay controllers, updating UI behavior.
1000         https://bugs.webkit.org/show_bug.cgi?id=134461
1001
1002         Reviewed by Tim Horton.
1003
1004         * WebCore.exp.in:
1005
1006         * dom/Range.cpp:
1007         (WebCore::Range::contains): Returns true if the Range completely contains the passed-in Range.
1008         * dom/Range.h:
1009
1010 2014-07-01  Antti Koivisto  <antti@apple.com>
1011
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
1014
1015         Reviewed by Zalan Bujtas.
1016
1017         Test: fullscreen/full-screen-plugin.html
1018
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.
1022         
1023         With this patch we avoid reconstruction in normal cases and only force it if the render tree is complicated.
1024
1025         * dom/Document.cpp:
1026         (WebCore::unwrapFullScreenRenderer):
1027         
1028             Force reconstruction conditionally.
1029
1030         (WebCore::Document::webkitWillEnterFullScreenForElement):
1031         (WebCore::Document::webkitDidExitFullScreenForElement):
1032         * rendering/RenderFullScreen.cpp:
1033         (WebCore::RenderFullScreen::wrapRenderer):
1034         (WebCore::RenderFullScreen::unwrapRenderer):
1035         
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.
1039
1040         * rendering/RenderFullScreen.h:
1041
1042 2014-07-01  Zan Dobersek  <zdobersek@igalia.com>
1043
1044         Remove remaining Vector<> copies in WebCore accessibility code
1045         https://bugs.webkit.org/show_bug.cgi?id=133263
1046
1047         Reviewed by Darin Adler.
1048
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).
1067
1068 2014-06-30  Commit Queue  <commit-queue@webkit.org>
1069
1070         Unreviewed, rolling out r170605.
1071         https://bugs.webkit.org/show_bug.cgi?id=134484
1072
1073         The changes cause crashes on ARM64 (Requested by benjaminp on
1074         #webkit).
1075
1076         Reverted changeset:
1077
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
1081
1082 2014-06-30  Anders Carlsson  <andersca@apple.com>
1083
1084         Change the AddBackForwardItem message to take a page state object
1085         https://bugs.webkit.org/show_bug.cgi?id=134475
1086
1087         Reviewed by Andreas Kling.
1088
1089         * WebCore.exp.in:
1090
1091 2014-06-30  Benjamin Poulain  <benjamin@webkit.org>
1092
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>
1096
1097         Reviewed by Enrica Casucci.
1098
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.
1101
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.
1104
1105         * css/html.css:
1106         (applet, embed, object, img):
1107         (:-webkit-any-link img):
1108
1109 2014-06-30  Myles C. Maxfield  <mmaxfield@apple.com>
1110
1111         All Indic text is rendered as boxes on iOS
1112         https://bugs.webkit.org/show_bug.cgi?id=134464
1113
1114         Reviewed by Simon Fraser.
1115
1116         I made a typo in r170207.
1117
1118         Test: fast/text/indic.html
1119
1120         * platform/graphics/ios/FontCacheIOS.mm:
1121         (WebCore::languageSpecificFallbackFont):
1122
1123 2014-06-30  Myles C. Maxfield  <mmaxfield@apple.com>
1124
1125         [iOS] languageSpecificFallbackFont() is not consistent
1126         https://bugs.webkit.org/show_bug.cgi?id=134473
1127
1128         Reviewed by Darin Adler.
1129
1130         It can use "<" throughout the function as well as keeping the fallthrough behavior consistent.
1131
1132         No tests because there is no behavior change.
1133
1134         * platform/graphics/ios/FontCacheIOS.mm:
1135         (WebCore::languageSpecificFallbackFont):
1136
1137 2014-06-30  Brent Fulgham  <bfulgham@apple.com>
1138
1139         [Win] Unreviewed gardening.
1140
1141         * WebCore.vcxproj/WebCore.vcxproj: Do not compile JSFileException
1142         and JSFileReaderSync multiple times.
1143
1144 2014-06-30  Daniel Bates  <dabates@apple.com>
1145
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
1148
1149         Reviewed by Anders Carlsson.
1150
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().
1156
1157         * page/scrolling/ScrollingThread.cpp:
1158         (WebCore::ScrollingThread::dispatchBarrier):
1159
1160 2014-06-30  Anders Carlsson  <andersca@apple.com>
1161
1162         Adopt the legacy session decoding inside WebPage::restoreSession for now
1163         https://bugs.webkit.org/show_bug.cgi?id=134465
1164
1165         Reviewed by Sam Weinig.
1166
1167         * WebCore.exp.in:
1168
1169 2014-06-30  Commit Queue  <commit-queue@webkit.org>
1170
1171         Unreviewed, rolling out r170578.
1172         https://bugs.webkit.org/show_bug.cgi?id=134462
1173
1174         causes assertions loading nytimes.com on iOS (Requested by
1175         smfr on #webkit).
1176
1177         Reverted changeset:
1178
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
1182
1183 2014-06-30  Alex Christensen  <achristensen@webkit.org>
1184
1185         Reduce dynamic memory allocation in css jit.
1186         https://bugs.webkit.org/show_bug.cgi?id=134416
1187
1188         Reviewed by Benjamin Poulain.
1189
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.
1206
1207 2014-06-30  Alex Christensen  <achristensen@webkit.org>
1208
1209         Use non-thumb registers in armv7 css jit.
1210         https://bugs.webkit.org/show_bug.cgi?id=134450
1211
1212         Reviewed by Geoff Garen.
1213
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.
1222
1223 2014-06-30  Myles C. Maxfield  <mmaxfield@apple.com>
1224
1225         Tiles on bottom of screen are not always allocated when necessary
1226         https://bugs.webkit.org/show_bug.cgi?id=134272
1227
1228         Reviewed by Simon Fraser.
1229
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.
1239
1240         Test: platform/mac-wk2/tiled-drawing/visible-rect-content-inset.html
1241
1242         * platform/graphics/ca/TileCoverageMap.cpp:
1243         (WebCore::TileCoverageMap::update):
1244         * rendering/RenderLayerCompositor.cpp:
1245         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
1246
1247 2014-06-30  Brent Fulgham  <bfulgham@apple.com>
1248
1249         [Win] Unreviewed project gardening.
1250
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.
1254
1255 2014-06-30  Zalan Bujtas  <zalan@apple.com>
1256
1257         Remove redundant repaintCompositedLayers() parameter and its dependencies.
1258         https://bugs.webkit.org/show_bug.cgi?id=134431
1259
1260         Reviewed by Darin Adler.
1261
1262         No change in functionality.
1263
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:
1272
1273 2014-06-30  Alex Christensen  <achristensen@webkit.org>
1274
1275         Remove webkit prefix from pointer lock.
1276         https://bugs.webkit.org/show_bug.cgi?id=134312
1277
1278         Reviewed by Dean Jackson.
1279
1280         * dom/Document.cpp:
1281         (WebCore::Document::exitPointerLock):
1282         (WebCore::Document::pointerLockElement):
1283         (WebCore::Document::webkitExitPointerLock): Deleted.
1284         (WebCore::Document::webkitPointerLockElement): Deleted.
1285         * dom/Document.h:
1286         * dom/Document.idl:
1287         * dom/Element.cpp:
1288         (WebCore::Element::requestPointerLock):
1289         (WebCore::Element::webkitRequestPointerLock): Deleted.
1290         * dom/Element.h:
1291         * dom/Element.idl:
1292         * dom/EventNames.h:
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):
1306
1307 2014-06-30  Myles C. Maxfield  <mmaxfield@apple.com>
1308
1309         U16_IS_SURROGATE should not be called with a UChar32
1310         https://bugs.webkit.org/show_bug.cgi?id=134440
1311
1312         Reviewed by Darin Adler.
1313
1314         No new tests because there is no behavior change.
1315
1316         * platform/graphics/mac/ComplexTextController.cpp:
1317         (WebCore::advanceByCombiningCharacterSequence):
1318
1319 2014-06-30  Ryuan Choi  <ryuan.choi@samsung.com>
1320
1321         [EFL] Remove m_evasObject from Widget
1322         https://bugs.webkit.org/show_bug.cgi?id=134442
1323
1324         Reviewed by Gyuyoung Kim.
1325
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.
1328
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.
1357
1358 2014-06-30  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>
1359
1360         Fix deprecated warning with bison 3
1361         https://bugs.webkit.org/show_bug.cgi?id=133791
1362
1363         Reviewed by Csaba Osztrogonác.
1364
1365         No new tests because no functional changes.
1366
1367         * css/CSSGrammar.y.in:
1368         * xml/XPathGrammar.y:
1369
1370 2014-06-30  Jaehun Lim  <ljaehun.lim@samsung.com>
1371
1372         Remove HarfBuzzShaper::setDrawRange()
1373         https://bugs.webkit.org/show_bug.cgi?id=134243
1374
1375         Reviewed by Gyuyoung Kim.
1376
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.
1380
1381         No new tests, no behavior changes.
1382
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:
1389
1390 2014-06-29  Pratik Solanki  <psolanki@apple.com>
1391
1392         Create NSURLRequest lazily when USE(CFNETWORK) is enabled
1393         https://bugs.webkit.org/show_bug.cgi?id=134441
1394
1395         Reviewed by Sam Weinig.
1396
1397         No new tests. Should be covered by exsting tests.
1398
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):
1407
1408 2014-06-29  Ryuan Choi  <ryuan.choi@samsung.com>
1409
1410         [EFL] Remove netscape plugin implementation from WebCore
1411         https://bugs.webkit.org/show_bug.cgi?id=134438
1412
1413         Reviewed by Gyuyoung Kim.
1414
1415         Because WebKit1/Efl was dropped, PluginPackageEfl.cpp and PluginViewEfl.cpp are not necessary.
1416
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.
1423
1424 2014-06-29  Yoav Weiss  <yoav@yoav.ws>
1425
1426         Add support for HTMLImageElement's sizes attribute
1427         https://bugs.webkit.org/show_bug.cgi?id=133620
1428
1429         Reviewed by Dean Jackson.
1430
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
1437
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
1442         the CSSParser.
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
1446         HTMLSrcsetParser.
1447         HTMLSrcsetParser uses this value in order to pick the right resource.
1448
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.
1459         * css/CSSParser.h:
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:
1493
1494 2014-06-29  Andreas Kling  <akling@apple.com>
1495
1496         No need to lazily initialize ResourceResponse internals when accessing timing data.
1497         <https://webkit.org/b/134437>
1498         <rdar://problem/17499876>
1499
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.
1504
1505         Since timing data is not actually lazily instantiated, we can just not do that.
1506
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.
1510
1511         Reviewed by Gavin Barraclough.
1512
1513         * WebCore.exp.in:
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):
1520
1521 2014-06-29  Pratik Solanki  <pratik.solanki@gmail.com>
1522
1523         Refactor ResourceRequest into Cocoa and iOS specific files
1524         https://bugs.webkit.org/show_bug.cgi?id=134430
1525
1526         Reviewed by Andreas Kling.
1527
1528         No new tests because no functional changes.
1529
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.
1561
1562 2014-06-29  Youenn Fablet  <youenn.fablet@crf.canon.fr>
1563
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
1566
1567         Reviewed by Alexey Proskuryakov.
1568
1569         Test: fast/encoding/backslash-encoding-jp.html
1570
1571         * platform/text/TextCodecICU.cpp:
1572         (WebCore::TextCodecICU::encode): fixed the copy of characters other than backslash.
1573
1574 2014-06-28  Dean Jackson  <dino@apple.com>
1575
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>
1579
1580         Reviewed by Eric Carlson.
1581
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.
1585
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.
1594
1595 2014-06-27  Simon Fraser  <simon.fraser@apple.com>
1596
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>
1600
1601         Reviewed by Tim Horton.
1602
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.
1606         
1607         Give ScrollingTreeScrollingNode an implementation of updateLayersAfterAncestorChange()
1608         which is required to update fixed/sticky child nodes.
1609
1610         * WebCore.exp.in:
1611         * page/scrolling/ScrollingTreeScrollingNode.cpp:
1612         (WebCore::ScrollingTreeScrollingNode::updateLayersAfterAncestorChange):
1613         * page/scrolling/ScrollingTreeScrollingNode.h:
1614
1615 2014-06-28  Juan A. Suarez Romero  <jasuarez@igalia.com>  and  Carlos Garcia Campos  <cgarcia@igalia.com>
1616
1617         [GTK] Use public getter/setter in GObject DOM bindings properties implementation.
1618         https://bugs.webkit.org/show_bug.cgi?id=134390.
1619
1620         Reviewed by Carlos Garcia Campos.
1621
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.
1625         
1626         This commit changes this behaviour so the code is not duplicated,
1627         making it easier to maintain.
1628
1629         No new tests needed.
1630
1631         * bindings/scripts/CodeGeneratorGObject.pm:
1632         (GenerateProperty):
1633         (GenerateProperties):
1634         (WriteData):
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):
1659
1660 2014-06-28  Radu Stavila  <stavila@adobe.com>
1661
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
1664
1665         Reviewed by Darin Adler.
1666
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
1669         proper clipping.
1670
1671         Test: fast/multicol/newmulticol/multicol-clip-rounded-corners.html
1672
1673         * rendering/RenderLayer.cpp:
1674         (WebCore::RenderLayer::collectFragments):
1675
1676 2014-06-27  Zalan Bujtas  <zalan@apple.com>
1677
1678         Subpixel rendering: Background clipping with subpixel behaves differently when composited.
1679         https://bugs.webkit.org/show_bug.cgi?id=134422
1680
1681         Reviewed by Simon Fraser.
1682
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.
1686
1687         Test: compositing/hidpi-compositing-layer-with-subpixel-offset-accumulation-clipping.html
1688
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:
1702
1703 2014-06-27  Brent Fulgham  <bfulgham@apple.com>
1704
1705         [Win] Implement parts of the AVFOUNDATION_LOADER_DELEGATE logic for Windows
1706         https://bugs.webkit.org/show_bug.cgi?id=134418
1707
1708         Reviewed by Eric Carlson.
1709
1710         Land an initial implementation of AVFOUNDATION_LOADER_DELEGATE for
1711         Windows.
1712
1713         * DerivedSources.cpp: Add new IDL files
1714         * DerivedSources.make: Add check for AVFOUNDATION_LOADER_DELEGATE.
1715         * Modules/encryptedmedia/CDMPrivateMediaPlayer.cpp: Added (ported from
1716         Objective C.)
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.
1738
1739 2014-06-27  Benjamin Poulain  <benjamin@webkit.org>
1740
1741         Remove BufferForAppendingHyphen
1742         https://bugs.webkit.org/show_bug.cgi?id=134376
1743
1744         Reviewed by Darin Adler.
1745
1746         It is legacy, from a time when that code was using a Vector.
1747
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.
1751
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
1755         worse.
1756
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.
1760
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:
1771
1772 2014-06-27  Jeremy Jones  <jeremyj@apple.com>
1773
1774         Lazily link frameworks in WebVideoFullscreenInterfaceAVKit.
1775         https://bugs.webkit.org/show_bug.cgi?id=134407
1776
1777         Reviewed by Eric Carlson.
1778
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.
1787
1788 2014-06-27  Alex Christensen  <achristensen@webkit.org>
1789
1790         Remove extra operations from 64-bit or on armv7.
1791         https://bugs.webkit.org/show_bug.cgi?id=134408
1792
1793         Reviewed by Geoffrey Garen.
1794
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.
1799
1800 2014-06-27  Beth Dakin  <bdakin@apple.com>
1801
1802         ScrollView::rootViewToTotalContents() needs to take topContentInset into account
1803         https://bugs.webkit.org/show_bug.cgi?id=134415
1804         -and corresponding-
1805         <rdar://problem/17473633>
1806
1807         Reviewed by Simon Fraser.
1808
1809         This affects hit testing in headers aka PageBanners.
1810
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):
1816
1817 2014-06-27  Antti Koivisto  <antti@apple.com>
1818
1819         Flush throttling with remote layers
1820         https://bugs.webkit.org/show_bug.cgi?id=134398
1821
1822         Reviewed by Darin Adler.
1823
1824         With remote layer trees the flush scheduling lives in the WebKit2 layer. The throttling code
1825         needs to live there as well.
1826         
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.
1829
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):
1838         
1839             Factor the progress status change activities to a function.
1840
1841         (WebCore::FrameView::updateLayerFlushThrottling):
1842         (WebCore::FrameView::setExposedRect):
1843         
1844             Move the call to adjustTiledBackingCoverage from WebKit to here.
1845
1846         (WebCore::FrameView::updateLayerFlushThrottlingInAllFrames): Deleted.
1847         * page/FrameView.h:
1848         * page/LayerFlushThrottleState.h: Added.
1849         * rendering/RenderLayerCompositor.cpp:
1850         (WebCore::RenderLayerCompositor::RenderLayerCompositor):
1851
1852 2014-06-27  Brady Eidson  <beidson@apple.com>
1853
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
1856
1857         Reviewed by Darin Adler.
1858
1859         No new tests (Not yet a tested config)
1860
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:
1870
1871         * platform/GamepadProviderClient.h: Added platformGamepadInputActivity.
1872
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:
1879
1880 2014-06-27  Brady Eidson  <beidson@apple.com>
1881
1882         HIDGamepads should populate themselves with initial input values
1883         https://bugs.webkit.org/show_bug.cgi?id=134381
1884
1885         Reviewed by Darin Adler.
1886
1887         No new tests (Not yet a tested config)
1888
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):
1898
1899 2014-06-27  Peyton Randolph  <prandolph@apple.com>
1900
1901         Add feature flag for link long-press gesture.
1902         https://bugs.webkit.org/show_bug.cgi?id=134262
1903
1904         Reviewed by Enrica Casucci.
1905
1906         * Configurations/FeatureDefines.xcconfig:
1907         Add ENABLE_LINK_LONG_PRESS.
1908
1909 2014-06-26  Brady Eidson  <beidson@apple.com>
1910
1911         HIDGamepadProvider should only be active when someone is interested in Gamepads.
1912         https://bugs.webkit.org/show_bug.cgi?id=134374
1913
1914         Reviewed by Darin Adler.
1915
1916         No new tests (Not yet a tested config)
1917
1918         * Modules/gamepad/GamepadManager.cpp:
1919         (WebCore::GamepadManager::registerNavigator): Add some logging.
1920         (WebCore::GamepadManager::unregisterNavigator): Ditto.
1921
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.
1936
1937 2014-06-27  Alex Christensen  <achristensen@webkit.org>
1938
1939         Prevent unnecessary register saving in css jit.
1940         https://bugs.webkit.org/show_bug.cgi?id=133955
1941
1942         Reviewed by Geoff Garen.
1943
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.
1956
1957 2014-06-27  Beth Dakin  <bdakin@apple.com>
1958
1959         Custom scrollbars should not create ScrollbarPainters on Mac
1960         https://bugs.webkit.org/show_bug.cgi?id=134406
1961         -and corresponding-
1962         <rdar://problem/16178301>
1963
1964         Reviewed by Tim Horton.
1965
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. 
1973
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:
1979
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):
1984
1985         Send true to the Scrollbar constructor to indicate that this is a custom 
1986         scrollbar.
1987         * rendering/RenderScrollbar.cpp:
1988         (WebCore::RenderScrollbar::RenderScrollbar):
1989         * rendering/RenderScrollbar.h:
1990
1991 2014-06-27  Eric Carlson  <eric.carlson@apple.com>
1992
1993         [Mac] AVMetadataKeySpaceISOUserData not defined on 10.8
1994         https://bugs.webkit.org/show_bug.cgi?id=134401
1995
1996         Reviewed by Jer Noble.
1997
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.
2001
2002 2014-06-27  Martin Hodovan  <mhodovan.u-szeged@partner.samsung.com>
2003
2004         REGRESSION (r168685): css calc() expression fails 
2005         https://bugs.webkit.org/show_bug.cgi?id=134059
2006
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.
2011
2012         Reviewed by Simon Fraser.
2013
2014         Test: fast/css/calc-percentage-pixel.html
2015
2016         * css/CSSCalculationValue.cpp:
2017
2018 2014-06-27  Jer Noble  <jer.noble@apple.com>
2019
2020         [MSE] http/tests/media/media-source/mediasource-append-buffer.html is failing
2021         https://bugs.webkit.org/show_bug.cgi?id=134389
2022
2023         Reviewed by Eric Carlson.
2024
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.
2029
2030         * Modules/mediasource/MediaSource.cpp:
2031         (WebCore::MediaSource::setDuration):
2032         * Modules/mediasource/SourceBuffer.cpp:
2033         (WebCore::SourceBuffer::removedFromMediaSource):
2034         (WebCore::SourceBuffer::hasPendingActivity):
2035
2036 2014-06-26  Simon Fraser  <simon.fraser@apple.com>
2037
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>
2041
2042         Reviewed by Tim Horton.
2043         
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
2046         contexts.
2047         
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
2053         on both axes.
2054         
2055         To get the reachable size, add RenderLayer::scrollableContentsSize().
2056         
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.
2060
2061         * WebCore.exp.in:
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):
2083
2084 2014-06-27  Bear Travis  <betravis@adobe.com>
2085
2086         [Feature Queries] Fix feature queries build on Mac
2087         https://bugs.webkit.org/show_bug.cgi?id=134359
2088
2089         Reviewed by Antti Koivisto.
2090
2091         Update the XCode project and Feature Queries code to build on Mac.
2092
2093         There are existing tests for supports in the LayoutTests/css3 directory.
2094
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.
2099
2100 2014-06-27  Jer Noble  <jer.noble@apple.com>
2101
2102         [MSE] media/media-source/media-source-tracks.html is crashy
2103         https://bugs.webkit.org/show_bug.cgi?id=134385
2104
2105         Reviewed by Eric Carlson.
2106
2107         Fix the refactoring error (self assignment) introduced by r170488.
2108
2109         * Modules/mediasource/SourceBuffer.cpp:
2110         (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
2111
2112 2014-06-27  Mark Hahnenberg  <mhahnenberg@apple.com>
2113
2114         XHR should keep attributes on instance
2115         https://bugs.webkit.org/show_bug.cgi?id=134363
2116
2117         Reviewed by Sam Weinig.
2118
2119         Test: js/dom/xhr-prototype-define-property.html
2120
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.
2123
2124         * bindings/scripts/CodeGeneratorJS.pm:
2125         (InterfaceRequiresAttributesOnInstanceForCompatibility):
2126
2127 2014-06-27  Jeremy Jones  <jeremyj@apple.com>
2128
2129         removeCodedFrames should modify ref to TrackBuffer no a copy.
2130         https://bugs.webkit.org/show_bug.cgi?id=134380
2131
2132         Reviewed by Daniel Bates.
2133
2134         * Modules/mediasource/SourceBuffer.cpp:
2135         (WebCore::SourceBuffer::removeCodedFrames):
2136         Iterate with a reference.
2137
2138 2014-06-27  Zalan Bujtas  <zalan@apple.com>
2139
2140         Set cliprect radius unconditionally in RenderLayer.
2141         https://bugs.webkit.org/show_bug.cgi?id=134396
2142
2143         Reviewed by Simon Fraser.
2144
2145         No change in functionality.
2146
2147         * rendering/RenderLayer.cpp:
2148         (WebCore::RenderLayer::calculateClipRects):
2149
2150 2014-06-27  Manuel Rego Casasnovas  <rego@igalia.com>
2151
2152         [CSS Grid Layout] Interaction between auto-placement and column / row spanning
2153         https://bugs.webkit.org/show_bug.cgi?id=110633
2154
2155         Reviewed by Sergio Villar Senin.
2156
2157         Modify auto-placement algorithm in order to support span in both
2158         definite and automatic positions.
2159
2160         This patch fixes examples like:
2161         grid-row: auto;
2162         grid-column: 2 / span 3;
2163
2164         And also:
2165         grid-row: auto;
2166         grid-column: span 3;
2167
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
2170
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
2181         item in the grid.
2182         (WebCore::RenderGrid::populateExplicitGridAndOrderIterator): Ensure that
2183         the grid is big enough to place the largest span for auto-positioned
2184         items.
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
2195         signature.
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.
2206
2207 2014-06-27  Mahesh Kulkarni  <mahesh.kk@samsung.com>
2208
2209         [XHR] open method must uppercase only standard method types
2210         https://bugs.webkit.org/show_bug.cgi?id=134264
2211
2212         Reviewed by Darin Adler.
2213
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.
2218
2219         Tests: http/tests/xmlhttprequest/xmlhttprequest-open-method-allowed.html
2220                http/tests/xmlhttprequest/xmlhttprequest-open-method-case-insensitive.html
2221
2222         * xml/XMLHttpRequest.cpp:
2223         (WebCore::XMLHttpRequest::uppercaseKnownHTTPMethod):
2224
2225 2014-06-27  Andre Moreira Magalhaes   <andre.magalhaes@collabora.co.uk>
2226
2227         Increase priority on SharedTimer source.
2228         http://bugs.webkit.org/show_bug.cgi?id=134109
2229
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.
2233
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.
2236
2237         Reviewed by Gustavo Noronha Silva.
2238
2239         * platform/gtk/SharedTimerGtk.cpp:
2240         (WebCore::setSharedTimerFireInterval):
2241
2242 2014-06-27  Zalan Bujtas  <zalan@apple.com>
2243
2244         Remove redundant offsetFromAncestor() call from RenderLayer::localClipRect().
2245         https://bugs.webkit.org/show_bug.cgi?id=134378
2246
2247         Reviewed by Simon Fraser.
2248
2249         No change in functionality.
2250
2251         * rendering/RenderLayer.cpp:
2252         (WebCore::RenderLayer::calculateClipRects):
2253
2254 2014-06-27  Philippe Normand  <pnormand@igalia.com>
2255
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
2258
2259         Reviewed by Carlos Garcia Campos.
2260
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.
2265
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
2270         URLs (about:blank).
2271         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
2272         (WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
2273         Disconnect repaint handler only if it's valid.
2274
2275 2014-06-26  Carlos Garcia Campos  <cgarcia@igalia.com>
2276
2277         [GTK] Expose getter and setter functions for attributes named type
2278         https://bugs.webkit.org/show_bug.cgi?id=134300
2279
2280         Reviewed by Martin Robinson.
2281
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:
2285
2286           webkit_dom_blob_get_type() -> webkit_dom_blob_get_blob_type()
2287           webkit_dom_event_get_type() -> webkit_dom_event_get_event_type()
2288
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.
2292
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.
2300
2301 2014-06-27  Sungmann Cho  <sungmann.cho@navercorp.com>
2302
2303         Remove unnecessary #include in HistoryController
2304         https://bugs.webkit.org/show_bug.cgi?id=134369
2305
2306         Reviewed by Daniel Bates.
2307
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.
2310
2311         * loader/HistoryController.cpp:
2312
2313 2014-06-26  Jeongeun Kim  <je_julie.kim@samsung.com>
2314
2315         REGRESSION (r170287): SVGDocumentExtensions::rebuildElements() called on removed element
2316         https://bugs.webkit.org/show_bug.cgi?id=134304
2317
2318         Reviewed by Daniel Bates.
2319
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.
2323
2324         * dom/ContainerNode.cpp:
2325         (WebCore::ContainerNode::removeChild):
2326         (WebCore::ContainerNode::removeChildren):
2327         * dom/Document.cpp:
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:
2339
2340 2014-06-26  Tim Horton  <timothy_horton@apple.com>
2341
2342         [WK2] Pinch-zoom shadows can overlap headers and footers
2343         https://bugs.webkit.org/show_bug.cgi?id=134372
2344         <rdar://problem/16004095>
2345
2346         Reviewed by Simon Fraser.
2347
2348         * WebCore.exp.in:
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.
2354
2355 2014-06-26  David Kilzer  <ddkilzer@apple.com>
2356
2357         [Win] Always NULL-terminate the string in createUTF8String()
2358         <http://webkit.org/b/134353>
2359         <rdar://problem/17471783>
2360
2361         Reviewed by Brent Fulgham.
2362
2363         * plugins/PluginView.cpp:
2364         (WebCore::createUTF8String): Pull out CString length into local
2365         variable.  Switch to use memcpy.  Always NULL-terminate the
2366         string.
2367
2368 2014-06-26  Jer Noble  <jer.noble@apple.com>
2369
2370         [MSE][Mac] Crash in WebCore::MediaPlayerPrivateMediaSourceAVFObjC::buffered const + 13
2371         https://bugs.webkit.org/show_bug.cgi?id=134367
2372
2373         Reviewed by Darin Adler.
2374
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.
2377
2378         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
2379         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::durationDouble):
2380         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::buffered):
2381
2382 2014-06-26  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2383
2384         Rearrange conditions to find invalid protocol in NavigatorContentUtils::verifyProtocolHandlerScheme()
2385         https://bugs.webkit.org/show_bug.cgi?id=134289
2386
2387         Reviewed by Darin Adler.
2388
2389         If we do early return when there is invalid protocol, we're able to avoid unnecessary call flow.
2390
2391         No new tests, covered by existing tests.
2392
2393         * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
2394         (WebCore::verifyProtocolHandlerScheme):
2395
2396 2014-06-26  Benjamin Poulain  <bpoulain@apple.com>
2397
2398         [WK1] Use native touch event's timestamp for DOM touch event
2399         https://bugs.webkit.org/show_bug.cgi?id=134326
2400
2401         Reviewed by Enrica Casucci.
2402
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.
2407
2408 2014-06-26  Balazs Kelemen  <b.kelemen@samsung.com>
2409
2410         Memcache migth not be pruned when it should for https pages
2411         https://bugs.webkit.org/show_bug.cgi?id=134361
2412
2413         Reviewed by Geoffrey Garen.
2414
2415         There is no reason we should not try to prune in case of a https resource.
2416
2417         No observable change in behavior, no tests.
2418
2419         * loader/cache/CachedResource.cpp:
2420         (WebCore::CachedResource::removeClient):
2421         Call prune unconditionally and remove an unnecessary branch.
2422
2423 2014-06-26  Alexey Proskuryakov  <ap@apple.com>
2424
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>
2428
2429         Reviewed by Brady Eidson.
2430
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.
2434
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):
2446
2447 2014-06-26  Brady Eidson  <beidson@apple.com>
2448
2449         Remove use of PlatformStrategies for Gamepad API.
2450         https://bugs.webkit.org/show_bug.cgi?id=134348
2451
2452         Reviewed by Dean Jackson.
2453
2454         No new tests (Not yet a tested config)
2455
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):
2466
2467         * platform/GamepadProviderClient.h: Renamed from Source/WebCore/platform/GamepadStrategyClient.h.
2468         (WebCore::GamepadProviderClient::~GamepadProviderClient):
2469
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:
2476
2477         Remove the GamepadStrategy altogether:
2478         * platform/PlatformStrategies.h:
2479         (WebCore::PlatformStrategies::PlatformStrategies):
2480         (WebCore::PlatformStrategies::gamepadStrategy): Deleted.
2481
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):
2487
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):
2507
2508         * WebCore.exp.in:
2509         * WebCore.xcodeproj/project.pbxproj:
2510
2511         * platform/mac/HIDGamepad.h: Fix incorrect comment
2512
2513 2014-06-26  Andreas Kling  <akling@apple.com>
2514
2515         Skip memcmp()ing fully downloaded resources after they become mmap()able.
2516         <https://webkit.org/b/134362>
2517
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.
2521
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.
2525
2526         Saves ~300ms of main thread time on PLT.
2527
2528         Reviewed by Geoff Garen.
2529
2530         * loader/cache/CachedResource.cpp:
2531         (WebCore::CachedResource::tryReplaceEncodedData):
2532
2533 2014-06-26  Jer Noble  <jer.noble@apple.com>
2534
2535         [MSE] Refactoring: Use C++11 for-loops in SourceBuffer.
2536         https://bugs.webkit.org/show_bug.cgi?id=134352
2537
2538         Reviewed by Darin Adler.
2539
2540         Use C++11 style for-loops where appropriate in SourceBuffer now that the
2541         SampleMap ordered objects support them.
2542
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):
2550
2551 2014-06-25  Joseph Pecoraro  <pecoraro@apple.com>
2552  
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>
2556
2557         Reviewed by Daniel Bates.
2558
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.
2563
2564         * html/HTMLButtonElement.cpp:
2565         (WebCore::HTMLButtonElement::willRespondToMouseClickEvents):
2566
2567 2014-06-26  Jer Noble  <jer.noble@apple.com>
2568
2569         Unreviewed build-fix. Remove unintentionial rename of MediaTime.h -> MediaTimeHash.h.
2570
2571         * Modules/mediasource/SampleMap.h:
2572
2573 2014-06-26  Eric Carlson  <eric.carlson@apple.com>
2574
2575         [iOS] no need to deactivate audio session
2576         https://bugs.webkit.org/show_bug.cgi?id=134350
2577
2578         Reviewed by Jer Noble.
2579
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.
2584
2585 2014-06-26  Jer Noble  <jer.noble@apple.com>
2586
2587         [MSE] Refactoring: Differentiate between SampleMap decode and presentation order methods
2588         https://bugs.webkit.org/show_bug.cgi?id=134349
2589
2590         Reviewed by Geoffrey Garen.
2591
2592         Refactor SampleMap to clarify the distinction between methods which return decode-order
2593         iterators and ones which retun presentation-order iterators.
2594
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.
2599
2600         Update all the call sites in SourceBuffer to use the new ordered objects.
2601
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.
2640
2641 2014-06-26  Chris Fleizach  <cfleizach@apple.com>
2642
2643         Add an undo group for each dictated utterance in WebKit
2644         https://bugs.webkit.org/show_bug.cgi?id=134086
2645
2646         Applied review comments from Sam Weinig.
2647
2648         Move the associated USE #define into Platform.h.
2649  
2650         * WebCore.xcodeproj/project.pbxproj:
2651         * editing/mac/TextUndoInsertionMarkup.h: Removed.
2652         * editing/mac/TextUndoInsertionMarkupMac.h:
2653
2654 2014-06-26  Shivakumar JM  <shiva.jm@samsung.com>
2655
2656         [EFL][WK2] Fix Debug Build Error in Webcore module.
2657         https://bugs.webkit.org/show_bug.cgi?id=134345
2658
2659         Reviewed by Zalan Bujtas.
2660
2661         Use static cast to change the type of variable to fix error
2662
2663         * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
2664         (WebCore::HarfBuzzShaper::setDrawRange):
2665
2666 2014-06-26  Eric Carlson  <eric.carlson@apple.com>
2667
2668         [Mac] allow host application to canonicalize media urls
2669         https://bugs.webkit.org/show_bug.cgi?id=134329
2670
2671         Reviewed by Dean Jackson.
2672
2673         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2674         (WebCore::canonicalURL): New, use NSURLProtocol to canonicalize a URL.
2675         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Call canonicalURL.
2676
2677 2014-06-26  Carlos Garcia Campos  <cgarcia@igalia.com>
2678
2679         [GTK] Add padding for future expansion to WebKitDOMEventTargetIface
2680         https://bugs.webkit.org/show_bug.cgi?id=134298
2681
2682         Reviewed by Martin Robinson.
2683
2684         * bindings/gobject/WebKitDOMEventTarget.h:
2685
2686 2014-06-25  Carlos Garcia Campos  <cgarcia@igalia.com>
2687
2688         [GTK] Add support for constants in GObject DOM bindings
2689         https://bugs.webkit.org/show_bug.cgi?id=133983
2690
2691         Reviewed by Martin Robinson.
2692
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:
2702
2703 2014-06-26  Manuel Rego Casasnovas  <rego@igalia.com>
2704
2705         [CSS Grid Layout] Properly support for z-index on grid items
2706         https://bugs.webkit.org/show_bug.cgi?id=103329
2707
2708         Reviewed by Benjamin Poulain.
2709
2710         From Blink r157620 by <jchaffraix@chromium.org> and r172402 by
2711         <wangxianzhu@chromium.org>.
2712
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.
2716
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.
2721
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).
2725
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
2729
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
2734         condition.
2735         * rendering/style/RenderStyle.cpp:
2736         (WebCore::RenderStyle::changeRequiresLayerRepaint): Move z-index checks
2737         out of non-static positioned objects if.
2738
2739 2014-06-25  Dean Jackson  <dino@apple.com>
2740
2741         HIDGamepad should use CFIndex when looping
2742         https://bugs.webkit.org/show_bug.cgi?id=134337
2743
2744         Reviewed by Dan Bernstein.
2745
2746         * platform/mac/HIDGamepad.cpp:
2747         (WebCore::HIDGamepad::initElementsFromArray): Replace int with CFIndex, and use
2748         a local variable for CFArrayCount.
2749
2750 2014-06-25  Ryosuke Niwa  <rniwa@webkit.org>
2751
2752         Build fix attempt after r170465.
2753
2754         * platform/mac/HIDGamepad.cpp:
2755         (WebCore::HIDGamepad::initElementsFromArray):
2756
2757 2014-06-25  Dean Jackson  <dino@apple.com>
2758
2759         [Mac] Radio buttons and checkboxes vanish when redrawn
2760         https://bugs.webkit.org/show_bug.cgi?id=134335
2761
2762         Reviewed by Dan Bernstein.
2763
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).
2767
2768         * platform/mac/ThemeMac.mm:
2769         (WebCore::paintToggleButton): We need to check the state of animation again, after
2770         we draw.
2771
2772 2014-06-25  Brady Eidson  <beidson@apple.com>
2773
2774         Add HID-based gamepad implementation for Mac
2775         https://bugs.webkit.org/show_bug.cgi?id=134324
2776
2777         Reviewed by Dean Jackson.
2778
2779         No new tests (Not yet a tested config)
2780
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:
2785
2786         * Modules/gamepad/GamepadButton.h:
2787         (WebCore::GamepadButton::create): Change to use Ref instead of RefPtr.
2788
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:
2800
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):
2812
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):
2829
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):
2849
2850         * WebCore.exp.in:
2851         * WebCore.xcodeproj/project.pbxproj:
2852
2853 2014-06-25  Ryosuke Niwa  <rniwa@webkit.org>
2854
2855         WebProgressTracker updates progress too frequently
2856         https://bugs.webkit.org/show_bug.cgi?id=134185
2857
2858         Reviewed by Tim Horton.
2859
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.
2862
2863         * loader/ProgressTracker.cpp:
2864         (WebCore::ProgressTracker::ProgressTracker):
2865         (WebCore::ProgressTracker::incrementProgress):
2866         * loader/ProgressTracker.h:
2867
2868 2014-06-25  Simon Fraser  <simon.fraser@apple.com>
2869
2870         [iOS WK2] Fixed position elements jump around when zooming
2871         https://bugs.webkit.org/show_bug.cgi?id=134328
2872         <rdar://problem/17447048>
2873
2874         Reviewed by Zalan Bujtas.
2875
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.
2880         
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.
2885
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
2889         nodes were updated.
2890
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):
2901
2902 2014-06-25  Simon Fraser  <simon.fraser@apple.com>
2903
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
2906
2907         Reviewed by Benjamin Poulain.
2908
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.
2913
2914         * page/FrameView.cpp:
2915         (WebCore::FrameView::rectForViewportConstrainedObjects):
2916
2917 2014-06-25  Brady Eidson  <beidson@apple.com>
2918
2919         Add new platform gamepad abstractions
2920         https://bugs.webkit.org/show_bug.cgi?id=134325
2921
2922         Reviewed by Dean Jackson.
2923
2924         No new tests (Not yet a tested config)
2925
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.
2932
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.
2935
2936         Makes sense to review them separately.
2937
2938         * WebCore.xcodeproj/project.pbxproj:
2939
2940         * platform/GamepadStrategy.h: Added.
2941         (WebCore::GamepadStrategy::~GamepadStrategy):
2942
2943         * platform/GamepadStrategyClient.h: Added.
2944         (WebCore::GamepadStrategyClient::~GamepadStrategyClient):
2945
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):
2952
2953         * platform/PlatformStrategies.h:
2954         (WebCore::PlatformStrategies::gamepadStrategy):
2955         (WebCore::PlatformStrategies::PlatformStrategies):
2956
2957 2014-06-25  Zalan Bujtas  <zalan@apple.com>
2958
2959         Assertion failed: CGPathAddRoundedRect asserts on non-renderable rounded rectangle.
2960         https://bugs.webkit.org/show_bug.cgi?id=134288
2961
2962         Reviewed by Simon Fraser.
2963
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.
2968
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. 
2979
2980 2014-06-25  Jer Noble  <jer.noble@apple.com>
2981
2982         [MSE] removeCodedFrames() can remove more than it should
2983         https://bugs.webkit.org/show_bug.cgi?id=134320
2984
2985         Reviewed by Geoff Garen.
2986
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.
2991
2992         * Modules/mediasource/SourceBuffer.cpp:
2993         (WebCore::SourceBuffer::removeCodedFrames):
2994
2995 2014-06-25  Beth Dakin  <bdakin@apple.com>
2996
2997         Crash in ScrollingTree::isRubberBandInProgress()
2998         https://bugs.webkit.org/show_bug.cgi?id=134316
2999         -and corresponding-
3000         <rdar://problem/16247911>
3001
3002         Reviewed by Geoffrey Garen.
3003
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.
3012
3013         Don't allow ScrollingCoordinator to handle ScrollingTreeNode creation.
3014         * page/scrolling/AsyncScrollingCoordinator.h:
3015
3016         Re-name createNode to createScrollingTreeNode(). 
3017         * page/scrolling/ScrollingTree.cpp:
3018         (WebCore::ScrollingTree::updateTreeFromStateNode):
3019         * page/scrolling/ScrollingTree.h:
3020
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:
3026
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.
3031
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:
3037
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.
3042
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:
3048
3049 2014-06-25  Enrica Casucci  <enrica@apple.com>
3050
3051         iOS build fix after http://trac.webkit.org/changeset/170447.
3052         Unreviewed.
3053
3054         * editing/mac/TextUndoInsertionMarkup.h:
3055
3056 2014-06-25  Chris Fleizach  <cfleizach@apple.com>
3057
3058         Add an undo group for each dictated utterance in WebKit
3059         https://bugs.webkit.org/show_bug.cgi?id=134086
3060
3061         Reviewed by Enrica Casucci.
3062
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.
3066
3067         * WebCore.exp.in:
3068         * WebCore.xcodeproj/project.pbxproj:
3069         * editing/mac/TextUndoInsertionMarkup.h: Added.
3070         * editing/mac/TextUndoInsertionMarkup.mm: Added.
3071         (WebCore::shouldRegisterInsertionUndoGroup):
3072         (WebCore::registerInsertionUndoGrouping):
3073
3074 2014-06-25  Joseph Pecoraro  <pecoraro@apple.com>
3075
3076         [iOS]: WK2 Inspector Node Search
3077         https://bugs.webkit.org/show_bug.cgi?id=134279
3078
3079         Reviewed by Benjamin Poulain.
3080
3081         * WebCore.exp.in:
3082         Export Node::inspect for WebKit2.
3083
3084 2014-06-25  Dana Burkart  <dburkart@apple.com>
3085
3086         Add support for 5-tuple versioning.
3087
3088         Reviewed by David Farler.
3089
3090         * Configurations/Version.xcconfig:
3091
3092 2014-06-25  Jer Noble  <jer.noble@apple.com>
3093
3094         [MSE][Mac] REGRESSION(r170336) - zero tolerance seeks are ignored.
3095         https://bugs.webkit.org/show_bug.cgi?id=134310
3096
3097         Reviewed by Brent Fulgham.
3098
3099         Tests for zero tolerance seeks were inadvertantly reversed in r170336.
3100
3101         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
3102         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal):
3103
3104 2014-06-25  Jer Noble  <jer.noble@apple.com>
3105
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
3108
3109         Reviewed by Eric Carlson.
3110
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.
3114
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.
3124
3125 2014-06-25  Jer Noble  <jer.noble@apple.com>
3126
3127         [MSE] Update monitorSourceBuffers to match recent spec changes
3128         https://bugs.webkit.org/show_bug.cgi?id=134305
3129
3130         Reviewed by Eric Carlson.
3131
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.
3134
3135         * Modules/mediasource/MediaSource.cpp:
3136         (WebCore::MediaSource::monitorSourceBuffers):
3137
3138 2014-06-25  Alex Christensen  <achristensen@webkit.org>
3139             And peavo@outlook.com  <peavo@outlook.com>
3140
3141         Use references instead of pointers in RenderTheme.
3142         https://bugs.webkit.org/show_bug.cgi?id=134261
3143
3144         Reviewed by Zalan Bujtas.
3145
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):
3403
3404 2014-06-25  Benjamin Poulain  <benjamin@webkit.org>
3405
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
3408
3409         Reviewed by Anders Carlsson.
3410
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.
3414
3415 2014-06-25  Dirk Schulze  <krit@webkit.org>
3416
3417         Add all blend modes to feBlend
3418
3419         feBlend should support all blend modes from CSS and Canvas
3420         https://bugs.webkit.org/show_bug.cgi?id=134296
3421
3422         Reviewed by Dean Jackson.
3423
3424         Add all blend modes to <feBlend> (the SVG filter primitive) that are also
3425         supported by HTML Canvas and CSS.
3426
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.
3431
3432         http://www.w3.org/TR/2014/CR-compositing-1-20140220/#ltblendmodegt
3433
3434         Test: svg/filters/feBlend-all-blendmodes.svg
3435
3436         * pla