87128ea3e509b3774e0d1a361fe642246c9eafdc
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-10-30  ChangSeok Oh  <changseok.oh@collabora.com>
2
3         Unguard Element::childShouldCreateRenderer
4         https://bugs.webkit.org/show_bug.cgi?id=123496
5
6         Reviewed by Andreas Kling.
7
8         Make Element::childShouldCreateRenderer normally accessible. Guarding it with flags
9         just leaves potential build issues.
10
11         No new tests since no functionality changed.
12
13         * dom/Element.cpp:
14         (WebCore::Element::childShouldCreateRenderer):
15         * dom/Element.h:
16
17 2013-10-30  Jer Noble  <jer.noble@apple.com>
18
19         [MSE] Make MediaSourcePrivate, SourceBufferPrivate classes RefCounted.
20         https://bugs.webkit.org/show_bug.cgi?id=123350
21
22         Reviewed by Darin Adler.
23
24         Make the MediaSourcePrivate and SourceBufferPrivate classes RefCounted so that
25         they can be referenced both by MediaSource/SourceBuffer, and by the MediaPlayerPrivate
26         which creates them.
27
28         Change OwnPtr -> RefPtr everywhere:
29         * Modules/mediasource/MediaSource.cpp:
30         (WebCore::MediaSource::addSourceBuffer):
31         * Modules/mediasource/MediaSourceBase.cpp:
32         (WebCore::MediaSourceBase::setPrivateAndOpen):
33         (WebCore::MediaSourceBase::createSourceBufferPrivate):
34         * Modules/mediasource/MediaSourceBase.h:
35         * Modules/mediasource/SourceBuffer.cpp:
36         (WebCore::SourceBuffer::create):
37         (WebCore::SourceBuffer::SourceBuffer):
38         * Modules/mediasource/SourceBuffer.h:
39         * Modules/mediasource/WebKitMediaSource.cpp:
40         (WebCore::WebKitMediaSource::addSourceBuffer):
41         * Modules/mediasource/WebKitSourceBuffer.cpp:
42         (WebCore::WebKitSourceBuffer::create):
43         (WebCore::WebKitSourceBuffer::WebKitSourceBuffer):
44         * Modules/mediasource/WebKitSourceBuffer.h:
45         * html/HTMLMediaSource.h:
46         * platform/graphics/MediaSourcePrivate.h:
47         * platform/graphics/SourceBufferPrivate.h:
48         (WebCore::SourceBufferPrivate::SourceBufferPrivate):
49
50 2013-10-30  Allan Sandfeld Jensen  <allan.jensen@digia.com>
51
52         Remove unused runtime enabled
53         https://bugs.webkit.org/show_bug.cgi?id=123509
54
55         Reviewed by Anders Carlsson.
56
57         Some of the runtime enabled features were only ever used by the V8 bindings
58         and can be removed as no WebKit code sets or reads them.
59
60         * bindings/generic/RuntimeEnabledFeatures.cpp:
61         (WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
62         * bindings/generic/RuntimeEnabledFeatures.h:
63
64 2013-10-30  Antti Koivisto  <antti@apple.com>
65
66         Make SimpleLineLayout::Layout a class
67         https://bugs.webkit.org/show_bug.cgi?id=123508
68
69         Reviewed by Mario Sanchez Prada.
70
71         Improve encapsulation.
72
73 2013-10-30  Antti Koivisto  <antti@apple.com>
74
75         REGRESSION(r158214): It made zillion tests crash on GTK and EFL
76         https://bugs.webkit.org/show_bug.cgi?id=123505
77
78         * rendering/SimpleLineLayout.h: Add WTF_MAKE_FAST_ALLOCATED
79
80 2013-10-29  Philippe Normand  <pnormand@igalia.com>
81
82         [GStreamer] Store video-sink in a bin
83         https://bugs.webkit.org/show_bug.cgi?id=122831
84
85         Reviewed by Gustavo Noronha Silva.
86
87         For the upcoming mediastream playback support the player will
88         handle a non-playbin-based pipeline that will require a slightly
89         different video rendering chain. This patch generalizes the
90         encapsulation of the video sink in a bin, just like the audio sink
91         case.
92
93         No new tests, no change in functionality.
94
95 2013-10-29  Ryosuke Niwa  <rniwa@webkit.org>
96
97         REGRESSION(r154614): Opening and closing a picture on Facebook resets scroll position
98         https://bugs.webkit.org/show_bug.cgi?id=122882
99
100         Reviewed by Anders Carlsson.
101
102         scrollLeft and scrollTop have to continue to function in the strict mode for the Web compatiblity.
103         In particular, www.facebook.com and build.webkit.org depend on this behavior as of October 29th, 2013.
104
105         * html/HTMLBodyElement.cpp:
106         (WebCore::HTMLBodyElement::scrollLeft):
107         (WebCore::HTMLBodyElement::setScrollLeft):
108         (WebCore::HTMLBodyElement::scrollTop):
109         (WebCore::HTMLBodyElement::setScrollTop):
110
111 2013-10-29  Brady Eidson  <beidson@apple.com>
112
113         IDBTransactionBackend should be cross platform
114         https://bugs.webkit.org/show_bug.cgi?id=123449
115
116         Reviewed by Beth Dakin.
117
118         - Rename IDBTransactionBackendLevelDB to IDBTransactionBackendImpl
119         - Rename IDBTransactionBackendLevelDBOperations to IDBTransactionBackendOperations
120         - Move their files from the leveldb subdirectory to the indexeddb directory
121
122         * CMakeLists.txt:
123         * GNUmakefile.list.am:
124         * WebCore.xcodeproj/project.pbxproj:
125
126         * Modules/indexeddb/IDBTransactionBackendImpl.cpp: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp.
127         * Modules/indexeddb/IDBTransactionBackendImpl.h: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h.
128         * Modules/indexeddb/IDBTransactionBackendOperations.cpp: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp.
129         * Modules/indexeddb/IDBTransactionBackendOperations.h: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.h.
130
131         * Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp:
132         * Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h:
133         * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
134         (WebCore::IDBFactoryBackendLevelDB::maybeCreateTransactionBackend):
135
136 2013-10-29  Sam Weinig  <sam@webkit.org>
137
138         Modernize DatasetDOMStringMap and ClassList a bit
139         https://bugs.webkit.org/show_bug.cgi?id=123491
140
141         Reviewed by Andreas Kling.
142
143         * dom/DatasetDOMStringMap.cpp:
144         * dom/DatasetDOMStringMap.h:
145         * dom/Element.cpp:
146         * dom/ElementRareData.h:
147         * html/ClassList.cpp:
148         * html/ClassList.h:
149         Pass the owner Element by reference and store in a std::unique_ptr.
150
151 2013-10-29  Brady Eidson  <beidson@apple.com>
152
153         Attempted build-fix after http://trac.webkit.org/changeset/158234
154
155         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
156         (WebCore::IDBBackingStoreLevelDB::createBackingStoreTransaction): Implement this!
157
158 2013-10-29  Andreas Kling  <akling@apple.com>
159
160         ElementData construction helpers should return PassRef.
161         <https://webkit.org/b/123487>
162
163         Make functions that create new ElementData objects return appropriate
164         PassRef pointers instead of PassRefPtr.
165
166         Reviewed by Anders Carlsson.
167
168 2013-10-29  Ryosuke Niwa  <rniwa@webkit.org>
169
170         GTK+ build fix attempt after r158220.
171
172         * GNUmakefile.list.am:
173
174 2013-10-29  Brady Eidson  <beidson@apple.com>
175
176         Move IDBTransactionBackendLevelDB to generic IDBBackingStoreInterface
177         https://bugs.webkit.org/show_bug.cgi?id=123483
178
179         Reviewed by Andreas Kling.
180
181         * Modules/indexeddb/IDBCursorBackendInterface.h:
182         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
183         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
184         * Modules/indexeddb/IDBFactoryBackendInterface.h:
185         * Modules/indexeddb/IDBTransactionBackendInterface.h:
186
187         * Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp:
188         (WebCore::IDBCursorBackendLevelDB::IDBCursorBackendLevelDB):
189         * Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h:
190         (WebCore::IDBCursorBackendLevelDB::create):
191
192         * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
193         (WebCore::IDBFactoryBackendLevelDB::createCursorBackend):
194         * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
195
196         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
197         (WebCore::IDBTransactionBackendLevelDB::registerOpenCursor):
198         (WebCore::IDBTransactionBackendLevelDB::unregisterOpenCursor):
199         (WebCore::IDBTransactionBackendLevelDB::closeOpenCursors):
200         (WebCore::IDBTransactionBackendLevelDB::createCursorBackend):
201         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
202
203         * WebCore.xcodeproj/project.pbxproj: Export a required header.
204
205 2013-10-29  Seokju Kwon  <seokju@webkit.org>
206
207         Remove mutable keyword from member variables of XMLHttpRequest
208         https://bugs.webkit.org/show_bug.cgi?id=123481
209
210         Reviewed by Andreas Kling.
211
212         No new tests, no change in functionality.
213
214         * xml/XMLHttpRequest.h: Remove mutable keyword as these are no longer used in const functions.
215
216 2013-10-29  Myles C. Maxfield  <mmaxfield@apple.com>
217
218         Underline bounds cannot be queried before underline itself is drawn
219         https://bugs.webkit.org/show_bug.cgi?id=123310
220
221         Reviewed by Simon Fraser
222
223         GraphicsContext's drawLineForText function is used to draw underlines,
224         strikethroughs, and overlines. Before drawing the line, this function
225         modifies the bounds given to it in order to make underlines crisp. However,  
226         this means that it is impossible to know where an underline will be drawn
227         before drawing it. This patch pulls out this adjustment computation into 
228         InlineTextBox, then passes the result to drawLineForText.
229
230         Because there should be no observable difference, no tests need to be updated.
231
232         * platform/graphics/GraphicsContext.h: Changing the signature of drawLineForText
233         so it can accept bounds from our helper function
234         * platform/graphics/blackberry/PathBlackBerry.cpp:
235         (WebCore::GraphicsContext::drawLineForText): Update to work with new
236         signature of drawLineForText
237         * platform/graphics/cairo/GraphicsContextCairo.cpp:
238         (WebCore::GraphicsContext::drawLineForText): Ditto
239         * platform/graphics/cg/GraphicsContextCG.cpp:
240         (WebCore::GraphicsContext::drawLineForText): Ditto
241         * platform/graphics/wince/GraphicsContextWinCE.cpp:
242         (WebCore::GraphicsContext::drawLineForText): Ditto
243         * platform/win/WebCoreTextRenderer.cpp:
244         (WebCore::doDrawTextAtPoint): Update the last call site of drawLineForText
245         * rendering/InlineTextBox.cpp:
246         (WebCore::computeBoundsForUnderline): Pure function that computes the adjusted
247         bounds of the underline about to be drawn
248         (WebCore::drawLineForText): calls computeBoundsForUnderline and then
249         GraphicsContext::drawLineForText
250         (WebCore::InlineTextBox::paintDecoration): Use new drawLineForText function
251         (WebCore::InlineTextBox::paintCompositionUnderline): Ditto
252
253 2013-10-29  Alexey Proskuryakov  <ap@apple.com>
254
255         Beef up CryptoKey
256         https://bugs.webkit.org/show_bug.cgi?id=123462
257
258         Fix a mismerge, remove duplicate CryptoKeyType declaration.
259
260         * crypto/CryptoKey.h:
261
262 2013-10-29  Alexey Proskuryakov  <ap@apple.com>
263
264         Beef up CryptoKey
265         https://bugs.webkit.org/show_bug.cgi?id=123462
266
267         Reviewed by Sam Weinig.
268
269         * WebCore.xcodeproj/project.pbxproj: Added new files.
270
271         * crypto/CryptoAlgorithmIdentifier.h: Added an enum with all registered algorithms
272         (they don't have to be all implemented in any port).
273
274         * crypto/CryptoKey.cpp:
275         (WebCore::CryptoKey::CryptoKey): Initialize base class variables.
276         (WebCore::CryptoKey::type): Convert internal representation for bindings use.
277         (WebCore::CryptoKey::buildAlgorithmDescription): Ditto. This function is supposed
278         to be called by derived classes before adding other keyes.
279         (WebCore::CryptoKey::usages): Convert internal representation for bindings use.
280
281         * crypto/CryptoKey.h:
282         (WebCore::CryptoKey::extractable): Expose for bindings.
283         (WebCore::CryptoKey::allows): A faster way to check allowed key usage from C++ code.
284
285         * crypto/CryptoKey.idl: Added SkipVTableValidation, because validation doesn't work
286         with derived classes. Corrected "usages" attribute name.
287
288         * crypto/CryptoKeyFormat.h: Added. 
289         * crypto/CryptoKeyType.h: Added.
290         * crypto/CryptoKeyUsage.h: Added.
291         Added enums used by CryptoKey.
292
293 2013-10-29  Hugo Parente Lima  <hugo.lima@openbossa.org>
294
295         Adding Nix files in Source/Platform to trunk
296         https://bugs.webkit.org/show_bug.cgi?id=118331
297
298         Reviewed by Benjamin Poulain.
299
300         Add Nix WebAudio implementation that just forward some calls to our API.
301         This patch is part of the upstream process, tests will be landed by other patches.
302
303         * platform/audio/nix/AudioBusNix.cpp: Added.
304         * platform/audio/nix/AudioDestinationNix.cpp: Added.
305         * platform/audio/nix/AudioDestinationNix.h: Added.
306         * platform/audio/nix/FFTFrameNix.cpp: Added.
307         * platform/nix/support/MultiChannelPCMData.cpp: Added.
308
309 2013-10-29  Brady Eidson  <beidson@apple.com>
310
311         Move IDBTransactionBackendLevelDB to generic IDBBackingStoreInterface::Transaction.
312         https://bugs.webkit.org/show_bug.cgi?id=123475
313
314         Reviewed by Tim Horton.
315
316         Currently it's using IDBBackingStoreLevelDB::Transaction, which hinders the goal of:
317         https://bugs.webkit.org/show_bug.cgi?id=123449 - IDBTransactionBackend should be cross platform
318
319         * Modules/indexeddb/IDBBackingStoreInterface.h:
320
321         * Modules/indexeddb/IDBIndexWriter.cpp:
322         (WebCore::IDBIndexWriter::writeIndexKeys):
323         (WebCore::IDBIndexWriter::verifyIndexKeys):
324         (WebCore::IDBIndexWriter::addingKeyAllowed):
325         * Modules/indexeddb/IDBIndexWriter.h:
326
327         * Modules/indexeddb/IDBTransactionBackendInterface.h:
328
329         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
330         (WebCore::IDBBackingStoreLevelDB::updateIDBDatabaseIntVersion):
331         (WebCore::IDBBackingStoreLevelDB::updateIDBDatabaseMetaData):
332         (WebCore::IDBBackingStoreLevelDB::createObjectStore):
333         (WebCore::IDBBackingStoreLevelDB::deleteObjectStore):
334         (WebCore::IDBBackingStoreLevelDB::getRecord):
335         (WebCore::IDBBackingStoreLevelDB::putRecord):
336         (WebCore::IDBBackingStoreLevelDB::clearObjectStore):
337         (WebCore::IDBBackingStoreLevelDB::deleteRecord):
338         (WebCore::IDBBackingStoreLevelDB::getKeyGeneratorCurrentNumber):
339         (WebCore::IDBBackingStoreLevelDB::maybeUpdateKeyGeneratorCurrentNumber):
340         (WebCore::IDBBackingStoreLevelDB::keyExistsInObjectStore):
341         (WebCore::IDBBackingStoreLevelDB::createIndex):
342         (WebCore::IDBBackingStoreLevelDB::deleteIndex):
343         (WebCore::IDBBackingStoreLevelDB::putIndexDataForRecord):
344         (WebCore::IDBBackingStoreLevelDB::findKeyInIndex):
345         (WebCore::IDBBackingStoreLevelDB::getPrimaryKeyViaIndex):
346         (WebCore::IDBBackingStoreLevelDB::keyExistsInIndex):
347         (WebCore::IDBBackingStoreLevelDB::openObjectStoreCursor):
348         (WebCore::IDBBackingStoreLevelDB::openObjectStoreKeyCursor):
349         (WebCore::IDBBackingStoreLevelDB::openIndexKeyCursor):
350         (WebCore::IDBBackingStoreLevelDB::openIndexCursor):
351         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
352
353         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
354         (WebCore::IDBTransactionBackendLevelDB::IDBTransactionBackendLevelDB):
355         (WebCore::IDBTransactionBackendLevelDB::abort):
356         (WebCore::IDBTransactionBackendLevelDB::commit):
357         (WebCore::IDBTransactionBackendLevelDB::taskTimerFired):
358         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
359
360 2013-10-29  Dean Jackson  <dino@apple.com>
361
362         Move InlineTextBox's text painting to it's own class
363         https://bugs.webkit.org/show_bug.cgi?id=123355
364
365         Reinstate the LGPL license. I incorrectly told Myles to
366         use another license on these new files.
367
368         * rendering/TextPainter.cpp:
369         * rendering/TextPainter.h:
370
371 2013-10-29  Myles C. Maxfield  <mmaxfield@apple.com>
372
373         Move InlineTextBox's text painting to it's own class
374         https://bugs.webkit.org/show_bug.cgi?id=123355
375
376         Reviewed by Dean Jackson.
377
378         Implementing text-decoration-skip: ink requires drawing text
379         twice (once regularly, and once with a thick outline into a mask).
380         This patch pulls out the relevant text drawing code from
381         InlineTextBox into a new class, called TextPainter, which can be re-used
382         to draw text multiple times.
383
384         Because there should be no observable difference, no tests need to be updated.
385
386         * CMakeLists.txt: Adding new TextPainter class
387         * GNUmakefile.list.am: Adding new TextPainter class
388         * WebCore.vcxproj/WebCore.vcxproj: Adding new TextPainter class
389         * WebCore.vcxproj/WebCore.vcxproj.filters: Adding new TextPainter
390         class
391         * WebCore.xcodeproj/project.pbxproj: Adding new TextPainter class
392         * rendering/InlineTextBox.cpp:
393         (WebCore::InlineTextBox::paint): Moving text drawing code from
394         this function
395         * rendering/RenderingAllInOne.cpp: Adding new TextPainter class
396         * rendering/TextPainter.cpp: Added.
397         (WebCore::TextPainter::TextPainter):
398         (WebCore::drawTextOrEmphasisMarks):
399         (WebCore::paintTextWithShadows):
400         (WebCore::rotation):
401         (WebCore::TextPainter::paintText): New location for text drawing
402         code
403         (WebCore::TextPainter::paintTextInContext):
404         * rendering/TextPainter.h: Added.
405         (WebCore::SavedDrawingStateForMask::SavedDrawingStateForMask):
406         (WebCore::TextPainter::boxRect):
407
408 2013-10-29  Jer Noble  <jer.noble@apple.com>
409
410         [MSE] [Mac] Enable MediaSource on the Mac
411         https://bugs.webkit.org/show_bug.cgi?id=122484
412
413         Reviewed by Darin Adler.
414
415         Enable ENABLE_MEDIA_SOURCE.
416
417         * Configurations/FeatureDefines.xcconfig:
418
419 2013-10-29  Tim Horton  <timothy_horton@apple.com>
420
421         Build fix after 158223; make TileController use float for scales.
422
423         This matches what we do in other places, and fixes the constant
424         issue with exporting symbols that include CGFloat.
425
426         * WebCore.exp.in:
427         * platform/graphics/ca/mac/TileController.h:
428         (WebCore::TileController::scale):
429         * platform/graphics/ca/mac/TileController.mm:
430         (WebCore::TileController::setScale):
431
432 2013-10-29  Antti Koivisto  <antti@apple.com>
433
434         Try to keep MSVC happy.
435
436         * rendering/SimpleLineLayout.h:
437         (WebCore::SimpleLineLayout::Run::Run):
438
439 2013-10-29  Tim Horton  <timothy_horton@apple.com>
440
441         More correct build fix after 158223.
442
443         Only fails in release because it's inline.
444
445         * WebCore.exp.in:
446
447 2013-10-29  Antti Koivisto  <antti@apple.com>
448
449         Use left/right instead of left/width for simple text runs
450         https://bugs.webkit.org/show_bug.cgi?id=123465
451
452         Reviewed by Andreas Kling.
453
454         This simplifies the code a bit.
455
456         * rendering/SimpleLineLayout.cpp:
457         (WebCore::SimpleLineLayout::adjustRunOffsets):
458         (WebCore::SimpleLineLayout::create):
459         * rendering/SimpleLineLayout.h:
460         (WebCore::SimpleLineLayout::Run::Run):
461         * rendering/SimpleLineLayoutResolver.h:
462         (WebCore::SimpleLineLayout::RunResolver::Run::rect):
463
464 2013-10-29  Tim Horton  <timothy_horton@apple.com>
465
466         Try fixing the Mac build (though I have no idea why
467         this wouldn't fail locally)...
468
469         * WebCore.exp.in:
470
471 2013-10-29  Tim Horton  <timothy_horton@apple.com>
472
473         Remote Layer Tree: Support tiled drawing and use it for the main frame
474         https://bugs.webkit.org/show_bug.cgi?id=123422
475
476         Reviewed by Simon Fraser.
477
478         * WebCore.exp.in:
479         * WebCore.xcodeproj/project.pbxproj:
480
481 2013-10-29  Eric Carlson  <eric.carlson@apple.com>
482
483         [Mac MediaStream] implement AVFoundation backed MediaStreamSource
484         https://bugs.webkit.org/show_bug.cgi?id=123316
485
486         Reviewed by Jer Noble
487
488         No new tests, existing tests updated.
489
490         * CMakeLists.txt: Add MediaStreamSourceStates.cpp.
491
492         * Modules/mediastream/MediaSourceStates.cpp:
493         (WebCore::MediaSourceStates::MediaSourceStates): m_SourceStates -> m_sourceStates.
494         (WebCore::MediaSourceStates::sourceType): Ditto.
495         (WebCore::MediaSourceStates::facingMode): Ditto.
496         * Modules/mediastream/MediaSourceStates.h: Ditto.
497         * Modules/mediastream/MediaSourceStates.idl: Mark some attributes as optional.
498
499         * Modules/mediastream/MediaStream.cpp:
500         (WebCore::MediaStream::addTrack):
501         (WebCore::MediaStream::removeTrack):
502         (WebCore::MediaStream::addRemoteSource):
503         (WebCore::MediaStream::removeRemoteSource):
504
505         * Modules/mediastream/MediaStreamCapabilities.cpp:
506         (WebCore::MediaStreamCapabilities::sourceType): MediaSourceStates -> MediaStreamSourceStates
507         (WebCore::MediaStreamCapabilities::facingMode): Ditto.
508
509         * Modules/mediastream/MediaStreamTrack.cpp:
510         (WebCore::MediaStreamTrack::MediaStreamTrack): Don't observe source changes directly, let the
511             private track do that. Change private track parameter to ref because it can't be NULL.
512         (WebCore::MediaStreamTrack::~MediaStreamTrack): Ditto.
513         (WebCore::MediaStreamTrack::setSource): Pass through to private track.
514         (WebCore::MediaStreamTrack::stopped): Ditto.
515         (WebCore::MediaStreamTrack::states): Ditto.
516         (WebCore::MediaStreamTrack::capabilities): Ditto.
517         (WebCore::MediaStreamTrack::applyConstraints): Ditto.
518         (WebCore::MediaStreamTrack::stopProducingData): Ditto.
519         (WebCore::MediaStreamTrack::trackReadyStateChanged): Renamed from sourceStateChanged. Don't
520             schedule an 'ended' event if called as a side effect of the stop() method having been
521             called as per spec.
522         (WebCore::MediaStreamTrack::trackMutedChanged): Renamed from sourceMutedChanged.
523         (WebCore::MediaStreamTrack::trackEnabledChanged): Renamed from sourceEnabledChanged.
524         (WebCore::MediaStreamTrack::stop): Pass through to private track.
525         * Modules/mediastream/MediaStreamTrack.h:
526         (WebCore::MediaStreamTrack::Observer::~Observer): Add virtual destructor.
527
528         * Modules/mediastream/UserMediaRequest.cpp:
529         (WebCore::UserMediaRequest::callSuccessHandler): Set track, not source, constraints.
530
531         * WebCore.xcodeproj/project.pbxproj: Add new files.
532
533         * bindings/js/JSMediaSourceStatesCustom.cpp:
534         (WebCore::JSMediaSourceStates::facingMode): Return jsUndefined when the facing mode
535             is Unknown.
536
537         * platform/mediastream/MediaStreamCenter.h: Remove unused class forward defines and
538             undefined method prototype.
539
540         * platform/mediastream/MediaStreamDescriptor.cpp:
541         (WebCore::MediaStreamDescriptor::addSource): ASSERT if source is kind None.
542         (WebCore::MediaStreamDescriptor::removeSource): Ditto.
543         (WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
544
545         * platform/mediastream/MediaStreamSource.cpp:
546         (WebCore::MediaStreamSource::setReadyState): Call startProducingData when readyState changes
547             to Live, stopProducingData when it changes to Ended.
548         (WebCore::MediaStreamSource::removeObserver): Call stop() when there are no more observers.
549         (WebCore::MediaStreamSource::setEnabled): If passed false, do nothing unless all observers
550             are disabled. Call startProducingData/stopProducingData when becoming enabled/disabled.
551         (WebCore::MediaStreamSource::stop): Don't bother checking to see if other observers have
552             stopped, the spec says that track.stop() should permanently stop the track's source.
553         * platform/mediastream/MediaStreamSource.h:
554         (WebCore::MediaStreamSource::name): Make virtual so derived classes can override.
555         (WebCore::MediaStreamSource::setName): Ditto.
556         (WebCore::MediaStreamSource::readyState): Ditto.
557         (WebCore::MediaStreamSource::enabled): Ditto.
558         (WebCore::MediaStreamSource::muted): Ditto.
559         (WebCore::MediaStreamSource::setReadonly): Ditto.
560         (WebCore::MediaStreamSource::remote): Ditto.
561         (WebCore::MediaStreamSource::setRemote): Ditto.
562         (WebCore::MediaStreamSource::startProducingData): Added.
563         (WebCore::MediaStreamSource::stopProducingData): Added.
564
565         * platform/mediastream/MediaStreamSourceCapabilities.h: Move MediaStreamSourceStates to
566             its own file.
567
568         * platform/mediastream/MediaStreamSourceStates.cpp: Added.
569         (WebCore::MediaStreamSourceStates::facingMode): Moved here from MediaSourceStates so the 
570             strings are available to platform code.
571         (WebCore::MediaStreamSourceStates::sourceType): Ditto.
572         * platform/mediastream/MediaStreamSourceStates.h: Added, moved from MediaStreamSourceCapabilities.h.
573
574         * platform/mediastream/MediaStreamTrackPrivate.cpp:
575         (WebCore::MediaStreamTrackPrivate::create): Pass private track to constructor as PassRefPtr.
576         (WebCore::MediaStreamTrackPrivate::MediaStreamTrackPrivate): Initialize member variables.
577         (WebCore::MediaStreamTrackPrivate::~MediaStreamTrackPrivate): Unregister as source observer.
578         (WebCore::MediaStreamTrackPrivate::setSource): Unregister/register as source observer.
579         (WebCore::MediaStreamTrackPrivate::setEnabled): Enable/disable source, call client.
580         (WebCore::MediaStreamTrackPrivate::stop): New. Set readyState to Ended, optionally stop source.
581         (WebCore::MediaStreamTrackPrivate::setReadyState): Inline the logic from shouldFireTrackReadyStateChanged.
582         (WebCore::MediaStreamTrackPrivate::constraints): New, passthrough to the source.
583         (WebCore::MediaStreamTrackPrivate::states): Ditto.
584         (WebCore::MediaStreamTrackPrivate::type): Ditto.
585         (WebCore::MediaStreamTrackPrivate::capabilities): Ditto.
586         (WebCore::MediaStreamTrackPrivate::applyConstraints): Ditto.
587         (WebCore::MediaStreamTrackPrivate::sourceReadyStateChanged): React to source changes.
588         (WebCore::MediaStreamTrackPrivate::sourceMutedChanged): Ditto.
589         (WebCore::MediaStreamTrackPrivate::sourceEnabledChanged): Ditto.
590         (WebCore::MediaStreamTrackPrivate::observerIsEnabled): Respond to source query.
591         (WebCore::MediaStreamTrackPrivate::observerIsStopped): Ditto.
592         * platform/mediastream/MediaStreamTrackPrivate.h:
593
594         * platform/mediastream/mac/AVAudioCaptureSource.h: Added.
595         * platform/mediastream/mac/AVAudioCaptureSource.mm: Added.
596
597         * platform/mediastream/mac/AVCaptureDeviceManager.h: Added.
598         * platform/mediastream/mac/AVCaptureDeviceManager.mm: Added.
599
600         * platform/mediastream/mac/AVMediaCaptureSource.h: Added.
601         * platform/mediastream/mac/AVMediaCaptureSource.mm: Added.
602
603         * platform/mediastream/mac/AVVideoCaptureSource.h: Added.
604         * platform/mediastream/mac/AVVideoCaptureSource.mm: Added.
605
606         * platform/mediastream/mac/MediaStreamCenterMac.cpp:
607         (WebCore::MediaStreamCenterMac::validateRequestConstraints): Implement.
608         (WebCore::MediaStreamCenterMac::createMediaStream): Ditto.
609         (WebCore::MediaStreamCenterMac::getMediaStreamTrackSources): Ditto.
610
611         * platform/mock/MockMediaStreamCenter.cpp:
612         (WebCore::initializeMockSources): Update for MediaStreamSourceStates changes.
613         (WebCore::MockMediaStreamCenter::createMediaStream):
614
615 2013-10-29  Zoltan Horvath  <zoltan@webkit.org>
616
617         [CSS Regions][CSS Shapes] Layout error when the shape has negative top coordinate and it's applied on the second region
618         <https://webkit.org/b/123346>
619
620         Reviewed by David Hyatt.
621
622         We have a layout error when there is a shape applied on the second region, and it has a negative 'top' coordinate.
623         Since shapeInsideInfo::shapeLogicalTop() can return negative numbers, we need to check for it, when we're positioning
624         the first line in the region.
625
626         Test: fast/regions/shape-inside/shape-inside-on-multiple-regions-with-negative-shape-top.html
627
628         * rendering/RenderBlockLineLayout.cpp:
629         (WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLineInFlowThread):
630
631 2013-10-29  Brady Eidson  <beidson@apple.com>
632
633         Get IDBTransactionBackendLevelDBOperations *almost* ready to go cross platform.
634         https://bugs.webkit.org/show_bug.cgi?id=123451
635
636         Reviewed by NOBODY (My bad, non-reviewed, non-building code got in there)
637
638         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
639         (WebCore::IDBDatabaseBackendImpl::processPendingCalls): Remove the auto line I was trying from review feedback.
640
641 2013-10-29  Brady Eidson  <beidson@apple.com>
642
643         Get IDBTransactionBackendLevelDBOperations *almost* ready to go cross platform.
644         https://bugs.webkit.org/show_bug.cgi?id=123451
645
646         Reviewed by Andreas Kling.
647
648         This involves:
649         - Splitting out IDBTransactionBackendLevelDB::Operation into its own header
650         - Splitting out IDBDatabaseBackendImpl::PendingOpenCall into its own header
651         - Reworking the LevelDB Operations to handle the base class IDBTransactionBackendInterface
652         - Adding virtual methods in a few of the *Interface classes to support the above
653
654         * GNUmakefile.list.am:
655         * WebCore.xcodeproj/project.pbxproj:
656
657         * Modules/indexeddb/IDBCallbacks.h:
658
659         * Modules/indexeddb/IDBCursorBackendInterface.h:
660
661         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
662         (WebCore::IDBDatabaseBackendImpl::setIndexKeys):
663         (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
664         (WebCore::IDBDatabaseBackendImpl::openConnection):
665         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
666         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
667         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
668
669         * Modules/indexeddb/IDBOperation.h: Added.
670         (WebCore::IDBOperation::~IDBOperation):
671
672         * Modules/indexeddb/IDBPendingOpenCall.h: Added.
673         (WebCore::IDBPendingOpenCall::create):
674         (WebCore::IDBPendingOpenCall::callbacks):
675         (WebCore::IDBPendingOpenCall::databaseCallbacks):
676         (WebCore::IDBPendingOpenCall::version):
677         (WebCore::IDBPendingOpenCall::transactionId):
678         (WebCore::IDBPendingOpenCall::IDBPendingOpenCall):
679
680         * Modules/indexeddb/IDBRequest.h:
681
682         * Modules/indexeddb/IDBTransactionBackendInterface.h:
683
684         * Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp:
685         (WebCore::IDBCursorBackendLevelDB::CursorIterationOperation::create):
686         (WebCore::IDBCursorBackendLevelDB::CursorAdvanceOperation::create):
687         (WebCore::IDBCursorBackendLevelDB::CursorPrefetchIterationOperation::create):
688         (WebCore::IDBCursorBackendLevelDB::IDBCursorBackendLevelDB):
689         * Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h:
690
691         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
692         (WebCore::IDBTransactionBackendLevelDB::scheduleTask):
693         (WebCore::IDBTransactionBackendLevelDB::abort):
694         (WebCore::IDBTransactionBackendLevelDB::taskTimerFired):
695         (WebCore::IDBTransactionBackendLevelDB::schedulePutOperation):
696         (WebCore::IDBTransactionBackendLevelDB::scheduleOpenCursorOperation):
697         (WebCore::IDBTransactionBackendLevelDB::scheduleCountOperation):
698         (WebCore::IDBTransactionBackendLevelDB::scheduleDeleteRangeOperation):
699         (WebCore::IDBTransactionBackendLevelDB::scheduleClearOperation):
700         (WebCore::IDBTransactionBackendLevelDB::createCursorBackend):
701         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
702
703         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp:
704         (WebCore::CreateObjectStoreOperation::perform):
705         (WebCore::CreateIndexOperation::perform):
706         (WebCore::CreateIndexAbortOperation::perform):
707         (WebCore::DeleteIndexOperation::perform):
708         (WebCore::DeleteIndexAbortOperation::perform):
709         (WebCore::OpenCursorOperation::perform):
710         (WebCore::DeleteObjectStoreOperation::perform):
711         (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
712         (WebCore::CreateObjectStoreAbortOperation::perform):
713         (WebCore::DeleteObjectStoreAbortOperation::perform):
714         (WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::perform):
715         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.h:
716         (WebCore::CreateObjectStoreOperation::create):
717         (WebCore::CreateObjectStoreOperation::CreateObjectStoreOperation):
718         (WebCore::DeleteObjectStoreOperation::create):
719         (WebCore::DeleteObjectStoreOperation::DeleteObjectStoreOperation):
720         (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::create):
721         (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::VersionChangeOperation):
722         (WebCore::CreateObjectStoreAbortOperation::create):
723         (WebCore::CreateObjectStoreAbortOperation::CreateObjectStoreAbortOperation):
724         (WebCore::DeleteObjectStoreAbortOperation::create):
725         (WebCore::DeleteObjectStoreAbortOperation::DeleteObjectStoreAbortOperation):
726         (WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::create):
727         (WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::VersionChangeAbortOperation):
728         (WebCore::CreateIndexOperation::create):
729         (WebCore::CreateIndexOperation::CreateIndexOperation):
730         (WebCore::CreateIndexAbortOperation::create):
731         (WebCore::CreateIndexAbortOperation::CreateIndexAbortOperation):
732         (WebCore::DeleteIndexOperation::create):
733         (WebCore::DeleteIndexOperation::DeleteIndexOperation):
734         (WebCore::DeleteIndexAbortOperation::create):
735         (WebCore::DeleteIndexAbortOperation::DeleteIndexAbortOperation):
736         (WebCore::GetOperation::create):
737         (WebCore::GetOperation::GetOperation):
738         (WebCore::PutOperation::create):
739         (WebCore::PutOperation::PutOperation):
740         (WebCore::SetIndexesReadyOperation::create):
741         (WebCore::SetIndexesReadyOperation::SetIndexesReadyOperation):
742         (WebCore::OpenCursorOperation::create):
743         (WebCore::OpenCursorOperation::OpenCursorOperation):
744         (WebCore::CountOperation::create):
745         (WebCore::CountOperation::CountOperation):
746         (WebCore::DeleteRangeOperation::create):
747         (WebCore::DeleteRangeOperation::DeleteRangeOperation):
748         (WebCore::ClearOperation::create):
749         (WebCore::ClearOperation::ClearOperation):
750
751 2013-10-29  Antti Koivisto  <antti@apple.com>
752
753         Make SimpleLineLayout::Layout a variable size object
754         https://bugs.webkit.org/show_bug.cgi?id=123459
755
756         Reviewed by Andreas Kling.
757
758         Less memory, less indirection.
759
760         * rendering/SimpleLineLayout.cpp:
761         (WebCore::SimpleLineLayout::canUseFor):
762         (WebCore::SimpleLineLayout::create):
763         (WebCore::SimpleLineLayout::Layout::create):
764         (WebCore::SimpleLineLayout::Layout::Layout):
765         * rendering/SimpleLineLayout.h:
766         * rendering/SimpleLineLayoutFunctions.cpp:
767         (WebCore::SimpleLineLayout::hitTestFlow):
768         * rendering/SimpleLineLayoutFunctions.h:
769         (WebCore::SimpleLineLayout::computeFlowFirstLineBaseline):
770         (WebCore::SimpleLineLayout::computeFlowLastLineBaseline):
771         (WebCore::SimpleLineLayout::findTextCaretMinimumOffset):
772         (WebCore::SimpleLineLayout::findTextCaretMaximumOffset):
773         (WebCore::SimpleLineLayout::containsTextCaretOffset):
774         (WebCore::SimpleLineLayout::isTextRendered):
775         * rendering/SimpleLineLayoutResolver.h:
776         (WebCore::SimpleLineLayout::RunResolver::end):
777
778 2013-10-29  Andreas Kling  <akling@apple.com>
779
780         RenderObject::outlineStyleForRepaint() should return a reference.
781         <https://webkit.org/b/123453>
782
783         Kill a FIXME and make outlineStyleForRepaint() return a RenderStyle&.
784
785         Reviewed by Antti Koivisto.
786
787 2013-10-29  Andreas Kling  <akling@apple.com>
788
789         Move more of SVG resources cache to using RenderElement.
790         <https://webkit.org/b/123452>
791
792         Make some more RenderSVGResourcesCache methods take RenderElement&
793         instead of RenderObject*.
794
795         Also removed a double hash lookup in removeResourcesFromRenderer().
796
797         Reviewed by Antti Koivisto.
798
799 2013-10-29  Joseph Pecoraro  <pecoraro@apple.com>
800
801         Web Inspector: Remove old Inspector.json version files and generators
802         https://bugs.webkit.org/show_bug.cgi?id=123426
803
804         Reviewed by Timothy Hatcher.
805
806         * CMakeLists.txt:
807         * DerivedSources.make:
808         * GNUmakefile.am:
809         * GNUmakefile.list.am:
810         * WebCore.xcodeproj/project.pbxproj:
811         * inspector/Inspector-0.1.json: Removed.
812         * inspector/Inspector-1.0.json: Removed.
813         * inspector/generate-inspector-protocol-version: Removed.
814
815 2013-10-29  Philippe Normand  <pnormand@igalia.com>
816
817         [GTK] DOM bindings documentation errors
818         https://bugs.webkit.org/show_bug.cgi?id=123448
819
820         Reviewed by Carlos Garcia Campos.
821
822         * bindings/gobject/WebKitDOMCustom.h: Basic documentation for
823         return types.
824         * bindings/scripts/CodeGeneratorGObject.pm:
825         (GenerateFunction): Generate Returns documentation tag for
826         non-void return types and provide basic documentation.
827         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
828         Reset tests results.
829         * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
830         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
831         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
832         * bindings/scripts/test/GObject/WebKitDOMTestException.h:
833         * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
834         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
835         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
836         * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.h:
837         * bindings/scripts/test/GObject/WebKitDOMattribute.h:
838
839 2013-10-24  Brent Fulgham  <bfulgham@apple.com>
840
841         Invalid cast in WebCore::toRenderMathMLBlock
842         https://bugs.webkit.org/show_bug.cgi?id=121728
843         rdar://problem/15046151
844
845         Reviewed by Dean Jackson.
846
847         Tested by: mathml/arbitrary-markup.html
848
849         * dom/Element.h: Expose childShouldCreateRenderer for
850         MathML as well as SVG builds.
851         * dom/Node.h: 
852         (WebCore::Node::isMathMLElement): Added.
853         * mathml/MathMLElement.cpp:
854         (WebCore::MathMLElement::create): Create as MathML Element.
855         (WebCore::MathMLElement::childShouldCreateRenderer):
856         Only allow the child to emit a renderer if it is a
857         MathML element.
858         * mathml/MathMLElement.h:
859
860 2013-10-29  Andreas Kling  <akling@apple.com>
861
862         SVG: applyStrokeStyleToContext should take a RenderElement&.
863         <https://webkit.org/b/123447>
864
865         ..and a RenderStyle& too, for that matter.
866
867         Reviewed by Anders Carlsson.
868
869         * rendering/svg/SVGRenderSupport.h:
870         * rendering/svg/SVGRenderSupport.cpp:
871         (WebCore::SVGRenderSupport::applyStrokeStyleToContext):
872
873             Have this take a RenderElement& and RenderStyle& instead of
874             raw pointers. Tweaked a silly-looking loop.
875
876         * rendering/svg/RenderSVGShape.h:
877         * rendering/svg/RenderSVGShape.cpp:
878
879             Moved BoundingRectStrokeStyleApplier helper class into the
880             cpp file since it wasn't being used anywhere else.
881
882         * rendering/svg/RenderSVGResourceGradient.cpp:
883         (WebCore::RenderSVGResourceGradient::applyResource):
884         * rendering/svg/RenderSVGResourcePattern.cpp:
885         (WebCore::RenderSVGResourcePattern::applyResource):
886         * rendering/svg/RenderSVGResourceSolidColor.cpp:
887         (WebCore::RenderSVGResourceSolidColor::applyResource):
888
889             Remove ampersands.
890
891 2013-10-29  Antti Koivisto  <antti@apple.com>
892
893         Multiple runs per line on simple line path
894         https://bugs.webkit.org/show_bug.cgi?id=123446
895
896         Reviewed by Andreas Kling.
897
898         By allowing multiple runs per line we can support text flows with consecutive whitespaces in the middle.
899
900         * rendering/SimpleLineLayout.cpp:
901         (WebCore::SimpleLineLayout::canUseFor):
902         
903             Remove space test.
904             The improved test coverage found a few more cases that we need to disallow.
905
906         (WebCore::SimpleLineLayout::adjustRunOffsets):
907             
908             Round the run positions and widths so they match line boxes.
909             Adjust for text-align.
910
911         (WebCore::SimpleLineLayout::create):
912         
913             Split lines with consecutive spaces into runs.
914
915         * rendering/SimpleLineLayout.h:
916         (WebCore::SimpleLineLayout::Run::Run):
917         * rendering/SimpleLineLayoutFunctions.cpp:
918         (WebCore::SimpleLineLayout::hitTestFlow):
919         (WebCore::SimpleLineLayout::collectFlowOverflow):
920         (WebCore::SimpleLineLayout::computeTextBoundingBox):
921         * rendering/SimpleLineLayoutResolver.h:
922         (WebCore::SimpleLineLayout::RunResolver::Iterator::resolver):
923         (WebCore::SimpleLineLayout::RunResolver::Iterator::lineIndex):
924         (WebCore::SimpleLineLayout::RunResolver::Run::Run):
925         (WebCore::SimpleLineLayout::RunResolver::Run::rect):
926         (WebCore::SimpleLineLayout::RunResolver::Run::baseline):
927         (WebCore::SimpleLineLayout::RunResolver::Run::text):
928         (WebCore::SimpleLineLayout::RunResolver::Run::lineIndex):
929         (WebCore::SimpleLineLayout::RunResolver::Iterator::Iterator):
930         (WebCore::SimpleLineLayout::RunResolver::Iterator::operator++):
931         
932             Removed unnecessary operators.
933
934         (WebCore::SimpleLineLayout::RunResolver::Iterator::operator==):
935         (WebCore::SimpleLineLayout::RunResolver::Iterator::operator!=):
936         (WebCore::SimpleLineLayout::RunResolver::Iterator::operator*):
937         (WebCore::SimpleLineLayout::RunResolver::Iterator::simpleRun):
938         (WebCore::SimpleLineLayout::RunResolver::RunResolver):
939         (WebCore::SimpleLineLayout::RunResolver::begin):
940         (WebCore::SimpleLineLayout::RunResolver::end):
941         
942             Resolver -> RunResolver
943
944         (WebCore::SimpleLineLayout::LineResolver::Iterator::Iterator):
945         (WebCore::SimpleLineLayout::LineResolver::Iterator::operator++):
946         (WebCore::SimpleLineLayout::LineResolver::Iterator::operator==):
947         (WebCore::SimpleLineLayout::LineResolver::Iterator::operator!=):
948         (WebCore::SimpleLineLayout::LineResolver::Iterator::operator*):
949         (WebCore::SimpleLineLayout::LineResolver::LineResolver):
950         (WebCore::SimpleLineLayout::LineResolver::begin):
951         (WebCore::SimpleLineLayout::LineResolver::end):
952         
953             Add LineResolver around RunResolver. It resolves the line rectangles.
954
955         (WebCore::SimpleLineLayout::runResolver):
956         (WebCore::SimpleLineLayout::lineResolver):
957
958 2013-10-29  Chris Fleizach  <cfleizach@apple.com>
959
960         AX: elements with explicit tabindex should expose AXFocused as writable, since mouse clicks can focus it
961         https://bugs.webkit.org/show_bug.cgi?id=121335
962
963         Reviewed by Mario Sanchez Prada.
964
965         Re-order logic that determines if a <span> should appear as an accessible element. 
966         The change is that if an element canSetFocus() it should always be in the AX tree.
967
968         Test: accessibility/tabindex-elements-are-accessible.html
969
970         * accessibility/AccessibilityRenderObject.cpp:
971         (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
972         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
973
974 2013-10-29  Philippe Normand  <pnormand@igalia.com>
975
976         [GTK] enable media-stream in build-webkit
977         https://bugs.webkit.org/show_bug.cgi?id=123144
978
979         Reviewed by Martin Robinson.
980
981         * GNUmakefile.list.am: Add new MediaStream files to the GTK port build.
982
983 2013-10-28  Chris Fleizach  <cfleizach@apple.com>
984
985         AX: Webkit does not expose AXRequired on input type=file
986         https://bugs.webkit.org/show_bug.cgi?id=123376
987
988         Reviewed by Mario Sanchez Prada.
989
990         File upload buttons should expose AXRequired, since they take an input state.
991
992         * accessibility/AccessibilityNodeObject.cpp:
993         (WebCore::AccessibilityNodeObject::supportsRequiredAttribute):
994         (WebCore::AccessibilityNodeObject::alternativeText):
995
996 2013-10-29  Jinwoo Song  <jinwoo7.song@samsung.com>
997
998         Re-enable simple line layout for EFL
999         https://bugs.webkit.org/show_bug.cgi?id=123402
1000
1001         Reviewed by Antti Koivisto.
1002
1003         * rendering/SimpleLineLayout.cpp:
1004         (WebCore::SimpleLineLayout::canUseFor): 8-bit TextRun support is now enabled for EFL port, so the port
1005         can use the simple line layout.
1006
1007 2013-10-29  Zan Dobersek  <zdobersek@igalia.com>
1008
1009         Unreviewed, follow-up to r158185. Export the required symbol.
1010         This should fix the Mac debug build.
1011
1012         * WebCore.exp.in:
1013
1014 2013-10-29  Santosh Mahto  <santosh.ma@samsung.com>
1015
1016         Text selected with double-click gets unselected after DOM modification
1017         https://bugs.webkit.org/show_bug.cgi?id=114227
1018
1019         Reviewed by Ryosuke Niwa.
1020
1021         Before this patch when selection is done by double-click (start and base remain
1022         same) and DOM is modified then selection gets vanished. This does not
1023         happen when selection is done by dragging mouse. This happens because
1024         on double-click base and extent remain the same and on DOM
1025         modification we update the selection with base and extent, so we loose
1026         the selection. Since in double-click case start/end contain the
1027         correct selection, same should be used after dom modification to
1028         update selection.
1029
1030         Test: editing/selection/double-click-selection-with-dom-mutation.html
1031
1032         * editing/FrameSelection.cpp:
1033         (WebCore::FrameSelection::textWasReplaced): use start/end to update
1034         selection in case double click selection. Added a check for base !=
1035         extent, if base != extent use base/extent to update the selection
1036         otherwise use start/end with directionality check.
1037
1038 2013-10-29  Mihnea Ovidenie  <mihnea@adobe.com>
1039
1040         [CSSRegions] Display anonymous regions in DRT
1041         https://bugs.webkit.org/show_bug.cgi?id=122963
1042
1043         Reviewed by Alexandru Chiculita.
1044
1045         After https://bugs.webkit.org/show_bug.cgi?id=119135, css regions are modelled using an anonymous
1046         RenderNamedFlowFragment object inside the block having a valid -webkit-flow-from.
1047         This patch changes the way elements | pseudo-elements with -webkit-flow-from are displayed
1048         in test dumps.
1049
1050         Before:
1051             RenderRegion {DIV} at (200,200) size 52x52 [border: (1px solid #000000)]
1052         After:
1053             RenderBlock (positioned) {DIV} at (200,200) size 52x52 [border: (1px solid #000000)]
1054                 RenderNamedFlowFragment at (1,1) size 50x50
1055
1056         Before:
1057             Flow Threads
1058                 Thread with flow-name 'article'
1059                 Regions for flow 'article'
1060                     RenderRegion {DIV} #region_1
1061                     RenderRegion {DIV} #region_2
1062         After:
1063             Named flows
1064                 Named flow 'article'
1065                 Regions for named flow 'article'
1066                     RenderNamedFlowFragment (anonymous child of {DIV::before} #region_1)
1067                     RenderNamedFlowFragment (anonymous child of {DIV} #region_2)
1068
1069         Changed existing tests based on the new dumps.
1070
1071         * rendering/RenderBlock.cpp:
1072         (WebCore::RenderBlock::renderName):
1073         * rendering/RenderNamedFlowFragment.h: Add a comment explaining the purpose of the class.
1074         * rendering/RenderRegion.h:
1075         * rendering/RenderTreeAsText.cpp:
1076         (WebCore::write):
1077         (WebCore::writeRenderRegionList): Adjust function to display info for anonymous regions too.
1078         (WebCore::writeRenderNamedFlowThreads): Separate dump of valid and invalid regions for a named flow.
1079
1080 2013-10-29  Zan Dobersek  <zdobersek@igalia.com>
1081
1082         Move writeIndent, overloaded << operators from RenderTreeAsText to TextStream
1083         https://bugs.webkit.org/show_bug.cgi?id=116012
1084
1085         Reviewed by Simon Fraser.
1086
1087         The writeIndent method and overloaded << operators for writing out vectors and points and rectangles
1088         of various types are not specific to the render tree nor do they depend on any rendering-specific interface.
1089
1090         * page/scrolling/ScrollingStateNode.cpp:
1091         * page/scrolling/ScrollingStateNode.h:
1092         (ScrollingStateNode): Remove the writeIndent declaration, it's functionally the same as the TextStream method.
1093         * platform/graphics/GraphicsLayer.cpp:
1094         * platform/graphics/GraphicsLayer.h:
1095         (GraphicsLayer): Ditto.
1096         * platform/graphics/filters/DistantLightSource.cpp: Remove the RenderTreeAsText.h inclusion or replace it with
1097         the inclusion of the TextStream.h header where required. The writeIndent method is now declared there.
1098         * platform/graphics/filters/FEBlend.cpp: Ditto.
1099         * platform/graphics/filters/FEColorMatrix.cpp: Ditto.
1100         * platform/graphics/filters/FEComponentTransfer.cpp: Ditto.
1101         * platform/graphics/filters/FEComposite.cpp: Ditto.
1102         * platform/graphics/filters/FEConvolveMatrix.cpp: Ditto.
1103         * platform/graphics/filters/FECustomFilter.cpp: Ditto.
1104         * platform/graphics/filters/FEDiffuseLighting.cpp: Ditto.
1105         * platform/graphics/filters/FEDisplacementMap.cpp: Ditto.
1106         * platform/graphics/filters/FEDropShadow.cpp: Ditto.
1107         * platform/graphics/filters/FEFlood.cpp: Ditto.
1108         * platform/graphics/filters/FEGaussianBlur.cpp: Ditto.
1109         * platform/graphics/filters/FEMerge.cpp: Ditto.
1110         * platform/graphics/filters/FEMorphology.cpp: Ditto.
1111         * platform/graphics/filters/FEOffset.cpp: Ditto.
1112         * platform/graphics/filters/FESpecularLighting.cpp: Ditto.
1113         * platform/graphics/filters/FETurbulence.cpp: Ditto.
1114         * platform/graphics/filters/SourceAlpha.cpp: Ditto.
1115         * platform/graphics/filters/SourceGraphic.cpp: Ditto.
1116         * platform/text/TextStream.cpp: Move the writeIndent and operators' definitions here.
1117         (WebCore::operator<<):
1118         (WebCore):
1119         (WebCore::writeIndent):
1120         * platform/text/TextStream.h: Move the writeIndent and operators' declarations here.
1121         (WebCore):
1122         (TextStream):
1123         (WebCore::TextStream::operator<<):
1124         * rendering/RenderTreeAsText.cpp: Move the writeIndent and operators' definitions into TextStream.
1125         (WebCore):
1126         * rendering/RenderTreeAsText.h: Move the writeIndent and operators' declarations into TextStream.
1127         (WebCore):
1128
1129 2013-10-28  Zan Dobersek  <zdobersek@igalia.com>
1130
1131         Clean up ScopedEventQueue
1132         https://bugs.webkit.org/show_bug.cgi?id=123408
1133
1134         Reviewed by Darin Adler.
1135
1136         Clean up the ScopedEventQueue implementation. ScopedEventQueue::instance() should return a reference to a
1137         NeverDestroyed<ScopedEventQueue> object. The static ScopedEventQueue::s_instance pointer is removed.
1138
1139         The ScopedEventQueue destructor, the dispatchAllEvents method and the scope level incrementation/decrementation
1140         methods are made private. NeverDestroyed<ScopedEventQueue> and EventQueueScope are made friends of the
1141         ScopedEventQueue class so they can access the constructor and the incrementation/decrementation methods, respectively.
1142
1143         ScopedEventQueue method definitions are reordered to follow the order of their declarations in the header file.
1144         ScopedEventQueue::dispatchAllEvents() now uses std::move to efficiently dispatch and clear all currently queued events.
1145
1146         * dom/EventDispatcher.cpp:
1147         (WebCore::EventDispatcher::dispatchScopedEvent):
1148         * dom/ScopedEventQueue.cpp:
1149         (WebCore::ScopedEventQueue::instance):
1150         (WebCore::ScopedEventQueue::dispatchAllEvents):
1151         * dom/ScopedEventQueue.h:
1152         (WebCore::EventQueueScope::EventQueueScope):
1153         (WebCore::EventQueueScope::~EventQueueScope):
1154
1155 2013-10-28  Andreas Kling  <akling@apple.com>
1156
1157         applyTextTransform() should take a const RenderStyle&.
1158         <https://webkit.org/b/123434>
1159
1160         This function is always called with an existing RenderStyle object.
1161
1162         Reviewed by Anders Carlsson.
1163
1164 2013-10-28  Andreas Kling  <akling@apple.com>
1165
1166         RenderSVGResource::applyResource() should take a const RenderStyle&.
1167         <https://webkit.org/b/123433>
1168
1169         These functions are always called with an existing RenderStyle object
1170         so let them take a const reference instead of a raw pointer.
1171         Also sprinkled some missing OVERRIDEs.
1172
1173         Reviewed by Anders Carlsson.
1174
1175 2013-10-28  Andreas Kling  <akling@apple.com>
1176
1177         Remove unused RenderTextControl::textBaseStyle().
1178         <https://webkit.org/b/123432>
1179
1180         Reviewed by Anders Carlsson.
1181
1182 2013-10-28  Zan Dobersek  <zdobersek@igalia.com>
1183
1184         HTML input type objects should be managed through std::unique_ptr
1185         https://bugs.webkit.org/show_bug.cgi?id=123160
1186
1187         Reviewed by Darin Adler.
1188
1189         Make the constructors of the InputType subclasses public. This makes it possible to use std::make_unique on these classes
1190         and makes the T::create() helpers redundant. New instances of these classes are now managed through std::unique_ptr.
1191
1192         InputType::create() now uses a NeverDestroyed InputTypeFactoryMap that maps type names to InputTypeFactoryFunctions and
1193         gets populated when the method is first called and the map is still empty. Certain types are not added to the factory map
1194         if they're disabled at runtime.
1195
1196         The factory is used to create the new InputType object if the requested type was found in the map, and TextInputType is used otherwise.
1197
1198         * html/ButtonInputType.cpp:
1199         * html/ButtonInputType.h:
1200         (WebCore::ButtonInputType::ButtonInputType):
1201         * html/CheckboxInputType.cpp:
1202         * html/CheckboxInputType.h:
1203         (WebCore::CheckboxInputType::CheckboxInputType):
1204         * html/ColorInputType.cpp:
1205         * html/ColorInputType.h:
1206         (WebCore::ColorInputType::ColorInputType):
1207         * html/DateInputType.cpp:
1208         * html/DateInputType.h:
1209         * html/DateTimeInputType.cpp:
1210         * html/DateTimeInputType.h:
1211         (WebCore::DateTimeInputType::DateTimeInputType):
1212         * html/DateTimeLocalInputType.cpp:
1213         * html/DateTimeLocalInputType.h:
1214         (WebCore::DateTimeLocalInputType::DateTimeLocalInputType):
1215         * html/EmailInputType.cpp:
1216         * html/EmailInputType.h:
1217         (WebCore::EmailInputType::EmailInputType):
1218         * html/FileInputType.cpp:
1219         * html/FileInputType.h:
1220         * html/HTMLInputElement.cpp:
1221         (WebCore::HTMLInputElement::updateType):
1222         * html/HTMLInputElement.h:
1223         * html/HiddenInputType.cpp:
1224         * html/HiddenInputType.h:
1225         (WebCore::HiddenInputType::HiddenInputType):
1226         * html/ImageInputType.cpp:
1227         (WebCore::ImageInputType::ImageInputType):
1228         * html/ImageInputType.h:
1229         * html/InputType.cpp:
1230         (WebCore::createInputType): A templated helper that constructs a new InputType subclass object through std::make_unique.
1231         (WebCore::populateInputTypeFactoryMap): Populates the passed-in map with type-createInputType<T> pairs.
1232         (WebCore::InputType::create): Get the InputTypeFactoryFunction for the specified type, or fall back to TextInputType.
1233         (WebCore::InputType::createText):
1234         * html/InputType.h:
1235         * html/MonthInputType.cpp:
1236         * html/MonthInputType.h:
1237         (WebCore::MonthInputType::MonthInputType):
1238         * html/NumberInputType.cpp:
1239         * html/NumberInputType.h:
1240         (WebCore::NumberInputType::NumberInputType):
1241         * html/PasswordInputType.cpp:
1242         * html/PasswordInputType.h:
1243         (WebCore::PasswordInputType::PasswordInputType):
1244         * html/RadioInputType.cpp:
1245         * html/RadioInputType.h:
1246         (WebCore::RadioInputType::RadioInputType):
1247         * html/RangeInputType.cpp:
1248         * html/RangeInputType.h:
1249         * html/ResetInputType.cpp:
1250         * html/ResetInputType.h:
1251         (WebCore::ResetInputType::ResetInputType):
1252         * html/SearchInputType.cpp:
1253         (WebCore::SearchInputType::SearchInputType):
1254         * html/SearchInputType.h:
1255         * html/SubmitInputType.cpp:
1256         * html/SubmitInputType.h:
1257         (WebCore::SubmitInputType::SubmitInputType):
1258         * html/TelephoneInputType.cpp:
1259         * html/TelephoneInputType.h:
1260         (WebCore::TelephoneInputType::TelephoneInputType):
1261         * html/TextInputType.cpp:
1262         * html/TextInputType.h:
1263         (WebCore::TextInputType::TextInputType):
1264         * html/TimeInputType.cpp:
1265         * html/TimeInputType.h:
1266         * html/URLInputType.cpp:
1267         * html/URLInputType.h:
1268         (WebCore::URLInputType::URLInputType):
1269         * html/WeekInputType.cpp:
1270         * html/WeekInputType.h:
1271         (WebCore::WeekInputType::WeekInputType):
1272
1273 2013-10-28  Brady Eidson  <beidson@apple.com>
1274
1275         Refactor IDB factory creation.
1276         https://bugs.webkit.org/show_bug.cgi?id=123347
1277
1278         Reviewed by Andreas Kling.
1279
1280         - Rework how database directory location is passed around.
1281         - Make (some) SecurityOrigin arguments be references instead of pointers.
1282         - Add two SecurityOrigin arguments to opening databases for future use.
1283
1284         * Modules/indexeddb/IDBFactory.cpp:
1285         (WebCore::IDBFactory::openInternal):
1286
1287         * Modules/indexeddb/IDBFactoryBackendInterface.cpp:
1288         (WebCore::IDBFactoryBackendInterface::create):
1289         * Modules/indexeddb/IDBFactoryBackendInterface.h:
1290
1291         * Modules/indexeddb/PageGroupIndexedDatabase.cpp:
1292         (WebCore::PageGroupIndexedDatabase::PageGroupIndexedDatabase):
1293         (WebCore::PageGroupIndexedDatabase::from):
1294         (WebCore::PageGroupIndexedDatabase::factoryBackend):
1295         * Modules/indexeddb/PageGroupIndexedDatabase.h:
1296
1297         * Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp:
1298         (WebCore::WorkerGlobalScopeIndexedDatabase::WorkerGlobalScopeIndexedDatabase):
1299         (WebCore::WorkerGlobalScopeIndexedDatabase::from):
1300         (WebCore::WorkerGlobalScopeIndexedDatabase::indexedDB):
1301         * Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.h:
1302
1303         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
1304         (WebCore::IDBBackingStoreLevelDB::open):
1305         (WebCore::IDBBackingStoreLevelDB::openInMemory):
1306         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
1307
1308         * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
1309         (WebCore::computeFileIdentifier):
1310         (WebCore::computeUniqueIdentifier):
1311         (WebCore::IDBFactoryBackendLevelDB::IDBFactoryBackendLevelDB):
1312         (WebCore::IDBFactoryBackendLevelDB::getDatabaseNames):
1313         (WebCore::IDBFactoryBackendLevelDB::deleteDatabase):
1314         (WebCore::IDBFactoryBackendLevelDB::openBackingStore):
1315         (WebCore::IDBFactoryBackendLevelDB::open):
1316         * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
1317         (WebCore::IDBFactoryBackendLevelDB::create):
1318
1319         * WebCore.exp.in:
1320
1321         * platform/DatabaseStrategy.cpp:
1322         (WebCore::DatabaseStrategy::createIDBFactoryBackend):
1323         * platform/DatabaseStrategy.h:
1324
1325 2013-10-28  Andreas Kling  <akling@apple.com>
1326
1327         RenderElement::style() should return a reference.
1328         <https://webkit.org/b/123414>
1329
1330         Now that renderers always have style, go ahead and make style()
1331         return a RenderStyle&.
1332
1333         There are countless opportunities for further cleanup enabled by
1334         this change. I'm simply passing &style() in many cases where we
1335         can really do something nicer instead.
1336
1337         Reviewed by Anders Carlsson.
1338
1339 2013-10-28  Tim Horton  <timothy_horton@apple.com>
1340
1341         Make TileController create the appropriate PlatformCALayer subclasses
1342         https://bugs.webkit.org/show_bug.cgi?id=123418
1343
1344         Reviewed by Simon Fraser.
1345
1346         Add PlatformCALayer::createCompatibleLayer, which is overridden in
1347         each of the subclasses to create a PlatformCALayer instance of the same
1348         subclass. This is used in TileController to make bare PlatformCALayers
1349         of the correct type (Mac, Win, or Remote).
1350
1351         * platform/graphics/ca/PlatformCALayer.h:
1352         * platform/graphics/ca/mac/PlatformCALayerMac.h:
1353         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
1354         (PlatformCALayerMac::createCompatibleLayer):
1355         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
1356         (PlatformCALayerWin::createCompatibleLayer):
1357         * platform/graphics/ca/win/PlatformCALayerWin.h:
1358         Add createCompatibleLayer and implement it in the subclasses.
1359
1360         * platform/graphics/ca/mac/TileController.mm:
1361         (WebCore::TileController::TileController):
1362         (WebCore::TileController::tiledScrollingIndicatorLayer):
1363         (WebCore::TileController::createTileLayer):
1364         Make use of createCompatibleLayer when creating PlatformCALayers.
1365
1366 2013-10-28  Alexandru Chiculita  <achicu@adobe.com>
1367
1368         Web Inspector: CSS Regions: Add protocol API to expose content nodes addition/removal
1369         https://bugs.webkit.org/show_bug.cgi?id=123424
1370
1371         Reviewed by Timothy Hatcher.
1372
1373         Test: inspector-protocol/model/content-flow-content-nodes.html
1374
1375         Adding two new inspector-protocol APIs to handle the cases when new elements are
1376         added or removed from a named flow. These APIs will trigger even though there
1377         is no region associated with the named flow.
1378
1379         * inspector/Inspector.json:
1380         * inspector/InspectorCSSAgent.cpp:
1381         (WebCore::InspectorCSSAgent::didRegisterNamedFlowContentElement):
1382         (WebCore::InspectorCSSAgent::didUnregisterNamedFlowContentElement):
1383         * inspector/InspectorCSSAgent.h:
1384         * inspector/InspectorInstrumentation.cpp:
1385         (WebCore::InspectorInstrumentation::didRegisterNamedFlowContentElementImpl):
1386         (WebCore::InspectorInstrumentation::didUnregisterNamedFlowContentElementImpl):
1387         * inspector/InspectorInstrumentation.h:
1388         (WebCore::InspectorInstrumentation::didRegisterNamedFlowContentElement):
1389         (WebCore::InspectorInstrumentation::didUnregisterNamedFlowContentElement):
1390         * rendering/RenderNamedFlowThread.cpp:
1391         (WebCore::RenderNamedFlowThread::registerNamedFlowContentElement):
1392         (WebCore::RenderNamedFlowThread::unregisterNamedFlowContentElement):
1393
1394 2013-10-28  Joseph Pecoraro  <pecoraro@apple.com>
1395
1396         Web Inspector: Remove unused inspector/inline-javascript-imports.py
1397         https://bugs.webkit.org/show_bug.cgi?id=123425
1398
1399         Reviewed by Timothy Hatcher.
1400
1401         * inspector/inline-javascript-imports.py: Removed.
1402
1403 2013-10-28  Joseph Pecoraro  <pecoraro@apple.com>
1404
1405         Web Inspector: Remove unused "externs" files and generators
1406         https://bugs.webkit.org/show_bug.cgi?id=123427
1407
1408         Reviewed by Timothy Hatcher.
1409
1410         * inspector/InjectedScriptExterns.js: Removed.
1411         * inspector/generate_protocol_externs.py: Removed.
1412
1413 2013-10-28  Joseph Pecoraro  <pecoraro@apple.com>
1414
1415         Upstream remaining PLATFORM(IOS) and ENABLE(REMOTE_INSPECTOR) pieces
1416         https://bugs.webkit.org/show_bug.cgi?id=123411
1417
1418         Reviewed by Timothy Hatcher.
1419
1420         Include an InspectorClient hook for when node searching is enabled / disabled.
1421
1422         * inspector/InspectorClient.h:
1423         (WebCore::InspectorClient::didSetSearchingForNode):
1424         * inspector/InspectorDOMAgent.cpp:
1425         (WebCore::InspectorDOMAgent::setSearchingForNode):
1426         * inspector/InspectorOverlay.cpp:
1427         (WebCore::InspectorOverlay::didSetSearchingForNode):
1428         * inspector/InspectorOverlay.h:
1429
1430 2013-10-28  Benjamin Poulain  <benjamin@webkit.org>
1431
1432         Rename applyPageScaleFactorInCompositor to delegatesPageScaling
1433         https://bugs.webkit.org/show_bug.cgi?id=123417
1434
1435         Reviewed by Simon Fraser.
1436
1437         * page/Frame.cpp:
1438         (WebCore::Frame::frameScaleFactor):
1439         * page/FrameView.cpp:
1440         (WebCore::FrameView::visibleContentScaleFactor):
1441         * page/Page.cpp:
1442         (WebCore::Page::setPageScaleFactor):
1443         * page/Settings.in:
1444         * platform/ScrollView.h:
1445         * rendering/RenderLayerCompositor.cpp:
1446         (WebCore::RenderLayerCompositor::addToOverlapMap):
1447
1448 2013-10-28  Myles C. Maxfield  <mmaxfield@apple.com>
1449
1450         Parsing support for -webkit-text-decoration-skip: ink
1451         https://bugs.webkit.org/show_bug.cgi?id=123358
1452
1453         Reviewed by Dean Jackson.
1454
1455         Adds initial parsing support for parsing -webkit-text-decoration-skip with
1456         values of "none" and "ink". This work is behind the new
1457         ENABLE(CSS3_TEXT_DECORATION) compile-time flag.
1458
1459         Test: fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-roundtrip.html
1460
1461         * Configurations/FeatureDefines.xcconfig: Adding ENABLE(CSS3_TEXT_DECORATION)
1462         * css/CSSComputedStyleDeclaration.cpp: Mapping internal representation of text-decoration-skip
1463         to a CSSValue
1464         (WebCore::renderTextDecorationSkipFlagsToCSSValue):
1465         (WebCore::ComputedStyleExtractor::propertyValue):
1466         * css/CSSParser.cpp: Actually parsing tokens
1467         (WebCore::CSSParser::parseValue):
1468         (WebCore::CSSParser::parseTextDecorationSkip):
1469         * css/CSSParser.h:
1470         * css/CSSPropertyNames.in: adding -webkit-text-decoration-skip
1471         * css/CSSValueKeywords.in: adding ink
1472         * css/DeprecatedStyleBuilder.cpp: Mapping from CSSValue to internal representation
1473         (WebCore::ApplyPropertyTextDecorationSkip::valueToDecorationSkip):
1474         (WebCore::ApplyPropertyTextDecorationSkip::applyValue):
1475         (WebCore::ApplyPropertyTextDecorationSkip::createHandler):
1476         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
1477         * css/StyleResolver.cpp: decoration-skip uses DeprecatedStyleBuilder
1478         (WebCore::StyleResolver::applyProperty):
1479         * rendering/style/RenderStyle.h: Adding functions for modifying and accessing decoration-skip properties
1480         * rendering/style/RenderStyleConstants.h: Definition of internal representation
1481         * rendering/style/StyleRareInheritedData.cpp: Setting up constructors and comparators
1482         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
1483         (WebCore::StyleRareInheritedData::operator==):
1484         * rendering/style/StyleRareInheritedData.h: Holds actual value of internal representation
1485
1486 2013-10-28  Anders Carlsson  <andersca@apple.com>
1487
1488         RunLoop::dispatch should take an std::function
1489         https://bugs.webkit.org/show_bug.cgi?id=123407
1490
1491         Reviewed by Andreas Kling.
1492
1493         * WebCore.exp.in:
1494         * platform/RunLoop.cpp:
1495         (WebCore::RunLoop::performWork):
1496         (WebCore::RunLoop::dispatch):
1497         * platform/RunLoop.h:
1498
1499 2013-10-28  Tim Horton  <timothy_horton@apple.com>
1500
1501         Make TileController manipulate PlatformCALayers instead of CALayers
1502         https://bugs.webkit.org/show_bug.cgi?id=123279
1503
1504         Reviewed by Simon Fraser.
1505
1506         In the interest of making TileController more platform-independent
1507         (so that it can be used with the remote layer tree, and maybe Windows),
1508         move TileController onto our PlatformCALayer abstraction instead of
1509         direct manipulation of CALayers.
1510
1511         Some fallout from this includes getting rid of special Mac-specific
1512         TileController-specific CALayer subclasses, and reworking tile
1513         painting to work in a more generic way.
1514
1515         This is a first step, and doesn't get us all the way to a platform independent
1516         TileController, but more patches are forthcoming.
1517
1518         No new tests, just a (largeish) refactor.
1519
1520         * WebCore.exp.in:
1521         The signature of some methods has changed.
1522
1523         * WebCore.xcodeproj/project.pbxproj:
1524         Remove WebTileLayer.*
1525
1526         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
1527         (WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea):
1528         Use the "isTile" key on the CALayer dictionary instead of the layer's
1529         class to determine if it's a tile. TileController will set this on a tile
1530         when it is created, for now.
1531
1532         * platform/graphics/TiledBacking.h:
1533         tiledScrollingIndicatorLayer() should return a PlatformCALayer.
1534
1535         * platform/graphics/ca/GraphicsLayerCA.cpp:
1536         (WebCore::GraphicsLayerCA::platformCALayerPaintContents):
1537         * platform/graphics/ca/GraphicsLayerCA.h:
1538         (WebCore::GraphicsLayerCA::platformCALayerIncrementRepaintCount):
1539         * platform/graphics/ca/PlatformCALayerClient.h:
1540         The PlatformCALayerClient paintContents and incrementRepaintCount callbacks
1541         should include the platformCALayer that caused the callback.
1542
1543         * platform/graphics/ca/PlatformCALayer.h:
1544         Add LayerTypeSimpleLayer, which is similar to LayerTypeWebLayer
1545         except it just calls back its client to paint, instead of doing
1546         complicated things with repaint rects. This is so that TileController
1547         doesn't re-enter drawLayerContents when asking its GraphicsLayer
1548         to paint for each PlatformCALayer (it will be entering drawLayerContents
1549         for the first time for each layer). It also happens to be useful
1550         for things like the tile controller overlay, which don't need
1551         all that complication.
1552
1553         Add LayerTypeTiledBackingTileLayer, which is used simply to distinguish
1554         TileController Tile layers from other LayerTypeSimpleLayers.
1555
1556         * platform/graphics/ca/mac/LayerPool.h:
1557         * platform/graphics/ca/mac/LayerPool.mm:
1558         (WebCore::LayerPool::addLayer):
1559         (WebCore::LayerPool::takeLayerWithSize):
1560         LayerPool should operate on PlatformCALayers now.
1561
1562         * platform/graphics/ca/mac/PlatformCALayerMac.h:
1563         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
1564         (PlatformCALayerMac::PlatformCALayerMac):
1565         Set the "isTile" key on the CALayer to true for TiledBackingTileLayers,
1566         so that the scrolling performance logging can tell a tile apart from
1567         any other layer, on the scrolling thread, without touching PlatformCALayers
1568         or the TileController or any other main-thread data structures.
1569
1570         (PlatformCALayerMac::setEdgeAntialiasingMask): Added.
1571         * platform/graphics/ca/mac/TileController.h:
1572         Remove references to Objective-C classes; instead use PlatformCALayer everywhere.
1573         TileController is now a PlatformCALayerClient, and the layers it owns are
1574         all PlatformCALayers (and it is constructed with a PlatformCALayer, etc.).
1575         Hand in the tile debug border color as a WebCore color, instead of a CGColorRef.
1576         blankPixelCountForTiles() now operates on a list of PlatformLayers instead of
1577         WebTileLayers specifically, since WebTileLayer is gone.
1578         Make drawTileMapContents private because WebTileCacheMapLayer no longer exists.
1579
1580         (WebCore::TileController::platformCALayerDrawsContent):
1581         All of the layers who have TileController as their client paint their contents.
1582
1583         (WebCore::TileController::platformCALayerContentsOpaque):
1584         This will only be called for layers which paint via drawLayerContents,
1585         so it's OK that we don't special-case the debugging overlay here.
1586
1587         (WebCore::TileController::owningGraphicsLayer):
1588         Return the GraphicsLayer that owns the TileController's main
1589         layer, via its conformance to PlatformCALayerClient. This is
1590         a bit strange (because it's not strictly a GraphicsLayer, despite
1591         always being so at the moment), but is done for clarity inside
1592         TileController itself.
1593
1594         * platform/graphics/ca/mac/TileController.mm:
1595         Remove CALayer (WebCALayerDetails), WebTiledScrollingIndicatorLayer,
1596         and a bunch of includes that we don't need anymore.
1597
1598         (WebCore::TileController::create):
1599         (WebCore::TileController::TileController):
1600         TileController is passed a PlatformCALayer for the tile cache root layer,
1601         instead of a WebTiledBackingLayer. It also creates a PlatformCALayer with
1602         LayerTypeLayer instead of a bare CALayer for the container layer.
1603         It's OK to remove the transaction because it was only used to stop
1604         the implicit animation, which PlatformCALayer will do for us.
1605
1606         (WebCore::TileController::~TileController):
1607         Clear the owner of the PlatformCALayers which the TileController previously owned,
1608         so they don't try to call back a destroyed TileController.
1609
1610         (WebCore::TileController::tileCacheLayerBoundsChanged):
1611         (WebCore::TileController::setNeedsDisplay):
1612         Straightforward adjustments towards use of PlatformCALayer.
1613
1614         (WebCore::TileController::setTileNeedsDisplayInRect):
1615         Adjustments towards use of PlatformCALayer; we need FloatRects so we can
1616         pass pointers to PlatformCALayer::setNeedsDisplay.
1617
1618         (WebCore::TileController::platformCALayerPaintContents):
1619         Replace drawLayer with platformCALayerPaintContents, which will be called
1620         back from our various WebSimpleLayers. If the PlatformCALayer is our
1621         tiled scrolling debug indicator, paint that. Otherwise, it's a tile.
1622         Make use of drawLayerContents() to paint the tile contents.
1623         Make use of drawRepaintIndicator() to paint the repaint indicator if needed.
1624         Move scrolling performance logging code that used to be in WebTileLayer here.
1625
1626         (WebCore::TileController::platformCALayerDeviceScaleFactor):
1627         (WebCore::TileController::platformCALayerShowDebugBorders):
1628         (WebCore::TileController::platformCALayerShowRepaintCounter):
1629         Forward these to the owning GraphicsLayerCA, because it will have the right answers.
1630
1631         (WebCore::TileController::setScale):
1632         Adjustments towards use of PlatformCALayer; remove some code that Simon
1633         caused to be unused in 156291 but did not remove.
1634
1635         (WebCore::TileController::setAcceleratesDrawing):
1636         (WebCore::TileController::setTilesOpaque):
1637         (WebCore::TileController::setVisibleRect):
1638         (WebCore::TileController::revalidateTiles):
1639         (WebCore::TileController::setTileDebugBorderWidth):
1640         (WebCore::TileController::setTileDebugBorderColor):
1641         (WebCore::TileController::bounds):
1642         (WebCore::TileController::blankPixelCount):
1643         (WebCore::TileController::blankPixelCountForTiles):
1644         (WebCore::queueTileForRemoval):
1645         (WebCore::TileController::setNeedsRevalidateTiles):
1646         (WebCore::TileController::ensureTilesForRect):
1647         (WebCore::TileController::retainedTileBackingStoreMemory):
1648         Straightforward adjustments towards use of PlatformCALayer.
1649
1650         (WebCore::TileController::updateTileCoverageMap):
1651         Adjustments towards use of PlatformCALayer; rename backgroundColor
1652         to visibleRectIndicatorColor, since it's actually a border, not a background.
1653
1654         (WebCore::TileController::tiledScrollingIndicatorLayer):
1655         Create a LayerTypeSimpleLayer PlatformCALayer for the tiled scrolling indicator.
1656         It will be asked to paint straightforwardly, like a CALayer would.
1657         Create a LayerTypeLayer PlatformCALayer for the visible rect indicator.
1658         It doesn't need to paint anything, so it doesn't get an owner.
1659
1660         (WebCore::TileController::createTileLayer):
1661         When creating a new tile layer, adopt it by setting its owner.
1662         Otherwise, straightforward adjustments towards use of PlatformCALayer.
1663
1664         (WebCore::TileController::platformCALayerIncrementRepaintCount):
1665         Manage repaint counts for tiles in TileController now.
1666
1667         (WebCore::TileController::drawTileMapContents):
1668         Adjustments towards use of PlatformCALayer.
1669
1670         * platform/graphics/ca/mac/WebTileLayer.h: Removed.
1671         * platform/graphics/ca/mac/WebTileLayer.mm: Removed.
1672         We don't need WebTileLayer anymore, tiles are now just WebSimpleLayers
1673         owned by TileController. Its behavior has been moved into TileController.
1674
1675         * platform/graphics/ca/mac/WebTiledBackingLayer.h:
1676         * platform/graphics/ca/mac/WebTiledBackingLayer.mm:
1677         (-[WebTiledBackingLayer createTileController:]):
1678         Add createTileController: so that the WebTiledBackingLayer's owner can
1679         hand the TileController the PlatformCALayer for the WebTiledBackingLayer
1680         without propagating additional usage of PlatformCALayer::platformCALayer(),
1681         which we need to remove in light of the remote layer tree work.
1682
1683         (-[WebTiledBackingLayer setBorderColor:]):
1684
1685         * platform/graphics/ca/win/PlatformCALayerWin.h:
1686         Add an empty implementation of setEdgeAntialiasingMask.
1687         We'll probably want to implement it before adopting TileController on Windows.
1688
1689         * platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:
1690         (PlatformCALayerWinInternal::displayCallback):
1691         * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
1692         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerPaintContents):
1693         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerIncrementRepaintCount):
1694         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
1695         (WebCore::LayerClient::platformCALayerPaintContents):
1696         (WebCore::LayerClient::platformCALayerIncrementRepaintCount):
1697         Adjust for new parameters on PlatformCALayerClient callbacks.
1698
1699         * platform/graphics/mac/WebLayer.h:
1700         Add WebSimpleLayer, which inherits directly from CALayer, and make
1701         our standard WebLayer (which is used for compositing layers in web content)
1702         inherit from that.
1703
1704         * platform/graphics/mac/WebLayer.mm:
1705         Move most of the behavior of WebLayer onto WebSimpleLayer, except for its
1706         complex painting code. That stays as an override on WebLayer.
1707
1708         (WebCore::drawLayerContents):
1709         Use the PlatformCALayer's PlatformLayer - if it exists - to extract
1710         fine-grained repaint rects. If it doesn't, we'll just use the CGContext's
1711         clip rect as our single repaint rect.
1712         Rename platformLayer to platformCALayer for accuracy.
1713         Remove special code for CATiledLayer since we ought not use it on Mac anymore.
1714
1715         (WebCore::drawRepaintIndicator):
1716         Factor repaint indicator code out into its own function so that TileController
1717         can use it. It can't be called from drawLayerContents for TileController, since
1718         the PlatformCALayer that TileController passes in to drawLayerContents is actually
1719         that of the tile cache's root layer, not the tile itself.
1720         Also, add a custom background color parameter so TileController can override
1721         the default green color with its own standard purple.
1722
1723         (-[WebLayer drawInContext:]):
1724         (-[WebSimpleLayer drawInContext:]):
1725         * platform/graphics/mac/WebTiledLayer.mm:
1726         (-[WebTiledLayer drawInContext:]):
1727         Removed a param from drawLayerContents because it's trivially acquirable
1728         from the PlatformCALayer.
1729
1730 2013-10-24  Sam Weinig  <sam@webkit.org>
1731
1732         Move RenderBlock functions only used by RenderBlockFlow to RenderBlockFlow
1733         https://bugs.webkit.org/show_bug.cgi?id=123318
1734
1735         Reviewed by David Hyatt.
1736
1737         * rendering/LineLayoutState.h:
1738         Move FloatWithRect from RenderBlock.
1739
1740         * rendering/RenderBlock.cpp:
1741         * rendering/RenderBlock.h:
1742         * rendering/RenderBlockFlow.cpp:
1743         * rendering/RenderBlockFlow.h:
1744         * rendering/RenderBlockLineLayout.cpp:
1745         Move pagination and float functions.
1746
1747 2013-10-28  Sergio Villar Senin  <svillar@igalia.com>
1748
1749         [CSS Grid Layout] Add support for order inside grid items
1750         https://bugs.webkit.org/show_bug.cgi?id=123208
1751
1752         Reviewed by Antti Koivisto.
1753
1754         Based on Blink r153457 and r153536 by <jchaffraix@chromium.org>
1755
1756         Added support for sorting grid items by using -webkit-order
1757         property. Used OrderIterator to implement it so it had to be moved
1758         out of RenderFlexibleBox to be shared with RenderGrid.
1759
1760         Tests: fast/css-grid-layout/grid-item-order-auto-flow-resolution.html
1761                fast/css-grid-layout/grid-item-order-paint-order.html
1762
1763         * CMakeLists.txt: Added new file.
1764         * GNUmakefile.list.am: Ditto.
1765         * WebCore.vcxproj/WebCore.vcxproj: Ditto.
1766         * WebCore.xcodeproj/project.pbxproj: Ditto.
1767         * rendering/OrderIterator.cpp: Added. Ripped out of RenderFlexibleBox.
1768         (WebCore::OrderIterator::OrderIterator):
1769         (WebCore::OrderIterator::setOrderValues): Use std::move semantics.
1770         (WebCore::OrderIterator::first): Use an integer as iterator.
1771         (WebCore::OrderIterator::next): Ditto.
1772         (WebCore::OrderIterator::reset): Ditto.
1773         * rendering/OrderIterator.h: Added.
1774         (WebCore::OrderIterator::currentChild):
1775         * rendering/RenderFlexibleBox.cpp:
1776         (WebCore::RenderFlexibleBox::RenderFlexibleBox):
1777         (WebCore::RenderFlexibleBox::layoutBlock):
1778         * rendering/RenderFlexibleBox.h:
1779         * rendering/RenderGrid.cpp:
1780         (WebCore::RenderGrid::RenderGrid):
1781         (WebCore::RenderGrid::placeItemsOnGrid):
1782         (WebCore::RenderGrid::populateExplicitGridAndOrderIterator):
1783         (WebCore::RenderGrid::paintChildren):
1784         * rendering/RenderGrid.h:
1785
1786 2013-10-28  Afonso R. Costa Jr.  <afonso.costa@samsung.com>
1787
1788         Methods on window.internals shouldn't pass a document.
1789         https://bugs.webkit.org/show_bug.cgi?id=107301
1790
1791         Reviewed by Alexey Proskuryakov.
1792
1793         Each 'Internals' instance is associated with a 'Document'. So, it
1794         is not necessary to pass a document as argument. Only nodesFromRect and
1795         layerTreeAsText methods were kept because, in some Layout Tests, the
1796         'Document' object is not the same used by Internals::contextDocument.
1797
1798         * testing/Internals.cpp: Removed 'document' parameter.
1799         (WebCore::Internals::animationsAreSuspended):
1800         (WebCore::Internals::suspendAnimations):
1801         (WebCore::Internals::resumeAnimations):
1802         (WebCore::Internals::inspectorHighlightRects):
1803         (WebCore::Internals::inspectorHighlightObject):
1804         (WebCore::Internals::setScrollViewPosition):
1805         (WebCore::Internals::setPagination):
1806         (WebCore::Internals::configurationForViewport):
1807         (WebCore::Internals::paintControlTints):
1808         (WebCore::Internals::setDelegatesScrolling):
1809         (WebCore::Internals::touchPositionAdjustedToBestClickableNode):
1810         (WebCore::Internals::touchNodeAdjustedToBestClickableNode):
1811         (WebCore::Internals::touchPositionAdjustedToBestContextMenuNode):
1812         (WebCore::Internals::touchNodeAdjustedToBestContextMenuNode):
1813         (WebCore::Internals::bestZoomableAreaForTouchPoint):
1814         (WebCore::Internals::lastSpellCheckRequestSequence):
1815         (WebCore::Internals::lastSpellCheckProcessedSequence):
1816         (WebCore::Internals::wheelEventHandlerCount):
1817         (WebCore::Internals::touchEventHandlerCount):
1818         (WebCore::Internals::setBatteryStatus):
1819         (WebCore::Internals::setNetworkInformation):
1820         (WebCore::Internals::setDeviceProximity):
1821         (WebCore::Internals::hasSpellingMarker):
1822         (WebCore::Internals::hasAutocorrectedMarker):
1823         (WebCore::Internals::isOverwriteModeEnabled):
1824         (WebCore::Internals::toggleOverwriteModeEnabled):
1825         (WebCore::Internals::consoleMessageArgumentCounts):
1826         (WebCore::Internals::hasGrammarMarker):
1827         (WebCore::Internals::numberOfScrollableAreas):
1828         (WebCore::Internals::isPageBoxVisible):
1829         (WebCore::Internals::repaintRectsAsText):
1830         (WebCore::Internals::scrollingStateTreeAsText):
1831         (WebCore::Internals::mainThreadScrollingReasons):
1832         (WebCore::Internals::nonFastScrollableRects):
1833         (WebCore::Internals::garbageCollectDocumentResources):
1834         (WebCore::Internals::insertAuthorCSS):
1835         (WebCore::Internals::insertUserCSS):
1836         (WebCore::Internals::shortcutIconURLs):
1837         (WebCore::Internals::allIconURLs):
1838         (WebCore::Internals::setHeaderHeight):
1839         (WebCore::Internals::setFooterHeight):
1840         (WebCore::Internals::webkitWillEnterFullScreenForElement):
1841         (WebCore::Internals::webkitDidEnterFullScreenForElement):
1842         (WebCore::Internals::webkitWillExitFullScreenForElement):
1843         (WebCore::Internals::webkitDidExitFullScreenForElement):
1844         (WebCore::Internals::startTrackingRepaints):
1845         (WebCore::Internals::stopTrackingRepaints):
1846         (WebCore::Internals::getCurrentCursorInfo):
1847         * testing/Internals.h:
1848         (WebCore::Internals::setPagination):
1849         * testing/Internals.idl:
1850
1851 2013-10-28  Xabier Rodriguez Calvar  <calvaris@igalia.com>
1852
1853         Remove HTMLMediaElement.startTime
1854         https://bugs.webkit.org/show_bug.cgi?id=123264
1855
1856         Reviewed by Eric Carlson.
1857
1858         Patch based on one by: philipj@opera.com
1859         Blink review URL: https://codereview.chromium.org/32583003
1860
1861         startTime has been removed from the HTMLMediaElement and its use
1862         in the rest of components.
1863
1864         * Modules/mediacontrols/mediaControlsApple.js:
1865         (Controller.prototype.handleRewindButtonClicked):
1866         (Controller.prototype.handleTimelineMouseMove):
1867         (Controller.prototype.updateDuration):
1868         (Controller.prototype.updateTime): Removed used of startTime().
1869         * bindings/gobject/WebKitDOMCustom.cpp:
1870         (webkit_dom_html_media_element_get_start_time):
1871         * bindings/gobject/WebKitDOMCustom.h:
1872         * bindings/gobject/WebKitDOMCustom.symbols: Added phony function.
1873         * html/HTMLMediaElement.cpp:
1874         (WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
1875         (WebCore::HTMLMediaElement::isBlockedOnMediaController): Removed
1876         use of startTime()
1877         * html/HTMLMediaElement.h:
1878         * html/HTMLMediaElement.idl: Removed startTime()
1879         * rendering/RenderThemeWinCE.cpp:
1880         (WebCore::RenderThemeWinCE::paintSliderThumb): Removed use of
1881         startTime()
1882
1883 2013-10-28  Andreas Kling  <akling@apple.com>
1884
1885         RenderElement::m_style should be a Ref.
1886         <https://webkit.org/b/123401>
1887
1888         Made RenderElement::m_style a Ref. This codifies the fact that it
1889         can never be null after construction.
1890
1891         Removed a couple of unnecessary null checks that were exposed as
1892         compilation failures.
1893
1894         Reviewed by Antti Koivisto.
1895
1896 2013-10-28  Bastien Nocera <hadess@hadess.net>
1897
1898         Name all the GLib timeout sources
1899         https://bugs.webkit.org/show_bug.cgi?id=123229
1900
1901         Reviewed by Anders Carlsson.
1902
1903         Give a name to GLib timeout sources, this is helpful when
1904         profiling WebKitGTK applications.
1905
1906         No new tests, no change in functionality.
1907
1908 2013-10-28  Philippe Normand  <pnormand@igalia.com>
1909
1910         MediaStreamTrackPrivate's m_client uninitialized
1911         https://bugs.webkit.org/show_bug.cgi?id=123403
1912
1913         Reviewed by Eric Carlson.
1914
1915         No new tests, no change in functionality.
1916
1917         * platform/mediastream/MediaStreamTrackPrivate.cpp:
1918         (WebCore::MediaStreamTrackPrivate::MediaStreamTrackPrivate):
1919         Initialize the m_client member variable.
1920
1921 2013-10-28  Carlos Garcia Campos  <cgarcia@igalia.com>
1922
1923         Unreviewed. Fix make distcheck.
1924
1925         * GNUmakefile.am: Add crypto idl files to EXTRA_DIST and remove
1926         css/fullscreenQuickTime.css that was removed.
1927
1928 2013-10-28  Antti Koivisto  <antti@apple.com>
1929
1930         Prepare simple line layout to support multiple runs per line
1931         https://bugs.webkit.org/show_bug.cgi?id=123400
1932
1933         Reviewed by Andreas Kling.
1934
1935         Bunch of renaming and some refactoring for future support for text runs.
1936
1937         SimpleLineLayout::Lines -> SimpleLineLayout::Layout and becomes a class instead of a typedef.
1938         SimpleLineLayout::Resolver::Line -> SimpleLineLayout::Resolver::Run
1939         SimpleLineLayout::createLines() -> SimpleLineLayout::create()
1940         RenderBlockFlow::simpleLines() -> RenderBlockFlow::simpleLineLayout()
1941         RenderText::simpleLines() -> RenderText::simpleLineLayout()
1942         
1943         Added resolver construction functions:
1944         
1945         SimpleLineLayout::runResolver()
1946         SimpleLineLayout::lineResolver()
1947
1948 2013-10-28  Mario Sanchez Prada  <mario.prada@samsung.com>
1949
1950         [GTK] Expose title and alternative text for links in image maps
1951         https://bugs.webkit.org/show_bug.cgi?id=84045
1952
1953         Reviewed by Chris Fleizach.
1954
1955         Change the way we decide when the title attribute should be
1956         used for the accessible description, by not relying in the
1957         titleTagShouldBeUsedInDescriptionField() helper function but
1958         in whether we have found a visible text for it or not.
1959
1960         This actually mimics what the Mac port does and so makes possible
1961         to share both the layout test and its expected results.
1962
1963         * accessibility/atk/WebKitAccessibleUtil.cpp:
1964         (accessibilityDescription): Update the method to determine
1965         whether the title attribute should be used for the description.
1966
1967 2013-10-28  Bastien Nocera <hadess@hadess.net>
1968
1969         Replace 0 timeouts g_timeout_add() by g_idle_add()
1970         https://bugs.webkit.org/show_bug.cgi?id=123260
1971
1972         Reviewed by Carlos Garcia Campos.
1973
1974         A zero timeout should be equivalent to using g_idle_add_full(G_PRIORITY_DEFAULT, ...)
1975         without the nagging feeling that the wrong API was used.
1976
1977         No new tests, no change in functionality.
1978
1979         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: Use g_idle_add() instead
1980         of 0-timer.
1981         (WebCore::MediaPlayerPrivateGStreamer::videoChanged):
1982         (WebCore::MediaPlayerPrivateGStreamer::audioChanged):
1983         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: Ditto.
1984         (WebCore::MediaPlayerPrivateGStreamerBase::volumeChanged):
1985         (WebCore::MediaPlayerPrivateGStreamerBase::muteChanged):
1986         * platform/gtk/GtkDragAndDropHelper.cpp: Ditto.
1987         (WebCore::GtkDragAndDropHelper::handleDragLeave):
1988
1989 2013-10-28  Zan Dobersek  <zdobersek@igalia.com>
1990
1991         Re-enable simple line layout for GTK
1992         https://bugs.webkit.org/show_bug.cgi?id=123388
1993
1994         Reviewed by Andreas Kling.
1995
1996         * rendering/SimpleLineLayout.cpp:
1997         (WebCore::SimpleLineLayout::canUseFor): 8-bit TextRun support is now enabled for the GTK port, so the port
1998         can use the simple line layout.
1999
2000 2013-10-27  Andreas Kling  <akling@apple.com>
2001
2002         Fix 4 asserting SVG tests after r158097.
2003
2004         RenderElement::setStyle() is, quite surprisingly, a virtual function
2005         with a single override in RenderSVGBlock.
2006         To match the old behavior, we have to rewrite the display type from
2007         any inline type to block instead.
2008
2009         * rendering/RenderElement.cpp:
2010         (WebCore::RenderElement::initializeStyle):
2011
2012 2013-10-27  Andreas Kling  <akling@apple.com>
2013
2014         Tone down overzealous assertion from r158097.
2015
2016         RenderElement::initializeStyle() really only cares that there are no
2017         text renderers that we should be calling styleDidChange() on.
2018
2019         Tweak the code to only check that there are no text children.
2020
2021         * rendering/RenderElement.cpp:
2022         (WebCore::RenderElement::initializeStyle):
2023
2024 2013-10-27  Antti Koivisto  <antti@apple.com>
2025
2026         Enable center and right text alignment for simple lines
2027         https://bugs.webkit.org/show_bug.cgi?id=123398
2028
2029         Reviewed by Andreas Kling.
2030
2031         Support text-align:center and text-align:right on simple line layout path.
2032
2033         * rendering/SimpleLineLayout.cpp:
2034         (WebCore::SimpleLineLayout::canUseFor):
2035         
2036             text-align:justify is still not supported.
2037
2038         (WebCore::SimpleLineLayout::computeLineLeft):
2039         (WebCore::SimpleLineLayout::createLines):
2040         
2041             Do a rounding dance that matches the line boxes.
2042
2043         * rendering/SimpleLineLayout.h:
2044         
2045             Add left position to lines.
2046
2047         * rendering/SimpleLineLayoutResolver.h:
2048         (WebCore::SimpleLineLayout::Resolver::Line::rect):
2049         
2050             We now do rounding during layout.
2051
2052         (WebCore::SimpleLineLayout::Resolver::Line::baseline):
2053
2054 2013-10-27  Andreas Kling  <akling@apple.com>
2055
2056         Renderers should receive their style at construction.
2057         <https://webkit.org/b/123396>
2058
2059         Pass the RenderStyle to all non-text renderer constructors.
2060         After construction, initializeStyle() must be called (as a stopgap
2061         measure) until we are able to do style-derived initialization
2062         without virtual function calls.
2063
2064         With this change, RenderElement::m_style is never null. Subsequent
2065         patches will add enforcement for this and also make style() return
2066         a RenderStyle&.
2067
2068         I'm adding three FIXME's in this patch:
2069
2070             - createRendererIfNeeded() calls AnimationController to set up
2071               the initial style manually instead of asking RenderElement's
2072               setAnimatedStyle() to do it. This can probably be done in a
2073               nicer way, but it's not clear yet how.
2074
2075             - ImageContentData::createRenderer() does a bit of unnecessary
2076               work. This should be easy to clean up but got too distracting
2077               to be part of this patch.
2078
2079             - Document::createRenderTree() creates the RenderView with an
2080               initial dummy RenderStyle. I've done this because resolving
2081               the document style assumes we already have a RenderView.
2082
2083         For styleWillChange() implementations to detect that they are
2084         reacting to the initial style, I've added a hasInitializedStyle()
2085         function on RenderElement. This will return false until you've
2086         called initializeStyle() on the renderer. This should go away
2087         along with initializeStyle() eventually.
2088
2089         Reviewed by Antti Koivisto.
2090
2091 2013-10-26  Tim Horton  <timothy_horton@apple.com>
2092
2093         [mac] Remove WebTiledLayer
2094         https://bugs.webkit.org/show_bug.cgi?id=123395
2095
2096         Reviewed by Anders Carlsson.
2097
2098         Mac doesn't use CATiledLayer at all anymore. We have to keep
2099         LayerTypeTiledLayer around for Windows, for now, but we can
2100         get rid of WebTiledLayer and some related Mac-specific code.
2101
2102         No new tests, just removing dead code.
2103
2104         * WebCore.xcodeproj/project.pbxproj:
2105         Remove WebTiledLayer.*
2106
2107         * platform/graphics/ca/PlatformCALayer.h:
2108         * platform/graphics/ca/mac/PlatformCALayerMac.h:
2109         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
2110         (PlatformCALayerMac::PlatformCALayerMac):
2111         Remove synchronouslyDisplayTilesInRect, which was only used for WebTiledLayer on Mac.
2112         Remove WebTiledLayer instantiation and setup code.
2113
2114         * platform/graphics/mac/WebTiledLayer.h: Removed.
2115         * platform/graphics/mac/WebTiledLayer.mm: Removed.
2116
2117 2013-10-26  Andreas Kling  <akling@apple.com>
2118
2119         CTTE: RenderImageResourceStyleImage always has a StyleImage.
2120         <https://webkit.org/b/123390>
2121
2122         Codify the fact that RenderImageResourceStyleImage always wraps an
2123         existing StyleImage object.
2124
2125         Reviewed by Antti Koivisto.
2126
2127 2013-10-26  Antti Koivisto  <antti@apple.com>
2128
2129         Revert some accidental changes.
2130
2131         * css/CSSFontFaceSource.cpp:
2132         (WebCore::CSSFontFaceSource::getFontData):
2133         * css/CSSFontSelector.cpp:
2134         * css/CSSFontSelector.h:
2135
2136 2013-10-26  Mark Lam  <mark.lam@apple.com>
2137
2138         Gardening: fixed broken build.
2139         https://bugs.webkit.org/show_bug.cgi?id=123354.
2140
2141         * css/CSSFontSelector.h:
2142
2143 2013-10-26  Antti Koivisto  <antti@apple.com>
2144
2145         fast/frames/seamless/seamless-nested-crash.html asserts on wk2 only
2146         https://bugs.webkit.org/show_bug.cgi?id=123354
2147
2148         Reviewed by Andreas Kling.
2149
2150         * rendering/SimpleLineLayout.cpp:
2151         (WebCore::SimpleLineLayout::canUseFor):
2152         
2153             Don't enable simple line layout if the primary font is loading. The code expects
2154             to use the primary font metrics for all lines but those won't match the fallbacks
2155             when font is not loaded.
2156
2157 2013-10-26  Carlos Garcia Campos  <cgarcia@igalia.com>
2158
2159         [GTK] Deprecate public dispatch_event method in objects implementing EventTarget interface
2160         https://bugs.webkit.org/show_bug.cgi?id=123261
2161
2162         Reviewed by Gustavo Noronha Silva.
2163
2164         The interface function should be used instead.
2165
2166         * bindings/scripts/CodeGeneratorGObject.pm:
2167         (GetFunctionDeprecationInformation): Helper function to return the
2168         version when the function was deprecated and the function
2169         replacing the deprecated one.
2170         (GenerateFunction): Check if the function is deprecated to mark it
2171         as such in the header and API docs.
2172         * bindings/scripts/gobject-generate-headers.pl: Replace the unused
2173         WEBKIT_OBSOLETE_API macro with new macros to mark function as
2174         deprecated, using the glib macros so that we don't need checks for
2175         the platform.
2176         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
2177         * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
2178         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
2179         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
2180         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
2181         * bindings/scripts/test/GObject/WebKitDOMTestException.h:
2182         * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
2183         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
2184         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
2185         * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.h:
2186         * bindings/scripts/test/GObject/WebKitDOMattribute.h:
2187
2188 2013-10-25  Mark Lam  <mark.lam@apple.com>
2189
2190         DatabaseManager's ProposedDatabases need to be thread-safe.
2191         https://bugs.webkit.org/show_bug.cgi?id=123313.
2192
2193         Reviewed by Geoffrey Garen.
2194
2195         No new tests.
2196
2197         * Modules/webdatabase/DatabaseManager.cpp:
2198         (WebCore::DatabaseManager::DatabaseManager):
2199         (WebCore::DatabaseManager::existingDatabaseContextFor):
2200         (WebCore::DatabaseManager::registerDatabaseContext):
2201         (WebCore::DatabaseManager::unregisterDatabaseContext):
2202         (WebCore::DatabaseManager::didConstructDatabaseContext):
2203         (WebCore::DatabaseManager::didDestructDatabaseContext):
2204         (WebCore::DatabaseManager::openDatabaseBackend):
2205         (WebCore::DatabaseManager::addProposedDatabase):
2206         (WebCore::DatabaseManager::removeProposedDatabase):
2207         (WebCore::DatabaseManager::fullPathForDatabase):
2208         (WebCore::DatabaseManager::detailsForNameAndOrigin):
2209         * Modules/webdatabase/DatabaseManager.h:
2210
2211 2013-10-25  Joseph Pecoraro  <pecoraro@apple.com>
2212
2213         Upstream ENABLE(REMOTE_INSPECTOR) and enable on iOS and Mac
2214         https://bugs.webkit.org/show_bug.cgi?id=123111
2215
2216         Reviewed by Timothy Hatcher.
2217
2218         * Configurations/FeatureDefines.xcconfig:
2219         * WebCore.exp.in:
2220
2221 2013-10-25  Hans Muller  <hmuller@adobe.com>
2222
2223         [CSS Shapes] CORS-enabled fetch for shape image values
2224         https://bugs.webkit.org/show_bug.cgi?id=123114
2225
2226         Reviewed by Andreas Kling.
2227
2228         Access to shape images is now controlled by CORS CSS shape per
2229         http://dev.w3.org/csswg/css-shapes/#shape-outside-property.
2230         Previously shape images had to be same-origin.
2231
2232         Shape image URL access is defined by the same logic that defines
2233         canvas tainting: same-origin and data URLs are allowed and images
2234         with a "Access-Control-Allow-Origin:" header that's either "*" or
2235         that matches the document's origin.
2236
2237         A PotentiallyCrossOriginEnabled RequestOriginPolicy was added to
2238         ResourceLoaderOptions, to indicate that a "potentially CORS-enabled fetch"
2239         was to be undertaken. The CSSImageValue::cachedImage() method handles this
2240         option by effectively setting the "Origin:" request header (see
2241         updateRequestForAccessControl() in CrossOriginAccessControl.cpp).
2242         StyleResolver::loadPendingShapeImage() uses the new ResourceLoaderOption.
2243
2244         The static ShapeInsideInfo and ShapeOutsideInfo isEnabledFor() method
2245         now performs the CORS check for image valued shapes. The private
2246         isOriginClean() method from CanvasRenderingContext2D has been moved to
2247         the CachedImage class so that it can be shared by the Canvas and Shape
2248         implementations. It checks the response headers per the CORS spec.
2249
2250         Test: http/tests/security/shape-image-cors.html
2251
2252         * css/CSSImageValue.cpp:
2253         (WebCore::CSSImageValue::cachedImage): Handle the new ResourceLoaderOption.
2254         * css/StyleResolver.cpp:
2255         (WebCore::StyleResolver::loadPendingShapeImage): Set the new ResourceLoaderOption.
2256         * html/canvas/CanvasRenderingContext2D.cpp:
2257         (WebCore::CanvasRenderingContext2D::createPattern): Use the CachedImage::isOriginClean().
2258         * loader/ResourceLoaderOptions.h: Added PotentiallyCrossOriginEnabled to RequestOriginPolicy.
2259         * loader/cache/CachedImage.cpp:
2260         (WebCore::CachedImage::isOriginClean): Migrated from CanvasRenderingContext2D.
2261         * loader/cache/CachedImage.h:
2262         * rendering/shapes/ShapeInfo.cpp:
2263         (WebCore::::checkImageOrigin): Do the CORS check and log an error message if neccessary.
2264         * rendering/shapes/ShapeInfo.h:
2265         * rendering/shapes/ShapeInsideInfo.cpp:
2266         (WebCore::ShapeInsideInfo::isEnabledFor): Call checkImageOrigin() for images.
2267         * rendering/shapes/ShapeOutsideInfo.cpp:
2268         (WebCore::ShapeOutsideInfo::isEnabledFor): Ditto.
2269
2270 2013-10-25  Jer Noble  <jer.noble@apple.com>
2271
2272         [MSE] Fix runtime errors caused by mediasource IDL attributes.
2273         https://bugs.webkit.org/show_bug.cgi?id=123352
2274
2275         Reviewed by Eric Carlson.
2276
2277         Due to http://webkit.org/b/123178, MediaSource classes must add a GenerateIsReachable
2278         (and also a JSGenerateToJSObject) attribute to avoid runtime asserts and crashes.
2279
2280         * Modules/mediasource/MediaSource.idl:
2281         * Modules/mediasource/SourceBuffer.idl:
2282         * Modules/mediasource/SourceBufferList.idl:
2283         * Modules/mediasource/WebKitMediaSource.idl:
2284         * Modules/mediasource/WebKitSourceBufferList.idl:
2285
2286 2013-10-25  Jacky Jiang  <zhajiang@blackberry.com>
2287
2288         [BlackBerry] Browser crashed at PlatformGraphicsContext::addDrawLineForText() when trying to upload a video to youtube
2289         https://bugs.webkit.org/show_bug.cgi?id=123349
2290
2291         Reviewed by George Staikos.
2292         Internally reviewed by George Staikos, Konrad Piascik, Eli Fidler and Arvid Nilsson.
2293
2294         Browser crashed when dereferencing null PlatformGraphicsContext*.
2295         In FrameView::paintControlTints(), we intentionally constructed GraphicsContext
2296         with null PlatformGraphicsContext* and disabled painting by doing
2297         context.setUpdatingControlTints(true). So we should not go further in
2298         GraphicsContext::drawLineForText() if painting is disabled.
2299         Check paintingDisabled() for the other functions in PathBlackBerry.cpp
2300         as well; otherwise, it is likely we will crash at those places.
2301
2302         * platform/graphics/blackberry/PathBlackBerry.cpp:
2303         (WebCore::GraphicsContext::fillPath):
2304         (WebCore::GraphicsContext::strokePath):
2305         (WebCore::GraphicsContext::drawLine):
2306         (WebCore::GraphicsContext::drawLineForDocumentMarker):
2307         (WebCore::GraphicsContext::drawLineForText):
2308         (WebCore::GraphicsContext::clip):
2309         (WebCore::GraphicsContext::clipPath):
2310         (WebCore::GraphicsContext::canvasClip):
2311         (WebCore::GraphicsContext::clipOut):
2312
2313 2013-10-25  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
2314
2315         Adding platform implementation of MediaStreamTrack
2316         https://bugs.webkit.org/show_bug.cgi?id=123301
2317
2318         Reviewed by Eric Carlson.
2319
2320         No new tests needed.
2321
2322         * CMakeLists.txt:
2323         * Modules/mediastream/AudioStreamTrack.cpp:
2324         (WebCore::AudioStreamTrack::create): Create method now receives a MediaStreamTrackPrivate as parameter.
2325
2326         (WebCore::AudioStreamTrack::AudioStreamTrack):
2327         * Modules/mediastream/AudioStreamTrack.h:
2328         * Modules/mediastream/MediaStream.cpp:
2329         (WebCore::MediaStream::MediaStream): Constructor now iterates through a set of MediaStreamTrackPrivate
2330         instances to create each MediaStreamTrack of MediaStream.
2331
2332         (WebCore::MediaStream::addRemoteSource): Calling AudioStreamTrack and VideoStreamTrack with
2333         MediaStreamTrackPrivate as parameter.
2334
2335         * Modules/mediastream/MediaStreamTrack.cpp:
2336         (WebCore::MediaStreamTrack::MediaStreamTrack): Constructor now receives a MediaStreamTrackPrivate, instead of a
2337         MediaStreamSource.
2338
2339         (WebCore::MediaStreamTrack::~MediaStreamTrack):
2340         (WebCore::MediaStreamTrack::kind): Calling method from MediaStreamTrackPrivate.
2341
2342         (WebCore::MediaStreamTrack::setSource): Ditto.
2343
2344         (WebCore::MediaStreamTrack::id): Ditto.
2345
2346         (WebCore::MediaStreamTrack::label): Ditto.
2347
2348         (WebCore::MediaStreamTrack::enabled): Ditto.
2349
2350         (WebCore::MediaStreamTrack::setEnabled): Ditto.
2351
2352         (WebCore::MediaStreamTrack::muted): Ditto.
2353
2354         (WebCore::MediaStreamTrack::readonly): Ditto.
2355
2356         (WebCore::MediaStreamTrack::remote): Ditto.
2357
2358         (WebCore::MediaStreamTrack::readyState): Ditto.
2359
2360         (WebCore::MediaStreamTrack::states):
2361         (WebCore::MediaStreamTrack::capabilities):
2362         (WebCore::MediaStreamTrack::clone):
2363         (WebCore::MediaStreamTrack::stopProducingData):
2364         (WebCore::MediaStreamTrack::ended): Ditto.
2365
2366         (WebCore::MediaStreamTrack::sourceStateChanged): Ditto.
2367
2368         (WebCore::MediaStreamTrack::sourceMutedChanged): Ditto.
2369
2370         (WebCore::MediaStreamTrack::sourceEnabledChanged): Ditto.
2371         (WebCore::MediaStreamTrack::configureTrackRendering):
2372         (WebCore::MediaStreamTrack::stopped): Ditto.
2373
2374         (WebCore::MediaStreamTrack::trackDidEnd): Setting Ended ready state in MediaStreamTrackPrivate.
2375
2376         (WebCore::MediaStreamTrack::trackReadyStateChanged): Dispatches Live or Ended event.
2377
2378         (WebCore::MediaStreamTrack::trackMutedChanged): Dispatches Muted event.
2379
2380         * Modules/mediastream/MediaStreamTrack.h: Now inheriting from MediaStreamTrackPrivateClient.
2381
2382         (WebCore::MediaStreamTrack::source): Calling method from MediaStreamTrackPrivate.
2383         (WebCore::MediaStreamTrack::privateTrack):
2384         * Modules/mediastream/VideoStreamTrack.cpp:
2385         (WebCore::VideoStreamTrack::create):
2386         (WebCore::VideoStreamTrack::VideoStreamTrack): Create method now receives a MediaStreamTrackPrivate as parameter.
2387         * Modules/mediastream/VideoStreamTrack.h:
2388         * platform/mediastream/MediaStreamDescriptor.cpp:
2389         (WebCore::MediaStreamDescriptor::MediaStreamDescriptor): Stores the private tracks in a Vector (property of
2390         MediaStreamDescriptor class).
2391
2392         (WebCore::MediaStreamDescriptor::addTrack): Adds a private track to the tracks' Vector
2393
2394         (WebCore::MediaStreamDescriptor::removeTrack): Removes a private track from the tracks' Vector
2395
2396         * platform/mediastream/MediaStreamDescriptor.h:
2397         (WebCore::MediaStreamDescriptor::numberOfAudioSources): Renamed from numberOfAudioStreams.
2398
2399         (WebCore::MediaStreamDescriptor::audioSources): Renamed from audioStreams.
2400
2401         (WebCore::MediaStreamDescriptor::numberOfVideoSources): Renamed from numberOfVideoStreams.
2402
2403         (WebCore::MediaStreamDescriptor::videoSources): Renamed from videoStreams.
2404
2405         (WebCore::MediaStreamDescriptor::numberOfAudioTracks): Returns the number of audio tracks this MediaStreamDescriptor
2406         has.
2407
2408         (WebCore::MediaStreamDescriptor::audioTracks): Returns a audio track, given an index
2409
2410         (WebCore::MediaStreamDescriptor::numberOfVideoTracks): Returns the number of video tracks this MediaStreamDescriptor
2411         has.
2412         (WebCore::MediaStreamDescriptor::videoTracks): Returns a video track, given an index
2413         * platform/mediastream/MediaStreamTrackPrivate.cpp: Added.
2414         * platform/mediastream/MediaStreamTrackPrivate.h: Added.
2415
2416 2013-10-25  Zoltan Horvath  <zoltan@webkit.org>
2417
2418         [CSS Regions][CSS Shapes] Update updateShapeAndSegmentsForCurrentLineInFlowThread to deal better with multiple regions
2419         <https://webkit.org/b/123210>
2420
2421         Reviewed by David Hyatt.
2422
2423         I simplified the determination of the next region part of updateShapeAndSegmentsForCurrentLineInFlowThread's implementation
2424         in order to make the code more straightforward. I also tried to avoid using regionAtBlockOffset(...) function where it's possible,
2425         since it's not always that reliable, what I'll will report in a separate bug.
2426
2427         No new tests, covered by existing tests.
2428
2429         * rendering/RenderBlockLineLayout.cpp:
2430         (WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLineInFlowThread):
2431
2432 2013-10-25  Zoltan Horvath  <zoltan@webkit.org>
2433
2434         [CSS Regions][CSS Shapes] Update updateShapeAndSegmentsForCurrentLineInFlowThread to deal better with the first lines
2435         <https://bugs.webkit.org/show_bug.cgi?id=123275>
2436
2437         Reviewed by David Hyatt.
2438
2439         We have a complex condition in updateShapeAndSegmentsForCurrentLineInFlowThread, which is
2440         adjusting the first line to the shape's top. This patch adds two boolean to make that clear.
2441
2442         No new tests, no behavior change.
2443
2444         * rendering/RenderBlockLineLayout.cpp:
2445         (WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLineInFlowThread):
2446
2447 2013-10-25  Antti Koivisto  <antti@apple.com>
2448
2449         Faster way for simple line layout to check if text has fallback fonts
2450         https://bugs.webkit.org/show_bug.cgi?id=123342
2451
2452         Reviewed by Andreas Kling.
2453         
2454         Don't use RenderText::knownToHaveNoOverflowAndNoFallbackFonts as it is slow.
2455
2456         Simple text code path test already guarantees there is no overflow. Test for fallback
2457         fonts explicitly.
2458
2459         * platform/graphics/SimpleFontData.h:
2460         
2461             Make FINAL.
2462
2463         * rendering/RenderText.cpp:
2464         * rendering/RenderText.h:
2465         
2466             Remove knownToHaveNoOverflowAndNoFallbackFonts() as it has no clients.
2467
2468         * rendering/SimpleLineLayout.cpp:
2469         (WebCore::SimpleLineLayout::canUseFor):
2470         
2471             Check if all characters can be found from the primary font.
2472
2473 2013-10-25  Andreas Kling  <akling@apple.com>
2474
2475         SVGResourcesCache::clientDestroyed() should take a RenderElement&.
2476         <https://webkit.org/b/123339>
2477
2478         This function is always called with an object, and that object
2479         is guaranteed to never be a text renderer.
2480
2481         Reviewed by Antti Koivisto.
2482
2483 2013-10-25  Andreas Kling  <akling@apple.com>
2484
2485         SVGResourcesCache::clientLayoutChanged() should take a RenderElement&.
2486         <https://webkit.org/b/123336>
2487
2488         This function is always called with an object, and that object
2489         is guaranteed to never be a text renderer.
2490
2491         Reviewed by Antti Koivisto.
2492
2493 2013-10-25  Andreas Kling  <akling@apple.com>
2494
2495         SVGResourcesCache::clientStyleChanged() should take a RenderElement&.
2496         <https://webkit.org/b/123335>
2497
2498         This function is always called with an object, and that object
2499         is guaranteed to never be a text renderer.
2500
2501         Reviewed by Antti Koivisto.
2502
2503 2013-10-25  Andreas Kling  <akling@apple.com>
2504
2505         SVG: postApplyResource() should take a RenderElement&.
2506         <https://webkit.org/b/123334>
2507
2508         This function is always called with an object, and that object
2509         is guaranteed to never be a text renderer.
2510
2511         Reviewed by Antti Koivisto.
2512
2513 2013-10-25  Antti Koivisto  <antti@apple.com>
2514
2515         REGRESSION(r157950): It made many tests assert on Windows, EFL, GTK
2516         https://bugs.webkit.org/show_bug.cgi?id=123309
2517
2518         Reviewed by Andreas Kling.
2519
2520         Disable simple line layout on non-Mac plaforms for now.
2521
2522         * rendering/SimpleLineLayout.cpp:
2523         (WebCore::SimpleLineLayout::canUseFor):
2524
2525 2013-10-24  Andreas Kling  <akling@apple.com>
2526
2527         SVG: applyResource() should take a RenderElement&.
2528         <https://webkit.org/b/123286>
2529
2530         This function is always called with an object, and that object
2531         is guaranteed to never be a text renderer.
2532
2533         Reviewed by Antti Koivisto.
2534
2535 2013-10-25  Andreas Kling  <akling@apple.com>
2536
2537         RenderElement::styleWillChange() should pass newStyle as reference.
2538         <https://webkit.org/b/123332>
2539
2540         When styleWillChange() is called, there is always a new style getting
2541         set so there's no need to handle the null style case.
2542         This flushed out a couple of unnecessary checks.
2543
2544         Reviewed by Antti Koivisto.
2545
2546 2013-10-25  peavo@outlook.com  <peavo@outlook.com>
2547
2548         [WinCairo] Compile fixes.
2549         https://bugs.webkit.org/show_bug.cgi?id=123269
2550
2551         Reviewed by Csaba Osztrogon√°c.
2552
2553         * platform/graphics/win/ImageCairoWin.cpp: Added new parameter to BitmapImage::draw() calls.
2554         (WebCore::BitmapImage::getHBITMAPOfSize):
2555         (WebCore::BitmapImage::drawFrameMatchingSourceSize):
2556
2557 2013-10-25  Sergio Villar Senin  <svillar@igalia.com>
2558
2559         Use a Vector instead of HashSet to computed the orderValues in RenderFlexibleBox
2560         https://bugs.webkit.org/show_bug.cgi?id=118620
2561
2562         Reviewed by Antti Koivisto.
2563
2564         Turns out that order is extremelly uncommon so using a Vector is
2565         much less expensive. This also special-cases the much common case
2566         of only having order of value 0 by using Vectors with just one
2567         preallocated member.
2568
2569         Also added the performance test that shows a ~1% win when using a
2570         vector instead of the HashSet.
2571
2572         * rendering/RenderFlexibleBox.cpp:
2573         (WebCore::RenderFlexibleBox::OrderIterator::setOrderValues):
2574         (WebCore::RenderFlexibleBox::layoutBlock):
2575         (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
2576         * rendering/RenderFlexibleBox.h:
2577
2578 2013-10-25  Sergio Villar Senin  <svillar@igalia.com>
2579
2580         Non-SVG build broken after r157950
2581         https://bugs.webkit.org/show_bug.cgi?id=123328
2582
2583         Reviewed by Xan Lopez.
2584
2585         The isSVGInlineTest() check should be done only if SVG is enabled.
2586
2587         * rendering/SimpleLineLayout.cpp:
2588         (WebCore::SimpleLineLayout::canUseFor):
2589
2590 2013-10-24  Jer Noble  <jer.noble@apple.com>
2591
2592         [Mac] Add helper methods to convert CMTime <--> MediaTime
2593         https://bugs.webkit.org/show_bug.cgi?id=123285
2594
2595         Reviewed by Eric Carlson.
2596
2597         Add utility methods to convert between CMTime (a rational time class) and MediaTime.
2598         Once there, PlatformClockCM can now vend and accept MediaTimes for currentTime.
2599
2600         * platform/mac/MediaTimeMac.h:
2601         * platform/mac/MediaTimeMac.cpp:
2602         (WebCore::toMediaTime): Added conversion utility method.
2603         (WebCore::toCMTime): Ditto.
2604
2605         * platform/mac/PlatformClockCM.h:
2606         * platform/mac/PlatformClockCM.mm:
2607         (PlatformClockCM::setCurrentMediaTime): Added.
2608         (PlatformClockCM::currentMediaTime): Added.
2609
2610         * WebCore.xcodeproj/project.pbxproj: Add new files to project.
2611
2612 2013-10-24  Mark Rowe  <mrowe@apple.com>
2613
2614         Remove references to OS X 10.7 from Xcode configuration settings.
2615
2616         Now that we're not building for OS X 10.7 they're no longer needed.
2617
2618         Reviewed by Anders Carlsson.
2619
2620
2621         * Configurations/Base.xcconfig:
2622         * Configurations/DebugRelease.xcconfig:
2623         * Configurations/FeatureDefines.xcconfig:
2624         * Configurations/Version.xcconfig:
2625
2626 2013-10-24  Antti Koivisto  <antti@apple.com>
2627
2628         Cache line layout path
2629         https://bugs.webkit.org/show_bug.cgi?id=123298
2630
2631         Reviewed by Sam Weinig.
2632         
2633         Determining the path can be non-trivial. Avoid computing it repeatedly on relayouts.
2634
2635         * rendering/RenderBlock.cpp:
2636         (WebCore::RenderBlock::RenderBlock):
2637         (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
2638         (WebCore::RenderBlock::invalidateLineLayoutPath):
2639         (WebCore::RenderBlock::removeChild):
2640         
2641             Invalidate the path when children change.
2642
2643         * rendering/RenderBlock.h:
2644         * rendering/RenderBlockFlow.cpp:
2645         (WebCore::RenderBlockFlow::layoutInlineChildren):
2646         (WebCore::RenderBlockFlow::styleDidChange):
2647         
2648             Invalidate the path when style changes.
2649
2650         (WebCore::RenderBlockFlow::deleteLineBoxesBeforeSimpleLineLayout):
2651         (WebCore::RenderBlockFlow::ensureLineBoxes):
2652         * rendering/RenderText.cpp:
2653         (WebCore::RenderText::setText):
2654         
2655             Invalidate the path when text changes.
2656
2657 2013-10-24  Mark Rowe  <mrowe@apple.com>
2658
2659         <rdar://problem/15312643> Prepare for the mysterious future.
2660
2661         Reviewed by David Kilzer.
2662
2663
2664         * Configurations/Base.xcconfig:
2665         * Configurations/DebugRelease.xcconfig:
2666         * Configurations/FeatureDefines.xcconfig:
2667         * Configurations/Version.xcconfig:
2668
2669 2013-10-24  Andreas Kling  <akling@apple.com>
2670
2671         DocumentLoader::cachedResourceLoader() should return a reference.
2672         <https://webkit.org/b/123303>
2673
2674         ..and while we're at it, make DocumentLoader::m_cachedResourceLoader
2675         a Ref, and have CachedResourceLoader::create return a PassRef.
2676
2677         Reviewed by Sam Weinig.
2678
2679 2013-10-24  Anders Carlsson  <andersca@apple.com>
2680
2681         Stop bringing in the std namespace
2682         https://bugs.webkit.org/show_bug.cgi?id=123273
2683
2684         Reviewed by Andreas Kling.
2685
2686         * Modules/webaudio/AudioBufferSourceNode.cpp:
2687         (WebCore::AudioBufferSourceNode::renderFromBuffer):
2688         (WebCore::AudioBufferSourceNode::startGrain):
2689         (WebCore::AudioBufferSourceNode::totalPitchRate):
2690         * Modules/webaudio/AudioNodeInput.cpp:
2691         (WebCore::AudioNodeInput::numberOfChannels):
2692         * Modules/webaudio/AudioParamTimeline.cpp:
2693         (WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
2694         * Modules/webaudio/AudioScheduledSourceNode.cpp:
2695         (WebCore::AudioScheduledSourceNode::updateSchedulingInfo):
2696         (WebCore::AudioScheduledSourceNode::stop):
2697         * Modules/webaudio/AudioSummingJunction.cpp:
2698         * Modules/webaudio/DelayDSPKernel.cpp:
2699         (WebCore::DelayDSPKernel::process):
2700         * Modules/webaudio/OfflineAudioDestinationNode.cpp:
2701         (WebCore::OfflineAudioDestinationNode::offlineRender):
2702         * Modules/webaudio/OscillatorNode.cpp:
2703         * Modules/webaudio/PannerNode.cpp:
2704         (WebCore::PannerNode::dopplerRate):
2705         * Modules/webaudio/WaveShaperDSPKernel.cpp:
2706         (WebCore::WaveShaperDSPKernel::processCurve):
2707         * Modules/webdatabase/DatabaseTracker.cpp:
2708         (WebCore::DatabaseTracker::hasAdequateQuotaForOrigin):
2709         * Modules/websockets/WebSocket.cpp:
2710         (WebCore::saturateAdd):
2711         * Modules/websockets/WebSocketChannel.cpp:
2712         * Modules/websockets/WebSocketFrame.cpp:
2713         (WebCore::WebSocketFrame::parseFrame):
2714         * accessibility/AccessibilityARIAGrid.cpp:
2715         * accessibility/AccessibilityARIAGridCell.cpp:
2716         * accessibility/AccessibilityARIAGridRow.cpp:
2717         * accessibility/AccessibilityList.cpp:
2718         * accessibility/AccessibilityListBox.cpp:
2719         * accessibility/AccessibilityListBoxOption.cpp:
2720         * accessibility/AccessibilityNodeObject.cpp:
2721         * accessibility/AccessibilityObject.cpp:
2722         * accessibility/AccessibilityRenderObject.cpp:
2723         * accessibility/AccessibilityTable.cpp:
2724         (WebCore::AccessibilityTable::addChildren):
2725         * accessibility/AccessibilityTableCell.cpp:
2726         * accessibility/AccessibilityTableColumn.cpp:
2727         * accessibility/AccessibilityTableHeaderContainer.cpp:
2728         * accessibility/AccessibilityTableRow.cpp:
2729         * accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
2730         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
2731         (-[WebAccessibilityObjectWrapper accessibilityArrayAttributeValues:index:maxCount:]):
2732         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
2733         (WebCore::JSCSSStyleDeclaration::getOwnPropertyNames):
2734         * bindings/js/JSGeolocationCustom.cpp:
2735         (WebCore::setTimeout):
2736         (WebCore::setMaximumAge):
2737         * bindings/js/ScriptController.cpp:
2738         * bindings/js/SerializedScriptValue.cpp:
2739         (WebCore::writeLittleEndian):
2740         (WebCore::CloneSerializer::write):
2741         (WebCore::CloneDeserializer::deserialize):
2742         (WebCore::CloneDeserializer::readString):
2743         * css/CSSComputedStyleDeclaration.cpp:
2744         (WebCore::ComputedStyleExtractor::propertyValue):
2745         * css/CSSFontSelector.cpp:
2746         (WebCore::CSSFontSelector::getFontFace):
2747         * css/CSSGradientValue.cpp:
2748         (WebCore::CSSRadialGradientValue::createGradient):
2749         * css/CSSParser.cpp:
2750         (WebCore::CSSParser::parseValue):
2751         (WebCore::CSSParser::parseColorParameters):
2752         (WebCore::CSSParser::parseHSLParameters):
2753         * css/CSSReflectValue.cpp:
2754         * css/DeprecatedStyleBuilder.cpp:
2755         (WebCore::ApplyPropertyFontSize::applyValue):
2756         * css/PropertySetCSSStyleDeclaration.cpp:
2757         * css/SVGCSSParser.cpp:
2758         * css/StylePropertySet.cpp:
2759         (WebCore::StylePropertySet::getLayeredShorthandValue):
2760         * css/StyleResolver.cpp:
2761         (WebCore::StyleResolver::viewportPercentageValue):
2762         * dom/CharacterData.cpp:
2763         (WebCore::CharacterData::parserAppendData):
2764         * dom/ContainerNode.cpp:
2765         * dom/Document.cpp:
2766         (WebCore::Document::minimumLayoutDelay):
2767         * dom/Node.cpp:
2768         (WebCore::Node::compareDocumentPosition):
2769         * dom/Range.cpp:
2770         (WebCore::Range::toString):
2771         (WebCore::Range::textRects):
2772         (WebCore::Range::textQuads):
2773         * dom/ScriptedAnimationController.cpp:
2774         (WebCore::ScriptedAnimationController::scheduleAnimation):
2775         * dom/StyledElement.cpp:
2776         (WebCore::StyledElement::makePresentationAttributeCacheKey):
2777         * dom/Text.cpp:
2778         * dom/ViewportArguments.cpp:
2779         (WebCore::clampLengthValue):
2780         (WebCore::clampScaleValue):
2781         (WebCore::ViewportArguments::resolve):
2782         (WebCore::computeMinimumScaleFactorForContentContained):
2783         (WebCore::restrictMinimumScaleFactorToViewportSize):
2784         * editing/AlternativeTextController.cpp:
2785         * editing/ApplyStyleCommand.cpp:
2786         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
2787         * editing/CompositeEditCommand.cpp:
2788         (WebCore::CompositeEditCommand::deleteInsignificantText):
2789         * editing/Editor.cpp:
2790         (WebCore::Editor::setComposition):
2791         (WebCore::Editor::compositionRange):
2792         * editing/EditorCommand.cpp:
2793         (WebCore::verticalScrollDistance):
2794         * editing/TextIterator.cpp:
2795         (WebCore::TextIterator::handleTextNode):
2796         (WebCore::TextIterator::handleTextBox):
2797         (WebCore::CharacterIterator::string):
2798         (WebCore::SearchBuffer::SearchBuffer):
2799         (WebCore::SearchBuffer::append):
2800         (WebCore::SearchBuffer::prependContext):
2801         (WebCore::SearchBuffer::search):
2802         * editing/VisibleUnits.cpp:
2803         (WebCore::startOfParagraph):
2804         * editing/htmlediting.cpp:
2805         * editing/markup.cpp:
2806         * fileapi/FileReaderLoader.cpp:
2807         (WebCore::FileReaderLoader::didReceiveResponse):
2808         (WebCore::FileReaderLoader::didReceiveData):
2809         * history/BackForwardList.cpp:
2810         (WebCore::BackForwardList::backListWithLimit):
2811         (WebCore::BackForwardList::forwardListWithLimit):
2812         * history/PageCache.cpp:
2813         (WebCore::PageCache::setCapacity):
2814         * html/BaseDateAndTimeInputType.cpp:
2815         * html/FTPDirectoryDocument.cpp:
2816         * html/HTMLAreaElement.cpp:
2817         (WebCore::HTMLAreaElement::getRegion):
2818         * html/HTMLElement.cpp:
2819         (WebCore::HTMLElement::parseAttribute):
2820         (WebCore::parseColorStringWithCrazyLegacyRules):
2821         * html/HTMLFormControlElement.cpp:
2822         * html/HTMLFormElement.cpp:
2823         (WebCore::HTMLFormElement::getTextFieldValues):
2824         * html/HTMLImageElement.cpp:
2825         * html/HTMLInputElement.cpp:
2826         * html/HTMLMapElement.cpp:
2827         * html/HTMLMediaElement.cpp:
2828         (WebCore::HTMLMediaElement::HTMLMediaElement):
2829         (WebCore::HTMLMediaElement::updateActiveTextTrackCues):
2830         (WebCore::HTMLMediaElement::textTrackAddCue):
2831         (WebCore::HTMLMediaElement::textTrackRemoveCue):
2832         (WebCore::HTMLMediaElement::rewind):
2833         (WebCore::HTMLMediaElement::seek):
2834         (WebCore::HTMLMediaElement::duration):
2835         * html/HTMLSelectElement.cpp:
2836         (WebCore::HTMLSelectElement::parseAttribute):
2837         (WebCore::HTMLSelectElement::updateListBoxSelection):
2838         * html/HTMLSourceElement.cpp:
2839         * html/HTMLTableCellElement.cpp:
2840         (WebCore::HTMLTableCellElement::colSpan):
2841         (WebCore::HTMLTableCellElement::rowSpan):
2842         * html/HTMLTableElement.cpp:
2843         (WebCore::HTMLTableElement::parseAttribute):
2844         * html/HTMLTextFormControlElement.cpp:
2845         (WebCore::HTMLTextFormControlElement::setSelectionStart):
2846         (WebCore::HTMLTextFormControlElement::setSelectionEnd):
2847         (WebCore::HTMLTextFormControlElement::select):
2848         (WebCore::HTMLTextFormControlElement::setSelectionRange):
2849         * html/HTMLTrackElement.cpp:
2850         * html/ImageDocument.cpp:
2851         (WebCore::ImageDocument::scale):
2852         * html/InputType.cpp:
2853         (WebCore::InputType::valueAsDouble):
2854         * html/MediaController.cpp:
2855         (MediaController::duration):
2856         (MediaController::currentTime):
2857         (MediaController::setCurrentTime):
2858         (MediaController::updateReadyState):
2859         * html/NumberInputType.cpp:
2860         (WebCore::NumberInputType::setValueAsDouble):
2861         (WebCore::NumberInputType::setValueAsDecimal):
2862         (WebCore::NumberInputType::createStepRange):
2863         * html/RangeInputType.cpp:
2864         (WebCore::RangeInputType::handleKeydownEvent):
2865         * html/SearchInputType.cpp:
2866         (WebCore::SearchInputType::startSearchEventTimer):
2867         * html/StepRange.cpp:
2868         (WebCore::StepRange::clampValue):
2869         (WebCore::StepRange::parseStep):
2870         * html/TimeRanges.cpp:
2871         * html/ValidationMessage.cpp:
2872         (WebCore::ValidationMessage::setMessageDOMAndStartTimer):
2873         (WebCore::adjustBubblePosition):
2874         * html/canvas/CanvasRenderingContext2D.cpp:
2875         (WebCore::normalizeRect):
2876         * html/canvas/WebGLRenderingContext.cpp:
2877         (WebCore::WebGLRenderingContext::validateIndexArrayConservative):
2878         (WebCore::WebGLRenderingContext::validateCompressedTexFuncData):
2879         * html/shadow/MediaControlElements.cpp:
2880         (WebCore::MediaControlRewindButtonElement::defaultEventHandler):
2881         * html/shadow/MediaControlsApple.cpp:
2882         * html/shadow/SliderThumbElement.cpp:
2883         (WebCore::SliderThumbElement::setPositionFromPoint):
2884         * inspector/ContentSearchUtils.cpp:
2885         * inspector/DOMEditor.cpp:
2886         * inspector/DOMPatchSupport.cpp:
2887         (WebCore::DOMPatchSupport::diff):
2888         * inspector/InjectedScriptHost.cpp:
2889         * loader/ProgressTracker.cpp:
2890         (WebCore::ProgressTracker::incrementProgress):
2891         * loader/cache/CachedImage.cpp:
2892         * page/DOMWindow.cpp:
2893         (WebCore::DOMWindow::adjustWindowRect):
2894         * page/EventHandler.cpp:
2895         (WebCore::MaximumDurationTracker::~MaximumDurationTracker):
2896         * page/FrameTree.cpp:
2897         * page/FrameView.cpp:
2898         (WebCore::FrameView::adjustedDeferredRepaintDelay):
2899         (WebCore::FrameView::autoSizeIfEnabled):
2900         * page/PrintContext.cpp:
2901         (WebCore::PrintContext::computeAutomaticScaleFactor):
2902         * page/SpatialNavigation.cpp:
2903         (WebCore::entryAndExitPointsForDirection):
2904         * page/animation/CSSPropertyAnimation.cpp:
2905         (WebCore::blendFilterOperations):
2906         (WebCore::PropertyWrapperShadow::blendMismatchedShadowLists):
2907         * platform/graphics/FloatRect.cpp:
2908         (WebCore::FloatRect::FloatRect):
2909         (WebCore::FloatRect::intersect):
2910         (WebCore::FloatRect::uniteEvenIfEmpty):
2911         (WebCore::FloatRect::extend):
2912         (WebCore::FloatRect::fitToPoints):
2913         * platform/graphics/GlyphPageTreeNode.cpp:
2914         (WebCore::GlyphPageTreeNode::initializePage):
2915         (WebCore::GlyphPageTreeNode::getChild):
2916         * platform/graphics/IntRect.cpp:
2917         (WebCore::IntRect::intersect):
2918         (WebCore::IntRect::unite):
2919         (WebCore::IntRect::uniteIfNonZero):
2920         * platform/graphics/LayoutRect.cpp:
2921         (WebCore::LayoutRect::intersect):
2922         (WebCore::LayoutRect::unite):
2923         (WebCore::LayoutRect::uniteIfNonZero):
2924         * platform/graphics/filters/FEMorphology.cpp:
2925         (WebCore::FEMorphology::platformApplyGeneric):
2926         (WebCore::FEMorphology::platformApplySoftware):
2927         * platform/mac/MemoryPressureHandlerMac.mm:
2928         (WebCore::MemoryPressureHandler::respondToMemoryPressure):
2929         * platform/text/TextCodecICU.cpp:
2930         * rendering/LineWidth.cpp:
2931         (WebCore::LineWidth::fitBelowFloats):
2932         (WebCore::LineWidth::computeAvailableWidthFromLeftAndRight):
2933         * rendering/RenderBlock.h:
2934         (WebCore::RenderBlock::availableLogicalWidthForLine):
2935         (WebCore::RenderBlock::availableLogicalWidthForContent):
2936         * rendering/RenderFieldset.cpp:
2937         (WebCore::RenderFieldset::computePreferredLogicalWidths):
2938         (WebCore::RenderFieldset::layoutSpecialExcludedChild):
2939         (WebCore::RenderFieldset::paintBoxDecorations):
2940         * rendering/RenderFlowThread.cpp:
2941         (WebCore::RenderFlowThread::updateLogicalWidth):
2942         (WebCore::RenderFlowThread::addForcedRegionBreak):
2943         * rendering/RenderFrameBase.cpp:
2944         (WebCore::RenderFrameBase::layoutWithFlattening):
2945         * rendering/RenderFrameSet.cpp:
2946         (WebCore::RenderFrameSet::layOutAxis):
2947         * rendering/RenderSlider.cpp:
2948         (WebCore::RenderSlider::computePreferredLogicalWidths):
2949         * rendering/RenderTableCell.h:
2950         * rendering/RenderTreeAsText.cpp:
2951         (WebCore::writeLayers):
2952         * rendering/RootInlineBox.h:
2953         (WebCore::RootInlineBox::selectionHeight):
2954         (WebCore::RootInlineBox::selectionHeightAdjustedForPrecedingBlock):
2955         * rendering/mathml/RenderMathMLRow.cpp:
2956         (WebCore::RenderMathMLRow::layout):
2957         * rendering/mathml/RenderMathMLScripts.cpp:
2958         (WebCore::RenderMathMLScripts::layout):
2959         * rendering/style/RenderStyle.h:
2960         * rendering/style/StyleGeneratedImage.cpp:
2961         (WebCore::StyleGeneratedImage::imageSize):
2962         * style/StyleFontSizeFunctions.cpp:
2963         (WebCore::Style::fontSizeForKeyword):
2964         * svg/SVGSVGElement.cpp:
2965         (WebCore::SVGSVGElement::setCurrentTime):
2966
2967 2013-10-24  Andreas Kling  <akling@apple.com>
2968
2969         Uncomplicate some of SVGTextRunRenderingContext.
2970         <https://webkit.org/b/123294>
2971
2972         This class was weird about a few things, so I've taken these steps
2973         to clear things up:
2974
2975         - FINAL and OVERRIDE all the things.
2976         - Constructor now takes a RenderObject&.
2977         - renderer() now returns a RenderObject&.
2978         - drawSVGGlyphs() no longer takes a TextRun.
2979         - glyphDataForCharacter() no longer takes a TextRun.
2980
2981         To expand on the last two, there was also some awkward hoop-jumping
2982         where we'd go through the TextRun passed by argument to find its
2983         rendering context, which was really just |this| all along.
2984
2985         Reviewed by Antti Koivisto.
2986
2987 2013-10-24  Roger Fong  <roger_fong@apple.com>
2988
2989         Add texture level dependent size checks to textureImage2D calls.
2990         https://bugs.webkit.org/show_bug.cgi?id=123290
2991         <rdar://problem/15201382>
2992
2993         Reviewed by Dean Jackson
2994
2995         Test covered by WebGL Conformance suite 1.0.2 test, textures/texture-size-limit.html.
2996
2997         There are different size limits when calling textureImage2D on different texture levels.
2998         We should be throwing an error if our texture size exceeds these limits.
2999
3000         * html/canvas/WebGLRenderingContext.cpp:
3001         (WebCore::WebGLRenderingContext::validateTexFuncParameters):
3002
3003 2013-10-24  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
3004
3005         [MediaStream API] allow a stream source to be shared
3006         https://bugs.webkit.org/show_bug.cgi?id=121954
3007
3008         Reviewed by Eric Carlson.
3009
3010         Now, the MediaStreamSource don't know about the MediaStream that owns it,
3011         since there can be more than one MediaStream that has it as source for some track.
3012         MediaStreamTrack classes now have observers registered, in case there are more than
3013         one MediaStream owning that track
3014
3015         No new tests, no change in functionality.
3016
3017         * Modules/mediastream/MediaStream.cpp:
3018         (WebCore::MediaStream::MediaStream): Adding the MediaStream as an observer for each track it owns.
3019
3020         (WebCore::MediaStream::addTrack): Now adding the MediaStream as an observer the new added track
3021         and adding the source to the MediaStreamDescriptor.
3022
3023         (WebCore::MediaStream::removeTrack): Instead of removing the source right away, we first check if
3024         there isn't any other track using that source, if not we remove the source.
3025
3026         (WebCore::MediaStream::haveTrackWithSource):
3027         (WebCore::MediaStream::addRemoteSource): MediaStreamSource has no information about the MediaStream
3028         that uses it, so now we don't set the stream in the source anymore.
3029
3030         (WebCore::MediaStream::removeRemoteSource): There can be more than on track using the source. So we
3031         get each track that is using the source and then remove it and fire the ended event.
3032
3033         * Modules/mediastream/MediaStream.h:
3034         * Modules/mediastream/MediaStreamTrack.cpp:
3035         (WebCore::MediaStreamTrack::addObserver):
3036         (WebCore::MediaStreamTrack::removeObserver):
3037         (WebCore::MediaStreamTrack::trackDidEnd): Does not get the client from the MediaStreamDescriptor, it now
3038         notify each of its observers that the track ended.
3039
3040         * Modules/mediastream/MediaStreamTrack.h: Adding Observer class.
3041
3042         * platform/mediastream/MediaStreamDescriptor.cpp: Destructor now does nothing. Previously it was setting
3043         each MediaStreamSource's descriptor to null.
3044
3045         (WebCore::MediaStreamDescriptor::removeSource): Not setting the stream in source anymore.
3046
3047         (WebCore::MediaStreamDescriptor::MediaStreamDescriptor): Ditto.
3048
3049         (WebCore::MediaStreamDescriptor::setEnded): Not setting the state of the source to Ended
3050
3051         * platform/mediastream/MediaStreamDescriptor.h:
3052         (WebCore::MediaStreamDescriptor::~MediaStreamDescriptor):
3053         * platform/mediastream/MediaStreamSource.cpp: Removing references to MediaStream object
3054         (WebCore::MediaStreamSource::MediaStreamSource):
3055         (WebCore::MediaStreamSource::reset):
3056         * platform/mediastream/MediaStreamSource.h:
3057
3058 2013-10-24  Daniel Bates  <dabates@apple.com>
3059
3060         Crash in WebCore::NavigationScheduler::startTimer()
3061         https://bugs.webkit.org/show_bug.cgi?id=123288
3062         <rdar://problem/14055644>
3063
3064         Reviewed by Alexey Proskuryakov.
3065
3066         Currently NavigationScheduler::startTimer() synchronously notifies the client
3067         before the Web Inspector of a scheduled redirect. If a client cancels this
3068         redirect then NavigationScheduler::m_redirect will become null and we'll
3069         subsequently crash when informing the Web Inspector of this formerly scheduled
3070         redirect. Instead, NavigationScheduler::startTimer() should notify the Web
3071         Inspector before it notifies the client of a scheduled redirect.
3072
3073         As a side benefit of this change, the Web Inspector is notified of a scheduled
3074         redirect before being notified of it being canceled when a client chooses to cancel
3075         a scheduled redirect.
3076
3077         * loader/NavigationScheduler.cpp:
3078         (WebCore::NavigationScheduler::startTimer):
3079
3080 2013-10-24  Antti Koivisto  <antti@apple.com>
3081
3082         Try to fix build without CSS_SHAPES.
3083
3084         * rendering/SimpleLineLayout.cpp:
3085         (WebCore::SimpleLineLayout::canUseFor):
3086
3087 2013-10-24  Antti Koivisto  <antti@apple.com>
3088
3089         Simple line layout
3090         https://bugs.webkit.org/show_bug.cgi?id=122458
3091
3092         Reviewed by Darin Adler.
3093
3094         Line box based inline layout is powerful but also rather slow and memory intensive. Simple line layout
3095         is a compact alternative data structure and fast code path to cover common cases without requiring line
3096         boxes.
3097         
3098         This patch handles a case single left-aligned text renderer inside flow with no floats. Even this very basic
3099         case is sufficiently common to handle up to 25% of all text lines on some popular new sites. The decision
3100         which path to use is made per block flow (paragraph).
3101         
3102         Simple line layout aims to produce pixel-exact rendering result when compared to the line box layout.
3103         
3104         The goal is to handle everything that requires line level access in cases that allow use of simple lines.
3105         This is not quite the case yet. For example selections and outline painting are not supported. In these
3106         cases we seamlessly switch to the line boxes.
3107
3108         The simple line data structure currently uses 12 bytes per line. Lineboxes take ~160 bytes minimum per line.
3109         Laying out the lines is also several times faster as is iterating over them.
3110
3111         * CMakeLists.txt:
3112         * GNUmakefile.list.am:
3113         * WebCore.vcxproj/WebCore.vcxproj:
3114         * WebCore.xcodeproj/project.pbxproj:
3115         * dom/Position.cpp:
3116         (WebCore::Position::upstream):
3117         (WebCore::Position::downstream):
3118         (WebCore::Position::getInlineBoxAndOffset):
3119         
3120             Creating positions within a simple line flow causes switch to line boxes.
3121
3122         * editing/TextIterator.cpp:
3123         (WebCore::TextIterator::handleTextNode):
3124         
3125             TextIterator traverses line boxes if available. In case simple line case we need to replicate the
3126             same results (for compatibility but especially to avoid changing test results). This is done here
3127             by just traversing the string without actually using the layout.
3128
3129         * rendering/RenderBlock.cpp:
3130         (WebCore::RenderBlock::RenderBlock):
3131         (WebCore::RenderBlock::layoutShapeInsideInfo):
3132         * rendering/RenderBlock.h:
3133         * rendering/RenderBlockFlow.cpp:
3134         (WebCore::RenderBlockFlow::layoutInlineChildren):
3135         
3136             Select the layout path to use.
3137
3138         (WebCore::RenderBlockFlow::deleteLines):
3139         (WebCore::RenderBlockFlow::hitTestInlineChildren):
3140         (WebCore::RenderBlockFlow::adjustForBorderFit):
3141         (WebCore::RenderBlockFlow::firstLineBaseline):
3142         (WebCore::RenderBlockFlow::inlineBlockBaseline):
3143         (WebCore::RenderBlockFlow::inlineSelectionGaps):
3144         (WebCore::RenderBlockFlow::clearTruncation):
3145         (WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
3146         (WebCore::RenderBlockFlow::addFocusRingRectsForInlineChildren):
3147         (WebCore::RenderBlockFlow::paintInlineChildren):
3148         (WebCore::RenderBlockFlow::hasLines):
3149         (WebCore::RenderBlockFlow::layoutSimpleLines):
3150         
3151             Do simple layout.
3152
3153         (WebCore::RenderBlockFlow::deleteLineBoxesBeforeSimpleLineLayout):
3154         (WebCore::RenderBlockFlow::ensureLineBoxes):
3155         
3156             This function switches from simple lines to line boxes. The switching can be done outside normal layout.
3157             This is used to cover some cases that are not yet supported by simple lines (like selections).
3158
3159         * rendering/RenderBlockFlow.h:
3160         (WebCore::RenderBlockFlow::simpleLines):
3161         * rendering/RenderBlockLineLayout.cpp:
3162         (WebCore::RenderBlockFlow::layoutLineBoxes):
3163         
3164             Rename the line box layout function.
3165
3166         (WebCore::RenderBlockFlow::addOverflowFromInlineChildren):
3167         * rendering/RenderText.cpp:
3168         (WebCore::RenderText::deleteLineBoxesBeforeSimpleLineLayout):
3169         (WebCore::RenderText::absoluteRects):
3170         (WebCore::RenderText::absoluteRectsForRange):
3171         (WebCore::RenderText::absoluteQuadsClippedToEllipsis):
3172         (WebCore::RenderText::absoluteQuads):
3173         (WebCore::RenderText::absoluteQuadsForRange):
3174         (WebCore::RenderText::positionForPoint):
3175         (WebCore::RenderText::knownToHaveNoOverflowAndNoFallbackFonts):
3176         (WebCore::RenderText::setSelectionState):
3177         (WebCore::RenderText::setTextWithOffset):
3178         (WebCore::RenderText::ensureLineBoxes):
3179         (WebCore::RenderText::simpleLines):
3180         (WebCore::RenderText::linesBoundingBox):
3181         (WebCore::RenderText::linesVisualOverflowBoundingBox):
3182         (WebCore::RenderText::selectionRectForRepaint):
3183         (WebCore::RenderText::caretMinOffset):
3184         (WebCore::RenderText::caretMaxOffset):
3185         (WebCore::RenderText::countRenderedCharacterOffsetsUntil):
3186         (WebCore::RenderText::containsRenderedCharacterOffset):
3187         (WebCore::RenderText::containsCaretOffset):
3188         (WebCore::RenderText::hasRenderedText):
3189         * rendering/RenderText.h:
3190         * rendering/RenderTreeAsText.cpp:
3191         (WebCore::RenderTreeAsText::writeRenderObject):
3192         (WebCore::writeSimpleLine):
3193         (WebCore::write):
3194         * rendering/SimpleLineLayout.cpp: Added.
3195         (WebCore::SimpleLineLayout::canUseFor):
3196         
3197             This check for the cases supported by the simple line layout path.
3198
3199         (WebCore::SimpleLineLayout::isWhitespace):
3200         (WebCore::SimpleLineLayout::skipWhitespaces):
3201         (WebCore::SimpleLineLayout::textWidth):
3202         (WebCore::SimpleLineLayout::createLines):
3203         
3204             The main layout functions that breaks text to lines. It only handles the cases allowed by 
3205             SimpleLineLayout::canUseFor. What it handles it aims to break exactly as line box layout does.
3206
3207         * rendering/SimpleLineLayout.h: Added.
3208         * rendering/SimpleLineLayoutFunctions.cpp: Added.
3209         (WebCore::SimpleLineLayout::paintFlow):
3210         (WebCore::SimpleLineLayout::hitTestFlow):
3211         (WebCore::SimpleLineLayout::collectFlowOverflow):
3212         (WebCore::SimpleLineLayout::computeTextBoundingBox):
3213         * rendering/SimpleLineLayoutFunctions.h: Added.
3214         (WebCore::SimpleLineLayout::computeFlowHeight):
3215         (WebCore::SimpleLineLayout::computeFlowFirstLineBaseline):
3216         (WebCore::SimpleLineLayout::computeFlowLastLineBaseline):
3217         (WebCore::SimpleLineLayout::findTextCaretMinimumOffset):
3218         (WebCore::SimpleLineLayout::findTextCaretMaximumOffset):
3219         (WebCore::SimpleLineLayout::containsTextCaretOffset):
3220         (WebCore::SimpleLineLayout::isTextRendered):
3221         (WebCore::SimpleLineLayout::lineHeightFromFlow):
3222         
3223             Support functions called from RenderBlockFlow and RenderText. They are equivalent to
3224             similar line box functions.
3225
3226         (WebCore::SimpleLineLayout::baselineFromFlow):
3227         * rendering/SimpleLineLayoutResolver.h: Added.
3228         (WebCore::SimpleLineLayout::Resolver::Line::Line):
3229         (WebCore::SimpleLineLayout::Resolver::Line::rect):
3230         (WebCore::SimpleLineLayout::Resolver::Line::baseline):
3231         (WebCore::SimpleLineLayout::Resolver::Line::text):
3232         (WebCore::SimpleLineLayout::Resolver::Iterator::Iterator):
3233         (WebCore::SimpleLineLayout::Resolver::Iterator::operator++):
3234         (WebCore::SimpleLineLayout::Resolver::Iterator::operator--):
3235         (WebCore::SimpleLineLayout::Resolver::Iterator::operator==):
3236         (WebCore::SimpleLineLayout::Resolver::Iterator::operator!=):
3237         (WebCore::SimpleLineLayout::Resolver::Iterator::operator*):
3238         
3239             Lazy iterator for deriving line metrics. This keeps the line data structure small as
3240             we don't need to keep easily derived values around.
3241
3242         (WebCore::SimpleLineLayout::Resolver::Resolver):
3243         (WebCore::SimpleLineLayout::Resolver::size):
3244         (WebCore::SimpleLineLayout::Resolver::begin):
3245         (WebCore::SimpleLineLayout::Resolver::end):
3246         (WebCore::SimpleLineLayout::Resolver::last):
3247         (WebCore::SimpleLineLayout::Resolver::operator[]):
3248
3249 2013-10-24  Myles C. Maxfield  <mmaxfield@apple.com>
3250
3251         Gaps between underlines in adjacent underlined text runs
3252         https://bugs.webkit.org/show_bug.cgi?id=123236
3253
3254         Reviewed by Simon Fraser and Darin Adler.
3255
3256         There are two pieces to this change. The first piece is in
3257         InlineTextBox::paint(). We were putting floating-point
3258         extents into a LayoutSize, which simply uses ints (for now),
3259         and then immediately converting this back to a FloatSize.
3260         Instead, we should be using floats throughout all of
3261         this code.
3262
3263         In addition, inside GraphicsContext::drawLineForText(), we are
3264         rounding the underline to pixel boundaries so that it appears
3265         very crisp on the screen. However, we should round once after
3266         performing computations, rather than rounding twice and then
3267         performing computations on the rounded numbers.
3268
3269         Test: fast/css3-text/css3-text-decoration/no-gap-between-two-rounded-textboxes.html
3270
3271         * platform/graphics/cg/GraphicsContextCG.cpp:
3272         (WebCore::GraphicsContext::drawLineForText): Change rounding mode
3273             to perform computations before rounding
3274         * rendering/InlineTextBox.cpp:
3275         (WebCore::InlineTextBox::paint): Don't convert to a LayoutSize
3276             just to convert to a FloatSize
3277
3278 2013-10-24  Andreas Kling  <akling@apple.com>
3279
3280         SVGRenderingContext should wrap a RenderElement.
3281         <https://webkit.org/b/123283>
3282
3283         The SVG rendering context class is never used with text renderers
3284         so we can have it wrap a RenderElement for tighter code.
3285
3286         Also renamed SVGRenderingContext::m_object to m_renderer.
3287
3288         Reviewed by Antti Koivisto.
3289
3290 2013-10-24  Santosh Mahto  <santosh.ma@samsung.com>
3291
3292         [contenteditable] Content after non-editable element disappears when merging lines using backspace
3293         https://bugs.webkit.org/show_bug.cgi?id=122748
3294
3295         Reviewed by Ryosuke Niwa.
3296
3297         In case of paragraph merging after deletion if second paragraph
3298         contains non-editable element, then content after the non-editable
3299         element(including non-editable element) will be removed while the
3300         content before the element will be merged with the first paragraph.
3301         This happens becasue endOfParagraphToMove calculation in merging function
3302         stop at editing boundary so endOfParagraphToMove becomes position just
3303         before non-editable content.
3304         With this patch now endOfParagraphToMove is calculated by skipping
3305         over the non-editable element.
3306
3307         Test: editing/deleting/merge-paragraph-contatining-noneditable.html
3308
3309         * editing/DeleteSelectionCommand.cpp:
3310         (WebCore::DeleteSelectionCommand::mergeParagraphs): use CanSkipOverEditingBoundary
3311         condition while calculating endOfParagraphToMove.
3312
3313 2013-10-24  Antoine Quint  <graouts@apple.com>
3314
3315         Web Inspector: Inspector doesn't show webkitTransitionEnd events in the timeline
3316         https://bugs.webkit.org/show_bug.cgi?id=123263
3317
3318         Reviewed by Timothy Hatcher.
3319
3320         A legacy event type is only set on an event in EventTarget::fireEventListeners(Event*)
3321         which is called after we used to call InspectorInstrumentation::willDispatchEvent(), the method
3322         that would ultimately yield the creation of a TimelineRecord for the event in the Web Inspector
3323         frontend, and as a result we would try to dispatch an event with an unprefixed event type to
3324         the frontend, which wouldn't even happen because most likely it wouldn't have listeners for this
3325         unprefixed type.
3326
3327         We now move the call to InspectorInstrumentation::willDispatchEvent() in
3328         EventTarget::fireEventListeners(Event*, EventTargetData*, EventListenerVector&) such that the
3329         correct event type and list of listeners is used to determine what event to dispatch to the frontend.
3330
3331         * dom/EventDispatcher.cpp:
3332         (WebCore::EventDispatcher::dispatchEvent):
3333         Remove calls to InspectorInstrumentation::willDispatchEvent() and InspectorInstrumentation::didDispatchEvent().
3334
3335         * dom/EventTarget.cpp:
3336         (WebCore::EventTarget::fireEventListeners):
3337         Add call to InspectorInstrumentation::willDispatchEvent() before we go through each listener and
3338         call InspectorInstrumentation::willHandleEvent(). Additionally, we refactor some code since we're
3339         getting references to the ScriptExecutionContext and Document upfront now.
3340
3341 2013-10-24  Andreas Kling  <akling@apple.com>
3342
3343         SVG: RenderElement-ize intersectRepaintRectWithResources().
3344         <https://webkit.org/b/123278>
3345
3346         SVGRenderSupport::intersectRepaintRectWithResources() is only ever
3347         called with non-text renderers so make it take RenderElement&.
3348
3349         Had to tweak RenderSVGResource::resourceBoundingBox() to take the
3350         renderer by reference.
3351
3352         Reviewed by Antti Koivisto.
3353
3354 2013-10-24  Joseph Pecoraro  <pecoraro@apple.com>
3355
3356         Web Inspector: Breakpoints in sourceURL named scripts do not work
3357         https://bugs.webkit.org/show_bug.cgi?id=123231
3358
3359         Reviewed by Timothy Hatcher.
3360
3361         Remember a Script's sourceURL and sourceMappingURL. When setting a
3362         breakpoint by URL, check it against the sourceURL or original URL.
3363         If a script had a sourceURL that would have been the only URL sent
3364         to the frontend, so that receives priority.
3365
3366         Test: inspector-protocol/debugger/setBreakpointByUrl-sourceURL.html
3367
3368         * inspector/InspectorDebuggerAgent.cpp:
3369         (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
3370         (WebCore::InspectorDebuggerAgent::didParseSource):
3371         * inspector/InspectorDebuggerAgent.h:
3372         * inspector/ScriptDebugListener.h:
3373
3374 2013-10-23  Alexey Proskuryakov  <ap@apple.com>
3375
3376         Add CryptoKey base class and bindings
3377         https://bugs.webkit.org/show_bug.cgi?id=123216
3378
3379         Reviewed by Sam Weinig.
3380
3381         * crypto/CryptoKey.idl: Added.
3382
3383         * CMakeLists.txt:
3384         * DerivedSources.make:
3385         * GNUmakefile.list.am:
3386         Process the IDL.
3387
3388         * WebCore.xcodeproj/project.pbxproj: Added files.
3389
3390         * bindings/js/JSCryptoKeyCustom.cpp: Added.
3391         (WebCore::JSCryptoKey::algorithm): Use a visitor to build algorithm dictionary
3392         for the key.
3393
3394         * crypto/CryptoAlgorithmDescriptionBuilder.cpp: Added.
3395         * crypto/CryptoAlgorithmDescriptionBuilder.h: Added.
3396         An interface for a visitor we'll use to expose CrytoKey.algorithm in bindings,
3397         and possibly also for storage serialization. Not complete yet, we'll need support
3398         for a few more simple types, and less trivially, for nested algorithms.
3399
3400         * bindings/js/JSCryptoAlgorithmBuilder.cpp: Added.
3401         * bindings/js/JSCryptoAlgorithmBuilder.h: Added.
3402         An implementation that builds an algorithm description dictionary for JS bindings.
3403
3404         * crypto/CryptoKey.cpp: Added.
3405         (WebCore::CryptoKey::~CryptoKey):
3406         (WebCore::CryptoKey::buildAlgorithmDescription):
3407         * crypto/CryptoKey.h: Added.
3408         Added an almost empty implementation. Some of the functions that are currently
3409         marked as pure virtual will likely be implemented in this base class.
3410
3411 2013-10-24  Commit Queue  <commit-queue@webkit.org>
3412
3413         Unreviewed, rolling out r157916.
3414         http://trac.webkit.org/changeset/157916
3415         https://bugs.webkit.org/show_bug.cgi?id=123274
3416
3417         Broke Layout/flexbox-lots-of-data.html on perfbot (Requested
3418         by ap on #webkit).
3419
3420         * rendering/RenderFlexibleBox.cpp:
3421         (WebCore::RenderFlexibleBox::OrderHashTraits::emptyValue):
3422         (WebCore::RenderFlexibleBox::OrderHashTraits::constructDeletedValue):
3423         (WebCore::RenderFlexibleBox::OrderHashTraits::isDeletedValue):
3424         (WebCore::RenderFlexibleBox::OrderIterator::setOrderValues):
3425         (WebCore::RenderFlexibleBox::layoutBlock):
3426         (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
3427         * rendering/RenderFlexibleBox.h:
3428
3429 2013-10-24  Zan Dobersek  <zdobersek@igalia.com>
3430
3431         Comment in ScopedEventQueue::dispatchEvent is unnecessarily verbose
3432         https://bugs.webkit.org/show_bug.cgi?id=123252
3433
3434         Reviewed by Darin Adler.
3435
3436         Shorten the comment about the crash avoidance in ScopedEventQueue::dispatchEvent due to
3437         the calling convention in C++ is left unspecified. The problem was already fixed in r157219
3438         and later adjusted in r157401, but the comment could have been shorter and simpler in both cases.
3439
3440         * dom/ScopedEventQueue.cpp:
3441         (WebCore::ScopedEventQueue::dispatchEvent):
3442
3443 2013-10-24  Alex Christensen  <achristensen@webkit.org>
3444
3445         Removed unused ThreadSafeCoordinatedSurface and CertificateInfoCurl files.
3446         https://bugs.webkit.org/show_bug.cgi?id=123246
3447
3448         Reviewed by Noam Rosenthal.
3449
3450         * WebCore.vcxproj/WebCore.vcxproj:
3451         * WebCore.vcxproj/WebCore.vcxproj.filters:
3452         Removed references to ThreadSafeCoordinatedSurface and CertificateInfoCurl.
3453         * platform/graphics/texmap/coordinated/ThreadSafeCoordinatedSurface.cpp: Removed.
3454         * platform/graphics/texmap/coordinated/ThreadSafeCoordinatedSurface.h: Removed.
3455         * platform/network/curl/CertificateInfoCurl.cpp: Removed.
3456
3457 2013-10-24  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>
3458
3459         Removed Qt workaround.
3460         https://bugs.webkit.org/show_bug.cgi?id=123258
3461
3462         Reviewed by Csaba Osztrogon√°c.
3463
3464         No change of functionality, no new tests needed.
3465
3466         !$defines case can be removed, because Qt and Android aren't in WebKit trunk,
3467         all ports (Mac,EFL,GTK,Windows) call this script with --defines option now
3468
3469         * css/make-css-file-arrays.pl:
3470
3471 2013-10-24  Antti Koivisto  <antti@apple.com>
3472
3473         Remove a stray space.
3474         
3475         Not reviewed.
3476
3477         * accessibility/AccessibilityRenderObject.cpp:
3478         (WebCore::AccessibilityRenderObject::addImageMapChildren):
3479
3480 2013-10-24  Antti Koivisto  <antti@apple.com>
3481
3482         Element iterator functions should take reference
3483         https://bugs.webkit.org/show_bug.cgi?id=123267
3484
3485         Reviewed by Andreas Kling.
3486
3487         The argument has to be non-null.
3488
3489 2013-10-24  Ryuan Choi  <ryuan.choi@samsung.com>
3490
3491         [EFL] Build break with latest EFL 1.8 libraries.
3492         https://bugs.webkit.org/show_bug.cgi?id=123245
3493
3494         Reviewed by Gyuyoung Kim.
3495
3496         After fixed build break on EFL 1.8 at r138326, EFL libraries are changed
3497         Eo typedef and splitted header files which contain version macro.
3498
3499         * platform/Widget.h: Changed Eo typedef.
3500         * platform/efl/EflScreenUtilities.h: Ditto.
3501         * platform/graphics/Image.h: Ditto.
3502
3503 2013-10-24  Andreas Kling  <akling@apple.com>
3504
3505         RenderSVGResource: Pass RenderElement to fill/strokePaintingResource.
3506         <https://webkit.org/b/123242>
3507
3508         We never pass text renderers to these functions, so make them take
3509         RenderElement instead.
3510
3511         Reviewed by Anders Carlsson.
3512
3513 2013-10-24  Carlos Garcia Campos  <cgarcia@igalia.com>
3514
3515         [GObject bindings] Make EventTarget interface introspectable
3516         https://bugs.webkit.org/show_bug.cgi?id=77835
3517
3518         Reviewed by Gustavo Noronha Silva.
3519
3520         Add webkit_dom_event_target_add_event_listener_with_closure and
3521         webkit_dom_event_target_remove_event_listener_with_closure to be
3522         used by GObject instrospection bindings. Instead of receving a
3523         GCallback, which makes the function not introspectable, they
3524         receive a GClosure.
3525
3526         * bindings/gobject/GObjectEventListener.cpp:
3527         (WebCore::GObjectEventListener::GObjectEventListener):
3528         (WebCore::GObjectEventListener::~GObjectEventListener):
3529         (WebCore::GObjectEventListener::gobjectDestroyed):
3530         (WebCore::GObjectEventListener::handleEvent):
3531         (WebCore::GObjectEventListener::operator==):
3532         * bindings/gobject/GObjectEventListener.h:
3533         (WebCore::GObjectEventListener::addEventListener):
3534         (WebCore::GObjectEventListener::removeEventListener):
3535         * bindings/gobject/WebKitDOMEventTarget.cpp:
3536         (webkit_dom_event_target_dispatch_event):
3537         (webkit_dom_event_target_add_event_listener):
3538         (webkit_dom_event_target_remove_event_listener):
3539         (webkit_dom_event_target_add_event_listener_with_closure):
3540         (webkit_dom_event_target_remove_event_listener_with_closure):
3541         * bindings/gobject/WebKitDOMEventTarget.h:
3542         * bindings/scripts/CodeGeneratorGObject.pm:
3543         (GenerateEventTargetIface):
3544         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
3545         (webkit_dom_test_event_target_dispatch_event):
3546         (webkit_dom_test_event_target_add_event_listener):
3547         (webkit_dom_test_event_target_remove_event_listener):
3548         * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
3549         (webkit_dom_test_node_dispatch_event):
3550         (webkit_dom_test_node_add_event_listener):
3551         (webkit_dom_test_node_remove_event_listener):
3552
3553 2013-10-14  Sergio Villar Senin  <svillar@igalia.com>
3554
3555         Use a Vector instead of HashSet to computed the orderValues in RenderFlexibleBox
3556         https://bugs.webkit.org/show_bug.cgi?id=118620
3557
3558         Reviewed by Antti Koivisto.
3559
3560         Turns out that order is extremelly uncommon so using a Vector is
3561         much less expensive. This also special-cases the much common case
3562         of only having order of value 0 by using Vectors with just one
3563         preallocated member.
3564
3565         Also added the performance test that shows a ~1% win when using a
3566         vector instead of the HashSet.
3567
3568         * rendering/RenderFlexibleBox.cpp:
3569         (WebCore::RenderFlexibleBox::OrderIterator::setOrderValues):
3570         (WebCore::RenderFlexibleBox::layoutBlock):
3571         (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
3572         * rendering/RenderFlexibleBox.h:
3573
3574 2013-10-23  ChangSeok Oh  <changseok.oh@collabora.com>
3575
3576         Unreviewed build fix since r157823.
3577         FilterOperation::getOperationType() is renamed FilterOperation::type().
3578
3579         * platform/graphics/texmap/TextureMapperGL.cpp:
3580         (WebCore::prepareFilterProgram):
3581         (WebCore::TextureMapperGL::drawTexture):
3582         (WebCore::TextureMapperGL::drawUsingCustomFilter):
3583         (WebCore::TextureMapperGL::drawFiltered):
3584         (WebCore::BitmapTextureGL::applyFilters):
3585         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
3586         (WebCore::CoordinatedGraphicsScene::injectCachedCustomFilterPrograms):
3587
3588 2013-10-23  Ryuan Choi  <ryuan.choi@samsung.com>
3589
3590         Unreviewed build fix on CMake based ports when CMAKE_BUILD_TYPE is not given.
3591
3592         When CMAKE_BUILD_TYPE is empty, FIND command will be failed.
3593
3594         * CMakeLists.txt:
3595
3596 2013-10-23  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
3597
3598         Integrate css3-images image-orientation with existing EXIF support
3599         https://bugs.webkit.org/show_bug.cgi?id=91566
3600
3601         Reviewed by Beth Dakin.
3602
3603         Original patch by David Barr(davidbarr@chromium.org).
3604
3605         This patch passes an information of image orientation into existing EXIF support functions
3606         (draw() functions of image classes mainly). We need to let the functions to know the information
3607         in order to meet the image-orientation requirement.
3608
3609         Spec: http://dev.w3.org/csswg/css-images-3/#the-image-orientation
3610         The css3-images module specification is at last call.
3611
3612         Test: fast/css/image-orientation/image-orientation.html
3613         Image orientation test is to check if incorrect rotation value can be fixed with correct orientation.
3614
3615         * loader/cache/CachedImage.cpp:
3616         (WebCore::CachedImage::imageSizeForRenderer):
3617         * page/DragController.cpp:
3618         (WebCore::DragController::doImageDrag):
3619         * page/Frame.cpp:
3620         (WebCore::Frame::nodeImage):
3621         * platform/graphics/BitmapImage.cpp:
3622         (WebCore::BitmapImage::updateSize):
3623         (WebCore::BitmapImage::sizeRespectingOrientation):
3624         (WebCore::BitmapImage::drawPattern):
3625         * platform/graphics/BitmapImage.h:
3626         * platform/graphics/CrossfadeGeneratedImage.cpp:
3627         (WebCore::CrossfadeGeneratedImage::draw):
3628         * platform/graphics/CrossfadeGeneratedImage.h:
3629         * platform/graphics/GeneratedImage.h:
3630         * platform/graphics/GradientImage.cpp:
3631         (WebCore::GradientImage::draw):
3632         * platform/graphics/GradientImage.h:
3633         * platform/graphics/Image.cpp:
3634         (WebCore::Image::draw):
3635         (WebCore::Image::drawTiled):
3636         * platform/graphics/Image.h:
3637         * platform/graphics/blackberry/ImageBlackBerry.cpp:
3638         * platform/graphics/cairo/BitmapImageCairo.cpp:
3639         (WebCore::BitmapImage::draw):
3640         * platform/graphics/cg/BitmapImageCG.cpp:
3641         * platform/graphics/cg/PDFDocumentImage.cpp:
3642         (WebCore::PDFDocumentImage::draw):
3643         * platform/graphics/cg/PDFDocumentImage.h:
3644         * platform/graphics/win/ImageCGWin.cpp:
3645         (WebCore::BitmapImage::getHBITMAPOfSize):
3646         (WebCore::BitmapImage::drawFrameMatchingSourceSize):
3647         * platform/graphics/wince/ImageBufferWinCE.cpp:
3648         (WebCore::BufferedImage::draw):
3649         * platform/graphics/wince/ImageWinCE.cpp:
3650         (WebCore::BitmapImage::draw):
3651         * platform/mac/DragImageMac.mm:
3652         (WebCore::createDragImageFromImage):
3653         * rendering/RenderEmbeddedObject.cpp:
3654         (WebCore::RenderEmbeddedObject::paintSnapshotImage):
3655         * rendering/RenderImage.cpp:
3656         (WebCore::RenderImage::styleDidChange):
3657         * rendering/RenderSnapshottedPlugIn.cpp:
3658         (WebCore::RenderSnapshottedPlugIn::paintSnapshot):
3659         * rendering/style/RenderStyle.cpp:
3660         (WebCore::RenderStyle::changeRequiresLayout):
3661         * svg/graphics/SVGImage.cpp:
3662         (WebCore::SVGImage::drawForContainer):
3663         (WebCore::SVGImage::nativeImageForCurrentFrame):
3664         (WebCore::SVGImage::draw):
3665         * svg/graphics/SVGImage.h:
3666         * svg/graphics/SVGImageForContainer.cpp:
3667         (WebCore::SVGImageForContainer::draw):
3668         * svg/graphics/SVGImageForContainer.h:
3669
3670 2013-10-23  Andreas Kling  <akling@apple.com>
3671
3672         Tighten typing in SVGInlineTextBox a bit.
3673         <https://webkit.org/b/123238>
3674
3675         Use RenderBoxModelObject& instead of generic RenderObject* in some
3676         places where it happens as a natural consequence of keeping the
3677         original return type from InlineBox::parent()->renderer().
3678
3679         Reviewed by Anders Carlsson.
3680
3681 2013-10-23  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
3682
3683         Introduce RENDER_OBJECT_TYPE_CASTS to replace manual toFoo() in child render object
3684         https://bugs.webkit.org/show_bug.cgi?id=123150
3685
3686         Reviewed by Andreas Kling.
3687
3688         As a step to let toFoo use TYPE_CASTS_BASE, toRenderFoo() can use it for child render object.
3689         So, this patch introduces RENDER_OBJECT_TYPE_CASTS based on the TYPE_CASTS_BASE. This will
3690         generate plenty more helper functions for render object type cast.
3691
3692         Some unnecessary type casts are fixed by this change.
3693
3694         No new tests, no behavior changes.
3695
3696         * rendering/RenderBlock.h:
3697         * rendering/RenderBlockFlow.h:
3698         * rendering/RenderBox.h:
3699         * rendering/RenderBoxModelObject.h:
3700         * rendering/RenderButton.h:
3701         * rendering/RenderCounter.h:
3702         * rendering/RenderElement.h:
3703         (WebCore::RenderElement::generatingElement):
3704         * rendering/RenderEmbeddedObject.h:
3705         * rendering/RenderFieldset.h:
3706         * rendering/RenderFileUploadControl.h:
3707         * rendering/RenderFlexibleBox.h:
3708         * rendering/RenderFlowThread.h:
3709         * rendering/RenderFrame.h:
3710         * rendering/RenderFrameSet.h:
3711         * rendering/RenderFullScreen.h:
3712         * rendering/RenderHTMLCanvas.h:
3713         * rendering/RenderIFrame.h:
3714         * rendering/RenderImage.h:
3715         * rendering/RenderInline.h:
3716         * rendering/RenderLayerModelObject.h:
3717         * rendering/RenderLineBreak.h:
3718         * rendering/RenderListBox.h:
3719         * rendering/RenderListItem.h:
3720         * rendering/RenderMedia.h:
3721         * rendering/RenderMenuList.h:
3722         * rendering/RenderMeter.h:
3723         * rendering/RenderMultiColumnBlock.h:
3724         * rendering/RenderMultiColumnSet.h:
3725         * rendering/RenderNamedFlowFragment.h:
3726         * rendering/RenderNamedFlowThread.h:
3727         * rendering/RenderObject.h:
3728         * rendering/RenderProgress.h:
3729         * rendering/RenderQuote.h:
3730         * rendering/RenderRegion.h:
3731         * rendering/RenderReplaced.h:
3732         * rendering/RenderRubyRun.h:
3733         * rendering/RenderScrollbarPart.h:
3734         * rendering/RenderSearchField.h:
3735         * rendering/RenderSlider.h:
3736         * rendering/RenderSnapshottedPlugIn.h:
3737         * rendering/RenderTable.h:
3738         * rendering/RenderTableCaption.h:
3739         * rendering/RenderTableCell.h:
3740         * rendering/RenderTableCol.h:
3741         * rendering/RenderTableRow.h:
3742         * rendering/RenderTableSection.h:
3743         * rendering/RenderText.h:
3744         * rendering/RenderTextControl.h:
3745         * rendering/RenderTextControlMultiLine.h:
3746         * rendering/RenderTextControlSingleLine.h:
3747         * rendering/RenderWidget.h:
3748         * rendering/mathml/RenderMathMLBlock.h:
3749         * rendering/svg/RenderSVGContainer.h:
3750         * rendering/svg/RenderSVGGradientStop.h:
3751         * rendering/svg/RenderSVGImage.h:
3752         * rendering/svg/RenderSVGInlineText.h:
3753         * rendering/svg/RenderSVGPath.h:
3754         * rendering/svg/RenderSVGResourceFilter.h:
3755         * rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
3756         (WebCore::RenderSVGResourceFilterPrimitive::styleDidChange):
3757         * rendering/svg/RenderSVGRoot.h:
3758         * rendering/svg/RenderSVGShape.h:
3759         * rendering/svg/RenderSVGText.h:
3760         * rendering/svg/RenderSVGTextPath.h:
3761         * rendering/svg/RenderSVGViewportContainer.h:
3762         * rendering/svg/SVGInlineFlowBox.cpp:
3763         (WebCore::SVGInlineFlowBox::paint):
3764
3765 2013-10-23  Myles C. Maxfield  <mmaxfield@apple.com>
3766
3767         Include misspelling dot gap width when centering misspelling dots
3768         https://bugs.webkit.org/show_bug.cgi?id=122365
3769
3770         Reviewed by Simon Fraser.
3771
3772         When calculating where to place the misspelling dots, we find the
3773         maximum number of full dots that can fit under the misspelled word,
3774         and then center a run of that many dots. However, when we're
3775         centering the run, we are only considering the size of the extra
3776         fractional dot that we cut off. However, the dot image has a "gap"
3777         of transparent pixels (which visually provide tracking for the dots)
3778         which visually appears to be empty space. We should take this gap
3779         space into consideration when centering the run of dots. We also
3780         should make sure that our dots start on integral pixel boundaries
3781         because otherwise we can't set the phase of the dot run properly.
3782
3783         Test: editing/spelling/centering-misspelling-dots.html
3784
3785         * platform/graphics/mac/GraphicsContextMac.mm:
3786         (WebCore::GraphicsContext::drawLineForDocumentMarker):
3787
3788 2013-10-23  Andreas Kling  <akling@apple.com>
3789
3790         SVGFilterBuilder should not be ref-counted.
3791         <https://webkit.org/b/123222>
3792
3793         These objects are singly-owned and do not need ref counting.
3794
3795         Reviewed by Anders Carlsson.
3796
3797 2013-10-23  Brady Eidson  <beidson@apple.com>
3798
3799         Remove unused IDBBackingStoreLevelDB default constructor.
3800
3801         Rubberstamped by Anders Carlsson.
3802
3803         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
3804         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
3805
3806 2013-10-23  Alex Christensen  <achristensen@webkit.org>
3807
3808         Added Texture Mapper and Coordinated Graphics to Windows build for WinCairo.
3809         https://bugs.webkit.org/show_bug.cgi?id=123215
3810
3811         Reviewed by Brent Fulgham.
3812
3813         * WebCore.vcxproj/WebCore.vcxproj:
3814         * WebCore.vcxproj/WebCore.vcxproj.filters:
3815         Added source files for Texture Mapper to Windows build.
3816         * WebCore.vcxproj/WebCoreCairo.props:
3817         Added Texture Mapper include directories for WinCairo.
3818
3819 2013-10-23  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
3820
3821         Adding mock class to test RTCDataChannelHandler
3822         https://bugs.webkit.org/show_bug.cgi?id=123205
3823
3824         Reviewed by Eric Carlson.
3825
3826         Now RTCPeerConnectionHandler-datachannel LayouTest can run properly.
3827         Also updated the expected file, removing the reliable property check (which was removed in the spec)
3828
3829         Existing tests updated.
3830
3831         * CMakeLists.txt:
3832         * platform/mediastream/RTCDataChannelHandlerClient.h:
3833         * platform/mock/RTCDataChannelHandlerMock.cpp: Added.
3834         * platform/mock/RTCDataChannelHandlerMock.h: Added.
3835         * platform/mock/RTCNotifiersMock.cpp:
3836         (WebCore::RemoteDataChannelNotifier::RemoteDataChannelNotifier):
3837         (WebCore::RemoteDataChannelNotifier::fire):
3838         (WebCore::DataChannelStateNotifier::DataChannelStateNotifier):
3839         (WebCore::DataChannelStateNotifier::fire):
3840         * platform/mock/RTCNotifiersMock.h:
3841         * platform/mock/RTCPeerConnectionHandlerMock.cpp:
3842         (WebCore::RTCPeerConnectionHandlerMock::createDataChannel):
3843
3844 2013-10-23  Andreas Kling  <akling@apple.com>
3845
3846         Clock should not be ref-counted.
3847         <https://webkit.org/b/123217>
3848
3849         The Clock object is only ever owned by the MediaController,
3850         so remove the ref counting and store it in a std::unique_ptr.
3851
3852         Also slapped the Clock subclasses with FINAL and OVERRIDE.
3853
3854         Reviewed by Anders Carlsson.
3855
3856 2013-10-23  Mark Lam  <mark.lam@apple.com>
3857
3858         Fix assertion in DatabaseManager::detailsForNameAndOrigin() to be iOS friendly.
3859         https://bugs.webkit.org/show_bug.cgi?id=123218.
3860
3861         Reviewed by Joseph Pecoraro.
3862
3863         No new tests.
3864
3865         * Modules/webdatabase/DatabaseManager.cpp:
3866         (WebCore::DatabaseManager::detailsForNameAndOrigin):
3867
3868 2013-10-23  Alex Christensen  <achristensen@webkit.org>
3869
3870         Separated USE(CA) from USE(ACCELERATED_COMPOSITING) to prepare WinCairo for accelerated compositing.
3871         https://bugs.webkit.org/show_bug.cgi?id=123214
3872
3873         Reviewed by Brent Fulgham.
3874
3875         * platform/graphics/PlatformLayer.h:
3876         Added TextureMapperPlatformLayer PlatformLayer declaration for WinCairo.
3877         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
3878         (WebCore::MediaPlayerPrivateFullscreenWindow::createWindow):
3879         (WebCore::MediaPlayerPrivateFullscreenWindow::wndProc):
3880         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h:
3881         Added USE(CA) where necessary to compile WinCairo with accelerated compositing.
3882
3883 2013-10-23  Myles C. Maxfield  <mmaxfield@apple.com>
3884
3885         Antialias underlines if they're not axis-aligned
3886         https://bugs.webkit.org/show_bug.cgi?id=123004
3887
3888         Reviewed by Simon Fraser.
3889
3890         In order to make underlines crisp, GraphicsContext:drawLineForText
3891         modifies the bounds of the underline rect in order to make the rect
3892         device-pixel-aligned, and then turns off antialiasing when drawing
3893         the line. This makes sense when the underline is axis-aligned, but
3894         doesn't when the rect is rotated or skewed. Therefore, we should
3895         only opt-in to this behavior if the underline we're about to draw
3896         is axis-aligned. This requires figuring out whether or not the
3897         current transformation is axis-aligned every time
3898         GraphicsContext::drawLineForText is called, which will incur a small
3899         performance hit. However, this is justified by underlines looking
3900         much better (antialiased) when the context is rotated or skewed.
3901
3902         Tests: svg/custom/foreign-object-skew.html
3903                svg/zoom/page/zoom-foreignObject.html
3904                svg/zoom/text/zoom-foreignObject.html:
3905
3906         * platform/graphics/cg/GraphicsContextCG.cpp:
3907         (WebCore::GraphicsContext::drawLineForText):
3908
3909 2013-10-23  Mark Lam  <mark.lam@apple.com>
3910
3911         Re-instate ProposedDatabases needed by detailsForNameAndOrigin().
3912         https://bugs.webkit.org/show_bug.cgi?id=123131.
3913
3914         Reviewed by Geoffrey Garen.
3915
3916         Test: storage/websql/open-database-expand-quota.html
3917
3918         If a webpage tries to create a database that exceeds the database size
3919         quota for that security origin, the WebKit1 quota request mechanism
3920         uses detailsForNameAndOrigin() to get the requested size of the database
3921         (that the webpage is attempting to open) in order to determine whether
3922         to increase the quota or not.
3923
3924         Previously, detailsForNameAndOrigin() relies on the ProposedDatabase
3925         mechanism to provide this size information. This change re-instates the
3926         ProposedDatabase mechanism so that WebKit1 client code that relies on
3927         this behavior will continue to work.
3928
3929         * Modules/webdatabase/DatabaseManager.cpp:
3930         (WebCore::DatabaseManager::ProposedDatabase::ProposedDatabase):
3931         (WebCore::DatabaseManager::ProposedDatabase::~ProposedDatabase):
3932         (WebCore::DatabaseManager::DatabaseManager):
3933         (WebCore::DatabaseManager::openDatabaseBackend):
3934         (WebCore::DatabaseManager::fullPathForDatabase):
3935         (WebCore::DatabaseManager::detailsForNameAndOrigin):
3936         * Modules/webdatabase/DatabaseManager.h:
3937         (WebCore::DatabaseManager::ProposedDatabase::origin):
3938         (WebCore::DatabaseManager::ProposedDatabase::details):
3939
3940 2013-10-23  Tim Horton  <timothy_horton@apple.com>
3941
3942         [cg] Fix the capitalization of kCGImageSourceSkipMetaData (-> Metadata)
3943         https://bugs.webkit.org/show_bug.cgi?id=122918
3944
3945         Reviewed by Anders Carlsson.
3946
3947         * platform/graphics/cg/ImageSourceCG.cpp:
3948         (WebCore::imageSourceOptions):
3949         The capitalization of kCGImageSourceSkipMetaData changed to
3950         kCGImageSourceSkipMetadata in Mountain Lion.
3951
3952 2013-10-23  Brady Eidson  <beidson@apple.com>
3953
3954         Make IDBDatabaseBackendLevelDB.cpp be cross platform
3955         https://bugs.webkit.org/show_bug.cgi?id=123027
3956
3957         Attentively reviewed by Dean Jackson.
3958
3959         Move it out of the indexeddb/leveldb directory, and rename it to IDBDatabaseBackendImpl.
3960
3961         Project files:
3962         * CMakeLists.txt:
3963         * GNUmakefile.list.am:
3964         * WebCore.vcxproj/WebCore.vcxproj:
3965         * WebCore.vcxproj/WebCore.vcxproj.filters:
3966         * WebCore.xcodeproj/project.pbxproj:
3967
3968         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp.
3969         * Modules/indexeddb/IDBDatabaseBackendImpl.h: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h.
3970
3971         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
3972         (WebCore::IDBDatabaseBackendInterface::isIDBDatabaseBackendImpl): Add to support a required cast in LevelDB code.
3973
3974         * Modules/indexeddb/IDBFactoryBackendInterface.h:
3975
3976         * Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp:
3977         * Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h:
3978
3979         * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
3980         (WebCore::IDBFactoryBackendLevelDB::deleteDatabase):
3981         (WebCore::IDBFactoryBackendLevelDB::open):
3982         (WebCore::IDBFactoryBackendLevelDB::maybeCreateTransactionBackend):
3983         * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
3984
3985         * Modules/indexeddb/leveldb/IDBLevelDBCoding.cpp:
3986         * Modules/indexeddb/leveldb/IDBLevelDBCoding.h:
3987
3988         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
3989         (WebCore::IDBTransactionBackendLevelDB::create):
3990         (WebCore::IDBTransactionBackendLevelDB::IDBTransactionBackendLevelDB):
3991         (WebCore::IDBTransactionBackendLevelDB::scheduleVersionChangeOperation):
3992         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
3993
3994         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp:
3995         (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
3996         (WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::perform):
3997         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.h:
3998
3999 2013-10-23  Daniel Bates  <dabates@apple.com>
4000
4001         [iOS] Upstream more ARMv7s bits
4002         https://bugs.webkit.org/show_bug.cgi?id=123052
4003
4004         Reviewed by Joseph Pecoraro.
4005
4006         Define exported symbol file for armv7s and arm64.
4007
4008         * Configurations/WebCore.xcconfig:
4009
4010 2013-10-23  Krzysztof Wolanski  <k.wolanski@samsung.com>
4011
4012         [GTK] accessibility/self-referencing-aria-labelledby.html is failing
4013         https://bugs.webkit.org/show_bug.cgi?id=121594
4014
4015         Reviewed by Mario Sanchez Prada.
4016
4017         According to http://www.w3.org/TR/REC-html40/struct/objects.html#edef-IMG
4018         description of image element should be determined by alt attribute, then
4019         if it is empty by title attributte.
4020
4021         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
4022         (webkitAccessibleGetDescription):
4023
4024 2013-10-15  Andreas Kling  <akling@apple.com>
4025
4026         Tighten animation-driven restyle to operate on Element only.
4027         <https://webkit.org/b/122820>
4028
4029         Text nodes are never directly animated, so we can tighten this code
4030         to work on Element only. This happens naturally since the code was
4031         already working with RenderElement everywhere.
4032
4033         Reviewed by Antti Koivisto.
4034
4035 2013-10-22  Andreas Kling  <akling@apple.com>
4036
4037         Even more PassRef<RenderStyle>!
4038         <https://webkit.org/b/123147>
4039
4040         Convert more of the WebCore code to use PassRef for RenderStyle
4041         in places where they are known to be non-null.
4042
4043         Re-landing this without region styling since that caused some
4044         assertions last time.
4045
4046         Reviewed by Antti Koivisto.
4047
4048 2013-10-22  Zoltan Horvath  <zoltan@webkit.org>
4049
4050         Refactor LineBreaker::nextSegmentBreak, add BreakingContext that holds all its state
4051         https://bugs.webkit.org/show_bug.cgi?id=123038
4052
4053         Reviewed by David Hyatt.
4054
4055         I followed Levi's logic on Blink's nextSegmentBreak refactoring (https://chromiumcodereview.appspot.com/25054004). 
4056         I mostly did the same changes, but the code is too diverged at this point to just apply that patch on our trunk. The patch
4057         introduces BreakingContext as a separate class. I added new methods for each condition, which were originally located in
4058         nextSegmentBreak. I also removed the goto-s from the code. All the new methods are inline in order to avoid introducing any
4059         performance regression. The change makes the code so much cleaner and understandable.
4060
4061         This change would be the first step of the nextSe