8be8d19bf0c546b7b3078b45f107108925c6d70d
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2014-01-25  Timothy Hatcher  <timothy@apple.com>
2
3         Remove dead code from the JSC profiler.
4
5         https://bugs.webkit.org/show_bug.cgi?id=127643
6
7         Reviewed by Mark Lam.
8
9         Passes existing tests in fast/profiler.
10
11         * bindings/js/ScriptProfile.cpp:
12         (WebCore::buildInspectorObjectFor): Remove visible.
13         * inspector/ScriptProfileNode.idl: Ditto.
14         * inspector/protocol/Profiler.json: Ditto.
15
16 2014-01-25  Sam Weinig  <sam@webkit.org>
17
18         Remove unused support for DRAGGABLE_REGION
19         https://bugs.webkit.org/show_bug.cgi?id=127642
20
21         Reviewed by Simon Fraser.
22
23         * Configurations/FeatureDefines.xcconfig:
24         * DerivedSources.make:
25         * WebCore.exp.in:
26         * css/CSSComputedStyleDeclaration.cpp:
27         (WebCore::ComputedStyleExtractor::propertyValue):
28         * css/CSSParser.cpp:
29         (WebCore::CSSParser::parseValue):
30         * css/CSSPropertyNames.in:
31         * css/CSSValueKeywords.in:
32         * css/StyleResolver.cpp:
33         (WebCore::StyleResolver::applyProperty):
34         * dom/Document.cpp:
35         (WebCore::Document::Document):
36         * dom/Document.h:
37         * page/Chrome.cpp:
38         * page/ChromeClient.h:
39         * page/FrameView.cpp:
40         (WebCore::FrameView::layout):
41         (WebCore::FrameView::paintContents):
42         * page/FrameView.h:
43         * rendering/RenderElement.cpp:
44         (WebCore::RenderElement::styleWillChange):
45         * rendering/RenderInline.cpp:
46         (WebCore::RenderInline::addAnnotatedRegions):
47         * rendering/RenderInline.h:
48         * rendering/RenderLayer.cpp:
49         (WebCore::RenderLayer::scrollTo):
50         (WebCore::RenderLayer::setHasHorizontalScrollbar):
51         (WebCore::RenderLayer::setHasVerticalScrollbar):
52         (WebCore::RenderLayer::updateScrollbarsAfterLayout):
53         * rendering/RenderListBox.cpp:
54         (WebCore::RenderListBox::setHasVerticalScrollbar):
55         * rendering/RenderObject.cpp:
56         (WebCore::RenderObject::addAnnotatedRegions):
57         * rendering/RenderObject.h:
58         (WebCore::AnnotatedRegionValue::operator==):
59         * rendering/style/RenderStyle.h:
60         * rendering/style/RenderStyleConstants.h:
61         * rendering/style/StyleRareNonInheritedData.cpp:
62         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
63         (WebCore::StyleRareNonInheritedData::operator==):
64         * rendering/style/StyleRareNonInheritedData.h:
65
66 2014-01-25  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
67
68         Clean up SVGPatternElement::collectPatternAttributes 
69         https://bugs.webkit.org/show_bug.cgi?id=127612
70
71         Reviewed by Andreas Kling.
72
73         This patch refactors SVGPatternElement::collectPatternAttributes() by extracting
74         the setPatternAttributes logic into a new function. This patch also changes the
75         while loop to be easier to understand and similar to collectGradientAttributes.
76
77         * svg/SVGPatternElement.cpp:
78         (WebCore::setPatternAttributes):
79         (WebCore::SVGPatternElement::collectPatternAttributes):
80
81 2014-01-25  Zalan Bujtas  <zalan@apple.com>
82
83         Subpixel layout: RenderInline is not centered when child RenderTextControl's innerTextRenderer needs bias centering.
84         https://bugs.webkit.org/show_bug.cgi?id=125659
85
86         Reviewed by Andreas Kling
87
88         layoutMod(logicalHeightDiff, 2) fails to bias round when subpixel layout is enabled. It sets
89         the denominator value to 2, which returns incorrect modulo result.
90         (subpixel off: 3px % 2 = 1 vs subpixel on: (3px * 64) -> 192 % 2 = 0)
91
92         Covered by existing tests.
93
94         * platform/LayoutUnit.h:
95         * rendering/RenderSearchField.cpp:
96         (WebCore::RenderSearchField::centerContainerIfNeeded):
97         * rendering/RenderTextControlSingleLine.cpp:
98         (WebCore::RenderTextControlSingleLine::centerRenderer):
99         (WebCore::RenderTextControlSingleLine::layout):
100         * rendering/RenderTextControlSingleLine.h:
101
102 2014-01-25  Sam Weinig  <sam@webkit.org>
103
104         Remove more unnecessary #if PLATFORM(IOS)s in ApplicationCacheStorage.cpp
105         https://bugs.webkit.org/show_bug.cgi?id=127635
106
107         Reviewed by Antti Koivisto.
108
109         * loader/appcache/ApplicationCacheStorage.cpp:
110         (WebCore::ApplicationCacheStorage::executeSQLCommand):
111         (WebCore::ApplicationCacheStorage::verifySchemaVersion):
112         (WebCore::ApplicationCacheStorage::executeStatement):
113         (WebCore::ApplicationCacheStorage::store):
114         (WebCore::ApplicationCacheStorage::ensureOriginRecord):
115         (WebCore::ApplicationCacheStorage::loadCache):
116
117 2014-01-25  Sam Weinig  <sam@webkit.org>
118
119         Remove some iOS #ifdefs by adding SQLiteDatabaseTracker to all the builds
120         https://bugs.webkit.org/show_bug.cgi?id=127632
121
122         Reviewed by Darin Adler.
123
124         Move the SQLiteDatabaseTracker and client from platform/sql/ios to platform/sql,
125         as there is nothing iOS specific about it. Then, un-#ifdef all its uses. For
126         ports that don't setup a client, this has no change in behavior.
127
128         * CMakeLists.txt:
129         * GNUmakefile.list.am:
130         * Modules/webdatabase/DatabaseBackendBase.cpp:
131         * WebCore.vcxproj/WebCore.vcxproj:
132         * WebCore.vcxproj/WebCore.vcxproj.filters:
133         * WebCore.xcodeproj/project.pbxproj:
134         * loader/appcache/ApplicationCacheStorage.cpp:
135         * platform/ScrollableArea.h:
136         (WebCore::ScrollableArea::sendWillRevealEdgeEventsIfNeeded):
137         * platform/sql/SQLiteDatabaseTracker.cpp: Copied from Source/WebCore/platform/sql/ios/SQLiteDatabaseTracker.cpp.
138         * platform/sql/SQLiteDatabaseTracker.h: Copied from Source/WebCore/platform/sql/ios/SQLiteDatabaseTracker.h.
139         * platform/sql/SQLiteDatabaseTrackerClient.h: Copied from Source/WebCore/platform/sql/ios/SQLiteDatabaseTrackerClient.h.
140         * platform/sql/ios: Removed.
141         * platform/sql/ios/SQLiteDatabaseTracker.cpp: Removed.
142         * platform/sql/ios/SQLiteDatabaseTracker.h: Removed.
143         * platform/sql/ios/SQLiteDatabaseTrackerClient.h: Removed.
144         * storage/StorageAreaSync.cpp:
145         (WebCore::StorageAreaSync::openDatabase):
146         (WebCore::StorageAreaSync::sync):
147         * storage/StorageTracker.cpp:
148
149 2014-01-25  Anders Carlsson  <andersca@apple.com>
150
151         Remove an unused FrameLoaderClient function
152         https://bugs.webkit.org/show_bug.cgi?id=127628
153
154         Reviewed by Andreas Kling.
155
156         All implementations of FrameLoaderClient::shouldStopLoadingForHistoryItem return true and this function
157         was only used by Chromium so we can get rid of it.
158
159         * loader/EmptyClients.h:
160         * loader/FrameLoaderClient.h:
161         * loader/HistoryController.cpp:
162         (WebCore::HistoryController::shouldStopLoadingForHistoryItem):
163
164 2014-01-25  Darin Adler  <darin@apple.com>
165
166         Call deprecatedCharacters instead of characters at more call sites
167         https://bugs.webkit.org/show_bug.cgi?id=127631
168
169         Reviewed by Sam Weinig.
170
171         * bindings/objc/WebScriptObject.mm:
172         (+[WebScriptObject _convertValueToObjcValue:JSC::originRootObject:rootObject:]):
173         * editing/CompositeEditCommand.cpp:
174         (WebCore::containsOnlyWhitespace):
175         * editing/TypingCommand.cpp:
176         (WebCore::TypingCommand::insertText):
177         * editing/VisibleUnits.cpp:
178         (WebCore::startOfParagraph):
179         (WebCore::endOfParagraph):
180         * html/parser/HTMLParserIdioms.cpp:
181         (WebCore::stripLeadingAndTrailingHTMLSpaces):
182         (WebCore::parseHTMLNonNegativeInteger):
183         * inspector/InspectorStyleSheet.cpp:
184         (WebCore::InspectorStyle::newLineAndWhitespaceDelimiters):
185         * inspector/InspectorStyleTextEditor.cpp:
186         (WebCore::InspectorStyleTextEditor::insertProperty):
187         (WebCore::InspectorStyleTextEditor::internalReplaceProperty):
188         * platform/Length.cpp:
189         (WebCore::newCoordsArray):
190         * platform/LinkHash.cpp:
191         (WebCore::visitedLinkHash):
192         * platform/graphics/Color.cpp:
193         (WebCore::Color::parseHexColor):
194         (WebCore::Color::Color):
195         * platform/graphics/TextRun.h:
196         (WebCore::TextRun::TextRun):
197         * platform/text/TextEncodingRegistry.cpp:
198         (WebCore::atomicCanonicalTextEncodingName):
199         * rendering/RenderBlock.cpp:
200         (WebCore::RenderBlock::constructTextRun):
201         * rendering/RenderCombineText.cpp:
202         (WebCore::RenderCombineText::width):
203         * svg/SVGFontElement.cpp:
204         (WebCore::SVGFontElement::registerLigaturesInGlyphCache):
205         * xml/XPathFunctions.cpp:
206         (WebCore::XPath::FunId::evaluate):
207         Use the new name.
208
209 2014-01-25  Darin Adler  <darin@apple.com>
210
211         Get rid of ICU_UNICODE and WCHAR_UNICODE remnants
212         https://bugs.webkit.org/show_bug.cgi?id=127623
213
214         Reviewed by Anders Carlsson.
215
216         * CMakeLists.txt: Removed SmartReplaceICU.cpp.
217         * GNUmakefile.list.am: Ditto.
218         * PlatformEfl.cmake: Ditto.
219         * PlatformGTK.cmake: Ditto.
220
221         * editing/FrameSelection.cpp:
222         (WebCore::FrameSelection::modifyMovingRight): Ditto.
223         (WebCore::FrameSelection::modifyMovingLeft): Ditto.
224
225         * editing/SmartReplace.cpp: Moved code here from SmartReplaceICU,
226         since we always support ICU now. Added some FIXME comments about
227         bugs and mistakes I spotted in the code as I was moving it.
228         * editing/SmartReplaceICU.cpp: Removed.
229
230         * editing/TextIterator.cpp: Removed unneeded checks.
231         * platform/ThreadGlobalData.cpp:
232         (WebCore::ThreadGlobalData::ThreadGlobalData): Ditto.
233         (WebCore::ThreadGlobalData::destroy): Ditto.
234         * platform/ThreadGlobalData.h: Ditto.
235         * platform/URL.cpp:
236         (WebCore::appendEncodedHostname): Ditto.
237         * platform/graphics/SurrogatePairAwareTextIterator.cpp: Ditto.
238         Also removed unneeded "using namespace".
239         * platform/text/TextCodecICU.cpp: Ditto.
240         * platform/text/TextEncoding.cpp:
241         (WebCore::TextEncoding::encode): Ditto.
242         * platform/text/TextEncodingRegistry.cpp:
243         (WebCore::extendTextCodecMaps): Ditto.
244
245 2014-01-25  Darin Adler  <darin@apple.com>
246
247         Get rid of UnicodeRange.h/cpp, using ICU instead
248         https://bugs.webkit.org/show_bug.cgi?id=127622
249
250         Reviewed by Anders Carlsson.
251
252         * CMakeLists.txt: Remove UnicodeRange.h/cpp.
253         * GNUmakefile.list.am: Ditto.
254         * WebCore.vcxproj/WebCore.vcxproj: Ditto.
255         * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
256         * WebCore.xcodeproj/project.pbxproj: Ditto.
257
258         * platform/graphics/win/FontCacheWin.cpp:
259         (WebCore::FontCache::systemFallbackForCharacters): To check if a character has
260         multiple code pages, use UCHAR_UNIFIED_IDEOGRAPH instead of cRangeSetCJK.
261         * platform/graphics/wince/FontCacheWinCE.cpp:
262         (WebCore::FontCache::systemFallbackForCharacters): Ditto. Also, to check if a
263         character is in the Thai block, use UBLOCK_THAI.
264
265         * platform/graphics/wince/FontPlatformData.cpp: Removed include of UnicodeRange.h.
266
267         * platform/text/UnicodeRange.cpp: Removed.
268         * platform/text/UnicodeRange.h: Removed.
269
270         * rendering/svg/SVGTextLayoutEngineBaseline.cpp:
271         (WebCore::SVGTextLayoutEngineBaseline::calculateGlyphOrientationAngle): To figure
272         out if a character is full width, use UCHAR_EAST_ASIAN_WIDTH, instead of hard-coding
273         "not Latin or Arabic" as the rule.
274
275 2014-01-25  Tim Horton  <timothy_horton@apple.com>
276
277         Remove an unnecessary platform #if in BitmapImage(CG)::checkForSolidColor()
278         https://bugs.webkit.org/show_bug.cgi?id=127610
279
280         Reviewed by Simon Fraser.
281
282         * platform/graphics/cg/BitmapImageCG.cpp:
283         (WebCore::BitmapImage::checkForSolidColor):
284         Over time, the two sides of this #if !PLATFORM(IOS) converged. Remove the #if
285         and merge the code. We explicitly use kCGBitmapByteOrder32Big to be correct everywhere.
286
287 2014-01-25  Tim Horton  <timothy_horton@apple.com>
288
289         [cg] Look in the PNG dictionary for image duration information
290         https://bugs.webkit.org/show_bug.cgi?id=127611
291         <rdar://problem/15408643>
292
293         Reviewed by Simon Fraser.
294
295         We should look in the PNG properties dictionary for frame duration and loop count data.
296
297         * platform/graphics/cg/ImageSourceCG.cpp:
298         (WebCore::ImageSource::repetitionCount):
299         Mush repetitionCount a bit more to make it easier to read (early returns, etc.)
300         Also, look in the PNG properties dictionary for a loop count.
301
302         (WebCore::ImageSource::frameDurationAtIndex):
303         Look in the PNG properties dictionary for delay time.
304         Get rid of WebCoreCGImagePropertyGIFUnclampedDelayTime; it hasn't
305         been needed since Snow Leopard.
306
307 2014-01-25  Anders Carlsson  <andersca@apple.com>
308
309         Remove atomicIncrement/atomicDecrement
310         https://bugs.webkit.org/show_bug.cgi?id=127625
311
312         Reviewed by Andreas Kling.
313
314         Replace atomicIncrement/atomicDecrement with std::atomic.
315
316         * Modules/webaudio/AudioContext.cpp:
317         (WebCore::AudioContext::incrementActiveSourceCount):
318         (WebCore::AudioContext::decrementActiveSourceCount):
319         * Modules/webaudio/AudioContext.h:
320         * Modules/webaudio/AudioNode.cpp:
321         (WebCore::AudioNode::~AudioNode):
322         (WebCore::AudioNode::ref):
323         (WebCore::AudioNode::finishDeref):
324         * Modules/webaudio/AudioNode.h:
325         * Modules/webdatabase/OriginLock.h:
326
327 2014-01-25  Alex Christensen  <achristensen@webkit.org>
328
329         Unreviewed build fix for WinCairo.
330
331         * platform/network/curl/CurlDownload.h:
332         Included wtf/Threading.h for ThreadIdentifier definition.
333
334 2014-01-25  Anders Carlsson  <andersca@apple.com>
335
336         Modernize HashTable threading code
337         https://bugs.webkit.org/show_bug.cgi?id=127621
338
339         Reviewed by Darin Adler.
340
341         Explicitly include headers that used to be brought in by HashTable.h
342
343         * platform/DragData.h:
344         Change a Windows-specific typedef to avoid having to include WindDef.h from a header.
345
346         * platform/audio/AudioSession.h:
347         * platform/network/cf/SocketStreamHandle.h:
348
349 2014-01-25  Zan Dobersek  <zdobersek@igalia.com>
350
351         Move CSSGroupingRule, CSSStyleSheet, ElementRuleCollector to std::unique_ptr
352         https://bugs.webkit.org/show_bug.cgi?id=127575
353
354         Reviewed by Andreas Kling.
355
356         Use std::unique_ptr and std::make_unique in place of OwnPtr and adoptPtr
357         in the CSSGroupingRule, CSSStyleSheet and ElementRuleCollector classes.
358
359         * css/CSSFunctionValue.cpp: Remove the unnecessary PassOwnPtr header inclusion.
360         * css/CSSGroupingRule.cpp:
361         (WebCore::CSSGroupingRule::cssRules):
362         * css/CSSGroupingRule.h:
363         * css/CSSStyleSheet.cpp:
364         (WebCore::CSSStyleSheet::cssRules):
365         * css/CSSStyleSheet.h:
366         * css/ElementRuleCollector.cpp:
367         (WebCore::ElementRuleCollector::addMatchedRule):
368         * css/ElementRuleCollector.h:
369
370 2014-01-25  Zan Dobersek  <zdobersek@igalia.com>
371
372         Move MediaQueryMatcher, SelectorFilter to std::unique_ptr
373         https://bugs.webkit.org/show_bug.cgi?id=127574
374
375         Reviewed by Andreas Kling.
376
377         Replace the use of OwnPtr and adoptPtr with std::unique_ptr and std::make_unique
378         in the MediaQueryMatcher and SelectorFilter classes.
379
380         * css/MediaQueryMatcher.cpp:
381         (WebCore::MediaQueryMatcher::prepareEvaluator):
382         (WebCore::MediaQueryMatcher::evaluate):
383         (WebCore::MediaQueryMatcher::addListener):
384         (WebCore::MediaQueryMatcher::styleResolverChanged):
385         * css/MediaQueryMatcher.h:
386         * css/SelectorFilter.cpp:
387         (WebCore::SelectorFilter::popParentStackFrame):
388         (WebCore::SelectorFilter::setupParentStack):
389         * css/SelectorFilter.h:
390
391 2014-01-25  Zan Dobersek  <zdobersek@igalia.com>
392
393         Move PropertySetCSSStyleDeclaration, WebKitCSSKeyframesRule to std::unique_ptr
394         https://bugs.webkit.org/show_bug.cgi?id=127572
395
396         Reviewed by Andreas Kling.
397
398         Switch the PropertySetCSSStyleDeclaration and WebKitCSSKeyframesRule classes from using
399         OwnPtr and adoptPtr to using std::unique_ptr and std::make_unique.
400
401         * css/PropertySetCSSStyleDeclaration.cpp:
402         (WebCore::PropertySetCSSStyleDeclaration::cloneAndCacheForCSSOM):
403         (WebCore::StyleRuleCSSStyleDeclaration::didMutate):
404         (WebCore::InlineCSSStyleDeclaration::didMutate):
405         * css/PropertySetCSSStyleDeclaration.h:
406         * css/WebKitCSSKeyframesRule.cpp:
407         (WebCore::WebKitCSSKeyframesRule::cssRules):
408         * css/WebKitCSSKeyframesRule.h:
409
410 2014-01-25  Zan Dobersek  <zdobersek@igalia.com>
411
412         Move StyleProperties, StyleResolver to std::unique_ptr
413         https://bugs.webkit.org/show_bug.cgi?id=127570
414
415         Reviewed by Andreas Kling.
416
417         Move the StyleProperties and StyleResolver classes from using OwnPtr and adoptPtr
418         to using std::unique_ptr and std::make_unique.
419
420         * css/StyleInvalidationAnalysis.h: Remove the PassOwnPtr.h header inclusion.
421         * css/StyleProperties.cpp:
422         (WebCore::MutableStyleProperties::ensureCSSStyleDeclaration):
423         (WebCore::MutableStyleProperties::ensureInlineCSSStyleDeclaration):
424         * css/StyleProperties.h:
425         * css/StyleResolver.cpp:
426         (WebCore::StyleResolver::StyleResolver):
427         (WebCore::StyleResolver::addViewportDependentMediaQueryResult):
428         * css/StyleResolver.h:
429         * css/StyleScopeResolver.h:
430
431 2014-01-25  Zan Dobersek  <zdobersek@igalia.com>
432
433         Move CSSFontFace, CSSFontSelector to std::unique_ptr
434         https://bugs.webkit.org/show_bug.cgi?id=127569
435
436         Reviewed by Andreas Kling.
437
438         Move the CSSFontFace and CSSFontSelector classes from using OwnPtr, PassOwnPtr and adoptPtr
439         to using std::unique_ptr, move semantics and std::make_unique.
440
441         * css/CSSFontFace.cpp:
442         (WebCore::CSSFontFace::addSource):
443         * css/CSSFontFace.h:
444         * css/CSSFontSelector.cpp:
445         (WebCore::CSSFontSelector::addFontFaceRule):
446         (WebCore::CSSFontSelector::getFontFace):
447         * css/CSSFontSelector.h:
448
449 2014-01-24  Joseph Pecoraro  <pecoraro@apple.com>
450
451         Web Inspector: Move InspectorRuntimeAgent into JavaScriptCore
452         https://bugs.webkit.org/show_bug.cgi?id=127605
453
454         Reviewed by Timothy Hatcher.
455
456         Covered by existing tests. No change in functionality.
457
458         * CMakeLists.txt:
459         * GNUmakefile.list.am:
460         * WebCore.vcxproj/WebCore.vcxproj:
461         * WebCore.vcxproj/WebCore.vcxproj.filters:
462         * WebCore.xcodeproj/project.pbxproj:
463         * inspector/InspectorAllInOne.cpp:
464         Remove WebCore InspectorRuntimeAgent.
465
466         * ForwardingHeaders/inspector/agents/InspectorRuntimeAgent.h: Added.
467         Add JavaScriptCore InspectorRuntimeAgent.
468
469         * inspector/InspectorController.cpp:
470         (WebCore::InspectorController::InspectorController):
471         * inspector/WorkerInspectorController.h:
472         * inspector/WorkerInspectorController.cpp:
473         (WebCore::WorkerInspectorController::WorkerInspectorController):
474         New constructors for the runtime agent.
475
476         * inspector/PageRuntimeAgent.h:
477         * inspector/PageRuntimeAgent.cpp:
478         (WebCore::PageRuntimeAgent::PageRuntimeAgent):
479         (WebCore::PageRuntimeAgent::enable):
480         (WebCore::PageRuntimeAgent::disable):
481         (WebCore::PageRuntimeAgent::didCreateMainWorldContext):
482         (WebCore::PageRuntimeAgent::didCreateIsolatedContext):
483         (WebCore::PageRuntimeAgent::globalVM):
484         Modernize and implement globalVM.
485
486         * inspector/WorkerRuntimeAgent.h:
487         * inspector/WorkerRuntimeAgent.cpp:
488         (WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
489         (WebCore::WorkerRuntimeAgent::injectedScriptForEval):
490         (WebCore::WorkerRuntimeAgent::globalVM):
491         Modernize and implement globalVM.
492
493 2014-01-25  Diego Pino Garcia  <dpino@igalia.com>
494
495         [GTK] Add parameters from 'DOM Object Model Core' spec and 'DOM CSS' spec that can be NULL
496
497         https://bugs.webkit.org/show_bug.cgi?id=117536
498
499         Reviewed by Xan Lopez.
500
501         * bindings/scripts/CodeGeneratorGObject.pm:
502         (ParamCanBeNull): Add new pairs (function, parameter) that can be NULL
503
504 2014-01-25  Anders Carlsson  <andersca@apple.com>
505
506         Get rid of BackForwardController::isActive()
507         https://bugs.webkit.org/show_bug.cgi?id=127604
508
509         Reviewed by Sam Weinig.
510
511         BackForwardController::isActive() used to mean "my page maintains a back forward
512         list that has zero capacity". Move that logic into WebKit instead, namely the
513         WebFrameLoaderClient::canCachePage function so we can simplify WebCore.
514
515         * history/BackForwardClient.h:
516         * history/BackForwardController.cpp:
517         * history/BackForwardController.h:
518         * history/BackForwardList.h:
519         * history/PageCache.cpp:
520         (WebCore::logCanCachePageDecision):
521         (WebCore::PageCache::canCache):
522
523 2014-01-25  Antti Koivisto  <antti@apple.com>
524
525         REGRESSION(r162744): wsj.com paints white
526         https://bugs.webkit.org/show_bug.cgi?id=127619
527
528         Reviewed by Sam Weinig.
529
530         Test: fast/css/stylesheet-layout-with-pending-paint.html
531
532         * dom/Document.cpp:
533         (WebCore::Document::styleResolverChanged):
534         
535             Ensure we switch out from IgnoreLayoutWithPendingSheets state after stylesheet loads complete.
536
537 2014-01-24  Dan Bernstein  <mitz@apple.com>
538
539         Reverted r162760. It broke more things.
540
541         * WebCore.exp.in:
542
543 2014-01-24  Dan Bernstein  <mitz@apple.com>
544
545         Try to fix some 32-bit builds.
546
547         * WebCore.exp.in:
548
549 2014-01-24  Jinwoo Song  <jinwoo7.song@samsung.com>
550
551         [EFL] Replace usage of DEFINE_STATIC_LOCAL with NeverDestroyed in WebCore/platform/efl
552         https://bugs.webkit.org/show_bug.cgi?id=127607
553
554         Reviewed by Anders Carlsson.
555
556         * platform/efl/EflKeyboardUtilities.cpp:
557         (WebCore::keyMap): Use NeverDestroyed instead of DEFINE_STATIC_LOCAL.
558         (WebCore::windowsKeyMap): Ditto.
559         (WebCore::keyDownCommandsMap): Ditto.
560         (WebCore::keyPressCommandsMap): Ditto.
561         * platform/efl/GamepadsEfl.cpp:
562         (WebCore::sampleGamepads): Ditto.
563         * platform/efl/RenderThemeEfl.cpp:
564         (WebCore::RenderThemeEfl::systemFont): Do not use unnecessary DEFINE_STATIC_LOCAL.
565
566 2014-01-23  Joseph Pecoraro  <pecoraro@apple.com>
567
568         Move JavaScriptCallFrame and ScriptDebugServer into JavaScriptCore for inspector
569         https://bugs.webkit.org/show_bug.cgi?id=127543
570
571         Reviewed by Geoffrey Garen.
572
573         Covered by existing tests.
574
575         * ForwardingHeaders/inspector/ScriptDebugServer.h: Added.
576         * GNUmakefile.list.am:
577         * UseJSC.cmake:
578         * WebCore.vcxproj/WebCore.vcxproj:
579         * WebCore.vcxproj/WebCore.vcxproj.filters:
580         * WebCore.xcodeproj/project.pbxproj:
581         * bindings/js/JSBindingsAllInOne.cpp:
582         * inspector/JavaScriptCallFrame.idl: Removed.
583         Update builds now that ScriptDebugServer moved to JavaScriptCore.
584
585         * bindings/js/PageScriptDebugServer.h:
586         * bindings/js/PageScriptDebugServer.cpp:
587         (WebCore::PageScriptDebugServer::runEventLoopWhilePaused):
588         (WebCore::PageScriptDebugServer::isContentScript):
589         (WebCore::PageScriptDebugServer::reportException):
590         * bindings/js/WorkerScriptDebugServer.h:
591         * bindings/js/WorkerScriptDebugServer.cpp:
592         (WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
593         (WebCore::WorkerScriptDebugServer::reportException):
594         Handle ScriptDebugServer functionality depending on WebCore knowledge.
595
596         * inspector/InspectorDebuggerAgent.h:
597         * inspector/InspectorDebuggerAgent.cpp:
598         (WebCore::InspectorDebuggerAgent::breakpointActionSound):
599         Handle ScriptDebugServer functionality that depended on WebCore knowledge.
600         This will eventually be written in a non-WebCore specific way.
601
602         * inspector/InspectorRuntimeAgent.cpp:
603         * inspector/InspectorRuntimeAgent.h:
604         Update ScriptDebugServer type now that it is in namespace Inspector.
605
606         * workers/WorkerGlobalScope.h:
607         Make addConsoleMessage public again so the inspector can call it.
608
609         * inspector/PageDebuggerAgent.cpp:
610         (WebCore::PageDebuggerAgent::breakpointActionLog):
611         * inspector/PageDebuggerAgent.h:
612         * inspector/WorkerDebuggerAgent.cpp:
613         (WebCore::WorkerDebuggerAgent::breakpointActionLog):
614         * inspector/WorkerDebuggerAgent.h:
615         Let each of these handle console logs in their own way. Both of these
616         eventually go through the PageConsole and log through the InspectorConsoleAgent
617         and ChromeClient.
618
619 2014-01-24  Brent Fulgham  <bfulgham@apple.com>
620
621         Improve latching behavior for wheel events
622         https://bugs.webkit.org/show_bug.cgi?id=127386
623         <rdar://problem/12176858>
624
625         Reviewed by Simon Fraser.
626
627         * page/scrolling/ScrollingTree.cpp:
628         (WebCore::ScrollingTree::ScrollingTree): Initialize new values used for tracking
629         scroll latching state.
630         (WebCore::ScrollingTree::shouldHandleWheelEventSynchronously): Check for an existing
631         latched node and stay in fast scrolling mode if possible.
632         (WebCore::ScrollingTree::removeDestroyedNodes): Clear latched node if it's being removed.
633         (WebCore::ScrollingTree::latchedNode): Added
634         (WebCore::ScrollingTree::setLatchedNode): Added
635         (WebCore::ScrollingTree::clearLatchedNode): Added
636         * page/scrolling/ScrollingTree.h:
637         (WebCore::ScrollingTree::hasLatchedNode): Added
638         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
639         (WebCore::shouldConsiderLatching): Added
640         (WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent): Determine latching state
641         based on wheel event state and position of mouse pointer in the document.
642
643 2014-01-24  Anders Carlsson  <andersca@apple.com>
644
645         Another attempted build fix.
646
647         Use wildcards in the the std::duration symbol.
648
649         * WebCore.exp.in:
650
651 2014-01-24  Simon Fraser  <simon.fraser@apple.com>
652
653         Start using the RemoteScrollingCoordinatorProxy on iOS
654         https://bugs.webkit.org/show_bug.cgi?id=127598
655
656         Reviewed by Tim Horton.
657
658         Add a scrollPositionChangedViaDelegatedScrolling() function to
659         ScrollingTree, allowing the ScrollingTree to be informed about
660         external sources of scrolling.
661         
662         Also add a convenience getter for nodes, nodeForID().
663
664         * WebCore.exp.in:
665         * page/scrolling/ScrollingTree.cpp:
666         (WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling):
667         (WebCore::ScrollingTree::nodeForID):
668         * page/scrolling/ScrollingTree.h:
669         * rendering/RenderLayerCompositor.cpp:
670         (WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers):
671         To avoid assertions on iOS, bail from iOS WK1 fixed position code if
672         we have a ScrollingCoordinator.
673         (WebCore::RenderLayerCompositor::unregisterAllViewportConstrainedLayers):
674         Ditto.
675
676 2014-01-24  Simon Fraser  <simon.fraser@apple.com>
677
678         Add typesafe casts for ScrollingTreeNode classes
679         https://bugs.webkit.org/show_bug.cgi?id=127597
680
681         Reviewed by Tim Horton.
682
683         Add a ScrollingNodeType member to ScrollingTreeNodes and
684         use it for type-safe casting.
685
686         * page/scrolling/ScrollingTreeNode.cpp:
687         (WebCore::ScrollingTreeNode::ScrollingTreeNode):
688         * page/scrolling/ScrollingTreeNode.h:
689         (WebCore::ScrollingTreeNode::nodeType):
690         (WebCore::ScrollingTreeNode::scrollingNodeID):
691         * page/scrolling/ScrollingTreeScrollingNode.cpp:
692         (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
693         * page/scrolling/ScrollingTreeScrollingNode.h:
694         * page/scrolling/mac/ScrollingTreeFixedNode.h:
695         * page/scrolling/mac/ScrollingTreeFixedNode.mm:
696         (WebCore::ScrollingTreeFixedNode::ScrollingTreeFixedNode):
697         * page/scrolling/mac/ScrollingTreeStickyNode.h:
698         * page/scrolling/mac/ScrollingTreeStickyNode.mm:
699         (WebCore::ScrollingTreeStickyNode::ScrollingTreeStickyNode):
700
701 2014-01-24  Anders Carlsson  <andersca@apple.com>
702
703         Remove back/forward list related functions from Page
704         https://bugs.webkit.org/show_bug.cgi?id=127596
705
706         Reviewed by Andreas Kling.
707
708         * WebCore.exp.in:
709         * history/BackForwardController.cpp:
710         (WebCore::BackForwardController::canGoBackOrForward):
711         (WebCore::BackForwardController::goBackOrForward):
712         (WebCore::BackForwardController::goBack):
713         (WebCore::BackForwardController::goForward):
714         (WebCore::BackForwardController::count):
715         * page/EventHandler.cpp:
716         (WebCore::EventHandler::defaultBackspaceEventHandler):
717         * page/Page.cpp:
718         * page/Page.h:
719
720 2014-01-24  Antti Koivisto  <antti@apple.com>
721
722         Update style asynchronously after style sheet load
723         https://bugs.webkit.org/show_bug.cgi?id=127563
724
725         Reviewed by Andreas Kling.
726         
727         Since we don't attach synchronously we don't need to recalc style synchronously either.
728
729         * dom/Document.cpp:
730         (WebCore::Document::didRemoveAllPendingStylesheet):
731
732 2014-01-24  Zalan Bujtas  <zalan@apple.com>
733
734         Subpixel layout: Default style of input type=checkbox/radio (0.5ex) adds 1px extra margin on both left and right.
735         https://bugs.webkit.org/show_bug.cgi?id=125728
736
737         Reviewed by Simon Fraser.
738
739         Using the 0.5ex value to set checkbox/radio left and right margins is a long-standing
740         (khtml) behavior. While it indicates dynamic behavior, in order to get the margins changed,
741         the widget's font size needs to be set, which is rather rare for such input types.
742         It also results in odd layout, where the checkbox's indentation may seem to change randomly.
743
744         '<input style="font-size: 30px;" type="checkbox">foo' changes neither the checkbox
745         nor the text size, but it indents the line by about 15px.
746
747         Other browsers (FF, Opera with Presto) disagree and they set static margins values.
748         2px is the current default computed value.
749
750         * css/html.css:
751         (input[type="radio"], input[type="checkbox"]):
752
753 2014-01-24  Oliver Hunt  <oliver@apple.com>
754
755         Put functions need to take a base object and a this value, and perform type checks on |this|
756         https://bugs.webkit.org/show_bug.cgi?id=127594
757
758         Reviewed by Geoffrey Garen.
759
760         Update bindings generator to emit setters with correct type, and perform
761         type checks on |this|, instead of the baseObject.
762
763         Test: js/dom/dom-as-prototype-assignment-exception.html
764
765         * bindings/scripts/CodeGeneratorJS.pm:
766         (GenerateHeader):
767         (GenerateImplementation):
768         (GenerateHashTable):
769         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
770         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
771         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
772         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
773         * bindings/scripts/test/JS/JSTestException.cpp:
774         * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
775         * bindings/scripts/test/JS/JSTestInterface.cpp:
776         (WebCore::setJSTestInterfaceConstructorImplementsStaticAttr):
777         (WebCore::setJSTestInterfaceImplementsStr2):
778         (WebCore::setJSTestInterfaceImplementsStr3):
779         (WebCore::setJSTestInterfaceImplementsNode):
780         (WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
781         (WebCore::setJSTestInterfaceSupplementalStr2):
782         (WebCore::setJSTestInterfaceSupplementalStr3):
783         (WebCore::setJSTestInterfaceSupplementalNode):
784         * bindings/scripts/test/JS/JSTestInterface.h:
785         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
786         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
787         * bindings/scripts/test/JS/JSTestNode.cpp:
788         * bindings/scripts/test/JS/JSTestObj.cpp:
789         (WebCore::setJSTestObjConstructorStaticStringAttr):
790         (WebCore::setJSTestObjTestSubObjEnabledBySettingConstructor):
791         (WebCore::setJSTestObjEnumAttr):
792         (WebCore::setJSTestObjByteAttr):
793         (WebCore::setJSTestObjOctetAttr):
794         (WebCore::setJSTestObjShortAttr):
795         (WebCore::setJSTestObjUnsignedShortAttr):
796         (WebCore::setJSTestObjLongAttr):
797         (WebCore::setJSTestObjLongLongAttr):
798         (WebCore::setJSTestObjUnsignedLongLongAttr):
799         (WebCore::setJSTestObjStringAttr):
800         (WebCore::setJSTestObjTestObjAttr):
801         (WebCore::setJSTestObjXMLObjAttr):
802         (WebCore::setJSTestObjCreate):
803         (WebCore::setJSTestObjReflectedStringAttr):
804         (WebCore::setJSTestObjReflectedIntegralAttr):
805         (WebCore::setJSTestObjReflectedUnsignedIntegralAttr):
806         (WebCore::setJSTestObjReflectedBooleanAttr):
807         (WebCore::setJSTestObjReflectedURLAttr):
808         (WebCore::setJSTestObjReflectedCustomIntegralAttr):
809         (WebCore::setJSTestObjReflectedCustomBooleanAttr):
810         (WebCore::setJSTestObjReflectedCustomURLAttr):
811         (WebCore::setJSTestObjTypedArrayAttr):
812         (WebCore::setJSTestObjAttrWithGetterException):
813         (WebCore::setJSTestObjAttrWithSetterException):
814         (WebCore::setJSTestObjStringAttrWithGetterException):
815         (WebCore::setJSTestObjStringAttrWithSetterException):
816         (WebCore::setJSTestObjCustomAttr):
817         (WebCore::setJSTestObjWithScriptStateAttribute):
818         (WebCore::setJSTestObjWithScriptExecutionContextAttribute):
819         (WebCore::setJSTestObjWithScriptStateAttributeRaises):
820         (WebCore::setJSTestObjWithScriptExecutionContextAttributeRaises):
821         (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttribute):
822         (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
823         (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
824         (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
825         (WebCore::setJSTestObjConditionalAttr1):
826         (WebCore::setJSTestObjConditionalAttr2):
827         (WebCore::setJSTestObjConditionalAttr3):
828         (WebCore::setJSTestObjConditionalAttr4Constructor):
829         (WebCore::setJSTestObjConditionalAttr5Constructor):
830         (WebCore::setJSTestObjConditionalAttr6Constructor):
831         (WebCore::setJSTestObjAnyAttribute):
832         (WebCore::setJSTestObjMutablePoint):
833         (WebCore::setJSTestObjImmutablePoint):
834         (WebCore::setJSTestObjStrawberry):
835         (WebCore::setJSTestObjStrictFloat):
836         (WebCore::setJSTestObjId):
837         (WebCore::setJSTestObjReplaceableAttribute):
838         (WebCore::setJSTestObjNullableLongSettableAttribute):
839         (WebCore::setJSTestObjNullableStringValue):
840         (WebCore::setJSTestObjAttributeWithReservedEnumType):
841         * bindings/scripts/test/JS/JSTestObj.h:
842         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
843         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
844         (WebCore::setJSTestSerializedScriptValueInterfaceValue):
845         (WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):
846         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
847         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
848         (WebCore::setJSTestTypedefsUnsignedLongLongAttr):
849         (WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
850         (WebCore::setJSTestTypedefsAttrWithGetterException):
851         (WebCore::setJSTestTypedefsAttrWithSetterException):
852         (WebCore::setJSTestTypedefsStringAttrWithGetterException):
853         (WebCore::setJSTestTypedefsStringAttrWithSetterException):
854         * bindings/scripts/test/JS/JSTestTypedefs.h:
855         * bindings/scripts/test/JS/JSattribute.cpp:
856         * bindings/scripts/test/JS/JSreadonly.cpp:
857
858 2014-01-24  Oliver Hunt  <oliver@apple.com>
859
860         Generic JSObject::put should handle static properties in the classinfo hierarchy
861         https://bugs.webkit.org/show_bug.cgi?id=127523
862
863         Reviewed by Geoffrey Garen.
864
865         Update the bindings generator to emit the flag indicating the presence
866         of setters, and remove the many (now unnecessary) put overrides.
867         Tested with run-jsc-benchmarks and shows neutral performance. A few of the
868         micro benchmarks actually get a significant performance increase which
869         is nice.
870
871         * bindings/js/JSDOMWindowCustom.cpp:
872         (WebCore::JSDOMWindow::put):
873             We still need a custom call to lookupPut here in order
874             to get the magic security semantics of the window object.
875         * bindings/scripts/CodeGeneratorJS.pm:
876         (hashTableAccessor):
877         (prototypeHashTableAccessor):
878         (constructorHashTableAccessor):
879         (GenerateImplementation):
880         (GenerateHashTable):
881         (GenerateConstructorHelperMethods):
882
883         * bindings/js/JSDOMWindowCustom.cpp:
884         (WebCore::JSDOMWindow::put):
885         * bindings/scripts/CodeGeneratorJS.pm:
886         (hashTableAccessor):
887         (prototypeHashTableAccessor):
888         (constructorHashTableAccessor):
889         (InstanceOverridesPutImplementation):
890         (InstanceOverridesPutDeclaration):
891         (GenerateHeader):
892         (GenerateImplementation):
893         (GenerateHashTable):
894         (GenerateConstructorHelperMethods):
895         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
896         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
897         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
898         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
899         * bindings/scripts/test/JS/JSTestException.cpp:
900         * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
901         * bindings/scripts/test/JS/JSTestInterface.cpp:
902         (WebCore::JSTestInterface::put):
903         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
904         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
905         * bindings/scripts/test/JS/JSTestNode.cpp:
906         * bindings/scripts/test/JS/JSTestObj.cpp:
907         * bindings/scripts/test/JS/JSTestObj.h:
908         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
909         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
910         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
911         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
912         * bindings/scripts/test/JS/JSTestTypedefs.h:
913         * bindings/scripts/test/JS/JSattribute.cpp:
914         * bindings/scripts/test/JS/JSreadonly.cpp:
915         * html/canvas/WebGLRenderingContext.idl:
916           Remove bogus attribute, as it has never been in the spec and should not
917           have been added.
918
919 2014-01-24  Commit Queue  <commit-queue@webkit.org>
920
921         Unreviewed, rolling out r162713.
922         http://trac.webkit.org/changeset/162713
923         https://bugs.webkit.org/show_bug.cgi?id=127593
924
925         broke media/network-no-source-const-shadow (Requested by
926         thorton on #webkit).
927
928         * bindings/js/JSDOMWindowCustom.cpp:
929         (WebCore::JSDOMWindow::put):
930         * bindings/scripts/CodeGeneratorJS.pm:
931         (hashTableAccessor):
932         (prototypeHashTableAccessor):
933         (constructorHashTableAccessor):
934         (GenerateHeader):
935         (GenerateImplementation):
936         (GenerateHashTable):
937         (GenerateConstructorHelperMethods):
938         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
939         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
940         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
941         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
942         * bindings/scripts/test/JS/JSTestException.cpp:
943         * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
944         * bindings/scripts/test/JS/JSTestInterface.cpp:
945         (WebCore::JSTestInterface::put):
946         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
947         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
948         * bindings/scripts/test/JS/JSTestNode.cpp:
949         * bindings/scripts/test/JS/JSTestObj.cpp:
950         (WebCore::JSTestObj::put):
951         * bindings/scripts/test/JS/JSTestObj.h:
952         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
953         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
954         (WebCore::JSTestSerializedScriptValueInterface::put):
955         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
956         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
957         (WebCore::JSTestTypedefs::put):
958         * bindings/scripts/test/JS/JSTestTypedefs.h:
959         * bindings/scripts/test/JS/JSattribute.cpp:
960         * bindings/scripts/test/JS/JSreadonly.cpp:
961         * html/canvas/WebGLRenderingContext.idl:
962
963 2014-01-24  Zalan Bujtas  <zalan@apple.com>
964
965         Replace LayoutUnit() calls to a more descriptive LayoutUnit::fromPixel(int).
966         https://bugs.webkit.org/show_bug.cgi?id=127580
967
968         Reviewed by Simon Fraser.
969
970         LayoutUnit(1) statement is ambiguous. While it is intended to set one (CSS) pixel, it
971         could be interpreted as 1 layout unit (1/64th of a CSS pixel atm).
972
973         No change in behavior.
974
975         * inspector/InspectorOverlay.cpp:
976         (WebCore::buildObjectForRegionHighlight):
977         * rendering/FloatingObjects.cpp:
978         (WebCore::ComputeFloatOffsetForFloatLayoutAdapter<FloatTypeValue>::heightRemaining):
979         * rendering/RenderBlock.cpp:
980         (WebCore::RenderBlock::layoutShapeInsideInfo):
981         * rendering/RenderBlockFlow.cpp:
982         (WebCore::RenderBlockFlow::collapseMargins):
983         * rendering/RenderFlexibleBox.cpp:
984         (WebCore::RenderFlexibleBox::mainAxisContentExtent):
985         (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
986         (WebCore::RenderFlexibleBox::alignChildren):
987         * rendering/RenderMultiColumnFlowThread.cpp:
988         (WebCore::RenderMultiColumnFlowThread::addForcedRegionBreak):
989         * rendering/RenderMultiColumnSet.cpp:
990         (WebCore::RenderMultiColumnSet::heightAdjustedForSetOffset):
991         (WebCore::RenderMultiColumnSet::calculateBalancedHeight):
992
993 2014-01-24  Simon Fraser  <simon.fraser@apple.com>
994
995         Prepare scrolling tree to handle > 1 scrolling node
996         https://bugs.webkit.org/show_bug.cgi?id=127590
997
998         Reviewed by Tim Horton.
999
1000         Clean up the code path called after the ScrollingTree has scrolled a node,
1001         to prepare for multiple scrolling nodes.
1002         
1003         Change "updateMainFrameScrollPosition" terminology to "updateScrollPositionAfterAsyncScroll",
1004         and pass along the ScrollingNodeID that scrolled.
1005         
1006         Move updateMainFrameScrollPosition-related code from ScrollingCoordinator to
1007         AsyncScrollingCoordinator, since this sync-up is only necessary when doing
1008         async scrolling.
1009
1010         * WebCore.exp.in:
1011         * page/scrolling/AsyncScrollingCoordinator.cpp:
1012         (WebCore::AsyncScrollingCoordinator::AsyncScrollingCoordinator):
1013         (WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
1014         (WebCore::AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll):
1015         (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScrollTimerFired):
1016         (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
1017         * page/scrolling/AsyncScrollingCoordinator.h:
1018         (WebCore::AsyncScrollingCoordinator::ScheduledScrollUpdate::ScheduledScrollUpdate):
1019         (WebCore::AsyncScrollingCoordinator::ScheduledScrollUpdate::matchesUpdateType):
1020         Package up the data related to a scheduled scroll into a ScheduledScrollUpdate struct,
1021         for easier comparison and cleaner code.
1022         * page/scrolling/ScrollingCoordinator.cpp:
1023         (WebCore::ScrollingCoordinator::ScrollingCoordinator):
1024         * page/scrolling/ScrollingCoordinator.h:
1025         * page/scrolling/ScrollingTree.h:
1026         * page/scrolling/ThreadedScrollingTree.cpp:
1027         (WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):
1028         * page/scrolling/ThreadedScrollingTree.h:
1029         * page/scrolling/ios/ScrollingTreeIOS.cpp:
1030         (WebCore::ScrollingTreeIOS::scrollingTreeNodeDidScroll):
1031         * page/scrolling/ios/ScrollingTreeIOS.h:
1032         * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
1033         (WebCore::ScrollingTreeScrollingNodeIOS::setScrollPositionWithoutContentEdgeConstraints):
1034         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
1035         (WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
1036
1037 2014-01-24  Mark Lam  <mark.lam@apple.com>
1038
1039         ASSERT(!m_markedSpace.m_currentDelayedReleaseScope) reloading page in inspector.
1040         <https://webkit.org/b/127582>
1041
1042         Reviewed by Mark Hahnenberg.
1043
1044         No new tests.
1045
1046         * bindings/js/ScriptController.cpp:
1047         (WebCore::ScriptController::attachDebugger):
1048         * bindings/js/WorkerScriptController.cpp:
1049         (WebCore::WorkerScriptController::detachDebugger):
1050         - Adding reasons for detaching a globalObject from the debugger.
1051
1052 2014-01-24  Zalan Bujtas  <zalan@apple.com>
1053
1054         Subpixel rendering: Make PaintInfo layout unit aware.
1055         https://bugs.webkit.org/show_bug.cgi?id=127562
1056
1057         Reviewed by Simon Fraser.
1058
1059         Replace PaintInfo's IntRect with LayoutRect to be able to render to
1060         subpixel positions.
1061
1062         No functional changes.
1063
1064         * platform/graphics/LayoutRect.h:
1065         * rendering/PaintInfo.h:
1066         (WebCore::PaintInfo::PaintInfo):
1067         (WebCore::PaintInfo::applyTransform):
1068         * rendering/RenderBlock.cpp:
1069         (WebCore::RenderBlock::paint):
1070         * rendering/RenderBoxModelObject.cpp:
1071         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
1072         * rendering/RenderLayer.cpp:
1073         (WebCore::cornerRect):
1074         (WebCore::RenderLayer::scrollCornerRect):
1075         (WebCore::resizerCornerRect):
1076         (WebCore::RenderLayer::scrollCornerAndResizerRect):
1077         (WebCore::RenderLayer::horizontalScrollbarStart):
1078         (WebCore::RenderLayer::drawPlatformResizerImage):
1079         (WebCore::RenderLayer::paintResizer):
1080         (WebCore::RenderLayer::hitTestOverflowControls):
1081         * rendering/RenderLayer.h:
1082         * rendering/RenderLayerBacking.cpp:
1083         (WebCore::RenderLayerBacking::paintContents):
1084         * rendering/RenderListBox.cpp:
1085         (WebCore::RenderListBox::paintScrollbar):
1086         * rendering/RenderWidget.cpp:
1087         (WebCore::RenderWidget::paintContents):
1088         * rendering/mathml/RenderMathMLOperator.cpp:
1089         (WebCore::RenderMathMLOperator::fillWithExtensionGlyph):
1090         * rendering/svg/SVGRenderingContext.h:
1091
1092 2014-01-24  Simon Fraser  <simon.fraser@apple.com>
1093
1094         #ifdef out handleWheelEventPhase for iOS
1095         https://bugs.webkit.org/show_bug.cgi?id=127583
1096
1097         Reviewed by Tim Horton.
1098
1099         handleWheelEventPhase() doesn't make any sense for iOS, which
1100         has no wheel events.
1101
1102         * page/scrolling/ScrollingTree.h:
1103         * page/scrolling/ThreadedScrollingTree.cpp:
1104         * page/scrolling/ThreadedScrollingTree.h:
1105         * page/scrolling/ios/ScrollingTreeIOS.h:
1106
1107 2014-01-24  David Hyatt  <hyatt@apple.com>
1108
1109         [New Multicolumn] Don't destroy all the renderers when a multi-column block stops being multi-column (and vice versa)
1110         https://bugs.webkit.org/show_bug.cgi?id=127584
1111
1112         Make the logic for when you need columns and when you don't shared between the
1113         old multi-column code and the new multi-column code. Make sure that the flow thread
1114         and sets get created lazily and destroyed on-demand when whether or not we should
1115         have multiple columns changes.
1116
1117         Reviewed by Beth Dakin.
1118
1119         * rendering/RenderBlock.cpp:
1120         (WebCore::RenderBlock::updateLogicalWidthAndColumnWidth):
1121         No longer virtual. The new column code now uses this function too.
1122
1123         (WebCore::RenderBlock::availableLogicalWidth):
1124         Renamed desiredColumnWidth() to computedColumnWidth().
1125
1126         (WebCore::RenderBlock::computeColumnCountAndWidth):
1127         Renamed calcColumnWidth to computeColumnCountAndWidth.
1128
1129         (WebCore::RenderBlock::setComputedColumnCountAndWidth):
1130         Rename setDesiredColumnCountAndWidth to computed.
1131
1132         (WebCore::RenderBlock::computedColumnWidth):
1133         (WebCore::RenderBlock::computedColumnCount):
1134         Renamed desiredColumnWidth/Count to computedColumnWidth/Count and made them virtual.
1135
1136         (WebCore::RenderBlock::updateFirstLetterStyle):
1137         desired -> computed rename.
1138
1139         * rendering/RenderBlock.h:
1140         Renames and made a few functions virtual so that RenderBlockFlow can override.
1141
1142         * rendering/RenderBlockFlow.cpp:
1143         (WebCore::RenderBlockFlow::RenderBlockFlow):
1144         Don't create the flow thread at construction time any longer.
1145
1146         (WebCore::RenderBlockFlow::createMultiColumnFlowThread):
1147         (WebCore::RenderBlockFlow::destroyMultiColumnFlowThread):
1148         The methods to create and destroy flow threads. These work at any time now and will
1149         fix up the render tree accordingly.
1150
1151         (WebCore::RenderBlockFlow::setComputedColumnCountAndWidth):
1152         Virtual override that creates/destroys the new multi-column information as needed.
1153
1154         (WebCore::RenderBlockFlow::computedColumnWidth):
1155         (WebCore::RenderBlockFlow::computedColumnCount):
1156         Overrides to return the cached column width and count from the flow thread.
1157
1158         * rendering/RenderBlockFlow.h:
1159         Has overrides of the virtual functions needed to turn multi-column state on/off and
1160         to hand back computed count/width information.
1161
1162         * rendering/RenderMultiColumnFlowThread.cpp:
1163         * rendering/RenderMultiColumnFlowThread.h:
1164         Removed the algorithm to compute column count and width, since this has been combined
1165         with the old multi-column layout code.
1166
1167         * rendering/RenderView.cpp:
1168         (WebCore::RenderView::computeColumnCountAndWidth):
1169         Renamed desired -> computed.
1170
1171         * rendering/RenderView.h:
1172         Renamed desired -> computed.
1173
1174         * style/StyleResolveTree.cpp:
1175         (WebCore::Style::determineChange):
1176         (WebCore::Style::resolveLocal):
1177         (WebCore::Style::resolveTree):
1178         * style/StyleResolveTree.h:
1179         The Settings argument is no longer needed now that we don't destroy and re-create
1180         the renderer for a block flow if it stops being (or becomes) multi-column.
1181
1182 2014-01-24  Anders Carlsson  <andersca@apple.com>
1183
1184         Fix 32-bit build.
1185
1186         * WebCore.exp.in:
1187
1188 2014-01-24  Brent Fulgham  <bfulgham@apple.com>
1189
1190         [Win] Convert some NMake files to MSBuild project files
1191         https://bugs.webkit.org/show_bug.cgi?id=127579
1192
1193         Reviewed by Tim Horton.
1194
1195         * WebCore.vcxproj/WebCore.make: Removed.
1196         * WebCore.vcxproj/WebCore.proj: Added.
1197
1198 2014-01-24  Joseph Pecoraro  <pecoraro@apple.com>
1199
1200         fast/profiler tests ASSERTing after moving recompileAllJSFunctions off a timer
1201         https://bugs.webkit.org/show_bug.cgi?id=127566
1202
1203         Reviewed by Oliver Hunt.
1204
1205         Covered by existing tests.
1206
1207         * testing/Internals.cpp:
1208         (WebCore::Internals::closeDummyInspectorFrontend):
1209         Now that we don't have to fake that this is a page being destroyed to
1210         avoid recompilation. Use the InspectorDestroyed reason.
1211
1212 2014-01-24  Anders Carlsson  <andersca@apple.com>
1213
1214         Get rid of monotonicallyIncreasingTimeMS and start using std::chrono instead
1215         https://bugs.webkit.org/show_bug.cgi?id=127571
1216
1217         Reviewed by Antti Koivisto.
1218
1219         WebCore.exp.in:
1220         Update symbols.
1221
1222         * dom/Document.cpp:
1223         (WebCore::Document::Document):
1224         (WebCore::Document::implicitClose):
1225         (WebCore::Document::setParsing):
1226         (WebCore::Document::isLayoutTimerActive):
1227         (WebCore::Document::minimumLayoutDelay):
1228         (WebCore::Document::elapsedTime):
1229         (WebCore::Document::write):
1230         (WebCore::Document::styleResolverChanged):
1231         * dom/Document.h:
1232         Use std::chrono instead of doubles for the times and durations.
1233
1234         * fileapi/FileReader.cpp:
1235         (WebCore::FileReader::FileReader):
1236         (WebCore::FileReader::didReceiveData):
1237         * fileapi/FileReader.h:
1238         Switch over to std::chrono.
1239
1240         * page/FrameView.cpp:
1241         (WebCore::FrameView::layout):
1242         (WebCore::FrameView::layoutTimerFired):
1243         (WebCore::FrameView::scheduleRelayout):
1244         (WebCore::FrameView::scheduleRelayoutOfSubtree):
1245         Update for Document::elapsedTime() changes.
1246
1247         * page/Settings.cpp:
1248         (WebCore::Settings::setLayoutInterval):
1249         * page/Settings.h:
1250         (WebCore::Settings::layoutInterval):
1251         Change layoutInterval to be std::chrono::milliseconds instead of int.
1252
1253         * platform/Timer.h:
1254         (WebCore::TimerBase::startOneShot):
1255         Add an overload that takes std::chrono::milliseconds.
1256
1257 2014-01-24  Oliver Hunt  <oliver@apple.com>
1258
1259         Generic JSObject::put should handle static properties in the classinfo hierarchy
1260         https://bugs.webkit.org/show_bug.cgi?id=127523
1261
1262         Reviewed by Geoffrey Garen.
1263
1264         Update the bindings generator to emit the flag indicating the presence
1265         of setters, and remove the many (now unnecessary) put overrides.
1266         Tested with run-jsc-benchmarks and shows neutral performance. A few of the
1267         micro benchmarks actually get a significant performance increase which
1268         is nice.
1269
1270         * bindings/js/JSDOMWindowCustom.cpp:
1271         (WebCore::JSDOMWindow::put):
1272             We still need a custom call to lookupPut here in order
1273             to get the magic security semantics of the window object.
1274         * bindings/scripts/CodeGeneratorJS.pm:
1275         (hashTableAccessor):
1276         (prototypeHashTableAccessor):
1277         (constructorHashTableAccessor):
1278         (GenerateImplementation):
1279         (GenerateHashTable):
1280         (GenerateConstructorHelperMethods):
1281
1282         * bindings/js/JSDOMWindowCustom.cpp:
1283         (WebCore::JSDOMWindow::put):
1284         * bindings/scripts/CodeGeneratorJS.pm:
1285         (hashTableAccessor):
1286         (prototypeHashTableAccessor):
1287         (constructorHashTableAccessor):
1288         (InstanceOverridesPutImplementation):
1289         (InstanceOverridesPutDeclaration):
1290         (GenerateHeader):
1291         (GenerateImplementation):
1292         (GenerateHashTable):
1293         (GenerateConstructorHelperMethods):
1294         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
1295         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
1296         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
1297         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
1298         * bindings/scripts/test/JS/JSTestException.cpp:
1299         * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
1300         * bindings/scripts/test/JS/JSTestInterface.cpp:
1301         (WebCore::JSTestInterface::put):
1302         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
1303         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
1304         * bindings/scripts/test/JS/JSTestNode.cpp:
1305         * bindings/scripts/test/JS/JSTestObj.cpp:
1306         * bindings/scripts/test/JS/JSTestObj.h:
1307         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
1308         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
1309         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
1310         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
1311         * bindings/scripts/test/JS/JSTestTypedefs.h:
1312         * bindings/scripts/test/JS/JSattribute.cpp:
1313         * bindings/scripts/test/JS/JSreadonly.cpp:
1314         * html/canvas/WebGLRenderingContext.idl:
1315           Remove bogus attribute, as it has never been in the spec and should not
1316           have been added.
1317
1318 2014-01-24  David Hyatt  <hyatt@apple.com>
1319
1320         [New Multicolumn] Eliminate RenderMultiColumnBlock
1321         https://bugs.webkit.org/show_bug.cgi?id=127565
1322
1323         Reviewed by Antti Koivisto.
1324
1325         This patch eliminates RenderMultiColumnBlock and folds all of its remaining code
1326         back into RenderBlockFlow. This allows all block flows to support multi-column
1327         layout, including table cells, list items, and the RenderView itself.
1328
1329         * CMakeLists.txt:
1330         * WebCore.order:
1331         * WebCore.vcxproj/WebCore.vcxproj:
1332         * WebCore.vcxproj/WebCore.vcxproj.filters:
1333         * WebCore.xcodeproj/project.pbxproj:
1334         Remove RenderMultiColumnBlock from the makefiles.
1335
1336         * rendering/RenderBlock.cpp:
1337         (WebCore::RenderBlock::adjustIntrinsicLogicalWidthsForColumns):
1338         Tweak the comment, since it was no longer accurate.
1339
1340         * rendering/RenderBlock.h:
1341         Move some functions down into RenderBlockFlow.
1342
1343         * rendering/RenderBlockFlow.cpp:
1344         (WebCore::RenderBlockFlow::RenderBlockFlow):
1345         (WebCore::RenderBlockFlow::createMultiColumnFlowThreadIfNeeded):
1346         (WebCore::RenderBlockFlow::styleDidChange):
1347         (WebCore::RenderBlockFlow::relayoutForPagination):
1348         (WebCore::RenderBlockFlow::layoutSpecialExcludedChild):
1349         (WebCore::RenderBlockFlow::updateLogicalWidthAndColumnWidth):
1350         (WebCore::RenderBlockFlow::addChild):
1351         (WebCore::RenderBlockFlow::checkForPaginationLogicalHeightChange):
1352          * rendering/RenderBlockFlow.h:
1353          Move a bunch of functions from RenderMultiColumnBlock up into RenderBlockFlow.
1354
1355         * rendering/RenderBox.cpp:
1356         (WebCore::RenderBox::isUnsplittableForPagination):
1357         Calls isMultiColumnBlockFlow() now instead of testing for a specific renderer type.
1358
1359         * rendering/RenderElement.cpp:
1360         (WebCore::RenderElement::createFor):
1361         Remove the multicolumn block creation code, since we always make a block flow now.
1362
1363         * rendering/RenderMultiColumnBlock.cpp: Removed.
1364         * rendering/RenderMultiColumnBlock.h: Removed.
1365         Nuke the files.
1366
1367         * rendering/RenderMultiColumnFlowThread.cpp:
1368         (WebCore::RenderMultiColumnFlowThread::initialLogicalWidth):
1369         (WebCore::RenderMultiColumnFlowThread::autoGenerateRegionsToBlockOffset):
1370         * rendering/RenderMultiColumnSet.cpp:
1371         (WebCore::RenderMultiColumnSet::heightAdjustedForSetOffset):
1372         (WebCore::RenderMultiColumnSet::addForcedBreak):
1373         (WebCore::RenderMultiColumnSet::recalculateBalancedHeight):
1374         (WebCore::RenderMultiColumnSet::updateLogicalWidth):
1375         (WebCore::RenderMultiColumnSet::prepareForLayout):
1376         (WebCore::RenderMultiColumnSet::columnGap):
1377         (WebCore::RenderMultiColumnSet::paintColumnRules):
1378         Change all of the functions in the multicolumnset and multicolumnflowthread classes
1379         to cast the parent to a RenderBlockFlow now instead of a RenderMultiColumnBlock.
1380         Change the code to call through to multiColumnFlowThread() for column-specific information
1381         for that parent block.
1382
1383         * rendering/RenderObject.h:
1384         (WebCore::RenderObject::isMultiColumnBlockFlow):
1385         Remove isRenderMultiColumnBlock() and replace with isMultiColumnBlockFlow().
1386
1387         * rendering/RenderingAllInOne.cpp:
1388         Remove RenderMultiColumnBlock include.
1389         
1390 2014-01-24  Brady Eidson  <beidson@apple.com>
1391
1392         IDB: support createIndex/deleteIndex messaging
1393         https://bugs.webkit.org/show_bug.cgi?id=127546
1394
1395         Reviewed by Tim Horton.
1396
1397         * WebCore.exp.in: Export a needed CrossThreadCopier
1398
1399 2014-01-24  Daniel Bates  <dabates@apple.com>
1400
1401         Fix the Windows build after <http://trac.webkit.org/changeset/162704>
1402         (https://bugs.webkit.org/show_bug.cgi?id=127293)
1403
1404         Only include TargetConditionals.h when building on a Darwin-based OS.
1405         Also, check that TARGET_OS_IPHONE is defined before referencing its value
1406         since it will be undefined when building on Windows.
1407
1408         * bindings/objc/PublicDOMInterfaces.h:
1409
1410 2014-01-24  Daniel Bates  <dabates@apple.com>
1411
1412         Bindings generation tests hit an error trying to include wtf/Platform.h after r161638
1413         https://bugs.webkit.org/show_bug.cgi?id=127293
1414
1415         Reviewed by Alexey Proskuryakov.
1416
1417         Include TargetConditionals.h instead of wtf/Platform.h as the latter isn't available
1418         in the public SDK.
1419
1420         As a side effect of this change, replace usage of PLATFORM(IOS) with TARGET_OS_IPHONE.
1421
1422         * bindings/objc/PublicDOMInterfaces.h:
1423
1424 2014-01-21  David Hyatt  <hyatt@apple.com>
1425
1426         [New Multicolumn] Table cells and list items need to work as multicolumn blocks.
1427         https://bugs.webkit.org/show_bug.cgi?id=127365
1428         
1429         This patch is a first step towards eliminating RenderMultiColumnBlock and moving
1430         all its functionality into RenderBlockFlow. Doing so will allow table cells, list
1431         items and the RenderView to use the new multi-column layout.
1432         
1433         Reviewed by Simon Fraser.
1434
1435         * rendering/RenderBlockFlow.cpp:
1436         (WebCore::RenderBlockFlow::setMultiColumnFlowThread):
1437         * rendering/RenderBlockFlow.h:
1438         (WebCore::RenderBlockFlow::RenderBlockFlowRareData::RenderBlockFlowRareData):
1439         (WebCore::RenderBlockFlow::multiColumnFlowThread):
1440         Add the flow thread pointer to the multi-column flow thread to RenderBlockFlow's
1441         rare data. This lets us use only one pointer in the rare data to point to an object
1442         that can hold all of the rest of the multi-column info.
1443
1444         * rendering/RenderMultiColumnBlock.cpp:
1445         (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
1446         Move the construction of the flow thread to the constructor. This ensures we
1447         never have a null flow thread and lets us avoid having to null check it for
1448         empty multi-column blocks.
1449
1450         (WebCore::RenderMultiColumnBlock::columnHeightAvailable):
1451         (WebCore::RenderMultiColumnBlock::columnWidth):
1452         (WebCore::RenderMultiColumnBlock::columnCount):
1453         (WebCore::RenderMultiColumnBlock::updateLogicalWidthAndColumnWidth):
1454         The above functions now call through to the multi-column flow thread for results.
1455
1456         (WebCore::RenderMultiColumnBlock::checkForPaginationLogicalHeightChange):
1457          Set the column height available on the flow thread.
1458
1459         (WebCore::RenderMultiColumnBlock::relayoutForPagination):
1460         The balancing pass and guard is in the multi-column flow thread now.
1461
1462         (WebCore::RenderMultiColumnBlock::addChild):
1463         Don't have to create the flow thread here any longer, since we do it up front
1464         in the constructor of RenderMultiColumnBlock.
1465
1466         (WebCore::RenderMultiColumnBlock::layoutSpecialExcludedChild):
1467         Don't need the null check of the flow thread any more.
1468
1469         * rendering/RenderMultiColumnBlock.h:
1470         Change the inlined functions to not be inlined, since they need to call
1471         RenderMultiColumnFlowThread functions now.
1472
1473         * rendering/RenderMultiColumnFlowThread.cpp:
1474         (WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
1475         Init the new member variables we moved here from RenderMultiColumnBlock.
1476
1477         (WebCore::RenderMultiColumnFlowThread::computeColumnCountAndWidth):
1478         Moved from RenderMultiColumnBlock.
1479
1480         * rendering/RenderMultiColumnFlowThread.h:
1481         Add public getters/setters to the member variables so that RenderMultiColumnBlock can
1482         still see them. Move the member variables here from RenderMultiColumnBlock.
1483
1484         * rendering/RenderMultiColumnSet.cpp:
1485         (WebCore::RenderMultiColumnSet::calculateBalancedHeight):
1486         (WebCore::RenderMultiColumnSet::prepareForLayout):
1487         (WebCore::RenderMultiColumnSet::columnCount):
1488         Call through to the flow thread instead.
1489
1490 2014-01-24  Zan Dobersek  <zdobersek@igalia.com>
1491
1492         Unreviewed GTK build fix after r162663.
1493
1494         * platform/gtk/ScrollViewGtk.cpp:
1495         (WebCore::ScrollView::visibleContentRectInternal): Renamed from visibleContentRect.
1496
1497 2014-01-24  Zan Dobersek  <zdobersek@igalia.com>
1498
1499         Move HistoryItem to std::unique_ptr
1500         https://bugs.webkit.org/show_bug.cgi?id=127275
1501
1502         Reviewed by Darin Adler.
1503
1504         Replace the uses of OwnPtr and PassOwnPtr in the HistoryItem class with std::unique_ptr.
1505
1506         * history/HistoryItem.cpp:
1507         (WebCore::HistoryItem::HistoryItem):
1508         (WebCore::HistoryItem::reset):
1509         (WebCore::HistoryItem::addRedirectURL):
1510         (WebCore::HistoryItem::setRedirectURLs):
1511         * history/HistoryItem.h:
1512         * history/mac/HistoryItemMac.mm:
1513         (WebCore::HistoryItem::setTransientProperty):
1514         WebCore.exp.in: Update the symbol.
1515
1516 2014-01-23  Morten Stenshorne  <mstensho@opera.com>
1517
1518         Region based multicol: unresolvable percent height results in 1px tall multicol
1519         https://bugs.webkit.org/show_bug.cgi?id=122826
1520
1521         Reviewed by David Hyatt.
1522
1523         If a box has a percentage height, but the computed height of its
1524         containing block is auto, the computed height of the box also becomes
1525         auto. computeContentLogicalHeight() returns -1 if the height isn't
1526         resolvable, and we need to make sure that such a value doesn't
1527         constrain the height of the multicol container.
1528
1529         Tests: fast/multicol/newmulticol/unresolvable-percent-height-2.html
1530                fast/multicol/newmulticol/unresolvable-percent-height.html
1531                fast/multicol/newmulticol/unresolvable-percent-max-height-2.html
1532                fast/multicol/newmulticol/unresolvable-percent-max-height.html
1533
1534         * rendering/RenderMultiColumnSet.cpp:
1535         (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
1536         (WebCore::RenderMultiColumnSet::calculateBalancedHeight):
1537         (WebCore::RenderMultiColumnSet::recalculateBalancedHeight):
1538         (WebCore::RenderMultiColumnSet::prepareForLayout):
1539
1540 2014-01-23  Joseph Pecoraro  <pecoraro@apple.com>
1541
1542         Move ContentSearchUtils, ScriptBreakpoint, and ScriptDebugListener into JavaScriptCore for inspector
1543         https://bugs.webkit.org/show_bug.cgi?id=127537
1544
1545         Reviewed by Timothy Hatcher.
1546
1547           - Rename ContentSearchUtils => ContentSearchUtilities and move to JavaScriptCore.
1548           - Move ScriptBreakpoint and ScriptDebugListener to JavaScriptCore.
1549           - Move them all to namespace Inspector.
1550           - Update build files and users to the new names.
1551
1552         No change in functionality, just moving code.
1553
1554         * CMakeLists.txt:
1555         * ForwardingHeaders/inspector/ContentSearchUtilities.h: Added.
1556         * ForwardingHeaders/inspector/ScriptBreakpoint.h: Added.
1557         * ForwardingHeaders/inspector/ScriptDebugListener.h: Added.
1558         * GNUmakefile.list.am:
1559         * WebCore.vcxproj/WebCore.vcxproj:
1560         * WebCore.vcxproj/WebCore.vcxproj.filters:
1561         * WebCore.xcodeproj/project.pbxproj:
1562         * bindings/js/PageScriptDebugServer.cpp:
1563         * bindings/js/PageScriptDebugServer.h:
1564         * bindings/js/ScriptDebugServer.cpp:
1565         * bindings/js/ScriptDebugServer.h:
1566         * bindings/js/WorkerScriptDebugServer.cpp:
1567         * bindings/js/WorkerScriptDebugServer.h:
1568         * inspector/InspectorAllInOne.cpp:
1569         * inspector/InspectorDebuggerAgent.cpp:
1570         (WebCore::InspectorDebuggerAgent::searchInContent):
1571         (WebCore::InspectorDebuggerAgent::sourceMapURLForScript):
1572         (WebCore::InspectorDebuggerAgent::didParseSource):
1573         * inspector/InspectorDebuggerAgent.h:
1574         * inspector/InspectorPageAgent.cpp:
1575         (WebCore::InspectorPageAgent::sourceMapURLForResource):
1576         (WebCore::InspectorPageAgent::searchInResource):
1577         (WebCore::InspectorPageAgent::searchInResources):
1578         * inspector/InspectorStyleSheet.cpp:
1579         (WebCore::buildSourceRangeObject):
1580         (WebCore::InspectorStyleSheet::lineEndings):
1581         (WebCore::InspectorStyleSheetForInlineStyle::lineEndings):
1582
1583 2014-01-23  Joseph Pecoraro  <pecoraro@apple.com>
1584
1585         Move RegularExpression into JavaScriptCore for inspector
1586         https://bugs.webkit.org/show_bug.cgi?id=127526
1587
1588         Reviewed by Geoffrey Garen.
1589
1590         Update as appropriate for the moved file and namespace
1591         change for class RegularExpression.
1592
1593         * CMakeLists.txt:
1594         * ForwardingHeaders/yarr/RegularExpression.h: Added.
1595         * GNUmakefile.list.am:
1596         * WebCore.exp.in:
1597         * WebCore.vcxproj/WebCore.vcxproj:
1598         * WebCore.vcxproj/WebCore.vcxproj.filters:
1599         * WebCore.xcodeproj/project.pbxproj:
1600         * dom/DOMImplementation.h:
1601         * html/BaseCheckableInputType.cpp:
1602         * html/BaseTextInputType.cpp:
1603         (WebCore::BaseTextInputType::patternMismatch):
1604         * html/EmailInputType.cpp:
1605         (WebCore::isValidEmailAddress):
1606         * html/InputType.cpp:
1607         * inspector/ContentSearchUtils.cpp:
1608         (WebCore::ContentSearchUtils::getRegularExpressionMatchesByLines):
1609         (WebCore::ContentSearchUtils::createSearchRegex):
1610         (WebCore::ContentSearchUtils::countRegularExpressionMatches):
1611         (WebCore::ContentSearchUtils::searchInTextByLines):
1612         * inspector/ContentSearchUtils.h:
1613         * inspector/InspectorDebuggerAgent.cpp:
1614         (WebCore::matches):
1615         (WebCore::InspectorDebuggerAgent::breakpointActionLog):
1616         (WebCore::InspectorDebuggerAgent::breakpointActionSound):
1617         * inspector/InspectorDebuggerAgent.h:
1618         * inspector/InspectorPageAgent.cpp:
1619         (WebCore::InspectorPageAgent::searchInResources):
1620         * inspector/InspectorPageAgent.h:
1621         * inspector/InspectorRuntimeAgent.cpp:
1622         * inspector/InspectorRuntimeAgent.h:
1623         * inspector/InspectorStyleSheet.cpp:
1624         (WebCore::selectorsFromSource):
1625         * inspector/WorkerDebuggerAgent.cpp:
1626         * page/Frame.cpp:
1627         (WebCore::createRegExpForLabels):
1628         (WebCore::Frame::searchForLabelsAboveCell):
1629         (WebCore::Frame::searchForLabelsBeforeElement):
1630         (WebCore::matchLabelsAgainstString):
1631         * page/Frame.h:
1632         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
1633         (WebCore::GraphicsContext3D::getUnmangledInfoLog):
1634
1635 2014-01-23  Brady Eidson  <beidson@apple.com>
1636
1637         IDB: Support IDBObjectStore.clear()
1638         https://bugs.webkit.org/show_bug.cgi?id=127541
1639         
1640         Reviewed by Anders Carlsson.
1641
1642         The backing store should never be performing callbacks directly:
1643         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
1644         (WebCore::IDBServerConnectionLevelDB::clearObjectStore):
1645
1646         Instead, the transaction operations should do that themselves:
1647         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
1648         (WebCore::ClearObjectStoreOperation::perform):
1649         * Modules/indexeddb/IDBTransactionBackendOperations.h:
1650         (WebCore::ClearObjectStoreOperation::transaction):
1651
1652 2014-01-23  Dan Bernstein  <mitz@apple.com>
1653
1654         <rdar://problem/15875326> REGRESSION (r162257): Assertion failure (should not be reached) in CSSPreloadScanner::tokenize()
1655         https://bugs.webkit.org/show_bug.cgi?id=127540
1656
1657         Reviewed by Anders Carlsson.
1658
1659         No new tests, because I could not reproduce the bug reliably and I don’t know how to trigger
1660         it.
1661
1662         * html/parser/CSSPreloadScanner.cpp:
1663         (WebCore::CSSPreloadScanner::scan): Check for the DoneParsingImportRules before tokenizing
1664         a character, not after. This restores the logic from before r162257.
1665
1666 2014-01-23  Jer Noble  <jer.noble@apple.com>
1667
1668         [iOS] Protect against possbile deadlock by delaying video layer creation
1669         https://bugs.webkit.org/show_bug.cgi?id=127505
1670
1671         Reviewed by Eric Carlson.
1672
1673         Work around a possible deadlock on iOS when creating a media element
1674         backed by AVFoundation by delaying creation of the AVPlayerLayer.
1675         The deadlock can occur when the web thread is doing CALayer layout
1676         while taking the web thread lock, while CoreMedia is doing property
1677         access on an async thread while taking the CM lock, and each is waiting
1678         for the other's lock to be released.
1679
1680         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1681         (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer):
1682
1683 2014-01-23  Jer Noble  <jer.noble@apple.com>
1684
1685         [MSE][Mac] Crash when reloading a page during playback
1686         https://bugs.webkit.org/show_bug.cgi?id=126903
1687
1688         Reviewed by Eric Carlson.
1689
1690         Periodic time observers added to AVSampleBufferRenderSynchronizer will execute their
1691         callback block even after being removed with -removeTimeObserver:, which is tracked by
1692         <rdar://problem/15798050>. Work around this problem by passing a WeakPtr into the block
1693         and bail early if the owning media player has been destroyed.
1694
1695         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
1696         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::createWeakPtr):
1697         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
1698         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
1699
1700 2014-01-23  ChangSeok Oh  <changseok.oh@collabora.com>
1701
1702         Dragging from inner side of video to outside causes a crash
1703         https://bugs.webkit.org/show_bug.cgi?id=126338
1704
1705         Reviewed by Jer Noble.
1706
1707         The crash happens while dragging mouse cursor through timeline control to outside
1708         of video region. This is beacause media controls are selected with the drag.
1709         The media controls disappear when mouse cursor goes outside of video though
1710         the dragging/selection proceeds. If once media controls are hidden, related element
1711         lose their renderers. However the drag is still under going. it requires shadowPseudoId
1712         of the selected controls. Untorntunately, SliderThumbElement/SliderContainerElement
1713         don't return a static value for the shadowPseudoId unlike other media controls,
1714         but they need a renderer to determine it. This is the reason of crash.
1715
1716         Test: media/media-controller-drag-crash.html
1717
1718         * html/shadow/SliderThumbElement.cpp:
1719         (WebCore::SliderThumbElement::shadowPseudoId):
1720         (WebCore::SliderContainerElement::shadowPseudoId):
1721
1722 2014-01-23  Brady Eidson  <beidson@apple.com>
1723
1724         IDB: Implement SQLite backing store 'get' support
1725         https://bugs.webkit.org/show_bug.cgi?id=127502
1726
1727         Reviewed by Tim Horton.
1728
1729         Get a KeyRange from a KeyRangeData:
1730         * Modules/indexeddb/IDBKeyRangeData.cpp:
1731         (WebCore::IDBKeyRangeData::maybeCreateIDBKeyRange):
1732         * Modules/indexeddb/IDBKeyRangeData.h:
1733
1734         Add collation function support to SQLiteDatabase:
1735         * platform/sql/SQLiteDatabase.cpp:
1736         (WebCore::destroyCollationFunction):
1737         (WebCore::callCollationFunction):
1738         (WebCore::SQLiteDatabase::setCollationFunction):
1739         (WebCore::SQLiteDatabase::removeCollationFunction):
1740         * platform/sql/SQLiteDatabase.h:
1741
1742         * WebCore.exp.in:
1743
1744 2014-01-23  Jon Honeycutt  <jhoneycutt@apple.com>
1745
1746         Assertion failure in WebCore::PseudoElement::didRecalcStyle()
1747         <https://bugs.webkit.org/show_bug.cgi?id=126761>
1748         <rdar://problem/15793540>
1749
1750         Reviewed by Andy Estes.
1751
1752         Test: fast/images/animate-list-item-image-assertion.html
1753
1754         * dom/PseudoElement.cpp:
1755         (WebCore::PseudoElement::didRecalcStyle):
1756         Check isRenderImage() rather than isImage() before casting to
1757         RenderImage.
1758
1759         * editing/ios/EditorIOS.mm:
1760         (WebCore::getImage):
1761         Ditto.
1762
1763         * editing/mac/EditorMac.mm:
1764         (WebCore::getImage):
1765         Ditto.
1766
1767         * html/HTMLImageElement.cpp:
1768         (WebCore::HTMLImageElement::parseAttribute):
1769         (WebCore::HTMLImageElement::didAttachRenderers):
1770         Ditto.
1771
1772         * loader/ImageLoader.cpp:
1773         (WebCore::ImageLoader::renderImageResource):
1774         Ditto.
1775
1776         * page/DragController.cpp:
1777         (WebCore::getCachedImage):
1778         Ditto.
1779
1780         * rendering/RenderLayerBacking.cpp:
1781         (WebCore::RenderLayerBacking::isDirectlyCompositedImage):
1782         (WebCore::RenderLayerBacking::updateImageContents):
1783         Ditto.
1784
1785 2014-01-23  Joseph Pecoraro  <pecoraro@apple.com>
1786
1787         Web Inspector: Remove recompileAllJSFunctions timer in ScriptDebugServer
1788         https://bugs.webkit.org/show_bug.cgi?id=127409
1789
1790         Reviewed by Geoffrey Garen.
1791
1792         Covered by existing tests.
1793
1794         * bindings/js/ScriptDebugServer.h:
1795         * bindings/js/ScriptDebugServer.cpp:
1796         (WebCore::ScriptDebugServer::ScriptDebugServer):
1797         Remove m_recompileTimer and the recompile soon function.
1798         We can just recompile immediately in all existing cases.
1799
1800         * bindings/js/PageScriptDebugServer.h:
1801         * bindings/js/PageScriptDebugServer.cpp:
1802         (WebCore::PageScriptDebugServer::addListener):
1803         (WebCore::PageScriptDebugServer::removeListener):
1804         (WebCore::PageScriptDebugServer::recompileAllJSFunctions):
1805         (WebCore::PageScriptDebugServer::didAddFirstListener):
1806         (WebCore::PageScriptDebugServer::didRemoveLastListener):
1807         Add a "didAddFirstListener" to match "didRemoveLastListener".
1808         Only recompile functions when we attach the debugger and when
1809         we detach the last listener.
1810
1811         * bindings/js/WorkerScriptDebugServer.cpp:
1812         (WebCore::WorkerScriptDebugServer::addListener):
1813         (WebCore::WorkerScriptDebugServer::removeListener):
1814         (WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
1815         Same thing. Also rearrange the functions to read better.
1816
1817         * inspector/InspectorProfilerAgent.cpp:
1818         Use the direct recompile function instead of the removed "soon" version.
1819
1820         * WebCore.exp.in:
1821         Update disconnectFrontend symbol.
1822
1823         * page/PageDebuggable.cpp:
1824         (WebCore::PageDebuggable::disconnect):
1825         * testing/Internals.cpp:
1826         (WebCore::Internals::closeDummyInspectorFrontend):
1827         * workers/WorkerMessagingProxy.cpp:
1828         (WebCore::disconnectFromWorkerGlobalScopeInspectorTask):
1829         Include an InspectorDisconnectReason when calling disconnectFrontend.
1830
1831         * inspector/InspectorDatabaseAgent.h:
1832         * inspector/InspectorDebuggerAgent.cpp:
1833         (WebCore::InspectorDebuggerAgent::disable):
1834         (WebCore::InspectorDebuggerAgent::willDestroyFrontendAndBackend):
1835         If the disconnect reason is the page will be destroyed, don't recompile when disconnecting.
1836
1837         * inspector/InspectorProfilerAgent.h:
1838         * inspector/InspectorProfilerAgent.cpp:
1839         (WebCore::InspectorProfilerAgent::enable):
1840         (WebCore::InspectorProfilerAgent::disable):
1841         (WebCore::InspectorProfilerAgent::willDestroyFrontendAndBackend):
1842         If the disconnect reason is the page will be destroyed, don't recompile when disconnecting.
1843
1844         * inspector/InspectorController.h:
1845         * inspector/InspectorController.cpp:
1846         (WebCore::InspectorController::inspectedPageDestroyed):
1847         (WebCore::InspectorController::disconnectFrontend):
1848         (WebCore::InspectorController::close):
1849         Pass different reasons for the different disconnect reasons.
1850
1851         * inspector/WorkerInspectorController.h:
1852         * inspector/WorkerInspectorController.cpp:
1853         (WebCore::WorkerInspectorController::~WorkerInspectorController):
1854         (WebCore::WorkerInspectorController::disconnectFrontend):
1855         Pass different reasons for the different disconnect reasons.
1856
1857         * inspector/InspectorApplicationCacheAgent.cpp:
1858         (WebCore::InspectorApplicationCacheAgent::willDestroyFrontendAndBackend):
1859         * inspector/InspectorApplicationCacheAgent.h:
1860         * inspector/InspectorCSSAgent.cpp:
1861         (WebCore::InspectorCSSAgent::willDestroyFrontendAndBackend):
1862         * inspector/InspectorCSSAgent.h:
1863         * inspector/InspectorCanvasAgent.cpp:
1864         (WebCore::InspectorCanvasAgent::willDestroyFrontendAndBackend):
1865         * inspector/InspectorCanvasAgent.h:
1866         * inspector/InspectorConsoleAgent.cpp:
1867         (WebCore::InspectorConsoleAgent::willDestroyFrontendAndBackend):
1868         * inspector/InspectorConsoleAgent.h:
1869         * inspector/InspectorDOMAgent.cpp:
1870         (WebCore::InspectorDOMAgent::willDestroyFrontendAndBackend):
1871         * inspector/InspectorDOMAgent.h:
1872         * inspector/InspectorDOMDebuggerAgent.cpp:
1873         (WebCore::InspectorDOMDebuggerAgent::willDestroyFrontendAndBackend):
1874         * inspector/InspectorDOMDebuggerAgent.h:
1875         * inspector/InspectorDOMStorageAgent.cpp:
1876         (WebCore::InspectorDOMStorageAgent::willDestroyFrontendAndBackend):
1877         * inspector/InspectorDOMStorageAgent.h:
1878         * inspector/InspectorDatabaseAgent.cpp:
1879         (WebCore::InspectorDatabaseAgent::willDestroyFrontendAndBackend):
1880         * inspector/InspectorDebuggerAgent.h:
1881         * inspector/InspectorHeapProfilerAgent.cpp:
1882         (WebCore::InspectorHeapProfilerAgent::willDestroyFrontendAndBackend):
1883         * inspector/InspectorHeapProfilerAgent.h:
1884         * inspector/InspectorIndexedDBAgent.cpp:
1885         (WebCore::InspectorIndexedDBAgent::willDestroyFrontendAndBackend):
1886         * inspector/InspectorIndexedDBAgent.h:
1887         * inspector/InspectorInputAgent.cpp:
1888         (WebCore::InspectorInputAgent::willDestroyFrontendAndBackend):
1889         * inspector/InspectorInputAgent.h:
1890         * inspector/InspectorLayerTreeAgent.cpp:
1891         (WebCore::InspectorLayerTreeAgent::willDestroyFrontendAndBackend):
1892         * inspector/InspectorLayerTreeAgent.h:
1893         * inspector/InspectorMemoryAgent.cpp:
1894         (WebCore::InspectorMemoryAgent::willDestroyFrontendAndBackend):
1895         * inspector/InspectorMemoryAgent.h:
1896         * inspector/InspectorPageAgent.cpp:
1897         (WebCore::InspectorPageAgent::willDestroyFrontendAndBackend):
1898         * inspector/InspectorPageAgent.h:
1899         * inspector/InspectorResourceAgent.cpp:
1900         (WebCore::InspectorResourceAgent::willDestroyFrontendAndBackend):
1901         * inspector/InspectorResourceAgent.h:
1902         * inspector/InspectorTimelineAgent.cpp:
1903         (WebCore::InspectorTimelineAgent::willDestroyFrontendAndBackend):
1904         * inspector/InspectorTimelineAgent.h:
1905         * inspector/InspectorWorkerAgent.cpp:
1906         (WebCore::InspectorWorkerAgent::willDestroyFrontendAndBackend):
1907         * inspector/InspectorWorkerAgent.h:
1908         * inspector/PageDebuggerAgent.cpp:
1909         (WebCore::PageDebuggerAgent::disable):
1910         (WebCore::PageDebuggerAgent::stopListeningScriptDebugServer):
1911         * inspector/PageDebuggerAgent.h:
1912         * inspector/PageRuntimeAgent.cpp:
1913         (WebCore::PageRuntimeAgent::willDestroyFrontendAndBackend):
1914         * inspector/PageRuntimeAgent.h:
1915         * inspector/WorkerDebuggerAgent.cpp:
1916         (WebCore::WorkerDebuggerAgent::stopListeningScriptDebugServer):
1917         * inspector/WorkerDebuggerAgent.h:
1918         * inspector/WorkerRuntimeAgent.cpp:
1919         (WebCore::WorkerRuntimeAgent::willDestroyFrontendAndBackend):
1920         * inspector/WorkerRuntimeAgent.h:
1921         Include InspectorDisconnectReason param.
1922
1923 2014-01-23  Simon Fraser  <simon.fraser@apple.com>
1924
1925         Another Windows fix: include <algorithm> for std::min and std::max.
1926         
1927         * platform/graphics/IntSize.h:
1928
1929 2014-01-23  Simon Fraser  <simon.fraser@apple.com>
1930
1931         Try to fix Windows build.
1932
1933         * platform/win/PopupMenuWin.cpp:
1934         (WebCore::PopupMenuWin::visibleSize):
1935         * platform/win/PopupMenuWin.h:
1936
1937 2014-01-23  Simon Fraser  <simon.fraser@apple.com>
1938
1939         Make visibleContentRect() return actualVisibleContentRect() on iOS most of the time
1940         https://bugs.webkit.org/show_bug.cgi?id=127456
1941         
1942         Reviewed by Antti Koivisto.
1943         
1944         On iOS, visibleContentRect() returns the entire document rect for historical
1945         reasons, and actualVisibleContentRect() returns what visibleContentRect()
1946         returns on other platforms.
1947         
1948         In addition, actualVisibleContentRect() was returning an empty rect in WK2.
1949         
1950         Reduce the confusion of #ifdefs by making visibleContentRect() behave like
1951         actualVisibleContentRect() by default on iOS. Where it needs the old behavior,
1952         an optional parameter, LegacyIOSDocumentVisibleRect, provides this.
1953         
1954         Achieve this by having the virtual ScrollableArea::visibleContentRectInternal(),
1955         which is called by non-virtual visibleContentRect() and visibleContentRectIncludingScrollbars().
1956         
1957         Similarly clean up visibleHeight/visibleWidth functions by having visibleSize() be virtual,
1958         with non-virtual visibleHeight() and visibleWidth().
1959         
1960         ScrollableArea subclasses override visibleContentRectInternal() and visibleSize() where necessary.
1961         
1962         Mechanically change all the call sites of actualVisibleContentRect() to
1963         use visibleContentRect(), and the call sites of visibleContentRect()
1964         to visibleContentRect(..., LegacyIOSDocumentVisibleRect), adding comments
1965         where this may not be appropriate.
1966         
1967         Change callers of visibleContentRect(IncludeScrollbars...) to visibleContentRectIncludingScrollbars().
1968         
1969         Also add actualScrollPosition(), and clean up some actualScroll* call sites.
1970         
1971         No behavior change.
1972
1973         * WebCore.exp.in:
1974         * accessibility/AccessibilityObject.cpp:
1975         (WebCore::AccessibilityObject::isOnscreen):
1976         (WebCore::AccessibilityObject::scrollToMakeVisibleWithSubFocus):
1977         * accessibility/AccessibilityRenderObject.cpp:
1978         (WebCore::AccessibilityRenderObject::isOffScreen):
1979         * dom/Document.cpp:
1980         (WebCore::Document::adjustFloatQuadsForScrollAndAbsoluteZoomAndFrameScale):
1981         (WebCore::Document::adjustFloatRectForScrollAndAbsoluteZoomAndFrameScale):
1982         * dom/MouseRelatedEvent.cpp:
1983         (WebCore::MouseRelatedEvent::MouseRelatedEvent):
1984         * editing/Editor.cpp:
1985         (WebCore::Editor::countMatchesForText):
1986         * editing/FrameSelection.cpp:
1987         (WebCore::FrameSelection::bounds):
1988         (WebCore::FrameSelection::getClippedVisibleTextRectangles):
1989         * html/HTMLBodyElement.cpp:
1990         (WebCore::HTMLBodyElement::scrollLeft):
1991         (WebCore::HTMLBodyElement::scrollTop):
1992         * html/ImageDocument.cpp:
1993         (WebCore::ImageDocument::imageFitsInWindow):
1994         (WebCore::ImageDocument::windowSizeChanged):
1995         * inspector/InspectorOverlay.cpp:
1996         (WebCore::InspectorOverlay::update):
1997         * page/DOMWindow.cpp:
1998         (WebCore::DOMWindow::innerHeight):
1999         (WebCore::DOMWindow::innerWidth):
2000         (WebCore::DOMWindow::scrollX):
2001         (WebCore::DOMWindow::scrollY):
2002         (WebCore::DOMWindow::scrollBy):
2003         * page/FrameView.cpp:
2004         (WebCore::FrameView::calculateScrollbarModesForLayout):
2005         (WebCore::FrameView::layout):
2006         (WebCore::FrameView::scrollContentsSlowPath):
2007         (WebCore::FrameView::repaintContentRectangle):
2008         (WebCore::FrameView::sendResizeEventIfNeeded):
2009         (WebCore::FrameView::windowClipRect):
2010         (WebCore::FrameView::isScrollable):
2011         (WebCore::FrameView::paintControlTints):
2012         * page/SpatialNavigation.cpp:
2013         (WebCore::canScrollInDirection):
2014         * platform/ScrollView.cpp:
2015         (WebCore::ScrollView::unscaledVisibleContentSize):
2016         (WebCore::ScrollView::visibleContentRectInternal):
2017         (WebCore::ScrollView::updateScrollbars):
2018         (WebCore::ScrollView::paint):
2019         * platform/ScrollView.h:
2020         (WebCore::ScrollView::scrollOffset):
2021         (WebCore::ScrollView::actualScrollX):
2022         (WebCore::ScrollView::actualScrollY):
2023         (WebCore::ScrollView::actualScrollPosition):
2024         * platform/ScrollableArea.cpp:
2025         (WebCore::ScrollableArea::visibleContentRect):
2026         (WebCore::ScrollableArea::visibleContentRectIncludingScrollbars):
2027         (WebCore::ScrollableArea::visibleContentRectInternal):
2028         * platform/ScrollableArea.h:
2029         (WebCore::ScrollableArea::visibleWidth):
2030         (WebCore::ScrollableArea::visibleHeight):
2031         * platform/graphics/IntSize.h:
2032         (WebCore::IntSize::expandedTo): Drive-by cleanup.
2033         (WebCore::IntSize::shrunkTo):
2034         * platform/gtk/ScrollViewGtk.cpp:
2035         (WebCore::ScrollView::visibleContentRect):
2036         * rendering/RenderLayer.cpp:
2037         (WebCore::RenderLayer::scrollRectToVisible):
2038         (WebCore::RenderLayer::maximumScrollPosition):
2039         (WebCore::RenderLayer::visibleContentRectInternal):
2040         (WebCore::RenderLayer::hitTest):
2041         * rendering/RenderLayer.h:
2042         * rendering/RenderLayerBacking.cpp:
2043         (WebCore::RenderLayerBacking::updateCompositedBounds):
2044         * rendering/RenderListBox.cpp:
2045         * rendering/RenderListBox.h:
2046         * rendering/RenderView.cpp:
2047         (WebCore::RenderView::viewRect):
2048         (WebCore::RenderView::viewportSize):
2049
2050 2014-01-20  Myles C. Maxfield  <mmaxfield@apple.com>
2051
2052        Turn text-decoration-skip: ink on for all underlines
2053        https://bugs.webkit.org/show_bug.cgi?id=127331
2054
2055        Reviewed by Antti Koivisto.
2056
2057        No new tests are necessary because tests already exist
2058
2059        * rendering/style/RenderStyle.h:
2060
2061 2014-01-23  Hans Muller  <hmuller@adobe.com>
2062
2063         [CSS Shapes] Image valued shape size and position should conform to the spec
2064         https://bugs.webkit.org/show_bug.cgi?id=123295
2065
2066         Reviewed by Andreas Kling.
2067
2068         Implement image valued shape-outside scaling and translation per the spec,
2069         http://dev.w3.org/csswg/css-shapes/#shapes-from-image:
2070
2071         "The image is sized and positioned as if it were a replaced element whose
2072         specified width and height are the same as the element’s used content box size."
2073
2074         This change doesn't completely fulfill the spec, it's limited to image elements
2075         and shape-outside.
2076
2077         Tests: fast/shapes/shape-outside-floats/shape-outside-image-fit-001.html
2078                fast/shapes/shape-outside-floats/shape-outside-image-fit-002.html
2079                fast/shapes/shape-outside-floats/shape-outside-image-fit-003.html
2080                fast/shapes/shape-outside-floats/shape-outside-image-fit-004.html
2081
2082         * rendering/shapes/Shape.h:
2083         * rendering/shapes/Shape.cpp:
2084         (WebCore::Shape::createRasterShape):
2085         Added an imageRect parameter which specifies where the shape image is to
2086         appear relative to the content box. The imageRect implies both scaling and
2087         translation of the shape image.
2088
2089         * rendering/shapes/ShapeInfo.cpp:
2090         (WebCore::ShapeInfo<RenderType>::computedShape):
2091         (WebCore::getShapeImageRect):
2092         For replaced elements, compute the shape's imageRect with
2093         RenderReplaced::replacedContentRect().
2094
2095
2096 2014-01-23  Max Vujovic  <mvujovic@adobe.com>
2097
2098         Remove CSS Custom Filters code and tests
2099         https://bugs.webkit.org/show_bug.cgi?id=127382
2100
2101         Reviewed by Simon Fraser.
2102
2103         No new tests. Removing functionality.
2104
2105         * CMakeLists.txt:
2106         * Configurations/FeatureDefines.xcconfig:
2107         * DerivedSources.cpp:
2108         * DerivedSources.make:
2109         * GNUmakefile.list.am:
2110         * WebCore.order:
2111         * WebCore.vcxproj/WebCore.vcxproj:
2112         * WebCore.vcxproj/WebCore.vcxproj.filters:
2113         * WebCore.xcodeproj/project.pbxproj:
2114         * bindings/js/JSCSSRuleCustom.cpp:
2115         (WebCore::toJS):
2116         * bindings/js/JSCSSValueCustom.cpp:
2117         (WebCore::toJS):
2118         * bindings/objc/DOMCSS.mm:
2119         (kitClass):
2120         * css/CSSComputedStyleDeclaration.cpp:
2121         (WebCore::ComputedStyleExtractor::valueForFilter):
2122         (WebCore::ComputedStyleExtractor::propertyValue):
2123         * css/CSSComputedStyleDeclaration.h:
2124         * css/CSSGrammar.y.in:
2125         * css/CSSParser.cpp:
2126         (WebCore::CSSParserContext::CSSParserContext):
2127         (WebCore::operator==):
2128         (WebCore::CSSParser::CSSParser):
2129         (WebCore::CSSParser::parseValue):
2130         (WebCore::filterInfoForName):
2131         (WebCore::CSSParser::parseFilter):
2132         (WebCore::CSSParser::detectAtToken):
2133         * css/CSSParser.h:
2134         * css/CSSParserMode.h:
2135         * css/CSSPropertyNames.in:
2136         * css/CSSPropertySourceData.h:
2137         * css/CSSRule.h:
2138         * css/CSSRule.idl:
2139         * css/CSSValue.cpp:
2140         (WebCore::CSSValue::equals):
2141         (WebCore::CSSValue::cssText):
2142         (WebCore::CSSValue::destroy):
2143         (WebCore::CSSValue::cloneForCSSOM):
2144         * css/CSSValue.h:
2145         * css/CSSValueKeywords.in:
2146         * css/StyleResolver.cpp:
2147         (WebCore::StyleResolver::State::clear):
2148         (WebCore::StyleResolver::applyProperty):
2149         (WebCore::filterOperationForType):
2150         (WebCore::StyleResolver::createFilterOperations):
2151         (WebCore::StyleResolver::loadPendingResources):
2152         * css/StyleResolver.h:
2153         (WebCore::StyleResolver::State::State):
2154         * css/StyleRule.cpp:
2155         (WebCore::StyleRuleBase::destroy):
2156         (WebCore::StyleRuleBase::copy):
2157         (WebCore::StyleRuleBase::createCSSOMWrapper):
2158         * css/StyleRule.h:
2159         * css/StyleSheetContents.cpp:
2160         (WebCore::childRulesHaveFailedOrCanceledSubresources):
2161         * css/WebKitCSSArrayFunctionValue.cpp: Removed.
2162         * css/WebKitCSSArrayFunctionValue.h: Removed.
2163         * css/WebKitCSSFilterRule.cpp: Removed.
2164         * css/WebKitCSSFilterRule.h: Removed.
2165         * css/WebKitCSSFilterRule.idl: Removed.
2166         * css/WebKitCSSFilterValue.cpp:
2167         (WebCore::WebKitCSSFilterValue::WebKitCSSFilterValue):
2168         (WebCore::WebKitCSSFilterValue::customCSSText):
2169         * css/WebKitCSSFilterValue.h:
2170         * css/WebKitCSSFilterValue.idl:
2171         * css/WebKitCSSMatFunctionValue.cpp: Removed.
2172         * css/WebKitCSSMatFunctionValue.h: Removed.
2173         * css/WebKitCSSMixFunctionValue.cpp: Removed.
2174         * css/WebKitCSSMixFunctionValue.h: Removed.
2175         * css/WebKitCSSMixFunctionValue.idl: Removed.
2176         * css/WebKitCSSShaderValue.cpp: Removed.
2177         * css/WebKitCSSShaderValue.h: Removed.
2178         * loader/cache/CachedResource.cpp:
2179         (WebCore::defaultPriorityForResourceType):
2180         * loader/cache/CachedResource.h:
2181         * loader/cache/CachedResourceLoader.cpp:
2182         (WebCore::createResource):
2183         (WebCore::CachedResourceLoader::checkInsecureContent):
2184         (WebCore::CachedResourceLoader::canRequest):
2185         * loader/cache/CachedResourceLoader.h:
2186         * loader/cache/CachedShader.cpp: Removed.
2187         * loader/cache/CachedShader.h: Removed.
2188         * page/Settings.cpp:
2189         (WebCore::Settings::Settings):
2190         * page/Settings.h:
2191         * page/animation/CSSPropertyAnimation.cpp:
2192         (WebCore::blendFilter):
2193         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
2194         (PlatformCALayerMac::filtersCanBeComposited):
2195         * platform/graphics/filters/CustomFilterArrayParameter.h: Removed.
2196         * platform/graphics/filters/CustomFilterColorParameter.h: Removed.
2197         * platform/graphics/filters/CustomFilterCompiledProgram.cpp: Removed.
2198         * platform/graphics/filters/CustomFilterCompiledProgram.h: Removed.
2199         * platform/graphics/filters/CustomFilterConstants.h: Removed.
2200         * platform/graphics/filters/CustomFilterGlobalContext.cpp: Removed.
2201         * platform/graphics/filters/CustomFilterGlobalContext.h: Removed.
2202         * platform/graphics/filters/CustomFilterMesh.cpp: Removed.
2203         * platform/graphics/filters/CustomFilterMesh.h: Removed.
2204         * platform/graphics/filters/CustomFilterMeshGenerator.cpp: Removed.
2205         * platform/graphics/filters/CustomFilterMeshGenerator.h: Removed.
2206         * platform/graphics/filters/CustomFilterNumberParameter.h: Removed.
2207         * platform/graphics/filters/CustomFilterOperation.cpp: Removed.
2208         * platform/graphics/filters/CustomFilterOperation.h: Removed.
2209         * platform/graphics/filters/CustomFilterParameter.h: Removed.
2210         * platform/graphics/filters/CustomFilterParameterList.cpp: Removed.
2211         * platform/graphics/filters/CustomFilterParameterList.h: Removed.
2212         * platform/graphics/filters/CustomFilterProgram.cpp: Removed.
2213         * platform/graphics/filters/CustomFilterProgram.h: Removed.
2214         * platform/graphics/filters/CustomFilterProgramClient.h: Removed.
2215         * platform/graphics/filters/CustomFilterProgramInfo.cpp: Removed.
2216         * platform/graphics/filters/CustomFilterProgramInfo.h: Removed.
2217         * platform/graphics/filters/CustomFilterRenderer.cpp: Removed.
2218         * platform/graphics/filters/CustomFilterRenderer.h: Removed.
2219         * platform/graphics/filters/CustomFilterTransformParameter.h: Removed.
2220         * platform/graphics/filters/CustomFilterValidatedProgram.cpp: Removed.
2221         * platform/graphics/filters/CustomFilterValidatedProgram.h: Removed.
2222         * platform/graphics/filters/FECustomFilter.cpp: Removed.
2223         * platform/graphics/filters/FECustomFilter.h: Removed.
2224         * platform/graphics/filters/FilterOperation.h:
2225         * platform/graphics/filters/FilterOperations.cpp:
2226         (WebCore::FilterOperations::outsets):
2227         * platform/graphics/filters/FilterOperations.h:
2228         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Removed.
2229         * platform/graphics/filters/ValidatedCustomFilterOperation.h: Removed.
2230         * platform/graphics/filters/texmap/CustomFilterValidatedProgramTextureMapper.cpp: Removed.
2231         * platform/graphics/filters/texmap/TextureMapperPlatformCompiledProgram.h: Removed.
2232         * platform/graphics/gpu/Texture.cpp:
2233         * platform/graphics/texmap/TextureMapper.h:
2234         * platform/graphics/texmap/TextureMapperGL.cpp:
2235         (WebCore::getPassesRequiredForFilter):
2236         (WebCore::BitmapTextureGL::applyFilters):
2237         * platform/graphics/texmap/TextureMapperGL.h:
2238         * platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:
2239         (WebCore::CompositingCoordinator::clearPendingStateChanges):
2240         (WebCore::CompositingCoordinator::syncLayerState):
2241         * platform/graphics/texmap/coordinated/CompositingCoordinator.h:
2242         * platform/graphics/texmap/coordinated/CoordinatedCustomFilterOperation.h: Removed.
2243         * platform/graphics/texmap/coordinated/CoordinatedCustomFilterProgram.h: Removed.
2244         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
2245         (WebCore::CoordinatedGraphicsScene::setLayerFiltersIfNeeded):
2246         (WebCore::CoordinatedGraphicsScene::commitSceneState):
2247         (WebCore::CoordinatedGraphicsScene::setLayerAnimationsIfNeeded):
2248         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
2249         * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
2250         * rendering/FilterEffectRenderer.cpp:
2251         (WebCore::FilterEffectRenderer::FilterEffectRenderer):
2252         (WebCore::FilterEffectRenderer::build):
2253         (WebCore::FilterEffectRenderer::computeSourceImageRectForDirtyRect):
2254         * rendering/FilterEffectRenderer.h:
2255         * rendering/RenderLayer.cpp:
2256         (WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
2257         (WebCore::RenderLayer::calculateClipRects):
2258         * rendering/RenderLayer.h:
2259         * rendering/RenderLayerBacking.cpp:
2260         (WebCore::RenderLayerBacking::updateFilters):
2261         * rendering/RenderLayerFilterInfo.cpp:
2262         (WebCore::RenderLayer::FilterInfo::~FilterInfo):
2263         * rendering/RenderLayerFilterInfo.h:
2264         * rendering/RenderView.cpp:
2265         * rendering/RenderView.h:
2266         * rendering/style/StyleCachedShader.cpp: Removed.
2267         * rendering/style/StyleCachedShader.h: Removed.
2268         * rendering/style/StyleCustomFilterProgram.cpp: Removed.
2269         * rendering/style/StyleCustomFilterProgram.h: Removed.
2270         * rendering/style/StyleCustomFilterProgramCache.cpp: Removed.
2271         * rendering/style/StyleCustomFilterProgramCache.h: Removed.
2272         * rendering/style/StylePendingShader.h: Removed.
2273         * rendering/style/StyleShader.h: Removed.
2274
2275 2014-01-22  Jon Honeycutt  <jhoneycutt@apple.com>
2276
2277         REGRESSION(r161967): Crash in WebCore::CachedSVGDocumentReference::load
2278         <https://webkit.org/b/127151>
2279         <rdar://problem/15840760>
2280
2281         There were two issues introduced here; the first is a use-after-free of
2282         CachedSVGDocumentReference objects.
2283
2284         The previous code kept a map from FilterOperation ->
2285         RefPtr<WebKitCSSSVGDocumentValue>, which retained the
2286         CachedSVGDocument. In r161967, this was changed to use a weak HashSet,
2287         which allows stale CachedSVGDocumentReferences in the pending document
2288         set if the owning FilterOperation is deleted. To fix this, we'll keep a
2289         vector of RefPtr<FilterOperation> with pending SVG documents.
2290
2291         The second issue is a null deref in CachedSVGDocumentReference::load();
2292         CachedResourceLoader::requestSVGDocument() can return 0 if (for
2293         example) an invalid URL is passed. r161967 removed a null check as part
2294         of the refactoring.
2295
2296         Reviewed by Dirk Schulze.
2297
2298         Tests: css3/filters/crash-filter-animation-invalid-url.html
2299                css3/filters/crash-invalid-url.html
2300
2301         * css/StyleResolver.cpp:
2302         (WebCore::StyleResolver::State::clear):
2303         Use new member var name.
2304         (WebCore::StyleResolver::loadPendingSVGDocuments):
2305         For each FilterOperation with a pending SVG document, get or create a
2306         CachedSVGDocumentReference, and tell it to load. Changed to use new
2307         function names.
2308         (WebCore::StyleResolver::createFilterOperations):
2309         Append the FilterOperation to the list of FilterOperations with
2310         unloaded SVG documents.
2311
2312         * css/StyleResolver.h:
2313         Changed from using PendingSVGDocumentSet, a weak set, to
2314         a Vector<RefPtr<ReferenceFilterOperation>>.
2315         (WebCore::StyleResolver::State::filtersWithPendingSVGDocuments):
2316         Return the vector.
2317
2318         * loader/cache/CachedSVGDocumentReference.cpp:
2319         (WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
2320         Null check m_document rather than checking m_loadRequested.
2321         m_loadRequested may be true when m_document is 0.
2322         (WebCore::CachedSVGDocumentReference::load):
2323         Null check the result of CachedResourceLoader::requestSVGDocument().
2324
2325         * platform/graphics/filters/FilterOperation.cpp:
2326         (WebCore::ReferenceFilterOperation::getOrCreateCachedSVGDocumentReference):
2327         Create, if necessary, and return the CachedSVGDocumentReference.
2328
2329         * platform/graphics/filters/FilterOperation.h:
2330         Replaced createCachedSVGDocumentReference() with
2331         getOrCreateCachedSVGDocumentReference(), which makes for slightly
2332         cleaner code.
2333
2334 2014-01-23  Antti Koivisto  <antti@apple.com>
2335
2336         Don't enable speculative tiles immediately after main load stops progressing
2337         https://bugs.webkit.org/show_bug.cgi?id=127507
2338
2339         Reviewed by Andreas Kling.
2340
2341         It is common for timers and events to trigger more loading after the initial main frame loading
2342         has completed. We should delay a bit before enabling speculative tiles and keep them disabled 
2343         if loading still continues.
2344
2345         * page/FrameView.cpp:
2346         (WebCore::FrameView::FrameView):
2347         (WebCore::FrameView::adjustTiledBackingCoverage):
2348         (WebCore::shouldEnableSpeculativeTilingDuringLoading):
2349         (WebCore::FrameView::enableSpeculativeTilingIfNeeded):
2350         
2351             When load progression stops wait 0.5s before enabling speculative tiles.
2352
2353         (WebCore::FrameView::speculativeTilingEnableTimerFired):
2354         
2355             Don't enable speculative tiles if the progression has started again. Instead restart the timer.
2356
2357         * page/FrameView.h:
2358         * rendering/RenderLayerBacking.cpp:
2359         (WebCore::RenderLayerBacking::RenderLayerBacking):
2360         (WebCore::computeTileCoverage):
2361         
2362             Move the FrameView level code to FrameView (so we don't need to add a timer to every RenderLayerBacking).
2363
2364         * rendering/RenderLayerBacking.h:
2365
2366 2014-01-23  Antti Koivisto  <antti@apple.com>
2367
2368         Loads started soon after main frame completion should be considered part of the main load
2369         https://bugs.webkit.org/show_bug.cgi?id=127504
2370
2371         Reviewed by Andreas Kling.
2372
2373         ProgressTracker currently decides that main load is complete when the main frame stops loading. 
2374         However it is common that timers and onload events trigger more loads immediately (for example 
2375         by inserting iframes) and loading continues visually. These should be considered as part of the
2376         main load for paint throttling and speculative tiling coverage purposes.
2377
2378         * loader/ProgressTracker.cpp:
2379         (WebCore::ProgressTracker::ProgressTracker):
2380         (WebCore::ProgressTracker::progressStarted):
2381         
2382             Track whether this is considered part of the main load or not with a boolean. 
2383             It is set for subframe loads too if they start loading soon (within 1s) after the main frame load completes.
2384
2385         (WebCore::ProgressTracker::finalProgressComplete):
2386         
2387             Get a timestamp.
2388
2389         (WebCore::ProgressTracker::isMainLoadProgressing):
2390
2391             New definition of "main load".
2392
2393         * loader/ProgressTracker.h:
2394
2395 2014-01-23  peavo@outlook.com  <peavo@outlook.com>
2396
2397         [WinCairo] Compile error.
2398         https://bugs.webkit.org/show_bug.cgi?id=127499
2399
2400         Reviewed by Brent Fulgham.
2401
2402         * platform/network/curl/ResourceError.h: Include <winsock2.h> before <curl/curl.h>.
2403
2404 2014-01-23  Brady Eidson  <beidson@apple.com>
2405
2406         IDB: Implement cross-thread and IPC plumbing for 'get' support
2407         https://bugs.webkit.org/show_bug.cgi?id=127501
2408
2409         Reviewed by Anders Carlsson.
2410
2411         Add isolatedCopy to the IDBGetResult object:
2412         * Modules/indexeddb/IDBGetResult.h:
2413         (WebCore::IDBGetResult::isolatedCopy):
2414
2415         Add a cross-thread and cross-IPC appropriate object for IDBKeyRanges:
2416         * Modules/indexeddb/IDBKeyRangeData.cpp: Copied from Source/WebCore/Modules/indexeddb/IDBGetResult.h.
2417         (WebCore::IDBKeyRangeData::isolatedCopy):
2418         * Modules/indexeddb/IDBKeyRangeData.h: Copied from Source/WebCore/Modules/indexeddb/IDBGetResult.h.
2419         (WebCore::IDBKeyRangeData::IDBKeyRangeData):
2420
2421         Add a few more cross-thread copiers:
2422         * platform/CrossThreadCopier.cpp:
2423         (WebCore::IDBGetResult>::copy):
2424         (WebCore::IDBKeyRangeData>::copy):
2425         * platform/CrossThreadCopier.h:
2426
2427         Project file gunk:
2428         * CMakeLists.txt:
2429         * GNUmakefile.list.am:
2430         * WebCore.exp.in:
2431         * WebCore.xcodeproj/project.pbxproj:
2432
2433 2014-01-23  Jer Noble  <jer.noble@apple.com>
2434
2435         [MSE][Mac] Adopt new AVStreamDataParser delegate API
2436         https://bugs.webkit.org/show_bug.cgi?id=127498
2437
2438         Reviewed by Eric Carlson.
2439
2440         Adopt a new delegate API which passes in whether or not the new AVAsset
2441         is discontinuous, implying the AVAsset is entirely new rather than
2442         just updated with new information.
2443
2444         * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
2445         (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:withDiscontinuity:]):
2446
2447 2014-01-23  Tim Horton  <timothy_horton@apple.com>
2448
2449         PDFPlugin: Use PDFPlugin even if there's an external plugin installed, if it's blocked
2450         https://bugs.webkit.org/show_bug.cgi?id=127415
2451         <rdar://problem/12482452>
2452
2453         Reviewed by Sam Weinig.
2454
2455         * English.lproj/Localizable.strings:
2456         * WebCore.exp.in:
2457         * platform/LocalizedStrings.cpp:
2458         (WebCore::useBlockedPlugInContextMenuTitle):
2459         * platform/LocalizedStrings.h:
2460         Add a localizable string for the generic case, where the client
2461         didn't provide a more specific string for the context menu item.
2462
2463 2014-01-23  peavo@outlook.com  <peavo@outlook.com>
2464
2465         [Curl] There is no way to specify cache folder.
2466         https://bugs.webkit.org/show_bug.cgi?id=125028
2467
2468         Reviewed by Brent Fulgham.
2469
2470         Fixed logical test, disc cache should be disabled if creating cache folder fails.
2471
2472         * platform/network/curl/CurlCacheManager.cpp:
2473         (WebCore::CurlCacheManager::setCacheDirectory):
2474
2475 2014-01-23  Brady Eidson  <beidson@apple.com>
2476
2477         Unreviewed build fix.
2478
2479         * WebCore.xcodeproj/project.pbxproj: Export the new header so WebKit can see it
2480
2481 2014-01-22  Brent Fulgham  <bfulgham@apple.com>
2482
2483         [Win] Update project and solution files for 64-bit builds
2484         https://bugs.webkit.org/show_bug.cgi?id=127457
2485
2486         Reviewed by Eric Carlson.
2487
2488         * WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj: Update for VS2013
2489         * WebCore.vcxproj/WebCore.submit.sln: Add x64 targets
2490         * WebCore.vcxproj/WebCore.vcxproj: Update for VS2013. Also exclude 32-bit specific
2491         assembly when building 64-bit target.
2492         * WebCore.vcxproj/WebCore.vcxproj.filters: Update for VS2013
2493         * config.h: Handle 64-bit type definitions.
2494         * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
2495         (PlatformCAAnimation::setFromValue): Use CGFloat to support 64-bit builds
2496         (PlatformCAAnimation::setToValue): Ditto
2497         (PlatformCAAnimation::setValues): Ditto
2498         * platform/graphics/win/FontCustomPlatformData.cpp:
2499         (WebCore::FontCustomPlatformData::fontPlatformData): Add cast to
2500         support 32- and 64-bit targets.
2501         * platform/graphics/win/GraphicsContextCGWin.cpp:
2502         (WebCore::GraphicsContext::drawLineForDocumentMarker): Use CGFloat to
2503         support 64-bit builds.
2504         * platform/win/PasteboardWin.cpp:
2505         (WebCore::Pasteboard::writeURLToDataObject): Specialize std::min to
2506         work on 32- and 64-bit code.
2507         (WebCore::createGlobalImageFileDescriptor): Ditto
2508         * platform/win/StructuredExceptionHandlerSuppressor.cpp:
2509         (WebCore::StructuredExceptionHandlerSuppressor::StructuredExceptionHandlerSuppressor):
2510         Comment out 32-bit inline assembly.
2511         (WebCore::StructuredExceptionHandlerSuppressor::~StructuredExceptionHandlerSuppressor):
2512         Ditto
2513
2514 2014-01-23  Brady Eidson  <beidson@apple.com>
2515
2516         Make IDBGetResult work with IDBKeyData instead of IDBKey.
2517         https://bugs.webkit.org/show_bug.cgi?id=127493
2518
2519         Reviewed by Eric Carlson.
2520
2521         Also break it into its own header to work better with IPC messages.
2522
2523         * Modules/indexeddb/IDBGetResult.h: Added.
2524         (WebCore::IDBGetResult::IDBGetResult):
2525
2526         * Modules/indexeddb/IDBServerConnection.h:
2527
2528         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
2529         (WebCore::GetOperation::perform):
2530
2531         * WebCore.xcodeproj/project.pbxproj:
2532
2533 2014-01-23  Mátyás Mustoha  <mmatyas@inf.u-szeged.hu>
2534
2535         [curl] Add storage limit to cache manager
2536         https://bugs.webkit.org/show_bug.cgi?id=125779
2537
2538         Reviewed by Brent Fulgham.
2539
2540         Sets a local disc storage size limit for the cache manager
2541         used by the curl network backend.
2542
2543         * platform/network/curl/CurlCacheEntry.cpp:
2544         (WebCore::CurlCacheEntry::CurlCacheEntry):
2545         (WebCore::CurlCacheEntry::isCached):
2546         (WebCore::CurlCacheEntry::saveCachedData):
2547         (WebCore::CurlCacheEntry::readCachedData):
2548         (WebCore::CurlCacheEntry::didFail):
2549         (WebCore::CurlCacheEntry::didFinishLoading):
2550         (WebCore::CurlCacheEntry::loadFileToBuffer):
2551         (WebCore::CurlCacheEntry::parseResponseHeaders):
2552         (WebCore::CurlCacheEntry::entrySize):
2553         * platform/network/curl/CurlCacheEntry.h:
2554         (WebCore::CurlCacheEntry::requestHeaders):
2555         * platform/network/curl/CurlCacheManager.cpp:
2556         (WebCore::CurlCacheManager::CurlCacheManager):
2557         (WebCore::CurlCacheManager::setStorageSizeLimit):
2558         (WebCore::CurlCacheManager::loadIndex):
2559         (WebCore::CurlCacheManager::saveIndex):
2560         (WebCore::CurlCacheManager::makeRoomForNewEntry):
2561         (WebCore::CurlCacheManager::didReceiveResponse):
2562         (WebCore::CurlCacheManager::didReceiveData):
2563         (WebCore::CurlCacheManager::invalidateCacheEntry):
2564         (WebCore::CurlCacheManager::readCachedData):
2565         * platform/network/curl/CurlCacheManager.h:
2566         (WebCore::CurlCacheManager::cacheDirectory):
2567
2568 2014-01-23  Carlos Garcia Campos  <cgarcia@igalia.com>
2569
2570         Unreviewed. Fix automake warning.
2571
2572         * GNUmakefile.list.am: Remove trailing whitespaces.
2573
2574 2014-01-23  Mihai Maerean  <mmaerean@adobe.com>
2575
2576         [CSS Regions] Fix positioning composited layers when the region has overflow:hidden
2577         https://bugs.webkit.org/show_bug.cgi?id=124042
2578
2579         Reviewed by Mihnea Ovidenie.
2580
2581         If there's a clipping GraphicsLayer on the hierarchy, substract its offset, since it's its
2582         parent that positions us.
2583
2584         Tests: compositing/regions/position-layer-inside-region-overflow-hidden.html
2585                compositing/regions/position-layer-inside-overflow-hidden.html
2586                compositing/regions/position-layers-inside-region-overflow-hidden.html
2587                compositing/regions/position-layers-inside-regions-overflow-hidden.html
2588
2589         * rendering/RenderLayerBacking.cpp:
2590         (WebCore::RenderLayerBacking::adjustAncestorCompositingBoundsForFlowThread): The position
2591         must also be correct when the region has box-shadow that inflates the region's layer. The
2592         composited layers from the flow thread should be rendered in the same position whether the
2593         associated region has clipping or not.
2594         Using the position of the clipping layer instead of the location of the clipbox makes it
2595         also work with box-shadow that inflates the region's graphics layer.
2596
2597 2014-01-23  Andrei Bucur  <abucur@adobe.com>
2598
2599         [CSS Regions] Convert regions iterator loops to range-based loops
2600         https://bugs.webkit.org/show_bug.cgi?id=127464
2601
2602         Reviewed by Antti Koivisto.
2603
2604         Replace most of the iterator loops in the region implementation with
2605         range based for loops. The for loops that iterate only over subsets
2606         of collections have not been changed.
2607
2608         Tests: no new tests, this is a refactoring patch.
2609
2610         * dom/WebKitNamedFlow.cpp:
2611         (WebCore::WebKitNamedFlow::firstEmptyRegionIndex):
2612         (WebCore::WebKitNamedFlow::getRegionsByContent):
2613         (WebCore::WebKitNamedFlow::getRegions):
2614         (WebCore::WebKitNamedFlow::getContent):
2615         * inspector/InspectorOverlay.cpp:
2616         (WebCore::buildObjectForCSSRegionsHighlight):
2617         * rendering/RenderFlowThread.cpp:
2618         (WebCore::RenderFlowThread::validateRegions):
2619         (WebCore::RenderFlowThread::updateLogicalWidth):
2620         (WebCore::RenderFlowThread::computeLogicalHeight):
2621         (WebCore::RenderFlowThread::repaintRectangleInRegions):
2622         (WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
2623         (WebCore::RenderFlowThread::logicalWidthChangedInRegionsForBlock):
2624         (WebCore::RenderFlowThread::clearRenderBoxRegionInfoAndCustomStyle):
2625         (WebCore::RenderFlowThread::isAutoLogicalHeightRegionsCountConsistent):
2626         (WebCore::RenderFlowThread::markAutoLogicalHeightRegionsForLayout):
2627         (WebCore::RenderFlowThread::markRegionsForOverflowLayoutIfNeeded):
2628         (WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
2629         (WebCore::RenderFlowThread::collectLayerFragments):
2630         (WebCore::RenderFlowThread::fragmentsBoundingBox):
2631         * rendering/RenderNamedFlowFragment.cpp:
2632         (WebCore::RenderNamedFlowFragment::setRegionObjectsRegionStyle):
2633         (WebCore::RenderNamedFlowFragment::restoreRegionObjectsOriginalStyle):
2634         * rendering/RenderNamedFlowThread.cpp:
2635         (WebCore::RenderNamedFlowThread::clearContentElements):
2636         (WebCore::RenderNamedFlowThread::nextRendererForNode):
2637         (WebCore::RenderNamedFlowThread::dependsOn):
2638         (WebCore::RenderNamedFlowThread::computeOversetStateForRegions):
2639         (WebCore::RenderNamedFlowThread::checkInvalidRegions):
2640         (WebCore::RenderNamedFlowThread::pushDependencies):
2641         (WebCore::RenderNamedFlowThread::registerNamedFlowContentElement):
2642         (WebCore::isContainedInElements):
2643         (WebCore::RenderNamedFlowThread::getRanges):
2644         (WebCore::RenderNamedFlowThread::checkRegionsWithStyling):
2645         (WebCore::RenderNamedFlowThread::clearRenderObjectCustomStyle):
2646         * rendering/RenderTreeAsText.cpp:
2647         (WebCore::writeRenderRegionList):
2648
2649 2014-01-23  László Langó  <llango.u-szeged@partner.samsung.com>
2650
2651         Range should be constructable.
2652         https://bugs.webkit.org/show_bug.cgi?id=115639
2653
2654         Reviewed by Ryosuke Niwa.
2655
2656         http://www.w3.org/TR/2013/WD-dom-20131107/#interface-range
2657         Now we can do `new Range()` instead of `document.createRange()`.
2658
2659         Backported from Blink: https://chromium.googlesource.com/chromium/blink/+/47ca40efdf58a4787aa33aa75a35778899b1c002%5E%21
2660
2661         Test: fast/dom/Range/range-constructor.html
2662
2663         * dom/Range.cpp:
2664         (WebCore::Range::create):
2665         * dom/Range.h:
2666         * dom/Range.idl:
2667
2668 2014-01-23  ChangSeok Oh  <changseok.oh@collabora.com>
2669
2670         Unreviewed build fix for gles after r162565. Add missing definitions.
2671
2672         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
2673         (WebCore::GraphicsContext3D::drawArraysInstanced):
2674         (WebCore::GraphicsContext3D::drawElementsInstanced):
2675         (WebCore::GraphicsContext3D::vertexAttribDivisor):
2676
2677 2014-01-22  Carlos Garcia Campos  <cgarcia@igalia.com>
2678
2679         [GLIB] Use GUniquePtr instead of GOwnPtr
2680         https://bugs.webkit.org/show_bug.cgi?id=127431
2681
2682         Reviewed by Martin Robinson.
2683
2684         GUniquePtr is a template alias of std::unique_ptr with a custom
2685         deleter that replaces GOwnPtr. GOwnPtr is still used for the cases
2686         where the output pointer is needed, but it will also be replaced soon.
2687
2688         * GNUmakefile.list.am:
2689         * PlatformGTK.cmake:
2690         * accessibility/atk/AXObjectCacheAtk.cpp:
2691         * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
2692         (getAttributeSetForAccessibilityObject):
2693         (accessibilityObjectLength):
2694         (textExtents):
2695         (webkitAccessibleTextGetChar):
2696         (numberOfReplacedElementsBeforeOffset):
2697         * page/ContextMenuController.cpp:
2698         * platform/SharedBuffer.h:
2699         * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
2700         (webKitWebAudioSrcConstructed):
2701         (webKitWebAudioSrcLoop):
2702         * platform/audio/gtk/AudioBusGtk.cpp:
2703         (WebCore::AudioBus::loadPlatformResource):
2704         * platform/geoclue/GeolocationProviderGeoclue.cpp:
2705         * platform/graphics/gstreamer/ImageGStreamerCairo.cpp:
2706         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2707         (WebCore::MediaPlayerPrivateGStreamer::setAudioStreamProperties):
2708         (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
2709         * platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp:
2710         (webKitMediaSrcAddSrc):
2711         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
2712         (webKitWebSrcStart):
2713         (ResourceHandleStreamingClient::wasBlocked):
2714         (ResourceHandleStreamingClient::cannotShowURL):
2715         * platform/graphics/gtk/ImageBufferGtk.cpp:
2716         (WebCore::encodeImage):
2717         (WebCore::ImageBuffer::toDataURL):
2718         * platform/graphics/gtk/ImageGtk.cpp:
2719         (WebCore::getThemeIconFileName):
2720         (WebCore::Image::loadPlatformResource):
2721         * platform/gtk/ContextMenuGtk.cpp:
2722         (WebCore::ContextMenu::itemCount):
2723         (WebCore::contextMenuItemVector):
2724         * platform/gtk/ContextMenuItemGtk.cpp:
2725         (WebCore::createPlatformMenuItemDescription):
2726         * platform/gtk/DataObjectGtk.cpp:
2727         (WebCore::DataObjectGtk::setURIList):
2728         (WebCore::DataObjectGtk::setURL):
2729         * platform/gtk/FileSystemGtk.cpp:
2730         (WebCore::filenameToString):
2731         (WebCore::fileSystemRepresentation):
2732         (WebCore::filenameForDisplay):
2733         (WebCore::pathGetFileName):
2734         (WebCore::applicationDirectoryPath):
2735         (WebCore::sharedResourcesPath):
2736         (WebCore::directoryName):
2737         (WebCore::listDirectory):
2738         (WebCore::openTemporaryFile):
2739         * platform/gtk/GOwnPtrGtk.cpp: Removed.
2740         * platform/gtk/GOwnPtrGtk.h: Removed.
2741         * platform/gtk/GUniquePtrGtk.h: Added.
2742         * platform/gtk/GamepadsGtk.cpp:
2743         (WebCore::GamepadsGtk::GamepadsGtk):
2744         * platform/gtk/GtkClickCounter.cpp:
2745         (WebCore::GtkClickCounter::shouldProcessButtonEvent):
2746         * platform/gtk/GtkInputMethodFilter.cpp:
2747         (WebCore::GtkInputMethodFilter::sendCompositionAndPreeditWithFakeKeyEvents):
2748         * platform/gtk/GtkPopupMenu.cpp:
2749         (WebCore::GtkPopupMenu::popUp):
2750         (WebCore::GtkPopupMenu::typeAheadFind):
2751         * platform/gtk/LanguageGtk.cpp:
2752         (WebCore::platformLanguage):
2753         * platform/gtk/LocalizedStringsGtk.cpp:
2754         (WebCore::imageTitle):
2755         (WebCore::localizedMediaTimeDescription):
2756         * platform/gtk/PasteboardHelper.cpp:
2757         (WebCore::selectionDataToUTF8String):
2758         (WebCore::PasteboardHelper::getClipboardContents):
2759         (WebCore::PasteboardHelper::fillSelectionData):
2760         * platform/gtk/PopupMenuGtk.cpp:
2761         (WebCore::PopupMenuGtk::createGtkActionForMenuItem):
2762         (WebCore::PopupMenuGtk::show):
2763         * platform/gtk/WebKitAuthenticationWidget.cpp:
2764         (webkitAuthenticationWidgetInitialize):
2765         * platform/network/ResourceHandleInternal.h:
2766         * platform/network/gtk/CredentialBackingStore.cpp:
2767         (WebCore::credentialForChallengeAsyncReadyCallback):
2768         * platform/network/soup/CookieJarSoup.cpp:
2769         (WebCore::setCookiesFromDOM):
2770         (WebCore::cookiesForSession):
2771         (WebCore::getRawCookies):
2772         (WebCore::deleteCookie):
2773         (WebCore::getHostnamesWithCookies):
2774         (WebCore::deleteCookiesForHostname):
2775         (WebCore::deleteAllCookies):
2776         * platform/network/soup/DNSSoup.cpp:
2777         * platform/network/soup/GUniquePtrSoup.h: Added.
2778         * platform/network/soup/ResourceErrorSoup.cpp:
2779         (WebCore::failingURI):
2780         * platform/network/soup/ResourceHandleSoup.cpp:
2781         (WebCore::ResourceHandle::ensureReadBuffer):
2782         (WebCore::cleanupSoupRequestOperation):
2783         (WebCore::createSoupRequestAndMessageForHandle):
2784         * platform/network/soup/ResourceRequestSoup.cpp:
2785         (WebCore::ResourceRequest::updateSoupMessageMembers):
2786         (WebCore::ResourceRequest::updateSoupMessage):
2787         * platform/network/soup/ResourceResponseSoup.cpp:
2788         * platform/network/soup/SoupURIUtils.cpp:
2789         (WebCore::soupURIToKURL):
2790         * platform/soup/SharedBufferSoup.cpp:
2791         (WebCore::SharedBuffer::SharedBuffer):
2792         (WebCore::SharedBuffer::clearPlatformData):
2793         (WebCore::SharedBuffer::maybeTransferPlatformData):
2794         (WebCore::SharedBuffer::hasPlatformData):
2795         * plugins/gtk/PluginPackageGtk.cpp:
2796         (WebCore::PluginPackage::fetchInfo):
2797         (WebCore::PluginPackage::load):
2798
2799 2014-01-22  Simon Fraser  <simon.fraser@apple.com>
2800
2801         Surround fixedVisibleContentRect code with USE(TILED_BACKING_STORE)
2802         https://bugs.webkit.org/show_bug.cgi?id=127461
2803
2804         Reviewed by Andreas Kling.
2805
2806         The "fixedVisibleContentRect" code path is only used by platforms
2807         which enabled TILED_BACKING_STORE, so to reduce confusion, surround
2808         this code with #if USE(TILED_BACKING_STORE).
2809
2810         * page/Frame.cpp:
2811         (WebCore::Frame::createView):
2812         * page/FrameView.cpp:
2813         * page/FrameView.h:
2814         * platform/ScrollView.cpp:
2815         (WebCore::ScrollView::unscaledVisibleContentSize):
2816         (WebCore::ScrollView::visibleContentRect):
2817         * platform/ScrollView.h:
2818         (WebCore::ScrollView::visibleSize):
2819
2820 2014-01-22  Myles C. Maxfield  <mmaxfield@apple.com>
2821
2822         ASSERTION FAILED: v.isFixed() in WebCore::RenderStyle::setWordSpacing
2823         https://bugs.webkit.org/show_bug.cgi?id=126987
2824
2825         Reviewed by Simon Fraser.
2826
2827         When "inherit" is specified and there is no parent, Length values have an "Auto" type
2828
2829         Test: fast/css3-text/css3-word-spacing-percentage/word-spacing-crash.html
2830
2831         * rendering/style/RenderStyle.cpp:
2832         (WebCore::RenderStyle::setWordSpacing):
2833
2834 2014-01-22  Samuel White  <samuel_white@apple.com>
2835
2836         AX: Can't always increment web sliders.
2837         https://bugs.webkit.org/show_bug.cgi?id=127451
2838
2839         Reviewed by Chris Fleizach.
2840
2841         Clamping the decrement/increment amount to one when necessary (if a percent change would result in a change of less than one).
2842
2843         Test: accessibility/range-alter-by-percent.html
2844
2845         * accessibility/AccessibilityNodeObject.cpp:
2846         (WebCore::AccessibilityNodeObject::changeValueByPercent):
2847
2848 2014-01-22  Myles C. Maxfield  <mmaxfield@apple.com>
2849
2850         Remove CSS3_TEXT_DECORATION define
2851         https://bugs.webkit.org/show_bug.cgi?id=127333
2852
2853         Reviewed by Simon Fraser.
2854
2855         This is required for unprefixing the text-decoration-* CSS properties.
2856
2857         No new tests are necessary becase the flag was already on by default.
2858
2859         * Configurations/FeatureDefines.xcconfig:
2860         * css/CSSComputedStyleDeclaration.cpp:
2861         (WebCore::renderTextDecorationSkipFlagsToCSSValue):
2862         (WebCore::ComputedStyleExtractor::propertyValue):
2863         * css/CSSParser.cpp:
2864         (WebCore::isColorPropertyID):
2865         (WebCore::CSSParser::parseValue):
2866         (WebCore::CSSParser::addTextDecorationProperty):
2867         (WebCore::CSSParser::parseTextUnderlinePosition):
2868         * css/CSSParser.h:
2869         * css/CSSPrimitiveValueMappings.h:
2870         (WebCore::CSSPrimitiveValue::operator TextUnderlinePosition):
2871         * css/CSSPropertyNames.in:
2872         * css/CSSValueKeywords.in:
2873         * css/DeprecatedStyleBuilder.cpp:
2874         (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
2875         * css/StylePropertyShorthand.cpp:
2876         (WebCore::webkitTextDecorationShorthand):
2877         (WebCore::shorthandForProperty):
2878         (WebCore::matchingShorthandsForLonghand):
2879         * css/StylePropertyShorthand.h:
2880         * css/StyleResolver.cpp:
2881         (WebCore::shouldApplyPropertyInParseOrder):
2882         (WebCore::isValidVisitedLinkProperty):
2883         (WebCore::StyleResolver::applyProperty):
2884         * platform/graphics/GraphicsContext.h:
2885         * platform/graphics/cairo/GraphicsContextCairo.cpp:
2886         (WebCore::GraphicsContext::setPlatformStrokeStyle):
2887         * platform/graphics/cg/GraphicsContextCG.cpp:
2888         (WebCore::GraphicsContext::platformInit):
2889         * platform/graphics/wince/GraphicsContextWinCE.cpp:
2890         (WebCore::createPen):
2891         * rendering/InlineFlowBox.cpp:
2892         (WebCore::InlineFlowBox::computeMaxLogicalTop):
2893         * rendering/InlineFlowBox.h:
2894         * rendering/InlineTextBox.cpp:
2895         (WebCore::textDecorationStyleToStrokeStyle):
2896         (WebCore::boundingBoxForAllActiveDecorations):
2897         (WebCore::InlineTextBox::paintDecoration):
2898         * rendering/RenderObject.cpp:
2899         (WebCore::decorationColor):
2900         * rendering/RootInlineBox.cpp:
2901         (WebCore::RootInlineBox::maxLogicalTop):
2902         * rendering/RootInlineBox.h:
2903         * rendering/style/RenderStyle.cpp:
2904         (WebCore::RenderStyle::changeRequiresRepaintIfTextOrBorderOrOutline):
2905         (WebCore::RenderStyle::colorIncludingFallback):
2906         (WebCore::RenderStyle::visitedDependentColor):
2907         * rendering/style/RenderStyle.h:
2908         * rendering/style/RenderStyleConstants.h:
2909         * rendering/style/StyleRareInheritedData.cpp:
2910         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
2911         (WebCore::StyleRareInheritedData::operator==):
2912         * rendering/style/StyleRareInheritedData.h:
2913         * rendering/style/StyleRareNonInheritedData.cpp:
2914         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
2915         (WebCore::StyleRareNonInheritedData::operator==):
2916         * rendering/style/StyleRareNonInheritedData.h:
2917
2918 2014-01-22  Chris Fleizach  <cfleizach@apple.com>
2919
2920         AX: Do not return an accessible name for an object just because it has tabindex=0
2921         https://bugs.webkit.org/show_bug.cgi?id=126914
2922
2923         Reviewed by Mario Sanchez Prada.
2924
2925         WebKit has code to return an accessible name for any object that is "generically" focusable (ie. tabindex=0).
2926         This behavior, which is not supported in ARIA, has caused many problems for VoiceOver. Often VoiceOver will
2927         speak all the text underneath any type of group.
2928
2929         I think we need to revert this behavior and follow the ARIA spec more closely.
2930
2931         Test: accessibility/aria-describedby-ensures-visibility.html
2932
2933         * accessibility/AccessibilityNodeObject.cpp:
2934         (WebCore::AccessibilityNodeObject::visibleText):
2935         (WebCore::AccessibilityNodeObject::title):
2936
2937 2014-01-22  Brady Eidson  <beidson@apple.com>
2938
2939         The IDB backing store get() method shouldn't call IDB callbacks directly
2940         https://bugs.webkit.org/show_bug.cgi?id=127453
2941
2942         Reviewed by Beth Dakin.
2943
2944         * Modules/indexeddb/IDBServerConnection.h:
2945         (WebCore::IDBGetResult::IDBGetResult): Add a new structure to hold all of the
2946           possible results of a get() call.
2947
2948         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
2949         (WebCore::IDBServerConnectionLevelDB::get): Don't call IDBCallbacks directly.
2950           Instead, return the GetResult to the GetOperation which will make IDBCallbacks.
2951         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
2952
2953         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
2954         (WebCore::GetOperation::perform): Get all of the IDBGetResults in the completion callback
2955           make the appropriate IDBCallback.
2956         * Modules/indexeddb/IDBTransactionBackendOperations.h:
2957
2958 2014-01-22  Dean Jackson  <dino@apple.com>
2959
2960         Unreviewed attempt to fix 32-bit builds.
2961
2962         Use long long rather than GC3Dintptr.
2963
2964         * html/canvas/ANGLEInstancedArrays.cpp:
2965         (WebCore::ANGLEInstancedArrays::drawElementsInstancedANGLE):
2966         * html/canvas/ANGLEInstancedArrays.h:
2967         * html/canvas/WebGLRenderingContext.cpp:
2968         (WebCore::WebGLRenderingContext::drawElementsInstanced):
2969         * html/canvas/WebGLRenderingContext.h:
2970
2971 2014-01-21  Brady Eidson  <beidson@apple.com>
2972
2973         IDB: "Put" support
2974         <rdar://problem/15779643> and https://bugs.webkit.org/show_bug.cgi?id=127401
2975
2976         Reviewed by Alexey Proskuryakov.
2977
2978         Add persistent encode/decode for storage to the database:
2979         * Modules/indexeddb/IDBKey.cpp:
2980         (WebCore::IDBKey::encode):
2981         (WebCore::IDBKey::decode):
2982         * Modules/indexeddb/IDBKey.h:
2983
2984         Add a data class to represent IDBKey suitable for crossing IPC:
2985         * Modules/indexeddb/IDBKeyData.cpp: Added.
2986         (WebCore::IDBKeyData::IDBKeyData):
2987         (WebCore::IDBKeyData::maybeCreateIDBKey):
2988         (WebCore::IDBKeyData::isolatedCopy):
2989         * Modules/indexeddb/IDBKeyData.h: Added.
2990         (WebCore::IDBKeyData::IDBKeyData):
2991
2992         * platform/CrossThreadCopier.cpp:
2993         (WebCore::IDBKeyData>::copy):
2994         * platform/CrossThreadCopier.h:
2995
2996         * WebCore.exp.in:
2997         * WebCore.xcodeproj/project.pbxproj:
2998
2999 2014-01-22  Dean Jackson  <dino@apple.com>
3000
3001         [WebGL] Implement ANGLE_instanced_arrays
3002         https://bugs.webkit.org/show_bug.cgi?id=127257
3003
3004         Reviewed by Brent Fulgham.
3005
3006         Implement the instanced drawing WebGL extension,
3007         ANGLE_instanced_arrays. This is currently Mac-only,
3008         but should be portable to other platforms if their
3009         OpenGL exposes the functions. It's also done in a way
3010         that will make exposing it to WebGL2 simple.
3011
3012         Test: fast/canvas/webgl/angle-instanced-arrays.html
3013
3014         * CMakeLists.txt:
3015         * DerivedSources.cpp:
3016         * DerivedSources.make:
3017         * GNUmakefile.list.am:
3018         * WebCore.vcxproj/WebCore.vcxproj:
3019         * WebCore.vcxproj/WebCore.vcxproj.filters:
3020         * WebCore.xcodeproj/project.pbxproj:
3021         Add the new files to all the build systems.
3022
3023         * bindings/js/JSWebGLRenderingContextCustom.cpp:
3024         (WebCore::toJS): Link JS side to C++ side.
3025
3026         * html/canvas/ANGLEInstancedArrays.cpp: Added.
3027         (WebCore::ANGLEInstancedArrays::ANGLEInstancedArrays):
3028         * html/canvas/ANGLEInstancedArrays.h: Added.
3029         * html/canvas/ANGLEInstancedArrays.idl: Added.
3030         New boilerplate files that expose the extension methods.
3031
3032         * html/canvas/WebGLExtension.h: New extension enum.
3033
3034         * html/canvas/WebGLRenderingContext.cpp:
3035         (WebCore::WebGLRenderingContext::validateVertexAttributes): Add an optional
3036         parameter representing the number of instance primitives we are asked
3037         to draw. Use that for the draw count if looking at an instanced attribute.
3038         Also make sure we see at least one non-instanced attribute.
3039         (WebCore::WebGLRenderingContext::validateDrawArrays): Update this so it could
3040         be used from either drawArrays or drawArraysInstanced.
3041         (WebCore::WebGLRenderingContext::drawArrays):
3042         (WebCore::WebGLRenderingContext::validateDrawElements): Same here, now can be
3043         used by the instanced and non-instanced versions.
3044         (WebCore::WebGLRenderingContext::drawElements):
3045         (WebCore::WebGLRenderingContext::getExtension): Create and return the new extension.
3046         (WebCore::WebGLRenderingContext::getSupportedExtensions): Add new extension to the list.
3047         (WebCore::WebGLRenderingContext::getVertexAttrib): Intercept a query to the divisor
3048         attribute and return the value we kept in the state.
3049         (WebCore::WebGLRenderingContext::drawArraysInstanced): Call the GC3D method.
3050         (WebCore::WebGLRenderingContext::drawElementsInstanced): Ditto.
3051         (WebCore::WebGLRenderingContext::vertexAttribDivisor): Ditto.
3052
3053         * html/canvas/WebGLRenderingContext.h: Define the new methods and parameters.
3054
3055         * html/canvas/WebGLVertexArrayObjectOES.cpp:
3056         (WebCore::WebGLVertexArrayObjectOES::setVertexAttribDivisor): Keep a record of the
3057         divisor if we set it.
3058         * html/canvas/WebGLVertexArrayObjectOES.h:
3059         (WebCore::WebGLVertexArrayObjectOES::VertexAttribState::VertexAttribState):
3060
3061         * platform/graphics/GraphicsContext3D.h: New enum.
3062         * platform/graphics/mac/GraphicsContext3DMac.mm:
3063         (WebCore::GraphicsContext3D::drawArraysInstanced): The actual calls into OpenGL.
3064         (WebCore::GraphicsContext3D::drawElementsInstanced): Ditto.
3065         (WebCore::GraphicsContext3D::vertexAttribDivisor): Ditto.
3066
3067         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp: Empty implementations
3068         for non-mac platforms.
3069
3070         * platform/graphics/ios/GraphicsContext3DIOS.h: Define the iOS names for the
3071         functions.
3072
3073 2014-01-22  Zalan Bujtas  <zalan@apple.com>
3074
3075         [CSS Shapes] shape-inside rectangle layout can fail
3076         https://bugs.webkit.org/show_bug.cgi?id=124784
3077
3078         Reviewed by Darin Adler.
3079
3080         Early subpixel rounding/flooring/ceiling can have unwanted
3081         side effect on the final pixel value. Delay pixel
3082         conversions as much as possible.
3083
3084         Existing test is changed to reflect subpixel functionality.
3085
3086         * rendering/shapes/RectangleShape.cpp:
3087         (WebCore::RectangleShape::firstIncludedIntervalLogicalTop):
3088
3089 2014-01-22  Jochen Eisinger  <jochen@chromium.org>
3090
3091         Add protocolIsInHTTPFamily for strings and use it where appropriate
3092         https://bugs.webkit.org/show_bug.cgi?id=127336
3093
3094         Reviewed by Alexey Proskuryakov.
3095
3096         * html/HTMLAnchorElement.cpp:
3097         (WebCore::HTMLAnchorElement::parseAttribute):
3098         * page/ContentSecurityPolicy.cpp:
3099         (WebCore::CSPSource::schemeMatches):
3100         * page/SecurityPolicy.cpp:
3101         (WebCore::SecurityPolicy::generateReferrerHeader):
3102         * platform/URL.cpp:
3103         (WebCore::protocolIsInHTTPFamily):
3104         * platform/URL.h:
3105
3106 2014-01-22  Zalan Bujtas  <zalan@apple.com>
3107
3108         Subpixel Layout: SimpleLineLayout needs more position rounding to match InlineFlowBox layout.
3109         https://bugs.webkit.org/show_bug.cgi?id=127404
3110
3111         Reviewed by Antti Koivisto.
3112
3113         In order to produce a CSS pixel perfect layout, SimpleLineLayout needs to
3114         round line positions to CSS (integral) position similarly to InlineFlowBox.
3115
3116         Existing tests cover it.
3117
3118         * rendering/SimpleLineLayoutResolver.h:
3119         (WebCore::SimpleLineLayout::RunResolver::Run::rect):
3120         (WebCore::SimpleLineLayout::RunResolver::Run::baseline):
3121
3122 2014-01-22  Joseph Pecoraro  <pecoraro@apple.com>
3123
3124         Unreviewed rollout of r162534, this caused inspector test failures.
3125
3126         * bindings/js/PageScriptDebugServer.cpp:
3127         (WebCore::PageScriptDebugServer::addListener):
3128         (WebCore::PageScriptDebugServer::removeListener):
3129         (WebCore::PageScriptDebugServer::recompileAllJSFunctions):
3130         (WebCore::PageScriptDebugServer::didRemoveLastListener):
3131         * bindings/js/PageScriptDebugServer.h:
3132         * bindings/js/ScriptDebugServer.cpp:
3133         (WebCore::ScriptDebugServer::ScriptDebugServer):
3134         (WebCore::ScriptDebugServer::recompileAllJSFunctionsSoon):
3135         (WebCore::ScriptDebugServer::recompileAllJSFunctionsTimerFired):
3136         * bindings/js/ScriptDebugServer.h:
3137         * bindings/js/WorkerScriptDebugServer.cpp:
3138         (WebCore::WorkerScriptDebugServer::addListener):
3139         (WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
3140         (WebCore::WorkerScriptDebugServer::removeListener):
3141         * inspector/InspectorProfilerAgent.cpp:
3142
3143 2014-01-22  peavo@outlook.com  <peavo@outlook.com>
3144
3145         Crashes in setTextForIterator
3146         https://bugs.webkit.org/show_bug.cgi?id=127424
3147
3148         Reviewed by Brent Fulgham.
3149
3150         * platform/text/icu/UTextProviderLatin1.cpp:
3151         (WebCore::uTextLatin1Clone): Provide correct buffer size in utext_setup function call.
3152         (WebCore::uTextLatin1Access): Give correct buffer size to memset call.
3153         (WebCore::openLatin1UTextProvider): Ditto.
3154
3155 2014-01-22  Jer Noble  <jer.noble@apple.com>
3156
3157         [Mac] MediaPlayerPrivateMediaSourceAVFObjC::load ASSERTs on lots of tests
3158         https://bugs.webkit.org/show_bug.cgi?id=127430
3159
3160         Reviewed by Eric Carlson.
3161
3162         When other registered media engines cannot load a URL, the engine selection
3163         will eventually pick MediaPlayerPrivateMediaSourceAVFObjC and ask it to load
3164         the URL. Instead of ASSERTing here, simply reject the URL by setting the
3165         network state to FormatError.
3166
3167         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
3168         (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load):
3169
3170 2014-01-22  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
3171
3172         [EFL][GTK] Get EFL and GTK compiling with ACCESSIBILITY disabled
3173         https://bugs.webkit.org/show_bug.cgi?id=127119
3174
3175         Reviewed by Mario Sanchez Prada.
3176
3177         At build time, the compiler was not able to determine which Timer's constructor to call in AXObjectCache when
3178         ACCESSIBILITY is not enabled, fixing that.
3179         Also guarding some members in AccessibilityObject that are only being used by EFL and GTK with ACCESSIBILITY.
3180
3181         * accessibility/AXObjectCache.h:
3182         (WebCore::AXObjectCache::AXObjectCache):
3183         * accessibility/AccessibilityObject.h:
3184
3185 2014-01-22  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>
3186
3187         Refactor calculation of hasRx and hasRy values in SVGPathData
3188         https://bugs.webkit.org/show_bug.cgi?id=127423
3189
3190         Reviewed by Darin Adler.
3191
3192         This is a follow-up on https://bugs.webkit.org/show_bug.cgi?id=127337
3193
3194         * rendering/svg/SVGPathData.cpp:
3195         (WebCore::updatePathFromRectElement):
3196
3197 2014-01-21  Joseph Pecoraro  <pecoraro@apple.com>
3198
3199         Web Inspector: Remove recompileAllJSFunctions timer in ScriptDebugServer
3200         https://bugs.webkit.org/show_bug.cgi?id=127409
3201
3202         Reviewed by Timothy Hatcher.
3203
3204         * bindings/js/ScriptDebugServer.h:
3205         * bindings/js/ScriptDebugServer.cpp:
3206         (WebCore::ScriptDebugServer::ScriptDebugServer):
3207         Remove m_recompileTimer and the recompile soon function.
3208         We can just recompile immediately in all existing cases.
3209
3210         * bindings/js/PageScriptDebugServer.h:
3211         * bindings/js/PageScriptDebugServer.cpp:
3212         (WebCore::PageScriptDebugServer::addListener):
3213         (WebCore::PageScriptDebugServer::removeListener):
3214         (WebCore::PageScriptDebugServer::recompileAllJSFunctions):
3215         (WebCore::PageScriptDebugServer::didAddFirstListener):
3216         (WebCore::PageScriptDebugServer::didRemoveLastListener):
3217         Add a "didAddFirstListener" to match "didRemoveLastListener".
3218         Only recompile functions when we attach the debugger and when
3219         we detach the last listener.
3220
3221         * bindings/js/WorkerScriptDebugServer.cpp:
3222         (WebCore::WorkerScriptDebugServer::addListener):
3223         (WebCore::WorkerScriptDebugServer::removeListener):
3224         (WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
3225         Same thing. Also rearrange the functions to read better.
3226
3227         * inspector/InspectorProfilerAgent.cpp:
3228         Use the direct recompile function instead of the removed "soon" version.
3229
3230 2014-01-22  Robert Sipka  <sipka@inf.u-szeged.hu>
3231
3232         [curl] Improve detecting and handling of SSL client certificate
3233         https://bugs.webkit.org/show_bug.cgi?id=125006
3234
3235         Reviewed by Brent Fulgham.
3236
3237         Add client certificate handling.
3238
3239         * platform/network/ResourceHandle.h:
3240         * platform/network/curl/ResourceError.h:
3241         (WebCore::ResourceError::hasSSLConnectError):
3242         * platform/network/curl/ResourceHandleCurl.cpp:
3243         (WebCore::ResourceHandle::setClientCertificateInfo):
3244         * platform/network/curl/ResourceHandleManager.cpp:
3245         (WebCore::ResourceHandleManager::initializeHandle):
3246         * platform/network/curl/SSLHandle.cpp:
3247         (WebCore::addAllowedClientCertificate):
3248         (WebCore::setSSLClientCertificate):
3249         * platform/network/curl/SSLHandle.h:
3250
3251 2014-01-22  Mihai Maerean  <mmaerean@adobe.com>
3252
3253         [CSS Regions] layerOwner in RenderNamedFlowFragment cannot return null
3254         https://bugs.webkit.org/show_bug.cgi?id=127343
3255
3256         Reviewed by Sam Weinig.
3257
3258         RenderNamedFlowFragment::layerOwner cannot return null because regions create stacking
3259         contexts which create layers.
3260
3261         No new tests, no functional change.
3262
3263         * rendering/RenderFlowThread.cpp:
3264         (WebCore::RenderFlowThread::hasCompositingRegionDescendant):
3265         * rendering/RenderLayer.cpp:
3266         (WebCore::RenderLayer::calculateClipRects):
3267         * rendering/RenderLayerBacking.cpp:
3268         (WebCore::RenderLayerBacking::adjustAncestorCompositingBoundsForFlowThread):
3269         * rendering/RenderLayerCompositor.cpp:
3270         (WebCore::RenderLayerCompositor::computeRegionCompositingRequirements):
3271         * rendering/RenderNamedFlowFragment.h:
3272
3273 2014-01-22  Antti Koivisto  <antti@apple.com>
3274
3275         Avoid unthrottled layer flushes triggered by RenderLayerCompositor::ensureRootLayer
3276         https://bugs.webkit.org/show_bug.cgi?id=127426
3277
3278         Reviewed by Anders Carlsson.
3279         
3280         * rendering/RenderLayerCompositor.cpp:
3281         (WebCore::RenderLayerCompositor::updateScrollLayerPosition):
3282         (WebCore::RenderLayerCompositor::frameViewDidScroll):
3283
3284             Factor scroll layer position update to a function.
3285
3286         (WebCore::RenderLayerCompositor::ensureRootLayer):
3287         
3288             Stop calling frameViewDidChangeSize/frameViewDidScroll. Instead call the relevent functions
3289             directly. This avoid unthrottled layer flush that is done when the view actually scrolls.
3290
3291         * rendering/RenderLayerCompositor.h:
3292
3293 2014-01-22  Mihai Tica  <mitica@adobe.com>
3294
3295         [CSS Background Blending] -webkit-background-blend-mode fails for certain SVG files
3296         https://bugs.webkit.org/show_bug.cgi?id=127350
3297
3298         Reviewed by Dirk Schulze.
3299
3300         The graphics context of the SVG inherits the blend mode set
3301         on the background layer. Fix consists in drawing the SVG
3302         in a transparency layer.
3303
3304         Test: css3/compositing/background-blend-mode-svg.html
3305
3306         * svg/graphics/SVGImage.cpp:
3307         (WebCore::SVGImage::draw): Begin a transparency layer if a blend mode is set.
3308
3309 2014-01-22  Antti Koivisto  <antti@apple.com>
3310
3311         Update overlay scrollbars in single pass
3312         https://bugs.webkit.org/show_bug.cgi?id=127289
3313
3314         Reviewed by Anders Carlsson.
3315
3316         * platform/ScrollView.cpp:
3317         (WebCore::ScrollView::updateScrollbars):
3318         
3319             Multi-pass scrollbar resolution is only needed for traditional scrollbars. Overlay scrollbars don't affect layout.
3320
3321 2014-01-22  Mihnea Ovidenie  <mihnea@adobe.com>
3322
3323         [CSSRegions] Incorrect layout of a region pseudo children
3324         https://bugs.webkit.org/show_bug.cgi?id=126146
3325
3326         Reviewed by David Hyatt.
3327
3328         Test: fast/regions/collapse-anonymous-region.html
3329
3330         A region behaviour, styled using -webkit-flow-from, is modeled using an anonymous
3331         block created to fragment the named flow content inside the region. We have to prevent
3332         the behaviour of anonymous children collapsing for this block to make sure that the
3333         region element children are still laid out properly when the region element becomes an ordinary
3334         element.
3335
3336         * rendering/RenderBlockFlow.h:
3337
3338 2014-01-21  Ryuan Choi  <ryuan.choi@samsung.com>
3339
3340         Remove unused "acceleratedCompositingForScrollableFramesEnabled" setting
3341         https://bugs.webkit.org/show_bug.cgi?id=127402
3342
3343         Reviewed by Anders Carlsson.
3344
3345         compositing/iframes/iframe-composited-scrolling.html is updated because
3346         there are no usages in WebCore.
3347
3348         * page/Settings.in:
3349
3350 2014-01-21  Alex Christensen  <achristensen@webkit.org>
3351
3352         Compile fix for using libsoup on Windows.
3353         https://bugs.webkit.org/show_bug.cgi?id=127377
3354
3355         Reviewed by Daniel Bates.
3356
3357         * platform/network/soup/ProxyResolverSoup.cpp:
3358         (soupProxyResolverWkSetProperty):
3359         (soupProxyResolverWkGetProperty):
3360         (soupProxyResolverWkGetProxyURISync):
3361         Replaced uint with unsigned.
3362
3363 2014-01-21  Daniel Bates  <dabates@apple.com>
3364
3365         Break up single assertion into two assertions in HTMLMediaElement::returnPlatformLayer()
3366
3367         Following up after <http://trac.webkit.org/changeset/162473>, we should break up
3368         the assertion into two assertions as suggested by Darin Adler. Separating the single
3369         assertion into two assertions makes it straightforward to determine the conjunct that
3370         failed among other benefits.
3371
3372         * html/HTMLMediaElement.cpp:
3373         (WebCore::HTMLMediaElement::parseAttribute):
3374
3375 2014-01-21  Brady Eidson  <beidson@apple.com>
3376
3377         The IDB backing store put() method shouldn't call IDB callbacks directly
3378         https://bugs.webkit.org/show_bug.cgi?id=127399
3379
3380         Reviewed by Beth Dakin.
3381
3382         Refactor the put() callback to take a resulting key or an error.
3383         * Modules/indexeddb/IDBServerConnection.h:
3384
3385         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
3386         (WebCore::PutOperation::perform): Call to the backing store, then perform the
3387           appropriate IDB callback whether a key or an error was returned.
3388         * Modules/indexeddb/IDBTransactionBackendOperations.h:
3389
3390         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
3391         (WebCore::IDBServerConnectionLevelDB::put): Don’t call IDB callbacks directly.
3392           Instead, pass the resulting key/error back to the PutOperation.
3393         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
3394
3395 2014-01-21  Jae Hyun Park  <jae.park@company100.net>
3396
3397         Use nullptr in HTMLCanvasElement
3398         https://bugs.webkit.org/show_bug.cgi?id=127388
3399
3400         Reviewed by Gyuyoung Kim.
3401
3402         * html/HTMLCanvasElement.cpp:
3403         (WebCore::HTMLCanvasElement::getContext):
3404         (WebCore::HTMLCanvasElement::drawingContext):
3405         (WebCore::HTMLCanvasElement::existingDrawingContext):
3406
3407 2014-01-21  László Langó  <llango.u-szeged@partner.samsung.com>
3408
3409         Assertion failure in Range::nodeWillBeRemoved
3410         https://bugs.webkit.org/show_bug.cgi?id=121694
3411
3412         Reviewed by Ryosuke Niwa.
3413
3414         Based on Blink a change: https://chromium.googlesource.com/chromium/blink/+/407c1d7b2c45974aa614b3f847ffe9e8fce205fa
3415
3416         This patch fix an assertion failure. Range::nodeWillBeRemoved() might
3417         be called with removed node in ContainerNode, when DOMNodeRemovedFromDocument
3418         event handler calls removeChild(), for node being removed.
3419
3420         Test: fast/dom/Range/remove-twice-crash.html
3421
3422         * dom/ContainerNode.cpp:
3423         (WebCore::ContainerNode::willRemoveChild):
3424         * dom/ContainerNode.h:
3425
3426 2014-01-21  Tim Horton  <timothy_horton@apple.com>
3427
3428         REGRESSION (r161580): Some PDFs render outside their <img>
3429         https://bugs.webkit.org/show_bug.cgi?id=127381
3430         <rdar://problem/15872168>
3431
3432         Reviewed by Simon Fraser.
3433
3434         * platform/graphics/cg/PDFDocumentImage.cpp:
3435         (WebCore::transformContextForPainting):
3436         Only try to make the scale uniform if it isn't already, and use the minimum
3437         of the two original scales when doing so, so that it is absolutely certain
3438         to fit inside space allocated for the image during layout.
3439
3440 2014-01-21  Simon Fraser  <simon.fraser@apple.com>
3441
3442         Remove #if PLATFORM(IOS) in various places around customFixedPositionLayoutRect() code
3443         https://bugs.webkit.org/show_bug.cgi?id=127373
3444
3445         Reviewed by Beth Dakin.
3446
3447         Instead of PLATFORM(IOS) #idefs at every call site for viewportConstrainedVisibleContentRect(),
3448         move the #ifdef inside viewportConstrainedVisibleContentRect().
3449         
3450         The one call site that needs special handling is RenderLayerBacking::updateCompositedBounds(),
3451         which needs to avoid clipping fixed layers to the custom fixed position rect, but instead to
3452         visibleContentRect() (which is really the document bounds on iOS). This ensures that the
3453         fixed layers aren't clipped when zooming out.
3454
3455         * page/FrameView.cpp:
3456         (WebCore::FrameView::viewportConstrainedVisibleContentRect):
3457         * rendering/RenderBoxModelObject.cpp:
3458         (WebCore::RenderBoxModelObject::stickyPositionOffset):
3459         * rendering/RenderLayerBacking.cpp:
3460         (WebCore::RenderLayerBacking::updateCompositedBounds):
3461         * rendering/RenderLayerCompositor.cpp:
3462         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
3463         (WebCore::RenderLayerCompositor::computeFixedViewportConstraints):
3464         (WebCore::RenderLayerCompositor::computeStickyViewportConstraints):
3465
3466 2014-01-21  Andy Estes  <aestes@apple.com>
3467
3468         [iOS] Allow all clients to link against WebCore
3469         https://bugs.webkit.org/show_bug.cgi?id=127372
3470         
3471         Reviewed by Dan Bernstein.
3472
3473         * Configurations/WebCore.xcconfig:
3474
3475 2014-01-21  Bear Travis  <betravis@adobe.com>
3476
3477         [CSS Shapes] Preserve box-shape order when serializing shape values
3478         https://bugs.webkit.org/show_bug.cgi?id=127200
3479
3480         Reviewed by Dirk Schulze.
3481
3482         Convert the parsed shape-box pair to a CSSValueList rather than directly
3483         adding the box value to BasicShape. The CSSValueList preserves the
3484         shape-box ordering, and cleans up a little bit of the code shared between
3485         clip and shape values.
3486
3487         Modifying existing parsing tests.
3488
3489         * css/CSSComputedStyleDeclaration.cpp:
3490         (WebCore::shapePropertyValue): Factor out code common to generating shape
3491         values.
3492         (WebCore::ComputedStyleExtractor::propertyValue): Generate a CSSValueList when
3493         you have both a shape and a box.
3494         * css/CSSParser.cpp:
3495         (WebCore::CSSParser::parseBasicShapeAndOrBox): Factor out code common to clip
3496         paths and shape properties that parses the [basic-shape || box] syntax from
3497         the CSS Shapes spec.
3498         (WebCore::CSSParser::parseShapeProperty): Parse shape-box pairs as a CSSValueList.
3499         * css/DeprecatedStyleBuilder.cpp:
3500         (WebCore::ApplyPropertyShape::applyValue): Use the CSSValueList for shape-box pairs.
3501         * css/CSSValueList.h:
3502         (WebCore::CSSValueList::itemWithoutBoundsCheck): Add a const version.
3503         * page/animation/CSSPropertyAnimation.cpp:
3504         (WebCore::blendFunc): Specify a box when blending.
3505         * rendering/style/ShapeValue.h:
3506         (WebCore::ShapeValue::createShapeValue): Add a box parameter.
3507         (WebCore::ShapeValue::ShapeValue): Ditto.
3508
3509 2014-01-21  Daniel Bates  <dabates@apple.com>
3510
3511         Fix the iOS Simulator release build
3512
3513         Substitute ASSERT_UNUSED() for ASSERT() to resolve a compiler warning
3514         that the argument platformLayer is unused. The argument platformLayer
3515         is only used in the asserted condition, which isn't compiled in a
3516         release build; => the argument is unused in a release build.
3517
3518         * html/HTMLMediaElement.cpp:
3519         (WebCore::HTMLMediaElement::parseAttribute):
3520
3521 2014-01-21  Zoltan Horvath  <zoltan@webkit.org>
3522
3523         Since MidpointState is a class, it should behave like a class
3524         https://bugs.webkit.org/show_bug.cgi?id=127154
3525
3526         Reviewed by David Hyatt.
3527
3528         I modified MidpointState to behave like a class, updated the call sites also.
3529
3530         No new tests, no behavior change.
3531
3532         * platform/text/BidiResolver.h:
3533         (WebCore::MidpointState::reset):
3534         (WebCore::MidpointState::startIgnoringSpaces):
3535         (WebCore::MidpointState::stopIgnoringSpaces):
3536         (WebCore::MidpointState::midpoints):
3537         (WebCore::MidpointState::numMidpoints):
3538         (WebCore::MidpointState::currentMidpoint):
3539         (WebCore::MidpointState::incrementCurrentMidpoint):
3540         (WebCore::MidpointState::decreaseNumMidpoints):
3541         (WebCore::MidpointState::betweenMidpoints):
3542         (WebCore::MidpointState::setBetweenMidpoints):
3543         (WebCore::MidpointState::addMidpoint): Renamed from deprecatedAddMidpoint, since now
3544         its private, we no longer need to discourage callers from using it.
3545         * rendering/InlineIterator.h:
3546         (WebCore::IsolateTracker::addFakeRunIfNecessary):
3547         * rendering/RenderBlockLineLayout.cpp:
3548         (WebCore::RenderBlockFlow::appendRunsForObject):
3549         (WebCore::constructBidiRunsForLine):
3550         * rendering/line/BreakingContextInlineHeaders.h:
3551         (WebCore::checkMidpoints):
3552         * rendering/line/TrailingObjects.cpp:
3553         (WebCore::TrailingObjects::updateMidpointsForTrailingBoxes):
3554
3555 2014-01-21  Commit Queue  <commit-queue@webkit.org>
3556
3557         Unreviewed, rolling out r162452.
3558         http://trac.webkit.org/changeset/162452
3559         https://bugs.webkit.org/show_bug.cgi?id=127366
3560
3561         broke a few tests on all Mac WebKit1 bots (Requested by
3562         thorton on #webkit).
3563
3564         * WebCore.exp.in:
3565         * page/FocusController.cpp:
3566         (WebCore::FocusController::FocusController):
3567         (WebCore::FocusController::setFocused):
3568         (WebCore::FocusController::setActive):
3569         (WebCore::FocusController::setContentIsVisible):
3570         * page/FocusController.h:
3571         (WebCore::FocusController::isActive):
3572         (WebCore::FocusController::isFocused):
3573         * page/Page.cpp:
3574         (WebCore::Page::Page):
3575         (WebCore::Page::setIsInWindow):
3576         (WebCore::Page::setIsVisuallyIdle):
3577         (WebCore::Page::setIsVisible):
3578         (WebCore::Page::visibilityState):
3579         (WebCore::Page::hiddenPageCSSAnimationSuspensionStateChanged):
3580         * page/Page.h:
3581         (WebCore::Page::isVisible):
3582         (WebCore::Page::isInWindow):
3583
3584 2014-01-21  Chris Fleizach  <cfleizach@apple.com>
3585
3586         AX: Mac: Expose the visible text of a password field to AX
3587         https://bugs.webkit.org/show_bug.cgi?id=127353
3588
3589         Reviewed by Brent Fulgham.
3590
3591         The Mac platform should now expose the rendered value of password fields through AX.
3592
3593         Test: accessibility/password-field-value.html
3594
3595         * accessibility/AccessibilityRenderObject.cpp:
3596         (WebCore::AccessibilityRenderObject::textLength):
3597         (WebCore::AccessibilityRenderObject::passwordFieldValue):
3598
3599 2014-01-21  Robert Sipka  <sipka@inf.u-szeged.hu>
3600
3601         Support SSL error handling in case of synchronous job.
3602         https://bugs.webkit.org/show_bug.cgi?id=125301
3603
3604         Reviewed by Brent Fulgham.
3605
3606         Set ssl error informations for the users.
3607
3608         * platform/network/curl/ResourceHandleManager.cpp:
3609         (WebCore::ResourceHandleManager::dispatchSynchronousJob):
3610
3611 2014-01-21  Simon Fraser  <simon.fraser@apple.com>
3612
3613         Export systemTotalMemory() and systemMemoryLevel() for MobileSafari
3614         https://bugs.webkit.org/show_bug.cgi?id=127360
3615
3616         Reviewed by Andy Estes.
3617         
3618         MobileSafari inappropriately calls these WebCore functions directly,
3619         so export them.
3620
3621         * WebCore.exp.in:
3622
3623 2014-01-21  Simon Fraser  <simon.fraser@apple.com>
3624
3625         Clean up PLATFORM(IOS) code related to the custom fixed position layout rect
3626         https://bugs.webkit.org/show_bug.cgi?id=127362
3627
3628         Reviewed by Dave Hyatt.
3629
3630         Various platforms customize the rect used to layout position:fixed elements,
3631         and each modified RenderBox::availableLogicalHeight/WidthUsing() in different
3632         ways.
3633         
3634         Clean this up by adding RenderView::clientLogicalWidth/HeightForFixedPosition(),
3635         and moving the platform hacks into it.
3636
3637         * rendering/RenderBox.cpp:
3638         (WebCore::RenderBox::availableLogicalHeightUsing):
3639         (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
3640         (WebCore::RenderBox::containingBlockLogicalHeightForPositioned):
3641         * rendering/RenderView.cpp:
3642         (WebCore::RenderView::clientLogicalWidthForFixedPosition):
3643         (WebCore::RenderView::clientLogicalHeightForFixedPosition):
3644         * rendering/RenderView.h:
3645
3646 2014-01-21  Tamas Gergely  <tgergely.u-szeged@partner.samsung.com>
3647
3648         ASSERT(time.isFinite()) in SVGSMILElement::createInstanceTimesFromSyncbase
3649         <https://webkit.org/b/108184>
3650
3651         Reviewed by Philip Rogers.
3652
3653         In the case a SMILElement timing had a syncbase dependency on an indefinite value
3654         the assert were raised. The assert has been removed and a check has been added
3655         instead that prevents the addition of indefinite times to the time list.
3656
3657         Test: svg/animations/smil-syncbase-self-dependency.svg
3658
3659         * svg/animation/SVGSMILElement.cpp:
3660         (WebCore::SVGSMILElement::createInstanceTimesFromSyncbase):
3661           ASSERT removed.
3662
3663 2014-01-21  Tim Horton  <timothy_horton@apple.com>
3664
3665         Address late review naming comments after r162453.
3666
3667         * WebCore.xcodeproj/project.pbxproj:
3668         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
3669         * platform/graphics/mac/CALayerWebAdditions.h: Removed.
3670         * platform/graphics/mac/CALayerWebAdditions.mm: Removed.
3671         * platform/graphics/mac/WebCoreCALayerExtras.h: Added.
3672         * platform/graphics/mac/WebCoreCALayerExtras.mm: Added.
3673         (-[CALayer web_disableAllActions]):
3674
3675 2014-01-21  Tim Horton  <timothy_horton@apple.com>
3676
3677         Keep CALayer implicit animation disabling code in a single place
3678         https://bugs.webkit.org/show_bug.cgi?id=127355
3679
3680         Reviewed by Simon Fraser.
3681
3682         * WebCore.xcodeproj/project.pbxproj:
3683         Add CALayerWebAdditions.{h,mm}.
3684
3685         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
3686         (PlatformCALayerMac::commonInit):
3687         Remove nullActionsDictionary() and use [CALayer(WebAdditions) web_disableAllActions] instead.
3688
3689         * platform/graphics/mac/CALayerWebAdditions.h: Added.
3690         * platform/graphics/mac/CALayerWebAdditions.mm: Added.
3691         (-[CALayer web_disableAllActions]):
3692         Added. Disable all implicit actions on the layer.
3693
3694 2014-01-21  Gavin Barraclough  <barraclough@apple.com>
3695
3696         Change Page, FocusController to use ViewState
3697         https://bugs.webkit.org/show_bug.cgi?id=126533
3698
3699         Reviewed by Tim Horton.
3700
3701         These classes currently maintain a set of separate fields to represent the view state;
3702         combine these into a single field, and allow WebPage to send the combined update rather
3703         than individual changes.
3704
3705         Maintain existing interface for WebKit1 clients.
3706
3707         * WebCore.exp.in:
3708             - Added WebCore::setViewState, removed WebCore::setIsVisuallyIdle.
3709         * page/FocusController.cpp:
3710         (WebCore::FocusController::FocusController):
3711             - Initialize combined m_viewState.
3712         (WebCore::FocusController::setFocused):
3713             - Calls setViewState.
3714         (WebCore::FocusController::setFocusedInternal):
3715             - setFocused -> setFocusedInternal.
3716         (WebCore::FocusController::setViewState):
3717             - Added, update all ViewState flags.
3718         (WebCore::FocusController::setActive):
3719             - Calls setViewState.
3720         (WebCore::FocusController::setActiveInternal):
3721             - setActive -> setActiveInternal.
3722         (WebCore::FocusController::setContentIsVisible):
3723             - Calls setViewState.
3724         (WebCore::FocusController::setContentIsVisibleInternal):
3725             - setContentIsVisible -> setContentIsVisibleInternal.
3726         * page/FocusController.h:
3727         (WebCore::FocusController::isActive):
3728         (WebCore::FocusController::isFocused):
3729         (WebCore::FocusController::contentIsVisible):
3730             - Implemented in terms of ViewState.
3731         * page/Page.cpp:
3732         (WebCore::Page::Page):
3733             - Initialize using PageInitialViewState.
3734         (WebCore::Page::setIsInWindow):
3735             - Calls setViewState.
3736         (WebCore::Page::setIsInWindowInternal):
3737             - setIsInWindow -> setIsInWindowInternal.
3738         (WebCore::Page::setIsVisuallyIdleInternal):
3739             - setIsVisuallyIdle -> setIsVisuallyIdleInternal.
3740         (WebCore::Page::setViewState):
3741             - Added, update all ViewState flags, including FocusController.
3742         (WebCore::Page::setIsVisible):
3743             - Calls setViewState.
3744         (WebCore::Page::setIsVisibleInternal):
3745             - setIsVisible -> setIsVisibleInternal.
3746         (WebCore::Page::visibilityState):
3747             - m_isVisible -> isVisible()
3748         (WebCore::Page::hiddenPageCSSAnimationSuspensionStateChanged):
3749             - m_isVisible -> isVisible()
3750         * page/Page.h:
3751         (WebCore::Page::isVisible):
3752         (WebCore::Page::isInWindow):
3753             - Implemented in terms of ViewState.
3754         (WebCore::Page::scriptedAnimationsSuspended):
3755             - Combined member fields into ViewState::Flags.
3756
3757 2014-01-21  Lauro Neto  <lauro.neto@openbossa.org>
3758
3759         Remove PLATFORM(NIX) from WebCore
3760         https://bugs.webkit.org/show_bug.cgi?id=127299
3761
3762         Reviewed by Anders Carlsson.
3763
3764         * editing/Editor.cpp:
3765         (WebCore::Editor::cut):
3766         (WebCore::Editor::copy):
3767         (WebCore::Editor::copyImage):
3768         * editing/Editor.h:
3769         * html/HTMLCanvasElement.h:
3770         * loader/EmptyClients.h:
3771         * loader/FrameLoader.cpp:
3772         (WebCore::FrameLoader::defaultObjectContentType):
3773         * page/ChromeClient.h:
3774         * page/DragController.cpp:
3775         (WebCore::DragController::startDrag):
3776         * platform/Cursor.h:
3777         * platform/DragData.h:
3778         * platform/DragImage.h:
3779         * platform/FileSystem.h:
3780         * platform/LocalizedStrings.h:
3781         * platform/Widget.h:
3782         * platform/audio/FFTFrame.h:
3783         * platform/audio/HRTFElevation.cpp:
3784         * platform/cairo/WidgetBackingStore.h:
3785         * platform/graphics/ANGLEWebKitBridge.h:
3786         * platform/graphics/FontPlatformData.h:
3787         * platform/graphics/GLContext.cpp:
3788         (WebCore::GLContext::createContextForWindow):
3789         * platform/graphics/GLContext.h:
3790         * platform/graphics/GraphicsContext3D.h:
3791         * platform/graphics/GraphicsContext3DPrivate.cpp:
3792         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
3793         * platform/graphics/OpenGLESShims.h:
3794         * platform/graphics/OpenGLShims.cpp:
3795         (WebCore::getProcAddress):
3796         * platform/graphics/OpenGLShims.h:
3797         * platform/graphics/PlatformLayer.h:
3798         * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
3799         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
3800         (WebCore::Extensions3DOpenGL::createVertexArrayOES):
3801         (WebCore::Extensions3DOpenGL::deleteVertexArrayOES):
3802         (WebCore::Extensions3DOpenGL::isVertexArrayOES):
3803         (WebCore::Extensions3DOpenGL::bindVertexArrayOES):
3804         (WebCore::Extensions3DOpenGL::supportsExtension):
3805         * platform/graphics/opengl/Extensions3DOpenGL.h:
3806         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
3807         * platform/graphics/opengl/Extensions3DOpenGLES.h:
3808         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
3809         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
3810         (WebCore::GraphicsContext3D::reshape):
3811         * platform/graphics/opengl/TemporaryOpenGLSetting.cpp:
3812         * platform/graphics/texmap/TextureMapper.h:
3813         * platform/network/ResourceHandle.h:
3814         * plugins/PluginPackage.cpp:
3815         * plugins/PluginView.cpp:
3816         (WebCore::PluginView::PluginView):
3817         * plugins/PluginView.h:
3818         * plugins/PluginViewNone.cpp:
3819         * rendering/SimpleLineLayout.cpp:
3820         (WebCore::SimpleLineLayout::canUseFor):
3821
3822 2014-01-21  Eric Carlson  <eric.carlson@apple.com>
3823
3824         Add &lrm; &rlm; and &nbsp; to WebVTT parser
3825         https://bugs.webkit.org/show_bug.cgi?id=85112
3826
3827         Reviewed by Jer Noble.
3828
3829         No new tests, track-webvtt-tc022-entities.html was updated to test this.
3830
3831         * html/track/WebVTTTokenizer.cpp:
3832         (WebCore::WebVTTTokenizer::nextToken): Support RLM, LRM, and NBSP entities.
3833
3834 2014-01-21  Commit Queue  <commit-queue@webkit.org>
3835
3836         Unreviewed, rolling out r162354.
3837         http://trac.webkit.org/changeset/162354
3838         https://bugs.webkit.org/show_bug.cgi?id=127354
3839
3840         Appears to have broken accessibility in a non-trivial way
3841         (Requested by ap on #webkit).
3842
3843         * platform/ScrollView.cpp:
3844         (WebCore::ScrollView::updateScrollbars):
3845
3846 2014-01-21  Commit Queue  <commit-queue@webkit.org>
3847
3848         Unreviewed, rolling out r162445.
3849         http://trac.webkit.org/changeset/162445
3850         https://bugs.webkit.org/show_bug.cgi?id=127351
3851
3852         It broke the 32 bit GTK build (Requested by Ossy on #webkit).
3853
3854         * rendering/style/StyleRareInheritedData.cpp:
3855
3856 2014-01-21  László Langó  <llango.u-szeged@partner.samsung.com>
3857
3858         Wrong struct size when CSS_IMAGE_ORIENTATION and CSS3_TEXT_DECORATION are enabled.
3859         https://bugs.webkit.org/show_bug.cgi?id=127346
3860
3861         Efl build fix.
3862
3863         Reviewed by Csaba Osztrogonác.
3864
3865         * rendering/style/StyleRareInheritedData.cpp:
3866
3867 2014-01-21  Antti Koivisto  <antti@apple.com>
3868
3869         Delay initial layer flush during loading on all platforms
3870         https://bugs.webkit.org/show_bug.cgi?id=127347
3871
3872         Reviewed by Andreas Kling.
3873
3874         To reduce unnecessary repaints enable the same behaviour as iOS already has.
3875
3876         * rendering/RenderLayerCompositor.cpp:
3877         (WebCore::RenderLayerCompositor::RenderLayerCompositor):
3878         
3879             Set the initial state of m_layerFlushThrottlingEnabled correctly.
3880
3881         (WebCore::RenderLayerCompositor::scheduleLayerFlush):
3882         (WebCore::RenderLayerCompositor::startInitialLayerFlushTimerIfNeeded):
3883         * rendering/RenderLayerCompositor.h:
3884         
3885             Enable initial layer flush delay on all platforms.
3886
3887 2014-01-21  Mihai Tica  <mitica@adobe.com>
3888
3889         If you set a tiled cross-faded-image or a tiled gradient as
3890         a background layer, -webkit-background-blend-mode doesn't work.
3891         The problem consists in the blendMode parameter not being set
3892         for these specific drawing paths.
3893
3894         https://bugs.webkit.org/show_bug.cgi?id=126888
3895         Reviewed by Dirk Schulze.
3896
3897         Test: css3/compositing/background-blend-mode-tiled-layers.html
3898
3899         * platform/graphics/CrossfadeGeneratedImage.cpp:
3900         (WebCore::CrossfadeGeneratedImage::drawPattern): Add the blendMode parameter and pass it to ImageBuffer::drawPattern.
3901         * platform/graphics/GradientImage.cpp:
3902         (WebCore::GradientImage::drawPattern): Add the blendMode parameter and pass it to ImageBuffer::drawPattern.
3903         * platform/graphics/ImageBuffer.h: Add a BlendMode parameter to the drawPattern method.
3904         * platform/graphics/cairo/ImageBufferCairo.cpp:
3905         (WebCore::ImageBuffer::drawPattern): Add the default BlendMode parameter to the method declaration.
3906         * platform/graphics/cg/ImageBufferCG.cpp:
3907         (WebCore::ImageBuffer::drawPattern): Add and use the blendMode parameter for all the code paths.
3908         * platform/graphics/wince/ImageBufferWinCE.cpp:
3909         (WebCore::BufferedImage::drawPattern): Add the default BlendMode parameter to the method declaration.
3910
3911 2014-01-21  Gurpreet Kaur  <k.gurpreet@samsung.com>
3912
3913         The WebCore.vcxproj.filters doesnot apply
3914         https://bugs.webkit.org/show_bug.cgi?id=127338
3915
3916         Reviewed by Csaba Osztrogonác.
3917
3918         * WebCore.vcxproj/WebCore.vcxproj.filters:
3919         Modified the WebCore.vcxproj.filters so that it is applied when loading
3920         WebCore.vcxproj file.
3921
3922 2014-01-21  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>
3923
3924         Fix SVG animations which set rx or ry attributes
3925         https://bugs.webkit.org/show_bug.cgi?id=127337
3926
3927         Reviewed by Dirk Schulze.
3928
3929         Test: svg/stroke/animated-non-scaling-rxry.html
3930
3931         Merged from Blink: https://src.chromium.org/viewvc/blink?revision=152376&view=revision
3932
3933         * rendering/svg/RenderSVGRect.cpp:
3934         (WebCore::RenderSVGRect::updateShapeFromElement):
3935         * rendering/svg/SVGPathData.cpp:
3936         (WebCore::updatePathFromRectElement):
3937
3938 2014-01-21  Krzysztof Czech  <k.czech@samsung.com>
3939
3940         [ATK] Expose aria-flowto through ATK_RELATION_FLOWS_TO
3941         https://bugs.webkit.org/show_bug.cgi?id=127291
3942
3943         Reviewed by Mario Sanchez Prada.
3944
3945         Test: accessibility/aria-flowto.html
3946
3947         Expose aria-flowto through ATK_RELATION_FLOWS_TO according to
3948         http://www.w3.org/TR/wai-aria-implementation/#mapping_state-property
3949
3950         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
3951         (setAtkRelationSetFromCoreObject):
3952
3953 2014-01-20  Ryuan Choi  <ryuan.choi@samsung.com>
3954
3955         [CMAKE] Remove Nix from CMake scripts
3956         https://bugs.webkit.org/show_bug.cgi?id=127264
3957
3958         Reviewed by Anders Carlsson.
3959
3960         * CMakeLists.txt:
3961
3962 2014-01-20  Anders Carlsson  <andersca@apple.com>
3963
3964         Remove an unused PageGroup function
3965         https://bugs.webkit.org/show_bug.cgi?id=127327
3966
3967         Reviewed by Andreas Kling.
3968
3969         * WebCore.exp.in:
3970         * page/PageGroup.cpp:
3971         * page/PageGroup.h:
3972
3973 2014-01-20  Anders Carlsson  <andersca@apple.com>
3974
3975         Move user style sheet handling to UserContentController
3976         https://bugs.webkit.org/show_bug.cgi?id=127322
3977         <rdar://problem/15861296>
3978
3979         Reviewed by Andreas Kling.
3980
3981         * dom/DocumentStyleSheetCollection.cpp:
3982         (WebCore::DocumentStyleSheetCollection::updateInjectedStyleSheetCache):
3983         * page/PageGroup.cpp:
3984         (WebCore::PageGroup::addUserStyleSheetToWorld):
3985         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
3986         (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
3987         (WebCore::PageGroup::removeAllUserContent):
3988         * page/PageGroup.h:
3989         * page/UserContentController.cpp:
3990         (WebCore::UserContentController::addUserStyleSheet):
3991         (WebCore::UserContentController::removeUserStyleSheet):
3992         (WebCore::UserContentController::removeUserStyleSheets):
3993         (WebCore::UserContentController::removeAllUserContent):
3994         (WebCore::UserContentController::invalidateInjectedStyleSheetCacheInAllFrames):
3995         * page/UserContentController.h:
3996         (WebCore::UserContentController::userStyleSheets):
3997
3998 2014-01-20  Benjamin Poulain  <benjamin@webkit.org>
3999
4000         Add a nicer way to iterate over all the attributes of an element
4001         https://bugs.webkit.org/show_bug.cgi?id=127266
4002
4003         Reviewed by Geoffrey Garen.
4004
4005         When using Element::attributeAt() in a loop, the compiler had to generate two kinds of
4006         accessor:
4007         -If the element data is unique, the length and data comes from the attribute Vector.
4008         -If the element data is shared, the data comes from the tail of elementData itself.
4009
4010         The choice was done for every access, which caused the assembly to be a little
4011         hard to follow.
4012         This patch unify the data access by doing everything as a array pointer with offset (getting
4013         that data from Vector when necessary).
4014
4015         To make it easier to do the right thing, a new iterator was added so that range-based loops
4016         can replace all the faulty cases.
4017
4018         * css/SelectorChecker.cpp:
4019         (WebCore::anyAttributeMatches):
4020         * css/SelectorChecker.h:
4021         (WebCore::SelectorChecker::checkExactAttribute):
4022         * dom/DatasetDOMStringMap.cpp:
4023         (WebCore::DatasetDOMStringMap::getNames):
4024         (WebCore::DatasetDOMStringMap::item):
4025         (WebCore::DatasetDOMStringMap::contains):
4026         * dom/Element.cpp:
4027         (WebCore::Element::normalizeAttributes):
4028         (WebCore::Element::detachAllAttrNodesFromElement):
4029         (WebCore::Element::cloneAttributesFromElement):
4030         * dom/Element.h:
4031         (WebCore::Element::attributesIterator):
4032         * dom/ElementData.cpp:
4033         (WebCore::ElementData::isEquivalent):
4034         (WebCore::ElementData::findAttributeIndexByNameSlowCase):
4035         * dom/ElementData.h:
4036         (WebCore::AttributeConstIterator::AttributeConstIterator):
4037         (WebCore::AttributeConstIterator::operator*):
4038         (WebCore::AttributeConstIterator::operator->):
4039         (WebCore::AttributeConstIterator::operator++):
4040         (WebCore::AttributeConstIterator::operator==):
4041         (WebCore::AttributeConstIterator::operator!=):
4042         (WebCore::AttributeIteratorAccessor::AttributeIteratorAccessor):
4043         (WebCore::AttributeIteratorAccessor::begin):
4044         (WebCore::AttributeIteratorAccessor::end):
4045         (WebCore::ElementData::attributesIterator):
4046         * dom/Node.cpp:
4047         (WebCore::Node::isDefaultNamespace):
4048         (WebCore::Node::lookupNamespaceURI):
4049         (WebCore::Node::lookupNamespacePrefix):
4050         (WebCore::Node::compareDocumentPosition):
4051         * dom/StyledElement.cpp:
4052         (WebCore::StyledElement::makePresentationAttributeCacheKey):
4053         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
4054         * editing/MarkupAccumulator.cpp:
4055         (WebCore::MarkupAccumulator::appendElement):
4056         * editing/markup.cpp:
4057         (WebCore::completeURLs):
4058         (WebCore::StyledMarkupAccumulator::appendElement):
4059         * html/HTMLEmbedElement.cpp:
4060         (WebCore::HTMLEmbedElement::parametersForPlugin):
4061         * html/HTMLObjectElement.cpp:
4062         (WebCore::HTMLObjectElement::parametersForPlugin):
4063         * inspector/DOMPatchSupport.cpp:
4064         (WebCore::DOMPatchSupport::innerPatchNode):
4065         (WebCore::DOMPatchSupport::createDigest):
4066         * inspector/InspectorDOMAgent.cpp:
4067         (WebCore::InspectorDOMAgent::setAttributesAsText):
4068         (WebCore::InspectorDOMAgent::buildArrayForElementAttributes):
4069         * inspector/InspectorNodeFinder.cpp:
4070         (WebCore::InspectorNodeFinder::matchesElement):
4071         * page/PageSerializer.cpp:
4072         (WebCore::isCharsetSpecifyingNode):
4073         * xml/XPathNodeSet.cpp:
4074         (WebCore::XPath::NodeSet::traversalSort):
4075         * xml/XPathStep.cpp:
4076         (WebCore::XPath::Step::nodesInAxis):
4077         * xml/parser/XMLDocumentParserLibxml2.cpp:
4078         (WebCore::XMLDocumentParser::XMLDocumentParser):
4079
4080 2014-01-20  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
4081
4082         Do refactor in collectGradientAttributes() and renderStyleForLengthResolve()
4083         https://bugs.webkit.org/show_bug.cgi?id=126869
4084
4085         Reviewed by Dirk Schulze.
4086
4087         Some SVG functions have done a first iteration by using a boolean flag. This is
4088         one of poor implementations. This patch fix it by extracting a logic into a new method.
4089         Additionally it would be good to use do-while() loop instead of using while() in
4090         renderStyleForLengthResolving() because a first condition is always true.
4091
4092         Merge r165358 from blink.
4093
4094         * svg/SVGLengthContext.cpp: