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