bb96ec77fd009dc4642665a6eda808e1c4d204f2
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2014-06-09  Simon Fraser  <simon.fraser@apple.com>
2
3         Group the methods in InternalSettings.idl
4         https://bugs.webkit.org/show_bug.cgi?id=133652
5
6         Reviewed by Tim Horton.
7
8         Group methods by topic.
9
10         * testing/InternalSettings.idl:
11
12 2014-06-05  Mark Hahnenberg  <mhahnenberg@apple.com>
13
14         Eagerly reify DOM prototype attributes
15         https://bugs.webkit.org/show_bug.cgi?id=133558
16
17         Reviewed by Oliver Hunt.
18
19         No new tests.
20
21         This allows us to get rid of a lot of the additional overhead of pushing DOM attributes up into the prototype. 
22         By eagerly reifying the custom getters and setters into the actual JSObject we avoid having to override 
23         getOwnPropertySlot for all of the DOM prototypes, which is a lot of the overhead of doing property lookups on 
24         DOM wrappers.
25
26         * bindings/scripts/CodeGeneratorJS.pm:
27         (prototypeHashTableAccessor): Changed to pass along the VM.
28         (AttributeShouldBeOnInstanceForCompatibility): We were being overly conservative in regard to touch events. 
29         This caused us to store the touch event handler getters and setters on the JSElement instance, which caused
30         us to override getOwnPropertySlot for every JSElement subclass.
31         (InstanceOverridesGetOwnPropertySlot): This was being overly paranoid about generate a getOwnPropertySlot if
32         there was going to be a "constructor" property, even though we handled this in another place already.
33         (GenerateHeader): Generate a finishCreation for prototypes unless it's the JSDOMWindow. We can't correctly 
34         handle the DOMWindow in this version of the patch because reifying the static properties requires a global object,
35         which hasn't been created yet when the prototype for the window object is being created.
36         (GenerateImplementation): Generate the finishCreation calls to reifyStaticProperties.
37
38 2014-06-09  Alexey Proskuryakov  <ap@apple.com>
39
40         REGRESSION (r169681): Three tests are broken
41         https://bugs.webkit.org/show_bug.cgi?id=133646
42
43         Reviewed by Tim Horton.
44
45         r169681 removed platformFocusRingMaxWidth() override, which returned either 0 or 9
46         on Mac. But the cross-platform default is 3, so this changed Mac behavior.
47
48         I'm not entirely sure why the cross-platform default is 3 (it was also added in r168397),
49         but restoring the override to return 0 fixes test cases.
50
51         While at it, also added final/override, and removed some functions that were only
52         needed by subclasses, which we now have none.
53
54         * rendering/RenderThemeMac.h:
55         (WebCore::RenderThemeMac::supportsControlTints): Deleted.
56         (WebCore::RenderThemeMac::scrollbarControlSizeForPart): Deleted.
57         (WebCore::RenderThemeMac::supportsSelectionForegroundColors): Deleted.
58         (WebCore::RenderThemeMac::supportsClosedCaptioning): Deleted.
59         (WebCore::RenderThemeMac::updateActiveState): Deleted.
60         * rendering/RenderThemeMac.mm:
61         (WebCore::RenderThemeMac::platformFocusRingMaxWidth):
62         (WebCore::RenderThemeMac::setPopupButtonCellState):
63         (WebCore::RenderThemeMac::paintSliderThumb):
64         (WebCore::RenderThemeMac::setSearchCellState):
65         (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
66         (WebCore::RenderThemeMac::paintSearchFieldResultsDecorationPart):
67         (WebCore::RenderThemeMac::paintSearchFieldResultsButton):
68
69 2014-06-09  Bem Jones-Bey  <bjonesbe@adobe.com>
70
71         [CSS Shapes] Bound RasterShapeInterval size to int
72         https://bugs.webkit.org/show_bug.cgi?id=133576
73
74         Reviewed by Simon Fraser.
75
76         Everything in the code assumes that the interval size will always fit
77         in an int. However, to make sure there are no negatives, the
78         RasterShapeInterval constructor takes an unsigned. This clamps that
79         value to make sure we can't overflow an int later.
80
81         * rendering/shapes/RasterShape.h:
82         (WebCore::RasterShapeIntervals::RasterShapeIntervals):
83
84 2014-06-09  Zalan Bujtas  <zalan@apple.com>
85
86         [iOS] Gaps below and to the right of the video controls on devour.com
87         https://bugs.webkit.org/show_bug.cgi?id=133607
88
89         Reviewed by Simon Fraser.
90
91         Non-toplevel compositing layers are device pixel aligned. In order to render the content
92         to the same position as if the layer was not aligned, the graphics layer needs to be translated.
93         CALayer::bounds is set to compensate for the shifted layer. However, we should not change the layer's
94         size as that stretches the content and results in overlaps/gaps/extra fuzziness.
95
96         Test: compositing/contents-scale/hidpi-compositing-layer-positioned-on-scaled-context.html
97
98         * platform/graphics/ca/GraphicsLayerCA.cpp:
99         (WebCore::GraphicsLayerCA::updateGeometry):
100         (WebCore::GraphicsLayerCA::computePixelAlignment): remove old epsilon adjustment code.
101         * platform/graphics/ca/GraphicsLayerCA.h:
102
103 2014-06-09  Zalan Bujtas  <zalan@apple.com>
104
105         [SVG] Subpixel rendering: Mask with transformed text does not render.
106         https://bugs.webkit.org/show_bug.cgi?id=133626
107         <rdar://problem/17123070>
108
109         Reviewed by Simon Fraser.
110
111         Replace IntRect::infiniteRect() with Layout::infiniteRect(). A transformed IntRect::infiniteRect()
112         overflows and produces invalid repaint rect. -also remove IntRect::infiniteRect() as no one calls
113         it anymore.
114
115         Tests: svg/masking/mask-transformed-text-missing-expected.svg
116                svg/masking/mask-transformed-text-missing.svg
117
118         * platform/graphics/IntRect.h:
119         (WebCore::IntRect::infiniteRect): Deleted.
120         * rendering/svg/SVGRenderingContext.cpp:
121         (WebCore::SVGRenderingContext::renderSubtreeToImageBuffer):
122
123 2014-06-08  Dean Jackson  <dino@apple.com>
124
125         [Mac] checkboxes and radio buttons animate incorrectly
126         https://bugs.webkit.org/show_bug.cgi?id=133619
127         <rdar://problem/16478676>
128
129         Reviewed by Sam Weinig.
130
131         As many people have noticed, the new checkboxes and radio
132         buttons jump around during their animation. To fix this
133         I've added yet another magic set of numbers to our
134         native form positioning - this time the placement
135         of the controls when rendering on the animated path.
136         This is quite annoying, since there doesn't appear
137         to be any pattern to the offsets (or margins) given
138         a control size, and this case also needed a sub-pixel
139         offset to display correctly on retina machines.
140
141         * platform/mac/ThemeMac.mm:
142         (WebCore::checkboxMargins): Add comment so I know what the values mean.
143         (WebCore::checkboxOffsets): Add the magic translation values for animated states.
144         (WebCore::radioMargins): Ditto.
145         (WebCore::radioOffsets):
146         (WebCore::paintToggleButton): Paint with these new offsets.
147
148 2014-06-07  Dean Jackson  <dino@apple.com>
149
150         Regression r168397 - Form layout is incorrect on OS X Yosemite
151         https://bugs.webkit.org/show_bug.cgi?id=133612
152         <rdar://problem/16850492>
153         <rdar://problem/17016914>
154
155         Reviewed by Anders Carlson.
156
157         Revision 168397 introduced a new animated style of form controls. Part of
158         it included extending the margins for the controls to take into account the
159         focus ring that animates in from a large radius to a small radius. This
160         caused two problems:
161
162         - the incorrect margins broke many layouts
163         - despite increased margins, there were still some areas
164           that did not repaint correctly.
165
166         Restore the old margins and (temporarily) turn off focus ring animation.
167         Bad layout is much worse than a missing animation. Another benefit
168         of this is that we will use less memory.
169
170         * platform/graphics/mac/GraphicsContextMac.mm:
171         (WebCore::drawFocusRingToContextAtTime): Pass in a time far far far in the future to
172         get the static rendering.
173         * platform/mac/ThemeMac.mm:
174         (WebCore::checkboxMargins): Restore correct margins.
175         (WebCore::radioMargins): Ditto.
176         (WebCore::drawCellFocusRing): New method that calls WKSI with a future time.
177         (WebCore::paintToggleButton): Call the new wrapper.
178         (WebCore::buttonMargins): Restore correct margins.
179         (WebCore::paintButton): Call the new wrapper.
180         * rendering/RenderThemeMac.h:
181         * rendering/RenderThemeMac.mm:
182         (WebCore::RenderThemeMac::paintMenuList): Use a future time.
183         (WebCore::RenderThemeMac::platformFocusRingMaxWidth): Deleted. Use old outline value.
184
185 2014-05-29  Anders Carlsson  <andersca@apple.com>
186
187         HTTPHeaderMap should not derive from HashMap
188         https://bugs.webkit.org/show_bug.cgi?id=133392
189
190         Reviewed by Darin Adler.
191
192         Use a HashMap member variable instead.
193
194         * WebCore.exp.in:
195         * loader/DocumentLoader.cpp:
196         (WebCore::DocumentLoader::responseReceived):
197         * platform/network/HTTPHeaderMap.cpp:
198         (WebCore::HTTPHeaderMap::copyData):
199         (WebCore::HTTPHeaderMap::adopt):
200         (WebCore::HTTPHeaderMap::get):
201         (WebCore::HTTPHeaderMap::set):
202         (WebCore::HTTPHeaderMap::add):
203         (WebCore::HTTPHeaderMap::contains):
204         (WebCore::HTTPHeaderMap::find):
205         (WebCore::HTTPHeaderMap::remove):
206         (WebCore::HTTPHeaderMap::keys):
207         * platform/network/HTTPHeaderMap.h:
208         (WebCore::HTTPHeaderMap::isEmpty):
209         (WebCore::HTTPHeaderMap::size):
210         (WebCore::HTTPHeaderMap::clear):
211         (WebCore::HTTPHeaderMap::begin):
212         (WebCore::HTTPHeaderMap::end):
213         (WebCore::HTTPHeaderMap::operator==):
214         (WebCore::HTTPHeaderMap::operator!=):
215         * platform/network/ResourceRequestBase.cpp:
216         (WebCore::ResourceRequestBase::adopt):
217         * platform/network/ResourceRequestBase.h:
218         * platform/network/ResourceResponseBase.cpp:
219         (WebCore::ResourceResponseBase::adopt):
220         * platform/network/ResourceResponseBase.h:
221         * xml/XMLHttpRequest.cpp:
222         (WebCore::XMLHttpRequest::createRequest):
223
224 2014-06-07  Zan Dobersek  <zdobersek@igalia.com>
225
226         Use C++11 lambdas to construct FileThread::Task objects
227         https://bugs.webkit.org/show_bug.cgi?id=133079
228
229         Reviewed by Darin Adler.
230
231         Have FileThread::Task constructor take in a std::function<void ()>-like object
232         as the second parameter. Much like with ScriptExecutionContext::Task, the idea here
233         is to use inlined C++11 lambdas in FileThread::postTask() calls. Because FileThread::Task
234         also requires an instance pointer, a brace-init list is passed to these calls, passing
235         in the instance pointer as the first parameter and the C++11 lambda as the second.
236
237         FileThread::postTask() now takes in a FileThread::Task rvalue and moves it onto the heap
238         and into the queue.
239
240         In AsyncFileStream.cpp, calls to FileThread::postTask() are updated to use C++11 lambdas.
241         Uses of MainThreadTask are also replaced by C++11 lambdas. This modernizes the code and
242         removes a lot of helper functions.
243
244         FileThread::Task doesn't use CrossThreadCopier anymore. Instead, we manually produce
245         thread-safe copies as necessary. At the moment this approach produces another copy when
246         passing the freshly-copied object into the lambda, but this will be avoidable once we
247         make C++14 and the lambda capture expression support mandatory.
248
249         * fileapi/AsyncFileStream.cpp:
250         (WebCore::AsyncFileStream::create):
251         (WebCore::AsyncFileStream::stop):
252         (WebCore::AsyncFileStream::getSize):
253         (WebCore::AsyncFileStream::openForRead):
254         (WebCore::AsyncFileStream::openForWrite):
255         (WebCore::AsyncFileStream::close):
256         (WebCore::AsyncFileStream::read):
257         (WebCore::AsyncFileStream::write):
258         (WebCore::AsyncFileStream::truncate):
259         (WebCore::didStart): Deleted.
260         (WebCore::AsyncFileStream::startOnFileThread): Deleted.
261         (WebCore::derefProxyOnMainThread): Deleted.
262         (WebCore::AsyncFileStream::stopOnFileThread): Deleted.
263         (WebCore::didGetSize): Deleted.
264         (WebCore::AsyncFileStream::getSizeOnFileThread): Deleted.
265         (WebCore::didOpen): Deleted.
266         (WebCore::AsyncFileStream::openForReadOnFileThread): Deleted.
267         (WebCore::AsyncFileStream::openForWriteOnFileThread): Deleted.
268         (WebCore::AsyncFileStream::closeOnFileThread): Deleted.
269         (WebCore::didRead): Deleted.
270         (WebCore::AsyncFileStream::readOnFileThread): Deleted.
271         (WebCore::didWrite): Deleted.
272         (WebCore::AsyncFileStream::writeOnFileThread): Deleted.
273         (WebCore::didTruncate): Deleted.
274         (WebCore::AsyncFileStream::truncateOnFileThread): Deleted.
275         * fileapi/AsyncFileStream.h:
276         * fileapi/FileThread.cpp:
277         (WebCore::FileThread::postTask):
278         * fileapi/FileThread.h:
279         (WebCore::FileThread::Task::Task):
280
281 2014-06-07  Zan Dobersek  <zdobersek@igalia.com>
282
283         Pass C++11 lambdas to callOnMainThread() calls in IconDatabase
284         https://bugs.webkit.org/show_bug.cgi?id=133374
285
286         Reviewed by Darin Adler.
287
288         Use C++11 lambads to inline the main thread tasks into the calling code,
289         modernizing the look of the code and removing a few static methods and
290         classes that were used as helpers.
291
292         * loader/icon/IconDatabase.cpp:
293         (WebCore::IconDatabase::scheduleOrDeferSyncTimer):
294         (WebCore::IconDatabase::performURLImport):
295         (WebCore::IconDatabase::dispatchDidImportIconURLForPageURLOnMainThread):
296         (WebCore::IconDatabase::dispatchDidImportIconDataForPageURLOnMainThread):
297         (WebCore::IconDatabase::dispatchDidRemoveAllIconsOnMainThread):
298         (WebCore::IconDatabase::dispatchDidFinishURLImportOnMainThread):
299         (WebCore::IconDatabase::notifyPendingLoadDecisionsOnMainThread): Deleted.
300         (WebCore::IconDatabase::performScheduleOrDeferSyncTimer): Deleted.
301         (WebCore::IconDatabase::performScheduleOrDeferSyncTimerOnMainThread): Deleted.
302         (WebCore::ClientWorkItem::ClientWorkItem): Deleted.
303         (WebCore::ClientWorkItem::~ClientWorkItem): Deleted.
304         (WebCore::ImportedIconURLForPageURLWorkItem::ImportedIconURLForPageURLWorkItem): Deleted.
305         (WebCore::ImportedIconURLForPageURLWorkItem::~ImportedIconURLForPageURLWorkItem): Deleted.
306         (WebCore::ImportedIconURLForPageURLWorkItem::performWork): Deleted.
307         (WebCore::ImportedIconDataForPageURLWorkItem::ImportedIconDataForPageURLWorkItem): Deleted.
308         (WebCore::ImportedIconDataForPageURLWorkItem::~ImportedIconDataForPageURLWorkItem): Deleted.
309         (WebCore::ImportedIconDataForPageURLWorkItem::performWork): Deleted.
310         (WebCore::RemovedAllIconsWorkItem::RemovedAllIconsWorkItem): Deleted.
311         (WebCore::RemovedAllIconsWorkItem::performWork): Deleted.
312         (WebCore::FinishedURLImport::FinishedURLImport): Deleted.
313         (WebCore::FinishedURLImport::performWork): Deleted.
314         (WebCore::performWorkItem): Deleted.
315         * loader/icon/IconDatabase.h:
316
317 2014-06-07  Zan Dobersek  <zdobersek@igalia.com>
318
319         Replace uses of CrossThreadTask in DefaultSharedWorkerRepository, WorkerMessagingProxy with C++11 lambdas
320         https://bugs.webkit.org/show_bug.cgi?id=133375
321
322         Reviewed by Darin Adler.
323
324         Uses of CrossThreadTask in the two classes are replaced with C++11 lambdas.
325         The necessary cross-thread copies are created manually and passed into the
326         lambdas by value, removing the need for CrossThreadTask and its use of CrossThreadCopier.
327
328         Remove the explicit use of this pointer in some lambdas -- it is captured automatically when
329         capturing by value, so enforcing its capturing through explicit use is not necessary.
330
331         * workers/DefaultSharedWorkerRepository.cpp:
332         (WebCore::SharedWorkerProxy::postExceptionToWorkerObject):
333         (WebCore::SharedWorkerProxy::postConsoleMessageToWorkerObject):
334         (WebCore::postExceptionTask): Deleted.
335         (WebCore::postConsoleMessageTask): Deleted.
336         * workers/WorkerMessagingProxy.cpp:
337         (WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
338         (WebCore::WorkerMessagingProxy::postConsoleMessageToWorkerObject):
339         (WebCore::WorkerMessagingProxy::workerObjectDestroyed):
340         (WebCore::WorkerMessagingProxy::notifyNetworkStateChange):
341         (WebCore::WorkerMessagingProxy::connectToInspector):
342         (WebCore::WorkerMessagingProxy::disconnectFromInspector):
343         (WebCore::WorkerMessagingProxy::sendMessageToInspector):
344         (WebCore::WorkerMessagingProxy::postMessageToPageInspector):
345         (WebCore::WorkerMessagingProxy::confirmMessageFromWorkerObject):
346         (WebCore::WorkerMessagingProxy::reportPendingActivity):
347         (WebCore::postConsoleMessageTask): Deleted.
348         (WebCore::WorkerMessagingProxy::workerObjectDestroyedInternal): Deleted.
349         (WebCore::connectToWorkerGlobalScopeInspectorTask): Deleted.
350         (WebCore::disconnectFromWorkerGlobalScopeInspectorTask): Deleted.
351         (WebCore::dispatchOnInspectorBackendTask): Deleted.
352         * workers/WorkerMessagingProxy.h:
353
354 2014-06-06  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
355
356         Scheme of content utils should be compared in an ASCII case-insensitive manner
357         https://bugs.webkit.org/show_bug.cgi?id=133502
358
359         Reviewed by Darin Adler.
360
361         According to spec, scheme must be compared in an ASCII case-insensitive manner by user agents.
362
363         Covered by existing tests.
364
365         * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
366         (WebCore::isProtocolWhitelisted):
367
368 2014-06-06  Andreas Kling  <akling@apple.com>
369
370         Indexed getters should return values directly on the PropertySlot.
371         <https://webkit.org/b/133586>
372
373         Make indexed getters more efficient by using PropertySlot::setValue()
374         to pass the value directly back through the slot, instead of giving it
375         a function pointer that JSC would then immediately call back through
376         to retrieve the value.
377
378         The function pointer approach would make sense if we did inline caching
379         of indexed getters but since we currently don't, this is pure overhead.
380
381         Reviewed by Darin Adler.
382
383         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
384         (WebCore::JSCSSStyleDeclaration::getOwnPropertySlotDelegate):
385         (WebCore::cssPropertyGetterPixelOrPosPrefixCallback): Deleted.
386         (WebCore::cssPropertyGetterCallback): Deleted.
387         * bindings/js/JSDOMWindowCustom.cpp:
388         (WebCore::JSDOMWindow::getOwnPropertySlot):
389         (WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
390         (WebCore::indexGetter): Deleted.
391         * bindings/scripts/CodeGeneratorJS.pm:
392         (GenerateGetOwnPropertySlotBody):
393         (GenerateHeader):
394         (GetIndexedGetterExpression):
395         (GenerateImplementation):
396         * bridge/runtime_array.cpp:
397         (JSC::RuntimeArray::getOwnPropertySlot):
398         (JSC::RuntimeArray::getOwnPropertySlotByIndex):
399         (JSC::RuntimeArray::indexGetter): Deleted.
400         * bridge/runtime_array.h:
401
402 2014-06-06  Brent Fulgham  <bfulgham@apple.com>
403
404         GenericCueData elements prematurely removed
405         https://bugs.webkit.org/show_bug.cgi?id=133588
406
407         Reviewed by Eric Carlson.
408
409         Add a 'removeCompletedCues' method instead of using the 'resetCueValues' method
410         after processing new cues. We do not want to reset cue state if we have pending
411         cues that are being extended by future updates (such as paint-on cues).
412
413         * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
414         (WebCore::InbandTextTrackPrivateAVF::processCue):  Call new 'removeCompletedCues' method.
415         (WebCore::InbandTextTrackPrivateAVF::removeCompletedCues): Added.
416         * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
417
418 2014-06-06  Brady Eidson  <beidson@apple.com>
419
420         Initialize a char* that needs to be initialized.
421         <rdar://problem/15840022> and https://bugs.webkit.org/show_bug.cgi?id=133585
422
423         Reviewed by Mark Rowe.
424
425         r152134 (erroneously) removed this initialization.
426
427         * platform/sql/SQLiteStatement.cpp:
428         (WebCore::SQLiteStatement::prepare): tail should start out initialized to 0.
429
430 2014-06-06  Alexey Proskuryakov  <ap@apple.com>
431
432         [iOS] Support pasting HTML
433         https://bugs.webkit.org/show_bug.cgi?id=133581
434         <rdar://problem/17070305>
435
436         Reviewed by Enrica Casucci.
437
438         We can probably share a lot of code between Mac and iOS here, but for now, just
439         implement the unimplemented functions.
440
441         * editing/ios/EditorIOS.mm: (WebCore::Editor::WebContentReader::readHTML):
442         Implemented based on WebArchive reading code above, and on Mac version of readHTML.
443         Unlike on Mac, we don't need to support Microsoft CF_HTML format, as nothing
444         generates it.
445
446         * platform/ios/PasteboardIOS.mm:
447         (WebCore::Pasteboard::read):
448         (WebCore::Pasteboard::supportedPasteboardTypes):
449         Added HTML support, as the second preferred format after WebArchive.
450
451 2014-06-06  Alexey Proskuryakov  <ap@apple.com>
452
453         Try to fix the build after http://trac.webkit.org/changeset/169655
454
455         Unfortunately, the fix is very fragile, and will likely not work for some SDKs
456         or possibly local headers - all OS versions have multiple SecBsse.h headers with
457         different definitions for SecIdentityRef.
458
459         We'll see.
460
461         * WebCore.exp.in:
462
463 2014-06-06  Dan Bernstein  <mitz@apple.com>
464
465         WebCore part of <rdar://problem/17095692> [iOS] Client-certificate authentication isn’t working
466         https://bugs.webkit.org/show_bug.cgi?id=133527
467
468         Reviewed by Darin Adler.
469
470         * WebCore.exp.in: Exported some Credential member functions.
471
472 2014-06-06  Dean Jackson  <dino@apple.com>
473
474         [iOS WebGL] Float texture extension has a slightly different name
475         https://bugs.webkit.org/show_bug.cgi?id=133580
476         <rdar://problem/17113451>
477
478         Reviewed by Brady Eidson.
479
480         Floating point textures were not available on iOS, because we were
481         looking for the wrong extension.
482
483         Covered by the Khronos test (and in LayoutTests):
484         conformance/extensions/oes-texture-float.html
485
486         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
487         (WebCore::Extensions3DOpenGL::supportsExtension): Look for GL_OES_texture_float
488         as well as GL_ARB_texture_float.
489         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
490         (WebCore::GraphicsContext3D::texImage2D): Increase the set of things skipped
491         on PLATFORM(IOS) since they are supported natively there.
492
493 2014-06-05  David Hyatt  <hyatt@apple.com>
494
495         REGRESSION: Hit testing of composited elements is broken in new multicolumn layout.
496         https://bugs.webkit.org/show_bug.cgi?id=133522 (<rdar://problem/17060556>)
497         
498         Reviewed by Simon Fraser.
499
500         Hit testing for the new columns doesn't care about compositing but does still
501         need a pagination layer set to work. The old column code didn't care about this
502         because it was top down (and wrong). The new code lets each layer paint and hit
503         test its own fragments, so having a pagination layer set suddenly becomes relevant
504         for composited layers.
505     
506         The solution is to cache whether or not the pagination layer crosses a compositing
507         boundary, and then to force call sites of enclosingPaginationLayer to pass an argument
508         indicating whether compositing layers should be included. Typically painting wants to
509         exclude them but hit testing wants to include them.
510
511         * page/FrameView.cpp:
512         (WebCore::updateLayerPositionFlags):
513         * rendering/RenderLayer.cpp:
514         (WebCore::RenderLayer::RenderLayer):
515         (WebCore::RenderLayer::updateLayerPositions):
516         (WebCore::RenderLayer::updatePagination):
517         (WebCore::transparencyClipBox):
518         (WebCore::RenderLayer::paintLayer):
519         (WebCore::RenderLayer::paintLayerContents):
520         (WebCore::RenderLayer::enclosingPaginationLayerInSubtree):
521         (WebCore::RenderLayer::collectFragments):
522         (WebCore::RenderLayer::paintTransformedLayerIntoFragments):
523         (WebCore::RenderLayer::hitTestLayer):
524         (WebCore::RenderLayer::hitTestTransformedLayerInFragments):
525         (WebCore::RenderLayer::calculateClipRects):
526         * rendering/RenderLayer.h:
527         * rendering/RenderLayerCompositor.cpp:
528         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
529
530 2014-06-06  Kiran  <kiran.guduru@samsung.com>
531
532         [MediaStream] 'get' prefix is missing for capabilities and constraints.
533         https://bugs.webkit.org/show_bug.cgi?id=133573
534
535         Reviewed by Eric Carlson.
536
537         Modified the existing MediaStreamTrack.html to test the changes.
538
539         As per the Media Capture and Streams spec method names constreaints and
540         capabilities should be prefixed by 'get'. So updated the method names.
541
542         * Modules/mediastream/MediaStreamTrack.cpp:
543         (WebCore::MediaStreamTrack::getConstraints):
544         (WebCore::MediaStreamTrack::getCapabilities):
545         (WebCore::MediaStreamTrack::constraints): Deleted.
546         (WebCore::MediaStreamTrack::capabilities): Deleted.
547         * Modules/mediastream/MediaStreamTrack.h:
548         * Modules/mediastream/MediaStreamTrack.idl:
549
550 2014-06-05  Brent Fulgham  <bfulgham@apple.com>
551
552         REGRESSION(169440): Repro crash when playing a video with captions
553         https://bugs.webkit.org/show_bug.cgi?id=133459
554         <rdar://problem/17079081>
555
556         Reviewed by Eric Carlson.
557
558         The change I made in r169440 introduced a crash for paint-on captions. This
559         resolves the problem as follows:
560         1. No longer attempt to modify the start/endTime in the TextTrack implementation.
561         2. Check for extensions to existing cues when we are about to add new arriving
562            cues. If they extend a current pending cue, don't set an end-time for the
563            pending cue, and throw away the new duplicate. Otherwise set the end time
564            as previously and continue.
565
566         * html/track/TextTrack.cpp:
567         (WebCore::TextTrack::hasCue): Remove 'doesExtendCue' case since this is
568         no longer possible.
569         * platform/graphics/InbandTextTrackPrivateClient.h:
570         (WebCore::GenericCueData::doesExtendCueData): Added.
571         * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
572         (WebCore::InbandTextTrackPrivateAVF::processCue): Check for cues extending
573         other cues and handle appropriately.
574
575 2014-06-06  Brent Fulgham  <bfulgham@apple.com>
576
577         ROLLOUT: r169630: Caused a retain cycle.
578         https://bugs.webkit.org/show_bug.cgi?id=133463
579         <rdar://problem/17098100>
580
581         Rolling out this change as it introduced a retain cycle.
582
583         * Modules/mediacontrols/MediaControlsHost.cpp:
584         (WebCore::MediaControlsHost::setControllerJSObject): Deleted.
585         * Modules/mediacontrols/MediaControlsHost.h:
586         (WebCore::MediaControlsHost::controllerJSValue):
587         (WebCore::MediaControlsHost::setControllerJSValue):
588         (WebCore::MediaControlsHost::controllerJSObject): Deleted.
589         * html/HTMLMediaElement.cpp:
590         (WebCore::HTMLMediaElement::parseAttribute):
591
592 2014-06-05  Dean Jackson  <dino@apple.com>
593
594         StyleResolver doesn't compile without CSS_GRID_LAYOUT enabled
595         https://bugs.webkit.org/show_bug.cgi?id=133568
596
597         Reviewed by Tim Horton.
598
599         * css/StyleResolver.cpp:
600         (WebCore::isDisplayGridBox): Add UNUSED_PARAM.
601
602 2014-06-05  Mihnea Ovidenie  <mihnea@adobe.com>
603
604         [CSSRegions] Region box incorrectly overlaps floating box
605         https://bugs.webkit.org/show_bug.cgi?id=133545
606
607         Reviewed by David Hyatt.
608
609         A region box creates a BFC and it should not overlap a floating box in the same formatting context: http://www.w3.org/TR/CSS21/visuren.html#bfc-next-to-float
610
611         Test: fast/regions/region-as-bfc-avoids-float.html
612
613         * rendering/RenderBlock.cpp:
614         (WebCore::RenderBlock::avoidsFloats):
615
616 2014-06-05  Yoav Weiss  <yoav@yoav.ws>
617
618         Align srcset parser with recent spec changes
619         https://bugs.webkit.org/show_bug.cgi?id=133504
620
621         Reviewed by Darin Adler.
622
623         New tests were added to fast/hidpi/image-srcset-invalid-descriptor.html
624
625         The srcset parser changes align it with the spec:
626         http://picture.responsiveimages.org/#parse-srcset-attr.
627         The spec changes are meant to give the parser better future
628         compatibility, and enable it to work well with the 'w' descriptor, the
629         soon to be added 'h' descriptor and function descriptors (e.g.
630         future-descriptor(a, b, c) ).
631
632         * CMakeLists.txt:
633         * WebCore.vcxproj/WebCore.vcxproj:
634         * WebCore.vcxproj/WebCore.vcxproj.filters:
635         * WebCore.xcodeproj/project.pbxproj:
636         * html/HTMLImageElement.cpp:
637         (WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
638         (WebCore::HTMLImageElement::parseAttribute):
639         * html/HTMLImageElement.h:
640         * html/parser/HTMLParserIdioms.h:
641         (WebCore::isHTMLSpace):
642         (WebCore::isComma):
643         (WebCore::isHTMLSpaceOrComma):
644         * html/parser/HTMLPreloadScanner.cpp:
645         (WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
646         * html/parser/HTMLSrcsetParser.cpp:
647         (WebCore::compareByDensity):
648         (WebCore::appendDescriptorAndReset):
649         (WebCore::appendCharacter):
650         (WebCore::isEOF):
651         (WebCore::tokenizeDescriptors):
652         (WebCore::stringViewToFloat):
653         (WebCore::stringViewToInt):
654         (WebCore::parseDescriptors):
655         (WebCore::parseImageCandidatesFromSrcsetAttribute):
656         (WebCore::pickBestImageCandidate):
657         (WebCore::bestFitSourceForImageAttributes):
658         (WebCore::compareByScaleFactor): Deleted.
659         (WebCore::parseImagesWithScaleFromSrcsetAttribute): Deleted.
660         * html/parser/HTMLSrcsetParser.h:
661         (WebCore::DescriptorParsingResult::DescriptorParsingResult):
662         (WebCore::DescriptorParsingResult::hasDensity):
663         (WebCore::DescriptorParsingResult::hasWidth):
664         (WebCore::DescriptorParsingResult::hasHeight):
665         (WebCore::DescriptorParsingResult::density):
666         (WebCore::DescriptorParsingResult::resourceWidth):
667         (WebCore::DescriptorParsingResult::resourceHeight):
668         (WebCore::DescriptorParsingResult::setResourceWidth):
669         (WebCore::DescriptorParsingResult::setResourceHeight):
670         (WebCore::DescriptorParsingResult::setDensity):
671         (WebCore::ImageCandidate::ImageCandidate):
672         (WebCore::ImageCandidate::toString):
673         (WebCore::ImageCandidate::url):
674         (WebCore::ImageCandidate::setDensity):
675         (WebCore::ImageCandidate::density):
676         (WebCore::ImageCandidate::resourceWidth):
677         (WebCore::ImageCandidate::srcOrigin):
678         (WebCore::ImageCandidate::isEmpty):
679         (WebCore::ImageWithScale::ImageWithScale): Deleted.
680         (WebCore::ImageWithScale::imageURL): Deleted.
681         (WebCore::ImageWithScale::scaleFactor): Deleted.
682         * html/parser/ParsingUtilities.h: Renamed from Source/WebCore/html/track/ParsingUtilities.h.
683         (skipExactly):
684         (skipUntil):
685         (skipWhile):
686         (reverseSkipWhile):
687
688 2014-06-05 Wenson Hsieh  <wenson_hsieh@apple.com>
689
690         Current media controls look different from previous media controls. Adjusted CSS to make media elements more similar by adding padding, adjusting hues/svg, resizing elements, etc.
691
692         https://bugs.webkit.org/show_bug.cgi?id=133521
693
694         Reviewed by Eric Carlson.
695
696         The main issues:
697         - The widths between elements of both audio and video players are incorrect.
698         - The hues of audio player elements are incorrect.
699         - The hues of video player elements are content dependent (refer to full-screen mode), and this cannot be exactly replicated using just css. This patch only attempts to make them more similar.
700         - The height of the audio player is incorrect.
701
702         Test: platform/ios-sim/media/audio-width.html
703
704         * Modules/mediacontrols/mediaControlsiOS.css: Updated style elements for audio/video elements.
705         (::-webkit-media-controls): Enforce a minimum width on audio/video controls.
706         (audio): Enforce a minimum width on audio elements.
707         (audio::-webkit-media-controls): see below
708         (audio::-webkit-media-controls-wireless-playback-picker-button): modified SVG, hue and width/height.
709         (audio::-webkit-media-controls-panel): adjusted hue, added left/right padding.
710         (audio::-webkit-media-controls-fullscreen-button): removed. There's no fullscreen for audio anyways.
711         (audio::-webkit-media-controls-current-time-display): adjusted font size, added left padding.
712         (audio::-webkit-media-controls-time-remaining-display): adjusted font size, added right padding.
713
714         (video::-webkit-media-controls-panel): adjusted hue, added left/right padding.
715         (video::-webkit-media-controls-current-time-display): added left padding.
716         (video::-webkit-media-controls-time-remaining-display): added right padding.
717         (video::-webkit-media-controls-wireless-playback-picker-button): modified SVG, hue, opacity and width/height.
718         (video::-webkit-media-controls-fullscreen-button): modified SVG, hue, opacity, and width/height. In particular, made the svg seem sharper.
719         (video::-webkit-media-controls-play-button): modified SVG, hue, opacity, and width/height.
720
721 2014-06-05  Commit Queue  <commit-queue@webkit.org>
722
723         Unreviewed, rolling out r169570.
724         https://bugs.webkit.org/show_bug.cgi?id=133565
725
726         It breaks Baidu (Requested by benjaminp on #webkit).
727
728         Reverted changeset:
729
730         "[iOS] Start ignoring common bogus viewport parameters"
731         https://bugs.webkit.org/show_bug.cgi?id=133466
732         http://trac.webkit.org/changeset/169570
733
734 2014-06-05  Michael Timbrook  <timbrook@apple.com>
735
736         AX: Add support for ARIA 1.1 'none' role
737         https://bugs.webkit.org/show_bug.cgi?id=133367
738
739         Reviewed by Chris Fleizach.
740
741         Added support for the 'none' role by added a lookup for it to go to PresentationalRole
742         Test: accessibility/aria-none-role.html
743
744         * accessibility/AccessibilityObject.cpp:
745         (WebCore::initializeRoleMap):
746
747 2014-06-05  Joanmarie Diggs  <jdiggs@igalia.com>
748
749         AX: [ATK] Children of tables and lists with role='presentation' should each be exposed as if they were div elements
750         https://bugs.webkit.org/show_bug.cgi?id=133133
751
752         Reviewed by Chris Fleizach.
753
754         When a table or list has role='presentation', accessibility is "ignored"
755         for that element, but not for the required children. The default roles
756         for the children (CellRole and ListItemRole) do not make sense without
757         the parent, therefore map them to DivRole in ATK if they inherit the
758         presentational role.
759
760         Test: accessibility/aria-inherits-presentational.html
761
762         * accessibility/AccessibilityObject.h:
763         (WebCore::AccessibilityObject::inheritsPresentationalRole):
764         * accessibility/AccessibilityRenderObject.cpp:
765         (WebCore::AccessibilityRenderObject::inheritsPresentationalRole):
766         * accessibility/AccessibilityRenderObject.h:
767         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
768         (atkRole):
769
770 2014-06-05  Brent Fulgham  <bfulgham@apple.com>
771
772         REGRESSION (r167962): Out of bounds read in JSC::StructureIDTable::get() 
773         https://bugs.webkit.org/show_bug.cgi?id=133463
774         <rdar://problem/17098100>
775
776         Reviewed by Dean Jackson.
777
778         Revise MediaControllerHost implementation so that it holds a Strong
779         reference to the JavaScript 'Controller' object it mirrors. The
780         MediaControllerHost is constructed when we create an HTMLMediaElement,
781         and is the logical place to retain ownership of the JS object so that
782         it does not get garbage collected as long as HTMLMediaElement exists.
783
784         * Modules/mediacontrols/MediaControlsHost.cpp:
785         (WebCore::MediaControlsHost::setControllerJSObject): Create a strong
786         reference to the JavaScript Controller object.
787         * Modules/mediacontrols/MediaControlsHost.h: Use JSC::Strong to hold a
788         JSObject, rather than a bare JSValue.
789         (WebCore::MediaControlsHost::controllerJSObject): Change name to reflect
790         that we are working with JSObjects, not JSValues.
791         (WebCore::MediaControlsHost::controllerJSValue): Deleted.
792         (WebCore::MediaControlsHost::setControllerJSValue): Deleted.
793         * html/HTMLMediaElement.cpp:
794         (WebCore::HTMLMediaElement::parseAttribute): Revise for changed method
795         signature.
796
797 2014-06-05  Benjamin Poulain  <bpoulain@apple.com>
798
799         [iOS][WK2] Add device orientation
800         https://bugs.webkit.org/show_bug.cgi?id=133530
801
802         Reviewed by Tim Horton.
803
804         Previously, WebCore was getting the orientation directly from the WebKit layer.
805         This had to be done during the frame creation and was very fragile.
806
807         Frame is changed to pull the value from the chrome client. That way we avoid races
808         and we can maintain a single value for all frames.
809
810         Sending the values to all the subframes is aslo done here so that we do not have to repeat
811         it in both WebKit layers.
812
813         * WebCore.exp.in:
814         * loader/EmptyClients.h:
815         * page/ChromeClient.h:
816         * page/Frame.cpp:
817         (WebCore::Frame::Frame):
818         (WebCore::Frame::orientationChanged):
819         (WebCore::Frame::orientation):
820         (WebCore::Frame::sendOrientationChangeEvent): Deleted.
821         * page/Frame.h:
822         (WebCore::Frame::orientation): Deleted.
823
824 2014-06-05  Timothy Horton  <timothy_horton@apple.com>
825
826         Fix the !CACHE_SUBIMAGES build
827
828         * platform/graphics/cg/GraphicsContextCG.cpp:
829         (WebCore::GraphicsContext::drawNativeImage):
830
831 2014-06-05  Yusuke Suzuki  <utatane.tea@gmail.com>
832
833         CSS JIT: Clean up StackAllocator
834         https://bugs.webkit.org/show_bug.cgi?id=133506
835
836         Reviewed by Benjamin Poulain.
837
838         Cleaning up CSS JIt StackAllocator code. Sharing push / pop code and
839         using information provided by MacroAssembler more aggressively
840         to drop ifdefs.
841
842         * cssjit/StackAllocator.h:
843         (WebCore::StackAllocator::allocateUninitialized):
844         (WebCore::StackAllocator::push):
845         (WebCore::StackAllocator::pop):
846         (WebCore::StackAllocator::popAndDiscard):
847         (WebCore::StackAllocator::popAndDiscardUpTo):
848         (WebCore::StackAllocator::alignStackPreFunctionCall):
849         (WebCore::StackAllocator::unalignStackPostFunctionCall):
850         (WebCore::StackAllocator::stackUnitInBytes):
851
852 2014-06-05  Zalan Bujtas  <zalan@apple.com>
853
854         Subpixel rendering: border-radius painting falls back to rectangle when the snapped rounded rect becomes non-renderable.
855         https://bugs.webkit.org/show_bug.cgi?id=133491
856
857         Reviewed by Simon Fraser.
858
859         Pixel snapping can change the rectangle's size when it is on a certain subpixel position. (usually it does not)
860         This patch ensures that the snapped rect is still renderable by adjusting the radii as well.
861
862         Test: fast/borders/hidpi-border-radius-with-subpixel-margin-not-renderable.html
863
864         * platform/graphics/RoundedRect.cpp:
865         (WebCore::RoundedRect::Radii::scale):
866         (WebCore::RoundedRect::pixelSnappedRoundedRectForPainting):
867         * platform/graphics/RoundedRect.h:
868
869 2014-06-05  Commit Queue  <commit-queue@webkit.org>
870
871         Unreviewed, rolling out r169587.
872         https://bugs.webkit.org/show_bug.cgi?id=133552
873
874         Calls a pure virtual method, crashes (Requested by ap on
875         #webkit).
876
877         Reverted changeset:
878
879         "WebKit should adopt journal_mode=wal for all SQLite
880         databases."
881         https://bugs.webkit.org/show_bug.cgi?id=133496
882         http://trac.webkit.org/changeset/169587
883
884 2014-06-05  Frédéric Wang  <fred.wang@free.fr>
885
886         Apply Character-level mirroring to stretchy operators in RTL mode.
887         https://bugs.webkit.org/show_bug.cgi?id=130839
888
889         Reviewed by Chris Fleizach.
890
891         We add support for character-level mirroring for stretchy MathML operators in RTL mode.
892         Glyph-level mirroring (via the rtlm OpenType feature) will be handled in bug 130840.
893
894         Test: mathml/presentation/stretchy-rtl.html
895
896         * rendering/mathml/RenderMathMLOperator.cpp: reorganize the Unicode stretchyCharacters table to make mirroring easy.
897         (WebCore::RenderMathMLOperator::computePreferredLogicalWidths): pass the right boolean to glyphDataForCharacter.
898         (WebCore::RenderMathMLOperator::getDisplayStyleLargeOperator): ditto
899         (WebCore::RenderMathMLOperator::findStretchyData): ditto and change the index for the stretchyCharacters fallback.
900         (WebCore::RenderMathMLOperator::updateStyle): pass the right boolean to glyphDataForCharacter.
901         (WebCore::RenderMathMLOperator::paint): remove the FIXME comment.
902         (WebCore::RenderMathMLOperator::paintVerticalGlyphAssembly): switch the leading/trailing space in RTL mode.
903
904 2014-06-05  Zalan Bujtas  <zalan@apple.com>
905
906         Subpixel rendering: Buttons in default media controls shift vertically when controls fade in or out.
907         https://bugs.webkit.org/show_bug.cgi?id=133488
908
909         Reviewed by Simon Fraser.
910
911         Filter effects are not subpixel aware yet. They paint to integrally sized image buffers.
912         In order to ensure that the content is rendered to the the same position on the filter 
913         source context as if there was no filter, the repaint rects need to be adjusted to match with
914         the internal filter snapping (enclosingIntRect).
915         This is a temporary change until after filter effects get subpixelized.
916
917         However, this changeset regresses RenderNameFlow clipping when the content is on subpixel position
918         and filter effect is present. Instead of adding the failing test cases to TestExpectations, I removed
919         the video controls from the <video> to make the tests pass, when possible (they just happen to have <video>)
920         and filed webkit.org/b/133523 to track the regression.
921
922         Test: css3/filters/filter-is-on-subpixel-position.html
923
924         * rendering/RenderLayer.cpp:
925         (WebCore::RenderLayer::setupFilters):
926
927 2014-06-05  Kiran  <kiran.guduru@samsung.com>
928
929         [MediaStream] MediaStream.addTrack should not check for tracks ended state.
930         https://bugs.webkit.org/show_bug.cgi?id=133510
931
932         Reviewed by Eric Carlson.
933
934         Adding and removing of tracks to a MediaStream should not have dependency
935         on tracks state. So the check for MediaStreamTrack's ended state has been
936         removed while adding a track in MediaStreamPrivate.cpp.
937
938         Test: fast/mediastream/MediaStream-add-ended-tracks.html
939
940         * platform/mediastream/MediaStreamPrivate.cpp:
941         (WebCore::MediaStreamPrivate::addTrack):
942
943 2014-06-05  Gwang Yoon Hwang  <yoon@igalia.com>
944
945         [GTK] Remove ScrollViewGtk.cpp
946         https://bugs.webkit.org/show_bug.cgi?id=133535
947
948         Reviewed by Carlos Garcia Campos.
949
950         Because GTK+ WK1 was removed, we don't have to consider special cases
951         handled in ScrollViewGtk.cpp.
952
953         No new tests are necessary because there is no behavior change.
954
955         * PlatformGTK.cmake:
956         * platform/ScrollView.cpp:
957         (WebCore::ScrollView::setScrollbarModes):
958         (WebCore::ScrollView::visibleContentRectInternal):
959         * platform/gtk/ScrollViewGtk.cpp: Removed.
960
961 2014-06-05  Frédéric Wang  <fred.wang@free.fr>
962
963         MathML operators not stretched horizontally
964         https://bugs.webkit.org/show_bug.cgi?id=72828
965
966         Reviewed by Chris Fleizach.
967
968         This patch adds basic horizontal stretching rules for operators inside
969         an <munder>, <mover> or <munderover> elements. The stretchy operators
970         in such an element stretch to cover the size of the non-stretchy
971         operators. This only works when fonts that have an OpenType MATH table
972         are used.
973
974         Tests: mathml/opentype/horizontal-LatinModern.html
975                mathml/opentype/opentype-stretchy-horizontal.html
976                mathml/opentype/horizontal-LatinModern-munderover.html
977
978         * rendering/mathml/RenderMathMLOperator.cpp:
979         (WebCore::MathMLOperatorDictionary::ExtractKeyHorizontal): We add an ordered list of operators that have horizontal stretch direction.
980         (WebCore::RenderMathMLOperator::RenderMathMLOperator): init m_Vertical
981         (WebCore::RenderMathMLOperator::SetOperatorProperties): set m_Vertical by checking whether the operator is in the horizontalOperators list.
982         (WebCore::RenderMathMLOperator::stretchTo): We do not stretch vertically
983         if the operator has horizontal direction.
984         We also add a new version stretchTo(LayoutUnit width) for horizontal stretching only.
985         (WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Handle horizontal stretching: the maximumGlyphWidth is the maximum of
986         the base size or of the stretch size.
987         (WebCore::RenderMathMLOperator::getDisplayStyleLargeOperator): Add an ASSERT to ensure that this function is only called for vertical stretching.
988         (WebCore::RenderMathMLOperator::findStretchyData): Add an ASSERT to ensure that this function is not called to get the maximum width of a horizontal stretchy operator.
989         We take into account m_isVertical when calling getMathVariants or computing sizes.
990         There is not any Unicode-only construction for horizontal stretching, so a MATH table is required for horizontal stretching.
991         (WebCore::RenderMathMLOperator::updateStyle): Ignore some code paths specific to vertical stretching and take into account the m_Vertical parameters.
992         For horizontal stretching, the m_stretch*Baseline parameters are now updated to match the metrics of the size variant or of the maximum of the parts in the glyph assembly.
993         (WebCore::RenderMathMLOperator::computeLogicalHeight): logicalHeight is now explicitely the sum of m_stretchHeightAboveBaseline and m_stretchDepthBelowBaseline, since it can be different from the stretchSize() in horizontal stretching.
994         (WebCore::RenderMathMLOperator::paintGlyph): handle trimming for horizontal stretching.
995         (WebCore::RenderMathMLOperator::fillWithVerticalExtensionGlyph): rename the function and ensure it is only call for m_isVertical.
996         (WebCore::RenderMathMLOperator::fillWithHorizontalExtensionGlyph): same as fillWithVerticalExtensionGlyph, but for horizontal stretching.
997         (WebCore::RenderMathMLOperator::paint): For glyph assembly, choose between paintVerticalGlyphAssembly or paintHorizontalGlyphAssembly.
998         (WebCore::RenderMathMLOperator::paintVerticalGlyphAssembly): rename the function and ensure it is only call for m_isVertical.
999         (WebCore::RenderMathMLOperator::paintHorizontalGlyphAssembly): same as paintVerticalGlyphAssembly but for horizontal stretching.
1000         * rendering/mathml/RenderMathMLOperator.h: we add a m_isVertical member to indicate the stretch direction and a m_stretchWidth to indicate the width of the stretchy character.
1001         We define the horizontal counterparts of fillWith*ExtensionGlyph, paint*GlyphAssembly, GlyphPaintTrimming  StretchyData.
1002         Finally stretchSize() takes into account the stretch direction.
1003         * rendering/mathml/RenderMathMLUnderOver.cpp: We override the layout() function to stretch munderover children horizontally.
1004         (WebCore::RenderMathMLUnderOver::layout):
1005         * rendering/mathml/RenderMathMLUnderOver.h: we declare layout().
1006
1007 2014-06-04  Bem Jones-Bey  <bjonesbe@adobe.com>
1008
1009         [CSS Shapes] Image lifetime is not properly handled for gradient shapes
1010         https://bugs.webkit.org/show_bug.cgi?id=133414
1011
1012         Reviewed by Simon Fraser.
1013
1014         Refactor computedShape() and it's helpers to be able to properly
1015         manage the lifetime of the image returned from StyleImage.
1016
1017         This is a port of a Blink patch by Hans Muller.
1018
1019         Test: fast/shapes/shape-outside-floats/shape-outside-uncached-gradient.html
1020
1021         * rendering/shapes/ShapeOutsideInfo.cpp:
1022         (WebCore::ShapeOutsideInfo::createShapeForImage): Properly handle the
1023             lifetime of the image. Changed to use StyleImage::image() to get
1024             the image in all cases there's no need to special case cached
1025             images.
1026         (WebCore::ShapeOutsideInfo::computedShape): Call createShapeForImage.
1027         (WebCore::getShapeImageAndRect): Deleted.
1028         * rendering/shapes/ShapeOutsideInfo.h:
1029
1030 2014-06-04  Bem Jones-Bey  <bjonesbe@adobe.com>
1031
1032         [CSS Shapes] Fix off by one in creating a RasterShape
1033         https://bugs.webkit.org/show_bug.cgi?id=133499
1034
1035         Reviewed by Darin Adler.
1036
1037         Test: fast/shapes/shape-outside-floats/shape-outside-floats-shape-margin-crash.html
1038
1039         * rendering/shapes/RasterShape.cpp:
1040         (WebCore::RasterShapeIntervals::computeShapeMarginIntervals):
1041             marginY1 is supposed to be an inclusive endpoint, however, maxY()
1042             is an exclusive endpoint. This simply changes marginY1 into an
1043             exclusive endpoint.
1044
1045 2014-06-04  Benjamin Poulain  <bpoulain@apple.com>
1046
1047         [iOS][WK2] Restore the visual scroll position instead of the dom scroll position when restoring states from the history
1048         https://bugs.webkit.org/show_bug.cgi?id=133490
1049
1050         Reviewed by Tim Horton.
1051
1052         Expose the WebKit1 parameter "ScaleIsInitial". It is used for a similar concept in WebKit2 (userHasChangedPageScaleFactor).
1053
1054         Add "exposedContentPosition", which is the scroll position of the exposed rect.
1055
1056         * history/HistoryItem.h:
1057         (WebCore::HistoryItem::exposedContentPosition):
1058         (WebCore::HistoryItem::setExposedContentPosition):
1059         (WebCore::HistoryItem::setScaleIsInitial):
1060         * loader/HistoryController.cpp:
1061         (WebCore::HistoryController::saveScrollPositionAndViewStateToItem):
1062
1063 2014-06-04  Alex Christensen  <achristensen@webkit.org>
1064
1065         Enable WebGL on Windows.
1066         https://bugs.webkit.org/show_bug.cgi?id=133503
1067
1068         Reviewed by Brent Fulgham.
1069
1070         No new tests, but we should enable the webgl tests soon.
1071
1072         * html/canvas/WebGLRenderingContext.cpp:
1073         (WebCore::WebGLRenderingContext::markContextChanged):
1074         Check if the context and RenderBox are accelerated to use accelerated code path.
1075         * html/canvas/WebGLRenderingContext.h:
1076         Disable accelerated compositing on WebGL canvases until that works.
1077         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
1078         (WebCore::GraphicsContext3D::reshapeFBOs):
1079         Compile fix after r166563.
1080
1081 2014-06-04  Benjamin Poulain  <benjamin@webkit.org>
1082
1083         Regression(r169547): Crash in WebCore::styleForFirstLetter() while loading http://thenextweb.com/apple/2014/02/21/apple-confirms-acquired-testflight-creator-burstly/
1084         https://bugs.webkit.org/show_bug.cgi?id=133500
1085
1086         Reviewed by Antti Koivisto.
1087
1088         Unlike the other tree marking optimization, adding HasPseudoStyle() on an element style
1089         during style resolution must be conservative and not set the flag unless every other filter
1090         matched first.
1091
1092         After r169547, the SelectorChecker was setting flags on HasPseudoStyle() during the pseudo
1093         element matching. If that passed but the remaining filter did not match, the element style
1094         could have the flag "FIRST_LETTER" while not being able to resolve a style for "FIRST_LETTER".
1095
1096         When the layout code was creating the renderer, it would find the FIRST_LETTER flag on the main style
1097         and try to get the specific style for FIRST_LETTER. Since no rule would resolve for FIRST_LETTER,
1098         the style would be null and the code would be crashing when accessing its parameters.
1099
1100         This patch fixes the issue by moving the style marking for pseudo element at the end of the matching.
1101
1102         Test: fast/css/first-letter-on-non-matching-selectors.html
1103
1104         * css/SelectorChecker.cpp:
1105         (WebCore::SelectorChecker::match):
1106         (WebCore::SelectorChecker::matchRecursively):
1107         * css/SelectorChecker.h:
1108         (WebCore::SelectorChecker::match): Deleted.
1109
1110 2014-06-04  Eric Carlson  <eric.carlson@apple.com>
1111
1112         [iOS] allow UA to specify network interface
1113         https://bugs.webkit.org/show_bug.cgi?id=133396
1114
1115         Reviewed by Jer Noble.
1116
1117         * html/HTMLMediaElement.cpp:
1118         (WebCore::HTMLMediaElement::mediaPlayerInterfaceName): Return settings->networkInterfaceName.
1119         * html/HTMLMediaElement.h:
1120
1121         * platform/graphics/MediaPlayer.cpp:
1122         (WebCore::MediaPlayer::mediaPlayerNetworkInterfaceName): Pass through the media element.
1123         * platform/graphics/MediaPlayer.h:
1124         (WebCore::MediaPlayerClient::mediaPlayerNetworkInterfaceName):
1125
1126         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1127         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): If the media player
1128             wants to use a specific netork interface name, pass it to the AVAsset allocator.
1129
1130 2014-06-03  Jon Honeycutt  <jhoneycutt@apple.com>
1131
1132         Pasting multiple photos on iOS only pastes one photo
1133
1134         <https://bugs.webkit.org/show_bug.cgi?id=133495>
1135         <rdar://problem/16138616>
1136
1137         Reviewed by Alexey Proskuryakov.
1138
1139         * editing/ios/EditorIOS.mm:
1140         (WebCore::Editor::pasteWithPasteboard):
1141         Create a WebContentReader. For each pasteboard item, get the document
1142         fragment for that item, and add it to the reader. If we fail to get
1143         the fragment from the delegate, fall back to using
1144         webContentFromPasteboard() as before.
1145
1146 2014-06-04  Myles C. Maxfield  <litherum@gmail.com>
1147
1148         Use references instead of pointers for non-optional arguments during text layout
1149         https://bugs.webkit.org/show_bug.cgi?id=133501
1150
1151         Reviewed by Tim Horton.
1152
1153         This patch applies some cleanup to InlineBox layout functions to take
1154         references instead of pointers where appropriate.
1155
1156         No new tests are necessary because there is no behavior change.
1157
1158         * rendering/InlineFlowBox.cpp:
1159         (WebCore::InlineFlowBox::computeLogicalBoxHeights): Make the function take a
1160         reference to the RootInlineBox instead of a pointer. This function does some
1161         rounding.
1162         (WebCore::InlineFlowBox::addTextBoxVisualOverflow): Make the function take a
1163         reference to the InlineTextBox instead of a pointer.
1164         (WebCore::InlineFlowBox::computeOverflow): Update call to addTextBoxVisualOverflow
1165         to pass a reference instead of a pointer.
1166         * rendering/RootInlineBox.cpp:
1167         (WebCore::RootInlineBox::alignBoxesInBlockDirection): Update call to
1168         computeLogicalBoxHeights to pass a reference instead of a pointer.
1169         (WebCore::RootInlineBox::ascentAndDescentForBox): Make the function take a
1170         reference to the InlineBox instead of a pointer.
1171         (WebCore::RootInlineBox::includeLeadingForBox): Make the function take a reference
1172         instead of a pointer.
1173         (WebCore::RootInlineBox::includeFontForBox): Ditto.
1174         (WebCore::RootInlineBox::includeGlyphsForBox): Ditto.
1175         (WebCore::RootInlineBox::includeMarginForBox): Ditto.
1176         * rendering/RootInlineBox.h: Move functions that are not externally called into
1177         a private: section. In addition, update function signatures to take references
1178         instead of pointers.
1179
1180 2014-05-27  Myles C. Maxfield  <mmaxfield@apple.com>
1181
1182         Lists styled with SVG fonts are not rendered as expected
1183         https://bugs.webkit.org/show_bug.cgi?id=133198
1184
1185         Reviewed by Simon Fraser.
1186
1187         There were a couple places in RenderListMarker and RenderMenuList that were
1188         implicitly creating TextRuns by passing a String to a function which
1189         expected a TextRun. Because TextRun has a constructor which takes a single
1190         String and isn't marked explicit, TextRuns were being created without
1191         any of the associated code that initializes the TextRun (such as creating
1192         a RenderingContext if necessary).
1193
1194         There is currently one more client of this code that needs to be fixed.
1195         This is in RenderThemeIOS::adjustMenuListButtonStyle(). However, fixing
1196         this will be a somewhat large change, and is out of scope for this patch.
1197         I will submit a follow-up patch that fixes this permanently. Once this is
1198         fixed, I can mark TextRun's constructors as explicit.
1199
1200         Test: svg/custom/list-items-with-svg-font-family.html
1201
1202         * platform/graphics/TextRun.h:
1203         (WebCore::TextRun::TextRun): Mark constructors as explicit.
1204         * rendering/RenderListMarker.cpp:
1205         (WebCore::RenderListMarker::computePreferredLogicalWidths): Call
1206         RenderBlock::constructTextRun.
1207         (WebCore::RenderListMarker::getRelativeMarkerRect): Ditto.
1208         * rendering/RenderMenuList.cpp:
1209         (RenderMenuList::updateOptionsWidth): Ditto.
1210         * rendering/RenderThemeIOS.mm:
1211         (WebCore::adjustInputElementButtonStyle): Instead of crashing, mark
1212         form controls rendered with SVG fonts as having 0 width. This isn't
1213         perfect, but fixing this is out of scope for this patch.
1214
1215 2014-06-04  Andreas Kling  <akling@apple.com>
1216
1217         WebKit should adopt journal_mode=wal for all SQLite databases.
1218         <https://webkit.org/b/133496>
1219         <rdar://problem/15600186>
1220
1221         We already had code to enable write-ahead logging, but it didn't work
1222         since calling SQLiteStatement::step() without first calling prepare()
1223         is a no-op.
1224
1225         Converted it to use into a simple executeCommand() instead.
1226
1227         Reviewed by Brady Eidson.
1228
1229         * platform/sql/SQLiteDatabase.cpp:
1230         (WebCore::SQLiteDatabase::open):
1231
1232 2014-06-04  Radu Stavila  <stavila@adobe.com>
1233
1234         REGRESSION: [CSS Regions] Regions with overflow:auto generate scrollbars even if the content flows into the following regions and as such, should not be scrolled
1235         https://bugs.webkit.org/show_bug.cgi?id=133481
1236
1237         Reviewed by Antti Koivisto.
1238
1239         When enlarging the layout overflow of a scrollable region, the portion of the content that flows
1240         in the region must be taken into consideration. If the content continues to flow into the next
1241         region, the layout overflow of the current region must not be enlarged.
1242
1243         Test: fast/regions/scrollable-first-region.html
1244
1245         * rendering/RenderFlowThread.cpp:
1246         (WebCore::RenderFlowThread::addRegionsOverflowFromChild):
1247
1248 2014-06-03  Benjamin Poulain  <benjamin@webkit.org>
1249
1250         Fix some corner cases of :hover and :active in quirks mode
1251         https://bugs.webkit.org/show_bug.cgi?id=133493
1252
1253         Reviewed by Andreas Kling.
1254
1255         Previously, the quirks mode of :hover and :active were evaluated from the SelectorFragment
1256         in fragmentOnlyMatchesLinksInQuirksMode(). There were two problems with that approach:
1257         1) The FragmentGenerator optimizes out some filter when they always match or can never match.
1258            Those fragment should still qualify :hover and :active, but they were lost
1259            for fragmentOnlyMatchesLinksInQuirksMode().
1260         2) Explicitely listing every attribute of SelectorFragment in fragmentOnlyMatchesLinksInQuirksMode()
1261            was extremly fragile. When :not() and :-webkit-any() were added, we forgot to update the quirks
1262            exceptions.
1263
1264         This patch moves the quirks mode exception code from the code generator to the Fragment generator.
1265         The useless filters are no longer ignored for the quirks, and we don't need to update the quirks mode detection
1266         with every change of SelectorFragment.
1267
1268         It is inefficient and ugly, but that is how that quirks is defined. It is only a problem for compilation,
1269         execution time remains unchanged.
1270
1271         * cssjit/SelectorCompiler.cpp:
1272         (WebCore::SelectorCompiler::SelectorFragment::SelectorFragment):
1273         (WebCore::SelectorCompiler::addPseudoClassType):
1274         (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
1275         (WebCore::SelectorCompiler::pseudoClassOnlyMatchesLinksInQuirksMode):
1276         (WebCore::SelectorCompiler::constructFragments):
1277         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSpecialFailureInQuirksModeForActiveAndHoverIfNeeded):
1278         (WebCore::SelectorCompiler::fragmentOnlyMatchesLinksInQuirksMode): Deleted.
1279
1280 2014-06-03  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1281
1282         Need to check invalid scheme in navigator content utils 
1283         https://bugs.webkit.org/show_bug.cgi?id=133296
1284
1285         Reviewed by Darin Adler.
1286
1287         * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
1288         (WebCore::verifyProtocolHandlerScheme): Just fix a wrong typo.
1289
1290 2014-06-03  Timothy Horton  <timothy_horton@apple.com>
1291
1292         WebKit2 View Gestures (Zoom): Can show unpainted regions when zoom-pinching-out
1293         https://bugs.webkit.org/show_bug.cgi?id=133472
1294         <rdar://problem/15686848>
1295
1296         Reviewed by Simon Fraser.
1297
1298         * WebCore.exp.in:
1299
1300 2014-06-03  Yoav Weiss  <yoav@yoav.ws>
1301
1302         Refactor the srcset parser into its own file
1303         https://bugs.webkit.org/show_bug.cgi?id=133480
1304
1305         Reviewed by Andreas Kling.
1306
1307         No new tests, since this patch doesn't change the parser's behavior.
1308
1309         This patch moves the srcset parser into its own file,
1310         in order to prepare the code for alignment with recent spec changes.
1311
1312         * CMakeLists.txt:
1313         * html/HTMLImageElement.cpp:
1314         * html/parser/HTMLParserIdioms.cpp:
1315         (WebCore::compareByScaleFactor): Deleted.
1316         (WebCore::parseDescriptors): Deleted.
1317         (WebCore::parseImagesWithScaleFromSrcsetAttribute): Deleted.
1318         (WebCore::bestFitSourceForImageAttributes): Deleted.
1319         * html/parser/HTMLParserIdioms.h:
1320         (WebCore::ImageWithScale::ImageWithScale): Deleted.
1321         (WebCore::ImageWithScale::imageURL): Deleted.
1322         (WebCore::ImageWithScale::scaleFactor): Deleted.
1323         * html/parser/HTMLPreloadScanner.cpp:
1324         * html/parser/HTMLSrcsetParser.cpp: Added.
1325         (WebCore::compareByScaleFactor):
1326         (WebCore::parseDescriptors):
1327         (WebCore::parseImagesWithScaleFromSrcsetAttribute):
1328         (WebCore::bestFitSourceForImageAttributes):
1329         * html/parser/HTMLSrcsetParser.h: Added.
1330         (WebCore::ImageWithScale::ImageWithScale):
1331         (WebCore::ImageWithScale::imageURL):
1332         (WebCore::ImageWithScale::scaleFactor):
1333
1334 2014-06-03  Mario Sanchez Prada  <mario.prada@samsung.com>
1335
1336         [ATK] accessibility/textarea-selected-text-range.html is failing
1337         https://bugs.webkit.org/show_bug.cgi?id=133479
1338
1339         Reviewed by Chris Fleizach.
1340
1341         Implement atk_text_set_caret_offset() in terms of
1342         atk_text_set_selection() for zero-length selections.
1343
1344         No new tests needed, the following test should just start
1345         passing again now: accessibility/textarea-selected-text-range.html.
1346
1347         * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
1348         (webkitAccessibleTextSetCaretOffset): Reimplemented this function
1349         in terms of webkitAccessibleTextSetSelection().
1350
1351 2014-06-03  Alex Christensen  <achristensen@webkit.org>
1352
1353         Corrected arm64 assertion in css jit.
1354
1355         Rubber stamped by Benjamin Poulain.
1356
1357         * cssjit/StackAllocator.h:
1358         (WebCore::StackAllocator::pop):
1359         Changed assertion from incorrectly matching x86_64 to using the correct minimum offset,
1360         taking into account that a stackUnitInBytes is used for two registers on arm64
1361         except the last stack unit, which could only be used for one register if there are
1362         an odd number of registers.
1363
1364 2014-06-03  Benjamin Poulain  <bpoulain@apple.com>
1365
1366         [iOS] Start ignoring common bogus viewport parameters
1367         https://bugs.webkit.org/show_bug.cgi?id=133466
1368         <rdar://problem/16203396>
1369
1370         Reviewed by Sam Weinig.
1371
1372         Incorrect viewports are spreading really quickly lately. We have to start ignoring
1373         some combinations of arguments as they are almost always used incorrectly, causing
1374         a poor user experience on those websites.
1375
1376         * dom/ViewportArguments.cpp:
1377         (WebCore::finalizeViewportArguments):
1378
1379 2014-06-03  Yusuke Suzuki  <utatane.tea@gmail.com>
1380
1381         CSS JIT: add support for the "any" pseudo class
1382         https://bugs.webkit.org/show_bug.cgi?id=133473
1383
1384         Reviewed by Benjamin Poulain.
1385
1386         Add support for the :any pseudo class.
1387
1388         Test: fast/selectors/pseudo-class-any.html
1389
1390         * cssjit/SelectorCompiler.cpp:
1391         (WebCore::SelectorCompiler::addPseudoClassType):
1392         (WebCore::SelectorCompiler::minimumRegisterRequirements):
1393         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
1394         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatchesAnyPseudoClass):
1395
1396 2014-06-02  Jer Noble  <jer.noble@apple.com>
1397
1398         Update PlatformTimeRanges to use MediaTime rather than doubles for time values.
1399         https://bugs.webkit.org/show_bug.cgi?id=133454
1400
1401         Reviewed by Eric Carlson.
1402
1403         PlatformTimeRanges will now use MediaTime, so operations at the platform level won't
1404         lose precision when converting to and from doubles and rational time values like CMTime.
1405
1406         * Modules/mediasource/SourceBuffer.cpp:
1407         (WebCore::currentTimeFudgeFactor):
1408         (WebCore::SourceBuffer::hasCurrentTime):
1409         (WebCore::SourceBuffer::hasFutureTime):
1410         (WebCore::SourceBuffer::canPlayThrough):
1411         * html/HTMLMediaElement.cpp:
1412         (WebCore::HTMLMediaElement::parseAttribute):
1413         * html/TimeRanges.cpp:
1414         (WebCore::TimeRanges::TimeRanges):
1415         (WebCore::TimeRanges::start):
1416         (WebCore::TimeRanges::end):
1417         (WebCore::TimeRanges::add):
1418         (WebCore::TimeRanges::contain):
1419         (WebCore::TimeRanges::find):
1420         (WebCore::TimeRanges::nearest):
1421         (WebCore::TimeRanges::totalDuration):
1422         * platform/graphics/MediaPlayerPrivate.h:
1423         (WebCore::MediaPlayerPrivateInterface::seekable):
1424         * platform/graphics/PlatformTimeRanges.cpp:
1425         (WebCore::PlatformTimeRanges::create):
1426         (WebCore::PlatformTimeRanges::PlatformTimeRanges):
1427         (WebCore::PlatformTimeRanges::invert):
1428         (WebCore::PlatformTimeRanges::start):
1429         (WebCore::PlatformTimeRanges::end):
1430         (WebCore::PlatformTimeRanges::add):
1431         (WebCore::PlatformTimeRanges::contain):
1432         (WebCore::PlatformTimeRanges::find):
1433         (WebCore::PlatformTimeRanges::nearest):
1434         (WebCore::PlatformTimeRanges::totalDuration):
1435         * platform/graphics/PlatformTimeRanges.h:
1436         (WebCore::PlatformTimeRanges::Range::Range):
1437         (WebCore::PlatformTimeRanges::Range::isPointInRange):
1438         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
1439         (WebCore::MediaPlayerPrivateAVFoundation::extraMemoryCost):
1440         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
1441         (WebCore::MediaPlayerPrivateAVFoundationCF::platformBufferedTimeRanges):
1442         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1443         (WebCore::MediaPlayerPrivateAVFoundationObjC::platformBufferedTimeRanges):
1444         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
1445         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekable):
1446         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::buffered): Deleted.
1447         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1448         (WebCore::MediaPlayerPrivateQTKit::buffered):
1449         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1450         (WebCore::MediaPlayerPrivateGStreamer::buffered):
1451         * platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
1452         (WebCore::MockMediaPlayerMediaSource::advanceCurrentTime):
1453
1454 2014-06-03  Benjamin Poulain  <bpoulain@apple.com>
1455
1456         [iOS][WK2] Align the highlight rects with device pixels
1457         https://bugs.webkit.org/show_bug.cgi?id=133464
1458
1459         Reviewed by Enrica Casucci.
1460
1461         Add utility functions to pixel align points and rects.
1462
1463         * WebCore.exp.in:
1464         * platform/graphics/FloatPoint.h:
1465         (WebCore::flooredToDevicePixels):
1466         (WebCore::ceiledToDevicePixels):
1467         * platform/graphics/FloatRect.cpp:
1468         (WebCore::enclosingRectExtendedToDevicePixels):
1469         * platform/graphics/FloatRect.h:
1470
1471 2014-06-03  Timothy Horton  <timothy_horton@apple.com>
1472
1473         Prepopulated tiles may never be unparented from TileGrids with aggressive tile retention on
1474         https://bugs.webkit.org/show_bug.cgi?id=133471
1475
1476         Reviewed by Simon Fraser.
1477
1478         * platform/graphics/ca/mac/TileController.h:
1479         * platform/graphics/ca/mac/TileGrid.h:
1480         (WebCore::TileGrid::TileCohortInfo::TileCohortInfo):
1481         * platform/graphics/ca/mac/TileGrid.mm:
1482         (WebCore::TileGrid::TileCohortInfo::timeUntilExpiration):
1483         (WebCore::TileGrid::cohortRemovalTimerFired):
1484         Factor timeUntilExpiration() out of cohortRemovalTimerFired().
1485
1486         (WebCore::TileGrid::revalidateTiles):
1487         Ensure that secondary tiles that never touch the primary coverage rect
1488         are still unparented eventually (after 2 seconds, the same lifetime we use
1489         for cohorts in non-aggressive retention).
1490         Schedule another revalidateTiles if we left parented secondary tiles behind.
1491
1492 2014-06-03  Timothy Horton  <timothy_horton@apple.com>
1493
1494         TileGrid::prepopulateRect populates the wrong tiles if scale != 1
1495         https://bugs.webkit.org/show_bug.cgi?id=133470
1496
1497         Reviewed by Simon Fraser.
1498
1499         * page/FrameView.cpp:
1500         (WebCore::FrameView::requestScrollPositionUpdate):
1501         * platform/graphics/ca/mac/TileGrid.mm:
1502         (WebCore::TileGrid::prepopulateRect):
1503         (WebCore::TileGrid::revalidateTiles):
1504         prepopulateRect takes rects in "content" coordinates, but when later passed to
1505         ensureTilesForRect, they're expected to be in the same coordinate space as the layer's
1506         visible rect, and are scaled up. So, apply the inverse scale to counter that.
1507
1508 2014-06-03  Timothy Horton  <timothy_horton@apple.com>
1509
1510         Minor TileCoverageMap refinements
1511         https://bugs.webkit.org/show_bug.cgi?id=133468
1512
1513         Reviewed by Simon Fraser.
1514
1515         * platform/graphics/ca/mac/TileController.mm:
1516         (WebCore::TileController::setContentsScale):
1517         * platform/graphics/ca/mac/TileCoverageMap.h:
1518         * platform/graphics/ca/mac/TileCoverageMap.mm:
1519         (WebCore::TileCoverageMap::TileCoverageMap):
1520         (WebCore::TileCoverageMap::setDeviceScaleFactor):
1521         Keep the TileCoverageMap's contentsScale at the device scale factor, so that it
1522         looks sharp on non-1x displays.
1523
1524         (WebCore::TileCoverageMap::update):
1525         Decrease the height available for the TileCoverageMap by the topContentInset;
1526         it's already being vertically offset by the topContentInset, but the height was
1527         not adjusted, so it would run off the bottom of the window.
1528
1529         * platform/graphics/ca/mac/TileGrid.mm:
1530         (WebCore::TileGrid::drawTileMapContents):
1531         If using aggressive tile retention (and thus not coloring tiles based on age),
1532         dim tiles that aren't in the visible cohort.
1533
1534 2014-06-03  Timothy Horton  <timothy_horton@apple.com>
1535
1536         Fix a typo, TileGrid::updateTilerLayerProperties
1537         https://bugs.webkit.org/show_bug.cgi?id=133474
1538
1539         Reviewed by Anders Carlsson.
1540
1541         * platform/graphics/ca/mac/TileController.mm:
1542         (WebCore::TileController::setAcceleratesDrawing):
1543         (WebCore::TileController::setTilesOpaque):
1544         (WebCore::TileController::setTileDebugBorderWidth):
1545         (WebCore::TileController::setTileDebugBorderColor):
1546         * platform/graphics/ca/mac/TileGrid.h:
1547         * platform/graphics/ca/mac/TileGrid.mm:
1548         (WebCore::TileGrid::updateTileLayerProperties):
1549         (WebCore::TileGrid::updateTilerLayerProperties):
1550         s/updateTilerLayerProperties/updateTileLayerProperties/g
1551
1552 2014-06-03  Carlos Garcia Campos  <cgarcia@igalia.com>
1553
1554         [SOUP] ResourceLoadTiming.responseStart is always 0
1555         https://bugs.webkit.org/show_bug.cgi?id=133469
1556
1557         Reviewed by Sergio Villar Senin.
1558
1559         * platform/network/soup/ResourceHandleSoup.cpp:
1560         (WebCore::sendRequestCallback): Record the responseStart time.
1561
1562 2014-06-02  David Kilzer  <ddkilzer@apple.com>
1563
1564         [iOS] WebCore fails to build: platform/network/mac/ResourceHandleMac.mm:729:62: error: use of undeclared identifier '_CFURLConnectionCopyTimingData'
1565         <http://webkit.org/b/133445>
1566         <rdar://problem/17090035>
1567
1568         Reviewed by Alexey Proskuryakov.
1569
1570         * platform/network/mac/ResourceHandleMac.mm: Attempt to fix the
1571         build by including a private header and local declaration.
1572
1573 2014-05-31  Anders Carlsson  <andersca@apple.com>
1574
1575         Change DeferrableOneShotTimer to use std::function instead of being a class template
1576         https://bugs.webkit.org/show_bug.cgi?id=133423
1577
1578         Reviewed by Antti Koivisto.
1579
1580         Also, add a new constructor to DeferrableOneShotTimer that takes an std::function. Change the callback
1581         to not pass a DeferrableOneShotTimer& anymore. Change the delay parameter to use std::chrono::milliseconds.
1582
1583         * css/CSSImageGeneratorValue.cpp:
1584         (WebCore::CSSImageGeneratorValue::CachedGeneratedImage::CachedGeneratedImage):
1585         (WebCore::CSSImageGeneratorValue::CachedGeneratedImage::evictionTimerFired):
1586         * css/CSSImageGeneratorValue.h:
1587         * html/HTMLPlugInImageElement.cpp:
1588         (WebCore::HTMLPlugInImageElement::simulatedMouseClickTimerFired):
1589         * html/HTMLPlugInImageElement.h:
1590         * loader/cache/CachedResource.cpp:
1591         (WebCore::deadDecodedDataDeletionIntervalForResourceType):
1592         (WebCore::CachedResource::destroyDecodedDataIfNeeded):
1593         (WebCore::CachedResource::decodedDataDeletionTimerFired):
1594         * loader/cache/CachedResource.h:
1595         * loader/cache/MemoryCache.cpp:
1596         (WebCore::MemoryCache::MemoryCache):
1597         * loader/cache/MemoryCache.h:
1598         (WebCore::MemoryCache::setDeadDecodedDataDeletionInterval):
1599         (WebCore::MemoryCache::deadDecodedDataDeletionInterval):
1600         * platform/Timer.h:
1601         (WebCore::Timer::Timer):
1602         (WebCore::DeferrableOneShotTimer::DeferrableOneShotTimer):
1603         * platform/graphics/cg/SubimageCacheWithTimer.cpp:
1604         (WebCore::SubimageCacheWithTimer::invalidateCacheTimerFired):
1605         * platform/graphics/cg/SubimageCacheWithTimer.h:
1606
1607 2014-06-02  Benjamin Poulain  <benjamin@webkit.org>
1608
1609         Make pseudo element matching for style resolution more JIT friendly
1610         https://bugs.webkit.org/show_bug.cgi?id=133441
1611
1612         Reviewed by Antti Koivisto.
1613
1614         Sharing pseudo elements is a complicated mess shared between the SelectorChecker
1615         and the RuleCollector.
1616
1617         For compiling pseudo element matching, it would be best if all the complexity could
1618         be moved to compile time instead of runtime. It is also preferable to keep the compiler
1619         independant of the RuleCollector implementation's detail.
1620
1621         This patch is a first step toward that goal. The main objective here is to make
1622         "dynamicPseudo" completely internal to the SelectorChecker.
1623         This is mostly a mechanical change, it is likely PseudoElement matching could be simplified
1624         further but that is not attempted here.
1625
1626         Test: fast/css/style-sharing-empty-rule-modification.html
1627
1628         * css/ElementRuleCollector.cpp:
1629         (WebCore::ElementRuleCollector::ruleMatches):
1630         The condition regarding pseudo element matching has been moved into SelectorChecker::match().
1631
1632         This creates an extra cost for querySelector(), but that should be fine since the vast majority
1633         of selectors are JIT compiled and never use SelectorChecker in the first place.
1634
1635         (WebCore::ElementRuleCollector::collectMatchingRulesForList):
1636         The loop is changed such that the tree marking (Style::setHasPseudoStyle) could be moved
1637         to SelectorChecker.
1638
1639         The conditions about the security origin for getMatchedCSSRules() and the empty style rules
1640         are moved prior to the call to ElementRuleCollector::ruleMatches(). This ensure we keep the same
1641         behavior of not adding the pseudo style for empty rules (this could also help with tree marking
1642         in general but empty rules are probably uncommon).
1643
1644         There is one behavior change from making this loop simpler: the SharingRules and StyleInvalidation
1645         modes now update their ruleRange. It is useless but it is simpler.
1646
1647         * css/ElementRuleCollector.h:
1648         * css/SelectorChecker.cpp:
1649         (WebCore::SelectorChecker::matchRecursively):
1650         The tree marking has been moved here.
1651
1652         * css/SelectorChecker.h:
1653         (WebCore::SelectorChecker::match):
1654         The pseudo element matching has been moved here.
1655
1656         * css/StyleResolver.h:
1657         (WebCore::checkRegionSelector):
1658         * dom/SelectorQuery.cpp:
1659         (WebCore::SelectorDataList::selectorMatches):
1660
1661 2014-06-02  Jeremy Jones  <jeremyj@apple.com>
1662
1663         Send external playback properties to fullscreen.
1664         https://bugs.webkit.org/show_bug.cgi?id=133366
1665
1666         Reviewed by Simon Fraser.
1667
1668         Refactor property updates in WebVideoFullscreenModelMediaElement and update
1669         setExternalPlayback on webkitcurrentplaybacktargetiswirelesschangedEvent.
1670
1671         * WebCore.exp.in: Add export for setExternalPlayback.
1672         * platform/ios/WebVideoFullscreenInterface.h: add setExternalPlayback
1673         * platform/ios/WebVideoFullscreenInterfaceAVKit.h: add setExternalPlayback
1674         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
1675         (-[WebAVPlayerController isPlayingOnExternalScreen]): added
1676         (+[WebAVPlayerController keyPathsForValuesAffectingPlayingOnExternalScreen]): added
1677         (WebVideoFullscreenInterfaceAVKit::setExternalPlayback): added
1678         (WebVideoFullscreenInterfaceAVKit::enterFullscreen): added
1679         * platform/ios/WebVideoFullscreenModelMediaElement.h: add updateForEventName
1680         * platform/ios/WebVideoFullscreenModelMediaElement.mm:
1681         (WebVideoFullscreenModelMediaElement::setMediaElement): refactor property changes into updateForEventName()
1682         (WebVideoFullscreenModelMediaElement::handleEvent): refactor property changes into updateForEventName()
1683         (WebVideoFullscreenModelMediaElement::updateForEventName): remove duplicate code, implement for setExternalPlayback
1684
1685 2014-06-02  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>
1686
1687         WebCore build fix for webreplay
1688         https://bugs.webkit.org/show_bug.cgi?id=133401
1689
1690         Reviewed by Darin Adler.
1691
1692         * replay/MemoizedDOMResult.cpp:
1693         (WebCore::MemoizedDOMResultBase::createFromEncodedResult):
1694         Add a default nullptr return in order to avoid a gcc warning.
1695         The warning is because of a non-void method that has a case which doesn't return.
1696         * replay/ReplayController.cpp:
1697         (WebCore::ReplayController::setForceDeterministicSettings):
1698         Guard the ScrollingCoordinator with the appropriate #ifdef.
1699         * replay/SerializationMethods.cpp:
1700         Guard the KeypressCommand with COCOA as it is only present there.
1701
1702 2014-06-02  Jer Noble  <jer.noble@apple.com>
1703
1704         Further unreviewed GTK build fix after r169536.
1705
1706         Update the m_duration contructor in MediaSourceGStreamer.
1707
1708         * platform/graphics/gstreamer/MediaSourceGStreamer.cpp:
1709         (WebCore::MediaSourceGStreamer::MediaSourceGStreamer):
1710
1711 2014-06-02  Jer Noble  <jer.noble@apple.com>
1712
1713         Unreviewed GTK build fix after r169536.
1714
1715         Update MediaSourceGStreamer to match new duration parameters.
1716
1717         * platform/graphics/gstreamer/MediaSourceGStreamer.cpp:
1718         (WebCore::MediaSourceGStreamer::setDuration): Ditto.
1719         * platform/graphics/gstreamer/MediaSourceGStreamer.h:
1720         * platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
1721
1722 2014-06-02  Jer Noble  <jer.noble@apple.com>
1723
1724         [MSE][Mac] Media does not generate 'ended' event when playing to duration.
1725         https://bugs.webkit.org/show_bug.cgi?id=133452
1726
1727         Reviewed by Eric Carlson.
1728
1729         Add a boundaryTimeObserver to the AVSampleBufferRenderSynchronizer to detect when
1730         playback crosses the duration boundary, and pause in that event. Also refuse to begin
1731         playback if the currentTime is beyond the duration. Also, pause playback if duration
1732         becomes less than currentTime.
1733
1734         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
1735         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
1736         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::~MediaPlayerPrivateMediaSourceAVFObjC):
1737         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::playInternal):
1738         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::currentMediaTime):
1739         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::currentTimeDouble):
1740         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::durationChanged):
1741
1742         Update MediaSource::duration() and ::setDuration() to take and give MediaTimes rather than doubles:
1743         * Modules/mediasource/MediaSource.cpp:
1744         (WebCore::MediaSource::duration): double -> MediaTime.
1745         (WebCore::MediaSource::setDuration): Ditto.
1746         (WebCore::MediaSource::streamEndedWithError): Ditto.
1747         * platform/graphics/MediaSourcePrivate.h: Ditto.
1748         * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
1749         * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
1750         (WebCore::MediaSourcePrivateAVFObjC::MediaSourcePrivateAVFObjC): Ditto.
1751         (WebCore::MediaSourcePrivateAVFObjC::duration): Ditto.
1752         (WebCore::MediaSourcePrivateAVFObjC::setDuration): Ditto.
1753         * platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
1754         (WebCore::MockMediaPlayerMediaSource::MockMediaPlayerMediaSource): Ditto.
1755         (WebCore::MockMediaPlayerMediaSource::maxTimeSeekableDouble): Ditto.
1756         (WebCore::MockMediaPlayerMediaSource::durationDouble): Ditto.
1757         (WebCore::MockMediaPlayerMediaSource::advanceCurrentTime): Ditto.
1758         (WebCore::MockMediaPlayerMediaSource::updateDuration): Ditto.
1759         * platform/mock/mediasource/MockMediaPlayerMediaSource.h:
1760         * platform/mock/mediasource/MockMediaSourcePrivate.cpp:
1761         (WebCore::MockMediaSourcePrivate::MockMediaSourcePrivate): Ditto.
1762         (WebCore::MockMediaSourcePrivate::duration): Ditto.
1763         (WebCore::MockMediaSourcePrivate::setDuration): Ditto.
1764         * platform/mock/mediasource/MockMediaSourcePrivate.h:
1765
1766 2014-06-02  Zalan Bujtas  <zalan@apple.com>
1767
1768         Rename ImagePaintingContext to ImagePaintingOptions.
1769         https://bugs.webkit.org/show_bug.cgi?id=133451
1770
1771         Reviewed by Simon Fraser.
1772
1773         No change in functionality.
1774
1775         * WebCore.exp.in:
1776         * html/HTMLCanvasElement.cpp:
1777         (WebCore::HTMLCanvasElement::paint):
1778         * html/canvas/CanvasRenderingContext2D.cpp:
1779         (WebCore::CanvasRenderingContext2D::drawImage):
1780         * platform/graphics/GraphicsContext.cpp:
1781         (WebCore::GraphicsContext::drawImage):
1782         (WebCore::GraphicsContext::drawTiledImage):
1783         (WebCore::GraphicsContext::drawImageBuffer):
1784         * platform/graphics/GraphicsContext.h:
1785         (WebCore::ImagePaintingOptions::ImagePaintingOptions):
1786         (WebCore::ImagePaintingContext::ImagePaintingContext): Deleted.
1787         * rendering/RenderBoxModelObject.cpp:
1788         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
1789         * rendering/RenderEmbeddedObject.cpp:
1790         (WebCore::RenderEmbeddedObject::paintSnapshotImage):
1791         * rendering/RenderImage.cpp:
1792         (WebCore::RenderImage::paintIntoRect):
1793         * rendering/RenderSnapshottedPlugIn.cpp:
1794         (WebCore::RenderSnapshottedPlugIn::paintSnapshot):
1795
1796 2014-05-31  Brent Fulgham  <bfulgham@apple.com>
1797
1798         REGRESSION (r154622): Borders disappear when hovering over cells in table
1799         https://bugs.webkit.org/show_bug.cgi?id=133057
1800         <rdar://problem/15922359>
1801
1802         Reviewed by Tim Horton.
1803
1804         * rendering/RenderTableCell.cpp:
1805         (WebCore::RenderTableCell::paintCollapsedBorders): Revert recent
1806         non-edge collapsed border optimization due to drawing
1807         regressions.
1808
1809 2014-06-02  Zalan Bujtas  <zalan@apple.com>
1810
1811         Provide better encapsulation for image related painting properties.
1812         https://bugs.webkit.org/show_bug.cgi?id=133434
1813
1814         Reviewed by Darin Adler.
1815
1816         Image related drawing property list keeps growing for the functions below and results in
1817         multiple overloadings with seemingly random default parameters.
1818         
1819         GraphicsContext::drawImage()
1820         GraphicsContext::drawTiledImage()
1821         GraphicsContext::drawImageBuffer()
1822         
1823         This patch provides encapsulation for the image drawing properties. Encapsulation ensures that
1824         introducing a new property does not result in yet another overloaded function.
1825
1826         No change in functionality.
1827
1828         * WebCore.exp.in:
1829         * html/HTMLCanvasElement.cpp:
1830         (WebCore::HTMLCanvasElement::paint):
1831         * html/canvas/CanvasRenderingContext2D.cpp:
1832         (WebCore::CanvasRenderingContext2D::drawImage):
1833         (WebCore::CanvasRenderingContext2D::compositeBuffer):
1834         * platform/graphics/GraphicsContext.cpp:
1835         (WebCore::GraphicsContext::drawImage):
1836         (WebCore::GraphicsContext::drawTiledImage):
1837         (WebCore::GraphicsContext::drawImageBuffer):
1838         * platform/graphics/GraphicsContext.h:
1839         (WebCore::ImagePaintingContext::ImagePaintingContext):
1840         * platform/graphics/ShadowBlur.cpp:
1841         (WebCore::ShadowBlur::endShadowLayer):
1842         * platform/graphics/cairo/ImageBufferCairo.cpp:
1843         (WebCore::ImageBuffer::draw):
1844         * platform/graphics/filters/FEComposite.cpp:
1845         (WebCore::FEComposite::platformApplySoftware):
1846         * rendering/FilterEffectRenderer.cpp:
1847         (WebCore::FilterEffectRendererHelper::applyFilterEffect):
1848         * rendering/RenderBoxModelObject.cpp:
1849         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
1850         * rendering/RenderEmbeddedObject.cpp:
1851         (WebCore::RenderEmbeddedObject::paintSnapshotImage):
1852         * rendering/RenderImage.cpp:
1853         (WebCore::RenderImage::paintReplaced):
1854         (WebCore::RenderImage::paintIntoRect):
1855         * rendering/RenderSnapshottedPlugIn.cpp:
1856         (WebCore::RenderSnapshottedPlugIn::paintSnapshot):
1857
1858 2014-06-02  Commit Queue  <commit-queue@webkit.org>
1859
1860         Unreviewed, rolling out r169529.
1861         https://bugs.webkit.org/show_bug.cgi?id=133447
1862
1863         caused assert in drawImage() (Requested by zalan on #webkit).
1864
1865         Reverted changeset:
1866
1867         "Provide better encapsulation for image related painting
1868         properties."
1869         https://bugs.webkit.org/show_bug.cgi?id=133434
1870         http://trac.webkit.org/changeset/169529
1871
1872 2014-06-02  Zalan Bujtas  <zalan@apple.com>
1873
1874         Provide better encapsulation for image related painting properties.
1875         https://bugs.webkit.org/show_bug.cgi?id=133434
1876
1877         Reviewed by Darin Adler.
1878
1879         Image related drawing property list keeps growing for the functions below and results in
1880         multiple overloadings with seemingly random default parameters.
1881         
1882         GraphicsContext::drawImage()
1883         GraphicsContext::drawTiledImage()
1884         GraphicsContext::drawImageBuffer()
1885         
1886         This patch provides encapsulation for the image drawing properties. Encapsulation ensures that
1887         introducing a new property does not result in yet another overloaded function.
1888
1889         No change in functionality.
1890
1891         * WebCore.exp.in:
1892         * html/HTMLCanvasElement.cpp:
1893         (WebCore::HTMLCanvasElement::paint):
1894         * html/canvas/CanvasRenderingContext2D.cpp:
1895         (WebCore::CanvasRenderingContext2D::drawImage):
1896         (WebCore::CanvasRenderingContext2D::compositeBuffer):
1897         * platform/graphics/GraphicsContext.cpp:
1898         (WebCore::GraphicsContext::drawImage):
1899         (WebCore::GraphicsContext::drawTiledImage):
1900         (WebCore::GraphicsContext::drawImageBuffer):
1901         * platform/graphics/GraphicsContext.h:
1902         (WebCore::ImagePaintingContext::ImagePaintingContext):
1903         * platform/graphics/ShadowBlur.cpp:
1904         (WebCore::ShadowBlur::endShadowLayer):
1905         * platform/graphics/cairo/ImageBufferCairo.cpp:
1906         (WebCore::ImageBuffer::draw):
1907         * platform/graphics/filters/FEComposite.cpp:
1908         (WebCore::FEComposite::platformApplySoftware):
1909         * rendering/FilterEffectRenderer.cpp:
1910         (WebCore::FilterEffectRendererHelper::applyFilterEffect):
1911         * rendering/RenderBoxModelObject.cpp:
1912         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
1913         * rendering/RenderEmbeddedObject.cpp:
1914         (WebCore::RenderEmbeddedObject::paintSnapshotImage):
1915         * rendering/RenderImage.cpp:
1916         (WebCore::RenderImage::paintReplaced):
1917         (WebCore::RenderImage::paintIntoRect):
1918         * rendering/RenderSnapshottedPlugIn.cpp:
1919         (WebCore::RenderSnapshottedPlugIn::paintSnapshot):
1920
1921 2014-06-02  Kiran  <kiran.guduru@samsung.com>
1922
1923         Add mock DTMFSender support.
1924         https://bugs.webkit.org/show_bug.cgi?id=133298
1925
1926         Reviewed by Eric Carlson.
1927
1928         Implemented mock implementation for RTCPeerConnectionHandler. Now creating
1929         RTCDTMFSenderHandlerMock and returning while creating DTMFSender instead of
1930         returning null.
1931        
1932         Test: fast/mediastream/RTCPeerConnection-dtmf.html.
1933
1934         * CMakeLists.txt:
1935         * platform/mock/RTCDTMFSenderHandlerMock.cpp: Added.
1936         (WebCore::RTCDTMFSenderHandlerMock::RTCDTMFSenderHandlerMock):
1937         (WebCore::RTCDTMFSenderHandlerMock::setClient):
1938         (WebCore::RTCDTMFSenderHandlerMock::insertDTMF):
1939         * platform/mock/RTCDTMFSenderHandlerMock.h: Added.
1940         * platform/mock/RTCPeerConnectionHandlerMock.cpp:
1941         (WebCore::RTCPeerConnectionHandlerMock::createDTMFSender):
1942
1943 2014-06-02  Xabier Rodriguez Calvar  <calvaris@igalia.com>
1944
1945         [GTK] media controls should prevent 'click' events from reaching the page
1946         https://bugs.webkit.org/show_bug.cgi?id=133402
1947
1948         Reviewed by Eric Carlson.
1949
1950         When handling events, we events we need to return true in order
1951         that the superclass gets the value and prevents the execution of
1952         the default event handler in the page.
1953
1954         Test: media/media-controls-cancel-events.html
1955
1956         * Modules/mediacontrols/mediaControlsGtk.js:
1957         (ControllerGtk.prototype.handleMuteButtonMouseOver):
1958         (ControllerGtk.prototype.handleVolumeBoxMouseOut):
1959         (ControllerGtk.prototype.handleCaptionButtonClicked):
1960         (ControllerGtk.prototype.handleCaptionButtonMouseOver):
1961         (ControllerGtk.prototype.handleCaptionButtonShowMenu):
1962         (ControllerGtk.prototype.handleCaptionButtonMouseOut):
1963         (ControllerGtk.prototype.handleCaptionMouseOut): Return true to
1964         prevent forwarding the event execution.
1965
1966 2014-06-02  Yusuke Suzuki  <utatane.tea@gmail.com>
1967
1968         CSS JIT: add support for the "not" pseudo class
1969         https://bugs.webkit.org/show_bug.cgi?id=133314
1970
1971         Reviewed by Benjamin Poulain.
1972
1973         Add :not pseudo class support to CSS JIT. Current implementation
1974         doesn't support visitedMatchType. So when link pseudo class appears in
1975         :not sub fragment, fallback to the non-JIT implementation.
1976
1977         Tests: fast/selectors/not-active-hover-quirks.html
1978                fast/selectors/not-active-hover-strict.html
1979                fast/selectors/pseudo-class-not.html
1980
1981         * cssjit/SelectorCompiler.cpp:
1982         (WebCore::SelectorCompiler::addPseudoClassType):
1983         (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
1984         (WebCore::SelectorCompiler::constructFragments):
1985         (WebCore::SelectorCompiler::minimumRegisterRequirements):
1986         (WebCore::SelectorCompiler::computeBacktrackingInformation):
1987         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
1988         (WebCore::SelectorCompiler::fragmentOnlyMatchesLinksInQuirksMode):
1989         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
1990         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementDataMatching):
1991         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
1992         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatchesNotPseudoClass):
1993         (WebCore::SelectorCompiler::SelectorCodeGenerator::computeBacktrackingInformation): Deleted.
1994
1995 2014-06-01  Jer Noble  <jer.noble@apple.com>
1996
1997         [MSE] Appends of overlapping sample data do not clear existing samples properly.
1998         https://bugs.webkit.org/show_bug.cgi?id=133435
1999
2000         Reviewed by Darin Adler.
2001
2002         Test: media/media-source/media-source-overlapping-append.html
2003
2004         The MSE spec has a spec error in how it removes overlapping frames. The intention seems to be
2005         to check for overlapping samples only when the incoming sample increases the highest presentation time
2006         field. But due to a mismatch in the range of a sample, defined as [start, end), and the check, which 
2007         treats the end as inclusive, the overlapping check is almost never run.
2008
2009         Add the sample comparison logic to match [start, end) ranges, and rename the existing check to differentiate
2010         it from the new one:
2011         * Modules/mediasource/SampleMap.cpp:
2012         (WebCore::SamplePresentationTimeIsInsideRangeComparator::operator()):
2013         (WebCore::SamplePresentationTimeIsWithinRangeComparator::operator()):
2014         (WebCore::SampleMap::findSamplesBetweenPresentationTimes):
2015         (WebCore::SampleMap::findSamplesWithinPresentationRange):
2016         * Modules/mediasource/SampleMap.h:
2017
2018         Update the overlapping check to occur whenever the highest presentation time increases, and update the
2019         logic within that check to catch all overlapping frames.
2020         * Modules/mediasource/SourceBuffer.cpp:
2021         (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
2022         (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
2023         (WebCore::SourceBuffer::bufferedSamplesForTrackID):
2024         * Modules/mediasource/SourceBuffer.h:
2025         * WebCore.exp.in:
2026
2027         Add a dump method to MediaSample so that samples can be easily converted to a string for testing.
2028         * platform/MediaSample.h:
2029         * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
2030         (WebCore::MediaSampleAVFObjC::presentationSize):
2031         (WebCore::MediaSampleAVFObjC::dump):
2032
2033         Update the Mock MSE implementation to pass along a "generation" field, to aid in testing.
2034         * platform/mock/mediasource/MockBox.cpp:
2035         (WebCore::MockSampleBox::MockSampleBox):
2036         * platform/mock/mediasource/MockBox.h:
2037         * platform/mock/mediasource/MockSourceBufferPrivate.cpp:
2038         (WebCore::MockMediaSample::dump):
2039
2040         Add a method to internals to dump the buffered samples to string.
2041         * Modules/mediasource/SourceBuffer.cpp:
2042         (WebCore::SourceBuffer::bufferedSamplesForTrackID):
2043         * Modules/mediasource/SourceBuffer.h:
2044         * testing/Internals.cpp:
2045         (WebCore::Internals::bufferedSamplesForTrackID):
2046         * testing/Internals.h:
2047         * testing/Internals.idl:
2048
2049 2014-06-01  Nikos Andronikos  <nikos.andronikos-webkit@cisra.canon.com.au>
2050
2051         getBBox() returns (0,0) when width or height is zero.
2052         https://bugs.webkit.org/show_bug.cgi?id=93290
2053
2054         Reviewed by Philip Rogers.
2055
2056         The SVG spec states that a width or height of zero for  rects, circles and
2057         ellipses is valid but disables rendering of that shape.
2058         In this case, getBBox() should return the actual bounding box of the element.
2059         Previously, WebKit always returned (0,0,0,0) rather than the
2060         correct bounding box. This patch fixes that. 
2061
2062         Rects and ellipses both now follow the same behaviour where
2063         the fall-back code path is only used when the shape will render (e.g. not
2064         when a dimension <= 0).
2065   
2066         This necessitates calling calculateRadiiAndCenter for ellipses even
2067         when the calculated values will be discarded in the fall back code path.
2068         But calculateRadiiAndCenter is cheap and this avoids making changes 
2069         elsewhere to stop CG drawing a zero width (or height) ellipse.  
2070
2071         Tests: svg/custom/getBBox-js-circle-zerodimension.html
2072                svg/custom/getBBox-js-ellipse-zerodimension.html
2073                svg/custom/getBBox-js-rect-zerodimension.html
2074
2075         * rendering/svg/RenderSVGEllipse.cpp:
2076         (WebCore::RenderSVGEllipse::updateShapeFromElement):
2077         Only follow fall-back code path when shape renders. 
2078         width||height==0 is not an error case so calculate bounding box.        
2079
2080         * rendering/svg/RenderSVGRect.cpp:
2081         (WebCore::RenderSVGRect::updateShapeFromElement):
2082         Only follow fall-back code path when shape renders. 
2083         rx||ry==0 is not an error case so calculate bounding box.        
2084
2085 2014-06-01  Simon Fraser  <simon.fraser@apple.com>
2086
2087         Don't scroll to non-integral scroll offsets
2088         https://bugs.webkit.org/show_bug.cgi?id=133436
2089         <rdar://problem/17088336>
2090
2091         Reviewed by Darin Adler.
2092
2093         With the gradual migration of scroll offsets to floating point, we ended
2094         up with a fully floating point code path been event scroll deltas and
2095         setting scroll positions in the scrolling tree.
2096         
2097         With some input devices (e.g. Logitech scrollwheel mice), the scroll deltas
2098         come in with non-integral values, and that caused the scroll offset to be non-integral,
2099         resulting in fuzzy layer contents. So round the scroll position.
2100
2101         * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
2102         (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPosition):
2103
2104 2014-05-31  Anders Carlsson  <andersca@apple.com>
2105
2106         Add a LazyNeverDestroyed class template and use it
2107         https://bugs.webkit.org/show_bug.cgi?id=133425
2108
2109         Reviewed by Darin Adler.
2110
2111         * Modules/webdatabase/DatabaseBackendBase.cpp:
2112         (WebCore::guidMutex):
2113         * crypto/CryptoAlgorithmRegistry.cpp:
2114         (WebCore::registryMutex):
2115         * inspector/WorkerDebuggerAgent.cpp:
2116         * loader/CrossOriginAccessControl.cpp:
2117         (WebCore::isOnAccessControlResponseHeaderWhitelist):
2118         * platform/network/NetworkStateNotifier.cpp:
2119         (WebCore::networkStateNotifier):
2120         * workers/DefaultSharedWorkerRepository.cpp:
2121         (WebCore::DefaultSharedWorkerRepository::instance):
2122         * workers/DefaultSharedWorkerRepository.h:
2123         * workers/WorkerThread.cpp:
2124         (WebCore::threadSetMutex):
2125         * xml/XMLHttpRequest.cpp:
2126         (WebCore::staticData):
2127
2128 2014-06-01  Zalan Bujtas  <zalan@apple.com>
2129
2130         Subpixel rendering: Selection gap produces a pixel line overlap on inline boxes.
2131         https://bugs.webkit.org/show_bug.cgi?id=133429
2132
2133         Reviewed by Simon Fraser.
2134
2135         Do not floor logical right/left values when selection gap is calculated for RenderBlocks.
2136         It produces overlapping line/gap because the floored value is intersecting/too far from the
2137         non-floored content selection rect.
2138
2139         Tests: fast/inline/hidpi-selection-gap-and-inline-selection-have-gap-rtl.html
2140                fast/inline/hidpi-selection-gap-overlaps-inline-selection.html
2141
2142         * rendering/RenderBlock.cpp:
2143         (WebCore::RenderBlock::logicalLeftSelectionGap):
2144         (WebCore::RenderBlock::logicalRightSelectionGap):
2145
2146 2014-05-31  Timothy Horton  <timothy_horton@apple.com>
2147
2148         REGRESSION (r169412): Garbage pixels when vertical rubber-banding on http://yvoschaap.com/pmarca/
2149         https://bugs.webkit.org/show_bug.cgi?id=133418
2150         <rdar://problem/17065494>
2151
2152         Reviewed by Sam Weinig.
2153
2154         * WebCore.exp.in:
2155         * platform/graphics/FloatPoint.h:
2156         (WebCore::toFloatPoint):
2157         * platform/graphics/Image.cpp:
2158         (WebCore::Image::drawTiled):
2159         The manual tiling code previously adjusted the initial
2160         tiling source rect so that if the pattern was out of phase,
2161         the first row and column would paint only the necessary part
2162         of the tile. However, it did not also adjust the destination rect,
2163         so the tile was painted in entirely the wrong place.
2164         Additional testing (by enabling manual tiling mode for all patterned
2165         images and running all of the layout tests) exposed another bug
2166         where the last row and column would paint too much, which
2167         was resolved by clipping to the outer image's destination rect.
2168
2169 2014-05-31  Benjamin Poulain  <benjamin@webkit.org>
2170
2171         CSS JIT cleanup: move two utility functions out of the properties-matcher section
2172         https://bugs.webkit.org/show_bug.cgi?id=133427
2173
2174         Reviewed by Andreas Kling.
2175
2176         Just move the code, no other modification.
2177
2178         * cssjit/SelectorCompiler.cpp:
2179         (WebCore::SelectorCompiler::SelectorCodeGenerator::jumpIfNoPreviousAdjacentElement):
2180         (WebCore::SelectorCompiler::SelectorCodeGenerator::jumpIfNoNextAdjacentElement):
2181
2182 2014-05-31  Darin Adler  <darin@apple.com>
2183
2184         Viewport percentage tests that resize the viewport are flaky
2185         https://bugs.webkit.org/show_bug.cgi?id=133351
2186
2187         Reviewed by Anders Carlsson.
2188
2189         * page/FrameView.cpp:
2190         (WebCore::FrameView::setFrameRect): Removed code that explicitly sends a resize event here.
2191         The resize event will be sent as a side effect of layout instead.
2192         (WebCore::FrameView::sendResizeEventIfNeeded): Don't send a resize event until layout is done,
2193         since this is what propagates the new geometry in so the JavaScript code can detect it. Also
2194         simplified the logic and streamlined a little, and added a FIXME about the bad idea here where
2195         the code enqueues an event for an unknown time in the future. Removed the unneeded code that
2196         passes in the DOM window as the target to dispatchWindowEvent, since that gets filled in as the
2197         target by default.
2198
2199 2014-05-31  Anders Carlsson  <andersca@apple.com>
2200
2201         Don't use std::mutex::try_lock to check if we own a mutex
2202         https://bugs.webkit.org/show_bug.cgi?id=133421
2203
2204         Reviewed by Dan Bernstein.
2205
2206         According the C++ standard, calling try_lock on a mutex that's already owned by the current thread
2207         is undefined behavior, so don't do that.
2208
2209         * Modules/webdatabase/DatabaseBackendBase.cpp:
2210         (WebCore::guidToVersionMap):
2211         (WebCore::updateGuidVersionMap):
2212         (WebCore::guidToDatabaseMap):
2213         (WebCore::guidForOriginAndName):
2214
2215 2014-05-30  Enrica Casucci  <enrica@apple.com>
2216
2217         REGRESSION (WebKit2): space space to insert period doesn't work in web forms.
2218         https://bugs.webkit.org/show_bug.cgi?id=133413
2219         <rdar://problem/16948333>
2220
2221         Reviewed by Benjamin Poulain.
2222
2223         Adding utility functions and their exports.
2224
2225         * WebCore.exp.in:
2226         * editing/TextIterator.cpp:
2227         (WebCore::plainTextReplacingNoBreakSpace):
2228         * editing/TextIterator.h:
2229         * editing/VisibleUnits.cpp:
2230         (WebCore::charactersAroundPosition):
2231         (WebCore::characterBeforePosition): Deleted.
2232         * editing/VisibleUnits.h:
2233
2234 2014-05-30  Zalan Bujtas  <zalan@apple.com>
2235
2236         Cleanup temporary setting of image interpolation quality in GraphicsContext::drawImage*
2237         https://bugs.webkit.org/show_bug.cgi?id=133407
2238
2239         Reviewed by Darin Adler.
2240
2241         Add helper class to set/reset image interpolation quality value.
2242
2243         No change in functionality.
2244
2245         * platform/graphics/GraphicsContext.cpp:
2246         (WebCore::InterpolationQualityMaintainer::InterpolationQualityMaintainer):
2247         (WebCore::InterpolationQualityMaintainer::~InterpolationQualityMaintainer):
2248         (WebCore::GraphicsContext::drawImage):
2249         (WebCore::GraphicsContext::drawTiledImage):
2250         (WebCore::GraphicsContext::drawImageBuffer):
2251
2252 2014-05-30  Myles C. Maxfield  <mmaxfield@apple.com>
2253
2254         Support -apple-system-font on OS X
2255         https://bugs.webkit.org/show_bug.cgi?id=133382
2256
2257         Addressing post-review comments.
2258
2259         * platform/mac/WebFontCache.mm:
2260         (+[WebFontCache internalFontWithFamily:traits:weight:size:]):
2261
2262 2014-05-30  Prashant Hiremath  <hiremathprashants@gmail.com>
2263
2264         Remove repetitive header in HTMLInputElement.cpp
2265         https://bugs.webkit.org/show_bug.cgi?id=133376
2266
2267         Reviewed by Anders Carlsson.
2268
2269         It is just removal repeative headers hence no test needed.
2270
2271         * html/HTMLInputElement.cpp:
2272
2273 2014-05-30  Zalan Bujtas  <zalan@apple.com>
2274
2275         Remove redundant GraphicsContext::drawImage() function.
2276         https://bugs.webkit.org/show_bug.cgi?id=133347
2277
2278         Reviewed by Simon Fraser.
2279
2280         There are 2 GraphicsContext::drawImage functions with very similar parameter list. This looks
2281         to be a source of confusion and results in passing unneeded parameters.
2282
2283         No change in functionality.
2284
2285         * html/canvas/CanvasRenderingContext2D.cpp:
2286         (WebCore::CanvasRenderingContext2D::drawImage):
2287         (WebCore::drawImageToContext):
2288         * platform/graphics/GraphicsContext.cpp:
2289         (WebCore::GraphicsContext::drawImage):
2290         * platform/graphics/GraphicsContext.h:
2291         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
2292         (WebCore::MediaPlayerPrivateGStreamerBase::paint):
2293         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
2294         (WebCore::BitmapTextureImageBuffer::updateContents):
2295         * rendering/RenderBoxModelObject.cpp:
2296         (WebCore::RenderBoxModelObject::paintNinePieceImage):
2297
2298 2014-05-29  Alex Christensen  <achristensen@webkit.org>
2299
2300         Prepare css jit for arm64 and other architectures.
2301         https://bugs.webkit.org/show_bug.cgi?id=133394
2302
2303         Reviewed by Benjamin Poulain.
2304
2305         * cssjit/FunctionCall.h:
2306         (WebCore::FunctionCall::swapArguments):
2307         * cssjit/RegisterAllocator.h:
2308         Use a designated temporary register on arm64 to prevent using a deallocated argument register to swap argument registers in.
2309         * cssjit/SelectorCompiler.cpp:
2310         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
2311         Added assertion to make sure there are enough registers.
2312
2313 2014-05-29  Benjamin Poulain  <benjamin@webkit.org>
2314
2315         CSS JIT: add support for the pseudo classes :hover and :active
2316         https://bugs.webkit.org/show_bug.cgi?id=133295
2317
2318         Reviewed by Andreas Kling.
2319
2320         This patch adds compilation support for :hover and :active. The code generation of both of them is trivial,
2321         most of the patch is improving the infrastructure and safety.
2322
2323         The document compatibility mode is moved to its own typed enum. This ensure the values are exclusives and
2324         the native type is known (unsigned char here). The values are changes to binary flags to take advantage of
2325         test-and-branch on ARM64 (not used explicitely, it is automatically generated by the MacroAssembler).
2326
2327         The other important refactoring is the code updating the flags on RenderStyle::NonInheritedFlags.
2328         The code was duplicated in some places so it is move into its own function addFlagToElementStyleFromContext().
2329
2330         The generators themself are very simple. First we check the quirks-mode exceptions, that is generally excluded
2331         at compile time because the conditions are almost never met, even in strict mode.
2332         Then we have two cases: style resolution and query selector. Almost everything is just function calls.
2333
2334         * cssjit/SelectorCompiler.cpp:
2335         (WebCore::SelectorCompiler::SelectorFragment::SelectorFragment):
2336         (WebCore::SelectorCompiler::addPseudoClassType):
2337         (WebCore::SelectorCompiler::SelectorCodeGenerator::addFlagToElementStyleFromContext):
2338         (WebCore::SelectorCompiler::fragmentOnlyMatchesLinksInQuirksMode):
2339         (WebCore::SelectorCompiler::getDocument):
2340         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSpecialFailureInQuirksModeForActiveAndHoverIfNeeded):
2341         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
2342         (WebCore::SelectorCompiler::elementIsActive):
2343         (WebCore::SelectorCompiler::elementIsActiveForStyleResolution):
2344         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsActive):
2345         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsFirstChild):
2346         (WebCore::SelectorCompiler::elementIsHovered):
2347         (WebCore::SelectorCompiler::elementIsHoveredForStyleResolution):
2348         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsHovered):
2349         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsLastChild):
2350         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsOnlyChild):
2351         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
2352         * dom/Document.cpp:
2353         (WebCore::Document::Document):
2354         (WebCore::Document::setCompatibilityMode):
2355         (WebCore::Document::implicitOpen):
2356         (WebCore::Document::cloneDataFromDocument):
2357         * dom/Document.h:
2358         (WebCore::Document::compatibilityModeMemoryOffset):
2359         (WebCore::Document::inQuirksMode):
2360         (WebCore::Document::inLimitedQuirksMode):
2361         (WebCore::Document::inNoQuirksMode):
2362         (WebCore::Document::compatibilityMode): Deleted.
2363         * html/ImageDocument.cpp:
2364         (WebCore::ImageDocument::ImageDocument):
2365         * html/MediaDocument.cpp:
2366         (WebCore::MediaDocument::MediaDocument):
2367         * html/PluginDocument.cpp:
2368         (WebCore::PluginDocument::PluginDocument):
2369         * html/TextDocument.cpp:
2370         (WebCore::TextDocument::TextDocument):
2371         * html/parser/HTMLConstructionSite.cpp:
2372         (WebCore::HTMLConstructionSite::setDefaultCompatibilityMode):
2373         (WebCore::HTMLConstructionSite::setCompatibilityMode):
2374         (WebCore::HTMLConstructionSite::setCompatibilityModeFromDoctype):
2375         (WebCore::HTMLConstructionSite::insertDoctype):
2376         * html/parser/HTMLConstructionSite.h:
2377         * loader/DocumentWriter.cpp:
2378         (WebCore::DocumentWriter::replaceDocument):
2379         * loader/SinkDocument.cpp:
2380         (WebCore::SinkDocument::SinkDocument):
2381         * page/ios/FrameIOS.mm:
2382         (WebCore::Frame::initWithSimpleHTMLDocument):
2383         * rendering/style/RenderStyle.h:
2384
2385 2014-05-28  Jon Honeycutt  <jhoneycutt@apple.com>
2386
2387         Roll r168668 back in.
2388
2389         <https://bugs.webkit.org/show_bug.cgi?id=132621>
2390
2391         Reviewed by Brent Fulgham.
2392
2393         Tests: fast/events/beforeload-assertion.html
2394                fast/events/beforeload-iframe-crash.html
2395                fast/events/beforeload-input-time-crash.html
2396
2397         * WebCore.exp.in:
2398         * dom/Document.cpp:
2399         (WebCore::Document::updateLayoutIgnorePendingStylesheets):
2400         * dom/Document.h:
2401         * html/HTMLAppletElement.cpp:
2402         (WebCore::HTMLAppletElement::renderWidgetForJSBindings):
2403         * html/HTMLEmbedElement.cpp:
2404         (WebCore::HTMLEmbedElement::renderWidgetForJSBindings):
2405         * html/HTMLObjectElement.cpp:
2406         (WebCore::HTMLObjectElement::renderWidgetForJSBindings):
2407         * page/FrameView.cpp:
2408         (WebCore::FrameView::FrameView):
2409         (WebCore::FrameView::reset):
2410         (WebCore::FrameView::updateEmbeddedObjectsTimerFired):
2411         (WebCore::FrameView::flushAnyPendingPostLayoutTasks):
2412         (WebCore::FrameView::performPostLayoutTasks):
2413         * page/FrameView.h:
2414         * testing/Internals.cpp:
2415         (WebCore::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks):
2416         * testing/Internals.h:
2417         * testing/Internals.idl:
2418
2419 2014-05-29  Myles C. Maxfield  <mmaxfield@apple.com>
2420
2421         Support -apple-system-font on OS X
2422         https://bugs.webkit.org/show_bug.cgi?id=133382
2423
2424         Reviewed by Simon Fraser.
2425
2426         Guard on both family names: "-apple-system-font" and "-webkit-system-font"
2427
2428         Test: platform/mac/fast/text/systemFont.html
2429
2430         * platform/mac/WebFontCache.mm:
2431         (+[WebFontCache internalFontWithFamily:traits:weight:size:]):
2432
2433 2014-05-29  Alexey Proskuryakov  <ap@apple.com>
2434
2435         Loading <object> from WebArchive crashes
2436         https://bugs.webkit.org/show_bug.cgi?id=133386
2437         <rdar://problem/13345509>
2438
2439         Reviewed by Brady Eidson.
2440
2441         Test: webarchive/loading/object.html
2442
2443         This (a) fixes the crash, and (b) avoids the crash.
2444
2445         * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::continueAfterContentPolicy):
2446         Some types of substitute data - such as WebArchive - don't contain HTTP result codes,
2447         so let's not drop to <object> fallback content when status is 0.
2448         And if the load somehow failed anyway, don't crash by trying to deliver substitute data
2449         to a finished loader.
2450
2451 2014-05-29  Alex Christensen  <achristensen@webkit.org>
2452
2453         [iOS WebGL] Fix depth buffer clearing issue.
2454         https://bugs.webkit.org/show_bug.cgi?id=133388
2455
2456         Reviewed by Dean Jackson.
2457
2458         No new tests, but this fixes webgl/1.0.1/conformance/canvas/buffer-preserve-test.html.
2459
2460         * platform/graphics/mac/WebGLLayer.mm:
2461         (-[WebGLLayer display]):
2462         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
2463         (WebCore::GraphicsContext3D::prepareTexture):
2464         Moved marking the layer as composited from the mac-only prepareTexture to
2465         the end of [WebGLLayer display] which is called by mac and iOS.
2466
2467 2014-05-29  Jeremy Jones  <jeremyj@apple.com>
2468
2469         Perserve caption selection in fullscreen.
2470         https://bugs.webkit.org/show_bug.cgi?id=133350
2471
2472         Reviewed by Eric Carlson.
2473
2474         Use the logic from the inline player to calculate the selected caption index.
2475
2476         * html/HTMLMediaElement.h:
2477         (WebCore::HTMLMediaElement::mediaControlsHost):
2478         Expose mediaControlsHost() for use by WebVideoFullscreenModelMediaElement.
2479
2480         * platform/ios/WebVideoFullscreenModelMediaElement.mm:
2481         (WebVideoFullscreenModelMediaElement::updateLegibleOptions):
2482         Use logic from buildCaptionsMenu from mediaControlsApple.js.
2483
2484 2014-05-29  Jeremy Jones  <jeremyj@apple.com>
2485
2486         Use correct version of requiresFullscreenForVideoPlayback().
2487         https://bugs.webkit.org/show_bug.cgi?id=133331
2488
2489         Reviewed by Eric Carlson.
2490
2491         Test: media/video-fullscreeen-only-controls.html
2492
2493         Update the last place not yet using m_mediaSession->requiresFullscreenForVideoPlayback.
2494
2495         * html/HTMLMediaElement.cpp:
2496         (WebCore::HTMLMediaElement::parseAttribute):
2497         switch to media session version for requriesFullscreenForVideoPlayback.
2498
2499 2014-05-29  Carlos Garcia Campos  <cgarcia@igalia.com>
2500
2501         [GTK] Add support for HiDPI icons
2502         https://bugs.webkit.org/show_bug.cgi?id=133377
2503
2504         Reviewed by Martin Robinson.
2505
2506         Use the GTK+ missing icon at 16 or 32 size depending on the device
2507         scale factor.
2508
2509         * platform/graphics/gtk/ImageGtk.cpp:
2510         (WebCore::loadMissingImageIconFromTheme):
2511         (WebCore::Image::loadPlatformResource):
2512
2513 2014-05-29  Owen Taylor  <otaylor@redhat.com>
2514
2515         [GTK] Add HighDPI support for non-accelerated compositing contents
2516         https://bugs.webkit.org/show_bug.cgi?id=131562
2517
2518         Reviewed by Anders Carlsson.
2519
2520         No new tests. This will be tested once we have the proper dependencies in the WebKit testing
2521         JHBuild.
2522
2523         * platform/cairo/WidgetBackingStore.h:
2524         (WebCore::WidgetBackingStore::WidgetBackingStore): Accept a device scale argument.
2525         * platform/cairo/WidgetBackingStoreCairo.cpp: Use the device scale argument to make the surface the proper size and set the surface device scale.
2526         * platform/cairo/WidgetBackingStoreCairo.h: Accept a device scale argument.
2527         * platform/graphics/cairo/CairoUtilities.cpp: Add a new helper to set the device scale if Cairo built against is new enough.
2528         * platform/graphics/cairo/CairoUtilities.h:
2529         * platform/gtk/GtkVersioning.h: Add the HAVE_GTK_SCALE_FACTOR macro.
2530         * platform/gtk/WidgetBackingStoreGtkX11.cpp: Use the device scale argument to make the surface the proper size and set the surface device scale.
2531         * platform/gtk/WidgetBackingStoreGtkX11.h: Accept a device scale argument.
2532
2533 2014-05-28  Brent Fulgham  <bfulgham@apple.com>
2534
2535         Captions during HLS playback flash/are difficult to readily
2536         https://bugs.webkit.org/show_bug.cgi?id=133365
2537         <rdar://problem/16584132>
2538
2539         Reviewed by Eric Carlson.
2540
2541         Correct two problems:
2542         1. Add new logic to handle cues that are identical to existing cues, except
2543            that they cover a slightly later moment in playback. For example, a cue
2544            encoding device might emit a cue at 24 fps, with many of the cues containing
2545            the same content but covering only 1/24th of a second.
2546            
2547            Rather than hiding and displaying our cues at the cue encoding rate, we should
2548            simply continue to display the same cue as long as the content is unchanged.
2549         2. The cue "isEqual" logic for TextTrackCueGeneric improperly short-circuited the
2550            VTTCue isEqual logic. This was done to avoid a false failure due to the cue
2551            type being 'generic' rather than 'vtt', but incorrectly treated cues with
2552            non-matching text as equal.
2553
2554         * html/track/DataCue.cpp:
2555         (WebCore::DataCue::cueContentsMatch): Move cue comparison code to new method that
2556         doesn't check that the 'type' of the cue is identical.
2557         (WebCore::DataCue::isEqual): Modified to use new 'cueContentsMatch' method.
2558         (WebCore::DataCue::isStartOfCue): Confirms cues match except for start and end times.
2559         * html/track/DataCue.h:
2560         * html/track/TextTrack.cpp:
2561         (WebCore::TextTrack::hasCue): Modify to check if a new cue is simply a continuation
2562         of an existing cue.
2563         * html/track/TextTrackCue.cpp:
2564         (WebCore::TextTrackCue::cueContentsMatch): New method containing the equality code
2565         that used to live in 'isEqual'.
2566         (WebCore::TextTrackCue::isEqual): Modified to use new 'cueContentsMatch' method.
2567         (WebCore::TextTrackCue::isStartOfCue): Confirms cues match except for start and
2568         end times.
2569         * html/track/TextTrackCue.h:
2570         * html/track/TextTrackCueGeneric.cpp:
2571         (WebCore::TextTrackCueGeneric::cueContentsMatch): New method containing the equality
2572         code that used to live in 'isEqual'.
2573         (WebCore::TextTrackCueGeneric::isEqual): Modified to use new 'cueContentsMatch' method.
2574         (WebCore::TextTrackCueGeneric::isStartOfCue): Confirms cues match except for start and
2575         end times.
2576         * html/track/TextTrackCueGeneric.h:
2577         * html/track/VTTCue.cpp:
2578         (WebCore::VTTCue::cueContentsMatch): New method containing the equality code that
2579         used to live in 'isEqual'.
2580         (WebCore::VTTCue::isEqual): Modified to use new 'cueContentsMatch' method.
2581         (WebCore::VTTCue::isStartOfCue): Confirms cues match except for start and end times.
2582         * html/track/VTTCue.h:
2583
2584 2014-05-28  Oliver Hunt  <oliver@apple.com>
2585
2586         Whoops, update bindings tests results.
2587
2588 2014-05-28  Oliver Hunt  <oliver@apple.com>
2589
2590         Make DOM properties exposed as instance properties use the base object instead of |this|
2591         https://bugs.webkit.org/show_bug.cgi?id=133353
2592
2593         Reviewed by Geoffrey Garen.
2594
2595         Make the bindings generator emit code that uses the base object for
2596         a property, rather than the this object. This means that attributes
2597         that we need to be treated as instance properties will match their old
2598         instance-based behaviour.
2599
2600         * bindings/scripts/CodeGeneratorJS.pm:
2601         (InterfaceRequiresAttributesOnInstanceForCompatibility):
2602         (InterfaceRequiresAttributesOnInstance):
2603         (GetCastingHelperForBaseObject):
2604         (GenerateImplementation):
2605         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
2606         (WebCore::jsTestActiveDOMObjectExcitingAttr):
2607         * bindings/scripts/test/JS/JSTestException.cpp:
2608         (WebCore::jsTestExceptionName):
2609         * bindings/scripts/test/JS/JSTestInterface.cpp:
2610         (WebCore::jsTestInterfaceImplementsStr3):
2611         (WebCore::jsTestInterfaceSupplementalStr3):
2612         (WebCore::setJSTestInterfaceConstructorImplementsStaticAttr):
2613         (WebCore::setJSTestInterfaceImplementsStr2):
2614         (WebCore::setJSTestInterfaceImplementsStr3):
2615         (WebCore::setJSTestInterfaceImplementsNode):
2616         (WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
2617         (WebCore::setJSTestInterfaceSupplementalStr2):
2618         (WebCore::setJSTestInterfaceSupplementalStr3):
2619         (WebCore::setJSTestInterfaceSupplementalNode):
2620         * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
2621         (WebCore::setJSTestNondeterministicNondeterministicWriteableAttr):
2622         (WebCore::setJSTestNondeterministicNondeterministicExceptionAttr):
2623         (WebCore::setJSTestNondeterministicNondeterministicGetterExceptionAttr):
2624         (WebCore::setJSTestNondeterministicNondeterministicSetterExceptionAttr):
2625         (WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):
2626         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
2627         (WebCore::jsTestTypedefsConstructorTestSubObj):
2628         (WebCore::setJSTestTypedefsUnsignedLongLongAttr):
2629         (WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
2630         (WebCore::setJSTestTypedefsAttrWithGetterException):
2631         (WebCore::setJSTestTypedefsAttrWithSetterException):
2632         (WebCore::setJSTestTypedefsStringAttrWithGetterException):
2633         (WebCore::setJSTestTypedefsStringAttrWithSetterException):
2634
2635 2014-05-28  Simon Fraser  <simon.fraser@apple.com>
2636
2637         [iOS WK2] Improve behavior of position:fixed inside accelerated overflow-scroll
2638         https://bugs.webkit.org/show_bug.cgi?id=133352
2639
2640         Reviewed by Tim Horton.
2641
2642         When adjusting layers inside accelerated overflow-scroll, pass a delta
2643         down to descendant nodes. Fix behavior of sticky nodes inside fixed nodes
2644         inside overflow scroll (sticky should only be affected if the parent node
2645         is a scrolling node).
2646
2647         * page/scrolling/mac/ScrollingTreeFixedNode.mm:
2648         (WebCore::ScrollingTreeFixedNode::updateLayersAfterAncestorChange): Just remove
2649         some .get()
2650         * page/scrolling/mac/ScrollingTreeStickyNode.mm:
2651         (WebCore::ScrollingTreeStickyNode::updateLayersAfterAncestorChange): Remove .get()s.
2652         We never care about the cumulative delta here, because sticky nodes only respond to
2653         changes in their direct scrolling ancestors. Only adjust the layer if the parent
2654         is a scrolling node.
2655
2656 2014-05-27  Chris Fleizach  <cfleizach@apple.com>
2657
2658         AX: WebKit does not recognize ARIA 1.1 tables
2659         https://bugs.webkit.org/show_bug.cgi?id=133163
2660
2661         Reviewed by Darin Adler.
2662
2663         The AXObjectCache code that determines which object to create based on the role needs to be token fallback aware.
2664
2665         Test: accessibility/table-fallback-roles-expose-element-attributes.html
2666
2667         * accessibility/AXObjectCache.cpp:
2668         (WebCore::nodeHasRole):
2669
2670 2014-05-28  Radu Stavila  <stavila@adobe.com>
2671
2672         REGRESSION (r168046): Invalid layout in multicol
2673         https://bugs.webkit.org/show_bug.cgi?id=133322
2674
2675         Reviewed by Antti Koivisto.
2676
2677         In some situations, deleting the line boxes of a multicol element causes the line to region
2678         link to become invalid.
2679
2680         Test: fast/multicol/newmulticol/multicol-inside-multicol.html
2681
2682         * rendering/RenderFlowThread.cpp:
2683         (WebCore::RenderFlowThread::clearLinesToRegionMap):
2684         (WebCore::RenderFlowThread::deleteLines):
2685         (WebCore::RenderFlowThread::willBeDestroyed):
2686         * rendering/RenderFlowThread.h:
2687
2688 2014-05-28  Ryuan Choi  <ryuan.choi@samsung.com>
2689
2690         Remove DocumentThreadableLoaderClient.h
2691         https://bugs.webkit.org/show_bug.cgi?id=133341
2692
2693         Reviewed by Gyuyoung Kim.
2694
2695         DocumentThreadableLoaderClient is not used anymore.
2696
2697         * WebCore.order:
2698         * loader/DocumentThreadableLoader.cpp:
2699         (WebCore::DocumentThreadableLoader::redirectReceived):
2700         * loader/DocumentThreadableLoaderClient.h: Removed.
2701         * loader/ThreadableLoaderClient.h:
2702         (WebCore::ThreadableLoaderClient::isDocumentThreadableLoaderClient): Deleted.
2703
2704 2014-05-28  Carlos Garcia Campos  <cgarcia@igalia.com>
2705
2706         Unreviewed. Update GObject DOM bindings symbols file after r169017.
2707
2708         * bindings/gobject/webkitdom.symbols: Add webkit_dom_navigator_get_hardware_concurrency.
2709
2710 2014-05-28  Carlos Garcia Campos  <cgarcia@igalia.com>
2711
2712         REGRESSION(r168868): [GTK] Element.offset* client* scroll* API changed
2713         https://bugs.webkit.org/show_bug.cgi?id=133313
2714
2715         Reviewed by Philippe Normand.
2716
2717         Keep old API that uses long also for GObject bindings.
2718
2719         * dom/Element.idl:
2720
2721 2014-05-27  Commit Queue  <commit-queue@webkit.org>
2722
2723         Unreviewed, rolling out r169400.
2724         https://bugs.webkit.org/show_bug.cgi?id=133338
2725
2726         Broke the iOS build in
2727         LocalizedDateCache::calculateMaximumWidth() (Requested by smfr
2728         on #webkit).
2729
2730         Reverted changeset:
2731
2732         "SVG TextRuns do not always get RenderingContexts"
2733         https://bugs.webkit.org/show_bug.cgi?id=133198
2734         http://trac.webkit.org/changeset/169400
2735
2736 2014-05-27  Timothy Horton  <timothy_horton@apple.com>
2737
2738         REGRESSION (Margin tiles): Background gradient on dom.spec.whatwg.org is very slow to render
2739         https://bugs.webkit.org/show_bug.cgi?id=133335
2740         <rdar://problem/17011392>
2741
2742         Reviewed by Simon Fraser.
2743
2744         * platform/graphics/Image.cpp:
2745         (WebCore::Image::drawTiled):
2746         Make cross-platform and use some iOS code which avoids patterned drawing when the pattern buffer
2747         would be very large. Instead, it calls draw() repeatedly over the pattern space, avoiding the allocation
2748         of a huge (in the case of bug 133335, nearly 2GB) buffer.
2749
2750 2014-05-27  Simon Fraser  <simon.fraser@apple.com>
2751
2752         [iOS WK2] Fix behavior of position:sticky inside accelerated overflow-scroll
2753         https://bugs.webkit.org/show_bug.cgi?id=133334
2754         <rdar://problem/16462535>
2755
2756         Reviewed by Tim Horton.
2757
2758         When the scroll position changes in an accelerated overflow-scroll element, we have
2759         to update child nodes in the scrolling tree for position:sticky. That requires a
2760         more generic ability to update the scrolling tree after some arbitrary zoom or
2761         scroll. To do this, we need to know the current fixed position rect, rather than
2762         having it passed in.
2763         
2764         So make the fixed position rect available from ScrollingTree, and make it possible
2765         to get the current scrollPosition() from any ScrollingTreeScrollingNode.
2766         
2767         Also, implement updateLayersAfterDelegatedScroll() in ScrollingTreeOverflowScrollingNodeIOS,
2768         and have it update descendant layers.
2769         
2770         Finally, fix ScrollingTreeOverflowScrollingNode to use the correct rectangle for its
2771         constraints math, using the scroll position of the parent node if appropriate.
2772
2773         * page/scrolling/ScrollingTree.h:
2774         * page/scrolling/ScrollingTreeScrollingNode.h:
2775         * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
2776         (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateChildNodesAfterScroll):
2777         * page/scrolling/ios/ScrollingTreeIOS.cpp:
2778         (WebCore::ScrollingTreeIOS::fixedPositionRect):
2779         * page/scrolling/ios/ScrollingTreeIOS.h:
2780         * page/scrolling/mac/ScrollingTreeStickyNode.mm:
2781         (WebCore::ScrollingTreeStickyNode::updateLayersAfterAncestorChange):
2782
2783 2014-05-27  Simon Fraser  <simon.fraser@apple.com>
2784
2785         Do some renaming in the scrolling tree
2786         https://bugs.webkit.org/show_bug.cgi?id=133333
2787
2788         Reviewed by Tim Horton.
2789
2790         Rename ScrollingTreeNode::parentScrollPositionDidChange() to updateLayersAfterAncestorChange()
2791         since this goes deep and to indicate that it's about layer updating.
2792         
2793         Also rename the "viewportRect" parameter to "fixedPositionRect", since on iOS
2794         this is the custom fixed-position rect that changes on zooming.
2795
2796         * page/scrolling/ScrollingTree.cpp:
2797         (WebCore::ScrollingTree::viewportChangedViaDelegatedScrolling):
2798         * page/scrolling/ScrollingTree.h:
2799         * page/scrolling/ScrollingTreeFrameScrollingNode.h:
2800         * page/scrolling/ScrollingTreeNode.h:
2801         * page/scrolling/ScrollingTreeScrollingNode.h:
2802         * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h:
2803         * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
2804         (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateLayersAfterViewportChange):
2805         (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateChildNodesAfterScroll):
2806         * page/scrolling/mac/ScrollingTreeFixedNode.h:
2807         * page/scrolling/mac/ScrollingTreeFixedNode.mm:
2808         (WebCore::ScrollingTreeFixedNode::updateLayersAfterAncestorChange):
2809         (WebCore::ScrollingTreeFixedNode::parentScrollPositionDidChange): Deleted.
2810         * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
2811         * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
2812         (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollLayerPosition):
2813         * page/scrolling/mac/ScrollingTreeStickyNode.h:
2814         * page/scrolling/mac/ScrollingTreeStickyNode.mm:
2815         (WebCore::ScrollingTreeStickyNode::updateLayersAfterAncestorChange):
2816         (WebCore::ScrollingTreeStickyNode::parentScrollPositionDidChange): Deleted.
2817
2818 2014-05-27  Simon Fraser  <simon.fraser@apple.com>
2819
2820         Instantiate a ScrollingTreeMac on Mac
2821         https://bugs.webkit.org/show_bug.cgi?id=133332
2822
2823         Reviewed by Tim Horton.
2824
2825         Mac previously instantiated a ThreadedScrollingTree, but this has no platform
2826         knowledge. To support future expansion, create a ScrollingTreeMac subclass and
2827         instantiate that on Mac.
2828         
2829         Also protect ScrollingCoordinatorMac in PLATFORM(MAC) #ifdefs and remove it from the
2830         EXCLUDED_SOURCE_FILE_NAMES list in the xcconfig file, following general trends.
2831
2832         * Configurations/WebCore.xcconfig:
2833         * WebCore.xcodeproj/project.pbxproj:
2834         * page/scrolling/ThreadedScrollingTree.cpp:
2835         (WebCore::ThreadedScrollingTree::create): Deleted.
2836         * page/scrolling/ThreadedScrollingTree.h:
2837         * page/scrolling/mac/ScrollingCoordinatorMac.h:
2838         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
2839         (WebCore::ScrollingCoordinatorMac::ScrollingCoordinatorMac):
2840         * page/scrolling/mac/ScrollingTreeMac.cpp: Copied from Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.h.
2841         (ScrollingTreeMac::create):
2842         (ScrollingTreeMac::ScrollingTreeMac):
2843         * page/scrolling/mac/ScrollingTreeMac.h: Copied from Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.h.
2844
2845 2014-05-27  Simon Fraser  <simon.fraser@apple.com>
2846
2847         Prepare for position:sticky support inside accelerated overflow-scroll with WK2
2848         https://bugs.webkit.org/show_bug.cgi?id=133329
2849
2850         Reviewed by Tim Horton.
2851
2852         RenderLayerCompositor::computeStickyViewportConstraints() was always using
2853         the viewport rect as the constraining rect for sticky position. This is not
2854         correct when inside overflow:scroll.
2855         
2856         Refactor code in RenderBoxModelObject to make getting the rect easy, and use
2857         it to compute the constraints.
2858
2859         * rendering/RenderBoxModelObject.cpp:
2860         (WebCore::RenderBoxModelObject::constrainingRectForStickyPosition):
2861         (WebCore::RenderBoxModelObject::stickyPositionOffset):
2862         * rendering/RenderBoxModelObject.h:
2863         * rendering/RenderLayerCompositor.cpp:
2864         (WebCore::RenderLayerCompositor::computeStickyViewportConstraints):
2865
2866 2014-05-27  Bem Jones-Bey  <bjonesbe@adobe.com>
2867
2868         vw/vh units used as font/line-height values don't scale with the viewport
2869         https://bugs.webkit.org/show_bug.cgi?id=87846
2870
2871         Reviewed by Darin Adler.
2872
2873         This patch moves the resolution of viewport units to style recalc
2874         time. Currently viewport units are left unresolved during style
2875         recalcs, which leads to many problems with viewport units. Moving the
2876         resolution will fix these problems, as well as reduce the plumbing
2877         that goes on.
2878
2879         This patch touches a lot of files since the valueForLength functions
2880         no longer need a RenderView. The interesting changes are in:
2881
2882         - CSSToLengthConversionData -> CSSPrimitiveValue: for moving
2883             resolution to style recalc time.
2884         - Length / LengthFunctions: no longer needs to know about viewport
2885             units.
2886         - FrameView -> Document -> StyleResolver: for scheduling style recalcs
2887             upon resize
2888
2889         Note that getComputedStyle will now return pixel values when viewport
2890         units are used. This behavior matches Firefox and the css3-cascade
2891         spec.
2892
2893         This is based on a Blink patch by timloh@chromium.org.
2894
2895         Tests: css3/viewport-percentage-lengths/viewport-percentage-lengths-anonymous-block.html
2896                css3/viewport-percentage-lengths/viewport-percentage-lengths-calc.html
2897                css3/viewport-percentage-lengths/viewport-percentage-lengths-percent-size-child.html
2898                css3/viewport-percentage-lengths/viewport-percentage-lengths-relative-font-size.html
2899                css3/viewport-percentage-lengths/viewport-percentage-lengths-resize.html
2900
2901         * WebCore.exp.in: Remove RenderView argument to floatValueForLength.
2902         * accessibility/atk/WebKitAccessibleInterfaceText.cpp: 
2903         (getAttributeSetForAccessibilityObject): Remove RenderView argument.
2904         * css/BasicShapeFunctions.cpp:
2905         (WebCore::convertToLength): Ditto.
2906         (WebCore::floatValueForCenterCoordinate): Ditto.
2907         * css/BasicShapeFunctions.h: Ditto.
2908         * css/CSSCalculationValue.cpp:
2909         (WebCore::unitCategory): Remove special handling for viewport units,
2910             as they get resolved to pixels.
2911         (WebCore::createCSS): Ditto.
2912         * css/CSSComputedStyleDeclaration.cpp:
2913         (WebCore::positionOffsetValue): Remove RendewView argument.
2914         (WebCore::getBorderRadiusCornerValues): Remove handling of viewport
2915             units, as they are already resolve to pixels here.
2916         (WebCore::getBorderRadiusCornerValue): Remove RenderView argument.
2917         (WebCore::getBorderRadiusShorthandValue): Ditto.
2918         (WebCore::specifiedValueForGridTrackBreadth): Remove handling of
2919             viewport units, as they are already resolved to pixels here.
2920         (WebCore::specifiedValueForGridTrackSize): Remove RenderView argument.
2921         (WebCore::valueForGridTrackList): Ditto.
2922         (WebCore::lineHeightFromStyle): Ditto.
2923         (WebCore::ComputedStyleExtractor::propertyValue): Ditto.
2924         * css/CSSGradientValue.cpp:
2925         (WebCore::CSSLinearGradientValue::createGradient): Pass RenderView to
2926             CSSToLengthConversionData constructor.
2927         (WebCore::CSSRadialGradientValue::createGradient): Ditto.
2928         * css/CSSPrimitiveValue.cpp:
2929         (WebCore::CSSPrimitiveValue::unitCategory): Remove handling of
2930             viewport units, as they get resolved to pixels.
2931         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Ditto.
2932         (WebCore::CSSPrimitiveValue::init): Ditto.
2933         (WebCore::CSSPrimitiveValue::computeLengthDouble): Resolve viewport
2934             units to pixels.
2935         (WebCore::CSSPrimitiveValue::canonicalUnitTypeForCategory): Remove
2936         handling of viewport units, since they get resolved to pixels.
2937         (WebCore::CSSPrimitiveValue::viewportPercentageLength): Deleted.
2938         * css/CSSPrimitiveValue.h:
2939         (WebCore::CSSPrimitiveValue::isLength): Remove special handling of
2940             viewport units, since they get resolved to pixels.
2941         * css/CSSPrimitiveValueMappings.h:
2942         (WebCore::CSSPrimitiveValue::convertToLength): Ditto.
2943         * css/CSSToLengthConversionData.cpp:
2944         (WebCore::CSSToLengthConversionData::viewportWidthFactor): Caclulate
2945             conversion factor for viewport units to pixels. Note this does not
2946             set hasViewportUnits on the RenderStyle if computing the font
2947             size, because in the font size case, the RenderStyle is the
2948             parent's style, not the current renderer's style.
2949         (WebCore::CSSToLengthConversionData::viewportHeightFactor): Ditto.
2950         (WebCore::CSSToLengthConversionData::viewportMinFactor): Ditto.
2951         (WebCore::CSSToLengthConversionData::viewportMaxFactor): Ditto.
2952         * css/CSSToLengthConversionData.h:
2953         (WebCore::CSSToLengthConversionData::CSSToLengthConversionData): Add
2954             RenderView parameter, and make RenderStyle non-const so that
2955             hasViewportUnits can be set on the Style..
2956         (WebCore::CSSToLengthConversionData::style): style is now non-const.
2957         (WebCore::CSSToLengthConversionData::copyWithAdjustedZoom): Handle
2958             RenderView argument.
2959         * css/CSSToStyleMap.cpp:
2960         (WebCore::CSSToStyleMap::mapFillXPosition): Remove handling of
2961             viewport units, as they are already resolved to pixels here.
2962         (WebCore::CSSToStyleMap::mapFillYPosition): Ditto.
2963         * css/DeprecatedStyleBuilder.cpp:
2964         (WebCore::ApplyPropertyLength::applyValue): Ditto.
2965         (WebCore::ApplyPropertyBorderRadius::applyValue): Ditto.
2966         (WebCore::ApplyPropertyComputeLength::applyValue): Ditto.
2967         (WebCore::ApplyPropertyFontSize::applyValue): Ditto.
2968         (WebCore::ApplyPropertyLineHeight::applyValue): Ditto.
2969         (WebCore::ApplyPropertyLineHeightForIOSTextAutosizing::applyValue): Ditto.
2970         (WebCore::ApplyPropertyWordSpacing::applyValue): Ditto.
2971         (WebCore::ApplyPropertyVerticalAlign::applyValue): Ditto.
2972         (WebCore::ApplyPropertyTextIndent::applyValue): Ditto.
2973         * css/LengthFunctions.cpp:
2974         (WebCore::minimumIntValueForLength): Remove RenderView argument.
2975         (WebCore::intValueForLength): Remove RenderView argument and
2976             roundPecentages.
2977         (WebCore::minimumValueForLength): Remove RenderView argument, and
2978             special handling of viewport units.
2979         (WebCore::valueForLength): Ditto.
2980         (WebCore::floatValueForLength): Ditto.
2981         (WebCore::floatSizeForLengthSize): Remove RenderView argument.
2982         * css/LengthFunctions.h: Ditto.
2983         * css/MediaQueryEvaluator.cpp:
2984         (WebCore::MediaQueryEvaluator::eval): Add RenderView argument for
2985             CSSToLengthConversionData constuctor.
2986         * css/StyleResolver.cpp:
2987         (WebCore::StyleResolver::State::clear): Change to 0 arg constructor
2988             for CSSToLengthConversionData.
2989         (WebCore::StyleResolver::State::updateConversionData): In order to get
2990             the RenderView, we need to have a valid Element set on the state.
2991             Since this means that we need to set the conversion data in more
2992             places, move the contruction of conversion data into this helper
2993             method.
2994         (WebCore::StyleResolver::State::initElement): Make sure conversion
2995             data is up to date.
2996         (WebCore::StyleResolver::State::initForStyleResolve): Ditto.
2997         (WebCore::StyleResolver::State::setStyle): When the style is set, we
2998             need to make sure to update the conversion data.
2999         (WebCore::StyleResolver::styleForElement): If the style has viewport
3000             units, flage the document so that we can make sure to recalc the
3001             viewport unit values when the viewport is resized.
3002         (WebCore::StyleResolver::pseudoStyleForElement): Ditto.
3003         (WebCore::StyleResolver::updateFont): Make sure the font having
3004             viewport units updates the style.
3005         (WebCore::StyleResolver::convertToIntLength): Remove handling of
3006         viewport units, as they are resolved to pixels.
3007         (WebCore::StyleResolver::convertToFloatLength): Ditto.
3008         (WebCore::StyleResolver::clearCachedPropertiesAffectedByViewportUnits):
3009             Invalidate the matched properties cache for styles with viewport
3010             units when the viewport is resized.
3011         (WebCore::createGridTrackBreadth): Remove handling of viewport units,
3012             as they are resolved to pixels.
3013         (WebCore::StyleResolver::applyProperty): Ditto.
3014         (WebCore::StyleResolver::hasMediaQueriesAffectedByViewportChange):
3015             Rename to be less confusing, since it has nothing to do with
3016             viewport units.
3017         (WebCore::StyleResolver::createFilterOperations): Remove handling of
3018             viewport units, as they are resolved to pixels.
3019         (WebCore::StyleResolver::affectedByViewportChange): Deleted.
3020         (WebCore::StyleResolver::viewportPercentageValue): Deleted.
3021         * css/StyleResolver.h:
3022         (WebCore::StyleResolver::State::State): C++11 cleanup: 0 -> nullptr.
3023         (WebCore::StyleResolver::State::setFontSizeHasViewportUnits): Set if
3024             the font size is specified in viewport units.
3025         (WebCore::StyleResolver::State::fontSizeHasViewportUnits): Ditto.
3026         (WebCore::StyleResolver::State::setStyle): Deleted.
3027         * css/TransformFunctions.cpp:
3028         (WebCore::convertToFloatLength): Remove handling of viewport units,
3029             since they are resolved to pixels.
3030         * dom/Document.cpp:
3031         (WebCore::Document::Document): Add flag to determine if some style in
3032             the document has viewport units.
3033         (WebCore::Document::pageSizeAndMarginsInPixels): Remove RenderView
3034             argument.
3035         (WebCore::Document::updateViewportUnitsOnResize): Mark elements with
3036             viewport units for style recalc when the viewport size has
3037             changed.
3038         * dom/Document.h:
3039         (WebCore::Document::setHasStyleWithViewportUnits): Flag to determine
3040             if some style in the document has viewport units.
3041         (WebCore::Document::hasStyleWithViewportUnits): Ditto.
3042         * html/HTMLAreaElement.cpp:
3043         (WebCore::HTMLAreaElement::getRegion): Remove RenderView argument.
3044         * page/FrameView.cpp:
3045         (WebCore::FrameView::layout): When the viewport is resized, call
3046             updateViewportUnitsOnResize on the document.
3047         * platform/Length.h:
3048         (WebCore::Length::isSpecified): Remove handling of viewport units,
3049             since they are now resolved to pixels.
3050         (WebCore::Length::viewportPercentageLength): Deleted.
3051         (WebCore::Length::isViewportPercentage): Deleted.
3052         * rendering/ClipPathOperation.h:
3053         (WebCore::ShapeClipPathOperation::pathForReferenceRect): Remove
3054             RenderView argument.
3055         (WebCore::BoxClipPathOperation::pathForReferenceRect): Ditto.
3056         * rendering/RenderBlock.cpp:
3057         (WebCore::RenderBlock::updateBlockChildDirtyBitsBeforeLayout): Remove
3058             handling of viewport units, since they get updated by
3059             updateViewportUnitsOnResize when the viewport is resized.
3060         (WebCore::RenderBlock::nodeAtPoint): Remove RenderView argument.
3061         (WebCore::RenderBlock::lineHeight): Ditto.
3062         * rendering/RenderBox.cpp:
3063         (WebCore::RenderBox::paintBoxDecorations): Remove RenderView argument.
3064         (WebCore::RenderBox::computeContentAndScrollbarLogicalHeightUsing):
3065             Remove handling of viewport units, as they are resolved to pixels.
3066         (WebCore::RenderBox::computePercentageLogicalHeight): Ditto.
3067         (WebCore::RenderBox::computeReplacedLogicalWidthUsing): Ditto.
3068         (WebCore::RenderBox::computeReplacedLogicalHeightUsing): Ditto.
3069         (WebCore::RenderBox::hasViewportPercentageLogicalHeight): Deleted.
3070         * rendering/RenderBox.h:
3071         * rendering/RenderBoxModelObject.cpp:
3072         (WebCore::RenderBoxModelObject::getBackgroundRoundedRect): Remove
3073             RenderView argument.
3074         (WebCore::RenderBoxModelObject::calculateFillTileSize): Remove
3075             handling of viewport units, as they are resolved to pixels.
3076         (WebCore::computeBorderImageSide): Remove RenderView argument.
3077         (WebCore::RenderBoxModelObject::paintNinePieceImage): Ditto.
3078         (WebCore::RenderBoxModelObject::paintBorder): Ditto.
3079         (WebCore::RenderBoxModelObject::paintBoxShadow): Ditto.
3080         * rendering/RenderElement.cpp:
3081         (WebCore::RenderElement::repaintAfterLayoutIfNeeded): Ditto.
3082         * rendering/RenderElement.h:
3083         (WebCore::RenderElement::valueForLength): Remove unused
3084             roundPercentages argument.
3085         (WebCore::RenderElement::minimumValueForLength): Remove unused
3086             RoundPercentages and RenderView arguments.
3087         * rendering/RenderGrid.cpp:
3088         (WebCore::RenderGrid::layoutGridItems): Remove handling of viewport
3089             units as they are resolved to pixels.
3090         * rendering/RenderInline.cpp:
3091         (WebCore::computeMargin): Ditto.
3092         (WebCore::RenderInline::lineHeight): Remove RenderView argument.
3093         * rendering/RenderLayer.cpp:
3094         (WebCore::RenderLayer::setupClipPath): Ditto.
3095         * rendering/RenderLineBreak.cpp:
3096         (WebCore::RenderLineBreak::lineHeight): Ditto.
3097         * rendering/RenderScrollbarPart.cpp:
3098         (WebCore::calcScrollbarThicknessUsing): Ditto.
3099         (WebCore::RenderScrollbarPart::computeScrollbarWidth): Ditto.
3100         (WebCore::RenderScrollbarPart::computeScrollbarHeight): Ditto.
3101         * rendering/RenderTable.cpp:
3102         (WebCore::RenderTable::convertStyleLogicalHeightToComputedHeight):
3103             Remove handling of viewport units, since they are resolved to
3104             pixels.
3105         (WebCore::RenderTable::computePreferredLogicalWidths): Now that
3106             viewport unit values are resolved to pixels at style recalc time,
3107             no special checking is needed to handle them, so update the
3108             comment to reflect that.
3109         * rendering/RenderThemeIOS.mm:
3110         (WebCore::applyCommonButtonPaddingToStyle): Add RenderView argument to
3111             CSSToLengthConversionData constructor.
3112         (WebCore::RenderThemeIOS::adjustButtonStyle): Ditto.
3113         * rendering/RenderThemeMac.mm:
3114         (WebCore::RenderThemeMac::paintMenuListButtonGradients): Remove
3115             RenderView argument.
3116         * rendering/RenderView.cpp:
3117         (WebCore::RenderView::layout): Remove handling of viewport units,
3118             since they are resolved to pixels.
3119         * rendering/RootInlineBox.cpp:
3120         (WebCore::RootInlineBox::ascentAndDescentForBox): Remove RenderView
3121             argument.
3122         * rendering/shapes/Shape.cpp:
3123         (WebCore::Shape::createShape): Remove RenderView argument.
3124         * rendering/shapes/Shape.h:
3125         * rendering/shapes/ShapeOutsideInfo.cpp:
3126         (WebCore::ShapeOutsideInfo::computedShape): Ditto.
3127         * rendering/style/BasicShapes.cpp:
3128         (WebCore::BasicShapeCircle::floatValueForRadiusInBox): Ditto.
3129         (WebCore::BasicShapeCircle::path): Ditto.
3130         (WebCore::BasicShapeEllipse::floatValueForRadiusInBox): Ditto.
3131         (WebCore::BasicShapeEllipse::path): Ditto.
3132         (WebCore::BasicShapePolygon::path): Ditto.
3133         (WebCore::floatSizeForLengthSize): Ditto.
3134         (WebCore::BasicShapeInset::path): Ditto.
3135         * rendering/style/BasicShapes.h:
3136         * rendering/style/RenderStyle.cpp:
3137         (WebCore::calcRadiiFor): Ditto.
3138         (WebCore::RenderStyle::getRoundedBorderFor): Ditto.
3139         (WebCore::RenderStyle::computedLineHeight): Remove handling of
3140             viewport units since they are resolved to pixels.
3141         * rendering/style/RenderStyle.h:
3142         (WebCore::RenderStyle::setHasViewportUnits): Set if this style has
3143         a property set with viewport units.
3144         (WebCore::RenderStyle::hasViewportUnits): Ditto.
3145         * rendering/svg/RenderSVGRoot.cpp:
3146         (WebCore::resolveLengthAttributeForSVG): Remove RenderView argument.
3147         (WebCore::RenderSVGRoot::computeReplacedLogicalWidth): Ditto.
3148         (WebCore::RenderSVGRoot::computeReplacedLogicalHeight): Ditto.
3149         * rendering/svg/SVGRenderingContext.cpp:
3150         (WebCore::SVGRenderingContext::prepareToRenderSVGContent): Ditto.
3151
3152 2014-05-27  Zoltan Horvath  <zoltan@webkit.org>
3153
3154         [CSS Shapes] serialization of the computed value should omit the default radii
3155         https://bugs.webkit.org/show_bug.cgi?id=132747
3156
3157         Reviewed by Darin Adler.
3158
3159         We should omit closest-side value, whereever is possible. Specification:
3160         http://www.w3.org/TR/2014/CR-css-shapes-1-20140320/#basic-shape-computed-values 
3161         This change aligns the behavior to the specification.
3162
3163         Added new test cases for the shape-outside parsing tests.
3164
3165         * css/CSSBasicShapes.cpp:
3166         (WebCore::buildCircleString):
3167         (WebCore::CSSBasicShapeCircle::cssText):
3168         (WebCore::CSSBasicShapeEllipse::cssText):
3169
3170 2014-05-27  Commit Queue  <commit-queue@webkit.org>
3171
3172         Unreviewed, rolling out r169399.
3173         https://bugs.webkit.org/show_bug.cgi?id=133326
3174
3175         Causes assertion failures in tests.  See
3176         http://build.webkit.org/results/Apple%20Mavericks%20Debug%20WK1%20(Tests)/r169399%20(5622)/results.html
3177         (Requested by mlam on #webkit).
3178
3179         Reverted changeset:
3180
3181         "Caret's screen position does not update during an overflow
3182         scroll"
3183         https://bugs.webkit.org/show_bug.cgi?id=133256
3184         http://trac.webkit.org/changeset/169399
3185
3186 2014-05-27  Myles C. Maxfield  <mmaxfield@apple.com>
3187
3188         Lists styled with SVG fonts are not rendered as expected
3189         https://bugs.webkit.org/show_bug.cgi?id=133198
3190
3191         Reviewed by Simon Fraser.
3192
3193         There were a couple places in RenderListMarker and RenderMenuList that were
3194         implicitly creating TextRuns by passing a String to a function which
3195         expected a TextRun. Because TextRun has a constructor which takes a single
3196         String and isn't marked explicit, TextRuns were being created without
3197         any of the associated code that initializes the TextRun (such as creating
3198         a RenderingContext if necessary).
3199
3200         This patch marks the aforementioned constructor as "explicit" to discourage
3201         such behavior in the future.
3202
3203         Test: svg/custom/list-items-with-svg-font-family.html
3204
3205         * platform/graphics/TextRun.h:
3206         (WebCore::TextRun::TextRun): Mark constructors as explicit.
3207         * rendering/RenderListMarker.cpp:
3208         (WebCore::RenderListMarker::computePreferredLogicalWidths): Call
3209         RenderBlock::constructTextRun.
3210         (WebCore::RenderListMarker::getRelativeMarkerRect): Ditto.
3211         * rendering/RenderMenuList.cpp:
3212         (RenderMenuList::updateOptionsWidth): Ditto.
3213
3214 2014-05-23  Myles C. Maxfield  <mmaxfield@apple.com>
3215
3216         Caret's screen position does not update during an overflow scroll
3217         https://bugs.webkit.org/show_bug.cgi?id=133256
3218
3219         Reviewed by Simon Fraser.
3220
3221         During a scroll, we set a flag which caret position is gated on, but we never
3222         actually invalidate the caret's position. This patch does so.
3223
3224         Test: editing/input/caret-position-during-scroll.html
3225
3226         * editing/FrameSelection.h:
3227         * rendering/RenderLayer.cpp:
3228         (WebCore::RenderLayer::scrollTo):
3229
3230 2014-05-27  Timothy Horton  <timothy_horton@apple.com>
3231
3232         Turn on the LayerPool for iOS
3233         https://bugs.webkit.org/show_bug.cgi?id=133299
3234
3235         Reviewed by Antti Koivisto.
3236
3237         * Configurations/WebCore.xcconfig:
3238         * platform/cocoa/MemoryPressureHandlerCocoa.mm:
3239         (WebCore::MemoryPressureHandler::platformReleaseMemory):
3240         * platform/graphics/ca/mac/TileController.mm:
3241         (WebCore::TileController::createTileLayer):
3242         * platform/graphics/ca/mac/TileGrid.mm:
3243         (WebCore::TileGrid::removeTiles):
3244         Turn on the LayerPool for iOS.
3245         We've used this on Mac for a long time, and the WebKit1
3246         ("legacy") iOS TileCache also had a similar pool.
3247         This helps a good bit with flashiness while scrolling.
3248
3249 2014-05-27  David Hyatt  <hyatt@apple.com>
3250
3251         REGRESSION: Audio volume scrubber does not show volume level thumb
3252         <rdar://problem/16902004>
3253         https://bugs.webkit.org/show_bug.cgi?id=133310
3254
3255         Reviewed by Dean Jackson.
3256
3257         This was just a silly mistake on my part with the setting of the pagination
3258         layers. Layers inside transforms are supposed to clear out their pagination
3259         status based off their ancestor containing block layers, and not off the
3260         enclosing pagination layer.
3261         
3262         Added fast/multicol/pagination/nested-transforms.html
3263
3264         * rendering/RenderLayer.cpp:
3265         (WebCore::RenderLayer::updatePagination):
3266
3267 2014-05-27  Eric Carlson  <eric.carlson@apple.com>
3268
3269         [Mac] media controls should prevent 'click' events from reaching the page
3270         https://bugs.webkit.org/show_bug.cgi?id=133268
3271
3272         Reviewed by Jer Noble.
3273
3274         Test: media/media-controls-cancel-events.html
3275
3276         * Modules/mediacontrols/mediaControlsApple.js:
3277         (Controller.prototype.handleEvent): Allow event handler to cancel event default action.
3278         (Controller.prototype.handleRewindButtonClicked): Cancel event default.
3279         (Controller.prototype.handlePlayButtonClicked): Ditto.
3280         (Controller.prototype.handleMuteButtonClicked): Ditto.
3281         (Controller.prototype.handleMinButtonClicked): Ditto.
3282         (Controller.prototype.handleCaptionButtonClicked): Ditto.
3283         (Controller.prototype.handleFullscreenButtonClicked): Ditto.
3284         * Modules/mediacontrols/mediaControlsiOS.js:
3285         (ControllerIOS.prototype.handlePlayButtonTouchEnd): Ditto.
3286         (ControllerIOS.prototype.handlePlayButtonTouchCancel): Ditto.
3287         (ControllerIOS.prototype.handleFullscreenTouchEnd): Ditto.
3288         (ControllerIOS.prototype.handleFullscreenTouchCancel): Ditto.
3289         (ControllerIOS.prototype.handleStartPlaybackButtonTouchEnd): Ditto.
3290         (ControllerIOS.prototype.handleStartPlaybackButtonTouchCancel): Ditto.
3291         (ControllerIOS.prototype.handleWirelessPickerButtonClicked): Ditto.
3292
3293 2014-05-27  Jon Lee  <jonlee@apple.com>
3294
3295         Fix Mavericks bots from r169383.
3296         https://bugs.webkit.org/show_bug.cgi?id=133311
3297
3298         Reviewed by Eric Carlson.
3299
3300         * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h: Update #ifdef to check for ENABLE(MEDIA_SOURCE).
3301         * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm: Ditto.
3302
3303 2014-05-27  Radu Stavila  <stavila@adobe.com>
3304
3305         REGRESSION (r168046): Incorrect handling of multicol spanner
3306         https://bugs.webkit.org/show_bug.cgi?id=133249
3307
3308         Reviewed by David Hyatt.
3309
3310         When removing the child of an object, the removeChild method should return the next element
3311         following the one being deleted. This will ensure that proper iteration and destruction of
3312         an object's children is possible.
3313
3314         No new tests added. This is because the test that triggers this issue also triggers
3315         another assertion, in RenderMultiColumnSet::requiresBalancing(). However, that is a totally
3316         separate problem and will be handled in a separate bug: https://bugs.webkit.org/show_bug.cgi?id=133309
3317
3318         * rendering/RenderBlock.cpp:
3319         (WebCore::RenderBlock::removeChild):
3320         * rendering/RenderBlock.h:
3321         * rendering/RenderBlockFlow.cpp:
3322         (WebCore::RenderBlockFlow::removeChild):
3323         * rendering/RenderBlockFlow.h:
3324         * rendering/RenderButton.cpp:
3325         (WebCore::RenderButton::removeChild):
3326         * rendering/RenderButton.h:
3327         * rendering/RenderElement.cpp:
3328         (WebCore::RenderElement::removeChild):
3329         (WebCore::RenderElement::removeChildInternal):
3330         * rendering/RenderElement.h:
3331         * rendering/RenderMenuList.cpp:
3332         (RenderMenuList::removeChild):
3333         * rendering/RenderMenuList.h:
3334         * rendering/RenderMultiColumnFlowThread.cpp:
3335         (WebCore::RenderMultiColumnFlowThread::flowThreadDescendantInserted):
3336         * rendering/RenderRuby.cpp:
3337         (WebCore::RenderRubyAsInline::removeChild):
3338         (WebCore::RenderRubyAsBlock::removeChild):
3339         * rendering/RenderRuby.h:
3340         * rendering/RenderRubyRun.cpp:
3341         (WebCore::RenderRubyRun::removeChild):
3342         * rendering/RenderRubyRun.h:
3343         * rendering/mathml/RenderMathMLScripts.cpp:
3344         (WebCore::RenderMathMLScripts::removeChildInternal):
3345         (WebCore::RenderMathMLScripts::removeChild):
3346         (WebCore::RenderMathMLScriptsWrapper::removeChildInternal):
3347         (WebCore::RenderMathMLScriptsWrapper::removeChild):
3348         * rendering/mathml/RenderMathMLScripts.h:
3349         * rendering/svg/RenderSVGContainer.cpp:
3350         (WebCore::RenderSVGContainer::removeChild):
3351         * rendering/svg/RenderSVGContainer.h:
3352         * rendering/svg/RenderSVGInline.cpp:
3353         (WebCore::RenderSVGInline::removeChild):
3354         * rendering/svg/RenderSVGInline.h:
3355         * rendering/svg/RenderSVGRoot.cpp:
3356         (WebCore::RenderSVGRoot::removeChild):
3357         * rendering/svg/RenderSVGRoot.h:
3358         * rendering/svg/RenderSVGText.cpp:
3359         (WebCore::RenderSVGText::removeChild):
3360         * rendering/svg/RenderSVGText.h:
3361
3362 2014-05-27  Jon Lee  <jonlee@apple.com>
3363
3364         Update ENABLE(MEDIA_SOURCE) on Mac
3365         https://bugs.webkit.org/show_bug.cgi?id=133141
3366
3367         Reviewed by Darin Adler.
3368
3369         * Configurations/FeatureDefines.xcconfig:
3370
3371 2014-05-27  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>
3372
3373         Remove BLOB guards
3374         https://bugs.webkit.org/show_bug.cgi?id=132863
3375
3376         Reviewed by Csaba Osztrogonác.
3377
3378         * Configurations/FeatureDefines.xcconfig:
3379         * Modules/websockets/WebSocketChannel.cpp:
3380         (WebCore::WebSocketChannel::WebSocketChannel):
3381         (WebCore::WebSocketChannel::didFail):
3382         (WebCore::WebSocketChannel::processOutgoingFrameQueue):
3383         (WebCore::WebSocketChannel::abortOutgoingFrameQueue):
3384         * Modules/websockets/WebSocketChannel.h:
3385         * WebCore.exp.in:
3386         * WebCore.vcxproj/WebCore.vcxproj:
3387         * bindings/js/JSBlobCustom.cpp:
3388         (WebCore::JSBlobConstructor::constructJSBlob):
3389         * bindings/js/JSFileReaderCustom.cpp:
3390         * dom/DOMExceptions.in:
3391         * dom/EventTargetFactory.in:
3392         * dom/ScriptExecutionContext.cpp:
3393         (WebCore::ScriptExecutionContext::publicURLManager):
3394         * dom/ScriptExecutionContext.h:
3395         * fileapi/AsyncFileStream.cpp:
3396         * fileapi/AsyncFileStream.h:
3397         * fileapi/Blob.cpp:
3398         (WebCore::Blob::Blob):
3399         * fileapi/Blob.h:
3400         (WebCore::Blob::slice):
3401         * fileapi/Blob.idl:
3402         * fileapi/FileError.h:
3403         * fileapi/FileError.idl:
3404         * fileapi/FileException.cpp: