Gardening: fixed broken build.
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-10-26  Mark Lam  <mark.lam@apple.com>
2
3         Gardening: fixed broken build.
4         https://bugs.webkit.org/show_bug.cgi?id=123354.
5
6         * css/CSSFontSelector.h:
7
8 2013-10-26  Antti Koivisto  <antti@apple.com>
9
10         fast/frames/seamless/seamless-nested-crash.html asserts on wk2 only
11         https://bugs.webkit.org/show_bug.cgi?id=123354
12
13         Reviewed by Andreas Kling.
14
15         * rendering/SimpleLineLayout.cpp:
16         (WebCore::SimpleLineLayout::canUseFor):
17         
18             Don't enable simple line layout if the primary font is loading. The code expects
19             to use the primary font metrics for all lines but those won't match the fallbacks
20             when font is not loaded.
21
22 2013-10-26  Carlos Garcia Campos  <cgarcia@igalia.com>
23
24         [GTK] Deprecate public dispatch_event method in objects implementing EventTarget interface
25         https://bugs.webkit.org/show_bug.cgi?id=123261
26
27         Reviewed by Gustavo Noronha Silva.
28
29         The interface function should be used instead.
30
31         * bindings/scripts/CodeGeneratorGObject.pm:
32         (GetFunctionDeprecationInformation): Helper function to return the
33         version when the function was deprecated and the function
34         replacing the deprecated one.
35         (GenerateFunction): Check if the function is deprecated to mark it
36         as such in the header and API docs.
37         * bindings/scripts/gobject-generate-headers.pl: Replace the unused
38         WEBKIT_OBSOLETE_API macro with new macros to mark function as
39         deprecated, using the glib macros so that we don't need checks for
40         the platform.
41         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
42         * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
43         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
44         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
45         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
46         * bindings/scripts/test/GObject/WebKitDOMTestException.h:
47         * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
48         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
49         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
50         * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.h:
51         * bindings/scripts/test/GObject/WebKitDOMattribute.h:
52
53 2013-10-25  Mark Lam  <mark.lam@apple.com>
54
55         DatabaseManager's ProposedDatabases need to be thread-safe.
56         https://bugs.webkit.org/show_bug.cgi?id=123313.
57
58         Reviewed by Geoffrey Garen.
59
60         No new tests.
61
62         * Modules/webdatabase/DatabaseManager.cpp:
63         (WebCore::DatabaseManager::DatabaseManager):
64         (WebCore::DatabaseManager::existingDatabaseContextFor):
65         (WebCore::DatabaseManager::registerDatabaseContext):
66         (WebCore::DatabaseManager::unregisterDatabaseContext):
67         (WebCore::DatabaseManager::didConstructDatabaseContext):
68         (WebCore::DatabaseManager::didDestructDatabaseContext):
69         (WebCore::DatabaseManager::openDatabaseBackend):
70         (WebCore::DatabaseManager::addProposedDatabase):
71         (WebCore::DatabaseManager::removeProposedDatabase):
72         (WebCore::DatabaseManager::fullPathForDatabase):
73         (WebCore::DatabaseManager::detailsForNameAndOrigin):
74         * Modules/webdatabase/DatabaseManager.h:
75
76 2013-10-25  Joseph Pecoraro  <pecoraro@apple.com>
77
78         Upstream ENABLE(REMOTE_INSPECTOR) and enable on iOS and Mac
79         https://bugs.webkit.org/show_bug.cgi?id=123111
80
81         Reviewed by Timothy Hatcher.
82
83         * Configurations/FeatureDefines.xcconfig:
84         * WebCore.exp.in:
85
86 2013-10-25  Hans Muller  <hmuller@adobe.com>
87
88         [CSS Shapes] CORS-enabled fetch for shape image values
89         https://bugs.webkit.org/show_bug.cgi?id=123114
90
91         Reviewed by Andreas Kling.
92
93         Access to shape images is now controlled by CORS CSS shape per
94         http://dev.w3.org/csswg/css-shapes/#shape-outside-property.
95         Previously shape images had to be same-origin.
96
97         Shape image URL access is defined by the same logic that defines
98         canvas tainting: same-origin and data URLs are allowed and images
99         with a "Access-Control-Allow-Origin:" header that's either "*" or
100         that matches the document's origin.
101
102         A PotentiallyCrossOriginEnabled RequestOriginPolicy was added to
103         ResourceLoaderOptions, to indicate that a "potentially CORS-enabled fetch"
104         was to be undertaken. The CSSImageValue::cachedImage() method handles this
105         option by effectively setting the "Origin:" request header (see
106         updateRequestForAccessControl() in CrossOriginAccessControl.cpp).
107         StyleResolver::loadPendingShapeImage() uses the new ResourceLoaderOption.
108
109         The static ShapeInsideInfo and ShapeOutsideInfo isEnabledFor() method
110         now performs the CORS check for image valued shapes. The private
111         isOriginClean() method from CanvasRenderingContext2D has been moved to
112         the CachedImage class so that it can be shared by the Canvas and Shape
113         implementations. It checks the response headers per the CORS spec.
114
115         Test: http/tests/security/shape-image-cors.html
116
117         * css/CSSImageValue.cpp:
118         (WebCore::CSSImageValue::cachedImage): Handle the new ResourceLoaderOption.
119         * css/StyleResolver.cpp:
120         (WebCore::StyleResolver::loadPendingShapeImage): Set the new ResourceLoaderOption.
121         * html/canvas/CanvasRenderingContext2D.cpp:
122         (WebCore::CanvasRenderingContext2D::createPattern): Use the CachedImage::isOriginClean().
123         * loader/ResourceLoaderOptions.h: Added PotentiallyCrossOriginEnabled to RequestOriginPolicy.
124         * loader/cache/CachedImage.cpp:
125         (WebCore::CachedImage::isOriginClean): Migrated from CanvasRenderingContext2D.
126         * loader/cache/CachedImage.h:
127         * rendering/shapes/ShapeInfo.cpp:
128         (WebCore::::checkImageOrigin): Do the CORS check and log an error message if neccessary.
129         * rendering/shapes/ShapeInfo.h:
130         * rendering/shapes/ShapeInsideInfo.cpp:
131         (WebCore::ShapeInsideInfo::isEnabledFor): Call checkImageOrigin() for images.
132         * rendering/shapes/ShapeOutsideInfo.cpp:
133         (WebCore::ShapeOutsideInfo::isEnabledFor): Ditto.
134
135 2013-10-25  Jer Noble  <jer.noble@apple.com>
136
137         [MSE] Fix runtime errors caused by mediasource IDL attributes.
138         https://bugs.webkit.org/show_bug.cgi?id=123352
139
140         Reviewed by Eric Carlson.
141
142         Due to http://webkit.org/b/123178, MediaSource classes must add a GenerateIsReachable
143         (and also a JSGenerateToJSObject) attribute to avoid runtime asserts and crashes.
144
145         * Modules/mediasource/MediaSource.idl:
146         * Modules/mediasource/SourceBuffer.idl:
147         * Modules/mediasource/SourceBufferList.idl:
148         * Modules/mediasource/WebKitMediaSource.idl:
149         * Modules/mediasource/WebKitSourceBufferList.idl:
150
151 2013-10-25  Jacky Jiang  <zhajiang@blackberry.com>
152
153         [BlackBerry] Browser crashed at PlatformGraphicsContext::addDrawLineForText() when trying to upload a video to youtube
154         https://bugs.webkit.org/show_bug.cgi?id=123349
155
156         Reviewed by George Staikos.
157         Internally reviewed by George Staikos, Konrad Piascik, Eli Fidler and Arvid Nilsson.
158
159         Browser crashed when dereferencing null PlatformGraphicsContext*.
160         In FrameView::paintControlTints(), we intentionally constructed GraphicsContext
161         with null PlatformGraphicsContext* and disabled painting by doing
162         context.setUpdatingControlTints(true). So we should not go further in
163         GraphicsContext::drawLineForText() if painting is disabled.
164         Check paintingDisabled() for the other functions in PathBlackBerry.cpp
165         as well; otherwise, it is likely we will crash at those places.
166
167         * platform/graphics/blackberry/PathBlackBerry.cpp:
168         (WebCore::GraphicsContext::fillPath):
169         (WebCore::GraphicsContext::strokePath):
170         (WebCore::GraphicsContext::drawLine):
171         (WebCore::GraphicsContext::drawLineForDocumentMarker):
172         (WebCore::GraphicsContext::drawLineForText):
173         (WebCore::GraphicsContext::clip):
174         (WebCore::GraphicsContext::clipPath):
175         (WebCore::GraphicsContext::canvasClip):
176         (WebCore::GraphicsContext::clipOut):
177
178 2013-10-25  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
179
180         Adding platform implementation of MediaStreamTrack
181         https://bugs.webkit.org/show_bug.cgi?id=123301
182
183         Reviewed by Eric Carlson.
184
185         No new tests needed.
186
187         * CMakeLists.txt:
188         * Modules/mediastream/AudioStreamTrack.cpp:
189         (WebCore::AudioStreamTrack::create): Create method now receives a MediaStreamTrackPrivate as parameter.
190
191         (WebCore::AudioStreamTrack::AudioStreamTrack):
192         * Modules/mediastream/AudioStreamTrack.h:
193         * Modules/mediastream/MediaStream.cpp:
194         (WebCore::MediaStream::MediaStream): Constructor now iterates through a set of MediaStreamTrackPrivate
195         instances to create each MediaStreamTrack of MediaStream.
196
197         (WebCore::MediaStream::addRemoteSource): Calling AudioStreamTrack and VideoStreamTrack with
198         MediaStreamTrackPrivate as parameter.
199
200         * Modules/mediastream/MediaStreamTrack.cpp:
201         (WebCore::MediaStreamTrack::MediaStreamTrack): Constructor now receives a MediaStreamTrackPrivate, instead of a
202         MediaStreamSource.
203
204         (WebCore::MediaStreamTrack::~MediaStreamTrack):
205         (WebCore::MediaStreamTrack::kind): Calling method from MediaStreamTrackPrivate.
206
207         (WebCore::MediaStreamTrack::setSource): Ditto.
208
209         (WebCore::MediaStreamTrack::id): Ditto.
210
211         (WebCore::MediaStreamTrack::label): Ditto.
212
213         (WebCore::MediaStreamTrack::enabled): Ditto.
214
215         (WebCore::MediaStreamTrack::setEnabled): Ditto.
216
217         (WebCore::MediaStreamTrack::muted): Ditto.
218
219         (WebCore::MediaStreamTrack::readonly): Ditto.
220
221         (WebCore::MediaStreamTrack::remote): Ditto.
222
223         (WebCore::MediaStreamTrack::readyState): Ditto.
224
225         (WebCore::MediaStreamTrack::states):
226         (WebCore::MediaStreamTrack::capabilities):
227         (WebCore::MediaStreamTrack::clone):
228         (WebCore::MediaStreamTrack::stopProducingData):
229         (WebCore::MediaStreamTrack::ended): Ditto.
230
231         (WebCore::MediaStreamTrack::sourceStateChanged): Ditto.
232
233         (WebCore::MediaStreamTrack::sourceMutedChanged): Ditto.
234
235         (WebCore::MediaStreamTrack::sourceEnabledChanged): Ditto.
236         (WebCore::MediaStreamTrack::configureTrackRendering):
237         (WebCore::MediaStreamTrack::stopped): Ditto.
238
239         (WebCore::MediaStreamTrack::trackDidEnd): Setting Ended ready state in MediaStreamTrackPrivate.
240
241         (WebCore::MediaStreamTrack::trackReadyStateChanged): Dispatches Live or Ended event.
242
243         (WebCore::MediaStreamTrack::trackMutedChanged): Dispatches Muted event.
244
245         * Modules/mediastream/MediaStreamTrack.h: Now inheriting from MediaStreamTrackPrivateClient.
246
247         (WebCore::MediaStreamTrack::source): Calling method from MediaStreamTrackPrivate.
248         (WebCore::MediaStreamTrack::privateTrack):
249         * Modules/mediastream/VideoStreamTrack.cpp:
250         (WebCore::VideoStreamTrack::create):
251         (WebCore::VideoStreamTrack::VideoStreamTrack): Create method now receives a MediaStreamTrackPrivate as parameter.
252         * Modules/mediastream/VideoStreamTrack.h:
253         * platform/mediastream/MediaStreamDescriptor.cpp:
254         (WebCore::MediaStreamDescriptor::MediaStreamDescriptor): Stores the private tracks in a Vector (property of
255         MediaStreamDescriptor class).
256
257         (WebCore::MediaStreamDescriptor::addTrack): Adds a private track to the tracks' Vector
258
259         (WebCore::MediaStreamDescriptor::removeTrack): Removes a private track from the tracks' Vector
260
261         * platform/mediastream/MediaStreamDescriptor.h:
262         (WebCore::MediaStreamDescriptor::numberOfAudioSources): Renamed from numberOfAudioStreams.
263
264         (WebCore::MediaStreamDescriptor::audioSources): Renamed from audioStreams.
265
266         (WebCore::MediaStreamDescriptor::numberOfVideoSources): Renamed from numberOfVideoStreams.
267
268         (WebCore::MediaStreamDescriptor::videoSources): Renamed from videoStreams.
269
270         (WebCore::MediaStreamDescriptor::numberOfAudioTracks): Returns the number of audio tracks this MediaStreamDescriptor
271         has.
272
273         (WebCore::MediaStreamDescriptor::audioTracks): Returns a audio track, given an index
274
275         (WebCore::MediaStreamDescriptor::numberOfVideoTracks): Returns the number of video tracks this MediaStreamDescriptor
276         has.
277         (WebCore::MediaStreamDescriptor::videoTracks): Returns a video track, given an index
278         * platform/mediastream/MediaStreamTrackPrivate.cpp: Added.
279         * platform/mediastream/MediaStreamTrackPrivate.h: Added.
280
281 2013-10-25  Zoltan Horvath  <zoltan@webkit.org>
282
283         [CSS Regions][CSS Shapes] Update updateShapeAndSegmentsForCurrentLineInFlowThread to deal better with multiple regions
284         <https://webkit.org/b/123210>
285
286         Reviewed by David Hyatt.
287
288         I simplified the determination of the next region part of updateShapeAndSegmentsForCurrentLineInFlowThread's implementation
289         in order to make the code more straightforward. I also tried to avoid using regionAtBlockOffset(...) function where it's possible,
290         since it's not always that reliable, what I'll will report in a separate bug.
291
292         No new tests, covered by existing tests.
293
294         * rendering/RenderBlockLineLayout.cpp:
295         (WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLineInFlowThread):
296
297 2013-10-25  Zoltan Horvath  <zoltan@webkit.org>
298
299         [CSS Regions][CSS Shapes] Update updateShapeAndSegmentsForCurrentLineInFlowThread to deal better with the first lines
300         <https://bugs.webkit.org/show_bug.cgi?id=123275>
301
302         Reviewed by David Hyatt.
303
304         We have a complex condition in updateShapeAndSegmentsForCurrentLineInFlowThread, which is
305         adjusting the first line to the shape's top. This patch adds two boolean to make that clear.
306
307         No new tests, no behavior change.
308
309         * rendering/RenderBlockLineLayout.cpp:
310         (WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLineInFlowThread):
311
312 2013-10-25  Antti Koivisto  <antti@apple.com>
313
314         Faster way for simple line layout to check if text has fallback fonts
315         https://bugs.webkit.org/show_bug.cgi?id=123342
316
317         Reviewed by Andreas Kling.
318         
319         Don't use RenderText::knownToHaveNoOverflowAndNoFallbackFonts as it is slow.
320
321         Simple text code path test already guarantees there is no overflow. Test for fallback
322         fonts explicitly.
323
324         * platform/graphics/SimpleFontData.h:
325         
326             Make FINAL.
327
328         * rendering/RenderText.cpp:
329         * rendering/RenderText.h:
330         
331             Remove knownToHaveNoOverflowAndNoFallbackFonts() as it has no clients.
332
333         * rendering/SimpleLineLayout.cpp:
334         (WebCore::SimpleLineLayout::canUseFor):
335         
336             Check if all characters can be found from the primary font.
337
338 2013-10-25  Andreas Kling  <akling@apple.com>
339
340         SVGResourcesCache::clientDestroyed() should take a RenderElement&.
341         <https://webkit.org/b/123339>
342
343         This function is always called with an object, and that object
344         is guaranteed to never be a text renderer.
345
346         Reviewed by Antti Koivisto.
347
348 2013-10-25  Andreas Kling  <akling@apple.com>
349
350         SVGResourcesCache::clientLayoutChanged() should take a RenderElement&.
351         <https://webkit.org/b/123336>
352
353         This function is always called with an object, and that object
354         is guaranteed to never be a text renderer.
355
356         Reviewed by Antti Koivisto.
357
358 2013-10-25  Andreas Kling  <akling@apple.com>
359
360         SVGResourcesCache::clientStyleChanged() should take a RenderElement&.
361         <https://webkit.org/b/123335>
362
363         This function is always called with an object, and that object
364         is guaranteed to never be a text renderer.
365
366         Reviewed by Antti Koivisto.
367
368 2013-10-25  Andreas Kling  <akling@apple.com>
369
370         SVG: postApplyResource() should take a RenderElement&.
371         <https://webkit.org/b/123334>
372
373         This function is always called with an object, and that object
374         is guaranteed to never be a text renderer.
375
376         Reviewed by Antti Koivisto.
377
378 2013-10-25  Antti Koivisto  <antti@apple.com>
379
380         REGRESSION(r157950): It made many tests assert on Windows, EFL, GTK
381         https://bugs.webkit.org/show_bug.cgi?id=123309
382
383         Reviewed by Andreas Kling.
384
385         Disable simple line layout on non-Mac plaforms for now.
386
387         * rendering/SimpleLineLayout.cpp:
388         (WebCore::SimpleLineLayout::canUseFor):
389
390 2013-10-24  Andreas Kling  <akling@apple.com>
391
392         SVG: applyResource() should take a RenderElement&.
393         <https://webkit.org/b/123286>
394
395         This function is always called with an object, and that object
396         is guaranteed to never be a text renderer.
397
398         Reviewed by Antti Koivisto.
399
400 2013-10-25  Andreas Kling  <akling@apple.com>
401
402         RenderElement::styleWillChange() should pass newStyle as reference.
403         <https://webkit.org/b/123332>
404
405         When styleWillChange() is called, there is always a new style getting
406         set so there's no need to handle the null style case.
407         This flushed out a couple of unnecessary checks.
408
409         Reviewed by Antti Koivisto.
410
411 2013-10-25  peavo@outlook.com  <peavo@outlook.com>
412
413         [WinCairo] Compile fixes.
414         https://bugs.webkit.org/show_bug.cgi?id=123269
415
416         Reviewed by Csaba Osztrogonác.
417
418         * platform/graphics/win/ImageCairoWin.cpp: Added new parameter to BitmapImage::draw() calls.
419         (WebCore::BitmapImage::getHBITMAPOfSize):
420         (WebCore::BitmapImage::drawFrameMatchingSourceSize):
421
422 2013-10-25  Sergio Villar Senin  <svillar@igalia.com>
423
424         Use a Vector instead of HashSet to computed the orderValues in RenderFlexibleBox
425         https://bugs.webkit.org/show_bug.cgi?id=118620
426
427         Reviewed by Antti Koivisto.
428
429         Turns out that order is extremelly uncommon so using a Vector is
430         much less expensive. This also special-cases the much common case
431         of only having order of value 0 by using Vectors with just one
432         preallocated member.
433
434         Also added the performance test that shows a ~1% win when using a
435         vector instead of the HashSet.
436
437         * rendering/RenderFlexibleBox.cpp:
438         (WebCore::RenderFlexibleBox::OrderIterator::setOrderValues):
439         (WebCore::RenderFlexibleBox::layoutBlock):
440         (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
441         * rendering/RenderFlexibleBox.h:
442
443 2013-10-25  Sergio Villar Senin  <svillar@igalia.com>
444
445         Non-SVG build broken after r157950
446         https://bugs.webkit.org/show_bug.cgi?id=123328
447
448         Reviewed by Xan Lopez.
449
450         The isSVGInlineTest() check should be done only if SVG is enabled.
451
452         * rendering/SimpleLineLayout.cpp:
453         (WebCore::SimpleLineLayout::canUseFor):
454
455 2013-10-24  Jer Noble  <jer.noble@apple.com>
456
457         [Mac] Add helper methods to convert CMTime <--> MediaTime
458         https://bugs.webkit.org/show_bug.cgi?id=123285
459
460         Reviewed by Eric Carlson.
461
462         Add utility methods to convert between CMTime (a rational time class) and MediaTime.
463         Once there, PlatformClockCM can now vend and accept MediaTimes for currentTime.
464
465         * platform/mac/MediaTimeMac.h:
466         * platform/mac/MediaTimeMac.cpp:
467         (WebCore::toMediaTime): Added conversion utility method.
468         (WebCore::toCMTime): Ditto.
469
470         * platform/mac/PlatformClockCM.h:
471         * platform/mac/PlatformClockCM.mm:
472         (PlatformClockCM::setCurrentMediaTime): Added.
473         (PlatformClockCM::currentMediaTime): Added.
474
475         * WebCore.xcodeproj/project.pbxproj: Add new files to project.
476
477 2013-10-24  Mark Rowe  <mrowe@apple.com>
478
479         Remove references to OS X 10.7 from Xcode configuration settings.
480
481         Now that we're not building for OS X 10.7 they're no longer needed.
482
483         Reviewed by Anders Carlsson.
484
485
486         * Configurations/Base.xcconfig:
487         * Configurations/DebugRelease.xcconfig:
488         * Configurations/FeatureDefines.xcconfig:
489         * Configurations/Version.xcconfig:
490
491 2013-10-24  Antti Koivisto  <antti@apple.com>
492
493         Cache line layout path
494         https://bugs.webkit.org/show_bug.cgi?id=123298
495
496         Reviewed by Sam Weinig.
497         
498         Determining the path can be non-trivial. Avoid computing it repeatedly on relayouts.
499
500         * rendering/RenderBlock.cpp:
501         (WebCore::RenderBlock::RenderBlock):
502         (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
503         (WebCore::RenderBlock::invalidateLineLayoutPath):
504         (WebCore::RenderBlock::removeChild):
505         
506             Invalidate the path when children change.
507
508         * rendering/RenderBlock.h:
509         * rendering/RenderBlockFlow.cpp:
510         (WebCore::RenderBlockFlow::layoutInlineChildren):
511         (WebCore::RenderBlockFlow::styleDidChange):
512         
513             Invalidate the path when style changes.
514
515         (WebCore::RenderBlockFlow::deleteLineBoxesBeforeSimpleLineLayout):
516         (WebCore::RenderBlockFlow::ensureLineBoxes):
517         * rendering/RenderText.cpp:
518         (WebCore::RenderText::setText):
519         
520             Invalidate the path when text changes.
521
522 2013-10-24  Mark Rowe  <mrowe@apple.com>
523
524         <rdar://problem/15312643> Prepare for the mysterious future.
525
526         Reviewed by David Kilzer.
527
528
529         * Configurations/Base.xcconfig:
530         * Configurations/DebugRelease.xcconfig:
531         * Configurations/FeatureDefines.xcconfig:
532         * Configurations/Version.xcconfig:
533
534 2013-10-24  Andreas Kling  <akling@apple.com>
535
536         DocumentLoader::cachedResourceLoader() should return a reference.
537         <https://webkit.org/b/123303>
538
539         ..and while we're at it, make DocumentLoader::m_cachedResourceLoader
540         a Ref, and have CachedResourceLoader::create return a PassRef.
541
542         Reviewed by Sam Weinig.
543
544 2013-10-24  Anders Carlsson  <andersca@apple.com>
545
546         Stop bringing in the std namespace
547         https://bugs.webkit.org/show_bug.cgi?id=123273
548
549         Reviewed by Andreas Kling.
550
551         * Modules/webaudio/AudioBufferSourceNode.cpp:
552         (WebCore::AudioBufferSourceNode::renderFromBuffer):
553         (WebCore::AudioBufferSourceNode::startGrain):
554         (WebCore::AudioBufferSourceNode::totalPitchRate):
555         * Modules/webaudio/AudioNodeInput.cpp:
556         (WebCore::AudioNodeInput::numberOfChannels):
557         * Modules/webaudio/AudioParamTimeline.cpp:
558         (WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
559         * Modules/webaudio/AudioScheduledSourceNode.cpp:
560         (WebCore::AudioScheduledSourceNode::updateSchedulingInfo):
561         (WebCore::AudioScheduledSourceNode::stop):
562         * Modules/webaudio/AudioSummingJunction.cpp:
563         * Modules/webaudio/DelayDSPKernel.cpp:
564         (WebCore::DelayDSPKernel::process):
565         * Modules/webaudio/OfflineAudioDestinationNode.cpp:
566         (WebCore::OfflineAudioDestinationNode::offlineRender):
567         * Modules/webaudio/OscillatorNode.cpp:
568         * Modules/webaudio/PannerNode.cpp:
569         (WebCore::PannerNode::dopplerRate):
570         * Modules/webaudio/WaveShaperDSPKernel.cpp:
571         (WebCore::WaveShaperDSPKernel::processCurve):
572         * Modules/webdatabase/DatabaseTracker.cpp:
573         (WebCore::DatabaseTracker::hasAdequateQuotaForOrigin):
574         * Modules/websockets/WebSocket.cpp:
575         (WebCore::saturateAdd):
576         * Modules/websockets/WebSocketChannel.cpp:
577         * Modules/websockets/WebSocketFrame.cpp:
578         (WebCore::WebSocketFrame::parseFrame):
579         * accessibility/AccessibilityARIAGrid.cpp:
580         * accessibility/AccessibilityARIAGridCell.cpp:
581         * accessibility/AccessibilityARIAGridRow.cpp:
582         * accessibility/AccessibilityList.cpp:
583         * accessibility/AccessibilityListBox.cpp:
584         * accessibility/AccessibilityListBoxOption.cpp:
585         * accessibility/AccessibilityNodeObject.cpp:
586         * accessibility/AccessibilityObject.cpp:
587         * accessibility/AccessibilityRenderObject.cpp:
588         * accessibility/AccessibilityTable.cpp:
589         (WebCore::AccessibilityTable::addChildren):
590         * accessibility/AccessibilityTableCell.cpp:
591         * accessibility/AccessibilityTableColumn.cpp:
592         * accessibility/AccessibilityTableHeaderContainer.cpp:
593         * accessibility/AccessibilityTableRow.cpp:
594         * accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
595         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
596         (-[WebAccessibilityObjectWrapper accessibilityArrayAttributeValues:index:maxCount:]):
597         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
598         (WebCore::JSCSSStyleDeclaration::getOwnPropertyNames):
599         * bindings/js/JSGeolocationCustom.cpp:
600         (WebCore::setTimeout):
601         (WebCore::setMaximumAge):
602         * bindings/js/ScriptController.cpp:
603         * bindings/js/SerializedScriptValue.cpp:
604         (WebCore::writeLittleEndian):
605         (WebCore::CloneSerializer::write):
606         (WebCore::CloneDeserializer::deserialize):
607         (WebCore::CloneDeserializer::readString):
608         * css/CSSComputedStyleDeclaration.cpp:
609         (WebCore::ComputedStyleExtractor::propertyValue):
610         * css/CSSFontSelector.cpp:
611         (WebCore::CSSFontSelector::getFontFace):
612         * css/CSSGradientValue.cpp:
613         (WebCore::CSSRadialGradientValue::createGradient):
614         * css/CSSParser.cpp:
615         (WebCore::CSSParser::parseValue):
616         (WebCore::CSSParser::parseColorParameters):
617         (WebCore::CSSParser::parseHSLParameters):
618         * css/CSSReflectValue.cpp:
619         * css/DeprecatedStyleBuilder.cpp:
620         (WebCore::ApplyPropertyFontSize::applyValue):
621         * css/PropertySetCSSStyleDeclaration.cpp:
622         * css/SVGCSSParser.cpp:
623         * css/StylePropertySet.cpp:
624         (WebCore::StylePropertySet::getLayeredShorthandValue):
625         * css/StyleResolver.cpp:
626         (WebCore::StyleResolver::viewportPercentageValue):
627         * dom/CharacterData.cpp:
628         (WebCore::CharacterData::parserAppendData):
629         * dom/ContainerNode.cpp:
630         * dom/Document.cpp:
631         (WebCore::Document::minimumLayoutDelay):
632         * dom/Node.cpp:
633         (WebCore::Node::compareDocumentPosition):
634         * dom/Range.cpp:
635         (WebCore::Range::toString):
636         (WebCore::Range::textRects):
637         (WebCore::Range::textQuads):
638         * dom/ScriptedAnimationController.cpp:
639         (WebCore::ScriptedAnimationController::scheduleAnimation):
640         * dom/StyledElement.cpp:
641         (WebCore::StyledElement::makePresentationAttributeCacheKey):
642         * dom/Text.cpp:
643         * dom/ViewportArguments.cpp:
644         (WebCore::clampLengthValue):
645         (WebCore::clampScaleValue):
646         (WebCore::ViewportArguments::resolve):
647         (WebCore::computeMinimumScaleFactorForContentContained):
648         (WebCore::restrictMinimumScaleFactorToViewportSize):
649         * editing/AlternativeTextController.cpp:
650         * editing/ApplyStyleCommand.cpp:
651         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
652         * editing/CompositeEditCommand.cpp:
653         (WebCore::CompositeEditCommand::deleteInsignificantText):
654         * editing/Editor.cpp:
655         (WebCore::Editor::setComposition):
656         (WebCore::Editor::compositionRange):
657         * editing/EditorCommand.cpp:
658         (WebCore::verticalScrollDistance):
659         * editing/TextIterator.cpp:
660         (WebCore::TextIterator::handleTextNode):
661         (WebCore::TextIterator::handleTextBox):
662         (WebCore::CharacterIterator::string):
663         (WebCore::SearchBuffer::SearchBuffer):
664         (WebCore::SearchBuffer::append):
665         (WebCore::SearchBuffer::prependContext):
666         (WebCore::SearchBuffer::search):
667         * editing/VisibleUnits.cpp:
668         (WebCore::startOfParagraph):
669         * editing/htmlediting.cpp:
670         * editing/markup.cpp:
671         * fileapi/FileReaderLoader.cpp:
672         (WebCore::FileReaderLoader::didReceiveResponse):
673         (WebCore::FileReaderLoader::didReceiveData):
674         * history/BackForwardList.cpp:
675         (WebCore::BackForwardList::backListWithLimit):
676         (WebCore::BackForwardList::forwardListWithLimit):
677         * history/PageCache.cpp:
678         (WebCore::PageCache::setCapacity):
679         * html/BaseDateAndTimeInputType.cpp:
680         * html/FTPDirectoryDocument.cpp:
681         * html/HTMLAreaElement.cpp:
682         (WebCore::HTMLAreaElement::getRegion):
683         * html/HTMLElement.cpp:
684         (WebCore::HTMLElement::parseAttribute):
685         (WebCore::parseColorStringWithCrazyLegacyRules):
686         * html/HTMLFormControlElement.cpp:
687         * html/HTMLFormElement.cpp:
688         (WebCore::HTMLFormElement::getTextFieldValues):
689         * html/HTMLImageElement.cpp:
690         * html/HTMLInputElement.cpp:
691         * html/HTMLMapElement.cpp:
692         * html/HTMLMediaElement.cpp:
693         (WebCore::HTMLMediaElement::HTMLMediaElement):
694         (WebCore::HTMLMediaElement::updateActiveTextTrackCues):
695         (WebCore::HTMLMediaElement::textTrackAddCue):
696         (WebCore::HTMLMediaElement::textTrackRemoveCue):
697         (WebCore::HTMLMediaElement::rewind):
698         (WebCore::HTMLMediaElement::seek):
699         (WebCore::HTMLMediaElement::duration):
700         * html/HTMLSelectElement.cpp:
701         (WebCore::HTMLSelectElement::parseAttribute):
702         (WebCore::HTMLSelectElement::updateListBoxSelection):
703         * html/HTMLSourceElement.cpp:
704         * html/HTMLTableCellElement.cpp:
705         (WebCore::HTMLTableCellElement::colSpan):
706         (WebCore::HTMLTableCellElement::rowSpan):
707         * html/HTMLTableElement.cpp:
708         (WebCore::HTMLTableElement::parseAttribute):
709         * html/HTMLTextFormControlElement.cpp:
710         (WebCore::HTMLTextFormControlElement::setSelectionStart):
711         (WebCore::HTMLTextFormControlElement::setSelectionEnd):
712         (WebCore::HTMLTextFormControlElement::select):
713         (WebCore::HTMLTextFormControlElement::setSelectionRange):
714         * html/HTMLTrackElement.cpp:
715         * html/ImageDocument.cpp:
716         (WebCore::ImageDocument::scale):
717         * html/InputType.cpp:
718         (WebCore::InputType::valueAsDouble):
719         * html/MediaController.cpp:
720         (MediaController::duration):
721         (MediaController::currentTime):
722         (MediaController::setCurrentTime):
723         (MediaController::updateReadyState):
724         * html/NumberInputType.cpp:
725         (WebCore::NumberInputType::setValueAsDouble):
726         (WebCore::NumberInputType::setValueAsDecimal):
727         (WebCore::NumberInputType::createStepRange):
728         * html/RangeInputType.cpp:
729         (WebCore::RangeInputType::handleKeydownEvent):
730         * html/SearchInputType.cpp:
731         (WebCore::SearchInputType::startSearchEventTimer):
732         * html/StepRange.cpp:
733         (WebCore::StepRange::clampValue):
734         (WebCore::StepRange::parseStep):
735         * html/TimeRanges.cpp:
736         * html/ValidationMessage.cpp:
737         (WebCore::ValidationMessage::setMessageDOMAndStartTimer):
738         (WebCore::adjustBubblePosition):
739         * html/canvas/CanvasRenderingContext2D.cpp:
740         (WebCore::normalizeRect):
741         * html/canvas/WebGLRenderingContext.cpp:
742         (WebCore::WebGLRenderingContext::validateIndexArrayConservative):
743         (WebCore::WebGLRenderingContext::validateCompressedTexFuncData):
744         * html/shadow/MediaControlElements.cpp:
745         (WebCore::MediaControlRewindButtonElement::defaultEventHandler):
746         * html/shadow/MediaControlsApple.cpp:
747         * html/shadow/SliderThumbElement.cpp:
748         (WebCore::SliderThumbElement::setPositionFromPoint):
749         * inspector/ContentSearchUtils.cpp:
750         * inspector/DOMEditor.cpp:
751         * inspector/DOMPatchSupport.cpp:
752         (WebCore::DOMPatchSupport::diff):
753         * inspector/InjectedScriptHost.cpp:
754         * loader/ProgressTracker.cpp:
755         (WebCore::ProgressTracker::incrementProgress):
756         * loader/cache/CachedImage.cpp:
757         * page/DOMWindow.cpp:
758         (WebCore::DOMWindow::adjustWindowRect):
759         * page/EventHandler.cpp:
760         (WebCore::MaximumDurationTracker::~MaximumDurationTracker):
761         * page/FrameTree.cpp:
762         * page/FrameView.cpp:
763         (WebCore::FrameView::adjustedDeferredRepaintDelay):
764         (WebCore::FrameView::autoSizeIfEnabled):
765         * page/PrintContext.cpp:
766         (WebCore::PrintContext::computeAutomaticScaleFactor):
767         * page/SpatialNavigation.cpp:
768         (WebCore::entryAndExitPointsForDirection):
769         * page/animation/CSSPropertyAnimation.cpp:
770         (WebCore::blendFilterOperations):
771         (WebCore::PropertyWrapperShadow::blendMismatchedShadowLists):
772         * platform/graphics/FloatRect.cpp:
773         (WebCore::FloatRect::FloatRect):
774         (WebCore::FloatRect::intersect):
775         (WebCore::FloatRect::uniteEvenIfEmpty):
776         (WebCore::FloatRect::extend):
777         (WebCore::FloatRect::fitToPoints):
778         * platform/graphics/GlyphPageTreeNode.cpp:
779         (WebCore::GlyphPageTreeNode::initializePage):
780         (WebCore::GlyphPageTreeNode::getChild):
781         * platform/graphics/IntRect.cpp:
782         (WebCore::IntRect::intersect):
783         (WebCore::IntRect::unite):
784         (WebCore::IntRect::uniteIfNonZero):
785         * platform/graphics/LayoutRect.cpp:
786         (WebCore::LayoutRect::intersect):
787         (WebCore::LayoutRect::unite):
788         (WebCore::LayoutRect::uniteIfNonZero):
789         * platform/graphics/filters/FEMorphology.cpp:
790         (WebCore::FEMorphology::platformApplyGeneric):
791         (WebCore::FEMorphology::platformApplySoftware):
792         * platform/mac/MemoryPressureHandlerMac.mm:
793         (WebCore::MemoryPressureHandler::respondToMemoryPressure):
794         * platform/text/TextCodecICU.cpp:
795         * rendering/LineWidth.cpp:
796         (WebCore::LineWidth::fitBelowFloats):
797         (WebCore::LineWidth::computeAvailableWidthFromLeftAndRight):
798         * rendering/RenderBlock.h:
799         (WebCore::RenderBlock::availableLogicalWidthForLine):
800         (WebCore::RenderBlock::availableLogicalWidthForContent):
801         * rendering/RenderFieldset.cpp:
802         (WebCore::RenderFieldset::computePreferredLogicalWidths):
803         (WebCore::RenderFieldset::layoutSpecialExcludedChild):
804         (WebCore::RenderFieldset::paintBoxDecorations):
805         * rendering/RenderFlowThread.cpp:
806         (WebCore::RenderFlowThread::updateLogicalWidth):
807         (WebCore::RenderFlowThread::addForcedRegionBreak):
808         * rendering/RenderFrameBase.cpp:
809         (WebCore::RenderFrameBase::layoutWithFlattening):
810         * rendering/RenderFrameSet.cpp:
811         (WebCore::RenderFrameSet::layOutAxis):
812         * rendering/RenderSlider.cpp:
813         (WebCore::RenderSlider::computePreferredLogicalWidths):
814         * rendering/RenderTableCell.h:
815         * rendering/RenderTreeAsText.cpp:
816         (WebCore::writeLayers):
817         * rendering/RootInlineBox.h:
818         (WebCore::RootInlineBox::selectionHeight):
819         (WebCore::RootInlineBox::selectionHeightAdjustedForPrecedingBlock):
820         * rendering/mathml/RenderMathMLRow.cpp:
821         (WebCore::RenderMathMLRow::layout):
822         * rendering/mathml/RenderMathMLScripts.cpp:
823         (WebCore::RenderMathMLScripts::layout):
824         * rendering/style/RenderStyle.h:
825         * rendering/style/StyleGeneratedImage.cpp:
826         (WebCore::StyleGeneratedImage::imageSize):
827         * style/StyleFontSizeFunctions.cpp:
828         (WebCore::Style::fontSizeForKeyword):
829         * svg/SVGSVGElement.cpp:
830         (WebCore::SVGSVGElement::setCurrentTime):
831
832 2013-10-24  Andreas Kling  <akling@apple.com>
833
834         Uncomplicate some of SVGTextRunRenderingContext.
835         <https://webkit.org/b/123294>
836
837         This class was weird about a few things, so I've taken these steps
838         to clear things up:
839
840         - FINAL and OVERRIDE all the things.
841         - Constructor now takes a RenderObject&.
842         - renderer() now returns a RenderObject&.
843         - drawSVGGlyphs() no longer takes a TextRun.
844         - glyphDataForCharacter() no longer takes a TextRun.
845
846         To expand on the last two, there was also some awkward hoop-jumping
847         where we'd go through the TextRun passed by argument to find its
848         rendering context, which was really just |this| all along.
849
850         Reviewed by Antti Koivisto.
851
852 2013-10-24  Roger Fong  <roger_fong@apple.com>
853
854         Add texture level dependent size checks to textureImage2D calls.
855         https://bugs.webkit.org/show_bug.cgi?id=123290
856         <rdar://problem/15201382>
857
858         Reviewed by Dean Jackson
859
860         Test covered by WebGL Conformance suite 1.0.2 test, textures/texture-size-limit.html.
861
862         There are different size limits when calling textureImage2D on different texture levels.
863         We should be throwing an error if our texture size exceeds these limits.
864
865         * html/canvas/WebGLRenderingContext.cpp:
866         (WebCore::WebGLRenderingContext::validateTexFuncParameters):
867
868 2013-10-24  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
869
870         [MediaStream API] allow a stream source to be shared
871         https://bugs.webkit.org/show_bug.cgi?id=121954
872
873         Reviewed by Eric Carlson.
874
875         Now, the MediaStreamSource don't know about the MediaStream that owns it,
876         since there can be more than one MediaStream that has it as source for some track.
877         MediaStreamTrack classes now have observers registered, in case there are more than
878         one MediaStream owning that track
879
880         No new tests, no change in functionality.
881
882         * Modules/mediastream/MediaStream.cpp:
883         (WebCore::MediaStream::MediaStream): Adding the MediaStream as an observer for each track it owns.
884
885         (WebCore::MediaStream::addTrack): Now adding the MediaStream as an observer the new added track
886         and adding the source to the MediaStreamDescriptor.
887
888         (WebCore::MediaStream::removeTrack): Instead of removing the source right away, we first check if
889         there isn't any other track using that source, if not we remove the source.
890
891         (WebCore::MediaStream::haveTrackWithSource):
892         (WebCore::MediaStream::addRemoteSource): MediaStreamSource has no information about the MediaStream
893         that uses it, so now we don't set the stream in the source anymore.
894
895         (WebCore::MediaStream::removeRemoteSource): There can be more than on track using the source. So we
896         get each track that is using the source and then remove it and fire the ended event.
897
898         * Modules/mediastream/MediaStream.h:
899         * Modules/mediastream/MediaStreamTrack.cpp:
900         (WebCore::MediaStreamTrack::addObserver):
901         (WebCore::MediaStreamTrack::removeObserver):
902         (WebCore::MediaStreamTrack::trackDidEnd): Does not get the client from the MediaStreamDescriptor, it now
903         notify each of its observers that the track ended.
904
905         * Modules/mediastream/MediaStreamTrack.h: Adding Observer class.
906
907         * platform/mediastream/MediaStreamDescriptor.cpp: Destructor now does nothing. Previously it was setting
908         each MediaStreamSource's descriptor to null.
909
910         (WebCore::MediaStreamDescriptor::removeSource): Not setting the stream in source anymore.
911
912         (WebCore::MediaStreamDescriptor::MediaStreamDescriptor): Ditto.
913
914         (WebCore::MediaStreamDescriptor::setEnded): Not setting the state of the source to Ended
915
916         * platform/mediastream/MediaStreamDescriptor.h:
917         (WebCore::MediaStreamDescriptor::~MediaStreamDescriptor):
918         * platform/mediastream/MediaStreamSource.cpp: Removing references to MediaStream object
919         (WebCore::MediaStreamSource::MediaStreamSource):
920         (WebCore::MediaStreamSource::reset):
921         * platform/mediastream/MediaStreamSource.h:
922
923 2013-10-24  Daniel Bates  <dabates@apple.com>
924
925         Crash in WebCore::NavigationScheduler::startTimer()
926         https://bugs.webkit.org/show_bug.cgi?id=123288
927         <rdar://problem/14055644>
928
929         Reviewed by Alexey Proskuryakov.
930
931         Currently NavigationScheduler::startTimer() synchronously notifies the client
932         before the Web Inspector of a scheduled redirect. If a client cancels this
933         redirect then NavigationScheduler::m_redirect will become null and we'll
934         subsequently crash when informing the Web Inspector of this formerly scheduled
935         redirect. Instead, NavigationScheduler::startTimer() should notify the Web
936         Inspector before it notifies the client of a scheduled redirect.
937
938         As a side benefit of this change, the Web Inspector is notified of a scheduled
939         redirect before being notified of it being canceled when a client chooses to cancel
940         a scheduled redirect.
941
942         * loader/NavigationScheduler.cpp:
943         (WebCore::NavigationScheduler::startTimer):
944
945 2013-10-24  Antti Koivisto  <antti@apple.com>
946
947         Try to fix build without CSS_SHAPES.
948
949         * rendering/SimpleLineLayout.cpp:
950         (WebCore::SimpleLineLayout::canUseFor):
951
952 2013-10-24  Antti Koivisto  <antti@apple.com>
953
954         Simple line layout
955         https://bugs.webkit.org/show_bug.cgi?id=122458
956
957         Reviewed by Darin Adler.
958
959         Line box based inline layout is powerful but also rather slow and memory intensive. Simple line layout
960         is a compact alternative data structure and fast code path to cover common cases without requiring line
961         boxes.
962         
963         This patch handles a case single left-aligned text renderer inside flow with no floats. Even this very basic
964         case is sufficiently common to handle up to 25% of all text lines on some popular new sites. The decision
965         which path to use is made per block flow (paragraph).
966         
967         Simple line layout aims to produce pixel-exact rendering result when compared to the line box layout.
968         
969         The goal is to handle everything that requires line level access in cases that allow use of simple lines.
970         This is not quite the case yet. For example selections and outline painting are not supported. In these
971         cases we seamlessly switch to the line boxes.
972
973         The simple line data structure currently uses 12 bytes per line. Lineboxes take ~160 bytes minimum per line.
974         Laying out the lines is also several times faster as is iterating over them.
975
976         * CMakeLists.txt:
977         * GNUmakefile.list.am:
978         * WebCore.vcxproj/WebCore.vcxproj:
979         * WebCore.xcodeproj/project.pbxproj:
980         * dom/Position.cpp:
981         (WebCore::Position::upstream):
982         (WebCore::Position::downstream):
983         (WebCore::Position::getInlineBoxAndOffset):
984         
985             Creating positions within a simple line flow causes switch to line boxes.
986
987         * editing/TextIterator.cpp:
988         (WebCore::TextIterator::handleTextNode):
989         
990             TextIterator traverses line boxes if available. In case simple line case we need to replicate the
991             same results (for compatibility but especially to avoid changing test results). This is done here
992             by just traversing the string without actually using the layout.
993
994         * rendering/RenderBlock.cpp:
995         (WebCore::RenderBlock::RenderBlock):
996         (WebCore::RenderBlock::layoutShapeInsideInfo):
997         * rendering/RenderBlock.h:
998         * rendering/RenderBlockFlow.cpp:
999         (WebCore::RenderBlockFlow::layoutInlineChildren):
1000         
1001             Select the layout path to use.
1002
1003         (WebCore::RenderBlockFlow::deleteLines):
1004         (WebCore::RenderBlockFlow::hitTestInlineChildren):
1005         (WebCore::RenderBlockFlow::adjustForBorderFit):
1006         (WebCore::RenderBlockFlow::firstLineBaseline):
1007         (WebCore::RenderBlockFlow::inlineBlockBaseline):
1008         (WebCore::RenderBlockFlow::inlineSelectionGaps):
1009         (WebCore::RenderBlockFlow::clearTruncation):
1010         (WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
1011         (WebCore::RenderBlockFlow::addFocusRingRectsForInlineChildren):
1012         (WebCore::RenderBlockFlow::paintInlineChildren):
1013         (WebCore::RenderBlockFlow::hasLines):
1014         (WebCore::RenderBlockFlow::layoutSimpleLines):
1015         
1016             Do simple layout.
1017
1018         (WebCore::RenderBlockFlow::deleteLineBoxesBeforeSimpleLineLayout):
1019         (WebCore::RenderBlockFlow::ensureLineBoxes):
1020         
1021             This function switches from simple lines to line boxes. The switching can be done outside normal layout.
1022             This is used to cover some cases that are not yet supported by simple lines (like selections).
1023
1024         * rendering/RenderBlockFlow.h:
1025         (WebCore::RenderBlockFlow::simpleLines):
1026         * rendering/RenderBlockLineLayout.cpp:
1027         (WebCore::RenderBlockFlow::layoutLineBoxes):
1028         
1029             Rename the line box layout function.
1030
1031         (WebCore::RenderBlockFlow::addOverflowFromInlineChildren):
1032         * rendering/RenderText.cpp:
1033         (WebCore::RenderText::deleteLineBoxesBeforeSimpleLineLayout):
1034         (WebCore::RenderText::absoluteRects):
1035         (WebCore::RenderText::absoluteRectsForRange):
1036         (WebCore::RenderText::absoluteQuadsClippedToEllipsis):
1037         (WebCore::RenderText::absoluteQuads):
1038         (WebCore::RenderText::absoluteQuadsForRange):
1039         (WebCore::RenderText::positionForPoint):
1040         (WebCore::RenderText::knownToHaveNoOverflowAndNoFallbackFonts):
1041         (WebCore::RenderText::setSelectionState):
1042         (WebCore::RenderText::setTextWithOffset):
1043         (WebCore::RenderText::ensureLineBoxes):
1044         (WebCore::RenderText::simpleLines):
1045         (WebCore::RenderText::linesBoundingBox):
1046         (WebCore::RenderText::linesVisualOverflowBoundingBox):
1047         (WebCore::RenderText::selectionRectForRepaint):
1048         (WebCore::RenderText::caretMinOffset):
1049         (WebCore::RenderText::caretMaxOffset):
1050         (WebCore::RenderText::countRenderedCharacterOffsetsUntil):
1051         (WebCore::RenderText::containsRenderedCharacterOffset):
1052         (WebCore::RenderText::containsCaretOffset):
1053         (WebCore::RenderText::hasRenderedText):
1054         * rendering/RenderText.h:
1055         * rendering/RenderTreeAsText.cpp:
1056         (WebCore::RenderTreeAsText::writeRenderObject):
1057         (WebCore::writeSimpleLine):
1058         (WebCore::write):
1059         * rendering/SimpleLineLayout.cpp: Added.
1060         (WebCore::SimpleLineLayout::canUseFor):
1061         
1062             This check for the cases supported by the simple line layout path.
1063
1064         (WebCore::SimpleLineLayout::isWhitespace):
1065         (WebCore::SimpleLineLayout::skipWhitespaces):
1066         (WebCore::SimpleLineLayout::textWidth):
1067         (WebCore::SimpleLineLayout::createLines):
1068         
1069             The main layout functions that breaks text to lines. It only handles the cases allowed by 
1070             SimpleLineLayout::canUseFor. What it handles it aims to break exactly as line box layout does.
1071
1072         * rendering/SimpleLineLayout.h: Added.
1073         * rendering/SimpleLineLayoutFunctions.cpp: Added.
1074         (WebCore::SimpleLineLayout::paintFlow):
1075         (WebCore::SimpleLineLayout::hitTestFlow):
1076         (WebCore::SimpleLineLayout::collectFlowOverflow):
1077         (WebCore::SimpleLineLayout::computeTextBoundingBox):
1078         * rendering/SimpleLineLayoutFunctions.h: Added.
1079         (WebCore::SimpleLineLayout::computeFlowHeight):
1080         (WebCore::SimpleLineLayout::computeFlowFirstLineBaseline):
1081         (WebCore::SimpleLineLayout::computeFlowLastLineBaseline):
1082         (WebCore::SimpleLineLayout::findTextCaretMinimumOffset):
1083         (WebCore::SimpleLineLayout::findTextCaretMaximumOffset):
1084         (WebCore::SimpleLineLayout::containsTextCaretOffset):
1085         (WebCore::SimpleLineLayout::isTextRendered):
1086         (WebCore::SimpleLineLayout::lineHeightFromFlow):
1087         
1088             Support functions called from RenderBlockFlow and RenderText. They are equivalent to
1089             similar line box functions.
1090
1091         (WebCore::SimpleLineLayout::baselineFromFlow):
1092         * rendering/SimpleLineLayoutResolver.h: Added.
1093         (WebCore::SimpleLineLayout::Resolver::Line::Line):
1094         (WebCore::SimpleLineLayout::Resolver::Line::rect):
1095         (WebCore::SimpleLineLayout::Resolver::Line::baseline):
1096         (WebCore::SimpleLineLayout::Resolver::Line::text):
1097         (WebCore::SimpleLineLayout::Resolver::Iterator::Iterator):
1098         (WebCore::SimpleLineLayout::Resolver::Iterator::operator++):
1099         (WebCore::SimpleLineLayout::Resolver::Iterator::operator--):
1100         (WebCore::SimpleLineLayout::Resolver::Iterator::operator==):
1101         (WebCore::SimpleLineLayout::Resolver::Iterator::operator!=):
1102         (WebCore::SimpleLineLayout::Resolver::Iterator::operator*):
1103         
1104             Lazy iterator for deriving line metrics. This keeps the line data structure small as
1105             we don't need to keep easily derived values around.
1106
1107         (WebCore::SimpleLineLayout::Resolver::Resolver):
1108         (WebCore::SimpleLineLayout::Resolver::size):
1109         (WebCore::SimpleLineLayout::Resolver::begin):
1110         (WebCore::SimpleLineLayout::Resolver::end):
1111         (WebCore::SimpleLineLayout::Resolver::last):
1112         (WebCore::SimpleLineLayout::Resolver::operator[]):
1113
1114 2013-10-24  Myles C. Maxfield  <mmaxfield@apple.com>
1115
1116         Gaps between underlines in adjacent underlined text runs
1117         https://bugs.webkit.org/show_bug.cgi?id=123236
1118
1119         Reviewed by Simon Fraser and Darin Adler.
1120
1121         There are two pieces to this change. The first piece is in
1122         InlineTextBox::paint(). We were putting floating-point
1123         extents into a LayoutSize, which simply uses ints (for now),
1124         and then immediately converting this back to a FloatSize.
1125         Instead, we should be using floats throughout all of
1126         this code.
1127
1128         In addition, inside GraphicsContext::drawLineForText(), we are
1129         rounding the underline to pixel boundaries so that it appears
1130         very crisp on the screen. However, we should round once after
1131         performing computations, rather than rounding twice and then
1132         performing computations on the rounded numbers.
1133
1134         Test: fast/css3-text/css3-text-decoration/no-gap-between-two-rounded-textboxes.html
1135
1136         * platform/graphics/cg/GraphicsContextCG.cpp:
1137         (WebCore::GraphicsContext::drawLineForText): Change rounding mode
1138             to perform computations before rounding
1139         * rendering/InlineTextBox.cpp:
1140         (WebCore::InlineTextBox::paint): Don't convert to a LayoutSize
1141             just to convert to a FloatSize
1142
1143 2013-10-24  Andreas Kling  <akling@apple.com>
1144
1145         SVGRenderingContext should wrap a RenderElement.
1146         <https://webkit.org/b/123283>
1147
1148         The SVG rendering context class is never used with text renderers
1149         so we can have it wrap a RenderElement for tighter code.
1150
1151         Also renamed SVGRenderingContext::m_object to m_renderer.
1152
1153         Reviewed by Antti Koivisto.
1154
1155 2013-10-24  Santosh Mahto  <santosh.ma@samsung.com>
1156
1157         [contenteditable] Content after non-editable element disappears when merging lines using backspace
1158         https://bugs.webkit.org/show_bug.cgi?id=122748
1159
1160         Reviewed by Ryosuke Niwa.
1161
1162         In case of paragraph merging after deletion if second paragraph
1163         contains non-editable element, then content after the non-editable
1164         element(including non-editable element) will be removed while the
1165         content before the element will be merged with the first paragraph.
1166         This happens becasue endOfParagraphToMove calculation in merging function
1167         stop at editing boundary so endOfParagraphToMove becomes position just
1168         before non-editable content.
1169         With this patch now endOfParagraphToMove is calculated by skipping
1170         over the non-editable element.
1171
1172         Test: editing/deleting/merge-paragraph-contatining-noneditable.html
1173
1174         * editing/DeleteSelectionCommand.cpp:
1175         (WebCore::DeleteSelectionCommand::mergeParagraphs): use CanSkipOverEditingBoundary
1176         condition while calculating endOfParagraphToMove.
1177
1178 2013-10-24  Antoine Quint  <graouts@apple.com>
1179
1180         Web Inspector: Inspector doesn't show webkitTransitionEnd events in the timeline
1181         https://bugs.webkit.org/show_bug.cgi?id=123263
1182
1183         Reviewed by Timothy Hatcher.
1184
1185         A legacy event type is only set on an event in EventTarget::fireEventListeners(Event*)
1186         which is called after we used to call InspectorInstrumentation::willDispatchEvent(), the method
1187         that would ultimately yield the creation of a TimelineRecord for the event in the Web Inspector
1188         frontend, and as a result we would try to dispatch an event with an unprefixed event type to
1189         the frontend, which wouldn't even happen because most likely it wouldn't have listeners for this
1190         unprefixed type.
1191
1192         We now move the call to InspectorInstrumentation::willDispatchEvent() in
1193         EventTarget::fireEventListeners(Event*, EventTargetData*, EventListenerVector&) such that the
1194         correct event type and list of listeners is used to determine what event to dispatch to the frontend.
1195
1196         * dom/EventDispatcher.cpp:
1197         (WebCore::EventDispatcher::dispatchEvent):
1198         Remove calls to InspectorInstrumentation::willDispatchEvent() and InspectorInstrumentation::didDispatchEvent().
1199
1200         * dom/EventTarget.cpp:
1201         (WebCore::EventTarget::fireEventListeners):
1202         Add call to InspectorInstrumentation::willDispatchEvent() before we go through each listener and
1203         call InspectorInstrumentation::willHandleEvent(). Additionally, we refactor some code since we're
1204         getting references to the ScriptExecutionContext and Document upfront now.
1205
1206 2013-10-24  Andreas Kling  <akling@apple.com>
1207
1208         SVG: RenderElement-ize intersectRepaintRectWithResources().
1209         <https://webkit.org/b/123278>
1210
1211         SVGRenderSupport::intersectRepaintRectWithResources() is only ever
1212         called with non-text renderers so make it take RenderElement&.
1213
1214         Had to tweak RenderSVGResource::resourceBoundingBox() to take the
1215         renderer by reference.
1216
1217         Reviewed by Antti Koivisto.
1218
1219 2013-10-24  Joseph Pecoraro  <pecoraro@apple.com>
1220
1221         Web Inspector: Breakpoints in sourceURL named scripts do not work
1222         https://bugs.webkit.org/show_bug.cgi?id=123231
1223
1224         Reviewed by Timothy Hatcher.
1225
1226         Remember a Script's sourceURL and sourceMappingURL. When setting a
1227         breakpoint by URL, check it against the sourceURL or original URL.
1228         If a script had a sourceURL that would have been the only URL sent
1229         to the frontend, so that receives priority.
1230
1231         Test: inspector-protocol/debugger/setBreakpointByUrl-sourceURL.html
1232
1233         * inspector/InspectorDebuggerAgent.cpp:
1234         (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
1235         (WebCore::InspectorDebuggerAgent::didParseSource):
1236         * inspector/InspectorDebuggerAgent.h:
1237         * inspector/ScriptDebugListener.h:
1238
1239 2013-10-23  Alexey Proskuryakov  <ap@apple.com>
1240
1241         Add CryptoKey base class and bindings
1242         https://bugs.webkit.org/show_bug.cgi?id=123216
1243
1244         Reviewed by Sam Weinig.
1245
1246         * crypto/CryptoKey.idl: Added.
1247
1248         * CMakeLists.txt:
1249         * DerivedSources.make:
1250         * GNUmakefile.list.am:
1251         Process the IDL.
1252
1253         * WebCore.xcodeproj/project.pbxproj: Added files.
1254
1255         * bindings/js/JSCryptoKeyCustom.cpp: Added.
1256         (WebCore::JSCryptoKey::algorithm): Use a visitor to build algorithm dictionary
1257         for the key.
1258
1259         * crypto/CryptoAlgorithmDescriptionBuilder.cpp: Added.
1260         * crypto/CryptoAlgorithmDescriptionBuilder.h: Added.
1261         An interface for a visitor we'll use to expose CrytoKey.algorithm in bindings,
1262         and possibly also for storage serialization. Not complete yet, we'll need support
1263         for a few more simple types, and less trivially, for nested algorithms.
1264
1265         * bindings/js/JSCryptoAlgorithmBuilder.cpp: Added.
1266         * bindings/js/JSCryptoAlgorithmBuilder.h: Added.
1267         An implementation that builds an algorithm description dictionary for JS bindings.
1268
1269         * crypto/CryptoKey.cpp: Added.
1270         (WebCore::CryptoKey::~CryptoKey):
1271         (WebCore::CryptoKey::buildAlgorithmDescription):
1272         * crypto/CryptoKey.h: Added.
1273         Added an almost empty implementation. Some of the functions that are currently
1274         marked as pure virtual will likely be implemented in this base class.
1275
1276 2013-10-24  Commit Queue  <commit-queue@webkit.org>
1277
1278         Unreviewed, rolling out r157916.
1279         http://trac.webkit.org/changeset/157916
1280         https://bugs.webkit.org/show_bug.cgi?id=123274
1281
1282         Broke Layout/flexbox-lots-of-data.html on perfbot (Requested
1283         by ap on #webkit).
1284
1285         * rendering/RenderFlexibleBox.cpp:
1286         (WebCore::RenderFlexibleBox::OrderHashTraits::emptyValue):
1287         (WebCore::RenderFlexibleBox::OrderHashTraits::constructDeletedValue):
1288         (WebCore::RenderFlexibleBox::OrderHashTraits::isDeletedValue):
1289         (WebCore::RenderFlexibleBox::OrderIterator::setOrderValues):
1290         (WebCore::RenderFlexibleBox::layoutBlock):
1291         (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
1292         * rendering/RenderFlexibleBox.h:
1293
1294 2013-10-24  Zan Dobersek  <zdobersek@igalia.com>
1295
1296         Comment in ScopedEventQueue::dispatchEvent is unnecessarily verbose
1297         https://bugs.webkit.org/show_bug.cgi?id=123252
1298
1299         Reviewed by Darin Adler.
1300
1301         Shorten the comment about the crash avoidance in ScopedEventQueue::dispatchEvent due to
1302         the calling convention in C++ is left unspecified. The problem was already fixed in r157219
1303         and later adjusted in r157401, but the comment could have been shorter and simpler in both cases.
1304
1305         * dom/ScopedEventQueue.cpp:
1306         (WebCore::ScopedEventQueue::dispatchEvent):
1307
1308 2013-10-24  Alex Christensen  <achristensen@webkit.org>
1309
1310         Removed unused ThreadSafeCoordinatedSurface and CertificateInfoCurl files.
1311         https://bugs.webkit.org/show_bug.cgi?id=123246
1312
1313         Reviewed by Noam Rosenthal.
1314
1315         * WebCore.vcxproj/WebCore.vcxproj:
1316         * WebCore.vcxproj/WebCore.vcxproj.filters:
1317         Removed references to ThreadSafeCoordinatedSurface and CertificateInfoCurl.
1318         * platform/graphics/texmap/coordinated/ThreadSafeCoordinatedSurface.cpp: Removed.
1319         * platform/graphics/texmap/coordinated/ThreadSafeCoordinatedSurface.h: Removed.
1320         * platform/network/curl/CertificateInfoCurl.cpp: Removed.
1321
1322 2013-10-24  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>
1323
1324         Removed Qt workaround.
1325         https://bugs.webkit.org/show_bug.cgi?id=123258
1326
1327         Reviewed by Csaba Osztrogonác.
1328
1329         No change of functionality, no new tests needed.
1330
1331         !$defines case can be removed, because Qt and Android aren't in WebKit trunk,
1332         all ports (Mac,EFL,GTK,Windows) call this script with --defines option now
1333
1334         * css/make-css-file-arrays.pl:
1335
1336 2013-10-24  Antti Koivisto  <antti@apple.com>
1337
1338         Remove a stray space.
1339         
1340         Not reviewed.
1341
1342         * accessibility/AccessibilityRenderObject.cpp:
1343         (WebCore::AccessibilityRenderObject::addImageMapChildren):
1344
1345 2013-10-24  Antti Koivisto  <antti@apple.com>
1346
1347         Element iterator functions should take reference
1348         https://bugs.webkit.org/show_bug.cgi?id=123267
1349
1350         Reviewed by Andreas Kling.
1351
1352         The argument has to be non-null.
1353
1354 2013-10-24  Ryuan Choi  <ryuan.choi@samsung.com>
1355
1356         [EFL] Build break with latest EFL 1.8 libraries.
1357         https://bugs.webkit.org/show_bug.cgi?id=123245
1358
1359         Reviewed by Gyuyoung Kim.
1360
1361         After fixed build break on EFL 1.8 at r138326, EFL libraries are changed
1362         Eo typedef and splitted header files which contain version macro.
1363
1364         * platform/Widget.h: Changed Eo typedef.
1365         * platform/efl/EflScreenUtilities.h: Ditto.
1366         * platform/graphics/Image.h: Ditto.
1367
1368 2013-10-24  Andreas Kling  <akling@apple.com>
1369
1370         RenderSVGResource: Pass RenderElement to fill/strokePaintingResource.
1371         <https://webkit.org/b/123242>
1372
1373         We never pass text renderers to these functions, so make them take
1374         RenderElement instead.
1375
1376         Reviewed by Anders Carlsson.
1377
1378 2013-10-24  Carlos Garcia Campos  <cgarcia@igalia.com>
1379
1380         [GObject bindings] Make EventTarget interface introspectable
1381         https://bugs.webkit.org/show_bug.cgi?id=77835
1382
1383         Reviewed by Gustavo Noronha Silva.
1384
1385         Add webkit_dom_event_target_add_event_listener_with_closure and
1386         webkit_dom_event_target_remove_event_listener_with_closure to be
1387         used by GObject instrospection bindings. Instead of receving a
1388         GCallback, which makes the function not introspectable, they
1389         receive a GClosure.
1390
1391         * bindings/gobject/GObjectEventListener.cpp:
1392         (WebCore::GObjectEventListener::GObjectEventListener):
1393         (WebCore::GObjectEventListener::~GObjectEventListener):
1394         (WebCore::GObjectEventListener::gobjectDestroyed):
1395         (WebCore::GObjectEventListener::handleEvent):
1396         (WebCore::GObjectEventListener::operator==):
1397         * bindings/gobject/GObjectEventListener.h:
1398         (WebCore::GObjectEventListener::addEventListener):
1399         (WebCore::GObjectEventListener::removeEventListener):
1400         * bindings/gobject/WebKitDOMEventTarget.cpp:
1401         (webkit_dom_event_target_dispatch_event):
1402         (webkit_dom_event_target_add_event_listener):
1403         (webkit_dom_event_target_remove_event_listener):
1404         (webkit_dom_event_target_add_event_listener_with_closure):
1405         (webkit_dom_event_target_remove_event_listener_with_closure):
1406         * bindings/gobject/WebKitDOMEventTarget.h:
1407         * bindings/scripts/CodeGeneratorGObject.pm:
1408         (GenerateEventTargetIface):
1409         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
1410         (webkit_dom_test_event_target_dispatch_event):
1411         (webkit_dom_test_event_target_add_event_listener):
1412         (webkit_dom_test_event_target_remove_event_listener):
1413         * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
1414         (webkit_dom_test_node_dispatch_event):
1415         (webkit_dom_test_node_add_event_listener):
1416         (webkit_dom_test_node_remove_event_listener):
1417
1418 2013-10-14  Sergio Villar Senin  <svillar@igalia.com>
1419
1420         Use a Vector instead of HashSet to computed the orderValues in RenderFlexibleBox
1421         https://bugs.webkit.org/show_bug.cgi?id=118620
1422
1423         Reviewed by Antti Koivisto.
1424
1425         Turns out that order is extremelly uncommon so using a Vector is
1426         much less expensive. This also special-cases the much common case
1427         of only having order of value 0 by using Vectors with just one
1428         preallocated member.
1429
1430         Also added the performance test that shows a ~1% win when using a
1431         vector instead of the HashSet.
1432
1433         * rendering/RenderFlexibleBox.cpp:
1434         (WebCore::RenderFlexibleBox::OrderIterator::setOrderValues):
1435         (WebCore::RenderFlexibleBox::layoutBlock):
1436         (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
1437         * rendering/RenderFlexibleBox.h:
1438
1439 2013-10-23  ChangSeok Oh  <changseok.oh@collabora.com>
1440
1441         Unreviewed build fix since r157823.
1442         FilterOperation::getOperationType() is renamed FilterOperation::type().
1443
1444         * platform/graphics/texmap/TextureMapperGL.cpp:
1445         (WebCore::prepareFilterProgram):
1446         (WebCore::TextureMapperGL::drawTexture):
1447         (WebCore::TextureMapperGL::drawUsingCustomFilter):
1448         (WebCore::TextureMapperGL::drawFiltered):
1449         (WebCore::BitmapTextureGL::applyFilters):
1450         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
1451         (WebCore::CoordinatedGraphicsScene::injectCachedCustomFilterPrograms):
1452
1453 2013-10-23  Ryuan Choi  <ryuan.choi@samsung.com>
1454
1455         Unreviewed build fix on CMake based ports when CMAKE_BUILD_TYPE is not given.
1456
1457         When CMAKE_BUILD_TYPE is empty, FIND command will be failed.
1458
1459         * CMakeLists.txt:
1460
1461 2013-10-23  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1462
1463         Integrate css3-images image-orientation with existing EXIF support
1464         https://bugs.webkit.org/show_bug.cgi?id=91566
1465
1466         Reviewed by Beth Dakin.
1467
1468         Original patch by David Barr(davidbarr@chromium.org).
1469
1470         This patch passes an information of image orientation into existing EXIF support functions
1471         (draw() functions of image classes mainly). We need to let the functions to know the information
1472         in order to meet the image-orientation requirement.
1473
1474         Spec: http://dev.w3.org/csswg/css-images-3/#the-image-orientation
1475         The css3-images module specification is at last call.
1476
1477         Test: fast/css/image-orientation/image-orientation.html
1478         Image orientation test is to check if incorrect rotation value can be fixed with correct orientation.
1479
1480         * loader/cache/CachedImage.cpp:
1481         (WebCore::CachedImage::imageSizeForRenderer):
1482         * page/DragController.cpp:
1483         (WebCore::DragController::doImageDrag):
1484         * page/Frame.cpp:
1485         (WebCore::Frame::nodeImage):
1486         * platform/graphics/BitmapImage.cpp:
1487         (WebCore::BitmapImage::updateSize):
1488         (WebCore::BitmapImage::sizeRespectingOrientation):
1489         (WebCore::BitmapImage::drawPattern):
1490         * platform/graphics/BitmapImage.h:
1491         * platform/graphics/CrossfadeGeneratedImage.cpp:
1492         (WebCore::CrossfadeGeneratedImage::draw):
1493         * platform/graphics/CrossfadeGeneratedImage.h:
1494         * platform/graphics/GeneratedImage.h:
1495         * platform/graphics/GradientImage.cpp:
1496         (WebCore::GradientImage::draw):
1497         * platform/graphics/GradientImage.h:
1498         * platform/graphics/Image.cpp:
1499         (WebCore::Image::draw):
1500         (WebCore::Image::drawTiled):
1501         * platform/graphics/Image.h:
1502         * platform/graphics/blackberry/ImageBlackBerry.cpp:
1503         * platform/graphics/cairo/BitmapImageCairo.cpp:
1504         (WebCore::BitmapImage::draw):
1505         * platform/graphics/cg/BitmapImageCG.cpp:
1506         * platform/graphics/cg/PDFDocumentImage.cpp:
1507         (WebCore::PDFDocumentImage::draw):
1508         * platform/graphics/cg/PDFDocumentImage.h:
1509         * platform/graphics/win/ImageCGWin.cpp:
1510         (WebCore::BitmapImage::getHBITMAPOfSize):
1511         (WebCore::BitmapImage::drawFrameMatchingSourceSize):
1512         * platform/graphics/wince/ImageBufferWinCE.cpp:
1513         (WebCore::BufferedImage::draw):
1514         * platform/graphics/wince/ImageWinCE.cpp:
1515         (WebCore::BitmapImage::draw):
1516         * platform/mac/DragImageMac.mm:
1517         (WebCore::createDragImageFromImage):
1518         * rendering/RenderEmbeddedObject.cpp:
1519         (WebCore::RenderEmbeddedObject::paintSnapshotImage):
1520         * rendering/RenderImage.cpp:
1521         (WebCore::RenderImage::styleDidChange):
1522         * rendering/RenderSnapshottedPlugIn.cpp:
1523         (WebCore::RenderSnapshottedPlugIn::paintSnapshot):
1524         * rendering/style/RenderStyle.cpp:
1525         (WebCore::RenderStyle::changeRequiresLayout):
1526         * svg/graphics/SVGImage.cpp:
1527         (WebCore::SVGImage::drawForContainer):
1528         (WebCore::SVGImage::nativeImageForCurrentFrame):
1529         (WebCore::SVGImage::draw):
1530         * svg/graphics/SVGImage.h:
1531         * svg/graphics/SVGImageForContainer.cpp:
1532         (WebCore::SVGImageForContainer::draw):
1533         * svg/graphics/SVGImageForContainer.h:
1534
1535 2013-10-23  Andreas Kling  <akling@apple.com>
1536
1537         Tighten typing in SVGInlineTextBox a bit.
1538         <https://webkit.org/b/123238>
1539
1540         Use RenderBoxModelObject& instead of generic RenderObject* in some
1541         places where it happens as a natural consequence of keeping the
1542         original return type from InlineBox::parent()->renderer().
1543
1544         Reviewed by Anders Carlsson.
1545
1546 2013-10-23  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1547
1548         Introduce RENDER_OBJECT_TYPE_CASTS to replace manual toFoo() in child render object
1549         https://bugs.webkit.org/show_bug.cgi?id=123150
1550
1551         Reviewed by Andreas Kling.
1552
1553         As a step to let toFoo use TYPE_CASTS_BASE, toRenderFoo() can use it for child render object.
1554         So, this patch introduces RENDER_OBJECT_TYPE_CASTS based on the TYPE_CASTS_BASE. This will
1555         generate plenty more helper functions for render object type cast.
1556
1557         Some unnecessary type casts are fixed by this change.
1558
1559         No new tests, no behavior changes.
1560
1561         * rendering/RenderBlock.h:
1562         * rendering/RenderBlockFlow.h:
1563         * rendering/RenderBox.h:
1564         * rendering/RenderBoxModelObject.h:
1565         * rendering/RenderButton.h:
1566         * rendering/RenderCounter.h:
1567         * rendering/RenderElement.h:
1568         (WebCore::RenderElement::generatingElement):
1569         * rendering/RenderEmbeddedObject.h:
1570         * rendering/RenderFieldset.h:
1571         * rendering/RenderFileUploadControl.h:
1572         * rendering/RenderFlexibleBox.h:
1573         * rendering/RenderFlowThread.h:
1574         * rendering/RenderFrame.h:
1575         * rendering/RenderFrameSet.h:
1576         * rendering/RenderFullScreen.h:
1577         * rendering/RenderHTMLCanvas.h:
1578         * rendering/RenderIFrame.h:
1579         * rendering/RenderImage.h:
1580         * rendering/RenderInline.h:
1581         * rendering/RenderLayerModelObject.h:
1582         * rendering/RenderLineBreak.h:
1583         * rendering/RenderListBox.h:
1584         * rendering/RenderListItem.h:
1585         * rendering/RenderMedia.h:
1586         * rendering/RenderMenuList.h:
1587         * rendering/RenderMeter.h:
1588         * rendering/RenderMultiColumnBlock.h:
1589         * rendering/RenderMultiColumnSet.h:
1590         * rendering/RenderNamedFlowFragment.h:
1591         * rendering/RenderNamedFlowThread.h:
1592         * rendering/RenderObject.h:
1593         * rendering/RenderProgress.h:
1594         * rendering/RenderQuote.h:
1595         * rendering/RenderRegion.h:
1596         * rendering/RenderReplaced.h:
1597         * rendering/RenderRubyRun.h:
1598         * rendering/RenderScrollbarPart.h:
1599         * rendering/RenderSearchField.h:
1600         * rendering/RenderSlider.h:
1601         * rendering/RenderSnapshottedPlugIn.h:
1602         * rendering/RenderTable.h:
1603         * rendering/RenderTableCaption.h:
1604         * rendering/RenderTableCell.h:
1605         * rendering/RenderTableCol.h:
1606         * rendering/RenderTableRow.h:
1607         * rendering/RenderTableSection.h:
1608         * rendering/RenderText.h:
1609         * rendering/RenderTextControl.h:
1610         * rendering/RenderTextControlMultiLine.h:
1611         * rendering/RenderTextControlSingleLine.h:
1612         * rendering/RenderWidget.h:
1613         * rendering/mathml/RenderMathMLBlock.h:
1614         * rendering/svg/RenderSVGContainer.h:
1615         * rendering/svg/RenderSVGGradientStop.h:
1616         * rendering/svg/RenderSVGImage.h:
1617         * rendering/svg/RenderSVGInlineText.h:
1618         * rendering/svg/RenderSVGPath.h:
1619         * rendering/svg/RenderSVGResourceFilter.h:
1620         * rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
1621         (WebCore::RenderSVGResourceFilterPrimitive::styleDidChange):
1622         * rendering/svg/RenderSVGRoot.h:
1623         * rendering/svg/RenderSVGShape.h:
1624         * rendering/svg/RenderSVGText.h:
1625         * rendering/svg/RenderSVGTextPath.h:
1626         * rendering/svg/RenderSVGViewportContainer.h:
1627         * rendering/svg/SVGInlineFlowBox.cpp:
1628         (WebCore::SVGInlineFlowBox::paint):
1629
1630 2013-10-23  Myles C. Maxfield  <mmaxfield@apple.com>
1631
1632         Include misspelling dot gap width when centering misspelling dots
1633         https://bugs.webkit.org/show_bug.cgi?id=122365
1634
1635         Reviewed by Simon Fraser.
1636
1637         When calculating where to place the misspelling dots, we find the
1638         maximum number of full dots that can fit under the misspelled word,
1639         and then center a run of that many dots. However, when we're
1640         centering the run, we are only considering the size of the extra
1641         fractional dot that we cut off. However, the dot image has a "gap"
1642         of transparent pixels (which visually provide tracking for the dots)
1643         which visually appears to be empty space. We should take this gap
1644         space into consideration when centering the run of dots. We also
1645         should make sure that our dots start on integral pixel boundaries
1646         because otherwise we can't set the phase of the dot run properly.
1647
1648         Test: editing/spelling/centering-misspelling-dots.html
1649
1650         * platform/graphics/mac/GraphicsContextMac.mm:
1651         (WebCore::GraphicsContext::drawLineForDocumentMarker):
1652
1653 2013-10-23  Andreas Kling  <akling@apple.com>
1654
1655         SVGFilterBuilder should not be ref-counted.
1656         <https://webkit.org/b/123222>
1657
1658         These objects are singly-owned and do not need ref counting.
1659
1660         Reviewed by Anders Carlsson.
1661
1662 2013-10-23  Brady Eidson  <beidson@apple.com>
1663
1664         Remove unused IDBBackingStoreLevelDB default constructor.
1665
1666         Rubberstamped by Anders Carlsson.
1667
1668         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
1669         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
1670
1671 2013-10-23  Alex Christensen  <achristensen@webkit.org>
1672
1673         Added Texture Mapper and Coordinated Graphics to Windows build for WinCairo.
1674         https://bugs.webkit.org/show_bug.cgi?id=123215
1675
1676         Reviewed by Brent Fulgham.
1677
1678         * WebCore.vcxproj/WebCore.vcxproj:
1679         * WebCore.vcxproj/WebCore.vcxproj.filters:
1680         Added source files for Texture Mapper to Windows build.
1681         * WebCore.vcxproj/WebCoreCairo.props:
1682         Added Texture Mapper include directories for WinCairo.
1683
1684 2013-10-23  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
1685
1686         Adding mock class to test RTCDataChannelHandler
1687         https://bugs.webkit.org/show_bug.cgi?id=123205
1688
1689         Reviewed by Eric Carlson.
1690
1691         Now RTCPeerConnectionHandler-datachannel LayouTest can run properly.
1692         Also updated the expected file, removing the reliable property check (which was removed in the spec)
1693
1694         Existing tests updated.
1695
1696         * CMakeLists.txt:
1697         * platform/mediastream/RTCDataChannelHandlerClient.h:
1698         * platform/mock/RTCDataChannelHandlerMock.cpp: Added.
1699         * platform/mock/RTCDataChannelHandlerMock.h: Added.
1700         * platform/mock/RTCNotifiersMock.cpp:
1701         (WebCore::RemoteDataChannelNotifier::RemoteDataChannelNotifier):
1702         (WebCore::RemoteDataChannelNotifier::fire):
1703         (WebCore::DataChannelStateNotifier::DataChannelStateNotifier):
1704         (WebCore::DataChannelStateNotifier::fire):
1705         * platform/mock/RTCNotifiersMock.h:
1706         * platform/mock/RTCPeerConnectionHandlerMock.cpp:
1707         (WebCore::RTCPeerConnectionHandlerMock::createDataChannel):
1708
1709 2013-10-23  Andreas Kling  <akling@apple.com>
1710
1711         Clock should not be ref-counted.
1712         <https://webkit.org/b/123217>
1713
1714         The Clock object is only ever owned by the MediaController,
1715         so remove the ref counting and store it in a std::unique_ptr.
1716
1717         Also slapped the Clock subclasses with FINAL and OVERRIDE.
1718
1719         Reviewed by Anders Carlsson.
1720
1721 2013-10-23  Mark Lam  <mark.lam@apple.com>
1722
1723         Fix assertion in DatabaseManager::detailsForNameAndOrigin() to be iOS friendly.
1724         https://bugs.webkit.org/show_bug.cgi?id=123218.
1725
1726         Reviewed by Joseph Pecoraro.
1727
1728         No new tests.
1729
1730         * Modules/webdatabase/DatabaseManager.cpp:
1731         (WebCore::DatabaseManager::detailsForNameAndOrigin):
1732
1733 2013-10-23  Alex Christensen  <achristensen@webkit.org>
1734
1735         Separated USE(CA) from USE(ACCELERATED_COMPOSITING) to prepare WinCairo for accelerated compositing.
1736         https://bugs.webkit.org/show_bug.cgi?id=123214
1737
1738         Reviewed by Brent Fulgham.
1739
1740         * platform/graphics/PlatformLayer.h:
1741         Added TextureMapperPlatformLayer PlatformLayer declaration for WinCairo.
1742         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
1743         (WebCore::MediaPlayerPrivateFullscreenWindow::createWindow):
1744         (WebCore::MediaPlayerPrivateFullscreenWindow::wndProc):
1745         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h:
1746         Added USE(CA) where necessary to compile WinCairo with accelerated compositing.
1747
1748 2013-10-23  Myles C. Maxfield  <mmaxfield@apple.com>
1749
1750         Antialias underlines if they're not axis-aligned
1751         https://bugs.webkit.org/show_bug.cgi?id=123004
1752
1753         Reviewed by Simon Fraser.
1754
1755         In order to make underlines crisp, GraphicsContext:drawLineForText
1756         modifies the bounds of the underline rect in order to make the rect
1757         device-pixel-aligned, and then turns off antialiasing when drawing
1758         the line. This makes sense when the underline is axis-aligned, but
1759         doesn't when the rect is rotated or skewed. Therefore, we should
1760         only opt-in to this behavior if the underline we're about to draw
1761         is axis-aligned. This requires figuring out whether or not the
1762         current transformation is axis-aligned every time
1763         GraphicsContext::drawLineForText is called, which will incur a small
1764         performance hit. However, this is justified by underlines looking
1765         much better (antialiased) when the context is rotated or skewed.
1766
1767         Tests: svg/custom/foreign-object-skew.html
1768                svg/zoom/page/zoom-foreignObject.html
1769                svg/zoom/text/zoom-foreignObject.html:
1770
1771         * platform/graphics/cg/GraphicsContextCG.cpp:
1772         (WebCore::GraphicsContext::drawLineForText):
1773
1774 2013-10-23  Mark Lam  <mark.lam@apple.com>
1775
1776         Re-instate ProposedDatabases needed by detailsForNameAndOrigin().
1777         https://bugs.webkit.org/show_bug.cgi?id=123131.
1778
1779         Reviewed by Geoffrey Garen.
1780
1781         Test: storage/websql/open-database-expand-quota.html
1782
1783         If a webpage tries to create a database that exceeds the database size
1784         quota for that security origin, the WebKit1 quota request mechanism
1785         uses detailsForNameAndOrigin() to get the requested size of the database
1786         (that the webpage is attempting to open) in order to determine whether
1787         to increase the quota or not.
1788
1789         Previously, detailsForNameAndOrigin() relies on the ProposedDatabase
1790         mechanism to provide this size information. This change re-instates the
1791         ProposedDatabase mechanism so that WebKit1 client code that relies on
1792         this behavior will continue to work.
1793
1794         * Modules/webdatabase/DatabaseManager.cpp:
1795         (WebCore::DatabaseManager::ProposedDatabase::ProposedDatabase):
1796         (WebCore::DatabaseManager::ProposedDatabase::~ProposedDatabase):
1797         (WebCore::DatabaseManager::DatabaseManager):
1798         (WebCore::DatabaseManager::openDatabaseBackend):
1799         (WebCore::DatabaseManager::fullPathForDatabase):
1800         (WebCore::DatabaseManager::detailsForNameAndOrigin):
1801         * Modules/webdatabase/DatabaseManager.h:
1802         (WebCore::DatabaseManager::ProposedDatabase::origin):
1803         (WebCore::DatabaseManager::ProposedDatabase::details):
1804
1805 2013-10-23  Tim Horton  <timothy_horton@apple.com>
1806
1807         [cg] Fix the capitalization of kCGImageSourceSkipMetaData (-> Metadata)
1808         https://bugs.webkit.org/show_bug.cgi?id=122918
1809
1810         Reviewed by Anders Carlsson.
1811
1812         * platform/graphics/cg/ImageSourceCG.cpp:
1813         (WebCore::imageSourceOptions):
1814         The capitalization of kCGImageSourceSkipMetaData changed to
1815         kCGImageSourceSkipMetadata in Mountain Lion.
1816
1817 2013-10-23  Brady Eidson  <beidson@apple.com>
1818
1819         Make IDBDatabaseBackendLevelDB.cpp be cross platform
1820         https://bugs.webkit.org/show_bug.cgi?id=123027
1821
1822         Attentively reviewed by Dean Jackson.
1823
1824         Move it out of the indexeddb/leveldb directory, and rename it to IDBDatabaseBackendImpl.
1825
1826         Project files:
1827         * CMakeLists.txt:
1828         * GNUmakefile.list.am:
1829         * WebCore.vcxproj/WebCore.vcxproj:
1830         * WebCore.vcxproj/WebCore.vcxproj.filters:
1831         * WebCore.xcodeproj/project.pbxproj:
1832
1833         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp.
1834         * Modules/indexeddb/IDBDatabaseBackendImpl.h: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h.
1835
1836         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
1837         (WebCore::IDBDatabaseBackendInterface::isIDBDatabaseBackendImpl): Add to support a required cast in LevelDB code.
1838
1839         * Modules/indexeddb/IDBFactoryBackendInterface.h:
1840
1841         * Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp:
1842         * Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h:
1843
1844         * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
1845         (WebCore::IDBFactoryBackendLevelDB::deleteDatabase):
1846         (WebCore::IDBFactoryBackendLevelDB::open):
1847         (WebCore::IDBFactoryBackendLevelDB::maybeCreateTransactionBackend):
1848         * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
1849
1850         * Modules/indexeddb/leveldb/IDBLevelDBCoding.cpp:
1851         * Modules/indexeddb/leveldb/IDBLevelDBCoding.h:
1852
1853         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
1854         (WebCore::IDBTransactionBackendLevelDB::create):
1855         (WebCore::IDBTransactionBackendLevelDB::IDBTransactionBackendLevelDB):
1856         (WebCore::IDBTransactionBackendLevelDB::scheduleVersionChangeOperation):
1857         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
1858
1859         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp:
1860         (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
1861         (WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::perform):
1862         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.h:
1863
1864 2013-10-23  Daniel Bates  <dabates@apple.com>
1865
1866         [iOS] Upstream more ARMv7s bits
1867         https://bugs.webkit.org/show_bug.cgi?id=123052
1868
1869         Reviewed by Joseph Pecoraro.
1870
1871         Define exported symbol file for armv7s and arm64.
1872
1873         * Configurations/WebCore.xcconfig:
1874
1875 2013-10-23  Krzysztof Wolanski  <k.wolanski@samsung.com>
1876
1877         [GTK] accessibility/self-referencing-aria-labelledby.html is failing
1878         https://bugs.webkit.org/show_bug.cgi?id=121594
1879
1880         Reviewed by Mario Sanchez Prada.
1881
1882         According to http://www.w3.org/TR/REC-html40/struct/objects.html#edef-IMG
1883         description of image element should be determined by alt attribute, then
1884         if it is empty by title attributte.
1885
1886         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
1887         (webkitAccessibleGetDescription):
1888
1889 2013-10-15  Andreas Kling  <akling@apple.com>
1890
1891         Tighten animation-driven restyle to operate on Element only.
1892         <https://webkit.org/b/122820>
1893
1894         Text nodes are never directly animated, so we can tighten this code
1895         to work on Element only. This happens naturally since the code was
1896         already working with RenderElement everywhere.
1897
1898         Reviewed by Antti Koivisto.
1899
1900 2013-10-22  Andreas Kling  <akling@apple.com>
1901
1902         Even more PassRef<RenderStyle>!
1903         <https://webkit.org/b/123147>
1904
1905         Convert more of the WebCore code to use PassRef for RenderStyle
1906         in places where they are known to be non-null.
1907
1908         Re-landing this without region styling since that caused some
1909         assertions last time.
1910
1911         Reviewed by Antti Koivisto.
1912
1913 2013-10-22  Zoltan Horvath  <zoltan@webkit.org>
1914
1915         Refactor LineBreaker::nextSegmentBreak, add BreakingContext that holds all its state
1916         https://bugs.webkit.org/show_bug.cgi?id=123038
1917
1918         Reviewed by David Hyatt.
1919
1920         I followed Levi's logic on Blink's nextSegmentBreak refactoring (https://chromiumcodereview.appspot.com/25054004). 
1921         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
1922         introduces BreakingContext as a separate class. I added new methods for each condition, which were originally located in
1923         nextSegmentBreak. I also removed the goto-s from the code. All the new methods are inline in order to avoid introducing any
1924         performance regression. The change makes the code so much cleaner and understandable.
1925
1926         This change would be the first step of the nextSegmentBreak refactoring, I wanted to keep things in place in RenderBlockLineLayout.cpp
1927         for now, but I'm planning to separate BreakingContext into a new file and do additional changes to make things nicer. I'm tracking
1928         the entire progress under http://webkit.org/b/121261 meta bug.
1929
1930         No new tests, covered by existing tests.
1931         - I updated 1 expected result, because there was a 1 pixel difference on the result, which I believe comes from a rounding situation.
1932
1933         * rendering/RenderBlockFlow.h:
1934         * rendering/RenderBlockLineLayout.cpp:
1935         (WebCore::BreakingContext::BreakingContext):
1936         (WebCore::BreakingContext::currentObject):
1937         (WebCore::BreakingContext::lineBreak):
1938         (WebCore::BreakingContext::lineBreakRef):
1939         (WebCore::BreakingContext::lineWidth):
1940         (WebCore::BreakingContext::atEnd):
1941         (WebCore::BreakingContext::clearLineBreakIfFitsOnLine):
1942         (WebCore::BreakingContext::commitLineBreakAtCurrentWidth):
1943         (WebCore::BreakingContext::initializeForCurrentObject):
1944         (WebCore::BreakingContext::increment):
1945         (WebCore::BreakingContext::handleBR):
1946         (WebCore::BreakingContext::handleOutOfFlowPositioned):
1947         (WebCore::BreakingContext::handleFloat):
1948         (WebCore::BreakingContext::handleEmptyInline):
1949         (WebCore::BreakingContext::handleReplaced):
1950         (WebCore::nextCharacter):
1951         (WebCore::BreakingContext::handleText):
1952         (WebCore::textBeginsWithBreakablePosition):
1953         (WebCore::BreakingContext::canBreakAtThisPosition):
1954         (WebCore::BreakingContext::commitAndUpdateLineBreakIfNeeded):
1955         (WebCore::BreakingContext::handleEndOfLine):
1956         (WebCore::LineBreaker::nextSegmentBreak):
1957
1958 2013-10-22  Commit Queue  <commit-queue@webkit.org>
1959
1960         Unreviewed, rolling out r157826.
1961         http://trac.webkit.org/changeset/157826
1962         https://bugs.webkit.org/show_bug.cgi?id=123197
1963
1964         Caused some regions tests to assert (Requested by smfr on
1965         #webkit).
1966
1967         * dom/Document.cpp:
1968         (WebCore::Document::styleForElementIgnoringPendingStylesheets):
1969         * dom/Document.h:
1970         * dom/Element.cpp:
1971         (WebCore::Element::styleForRenderer):
1972         * dom/Element.h:
1973         * dom/ElementRareData.h:
1974         (WebCore::ElementRareData::setComputedStyle):
1975         (WebCore::ElementRareData::resetComputedStyle):
1976         * html/HTMLTitleElement.cpp:
1977         (WebCore::HTMLTitleElement::textWithDirection):
1978         * page/animation/AnimationController.cpp:
1979         (WebCore::AnimationController::updateAnimations):
1980         * page/animation/CompositeAnimation.cpp:
1981         (WebCore::CompositeAnimation::animate):
1982         * page/animation/CompositeAnimation.h:
1983         * rendering/RenderElement.cpp:
1984         (WebCore::RenderElement::createFor):
1985         * rendering/RenderElement.h:
1986         (WebCore::RenderElement::setStyleInternal):
1987         * rendering/RenderRegion.cpp:
1988         (WebCore::RenderRegion::setRegionObjectsRegionStyle):
1989         (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
1990         (WebCore::RenderRegion::computeStyleInRegion):
1991         (WebCore::RenderRegion::computeChildrenStyleInRegion):
1992         (WebCore::RenderRegion::setObjectStyleInRegion):
1993         * rendering/RenderRegion.h:
1994         * style/StyleResolveTree.cpp:
1995         (WebCore::Style::resolveLocal):
1996
1997 2013-10-22  Ryuan Choi  <ryuan.choi@samsung.com>
1998
1999         [EFL] Remove HAVE_GLX macro
2000         https://bugs.webkit.org/show_bug.cgi?id=123191
2001
2002         Reviewed by Gyuyoung Kim.
2003
2004         Since r138313, HAVE(GLX) was replaced to USE(GLX) except in GraphicsSurfaceToken.h.
2005
2006         * platform/graphics/surfaces/GraphicsSurfaceToken.h:
2007         Replace HAVE(GLX) to USE(GLX)
2008
2009 2013-10-22  Mark Lam  <mark.lam@apple.com>
2010
2011         Gardening: fix broken build on Windows.
2012         https://bugs.webkit.org/show_bug.cgi?id=123174.
2013
2014         Not reviewed.
2015
2016         No new tests.
2017
2018         * WebCore.vcxproj/WebCore.vcxproj:
2019         * WebCore.vcxproj/WebCore.vcxproj.filters:
2020
2021 2013-10-22  Brady Eidson  <beidson@apple.com>
2022
2023         Get rid of IDBObjectStoreBackendLevelDB
2024         https://bugs.webkit.org/show_bug.cgi?id=123174
2025
2026         Reviewed by Tim Horton.
2027
2028         This file was kind of a dumping ground.
2029         Its contents can be merged into IDBBackingStoreInterface and a new IDBIndexWriter class.
2030
2031         Also took the opportunity to do a little bit of RefPtr<> and pointer-vs-reference cleanup.
2032
2033         * CMakeLists.txt:
2034         * GNUmakefile.list.am:
2035         * WebCore.xcodeproj/project.pbxproj:
2036
2037         * Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.cpp: Removed.
2038         * Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.h: Removed.
2039
2040         * Modules/indexeddb/IDBIndexWriter.cpp: Added.
2041         (WebCore::IDBIndexWriter::IDBIndexWriter):
2042         (WebCore::IDBIndexWriter::writeIndexKeys):
2043         (WebCore::IDBIndexWriter::verifyIndexKeys):
2044         (WebCore::IDBIndexWriter::addingKeyAllowed):
2045         * Modules/indexeddb/IDBIndexWriter.h: Added.
2046         (WebCore::IDBIndexWriter::create):
2047
2048         * Modules/indexeddb/IDBBackingStoreInterface.h:
2049         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
2050
2051         * Modules/indexeddb/IDBMetadata.h:
2052         * Modules/indexeddb/IDBTransactionBackendInterface.h:
2053
2054         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
2055         (WebCore::IDBBackingStoreLevelDB::makeIndexWriters):
2056         (WebCore::IDBBackingStoreLevelDB::generateKey):
2057         (WebCore::IDBBackingStoreLevelDB::updateKeyGenerator):
2058         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
2059
2060         * Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp:
2061         (WebCore::IDBDatabaseBackendLevelDB::setIndexKeys):
2062         (WebCore::IDBDatabaseBackendLevelDB::setIndexesReady):
2063         * Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h:
2064
2065         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
2066         (WebCore::IDBTransactionBackendLevelDB::schedulePutOperation):
2067         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
2068
2069         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp:
2070         (WebCore::PutOperation::perform):
2071         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.h:
2072         (WebCore::PutOperation::create):
2073         (WebCore::PutOperation::PutOperation):
2074
2075 2013-10-22  Dean Jackson  <dino@apple.com>
2076
2077         [WebGL] Implement a software rendering option on Mac
2078         https://bugs.webkit.org/show_bug.cgi?id=123177
2079
2080         Reviewed by Tim Horton.
2081
2082         Implement a way to force software OpenGL rendering
2083         for WebGL, via a Setting/Preference.
2084
2085         No new tests. We intentionally hide the capabilities of
2086         the renderer from the content, so you can't test for
2087         this setting. However, manual inspection is pretty
2088         obvious. Just go to a page with a complex shader
2089         such as https://www.shadertoy.com/view/lss3WS.
2090
2091         * html/canvas/WebGLRenderingContext.cpp:
2092         (WebCore::WebGLRenderingContext::create): If we're forcing software
2093         rendering, mark the context attributes as such.
2094         * page/Settings.in: New setting key.
2095         * platform/graphics/GraphicsContext3D.h: New flag in Attributes.
2096         (WebCore::GraphicsContext3D::Attributes::Attributes):
2097         * platform/graphics/mac/GraphicsContext3DMac.mm:
2098         (WebCore::GraphicsContext3D::GraphicsContext3D): Slight update to the
2099         algorithm that sets a pixel format. If we're forcing software rendering,
2100         obviously we never want to create an accelerated pixel format.
2101         * platform/graphics/filters/CustomFilterGlobalContext.cpp:
2102         (WebCore::CustomFilterGlobalContext::prepareContextIfNeeded): Set the attribute
2103         here before trying to create the context.
2104         * platform/graphics/filters/CustomFilterGlobalContext.h: Add a forceSoftwareRendering
2105         flag to prepareContextIfNeeded.
2106         * rendering/FilterEffectRenderer.cpp:
2107         (WebCore::createCustomFilterEffect): Check the Setting before creating a custom
2108         filter context.
2109
2110 2013-10-22  Anders Carlsson  <andersca@apple.com>
2111
2112         Revert r157445 since it broke certificates on Mac.
2113         <rdar://problem/15246926&15254017&15269117>
2114
2115         * GNUmakefile.list.am:
2116         * PlatformEfl.cmake:
2117         * WebCore.exp.in:
2118         * WebCore.vcxproj/WebCore.vcxproj:
2119         * WebCore.vcxproj/WebCore.vcxproj.filters:
2120         * WebCore.xcodeproj/project.pbxproj:
2121         * platform/network/ResourceErrorBase.h:
2122         * platform/network/ResourceResponseBase.h:
2123         * platform/network/cf/CertificateInfoCFNet.cpp: Removed.
2124         * platform/network/cf/ResourceResponse.h:
2125         * platform/network/mac/ResourceResponseMac.mm:
2126         (WebCore::ResourceResponse::setCertificateChain):
2127         (WebCore::ResourceResponse::certificateChain):
2128         * platform/network/soup/ResourceError.h:
2129         (WebCore::ResourceError::ResourceError):
2130         (WebCore::ResourceError::tlsErrors):
2131         (WebCore::ResourceError::setTLSErrors):
2132         (WebCore::ResourceError::certificate):
2133         (WebCore::ResourceError::setCertificate):
2134         * platform/network/soup/ResourceErrorSoup.cpp:
2135         (WebCore::ResourceError::tlsError):
2136         (WebCore::ResourceError::platformCopy):
2137         (WebCore::ResourceError::platformCompare):
2138         * platform/network/soup/ResourceResponse.h:
2139         (WebCore::ResourceResponse::ResourceResponse):
2140         (WebCore::ResourceResponse::soupMessageCertificate):
2141         (WebCore::ResourceResponse::setSoupMessageCertificate):
2142         (WebCore::ResourceResponse::soupMessageTLSErrors):
2143         (WebCore::ResourceResponse::setSoupMessageTLSErrors):
2144         * platform/network/soup/ResourceResponseSoup.cpp:
2145         (WebCore::ResourceResponse::toSoupMessage):
2146         (WebCore::ResourceResponse::updateFromSoupMessage):
2147
2148 2013-10-22  Jer Noble  <jer.noble@apple.com>
2149
2150         [Media] Refactor supportsType() factory method to take a parameters object.
2151         https://bugs.webkit.org/show_bug.cgi?id=122489
2152
2153         Reviewed by Eric Carlson.
2154
2155         In order to support adding new conditional properties with which to decide
2156         what MediaPlayerPrivate subclass to create, replace the two versions of the
2157         supportsType() factory method with a single one taking a parameters object.
2158
2159         At the same time, add a 'isMediaSource' parameter to that object, allowing
2160         MediaPlayerPrivate subclasses which support the same type and codecs but
2161         which do not both support MediaSource to be distinguised.
2162
2163         * platform/graphics/MediaPlayer.cpp:
2164         (WebCore::bestMediaEngineForSupportParameters): Renamed from
2165             bestMediaEngineForTypeAndCodecs.
2166         (WebCore::MediaPlayer::nextBestMediaEngine): Added convenience function.
2167         (WebCore::MediaPlayer::loadWithNextMediaEngine): Call nextBestMediaEngine()
2168         (WebCore::MediaPlayer::supportsType): Pass parameter object.
2169         (WebCore::MediaPlayer::networkStateChanged): Call nextBestMediaEngine().
2170         * platform/graphics/MediaPlayer.h:
2171         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
2172         (WebCore::MediaPlayerPrivateAVFoundationCF::supportsType): Handle parameter object.
2173         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
2174         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
2175         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2176         (WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine): Remove extraneous
2177             extendedSupportsType method.
2178         (WebCore::MediaPlayerPrivateAVFoundationObjC::supportsType): Handle parameter object.
2179         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
2180         (WebCore::MediaPlayerPrivate::supportsType): Ditto.
2181         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
2182         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2183         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
2184         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
2185         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2186         (WebCore::MediaPlayerPrivateQTKit::registerMediaEngine): Remove extraneous
2187             extendedSupportsType method.
2188         (WebCore::MediaPlayerPrivateQTKit::supportsType): Handle parameter object.
2189         * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
2190         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::supportsType): Ditto.
2191         * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h:
2192         * platform/graphics/wince/MediaPlayerPrivateWinCE.h:
2193
2194 2013-10-22  Andreas Kling  <akling@apple.com>
2195
2196         Merge SVGRenderBlock::styleWillChange() into styleDidChange().
2197         <https://webkit.org/b/123181>
2198
2199         I meant to do this one in r157787, but better late than never.
2200
2201         Reviewed by Geoffrey Garen.
2202
2203 2013-10-22  Sam Weinig  <sam@webkit.org>
2204
2205         CTTE: Modernize RenderBlock a bit
2206         https://bugs.webkit.org/show_bug.cgi?id=123162
2207
2208         Reviewed by Andreas Kling.
2209
2210         Start threading references through RenderBlock. While we 
2211         are here, do some selective modernization as well.
2212
2213 2013-10-22  Andreas Kling  <akling@apple.com>
2214
2215         Even more PassRef<RenderStyle>!
2216         <https://webkit.org/b/123147>
2217
2218         Convert the remaining WebCore code to use PassRef for RenderStyle
2219         wherever they are known to be non-null.
2220
2221         Reviewed by Antti Koivisto.
2222
2223 2013-10-22  Commit Queue  <commit-queue@webkit.org>
2224
2225         Unreviewed, rolling out r157819.
2226         http://trac.webkit.org/changeset/157819
2227         https://bugs.webkit.org/show_bug.cgi?id=123180
2228
2229         Broke 32-bit builds (Requested by smfr on #webkit).
2230
2231         * Configurations/WebCore.xcconfig:
2232
2233 2013-10-22  Antti Koivisto  <antti@apple.com>
2234
2235         Rename deleteLineBoxTree to deleteLines
2236         https://bugs.webkit.org/show_bug.cgi?id=123176
2237
2238         Reviewed by Andreas Kling.
2239
2240         RenderBlock::deleteLineBoxTree -> RenderBlock::deleteLines
2241         RenderInline::deleteLineBoxTree -> RenderInline::deleteLines
2242
2243 2013-10-22  Tim Horton  <timothy_horton@apple.com>
2244
2245         {ClipPathOperation, FilterOperation}::getOperationType() should not include 'get'
2246         https://bugs.webkit.org/show_bug.cgi?id=123172
2247
2248         Reviewed by Simon Fraser.
2249
2250         No new tests, just a rename.
2251
2252         "get" in WebCore tends to mean that the function has out arguments; these have no arguments.
2253         Rename FilterOperation::getOperationType() to FilterOperation::type().
2254         I noticed that ClipPathOperation had the same mistake, so I fixed it there too.
2255
2256         Removed long and useless list of files.
2257
2258 2013-10-22  Samuel White  <samuel_white@apple.com>
2259
2260         AX: Add paramAttrs to fetch start and end text markers in a given rect.
2261         https://bugs.webkit.org/show_bug.cgi?id=122164
2262
2263         Reviewed by Chris Fleizach.
2264
2265         Added ability to fetch end and start text markers inside a given bounds. This gives ScreenReaders
2266         like VoiceOver a way to retrieve the text markers for a specified column of page text.
2267
2268         Test: platform/mac/accessibility/text-marker-for-bounds.html
2269
2270         * accessibility/AccessibilityObject.cpp:
2271         (WebCore::AccessibilityObject::mainFrame):
2272         (WebCore::AccessibilityObject::topDocument):
2273         (WebCore::AccessibilityObject::visiblePositionForBounds):
2274         * accessibility/AccessibilityObject.h:
2275         * accessibility/AccessibilityRenderObject.cpp:
2276         * accessibility/AccessibilityRenderObject.h:
2277         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
2278         (-[WebAccessibilityObjectWrapper screenToContents:]):
2279         (-[WebAccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
2280         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
2281
2282 2013-10-22  Zoltan Horvath  <zoltan@webkit.org>
2283
2284         [CSS Shapes] Match adjustLogicalLineTopAndLogicalHeightIfNeeded's implementation with Blink's
2285         https://bugs.webkit.org/show_bug.cgi?id=123033
2286
2287         Reviewed by David Hyatt.
2288
2289         In Blink I made this function in a bit different way. This change modifies it
2290         to be identical, which helps a lot in the future cross-merging patches.
2291
2292         No new tests, covered by existing texts.
2293
2294         * rendering/RenderBlockLineLayout.cpp:
2295         (WebCore::RenderBlockFlow::adjustLogicalLineTopAndLogicalHeightIfNeeded):
2296
2297 2013-10-22  Daniel Bates  <dabates@apple.com>
2298
2299         [iOS] Upstream more ARMv7s bits
2300         https://bugs.webkit.org/show_bug.cgi?id=123052
2301
2302         Reviewed by Joseph Pecoraro.
2303
2304         * Configurations/WebCore.xcconfig:
2305
2306 2013-10-22  Simon Fraser  <simon.fraser@apple.com>
2307
2308         Try to fix Mavericks build; use <> for framework include.
2309
2310         * page/CaptionUserPreferencesMediaAF.cpp:
2311
2312 2013-10-22  Tim Horton  <timothy_horton@apple.com>
2313
2314         GammaFilterOperation seems to be dead code
2315         https://bugs.webkit.org/show_bug.cgi?id=123173
2316
2317         Reviewed by Simon Fraser.
2318
2319         * platform/graphics/filters/FilterOperation.cpp:
2320         * platform/graphics/filters/FilterOperation.h:
2321         Remove dead code.
2322
2323 2013-10-22  Antti Koivisto  <antti@apple.com>
2324
2325         Rename some line box functions to be just about lines
2326         https://bugs.webkit.org/show_bug.cgi?id=123168
2327
2328         Reviewed by Dave Hyatt.
2329
2330         firstLineBoxBaseline -> firstLineBaseline
2331         hasInlineBoxChildren -> hasLines
2332         
2333         Also use hasLines in a bunch of places where firstLineBox() was used.
2334
2335         * accessibility/AccessibilityRenderObject.cpp:
2336         (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
2337         
2338             Also use hasRenderedText() instead of firstTextBox()
2339
2340         * rendering/RenderFullScreen.cpp:
2341         
2342             Fix namespace.
2343
2344 2013-10-22  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
2345
2346         Adding Mock class to test RTCPeerConnection
2347         https://bugs.webkit.org/show_bug.cgi?id=122848
2348
2349         Reviewed by Eric Carlson.
2350
2351         The following tests can be run:
2352
2353             RTCPeerConnection-createAnswer.html
2354             RTCPeerConnection-createOffer.html
2355             RTCPeerConnection-ice.html
2356             RTCPeerConnection-localDescription.html
2357             RTCPeerConnection-remoteDescription.html
2358             RTCPeerConnection-state.html
2359
2360         Tests that require a MediaStream object, by invoking getUserMedia,
2361         are not ready to run yet.
2362
2363         No new tests needed.
2364
2365         * CMakeLists.txt:
2366         * platform/mediastream/RTCPeerConnectionHandler.cpp:
2367         (WebCore::createHandler):
2368         * platform/mediastream/RTCPeerConnectionHandler.h:
2369         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
2370         * platform/mock/RTCNotifiersMock.cpp: Added.
2371         * platform/mock/RTCNotifiersMock.h: Added.
2372         * platform/mock/RTCPeerConnectionHandlerMock.cpp: Added.
2373         * platform/mock/RTCPeerConnectionHandlerMock.h: Copied from Source/WebCore/platform/mediastream/RTCPeerConnectionHandler.h.
2374         * platform/mock/TimerEventBasedMock.h: Added.
2375         * testing/Internals.cpp:
2376         (WebCore::Internals::Internals):
2377         (WebCore::Internals::enableMockRTCPeerConnectionHandler):
2378         * testing/Internals.h:
2379
2380 2013-10-22  Zan Dobersek  <zdobersek@igalia.com>
2381
2382         WebCore::fillWithEmptyClients adopts new empty clients before leaking their pointers
2383         https://bugs.webkit.org/show_bug.cgi?id=122945
2384
2385         Reviewed by Anders Carlsson.
2386
2387         * loader/EmptyClients.cpp:
2388         (WebCore::fillWithEmptyClients): Store the static empty clients as NeverDestroyed, rather than
2389         adopting the pointer of each heap-allocated object and then immediately leaking that pointer.
2390
2391 2013-10-22  Zan Dobersek  <zdobersek@igalia.com>
2392
2393         Simplify HRTFDatabaseLoader's load map
2394         https://bugs.webkit.org/show_bug.cgi?id=122944
2395
2396         Reviewed by Eric Carlson.
2397
2398         * platform/audio/HRTFDatabaseLoader.cpp:
2399         (WebCore::loaderMap): Return a reference to a NeverDestroyed HashMap that maps sample rates to loaders.
2400         (WebCore::HRTFDatabaseLoader::createAndLoadAsynchronouslyIfNecessary):
2401         (WebCore::HRTFDatabaseLoader::~HRTFDatabaseLoader):
2402         * platform/audio/HRTFDatabaseLoader.h: Remove the LoaderMap type definition, the private singleton of that type
2403         and the singleton's unused getter.
2404
2405 2013-10-22  Tim Horton  <timothy_horton@apple.com>
2406
2407         Remote Layer Tree: Support hardware accelerated filters
2408         https://bugs.webkit.org/show_bug.cgi?id=123139
2409
2410         Reviewed by Anders Carlsson.
2411
2412         * WebCore.exp.in:
2413         Export a variety of filter-related things.
2414
2415         * platform/graphics/ca/PlatformCAFilters.h:
2416         * platform/graphics/ca/mac/PlatformCAFiltersMac.mm:
2417         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
2418         (PlatformCALayerMac::setFilters):
2419         * platform/graphics/ca/win/PlatformCAFiltersWin.cpp:
2420         (PlatformCAFilters::setFiltersOnLayer):
2421         setFiltersOnLayer should take a PlatformLayer instead of a PlatformCALayer
2422         as its argument, because it doesn't need a PlatformCALayer, and this way
2423         we can share code with the RemoteLayerTreeHost, which only has PlatformLayers
2424         and not PlatformCALayers.
2425
2426 2013-10-22  Brendan Long  <b.long@cablelabs.com>
2427
2428         cue.text fails for some track element cues
2429         https://bugs.webkit.org/show_bug.cgi?id=81123
2430
2431         Reviewed by Eric Carlson.
2432
2433         Test: media/track/track-long-captions-file.html
2434
2435         * html/track/WebVTTParser.cpp:
2436         (WebCore::WebVTTParser::parseBytes): Use buffer when we don't have full lines.
2437         (WebCore::WebVTTParser::fileFinished): Force file to finish parsing.
2438         (WebCore::WebVTTParser::hasRequiredFileIdentifier): Simplify due to using String.
2439         (WebCore::WebVTTParser::collectCueText): Don't automatically create cues when we run out of data.
2440         (WebCore::WebVTTParser::collectNextLine): Use buffer.
2441         * html/track/WebVTTParser.h: Add m_buffer and Finished state.
2442         * loader/TextTrackLoader.cpp:
2443         (WebCore::TextTrackLoader::notifyFinished): Call m_parser->fileFinished() when done.
2444
2445 2013-10-22  peavo@outlook.com  <peavo@outlook.com>
2446
2447         [WinCairo] Compile error.
2448         https://bugs.webkit.org/show_bug.cgi?id=123161
2449
2450         Reviewed by Brent Fulgham.
2451
2452         * rendering/RenderFlowThread.h: Move USE(ACCELERATED_COMPOSITING) guard to expose needed type.
2453
2454 2013-10-21  Brady Eidson  <beidson@apple.com>
2455
2456         Add a cross-platform IDBRecordIdentifier
2457         https://bugs.webkit.org/show_bug.cgi?id=123138
2458
2459         Reviewed by Andreas Kling.
2460
2461         Add the cross-platform header:
2462         * Modules/indexeddb/IDBRecordIdentifier.h: Added.
2463         (WebCore::IDBRecordIdentifier::create):
2464         (WebCore::IDBRecordIdentifier::encodedPrimaryKey):
2465         (WebCore::IDBRecordIdentifier::version):
2466         (WebCore::IDBRecordIdentifier::reset):
2467         (WebCore::IDBRecordIdentifier::IDBRecordIdentifier):
2468         * WebCore.xcodeproj/project.pbxproj:
2469         * GNUmakefile.list.am:
2470
2471         Remove the old abstract and LevelDB classes:
2472         * Modules/indexeddb/IDBBackingStoreInterface.h:
2473         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
2474
2475         Use the cross-platform one everywhere:
2476         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
2477         (WebCore::IDBBackingStoreLevelDB::putRecord):
2478         (WebCore::IDBBackingStoreLevelDB::deleteRecord):
2479         (WebCore::IDBBackingStoreLevelDB::keyExistsInObjectStore):
2480         (WebCore::IDBBackingStoreLevelDB::putIndexDataForRecord):
2481         (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
2482         (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
2483
2484         * Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp:
2485         (WebCore::IDBDatabaseBackendLevelDB::setIndexKeys):
2486
2487         * Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.cpp:
2488         (WebCore::IDBObjectStoreBackendLevelDB::IndexWriter::writeIndexKeys):
2489
2490         * Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.h:
2491         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp:
2492         (WebCore::PutOperation::perform):
2493
2494 2013-10-22  Andrei Bucur  <abucur@adobe.com>
2495
2496         [CSS Regions] Possible performance regression after r157567
2497         https://bugs.webkit.org/show_bug.cgi?id=123016
2498
2499         Reviewed by Andreas Kling.
2500
2501         The revision 157567 http://trac.webkit.org/changeset/157567 may have regressed
2502         Parser/html5-full-render by ~1.1% and Parser/html-parser by ~2%. These changes
2503         try to optimize the initial patch, based on Andreas Kling's review.
2504
2505         The patch also adds a couple of refactorings that should make the code easier to read:
2506         - the CSS Shapes functions are now wrapped in a single #if clause
2507         - the CSS Shapes and CSS Regions pre-layout preparations are wrapped in a helper function
2508
2509         The RenderFlowThread::logicalWidthChangedInRegionsForBlock function is optimized by passing
2510         it information about the state of the relayout children flag. If the flag is true already,
2511         some of the steps are skipped.
2512
2513         Tests: no new tests.
2514
2515         * dom/Element.cpp:
2516         (WebCore::Element::webkitGetRegionFlowRanges):
2517         * inspector/InspectorOverlay.cpp:
2518         (WebCore::buildObjectForElementInfo):
2519         * rendering/RenderBlock.cpp:
2520         (WebCore::shapeInfoRequiresRelayout):
2521         (WebCore::RenderBlock::updateShapesBeforeBlockLayout):
2522         (WebCore::RenderBlock::computeShapeSize):
2523         (WebCore::RenderBlock::prepareShapesAndPaginationBeforeBlockLayout):
2524         * rendering/RenderBlock.h:
2525         * rendering/RenderBlockFlow.cpp:
2526         (WebCore::RenderBlockFlow::layoutBlock):
2527         (WebCore::RenderBlockFlow::createRenderNamedFlowFragmentIfNeeded):
2528         (WebCore::RenderBlockFlow::setRenderNamedFlowFragment):
2529         (WebCore::RenderBlockFlow::ensureRareData):
2530         * rendering/RenderBlockFlow.h:
2531         (WebCore::RenderBlockFlow::RenderBlockFlowRareData::RenderBlockFlowRareData):
2532         (WebCore::RenderElement::isRenderNamedFlowFragmentContainer):
2533         * rendering/RenderDeprecatedFlexibleBox.cpp:
2534         (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
2535         * rendering/RenderElement.h:
2536         (WebCore::RenderElement::generatingElement):
2537         * rendering/RenderFlexibleBox.cpp:
2538         (WebCore::RenderFlexibleBox::layoutBlock):
2539         * rendering/RenderFlowThread.cpp:
2540         (WebCore::RenderFlowThread::logicalWidthChangedInRegionsForBlock):
2541         * rendering/RenderFlowThread.h:
2542         * rendering/RenderGrid.cpp:
2543         (WebCore::RenderGrid::layoutBlock):
2544         * rendering/RenderNamedFlowFragment.h:
2545         * rendering/RenderObject.cpp:
2546         * rendering/RenderObject.h:
2547         * rendering/RenderTreeAsText.cpp:
2548         (WebCore::write):
2549         * style/StyleResolveTree.cpp:
2550         (WebCore::Style::elementInsideRegionNeedsRenderer):
2551
2552 2013-10-22  Andreas Kling  <akling@apple.com>
2553
2554         CSSStyleSheet constructor functions should return PassRef.
2555         <https://webkit.org/b/123156>
2556
2557         Make CSSStyleSheet::create*() return PassRef and tighten some call
2558         sites that were using them. Most callers didn't need any tweaks to
2559         take advantage of PassRef.
2560
2561         Reviewed by Antti Koivisto.
2562
2563 2013-10-22  Andreas Kling  <akling@apple.com>
2564
2565         CTTE: RenderMathMLFraction always has a MathMLInlineContainerElement.
2566         <https://webkit.org/b/123154>
2567
2568         This renderer is never anonymous and always has a corresponding
2569         MathMLInlineContainerElement. Overload element() with a tighter
2570         return type.
2571
2572         Also marked the class FINAL and made most member functions private.
2573
2574         Reviewed by Antti Koivisto.
2575
2576 2013-10-22  Andreas Kling  <akling@apple.com>
2577
2578         FontGlyphs constructor functions should return PassRef.
2579         <https://webkit.org/b/123159>
2580
2581         Made the two FontGlyphs creator functions return PassRef and tweaked
2582         the FontGlyphsCache in Font.cpp to make more efficient use of it.
2583
2584         Reviewed by Antti Koivisto.
2585
2586 2013-10-22  Andreas Kling  <akling@apple.com>
2587
2588         Fix some more code to use RenderElement instead of RenderObject.
2589         <https://webkit.org/b/123149>
2590
2591         Using RenderElement where possible lets us skip the isRenderElement()
2592         branch in RenderObject::style() and generates much tighter code.
2593
2594         Reviewed by Antti Koivisto.
2595
2596 2013-10-22  Andreas Kling  <akling@apple.com>
2597
2598         Merge SVG renderers' styleWillChange() into styleDidChange().
2599         <https://webkit.org/b/123108>
2600
2601         This work can just as well be done after setting the style.
2602         Three more styleWillChange() overloads gone.
2603
2604         Reviewed by Antti Koivisto.
2605
2606 2013-10-22  Andreas Kling  <akling@apple.com>
2607
2608         CSSValueList constructor functions should return PassRef.
2609         <https://webkit.org/b/123151>
2610
2611         These functions always return objects, and thus can return PassRef.
2612         Also made CSSValueList::createFromParserValueList() take a reference
2613         since that function is only ever called with a non-null value.
2614
2615         Reviewed by Antti Koivisto.
2616
2617 2013-10-22  Andreas Kling  <akling@apple.com>
2618
2619         Avoid parent style ref churn in createTextRendererIfNeeded().
2620         <https://webkit.org/b/123148>
2621
2622         There's no need to take a temporary ref on the parent's RenderStyle
2623         while creating a text renderer. It's not going away, and the text
2624         renderer is not going to participate in ownership afterwards.
2625
2626         Reviewed by Antti Koivisto.
2627
2628 2013-10-22  Andreas Kling  <akling@apple.com>
2629
2630         Remove some unnecessary null checks in RenderElement::setStyle().
2631         <https://webkit.org/b/123146>
2632
2633         After assigning the new style to RenderElement::m_style, we know that
2634         it'll be non-null, so remove all the checking for this.
2635
2636         Reviewed by Antti Koivisto.
2637
2638 2013-10-22  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2639
2640         Introduce ACCESSIBILITY_OBJECT_TYPE_CASTS to replace manual toFoo() in accessibility child class
2641         https://bugs.webkit.org/show_bug.cgi?id=123140
2642
2643         Reviewed by Andreas Kling.
2644
2645         As a step to let toFoo use TYPE_CASTS_BASE, DEFINE_TYPE_CASTS can be used for toFoo() in accessibility
2646         child class. The DEFINE_TYPE_CASTS will generate plenty more helper functions for accessibility type cast.
2647
2648         No new tests, no behavior changes.
2649
2650         * accessibility/AccessibilityList.h:
2651         * accessibility/AccessibilityMenuList.h:
2652         * accessibility/AccessibilityMockObject.h:
2653         * accessibility/AccessibilityNodeObject.h:
2654         * accessibility/AccessibilityObject.h:
2655         * accessibility/AccessibilityRenderObject.h:
2656         * accessibility/AccessibilitySVGRoot.h:
2657         * accessibility/AccessibilityScrollView.h:
2658         * accessibility/AccessibilitySpinButton.h:
2659         * accessibility/AccessibilityTable.h:
2660
2661 2013-10-22  Brian Holt  <brian.holt@samsung.com>
2662
2663         [GTK] Add WebKit2 API for TLS errors
2664         https://bugs.webkit.org/show_bug.cgi?id=120160
2665
2666         Reviewed by Carlos Garcia Campos.
2667
2668         Added a new constructor for CertificateInfo under Soup.
2669
2670         * platform/network/CertificateInfo.h:
2671         * platform/network/soup/CertificateInfoSoup.cpp:
2672         (WebCore::CertificateInfo::CertificateInfo): New constructor using
2673         GTlsCertificateFlags and GTlsCertificate.
2674
2675 2013-10-22  Mihnea Ovidenie  <mihnea@adobe.com>
2676
2677         [CSSRegions] Use RenderStyle::hasFlowFrom when needed
2678         https://bugs.webkit.org/show_bug.cgi?id=122543
2679
2680         Reviewed by David Hyatt.
2681
2682         Rename RenderStyle::hasStyleRegion -> RenderStyle::hasFlowFrom.
2683         Use RenderStyle::hasFlowFrom() helper function instead of directly
2684         checking the value of RenderStyle::regionThread().
2685
2686         No change of functionality, covered by existing tests.
2687
2688         * css/CSSComputedStyleDeclaration.cpp:
2689         (WebCore::contentToCSSValue):
2690         (WebCore::ComputedStyleExtractor::propertyValue):
2691         * css/StyleResolver.cpp:
2692         (WebCore::StyleResolver::adjustRenderStyle):
2693         * dom/PseudoElement.cpp:
2694         (WebCore::PseudoElement::didAttachRenderers):
2695         * dom/PseudoElement.h:
2696         (WebCore::pseudoElementRendererIsNeeded):
2697         * rendering/RenderBlockFlow.cpp:
2698         (WebCore::RenderBlockFlow::createRenderNamedFlowFragmentIfNeeded):
2699         * rendering/RenderLayer.cpp:
2700         (WebCore::RenderLayer::shouldBeNormalFlowOnly):
2701         * rendering/style/RenderStyle.h:
2702
2703 2013-10-21  Brent Fulgham  <bfulgham@apple.com>
2704
2705         [WIN] Properly support reverse animations without needing software fallback.
2706         https://bugs.webkit.org/show_bug.cgi?id=85121
2707
2708         Reviewed by Dean Jackson.
2709
2710         Testing is provided by existing animation tests.
2711
2712         * platform/animation/TimingFunction.h:
2713         (WebCore::CubicBezierTimingFunction::createReversed): Added.
2714         * platform/graphics/ca/GraphicsLayerCA.cpp:
2715         (WebCore::GraphicsLayerCA::addAnimation): The early return when performing a reverse or
2716         autoreverse animation is no longer needed.
2717         * platform/graphics/ca/PlatformCAAnimation.h:
2718         * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
2719         (toCAMediaTimingFunction): Use new reversed function.
2720         * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
2721         (toCACFTimingFunction): Ditto.
2722         (PlatformCAAnimation::setTimingFunction): Pass 'reverse' flag.
2723         (PlatformCAAnimation::setTimingFunctions): Ditto.
2724
2725 2013-10-21  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2726
2727         Use TYPE_CASTS_BASE for CSS_VALUE_TYPE_CASTS
2728         https://bugs.webkit.org/show_bug.cgi?id=123126
2729
2730         Reviewed by Andreas Kling.
2731
2732         TYPE_CASTS_BASE was moved to common place to be used by all toFoo().
2733         CSS_VALUE_TYPE_CASTS starts to use it for CSS child value. This change
2734         generates plenty more helper functions for toCSSFooValue().
2735
2736         Additionally, this use support that toWebKitCSSFooValue, which couldn't
2737         use CSS_VALUE_TYPE_CASTS macro.
2738
2739         No new tests, no behavior change.
2740
2741         * css/CSSAspectRatioValue.h:
2742         * css/CSSBorderImageSliceValue.h:
2743         * css/CSSCalculationValue.h:
2744         * css/CSSCanvasValue.h:
2745         * css/CSSCrossfadeValue.h:
2746         * css/CSSCursorImageValue.h:
2747         * css/CSSFilterImageValue.h:
2748         * css/CSSFontFaceSrcValue.h:
2749         * css/CSSFontFeatureValue.h:
2750         * css/CSSFontValue.h:
2751         * css/CSSFunctionValue.h:
2752         * css/CSSGradientValue.h:
2753         * css/CSSGridTemplateValue.h:
2754         * css/CSSImageSetValue.h:
2755         * css/CSSImageValue.h:
2756         * css/CSSInheritedValue.h:
2757         * css/CSSInitialValue.h:
2758         * css/CSSLineBoxContainValue.h:
2759         * css/CSSPrimitiveValue.h:
2760         * css/CSSReflectValue.h:
2761         * css/CSSShadowValue.h:
2762         * css/CSSTimingFunctionValue.h:
2763         * css/CSSUnicodeRangeValue.h:
2764         * css/CSSValue.h:
2765         * css/CSSValueList.h:
2766         * css/CSSVariableValue.h:
2767         * css/WebKitCSSArrayFunctionValue.h:
2768         * css/WebKitCSSFilterValue.h:
2769         * css/WebKitCSSMatFunctionValue.h:
2770         * css/WebKitCSSMixFunctionValue.h:
2771         * css/WebKitCSSSVGDocumentValue.h:
2772         * css/WebKitCSSShaderValue.h:
2773
2774 2013-10-21  Joone Hur  <joone.hur@intel.com>
2775
2776         Bad cast with toRenderBoxModelObject in RenderBlock::updateFirstLetter()
2777         https://bugs.webkit.org/show_bug.cgi?id=123013
2778
2779         Reviewed by Andreas Kling.
2780
2781         No new tests because this was reported by Google ClusterFuzz.
2782         https://codereview.chromium.org/25713009/
2783
2784         There is a case that toRenderBoxModelObject causes a crash in RenderBlock::updateFirstLetter() 
2785         due to bad cast, so we need to check whether the RenderObject is a RenderBoxModelObject 
2786         by running isBoxModelObject() before calling toRenderBoxModelObject.  
2787
2788         * rendering/RenderBlock.cpp:
2789         (WebCore::RenderBlock::updateFirstLetter):
2790
2791 2013-10-21  Brady Eidson  <beidson@apple.com>
2792
2793         Make IDBTransactionCoordinatorLevelDB cross platform
2794         https://bugs.webkit.org/show_bug.cgi?id=123124
2795
2796         Enthusiastically reviewed by Tim Horton.
2797
2798         * CMakeLists.txt:
2799         * GNUmakefile.list.am:
2800         * WebCore.xcodeproj/project.pbxproj:
2801
2802         Make more methods pure virtual in the interface:
2803         * Modules/indexeddb/IDBTransactionBackendInterface.h:
2804         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
2805         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
2806
2807         Update the name of the class, and use IDBTransactionBackendInterface instead of IDBTransactionBackendLeveDB:
2808         * Modules/indexeddb/IDBTransactionCoordinator.cpp: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionCoordinatorLevelDB.cpp.
2809         (WebCore::IDBTransactionCoordinator::create):
2810         (WebCore::IDBTransactionCoordinator::IDBTransactionCoordinator):
2811         (WebCore::IDBTransactionCoordinator::~IDBTransactionCoordinator):
2812         (WebCore::IDBTransactionCoordinator::didCreateTransaction):
2813         (WebCore::IDBTransactionCoordinator::didStartTransaction):
2814         (WebCore::IDBTransactionCoordinator::didFinishTransaction):
2815         (WebCore::IDBTransactionCoordinator::isActive):
2816         (WebCore::IDBTransactionCoordinator::processStartedTransactions):
2817         (WebCore::doScopesOverlap):
2818         (WebCore::IDBTransactionCoordinator::canRunTransaction):
2819         * Modules/indexeddb/IDBTransactionCoordinator.h: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionCoordinatorLevelDB.h.
2820
2821         Update the name of the class elsewhere:
2822         * Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp:
2823         (WebCore::IDBDatabaseBackendLevelDB::IDBDatabaseBackendLevelDB):
2824         * Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h:
2825         (WebCore::IDBDatabaseBackendLevelDB::transactionCoordinator):
2826         * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
2827
2828 2013-10-21  Daniel Bates  <dabates@apple.com>
2829
2830         [iOS] Upstream JSGlobalObject::shouldInterruptScriptBeforeTimeout()
2831         https://bugs.webkit.org/show_bug.cgi?id=123045
2832
2833         Reviewed by Joseph Pecoraro.
2834
2835         * bindings/js/JSDOMWindowBase.cpp:
2836         (WebCore::shouldInterruptScriptToPreventInfiniteRecursionWhenClosingPage): Added.
2837         (WebCore::JSDOMWindowBase::shouldInterruptScript): Extracted comment and assertion
2838         about null Page object into WebCore::shouldInterruptScriptToPreventInfiniteRecursionWhenClosingPage()
2839         so that it can be shared by both this function and JSDOMWindowBase::shouldInterruptScriptBeforeTimeout().
2840         (WebCore::JSDOMWindowBase::shouldInterruptScriptBeforeTimeout):
2841         * bindings/js/JSDOMWindowBase.h:
2842         * bindings/js/JSWorkerGlobalScopeBase.cpp:
2843         (WebCore::JSWorkerGlobalScopeBase::shouldInterruptScriptBeforeTimeout): Added.
2844         * bindings/js/JSWorkerGlobalScopeBase.h:
2845         * loader/EmptyClients.h: Added isStopping(). We'll land the iOS chrome client implementation
2846         in a subsequent patch.
2847         * page/ChromeClient.h: Added isStopping().
2848
2849 2013-10-21  Anders Carlsson  <andersca@apple.com>
2850
2851         Navigation policy callback not called when performing the same fragment navigation twice
2852         https://bugs.webkit.org/show_bug.cgi?id=123121
2853         <rdar://problem/15230466>
2854
2855         Reviewed by Beth Dakin.
2856
2857         There's code in PolicyChecker::checkNavigationPolicy that will call the decision function right away 
2858         if the requests are equal, without consulting any policy client. Because of this, make sure to empty out
2859         the last checked request of the document loader when doing a fragment navigation.
2860
2861         * loader/FrameLoader.cpp:
2862         (WebCore::FrameLoader::loadURL):
2863         (WebCore::FrameLoader::loadWithDocumentLoader):
2864
2865 2013-10-21  Jer Noble  <jer.noble@apple.com>
2866
2867         Unreviewed build fix; unprotect the declaration of updateSleepDisabling();
2868
2869         * html/HTMLMediaElement.h:
2870
2871 2013-10-20  Mark Lam  <mark.lam@apple.com>
2872
2873         Avoid JSC debugger overhead unless needed.
2874         https://bugs.webkit.org/show_bug.cgi?id=123084.
2875
2876         Reviewed by Geoffrey Garen.
2877
2878         No new tests.
2879
2880         - If no breakpoints are set, we now avoid calling the debug hook callbacks.
2881         - If no break on exception is set, we also avoid exception event debug callbacks.
2882         - When we return from the ScriptDebugServer to the JSC::Debugger, we may no
2883           longer call the debug hook callbacks if not needed. Hence, the m_currentCallFrame
2884           pointer in the ScriptDebugServer may become stale. To avoid this issue, before
2885           returning, the ScriptDebugServer will clear its m_currentCallFrame if
2886           needsOpDebugCallbacks() is false.
2887
2888         * bindings/js/ScriptDebugServer.cpp:
2889         (WebCore::ScriptDebugServer::setBreakpoint):
2890         (WebCore::ScriptDebugServer::removeBreakpoint):
2891         (WebCore::ScriptDebugServer::clearBreakpoints):
2892         (WebCore::ScriptDebugServer::setPauseOnExceptionsState):
2893         (WebCore::ScriptDebugServer::setPauseOnNextStatement):
2894         (WebCore::ScriptDebugServer::breakProgram):
2895         (WebCore::ScriptDebugServer::stepIntoStatement):
2896         (WebCore::ScriptDebugServer::dispatchDidContinue):
2897         (WebCore::ScriptDebugServer::exception):
2898         (WebCore::ScriptDebugServer::didReachBreakpoint):
2899         * inspector/InspectorDebuggerAgent.cpp:
2900         (WebCore::InspectorDebuggerAgent::reset):
2901
2902 2013-10-21  Myles C. Maxfield  <mmaxfield@apple.com>
2903
2904         Grammar markers are not updated when switching between 1x and 2x
2905         https://bugs.webkit.org/show_bug.cgi?id=122146
2906
2907         Reviewed by Dean Jackson.
2908
2909         When running editing/spelling/grammar-markers-hidpi.html, the 2x
2910         grammar/spelling dot resources are cached. If you then run
2911         editing/spelling/grammar-markers.html without tearing down WebKit,
2912         it re-uses the 2x dots. The difference between the two tests is a call
2913         to testRunner.setBackingScaleFactor().
2914
2915         We create a NSColor from an NSImage, and remember it in a static
2916         variable. However, NSColor inspects the current graphics context to
2917         determine which resolution to use, and then remembers that decision.
2918         Therefore, we want to recreate the NSColor whenever the device pixel
2919         ratio changes. This patch adds a new static function to GraphicsContext
2920         which recreates this NSColor every time the ratio changes.
2921
2922         Tests: editing/spelling/grammar-markers.html
2923                editing/spelling/inline_spelling_markers.html
2924
2925         * platform/graphics/mac/GraphicsContextMac.mm:
2926         (WebCore::makePattern):
2927         (WebCore::GraphicsContext::drawLineForDocumentMarker):
2928
2929 2013-10-21  Simon Fraser  <simon.fraser@apple.com>
2930
2931         Use pink layer borders for compositing layers with a contents layer
2932         https://bugs.webkit.org/show_bug.cgi?id=123118
2933
2934         Reviewed by Dean Jackson.
2935
2936         With the existing layer border colors, it's not possible to distinguish an empty
2937         layer from one with solid color, image or video contents. So use a pink color
2938         for those. This makes it easier to diagnose bugs like 122784.
2939
2940         * platform/graphics/GraphicsLayer.cpp:
2941         (WebCore::GraphicsLayer::getDebugBorderInfo):
2942
2943 2013-10-21  Jer Noble  <jer.noble@apple.com>
2944
2945         Limit use of display sleep assertion when <video> element is off-screen.
2946         https://bugs.webkit.org/show_bug.cgi?id=123041
2947
2948         Reviewed by Darin Adler.
2949
2950         Use page visibility changes to suspend and resume the use of sleep assertions in
2951         HTMLMediaElement.
2952
2953         Page will propogate the page visibility change notifications to its Documents, which
2954         will further propogate those notifications to registered elements.  Upon receiving
2955         these notifications, HTMLMediaElement will release or take a DisplaySleepDisabler
2956         token if necessary.
2957
2958         Also, rename HTMLMediaElement's updateDisableSleep() to updateSleepDisabling() and wrap
2959         the implementation in a PLATFORM(MAC) guard rather than at each call site.
2960
2961         * dom/Document.cpp:
2962         (WebCore::Document::registerForVisibilityStateCallbacks): Added registration method.
2963         (WebCore::Document::unregisterForVisibilityStateCallbacks): Added unregistration method.
2964         (WebCore::Document::visibilityStateChanged): Call all registered clients.
2965         * dom/Document.h:
2966         * dom/Element.h:
2967         (WebCore::Element::visibilityStateChanged): Added default virtual method to be overridden
2968             by subclasses.
2969         * html/HTMLMediaElement.cpp:
2970         (WebCore::HTMLMediaElement::HTMLMediaElement): Register for the notification, and check the
2971             current status of Document::hidden().
2972         (WebCore::HTMLMediaElement::~HTMLMediaElement): Unregister for the notification.
2973         (WebCore::HTMLMediaElement::visibilityStateChanged): Set m_displaySleepDisablingSuspended
2974             and call updateSleepDisabling().
2975         (WebCore::HTMLMediaElement::shouldDisableSleep): Add a check for m_displaySleepDisablingSuspended.
2976         * html/HTMLMediaElement.h:
2977         * page/Page.cpp:
2978         (WebCore::Page::setVisibilityState): Pass to every child document.
2979
2980         Rename updateDisableSleep() -> updateSleepDisabling():
2981         * html/HTMLMediaElement.cpp:
2982         (WebCore::HTMLMediaElement::HTMLMediaElement):
2983         (WebCore::HTMLMediaElement::~HTMLMediaElement):
2984         (WebCore::HTMLMediaElement::parseAttribute):
2985         (WebCore::HTMLMediaElement::mediaPlayerRateChanged):
2986         (WebCore::HTMLMediaElement::clearMediaPlayer):
2987         (WebCore::HTMLMediaElement::stop):
2988
2989 2013-10-21  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
2990
2991         MediaStreamTrack now tracks its own state
2992         https://bugs.webkit.org/show_bug.cgi?id=123025
2993
2994         Reviewed by Jer Noble.
2995
2996         The spec says that a MediaStreamSource can be shared by different tracks,
2997         so a track must have its own state tracking, synchronizing with its MediaStreamSource when
2998         the underlying MediaStreamSource changes the readyState.
2999         In the old implementation if a user invoked the stop method, its readyState method was still
3000         returning the MediaStreamSource state, which was wrong.
3001         This also adds a setEnabled method, which can be used to set the state of a track when a
3002         remote peer ends it, for instance.
3003
3004         No new tests needed.
3005
3006         * Modules/mediastream/MediaStreamTrack.cpp:
3007         (WebCore::MediaStreamTrack::readyState):
3008         (WebCore::MediaStreamTrack::setState):
3009         (WebCore::MediaStreamTrack::stopProducingData):
3010         (WebCore::MediaStreamTrack::ended):
3011         (WebCore::MediaStreamTrack::sourceStateChanged):
3012         (WebCore::MediaStreamTrack::trackDidEnd):
3013         * Modules/mediastream/MediaStreamTrack.h:
3014
3015 2013-10-21  Tim Horton  <timothy_horton@apple.com>
3016
3017         Remote Layer Tree: Clean up transaction logging
3018         https://bugs.webkit.org/show_bug.cgi?id=123116
3019
3020         Reviewed by Anders Carlsson.
3021
3022         * WebCore.exp.in:
3023         Export some TextStream functions.
3024
3025 2013-10-21  Brady Eidson  <beidson@apple.com>
3026
3027         Transition most use of IDBBackingStoreLevelDB to IDBBackingStoreInterface
3028         https://bugs.webkit.org/show_bug.cgi?id=123105
3029
3030         Reviewed by Anders Carlsson.
3031
3032         Export more required headers:
3033         * WebCore.xcodeproj/project.pbxproj:
3034
3035         Flesh out many of the pure virtual methods on IDBBackingStoreInterface, as well as
3036         the RecordIdentifier and Cursor classes:
3037
3038         * Modules/indexeddb/IDBBackingStoreInterface.h:
3039         (WebCore::IDBBackingStoreInterface::RecordIdentifier::~RecordIdentifier):
3040         (WebCore::IDBBackingStoreInterface::Cursor::~Cursor):
3041
3042         Use IDBBackingStoreInterface, IDBBackingStoreInterface::RecordIdentifier, and
3043         IDBBackingStoreInterface::Cursor wherever possible:
3044
3045         * Modules/indexeddb/IDBFactoryBackendInterface.cpp:
3046         * Modules/indexeddb/IDBFactoryBackendInterface.h:
3047
3048         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
3049         (WebCore::IDBBackingStoreLevelDB::putRecord):
3050         (WebCore::IDBBackingStoreLevelDB::deleteRecord):
3051         (WebCore::IDBBackingStoreLevelDB::keyExistsInObjectStore):
3052         (WebCore::IDBBackingStoreLevelDB::putIndexDataForRecord):
3053         (WebCore::ObjectStoreKeyCursorImpl::clone):
3054         (WebCore::ObjectStoreCursorImpl::clone):
3055         (WebCore::IndexKeyCursorImpl::clone):
3056         (WebCore::IndexCursorImpl::clone):
3057         (WebCore::IDBBackingStoreLevelDB::openObjectStoreCursor):
3058         (WebCore::IDBBackingStoreLevelDB::openObjectStoreKeyCursor):
3059         (WebCore::IDBBackingStoreLevelDB::openIndexKeyCursor):
3060         (WebCore::IDBBackingStoreLevelDB::openIndexCursor):
3061         (WebCore::IDBBackingStoreLevelDB::Transaction::Transaction):
3062         (WebCore::IDBBackingStoreLevelDB::Transaction::begin):
3063         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
3064         (WebCore::IDBBackingStoreLevelDB::RecordIdentifier::RecordIdentifier):
3065
3066         * Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp:
3067         (WebCore::IDBCursorBackendLevelDB::IDBCursorBackendLevelDB):
3068         * Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h:
3069
3070         (WebCore::IDBCursorBackendLevelDB::create):
3071         * Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp:
3072         (WebCore::IDBDatabaseBackendLevelDB::create):
3073         (WebCore::IDBDatabaseBackendLevelDB::IDBDatabaseBackendLevelDB):
3074         (WebCore::IDBDatabaseBackendLevelDB::backingStore):
3075         (WebCore::IDBDatabaseBackendLevelDB::setIndexKeys):
3076         (WebCore::IDBDatabaseBackendLevelDB::createTransaction):
3077         * Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h:
3078
3079         * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
3080         (WebCore::IDBFactoryBackendLevelDB::createTransactionBackend):
3081         * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
3082
3083         * Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.cpp:
3084         (WebCore::IDBObjectStoreBackendLevelDB::IndexWriter::verifyIndexKeys):
3085         (WebCore::IDBObjectStoreBackendLevelDB::IndexWriter::writeIndexKeys):
3086         (WebCore::IDBObjectStoreBackendLevelDB::IndexWriter::addingKeyAllowed):
3087         (WebCore::IDBObjectStoreBackendLevelDB::makeIndexWriters):
3088         (WebCore::IDBObjectStoreBackendLevelDB::generateKey):
3089         (WebCore::IDBObjectStoreBackendLevelDB::updateKeyGenerator):
3090         * Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.h:
3091
3092         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
3093         (WebCore::IDBTransactionBackendLevelDB::create):
3094         (WebCore::IDBTransactionBackendLevelDB::IDBTransactionBackendLevelDB):
3095         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
3096
3097         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp:
3098         (WebCore::GetOperation::perform):
3099         (WebCore::OpenCursorOperation::perform):
3100         (WebCore::CountOperation::perform):
3101         (WebCore::DeleteRangeOperation::perform):
3102         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.h:
3103         (WebCore::CreateObjectStoreOperation::create):
3104         (WebCore::CreateObjectStoreOperation::CreateObjectStoreOperation):
3105         (WebCore::DeleteObjectStoreOperation::create):
3106         (WebCore::DeleteObjectStoreOperation::DeleteObjectStoreOperation):
3107         (WebCore::CreateIndexOperation::create):
3108         (WebCore::CreateIndexOperation::CreateIndexOperation):
3109         (WebCore::DeleteIndexOperation::create):
3110         (WebCore::DeleteIndexOperation::DeleteIndexOperation):
3111         (WebCore::GetOperation::create):
3112         (WebCore::GetOperation::GetOperation):
3113         (WebCore::PutOperation::create):
3114         (WebCore::PutOperation::PutOperation):
3115         (WebCore::OpenCursorOperation::create):
3116         (WebCore::OpenCursorOperation::OpenCursorOperation):
3117         (WebCore::CountOperation::create):
3118         (WebCore::CountOperation::CountOperation):
3119         (WebCore::DeleteRangeOperation::create):
3120         (WebCore::DeleteRangeOperation::DeleteRangeOperation):
3121         (WebCore::ClearOperation::create):
3122         (WebCore::ClearOperation::ClearOperation):
3123
3124 2013-10-21  Zoltan Horvath  <zoltan@webkit.org>
3125
3126         [CSS Shapes][CSS Regions] Don't apply shape-inside when we have multiple auto-height regions and the height is not resolved
3127         https://bugs.webkit.org/show_bug.cgi?id=123103
3128
3129         Reviewed by David Hyatt.
3130
3131         When we have multiple regions with auto-height, the region's height is not resolved from other elements we can't apply the
3132         the shape on the region. This patch prevents to apply the shape and fixes the behavior for these cases.
3133
3134         Test: fast/regions/shape-inside/shape-inside-on-multiple-autoheight-regions.html
3135
3136         * rendering/RenderBlock.cpp:
3137         (WebCore::RenderBlock::layoutShapeInsideInfo):
3138         * rendering/RenderBlockLineLayout.cpp:
3139         (WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLineInFlowThread):
3140
3141 2013-10-21  Tim Horton  <timothy_horton@apple.com>
3142
3143         Remote Layer Tree: Backing store should take contentsScale into account
3144         https://bugs.webkit.org/show_bug.cgi?id=123106
3145
3146         Reviewed by Simon Fraser.
3147
3148         * WebCore.exp.in:
3149         Export FloatRect::scale.
3150
3151 2013-10-21  Andreas Kling  <akling@apple.com>
3152
3153         RenderScrollbarPart doesn't need styleWillChange().
3154         <https://webkit.org/b/123113>
3155
3156         We will call setInline(false) in styleDidChange(), there's no need
3157         to override styleWillChange() just to do it twice.
3158
3159         Reviewed by Darin Adler.
3160
3161 2013-10-21  Mihai Maerean  <mmaerean@adobe.com>
3162
3163         [CSS Regions] The layers from the flow thread should be collected under the regions' layers.
3164         https://bugs.webkit.org/show_bug.cgi?id=120457
3165
3166         Reviewed by David Hyatt.
3167
3168         This patch is based on the work of Alexandru Chiculita at https://bugs.webkit.org/attachment.cgi?id=203872&action=review
3169
3170         The composited layers inside the named flow threads are collected as part of the regions (as children of the
3171         GraphicsLayer of the layer that corresponds to the region (which is attached to the parent renderer of
3172         RenderNameFlowFragment)).
3173         When a region displays a layer that needs accelerated compositing we activate the accelerated compositing for
3174         that region too (inside RenderLayerCompositor::computeRegionCompositingRequirements).
3175
3176         This patch has landed before (as http://trac.webkit.org/changeset/156451), but was reverted because
3177         fast/multicol/mixed-positioning-stacking-order.html failed. The fix is inside RenderLayerCompositor::canBeComposited
3178         that only enables compositing for layers inside flow threads that collect the graphics layers under the regions.
3179
3180         Another change from changeset #156451 is that now the region renderers are created as anonymous renderers under
3181         the element that has the flow-from property. When a composited layer is needed for the region, it sits in it's
3182         parent renderer, not in the region renderer (RenderNamedFlowFragment).
3183
3184         Tests: compositing/regions/crash-transform-inside-region.html
3185                compositing/regions/floated-region-with-transformed-child.html
3186                compositing/regions/move-layer-from-one-region-to-another.html
3187                compositing/regions/propagate-region-box-shadow-border-padding-for-video.html
3188                compositing/regions/propagate-region-box-shadow-border-padding.html
3189                compositing/regions/region-as-layer-in-another-flowthread.html
3190                compositing/regions/transform-transparent-positioned-video-inside-region.html
3191                compositing/regions/transformed-layer-inside-transformed-layer.html
3192                compositing/regions/z-index-update.html
3193                compositing/regions/z-index.html
3194
3195         * rendering/FlowThreadController.cpp:
3196         (WebCore::FlowThreadController::updateRenderFlowThreadLayersIfNeeded):
3197         * rendering/RenderElement.cpp:
3198         (WebCore::RenderElement::propagateStyleToAnonymousChildren): Not for RenderFlowThreads, as they are updated
3199         through the RenderView::styleDidChange function.
3200         * rendering/RenderFlowThread.cpp:
3201         (WebCore::RenderFlowThread::layout): When the layout of the flow thread is over (including the 2 phase layout),
3202         we update all the mappings between the layers inside the flow thread and the regions where those layers will be
3203         painted.
3204         (WebCore::RenderFlowThread::hasCompositingRegionDescendant): Whether any of the regions has a compositing descendant.
3205         (WebCore::RenderFlowThread::getLayerListForRegion):
3206         (WebCore::RenderFlowThread::regionForCompositedLayer):
3207         (WebCore::RenderFlowThread::cachedRegionForCompositedLayer):
3208         (WebCore::RenderFlowThread::collectsGraphicsLayersUnderRegions):
3209         (WebCore::RenderFlowThread::updateLayerToRegionMappings): Triggers an update of the layers if a layer has moved
3210         from a region to another since the last update.
3211         (WebCore::RenderFlowThread::updateAllLayerToRegionMappings):
3212         * rendering/RenderFlowThread.h:
3213         * rendering/RenderGeometryMap.cpp:
3214         (WebCore::RenderGeometryMap::pushRenderFlowThread):
3215         * rendering/RenderGeometryMap.h:
3216         * rendering/RenderLayer.cpp:
3217         (WebCore::RenderLayer::paintList):
3218         (WebCore::RenderLayer::enclosingFlowThreadAncestor):
3219         (WebCore::RenderLayer::isFlowThreadCollectingGraphicsLayersUnderRegions):
3220         (WebCore::RenderLayer::hitTestList):
3221         (WebCore::RenderLayer::calculateLayerBounds): When we calculate the bounds of the RenderView, we ignore those
3222         flow threads that collect the graphics layers under the regions.
3223         (WebCore::RenderLayer::dirtyZOrderLists):
3224         (WebCore::RenderLayer::dirtyNormalFlowList):
3225         * rendering/RenderLayer.h:
3226         * rendering/RenderLayerBacking.cpp:
3227         (WebCore::RenderLayerBacking::shouldClipCompositedBounds): Not if it's a flow thread that collects the graphics
3228         layers under the regions
3229         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Now adjusts the ancestorCompositingBounds for the FlowThread.
3230         (WebCore::RenderLayerBacking::adjustAncestorCompositingBoundsForFlowThread): Make sure that the region propagates
3231         its borders, paddings, outlines or box-shadows to layers inside it.
3232         (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
3233         * rendering/RenderLayerBacking.h:
3234         * rendering/RenderLayerCompositor.cpp:
3235         (WebCore::RenderLayerCompositor::computeCompositingRequirements): Now calls computeRegionCompositingRequirements.
3236         (WebCore::RenderLayerCompositor::computeRegionCompositingRequirements):
3237         (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): Do not iterate the RenderFlowThread directly if
3238         we are going to collect the composited layers as part of regions.
3239         (WebCore::RenderLayerCompositor::rebuildRegionCompositingLayerTree):
3240         (WebCore::RenderLayerCompositor::canBeComposited): CSS Regions flow threads do not need to be composited as we
3241         use composited RenderRegions to render the background of the RenderFlowThread.
3242         (WebCore::RenderLayerCompositor::requiresCompositingForIndirectReason): If it's a container of a css region.
3243         * rendering/RenderLayerCompositor.h:
3244         * rendering/RenderMultiColumnSet.cpp:
3245         (WebCore::RenderMultiColumnSet::adjustRegionBoundsFromFlowThreadPortionRect):
3246         * rendering/RenderMultiColumnSet.h:
3247         * rendering/RenderNamedFlowFragment.h:
3248         (WebCore::RenderNamedFlowFragment::layerOwner): When the content inside the region requires the region to have a
3249         layer, the layer will be created on the region's parent renderer instead. This method returns that renderer
3250         holding the layer. The return value may be null.
3251         * rendering/RenderNamedFlowThread.cpp:
3252         (WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
3253         (WebCore::RenderNamedFlowThread::nextRendererForNode):
3254         (WebCore::RenderNamedFlowThread::previousRendererForNode):
3255         (WebCore::RenderNamedFlowThread::addFlowChild):
3256         (WebCore::RenderNamedFlowThread::removeFlowChild):
3257         (WebCore::RenderNamedFlowThread::collectsGraphicsLayersUnderRegions):
3258         * rendering/RenderNamedFlowThread.h: m_flowThreadChildList is now allocated through an OwnPtr to keep the render
3259         arena under the size limit.
3260         * rendering/RenderRegion.cpp:
3261         (WebCore::RenderRegion::adjustRegionBoundsFromFlowThreadPortionRect):
3262         * rendering/RenderRegion.h:
3263         (WebCore::toRenderRegion):
3264         * rendering/RenderTreeAsText.cpp:
3265         (WebCore::writeLayers):
3266         * WebCore.exp.in: WebCore::RenderLayer::isFlowThreadCollectingGraphicsLayersUnderRegions
3267
3268 2013-10-21  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
3269
3270         Fixing mediastream debug build
3271         https://bugs.webkit.org/show_bug.cgi?id=123104
3272
3273         Reviewed by Andreas Kling.
3274
3275         No new tests needed.
3276
3277         * Modules/mediastream/RTCDTMFToneChangeEvent.cpp:
3278         (WebCore::RTCDTMFToneChangeEvent::create):
3279
3280 2013-10-21  Andreas Kling  <akling@apple.com>
3281
3282         Merge RenderListMarker::styleWillChange() into styleDidChange().
3283         <https://webkit.org/b/123098>
3284
3285         If the marker's list-style-type or list-style-position changed, we
3286         need to dirty the layout. Move this logic to styleDidChange() so we
3287         can get rid of one styleWillChange() overload.
3288
3289         Reviewed by Antti Koivisto.
3290
3291 2013-10-21  Mihai Maerean  <mmaerean@adobe.com>
3292
3293         [CSS Regions] Fix WHITESPACE issues in the CSS grammar.
3294         https://bugs.webkit.org/show_bug.cgi?id=123082
3295
3296         Reviewed by Andreas Kling.
3297
3298         This is a port of Rune Lillesveen's patch from https://codereview.chromium.org/25607005
3299
3300         Fix WHITESPACE issues in the CSS grammar.
3301
3302         A single WHITESPACE token consumes consecutive spaces, but does not consume
3303         spaces separated by comments. That means S* and S+ in CSS grammars need to
3304         accept multiple WHITESPACE tokens. Additionally, white spaces are not
3305         mandatory to separate an @-symbol and the rest of the prelude.
3306
3307         Use space non-terminal instead of WHITESPACE for S+ in calc expressions.
3308
3309         Use maybe_space non-terminal instead of WHITESPACE for S* after @-webkit-filter
3310         and @-webkit-region.
3311
3312         Tests: fast/css/calc-comments-allowed.html
3313                fast/regions/webkit-region-syntax-space.html
3314
3315         * css/CSSGrammar.y.in:
3316
3317 2013-10-21  Anton Obzhirov  <a.obzhirov@samsung.com>
3318
3319         [ATK] Use atk_object_notify_state_change instead of manually emitting signals
3320         https://bugs.webkit.org/show_bug.cgi?id=122968
3321
3322         Reviewed by Mario Sanchez Prada.
3323
3324         Refactor emitting "state-change" event to use atk_object_notify_state_change
3325         instead of using g_signal_emit_by_name.
3326
3327         * accessibility/atk/AXObjectCacheAtk.cpp:
3328         (WebCore::notifyChildrenSelectionChange):
3329         (WebCore::AXObjectCache::postPlatformNotification):
3330         (WebCore::AXObjectCache::frameLoadingEventPlatformNotification):
3331         (WebCore::AXObjectCache::handleFocusedUIElementChanged):
3332         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
3333         (webkitAccessibleDetach):
3334         * editing/atk/FrameSelectionAtk.cpp:
3335         (WebCore::maybeEmitTextFocusChange):
3336
3337 2013-10-21  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
3338
3339         Make TYPE_CASTS_BASE more flexible
3340         https://bugs.webkit.org/show_bug.cgi?id=122951
3341
3342         Reviewed by Andreas Kling.
3343
3344         TYPE_CASTS_BASE is being used by node|element type casts. However, it is difficult
3345         to be used by other type casts. For instance, CSSValue, Accessibility and so on.
3346         This patch modifies TYPE_CASTS_BASE which can support other type casts.
3347
3348         Besides TYPE_CASTS_BASE body is moved from node.h to Assertions.h.
3349
3350         No new tests, no behavior changes.
3351
3352         * dom/Document.h:
3353         * dom/Node.h:
3354
3355 2013-10-21  Santosh Mahto  <santosh.ma@samsung.com>
3356
3357         ASSERTION FAILED: !style->propertyIsImportant(propertyID) in WebCore::setTextDecorationProperty
3358         https://bugs.webkit.org/show_bug.cgi?id=122097
3359
3360         Reviewed by Ryosuke Niwa.
3361
3362         When remove format command is called we pushdown the ancestor style
3363         down to its children. Currently applying inline style to iframe
3364         while pushing down style which causes iframe to be reinserted in tree and
3365         triggres again subframe loading which repeats everytime and finally
3366         crash happens. So we should avoid applying inline style to iframe
3367         element as it doesnot reflect in its content while pushing down style
3368         on it.
3369
3370         And ASSERT call has been removed from setTextDecoration property as
3371         the scenario is perfectly valid case.
3372
3373         Test: editing/execCommand/remove-format-textdecoration-in-iframe.html
3374
3375         * editing/ApplyStyleCommand.cpp:
3376         (WebCore::ApplyStyleCommand::applyInlineStyleToPushDown): Return if
3377         element is iframe.
3378         * editing/EditingStyle.cpp:
3379         (WebCore::StyleChange::setTextDecorationProperty): Remove ASSERT.
3380
3381 2013-10-20  Sam Weinig  <sam@webkit.org>
3382
3383         Move m_lineBoxes from RenderBlock to RenderBlockFlow (Part 5)
3384         https://bugs.webkit.org/show_bug.cgi?id=122969
3385
3386         Reviewed by Antti Koivisto.
3387
3388         - Move m_lineBoxes to RenderBlockFlow.
3389
3390         * accessibility/AccessibilityRenderObject.cpp:
3391         (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
3392         * rendering/HitTestResult.cpp:
3393         (WebCore::HitTestResult::innerTextIfTruncated):
3394         * rendering/RenderBlock.cpp:
3395         (WebCore::RenderBlock::RenderBlock):
3396         (WebCore::RenderBlock::willBeDestroyed):
3397         (WebCore::RenderBlock::deleteLineBoxTree):
3398         (WebCore::RenderBlock::isSelfCollapsingBlock):
3399         (WebCore::RenderBlock::removeFromDelayedUpdateScrollInfoSet):
3400         (WebCore::RenderBlock::paintContents):
3401         (WebCore::blockDirectionOffset):
3402         (WebCore::inlineDirectionOffset):
3403         (WebCore::RenderBlock::inlineSelectionGaps):
3404         (WebCore::RenderBlock::hitTestContents):
3405         (WebCore::positionForPointRespectingEditingBoundaries):
3406         (WebCore::RenderBlock::positionForPointWithInlineChildren):
3407         (WebCore::RenderBlock::firstLineBoxBaseline):
3408         (WebCore::RenderBlock::inlineBlockBaseline):
3409         (WebCore::RenderBlock::addFocusRingRectsForInlineChildren):
3410         (WebCore::RenderBlock::addFocusRingRects):
3411         (WebCore::RenderBlock::showLineTreeAndMark):
3412         * rendering/RenderBlock.h:
3413         (WebCore::RenderBlock::addOverflowFromInlineChildren):
3414         (WebCore::RenderBlock::hasInlineBoxChildren):
3415         (WebCore::RenderBlock::paintInlineChildren):
3416         (WebCore::RenderBlock::hitTestInlineChildren):
3417         * rendering/RenderBlockFlow.cpp:
3418         (WebCore::RenderBlockFlow::RenderBlockFlow):
3419         (WebCore::RenderBlockFlow::willBeDestroyed):
3420         (WebCore::RenderBlockFlow::deleteLineBoxTree):
3421         (WebCore::RenderBlockFlow::hitTestInlineChildren):
3422         (WebCore::RenderBlockFlow::adjustForBorderFit):
3423         (WebCore::RenderBlockFlow::fitBorderToLinesIfNeeded):
3424         (WebCore::RenderBlockFlow::markLinesDirtyInBlockRange):
3425         (WebCore::RenderBlockFlow::firstLineBoxBaseline):
3426         (WebCore::RenderBlockFlow::inlineBlockBaseline):
3427         (WebCore::RenderBlockFlow::inlineSelectionGaps):
3428         (WebCore::RenderBlockFlow::positionForBox):
3429         (WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
3430         (WebCore::RenderBlockFlow::addFocusRingRectsForInlineChildren):
3431         (WebCore::RenderBlockFlow::paintInlineChildren):
3432         (WebCore::RenderBlockFlow::relayoutForPagination):
3433         (WebCore::RenderBlockFlow::showLineTreeAndMark):
3434         * rendering/RenderBlockFlow.h:
3435         (WebCore::RenderBlockFlow::lineBoxes):
3436         (WebCore::RenderBlockFlow::firstLineBox):
3437         (WebCore::RenderBlockFlow::lastLineBox):
3438         (WebCore::RenderBlockFlow::firstRootBox):
3439         (WebCore::RenderBlockFlow::lastRootBox):
3440         * rendering/RenderBlockLineLayout.cpp:
3441         (WebCore::RenderBlockFlow::addOverflowFromInlineChildren):
3442         * rendering/RootInlineBox.cpp:
3443         (WebCore::RootInlineBox::selectionTopAdjustedForPrecedingBlock):
3444
3445 2013-10-20  Andreas Kling  <akling@apple.com>
3446
3447         Avoid unnecessary vector copy in AnimationController event dispatch.
3448         <https://webkit.org/b/122994>
3449
3450         Use Vector's move constructor instead of making a copy of the pending
3451         events queue and then clearing it.
3452
3453         Reviewed by Simon Fraser.
3454
3455 2013-10-19  Brady Eidson  <beidson@apple.com>
3456
3457         Add abstract IDBBackingStoreInterface, use it to get IDBDatabaseBackendLevelDB closer to going cross-platform
3458         https://bugs.webkit.org/show_bug.cgi?id=123074
3459
3460         Reviewed by Andreas Kling.
3461
3462         * Modules/indexeddb/IDBBackingStoreInterface.h: Added.
3463         (WebCore::IDBBackingStoreInterface::~IDBBackingStoreInterface):
3464         (WebCore::IDBBackingStoreInterface::Transaction::~Transaction):
3465
3466         * Modules/indexeddb/IDBTransactionBackendInterface.h:
3467
3468         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
3469         (WebCore::IDBBackingStoreLevelDB::updateIDBDatabaseIntVersion):
3470         (WebCore::IDBBackingStoreLevelDB::createObjectStore):
3471         (WebCore::IDBBackingStoreLevelDB::deleteObjectStore):
3472         (WebCore::IDBBackingStoreLevelDB::getRecord):
3473         (WebCore::IDBBackingStoreLevelDB::putRecord):
3474         (WebCore::IDBBackingStoreLevelDB::clearObjectStore):
3475         (WebCore::IDBBackingStoreLevelDB::deleteRecord):
3476         (WebCore::IDBBackingStoreLevelDB::getKeyGeneratorCurrentNumber):
3477         (WebCore::IDBBackingStoreLevelDB::maybeUpdateKeyGeneratorCurrentNumber):
3478         (WebCore::IDBBackingStoreLevelDB::keyExistsInObjectStore):
3479         (WebCore::IDBBackingStoreLevelDB::createIndex):
3480         (WebCore::IDBBackingStoreLevelDB::deleteIndex):
3481         (WebCore::IDBBackingStoreLevelDB::putIndexDataForRecord):
3482         (WebCore::IDBBackingStoreLevelDB::findKeyInIndex):
3483         (WebCore::IDBBackingStoreLevelDB::getPrimaryKeyViaIndex):
3484         (WebCore::IDBBackingStoreLevelDB::keyExistsInIndex):
3485         (WebCore::IDBBackingStoreLevelDB::openObjectStoreCursor):
3486         (WebCore::IDBBackingStoreLevelDB::openObjectStoreKeyCursor):
3487         (WebCore::IDBBackingStoreLevelDB::openIndexKeyCursor):
3488         (WebCore::IDBBackingStoreLevelDB::openIndexCursor):
3489         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
3490         (WebCore::IDBBackingStoreLevelDB::Transaction::reset):
3491         (WebCore::IDBBackingStoreLevelDB::Transaction::levelDBTransactionFrom):
3492
3493         * Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp:
3494         (WebCore::IDBCursorBackendLevelDB::deleteFunction):
3495         * Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h:
3496
3497         * Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.cpp:
3498         (WebCore::IDBObjectStoreBackendLevelDB::IndexWriter::verifyIndexKeys):
3499         (WebCore::IDBObjectStoreBackendLevelDB::IndexWriter::writeIndexKeys):
3500         (WebCore::IDBObjectStoreBackendLevelDB::IndexWriter::addingKeyAllowed):
3501         * Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.h:
3502
3503         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
3504         (WebCore::IDBTransactionBackendLevelDB::backingStoreTransaction):
3505
3506         * WebCore.xcodeproj/project.pbxproj:
3507         * GNUmakefile.list.am:
3508
3509 2013-10-20  Andreas Kling  <akling@apple.com>
3510
3511         Use PassRef for StyleSheetContents.
3512         <https://webkit.org/b/123083>
3513
3514         Let functions that return newly-constructed StyleSheetContents
3515         objects vend PassRef<StyleSheetContents> instead of PassRefPtr.
3516
3517         Updated functions that take StyleSheetContents in arguments
3518         accordingly. And CSSStyleSheet now has a Ref internally. Woo!
3519
3520         Reviewed by Antti Koivisto.
3521
3522 2013-10-20  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
3523
3524         Removing "unused parameter" compiling warnings from WebKit2 and WebCore
3525         https://bugs.webkit.org/show_bug.cgi?id=123075
3526
3527         Reviewed by Andreas Kling.
3528
3529         No new tests needed.
3530
3531         * Modules/mediastream/RTCDTMFToneChangeEvent.cpp:
3532         (WebCore::RTCDTMFToneChangeEvent::create):
3533         * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
3534         (lineAtPositionForAtkBoundary):
3535         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
3536         (WebCore::MediaPlayerPrivateGStreamer::processTableOfContentsEntry):
3537
3538 2013-10-19  Andreas Kling  <akling@apple.com>
3539
3540         Use PassRef for constructing StyleRules.
3541         <https://webkit.org/b/123072>
3542
3543         Let functions that return newly-constructed StyleRuleFoo objects
3544         vend PassRef<StyleRuleFoo> instead of PassRefPtr.
3545
3546         Since StyleRuleBase::copy() has to return something, we can't rely
3547         on ASSERT_NOT_REACHED() + return nullptr anymore, so I've replaced
3548         those with CRASH(). No call sites actually handled null anyway.
3549
3550         Reviewed by Sam Weinig.
3551
3552 2013-10-19  Jer Noble  <jer.noble@apple.com>
3553
3554         Unreviewed roll out of r157695; broke Mac builds.
3555
3556         * Configurations/FeatureDefines.xcconfig:
3557
3558 2013-10-07  Jer Noble  <jer.noble@apple.com>
3559
3560         [MSE] [Mac] Enable MediaSource on the Mac
3561         https://bugs.webkit.org/show_bug.cgi?id=122484
3562
3563         Reviewed by Darin Adler.
3564
3565         Enable ENABLE_MEDIA_SOURCE.
3566
3567         * Configurations/FeatureDefines.xcconfig:
3568
3569 2013-10-19  Sam Weinig  <sam@webkit.org>
3570
3571         CTTE: Tighten up type usage around InputType::innerTextElement()
3572         https://bugs.webkit.org/show_bug.cgi?id=123078
3573
3574         Reviewed by Anders Carlsson.
3575
3576         * editing/TextIterator.cpp:
3577         (WebCore::TextIterator::handleReplacedElement):
3578         * html/HTMLElement.h:
3579         (WebCore::HTMLElement::isTextControlInnerTextElement):
3580         * html/HTMLInputElement.cpp:
3581         (WebCore::HTMLInputElement::innerTextElement):
3582         * html/HTMLInputElement.h:
3583         * html/HTMLTextAreaElement.cpp:
3584         (WebCore::HTMLTextAreaElement::innerTextElement):
3585         * html/HTMLTextAreaElement.h:
3586         * html/HTMLTextFormControlElement.cpp:
3587         (WebCore::hasVisibleTextArea):
3588         (WebCore::HTMLTextFormControlElement::selection):
3589         (WebCore::HTMLTextFormControlElement::innerTextValue):
3590         (WebCore::HTMLTextFormControlElement::valueWithHardLineBreaks):
3591         * html/HTMLTextFormControlElement.h:
3592         * html/InputType.h:
3593         (WebCore::InputType::innerTextElement):
3594         * html/TextFieldInputType.cpp:
3595         (WebCore::TextFieldInputType::forwardEvent):
3596         (WebCore::TextFieldInputType::innerTextElement):
3597         * html/TextFieldInputType.h:
3598         * html/shadow/TextControlInnerElements.cpp:
3599         (WebCore::TextControlInnerTextElement::renderer):
3600         * html/shadow/TextControlInnerElements.h:
3601         (WebCore::isTextControlInnerTextElement):
3602         * rendering/RenderObject.h:
3603         (WebCore::RenderObject::isTextControlInnerBlock):
3604         * rendering/RenderTextControl.cpp:
3605         (WebCore::RenderTextControl::innerTextElement):
3606         (WebCore::RenderTextControl::styleDidChange):
3607         (WebCore::RenderTextControl::textBlockLogicalWidth):
3608         (WebCore::RenderTextControl::updateFromElement):
3609         (WebCore::RenderTextControl::computeLogicalHeight):
3610         (WebCore::RenderTextControl::hitInnerTextElement):
3611         * rendering/RenderTextControl.h:
3612         * rendering/RenderTextControlSingleLine.cpp:
3613         (WebCore::RenderTextControlSingleLine::layout):
3614         (WebCore::RenderTextControlSingleLine::styleDidChange):
3615         (WebCore::RenderTextControlSingleLine::autoscroll):
3616         (WebCore::RenderTextControlSingleLine::scroll):
3617         (WebCore::RenderTextControlSingleLine::logicalScroll):
3618         * rendering/RenderTextControlSingleLine.h:
3619         (WebCore::toRenderTextControlInnerBlock):
3620
3621 2013-10-19  Sam Weinig  <sam@webkit.org>
3622
3623         Move m_lineBoxes from RenderBlock to RenderBlockFlow (Part 4)
3624         https://bugs.webkit.org/show_bug.cgi?id=122969
3625
3626         Reviewed by Andreas Kling.
3627
3628         - Fix classes derived from RenderBlockFlow that were still calling
3629           up to RenderBlock rather than RenderBlockFlow.
3630
3631         * rendering/RenderDetailsMarker.cpp:
3632         (WebCore::RenderDetailsMarker::paint):
3633         * rendering/RenderFieldset.cpp:
3634         (WebCore::RenderFieldset::computePreferredLogicalWidths):
3635         (WebCore::RenderFieldset::paintBoxDecorations):
3636         (WebCore::RenderFieldset::paintMask):
3637         * rendering/RenderFileUploadControl.cpp:
3638         (WebCore::RenderFileUploadControl::paintObject):
3639         * rendering/RenderFlowThread.cpp:
3640         (WebCore::RenderFlowThread::styleDidChange):
3641         (WebCore::RenderFlowThread::layout):
3642         (WebCore::RenderFlowThread::nodeAtPoint):
3643         * rendering/RenderFullScreen.cpp:
3644         (RenderFullScreenPlaceholder::willBeDestroyed):
3645         * rendering/RenderListItem.cpp:
3646         (WebCore::RenderListItem::styleDidChange):
3647         * rendering/RenderMultiColumnBlock.cpp:
3648         (WebCore::RenderMultiColumnBlock::styleDidChange):
3649         (WebCore::RenderMultiColumnBlock::updateLogicalWidthAndColumnWidth):
3650         (WebCore::RenderMultiColumnBlock::addChild):
3651         * rendering/RenderProgress.cpp:
3652         (WebCore::RenderProgress::updateFromElement):
3653         * rendering/RenderRuby.cpp:
3654         (WebCore::RenderRubyAsBlock::styleDidChange):
3655         (WebCore::RenderRubyAsBlock::addChild):
3656         (WebCore::RenderRubyAsBlock::removeChild):
3657         * rendering/RenderRubyRun.cpp:
3658         (WebCore::RenderRubyRun::rubyBaseSafe):
3659         (WebCore::RenderRubyRun::addChild):
3660         (WebCore::RenderRubyRun::removeChild):
3661         (WebCore::RenderRubyRun::layout):
3662         * rendering/RenderRubyText.cpp:
3663         (WebCore::RenderRubyText::textAlignmentForLine):
3664         (WebCore::RenderRubyText::adjustInlineDirectionLineBounds):
3665         * rendering/RenderTableCaption.cpp:
3666         (WebCore::RenderTableCaption::willBeRemovedFromTree):
3667         * rendering/RenderTableCell.cpp:
3668         (WebCore::RenderTableCell::willBeRemovedFromTree):
3669         (WebCore::RenderTableCell::computePreferredLogicalWidths):
3670         (WebCore::RenderTableCell::offsetFromContainer):
3671         (WebCore::RenderTableCell::clippedOverflowRectForRepaint):
3672         (WebCore::RenderTableCell::computeRectForRepaint):
3673         (WebCore::RenderTableCell::styleDidChange):
3674         (WebCore::RenderTableCell::borderLeft):
3675         (WebCore::RenderTableCell::borderRight):
3676         (WebCore::RenderTableCell::borderTop):
3677         (WebCore::RenderTableCell::borderBottom):
3678         (WebCore::RenderTableCell::borderStart):
3679         (WebCore::RenderTableCell::borderEnd):
3680         (WebCore::RenderTableCell::borderBefore):
3681         (WebCore::RenderTableCell::borderAfter):
3682         (WebCore::RenderTableCell::paint):
3683         * rendering/RenderTextControl.cpp:
3684         (WebCore::RenderTextControl::styleDidChange):
3685         * rendering/RenderTextControlSingleLine.cpp:
3686         (WebCore::RenderTextControlSingleLine::scrollWidth):
3687         (WebCore::RenderTextControlSingleLine::scrollHeight):
3688         (WebCore::RenderTextControlSingleLine::scrollLeft):
3689         (WebCore::RenderTextControlSingleLine::scrollTop):
3690         (WebCore::RenderTextControlSingleLine::scroll):
3691         (WebCore::RenderTextControlSingleLine::logicalScroll):
3692         * rendering/RenderTextTrackCue.cpp:
3693         (WebCore::RenderTextTrackCue::layout):
3694         * rendering/RenderView.cpp:
3695         (WebCore::RenderView::layoutContent):
3696         (WebCore::RenderView::addChild):
3697         (WebCore::RenderView::visualOverflowRect):
3698         (WebCore::RenderView::styleDidChange):
3699         * rendering/svg/RenderSVGBlock.cpp:
3700         (WebCore::RenderSVGBlock::setStyle):
3701         (WebCore::RenderSVGBlock::updateFromStyle):
3702         (WebCore::RenderSVGBlock::willBeDestroyed):
3703         (WebCore::RenderSVGBlock::styleWillChange):
3704         (WebCore::RenderSVGBlock::styleDidChange):
3705         * rendering/svg/SVGTextQuery.cpp:
3706         (WebCore::flowBoxForRenderer):
3707
3708 2013-10-19  Sam Weinig  <sam@webkit.org>
3709
3710         Move m_lineBoxes from RenderBlock to RenderBlockFlow (Part 3)
3711         https://bugs.webkit.org/show_bug.cgi?id=122969
3712
3713         Reviewed by Andreas Kling.
3714
3715         - Move containsNonZeroBidiLevel to RenderBlockFlow.
3716
3717         * editing/Editor.cpp:
3718         (WebCore::Editor::hasBidiSelection):
3719         * rendering/RenderBlock.cpp:
3720         * rendering/RenderBlock.h:
3721         * rendering/RenderBlockFlow.cpp:
3722         (WebCore::RenderBlockFlow::containsNonZeroBidiLevel):
3723         * rendering/RenderBlockFlow.h:
3724
3725 2013-10-18  Sam Weinig  <sam@webkit.org>
3726
3727         Move m_lineBoxes from RenderBlock to RenderBlockFlow (Part 2)
3728         https://bugs.webkit.org/show_bug.cgi?id=122969
3729
3730         Reviewed by Antti Koivisto.
3731
3732         - Move truncation (e.g. line clamp and ellipse) support to RenderBlockFlow.
3733
3734         * rendering/EllipsisBox.cpp:
3735         (WebCore::EllipsisBox::EllipsisBox):
3736         (WebCore::EllipsisBox::paint):
3737         (WebCore::EllipsisBox::markupBox):
3738         (WebCore::EllipsisBox::selectionRect):
3739         (WebCore::EllipsisBox::paintSelection):
3740         (WebCore::EllipsisBox::nodeAtPoint):
3741         * rendering/EllipsisBox.h:
3742         * rendering/RenderBlock.cpp:
3743         * rendering/RenderBlock.h:
3744         * rendering/RenderBlockFlow.cpp:
3745         (WebCore::shouldCheckLines):
3746         (WebCore::RenderBlockFlow::lineAtIndex):
3747         (WebCore::RenderBlockFlow::lineCount):
3748         (WebCore::getHeightForLineCount):
3749         (WebCore::RenderBlockFlow::heightForLineCount):
3750         (WebCore::RenderBlockFlow::clearTruncation):
3751         * rendering/RenderBlockFlow.h:
3752         * rendering/RenderDeprecatedFlexibleBox.cpp:
3753         (WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
3754         (WebCore::RenderDeprecatedFlexibleBox::clearLineClamp):
3755         * rendering/RootInlineBox.cpp:
3756         (WebCore::RootInlineBox::placeEllipsis):
3757
3758 2013-10-19  Andreas Kling  <akling@apple.com>
3759
3760         StyleResolver should deal in PassRef<RenderStyle> where possible.
3761         <https://webkit.org/b/123061>
3762
3763         Make StyleResolver functions that returned or took RenderStyles
3764         by PassRefPtr use PassRef instead where possible.
3765
3766         Reviewed by Anders Carlsson.
3767
3768 2013-10-19  Brady Eidson  <beidson@apple.com>
3769
3770         Global rename of the class "IDBBackingStore" to "IDBBackingStoreLevelDB"
3771
3772         Rubberstamped by Anders Carlsson (And Andreas Kling wanted to, but he wasn’t around)
3773
3774         * Modules/indexeddb/IDBTransactionBackendInterface.h:
3775         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
3776         * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
3777         * Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp:
3778         * Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h:
3779         * Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp:
3780         * Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h:
3781         * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
3782         * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
3783         * Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.cpp:
3784         * Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.h:
3785         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
3786         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
3787         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp:
3788         * Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.h:
3789
3790 2013-10-19  peavo@outlook.com  <peavo@outlook.com>
3791
3792         [WinCairo] Link fails.
3793         https://bugs.webkit.org/show_bug.cgi?id=123019
3794
3795         Reviewed by Darin Adler.
3796
3797         Added empty CertificateInfo implementation for Curl.
3798
3799         * WebCore.vcxproj/WebCore.vcxproj:
3800         * WebCore.vcxproj/WebCore.vcxproj.filters:
3801         * platform/network/curl/CertificateInfoCurl.cpp: Added.
3802         (WebCore::CertificateInfo::CertificateInfo):
3803         (WebCore::CertificateInfo::~CertificateInfo):
3804
3805 2013-10-19  Filip Pizlo  <fpizlo@apple.com>
3806
3807         libWebCoreTestSupport should have explicit exports
3808         https://bugs.webkit.org/show_bug.cgi?id=123053
3809
3810         Reviewed by Oliver Hunt.
3811
3812         No new tests because there is no change in behavior.
3813
3814         * Configurations/WebCoreTestSupport.xcconfig:
3815         * testing/js/WebCoreTestSupport.h:
3816
3817 2013-10-18  Andreas Kling  <akling@apple.com>
3818
3819         Start passing RenderStyle around with PassRef.
3820         <https://webkit.org/b/123051>
3821
3822         Made the RenderStyle::create methods return PassRef<RenderStyle>
3823         and RenderElement::setStyle take a PassRef<RenderStyle>.
3824
3825         Reviewed by Darin Adler.
3826
3827 2013-10-18  Sam Weinig  <sam@webkit.org>
3828
3829         Move m_lineBoxes from RenderBlock to RenderBlockFlow (Part 1)
3830         https://bugs.webkit.org/show_bug.cgi?id=122969
3831
3832         Reviewed by Dan Bernstein.
3833
3834         - Make the RootInlineBox constructor take a RenderBlockFlow.
3835         - Move createRootInlineBox, and createAndAppendRootInlineBox to RenderBlockFlow.
3836
3837         * editing/VisibleUnits.cpp:
3838         (WebCore::absoluteLineDirectionPointToLocalPointInBlock):
3839         * rendering/InlineBox.cpp:
3840         (WebCore::InlineBox::locationIncludingFlipping):
3841         (WebCore::InlineBox::flipForWritingMode):
3842         * rendering/InlineFlowBox.cpp:
3843         (WebCore::InlineFlowBox::placeBoxRangeInInlineDirection):
3844         * rendering/RenderBlock.cpp:
3845         * rendering/RenderBlock.h:
3846         * rendering/RenderBlockFlow.h:
3847         * rendering/RenderBlockLineLayout.cpp:
3848         (WebCore::RenderBlockFlow::createRootInlineBox):
3849         (WebCore::RenderBlockFlow::createAndAppendRootInlineBox):
3850         (WebCore::createInlineBoxForRenderer):
3851         (WebCore::RenderBlockFlow::createLineBoxes):
3852         * rendering/RenderBox.cpp:
3853         (WebCore::RenderBox::positionLineBox):
3854         * rendering/RenderListMarker.cpp:
3855         (WebCore::RenderListMarker::localSelectionRect):
3856         * rendering/RenderReplaced.cpp:
3857         (WebCore::RenderReplaced::localSelectionRect):
3858         * rendering/RootInlineBox.cpp:
3859         (WebCore::RootInlineBox::RootInlineBox):
3860         (WebCore::RootInlineBox::rendererLineBoxes):
3861         (WebCore::RootInlineBox::placeEllipsis):
3862         (WebCore::RootInlineBox::containingRegion):
3863         (WebCore::RootInlineBox::setContainingRegion):
3864         (WebCore::RootInlineBox::alignBoxesInBlockDirection):
3865         (WebCore::RootInlineBox::beforeAnnotationsAdjustment):
3866         (WebCore::RootInlineBox::lineSnapAdjustment):
3867         (WebCore::RootInlineBox::lineSelectionGap):
3868         (WebCore::RootInlineBox::computeCaretRect):
3869         (WebCore::RootInlineBox::selectionTop):
3870         (WebCore::RootInlineBox::selectionTopAdjustedForPrecedingBlock):
3871         (WebCore::RootInlineBox::selectionBottom):
3872         (WebCore::RootInlineBox::blockDirectionPointInLine):
3873         (WebCore::RootInlineBox::blockFlow):
3874         (WebCore::RootInlineBox::closestLeafChildForPoint):
3875         (WebCore::RootInlineBox::removeLineBoxFromRenderObject):
3876         (WebCore::RootInlineBox::extractLineBoxFromRenderObject):
3877         (WebCore::RootInlineBox::attachLineBoxToRenderObject):
3878         * rendering/RootInlineBox.h:
3879         * rendering/TrailingFloatsRootInlineBox.h:
3880         * rendering/svg/RenderSVGText.h:
3881         (WebCore::toRenderSVGText):
3882         * rendering/svg/SVGRootInlineBox.cpp:
3883         (WebCore::SVGRootInlineBox::SVGRootInlineBox):
3884         (WebCore::SVGRootInlineBox::renderSVGText):
3885         (WebCore::SVGRootInlineBox::paint):
3886         (WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation):
3887         (WebCore::SVGRootInlineBox::layoutRootBox):
3888         * rendering/svg/SVGRootInlineBox.h:
3889
3890 2013-10-18  Tim Horton  <timothy_horton@apple.com>
3891
3892         Remote Layer Tree: Double-buffering and minimization of repaints
3893         https://bugs.webkit.org/show_bug.cgi?id=123043
3894
3895         Reviewed by Simon Fraser.
3896
3897         No new tests, not yet testable.
3898
3899         * WebCore.exp.in:
3900         Export one version of drawLayerContents and Region::contains.
3901
3902         * WebCore.xcodeproj/project.pbxproj:
3903         Expose WebLayer.h as a private header.
3904
3905         * platform/graphics/mac/WebLayer.h:
3906         Clean up this header, and add a new drawLayerContents that can operate without a CALayer.
3907
3908         * platform/graphics/mac/WebLayer.mm:
3909         (WebCore::drawLayerContents):
3910         Split drawLayerContents into one method that acquires properties CALayer,
3911         and one that just does the painting.
3912
3913 2013-10-18  Anders Carlsson  <andersca@apple.com>
3914
3915         Try to fix the Lion build.
3916
3917         * bindings/objc/ObjCNodeFilterCondition.h:
3918
3919 2013-10-18  Daniel Bates  <dabates@apple.com>
3920
3921         [iOS] Upstream WebSafe{GCActivityCallback, IncrementalSweeper}IOS
3922         https://bugs.webkit.org/show_bug.cgi?id=123049
3923
3924         Reviewed by Mark Hahnenberg.
3925
3926         * WebCore.xcodeproj/project.pbxproj:
3927         * platform/ios/WebSafeGCActivityCallbackIOS.h: Added.
3928         * platform/ios/WebSafeIncrementalSweeperIOS.h: Added.
3929
3930 2013-10-18  Anders Carlsson  <andersca@apple.com>
3931
3932         Remove spaces between template angle brackets
3933         https://bugs.webkit.org/show_bug.cgi?id=123040
3934
3935         Reviewed by Andreas Kling.
3936
3937         * Modules/encryptedmedia/MediaKeySession.h:
3938         * Modules/encryptedmedia/MediaKeys.h:
3939         * Modules/geolocation/Geolocation.h:
3940         * Modules/geolocation/GeolocationController.cpp:
3941         (WebCore::GeolocationController::positionChanged):
3942         (WebCore::GeolocationController::errorOccurred):
3943         * Modules/geolocation/GeolocationController.h:
3944         * Modules/indexeddb/IDBCallbacks.h:
3945         * Modules/indexeddb/IDBDatabase.h:
3946         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
3947         * Modules/indexeddb/IDBEventDispatcher.cpp:
3948         (WebCore::IDBEventDispatcher::dispatch):
3949         * Modules/indexeddb/IDBEventDispatcher.h:
3950         * Modules/indexeddb/IDBKey.h:
3951         * Modules/indexeddb/IDBObjectStore.h:
3952         * Modules/indexeddb/IDBPendingTransactionMonitor.cpp:
3953         * Modules/indexeddb/IDBRequest.cpp:
3954         (WebCore::IDBRequest::dispatchEvent):
3955         * Modules/indexeddb/IDBRequest.h:
3956         (WebCore::IDBRequest::onSuccessWithPrefetch):
3957         * Modules/indexeddb/IDBTransaction.cpp:
3958         (WebCore::IDBTransaction::dispatchEvent):
3959         * Modules/indexeddb/IDBTransaction.h:
3960         * Modules/mediacontrols/MediaControlsHost.cpp:
3961         (WebCore::MediaControlsHost::sortedTrackListForMenu):
3962         * Modules/mediacontrols/MediaControlsHost.h:
3963         * Modules/mediasource/MediaSource.cpp:
3964         (WebCore::MediaSource::activeRanges):
3965         * Modules/mediasource/MediaSource.h:
3966         * Modules/mediasource/MediaSourceBase.cpp:
3967         (WebCore::MediaSourceBase::buffered):
3968         * Modules/mediasource/MediaSourceBase.h:
3969         * Modules/mediasource/MediaSourceRegistry.cpp:
3970         (WebCore::MediaSourceRegistry::unregisterURL):
3971         * Modules/mediasource/MediaSourceRegistry.h:
3972         * Modules/mediasource/SourceBufferList.h:
3973         * Modules/mediasource/WebKitMediaSource.cpp:
3974         (WebCore::WebKitMediaSource::activeRanges):
3975         * Modules/mediasource/WebKitMediaSource.h:
3976         * Modules/mediasource/WebKitSourceBufferList.h:
3977         * Modules/mediastream/MediaStream.cpp:
3978         (WebCore::MediaStream::scheduledEventTimerFired):
3979         * Modules/mediastream/MediaStream.h:
3980         * Modules/mediastream/MediaStreamRegistry.h:
3981         * Modules/mediastream/MediaStreamTrack.h:
3982         * Modules/mediastream/RTCDTMFSender.cpp:
3983         (WebCore::RTCDTMFSender::scheduledEventTimerFired):
3984         * Modules/mediastream/RTCDTMFSender.h:
3985         * Modules/mediastream/RTCDataChannel.cpp:
3986         (WebCore::RTCDataChannel::scheduledEventTimerFired):
3987         * Modules/mediastream/RTCDataChannel.h:
3988         * Modules/mediastream/RTCPeerConnection.cpp:
3989         (WebCore::RTCPeerConnection::stop):
3990         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
3991         * Modules/mediastream/RTCPeerConnection.h:
3992         * Modules/mediastream/RTCStatsResponse.h:
3993         (WebCore::RTCStatsResponse::result):
3994         * Modules/notifications/Notification.h:
3995         * Modules/notifications/NotificationCenter.h:
3996         * Modules/speech/SpeechSynthesis.cpp:
3997         (WebCore::SpeechSynthesis::getVoices):
3998         * Modules/speech/SpeechSynthesis.h:
3999         * Modules/webaudio/AudioBuffer.h:
4000         * Modules/webaudio/AudioNode.h:
4001         * Modules/webaudio/AudioNodeOutput.h:
4002         * Modules/webaudio/MediaStreamAudioSource.cpp:
4003         (WebCore::MediaStreamAudioSource::setAudioFormat):
4004         (WebCore::MediaStreamAudioSource::consumeAudio):
4005         * Modules/webaudio/PeriodicWave.h:
4006         * Modules/webaudio/ScriptProcessorNode.h:
4007         * Modules/webdatabase/AbstractDatabaseServer.h:
4008         * Modules/webdatabase/DatabaseBackend.h:
4009         * Modules/webdatabase/DatabaseManager.cpp:
4010         (WebCore::DatabaseManager::origins):
4011         * Modules/webdatabase/DatabaseManager.h:
4012         * Modules/webdatabase/DatabaseServer.cpp:
4013         (WebCore::DatabaseServer::origins):
4014         * Modules/webdatabase/DatabaseServer.h:
4015         * Modules/webdatabase/DatabaseThread.h:
4016         * Modules/webdatabase/DatabaseTracker.cpp:
4017         (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
4018         (WebCore::DatabaseTracker::origins):
4019         (WebCore::DatabaseTracker::getOpenDatabases):
4020         (WebCore::DatabaseTracker::deleteAllDatabases):
4021         (WebCore::DatabaseTracker::deleteDatabaseFile):
4022         * Modules/webdatabase/DatabaseTracker.h:
4023         * Modules/webdatabase/SQLStatementBackend.cpp:
4024         * Modules/webdatabase/SQLTransactionBackend.cpp:
4025         * Modules/webdatabase/SQLTransactionBackend.h:
4026         * Modules/webdatabase/SQLTransactionCoordinator.cpp:
4027         (WebCore::SQLTransactionCoordinator::shutdown):
4028         * Modules/webdatabase/SQLTransactionCoordinator.h:
4029         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
4030         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
4031         (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):
4032         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryDataCallback):
4033         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
4034         * Modules/websockets/WebSocket.cpp:
4035         (WebCore::WebSocket::didReceiveBinaryData):
4036         * Modules/websockets/WebSocket.h:
4037         * Modules/websockets/WebSocketChannel.cpp:
4038         (WebCore::WebSocketChannel::processFrame):
4039         * Modules/websockets/WebSocketChannel.h:
4040         * Modules/websockets/WebSocketChannelClient.h:
4041         (WebCore::WebSocketChannelClient::didReceiveBinaryData):
4042         * Modules/websockets/WebSocketExtensionDispatcher.h:
4043         * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
4044         (WebCore::workerGlobalScopeDidReceiveBinaryData):
4045         (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData):
4046         (WebCore::WorkerThreadableWebSocketChannel::mainThreadSendArrayBuffer):
4047         (WebCore::WorkerThreadableWebSocketChannel::Bridge::send):
4048         * Modules/websockets/WorkerThreadableWebSocketChannel.h:
4049         * accessibility/AXObjectCache.cpp:
4050         (WebCore::AXObjectCache::~AXObjectCache):
4051         * accessibility/AXObjectCache.h: