Unreviewed GTK build fix after r162663.
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2014-01-24  Zan Dobersek  <zdobersek@igalia.com>
2
3         Unreviewed GTK build fix after r162663.
4
5         * platform/gtk/ScrollViewGtk.cpp:
6         (WebCore::ScrollView::visibleContentRectInternal): Renamed from visibleContentRect.
7
8 2014-01-24  Zan Dobersek  <zdobersek@igalia.com>
9
10         Move HistoryItem to std::unique_ptr
11         https://bugs.webkit.org/show_bug.cgi?id=127275
12
13         Reviewed by Darin Adler.
14
15         Replace the uses of OwnPtr and PassOwnPtr in the HistoryItem class with std::unique_ptr.
16
17         * history/HistoryItem.cpp:
18         (WebCore::HistoryItem::HistoryItem):
19         (WebCore::HistoryItem::reset):
20         (WebCore::HistoryItem::addRedirectURL):
21         (WebCore::HistoryItem::setRedirectURLs):
22         * history/HistoryItem.h:
23         * history/mac/HistoryItemMac.mm:
24         (WebCore::HistoryItem::setTransientProperty):
25         WebCore.exp.in: Update the symbol.
26
27 2014-01-23  Morten Stenshorne  <mstensho@opera.com>
28
29         Region based multicol: unresolvable percent height results in 1px tall multicol
30         https://bugs.webkit.org/show_bug.cgi?id=122826
31
32         Reviewed by David Hyatt.
33
34         If a box has a percentage height, but the computed height of its
35         containing block is auto, the computed height of the box also becomes
36         auto. computeContentLogicalHeight() returns -1 if the height isn't
37         resolvable, and we need to make sure that such a value doesn't
38         constrain the height of the multicol container.
39
40         Tests: fast/multicol/newmulticol/unresolvable-percent-height-2.html
41                fast/multicol/newmulticol/unresolvable-percent-height.html
42                fast/multicol/newmulticol/unresolvable-percent-max-height-2.html
43                fast/multicol/newmulticol/unresolvable-percent-max-height.html
44
45         * rendering/RenderMultiColumnSet.cpp:
46         (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
47         (WebCore::RenderMultiColumnSet::calculateBalancedHeight):
48         (WebCore::RenderMultiColumnSet::recalculateBalancedHeight):
49         (WebCore::RenderMultiColumnSet::prepareForLayout):
50
51 2014-01-23  Joseph Pecoraro  <pecoraro@apple.com>
52
53         Move ContentSearchUtils, ScriptBreakpoint, and ScriptDebugListener into JavaScriptCore for inspector
54         https://bugs.webkit.org/show_bug.cgi?id=127537
55
56         Reviewed by Timothy Hatcher.
57
58           - Rename ContentSearchUtils => ContentSearchUtilities and move to JavaScriptCore.
59           - Move ScriptBreakpoint and ScriptDebugListener to JavaScriptCore.
60           - Move them all to namespace Inspector.
61           - Update build files and users to the new names.
62
63         No change in functionality, just moving code.
64
65         * CMakeLists.txt:
66         * ForwardingHeaders/inspector/ContentSearchUtilities.h: Added.
67         * ForwardingHeaders/inspector/ScriptBreakpoint.h: Added.
68         * ForwardingHeaders/inspector/ScriptDebugListener.h: Added.
69         * GNUmakefile.list.am:
70         * WebCore.vcxproj/WebCore.vcxproj:
71         * WebCore.vcxproj/WebCore.vcxproj.filters:
72         * WebCore.xcodeproj/project.pbxproj:
73         * bindings/js/PageScriptDebugServer.cpp:
74         * bindings/js/PageScriptDebugServer.h:
75         * bindings/js/ScriptDebugServer.cpp:
76         * bindings/js/ScriptDebugServer.h:
77         * bindings/js/WorkerScriptDebugServer.cpp:
78         * bindings/js/WorkerScriptDebugServer.h:
79         * inspector/InspectorAllInOne.cpp:
80         * inspector/InspectorDebuggerAgent.cpp:
81         (WebCore::InspectorDebuggerAgent::searchInContent):
82         (WebCore::InspectorDebuggerAgent::sourceMapURLForScript):
83         (WebCore::InspectorDebuggerAgent::didParseSource):
84         * inspector/InspectorDebuggerAgent.h:
85         * inspector/InspectorPageAgent.cpp:
86         (WebCore::InspectorPageAgent::sourceMapURLForResource):
87         (WebCore::InspectorPageAgent::searchInResource):
88         (WebCore::InspectorPageAgent::searchInResources):
89         * inspector/InspectorStyleSheet.cpp:
90         (WebCore::buildSourceRangeObject):
91         (WebCore::InspectorStyleSheet::lineEndings):
92         (WebCore::InspectorStyleSheetForInlineStyle::lineEndings):
93
94 2014-01-23  Joseph Pecoraro  <pecoraro@apple.com>
95
96         Move RegularExpression into JavaScriptCore for inspector
97         https://bugs.webkit.org/show_bug.cgi?id=127526
98
99         Reviewed by Geoffrey Garen.
100
101         Update as appropriate for the moved file and namespace
102         change for class RegularExpression.
103
104         * CMakeLists.txt:
105         * ForwardingHeaders/yarr/RegularExpression.h: Added.
106         * GNUmakefile.list.am:
107         * WebCore.exp.in:
108         * WebCore.vcxproj/WebCore.vcxproj:
109         * WebCore.vcxproj/WebCore.vcxproj.filters:
110         * WebCore.xcodeproj/project.pbxproj:
111         * dom/DOMImplementation.h:
112         * html/BaseCheckableInputType.cpp:
113         * html/BaseTextInputType.cpp:
114         (WebCore::BaseTextInputType::patternMismatch):
115         * html/EmailInputType.cpp:
116         (WebCore::isValidEmailAddress):
117         * html/InputType.cpp:
118         * inspector/ContentSearchUtils.cpp:
119         (WebCore::ContentSearchUtils::getRegularExpressionMatchesByLines):
120         (WebCore::ContentSearchUtils::createSearchRegex):
121         (WebCore::ContentSearchUtils::countRegularExpressionMatches):
122         (WebCore::ContentSearchUtils::searchInTextByLines):
123         * inspector/ContentSearchUtils.h:
124         * inspector/InspectorDebuggerAgent.cpp:
125         (WebCore::matches):
126         (WebCore::InspectorDebuggerAgent::breakpointActionLog):
127         (WebCore::InspectorDebuggerAgent::breakpointActionSound):
128         * inspector/InspectorDebuggerAgent.h:
129         * inspector/InspectorPageAgent.cpp:
130         (WebCore::InspectorPageAgent::searchInResources):
131         * inspector/InspectorPageAgent.h:
132         * inspector/InspectorRuntimeAgent.cpp:
133         * inspector/InspectorRuntimeAgent.h:
134         * inspector/InspectorStyleSheet.cpp:
135         (WebCore::selectorsFromSource):
136         * inspector/WorkerDebuggerAgent.cpp:
137         * page/Frame.cpp:
138         (WebCore::createRegExpForLabels):
139         (WebCore::Frame::searchForLabelsAboveCell):
140         (WebCore::Frame::searchForLabelsBeforeElement):
141         (WebCore::matchLabelsAgainstString):
142         * page/Frame.h:
143         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
144         (WebCore::GraphicsContext3D::getUnmangledInfoLog):
145
146 2014-01-23  Brady Eidson  <beidson@apple.com>
147
148         IDB: Support IDBObjectStore.clear()
149         https://bugs.webkit.org/show_bug.cgi?id=127541
150         
151         Reviewed by Anders Carlsson.
152
153         The backing store should never be performing callbacks directly:
154         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
155         (WebCore::IDBServerConnectionLevelDB::clearObjectStore):
156
157         Instead, the transaction operations should do that themselves:
158         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
159         (WebCore::ClearObjectStoreOperation::perform):
160         * Modules/indexeddb/IDBTransactionBackendOperations.h:
161         (WebCore::ClearObjectStoreOperation::transaction):
162
163 2014-01-23  Dan Bernstein  <mitz@apple.com>
164
165         <rdar://problem/15875326> REGRESSION (r162257): Assertion failure (should not be reached) in CSSPreloadScanner::tokenize()
166         https://bugs.webkit.org/show_bug.cgi?id=127540
167
168         Reviewed by Anders Carlsson.
169
170         No new tests, because I could not reproduce the bug reliably and I don’t know how to trigger
171         it.
172
173         * html/parser/CSSPreloadScanner.cpp:
174         (WebCore::CSSPreloadScanner::scan): Check for the DoneParsingImportRules before tokenizing
175         a character, not after. This restores the logic from before r162257.
176
177 2014-01-23  Jer Noble  <jer.noble@apple.com>
178
179         [iOS] Protect against possbile deadlock by delaying video layer creation
180         https://bugs.webkit.org/show_bug.cgi?id=127505
181
182         Reviewed by Eric Carlson.
183
184         Work around a possible deadlock on iOS when creating a media element
185         backed by AVFoundation by delaying creation of the AVPlayerLayer.
186         The deadlock can occur when the web thread is doing CALayer layout
187         while taking the web thread lock, while CoreMedia is doing property
188         access on an async thread while taking the CM lock, and each is waiting
189         for the other's lock to be released.
190
191         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
192         (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer):
193
194 2014-01-23  Jer Noble  <jer.noble@apple.com>
195
196         [MSE][Mac] Crash when reloading a page during playback
197         https://bugs.webkit.org/show_bug.cgi?id=126903
198
199         Reviewed by Eric Carlson.
200
201         Periodic time observers added to AVSampleBufferRenderSynchronizer will execute their
202         callback block even after being removed with -removeTimeObserver:, which is tracked by
203         <rdar://problem/15798050>. Work around this problem by passing a WeakPtr into the block
204         and bail early if the owning media player has been destroyed.
205
206         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
207         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::createWeakPtr):
208         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
209         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
210
211 2014-01-23  ChangSeok Oh  <changseok.oh@collabora.com>
212
213         Dragging from inner side of video to outside causes a crash
214         https://bugs.webkit.org/show_bug.cgi?id=126338
215
216         Reviewed by Jer Noble.
217
218         The crash happens while dragging mouse cursor through timeline control to outside
219         of video region. This is beacause media controls are selected with the drag.
220         The media controls disappear when mouse cursor goes outside of video though
221         the dragging/selection proceeds. If once media controls are hidden, related element
222         lose their renderers. However the drag is still under going. it requires shadowPseudoId
223         of the selected controls. Untorntunately, SliderThumbElement/SliderContainerElement
224         don't return a static value for the shadowPseudoId unlike other media controls,
225         but they need a renderer to determine it. This is the reason of crash.
226
227         Test: media/media-controller-drag-crash.html
228
229         * html/shadow/SliderThumbElement.cpp:
230         (WebCore::SliderThumbElement::shadowPseudoId):
231         (WebCore::SliderContainerElement::shadowPseudoId):
232
233 2014-01-23  Brady Eidson  <beidson@apple.com>
234
235         IDB: Implement SQLite backing store 'get' support
236         https://bugs.webkit.org/show_bug.cgi?id=127502
237
238         Reviewed by Tim Horton.
239
240         Get a KeyRange from a KeyRangeData:
241         * Modules/indexeddb/IDBKeyRangeData.cpp:
242         (WebCore::IDBKeyRangeData::maybeCreateIDBKeyRange):
243         * Modules/indexeddb/IDBKeyRangeData.h:
244
245         Add collation function support to SQLiteDatabase:
246         * platform/sql/SQLiteDatabase.cpp:
247         (WebCore::destroyCollationFunction):
248         (WebCore::callCollationFunction):
249         (WebCore::SQLiteDatabase::setCollationFunction):
250         (WebCore::SQLiteDatabase::removeCollationFunction):
251         * platform/sql/SQLiteDatabase.h:
252
253         * WebCore.exp.in:
254
255 2014-01-23  Jon Honeycutt  <jhoneycutt@apple.com>
256
257         Assertion failure in WebCore::PseudoElement::didRecalcStyle()
258         <https://bugs.webkit.org/show_bug.cgi?id=126761>
259         <rdar://problem/15793540>
260
261         Reviewed by Andy Estes.
262
263         Test: fast/images/animate-list-item-image-assertion.html
264
265         * dom/PseudoElement.cpp:
266         (WebCore::PseudoElement::didRecalcStyle):
267         Check isRenderImage() rather than isImage() before casting to
268         RenderImage.
269
270         * editing/ios/EditorIOS.mm:
271         (WebCore::getImage):
272         Ditto.
273
274         * editing/mac/EditorMac.mm:
275         (WebCore::getImage):
276         Ditto.
277
278         * html/HTMLImageElement.cpp:
279         (WebCore::HTMLImageElement::parseAttribute):
280         (WebCore::HTMLImageElement::didAttachRenderers):
281         Ditto.
282
283         * loader/ImageLoader.cpp:
284         (WebCore::ImageLoader::renderImageResource):
285         Ditto.
286
287         * page/DragController.cpp:
288         (WebCore::getCachedImage):
289         Ditto.
290
291         * rendering/RenderLayerBacking.cpp:
292         (WebCore::RenderLayerBacking::isDirectlyCompositedImage):
293         (WebCore::RenderLayerBacking::updateImageContents):
294         Ditto.
295
296 2014-01-23  Joseph Pecoraro  <pecoraro@apple.com>
297
298         Web Inspector: Remove recompileAllJSFunctions timer in ScriptDebugServer
299         https://bugs.webkit.org/show_bug.cgi?id=127409
300
301         Reviewed by Geoffrey Garen.
302
303         Covered by existing tests.
304
305         * bindings/js/ScriptDebugServer.h:
306         * bindings/js/ScriptDebugServer.cpp:
307         (WebCore::ScriptDebugServer::ScriptDebugServer):
308         Remove m_recompileTimer and the recompile soon function.
309         We can just recompile immediately in all existing cases.
310
311         * bindings/js/PageScriptDebugServer.h:
312         * bindings/js/PageScriptDebugServer.cpp:
313         (WebCore::PageScriptDebugServer::addListener):
314         (WebCore::PageScriptDebugServer::removeListener):
315         (WebCore::PageScriptDebugServer::recompileAllJSFunctions):
316         (WebCore::PageScriptDebugServer::didAddFirstListener):
317         (WebCore::PageScriptDebugServer::didRemoveLastListener):
318         Add a "didAddFirstListener" to match "didRemoveLastListener".
319         Only recompile functions when we attach the debugger and when
320         we detach the last listener.
321
322         * bindings/js/WorkerScriptDebugServer.cpp:
323         (WebCore::WorkerScriptDebugServer::addListener):
324         (WebCore::WorkerScriptDebugServer::removeListener):
325         (WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
326         Same thing. Also rearrange the functions to read better.
327
328         * inspector/InspectorProfilerAgent.cpp:
329         Use the direct recompile function instead of the removed "soon" version.
330
331         * WebCore.exp.in:
332         Update disconnectFrontend symbol.
333
334         * page/PageDebuggable.cpp:
335         (WebCore::PageDebuggable::disconnect):
336         * testing/Internals.cpp:
337         (WebCore::Internals::closeDummyInspectorFrontend):
338         * workers/WorkerMessagingProxy.cpp:
339         (WebCore::disconnectFromWorkerGlobalScopeInspectorTask):
340         Include an InspectorDisconnectReason when calling disconnectFrontend.
341
342         * inspector/InspectorDatabaseAgent.h:
343         * inspector/InspectorDebuggerAgent.cpp:
344         (WebCore::InspectorDebuggerAgent::disable):
345         (WebCore::InspectorDebuggerAgent::willDestroyFrontendAndBackend):
346         If the disconnect reason is the page will be destroyed, don't recompile when disconnecting.
347
348         * inspector/InspectorProfilerAgent.h:
349         * inspector/InspectorProfilerAgent.cpp:
350         (WebCore::InspectorProfilerAgent::enable):
351         (WebCore::InspectorProfilerAgent::disable):
352         (WebCore::InspectorProfilerAgent::willDestroyFrontendAndBackend):
353         If the disconnect reason is the page will be destroyed, don't recompile when disconnecting.
354
355         * inspector/InspectorController.h:
356         * inspector/InspectorController.cpp:
357         (WebCore::InspectorController::inspectedPageDestroyed):
358         (WebCore::InspectorController::disconnectFrontend):
359         (WebCore::InspectorController::close):
360         Pass different reasons for the different disconnect reasons.
361
362         * inspector/WorkerInspectorController.h:
363         * inspector/WorkerInspectorController.cpp:
364         (WebCore::WorkerInspectorController::~WorkerInspectorController):
365         (WebCore::WorkerInspectorController::disconnectFrontend):
366         Pass different reasons for the different disconnect reasons.
367
368         * inspector/InspectorApplicationCacheAgent.cpp:
369         (WebCore::InspectorApplicationCacheAgent::willDestroyFrontendAndBackend):
370         * inspector/InspectorApplicationCacheAgent.h:
371         * inspector/InspectorCSSAgent.cpp:
372         (WebCore::InspectorCSSAgent::willDestroyFrontendAndBackend):
373         * inspector/InspectorCSSAgent.h:
374         * inspector/InspectorCanvasAgent.cpp:
375         (WebCore::InspectorCanvasAgent::willDestroyFrontendAndBackend):
376         * inspector/InspectorCanvasAgent.h:
377         * inspector/InspectorConsoleAgent.cpp:
378         (WebCore::InspectorConsoleAgent::willDestroyFrontendAndBackend):
379         * inspector/InspectorConsoleAgent.h:
380         * inspector/InspectorDOMAgent.cpp:
381         (WebCore::InspectorDOMAgent::willDestroyFrontendAndBackend):
382         * inspector/InspectorDOMAgent.h:
383         * inspector/InspectorDOMDebuggerAgent.cpp:
384         (WebCore::InspectorDOMDebuggerAgent::willDestroyFrontendAndBackend):
385         * inspector/InspectorDOMDebuggerAgent.h:
386         * inspector/InspectorDOMStorageAgent.cpp:
387         (WebCore::InspectorDOMStorageAgent::willDestroyFrontendAndBackend):
388         * inspector/InspectorDOMStorageAgent.h:
389         * inspector/InspectorDatabaseAgent.cpp:
390         (WebCore::InspectorDatabaseAgent::willDestroyFrontendAndBackend):
391         * inspector/InspectorDebuggerAgent.h:
392         * inspector/InspectorHeapProfilerAgent.cpp:
393         (WebCore::InspectorHeapProfilerAgent::willDestroyFrontendAndBackend):
394         * inspector/InspectorHeapProfilerAgent.h:
395         * inspector/InspectorIndexedDBAgent.cpp:
396         (WebCore::InspectorIndexedDBAgent::willDestroyFrontendAndBackend):
397         * inspector/InspectorIndexedDBAgent.h:
398         * inspector/InspectorInputAgent.cpp:
399         (WebCore::InspectorInputAgent::willDestroyFrontendAndBackend):
400         * inspector/InspectorInputAgent.h:
401         * inspector/InspectorLayerTreeAgent.cpp:
402         (WebCore::InspectorLayerTreeAgent::willDestroyFrontendAndBackend):
403         * inspector/InspectorLayerTreeAgent.h:
404         * inspector/InspectorMemoryAgent.cpp:
405         (WebCore::InspectorMemoryAgent::willDestroyFrontendAndBackend):
406         * inspector/InspectorMemoryAgent.h:
407         * inspector/InspectorPageAgent.cpp:
408         (WebCore::InspectorPageAgent::willDestroyFrontendAndBackend):
409         * inspector/InspectorPageAgent.h:
410         * inspector/InspectorResourceAgent.cpp:
411         (WebCore::InspectorResourceAgent::willDestroyFrontendAndBackend):
412         * inspector/InspectorResourceAgent.h:
413         * inspector/InspectorTimelineAgent.cpp:
414         (WebCore::InspectorTimelineAgent::willDestroyFrontendAndBackend):
415         * inspector/InspectorTimelineAgent.h:
416         * inspector/InspectorWorkerAgent.cpp:
417         (WebCore::InspectorWorkerAgent::willDestroyFrontendAndBackend):
418         * inspector/InspectorWorkerAgent.h:
419         * inspector/PageDebuggerAgent.cpp:
420         (WebCore::PageDebuggerAgent::disable):
421         (WebCore::PageDebuggerAgent::stopListeningScriptDebugServer):
422         * inspector/PageDebuggerAgent.h:
423         * inspector/PageRuntimeAgent.cpp:
424         (WebCore::PageRuntimeAgent::willDestroyFrontendAndBackend):
425         * inspector/PageRuntimeAgent.h:
426         * inspector/WorkerDebuggerAgent.cpp:
427         (WebCore::WorkerDebuggerAgent::stopListeningScriptDebugServer):
428         * inspector/WorkerDebuggerAgent.h:
429         * inspector/WorkerRuntimeAgent.cpp:
430         (WebCore::WorkerRuntimeAgent::willDestroyFrontendAndBackend):
431         * inspector/WorkerRuntimeAgent.h:
432         Include InspectorDisconnectReason param.
433
434 2014-01-23  Simon Fraser  <simon.fraser@apple.com>
435
436         Another Windows fix: include <algorithm> for std::min and std::max.
437         
438         * platform/graphics/IntSize.h:
439
440 2014-01-23  Simon Fraser  <simon.fraser@apple.com>
441
442         Try to fix Windows build.
443
444         * platform/win/PopupMenuWin.cpp:
445         (WebCore::PopupMenuWin::visibleSize):
446         * platform/win/PopupMenuWin.h:
447
448 2014-01-23  Simon Fraser  <simon.fraser@apple.com>
449
450         Make visibleContentRect() return actualVisibleContentRect() on iOS most of the time
451         https://bugs.webkit.org/show_bug.cgi?id=127456
452         
453         Reviewed by Antti Koivisto.
454         
455         On iOS, visibleContentRect() returns the entire document rect for historical
456         reasons, and actualVisibleContentRect() returns what visibleContentRect()
457         returns on other platforms.
458         
459         In addition, actualVisibleContentRect() was returning an empty rect in WK2.
460         
461         Reduce the confusion of #ifdefs by making visibleContentRect() behave like
462         actualVisibleContentRect() by default on iOS. Where it needs the old behavior,
463         an optional parameter, LegacyIOSDocumentVisibleRect, provides this.
464         
465         Achieve this by having the virtual ScrollableArea::visibleContentRectInternal(),
466         which is called by non-virtual visibleContentRect() and visibleContentRectIncludingScrollbars().
467         
468         Similarly clean up visibleHeight/visibleWidth functions by having visibleSize() be virtual,
469         with non-virtual visibleHeight() and visibleWidth().
470         
471         ScrollableArea subclasses override visibleContentRectInternal() and visibleSize() where necessary.
472         
473         Mechanically change all the call sites of actualVisibleContentRect() to
474         use visibleContentRect(), and the call sites of visibleContentRect()
475         to visibleContentRect(..., LegacyIOSDocumentVisibleRect), adding comments
476         where this may not be appropriate.
477         
478         Change callers of visibleContentRect(IncludeScrollbars...) to visibleContentRectIncludingScrollbars().
479         
480         Also add actualScrollPosition(), and clean up some actualScroll* call sites.
481         
482         No behavior change.
483
484         * WebCore.exp.in:
485         * accessibility/AccessibilityObject.cpp:
486         (WebCore::AccessibilityObject::isOnscreen):
487         (WebCore::AccessibilityObject::scrollToMakeVisibleWithSubFocus):
488         * accessibility/AccessibilityRenderObject.cpp:
489         (WebCore::AccessibilityRenderObject::isOffScreen):
490         * dom/Document.cpp:
491         (WebCore::Document::adjustFloatQuadsForScrollAndAbsoluteZoomAndFrameScale):
492         (WebCore::Document::adjustFloatRectForScrollAndAbsoluteZoomAndFrameScale):
493         * dom/MouseRelatedEvent.cpp:
494         (WebCore::MouseRelatedEvent::MouseRelatedEvent):
495         * editing/Editor.cpp:
496         (WebCore::Editor::countMatchesForText):
497         * editing/FrameSelection.cpp:
498         (WebCore::FrameSelection::bounds):
499         (WebCore::FrameSelection::getClippedVisibleTextRectangles):
500         * html/HTMLBodyElement.cpp:
501         (WebCore::HTMLBodyElement::scrollLeft):
502         (WebCore::HTMLBodyElement::scrollTop):
503         * html/ImageDocument.cpp:
504         (WebCore::ImageDocument::imageFitsInWindow):
505         (WebCore::ImageDocument::windowSizeChanged):
506         * inspector/InspectorOverlay.cpp:
507         (WebCore::InspectorOverlay::update):
508         * page/DOMWindow.cpp:
509         (WebCore::DOMWindow::innerHeight):
510         (WebCore::DOMWindow::innerWidth):
511         (WebCore::DOMWindow::scrollX):
512         (WebCore::DOMWindow::scrollY):
513         (WebCore::DOMWindow::scrollBy):
514         * page/FrameView.cpp:
515         (WebCore::FrameView::calculateScrollbarModesForLayout):
516         (WebCore::FrameView::layout):
517         (WebCore::FrameView::scrollContentsSlowPath):
518         (WebCore::FrameView::repaintContentRectangle):
519         (WebCore::FrameView::sendResizeEventIfNeeded):
520         (WebCore::FrameView::windowClipRect):
521         (WebCore::FrameView::isScrollable):
522         (WebCore::FrameView::paintControlTints):
523         * page/SpatialNavigation.cpp:
524         (WebCore::canScrollInDirection):
525         * platform/ScrollView.cpp:
526         (WebCore::ScrollView::unscaledVisibleContentSize):
527         (WebCore::ScrollView::visibleContentRectInternal):
528         (WebCore::ScrollView::updateScrollbars):
529         (WebCore::ScrollView::paint):
530         * platform/ScrollView.h:
531         (WebCore::ScrollView::scrollOffset):
532         (WebCore::ScrollView::actualScrollX):
533         (WebCore::ScrollView::actualScrollY):
534         (WebCore::ScrollView::actualScrollPosition):
535         * platform/ScrollableArea.cpp:
536         (WebCore::ScrollableArea::visibleContentRect):
537         (WebCore::ScrollableArea::visibleContentRectIncludingScrollbars):
538         (WebCore::ScrollableArea::visibleContentRectInternal):
539         * platform/ScrollableArea.h:
540         (WebCore::ScrollableArea::visibleWidth):
541         (WebCore::ScrollableArea::visibleHeight):
542         * platform/graphics/IntSize.h:
543         (WebCore::IntSize::expandedTo): Drive-by cleanup.
544         (WebCore::IntSize::shrunkTo):
545         * platform/gtk/ScrollViewGtk.cpp:
546         (WebCore::ScrollView::visibleContentRect):
547         * rendering/RenderLayer.cpp:
548         (WebCore::RenderLayer::scrollRectToVisible):
549         (WebCore::RenderLayer::maximumScrollPosition):
550         (WebCore::RenderLayer::visibleContentRectInternal):
551         (WebCore::RenderLayer::hitTest):
552         * rendering/RenderLayer.h:
553         * rendering/RenderLayerBacking.cpp:
554         (WebCore::RenderLayerBacking::updateCompositedBounds):
555         * rendering/RenderListBox.cpp:
556         * rendering/RenderListBox.h:
557         * rendering/RenderView.cpp:
558         (WebCore::RenderView::viewRect):
559         (WebCore::RenderView::viewportSize):
560
561 2014-01-20  Myles C. Maxfield  <mmaxfield@apple.com>
562
563        Turn text-decoration-skip: ink on for all underlines
564        https://bugs.webkit.org/show_bug.cgi?id=127331
565
566        Reviewed by Antti Koivisto.
567
568        No new tests are necessary because tests already exist
569
570        * rendering/style/RenderStyle.h:
571
572 2014-01-23  Hans Muller  <hmuller@adobe.com>
573
574         [CSS Shapes] Image valued shape size and position should conform to the spec
575         https://bugs.webkit.org/show_bug.cgi?id=123295
576
577         Reviewed by Andreas Kling.
578
579         Implement image valued shape-outside scaling and translation per the spec,
580         http://dev.w3.org/csswg/css-shapes/#shapes-from-image:
581
582         "The image is sized and positioned as if it were a replaced element whose
583         specified width and height are the same as the element’s used content box size."
584
585         This change doesn't completely fulfill the spec, it's limited to image elements
586         and shape-outside.
587
588         Tests: fast/shapes/shape-outside-floats/shape-outside-image-fit-001.html
589                fast/shapes/shape-outside-floats/shape-outside-image-fit-002.html
590                fast/shapes/shape-outside-floats/shape-outside-image-fit-003.html
591                fast/shapes/shape-outside-floats/shape-outside-image-fit-004.html
592
593         * rendering/shapes/Shape.h:
594         * rendering/shapes/Shape.cpp:
595         (WebCore::Shape::createRasterShape):
596         Added an imageRect parameter which specifies where the shape image is to
597         appear relative to the content box. The imageRect implies both scaling and
598         translation of the shape image.
599
600         * rendering/shapes/ShapeInfo.cpp:
601         (WebCore::ShapeInfo<RenderType>::computedShape):
602         (WebCore::getShapeImageRect):
603         For replaced elements, compute the shape's imageRect with
604         RenderReplaced::replacedContentRect().
605
606
607 2014-01-23  Max Vujovic  <mvujovic@adobe.com>
608
609         Remove CSS Custom Filters code and tests
610         https://bugs.webkit.org/show_bug.cgi?id=127382
611
612         Reviewed by Simon Fraser.
613
614         No new tests. Removing functionality.
615
616         * CMakeLists.txt:
617         * Configurations/FeatureDefines.xcconfig:
618         * DerivedSources.cpp:
619         * DerivedSources.make:
620         * GNUmakefile.list.am:
621         * WebCore.order:
622         * WebCore.vcxproj/WebCore.vcxproj:
623         * WebCore.vcxproj/WebCore.vcxproj.filters:
624         * WebCore.xcodeproj/project.pbxproj:
625         * bindings/js/JSCSSRuleCustom.cpp:
626         (WebCore::toJS):
627         * bindings/js/JSCSSValueCustom.cpp:
628         (WebCore::toJS):
629         * bindings/objc/DOMCSS.mm:
630         (kitClass):
631         * css/CSSComputedStyleDeclaration.cpp:
632         (WebCore::ComputedStyleExtractor::valueForFilter):
633         (WebCore::ComputedStyleExtractor::propertyValue):
634         * css/CSSComputedStyleDeclaration.h:
635         * css/CSSGrammar.y.in:
636         * css/CSSParser.cpp:
637         (WebCore::CSSParserContext::CSSParserContext):
638         (WebCore::operator==):
639         (WebCore::CSSParser::CSSParser):
640         (WebCore::CSSParser::parseValue):
641         (WebCore::filterInfoForName):
642         (WebCore::CSSParser::parseFilter):
643         (WebCore::CSSParser::detectAtToken):
644         * css/CSSParser.h:
645         * css/CSSParserMode.h:
646         * css/CSSPropertyNames.in:
647         * css/CSSPropertySourceData.h:
648         * css/CSSRule.h:
649         * css/CSSRule.idl:
650         * css/CSSValue.cpp:
651         (WebCore::CSSValue::equals):
652         (WebCore::CSSValue::cssText):
653         (WebCore::CSSValue::destroy):
654         (WebCore::CSSValue::cloneForCSSOM):
655         * css/CSSValue.h:
656         * css/CSSValueKeywords.in:
657         * css/StyleResolver.cpp:
658         (WebCore::StyleResolver::State::clear):
659         (WebCore::StyleResolver::applyProperty):
660         (WebCore::filterOperationForType):
661         (WebCore::StyleResolver::createFilterOperations):
662         (WebCore::StyleResolver::loadPendingResources):
663         * css/StyleResolver.h:
664         (WebCore::StyleResolver::State::State):
665         * css/StyleRule.cpp:
666         (WebCore::StyleRuleBase::destroy):
667         (WebCore::StyleRuleBase::copy):
668         (WebCore::StyleRuleBase::createCSSOMWrapper):
669         * css/StyleRule.h:
670         * css/StyleSheetContents.cpp:
671         (WebCore::childRulesHaveFailedOrCanceledSubresources):
672         * css/WebKitCSSArrayFunctionValue.cpp: Removed.
673         * css/WebKitCSSArrayFunctionValue.h: Removed.
674         * css/WebKitCSSFilterRule.cpp: Removed.
675         * css/WebKitCSSFilterRule.h: Removed.
676         * css/WebKitCSSFilterRule.idl: Removed.
677         * css/WebKitCSSFilterValue.cpp:
678         (WebCore::WebKitCSSFilterValue::WebKitCSSFilterValue):
679         (WebCore::WebKitCSSFilterValue::customCSSText):
680         * css/WebKitCSSFilterValue.h:
681         * css/WebKitCSSFilterValue.idl:
682         * css/WebKitCSSMatFunctionValue.cpp: Removed.
683         * css/WebKitCSSMatFunctionValue.h: Removed.
684         * css/WebKitCSSMixFunctionValue.cpp: Removed.
685         * css/WebKitCSSMixFunctionValue.h: Removed.
686         * css/WebKitCSSMixFunctionValue.idl: Removed.
687         * css/WebKitCSSShaderValue.cpp: Removed.
688         * css/WebKitCSSShaderValue.h: Removed.
689         * loader/cache/CachedResource.cpp:
690         (WebCore::defaultPriorityForResourceType):
691         * loader/cache/CachedResource.h:
692         * loader/cache/CachedResourceLoader.cpp:
693         (WebCore::createResource):
694         (WebCore::CachedResourceLoader::checkInsecureContent):
695         (WebCore::CachedResourceLoader::canRequest):
696         * loader/cache/CachedResourceLoader.h:
697         * loader/cache/CachedShader.cpp: Removed.
698         * loader/cache/CachedShader.h: Removed.
699         * page/Settings.cpp:
700         (WebCore::Settings::Settings):
701         * page/Settings.h:
702         * page/animation/CSSPropertyAnimation.cpp:
703         (WebCore::blendFilter):
704         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
705         (PlatformCALayerMac::filtersCanBeComposited):
706         * platform/graphics/filters/CustomFilterArrayParameter.h: Removed.
707         * platform/graphics/filters/CustomFilterColorParameter.h: Removed.
708         * platform/graphics/filters/CustomFilterCompiledProgram.cpp: Removed.
709         * platform/graphics/filters/CustomFilterCompiledProgram.h: Removed.
710         * platform/graphics/filters/CustomFilterConstants.h: Removed.
711         * platform/graphics/filters/CustomFilterGlobalContext.cpp: Removed.
712         * platform/graphics/filters/CustomFilterGlobalContext.h: Removed.
713         * platform/graphics/filters/CustomFilterMesh.cpp: Removed.
714         * platform/graphics/filters/CustomFilterMesh.h: Removed.
715         * platform/graphics/filters/CustomFilterMeshGenerator.cpp: Removed.
716         * platform/graphics/filters/CustomFilterMeshGenerator.h: Removed.
717         * platform/graphics/filters/CustomFilterNumberParameter.h: Removed.
718         * platform/graphics/filters/CustomFilterOperation.cpp: Removed.
719         * platform/graphics/filters/CustomFilterOperation.h: Removed.
720         * platform/graphics/filters/CustomFilterParameter.h: Removed.
721         * platform/graphics/filters/CustomFilterParameterList.cpp: Removed.
722         * platform/graphics/filters/CustomFilterParameterList.h: Removed.
723         * platform/graphics/filters/CustomFilterProgram.cpp: Removed.
724         * platform/graphics/filters/CustomFilterProgram.h: Removed.
725         * platform/graphics/filters/CustomFilterProgramClient.h: Removed.
726         * platform/graphics/filters/CustomFilterProgramInfo.cpp: Removed.
727         * platform/graphics/filters/CustomFilterProgramInfo.h: Removed.
728         * platform/graphics/filters/CustomFilterRenderer.cpp: Removed.
729         * platform/graphics/filters/CustomFilterRenderer.h: Removed.
730         * platform/graphics/filters/CustomFilterTransformParameter.h: Removed.
731         * platform/graphics/filters/CustomFilterValidatedProgram.cpp: Removed.
732         * platform/graphics/filters/CustomFilterValidatedProgram.h: Removed.
733         * platform/graphics/filters/FECustomFilter.cpp: Removed.
734         * platform/graphics/filters/FECustomFilter.h: Removed.
735         * platform/graphics/filters/FilterOperation.h:
736         * platform/graphics/filters/FilterOperations.cpp:
737         (WebCore::FilterOperations::outsets):
738         * platform/graphics/filters/FilterOperations.h:
739         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Removed.
740         * platform/graphics/filters/ValidatedCustomFilterOperation.h: Removed.
741         * platform/graphics/filters/texmap/CustomFilterValidatedProgramTextureMapper.cpp: Removed.
742         * platform/graphics/filters/texmap/TextureMapperPlatformCompiledProgram.h: Removed.
743         * platform/graphics/gpu/Texture.cpp:
744         * platform/graphics/texmap/TextureMapper.h:
745         * platform/graphics/texmap/TextureMapperGL.cpp:
746         (WebCore::getPassesRequiredForFilter):
747         (WebCore::BitmapTextureGL::applyFilters):
748         * platform/graphics/texmap/TextureMapperGL.h:
749         * platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:
750         (WebCore::CompositingCoordinator::clearPendingStateChanges):
751         (WebCore::CompositingCoordinator::syncLayerState):
752         * platform/graphics/texmap/coordinated/CompositingCoordinator.h:
753         * platform/graphics/texmap/coordinated/CoordinatedCustomFilterOperation.h: Removed.
754         * platform/graphics/texmap/coordinated/CoordinatedCustomFilterProgram.h: Removed.
755         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
756         (WebCore::CoordinatedGraphicsScene::setLayerFiltersIfNeeded):
757         (WebCore::CoordinatedGraphicsScene::commitSceneState):
758         (WebCore::CoordinatedGraphicsScene::setLayerAnimationsIfNeeded):
759         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
760         * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
761         * rendering/FilterEffectRenderer.cpp:
762         (WebCore::FilterEffectRenderer::FilterEffectRenderer):
763         (WebCore::FilterEffectRenderer::build):
764         (WebCore::FilterEffectRenderer::computeSourceImageRectForDirtyRect):
765         * rendering/FilterEffectRenderer.h:
766         * rendering/RenderLayer.cpp:
767         (WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
768         (WebCore::RenderLayer::calculateClipRects):
769         * rendering/RenderLayer.h:
770         * rendering/RenderLayerBacking.cpp:
771         (WebCore::RenderLayerBacking::updateFilters):
772         * rendering/RenderLayerFilterInfo.cpp:
773         (WebCore::RenderLayer::FilterInfo::~FilterInfo):
774         * rendering/RenderLayerFilterInfo.h:
775         * rendering/RenderView.cpp:
776         * rendering/RenderView.h:
777         * rendering/style/StyleCachedShader.cpp: Removed.
778         * rendering/style/StyleCachedShader.h: Removed.
779         * rendering/style/StyleCustomFilterProgram.cpp: Removed.
780         * rendering/style/StyleCustomFilterProgram.h: Removed.
781         * rendering/style/StyleCustomFilterProgramCache.cpp: Removed.
782         * rendering/style/StyleCustomFilterProgramCache.h: Removed.
783         * rendering/style/StylePendingShader.h: Removed.
784         * rendering/style/StyleShader.h: Removed.
785
786 2014-01-22  Jon Honeycutt  <jhoneycutt@apple.com>
787
788         REGRESSION(r161967): Crash in WebCore::CachedSVGDocumentReference::load
789         <https://webkit.org/b/127151>
790         <rdar://problem/15840760>
791
792         There were two issues introduced here; the first is a use-after-free of
793         CachedSVGDocumentReference objects.
794
795         The previous code kept a map from FilterOperation ->
796         RefPtr<WebKitCSSSVGDocumentValue>, which retained the
797         CachedSVGDocument. In r161967, this was changed to use a weak HashSet,
798         which allows stale CachedSVGDocumentReferences in the pending document
799         set if the owning FilterOperation is deleted. To fix this, we'll keep a
800         vector of RefPtr<FilterOperation> with pending SVG documents.
801
802         The second issue is a null deref in CachedSVGDocumentReference::load();
803         CachedResourceLoader::requestSVGDocument() can return 0 if (for
804         example) an invalid URL is passed. r161967 removed a null check as part
805         of the refactoring.
806
807         Reviewed by Dirk Schulze.
808
809         Tests: css3/filters/crash-filter-animation-invalid-url.html
810                css3/filters/crash-invalid-url.html
811
812         * css/StyleResolver.cpp:
813         (WebCore::StyleResolver::State::clear):
814         Use new member var name.
815         (WebCore::StyleResolver::loadPendingSVGDocuments):
816         For each FilterOperation with a pending SVG document, get or create a
817         CachedSVGDocumentReference, and tell it to load. Changed to use new
818         function names.
819         (WebCore::StyleResolver::createFilterOperations):
820         Append the FilterOperation to the list of FilterOperations with
821         unloaded SVG documents.
822
823         * css/StyleResolver.h:
824         Changed from using PendingSVGDocumentSet, a weak set, to
825         a Vector<RefPtr<ReferenceFilterOperation>>.
826         (WebCore::StyleResolver::State::filtersWithPendingSVGDocuments):
827         Return the vector.
828
829         * loader/cache/CachedSVGDocumentReference.cpp:
830         (WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
831         Null check m_document rather than checking m_loadRequested.
832         m_loadRequested may be true when m_document is 0.
833         (WebCore::CachedSVGDocumentReference::load):
834         Null check the result of CachedResourceLoader::requestSVGDocument().
835
836         * platform/graphics/filters/FilterOperation.cpp:
837         (WebCore::ReferenceFilterOperation::getOrCreateCachedSVGDocumentReference):
838         Create, if necessary, and return the CachedSVGDocumentReference.
839
840         * platform/graphics/filters/FilterOperation.h:
841         Replaced createCachedSVGDocumentReference() with
842         getOrCreateCachedSVGDocumentReference(), which makes for slightly
843         cleaner code.
844
845 2014-01-23  Antti Koivisto  <antti@apple.com>
846
847         Don't enable speculative tiles immediately after main load stops progressing
848         https://bugs.webkit.org/show_bug.cgi?id=127507
849
850         Reviewed by Andreas Kling.
851
852         It is common for timers and events to trigger more loading after the initial main frame loading
853         has completed. We should delay a bit before enabling speculative tiles and keep them disabled 
854         if loading still continues.
855
856         * page/FrameView.cpp:
857         (WebCore::FrameView::FrameView):
858         (WebCore::FrameView::adjustTiledBackingCoverage):
859         (WebCore::shouldEnableSpeculativeTilingDuringLoading):
860         (WebCore::FrameView::enableSpeculativeTilingIfNeeded):
861         
862             When load progression stops wait 0.5s before enabling speculative tiles.
863
864         (WebCore::FrameView::speculativeTilingEnableTimerFired):
865         
866             Don't enable speculative tiles if the progression has started again. Instead restart the timer.
867
868         * page/FrameView.h:
869         * rendering/RenderLayerBacking.cpp:
870         (WebCore::RenderLayerBacking::RenderLayerBacking):
871         (WebCore::computeTileCoverage):
872         
873             Move the FrameView level code to FrameView (so we don't need to add a timer to every RenderLayerBacking).
874
875         * rendering/RenderLayerBacking.h:
876
877 2014-01-23  Antti Koivisto  <antti@apple.com>
878
879         Loads started soon after main frame completion should be considered part of the main load
880         https://bugs.webkit.org/show_bug.cgi?id=127504
881
882         Reviewed by Andreas Kling.
883
884         ProgressTracker currently decides that main load is complete when the main frame stops loading. 
885         However it is common that timers and onload events trigger more loads immediately (for example 
886         by inserting iframes) and loading continues visually. These should be considered as part of the
887         main load for paint throttling and speculative tiling coverage purposes.
888
889         * loader/ProgressTracker.cpp:
890         (WebCore::ProgressTracker::ProgressTracker):
891         (WebCore::ProgressTracker::progressStarted):
892         
893             Track whether this is considered part of the main load or not with a boolean. 
894             It is set for subframe loads too if they start loading soon (within 1s) after the main frame load completes.
895
896         (WebCore::ProgressTracker::finalProgressComplete):
897         
898             Get a timestamp.
899
900         (WebCore::ProgressTracker::isMainLoadProgressing):
901
902             New definition of "main load".
903
904         * loader/ProgressTracker.h:
905
906 2014-01-23  peavo@outlook.com  <peavo@outlook.com>
907
908         [WinCairo] Compile error.
909         https://bugs.webkit.org/show_bug.cgi?id=127499
910
911         Reviewed by Brent Fulgham.
912
913         * platform/network/curl/ResourceError.h: Include <winsock2.h> before <curl/curl.h>.
914
915 2014-01-23  Brady Eidson  <beidson@apple.com>
916
917         IDB: Implement cross-thread and IPC plumbing for 'get' support
918         https://bugs.webkit.org/show_bug.cgi?id=127501
919
920         Reviewed by Anders Carlsson.
921
922         Add isolatedCopy to the IDBGetResult object:
923         * Modules/indexeddb/IDBGetResult.h:
924         (WebCore::IDBGetResult::isolatedCopy):
925
926         Add a cross-thread and cross-IPC appropriate object for IDBKeyRanges:
927         * Modules/indexeddb/IDBKeyRangeData.cpp: Copied from Source/WebCore/Modules/indexeddb/IDBGetResult.h.
928         (WebCore::IDBKeyRangeData::isolatedCopy):
929         * Modules/indexeddb/IDBKeyRangeData.h: Copied from Source/WebCore/Modules/indexeddb/IDBGetResult.h.
930         (WebCore::IDBKeyRangeData::IDBKeyRangeData):
931
932         Add a few more cross-thread copiers:
933         * platform/CrossThreadCopier.cpp:
934         (WebCore::IDBGetResult>::copy):
935         (WebCore::IDBKeyRangeData>::copy):
936         * platform/CrossThreadCopier.h:
937
938         Project file gunk:
939         * CMakeLists.txt:
940         * GNUmakefile.list.am:
941         * WebCore.exp.in:
942         * WebCore.xcodeproj/project.pbxproj:
943
944 2014-01-23  Jer Noble  <jer.noble@apple.com>
945
946         [MSE][Mac] Adopt new AVStreamDataParser delegate API
947         https://bugs.webkit.org/show_bug.cgi?id=127498
948
949         Reviewed by Eric Carlson.
950
951         Adopt a new delegate API which passes in whether or not the new AVAsset
952         is discontinuous, implying the AVAsset is entirely new rather than
953         just updated with new information.
954
955         * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
956         (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:withDiscontinuity:]):
957
958 2014-01-23  Tim Horton  <timothy_horton@apple.com>
959
960         PDFPlugin: Use PDFPlugin even if there's an external plugin installed, if it's blocked
961         https://bugs.webkit.org/show_bug.cgi?id=127415
962         <rdar://problem/12482452>
963
964         Reviewed by Sam Weinig.
965
966         * English.lproj/Localizable.strings:
967         * WebCore.exp.in:
968         * platform/LocalizedStrings.cpp:
969         (WebCore::useBlockedPlugInContextMenuTitle):
970         * platform/LocalizedStrings.h:
971         Add a localizable string for the generic case, where the client
972         didn't provide a more specific string for the context menu item.
973
974 2014-01-23  peavo@outlook.com  <peavo@outlook.com>
975
976         [Curl] There is no way to specify cache folder.
977         https://bugs.webkit.org/show_bug.cgi?id=125028
978
979         Reviewed by Brent Fulgham.
980
981         Fixed logical test, disc cache should be disabled if creating cache folder fails.
982
983         * platform/network/curl/CurlCacheManager.cpp:
984         (WebCore::CurlCacheManager::setCacheDirectory):
985
986 2014-01-23  Brady Eidson  <beidson@apple.com>
987
988         Unreviewed build fix.
989
990         * WebCore.xcodeproj/project.pbxproj: Export the new header so WebKit can see it
991
992 2014-01-22  Brent Fulgham  <bfulgham@apple.com>
993
994         [Win] Update project and solution files for 64-bit builds
995         https://bugs.webkit.org/show_bug.cgi?id=127457
996
997         Reviewed by Eric Carlson.
998
999         * WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj: Update for VS2013
1000         * WebCore.vcxproj/WebCore.submit.sln: Add x64 targets
1001         * WebCore.vcxproj/WebCore.vcxproj: Update for VS2013. Also exclude 32-bit specific
1002         assembly when building 64-bit target.
1003         * WebCore.vcxproj/WebCore.vcxproj.filters: Update for VS2013
1004         * config.h: Handle 64-bit type definitions.
1005         * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
1006         (PlatformCAAnimation::setFromValue): Use CGFloat to support 64-bit builds
1007         (PlatformCAAnimation::setToValue): Ditto
1008         (PlatformCAAnimation::setValues): Ditto
1009         * platform/graphics/win/FontCustomPlatformData.cpp:
1010         (WebCore::FontCustomPlatformData::fontPlatformData): Add cast to
1011         support 32- and 64-bit targets.
1012         * platform/graphics/win/GraphicsContextCGWin.cpp:
1013         (WebCore::GraphicsContext::drawLineForDocumentMarker): Use CGFloat to
1014         support 64-bit builds.
1015         * platform/win/PasteboardWin.cpp:
1016         (WebCore::Pasteboard::writeURLToDataObject): Specialize std::min to
1017         work on 32- and 64-bit code.
1018         (WebCore::createGlobalImageFileDescriptor): Ditto
1019         * platform/win/StructuredExceptionHandlerSuppressor.cpp:
1020         (WebCore::StructuredExceptionHandlerSuppressor::StructuredExceptionHandlerSuppressor):
1021         Comment out 32-bit inline assembly.
1022         (WebCore::StructuredExceptionHandlerSuppressor::~StructuredExceptionHandlerSuppressor):
1023         Ditto
1024
1025 2014-01-23  Brady Eidson  <beidson@apple.com>
1026
1027         Make IDBGetResult work with IDBKeyData instead of IDBKey.
1028         https://bugs.webkit.org/show_bug.cgi?id=127493
1029
1030         Reviewed by Eric Carlson.
1031
1032         Also break it into its own header to work better with IPC messages.
1033
1034         * Modules/indexeddb/IDBGetResult.h: Added.
1035         (WebCore::IDBGetResult::IDBGetResult):
1036
1037         * Modules/indexeddb/IDBServerConnection.h:
1038
1039         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
1040         (WebCore::GetOperation::perform):
1041
1042         * WebCore.xcodeproj/project.pbxproj:
1043
1044 2014-01-23  Mátyás Mustoha  <mmatyas@inf.u-szeged.hu>
1045
1046         [curl] Add storage limit to cache manager
1047         https://bugs.webkit.org/show_bug.cgi?id=125779
1048
1049         Reviewed by Brent Fulgham.
1050
1051         Sets a local disc storage size limit for the cache manager
1052         used by the curl network backend.
1053
1054         * platform/network/curl/CurlCacheEntry.cpp:
1055         (WebCore::CurlCacheEntry::CurlCacheEntry):
1056         (WebCore::CurlCacheEntry::isCached):
1057         (WebCore::CurlCacheEntry::saveCachedData):
1058         (WebCore::CurlCacheEntry::readCachedData):
1059         (WebCore::CurlCacheEntry::didFail):
1060         (WebCore::CurlCacheEntry::didFinishLoading):
1061         (WebCore::CurlCacheEntry::loadFileToBuffer):
1062         (WebCore::CurlCacheEntry::parseResponseHeaders):
1063         (WebCore::CurlCacheEntry::entrySize):
1064         * platform/network/curl/CurlCacheEntry.h:
1065         (WebCore::CurlCacheEntry::requestHeaders):
1066         * platform/network/curl/CurlCacheManager.cpp:
1067         (WebCore::CurlCacheManager::CurlCacheManager):
1068         (WebCore::CurlCacheManager::setStorageSizeLimit):
1069         (WebCore::CurlCacheManager::loadIndex):
1070         (WebCore::CurlCacheManager::saveIndex):
1071         (WebCore::CurlCacheManager::makeRoomForNewEntry):
1072         (WebCore::CurlCacheManager::didReceiveResponse):
1073         (WebCore::CurlCacheManager::didReceiveData):
1074         (WebCore::CurlCacheManager::invalidateCacheEntry):
1075         (WebCore::CurlCacheManager::readCachedData):
1076         * platform/network/curl/CurlCacheManager.h:
1077         (WebCore::CurlCacheManager::cacheDirectory):
1078
1079 2014-01-23  Carlos Garcia Campos  <cgarcia@igalia.com>
1080
1081         Unreviewed. Fix automake warning.
1082
1083         * GNUmakefile.list.am: Remove trailing whitespaces.
1084
1085 2014-01-23  Mihai Maerean  <mmaerean@adobe.com>
1086
1087         [CSS Regions] Fix positioning composited layers when the region has overflow:hidden
1088         https://bugs.webkit.org/show_bug.cgi?id=124042
1089
1090         Reviewed by Mihnea Ovidenie.
1091
1092         If there's a clipping GraphicsLayer on the hierarchy, substract its offset, since it's its
1093         parent that positions us.
1094
1095         Tests: compositing/regions/position-layer-inside-region-overflow-hidden.html
1096                compositing/regions/position-layer-inside-overflow-hidden.html
1097                compositing/regions/position-layers-inside-region-overflow-hidden.html
1098                compositing/regions/position-layers-inside-regions-overflow-hidden.html
1099
1100         * rendering/RenderLayerBacking.cpp:
1101         (WebCore::RenderLayerBacking::adjustAncestorCompositingBoundsForFlowThread): The position
1102         must also be correct when the region has box-shadow that inflates the region's layer. The
1103         composited layers from the flow thread should be rendered in the same position whether the
1104         associated region has clipping or not.
1105         Using the position of the clipping layer instead of the location of the clipbox makes it
1106         also work with box-shadow that inflates the region's graphics layer.
1107
1108 2014-01-23  Andrei Bucur  <abucur@adobe.com>
1109
1110         [CSS Regions] Convert regions iterator loops to range-based loops
1111         https://bugs.webkit.org/show_bug.cgi?id=127464
1112
1113         Reviewed by Antti Koivisto.
1114
1115         Replace most of the iterator loops in the region implementation with
1116         range based for loops. The for loops that iterate only over subsets
1117         of collections have not been changed.
1118
1119         Tests: no new tests, this is a refactoring patch.
1120
1121         * dom/WebKitNamedFlow.cpp:
1122         (WebCore::WebKitNamedFlow::firstEmptyRegionIndex):
1123         (WebCore::WebKitNamedFlow::getRegionsByContent):
1124         (WebCore::WebKitNamedFlow::getRegions):
1125         (WebCore::WebKitNamedFlow::getContent):
1126         * inspector/InspectorOverlay.cpp:
1127         (WebCore::buildObjectForCSSRegionsHighlight):
1128         * rendering/RenderFlowThread.cpp:
1129         (WebCore::RenderFlowThread::validateRegions):
1130         (WebCore::RenderFlowThread::updateLogicalWidth):
1131         (WebCore::RenderFlowThread::computeLogicalHeight):
1132         (WebCore::RenderFlowThread::repaintRectangleInRegions):
1133         (WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
1134         (WebCore::RenderFlowThread::logicalWidthChangedInRegionsForBlock):
1135         (WebCore::RenderFlowThread::clearRenderBoxRegionInfoAndCustomStyle):
1136         (WebCore::RenderFlowThread::isAutoLogicalHeightRegionsCountConsistent):
1137         (WebCore::RenderFlowThread::markAutoLogicalHeightRegionsForLayout):
1138         (WebCore::RenderFlowThread::markRegionsForOverflowLayoutIfNeeded):
1139         (WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
1140         (WebCore::RenderFlowThread::collectLayerFragments):
1141         (WebCore::RenderFlowThread::fragmentsBoundingBox):
1142         * rendering/RenderNamedFlowFragment.cpp:
1143         (WebCore::RenderNamedFlowFragment::setRegionObjectsRegionStyle):
1144         (WebCore::RenderNamedFlowFragment::restoreRegionObjectsOriginalStyle):
1145         * rendering/RenderNamedFlowThread.cpp:
1146         (WebCore::RenderNamedFlowThread::clearContentElements):
1147         (WebCore::RenderNamedFlowThread::nextRendererForNode):
1148         (WebCore::RenderNamedFlowThread::dependsOn):
1149         (WebCore::RenderNamedFlowThread::computeOversetStateForRegions):
1150         (WebCore::RenderNamedFlowThread::checkInvalidRegions):
1151         (WebCore::RenderNamedFlowThread::pushDependencies):
1152         (WebCore::RenderNamedFlowThread::registerNamedFlowContentElement):
1153         (WebCore::isContainedInElements):
1154         (WebCore::RenderNamedFlowThread::getRanges):
1155         (WebCore::RenderNamedFlowThread::checkRegionsWithStyling):
1156         (WebCore::RenderNamedFlowThread::clearRenderObjectCustomStyle):
1157         * rendering/RenderTreeAsText.cpp:
1158         (WebCore::writeRenderRegionList):
1159
1160 2014-01-23  László Langó  <llango.u-szeged@partner.samsung.com>
1161
1162         Range should be constructable.
1163         https://bugs.webkit.org/show_bug.cgi?id=115639
1164
1165         Reviewed by Ryosuke Niwa.
1166
1167         http://www.w3.org/TR/2013/WD-dom-20131107/#interface-range
1168         Now we can do `new Range()` instead of `document.createRange()`.
1169
1170         Backported from Blink: https://chromium.googlesource.com/chromium/blink/+/47ca40efdf58a4787aa33aa75a35778899b1c002%5E%21
1171
1172         Test: fast/dom/Range/range-constructor.html
1173
1174         * dom/Range.cpp:
1175         (WebCore::Range::create):
1176         * dom/Range.h:
1177         * dom/Range.idl:
1178
1179 2014-01-23  ChangSeok Oh  <changseok.oh@collabora.com>
1180
1181         Unreviewed build fix for gles after r162565. Add missing definitions.
1182
1183         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
1184         (WebCore::GraphicsContext3D::drawArraysInstanced):
1185         (WebCore::GraphicsContext3D::drawElementsInstanced):
1186         (WebCore::GraphicsContext3D::vertexAttribDivisor):
1187
1188 2014-01-22  Carlos Garcia Campos  <cgarcia@igalia.com>
1189
1190         [GLIB] Use GUniquePtr instead of GOwnPtr
1191         https://bugs.webkit.org/show_bug.cgi?id=127431
1192
1193         Reviewed by Martin Robinson.
1194
1195         GUniquePtr is a template alias of std::unique_ptr with a custom
1196         deleter that replaces GOwnPtr. GOwnPtr is still used for the cases
1197         where the output pointer is needed, but it will also be replaced soon.
1198
1199         * GNUmakefile.list.am:
1200         * PlatformGTK.cmake:
1201         * accessibility/atk/AXObjectCacheAtk.cpp:
1202         * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
1203         (getAttributeSetForAccessibilityObject):
1204         (accessibilityObjectLength):
1205         (textExtents):
1206         (webkitAccessibleTextGetChar):
1207         (numberOfReplacedElementsBeforeOffset):
1208         * page/ContextMenuController.cpp:
1209         * platform/SharedBuffer.h:
1210         * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
1211         (webKitWebAudioSrcConstructed):
1212         (webKitWebAudioSrcLoop):
1213         * platform/audio/gtk/AudioBusGtk.cpp:
1214         (WebCore::AudioBus::loadPlatformResource):
1215         * platform/geoclue/GeolocationProviderGeoclue.cpp:
1216         * platform/graphics/gstreamer/ImageGStreamerCairo.cpp:
1217         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1218         (WebCore::MediaPlayerPrivateGStreamer::setAudioStreamProperties):
1219         (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
1220         * platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp:
1221         (webKitMediaSrcAddSrc):
1222         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
1223         (webKitWebSrcStart):
1224         (ResourceHandleStreamingClient::wasBlocked):
1225         (ResourceHandleStreamingClient::cannotShowURL):
1226         * platform/graphics/gtk/ImageBufferGtk.cpp:
1227         (WebCore::encodeImage):
1228         (WebCore::ImageBuffer::toDataURL):
1229         * platform/graphics/gtk/ImageGtk.cpp:
1230         (WebCore::getThemeIconFileName):
1231         (WebCore::Image::loadPlatformResource):
1232         * platform/gtk/ContextMenuGtk.cpp:
1233         (WebCore::ContextMenu::itemCount):
1234         (WebCore::contextMenuItemVector):
1235         * platform/gtk/ContextMenuItemGtk.cpp:
1236         (WebCore::createPlatformMenuItemDescription):
1237         * platform/gtk/DataObjectGtk.cpp:
1238         (WebCore::DataObjectGtk::setURIList):
1239         (WebCore::DataObjectGtk::setURL):
1240         * platform/gtk/FileSystemGtk.cpp:
1241         (WebCore::filenameToString):
1242         (WebCore::fileSystemRepresentation):
1243         (WebCore::filenameForDisplay):
1244         (WebCore::pathGetFileName):
1245         (WebCore::applicationDirectoryPath):
1246         (WebCore::sharedResourcesPath):
1247         (WebCore::directoryName):
1248         (WebCore::listDirectory):
1249         (WebCore::openTemporaryFile):
1250         * platform/gtk/GOwnPtrGtk.cpp: Removed.
1251         * platform/gtk/GOwnPtrGtk.h: Removed.
1252         * platform/gtk/GUniquePtrGtk.h: Added.
1253         * platform/gtk/GamepadsGtk.cpp:
1254         (WebCore::GamepadsGtk::GamepadsGtk):
1255         * platform/gtk/GtkClickCounter.cpp:
1256         (WebCore::GtkClickCounter::shouldProcessButtonEvent):
1257         * platform/gtk/GtkInputMethodFilter.cpp:
1258         (WebCore::GtkInputMethodFilter::sendCompositionAndPreeditWithFakeKeyEvents):
1259         * platform/gtk/GtkPopupMenu.cpp:
1260         (WebCore::GtkPopupMenu::popUp):
1261         (WebCore::GtkPopupMenu::typeAheadFind):
1262         * platform/gtk/LanguageGtk.cpp:
1263         (WebCore::platformLanguage):
1264         * platform/gtk/LocalizedStringsGtk.cpp:
1265         (WebCore::imageTitle):
1266         (WebCore::localizedMediaTimeDescription):
1267         * platform/gtk/PasteboardHelper.cpp:
1268         (WebCore::selectionDataToUTF8String):
1269         (WebCore::PasteboardHelper::getClipboardContents):
1270         (WebCore::PasteboardHelper::fillSelectionData):
1271         * platform/gtk/PopupMenuGtk.cpp:
1272         (WebCore::PopupMenuGtk::createGtkActionForMenuItem):
1273         (WebCore::PopupMenuGtk::show):
1274         * platform/gtk/WebKitAuthenticationWidget.cpp:
1275         (webkitAuthenticationWidgetInitialize):
1276         * platform/network/ResourceHandleInternal.h:
1277         * platform/network/gtk/CredentialBackingStore.cpp:
1278         (WebCore::credentialForChallengeAsyncReadyCallback):
1279         * platform/network/soup/CookieJarSoup.cpp:
1280         (WebCore::setCookiesFromDOM):
1281         (WebCore::cookiesForSession):
1282         (WebCore::getRawCookies):
1283         (WebCore::deleteCookie):
1284         (WebCore::getHostnamesWithCookies):
1285         (WebCore::deleteCookiesForHostname):
1286         (WebCore::deleteAllCookies):
1287         * platform/network/soup/DNSSoup.cpp:
1288         * platform/network/soup/GUniquePtrSoup.h: Added.
1289         * platform/network/soup/ResourceErrorSoup.cpp:
1290         (WebCore::failingURI):
1291         * platform/network/soup/ResourceHandleSoup.cpp:
1292         (WebCore::ResourceHandle::ensureReadBuffer):
1293         (WebCore::cleanupSoupRequestOperation):
1294         (WebCore::createSoupRequestAndMessageForHandle):
1295         * platform/network/soup/ResourceRequestSoup.cpp:
1296         (WebCore::ResourceRequest::updateSoupMessageMembers):
1297         (WebCore::ResourceRequest::updateSoupMessage):
1298         * platform/network/soup/ResourceResponseSoup.cpp:
1299         * platform/network/soup/SoupURIUtils.cpp:
1300         (WebCore::soupURIToKURL):
1301         * platform/soup/SharedBufferSoup.cpp:
1302         (WebCore::SharedBuffer::SharedBuffer):
1303         (WebCore::SharedBuffer::clearPlatformData):
1304         (WebCore::SharedBuffer::maybeTransferPlatformData):
1305         (WebCore::SharedBuffer::hasPlatformData):
1306         * plugins/gtk/PluginPackageGtk.cpp:
1307         (WebCore::PluginPackage::fetchInfo):
1308         (WebCore::PluginPackage::load):
1309
1310 2014-01-22  Simon Fraser  <simon.fraser@apple.com>
1311
1312         Surround fixedVisibleContentRect code with USE(TILED_BACKING_STORE)
1313         https://bugs.webkit.org/show_bug.cgi?id=127461
1314
1315         Reviewed by Andreas Kling.
1316
1317         The "fixedVisibleContentRect" code path is only used by platforms
1318         which enabled TILED_BACKING_STORE, so to reduce confusion, surround
1319         this code with #if USE(TILED_BACKING_STORE).
1320
1321         * page/Frame.cpp:
1322         (WebCore::Frame::createView):
1323         * page/FrameView.cpp:
1324         * page/FrameView.h:
1325         * platform/ScrollView.cpp:
1326         (WebCore::ScrollView::unscaledVisibleContentSize):
1327         (WebCore::ScrollView::visibleContentRect):
1328         * platform/ScrollView.h:
1329         (WebCore::ScrollView::visibleSize):
1330
1331 2014-01-22  Myles C. Maxfield  <mmaxfield@apple.com>
1332
1333         ASSERTION FAILED: v.isFixed() in WebCore::RenderStyle::setWordSpacing
1334         https://bugs.webkit.org/show_bug.cgi?id=126987
1335
1336         Reviewed by Simon Fraser.
1337
1338         When "inherit" is specified and there is no parent, Length values have an "Auto" type
1339
1340         Test: fast/css3-text/css3-word-spacing-percentage/word-spacing-crash.html
1341
1342         * rendering/style/RenderStyle.cpp:
1343         (WebCore::RenderStyle::setWordSpacing):
1344
1345 2014-01-22  Samuel White  <samuel_white@apple.com>
1346
1347         AX: Can't always increment web sliders.
1348         https://bugs.webkit.org/show_bug.cgi?id=127451
1349
1350         Reviewed by Chris Fleizach.
1351
1352         Clamping the decrement/increment amount to one when necessary (if a percent change would result in a change of less than one).
1353
1354         Test: accessibility/range-alter-by-percent.html
1355
1356         * accessibility/AccessibilityNodeObject.cpp:
1357         (WebCore::AccessibilityNodeObject::changeValueByPercent):
1358
1359 2014-01-22  Myles C. Maxfield  <mmaxfield@apple.com>
1360
1361         Remove CSS3_TEXT_DECORATION define
1362         https://bugs.webkit.org/show_bug.cgi?id=127333
1363
1364         Reviewed by Simon Fraser.
1365
1366         This is required for unprefixing the text-decoration-* CSS properties.
1367
1368         No new tests are necessary becase the flag was already on by default.
1369
1370         * Configurations/FeatureDefines.xcconfig:
1371         * css/CSSComputedStyleDeclaration.cpp:
1372         (WebCore::renderTextDecorationSkipFlagsToCSSValue):
1373         (WebCore::ComputedStyleExtractor::propertyValue):
1374         * css/CSSParser.cpp:
1375         (WebCore::isColorPropertyID):
1376         (WebCore::CSSParser::parseValue):
1377         (WebCore::CSSParser::addTextDecorationProperty):
1378         (WebCore::CSSParser::parseTextUnderlinePosition):
1379         * css/CSSParser.h:
1380         * css/CSSPrimitiveValueMappings.h:
1381         (WebCore::CSSPrimitiveValue::operator TextUnderlinePosition):
1382         * css/CSSPropertyNames.in:
1383         * css/CSSValueKeywords.in:
1384         * css/DeprecatedStyleBuilder.cpp:
1385         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
1386         * css/StylePropertyShorthand.cpp:
1387         (WebCore::webkitTextDecorationShorthand):
1388         (WebCore::shorthandForProperty):
1389         (WebCore::matchingShorthandsForLonghand):
1390         * css/StylePropertyShorthand.h:
1391         * css/StyleResolver.cpp:
1392         (WebCore::shouldApplyPropertyInParseOrder):
1393         (WebCore::isValidVisitedLinkProperty):
1394         (WebCore::StyleResolver::applyProperty):
1395         * platform/graphics/GraphicsContext.h:
1396         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1397         (WebCore::GraphicsContext::setPlatformStrokeStyle):
1398         * platform/graphics/cg/GraphicsContextCG.cpp:
1399         (WebCore::GraphicsContext::platformInit):
1400         * platform/graphics/wince/GraphicsContextWinCE.cpp:
1401         (WebCore::createPen):
1402         * rendering/InlineFlowBox.cpp:
1403         (WebCore::InlineFlowBox::computeMaxLogicalTop):
1404         * rendering/InlineFlowBox.h:
1405         * rendering/InlineTextBox.cpp:
1406         (WebCore::textDecorationStyleToStrokeStyle):
1407         (WebCore::boundingBoxForAllActiveDecorations):
1408         (WebCore::InlineTextBox::paintDecoration):
1409         * rendering/RenderObject.cpp:
1410         (WebCore::decorationColor):
1411         * rendering/RootInlineBox.cpp:
1412         (WebCore::RootInlineBox::maxLogicalTop):
1413         * rendering/RootInlineBox.h:
1414         * rendering/style/RenderStyle.cpp:
1415         (WebCore::RenderStyle::changeRequiresRepaintIfTextOrBorderOrOutline):
1416         (WebCore::RenderStyle::colorIncludingFallback):
1417         (WebCore::RenderStyle::visitedDependentColor):
1418         * rendering/style/RenderStyle.h:
1419         * rendering/style/RenderStyleConstants.h:
1420         * rendering/style/StyleRareInheritedData.cpp:
1421         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
1422         (WebCore::StyleRareInheritedData::operator==):
1423         * rendering/style/StyleRareInheritedData.h:
1424         * rendering/style/StyleRareNonInheritedData.cpp:
1425         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
1426         (WebCore::StyleRareNonInheritedData::operator==):
1427         * rendering/style/StyleRareNonInheritedData.h:
1428
1429 2014-01-22  Chris Fleizach  <cfleizach@apple.com>
1430
1431         AX: Do not return an accessible name for an object just because it has tabindex=0
1432         https://bugs.webkit.org/show_bug.cgi?id=126914
1433
1434         Reviewed by Mario Sanchez Prada.
1435
1436         WebKit has code to return an accessible name for any object that is "generically" focusable (ie. tabindex=0).
1437         This behavior, which is not supported in ARIA, has caused many problems for VoiceOver. Often VoiceOver will
1438         speak all the text underneath any type of group.
1439
1440         I think we need to revert this behavior and follow the ARIA spec more closely.
1441
1442         Test: accessibility/aria-describedby-ensures-visibility.html
1443
1444         * accessibility/AccessibilityNodeObject.cpp:
1445         (WebCore::AccessibilityNodeObject::visibleText):
1446         (WebCore::AccessibilityNodeObject::title):
1447
1448 2014-01-22  Brady Eidson  <beidson@apple.com>
1449
1450         The IDB backing store get() method shouldn't call IDB callbacks directly
1451         https://bugs.webkit.org/show_bug.cgi?id=127453
1452
1453         Reviewed by Beth Dakin.
1454
1455         * Modules/indexeddb/IDBServerConnection.h:
1456         (WebCore::IDBGetResult::IDBGetResult): Add a new structure to hold all of the
1457           possible results of a get() call.
1458
1459         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
1460         (WebCore::IDBServerConnectionLevelDB::get): Don't call IDBCallbacks directly.
1461           Instead, return the GetResult to the GetOperation which will make IDBCallbacks.
1462         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
1463
1464         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
1465         (WebCore::GetOperation::perform): Get all of the IDBGetResults in the completion callback
1466           make the appropriate IDBCallback.
1467         * Modules/indexeddb/IDBTransactionBackendOperations.h:
1468
1469 2014-01-22  Dean Jackson  <dino@apple.com>
1470
1471         Unreviewed attempt to fix 32-bit builds.
1472
1473         Use long long rather than GC3Dintptr.
1474
1475         * html/canvas/ANGLEInstancedArrays.cpp:
1476         (WebCore::ANGLEInstancedArrays::drawElementsInstancedANGLE):
1477         * html/canvas/ANGLEInstancedArrays.h:
1478         * html/canvas/WebGLRenderingContext.cpp:
1479         (WebCore::WebGLRenderingContext::drawElementsInstanced):
1480         * html/canvas/WebGLRenderingContext.h:
1481
1482 2014-01-21  Brady Eidson  <beidson@apple.com>
1483
1484         IDB: "Put" support
1485         <rdar://problem/15779643> and https://bugs.webkit.org/show_bug.cgi?id=127401
1486
1487         Reviewed by Alexey Proskuryakov.
1488
1489         Add persistent encode/decode for storage to the database:
1490         * Modules/indexeddb/IDBKey.cpp:
1491         (WebCore::IDBKey::encode):
1492         (WebCore::IDBKey::decode):
1493         * Modules/indexeddb/IDBKey.h:
1494
1495         Add a data class to represent IDBKey suitable for crossing IPC:
1496         * Modules/indexeddb/IDBKeyData.cpp: Added.
1497         (WebCore::IDBKeyData::IDBKeyData):
1498         (WebCore::IDBKeyData::maybeCreateIDBKey):
1499         (WebCore::IDBKeyData::isolatedCopy):
1500         * Modules/indexeddb/IDBKeyData.h: Added.
1501         (WebCore::IDBKeyData::IDBKeyData):
1502
1503         * platform/CrossThreadCopier.cpp:
1504         (WebCore::IDBKeyData>::copy):
1505         * platform/CrossThreadCopier.h:
1506
1507         * WebCore.exp.in:
1508         * WebCore.xcodeproj/project.pbxproj:
1509
1510 2014-01-22  Dean Jackson  <dino@apple.com>
1511
1512         [WebGL] Implement ANGLE_instanced_arrays
1513         https://bugs.webkit.org/show_bug.cgi?id=127257
1514
1515         Reviewed by Brent Fulgham.
1516
1517         Implement the instanced drawing WebGL extension,
1518         ANGLE_instanced_arrays. This is currently Mac-only,
1519         but should be portable to other platforms if their
1520         OpenGL exposes the functions. It's also done in a way
1521         that will make exposing it to WebGL2 simple.
1522
1523         Test: fast/canvas/webgl/angle-instanced-arrays.html
1524
1525         * CMakeLists.txt:
1526         * DerivedSources.cpp:
1527         * DerivedSources.make:
1528         * GNUmakefile.list.am:
1529         * WebCore.vcxproj/WebCore.vcxproj:
1530         * WebCore.vcxproj/WebCore.vcxproj.filters:
1531         * WebCore.xcodeproj/project.pbxproj:
1532         Add the new files to all the build systems.
1533
1534         * bindings/js/JSWebGLRenderingContextCustom.cpp:
1535         (WebCore::toJS): Link JS side to C++ side.
1536
1537         * html/canvas/ANGLEInstancedArrays.cpp: Added.
1538         (WebCore::ANGLEInstancedArrays::ANGLEInstancedArrays):
1539         * html/canvas/ANGLEInstancedArrays.h: Added.
1540         * html/canvas/ANGLEInstancedArrays.idl: Added.
1541         New boilerplate files that expose the extension methods.
1542
1543         * html/canvas/WebGLExtension.h: New extension enum.
1544
1545         * html/canvas/WebGLRenderingContext.cpp:
1546         (WebCore::WebGLRenderingContext::validateVertexAttributes): Add an optional
1547         parameter representing the number of instance primitives we are asked
1548         to draw. Use that for the draw count if looking at an instanced attribute.
1549         Also make sure we see at least one non-instanced attribute.
1550         (WebCore::WebGLRenderingContext::validateDrawArrays): Update this so it could
1551         be used from either drawArrays or drawArraysInstanced.
1552         (WebCore::WebGLRenderingContext::drawArrays):
1553         (WebCore::WebGLRenderingContext::validateDrawElements): Same here, now can be
1554         used by the instanced and non-instanced versions.
1555         (WebCore::WebGLRenderingContext::drawElements):
1556         (WebCore::WebGLRenderingContext::getExtension): Create and return the new extension.
1557         (WebCore::WebGLRenderingContext::getSupportedExtensions): Add new extension to the list.
1558         (WebCore::WebGLRenderingContext::getVertexAttrib): Intercept a query to the divisor
1559         attribute and return the value we kept in the state.
1560         (WebCore::WebGLRenderingContext::drawArraysInstanced): Call the GC3D method.
1561         (WebCore::WebGLRenderingContext::drawElementsInstanced): Ditto.
1562         (WebCore::WebGLRenderingContext::vertexAttribDivisor): Ditto.
1563
1564         * html/canvas/WebGLRenderingContext.h: Define the new methods and parameters.
1565
1566         * html/canvas/WebGLVertexArrayObjectOES.cpp:
1567         (WebCore::WebGLVertexArrayObjectOES::setVertexAttribDivisor): Keep a record of the
1568         divisor if we set it.
1569         * html/canvas/WebGLVertexArrayObjectOES.h:
1570         (WebCore::WebGLVertexArrayObjectOES::VertexAttribState::VertexAttribState):
1571
1572         * platform/graphics/GraphicsContext3D.h: New enum.
1573         * platform/graphics/mac/GraphicsContext3DMac.mm:
1574         (WebCore::GraphicsContext3D::drawArraysInstanced): The actual calls into OpenGL.
1575         (WebCore::GraphicsContext3D::drawElementsInstanced): Ditto.
1576         (WebCore::GraphicsContext3D::vertexAttribDivisor): Ditto.
1577
1578         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp: Empty implementations
1579         for non-mac platforms.
1580
1581         * platform/graphics/ios/GraphicsContext3DIOS.h: Define the iOS names for the
1582         functions.
1583
1584 2014-01-22  Zalan Bujtas  <zalan@apple.com>
1585
1586         [CSS Shapes] shape-inside rectangle layout can fail
1587         https://bugs.webkit.org/show_bug.cgi?id=124784
1588
1589         Reviewed by Darin Adler.
1590
1591         Early subpixel rounding/flooring/ceiling can have unwanted
1592         side effect on the final pixel value. Delay pixel
1593         conversions as much as possible.
1594
1595         Existing test is changed to reflect subpixel functionality.
1596
1597         * rendering/shapes/RectangleShape.cpp:
1598         (WebCore::RectangleShape::firstIncludedIntervalLogicalTop):
1599
1600 2014-01-22  Jochen Eisinger  <jochen@chromium.org>
1601
1602         Add protocolIsInHTTPFamily for strings and use it where appropriate
1603         https://bugs.webkit.org/show_bug.cgi?id=127336
1604
1605         Reviewed by Alexey Proskuryakov.
1606
1607         * html/HTMLAnchorElement.cpp:
1608         (WebCore::HTMLAnchorElement::parseAttribute):
1609         * page/ContentSecurityPolicy.cpp:
1610         (WebCore::CSPSource::schemeMatches):
1611         * page/SecurityPolicy.cpp:
1612         (WebCore::SecurityPolicy::generateReferrerHeader):
1613         * platform/URL.cpp:
1614         (WebCore::protocolIsInHTTPFamily):
1615         * platform/URL.h:
1616
1617 2014-01-22  Zalan Bujtas  <zalan@apple.com>
1618
1619         Subpixel Layout: SimpleLineLayout needs more position rounding to match InlineFlowBox layout.
1620         https://bugs.webkit.org/show_bug.cgi?id=127404
1621
1622         Reviewed by Antti Koivisto.
1623
1624         In order to produce a CSS pixel perfect layout, SimpleLineLayout needs to
1625         round line positions to CSS (integral) position similarly to InlineFlowBox.
1626
1627         Existing tests cover it.
1628
1629         * rendering/SimpleLineLayoutResolver.h:
1630         (WebCore::SimpleLineLayout::RunResolver::Run::rect):
1631         (WebCore::SimpleLineLayout::RunResolver::Run::baseline):
1632
1633 2014-01-22  Joseph Pecoraro  <pecoraro@apple.com>
1634
1635         Unreviewed rollout of r162534, this caused inspector test failures.
1636
1637         * bindings/js/PageScriptDebugServer.cpp:
1638         (WebCore::PageScriptDebugServer::addListener):
1639         (WebCore::PageScriptDebugServer::removeListener):
1640         (WebCore::PageScriptDebugServer::recompileAllJSFunctions):
1641         (WebCore::PageScriptDebugServer::didRemoveLastListener):
1642         * bindings/js/PageScriptDebugServer.h:
1643         * bindings/js/ScriptDebugServer.cpp:
1644         (WebCore::ScriptDebugServer::ScriptDebugServer):
1645         (WebCore::ScriptDebugServer::recompileAllJSFunctionsSoon):
1646         (WebCore::ScriptDebugServer::recompileAllJSFunctionsTimerFired):
1647         * bindings/js/ScriptDebugServer.h:
1648         * bindings/js/WorkerScriptDebugServer.cpp:
1649         (WebCore::WorkerScriptDebugServer::addListener):
1650         (WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
1651         (WebCore::WorkerScriptDebugServer::removeListener):
1652         * inspector/InspectorProfilerAgent.cpp:
1653
1654 2014-01-22  peavo@outlook.com  <peavo@outlook.com>
1655
1656         Crashes in setTextForIterator
1657         https://bugs.webkit.org/show_bug.cgi?id=127424
1658
1659         Reviewed by Brent Fulgham.
1660
1661         * platform/text/icu/UTextProviderLatin1.cpp:
1662         (WebCore::uTextLatin1Clone): Provide correct buffer size in utext_setup function call.
1663         (WebCore::uTextLatin1Access): Give correct buffer size to memset call.
1664         (WebCore::openLatin1UTextProvider): Ditto.
1665
1666 2014-01-22  Jer Noble  <jer.noble@apple.com>
1667
1668         [Mac] MediaPlayerPrivateMediaSourceAVFObjC::load ASSERTs on lots of tests
1669         https://bugs.webkit.org/show_bug.cgi?id=127430
1670
1671         Reviewed by Eric Carlson.
1672
1673         When other registered media engines cannot load a URL, the engine selection
1674         will eventually pick MediaPlayerPrivateMediaSourceAVFObjC and ask it to load
1675         the URL. Instead of ASSERTing here, simply reject the URL by setting the
1676         network state to FormatError.
1677
1678         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
1679         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load):
1680
1681 2014-01-22  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
1682
1683         [EFL][GTK] Get EFL and GTK compiling with ACCESSIBILITY disabled
1684         https://bugs.webkit.org/show_bug.cgi?id=127119
1685
1686         Reviewed by Mario Sanchez Prada.
1687
1688         At build time, the compiler was not able to determine which Timer's constructor to call in AXObjectCache when
1689         ACCESSIBILITY is not enabled, fixing that.
1690         Also guarding some members in AccessibilityObject that are only being used by EFL and GTK with ACCESSIBILITY.
1691
1692         * accessibility/AXObjectCache.h:
1693         (WebCore::AXObjectCache::AXObjectCache):
1694         * accessibility/AccessibilityObject.h:
1695
1696 2014-01-22  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>
1697
1698         Refactor calculation of hasRx and hasRy values in SVGPathData
1699         https://bugs.webkit.org/show_bug.cgi?id=127423
1700
1701         Reviewed by Darin Adler.
1702
1703         This is a follow-up on https://bugs.webkit.org/show_bug.cgi?id=127337
1704
1705         * rendering/svg/SVGPathData.cpp:
1706         (WebCore::updatePathFromRectElement):
1707
1708 2014-01-21  Joseph Pecoraro  <pecoraro@apple.com>
1709
1710         Web Inspector: Remove recompileAllJSFunctions timer in ScriptDebugServer
1711         https://bugs.webkit.org/show_bug.cgi?id=127409
1712
1713         Reviewed by Timothy Hatcher.
1714
1715         * bindings/js/ScriptDebugServer.h:
1716         * bindings/js/ScriptDebugServer.cpp:
1717         (WebCore::ScriptDebugServer::ScriptDebugServer):
1718         Remove m_recompileTimer and the recompile soon function.
1719         We can just recompile immediately in all existing cases.
1720
1721         * bindings/js/PageScriptDebugServer.h:
1722         * bindings/js/PageScriptDebugServer.cpp:
1723         (WebCore::PageScriptDebugServer::addListener):
1724         (WebCore::PageScriptDebugServer::removeListener):
1725         (WebCore::PageScriptDebugServer::recompileAllJSFunctions):
1726         (WebCore::PageScriptDebugServer::didAddFirstListener):
1727         (WebCore::PageScriptDebugServer::didRemoveLastListener):
1728         Add a "didAddFirstListener" to match "didRemoveLastListener".
1729         Only recompile functions when we attach the debugger and when
1730         we detach the last listener.
1731
1732         * bindings/js/WorkerScriptDebugServer.cpp:
1733         (WebCore::WorkerScriptDebugServer::addListener):
1734         (WebCore::WorkerScriptDebugServer::removeListener):
1735         (WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
1736         Same thing. Also rearrange the functions to read better.
1737
1738         * inspector/InspectorProfilerAgent.cpp:
1739         Use the direct recompile function instead of the removed "soon" version.
1740
1741 2014-01-22  Robert Sipka  <sipka@inf.u-szeged.hu>
1742
1743         [curl] Improve detecting and handling of SSL client certificate
1744         https://bugs.webkit.org/show_bug.cgi?id=125006
1745
1746         Reviewed by Brent Fulgham.
1747
1748         Add client certificate handling.
1749
1750         * platform/network/ResourceHandle.h:
1751         * platform/network/curl/ResourceError.h:
1752         (WebCore::ResourceError::hasSSLConnectError):
1753         * platform/network/curl/ResourceHandleCurl.cpp:
1754         (WebCore::ResourceHandle::setClientCertificateInfo):
1755         * platform/network/curl/ResourceHandleManager.cpp:
1756         (WebCore::ResourceHandleManager::initializeHandle):
1757         * platform/network/curl/SSLHandle.cpp:
1758         (WebCore::addAllowedClientCertificate):
1759         (WebCore::setSSLClientCertificate):
1760         * platform/network/curl/SSLHandle.h:
1761
1762 2014-01-22  Mihai Maerean  <mmaerean@adobe.com>
1763
1764         [CSS Regions] layerOwner in RenderNamedFlowFragment cannot return null
1765         https://bugs.webkit.org/show_bug.cgi?id=127343
1766
1767         Reviewed by Sam Weinig.
1768
1769         RenderNamedFlowFragment::layerOwner cannot return null because regions create stacking
1770         contexts which create layers.
1771
1772         No new tests, no functional change.
1773
1774         * rendering/RenderFlowThread.cpp:
1775         (WebCore::RenderFlowThread::hasCompositingRegionDescendant):
1776         * rendering/RenderLayer.cpp:
1777         (WebCore::RenderLayer::calculateClipRects):
1778         * rendering/RenderLayerBacking.cpp:
1779         (WebCore::RenderLayerBacking::adjustAncestorCompositingBoundsForFlowThread):
1780         * rendering/RenderLayerCompositor.cpp:
1781         (WebCore::RenderLayerCompositor::computeRegionCompositingRequirements):
1782         * rendering/RenderNamedFlowFragment.h:
1783
1784 2014-01-22  Antti Koivisto  <antti@apple.com>
1785
1786         Avoid unthrottled layer flushes triggered by RenderLayerCompositor::ensureRootLayer
1787         https://bugs.webkit.org/show_bug.cgi?id=127426
1788
1789         Reviewed by Anders Carlsson.
1790         
1791         * rendering/RenderLayerCompositor.cpp:
1792         (WebCore::RenderLayerCompositor::updateScrollLayerPosition):
1793         (WebCore::RenderLayerCompositor::frameViewDidScroll):
1794
1795             Factor scroll layer position update to a function.
1796
1797         (WebCore::RenderLayerCompositor::ensureRootLayer):
1798         
1799             Stop calling frameViewDidChangeSize/frameViewDidScroll. Instead call the relevent functions
1800             directly. This avoid unthrottled layer flush that is done when the view actually scrolls.
1801
1802         * rendering/RenderLayerCompositor.h:
1803
1804 2014-01-22  Mihai Tica  <mitica@adobe.com>
1805
1806         [CSS Background Blending] -webkit-background-blend-mode fails for certain SVG files
1807         https://bugs.webkit.org/show_bug.cgi?id=127350
1808
1809         Reviewed by Dirk Schulze.
1810
1811         The graphics context of the SVG inherits the blend mode set
1812         on the background layer. Fix consists in drawing the SVG
1813         in a transparency layer.
1814
1815         Test: css3/compositing/background-blend-mode-svg.html
1816
1817         * svg/graphics/SVGImage.cpp:
1818         (WebCore::SVGImage::draw): Begin a transparency layer if a blend mode is set.
1819
1820 2014-01-22  Antti Koivisto  <antti@apple.com>
1821
1822         Update overlay scrollbars in single pass
1823         https://bugs.webkit.org/show_bug.cgi?id=127289
1824
1825         Reviewed by Anders Carlsson.
1826
1827         * platform/ScrollView.cpp:
1828         (WebCore::ScrollView::updateScrollbars):
1829         
1830             Multi-pass scrollbar resolution is only needed for traditional scrollbars. Overlay scrollbars don't affect layout.
1831
1832 2014-01-22  Mihnea Ovidenie  <mihnea@adobe.com>
1833
1834         [CSSRegions] Incorrect layout of a region pseudo children
1835         https://bugs.webkit.org/show_bug.cgi?id=126146
1836
1837         Reviewed by David Hyatt.
1838
1839         Test: fast/regions/collapse-anonymous-region.html
1840
1841         A region behaviour, styled using -webkit-flow-from, is modeled using an anonymous
1842         block created to fragment the named flow content inside the region. We have to prevent
1843         the behaviour of anonymous children collapsing for this block to make sure that the
1844         region element children are still laid out properly when the region element becomes an ordinary
1845         element.
1846
1847         * rendering/RenderBlockFlow.h:
1848
1849 2014-01-21  Ryuan Choi  <ryuan.choi@samsung.com>
1850
1851         Remove unused "acceleratedCompositingForScrollableFramesEnabled" setting
1852         https://bugs.webkit.org/show_bug.cgi?id=127402
1853
1854         Reviewed by Anders Carlsson.
1855
1856         compositing/iframes/iframe-composited-scrolling.html is updated because
1857         there are no usages in WebCore.
1858
1859         * page/Settings.in:
1860
1861 2014-01-21  Alex Christensen  <achristensen@webkit.org>
1862
1863         Compile fix for using libsoup on Windows.
1864         https://bugs.webkit.org/show_bug.cgi?id=127377
1865
1866         Reviewed by Daniel Bates.
1867
1868         * platform/network/soup/ProxyResolverSoup.cpp:
1869         (soupProxyResolverWkSetProperty):
1870         (soupProxyResolverWkGetProperty):
1871         (soupProxyResolverWkGetProxyURISync):
1872         Replaced uint with unsigned.
1873
1874 2014-01-21  Daniel Bates  <dabates@apple.com>
1875
1876         Break up single assertion into two assertions in HTMLMediaElement::returnPlatformLayer()
1877
1878         Following up after <http://trac.webkit.org/changeset/162473>, we should break up
1879         the assertion into two assertions as suggested by Darin Adler. Separating the single
1880         assertion into two assertions makes it straightforward to determine the conjunct that
1881         failed among other benefits.
1882
1883         * html/HTMLMediaElement.cpp:
1884         (WebCore::HTMLMediaElement::parseAttribute):
1885
1886 2014-01-21  Brady Eidson  <beidson@apple.com>
1887
1888         The IDB backing store put() method shouldn't call IDB callbacks directly
1889         https://bugs.webkit.org/show_bug.cgi?id=127399
1890
1891         Reviewed by Beth Dakin.
1892
1893         Refactor the put() callback to take a resulting key or an error.
1894         * Modules/indexeddb/IDBServerConnection.h:
1895
1896         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
1897         (WebCore::PutOperation::perform): Call to the backing store, then perform the
1898           appropriate IDB callback whether a key or an error was returned.
1899         * Modules/indexeddb/IDBTransactionBackendOperations.h:
1900
1901         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
1902         (WebCore::IDBServerConnectionLevelDB::put): Don’t call IDB callbacks directly.
1903           Instead, pass the resulting key/error back to the PutOperation.
1904         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
1905
1906 2014-01-21  Jae Hyun Park  <jae.park@company100.net>
1907
1908         Use nullptr in HTMLCanvasElement
1909         https://bugs.webkit.org/show_bug.cgi?id=127388
1910
1911         Reviewed by Gyuyoung Kim.
1912
1913         * html/HTMLCanvasElement.cpp:
1914         (WebCore::HTMLCanvasElement::getContext):
1915         (WebCore::HTMLCanvasElement::drawingContext):
1916         (WebCore::HTMLCanvasElement::existingDrawingContext):
1917
1918 2014-01-21  László Langó  <llango.u-szeged@partner.samsung.com>
1919
1920         Assertion failure in Range::nodeWillBeRemoved
1921         https://bugs.webkit.org/show_bug.cgi?id=121694
1922
1923         Reviewed by Ryosuke Niwa.
1924
1925         Based on Blink a change: https://chromium.googlesource.com/chromium/blink/+/407c1d7b2c45974aa614b3f847ffe9e8fce205fa
1926
1927         This patch fix an assertion failure. Range::nodeWillBeRemoved() might
1928         be called with removed node in ContainerNode, when DOMNodeRemovedFromDocument
1929         event handler calls removeChild(), for node being removed.
1930
1931         Test: fast/dom/Range/remove-twice-crash.html
1932
1933         * dom/ContainerNode.cpp:
1934         (WebCore::ContainerNode::willRemoveChild):
1935         * dom/ContainerNode.h:
1936
1937 2014-01-21  Tim Horton  <timothy_horton@apple.com>
1938
1939         REGRESSION (r161580): Some PDFs render outside their <img>
1940         https://bugs.webkit.org/show_bug.cgi?id=127381
1941         <rdar://problem/15872168>
1942
1943         Reviewed by Simon Fraser.
1944
1945         * platform/graphics/cg/PDFDocumentImage.cpp:
1946         (WebCore::transformContextForPainting):
1947         Only try to make the scale uniform if it isn't already, and use the minimum
1948         of the two original scales when doing so, so that it is absolutely certain
1949         to fit inside space allocated for the image during layout.
1950
1951 2014-01-21  Simon Fraser  <simon.fraser@apple.com>
1952
1953         Remove #if PLATFORM(IOS) in various places around customFixedPositionLayoutRect() code
1954         https://bugs.webkit.org/show_bug.cgi?id=127373
1955
1956         Reviewed by Beth Dakin.
1957
1958         Instead of PLATFORM(IOS) #idefs at every call site for viewportConstrainedVisibleContentRect(),
1959         move the #ifdef inside viewportConstrainedVisibleContentRect().
1960         
1961         The one call site that needs special handling is RenderLayerBacking::updateCompositedBounds(),
1962         which needs to avoid clipping fixed layers to the custom fixed position rect, but instead to
1963         visibleContentRect() (which is really the document bounds on iOS). This ensures that the
1964         fixed layers aren't clipped when zooming out.
1965
1966         * page/FrameView.cpp:
1967         (WebCore::FrameView::viewportConstrainedVisibleContentRect):
1968         * rendering/RenderBoxModelObject.cpp:
1969         (WebCore::RenderBoxModelObject::stickyPositionOffset):
1970         * rendering/RenderLayerBacking.cpp:
1971         (WebCore::RenderLayerBacking::updateCompositedBounds):
1972         * rendering/RenderLayerCompositor.cpp:
1973         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
1974         (WebCore::RenderLayerCompositor::computeFixedViewportConstraints):
1975         (WebCore::RenderLayerCompositor::computeStickyViewportConstraints):
1976
1977 2014-01-21  Andy Estes  <aestes@apple.com>
1978
1979         [iOS] Allow all clients to link against WebCore
1980         https://bugs.webkit.org/show_bug.cgi?id=127372
1981         
1982         Reviewed by Dan Bernstein.
1983
1984         * Configurations/WebCore.xcconfig:
1985
1986 2014-01-21  Bear Travis  <betravis@adobe.com>
1987
1988         [CSS Shapes] Preserve box-shape order when serializing shape values
1989         https://bugs.webkit.org/show_bug.cgi?id=127200
1990
1991         Reviewed by Dirk Schulze.
1992
1993         Convert the parsed shape-box pair to a CSSValueList rather than directly
1994         adding the box value to BasicShape. The CSSValueList preserves the
1995         shape-box ordering, and cleans up a little bit of the code shared between
1996         clip and shape values.
1997
1998         Modifying existing parsing tests.
1999
2000         * css/CSSComputedStyleDeclaration.cpp:
2001         (WebCore::shapePropertyValue): Factor out code common to generating shape
2002         values.
2003         (WebCore::ComputedStyleExtractor::propertyValue): Generate a CSSValueList when
2004         you have both a shape and a box.
2005         * css/CSSParser.cpp:
2006         (WebCore::CSSParser::parseBasicShapeAndOrBox): Factor out code common to clip
2007         paths and shape properties that parses the [basic-shape || box] syntax from
2008         the CSS Shapes spec.
2009         (WebCore::CSSParser::parseShapeProperty): Parse shape-box pairs as a CSSValueList.
2010         * css/DeprecatedStyleBuilder.cpp:
2011         (WebCore::ApplyPropertyShape::applyValue): Use the CSSValueList for shape-box pairs.
2012         * css/CSSValueList.h:
2013         (WebCore::CSSValueList::itemWithoutBoundsCheck): Add a const version.
2014         * page/animation/CSSPropertyAnimation.cpp:
2015         (WebCore::blendFunc): Specify a box when blending.
2016         * rendering/style/ShapeValue.h:
2017         (WebCore::ShapeValue::createShapeValue): Add a box parameter.
2018         (WebCore::ShapeValue::ShapeValue): Ditto.
2019
2020 2014-01-21  Daniel Bates  <dabates@apple.com>
2021
2022         Fix the iOS Simulator release build
2023
2024         Substitute ASSERT_UNUSED() for ASSERT() to resolve a compiler warning
2025         that the argument platformLayer is unused. The argument platformLayer
2026         is only used in the asserted condition, which isn't compiled in a
2027         release build; => the argument is unused in a release build.
2028
2029         * html/HTMLMediaElement.cpp:
2030         (WebCore::HTMLMediaElement::parseAttribute):
2031
2032 2014-01-21  Zoltan Horvath  <zoltan@webkit.org>
2033
2034         Since MidpointState is a class, it should behave like a class
2035         https://bugs.webkit.org/show_bug.cgi?id=127154
2036
2037         Reviewed by David Hyatt.
2038
2039         I modified MidpointState to behave like a class, updated the call sites also.
2040
2041         No new tests, no behavior change.
2042
2043         * platform/text/BidiResolver.h:
2044         (WebCore::MidpointState::reset):
2045         (WebCore::MidpointState::startIgnoringSpaces):
2046         (WebCore::MidpointState::stopIgnoringSpaces):
2047         (WebCore::MidpointState::midpoints):
2048         (WebCore::MidpointState::numMidpoints):
2049         (WebCore::MidpointState::currentMidpoint):
2050         (WebCore::MidpointState::incrementCurrentMidpoint):
2051         (WebCore::MidpointState::decreaseNumMidpoints):
2052         (WebCore::MidpointState::betweenMidpoints):
2053         (WebCore::MidpointState::setBetweenMidpoints):
2054         (WebCore::MidpointState::addMidpoint): Renamed from deprecatedAddMidpoint, since now
2055         its private, we no longer need to discourage callers from using it.
2056         * rendering/InlineIterator.h:
2057         (WebCore::IsolateTracker::addFakeRunIfNecessary):
2058         * rendering/RenderBlockLineLayout.cpp:
2059         (WebCore::RenderBlockFlow::appendRunsForObject):
2060         (WebCore::constructBidiRunsForLine):
2061         * rendering/line/BreakingContextInlineHeaders.h:
2062         (WebCore::checkMidpoints):
2063         * rendering/line/TrailingObjects.cpp:
2064         (WebCore::TrailingObjects::updateMidpointsForTrailingBoxes):
2065
2066 2014-01-21  Commit Queue  <commit-queue@webkit.org>
2067
2068         Unreviewed, rolling out r162452.
2069         http://trac.webkit.org/changeset/162452
2070         https://bugs.webkit.org/show_bug.cgi?id=127366
2071
2072         broke a few tests on all Mac WebKit1 bots (Requested by
2073         thorton on #webkit).
2074
2075         * WebCore.exp.in:
2076         * page/FocusController.cpp:
2077         (WebCore::FocusController::FocusController):
2078         (WebCore::FocusController::setFocused):
2079         (WebCore::FocusController::setActive):
2080         (WebCore::FocusController::setContentIsVisible):
2081         * page/FocusController.h:
2082         (WebCore::FocusController::isActive):
2083         (WebCore::FocusController::isFocused):
2084         * page/Page.cpp:
2085         (WebCore::Page::Page):
2086         (WebCore::Page::setIsInWindow):
2087         (WebCore::Page::setIsVisuallyIdle):
2088         (WebCore::Page::setIsVisible):
2089         (WebCore::Page::visibilityState):
2090         (WebCore::Page::hiddenPageCSSAnimationSuspensionStateChanged):
2091         * page/Page.h:
2092         (WebCore::Page::isVisible):
2093         (WebCore::Page::isInWindow):
2094
2095 2014-01-21  Chris Fleizach  <cfleizach@apple.com>
2096
2097         AX: Mac: Expose the visible text of a password field to AX
2098         https://bugs.webkit.org/show_bug.cgi?id=127353
2099
2100         Reviewed by Brent Fulgham.
2101
2102         The Mac platform should now expose the rendered value of password fields through AX.
2103
2104         Test: accessibility/password-field-value.html
2105
2106         * accessibility/AccessibilityRenderObject.cpp:
2107         (WebCore::AccessibilityRenderObject::textLength):
2108         (WebCore::AccessibilityRenderObject::passwordFieldValue):
2109
2110 2014-01-21  Robert Sipka  <sipka@inf.u-szeged.hu>
2111
2112         Support SSL error handling in case of synchronous job.
2113         https://bugs.webkit.org/show_bug.cgi?id=125301
2114
2115         Reviewed by Brent Fulgham.
2116
2117         Set ssl error informations for the users.
2118
2119         * platform/network/curl/ResourceHandleManager.cpp:
2120         (WebCore::ResourceHandleManager::dispatchSynchronousJob):
2121
2122 2014-01-21  Simon Fraser  <simon.fraser@apple.com>
2123
2124         Export systemTotalMemory() and systemMemoryLevel() for MobileSafari
2125         https://bugs.webkit.org/show_bug.cgi?id=127360
2126
2127         Reviewed by Andy Estes.
2128         
2129         MobileSafari inappropriately calls these WebCore functions directly,
2130         so export them.
2131
2132         * WebCore.exp.in:
2133
2134 2014-01-21  Simon Fraser  <simon.fraser@apple.com>
2135
2136         Clean up PLATFORM(IOS) code related to the custom fixed position layout rect
2137         https://bugs.webkit.org/show_bug.cgi?id=127362
2138
2139         Reviewed by Dave Hyatt.
2140
2141         Various platforms customize the rect used to layout position:fixed elements,
2142         and each modified RenderBox::availableLogicalHeight/WidthUsing() in different
2143         ways.
2144         
2145         Clean this up by adding RenderView::clientLogicalWidth/HeightForFixedPosition(),
2146         and moving the platform hacks into it.
2147
2148         * rendering/RenderBox.cpp:
2149         (WebCore::RenderBox::availableLogicalHeightUsing):
2150         (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
2151         (WebCore::RenderBox::containingBlockLogicalHeightForPositioned):
2152         * rendering/RenderView.cpp:
2153         (WebCore::RenderView::clientLogicalWidthForFixedPosition):
2154         (WebCore::RenderView::clientLogicalHeightForFixedPosition):
2155         * rendering/RenderView.h:
2156
2157 2014-01-21  Tamas Gergely  <tgergely.u-szeged@partner.samsung.com>
2158
2159         ASSERT(time.isFinite()) in SVGSMILElement::createInstanceTimesFromSyncbase
2160         <https://webkit.org/b/108184>
2161
2162         Reviewed by Philip Rogers.
2163
2164         In the case a SMILElement timing had a syncbase dependency on an indefinite value
2165         the assert were raised. The assert has been removed and a check has been added
2166         instead that prevents the addition of indefinite times to the time list.
2167
2168         Test: svg/animations/smil-syncbase-self-dependency.svg
2169
2170         * svg/animation/SVGSMILElement.cpp:
2171         (WebCore::SVGSMILElement::createInstanceTimesFromSyncbase):
2172           ASSERT removed.
2173
2174 2014-01-21  Tim Horton  <timothy_horton@apple.com>
2175
2176         Address late review naming comments after r162453.
2177
2178         * WebCore.xcodeproj/project.pbxproj:
2179         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
2180         * platform/graphics/mac/CALayerWebAdditions.h: Removed.
2181         * platform/graphics/mac/CALayerWebAdditions.mm: Removed.
2182         * platform/graphics/mac/WebCoreCALayerExtras.h: Added.
2183         * platform/graphics/mac/WebCoreCALayerExtras.mm: Added.
2184         (-[CALayer web_disableAllActions]):
2185
2186 2014-01-21  Tim Horton  <timothy_horton@apple.com>
2187
2188         Keep CALayer implicit animation disabling code in a single place
2189         https://bugs.webkit.org/show_bug.cgi?id=127355
2190
2191         Reviewed by Simon Fraser.
2192
2193         * WebCore.xcodeproj/project.pbxproj:
2194         Add CALayerWebAdditions.{h,mm}.
2195
2196         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
2197         (PlatformCALayerMac::commonInit):
2198         Remove nullActionsDictionary() and use [CALayer(WebAdditions) web_disableAllActions] instead.
2199
2200         * platform/graphics/mac/CALayerWebAdditions.h: Added.
2201         * platform/graphics/mac/CALayerWebAdditions.mm: Added.
2202         (-[CALayer web_disableAllActions]):
2203         Added. Disable all implicit actions on the layer.
2204
2205 2014-01-21  Gavin Barraclough  <barraclough@apple.com>
2206
2207         Change Page, FocusController to use ViewState
2208         https://bugs.webkit.org/show_bug.cgi?id=126533
2209
2210         Reviewed by Tim Horton.
2211
2212         These classes currently maintain a set of separate fields to represent the view state;
2213         combine these into a single field, and allow WebPage to send the combined update rather
2214         than individual changes.
2215
2216         Maintain existing interface for WebKit1 clients.
2217
2218         * WebCore.exp.in:
2219             - Added WebCore::setViewState, removed WebCore::setIsVisuallyIdle.
2220         * page/FocusController.cpp:
2221         (WebCore::FocusController::FocusController):
2222             - Initialize combined m_viewState.
2223         (WebCore::FocusController::setFocused):
2224             - Calls setViewState.
2225         (WebCore::FocusController::setFocusedInternal):
2226             - setFocused -> setFocusedInternal.
2227         (WebCore::FocusController::setViewState):
2228             - Added, update all ViewState flags.
2229         (WebCore::FocusController::setActive):
2230             - Calls setViewState.
2231         (WebCore::FocusController::setActiveInternal):
2232             - setActive -> setActiveInternal.
2233         (WebCore::FocusController::setContentIsVisible):
2234             - Calls setViewState.
2235         (WebCore::FocusController::setContentIsVisibleInternal):
2236             - setContentIsVisible -> setContentIsVisibleInternal.
2237         * page/FocusController.h:
2238         (WebCore::FocusController::isActive):
2239         (WebCore::FocusController::isFocused):
2240         (WebCore::FocusController::contentIsVisible):
2241             - Implemented in terms of ViewState.
2242         * page/Page.cpp:
2243         (WebCore::Page::Page):
2244             - Initialize using PageInitialViewState.
2245         (WebCore::Page::setIsInWindow):
2246             - Calls setViewState.
2247         (WebCore::Page::setIsInWindowInternal):
2248             - setIsInWindow -> setIsInWindowInternal.
2249         (WebCore::Page::setIsVisuallyIdleInternal):
2250             - setIsVisuallyIdle -> setIsVisuallyIdleInternal.
2251         (WebCore::Page::setViewState):
2252             - Added, update all ViewState flags, including FocusController.
2253         (WebCore::Page::setIsVisible):
2254             - Calls setViewState.
2255         (WebCore::Page::setIsVisibleInternal):
2256             - setIsVisible -> setIsVisibleInternal.
2257         (WebCore::Page::visibilityState):
2258             - m_isVisible -> isVisible()
2259         (WebCore::Page::hiddenPageCSSAnimationSuspensionStateChanged):
2260             - m_isVisible -> isVisible()
2261         * page/Page.h:
2262         (WebCore::Page::isVisible):
2263         (WebCore::Page::isInWindow):
2264             - Implemented in terms of ViewState.
2265         (WebCore::Page::scriptedAnimationsSuspended):
2266             - Combined member fields into ViewState::Flags.
2267
2268 2014-01-21  Lauro Neto  <lauro.neto@openbossa.org>
2269
2270         Remove PLATFORM(NIX) from WebCore
2271         https://bugs.webkit.org/show_bug.cgi?id=127299
2272
2273         Reviewed by Anders Carlsson.
2274
2275         * editing/Editor.cpp:
2276         (WebCore::Editor::cut):
2277         (WebCore::Editor::copy):
2278         (WebCore::Editor::copyImage):
2279         * editing/Editor.h:
2280         * html/HTMLCanvasElement.h:
2281         * loader/EmptyClients.h:
2282         * loader/FrameLoader.cpp:
2283         (WebCore::FrameLoader::defaultObjectContentType):
2284         * page/ChromeClient.h:
2285         * page/DragController.cpp:
2286         (WebCore::DragController::startDrag):
2287         * platform/Cursor.h:
2288         * platform/DragData.h:
2289         * platform/DragImage.h:
2290         * platform/FileSystem.h:
2291         * platform/LocalizedStrings.h:
2292         * platform/Widget.h:
2293         * platform/audio/FFTFrame.h:
2294         * platform/audio/HRTFElevation.cpp:
2295         * platform/cairo/WidgetBackingStore.h:
2296         * platform/graphics/ANGLEWebKitBridge.h:
2297         * platform/graphics/FontPlatformData.h:
2298         * platform/graphics/GLContext.cpp:
2299         (WebCore::GLContext::createContextForWindow):
2300         * platform/graphics/GLContext.h:
2301         * platform/graphics/GraphicsContext3D.h:
2302         * platform/graphics/GraphicsContext3DPrivate.cpp:
2303         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
2304         * platform/graphics/OpenGLESShims.h:
2305         * platform/graphics/OpenGLShims.cpp:
2306         (WebCore::getProcAddress):
2307         * platform/graphics/OpenGLShims.h:
2308         * platform/graphics/PlatformLayer.h:
2309         * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
2310         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
2311         (WebCore::Extensions3DOpenGL::createVertexArrayOES):
2312         (WebCore::Extensions3DOpenGL::deleteVertexArrayOES):
2313         (WebCore::Extensions3DOpenGL::isVertexArrayOES):
2314         (WebCore::Extensions3DOpenGL::bindVertexArrayOES):
2315         (WebCore::Extensions3DOpenGL::supportsExtension):
2316         * platform/graphics/opengl/Extensions3DOpenGL.h:
2317         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
2318         * platform/graphics/opengl/Extensions3DOpenGLES.h:
2319         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
2320         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
2321         (WebCore::GraphicsContext3D::reshape):
2322         * platform/graphics/opengl/TemporaryOpenGLSetting.cpp:
2323         * platform/graphics/texmap/TextureMapper.h:
2324         * platform/network/ResourceHandle.h:
2325         * plugins/PluginPackage.cpp:
2326         * plugins/PluginView.cpp:
2327         (WebCore::PluginView::PluginView):
2328         * plugins/PluginView.h:
2329         * plugins/PluginViewNone.cpp:
2330         * rendering/SimpleLineLayout.cpp:
2331         (WebCore::SimpleLineLayout::canUseFor):
2332
2333 2014-01-21  Eric Carlson  <eric.carlson@apple.com>
2334
2335         Add &lrm; &rlm; and &nbsp; to WebVTT parser
2336         https://bugs.webkit.org/show_bug.cgi?id=85112
2337
2338         Reviewed by Jer Noble.
2339
2340         No new tests, track-webvtt-tc022-entities.html was updated to test this.
2341
2342         * html/track/WebVTTTokenizer.cpp:
2343         (WebCore::WebVTTTokenizer::nextToken): Support RLM, LRM, and NBSP entities.
2344
2345 2014-01-21  Commit Queue  <commit-queue@webkit.org>
2346
2347         Unreviewed, rolling out r162354.
2348         http://trac.webkit.org/changeset/162354
2349         https://bugs.webkit.org/show_bug.cgi?id=127354
2350
2351         Appears to have broken accessibility in a non-trivial way
2352         (Requested by ap on #webkit).
2353
2354         * platform/ScrollView.cpp:
2355         (WebCore::ScrollView::updateScrollbars):
2356
2357 2014-01-21  Commit Queue  <commit-queue@webkit.org>
2358
2359         Unreviewed, rolling out r162445.
2360         http://trac.webkit.org/changeset/162445
2361         https://bugs.webkit.org/show_bug.cgi?id=127351
2362
2363         It broke the 32 bit GTK build (Requested by Ossy on #webkit).
2364
2365         * rendering/style/StyleRareInheritedData.cpp:
2366
2367 2014-01-21  László Langó  <llango.u-szeged@partner.samsung.com>
2368
2369         Wrong struct size when CSS_IMAGE_ORIENTATION and CSS3_TEXT_DECORATION are enabled.
2370         https://bugs.webkit.org/show_bug.cgi?id=127346
2371
2372         Efl build fix.
2373
2374         Reviewed by Csaba Osztrogonác.
2375
2376         * rendering/style/StyleRareInheritedData.cpp:
2377
2378 2014-01-21  Antti Koivisto  <antti@apple.com>
2379
2380         Delay initial layer flush during loading on all platforms
2381         https://bugs.webkit.org/show_bug.cgi?id=127347
2382
2383         Reviewed by Andreas Kling.
2384
2385         To reduce unnecessary repaints enable the same behaviour as iOS already has.
2386
2387         * rendering/RenderLayerCompositor.cpp:
2388         (WebCore::RenderLayerCompositor::RenderLayerCompositor):
2389         
2390             Set the initial state of m_layerFlushThrottlingEnabled correctly.
2391
2392         (WebCore::RenderLayerCompositor::scheduleLayerFlush):
2393         (WebCore::RenderLayerCompositor::startInitialLayerFlushTimerIfNeeded):
2394         * rendering/RenderLayerCompositor.h:
2395         
2396             Enable initial layer flush delay on all platforms.
2397
2398 2014-01-21  Mihai Tica  <mitica@adobe.com>
2399
2400         If you set a tiled cross-faded-image or a tiled gradient as
2401         a background layer, -webkit-background-blend-mode doesn't work.
2402         The problem consists in the blendMode parameter not being set
2403         for these specific drawing paths.
2404
2405         https://bugs.webkit.org/show_bug.cgi?id=126888
2406         Reviewed by Dirk Schulze.
2407
2408         Test: css3/compositing/background-blend-mode-tiled-layers.html
2409
2410         * platform/graphics/CrossfadeGeneratedImage.cpp:
2411         (WebCore::CrossfadeGeneratedImage::drawPattern): Add the blendMode parameter and pass it to ImageBuffer::drawPattern.
2412         * platform/graphics/GradientImage.cpp:
2413         (WebCore::GradientImage::drawPattern): Add the blendMode parameter and pass it to ImageBuffer::drawPattern.
2414         * platform/graphics/ImageBuffer.h: Add a BlendMode parameter to the drawPattern method.
2415         * platform/graphics/cairo/ImageBufferCairo.cpp:
2416         (WebCore::ImageBuffer::drawPattern): Add the default BlendMode parameter to the method declaration.
2417         * platform/graphics/cg/ImageBufferCG.cpp:
2418         (WebCore::ImageBuffer::drawPattern): Add and use the blendMode parameter for all the code paths.
2419         * platform/graphics/wince/ImageBufferWinCE.cpp:
2420         (WebCore::BufferedImage::drawPattern): Add the default BlendMode parameter to the method declaration.
2421
2422 2014-01-21  Gurpreet Kaur  <k.gurpreet@samsung.com>
2423
2424         The WebCore.vcxproj.filters doesnot apply
2425         https://bugs.webkit.org/show_bug.cgi?id=127338
2426
2427         Reviewed by Csaba Osztrogonác.
2428
2429         * WebCore.vcxproj/WebCore.vcxproj.filters:
2430         Modified the WebCore.vcxproj.filters so that it is applied when loading
2431         WebCore.vcxproj file.
2432
2433 2014-01-21  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>
2434
2435         Fix SVG animations which set rx or ry attributes
2436         https://bugs.webkit.org/show_bug.cgi?id=127337
2437
2438         Reviewed by Dirk Schulze.
2439
2440         Test: svg/stroke/animated-non-scaling-rxry.html
2441
2442         Merged from Blink: https://src.chromium.org/viewvc/blink?revision=152376&view=revision
2443
2444         * rendering/svg/RenderSVGRect.cpp:
2445         (WebCore::RenderSVGRect::updateShapeFromElement):
2446         * rendering/svg/SVGPathData.cpp:
2447         (WebCore::updatePathFromRectElement):
2448
2449 2014-01-21  Krzysztof Czech  <k.czech@samsung.com>
2450
2451         [ATK] Expose aria-flowto through ATK_RELATION_FLOWS_TO
2452         https://bugs.webkit.org/show_bug.cgi?id=127291
2453
2454         Reviewed by Mario Sanchez Prada.
2455
2456         Test: accessibility/aria-flowto.html
2457
2458         Expose aria-flowto through ATK_RELATION_FLOWS_TO according to
2459         http://www.w3.org/TR/wai-aria-implementation/#mapping_state-property
2460
2461         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
2462         (setAtkRelationSetFromCoreObject):
2463
2464 2014-01-20  Ryuan Choi  <ryuan.choi@samsung.com>
2465
2466         [CMAKE] Remove Nix from CMake scripts
2467         https://bugs.webkit.org/show_bug.cgi?id=127264
2468
2469         Reviewed by Anders Carlsson.
2470
2471         * CMakeLists.txt:
2472
2473 2014-01-20  Anders Carlsson  <andersca@apple.com>
2474
2475         Remove an unused PageGroup function
2476         https://bugs.webkit.org/show_bug.cgi?id=127327
2477
2478         Reviewed by Andreas Kling.
2479
2480         * WebCore.exp.in:
2481         * page/PageGroup.cpp:
2482         * page/PageGroup.h:
2483
2484 2014-01-20  Anders Carlsson  <andersca@apple.com>
2485
2486         Move user style sheet handling to UserContentController
2487         https://bugs.webkit.org/show_bug.cgi?id=127322
2488         <rdar://problem/15861296>
2489
2490         Reviewed by Andreas Kling.
2491
2492         * dom/DocumentStyleSheetCollection.cpp:
2493         (WebCore::DocumentStyleSheetCollection::updateInjectedStyleSheetCache):
2494         * page/PageGroup.cpp:
2495         (WebCore::PageGroup::addUserStyleSheetToWorld):
2496         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
2497         (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
2498         (WebCore::PageGroup::removeAllUserContent):
2499         * page/PageGroup.h:
2500         * page/UserContentController.cpp:
2501         (WebCore::UserContentController::addUserStyleSheet):
2502         (WebCore::UserContentController::removeUserStyleSheet):
2503         (WebCore::UserContentController::removeUserStyleSheets):
2504         (WebCore::UserContentController::removeAllUserContent):
2505         (WebCore::UserContentController::invalidateInjectedStyleSheetCacheInAllFrames):
2506         * page/UserContentController.h:
2507         (WebCore::UserContentController::userStyleSheets):
2508
2509 2014-01-20  Benjamin Poulain  <benjamin@webkit.org>
2510
2511         Add a nicer way to iterate over all the attributes of an element
2512         https://bugs.webkit.org/show_bug.cgi?id=127266
2513
2514         Reviewed by Geoffrey Garen.
2515
2516         When using Element::attributeAt() in a loop, the compiler had to generate two kinds of
2517         accessor:
2518         -If the element data is unique, the length and data comes from the attribute Vector.
2519         -If the element data is shared, the data comes from the tail of elementData itself.
2520
2521         The choice was done for every access, which caused the assembly to be a little
2522         hard to follow.
2523         This patch unify the data access by doing everything as a array pointer with offset (getting
2524         that data from Vector when necessary).
2525
2526         To make it easier to do the right thing, a new iterator was added so that range-based loops
2527         can replace all the faulty cases.
2528
2529         * css/SelectorChecker.cpp:
2530         (WebCore::anyAttributeMatches):
2531         * css/SelectorChecker.h:
2532         (WebCore::SelectorChecker::checkExactAttribute):
2533         * dom/DatasetDOMStringMap.cpp:
2534         (WebCore::DatasetDOMStringMap::getNames):
2535         (WebCore::DatasetDOMStringMap::item):
2536         (WebCore::DatasetDOMStringMap::contains):
2537         * dom/Element.cpp:
2538         (WebCore::Element::normalizeAttributes):
2539         (WebCore::Element::detachAllAttrNodesFromElement):
2540         (WebCore::Element::cloneAttributesFromElement):
2541         * dom/Element.h:
2542         (WebCore::Element::attributesIterator):
2543         * dom/ElementData.cpp:
2544         (WebCore::ElementData::isEquivalent):
2545         (WebCore::ElementData::findAttributeIndexByNameSlowCase):
2546         * dom/ElementData.h:
2547         (WebCore::AttributeConstIterator::AttributeConstIterator):
2548         (WebCore::AttributeConstIterator::operator*):
2549         (WebCore::AttributeConstIterator::operator->):
2550         (WebCore::AttributeConstIterator::operator++):
2551         (WebCore::AttributeConstIterator::operator==):
2552         (WebCore::AttributeConstIterator::operator!=):
2553         (WebCore::AttributeIteratorAccessor::AttributeIteratorAccessor):
2554         (WebCore::AttributeIteratorAccessor::begin):
2555         (WebCore::AttributeIteratorAccessor::end):
2556         (WebCore::ElementData::attributesIterator):
2557         * dom/Node.cpp:
2558         (WebCore::Node::isDefaultNamespace):
2559         (WebCore::Node::lookupNamespaceURI):
2560         (WebCore::Node::lookupNamespacePrefix):
2561         (WebCore::Node::compareDocumentPosition):
2562         * dom/StyledElement.cpp:
2563         (WebCore::StyledElement::makePresentationAttributeCacheKey):
2564         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
2565         * editing/MarkupAccumulator.cpp:
2566         (WebCore::MarkupAccumulator::appendElement):
2567         * editing/markup.cpp:
2568         (WebCore::completeURLs):
2569         (WebCore::StyledMarkupAccumulator::appendElement):
2570         * html/HTMLEmbedElement.cpp:
2571         (WebCore::HTMLEmbedElement::parametersForPlugin):
2572         * html/HTMLObjectElement.cpp:
2573         (WebCore::HTMLObjectElement::parametersForPlugin):
2574         * inspector/DOMPatchSupport.cpp:
2575         (WebCore::DOMPatchSupport::innerPatchNode):
2576         (WebCore::DOMPatchSupport::createDigest):
2577         * inspector/InspectorDOMAgent.cpp:
2578         (WebCore::InspectorDOMAgent::setAttributesAsText):
2579         (WebCore::InspectorDOMAgent::buildArrayForElementAttributes):
2580         * inspector/InspectorNodeFinder.cpp:
2581         (WebCore::InspectorNodeFinder::matchesElement):
2582         * page/PageSerializer.cpp:
2583         (WebCore::isCharsetSpecifyingNode):
2584         * xml/XPathNodeSet.cpp:
2585         (WebCore::XPath::NodeSet::traversalSort):
2586         * xml/XPathStep.cpp:
2587         (WebCore::XPath::Step::nodesInAxis):
2588         * xml/parser/XMLDocumentParserLibxml2.cpp:
2589         (WebCore::XMLDocumentParser::XMLDocumentParser):
2590
2591 2014-01-20  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2592
2593         Do refactor in collectGradientAttributes() and renderStyleForLengthResolve()
2594         https://bugs.webkit.org/show_bug.cgi?id=126869
2595
2596         Reviewed by Dirk Schulze.
2597
2598         Some SVG functions have done a first iteration by using a boolean flag. This is
2599         one of poor implementations. This patch fix it by extracting a logic into a new method.
2600         Additionally it would be good to use do-while() loop instead of using while() in
2601         renderStyleForLengthResolving() because a first condition is always true.
2602
2603         Merge r165358 from blink.
2604
2605         * svg/SVGLengthContext.cpp:
2606         (WebCore::renderStyleForLengthResolving):
2607         * svg/SVGLinearGradientElement.cpp:
2608         (WebCore::setGradientAttributes):
2609         (WebCore::SVGLinearGradientElement::collectGradientAttributes):
2610         * svg/SVGRadialGradientElement.cpp:
2611         (WebCore::setGradientAttributes):
2612         (WebCore::SVGRadialGradientElement::collectGradientAttributes):
2613
2614 2014-01-20  Anders Carlsson  <andersca@apple.com>
2615
2616         UserContentController should keep track of user scripts
2617         https://bugs.webkit.org/show_bug.cgi?id=127317
2618         <rdar://problem/15861296>
2619
2620         Reviewed by Andreas Kling.
2621
2622         Move handling of user scripts from PageGroup to UserContentController.
2623
2624         * page/Frame.cpp:
2625         (WebCore::Frame::injectUserScripts):
2626         * page/PageGroup.cpp:
2627         (WebCore::PageGroup::addUserScriptToWorld):
2628         (WebCore::PageGroup::removeUserScriptFromWorld):
2629         (WebCore::PageGroup::removeUserScriptsFromWorld):
2630         (WebCore::PageGroup::removeAllUserContent):
2631         * page/PageGroup.h:
2632         * page/UserContentController.cpp:
2633         (WebCore::UserContentController::addUserScript):
2634         (WebCore::UserContentController::removeUserScript):
2635         (WebCore::UserContentController::removeUserScripts):
2636         (WebCore::UserContentController::removeAllUserContent):
2637         * page/UserContentController.h:
2638         (WebCore::UserContentController::userScripts):
2639
2640 2014-01-20  Anders Carlsson  <andersca@apple.com>
2641
2642         Give each page a UserContentController
2643         https://bugs.webkit.org/show_bug.cgi?id=127315
2644         <rdar://problem/15861296>
2645
2646         Reviewed by Andreas Kling.
2647
2648         Add a UserContentController object to PageGroup and have the page group set it on any
2649         pages that are added to the page group.
2650
2651         This is another step towards moving handling of user content away from PageGroup and make it
2652         possible for each page to have different user content.
2653
2654         * page/Page.cpp:
2655         (WebCore::Page::~Page):
2656         (WebCore::Page::setUserContentController):
2657         * page/Page.h:
2658         (WebCore::Page::userContentController):
2659         * page/PageGroup.cpp:
2660         (WebCore::PageGroup::PageGroup):
2661         (WebCore::PageGroup::addPage):
2662         (WebCore::PageGroup::removePage):
2663         * page/PageGroup.h:
2664         * page/UserContentController.cpp:
2665         (WebCore::UserContentController::addPage):
2666         (WebCore::UserContentController::removePage):
2667         * page/UserContentController.h:
2668
2669 2014-01-20  Jeremy Jones  <jeremyj@apple.com>
2670
2671         Add AVKit fullscreen video interface.
2672         https://bugs.webkit.org/show_bug.cgi?id=126818
2673
2674         Reviewed by Eric Carlson.
2675
2676         No new tests, no observable change in functionality.
2677
2678         * WebCore.exp.in:
2679         * WebCore.xcodeproj/project.pbxproj:
2680         * html/HTMLMediaElement.cpp:
2681         (WebCore::HTMLMediaElement::parseAttribute):
2682         * html/HTMLMediaElement.h:
2683         Add ability for fullscreen to borrow the AVPlayerLayer.
2684         * page/Settings.cpp:
2685         * page/Settings.h:
2686         (WebCore::Settings::setMediaPlaybackFullscreenAVKit):
2687         (WebCore::Settings::mediaPlaybackFullscreenAVKit):
2688         Add a disabled setting.
2689         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
2690         (WebCore::MediaPlayerPrivateAVFoundation::supportsFullscreen):
2691         Enabled fullscreen for iOS.
2692         * platform/ios/WebVideoFullscreenControllerAVKit.h: Added.
2693         * platform/ios/WebVideoFullscreenControllerAVKit.mm: Added.
2694         (-[WebAVPlayerController init]):
2695         (-[WebAVPlayerController dealloc]):
2696         (-[WebAVPlayerController forwardingTargetForSelector:]):
2697         (-[WebAVPlayerController shouldDismissForDone]):
2698         (-[WebAVPlayerController play:]):
2699         (-[WebAVPlayerController pause:]):
2700         (-[WebAVPlayerController togglePlayback:]):
2701         (-[WebAVPlayerController isPlaying]):
2702         (-[WebAVPlayerController setPlaying:]):
2703         (+[WebAVPlayerController keyPathsForValuesAffectingPlaying]):
2704         (-[WebAVPlayerController seekToTime:]):
2705         (-[WebAVPlayerController updateTimingWithCurrentTime:]):
2706         (-[WebAVPlayerController effectiveRate]):
2707         (-[WebAVPlayerController setMediaElement:]):
2708         (-[WebAVPlayerController handleEvent:]):
2709         (-[WebVideoFullscreenController init]):
2710         (-[WebVideoFullscreenController dealloc]):
2711         (-[WebVideoFullscreenController setMediaElement:]):
2712         (-[WebVideoFullscreenController mediaElement]):
2713         (-[WebVideoFullscreenController enterFullscreen:]):
2714         (-[WebVideoFullscreenController exitFullscreen]):
2715         Add WebAVPlayerController for HTMLMediaElememt to interface with AVPlayerViewController.
2716
2717 2014-01-20  Zan Dobersek  <zdobersek@igalia.com>
2718
2719         Replace uses of std::forward<T>(), std::unique_ptr<T>::clear() that landed in r162368
2720         https://bugs.webkit.org/show_bug.cgi?id=127306
2721
2722         Reviewed by Darin Adler.
2723
2724         Address the post-landing reviews of the r162368 commit that moved WebAudio source code to using std::unique_ptr.
2725         std::move() should be used instead of std::forward<T>() in HRTFKernel::create().
2726         Instead of calling std::unique_ptr<T>::reset(), nullptr should be assigned to that smart pointer to reset it.
2727
2728         * Modules/webaudio/ConvolverNode.cpp:
2729         (WebCore::ConvolverNode::uninitialize):
2730         * Modules/webaudio/DynamicsCompressorNode.cpp:
2731         (WebCore::DynamicsCompressorNode::uninitialize):
2732         * Modules/webaudio/MediaElementAudioSourceNode.cpp:
2733         (WebCore::MediaElementAudioSourceNode::setFormat):
2734         * Modules/webaudio/PannerNode.cpp:
2735         (WebCore::PannerNode::uninitialize):
2736         * platform/audio/AudioChannel.h:
2737         (WebCore::AudioChannel::set):
2738         * platform/audio/HRTFDatabaseLoader.cpp:
2739         (WebCore::HRTFDatabaseLoader::~HRTFDatabaseLoader):
2740         * platform/audio/HRTFKernel.h:
2741         (WebCore::HRTFKernel::create):
2742
2743 2014-01-20  Joseph Pecoraro  <pecoraro@apple.com>
2744
2745         Modernize WebCore/inspector with nullptr
2746         https://bugs.webkit.org/show_bug.cgi?id=127303
2747
2748         Reviewed by Anders Carlsson.
2749
2750         Ran clang-modernize -use-nullptr over WebCore/inspector.
2751
2752         * inspector/ConsoleMessage.cpp:
2753         (WebCore::ConsoleMessage::ConsoleMessage):
2754         * inspector/ConsoleMessage.h:
2755         * inspector/ContentSearchUtils.cpp:
2756         (WebCore::ContentSearchUtils::findMagicComment):
2757         * inspector/DOMEditor.cpp:
2758         (WebCore::DOMEditor::SetOuterHTMLAction::SetOuterHTMLAction):
2759         * inspector/DOMPatchSupport.cpp:
2760         (WebCore::DOMPatchSupport::patchDocument):
2761         (WebCore::DOMPatchSupport::patchNode):
2762         (WebCore::DOMPatchSupport::diff):
2763         (WebCore::DOMPatchSupport::innerPatchChildren):
2764         * inspector/InspectorApplicationCacheAgent.cpp:
2765         (WebCore::InspectorApplicationCacheAgent::willDestroyFrontendAndBackend):
2766         (WebCore::InspectorApplicationCacheAgent::assertFrameWithDocumentLoader):
2767         * inspector/InspectorCanvasAgent.cpp:
2768         (WebCore::InspectorCanvasAgent::disable):
2769         (WebCore::InspectorCanvasAgent::notifyRenderingContextWasWrapped):
2770         (WebCore::InspectorCanvasAgent::frameNavigated):
2771         * inspector/InspectorConsoleAgent.cpp:
2772         (WebCore::InspectorConsoleAgent::InspectorConsoleAgent):
2773         (WebCore::InspectorConsoleAgent::~InspectorConsoleAgent):
2774         (WebCore::InspectorConsoleAgent::clearMessages):
2775         (WebCore::InspectorConsoleAgent::didFinishXHRLoading):
2776         (WebCore::InspectorConsoleAgent::didReceiveResponse):
2777         (WebCore::InspectorConsoleAgent::didFailLoading):
2778         * inspector/InspectorConsoleAgent.h:
2779         * inspector/InspectorController.cpp:
2780         (WebCore::InspectorController::inspectedPageDestroyed):
2781         * inspector/InspectorDOMDebuggerAgent.cpp:
2782         (WebCore::InspectorDOMDebuggerAgent::disable):
2783         (WebCore::InspectorDOMDebuggerAgent::discardAgent):
2784         * inspector/InspectorDOMStorageAgent.cpp:
2785         (WebCore::InspectorDOMStorageAgent::~InspectorDOMStorageAgent):
2786         (WebCore::InspectorDOMStorageAgent::setDOMStorageItem):
2787         (WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
2788         (WebCore::InspectorDOMStorageAgent::findStorageArea):
2789         * inspector/InspectorDatabaseAgent.cpp:
2790         (WebCore::InspectorDatabaseAgent::~InspectorDatabaseAgent):
2791         (WebCore::InspectorDatabaseAgent::findByFileName):
2792         (WebCore::InspectorDatabaseAgent::databaseForId):
2793         * inspector/InspectorDebuggerAgent.cpp:
2794         (WebCore::InspectorDebuggerAgent::addMessageToConsole):
2795         (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
2796         (WebCore::InspectorDebuggerAgent::didParseSource):
2797         (WebCore::InspectorDebuggerAgent::didContinue):
2798         (WebCore::InspectorDebuggerAgent::clearBreakDetails):
2799         * inspector/InspectorFrontendHost.cpp:
2800         (WebCore::FrontendMenuProvider::disconnect):
2801         (WebCore::InspectorFrontendHost::InspectorFrontendHost):
2802         (WebCore::InspectorFrontendHost::disconnectClient):
2803         * inspector/InspectorHeapProfilerAgent.cpp:
2804         (WebCore::InspectorHeapProfilerAgent::~InspectorHeapProfilerAgent):
2805         * inspector/InspectorIndexedDBAgent.cpp:
2806         (WebCore::assertDocument):
2807         (WebCore::assertIDBFactory):
2808         (WebCore::InspectorIndexedDBAgent::requestData):
2809         * inspector/InspectorInstrumentation.cpp:
2810         (WebCore::frameForScriptExecutionContext):
2811         (WebCore::InspectorInstrumentation::willDispatchEventOnWindowImpl):
2812         (WebCore::InspectorInstrumentation::didReceiveResourceResponseButCanceledImpl):
2813         (WebCore::InspectorInstrumentation::consoleAgentEnabled):
2814         (WebCore::InspectorInstrumentation::unregisterInstrumentingAgents):
2815         (WebCore::InspectorInstrumentation::retrieveTimelineAgent):
2816         (WebCore::InspectorInstrumentation::instrumentingAgentsForPage):
2817         (WebCore::InspectorInstrumentation::instrumentingAgentsForWorkerGlobalScope):
2818         (WebCore::InspectorInstrumentation::instrumentingAgentsForNonDocumentContext):
2819         * inspector/InspectorInstrumentation.h:
2820         (WebCore::InspectorInstrumentation::instrumentingAgentsForContext):
2821         (WebCore::InspectorInstrumentation::instrumentingAgentsForFrame):
2822         (WebCore::InspectorInstrumentation::instrumentingAgentsForDocument):
2823         * inspector/InspectorLayerTreeAgent.cpp:
2824         (WebCore::InspectorLayerTreeAgent::disable):
2825         * inspector/InspectorNodeFinder.cpp:
2826         (WebCore::InspectorNodeFinder::searchUsingXPath):
2827         * inspector/InspectorOverlay.cpp:
2828         (WebCore::buildObjectForElementInfo):
2829         * inspector/InspectorPageAgent.cpp:
2830         (WebCore::InspectorPageAgent::cachedResourceContent):
2831         (WebCore::InspectorPageAgent::sharedBufferContent):
2832         (WebCore::InspectorPageAgent::disable):
2833         (WebCore::InspectorPageAgent::frameForId):
2834         (WebCore::InspectorPageAgent::findFrameWithSecurityOrigin):
2835         * inspector/InspectorProfilerAgent.cpp:
2836         (WebCore::InspectorProfilerAgent::~InspectorProfilerAgent):
2837         * inspector/InspectorProfilerAgent.h:
2838         * inspector/InspectorResourceAgent.cpp:
2839         (WebCore::buildObjectForResourceResponse):
2840         (WebCore::InspectorResourceAgent::willSendRequest):
2841         (WebCore::InspectorResourceAgent::didReceiveResponse):
2842         (WebCore::InspectorResourceAgent::didFinishLoading):
2843         (WebCore::InspectorResourceAgent::didFailLoading):
2844         (WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):
2845         (WebCore::InspectorResourceAgent::disable):
2846         * inspector/InspectorRuntimeAgent.cpp:
2847         (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
2848         * inspector/InspectorStyleSheet.cpp:
2849         (ParsedStyleSheet::ruleSourceDataAt):
2850         (WebCore::buildSourceRangeObject):
2851         (WebCore::asCSSRuleList):
2852         (WebCore::fillMediaListChain):
2853         (WebCore::InspectorStyle::setPropertyText):
2854         (WebCore::InspectorStyle::populateAllProperties):
2855         (WebCore::InspectorStyle::extractSourceData):
2856         (WebCore::InspectorStyle::newLineAndWhitespaceDelimiters):
2857         (WebCore::InspectorStyleSheet::addRule):
2858         (WebCore::InspectorStyleSheet::ruleForId):
2859         (WebCore::InspectorStyleSheet::buildObjectForStyleSheet):
2860         (WebCore::InspectorStyleSheet::buildObjectForStyleSheetInfo):
2861         (WebCore::InspectorStyleSheet::buildObjectForRule):
2862         (WebCore::InspectorStyleSheet::styleForId):
2863         (WebCore::InspectorStyleSheet::inspectorStyleForId):
2864         (WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle):
2865         * inspector/InspectorStyleSheet.h:
2866         (WebCore::InspectorCSSId::asProtocolValue):
2867         * inspector/InspectorTimelineAgent.cpp:
2868         (WebCore::InspectorTimelineAgent::stop):
2869         (WebCore::InspectorTimelineAgent::willComposite):
2870         (WebCore::InspectorTimelineAgent::page):
2871         * inspector/InspectorWorkerAgent.cpp:
2872         (WebCore::InspectorWorkerAgent::~InspectorWorkerAgent):
2873         * inspector/InstrumentingAgents.cpp:
2874         (WebCore::InstrumentingAgents::InstrumentingAgents):
2875         (WebCore::InstrumentingAgents::reset):
2876         * inspector/NetworkResourcesData.cpp:
2877         (WebCore::NetworkResourcesData::ResourceData::ResourceData):
2878         (WebCore::NetworkResourcesData::xhrReplayData):
2879         (WebCore::NetworkResourcesData::removeCachedResource):
2880         (WebCore::NetworkResourcesData::resourceDataForRequestId):
2881         * inspector/PageConsoleAgent.cpp:
2882         (WebCore::PageConsoleAgent::~PageConsoleAgent):
2883         * inspector/PageDebuggerAgent.cpp:
2884         (WebCore::PageDebuggerAgent::disable):
2885         * inspector/PageRuntimeAgent.cpp:
2886         (WebCore::PageRuntimeAgent::~PageRuntimeAgent):
2887         (WebCore::PageRuntimeAgent::didCreateMainWorldContext):
2888         (WebCore::PageRuntimeAgent::reportExecutionContextCreation):
2889         * inspector/ScriptArguments.cpp:
2890         (WebCore::ScriptArguments::globalState):
2891         * inspector/WorkerRuntimeAgent.cpp:
2892         (WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
2893
2894 2014-01-20  Anders Carlsson  <andersca@apple.com>
2895
2896         Add empty UserContentController class
2897         https://bugs.webkit.org/show_bug.cgi?id=127300
2898         <rdar://problem/15861296>
2899
2900         Reviewed by Dan Bernstein.
2901
2902         This is the first step towards moving handling of user scripts and style sheets from
2903         the page group to a separate objects and ultimately make them be settable per page instead of per page group.
2904
2905         * CMakeLists.txt:
2906         * GNUmakefile.list.am:
2907         * WebCore.vcxproj/WebCore.vcxproj:
2908         * WebCore.vcxproj/WebCore.vcxproj.filters:
2909         * WebCore.xcodeproj/project.pbxproj:
2910         * page/UserContentController.cpp: Added.
2911         (WebCore::UserContentController::create):
2912         (WebCore::UserContentController::UserContentController):
2913         (WebCore::UserContentController::~UserContentController):
2914         * page/UserContentController.h: Added.
2915
2916 2014-01-20  Joseph Pecoraro  <pecoraro@apple.com>
2917
2918         Run clang-modernize and let it add a bunch of missing overrides in WebCore/inspector
2919         https://bugs.webkit.org/show_bug.cgi?id=127206
2920
2921         Reviewed by Anders Carlsson.
2922
2923         Let clang-modernize add overrides.
2924
2925         * inspector/DOMEditor.cpp:
2926         * inspector/InspectorApplicationCacheAgent.h:
2927         * inspector/InspectorCSSAgent.h:
2928         * inspector/InspectorCanvasAgent.h:
2929         * inspector/InspectorConsoleAgent.h:
2930         * inspector/InspectorDOMAgent.h:
2931         * inspector/InspectorDOMDebuggerAgent.h:
2932         * inspector/InspectorDOMStorageAgent.h:
2933         * inspector/InspectorDatabaseAgent.cpp:
2934         * inspector/InspectorDatabaseAgent.h:
2935         * inspector/InspectorDebuggerAgent.h:
2936         * inspector/InspectorFrontendHost.cpp:
2937         * inspector/InspectorHeapProfilerAgent.cpp:
2938         (WebCore::InspectorHeapProfilerAgent::getHeapSnapshot):
2939         (WebCore::InspectorHeapProfilerAgent::takeHeapSnapshot):
2940         * inspector/InspectorHeapProfilerAgent.h:
2941         * inspector/InspectorHistory.cpp:
2942         * inspector/InspectorIndexedDBAgent.cpp:
2943         * inspector/InspectorIndexedDBAgent.h:
2944         * inspector/InspectorInputAgent.h:
2945         * inspector/InspectorLayerTreeAgent.h:
2946         * inspector/InspectorMemoryAgent.h:
2947         * inspector/InspectorPageAgent.h:
2948         * inspector/InspectorProfilerAgent.cpp:
2949         * inspector/InspectorProfilerAgent.h:
2950         * inspector/InspectorResourceAgent.h:
2951         * inspector/InspectorRuntimeAgent.h:
2952         * inspector/InspectorStyleSheet.h:
2953         * inspector/InspectorTimelineAgent.h:
2954         * inspector/InspectorWorkerAgent.cpp:
2955         * inspector/InspectorWorkerAgent.h:
2956         * inspector/PageConsoleAgent.h:
2957         * inspector/PageDebuggerAgent.h:
2958         * inspector/PageRuntimeAgent.h:
2959         * inspector/WorkerConsoleAgent.h:
2960         * inspector/WorkerDebuggerAgent.cpp:
2961         * inspector/WorkerInspectorController.cpp:
2962         * inspector/WorkerRuntimeAgent.h:
2963
2964 2014-01-20  Zan Dobersek  <zdobersek@igalia.com>
2965
2966         Move WebAudio source code to std::unique_ptr
2967         https://bugs.webkit.org/show_bug.cgi?id=127274
2968
2969         Reviewed by Eric Carlson.
2970
2971         Move from using OwnPtr and PassOwnPtr to using std::unique_ptr and move semantics
2972         in the WebAudio module and the WebAudio code in the platform layer.
2973
2974         * Modules/webaudio/AsyncAudioDecoder.cpp:
2975         * Modules/webaudio/AsyncAudioDecoder.h:
2976         * Modules/webaudio/AudioBasicInspectorNode.cpp:
2977         (WebCore::AudioBasicInspectorNode::AudioBasicInspectorNode):
2978         * Modules/webaudio/AudioBasicProcessorNode.cpp:
2979         (WebCore::AudioBasicProcessorNode::AudioBasicProcessorNode):
2980         * Modules/webaudio/AudioBasicProcessorNode.h:
2981         * Modules/webaudio/AudioBufferSourceNode.cpp:
2982         (WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
2983         * Modules/webaudio/AudioContext.cpp:
2984         * Modules/webaudio/AudioContext.h:
2985         * Modules/webaudio/AudioDestinationNode.cpp:
2986         (WebCore::AudioDestinationNode::AudioDestinationNode):
2987         * Modules/webaudio/AudioNode.cpp:
2988         (WebCore::AudioNode::addInput):
2989         (WebCore::AudioNode::addOutput):
2990         (WebCore::AudioNode::checkNumberOfChannelsForInput):
2991         * Modules/webaudio/AudioNode.h:
2992         * Modules/webaudio/BiquadFilterNode.cpp:
2993         (WebCore::BiquadFilterNode::BiquadFilterNode):
2994         * Modules/webaudio/BiquadProcessor.cpp:
2995         (WebCore::BiquadProcessor::createKernel):
2996         (WebCore::BiquadProcessor::getFrequencyResponse):
2997         * Modules/webaudio/BiquadProcessor.h:
2998         * Modules/webaudio/ChannelMergerNode.cpp:
2999         (WebCore::ChannelMergerNode::ChannelMergerNode):
3000         * Modules/webaudio/ChannelSplitterNode.cpp:
3001         (WebCore::ChannelSplitterNode::ChannelSplitterNode):
3002         * Modules/webaudio/ConvolverNode.cpp:
3003         (WebCore::ConvolverNode::ConvolverNode):
3004         (WebCore::ConvolverNode::uninitialize):
3005         (WebCore::ConvolverNode::setBuffer):
3006         * Modules/webaudio/ConvolverNode.h:
3007         * Modules/webaudio/DefaultAudioDestinationNode.h:
3008         * Modules/webaudio/DelayNode.cpp:
3009         (WebCore::DelayNode::DelayNode):
3010         * Modules/webaudio/DelayProcessor.cpp:
3011         (WebCore::DelayProcessor::createKernel):
3012         * Modules/webaudio/DelayProcessor.h:
3013         * Modules/webaudio/DynamicsCompressorNode.cpp:
3014         (WebCore::DynamicsCompressorNode::DynamicsCompressorNode):
3015         (WebCore::DynamicsCompressorNode::initialize):
3016         (WebCore::DynamicsCompressorNode::uninitialize):
3017         * Modules/webaudio/DynamicsCompressorNode.h:
3018         * Modules/webaudio/GainNode.cpp:
3019         (WebCore::GainNode::GainNode):
3020         * Modules/webaudio/MediaElementAudioSourceNode.cpp:
3021         (WebCore::MediaElementAudioSourceNode::MediaElementAudioSourceNode):
3022         (WebCore::MediaElementAudioSourceNode::setFormat):
3023         * Modules/webaudio/MediaElementAudioSourceNode.h:
3024         * Modules/webaudio/MediaStreamAudioDestinationNode.h:
3025         * Modules/webaudio/MediaStreamAudioSource.cpp:
3026         * Modules/webaudio/MediaStreamAudioSourceNode.cpp:
3027         (WebCore::MediaStreamAudioSourceNode::MediaStreamAudioSourceNode):
3028         * Modules/webaudio/MediaStreamAudioSourceNode.h:
3029         * Modules/webaudio/OscillatorNode.cpp:
3030         (WebCore::OscillatorNode::OscillatorNode):
3031         * Modules/webaudio/PannerNode.cpp:
3032         (WebCore::PannerNode::PannerNode):
3033         (WebCore::PannerNode::uninitialize):
3034         (WebCore::PannerNode::setPanningModel):
3035         * Modules/webaudio/PannerNode.h:
3036         * Modules/webaudio/PeriodicWave.cpp:
3037         (WebCore::PeriodicWave::createBandLimitedTables):
3038         * Modules/webaudio/PeriodicWave.h:
3039         * Modules/webaudio/RealtimeAnalyser.cpp:
3040         (WebCore::RealtimeAnalyser::RealtimeAnalyser):
3041         (WebCore::RealtimeAnalyser::setFftSize):
3042         * Modules/webaudio/RealtimeAnalyser.h:
3043         * Modules/webaudio/ScriptProcessorNode.cpp:
3044         (WebCore::ScriptProcessorNode::ScriptProcessorNode):
3045         * Modules/webaudio/WaveShaperDSPKernel.cpp:
3046         (WebCore::WaveShaperDSPKernel::lazyInitializeOversampling):
3047         * Modules/webaudio/WaveShaperDSPKernel.h:
3048         * Modules/webaudio/WaveShaperNode.cpp:
3049         (WebCore::WaveShaperNode::WaveShaperNode):
3050         * Modules/webaudio/WaveShaperProcessor.cpp:
3051         (WebCore::WaveShaperProcessor::createKernel):
3052         * Modules/webaudio/WaveShaperProcessor.h:
3053         * platform/audio/AudioBus.cpp:
3054         (WebCore::AudioBus::AudioBus):
3055         (WebCore::AudioBus::copyWithGainFrom):
3056         * platform/audio/AudioBus.h:
3057         * platform/audio/AudioChannel.cpp:
3058         * platform/audio/AudioChannel.h:
3059         (WebCore::AudioChannel::AudioChannel):
3060         (WebCore::AudioChannel::set):
3061         * platform/audio/AudioDSPKernelProcessor.h:
3062         * platform/audio/AudioDestination.h:
3063         * platform/audio/AudioResampler.cpp:
3064         (WebCore::AudioResampler::AudioResampler):
3065         (WebCore::AudioResampler::configureChannels):
3066         * platform/audio/AudioResampler.h:
3067         * platform/audio/AudioSession.h:
3068         * platform/audio/DynamicsCompressor.cpp:
3069         (WebCore::DynamicsCompressor::setNumberOfChannels):
3070         * platform/audio/DynamicsCompressor.h:
3071         * platform/audio/DynamicsCompressorKernel.cpp:
3072         (WebCore::DynamicsCompressorKernel::setNumberOfChannels):
3073         * platform/audio/DynamicsCompressorKernel.h:
3074         * platform/audio/FFTFrame.cpp:
3075         (WebCore::FFTFrame::createInterpolatedFrame):
3076         * platform/audio/FFTFrame.h:
3077         * platform/audio/HRTFDatabase.cpp:
3078         (WebCore::HRTFDatabase::HRTFDatabase):
3079         * platform/audio/HRTFDatabase.h:
3080         * platform/audio/HRTFDatabaseLoader.cpp:
3081         (WebCore::HRTFDatabaseLoader::~HRTFDatabaseLoader):
3082         (WebCore::HRTFDatabaseLoader::load):
3083         * platform/audio/HRTFDatabaseLoader.h:
3084         * platform/audio/HRTFElevation.cpp:
3085         (WebCore::HRTFElevation::createForSubject):
3086         (WebCore::HRTFElevation::createByInterpolatingSlices):
3087         * platform/audio/HRTFElevation.h:
3088         (WebCore::HRTFElevation::HRTFElevation):
3089         * platform/audio/HRTFKernel.cpp:
3090         (WebCore::HRTFKernel::HRTFKernel):
3091         (WebCore::HRTFKernel::createImpulseResponse):
3092         (WebCore::HRTFKernel::createInterpolatedKernel):
3093         * platform/audio/HRTFKernel.h:
3094         (WebCore::HRTFKernel::create):
3095         (WebCore::HRTFKernel::HRTFKernel):
3096         * platform/audio/MultiChannelResampler.cpp:
3097         (WebCore::MultiChannelResampler::MultiChannelResampler):
3098         * platform/audio/MultiChannelResampler.h:
3099         * platform/audio/Panner.cpp:
3100         (WebCore::Panner::create):
3101         * platform/audio/Panner.h:
3102         * platform/audio/Reverb.cpp:
3103         (WebCore::Reverb::initialize):
3104         * platform/audio/Reverb.h:
3105         * platform/audio/ReverbConvolver.h:
3106         * platform/audio/ReverbConvolverStage.cpp:
3107         (WebCore::ReverbConvolverStage::ReverbConvolverStage):
3108         * platform/audio/ReverbConvolverStage.h:
3109         * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
3110         (WebCore::AudioDestination::create):
3111         * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
3112         * platform/audio/ios/AudioDestinationIOS.cpp:
3113         (WebCore::AudioDestination::create):
3114         * platform/audio/ios/AudioSessionIOS.mm:
3115         (WebCore::AudioSession::AudioSession):
3116         * platform/audio/mac/AudioDestinationMac.cpp:
3117         (WebCore::AudioDestination::create):
3118         * platform/audio/mac/AudioDestinationMac.h:
3119         * platform/audio/mac/AudioSessionMac.cpp:
3120         (WebCore::AudioSession::AudioSession):
3121
3122 2014-01-20  Morten Stenshorne  <mstensho@opera.com>
3123
3124         Region based multicol: support explicit column breaks
3125         https://bugs.webkit.org/show_bug.cgi?id=123993
3126
3127         Reviewed by David Hyatt.
3128
3129         Merely supporting insertion of explicit (forced) column breaks in
3130         the region based multicol implementation is really simple: just
3131         hook up with what the CSS regions code is already doing.
3132
3133         However, there is one complication: column balancing. In order to
3134         balance columns as nicely as possible when there are explicit
3135         breaks, we need to figure out between which explicit breaks the
3136         implicit breaks will occur (if there's room for any at all).
3137
3138         Tests: fast/multicol/newmulticol/break-after.html
3139                fast/multicol/newmulticol/break-before.html
3140                fast/multicol/newmulticol/breaks-2-columns-3-no-balancing.html
3141                fast/multicol/newmulticol/breaks-2-columns-3.html
3142                fast/multicol/newmulticol/breaks-3-columns-3.html
3143                fast/multicol/newmulticol/fixed-height-fill-balance-2.html
3144
3145         * rendering/RenderBlockFlow.cpp:
3146         (WebCore::RenderBlockFlow::applyBeforeBreak):
3147         (WebCore::RenderBlockFlow::applyAfterBreak): Use the already
3148         existing region breaking code when inserting breaks in region
3149         based multicol.
3150         * rendering/RenderFlowThread.h:
3151         * rendering/RenderMultiColumnBlock.cpp:
3152         (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
3153         (WebCore::RenderMultiColumnBlock::relayoutForPagination): Avoid
3154         re-balancing if the multicol's contents were not laid out. Apart
3155         from being good for performance, this is now necessary because of
3156         how explicit breaks are implemented.
3157         (WebCore::RenderMultiColumnBlock::layoutSpecialExcludedChild):
3158         Detect if the contents are going to be laid out, or skipped, so
3159         that we can tell if we need to (re-)balance the columns
3160         afterwards.
3161         * rendering/RenderMultiColumnBlock.h:
3162         * rendering/RenderMultiColumnFlowThread.cpp:
3163         (WebCore::RenderMultiColumnFlowThread::addForcedRegionBreak):
3164         Locate the appropriate multi-column set and call its
3165         addForcedBreak().
3166         * rendering/RenderMultiColumnFlowThread.h:
3167         * rendering/RenderMultiColumnSet.cpp:
3168         (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
3169         (WebCore::RenderMultiColumnSet::findRunWithTallestColumns):
3170         (WebCore::RenderMultiColumnSet::distributeImplicitBreaks): Figure
3171         out how many implicit breaks each single "content run" should
3172         contain. The taller the content run, the more implicit breaks.
3173         (WebCore::RenderMultiColumnSet::calculateBalancedHeight): This is
3174         now a const method that only does half of what the old
3175         calculateBalancedHeight() did. The rest (such as actually storing
3176         the new column height) is done by recalculateBalancedHeight().
3177         (WebCore::RenderMultiColumnSet::clearForcedBreaks): Needs to be
3178         called between each layout pass, to clear the list of "content
3179         runs".
3180         (WebCore::RenderMultiColumnSet::addForcedBreak): Only useful when
3181         columns are to be balanced. It receives explicit (forced) breaks
3182         and stores them as "content runs". When layout is done, we'll go
3183         through the list of content runs, and see where implicit breaks
3184         should be inserted (if there's room for any). The goal is to
3185         insert implicit breaks in such a way that the final columns become
3186         as short as possible.
3187         (WebCore::RenderMultiColumnSet::recalculateBalancedHeight):
3188         Calculates and sets a new balanced column height. This used to be
3189         done directly in calculateBalancedHeight(), but that method is now
3190         const and it now only calculates the new height and returns it.
3191         (WebCore::RenderMultiColumnSet::prepareForLayout):
3192         * rendering/RenderMultiColumnSet.h: Remove old data members
3193         intended for forced breaks (they were unused), and introduce a
3194         "content run" vector instead. A new content run is triggered by an
3195         explicit break. This is only used when column balancing is
3196         enabled. When not balanced, RenderMultiColumnSet doesn't need to
3197         do anything when explicit breaks are inserted.
3198
3199 2014-01-20  Eric Carlson  <eric.carlson@apple.com>
3200
3201         Allow MediaSessionManager to restrict 'preload' behavior
3202         https://bugs.webkit.org/show_bug.cgi?id=127297
3203
3204         Reviewed by Jer Noble.
3205
3206         Tests: media/video-restricted-no-preload-auto.html
3207                media/video-restricted-no-preload-metadata.html
3208
3209         * html/HTMLMediaElement.cpp:
3210         (WebCore::HTMLMediaElement::parseAttribute): Apply restrictions to preload attribute before
3211             passing to media engine.
3212         (WebCore::HTMLMediaElement::loadResource): Ditto.
3213
3214         * html/HTMLMediaSession.cpp:
3215         (WebCore::HTMLMediaSession::effectivePreloadForElement): New, limit preload according to restrictions.
3216         * html/HTMLMediaSession.h:
3217
3218         * platform/audio/MediaSessionManager.h:
3219         * platform/audio/ios/MediaSessionManagerIOS.mm:
3220         (WebCore::MediaSessionManageriOS::resetRestrictions): Limit preload to metadata only. Drive-by
3221             static deviceClass initialization cleanup.
3222
3223         * testing/Internals.cpp:
3224         (WebCore::Internals::setMediaSessionRestrictions): Support MetadataPreloadingNotPermitted and
3225             AutoPreloadingNotPermitted.
3226
3227 2014-01-20  Andreas Kling  <akling@apple.com>
3228
3229         Let RenderImage construct its RenderImageResource.
3230         <https://webkit.org/b/127290>
3231
3232         Everyone who creates a RenderImage immediately follows up with
3233         creating a RenderImageResource and assigning it to the image.
3234
3235         Let the RenderImage constructor do this instead, and make the
3236         imageResource() accessors return references. This exposed a
3237         number of unnecessary null checks.
3238
3239         Also modernized the touched code with std::unique_ptr.
3240
3241         Reviewed by Antti Koivisto.
3242
3243         * html/HTMLImageElement.cpp:
3244         (WebCore::HTMLImageElement::createElementRenderer):
3245         (WebCore::HTMLImageElement::didAttachRenderers):
3246         * html/HTMLPlugInImageElement.cpp:
3247         (WebCore::HTMLPlugInImageElement::createElementRenderer):
3248         * html/HTMLVideoElement.cpp:
3249         (WebCore::HTMLVideoElement::didAttachRenderers):
3250         (WebCore::HTMLVideoElement::parseAttribute):
3251         * html/ImageInputType.cpp:
3252         (WebCore::ImageInputType::createInputRenderer):
3253         (WebCore::ImageInputType::attach):
3254         * loader/ImageLoader.cpp:
3255         (WebCore::ImageLoader::renderImageResource):
3256         * rendering/RenderElement.cpp:
3257         (WebCore::RenderElement::createFor):
3258         * rendering/RenderImage.cpp:
3259         (WebCore::RenderImage::RenderImage):
3260         (WebCore::RenderImage::~RenderImage):
3261         (WebCore::RenderImage::styleDidChange):
3262         (WebCore::RenderImage::imageChanged):
3263         (WebCore::RenderImage::updateIntrinsicSizeIfNeeded):
3264         (WebCore::RenderImage::updateInnerContentRect):
3265         (WebCore::RenderImage::imageDimensionsChanged):
3266         (WebCore::RenderImage::notifyFinished):
3267         (WebCore::RenderImage::paintReplaced):
3268         (WebCore::RenderImage::paintIntoRect):
3269         (WebCore::RenderImage::foregroundIsKnownToBeOpaqueInRect):
3270         (WebCore::RenderImage::minimumReplacedHeight):
3271         (WebCore::RenderImage::computeIntrinsicRatioInformation):
3272         (WebCore::RenderImage::embeddedContentBox):
3273         * rendering/RenderImage.h:
3274         (WebCore::RenderImage::imageResource):
3275         (WebCore::RenderImage::cachedImage):
3276         * rendering/RenderImageResource.h:
3277         * rendering/RenderImageResourceStyleImage.h:
3278         * rendering/RenderMedia.cpp:
3279         (WebCore::RenderMedia::RenderMedia):
3280         * rendering/RenderSnapshottedPlugIn.cpp:
3281         (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):
3282         * rendering/RenderSnapshottedPlugIn.h:
3283         * rendering/RenderVideo.cpp:
3284         (WebCore::RenderVideo::calculateIntrinsicSize):
3285         * rendering/style/ContentData.cpp:
3286         (WebCore::ImageContentData::createContentRenderer):
3287         * rendering/svg/RenderSVGImage.cpp:
3288         (WebCore::RenderSVGImage::RenderSVGImage):
3289         (WebCore::RenderSVGImage::~RenderSVGImage):
3290         (WebCore::RenderSVGImage::updateImageViewport):
3291         (WebCore::RenderSVGImage::paint):
3292         (WebCore::RenderSVGImage::paintForeground):
3293         * rendering/svg/RenderSVGImage.h:
3294         * svg/SVGImageElement.cpp:
3295         (WebCore::SVGImageElement::didAttachRenderers):
3296
3297 2014-01-20  Antti Koivisto  <antti@apple.com>
3298
3299         Update overlay scrollbars in single pass
3300         https://bugs.webkit.org/show_bug.cgi?id=127289
3301
3302         Reviewed by Anders Carlsson.
3303
3304         * platform/ScrollView.cpp:
3305         (WebCore::ScrollView::updateScrollbars):
3306         
3307             Multi-pass scrollbar resolution is only needed for traditional scrollbars. Overlay scrollbars don't affect layout.
3308
3309 2014-01-20  Jochen Eisinger  <jochen@chromium.org>
3310
3311         Never send a non-http(s) referrer header even with a referrer policy
3312         https://bugs.webkit.org/show_bug.cgi?id=127172
3313
3314         Reviewed by Alexey Proskuryakov.
3315
3316         This mirrors the code SecurityPolicy::shouldHideReferrer which is used
3317         for ReferrerPolicyDefault.
3318
3319         No new tests, only affects an embedder that registers other schemes,
3320         e.g. chrome://
3321
3322         * page/SecurityPolicy.cpp:
3323         (WebCore::SecurityPolicy::generateReferrerHeader):
3324
3325 2014-01-20  Mihai Tica  <mitica@adobe.com>
3326
3327         [CSS Background Blending] Background layer with -webkit-cross-fade doesn't blend
3328         when having -webkit-background-blending applied. Turns out the problem was
3329         the blending parameter not being passed to WebCore::CrossfadeGeneratedImage::draw
3330
3331         https://bugs.webkit.org/show_bug.cgi?id=126887
3332
3333         Reviewed by Dirk Schulze.
3334
3335         Test: css3/compositing/background-blend-mode-crossfade-image.html
3336
3337         * platform/graphics/CrossfadeGeneratedImage.cpp:
3338         (WebCore::CrossfadeGeneratedImage::draw): set blendMode on context.
3339
3340 2013-11-22  Sergio Villar Senin  <svillar@igalia.com>
3341
3342         Null-pointer dereference in WebCore::CSSValue::isPrimitiveValue
3343         https://bugs.webkit.org/show_bug.cgi?id=124769
3344
3345         Reviewed by Andreas Kling.
3346
3347         Test: fast/gradients/crash-on-no-position-separator.html
3348
3349         The function parseFillPosition() may not return valid values for
3350         centerX and centerY if the input data is malformed. We need to
3351         check that we get a valid pair of positions before checking that
3352         they're actually valid primitive values in the assertions.
3353
3354         * css/CSSParser.cpp:
3355         (WebCore::CSSParser::parseRadialGradient):
3356
3357 2014-01-20  Mihai Tica  <mitica@adobe.com>
3358
3359         Background-blend-mode doesn't work for an element with an
3360         SVG image as background and border-style or padding set.
3361         The problem consisted in the drawing path using the default
3362         blending parameter at all times.
3363         https://bugs.webkit.org/show_bug.cgi?id=118894
3364
3365         Reviewed by Dirk Schulze.
3366
3367         Test: css3/compositing/background-blend-mode-data-uri-svg-image.html
3368
3369         * svg/graphics/SVGImage.cpp:
3370         (WebCore::SVGImage::drawPatternForContainer): Pass blendMode to Image::drawPattern.
3371         * svg/graphics/SVGImage.h: Add a blendMode parameter to drawPatternForContainer.
3372         * svg/graphics/SVGImageForContainer.cpp:
3373         (WebCore::SVGImageForContainer::drawPattern): Pass blendMode to drawPatternForContainer call.
3374
3375 2014-01-20  Zalan Bujtas  <zalan@apple.com>
3376
3377         Subpixel layout: setSimpleLineLayoutEnabled() produces different layout when line position has CSS px fractions.
3378         https://bugs.webkit.org/show_bug.cgi?id=126892
3379
3380         Reviewed by Antti Koivisto.
3381
3382         SimpleLineLayout needs to copy normal linebox layout's subpixel rounding strategy to produce
3383         the same layout.
3384
3385         Covered by existing tests.
3386
3387         * rendering/SimpleLineLayoutFunctions.cpp:
3388         (WebCore::SimpleLineLayout::paintFlow):
3389
3390 2014-01-20  Gurpreet Kaur  <k.gurpreet@samsung.com>
3391
3392         Col width is not honored when dynamically updated and it would make table narrower
3393         https://bugs.webkit.org/show_bug.cgi?id=104711
3394
3395         Reviewed by Antti Koivisto.
3396
3397         Increasing the table width by increasing the colgroup width
3398         was working but decreasing the table width by decreasing the
3399         colgroup width is not working.
3400
3401         Test: fast/dom/HTMLTableColElement/resize-table-width-using-col-width.html
3402
3403         * rendering/RenderTableCol.cpp:
3404         (WebCore::RenderTableCol::styleDidChange):
3405         When colgroup width is defined table cell should adjust according to
3406         that. On decreasing colgroup width the cells maxPreferredLogicalWidth
3407         was still set to the earlier value. Setting the
3408         setPreferredLogicalWidthsDirty to true so that cells pref width is
3409         calculated again.
3410
3411 2014-01-20  Edit Balint  <edbalint@inf.u-szeged.hu>
3412
3413         [CoordinatedGraphics] Segmentation fault at  CoordinatedGraphicsScene::clearImageBackingContents
3414
3415         https://bugs.webkit.org/show_bug.cgi?id=125776
3416
3417         Reviewed by Csaba Osztrogonác.
3418
3419         Unexpected behavior occurs in some test cases which leads to segmentation fault.
3420
3421         * platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:
3422         (WebCore::CompositingCoordinator::removeImageBacking):
3423
3424 2014-01-20  Morten Stenshorne  <mstensho@opera.com>
3425
3426         Region based multicol: tall line causes taller multicol container than necessary
3427         https://bugs.webkit.org/show_bug.cgi?id=122550
3428
3429         Detect and report all column breaks, also when there's no pagination strut involved.
3430
3431         This may end up becoming the overall smallest space shortage in some cases,
3432         so we need to report it, to avoid column height over-stretching.
3433
3434         Reviewed by David Hyatt.
3435
3436         Test: fast/multicol/newmulticol/balance10.html
3437
3438         * rendering/RenderBlockFlow.cpp:
3439         (WebCore::RenderBlockFlow::adjustLinePositionForPagination):
3440
3441 2014-01-19  Carlos Garcia Campos  <cgarcia@igalia.com>
3442
3443         [GLIB] GVariant floating references are not correctly handled by GRefPtr
3444         https://bugs.webkit.org/show_bug.cgi?id=127246
3445
3446         Reviewed by Martin Robinson.
3447
3448         Do not adopt GVariant floating references, they will be converted
3449         to a full reference by GRefPtr.
3450
3451         * platform/gtk/PasteboardHelper.cpp:
3452         (WebCore::PasteboardHelper::fillSelectionData):
3453         (WebCore::PasteboardHelper::fillDataObjectFromDropData):
3454
3455 2014-01-19  Jinwoo Song  <jinwoo7.song@samsung.com>
3456
3457         Use unsigned type for the size of CSSParserValueList
3458         https://bugs.webkit.org/show_bug.cgi?id=127211
3459
3460         Reviewed by Andreas Kling.
3461
3462         * css/CSSParser.cpp: Changed variable type from int to unsigned.
3463         (WebCore::CSSParser::parseValue):
3464
3465 2014-01-19  Jaehun Lim  <ljaehun.lim@samsung.com>
3466
3467         Unreviewed build fix after r162293
3468
3469         Fix debug build.
3470
3471         [ 13%] Building CXX object Source/WebCore/CMakeFiles/WebCore.dir/html/parser/HTMLTreeBuilder.cpp.o
3472         /source/WebKit/Source/WebCore/html/parser/HTMLTreeBuilder.cpp: In member function ‘void WebCore::HTMLTreeBuilder::processStartTagForInTable(WebCore::AtomicHTMLToken*)’: