<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[162914] branches/jsCStack</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/162914">162914</a></dd>
<dt>Author</dt> <dd>mhahnenberg@apple.com</dd>
<dt>Date</dt> <dd>2014-01-27 21:29:33 -0800 (Mon, 27 Jan 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Merge branch up to ToT <a href="http://trac.webkit.org/projects/webkit/changeset/162909">r162909</a>.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#branchesjsCStackLayoutTestsTestExpectations">branches/jsCStack/LayoutTests/TestExpectations</a></li>
<li><a href="#branchesjsCStackLayoutTestsfastshapesparsingparsingshapeinsideexpectedtxt">branches/jsCStack/LayoutTests/fast/shapes/parsing/parsing-shape-inside-expected.txt</a></li>
<li><a href="#branchesjsCStackLayoutTestsfastshapesparsingparsingshapelengthsexpectedtxt">branches/jsCStack/LayoutTests/fast/shapes/parsing/parsing-shape-lengths-expected.txt</a></li>
<li><a href="#branchesjsCStackLayoutTestsfastshapesparsingparsingshapelengthshtml">branches/jsCStack/LayoutTests/fast/shapes/parsing/parsing-shape-lengths.html</a></li>
<li><a href="#branchesjsCStackLayoutTestsfastshapesparsingparsingshapeoutsideexpectedtxt">branches/jsCStack/LayoutTests/fast/shapes/parsing/parsing-shape-outside-expected.txt</a></li>
<li><a href="#branchesjsCStackLayoutTestsfastshapesparsingparsingtestutilsjs">branches/jsCStack/LayoutTests/fast/shapes/parsing/parsing-test-utils.js</a></li>
<li><a href="#branchesjsCStackLayoutTestshttptestsinspectorprotocolresourcesInspectorTestjs">branches/jsCStack/LayoutTests/http/tests/inspector-protocol/resources/InspectorTest.js</a></li>
<li><a href="#branchesjsCStackLayoutTestsinspectorprotocolmodelcontentflowcontentnodeshtml">branches/jsCStack/LayoutTests/inspector-protocol/model/content-flow-content-nodes.html</a></li>
<li><a href="#branchesjsCStackLayoutTestsinspectorprotocolmodelcontentflowcontentremovalhtml">branches/jsCStack/LayoutTests/inspector-protocol/model/content-flow-content-removal.html</a></li>
<li><a href="#branchesjsCStackLayoutTestsinspectorprotocolmodelcontentflowlisthtml">branches/jsCStack/LayoutTests/inspector-protocol/model/content-flow-list.html</a></li>
<li><a href="#branchesjsCStackLayoutTestsinspectorprotocolmodelcontentnoderegioninfohtml">branches/jsCStack/LayoutTests/inspector-protocol/model/content-node-region-info.html</a></li>
<li><a href="#branchesjsCStackLayoutTestsinspectorprotocolmodelmainframeresourcehtml">branches/jsCStack/LayoutTests/inspector-protocol/model/main-frame-resource.html</a></li>
<li><a href="#branchesjsCStackLayoutTestsplatformeflTestExpectations">branches/jsCStack/LayoutTests/platform/efl/TestExpectations</a></li>
<li><a href="#branchesjsCStackLayoutTestsplatformeflwk2TestExpectations">branches/jsCStack/LayoutTests/platform/efl-wk2/TestExpectations</a></li>
<li><a href="#branchesjsCStackSourceJavaScriptCoreChangeLog">branches/jsCStack/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#branchesjsCStackSourceJavaScriptCoreConfigurationsBasexcconfig">branches/jsCStack/Source/JavaScriptCore/Configurations/Base.xcconfig</a></li>
<li><a href="#branchesjsCStackSourceJavaScriptCoreConfigurationsFeatureDefinesxcconfig">branches/jsCStack/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig</a></li>
<li><a href="#branchesjsCStackSourceJavaScriptCorebytecodeCodeBlockcpp">branches/jsCStack/Source/JavaScriptCore/bytecode/CodeBlock.cpp</a></li>
<li><a href="#branchesjsCStackSourceJavaScriptCorebytecodeCodeBlockh">branches/jsCStack/Source/JavaScriptCore/bytecode/CodeBlock.h</a></li>
<li><a href="#branchesjsCStackSourceJavaScriptCoredfgDFGArithModeh">branches/jsCStack/Source/JavaScriptCore/dfg/DFGArithMode.h</a></li>
<li><a href="#branchesjsCStackSourceJavaScriptCoredfgDFGCFGSimplificationPhasecpp">branches/jsCStack/Source/JavaScriptCore/dfg/DFGCFGSimplificationPhase.cpp</a></li>
<li><a href="#branchesjsCStackSourceJavaScriptCoredfgDFGSpeculativeJIT64cpp">branches/jsCStack/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp</a></li>
<li><a href="#branchesjsCStackSourceJavaScriptCoredfgDFGValidatecpp">branches/jsCStack/Source/JavaScriptCore/dfg/DFGValidate.cpp</a></li>
<li><a href="#branchesjsCStackSourceJavaScriptCoreparserLexercpp">branches/jsCStack/Source/JavaScriptCore/parser/Lexer.cpp</a></li>
<li><a href="#branchesjsCStackSourceJavaScriptCoreparserParsercpp">branches/jsCStack/Source/JavaScriptCore/parser/Parser.cpp</a></li>
<li><a href="#branchesjsCStackSourceJavaScriptCoreruntimeJSArraycpp">branches/jsCStack/Source/JavaScriptCore/runtime/JSArray.cpp</a></li>
<li><a href="#branchesjsCStackSourceJavaScriptCoreruntimeJSONObjectcpp">branches/jsCStack/Source/JavaScriptCore/runtime/JSONObject.cpp</a></li>
<li><a href="#branchesjsCStackSourceJavaScriptCoreruntimeJSObjectcpp">branches/jsCStack/Source/JavaScriptCore/runtime/JSObject.cpp</a></li>
<li><a href="#branchesjsCStackSourceJavaScriptCoreruntimeJSObjecth">branches/jsCStack/Source/JavaScriptCore/runtime/JSObject.h</a></li>
<li><a href="#branchesjsCStackSourceJavaScriptCoreruntimeLiteralParsercpp">branches/jsCStack/Source/JavaScriptCore/runtime/LiteralParser.cpp</a></li>
<li><a href="#branchesjsCStackSourceJavaScriptCoreyarrYarrInterpretercpp">branches/jsCStack/Source/JavaScriptCore/yarr/YarrInterpreter.cpp</a></li>
<li><a href="#branchesjsCStackSourceJavaScriptCoreyarrYarrParserh">branches/jsCStack/Source/JavaScriptCore/yarr/YarrParser.h</a></li>
<li><a href="#branchesjsCStackSourceWTFwtfThreadSafeRefCountedh">branches/jsCStack/Source/WTF/wtf/ThreadSafeRefCounted.h</a></li>
<li><a href="#branchesjsCStackSourceWTFwtfmacMainThreadMacmm">branches/jsCStack/Source/WTF/wtf/mac/MainThreadMac.mm</a></li>
<li><a href="#branchesjsCStackSourceWTFwtftextWTFStringh">branches/jsCStack/Source/WTF/wtf/text/WTFString.h</a></li>
<li><a href="#branchesjsCStackSourceWebCoreConfigurationsBasexcconfig">branches/jsCStack/Source/WebCore/Configurations/Base.xcconfig</a></li>
<li><a href="#branchesjsCStackSourceWebCoreConfigurationsFeatureDefinesxcconfig">branches/jsCStack/Source/WebCore/Configurations/FeatureDefines.xcconfig</a></li>
<li><a href="#branchesjsCStackSourceWebCoreGNUmakefilelistam">branches/jsCStack/Source/WebCore/GNUmakefile.list.am</a></li>
<li><a href="#branchesjsCStackSourceWebCoreModulesindexeddbIDBCursorBackendcpp">branches/jsCStack/Source/WebCore/Modules/indexeddb/IDBCursorBackend.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCoreModulesindexeddbIDBCursorBackendh">branches/jsCStack/Source/WebCore/Modules/indexeddb/IDBCursorBackend.h</a></li>
<li><a href="#branchesjsCStackSourceWebCoreModulesindexeddbIDBCursorBackendOperationscpp">branches/jsCStack/Source/WebCore/Modules/indexeddb/IDBCursorBackendOperations.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCoreModulesindexeddbIDBCursorBackendOperationsh">branches/jsCStack/Source/WebCore/Modules/indexeddb/IDBCursorBackendOperations.h</a></li>
<li><a href="#branchesjsCStackSourceWebCoreModulesindexeddbIDBServerConnectionh">branches/jsCStack/Source/WebCore/Modules/indexeddb/IDBServerConnection.h</a></li>
<li><a href="#branchesjsCStackSourceWebCoreModulesindexeddbIDBTransactionBackendOperationscpp">branches/jsCStack/Source/WebCore/Modules/indexeddb/IDBTransactionBackendOperations.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCoreModulesindexeddbIDBTransactionBackendOperationsh">branches/jsCStack/Source/WebCore/Modules/indexeddb/IDBTransactionBackendOperations.h</a></li>
<li><a href="#branchesjsCStackSourceWebCoreModulesindexeddbleveldbIDBServerConnectionLevelDBcpp">branches/jsCStack/Source/WebCore/Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCoreModulesindexeddbleveldbIDBServerConnectionLevelDBh">branches/jsCStack/Source/WebCore/Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h</a></li>
<li><a href="#branchesjsCStackSourceWebCoreWebCoreexpin">branches/jsCStack/Source/WebCore/WebCore.exp.in</a></li>
<li><a href="#branchesjsCStackSourceWebCoreWebCorexcodeprojprojectpbxproj">branches/jsCStack/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#branchesjsCStackSourceWebCoreaccessibilityAXObjectCachecpp">branches/jsCStack/Source/WebCore/accessibility/AXObjectCache.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCoreaccessibilityAXObjectCacheh">branches/jsCStack/Source/WebCore/accessibility/AXObjectCache.h</a></li>
<li><a href="#branchesjsCStackSourceWebCoreaccessibilityAccessibilityNodeObjectcpp">branches/jsCStack/Source/WebCore/accessibility/AccessibilityNodeObject.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCoreaccessibilitymacWebAccessibilityObjectWrapperBasemm">branches/jsCStack/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm</a></li>
<li><a href="#branchesjsCStackSourceWebCorebindingsjsSerializedScriptValuecpp">branches/jsCStack/Source/WebCore/bindings/js/SerializedScriptValue.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorebindingsobjcDOMEventsh">branches/jsCStack/Source/WebCore/bindings/objc/DOMEvents.h</a></li>
<li><a href="#branchesjsCStackSourceWebCorebindingsscriptsCodeGeneratorObjCpm">branches/jsCStack/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm</a></li>
<li><a href="#branchesjsCStackSourceWebCorebindingsscriptstestObjCDOMTestInterfaceh">branches/jsCStack/Source/WebCore/bindings/scripts/test/ObjC/DOMTestInterface.h</a></li>
<li><a href="#branchesjsCStackSourceWebCorebindingsscriptstestObjCDOMTestObjh">branches/jsCStack/Source/WebCore/bindings/scripts/test/ObjC/DOMTestObj.h</a></li>
<li><a href="#branchesjsCStackSourceWebCorecssCSSBasicShapescpp">branches/jsCStack/Source/WebCore/css/CSSBasicShapes.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorecssCSSComputedStyleDeclarationcpp">branches/jsCStack/Source/WebCore/css/CSSComputedStyleDeclaration.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorecssCSSParsercpp">branches/jsCStack/Source/WebCore/css/CSSParser.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorecssCSSSelectorcpp">branches/jsCStack/Source/WebCore/css/CSSSelector.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorecssSVGCSSParsercpp">branches/jsCStack/Source/WebCore/css/SVGCSSParser.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorecssStylePropertiescpp">branches/jsCStack/Source/WebCore/css/StyleProperties.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorecssStyleResolvercpp">branches/jsCStack/Source/WebCore/css/StyleResolver.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorecssStyleSheetContentscpp">branches/jsCStack/Source/WebCore/css/StyleSheetContents.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorecssmakeproppl">branches/jsCStack/Source/WebCore/css/makeprop.pl</a></li>
<li><a href="#branchesjsCStackSourceWebCorecssmakevaluespl">branches/jsCStack/Source/WebCore/css/makevalues.pl</a></li>
<li><a href="#branchesjsCStackSourceWebCoredomNodecpp">branches/jsCStack/Source/WebCore/dom/Node.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorehtmlDOMURLidl">branches/jsCStack/Source/WebCore/html/DOMURL.idl</a></li>
<li><a href="#branchesjsCStackSourceWebCorehtmlHTMLMediaElementcpp">branches/jsCStack/Source/WebCore/html/HTMLMediaElement.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorehtmlparserHTMLTreeBuildercpp">branches/jsCStack/Source/WebCore/html/parser/HTMLTreeBuilder.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCoreloadercacheCachedFontcpp">branches/jsCStack/Source/WebCore/loader/cache/CachedFont.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCoreloadercacheCachedFonth">branches/jsCStack/Source/WebCore/loader/cache/CachedFont.h</a></li>
<li><a href="#branchesjsCStackSourceWebCoreloadercacheCachedResourceLoadercpp">branches/jsCStack/Source/WebCore/loader/cache/CachedResourceLoader.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorepageEventSourcecpp">branches/jsCStack/Source/WebCore/page/EventSource.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorepagescrollingScrollingTreecpp">branches/jsCStack/Source/WebCore/page/scrolling/ScrollingTree.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorepagescrollingScrollingTreeh">branches/jsCStack/Source/WebCore/page/scrolling/ScrollingTree.h</a></li>
<li><a href="#branchesjsCStackSourceWebCorepagescrollingmacScrollingTreeScrollingNodeMacmm">branches/jsCStack/Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm</a></li>
<li><a href="#branchesjsCStackSourceWebCoreplatformColorDatagperf">branches/jsCStack/Source/WebCore/platform/ColorData.gperf</a></li>
<li><a href="#branchesjsCStackSourceWebCoreplatformDateComponentscpp">branches/jsCStack/Source/WebCore/platform/DateComponents.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCoreplatformDecimalcpp">branches/jsCStack/Source/WebCore/platform/Decimal.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCoreplatformaudioiosMediaSessionManagerIOSmm">branches/jsCStack/Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.mm</a></li>
<li><a href="#branchesjsCStackSourceWebCoreplatformgraphicsWOFFFileFormatcpp">branches/jsCStack/Source/WebCore/platform/graphics/WOFFFileFormat.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCoreplatformgraphicsWOFFFileFormath">branches/jsCStack/Source/WebCore/platform/graphics/WOFFFileFormat.h</a></li>
<li><a href="#branchesjsCStackSourceWebCoreplatformgraphicsavfoundationMediaPlayerPrivateAVFoundationcpp">branches/jsCStack/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateAVFoundationObjCh">branches/jsCStack/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h</a></li>
<li><a href="#branchesjsCStackSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateAVFoundationObjCmm">branches/jsCStack/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm</a></li>
<li><a href="#branchesjsCStackSourceWebCoreplatformgraphicscgGraphicsContextCGcpp">branches/jsCStack/Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCoreplatformgraphicsgstreamerMediaPlayerPrivateGStreamercpp">branches/jsCStack/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCoreplatformgraphicsmacMediaPlayerProxyh">branches/jsCStack/Source/WebCore/platform/graphics/mac/MediaPlayerProxy.h</a></li>
<li><a href="#branchesjsCStackSourceWebCoreplatformgraphicsopentypeOpenTypeSanitizercpp">branches/jsCStack/Source/WebCore/platform/graphics/opentype/OpenTypeSanitizer.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCoreplatformgraphicsopentypeOpenTypeSanitizerh">branches/jsCStack/Source/WebCore/platform/graphics/opentype/OpenTypeSanitizer.h</a></li>
<li><a href="#branchesjsCStackSourceWebCoreplatformgraphicswinFullScreenControllercpp">branches/jsCStack/Source/WebCore/platform/graphics/win/FullScreenController.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCoreplatformiosSystemMemoryh">branches/jsCStack/Source/WebCore/platform/ios/SystemMemory.h</a></li>
<li><a href="#branchesjsCStackSourceWebCoreplatformioswakWKGraphicsh">branches/jsCStack/Source/WebCore/platform/ios/wak/WKGraphics.h</a></li>
<li><a href="#branchesjsCStackSourceWebCoreplatformtextBidiResolverh">branches/jsCStack/Source/WebCore/platform/text/BidiResolver.h</a></li>
<li><a href="#branchesjsCStackSourceWebCoreplatformtextwinLocaleWincpp">branches/jsCStack/Source/WebCore/platform/text/win/LocaleWin.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorerenderingAutoTableLayoutcpp">branches/jsCStack/Source/WebCore/rendering/AutoTableLayout.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorerenderingPointerEventsHitRulescpp">branches/jsCStack/Source/WebCore/rendering/PointerEventsHitRules.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorerenderingRenderBlockcpp">branches/jsCStack/Source/WebCore/rendering/RenderBlock.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorerenderingRenderBlockh">branches/jsCStack/Source/WebCore/rendering/RenderBlock.h</a></li>
<li><a href="#branchesjsCStackSourceWebCorerenderingRenderBlockFlowcpp">branches/jsCStack/Source/WebCore/rendering/RenderBlockFlow.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorerenderingRenderBlockFlowh">branches/jsCStack/Source/WebCore/rendering/RenderBlockFlow.h</a></li>
<li><a href="#branchesjsCStackSourceWebCorerenderingRenderBlockLineLayoutcpp">branches/jsCStack/Source/WebCore/rendering/RenderBlockLineLayout.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorerenderingRenderBoxcpp">branches/jsCStack/Source/WebCore/rendering/RenderBox.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorerenderingRenderBoxh">branches/jsCStack/Source/WebCore/rendering/RenderBox.h</a></li>
<li><a href="#branchesjsCStackSourceWebCorerenderingRenderBoxModelObjectcpp">branches/jsCStack/Source/WebCore/rendering/RenderBoxModelObject.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorerenderingRenderFlexibleBoxcpp">branches/jsCStack/Source/WebCore/rendering/RenderFlexibleBox.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorerenderingRenderFlexibleBoxh">branches/jsCStack/Source/WebCore/rendering/RenderFlexibleBox.h</a></li>
<li><a href="#branchesjsCStackSourceWebCorerenderingRenderMultiColumnFlowThreadh">branches/jsCStack/Source/WebCore/rendering/RenderMultiColumnFlowThread.h</a></li>
<li><a href="#branchesjsCStackSourceWebCorerenderingRenderMultiColumnSetcpp">branches/jsCStack/Source/WebCore/rendering/RenderMultiColumnSet.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorerenderingRenderMultiColumnSeth">branches/jsCStack/Source/WebCore/rendering/RenderMultiColumnSet.h</a></li>
<li><a href="#branchesjsCStackSourceWebCorerenderingRenderObjectcpp">branches/jsCStack/Source/WebCore/rendering/RenderObject.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorerenderingRenderQuotecpp">branches/jsCStack/Source/WebCore/rendering/RenderQuote.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorerenderingRenderReplacedcpp">branches/jsCStack/Source/WebCore/rendering/RenderReplaced.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorerenderingRenderTablecpp">branches/jsCStack/Source/WebCore/rendering/RenderTable.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorerenderingRenderThemecpp">branches/jsCStack/Source/WebCore/rendering/RenderTheme.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorerenderingstyleRenderStylecpp">branches/jsCStack/Source/WebCore/rendering/style/RenderStyle.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorerenderingsvgRenderSVGResourcecpp">branches/jsCStack/Source/WebCore/rendering/svg/RenderSVGResource.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCorerenderingsvgSVGMarkerDatah">branches/jsCStack/Source/WebCore/rendering/svg/SVGMarkerData.h</a></li>
<li><a href="#branchesjsCStackSourceWebCoresvgSVGPathParsercpp">branches/jsCStack/Source/WebCore/svg/SVGPathParser.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebCoresvgSVGTransformDistancecpp">branches/jsCStack/Source/WebCore/svg/SVGTransformDistance.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebInspectorUIUserInterfaceApplicationCacheManagerjs">branches/jsCStack/Source/WebInspectorUI/UserInterface/ApplicationCacheManager.js</a></li>
<li><a href="#branchesjsCStackSourceWebInspectorUIUserInterfaceCSSCompletionsjs">branches/jsCStack/Source/WebInspectorUI/UserInterface/CSSCompletions.js</a></li>
<li><a href="#branchesjsCStackSourceWebInspectorUIUserInterfaceCSSStyleManagerjs">branches/jsCStack/Source/WebInspectorUI/UserInterface/CSSStyleManager.js</a></li>
<li><a href="#branchesjsCStackSourceWebInspectorUIUserInterfaceDebuggerManagerjs">branches/jsCStack/Source/WebInspectorUI/UserInterface/DebuggerManager.js</a></li>
<li><a href="#branchesjsCStackSourceWebInspectorUIUserInterfaceFrameResourceManagerjs">branches/jsCStack/Source/WebInspectorUI/UserInterface/FrameResourceManager.js</a></li>
<li><a href="#branchesjsCStackSourceWebInspectorUIUserInterfaceMainjs">branches/jsCStack/Source/WebInspectorUI/UserInterface/Main.js</a></li>
<li><a href="#branchesjsCStackSourceWebInspectorUIUserInterfaceProfileManagerjs">branches/jsCStack/Source/WebInspectorUI/UserInterface/ProfileManager.js</a></li>
<li><a href="#branchesjsCStackSourceWebInspectorUIUserInterfaceStorageManagerjs">branches/jsCStack/Source/WebInspectorUI/UserInterface/StorageManager.js</a></li>
<li><a href="#branchesjsCStackSourceWebKitWebKitvcxprojWebKitExportGeneratorWebKitExportsdefin">branches/jsCStack/Source/WebKit/WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in</a></li>
<li><a href="#branchesjsCStackSourceWebKitiosWebCoreSupportWebMIMETypeRegistryh">branches/jsCStack/Source/WebKit/ios/WebCoreSupport/WebMIMETypeRegistry.h</a></li>
<li><a href="#branchesjsCStackSourceWebKitmacConfigurationsBasexcconfig">branches/jsCStack/Source/WebKit/mac/Configurations/Base.xcconfig</a></li>
<li><a href="#branchesjsCStackSourceWebKitmacConfigurationsFeatureDefinesxcconfig">branches/jsCStack/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig</a></li>
<li><a href="#branchesjsCStackSourceWebKitmacHistoryBinaryPropertyListcpp">branches/jsCStack/Source/WebKit/mac/History/BinaryPropertyList.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebKitmacWebViewWebPDFViewmm">branches/jsCStack/Source/WebKit/mac/WebView/WebPDFView.mm</a></li>
<li><a href="#branchesjsCStackSourceWebKitmacWebViewWebPreferenceKeysPrivateh">branches/jsCStack/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h</a></li>
<li><a href="#branchesjsCStackSourceWebKitmacpostprocessheaderssh">branches/jsCStack/Source/WebKit/mac/postprocess-headers.sh</a></li>
<li><a href="#branchesjsCStackSourceWebKit2ConfigurationsBasexcconfig">branches/jsCStack/Source/WebKit2/Configurations/Base.xcconfig</a></li>
<li><a href="#branchesjsCStackSourceWebKit2ConfigurationsFeatureDefinesxcconfig">branches/jsCStack/Source/WebKit2/Configurations/FeatureDefines.xcconfig</a></li>
<li><a href="#branchesjsCStackSourceWebKit2DatabaseProcessIndexedDBDatabaseProcessIDBConnectioncpp">branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebKit2DatabaseProcessIndexedDBIDBTransactionIdentifierh">branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/IDBTransactionIdentifier.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2DatabaseProcessIndexedDBUniqueIDBDatabasecpp">branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebKit2DatabaseProcessIndexedDBUniqueIDBDatabaseh">branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2DatabaseProcessIndexedDBUniqueIDBDatabaseBackingStoreh">branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2DatabaseProcessIndexedDBsqliteSQLiteIDBTransactioncpp">branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebKit2DatabaseProcessIndexedDBsqliteSQLiteIDBTransactionh">branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2DatabaseProcessIndexedDBsqliteUniqueIDBDatabaseBackingStoreSQLitecpp">branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebKit2DatabaseProcessIndexedDBsqliteUniqueIDBDatabaseBackingStoreSQLiteh">branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2SharedUserDatacpp">branches/jsCStack/Source/WebKit2/Shared/UserData.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebKit2SharedWebCrossThreadCopiercpp">branches/jsCStack/Source/WebKit2/Shared/WebCrossThreadCopier.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebKit2SharedWebCrossThreadCopierh">branches/jsCStack/Source/WebKit2/Shared/WebCrossThreadCopier.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2SharedWebPreferencesStoreh">branches/jsCStack/Source/WebKit2/Shared/WebPreferencesStore.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2SharedWebProcessCreationParameterscpp">branches/jsCStack/Source/WebKit2/Shared/WebProcessCreationParameters.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebKit2SharedWebProcessCreationParametersh">branches/jsCStack/Source/WebKit2/Shared/WebProcessCreationParameters.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2SharedmacObjCObjectGraphCodersmm">branches/jsCStack/Source/WebKit2/Shared/mac/ObjCObjectGraphCoders.mm</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessAPIAPILoaderClienth">branches/jsCStack/Source/WebKit2/UIProcess/API/APILoaderClient.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessAPICWKContextcpp">branches/jsCStack/Source/WebKit2/UIProcess/API/C/WKContext.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessAPICWKContextPrivateh">branches/jsCStack/Source/WebKit2/UIProcess/API/C/WKContextPrivate.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessAPICWKPagecpp">branches/jsCStack/Source/WebKit2/UIProcess/API/C/WKPage.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessAPICWKPageLoaderClienth">branches/jsCStack/Source/WebKit2/UIProcess/API/C/WKPageLoaderClient.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessAPICWKPreferencescpp">branches/jsCStack/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessAPICWKPreferencesPrivateh">branches/jsCStack/Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessAPICocoaWKProcessClassmm">branches/jsCStack/Source/WebKit2/UIProcess/API/Cocoa/WKProcessClass.mm</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessAPICocoaWKProcessClassConfigurationmm">branches/jsCStack/Source/WebKit2/UIProcess/API/Cocoa/WKProcessClassConfiguration.mm</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessAPICocoaWKProcessClassInternalh">branches/jsCStack/Source/WebKit2/UIProcess/API/Cocoa/WKProcessClassInternal.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessAPICocoaWKViewPrivateh">branches/jsCStack/Source/WebKit2/UIProcess/API/Cocoa/WKViewPrivate.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessAPICocoaWKWebViewh">branches/jsCStack/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessAPICocoaWKWebViewmm">branches/jsCStack/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessAPIiosPageClientImplIOSh">branches/jsCStack/Source/WebKit2/UIProcess/API/ios/PageClientImplIOS.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessAPIiosPageClientImplIOSmm">branches/jsCStack/Source/WebKit2/UIProcess/API/ios/PageClientImplIOS.mm</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessAPIiosWKContentViewh">branches/jsCStack/Source/WebKit2/UIProcess/API/ios/WKContentView.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessAPIiosWKContentViewmm">branches/jsCStack/Source/WebKit2/UIProcess/API/ios/WKContentView.mm</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessAPIiosWKContentViewInternalh">branches/jsCStack/Source/WebKit2/UIProcess/API/ios/WKContentViewInternal.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessAPImacPageClientImplh">branches/jsCStack/Source/WebKit2/UIProcess/API/mac/PageClientImpl.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessAPImacPageClientImplmm">branches/jsCStack/Source/WebKit2/UIProcess/API/mac/PageClientImpl.mm</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessAPImacWKViewmm">branches/jsCStack/Source/WebKit2/UIProcess/API/mac/WKView.mm</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessAPImacWKViewInternalh">branches/jsCStack/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessPageClienth">branches/jsCStack/Source/WebKit2/UIProcess/PageClient.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessScrollingRemoteScrollingCoordinatorProxycpp">branches/jsCStack/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessWebContextcpp">branches/jsCStack/Source/WebKit2/UIProcess/WebContext.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessWebContexth">branches/jsCStack/Source/WebKit2/UIProcess/WebContext.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessWebPageProxycpp">branches/jsCStack/Source/WebKit2/UIProcess/WebPageProxy.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessWebPageProxyh">branches/jsCStack/Source/WebKit2/UIProcess/WebPageProxy.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessWebPageProxymessagesin">branches/jsCStack/Source/WebKit2/UIProcess/WebPageProxy.messages.in</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessmacViewGestureControllerh">branches/jsCStack/Source/WebKit2/UIProcess/mac/ViewGestureController.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessmacViewGestureControllermessagesin">branches/jsCStack/Source/WebKit2/UIProcess/mac/ViewGestureController.messages.in</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessmacViewGestureControllermm">branches/jsCStack/Source/WebKit2/UIProcess/mac/ViewGestureController.mm</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessmacViewSnapshotStoremm">branches/jsCStack/Source/WebKit2/UIProcess/mac/ViewSnapshotStore.mm</a></li>
<li><a href="#branchesjsCStackSourceWebKit2UIProcessmacWebPageProxyMacmm">branches/jsCStack/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm</a></li>
<li><a href="#branchesjsCStackSourceWebKit2WebKit2xcodeprojprojectpbxproj">branches/jsCStack/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj</a></li>
<li><a href="#branchesjsCStackSourceWebKit2WebProcessDatabasesIndexedDBWebIDBServerConnectioncpp">branches/jsCStack/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebKit2WebProcessDatabasesIndexedDBWebIDBServerConnectionh">branches/jsCStack/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2WebProcessPluginsPDFPDFPluginh">branches/jsCStack/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2WebProcessPluginsPDFPDFPluginmm">branches/jsCStack/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm</a></li>
<li><a href="#branchesjsCStackSourceWebKit2WebProcessWebPageViewGestureGeometryCollectorcpp">branches/jsCStack/Source/WebKit2/WebProcess/WebPage/ViewGestureGeometryCollector.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebKit2WebProcessWebPageViewGestureGeometryCollectorh">branches/jsCStack/Source/WebKit2/WebProcess/WebPage/ViewGestureGeometryCollector.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2WebProcessWebPageViewGestureGeometryCollectormessagesin">branches/jsCStack/Source/WebKit2/WebProcess/WebPage/ViewGestureGeometryCollector.messages.in</a></li>
<li><a href="#branchesjsCStackSourceWebKit2WebProcessWebPageWebPagecpp">branches/jsCStack/Source/WebKit2/WebProcess/WebPage/WebPage.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebKit2WebProcessWebPageWebPageh">branches/jsCStack/Source/WebKit2/WebProcess/WebPage/WebPage.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2WebProcessWebProcesscpp">branches/jsCStack/Source/WebKit2/WebProcess/WebProcess.cpp</a></li>
<li><a href="#branchesjsCStackSourceWebKit2WebProcessWebProcessh">branches/jsCStack/Source/WebKit2/WebProcess/WebProcess.h</a></li>
<li><a href="#branchesjsCStackSourceWebKit2WebProcessWebProcessmessagesin">branches/jsCStack/Source/WebKit2/WebProcess/WebProcess.messages.in</a></li>
<li><a href="#branchesjsCStackToolsBuildSlaveSupportbuildwebkitorgconfigpublic_htmldashboardScriptsInitializationjs">branches/jsCStack/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Initialization.js</a></li>
<li><a href="#branchesjsCStackToolsBuildSlaveSupportbuildwebkitorgconfigpublic_htmldashboardScriptsMainjs">branches/jsCStack/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js</a></li>
<li><a href="#branchesjsCStackToolsDumpRenderTreemacConfigurationsDumpRenderTreeAppxcconfig">branches/jsCStack/Tools/DumpRenderTree/mac/Configurations/DumpRenderTreeApp.xcconfig</a></li>
<li><a href="#branchesjsCStackToolsDumpRenderTreemacDumpRenderTreemm">branches/jsCStack/Tools/DumpRenderTree/mac/DumpRenderTree.mm</a></li>
<li><a href="#branchesjsCStackToolsScriptscheckforinappropriatemacrosinexternalheaders">branches/jsCStack/Tools/Scripts/check-for-inappropriate-macros-in-external-headers</a></li>
<li><a href="#branchesjsCStackToolsScriptswebkitdirspm">branches/jsCStack/Tools/Scripts/webkitdirs.pm</a></li>
<li><a href="#branchesjsCStackToolsWebKitTestRunnerTestControllercpp">branches/jsCStack/Tools/WebKitTestRunner/TestController.cpp</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#branchesjsCStackLayoutTestsfastmulticolnewmulticolprogressionreverseexpectedhtml">branches/jsCStack/LayoutTests/fast/multicol/newmulticol/progression-reverse-expected.html</a></li>
<li><a href="#branchesjsCStackLayoutTestsfastmulticolnewmulticolprogressionreverseoverflowexpectedhtml">branches/jsCStack/LayoutTests/fast/multicol/newmulticol/progression-reverse-overflow-expected.html</a></li>
<li><a href="#branchesjsCStackLayoutTestsfastmulticolnewmulticolprogressionreverseoverflowhtml">branches/jsCStack/LayoutTests/fast/multicol/newmulticol/progression-reverse-overflow.html</a></li>
<li><a href="#branchesjsCStackLayoutTestsfastmulticolnewmulticolprogressionreversehtml">branches/jsCStack/LayoutTests/fast/multicol/newmulticol/progression-reverse.html</a></li>
<li><a href="#branchesjsCStackSourceWebKit2DatabaseProcessIndexedDBIDBIdentifierh">branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/IDBIdentifier.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="branchesjsCStackLayoutTestsTestExpectations"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/LayoutTests/TestExpectations (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/LayoutTests/TestExpectations        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/LayoutTests/TestExpectations        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -86,3 +86,5 @@
</span><span class="cx"> 
</span><span class="cx"> # This test verifies that a mismatch reftest will fail as intended if both results are same. (introduced in r93187)
</span><span class="cx"> fast/harness/sample-fail-mismatch-reftest.html [ WontFix ImageOnlyFailure ]
</span><ins>+
+webkit.org/b/127697 fast/writing-mode/ruby-text-logical-left.html [ Skip ]
</ins></span></pre></div>
<a id="branchesjsCStackLayoutTestsfastmulticolnewmulticolprogressionreverseexpectedhtml"></a>
<div class="addfile"><h4>Added: branches/jsCStack/LayoutTests/fast/multicol/newmulticol/progression-reverse-expected.html (0 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/LayoutTests/fast/multicol/newmulticol/progression-reverse-expected.html                                (rev 0)
+++ branches/jsCStack/LayoutTests/fast/multicol/newmulticol/progression-reverse-expected.html        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -0,0 +1,248 @@
</span><ins>+&lt;style&gt;
+    div.test {
+        border: solid silver;
+        -webkit-border-before-width: 2px;
+        -webkit-border-end-width: 4px;
+        -webkit-border-after-width: 1px;
+        -webkit-border-start-width: 3px;
+        -webkit-logical-width: 64px;
+        -webkit-logical-height: 32px;
+        -webkit-column-count: 2;
+        -webkit-column-gap: 4px;
+        -webkit-column-rule: 2px solid orange;
+        -webkit-column-fill: auto;
+        -webkit-column-progression: reverse;
+        column-count: 2;
+        column-gap: 4px;
+        column-rule: 2px solid orange;
+        column-fill: auto;
+    }
+
+    .writing-mode-lr div.test {
+        -webkit-writing-mode: vertical-lr;
+    }
+
+    .writing-mode-rl div.test {
+        -webkit-writing-mode: vertical-rl;
+    }
+
+    .writing-mode-tb div.test {
+        -webkit-writing-mode: horizontal-tb;
+    }
+
+    .writing-mode-bt div.test {
+        -webkit-writing-mode: horizontal-bt;
+    }
+
+    div.axis-vertical {
+        -webkit-column-axis: vertical;
+    }
+
+    div.axis-horizontal {
+        -webkit-column-axis: horizontal;
+    }
+
+    .writing-mode-tb div.axis-vertical, .writing-mode-bt div.axis-vertical,
+    .writing-mode-lr div.axis-horizontal, .writing-mode-rl div.axis-horizontal {
+        -webkit-margin-after: 16px;
+        -webkit-margin-before: 96px;
+    }
+
+    .writing-mode-tb div.axis-horizontal, .writing-mode-bt div.axis-horizontal,
+    .writing-mode-lr div.axis-vertical, .writing-mode-rl div.axis-vertical {
+        -webkit-margin-start: 96px;
+        margin-bottom: 16px;
+        margin-top: 48px;
+    }
+
+    div.test &gt; div {
+        -webkit-logical-height: 20px;
+        -webkit-border-before: 4px dotted;
+        -webkit-border-start: 2px dotted white;
+    }
+
+    div.test &gt; div:nth-child(1) { background-color: #707; }
+    div.test &gt; div:nth-child(2) { background-color: #00f; }
+    div.test &gt; div:nth-child(3) { background-color: #0bf; }
+    div.test &gt; div:nth-child(4) { background-color: #086; }
+&lt;/style&gt;
+&lt;div class=&quot;writing-mode-tb&quot;&gt;
+    &lt;div class=&quot;test axis-horizontal&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+    &lt;div class=&quot;test axis-vertical&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;writing-mode-bt&quot;&gt;
+    &lt;div class=&quot;test axis-horizontal&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+    &lt;div class=&quot;test axis-vertical&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;writing-mode-lr&quot;&gt;
+    &lt;div class=&quot;test axis-horizontal&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+    &lt;div class=&quot;test axis-vertical&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;writing-mode-rl&quot;&gt;
+    &lt;div class=&quot;test axis-horizontal&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+    &lt;div class=&quot;test axis-vertical&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+&lt;style&gt;
+    div.test {
+        border: solid silver;
+        -webkit-border-before-width: 2px;
+        -webkit-border-end-width: 4px;
+        -webkit-border-after-width: 1px;
+        -webkit-border-start-width: 3px;
+        -webkit-logical-width: 64px;
+        -webkit-logical-height: 32px;
+        -webkit-column-count: 2;
+        -webkit-column-gap: 4px;
+        -webkit-column-rule: 2px solid orange;
+        -webkit-column-fill: auto;
+        -webkit-column-progression: reverse;
+        column-count: 2;
+        column-gap: 4px;
+        column-rule: 2px solid orange;
+        column-fill: auto;
+    }
+
+    .writing-mode-lr div.test {
+        -webkit-writing-mode: vertical-lr;
+    }
+
+    .writing-mode-rl div.test {
+        -webkit-writing-mode: vertical-rl;
+    }
+
+    .writing-mode-tb div.test {
+        -webkit-writing-mode: horizontal-tb;
+    }
+
+    .writing-mode-bt div.test {
+        -webkit-writing-mode: horizontal-bt;
+    }
+
+    div.axis-vertical {
+        -webkit-column-axis: vertical;
+    }
+
+    div.axis-horizontal {
+        -webkit-column-axis: horizontal;
+    }
+
+    .writing-mode-tb div.axis-vertical, .writing-mode-bt div.axis-vertical,
+    .writing-mode-lr div.axis-horizontal, .writing-mode-rl div.axis-horizontal {
+        -webkit-margin-after: 16px;
+        -webkit-margin-before: 96px;
+    }
+
+    .writing-mode-tb div.axis-horizontal, .writing-mode-bt div.axis-horizontal,
+    .writing-mode-lr div.axis-vertical, .writing-mode-rl div.axis-vertical {
+        -webkit-margin-start: 96px;
+        margin-bottom: 16px;
+        margin-top: 48px;
+    }
+
+    div.test &gt; div {
+        -webkit-logical-height: 20px;
+        -webkit-border-before: 4px dotted;
+        -webkit-border-start: 2px dotted white;
+    }
+
+    div.test &gt; div:nth-child(1) { background-color: #707; }
+    div.test &gt; div:nth-child(2) { background-color: #00f; }
+    div.test &gt; div:nth-child(3) { background-color: #0bf; }
+    div.test &gt; div:nth-child(4) { background-color: #086; }
+&lt;/style&gt;
+&lt;div class=&quot;writing-mode-tb&quot;&gt;
+    &lt;div class=&quot;test axis-horizontal&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+    &lt;div class=&quot;test axis-vertical&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;writing-mode-bt&quot;&gt;
+    &lt;div class=&quot;test axis-horizontal&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+    &lt;div class=&quot;test axis-vertical&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;writing-mode-lr&quot;&gt;
+    &lt;div class=&quot;test axis-horizontal&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+    &lt;div class=&quot;test axis-vertical&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;writing-mode-rl&quot;&gt;
+    &lt;div class=&quot;test axis-horizontal&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+    &lt;div class=&quot;test axis-vertical&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
</ins></span></pre></div>
<a id="branchesjsCStackLayoutTestsfastmulticolnewmulticolprogressionreverseoverflowexpectedhtml"></a>
<div class="addfile"><h4>Added: branches/jsCStack/LayoutTests/fast/multicol/newmulticol/progression-reverse-overflow-expected.html (0 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/LayoutTests/fast/multicol/newmulticol/progression-reverse-overflow-expected.html                                (rev 0)
+++ branches/jsCStack/LayoutTests/fast/multicol/newmulticol/progression-reverse-overflow-expected.html        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -0,0 +1,112 @@
</span><ins>+&lt;style&gt;
+    div.test {
+        width: 100px;
+        height: 100px;
+        -webkit-column-width: 100px;
+        -webkit-column-gap: 0;
+        -webkit-column-fill: auto;
+        -webkit-column-progression: reverse;
+        column-width: 100px;
+        column-gap: 0;
+        column-fill: auto;
+        overflow: hidden;
+    }
+
+    div.test &gt; div {
+        -webkit-logical-height: 100%;
+    }
+
+    div.test &gt; div:first-child {
+        background-color: red;
+    }
+
+    div.test &gt; div:last-child {
+        background-color: green;
+    }
+&lt;/style&gt;
+&lt;div class=&quot;test&quot;&gt;
+    &lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;direction: rtl;&quot;&gt;
+    &lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;-webkit-writing-mode: horizontal-bt;&quot;&gt;
+    &lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;-webkit-writing-mode: vertical-lr;&quot;&gt;
+    &lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;-webkit-column-axis: vertical;&quot;&gt;
+    &lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;-webkit-writing-mode: vertical-lr; -webkit-column-axis: horizontal;&quot;&gt;
+    &lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;script&gt;
+    var tests = document.querySelectorAll(&quot;div.test&quot;);
+    for (var i = 0; i &lt; tests.length; ++i) {
+        var test = tests[i];
+        if (test.scrollLeft)
+            test.scrollLeft = 0;
+        else
+            test.scrollLeft = test.scrollWidth;
+        if (test.scrollTop)
+            test.scrollTop = 0;
+    }
+&lt;/script&gt;
+&lt;style&gt;
+    div.test {
+        width: 100px;
+        height: 100px;
+        -webkit-column-width: 100px;
+        -webkit-column-gap: 0;
+        -webkit-column-fill: auto;
+        -webkit-column-progression: reverse;
+        column-width: 100px;
+        column-gap: 0;
+        column-fill: auto;
+        overflow: hidden;
+    }
+
+    div.test &gt; div {
+        -webkit-logical-height: 100%;
+    }
+
+    div.test &gt; div:first-child {
+        background-color: red;
+    }
+
+    div.test &gt; div:last-child {
+        background-color: green;
+    }
+&lt;/style&gt;
+&lt;div class=&quot;test&quot;&gt;
+    &lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;direction: rtl;&quot;&gt;
+    &lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;-webkit-writing-mode: horizontal-bt;&quot;&gt;
+    &lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;-webkit-writing-mode: vertical-lr;&quot;&gt;
+    &lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;-webkit-column-axis: vertical;&quot;&gt;
+    &lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;-webkit-writing-mode: vertical-lr; -webkit-column-axis: horizontal;&quot;&gt;
+    &lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;script&gt;
+    var tests = document.querySelectorAll(&quot;div.test&quot;);
+    for (var i = 0; i &lt; tests.length; ++i) {
+        var test = tests[i];
+        if (test.scrollLeft)
+            test.scrollLeft = 0;
+        else
+            test.scrollLeft = test.scrollWidth;
+        if (test.scrollTop)
+            test.scrollTop = 0;
+    }
+&lt;/script&gt;
</ins></span></pre></div>
<a id="branchesjsCStackLayoutTestsfastmulticolnewmulticolprogressionreverseoverflowhtml"></a>
<div class="addfile"><h4>Added: branches/jsCStack/LayoutTests/fast/multicol/newmulticol/progression-reverse-overflow.html (0 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/LayoutTests/fast/multicol/newmulticol/progression-reverse-overflow.html                                (rev 0)
+++ branches/jsCStack/LayoutTests/fast/multicol/newmulticol/progression-reverse-overflow.html        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -0,0 +1,120 @@
</span><ins>+&lt;script&gt;
+      if (window.internals)
+        internals.settings.setRegionBasedColumnsEnabled(true);
+&lt;/script&gt;
+&lt;style&gt;
+    div.test {
+        width: 100px;
+        height: 100px;
+        -webkit-column-width: 100px;
+        -webkit-column-gap: 0;
+        -webkit-column-fill: auto;
+        -webkit-column-progression: reverse;
+        column-width: 100px;
+        column-gap: 0;
+        column-fill: auto;
+        overflow: hidden;
+    }
+
+    div.test &gt; div {
+        -webkit-logical-height: 100%;
+    }
+
+    div.test &gt; div:first-child {
+        background-color: red;
+    }
+
+    div.test &gt; div:last-child {
+        background-color: green;
+    }
+&lt;/style&gt;
+&lt;div class=&quot;test&quot;&gt;
+    &lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;direction: rtl;&quot;&gt;
+    &lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;-webkit-writing-mode: horizontal-bt;&quot;&gt;
+    &lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;-webkit-writing-mode: vertical-lr;&quot;&gt;
+    &lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;-webkit-column-axis: vertical;&quot;&gt;
+    &lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;-webkit-writing-mode: vertical-lr; -webkit-column-axis: horizontal;&quot;&gt;
+    &lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;script&gt;
+    var tests = document.querySelectorAll(&quot;div.test&quot;);
+    for (var i = 0; i &lt; tests.length; ++i) {
+        var test = tests[i];
+        if (test.scrollLeft)
+            test.scrollLeft = 0;
+        else
+            test.scrollLeft = test.scrollWidth;
+        if (test.scrollTop)
+            test.scrollTop = 0;
+    }
+&lt;/script&gt;
+&lt;script&gt;
+      if (window.internals)
+        internals.settings.setRegionBasedColumnsEnabled(true);
+&lt;/script&gt;
+&lt;style&gt;
+    div.test {
+        width: 100px;
+        height: 100px;
+        -webkit-column-width: 100px;
+        -webkit-column-gap: 0;
+        -webkit-column-fill: auto;
+        -webkit-column-progression: reverse;
+        column-width: 100px;
+        column-gap: 0;
+        column-fill: auto;
+        overflow: hidden;
+    }
+
+    div.test &gt; div {
+        -webkit-logical-height: 100%;
+    }
+
+    div.test &gt; div:first-child {
+        background-color: red;
+    }
+
+    div.test &gt; div:last-child {
+        background-color: green;
+    }
+&lt;/style&gt;
+&lt;div class=&quot;test&quot;&gt;
+    &lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;direction: rtl;&quot;&gt;
+    &lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;-webkit-writing-mode: horizontal-bt;&quot;&gt;
+    &lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;-webkit-writing-mode: vertical-lr;&quot;&gt;
+    &lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;-webkit-column-axis: vertical;&quot;&gt;
+    &lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;-webkit-writing-mode: vertical-lr; -webkit-column-axis: horizontal;&quot;&gt;
+    &lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;script&gt;
+    var tests = document.querySelectorAll(&quot;div.test&quot;);
+    for (var i = 0; i &lt; tests.length; ++i) {
+        var test = tests[i];
+        if (test.scrollLeft)
+            test.scrollLeft = 0;
+        else
+            test.scrollLeft = test.scrollWidth;
+        if (test.scrollTop)
+            test.scrollTop = 0;
+    }
+&lt;/script&gt;
</ins></span></pre></div>
<a id="branchesjsCStackLayoutTestsfastmulticolnewmulticolprogressionreversehtml"></a>
<div class="addfile"><h4>Added: branches/jsCStack/LayoutTests/fast/multicol/newmulticol/progression-reverse.html (0 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/LayoutTests/fast/multicol/newmulticol/progression-reverse.html                                (rev 0)
+++ branches/jsCStack/LayoutTests/fast/multicol/newmulticol/progression-reverse.html        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -0,0 +1,256 @@
</span><ins>+&lt;script&gt;
+      if (window.internals)
+        internals.settings.setRegionBasedColumnsEnabled(true);
+&lt;/script&gt;
+&lt;style&gt;
+    div.test {
+        border: solid silver;
+        -webkit-border-before-width: 2px;
+        -webkit-border-end-width: 4px;
+        -webkit-border-after-width: 1px;
+        -webkit-border-start-width: 3px;
+        -webkit-logical-width: 64px;
+        -webkit-logical-height: 32px;
+        -webkit-column-count: 2;
+        -webkit-column-gap: 4px;
+        -webkit-column-rule: 2px solid orange;
+        -webkit-column-fill: auto;
+        -webkit-column-progression: reverse;
+        column-count: 2;
+        column-gap: 4px;
+        column-rule: 2px solid orange;
+        column-fill: auto;
+    }
+
+    .writing-mode-lr div.test {
+        -webkit-writing-mode: vertical-lr;
+    }
+
+    .writing-mode-rl div.test {
+        -webkit-writing-mode: vertical-rl;
+    }
+
+    .writing-mode-tb div.test {
+        -webkit-writing-mode: horizontal-tb;
+    }
+
+    .writing-mode-bt div.test {
+        -webkit-writing-mode: horizontal-bt;
+    }
+
+    div.axis-vertical {
+        -webkit-column-axis: vertical;
+    }
+
+    div.axis-horizontal {
+        -webkit-column-axis: horizontal;
+    }
+
+    .writing-mode-tb div.axis-vertical, .writing-mode-bt div.axis-vertical,
+    .writing-mode-lr div.axis-horizontal, .writing-mode-rl div.axis-horizontal {
+        -webkit-margin-after: 16px;
+        -webkit-margin-before: 96px;
+    }
+
+    .writing-mode-tb div.axis-horizontal, .writing-mode-bt div.axis-horizontal,
+    .writing-mode-lr div.axis-vertical, .writing-mode-rl div.axis-vertical {
+        -webkit-margin-start: 96px;
+        margin-bottom: 16px;
+        margin-top: 48px;
+    }
+
+    div.test &gt; div {
+        -webkit-logical-height: 20px;
+        -webkit-border-before: 4px dotted;
+        -webkit-border-start: 2px dotted white;
+    }
+
+    div.test &gt; div:nth-child(1) { background-color: #707; }
+    div.test &gt; div:nth-child(2) { background-color: #00f; }
+    div.test &gt; div:nth-child(3) { background-color: #0bf; }
+    div.test &gt; div:nth-child(4) { background-color: #086; }
+&lt;/style&gt;
+&lt;div class=&quot;writing-mode-tb&quot;&gt;
+    &lt;div class=&quot;test axis-horizontal&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+    &lt;div class=&quot;test axis-vertical&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;writing-mode-bt&quot;&gt;
+    &lt;div class=&quot;test axis-horizontal&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+    &lt;div class=&quot;test axis-vertical&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;writing-mode-lr&quot;&gt;
+    &lt;div class=&quot;test axis-horizontal&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+    &lt;div class=&quot;test axis-vertical&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;writing-mode-rl&quot;&gt;
+    &lt;div class=&quot;test axis-horizontal&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+    &lt;div class=&quot;test axis-vertical&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+&lt;script&gt;
+      if (window.internals)
+        internals.settings.setRegionBasedColumnsEnabled(true);
+&lt;/script&gt;
+&lt;style&gt;
+    div.test {
+        border: solid silver;
+        -webkit-border-before-width: 2px;
+        -webkit-border-end-width: 4px;
+        -webkit-border-after-width: 1px;
+        -webkit-border-start-width: 3px;
+        -webkit-logical-width: 64px;
+        -webkit-logical-height: 32px;
+        -webkit-column-count: 2;
+        -webkit-column-gap: 4px;
+        -webkit-column-rule: 2px solid orange;
+        -webkit-column-fill: auto;
+        -webkit-column-progression: reverse;
+        column-count: 2;
+        column-gap: 4px;
+        column-rule: 2px solid orange;
+        column-fill: auto;
+    }
+
+    .writing-mode-lr div.test {
+        -webkit-writing-mode: vertical-lr;
+    }
+
+    .writing-mode-rl div.test {
+        -webkit-writing-mode: vertical-rl;
+    }
+
+    .writing-mode-tb div.test {
+        -webkit-writing-mode: horizontal-tb;
+    }
+
+    .writing-mode-bt div.test {
+        -webkit-writing-mode: horizontal-bt;
+    }
+
+    div.axis-vertical {
+        -webkit-column-axis: vertical;
+    }
+
+    div.axis-horizontal {
+        -webkit-column-axis: horizontal;
+    }
+
+    .writing-mode-tb div.axis-vertical, .writing-mode-bt div.axis-vertical,
+    .writing-mode-lr div.axis-horizontal, .writing-mode-rl div.axis-horizontal {
+        -webkit-margin-after: 16px;
+        -webkit-margin-before: 96px;
+    }
+
+    .writing-mode-tb div.axis-horizontal, .writing-mode-bt div.axis-horizontal,
+    .writing-mode-lr div.axis-vertical, .writing-mode-rl div.axis-vertical {
+        -webkit-margin-start: 96px;
+        margin-bottom: 16px;
+        margin-top: 48px;
+    }
+
+    div.test &gt; div {
+        -webkit-logical-height: 20px;
+        -webkit-border-before: 4px dotted;
+        -webkit-border-start: 2px dotted white;
+    }
+
+    div.test &gt; div:nth-child(1) { background-color: #707; }
+    div.test &gt; div:nth-child(2) { background-color: #00f; }
+    div.test &gt; div:nth-child(3) { background-color: #0bf; }
+    div.test &gt; div:nth-child(4) { background-color: #086; }
+&lt;/style&gt;
+&lt;div class=&quot;writing-mode-tb&quot;&gt;
+    &lt;div class=&quot;test axis-horizontal&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+    &lt;div class=&quot;test axis-vertical&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;writing-mode-bt&quot;&gt;
+    &lt;div class=&quot;test axis-horizontal&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+    &lt;div class=&quot;test axis-vertical&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;writing-mode-lr&quot;&gt;
+    &lt;div class=&quot;test axis-horizontal&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+    &lt;div class=&quot;test axis-vertical&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+&lt;div class=&quot;writing-mode-rl&quot;&gt;
+    &lt;div class=&quot;test axis-horizontal&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+    &lt;div class=&quot;test axis-vertical&quot;&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+        &lt;div&gt;&lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
</ins></span></pre></div>
<a id="branchesjsCStackLayoutTestsfastshapesparsingparsingshapeinsideexpectedtxt"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/LayoutTests/fast/shapes/parsing/parsing-shape-inside-expected.txt (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/LayoutTests/fast/shapes/parsing/parsing-shape-inside-expected.txt        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/LayoutTests/fast/shapes/parsing/parsing-shape-inside-expected.txt        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -17,8 +17,52 @@
</span><span class="cx"> PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset-rectangle(10px, 20px, 30px, 40px, 5px)&quot;) is &quot;inset-rectangle(10px, 20px, 30px, 40px, 5px, 5px)&quot;
</span><span class="cx"> PASS getCSSText(&quot;-webkit-shape-inside&quot;, &quot;inset-rectangle(10px, 20px, 30px, 40px, 5px, 10px)&quot;) is &quot;inset-rectangle(10px, 20px, 30px, 40px, 5px, 10px)&quot;
</span><span class="cx"> PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset-rectangle(10px, 20px, 30px, 40px, 5px, 10px)&quot;) is &quot;inset-rectangle(10px, 20px, 30px, 40px, 5px, 10px)&quot;
</span><ins>+PASS getCSSText(&quot;-webkit-shape-inside&quot;, &quot;inset(10px)&quot;) is &quot;inset(10px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(10px)&quot;) is &quot;inset(10px 0px 0px 0px round 0px 0px 0px 0px / 0px 0px 0px 0px)&quot;
+PASS getCSSText(&quot;-webkit-shape-inside&quot;, &quot;inset(10px 9px)&quot;) is &quot;inset(10px 9px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(10px 9px)&quot;) is &quot;inset(10px 9px 0px 0px round 0px 0px 0px 0px / 0px 0px 0px 0px)&quot;
+PASS getCSSText(&quot;-webkit-shape-inside&quot;, &quot;inset(10px 9px 8px)&quot;) is &quot;inset(10px 9px 8px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(10px 9px 8px)&quot;) is &quot;inset(10px 9px 8px 0px round 0px 0px 0px 0px / 0px 0px 0px 0px)&quot;
</ins><span class="cx"> PASS getCSSText(&quot;-webkit-shape-inside&quot;, &quot;inset(10px 20px 30px 40px)&quot;) is &quot;inset(10px 20px 30px 40px)&quot;
</span><span class="cx"> PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(10px 20px 30px 40px)&quot;) is &quot;inset(10px 20px 30px 40px round 0px 0px 0px 0px / 0px 0px 0px 0px)&quot;
</span><ins>+PASS getCSSText(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px)&quot;) is &quot;inset(10px round 9px 9px 9px 9px / 9px 9px 9px 9px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 9px 9px 9px / 9px 9px 9px 9px)&quot;
+PASS getCSSText(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px / 9px)&quot;) is &quot;inset(10px round 9px 9px 9px 9px / 9px 9px 9px 9px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px / 9px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 9px 9px 9px / 9px 9px 9px 9px)&quot;
+PASS getCSSText(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px / 8px)&quot;) is &quot;inset(10px round 9px 9px 9px 9px / 8px 8px 8px 8px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px / 8px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 9px 9px 9px / 8px 8px 8px 8px)&quot;
+PASS getCSSText(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px / 8px 7px)&quot;) is &quot;inset(10px round 9px 9px 9px 9px / 8px 7px 8px 7px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px / 8px 7px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 9px 9px 9px / 8px 7px 8px 7px)&quot;
+PASS getCSSText(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px / 8px 7px 6px)&quot;) is &quot;inset(10px round 9px 9px 9px 9px / 8px 7px 6px 7px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px / 8px 7px 6px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 9px 9px 9px / 8px 7px 6px 7px)&quot;
+PASS getCSSText(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px / 8px 7px 6px 5px)&quot;) is &quot;inset(10px round 9px 9px 9px 9px / 8px 7px 6px 5px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px / 8px 7px 6px 5px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 9px 9px 9px / 8px 7px 6px 5px)&quot;
+PASS getCSSText(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px 8px / 7px)&quot;) is &quot;inset(10px round 9px 8px 9px 8px / 7px 7px 7px 7px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px 8px / 7px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 8px 9px 8px / 7px 7px 7px 7px)&quot;
+PASS getCSSText(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px 8px / 7px 6px)&quot;) is &quot;inset(10px round 9px 8px 9px 8px / 7px 6px 7px 6px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px 8px / 7px 6px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 8px 9px 8px / 7px 6px 7px 6px)&quot;
+PASS getCSSText(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px 8px / 7px 6px)&quot;) is &quot;inset(10px round 9px 8px 9px 8px / 7px 6px 7px 6px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px 8px / 7px 6px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 8px 9px 8px / 7px 6px 7px 6px)&quot;
+PASS getCSSText(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px 8px / 7px 6px 5px)&quot;) is &quot;inset(10px round 9px 8px 9px 8px / 7px 6px 5px 6px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px 8px / 7px 6px 5px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 8px 9px 8px / 7px 6px 5px 6px)&quot;
+PASS getCSSText(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px 8px / 7px 6px 5px 4px)&quot;) is &quot;inset(10px round 9px 8px 9px 8px / 7px 6px 5px 4px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px 8px / 7px 6px 5px 4px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 8px 9px 8px / 7px 6px 5px 4px)&quot;
+PASS getCSSText(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px 8px 7px / 6px)&quot;) is &quot;inset(10px round 9px 8px 7px 8px / 6px 6px 6px 6px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px 8px 7px / 6px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 8px 7px 8px / 6px 6px 6px 6px)&quot;
+PASS getCSSText(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px 8px 7px / 6px 5px)&quot;) is &quot;inset(10px round 9px 8px 7px 8px / 6px 5px 6px 5px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px 8px 7px / 6px 5px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 8px 7px 8px / 6px 5px 6px 5px)&quot;
+PASS getCSSText(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px 8px 7px / 6px 5px 4px)&quot;) is &quot;inset(10px round 9px 8px 7px 8px / 6px 5px 4px 5px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px 8px 7px / 6px 5px 4px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 8px 7px 8px / 6px 5px 4px 5px)&quot;
+PASS getCSSText(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px 8px 7px / 6px 5px 4px 3px)&quot;) is &quot;inset(10px round 9px 8px 7px 8px / 6px 5px 4px 3px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px 8px 7px / 6px 5px 4px 3px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 8px 7px 8px / 6px 5px 4px 3px)&quot;
+PASS getCSSText(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px 8px 7px 6px / 5px)&quot;) is &quot;inset(10px round 9px 8px 7px 6px / 5px 5px 5px 5px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px 8px 7px 6px / 5px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 8px 7px 6px / 5px 5px 5px 5px)&quot;
+PASS getCSSText(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px 8px 7px 6px / 5px 4px)&quot;) is &quot;inset(10px round 9px 8px 7px 6px / 5px 4px 5px 4px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px 8px 7px 6px / 5px 4px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 8px 7px 6px / 5px 4px 5px 4px)&quot;
+PASS getCSSText(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px 8px 7px 6px / 5px 4px 3px)&quot;) is &quot;inset(10px round 9px 8px 7px 6px / 5px 4px 3px 4px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px 8px 7px 6px / 5px 4px 3px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 8px 7px 6px / 5px 4px 3px 4px)&quot;
+PASS getCSSText(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px 8px 7px 6px / 5px 4px 3px 2px)&quot;) is &quot;inset(10px round 9px 8px 7px 6px / 5px 4px 3px 2px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(10px round 9px 8px 7px 6px / 5px 4px 3px 2px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 8px 7px 6px / 5px 4px 3px 2px)&quot;
</ins><span class="cx"> PASS getCSSText(&quot;-webkit-shape-inside&quot;, &quot;inset(10px 20px 30px 40px round 5px 6px)&quot;) is &quot;inset(10px 20px 30px 40px round 5px 6px 5px 6px / 5px 6px 5px 6px)&quot;
</span><span class="cx"> PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(10px 20px 30px 40px round 5px 6px)&quot;) is &quot;inset(10px 20px 30px 40px round 5px 6px 5px 6px / 5px 6px 5px 6px)&quot;
</span><span class="cx"> PASS getCSSText(&quot;-webkit-shape-inside&quot;, &quot;inset(10px 20px 30px 40px round 5px 6px 7px 8px / 50px 60px 70px 80px)&quot;) is &quot;inset(10px 20px 30px 40px round 5px 6px 7px 8px / 50px 60px 70px 80px)&quot;
</span></span></pre></div>
<a id="branchesjsCStackLayoutTestsfastshapesparsingparsingshapelengthsexpectedtxt"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/LayoutTests/fast/shapes/parsing/parsing-shape-lengths-expected.txt (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/LayoutTests/fast/shapes/parsing/parsing-shape-lengths-expected.txt        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/LayoutTests/fast/shapes/parsing/parsing-shape-lengths-expected.txt        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -10,6 +10,10 @@
</span><span class="cx"> PASS getStyleValue(&quot;-webkit-shape-inside&quot;, &quot;rectangle(1cm, 1mm, 1in, 1px, 1pt, 1pc)&quot;) is &quot;rectangle(1cm, 1mm, 1in, 1px, 1pt, 1pc)&quot;
</span><span class="cx"> PASS getStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset-rectangle(1cm, 1mm, 1in, 1px, 1pt, 1pc)&quot;) is &quot;inset-rectangle(1cm, 1mm, 1in, 1px, 1pt, 1pc)&quot;
</span><span class="cx"> PASS getStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(1cm 1mm 1in 1px round 1pt 1pc)&quot;) is &quot;inset(1cm 1mm 1in 1px round 1pt 1pc 1pt 1pc / 1pt 1pc 1pt 1pc)&quot;
</span><ins>+PASS getStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(-1px 1px 1px 1px round 1px 1px 1px 1px)&quot;) is &quot;inset(-1px 1px 1px 1px round 1px 1px 1px 1px / 1px 1px 1px 1px)&quot;
+PASS getStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(1px -1px 1px 1px round 1px 1px 1px 1px)&quot;) is &quot;inset(1px -1px 1px 1px round 1px 1px 1px 1px / 1px 1px 1px 1px)&quot;
+PASS getStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(1px 1px -1px 1px round 1px 1px 1px 1px)&quot;) is &quot;inset(1px 1px -1px 1px round 1px 1px 1px 1px / 1px 1px 1px 1px)&quot;
+PASS getStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(1px 1px 1px -1px round 1px 1px 1px 1px)&quot;) is &quot;inset(1px 1px 1px -1px round 1px 1px 1px 1px / 1px 1px 1px 1px)&quot;
</ins><span class="cx"> PASS getStyleValue(&quot;-webkit-shape-inside&quot;, &quot;circle(-1em, +1em, 1em)&quot;) is &quot;circle(-1em, 1em, 1em)&quot;
</span><span class="cx"> PASS getStyleValue(&quot;-webkit-shape-inside&quot;, &quot;circle(-1.5em, +1.5em, 1.5em)&quot;) is &quot;circle(-1.5em, 1.5em, 1.5em)&quot;
</span><span class="cx"> PASS getStyleValue(&quot;-webkit-shape-inside&quot;, &quot;circle(-.5em, +.5em, .5em)&quot;) is &quot;circle(-0.5em, 0.5em, 0.5em)&quot;
</span><span class="lines">@@ -71,14 +75,6 @@
</span><span class="cx"> PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset-rectangle(1cm, 1mm, -1in, 1px, 1pt, 1pc)&quot;) is &quot;none&quot;
</span><span class="cx"> PASS getStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset-rectangle(1cm, 1mm, 1in, -1px, 1pt, 1pc)&quot;) is null
</span><span class="cx"> PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset-rectangle(1cm, 1mm, 1in, -1px, 1pt, 1pc)&quot;) is &quot;none&quot;
</span><del>-PASS getStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(-1cm 1mm 1in 1px)&quot;) is null
-PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(-1cm 1mm 1in 1px)&quot;) is &quot;none&quot;
-PASS getStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(1cm -1mm 1in 1px)&quot;) is null
-PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(1cm -1mm 1in 1px)&quot;) is &quot;none&quot;
-PASS getStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(1cm 1mm -1in 1px)&quot;) is null
-PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(1cm 1mm -1in 1px)&quot;) is &quot;none&quot;
-PASS getStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(1cm 1mm 1in -1px)&quot;) is null
-PASS getComputedStyleValue(&quot;-webkit-shape-inside&quot;, &quot;inset(1cm 1mm 1in -1px)&quot;) is &quot;none&quot;
</del><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="branchesjsCStackLayoutTestsfastshapesparsingparsingshapelengthshtml"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/LayoutTests/fast/shapes/parsing/parsing-shape-lengths.html (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/LayoutTests/fast/shapes/parsing/parsing-shape-lengths.html        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/LayoutTests/fast/shapes/parsing/parsing-shape-lengths.html        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -44,6 +44,10 @@
</span><span class="cx"> testStyleValue(&quot;rectangle(1cm, 1mm, 1in, 1px, 1pt, 1pc)&quot;, &quot;rectangle(1cm, 1mm, 1in, 1px, 1pt, 1pc)&quot;);
</span><span class="cx"> testStyleValue(&quot;inset-rectangle(1cm, 1mm, 1in, 1px, 1pt, 1pc)&quot;, &quot;inset-rectangle(1cm, 1mm, 1in, 1px, 1pt, 1pc)&quot;);
</span><span class="cx"> testStyleValue(&quot;inset(1cm 1mm 1in 1px round 1pt 1pc)&quot;, &quot;inset(1cm 1mm 1in 1px round 1pt 1pc 1pt 1pc / 1pt 1pc 1pt 1pc)&quot;);
</span><ins>+testStyleValue(&quot;inset(-1px 1px 1px 1px round 1px 1px 1px 1px)&quot;, &quot;inset(-1px 1px 1px 1px round 1px 1px 1px 1px / 1px 1px 1px 1px)&quot;);
+testStyleValue(&quot;inset(1px -1px 1px 1px round 1px 1px 1px 1px)&quot;, &quot;inset(1px -1px 1px 1px round 1px 1px 1px 1px / 1px 1px 1px 1px)&quot;);
+testStyleValue(&quot;inset(1px 1px -1px 1px round 1px 1px 1px 1px)&quot;, &quot;inset(1px 1px -1px 1px round 1px 1px 1px 1px / 1px 1px 1px 1px)&quot;);
+testStyleValue(&quot;inset(1px 1px 1px -1px round 1px 1px 1px 1px)&quot;, &quot;inset(1px 1px 1px -1px round 1px 1px 1px 1px / 1px 1px 1px 1px)&quot;);
</ins><span class="cx"> 
</span><span class="cx"> // font-relative lengths - number serialization, units, resolution
</span><span class="cx"> testStyleValue(&quot;circle(-1em, +1em, 1em)&quot;, &quot;circle(-1em, 1em, 1em)&quot;);
</span><span class="lines">@@ -107,12 +111,6 @@
</span><span class="cx"> testInvalidValue(&quot;-webkit-shape-inside&quot;, &quot;inset-rectangle(1cm, 1mm, -1in, 1px, 1pt, 1pc)&quot;);
</span><span class="cx"> testInvalidValue(&quot;-webkit-shape-inside&quot;, &quot;inset-rectangle(1cm, 1mm, 1in, -1px, 1pt, 1pc)&quot;);
</span><span class="cx"> 
</span><del>-// reject negative top, right, bottom, and left
-testInvalidValue(&quot;-webkit-shape-inside&quot;, &quot;inset(-1cm 1mm 1in 1px)&quot;);
-testInvalidValue(&quot;-webkit-shape-inside&quot;, &quot;inset(1cm -1mm 1in 1px)&quot;);
-testInvalidValue(&quot;-webkit-shape-inside&quot;, &quot;inset(1cm 1mm -1in 1px)&quot;);
-testInvalidValue(&quot;-webkit-shape-inside&quot;, &quot;inset(1cm 1mm 1in -1px)&quot;);
-
</del><span class="cx"> &lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;/body&gt;
</span></span></pre></div>
<a id="branchesjsCStackLayoutTestsfastshapesparsingparsingshapeoutsideexpectedtxt"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/LayoutTests/fast/shapes/parsing/parsing-shape-outside-expected.txt (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/LayoutTests/fast/shapes/parsing/parsing-shape-outside-expected.txt        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/LayoutTests/fast/shapes/parsing/parsing-shape-outside-expected.txt        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -17,8 +17,52 @@
</span><span class="cx"> PASS getComputedStyleValue(&quot;-webkit-shape-outside&quot;, &quot;inset-rectangle(10px, 20px, 30px, 40px, 5px)&quot;) is &quot;inset-rectangle(10px, 20px, 30px, 40px, 5px, 5px)&quot;
</span><span class="cx"> PASS getCSSText(&quot;-webkit-shape-outside&quot;, &quot;inset-rectangle(10px, 20px, 30px, 40px, 5px, 10px)&quot;) is &quot;inset-rectangle(10px, 20px, 30px, 40px, 5px, 10px)&quot;
</span><span class="cx"> PASS getComputedStyleValue(&quot;-webkit-shape-outside&quot;, &quot;inset-rectangle(10px, 20px, 30px, 40px, 5px, 10px)&quot;) is &quot;inset-rectangle(10px, 20px, 30px, 40px, 5px, 10px)&quot;
</span><ins>+PASS getCSSText(&quot;-webkit-shape-outside&quot;, &quot;inset(10px)&quot;) is &quot;inset(10px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-outside&quot;, &quot;inset(10px)&quot;) is &quot;inset(10px 0px 0px 0px round 0px 0px 0px 0px / 0px 0px 0px 0px)&quot;
+PASS getCSSText(&quot;-webkit-shape-outside&quot;, &quot;inset(10px 9px)&quot;) is &quot;inset(10px 9px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-outside&quot;, &quot;inset(10px 9px)&quot;) is &quot;inset(10px 9px 0px 0px round 0px 0px 0px 0px / 0px 0px 0px 0px)&quot;
+PASS getCSSText(&quot;-webkit-shape-outside&quot;, &quot;inset(10px 9px 8px)&quot;) is &quot;inset(10px 9px 8px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-outside&quot;, &quot;inset(10px 9px 8px)&quot;) is &quot;inset(10px 9px 8px 0px round 0px 0px 0px 0px / 0px 0px 0px 0px)&quot;
</ins><span class="cx"> PASS getCSSText(&quot;-webkit-shape-outside&quot;, &quot;inset(10px 20px 30px 40px)&quot;) is &quot;inset(10px 20px 30px 40px)&quot;
</span><span class="cx"> PASS getComputedStyleValue(&quot;-webkit-shape-outside&quot;, &quot;inset(10px 20px 30px 40px)&quot;) is &quot;inset(10px 20px 30px 40px round 0px 0px 0px 0px / 0px 0px 0px 0px)&quot;
</span><ins>+PASS getCSSText(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px)&quot;) is &quot;inset(10px round 9px 9px 9px 9px / 9px 9px 9px 9px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 9px 9px 9px / 9px 9px 9px 9px)&quot;
+PASS getCSSText(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px / 9px)&quot;) is &quot;inset(10px round 9px 9px 9px 9px / 9px 9px 9px 9px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px / 9px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 9px 9px 9px / 9px 9px 9px 9px)&quot;
+PASS getCSSText(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px / 8px)&quot;) is &quot;inset(10px round 9px 9px 9px 9px / 8px 8px 8px 8px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px / 8px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 9px 9px 9px / 8px 8px 8px 8px)&quot;
+PASS getCSSText(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px / 8px 7px)&quot;) is &quot;inset(10px round 9px 9px 9px 9px / 8px 7px 8px 7px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px / 8px 7px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 9px 9px 9px / 8px 7px 8px 7px)&quot;
+PASS getCSSText(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px / 8px 7px 6px)&quot;) is &quot;inset(10px round 9px 9px 9px 9px / 8px 7px 6px 7px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px / 8px 7px 6px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 9px 9px 9px / 8px 7px 6px 7px)&quot;
+PASS getCSSText(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px / 8px 7px 6px 5px)&quot;) is &quot;inset(10px round 9px 9px 9px 9px / 8px 7px 6px 5px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px / 8px 7px 6px 5px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 9px 9px 9px / 8px 7px 6px 5px)&quot;
+PASS getCSSText(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px 8px / 7px)&quot;) is &quot;inset(10px round 9px 8px 9px 8px / 7px 7px 7px 7px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px 8px / 7px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 8px 9px 8px / 7px 7px 7px 7px)&quot;
+PASS getCSSText(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px 8px / 7px 6px)&quot;) is &quot;inset(10px round 9px 8px 9px 8px / 7px 6px 7px 6px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px 8px / 7px 6px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 8px 9px 8px / 7px 6px 7px 6px)&quot;
+PASS getCSSText(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px 8px / 7px 6px)&quot;) is &quot;inset(10px round 9px 8px 9px 8px / 7px 6px 7px 6px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px 8px / 7px 6px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 8px 9px 8px / 7px 6px 7px 6px)&quot;
+PASS getCSSText(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px 8px / 7px 6px 5px)&quot;) is &quot;inset(10px round 9px 8px 9px 8px / 7px 6px 5px 6px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px 8px / 7px 6px 5px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 8px 9px 8px / 7px 6px 5px 6px)&quot;
+PASS getCSSText(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px 8px / 7px 6px 5px 4px)&quot;) is &quot;inset(10px round 9px 8px 9px 8px / 7px 6px 5px 4px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px 8px / 7px 6px 5px 4px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 8px 9px 8px / 7px 6px 5px 4px)&quot;
+PASS getCSSText(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px 8px 7px / 6px)&quot;) is &quot;inset(10px round 9px 8px 7px 8px / 6px 6px 6px 6px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px 8px 7px / 6px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 8px 7px 8px / 6px 6px 6px 6px)&quot;
+PASS getCSSText(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px 8px 7px / 6px 5px)&quot;) is &quot;inset(10px round 9px 8px 7px 8px / 6px 5px 6px 5px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px 8px 7px / 6px 5px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 8px 7px 8px / 6px 5px 6px 5px)&quot;
+PASS getCSSText(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px 8px 7px / 6px 5px 4px)&quot;) is &quot;inset(10px round 9px 8px 7px 8px / 6px 5px 4px 5px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px 8px 7px / 6px 5px 4px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 8px 7px 8px / 6px 5px 4px 5px)&quot;
+PASS getCSSText(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px 8px 7px / 6px 5px 4px 3px)&quot;) is &quot;inset(10px round 9px 8px 7px 8px / 6px 5px 4px 3px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px 8px 7px / 6px 5px 4px 3px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 8px 7px 8px / 6px 5px 4px 3px)&quot;
+PASS getCSSText(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px 8px 7px 6px / 5px)&quot;) is &quot;inset(10px round 9px 8px 7px 6px / 5px 5px 5px 5px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px 8px 7px 6px / 5px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 8px 7px 6px / 5px 5px 5px 5px)&quot;
+PASS getCSSText(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px 8px 7px 6px / 5px 4px)&quot;) is &quot;inset(10px round 9px 8px 7px 6px / 5px 4px 5px 4px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px 8px 7px 6px / 5px 4px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 8px 7px 6px / 5px 4px 5px 4px)&quot;
+PASS getCSSText(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px 8px 7px 6px / 5px 4px 3px)&quot;) is &quot;inset(10px round 9px 8px 7px 6px / 5px 4px 3px 4px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px 8px 7px 6px / 5px 4px 3px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 8px 7px 6px / 5px 4px 3px 4px)&quot;
+PASS getCSSText(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px 8px 7px 6px / 5px 4px 3px 2px)&quot;) is &quot;inset(10px round 9px 8px 7px 6px / 5px 4px 3px 2px)&quot;
+PASS getComputedStyleValue(&quot;-webkit-shape-outside&quot;, &quot;inset(10px round 9px 8px 7px 6px / 5px 4px 3px 2px)&quot;) is &quot;inset(10px 0px 0px 0px round 9px 8px 7px 6px / 5px 4px 3px 2px)&quot;
</ins><span class="cx"> PASS getCSSText(&quot;-webkit-shape-outside&quot;, &quot;inset(10px 20px 30px 40px round 5px 6px)&quot;) is &quot;inset(10px 20px 30px 40px round 5px 6px 5px 6px / 5px 6px 5px 6px)&quot;
</span><span class="cx"> PASS getComputedStyleValue(&quot;-webkit-shape-outside&quot;, &quot;inset(10px 20px 30px 40px round 5px 6px)&quot;) is &quot;inset(10px 20px 30px 40px round 5px 6px 5px 6px / 5px 6px 5px 6px)&quot;
</span><span class="cx"> PASS getCSSText(&quot;-webkit-shape-outside&quot;, &quot;inset(10px 20px 30px 40px round 5px 6px 7px 8px / 50px 60px 70px 80px)&quot;) is &quot;inset(10px 20px 30px 40px round 5px 6px 7px 8px / 50px 60px 70px 80px)&quot;
</span></span></pre></div>
<a id="branchesjsCStackLayoutTestsfastshapesparsingparsingtestutilsjs"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/LayoutTests/fast/shapes/parsing/parsing-test-utils.js (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/LayoutTests/fast/shapes/parsing/parsing-test-utils.js        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/LayoutTests/fast/shapes/parsing/parsing-test-utils.js        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -14,7 +14,29 @@
</span><span class="cx">     [&quot;inset-rectangle(10px, 20px, 30px, 40px, 5px)&quot;, &quot;inset-rectangle(10px, 20px, 30px, 40px, 5px)&quot;, &quot;inset-rectangle(10px, 20px, 30px, 40px, 5px, 5px)&quot;],
</span><span class="cx">     &quot;inset-rectangle(10px, 20px, 30px, 40px, 5px, 10px)&quot;,
</span><span class="cx"> 
</span><ins>+    [&quot;inset(10px)&quot;, &quot;inset(10px)&quot;, &quot;inset(10px 0px 0px 0px round 0px 0px 0px 0px / 0px 0px 0px 0px)&quot;],
+    [&quot;inset(10px 9px)&quot;, &quot;inset(10px 9px)&quot;, &quot;inset(10px 9px 0px 0px round 0px 0px 0px 0px / 0px 0px 0px 0px)&quot;],
+    [&quot;inset(10px 9px 8px)&quot;, &quot;inset(10px 9px 8px)&quot;, &quot;inset(10px 9px 8px 0px round 0px 0px 0px 0px / 0px 0px 0px 0px)&quot;],
</ins><span class="cx">     [&quot;inset(10px 20px 30px 40px)&quot;, &quot;inset(10px 20px 30px 40px)&quot;, &quot;inset(10px 20px 30px 40px round 0px 0px 0px 0px / 0px 0px 0px 0px)&quot;],
</span><ins>+    [&quot;inset(10px round 9px)&quot;, &quot;inset(10px round 9px 9px 9px 9px / 9px 9px 9px 9px)&quot;, &quot;inset(10px 0px 0px 0px round 9px 9px 9px 9px / 9px 9px 9px 9px)&quot;],
+    [&quot;inset(10px round 9px / 9px)&quot;, &quot;inset(10px round 9px 9px 9px 9px / 9px 9px 9px 9px)&quot;, &quot;inset(10px 0px 0px 0px round 9px 9px 9px 9px / 9px 9px 9px 9px)&quot;],
+    [&quot;inset(10px round 9px / 8px)&quot;, &quot;inset(10px round 9px 9px 9px 9px / 8px 8px 8px 8px)&quot;, &quot;inset(10px 0px 0px 0px round 9px 9px 9px 9px / 8px 8px 8px 8px)&quot;],
+    [&quot;inset(10px round 9px / 8px 7px)&quot;, &quot;inset(10px round 9px 9px 9px 9px / 8px 7px 8px 7px)&quot;, &quot;inset(10px 0px 0px 0px round 9px 9px 9px 9px / 8px 7px 8px 7px)&quot;],
+    [&quot;inset(10px round 9px / 8px 7px 6px)&quot;, &quot;inset(10px round 9px 9px 9px 9px / 8px 7px 6px 7px)&quot;, &quot;inset(10px 0px 0px 0px round 9px 9px 9px 9px / 8px 7px 6px 7px)&quot;],
+    [&quot;inset(10px round 9px / 8px 7px 6px 5px)&quot;, &quot;inset(10px round 9px 9px 9px 9px / 8px 7px 6px 5px)&quot;, &quot;inset(10px 0px 0px 0px round 9px 9px 9px 9px / 8px 7px 6px 5px)&quot;],
+    [&quot;inset(10px round 9px 8px / 7px)&quot;, &quot;inset(10px round 9px 8px 9px 8px / 7px 7px 7px 7px)&quot;, &quot;inset(10px 0px 0px 0px round 9px 8px 9px 8px / 7px 7px 7px 7px)&quot;],
+    [&quot;inset(10px round 9px 8px / 7px 6px)&quot;, &quot;inset(10px round 9px 8px 9px 8px / 7px 6px 7px 6px)&quot;, &quot;inset(10px 0px 0px 0px round 9px 8px 9px 8px / 7px 6px 7px 6px)&quot;],
+    [&quot;inset(10px round 9px 8px / 7px 6px)&quot;, &quot;inset(10px round 9px 8px 9px 8px / 7px 6px 7px 6px)&quot;, &quot;inset(10px 0px 0px 0px round 9px 8px 9px 8px / 7px 6px 7px 6px)&quot;],
+    [&quot;inset(10px round 9px 8px / 7px 6px 5px)&quot;, &quot;inset(10px round 9px 8px 9px 8px / 7px 6px 5px 6px)&quot;, &quot;inset(10px 0px 0px 0px round 9px 8px 9px 8px / 7px 6px 5px 6px)&quot;],
+    [&quot;inset(10px round 9px 8px / 7px 6px 5px 4px)&quot;, &quot;inset(10px round 9px 8px 9px 8px / 7px 6px 5px 4px)&quot;, &quot;inset(10px 0px 0px 0px round 9px 8px 9px 8px / 7px 6px 5px 4px)&quot;],
+    [&quot;inset(10px round 9px 8px 7px / 6px)&quot;, &quot;inset(10px round 9px 8px 7px 8px / 6px 6px 6px 6px)&quot;, &quot;inset(10px 0px 0px 0px round 9px 8px 7px 8px / 6px 6px 6px 6px)&quot;],
+    [&quot;inset(10px round 9px 8px 7px / 6px 5px)&quot;, &quot;inset(10px round 9px 8px 7px 8px / 6px 5px 6px 5px)&quot;, &quot;inset(10px 0px 0px 0px round 9px 8px 7px 8px / 6px 5px 6px 5px)&quot;],
+    [&quot;inset(10px round 9px 8px 7px / 6px 5px 4px)&quot;, &quot;inset(10px round 9px 8px 7px 8px / 6px 5px 4px 5px)&quot;, &quot;inset(10px 0px 0px 0px round 9px 8px 7px 8px / 6px 5px 4px 5px)&quot;],
+    [&quot;inset(10px round 9px 8px 7px / 6px 5px 4px 3px)&quot;, &quot;inset(10px round 9px 8px 7px 8px / 6px 5px 4px 3px)&quot;, &quot;inset(10px 0px 0px 0px round 9px 8px 7px 8px / 6px 5px 4px 3px)&quot;],
+    [&quot;inset(10px round 9px 8px 7px 6px / 5px)&quot;, &quot;inset(10px round 9px 8px 7px 6px / 5px 5px 5px 5px)&quot;, &quot;inset(10px 0px 0px 0px round 9px 8px 7px 6px / 5px 5px 5px 5px)&quot;],
+    [&quot;inset(10px round 9px 8px 7px 6px / 5px 4px)&quot;, &quot;inset(10px round 9px 8px 7px 6px / 5px 4px 5px 4px)&quot;, &quot;inset(10px 0px 0px 0px round 9px 8px 7px 6px / 5px 4px 5px 4px)&quot;],
+    [&quot;inset(10px round 9px 8px 7px 6px / 5px 4px 3px)&quot;, &quot;inset(10px round 9px 8px 7px 6px / 5px 4px 3px 4px)&quot;, &quot;inset(10px 0px 0px 0px round 9px 8px 7px 6px / 5px 4px 3px 4px)&quot;],
+    [&quot;inset(10px round 9px 8px 7px 6px / 5px 4px 3px 2px)&quot;, &quot;inset(10px round 9px 8px 7px 6px / 5px 4px 3px 2px)&quot;, &quot;inset(10px 0px 0px 0px round 9px 8px 7px 6px / 5px 4px 3px 2px)&quot;],
</ins><span class="cx">     [&quot;inset(10px 20px 30px 40px round 5px 6px)&quot;, &quot;inset(10px 20px 30px 40px round 5px 6px 5px 6px / 5px 6px 5px 6px)&quot;, &quot;inset(10px 20px 30px 40px round 5px 6px 5px 6px / 5px 6px 5px 6px)&quot;],
</span><span class="cx">     &quot;inset(10px 20px 30px 40px round 5px 6px 7px 8px / 50px 60px 70px 80px)&quot;,
</span><span class="cx"> 
</span></span></pre></div>
<a id="branchesjsCStackLayoutTestshttptestsinspectorprotocolresourcesInspectorTestjs"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/LayoutTests/http/tests/inspector-protocol/resources/InspectorTest.js (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/LayoutTests/http/tests/inspector-protocol/resources/InspectorTest.js        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/LayoutTests/http/tests/inspector-protocol/resources/InspectorTest.js        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -1,5 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2012 Samsung Electronics. All rights reserved.
</span><ins>+ * Copyright (C) 2014 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -151,12 +152,12 @@
</span><span class="cx">     window.eval(script);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-InspectorTest.importInspectorScripts = function()
</del><ins>+InspectorTest.initializeInspectorModels = function()
</ins><span class="cx"> {
</span><span class="cx">     // Catch any errors and finish the test early.
</span><span class="cx">     console.error = window.onerror = function()
</span><span class="cx">     {
</span><del>-        console.log(Array.prototype.join.call(arguments, ', '));
</del><ins>+        InspectorTest.log(Array.prototype.join.call(arguments, ', '));
</ins><span class="cx">         InspectorTest.completeTest();
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="lines">@@ -164,8 +165,8 @@
</span><span class="cx">     {
</span><span class="cx">         if (assertion)
</span><span class="cx">             return;
</span><del>-        console.log(&quot;ASSERT:&quot; + message);
</del><span class="cx">         InspectorTest.completeTest();
</span><ins>+        InspectorTest.log(&quot;ASSERT:&quot; + message);
</ins><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     // Note: This function overwrites the InspectorFrontendAPI, so there's currently no
</span><span class="lines">@@ -183,6 +184,7 @@
</span><span class="cx">         &quot;URLUtilities&quot;,
</span><span class="cx">         &quot;MessageDispatcher&quot;,
</span><span class="cx">         &quot;Setting&quot;,
</span><ins>+        &quot;InspectorObserver&quot;,
</ins><span class="cx">         &quot;PageObserver&quot;,
</span><span class="cx">         &quot;DOMObserver&quot;,
</span><span class="cx">         &quot;CSSObserver&quot;,
</span><span class="lines">@@ -206,6 +208,8 @@
</span><span class="cx">         &quot;RuntimeObserver&quot;,
</span><span class="cx">         &quot;RuntimeManager&quot;
</span><span class="cx">     ];
</span><ins>+
+    // This corresponds to loading the scripts in Main.hml.
</ins><span class="cx">     for (var i = 0; i &lt; inspectorScripts.length; ++i)
</span><span class="cx">         InspectorTest.importScript(&quot;../../../../../Source/WebInspectorUI/UserInterface/&quot; + inspectorScripts[i] + &quot;.js&quot;);
</span><span class="cx"> 
</span><span class="lines">@@ -213,6 +217,12 @@
</span><span class="cx">     // FIXME: As soon as we can support all the observers and managers we should remove UI related tasks
</span><span class="cx">     // from WebInspector.loaded, so that it can be used from the LayoutTests.
</span><span class="cx"> 
</span><ins>+    InspectorFrontendHost.loaded();
+
+    // Enable agents.
+    InspectorAgent.enable();
+
+    InspectorBackend.registerInspectorDispatcher(new WebInspector.InspectorObserver);
</ins><span class="cx">     InspectorBackend.registerPageDispatcher(new WebInspector.PageObserver);
</span><span class="cx">     InspectorBackend.registerDOMDispatcher(new WebInspector.DOMObserver);
</span><span class="cx">     InspectorBackend.registerCSSDispatcher(new WebInspector.CSSObserver);
</span><span class="lines">@@ -223,8 +233,6 @@
</span><span class="cx">     WebInspector.domTreeManager = new WebInspector.DOMTreeManager;
</span><span class="cx">     WebInspector.cssStyleManager = new WebInspector.CSSStyleManager;
</span><span class="cx">     WebInspector.runtimeManager = new WebInspector.RuntimeManager;
</span><del>-
-    InspectorFrontendHost.loaded();
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span></span></pre></div>
<a id="branchesjsCStackLayoutTestsinspectorprotocolmodelcontentflowcontentnodeshtml"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/LayoutTests/inspector-protocol/model/content-flow-content-nodes.html (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/LayoutTests/inspector-protocol/model/content-flow-content-nodes.html        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/LayoutTests/inspector-protocol/model/content-flow-content-nodes.html        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -25,7 +25,7 @@
</span><span class="cx"> 
</span><span class="cx"> function test()
</span><span class="cx"> {
</span><del>-    InspectorTest.importInspectorScripts();
</del><ins>+    InspectorTest.initializeInspectorModels();
</ins><span class="cx"> 
</span><span class="cx">     var contentFlow;
</span><span class="cx"> 
</span></span></pre></div>
<a id="branchesjsCStackLayoutTestsinspectorprotocolmodelcontentflowcontentremovalhtml"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/LayoutTests/inspector-protocol/model/content-flow-content-removal.html (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/LayoutTests/inspector-protocol/model/content-flow-content-removal.html        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/LayoutTests/inspector-protocol/model/content-flow-content-removal.html        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -16,7 +16,7 @@
</span><span class="cx"> 
</span><span class="cx"> function test()
</span><span class="cx"> {
</span><del>-    InspectorTest.importInspectorScripts();
</del><ins>+    InspectorTest.initializeInspectorModels();
</ins><span class="cx"> 
</span><span class="cx">     var contentFlow;
</span><span class="cx"> 
</span></span></pre></div>
<a id="branchesjsCStackLayoutTestsinspectorprotocolmodelcontentflowlisthtml"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/LayoutTests/inspector-protocol/model/content-flow-list.html (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/LayoutTests/inspector-protocol/model/content-flow-list.html        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/LayoutTests/inspector-protocol/model/content-flow-list.html        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -16,7 +16,7 @@
</span><span class="cx"> 
</span><span class="cx"> function test()
</span><span class="cx"> {
</span><del>-    InspectorTest.importInspectorScripts();
</del><ins>+    InspectorTest.initializeInspectorModels();
</ins><span class="cx"> 
</span><span class="cx">     WebInspector.frameResourceManager.addEventListener(WebInspector.FrameResourceManager.Event.MainFrameDidChange, function(event) {
</span><span class="cx">         var domTree = WebInspector.frameResourceManager.mainFrame.domTree;
</span></span></pre></div>
<a id="branchesjsCStackLayoutTestsinspectorprotocolmodelcontentnoderegioninfohtml"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/LayoutTests/inspector-protocol/model/content-node-region-info.html (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/LayoutTests/inspector-protocol/model/content-node-region-info.html        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/LayoutTests/inspector-protocol/model/content-node-region-info.html        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -30,7 +30,7 @@
</span><span class="cx">     var queryList = [&quot;#flow&quot;, &quot;.contentNode1&quot;, &quot;.contentNode2&quot;, &quot;body&quot;, &quot;#region1&quot;, &quot;#region2&quot;];
</span><span class="cx">     var documentNodeId;
</span><span class="cx"> 
</span><del>-    InspectorTest.importInspectorScripts();
</del><ins>+    InspectorTest.initializeInspectorModels();
</ins><span class="cx">     WebInspector.domTreeManager.requestDocument(function(documentNode) {
</span><span class="cx">         documentNodeId = documentNode.id;
</span><span class="cx">         WebInspector.domTreeManager.getNamedFlowCollection(documentNodeId);
</span></span></pre></div>
<a id="branchesjsCStackLayoutTestsinspectorprotocolmodelmainframeresourcehtml"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/LayoutTests/inspector-protocol/model/main-frame-resource.html (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/LayoutTests/inspector-protocol/model/main-frame-resource.html        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/LayoutTests/inspector-protocol/model/main-frame-resource.html        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -5,7 +5,7 @@
</span><span class="cx"> &lt;script&gt;
</span><span class="cx"> function test()
</span><span class="cx"> {
</span><del>-    InspectorTest.importInspectorScripts();
</del><ins>+    InspectorTest.initializeInspectorModels();
</ins><span class="cx"> 
</span><span class="cx">     WebInspector.frameResourceManager.addEventListener(WebInspector.FrameResourceManager.Event.MainFrameDidChange, function(event) {
</span><span class="cx">         var url = WebInspector.frameResourceManager.mainFrame.url;
</span></span></pre></div>
<a id="branchesjsCStackLayoutTestsplatformeflTestExpectations"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/LayoutTests/platform/efl/TestExpectations (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/LayoutTests/platform/efl/TestExpectations        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/LayoutTests/platform/efl/TestExpectations        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -1400,7 +1400,6 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> # Fail color checks, may also need platform results.
</span><del>-webkit.org/b/105030 fast/canvas/webgl/framebuffer-object-attachment.html [ Failure ]
</del><span class="cx"> webkit.org/b/105030 fast/canvas/webgl/premultiplyalpha-test.html [ Failure ]
</span><span class="cx"> 
</span><span class="cx"> # Rendering issues.
</span><span class="lines">@@ -1632,7 +1631,6 @@
</span><span class="cx"> webgl/1.0.2/conformance/context/premultiplyalpha-test.html [ Failure ]
</span><span class="cx"> webgl/1.0.2/conformance/extensions/oes-texture-float.html [ Failure ]
</span><span class="cx"> webgl/1.0.2/conformance/glsl/literals/float_literal.vert.html [ Failure ]
</span><del>-webgl/1.0.2/conformance/glsl/misc/shader-with-global-variable-precision-mismatch.html [ Failure ]
</del><span class="cx"> webgl/1.0.2/conformance/glsl/misc/shaders-with-varyings.html [ Failure ]
</span><span class="cx"> webgl/1.0.2/conformance/ogles/GL/sin/sin_001_to_006.html [ Failure ]
</span><span class="cx"> webgl/1.0.2/conformance/renderbuffers/framebuffer-object-attachment.html [ Failure ]
</span><span class="lines">@@ -1640,8 +1638,6 @@
</span><span class="cx"> webgl/1.0.2/conformance/textures/copy-tex-image-2d-formats.html [ Failure ]
</span><span class="cx"> webgl/1.0.2/conformance/textures/texture-attachment-formats.html [ Failure ]
</span><span class="cx"> webgl/1.0.2/conformance/textures/texture-size-cube-maps.html [ Failure ]
</span><del>-webgl/1.0.2/conformance/typedarrays/array-unit-tests.html [ Failure ]
-webgl/1.0.2/conformance/typedarrays/data-view-test.html [ Failure ]
</del><span class="cx"> webgl/1.0.2/conformance/uniforms/gl-uniform-arrays.html [ Failure ]
</span><span class="cx"> 
</span><span class="cx"> # Currently working on 1.0.2 conformance, skip currently known failing tests.
</span><span class="lines">@@ -1805,3 +1801,11 @@
</span><span class="cx"> webkit.org/b/126519 inspector-protocol/model/highlight-shape-outside-margin.html [ Failure ]
</span><span class="cx"> 
</span><span class="cx"> webkit.org/b/126619 http/tests/media/video-auth.html [ Failure ]
</span><ins>+
+webkit.org/b/127723 accessibility/menu-list-sends-change-notification.html [ Failure ]
+
+webkit.org/b/127724 accessibility/range-alter-by-percent.html [ Failure ]
+
+webkit.org/b/127725 media/video-restricted-no-preload-auto.html [ Failure ]
+
+webkit.org/b/127731 plugins/embed-prefers-plugins-for-images.html [ Failure ]
</ins></span></pre></div>
<a id="branchesjsCStackLayoutTestsplatformeflwk2TestExpectations"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/LayoutTests/platform/efl-wk2/TestExpectations (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/LayoutTests/platform/efl-wk2/TestExpectations        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/LayoutTests/platform/efl-wk2/TestExpectations        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -60,7 +60,6 @@
</span><span class="cx"> # WebGL test cases crashing in WebCore::GraphicsContext3D::readPixels().
</span><span class="cx"> webkit.org/b/109417 webgl/conformance/textures/texture-attachment-formats.html [ Crash Failure ]
</span><span class="cx"> webkit.org/b/109945 webgl/conformance/glsl/misc/shader-uniform-packing-restrictions.html [ Crash ]
</span><del>-webkit.org/b/109945 webgl/conformance/uniforms/gl-uniform-arrays.html [ Crash Failure ]
</del><span class="cx"> webkit.org/b/109945 webgl/conformance/uniforms/uniform-default-values.html [ Crash ]
</span><span class="cx"> 
</span><span class="cx"> # Known WebGL conformance test failures, fails on Intel and AMD hardware
</span><span class="lines">@@ -320,12 +319,10 @@
</span><span class="cx"> webkit.org/b/109435 webgl/conformance/glsl/functions/glsl-function-sin.html [ Failure Crash ]
</span><span class="cx"> webkit.org/b/109435 webgl/conformance/glsl/functions/glsl-function-smoothstep-float.html [ Failure Crash ]
</span><span class="cx"> webkit.org/b/109435 webgl/conformance/glsl/literals/float_literal.vert.html [ Failure Crash ]
</span><del>-webkit.org/b/109435 webgl/conformance/glsl/misc/shader-with-global-variable-precision-mismatch.html [ Failure Crash ]
</del><span class="cx"> webkit.org/b/109435 webgl/conformance/glsl/misc/shaders-with-varyings.html [ Failure Crash ]
</span><span class="cx"> webkit.org/b/109435 webgl/conformance/more/functions/readPixelsBadArgs.html [ Failure Crash ]
</span><span class="cx"> webkit.org/b/109435 webgl/conformance/more/functions/texImage2DHTML.html [ Failure Crash ]
</span><span class="cx"> webkit.org/b/109435 webgl/conformance/more/functions/texSubImage2DHTML.html [ Failure Crash ]
</span><del>-webkit.org/b/109435 webgl/conformance/renderbuffers/framebuffer-object-attachment.html [ Failure Crash ]
</del><span class="cx"> webkit.org/b/109435 webgl/conformance/rendering/multisample-corruption.html [ Failure Crash ]
</span><span class="cx"> webkit.org/b/109435 webgl/conformance/rendering/point-size.html [ Failure Crash ]
</span><span class="cx"> webkit.org/b/109435 webgl/conformance/textures/copy-tex-image-2d-formats.html [ Failure Crash ]
</span></span></pre></div>
<a id="branchesjsCStackSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/JavaScriptCore/ChangeLog (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/JavaScriptCore/ChangeLog        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/JavaScriptCore/ChangeLog        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -1,3 +1,7 @@
</span><ins>+2014-01-27  Mark Hahnenberg  &lt;mhahnenberg@apple.com&gt;
+
+        Merge branch up to ToT r162909.
+
</ins><span class="cx"> 2014-01-27  Filip Pizlo  &lt;fpizlo@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         DFG ArrayPush implementation does strange things to the result register on the slow path
</span></span></pre></div>
<a id="branchesjsCStackSourceJavaScriptCoreConfigurationsBasexcconfig"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/JavaScriptCore/Configurations/Base.xcconfig (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/JavaScriptCore/Configurations/Base.xcconfig        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/JavaScriptCore/Configurations/Base.xcconfig        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx"> GCC_WARN_UNUSED_VARIABLE = YES;
</span><span class="cx"> LINKER_DISPLAYS_MANGLED_NAMES = YES;
</span><span class="cx"> PREBINDING = NO;
</span><del>-WARNING_CFLAGS = -Wall -Wextra -Wcast-qual -Wchar-subscripts -Wextra-tokens -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wpacked -Wpointer-arith -Wredundant-decls -Wundef -Wwrite-strings -Wexit-time-destructors -Wglobal-constructors -Wtautological-compare;
</del><ins>+WARNING_CFLAGS = -Wall -Wextra -Wcast-qual -Wchar-subscripts -Wextra-tokens -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wpacked -Wpointer-arith -Wredundant-decls -Wundef -Wwrite-strings -Wexit-time-destructors -Wglobal-constructors -Wtautological-compare -Wimplicit-fallthrough;
</ins><span class="cx"> HEADER_SEARCH_PATHS = . icu &quot;${BUILT_PRODUCTS_DIR}/usr/local/include&quot; $(HEADER_SEARCH_PATHS);
</span><span class="cx"> 
</span><span class="cx"> TARGET_MAC_OS_X_VERSION_MAJOR = $(MAC_OS_X_VERSION_MAJOR);
</span></span></pre></div>
<a id="branchesjsCStackSourceJavaScriptCoreConfigurationsFeatureDefinesxcconfig"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -113,6 +113,7 @@
</span><span class="cx"> ENABLE_INPUT_TYPE_WEEK = $(ENABLE_INPUT_TYPE_WEEK_$(PLATFORM_NAME));
</span><span class="cx"> ENABLE_INPUT_TYPE_WEEK_iphoneos = ENABLE_INPUT_TYPE_WEEK;
</span><span class="cx"> ENABLE_INPUT_TYPE_WEEK_iphonesimulator = $(ENABLE_INPUT_TYPE_WEEK_iphoneos);
</span><ins>+ENABLE_INSPECTOR = ENABLE_INSPECTOR;
</ins><span class="cx"> ENABLE_IOS_AIRPLAY = $(ENABLE_IOS_AIRPLAY_$(PLATFORM_NAME));
</span><span class="cx"> ENABLE_IOS_AIRPLAY_iphoneos = ENABLE_IOS_AIRPLAY;
</span><span class="cx"> ENABLE_IOS_AIRPLAY_iphonesimulator = $(ENABLE_IOS_AIRPLAY_iphoneos);
</span><span class="lines">@@ -195,4 +196,4 @@
</span><span class="cx"> ENABLE_FTL_JIT = ;
</span><span class="cx"> ENABLE_LLINT_C_LOOP = ;
</span><span class="cx"> 
</span><del>-FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS3_CONDITIONAL_RULES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILTERS) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IFRAME_SEAMLESS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_IOS_AIRPLAY) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBPIXEL_LAYOUT) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG) $(ENABLE_SVG_FONTS) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WORKERS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(FEATURE_DEFINES_$(PLATFORM_NAME));
</del><ins>+FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS3_CONDITIONAL_RULES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILTERS) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IFRAME_SEAMLESS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INSPECTOR) $(ENABLE_IOS_AIRPLAY) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBPIXEL_LAYOUT) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG) $(ENABLE_SVG_FONTS) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WORKERS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(FEATURE_DEFINES_$(PLATFORM_NAME));
</ins></span></pre></div>
<a id="branchesjsCStackSourceJavaScriptCorebytecodeCodeBlockcpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/JavaScriptCore/bytecode/CodeBlock.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/JavaScriptCore/bytecode/CodeBlock.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/JavaScriptCore/bytecode/CodeBlock.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -1687,7 +1687,7 @@
</span><span class="cx">             m_arrayProfiles[arrayProfileIndex] = ArrayProfile(i);
</span><span class="cx"> 
</span><span class="cx">             instructions[i + opLength - 2] = &amp;m_arrayProfiles[arrayProfileIndex];
</span><del>-            // fallthrough
</del><ins>+            FALLTHROUGH;
</ins><span class="cx">         }
</span><span class="cx">         case op_get_by_id:
</span><span class="cx">         case op_call_varargs: {
</span><span class="lines">@@ -2618,16 +2618,6 @@
</span><span class="cx">     } // else don't shrink these, because we would have already pointed pointers into these tables.
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CodeBlock::createActivation(CallFrame* callFrame)
-{
-    ASSERT(codeType() == FunctionCode);
-    ASSERT(needsFullScopeChain());
-    ASSERT(!callFrame-&gt;uncheckedR(activationRegister().offset()).jsValue());
-    JSActivation* activation = JSActivation::create(callFrame-&gt;vm(), callFrame, this);
-    callFrame-&gt;uncheckedR(activationRegister().offset()) = JSValue(activation);
-    callFrame-&gt;setScope(activation);
-}
-
</del><span class="cx"> unsigned CodeBlock::addOrFindConstant(JSValue v)
</span><span class="cx"> {
</span><span class="cx">     unsigned result;
</span></span></pre></div>
<a id="branchesjsCStackSourceJavaScriptCorebytecodeCodeBlockh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/JavaScriptCore/bytecode/CodeBlock.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/JavaScriptCore/bytecode/CodeBlock.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/JavaScriptCore/bytecode/CodeBlock.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -392,8 +392,6 @@
</span><span class="cx">     size_t numberOfJumpTargets() const { return m_unlinkedCode-&gt;numberOfJumpTargets(); }
</span><span class="cx">     unsigned jumpTarget(int index) const { return m_unlinkedCode-&gt;jumpTarget(index); }
</span><span class="cx"> 
</span><del>-    void createActivation(CallFrame*);
-
</del><span class="cx">     void clearEvalCache();
</span><span class="cx"> 
</span><span class="cx">     String nameForRegister(VirtualRegister);
</span></span></pre></div>
<a id="branchesjsCStackSourceJavaScriptCoredfgDFGArithModeh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/JavaScriptCore/dfg/DFGArithMode.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/JavaScriptCore/dfg/DFGArithMode.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/JavaScriptCore/dfg/DFGArithMode.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -47,6 +47,9 @@
</span><span class="cx">     switch (mode) {
</span><span class="cx">     case Arith::NotSet:
</span><span class="cx">         ASSERT_NOT_REACHED();
</span><ins>+#if ASSERT_DISABLED
+        FALLTHROUGH;
+#endif
</ins><span class="cx">     case Arith::Unchecked:
</span><span class="cx">     case Arith::CheckOverflow:
</span><span class="cx">     case Arith::CheckOverflowAndNegativeZero:
</span></span></pre></div>
<a id="branchesjsCStackSourceJavaScriptCoredfgDFGCFGSimplificationPhasecpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/JavaScriptCore/dfg/DFGCFGSimplificationPhase.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/JavaScriptCore/dfg/DFGCFGSimplificationPhase.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/JavaScriptCore/dfg/DFGCFGSimplificationPhase.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -190,6 +190,7 @@
</span><span class="cx">                         innerChanged = outerChanged = true;
</span><span class="cx">                         break;
</span><span class="cx">                     }
</span><ins>+                    break;
</ins><span class="cx">                 }
</span><span class="cx">                     
</span><span class="cx">                 default:
</span></span></pre></div>
<a id="branchesjsCStackSourceJavaScriptCoredfgDFGSpeculativeJIT64cpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -714,6 +714,14 @@
</span><span class="cx">     m_jit.addJSCall(fastCall, slowCall, targetToCheck, callType, calleeGPR, m_currentNode-&gt;codeOrigin);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+// Clang should allow unreachable [[clang::fallthrough]] in template functions if any template expansion uses it
+// http://llvm.org/bugs/show_bug.cgi?id=18619
+#if COMPILER(CLANG) &amp;&amp; defined(__has_warning)
+#pragma clang diagnostic push
+#if __has_warning(&quot;-Wimplicit-fallthrough&quot;)
+#pragma clang diagnostic ignored &quot;-Wimplicit-fallthrough&quot;
+#endif
+#endif
</ins><span class="cx"> template&lt;bool strict&gt;
</span><span class="cx"> GPRReg SpeculativeJIT::fillSpeculateInt32Internal(Edge edge, DataFormat&amp; returnFormat)
</span><span class="cx"> {
</span><span class="lines">@@ -801,6 +809,7 @@
</span><span class="cx">         // Fill as JSValue, and fall through.
</span><span class="cx">         info.fillJSValue(*m_stream, gpr, DataFormatJSInt32);
</span><span class="cx">         m_gprs.unlock(gpr);
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     case DataFormatJS: {
</span><span class="lines">@@ -818,6 +827,7 @@
</span><span class="cx">         }
</span><span class="cx">         // else fall through &amp; handle as DataFormatJSInt32.
</span><span class="cx">         m_gprs.unlock(gpr);
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     case DataFormatJSInt32: {
</span><span class="lines">@@ -891,6 +901,7 @@
</span><span class="cx">             returnFormat = DataFormatInt32;
</span><span class="cx">             return gpr;
</span><span class="cx">         }
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">     }
</span><span class="cx">     case DataFormatCell:
</span><span class="cx">     case DataFormatBoolean:
</span><span class="lines">@@ -909,6 +920,9 @@
</span><span class="cx">         return InvalidGPRReg;
</span><span class="cx">     }
</span><span class="cx"> }
</span><ins>+#if COMPILER(CLANG) &amp;&amp; defined(__has_warning)
+#pragma clang diagnostic pop
+#endif
</ins><span class="cx"> 
</span><span class="cx"> GPRReg SpeculativeJIT::fillSpeculateInt32(Edge edge, DataFormat&amp; returnFormat)
</span><span class="cx"> {
</span><span class="lines">@@ -989,6 +1003,7 @@
</span><span class="cx">         // Fill as JSValue, and fall through.
</span><span class="cx">         info.fillJSValue(*m_stream, gpr, DataFormatJSInt32);
</span><span class="cx">         m_gprs.unlock(gpr);
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     case DataFormatJS: {
</span><span class="lines">@@ -1079,7 +1094,7 @@
</span><span class="cx">                 return gpr;
</span><span class="cx">             }
</span><span class="cx">         }
</span><del>-        
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case DataFormatCell:
</span><span class="cx">     case DataFormatBoolean:
</span><span class="cx">     case DataFormatJSCell:
</span></span></pre></div>
<a id="branchesjsCStackSourceJavaScriptCoredfgDFGValidatecpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/JavaScriptCore/dfg/DFGValidate.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/JavaScriptCore/dfg/DFGValidate.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/JavaScriptCore/dfg/DFGValidate.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -353,6 +353,7 @@
</span><span class="cx">                     case Phantom:
</span><span class="cx">                         if (m_graph.m_form == LoadStore &amp;&amp; !j)
</span><span class="cx">                             break;
</span><ins>+                        FALLTHROUGH;
</ins><span class="cx">                     default:
</span><span class="cx">                         VALIDATE((node, edge), !phisInThisBlock.contains(edge.node()));
</span><span class="cx">                         break;
</span></span></pre></div>
<a id="branchesjsCStackSourceJavaScriptCoreparserLexercpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/JavaScriptCore/parser/Lexer.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/JavaScriptCore/parser/Lexer.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/JavaScriptCore/parser/Lexer.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -1607,7 +1607,7 @@
</span><span class="cx">                 }
</span><span class="cx">             }
</span><span class="cx">         }
</span><del>-        // Fall through into CharacterNumber
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case CharacterNumber:
</span><span class="cx">         if (LIKELY(token != NUMBER)) {
</span><span class="cx">             if (!parseDecimal(tokenData-&gt;doubleValue)) {
</span><span class="lines">@@ -1656,7 +1656,7 @@
</span><span class="cx">         break;
</span><span class="cx">     case CharacterIdentifierStart:
</span><span class="cx">         ASSERT(isIdentStart(m_current));
</span><del>-        // Fall through into CharacterBackSlash.
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case CharacterBackSlash:
</span><span class="cx">         if (lexerFlags &amp; LexexFlagsDontBuildKeywords)
</span><span class="cx">             token = parseIdentifier&lt;false&gt;(tokenData, lexerFlags, strictMode);
</span></span></pre></div>
<a id="branchesjsCStackSourceJavaScriptCoreparserParsercpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/JavaScriptCore/parser/Parser.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/JavaScriptCore/parser/Parser.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/JavaScriptCore/parser/Parser.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -1133,6 +1133,7 @@
</span><span class="cx">         if (directiveLiteralLength)
</span><span class="cx">             *directiveLiteralLength = m_token.m_location.endOffset - m_token.m_location.startOffset;
</span><span class="cx">         nonTrivialExpressionCount = m_nonTrivialExpressionCount;
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">     default:
</span><span class="cx">         TreeStatement exprStatement = parseExpressionStatement(context);
</span><span class="cx">         if (directive &amp;&amp; nonTrivialExpressionCount != m_nonTrivialExpressionCount)
</span><span class="lines">@@ -1681,6 +1682,7 @@
</span><span class="cx">     namedProperty:
</span><span class="cx">     case IDENT:
</span><span class="cx">         wasIdent = true;
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">     case STRING: {
</span><span class="cx">         const Identifier* ident = m_token.m_data.ident;
</span><span class="cx">         if (complete || (wasIdent &amp;&amp; (*ident == m_vm-&gt;propertyNames-&gt;get || *ident == m_vm-&gt;propertyNames-&gt;set)))
</span></span></pre></div>
<a id="branchesjsCStackSourceJavaScriptCoreruntimeJSArraycpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/JavaScriptCore/runtime/JSArray.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/JavaScriptCore/runtime/JSArray.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/JavaScriptCore/runtime/JSArray.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -541,7 +541,7 @@
</span><span class="cx">     switch (structure()-&gt;indexingType()) {
</span><span class="cx">     case ArrayClass: {
</span><span class="cx">         createInitialUndecided(exec-&gt;vm(), 0);
</span><del>-        // Fall through.
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     }
</span><span class="cx">         
</span><span class="cx">     case ArrayWithUndecided: {
</span><span class="lines">@@ -635,7 +635,7 @@
</span><span class="cx">                 setLength(exec, oldLength + 1, true);
</span><span class="cx">             return;
</span><span class="cx">         }
</span><del>-        // Fall through.
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     }
</span><span class="cx">         
</span><span class="cx">     case ArrayWithArrayStorage: {
</span></span></pre></div>
<a id="branchesjsCStackSourceJavaScriptCoreruntimeJSONObjectcpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/JavaScriptCore/runtime/JSONObject.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/JavaScriptCore/runtime/JSONObject.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/JavaScriptCore/runtime/JSONObject.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -659,9 +659,9 @@
</span><span class="cx">                 JSArray* array = asArray(inValue);
</span><span class="cx">                 arrayStack.push(array);
</span><span class="cx">                 indexStack.append(0);
</span><del>-                // fallthrough
</del><span class="cx">             }
</span><span class="cx">             arrayStartVisitMember:
</span><ins>+            FALLTHROUGH;
</ins><span class="cx">             case ArrayStartVisitMember: {
</span><span class="cx">                 JSArray* array = arrayStack.peek();
</span><span class="cx">                 uint32_t index = indexStack.last();
</span><span class="lines">@@ -686,7 +686,7 @@
</span><span class="cx">                     goto stateUnknown;
</span><span class="cx">                 } else
</span><span class="cx">                     outValue = inValue;
</span><del>-                // fallthrough
</del><ins>+                FALLTHROUGH;
</ins><span class="cx">             }
</span><span class="cx">             case ArrayEndVisitMember: {
</span><span class="cx">                 JSArray* array = arrayStack.peek();
</span><span class="lines">@@ -712,9 +712,9 @@
</span><span class="cx">                 indexStack.append(0);
</span><span class="cx">                 propertyStack.append(PropertyNameArray(m_exec));
</span><span class="cx">                 object-&gt;methodTable()-&gt;getOwnPropertyNames(object, m_exec, propertyStack.last(), ExcludeDontEnumProperties);
</span><del>-                // fallthrough
</del><span class="cx">             }
</span><span class="cx">             objectStartVisitMember:
</span><ins>+            FALLTHROUGH;
</ins><span class="cx">             case ObjectStartVisitMember: {
</span><span class="cx">                 JSObject* object = objectStack.peek();
</span><span class="cx">                 uint32_t index = indexStack.last();
</span><span class="lines">@@ -741,7 +741,7 @@
</span><span class="cx">                     goto stateUnknown;
</span><span class="cx">                 } else
</span><span class="cx">                     outValue = inValue;
</span><del>-                // fallthrough
</del><ins>+                FALLTHROUGH;
</ins><span class="cx">             }
</span><span class="cx">             case ObjectEndVisitMember: {
</span><span class="cx">                 JSObject* object = objectStack.peek();
</span></span></pre></div>
<a id="branchesjsCStackSourceJavaScriptCoreruntimeJSObjectcpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/JavaScriptCore/runtime/JSObject.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/JavaScriptCore/runtime/JSObject.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/JavaScriptCore/runtime/JSObject.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -439,7 +439,7 @@
</span><span class="cx">             putByIndex(cell, exec, propertyName, value, shouldThrow);
</span><span class="cx">             return;
</span><span class="cx">         }
</span><del>-        // Fall through.
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     }
</span><span class="cx">         
</span><span class="cx">     case ALL_CONTIGUOUS_INDEXING_TYPES: {
</span><span class="lines">@@ -2048,7 +2048,7 @@
</span><span class="cx">         SparseArrayValueMap* map = arrayStorage()-&gt;m_sparseMap.get();
</span><span class="cx">         if (!(map &amp;&amp; map-&gt;contains(i)) &amp;&amp; attemptToInterceptPutByIndexOnHole(exec, i, value, shouldThrow))
</span><span class="cx">             return;
</span><del>-        // Otherwise, fall though.
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     case NonArrayWithArrayStorage:
</span></span></pre></div>
<a id="branchesjsCStackSourceJavaScriptCoreruntimeJSObjecth"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/JavaScriptCore/runtime/JSObject.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/JavaScriptCore/runtime/JSObject.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/JavaScriptCore/runtime/JSObject.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -328,7 +328,7 @@
</span><span class="cx">                 convertInt32ToDoubleOrContiguousWhilePerformingSetIndex(vm, i, v);
</span><span class="cx">                 return;
</span><span class="cx">             }
</span><del>-            // Fall through to contiguous case.
</del><ins>+            FALLTHROUGH;
</ins><span class="cx">         }
</span><span class="cx">         case ALL_CONTIGUOUS_INDEXING_TYPES: {
</span><span class="cx">             ASSERT(i &lt; m_butterfly-&gt;vectorLength());
</span><span class="lines">@@ -384,7 +384,7 @@
</span><span class="cx">                 convertInt32ToDoubleOrContiguousWhilePerformingSetIndex(vm, i, v);
</span><span class="cx">                 break;
</span><span class="cx">             }
</span><del>-            // Fall through.
</del><ins>+            FALLTHROUGH;
</ins><span class="cx">         }
</span><span class="cx">         case ALL_CONTIGUOUS_INDEXING_TYPES: {
</span><span class="cx">             ASSERT(i &lt; m_butterfly-&gt;publicLength());
</span></span></pre></div>
<a id="branchesjsCStackSourceJavaScriptCoreruntimeLiteralParsercpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/JavaScriptCore/runtime/LiteralParser.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/JavaScriptCore/runtime/LiteralParser.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/JavaScriptCore/runtime/LiteralParser.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -554,9 +554,9 @@
</span><span class="cx">             case StartParseArray: {
</span><span class="cx">                 JSArray* array = constructEmptyArray(m_exec, 0);
</span><span class="cx">                 objectStack.append(array);
</span><del>-                // fallthrough
</del><span class="cx">             }
</span><span class="cx">             doParseArrayStartExpression:
</span><ins>+            FALLTHROUGH;
</ins><span class="cx">             case DoParseArrayStartExpression: {
</span><span class="cx">                 TokenType lastToken = m_lexer.currentToken().type;
</span><span class="cx">                 if (m_lexer.next() == TokRBracket) {
</span></span></pre></div>
<a id="branchesjsCStackSourceJavaScriptCoreyarrYarrInterpretercpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/JavaScriptCore/yarr/YarrInterpreter.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/JavaScriptCore/yarr/YarrInterpreter.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/JavaScriptCore/yarr/YarrInterpreter.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -707,6 +707,7 @@
</span><span class="cx">             return true;
</span><span class="cx">         case QuantifierNonGreedy:
</span><span class="cx">             ASSERT(backTrack-&gt;begin != notFound);
</span><ins>+            FALLTHROUGH;
</ins><span class="cx">         case QuantifierFixedCount:
</span><span class="cx">             break;
</span><span class="cx">         }
</span><span class="lines">@@ -727,6 +728,7 @@
</span><span class="cx">                 context-&gt;term -= term.atom.parenthesesWidth;
</span><span class="cx">                 return false;
</span><span class="cx">             }
</span><ins>+            FALLTHROUGH;
</ins><span class="cx">         case QuantifierNonGreedy:
</span><span class="cx">             if (backTrack-&gt;begin == notFound) {
</span><span class="cx">                 backTrack-&gt;begin = input.getPos();
</span><span class="lines">@@ -742,6 +744,7 @@
</span><span class="cx">                 context-&gt;term -= term.atom.parenthesesWidth;
</span><span class="cx">                 return true;
</span><span class="cx">             }
</span><ins>+            FALLTHROUGH;
</ins><span class="cx">         case QuantifierFixedCount:
</span><span class="cx">             break;
</span><span class="cx">         }
</span></span></pre></div>
<a id="branchesjsCStackSourceJavaScriptCoreyarrYarrParserh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/JavaScriptCore/yarr/YarrParser.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/JavaScriptCore/yarr/YarrParser.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/JavaScriptCore/yarr/YarrParser.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -119,6 +119,7 @@
</span><span class="cx">                     return;
</span><span class="cx">                 }
</span><span class="cx">                 // Otherwise just fall through - cached character so treat this as Empty.
</span><ins>+                FALLTHROUGH;
</ins><span class="cx"> 
</span><span class="cx">             case Empty:
</span><span class="cx">                 m_character = ch;
</span><span class="lines">@@ -168,7 +169,7 @@
</span><span class="cx">             case CachedCharacter:
</span><span class="cx">                 // Flush the currently cached character, then fall through.
</span><span class="cx">                 m_delegate.atomCharacterClassAtom(m_character);
</span><del>-
</del><ins>+                FALLTHROUGH;
</ins><span class="cx">             case Empty:
</span><span class="cx">             case AfterCharacterClass:
</span><span class="cx">                 m_state = AfterCharacterClass;
</span><span class="lines">@@ -186,7 +187,7 @@
</span><span class="cx">             case CachedCharacterHyphen:
</span><span class="cx">                 m_delegate.atomCharacterClassAtom(m_character);
</span><span class="cx">                 m_delegate.atomCharacterClassAtom('-');
</span><del>-                // fall through
</del><ins>+                FALLTHROUGH;
</ins><span class="cx">             case AfterCharacterClassHyphen:
</span><span class="cx">                 m_delegate.atomCharacterClassBuiltIn(classID, invert);
</span><span class="cx">                 m_state = Empty;
</span><span class="lines">@@ -349,6 +350,7 @@
</span><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             // Fall-through to handle this as an octal escape.
</span><ins>+            FALLTHROUGH;
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         // Octal escape
</span><span class="lines">@@ -656,7 +658,9 @@
</span><span class="cx">                 }
</span><span class="cx"> 
</span><span class="cx">                 restoreState(state);
</span><del>-            } // if we did not find a complete quantifer, fall through to the default case.
</del><ins>+            }
+            // if we did not find a complete quantifer, fall through to the default case.
+            FALLTHROUGH;
</ins><span class="cx"> 
</span><span class="cx">             default:
</span><span class="cx">                 m_delegate.atomPatternCharacter(consume());
</span></span></pre></div>
<a id="branchesjsCStackSourceWTFwtfThreadSafeRefCountedh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WTF/wtf/ThreadSafeRefCounted.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WTF/wtf/ThreadSafeRefCounted.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WTF/wtf/ThreadSafeRefCounted.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -61,6 +61,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &lt;atomic&gt;
</span><span class="cx"> #include &lt;wtf/DynamicAnnotations.h&gt;
</span><ins>+#include &lt;wtf/FastMalloc.h&gt;
</ins><span class="cx"> #include &lt;wtf/Noncopyable.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WTF {
</span></span></pre></div>
<a id="branchesjsCStackSourceWTFwtfmacMainThreadMacmm"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WTF/wtf/mac/MainThreadMac.mm (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WTF/wtf/mac/MainThreadMac.mm        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WTF/wtf/mac/MainThreadMac.mm        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -124,7 +124,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(staticMainThreadCaller);
</span><span class="cx"> 
</span><del>-    if (isMainThread()) {
</del><ins>+    if (isWebThread()) {
</ins><span class="cx">         postTimer();
</span><span class="cx">         return;
</span><span class="cx">     }
</span></span></pre></div>
<a id="branchesjsCStackSourceWTFwtftextWTFStringh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WTF/wtf/text/WTFString.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WTF/wtf/text/WTFString.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WTF/wtf/text/WTFString.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -602,10 +602,12 @@
</span><span class="cx">     case 3:
</span><span class="cx">         vector[vectorSize + 2] = number % 10 + '0';
</span><span class="cx">         number /= 10;
</span><ins>+        FALLTHROUGH;
</ins><span class="cx"> 
</span><span class="cx">     case 2:
</span><span class="cx">         vector[vectorSize + 1] = number % 10 + '0';
</span><span class="cx">         number /= 10;
</span><ins>+        FALLTHROUGH;
</ins><span class="cx"> 
</span><span class="cx">     case 1:
</span><span class="cx">         vector[vectorSize] = number % 10 + '0';
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreConfigurationsBasexcconfig"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/Configurations/Base.xcconfig (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/Configurations/Base.xcconfig        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/Configurations/Base.xcconfig        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -74,7 +74,7 @@
</span><span class="cx"> GCC_WARN_UNUSED_VARIABLE = YES;
</span><span class="cx"> LINKER_DISPLAYS_MANGLED_NAMES = YES;
</span><span class="cx"> PREBINDING = NO;
</span><del>-WARNING_CFLAGS = -Wall -Wextra -Wcast-qual -Wchar-subscripts -Wextra-tokens -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wpacked -Wpointer-arith -Wredundant-decls -Wundef -Wwrite-strings -Wexit-time-destructors -Wglobal-constructors -Wtautological-compare;
</del><ins>+WARNING_CFLAGS = -Wall -Wextra -Wcast-qual -Wchar-subscripts -Wextra-tokens -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wpacked -Wpointer-arith -Wredundant-decls -Wundef -Wwrite-strings -Wexit-time-destructors -Wglobal-constructors -Wtautological-compare -Wimplicit-fallthrough;
</ins><span class="cx"> 
</span><span class="cx"> TARGET_MAC_OS_X_VERSION_MAJOR = $(MAC_OS_X_VERSION_MAJOR);
</span><span class="cx"> 
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreConfigurationsFeatureDefinesxcconfig"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/Configurations/FeatureDefines.xcconfig (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/Configurations/FeatureDefines.xcconfig        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/Configurations/FeatureDefines.xcconfig        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -113,6 +113,7 @@
</span><span class="cx"> ENABLE_INPUT_TYPE_WEEK = $(ENABLE_INPUT_TYPE_WEEK_$(PLATFORM_NAME));
</span><span class="cx"> ENABLE_INPUT_TYPE_WEEK_iphoneos = ENABLE_INPUT_TYPE_WEEK;
</span><span class="cx"> ENABLE_INPUT_TYPE_WEEK_iphonesimulator = $(ENABLE_INPUT_TYPE_WEEK_iphoneos);
</span><ins>+ENABLE_INSPECTOR = ENABLE_INSPECTOR;
</ins><span class="cx"> ENABLE_IOS_AIRPLAY = $(ENABLE_IOS_AIRPLAY_$(PLATFORM_NAME));
</span><span class="cx"> ENABLE_IOS_AIRPLAY_iphoneos = ENABLE_IOS_AIRPLAY;
</span><span class="cx"> ENABLE_IOS_AIRPLAY_iphonesimulator = $(ENABLE_IOS_AIRPLAY_iphoneos);
</span><span class="lines">@@ -195,4 +196,4 @@
</span><span class="cx"> ENABLE_FTL_JIT = ;
</span><span class="cx"> ENABLE_LLINT_C_LOOP = ;
</span><span class="cx"> 
</span><del>-FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS3_CONDITIONAL_RULES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILTERS) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IFRAME_SEAMLESS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_IOS_AIRPLAY) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBPIXEL_LAYOUT) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG) $(ENABLE_SVG_FONTS) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WORKERS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(FEATURE_DEFINES_$(PLATFORM_NAME));
</del><ins>+FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS3_CONDITIONAL_RULES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILTERS) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IFRAME_SEAMLESS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INSPECTOR) $(ENABLE_IOS_AIRPLAY) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBPIXEL_LAYOUT) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG) $(ENABLE_SVG_FONTS) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WORKERS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(FEATURE_DEFINES_$(PLATFORM_NAME));
</ins></span></pre></div>
<a id="branchesjsCStackSourceWebCoreGNUmakefilelistam"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/GNUmakefile.list.am (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/GNUmakefile.list.am        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/GNUmakefile.list.am        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -6165,7 +6165,6 @@
</span><span class="cx">         Source/WebCore/platform/graphics/gtk/ImageGtk.cpp \
</span><span class="cx">         Source/WebCore/platform/graphics/gtk/IntPointGtk.cpp \
</span><span class="cx">         Source/WebCore/platform/graphics/gtk/IntRectGtk.cpp \
</span><del>-        Source/WebCore/platform/graphics/opentype/OpenTypeSanitizer.h \
</del><span class="cx">         Source/WebCore/platform/graphics/opentype/OpenTypeTypes.h \
</span><span class="cx">         Source/WebCore/platform/graphics/opentype/OpenTypeVerticalData.cpp \
</span><span class="cx">         Source/WebCore/platform/graphics/opentype/OpenTypeVerticalData.h \
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreModulesindexeddbIDBCursorBackendcpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/Modules/indexeddb/IDBCursorBackend.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/Modules/indexeddb/IDBCursorBackend.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/Modules/indexeddb/IDBCursorBackend.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -81,25 +81,6 @@
</span><span class="cx">     m_transaction-&gt;database().deleteRange(m_transaction-&gt;id(), m_objectStoreID, keyRange.release(), prpCallbacks);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void IDBCursorBackend::prefetchContinue(int numberToFetch, PassRefPtr&lt;IDBCallbacks&gt; prpCallbacks, ExceptionCode&amp;)
-{
-    LOG(StorageAPI, &quot;IDBCursorBackend::prefetchContinue&quot;);
-    RefPtr&lt;IDBCallbacks&gt; callbacks = prpCallbacks;
-    m_transaction-&gt;scheduleTask(m_taskType, CursorPrefetchIterationOperation::create(this, numberToFetch, callbacks));
-}
-
-void IDBCursorBackend::prefetchReset(int usedPrefetches, int)
-{
-    LOG(StorageAPI, &quot;IDBCursorBackend::prefetchReset&quot;);
-    m_cursorID = m_savedCursorID;
-    m_savedCursorID = 0;
-
-    if (m_closed)
-        return;
-    if (m_cursorID)
-        m_transaction-&gt;database().serverConnection().cursorPrefetchReset(*this, usedPrefetches);
-}
-
</del><span class="cx"> void IDBCursorBackend::close()
</span><span class="cx"> {
</span><span class="cx">     LOG(StorageAPI, &quot;IDBCursorBackend::close&quot;);
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreModulesindexeddbIDBCursorBackendh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/Modules/indexeddb/IDBCursorBackend.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/Modules/indexeddb/IDBCursorBackend.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/Modules/indexeddb/IDBCursorBackend.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -55,8 +55,6 @@
</span><span class="cx">     void advance(unsigned long, PassRefPtr&lt;IDBCallbacks&gt;, ExceptionCode&amp;);
</span><span class="cx">     void continueFunction(PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;IDBCallbacks&gt;, ExceptionCode&amp;);
</span><span class="cx">     void deleteFunction(PassRefPtr&lt;IDBCallbacks&gt;, ExceptionCode&amp;);
</span><del>-    void prefetchContinue(int numberToFetch, PassRefPtr&lt;IDBCallbacks&gt;, ExceptionCode&amp;);
-    void prefetchReset(int usedPrefetches, int unusedPrefetches);
</del><span class="cx">     void postSuccessHandlerCallback() { }
</span><span class="cx"> 
</span><span class="cx">     IDBKey* key() const { return m_currentKey.get(); }
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreModulesindexeddbIDBCursorBackendOperationscpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/Modules/indexeddb/IDBCursorBackendOperations.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/Modules/indexeddb/IDBCursorBackendOperations.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/Modules/indexeddb/IDBCursorBackendOperations.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -38,19 +38,47 @@
</span><span class="cx"> void CursorAdvanceOperation::perform(std::function&lt;void()&gt; completionCallback)
</span><span class="cx"> {
</span><span class="cx">     LOG(StorageAPI, &quot;CursorAdvanceOperation&quot;);
</span><del>-    m_cursor-&gt;transaction().database().serverConnection().cursorAdvance(*m_cursor, *this, completionCallback);
</del><ins>+
+    RefPtr&lt;CursorAdvanceOperation&gt; operation(this);
+    auto callback = [this, operation, completionCallback](PassRefPtr&lt;IDBKey&gt; key, PassRefPtr&lt;IDBKey&gt; primaryKey, PassRefPtr&lt;SharedBuffer&gt; value, PassRefPtr&lt;IDBDatabaseError&gt; error) {
+        if (error) {
+            m_cursor-&gt;clear();
+            // FIXME: The LevelDB backend calls onSuccess even on failure.
+            // This will probably have to change soon (for sanity) and will probably break LevelDB
+            m_callbacks-&gt;onSuccess(static_cast&lt;SharedBuffer*&gt;(0));
+        } else {
+            m_cursor-&gt;updateCursorData(key.get(), primaryKey.get(), value.get());
+            m_callbacks-&gt;onSuccess(key, primaryKey, value);
+        }
+
+        // FIXME: Cursor operations should be able to pass along an error instead of success
+        completionCallback();
+    };
+
+    m_cursor-&gt;transaction().database().serverConnection().cursorAdvance(*m_cursor, *this, callback);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void CursorIterationOperation::perform(std::function&lt;void()&gt; completionCallback)
</span><span class="cx"> {
</span><span class="cx">     LOG(StorageAPI, &quot;CursorIterationOperation&quot;);
</span><del>-    m_cursor-&gt;transaction().database().serverConnection().cursorIterate(*m_cursor, *this, completionCallback);
-}
</del><span class="cx"> 
</span><del>-void CursorPrefetchIterationOperation::perform(std::function&lt;void()&gt; completionCallback)
-{
-    LOG(StorageAPI, &quot;CursorPrefetchIterationOperation&quot;);
-    m_cursor-&gt;transaction().database().serverConnection().cursorPrefetchIteration(*m_cursor, *this, completionCallback);
</del><ins>+    RefPtr&lt;CursorIterationOperation&gt; operation(this);
+    auto callback = [this, operation, completionCallback](PassRefPtr&lt;IDBKey&gt; key, PassRefPtr&lt;IDBKey&gt; primaryKey, PassRefPtr&lt;SharedBuffer&gt; value, PassRefPtr&lt;IDBDatabaseError&gt; error) {
+        if (error) {
+            m_cursor-&gt;clear();
+            // FIXME: The LevelDB backend calls onSuccess even on failure.
+            // This will probably have to change soon (for sanity) and will probably break LevelDB
+            m_callbacks-&gt;onSuccess(static_cast&lt;SharedBuffer*&gt;(0));
+        } else {
+            m_cursor-&gt;updateCursorData(key.get(), primaryKey.get(), value.get());
+            m_callbacks-&gt;onSuccess(key, primaryKey, value);
+        }
+
+        // FIXME: Cursor operations should be able to pass along an error instead of success
+        completionCallback();
+    };
+
+    m_cursor-&gt;transaction().database().serverConnection().cursorIterate(*m_cursor, *this, callback);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreModulesindexeddbIDBCursorBackendOperationsh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/Modules/indexeddb/IDBCursorBackendOperations.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/Modules/indexeddb/IDBCursorBackendOperations.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/Modules/indexeddb/IDBCursorBackendOperations.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -43,7 +43,6 @@
</span><span class="cx">     virtual void perform(std::function&lt;void()&gt; completionCallback) override final;
</span><span class="cx"> 
</span><span class="cx">     IDBKey* key() const { return m_key.get(); }
</span><del>-    IDBCallbacks* callbacks() const { return m_callbacks.get(); }
</del><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     CursorIterationOperation(PassRefPtr&lt;IDBCursorBackend&gt; cursor, PassRefPtr&lt;IDBKey&gt; key, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
</span><span class="lines">@@ -67,7 +66,6 @@
</span><span class="cx">     virtual void perform(std::function&lt;void()&gt; completionCallback) override final;
</span><span class="cx"> 
</span><span class="cx">     unsigned long count() const { return m_count; }
</span><del>-    IDBCallbacks* callbacks() const { return m_callbacks.get(); }
</del><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     CursorAdvanceOperation(PassRefPtr&lt;IDBCursorBackend&gt; cursor, unsigned long count, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
</span><span class="lines">@@ -82,30 +80,6 @@
</span><span class="cx">     RefPtr&lt;IDBCallbacks&gt; m_callbacks;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-class CursorPrefetchIterationOperation : public IDBOperation {
-public:
-    static PassRefPtr&lt;IDBOperation&gt; create(PassRefPtr&lt;IDBCursorBackend&gt; cursor, int numberToFetch, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
-    {
-        return adoptRef(new CursorPrefetchIterationOperation(cursor, numberToFetch, callbacks));
-    }
-    virtual void perform(std::function&lt;void()&gt; completionCallback) override final;
-
-    int numberToFetch() const { return m_numberToFetch; }
-    IDBCallbacks* callbacks() const { return m_callbacks.get(); }
-
-private:
-    CursorPrefetchIterationOperation(PassRefPtr&lt;IDBCursorBackend&gt; cursor, int numberToFetch, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
-        : m_cursor(cursor)
-        , m_numberToFetch(numberToFetch)
-        , m_callbacks(callbacks)
-    {
-    }
-
-    RefPtr&lt;IDBCursorBackend&gt; m_cursor;
-    int m_numberToFetch;
-    RefPtr&lt;IDBCallbacks&gt; m_callbacks;
-};
-
</del><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(INDEXED_DATABASE)
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreModulesindexeddbIDBServerConnectionh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/Modules/indexeddb/IDBServerConnection.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/Modules/indexeddb/IDBServerConnection.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/Modules/indexeddb/IDBServerConnection.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -44,6 +44,7 @@
</span><span class="cx"> class IDBKey;
</span><span class="cx"> class IDBTransactionBackend;
</span><span class="cx"> 
</span><ins>+struct IDBOpenCursorResult;
</ins><span class="cx"> struct IDBIndexMetadata;
</span><span class="cx"> struct IDBObjectStoreMetadata;
</span><span class="cx"> 
</span><span class="lines">@@ -80,18 +81,16 @@
</span><span class="cx">     virtual void deleteIndex(IDBTransactionBackend&amp;, const DeleteIndexOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) = 0;
</span><span class="cx">     virtual void get(IDBTransactionBackend&amp;, const GetOperation&amp;, std::function&lt;void(const IDBGetResult&amp;, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) = 0;
</span><span class="cx">     virtual void put(IDBTransactionBackend&amp;, const PutOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) = 0;
</span><del>-    virtual void openCursor(IDBTransactionBackend&amp;, const OpenCursorOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) = 0;
-    virtual void count(IDBTransactionBackend&amp;, const CountOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) = 0;
</del><ins>+    virtual void openCursor(IDBTransactionBackend&amp;, const OpenCursorOperation&amp;, std::function&lt;void(int64_t, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) = 0;
+    virtual void count(IDBTransactionBackend&amp;, const CountOperation&amp;, std::function&lt;void(int64_t, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) = 0;
</ins><span class="cx">     virtual void deleteRange(IDBTransactionBackend&amp;, const DeleteRangeOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) = 0;
</span><span class="cx">     virtual void clearObjectStore(IDBTransactionBackend&amp;, const ClearObjectStoreOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) = 0;
</span><span class="cx">     virtual void deleteObjectStore(IDBTransactionBackend&amp;, const DeleteObjectStoreOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) = 0;
</span><span class="cx">     virtual void changeDatabaseVersion(IDBTransactionBackend&amp;, const IDBDatabaseBackend::VersionChangeOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) = 0;
</span><span class="cx"> 
</span><span class="cx">     // Cursor-level operations
</span><del>-    virtual void cursorAdvance(IDBCursorBackend&amp;, const CursorAdvanceOperation&amp;, std::function&lt;void()&gt; completionCallback) = 0;
-    virtual void cursorIterate(IDBCursorBackend&amp;, const CursorIterationOperation&amp;, std::function&lt;void()&gt; completionCallback) = 0;
-    virtual void cursorPrefetchIteration(IDBCursorBackend&amp;, const CursorPrefetchIterationOperation&amp;, std::function&lt;void()&gt; completionCallback) = 0;
-    virtual void cursorPrefetchReset(IDBCursorBackend&amp;, int usedPrefetches) = 0;
</del><ins>+    virtual void cursorAdvance(IDBCursorBackend&amp;, const CursorAdvanceOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;SharedBuffer&gt;, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) = 0;
+    virtual void cursorIterate(IDBCursorBackend&amp;, const CursorIterationOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;SharedBuffer&gt;, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) = 0;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreModulesindexeddbIDBTransactionBackendOperationscpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/Modules/indexeddb/IDBTransactionBackendOperations.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/Modules/indexeddb/IDBTransactionBackendOperations.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/Modules/indexeddb/IDBTransactionBackendOperations.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -154,9 +154,20 @@
</span><span class="cx">     LOG(StorageAPI, &quot;OpenCursorOperation&quot;);
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;OpenCursorOperation&gt; operation(this);
</span><del>-    STANDARD_DATABASE_ERROR_CALLBACK;
</del><ins>+    auto callback = [this, operation, completionCallback](int64_t cursorID, PassRefPtr&lt;IDBDatabaseError&gt;) {
+        // FIXME: When the LevelDB port fails to open a backing store cursor it calls onSuccess(nullptr);
+        // This seems nonsensical and might have to change soon, breaking them.
+        if (!cursorID)
+            m_callbacks-&gt;onSuccess(static_cast&lt;SharedBuffer*&gt;(0));
+        else {
+            RefPtr&lt;IDBCursorBackend&gt; cursor = IDBCursorBackend::create(cursorID, m_cursorType, m_taskType, *m_transaction, m_objectStoreID);
+            m_callbacks-&gt;onSuccess(cursor, cursor-&gt;key(), cursor-&gt;primaryKey(), cursor-&gt;value());
+        }
</ins><span class="cx"> 
</span><del>-    m_transaction-&gt;database().serverConnection().openCursor(*m_transaction, *this, operationCallback);
</del><ins>+        completionCallback();
+    };
+
+    m_transaction-&gt;database().serverConnection().openCursor(*m_transaction, *this, callback);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void CountOperation::perform(std::function&lt;void()&gt; completionCallback)
</span><span class="lines">@@ -164,9 +175,15 @@
</span><span class="cx">     LOG(StorageAPI, &quot;CountOperation&quot;);
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;CountOperation&gt; operation(this);
</span><del>-    STANDARD_DATABASE_ERROR_CALLBACK;
</del><ins>+    auto callback = [this, operation, completionCallback](int64_t count, PassRefPtr&lt;IDBDatabaseError&gt;) {
+        // FIXME: The LevelDB port never had an error condition for the count operation.
+        // We probably need to support an error for the count operation, breaking the LevelDB port.
+        m_callbacks-&gt;onSuccess(count);
</ins><span class="cx"> 
</span><del>-    m_transaction-&gt;database().serverConnection().count(*m_transaction, *this, operationCallback);
</del><ins>+        completionCallback();
+    };
+
+    m_transaction-&gt;database().serverConnection().count(*m_transaction, *this, callback);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DeleteRangeOperation::perform(std::function&lt;void()&gt; completionCallback)
</span><span class="lines">@@ -174,9 +191,16 @@
</span><span class="cx">     LOG(StorageAPI, &quot;DeleteRangeOperation&quot;);
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;DeleteRangeOperation&gt; operation(this);
</span><del>-    STANDARD_DATABASE_ERROR_CALLBACK;
</del><ins>+    auto callback = [this, operation, completionCallback](PassRefPtr&lt;IDBDatabaseError&gt; error) {
+        if (error)
+            m_callbacks-&gt;onError(error);
+        else
+            m_callbacks-&gt;onSuccess();
</ins><span class="cx"> 
</span><del>-    m_transaction-&gt;database().serverConnection().deleteRange(*m_transaction, *this, operationCallback);
</del><ins>+        completionCallback();
+    };
+
+    m_transaction-&gt;database().serverConnection().deleteRange(*m_transaction, *this, callback);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ClearObjectStoreOperation::perform(std::function&lt;void()&gt; completionCallback)
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreModulesindexeddbIDBTransactionBackendOperationsh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/Modules/indexeddb/IDBTransactionBackendOperations.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/Modules/indexeddb/IDBTransactionBackendOperations.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/Modules/indexeddb/IDBTransactionBackendOperations.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -89,7 +89,6 @@
</span><span class="cx"> 
</span><span class="cx">     IDBTransactionBackend* transaction() const { return m_transaction.get(); }
</span><span class="cx">     int64_t version() const { return m_version; }
</span><del>-    IDBCallbacks* callbacks() const { return m_callbacks.get(); }
</del><span class="cx">     IDBDatabaseCallbacks* databaseCallbacks() const { return m_databaseCallbacks.get(); }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="lines">@@ -362,7 +361,6 @@
</span><span class="cx">     IDBDatabaseBackend::TaskType taskType() const { return m_taskType; }
</span><span class="cx">     IDBKeyRange* keyRange() const { return m_keyRange.get(); }
</span><span class="cx">     IndexedDB::CursorDirection cursorDirection() const { return m_direction; }
</span><del>-    IDBCallbacks* callbacks() const { return m_callbacks.get(); }
</del><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     OpenCursorOperation(IDBTransactionBackend* transaction, int64_t objectStoreId, int64_t indexId, PassRefPtr&lt;IDBKeyRange&gt; keyRange, IndexedDB::CursorDirection direction, IndexedDB::CursorType cursorType, IDBDatabaseBackend::TaskType taskType, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
</span><span class="lines">@@ -398,7 +396,7 @@
</span><span class="cx">     int64_t objectStoreID() const { return m_objectStoreID; }
</span><span class="cx">     int64_t indexID() const { return m_indexID; }
</span><span class="cx">     IDBKeyRange* keyRange() const { return m_keyRange.get(); }
</span><del>-    IDBCallbacks* callbacks() const { return m_callbacks.get(); }
</del><ins>+
</ins><span class="cx"> private:
</span><span class="cx">     CountOperation(IDBTransactionBackend* transaction, int64_t objectStoreId, int64_t indexId, PassRefPtr&lt;IDBKeyRange&gt; keyRange, PassRefPtr&lt;IDBCallbacks&gt; callbacks)
</span><span class="cx">         : m_transaction(transaction)
</span><span class="lines">@@ -425,7 +423,6 @@
</span><span class="cx">     virtual void perform(std::function&lt;void()&gt; successCallback) override final;
</span><span class="cx"> 
</span><span class="cx">     int64_t objectStoreID() const { return m_objectStoreID; }
</span><del>-    IDBCallbacks* callbacks() const { return m_callbacks.get(); }
</del><span class="cx">     IDBKeyRange* keyRange() const { return m_keyRange.get(); }
</span><span class="cx"> 
</span><span class="cx"> private:
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreModulesindexeddbleveldbIDBServerConnectionLevelDBcpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -429,7 +429,7 @@
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void IDBServerConnectionLevelDB::openCursor(IDBTransactionBackend&amp; transaction, const OpenCursorOperation&amp; operation, std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)
</del><ins>+void IDBServerConnectionLevelDB::openCursor(IDBTransactionBackend&amp; transaction, const OpenCursorOperation&amp; operation, std::function&lt;void(int64_t, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)
</ins><span class="cx"> {
</span><span class="cx">     IDBBackingStoreTransactionLevelDB* backingStoreTransaction = m_backingStoreTransactions.get(transaction.id());
</span><span class="cx">     ASSERT(backingStoreTransaction);
</span><span class="lines">@@ -456,23 +456,16 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (!backingStoreCursor) {
</span><del>-        operation.callbacks()-&gt;onSuccess(static_cast&lt;SharedBuffer*&gt;(0));
-        callOnMainThread([completionCallback]() {
-            completionCallback(0);
-        });
-        return;
</del><ins>+        // FIXME: Should it be an error to not have a backing store cursor?
+        cursorID = 0;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    IDBDatabaseBackend::TaskType taskType(static_cast&lt;IDBDatabaseBackend::TaskType&gt;(operation.taskType()));
-
-    RefPtr&lt;IDBCursorBackend&gt; cursor = IDBCursorBackend::create(cursorID, operation.cursorType(), taskType, transaction, operation.objectStoreID());
-
-    operation.callbacks()-&gt;onSuccess(cursor, cursor-&gt;key(), cursor-&gt;primaryKey(), cursor-&gt;value());
-
-    ASYNC_COMPLETION_CALLBACK_WITH_NULL_ARG(completionCallback);
</del><ins>+    callOnMainThread([completionCallback, cursorID]() {
+        completionCallback(cursorID, nullptr);
+    });
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void IDBServerConnectionLevelDB::count(IDBTransactionBackend&amp; transaction, const CountOperation&amp; operation, std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)
</del><ins>+void IDBServerConnectionLevelDB::count(IDBTransactionBackend&amp; transaction, const CountOperation&amp; operation, std::function&lt;void(int64_t, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)
</ins><span class="cx"> {
</span><span class="cx">     IDBBackingStoreTransactionLevelDB* backingStoreTransaction = m_backingStoreTransactions.get(transaction.id());
</span><span class="cx">     ASSERT(backingStoreTransaction);
</span><span class="lines">@@ -487,9 +480,9 @@
</span><span class="cx">     else
</span><span class="cx">         backingStoreCursor = m_backingStore-&gt;openIndexKeyCursor(cursorID, *backingStoreTransaction, transaction.database().id(), operation.objectStoreID(), operation.indexID(), operation.keyRange(), IndexedDB::CursorDirection::Next);
</span><span class="cx">     if (!backingStoreCursor) {
</span><del>-        operation.callbacks()-&gt;onSuccess(count);
-        callOnMainThread([completionCallback]() {
-            completionCallback(0);
</del><ins>+        // FIXME: Is this an error case?
+        callOnMainThread([completionCallback, count]() {
+            completionCallback(count, nullptr);
</ins><span class="cx">         });
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -498,8 +491,9 @@
</span><span class="cx">         ++count;
</span><span class="cx">     } while (backingStoreCursor-&gt;continueFunction(0));
</span><span class="cx"> 
</span><del>-    operation.callbacks()-&gt;onSuccess(count);
-    ASYNC_COMPLETION_CALLBACK_WITH_NULL_ARG(completionCallback);
</del><ins>+    callOnMainThread([completionCallback, count]() {
+        completionCallback(count, nullptr);
+    });
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void IDBServerConnectionLevelDB::deleteRange(IDBTransactionBackend&amp; transaction, const DeleteRangeOperation&amp; operation, std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)
</span><span class="lines">@@ -513,17 +507,17 @@
</span><span class="cx">     if (backingStoreCursor) {
</span><span class="cx">         do {
</span><span class="cx">             if (!m_backingStore-&gt;deleteRecord(*backingStoreTransaction, transaction.database().id(), operation.objectStoreID(), backingStoreCursor-&gt;recordIdentifier())) {
</span><del>-                operation.callbacks()-&gt;onError(IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Error deleting data in range&quot;));
</del><span class="cx">                 callOnMainThread([completionCallback]() {
</span><del>-                    completionCallback(0);
</del><ins>+                    completionCallback(IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Error deleting data in range&quot;));
</ins><span class="cx">                 });
</span><span class="cx">                 return;
</span><span class="cx">             }
</span><span class="cx">         } while (backingStoreCursor-&gt;continueFunction(0));
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    operation.callbacks()-&gt;onSuccess();
-    ASYNC_COMPLETION_CALLBACK_WITH_NULL_ARG(completionCallback);
</del><ins>+    callOnMainThread([completionCallback]() {
+        completionCallback(nullptr);
+    });
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void IDBServerConnectionLevelDB::clearObjectStore(IDBTransactionBackend&amp; transaction, const ClearObjectStoreOperation&amp; operation, std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)
</span><span class="lines">@@ -574,7 +568,7 @@
</span><span class="cx">     ASYNC_COMPLETION_CALLBACK_WITH_NULL_ARG(completionCallback);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void IDBServerConnectionLevelDB::cursorAdvance(IDBCursorBackend&amp; cursor, const CursorAdvanceOperation&amp; operation, std::function&lt;void()&gt; completionCallback)
</del><ins>+void IDBServerConnectionLevelDB::cursorAdvance(IDBCursorBackend&amp; cursor, const CursorAdvanceOperation&amp; operation, std::function&lt;void(PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;SharedBuffer&gt;, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)
</ins><span class="cx"> {
</span><span class="cx">     IDBBackingStoreCursorLevelDB* backingStoreCursor = cursor.id() ? m_backingStoreCursors.get(cursor.id()) : 0;
</span><span class="cx"> #ifndef NDEBUG
</span><span class="lines">@@ -584,19 +578,23 @@
</span><span class="cx"> 
</span><span class="cx">     if (!backingStoreCursor || !backingStoreCursor-&gt;advance(operation.count())) {
</span><span class="cx">         m_backingStoreCursors.remove(cursor.id());
</span><del>-        cursor.clear();
</del><span class="cx"> 
</span><del>-        operation.callbacks()-&gt;onSuccess(static_cast&lt;SharedBuffer*&gt;(0));
-        EMPTY_ASYNC_COMPLETION_CALLBACK(completionCallback);
</del><ins>+        callOnMainThread([completionCallback]() {
+            completionCallback(nullptr, nullptr, nullptr, IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Unknown error advancing cursor&quot;));
+        });
+
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    cursor.updateCursorData(backingStoreCursor-&gt;key().get(), backingStoreCursor-&gt;primaryKey().get(), backingStoreCursor-&gt;value().get());
-    operation.callbacks()-&gt;onSuccess(backingStoreCursor-&gt;key(), backingStoreCursor-&gt;primaryKey(), backingStoreCursor-&gt;value());
-    EMPTY_ASYNC_COMPLETION_CALLBACK(completionCallback);
</del><ins>+    RefPtr&lt;IDBKey&gt; key = backingStoreCursor-&gt;key(), primaryKey = backingStoreCursor-&gt;primaryKey();
+    RefPtr&lt;SharedBuffer&gt; value = backingStoreCursor-&gt;value();
+
+    callOnMainThread([completionCallback, key, primaryKey, value]() {
+        completionCallback(key, primaryKey, value, IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Unknown error advancing cursor&quot;));
+    });
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void IDBServerConnectionLevelDB::cursorIterate(IDBCursorBackend&amp; cursor, const CursorIterationOperation&amp; operation, std::function&lt;void()&gt; completionCallback)
</del><ins>+void IDBServerConnectionLevelDB::cursorIterate(IDBCursorBackend&amp; cursor, const CursorIterationOperation&amp; operation, std::function&lt;void(PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;SharedBuffer&gt;, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)
</ins><span class="cx"> {
</span><span class="cx">     IDBBackingStoreCursorLevelDB* backingStoreCursor = cursor.id() ? m_backingStoreCursors.get(cursor.id()) : 0;
</span><span class="cx"> #ifndef NDEBUG
</span><span class="lines">@@ -604,89 +602,22 @@
</span><span class="cx">         ASSERT(backingStoreCursor);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    EMPTY_ASYNC_COMPLETION_CALLBACK(completionCallback);
-
</del><span class="cx">     if (!backingStoreCursor || !backingStoreCursor-&gt;continueFunction(operation.key())) {
</span><span class="cx">         m_backingStoreCursors.remove(cursor.id());
</span><del>-        cursor.clear();
-        operation.callbacks()-&gt;onSuccess(static_cast&lt;SharedBuffer*&gt;(0));
-        return;
-    }
</del><span class="cx"> 
</span><del>-    cursor.updateCursorData(backingStoreCursor-&gt;key().get(), backingStoreCursor-&gt;primaryKey().get(), backingStoreCursor-&gt;value().get());
-    operation.callbacks()-&gt;onSuccess(backingStoreCursor-&gt;key(), backingStoreCursor-&gt;primaryKey(), backingStoreCursor-&gt;value());
-    
-}
</del><ins>+        callOnMainThread([completionCallback]() {
+            completionCallback(nullptr, nullptr, nullptr, IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Unknown error advancing cursor&quot;));
+        });
</ins><span class="cx"> 
</span><del>-void IDBServerConnectionLevelDB::cursorPrefetchIteration(IDBCursorBackend&amp; cursor, const CursorPrefetchIterationOperation&amp; operation, std::function&lt;void()&gt; completionCallback)
-{
-    IDBBackingStoreCursorLevelDB* backingStoreCursor = cursor.id() ? m_backingStoreCursors.get(cursor.id()) : 0;
-#ifndef NDEBUG
-    if (cursor.id())
-        ASSERT(backingStoreCursor);
-#endif
-
-    Vector&lt;RefPtr&lt;IDBKey&gt;&gt; foundKeys;
-    Vector&lt;RefPtr&lt;IDBKey&gt;&gt; foundPrimaryKeys;
-    Vector&lt;RefPtr&lt;SharedBuffer&gt;&gt; foundValues;
-
-    if (backingStoreCursor) {
-        int64_t cursorID = m_nextCursorID++;
-        RefPtr&lt;IDBBackingStoreCursorLevelDB&gt; savedCursor = backingStoreCursor-&gt;clone();
-        m_backingStoreCursors.set(cursorID, savedCursor.release());
-        cursor.setSavedCursorID(cursorID);
-    }
-
-    const size_t maxSizeEstimate = 10 * 1024 * 1024;
-    size_t sizeEstimate = 0;
-
-    for (int i = 0; i &lt; operation.numberToFetch(); ++i) {
-        if (!backingStoreCursor || !backingStoreCursor-&gt;continueFunction(0)) {
-            m_backingStoreCursors.remove(cursor.id());
-            cursor.clear();
-            break;
-        }
-
-        foundKeys.append(backingStoreCursor-&gt;key());
-        foundPrimaryKeys.append(backingStoreCursor-&gt;primaryKey());
-
-        switch (cursor.cursorType()) {
-        case IndexedDB::CursorType::KeyOnly:
-            foundValues.append(SharedBuffer::create());
-            break;
-        case IndexedDB::CursorType::KeyAndValue:
-            sizeEstimate += backingStoreCursor-&gt;value()-&gt;size();
-            foundValues.append(backingStoreCursor-&gt;value());
-            break;
-        default:
-            ASSERT_NOT_REACHED();
-        }
-        sizeEstimate += backingStoreCursor-&gt;key()-&gt;sizeEstimate();
-        sizeEstimate += backingStoreCursor-&gt;primaryKey()-&gt;sizeEstimate();
-
-        if (sizeEstimate &gt; maxSizeEstimate)
-            break;
-    }
-
-    if (!foundKeys.size()) {
-        operation.callbacks()-&gt;onSuccess(static_cast&lt;SharedBuffer*&gt;(0));
</del><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    operation.callbacks()-&gt;onSuccessWithPrefetch(foundKeys, foundPrimaryKeys, foundValues);
-    
-    EMPTY_ASYNC_COMPLETION_CALLBACK(completionCallback);
-}
</del><ins>+    RefPtr&lt;IDBKey&gt; key = backingStoreCursor-&gt;key(), primaryKey = backingStoreCursor-&gt;primaryKey();
+    RefPtr&lt;SharedBuffer&gt; value = backingStoreCursor-&gt;value();
</ins><span class="cx"> 
</span><del>-void IDBServerConnectionLevelDB::cursorPrefetchReset(IDBCursorBackend&amp; cursor, int usedPrefetches)
-{
-    IDBBackingStoreCursorLevelDB* backingStoreCursor = cursor.id() ? m_backingStoreCursors.get(cursor.id()) : 0;
-    ASSERT(backingStoreCursor);
-
-    for (int i = 0; i &lt; usedPrefetches; ++i) {
-        bool ok = backingStoreCursor-&gt;continueFunction();
-        ASSERT_UNUSED(ok, ok);
-    }
</del><ins>+    callOnMainThread([completionCallback, key, primaryKey, value]() {
+        completionCallback(key, primaryKey, value, IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Unknown error advancing cursor&quot;));
+    });
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreModulesindexeddbleveldbIDBServerConnectionLevelDBh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -68,18 +68,16 @@
</span><span class="cx">     virtual void deleteIndex(IDBTransactionBackend&amp;, const DeleteIndexOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) override;
</span><span class="cx">     virtual void get(IDBTransactionBackend&amp;, const GetOperation&amp;, std::function&lt;void(const IDBGetResult&amp;, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) override;
</span><span class="cx">     virtual void put(IDBTransactionBackend&amp;, const PutOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)  override;
</span><del>-    virtual void openCursor(IDBTransactionBackend&amp;, const OpenCursorOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) override;
-    virtual void count(IDBTransactionBackend&amp;, const CountOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) override;
</del><ins>+    virtual void openCursor(IDBTransactionBackend&amp;, const OpenCursorOperation&amp;, std::function&lt;void(int64_t, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) override;
+    virtual void count(IDBTransactionBackend&amp;, const CountOperation&amp;, std::function&lt;void(int64_t, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) override;
</ins><span class="cx">     virtual void deleteRange(IDBTransactionBackend&amp;, const DeleteRangeOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) override;
</span><span class="cx">     virtual void clearObjectStore(IDBTransactionBackend&amp;, const ClearObjectStoreOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) override;
</span><span class="cx">     virtual void deleteObjectStore(IDBTransactionBackend&amp;, const DeleteObjectStoreOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) override;
</span><span class="cx">     virtual void changeDatabaseVersion(IDBTransactionBackend&amp;, const IDBDatabaseBackend::VersionChangeOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) override;
</span><span class="cx"> 
</span><span class="cx">     // Cursor-level operations
</span><del>-    virtual void cursorAdvance(IDBCursorBackend&amp;, const CursorAdvanceOperation&amp;, std::function&lt;void()&gt; completionCallback) override;
-    virtual void cursorIterate(IDBCursorBackend&amp;, const CursorIterationOperation&amp;, std::function&lt;void()&gt; completionCallback) override;
-    virtual void cursorPrefetchIteration(IDBCursorBackend&amp;, const CursorPrefetchIterationOperation&amp;, std::function&lt;void()&gt; completionCallback) override;
-    virtual void cursorPrefetchReset(IDBCursorBackend&amp;, int usedPrefetches) override;
</del><ins>+    virtual void cursorAdvance(IDBCursorBackend&amp;, const CursorAdvanceOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;SharedBuffer&gt;, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) override;
+    virtual void cursorIterate(IDBCursorBackend&amp;, const CursorIterationOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;SharedBuffer&gt;, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback) override;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     IDBServerConnectionLevelDB(const String&amp; databaseName, IDBBackingStoreLevelDB*);
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreWebCoreexpin"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/WebCore.exp.in (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/WebCore.exp.in        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/WebCore.exp.in        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -250,6 +250,8 @@
</span><span class="cx"> __ZN7WebCore12iconDatabaseEv
</span><span class="cx"> __ZN7WebCore13AXObjectCache10rootObjectEv
</span><span class="cx"> __ZN7WebCore13AXObjectCache18rootObjectForFrameEPNS_5FrameE
</span><ins>+__ZN7WebCore13AXObjectCache19enableAccessibilityEv
+__ZN7WebCore13AXObjectCache20disableAccessibilityEv
</ins><span class="cx"> __ZN7WebCore13AXObjectCache21gAccessibilityEnabledE
</span><span class="cx"> __ZN7WebCore13AXObjectCache23focusedUIElementForPageEPKNS_4PageE
</span><span class="cx"> __ZN7WebCore13AXObjectCache42gAccessibilityEnhancedUserInterfaceEnabledE
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/WebCore.xcodeproj/project.pbxproj (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -6055,7 +6055,6 @@
</span><span class="cx">                 F3D4C47912E07663003DA150 /* InspectorDOMDebuggerAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = F3D4C47712E07663003DA150 /* InspectorDOMDebuggerAgent.h */; };
</span><span class="cx">                 F3F5CF1112ED81A80084C569 /* InspectorConsoleInstrumentation.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F5CF1012ED81A80084C569 /* InspectorConsoleInstrumentation.h */; };
</span><span class="cx">                 F3F5CF1312ED81B30084C569 /* InspectorDatabaseInstrumentation.h in Headers */ = {isa = PBXBuildFile; fileRef = F3F5CF1212ED81B30084C569 /* InspectorDatabaseInstrumentation.h */; };
</span><del>-                F4EAF4AF10C742B1009100D3 /* OpenTypeSanitizer.h in Headers */ = {isa = PBXBuildFile; fileRef = F4EAF4AD10C742B1009100D3 /* OpenTypeSanitizer.h */; };
</del><span class="cx">                 F50664F7157F52DC00AC226F /* FormController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F50664F5157F52DC00AC226F /* FormController.cpp */; };
</span><span class="cx">                 F50664F8157F52DC00AC226F /* FormController.h in Headers */ = {isa = PBXBuildFile; fileRef = F50664F6157F52DC00AC226F /* FormController.h */; };
</span><span class="cx">                 F513A3EA15FF4841001526DB /* ValidationMessageClient.h in Headers */ = {isa = PBXBuildFile; fileRef = F513A3E915FF4841001526DB /* ValidationMessageClient.h */; };
</span><span class="lines">@@ -13361,7 +13360,6 @@
</span><span class="cx">                 F3D4C47712E07663003DA150 /* InspectorDOMDebuggerAgent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorDOMDebuggerAgent.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 F3F5CF1012ED81A80084C569 /* InspectorConsoleInstrumentation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorConsoleInstrumentation.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 F3F5CF1212ED81B30084C569 /* InspectorDatabaseInstrumentation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorDatabaseInstrumentation.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                F4EAF4AD10C742B1009100D3 /* OpenTypeSanitizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OpenTypeSanitizer.h; path = opentype/OpenTypeSanitizer.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 F50664F5157F52DC00AC226F /* FormController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FormController.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 F50664F6157F52DC00AC226F /* FormController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FormController.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 F513A3E915FF4841001526DB /* ValidationMessageClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ValidationMessageClient.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -21264,14 +21262,6 @@
</span><span class="cx">                         name = mac;
</span><span class="cx">                         sourceTree = &quot;&lt;group&gt;&quot;;
</span><span class="cx">                 };
</span><del>-                F4EAF4AB10C74268009100D3 /* opentype */ = {
-                        isa = PBXGroup;
-                        children = (
-                                F4EAF4AD10C742B1009100D3 /* OpenTypeSanitizer.h */,
-                        );
-                        name = opentype;
-                        sourceTree = &quot;&lt;group&gt;&quot;;
-                };
</del><span class="cx">                 F523D18402DE42E8018635CA /* css */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><span class="lines">@@ -24731,7 +24721,6 @@
</span><span class="cx">                                 FDA3E95A134A49EF008D4B5A /* OfflineAudioCompletionEvent.h in Headers */,
</span><span class="cx">                                 FDA9325E16703B2A008982DC /* OfflineAudioContext.h in Headers */,
</span><span class="cx">                                 FDA3E95C134A49EF008D4B5A /* OfflineAudioDestinationNode.h in Headers */,
</span><del>-                                F4EAF4AF10C742B1009100D3 /* OpenTypeSanitizer.h in Headers */,
</del><span class="cx">                                 0014628B103CD1DE000B20DB /* OriginAccessEntry.h in Headers */,
</span><span class="cx">                                 FE9E89FC16E2DC0500A908F8 /* OriginLock.h in Headers */,
</span><span class="cx">                                 CD9DE18617AB0CF300EA386D /* HTMLMediaSource.h in Headers */,
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreaccessibilityAXObjectCachecpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/accessibility/AXObjectCache.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/accessibility/AXObjectCache.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/accessibility/AXObjectCache.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -108,6 +108,16 @@
</span><span class="cx"> bool AXObjectCache::gAccessibilityEnabled = false;
</span><span class="cx"> bool AXObjectCache::gAccessibilityEnhancedUserInterfaceEnabled = false;
</span><span class="cx"> 
</span><ins>+void AXObjectCache::enableAccessibility()
+{
+    gAccessibilityEnabled = true;
+}
+
+void AXObjectCache::disableAccessibility()
+{
+    gAccessibilityEnabled = false;
+}
+
</ins><span class="cx"> AXObjectCache::AXObjectCache(Document&amp; document)
</span><span class="cx">     : m_document(document)
</span><span class="cx">     , m_notificationPostTimer(this, &amp;AXObjectCache::notificationPostTimerFired)
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreaccessibilityAXObjectCacheh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/accessibility/AXObjectCache.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/accessibility/AXObjectCache.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/accessibility/AXObjectCache.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -127,8 +127,8 @@
</span><span class="cx">     void recomputeIsIgnored(RenderObject* renderer);
</span><span class="cx"> 
</span><span class="cx"> #if HAVE(ACCESSIBILITY)
</span><del>-    static void enableAccessibility() { gAccessibilityEnabled = true; }
-    static void disableAccessibility() { gAccessibilityEnabled = false; }
</del><ins>+    static void enableAccessibility();
+    static void disableAccessibility();
</ins><span class="cx"> 
</span><span class="cx">     // Enhanced user interface accessibility can be toggled by the assistive technology.
</span><span class="cx">     static void setEnhancedUserInterfaceAccessibility(bool flag) { gAccessibilityEnhancedUserInterfaceEnabled = flag; }
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreaccessibilityAccessibilityNodeObjectcpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/accessibility/AccessibilityNodeObject.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/accessibility/AccessibilityNodeObject.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/accessibility/AccessibilityNodeObject.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -401,6 +401,7 @@
</span><span class="cx">     case LegendRole:
</span><span class="cx">         if (Element* element = this-&gt;element())
</span><span class="cx">             return !ancestorsOfType&lt;HTMLFieldSetElement&gt;(*element).first();
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">     default:
</span><span class="cx">         return true;
</span><span class="cx">     }
</span><span class="lines">@@ -1337,6 +1338,7 @@
</span><span class="cx">         // Native popup buttons should not use their button children's text as a title. That value is retrieved through stringValue().
</span><span class="cx">         if (node-&gt;hasTagName(selectTag))
</span><span class="cx">             break;
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">     case ButtonRole:
</span><span class="cx">     case ToggleButtonRole:
</span><span class="cx">     case CheckBoxRole:
</span><span class="lines">@@ -1712,6 +1714,7 @@
</span><span class="cx">         // Native popup buttons should not use their button children's text as a title. That value is retrieved through stringValue().
</span><span class="cx">         if (node-&gt;hasTagName(selectTag))
</span><span class="cx">             return String();
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">     case ButtonRole:
</span><span class="cx">     case ToggleButtonRole:
</span><span class="cx">     case CheckBoxRole:
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreaccessibilitymacWebAccessibilityObjectWrapperBasemm"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -201,6 +201,7 @@
</span><span class="cx">         case ChildrenText:
</span><span class="cx">         case LabelByElementText:
</span><span class="cx">             visibleTextAvailable = true;
</span><ins>+            break;
</ins><span class="cx">         default:
</span><span class="cx">             break;
</span><span class="cx">         }
</span><span class="lines">@@ -230,6 +231,7 @@
</span><span class="cx">         case ChildrenText:
</span><span class="cx">         case LabelByElementText:
</span><span class="cx">             descriptiveTextAvailable = true;
</span><ins>+            break;
</ins><span class="cx">         default:
</span><span class="cx">             break;
</span><span class="cx">         }
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorebindingsjsSerializedScriptValuecpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/bindings/js/SerializedScriptValue.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/bindings/js/SerializedScriptValue.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/bindings/js/SerializedScriptValue.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -1182,9 +1182,9 @@
</span><span class="cx">                 inputObjectStack.append(inArray);
</span><span class="cx">                 indexStack.append(0);
</span><span class="cx">                 lengthStack.append(length);
</span><del>-                // fallthrough
</del><span class="cx">             }
</span><span class="cx">             arrayStartVisitMember:
</span><ins>+            FALLTHROUGH;
</ins><span class="cx">             case ArrayStartVisitMember: {
</span><span class="cx">                 JSObject* array = inputObjectStack.last();
</span><span class="cx">                 uint32_t index = indexStack.last();
</span><span class="lines">@@ -1244,9 +1244,9 @@
</span><span class="cx">                 indexStack.append(0);
</span><span class="cx">                 propertyStack.append(PropertyNameArray(m_exec));
</span><span class="cx">                 inObject-&gt;methodTable()-&gt;getOwnPropertyNames(inObject, m_exec, propertyStack.last(), ExcludeDontEnumProperties);
</span><del>-                // fallthrough
</del><span class="cx">             }
</span><span class="cx">             objectStartVisitMember:
</span><ins>+            FALLTHROUGH;
</ins><span class="cx">             case ObjectStartVisitMember: {
</span><span class="cx">                 JSObject* object = inputObjectStack.last();
</span><span class="cx">                 uint32_t index = indexStack.last();
</span><span class="lines">@@ -1279,7 +1279,7 @@
</span><span class="cx">                 }
</span><span class="cx">                 if (terminalCode != SuccessfullyCompleted)
</span><span class="cx">                     return terminalCode;
</span><del>-                // fallthrough
</del><ins>+                FALLTHROUGH;
</ins><span class="cx">             }
</span><span class="cx">             case ObjectEndVisitMember: {
</span><span class="cx">                 if (shouldTerminate())
</span><span class="lines">@@ -2317,9 +2317,9 @@
</span><span class="cx">             JSArray* outArray = constructEmptyArray(m_exec, 0, m_globalObject, length);
</span><span class="cx">             m_gcBuffer.append(outArray);
</span><span class="cx">             outputObjectStack.append(outArray);
</span><del>-            // fallthrough
</del><span class="cx">         }
</span><span class="cx">         arrayStartVisitMember:
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">         case ArrayStartVisitMember: {
</span><span class="cx">             uint32_t index;
</span><span class="cx">             if (!read(index)) {
</span><span class="lines">@@ -2358,9 +2358,9 @@
</span><span class="cx">             JSObject* outObject = constructEmptyObject(m_exec, m_globalObject-&gt;objectPrototype());
</span><span class="cx">             m_gcBuffer.append(outObject);
</span><span class="cx">             outputObjectStack.append(outObject);
</span><del>-            // fallthrough
</del><span class="cx">         }
</span><span class="cx">         objectStartVisitMember:
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">         case ObjectStartVisitMember: {
</span><span class="cx">             CachedStringRef cachedString;
</span><span class="cx">             bool wasTerminator = false;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorebindingsobjcDOMEventsh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/bindings/objc/DOMEvents.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/bindings/objc/DOMEvents.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/bindings/objc/DOMEvents.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -41,10 +41,7 @@
</span><span class="cx"> #import &lt;WebCore/DOMUIEvent.h&gt;
</span><span class="cx"> #import &lt;WebCore/DOMWheelEvent.h&gt;
</span><span class="cx"> 
</span><del>-#if defined(ENABLE_IOS_TOUCH_EVENTS) &amp;&amp; ENABLE_IOS_TOUCH_EVENTS
</del><ins>+#if TARGET_OS_IPHONE
+#import &lt;WebCore/DOMGestureEvent.h&gt;
</ins><span class="cx"> #import &lt;WebCore/DOMTouchEvent.h&gt;
</span><span class="cx"> #endif
</span><del>-
-#if defined(ENABLE_IOS_GESTURE_EVENTS) &amp;&amp; ENABLE_IOS_GESTURE_EVENTS
-#import &lt;WebCore/DOMGestureEvent.h&gt;
-#endif
</del></span></pre></div>
<a id="branchesjsCStackSourceWebCorebindingsscriptsCodeGeneratorObjCpm"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -28,6 +28,8 @@
</span><span class="cx"> 
</span><span class="cx"> use constant FileNamePrefix =&gt; &quot;DOM&quot;;
</span><span class="cx"> 
</span><ins>+sub ConditionalIsEnabled(\%$);
+
</ins><span class="cx"> # Global Variables
</span><span class="cx"> my $writeDependencies = 0;
</span><span class="cx"> my %publicInterfaces = ();
</span><span class="lines">@@ -376,7 +378,7 @@
</span><span class="cx">     ReadPublicInterfaces($className, $parentClassName, $defines, $isProtocol);
</span><span class="cx"> 
</span><span class="cx">     # Start actual generation..
</span><del>-    $object-&gt;GenerateHeader($interface);
</del><ins>+    $object-&gt;GenerateHeader($interface, $defines);
</ins><span class="cx">     $object-&gt;GenerateImplementation($interface) unless $noImpl;
</span><span class="cx"> 
</span><span class="cx">     # Check for missing public API
</span><span class="lines">@@ -790,11 +792,36 @@
</span><span class="cx">     return ($svgPropertyType, $svgListPropertyType, $svgNativeType);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+sub ConditionalIsEnabled(\%$)
+{
+    my $defines = shift;
+    my $conditional = shift;
+
+    return 1 if !$conditional;
+
+    my $operator = ($conditional =~ /&amp;/ ? '&amp;' : ($conditional =~ /\|/ ? '|' : ''));
+    if (!$operator) {
+        return exists($defines-&gt;{&quot;ENABLE_&quot; . $conditional});
+    }
+
+    my @conditions = split(/\Q$operator\E/, $conditional);
+    foreach (@conditions) {
+        my $enable = &quot;ENABLE_&quot; . $_;
+        return 0 if ($operator eq '&amp;') and !exists($defines-&gt;{$enable});
+        return 1 if ($operator eq '|') and exists($defines-&gt;{$enable});
+    }
+
+    return $operator eq '&amp;';
+}
+
</ins><span class="cx"> sub GenerateHeader
</span><span class="cx"> {
</span><span class="cx">     my $object = shift;
</span><span class="cx">     my $interface = shift;
</span><ins>+    my $defines = shift;
</ins><span class="cx"> 
</span><ins>+    my %definesRef = map { $_ =&gt; 1 } split(/\s+/, $defines);
+
</ins><span class="cx">     my $interfaceName = $interface-&gt;name;
</span><span class="cx">     my $className = GetClassName($interfaceName);
</span><span class="cx"> 
</span><span class="lines">@@ -851,20 +878,15 @@
</span><span class="cx">         foreach my $constant (@constants) {
</span><span class="cx">             my $constantName = $constant-&gt;name;
</span><span class="cx">             my $constantValue = $constant-&gt;value;
</span><del>-            my $conditional = $constant-&gt;extendedAttributes-&gt;{&quot;Conditional&quot;};
</del><span class="cx">             my $notLast = $constant ne $constants[-1];
</span><del>-
-            if ($conditional) {
-                my $conditionalString = $codeGenerator-&gt;GenerateConditionalStringFromAttributeValue($conditional);
-                $combinedConstants .= &quot;#if ${conditionalString}\n&quot;;
</del><ins>+            
+            if (ConditionalIsEnabled(%definesRef, $constant-&gt;extendedAttributes-&gt;{&quot;Conditional&quot;})) {
+                $combinedConstants .= &quot;    DOM_$constantName = $constantValue&quot;;
+                $combinedConstants .= &quot;,&quot; if $notLast;
+                if ($notLast) {
+                    $combinedConstants .= &quot;\n&quot;;
+                }
</ins><span class="cx">             }
</span><del>-            $combinedConstants .= &quot;    DOM_$constantName = $constantValue&quot;;
-            $combinedConstants .= &quot;,&quot; if $notLast;
-            if ($conditional) {
-                $combinedConstants .= &quot;\n#endif\n&quot;;
-            } elsif ($notLast) {
-                $combinedConstants .= &quot;\n&quot;;
-            }
</del><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         # FIXME: the formatting of the enums should line up the equal signs.
</span><span class="lines">@@ -943,13 +965,7 @@
</span><span class="cx">                 $property .= $declarationSuffix;
</span><span class="cx">                 push(@headerAttributes, $property) if $public;
</span><span class="cx">                 push(@privateHeaderAttributes, $property) unless $public;
</span><del>-            } else {
-                my $attributeConditionalString = $codeGenerator-&gt;GenerateConditionalString($attribute-&gt;signature);
-                if ($attributeConditionalString) {
-                    push(@headerAttributes, &quot;#if ${attributeConditionalString}\n&quot;) if $public;
-                    push(@privateHeaderAttributes, &quot;#if ${attributeConditionalString}\n&quot;) unless $public;
-                }

</del><ins>+            } elsif (ConditionalIsEnabled(%definesRef, $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Conditional&quot;})) {
</ins><span class="cx">                 # - GETTER
</span><span class="cx">                 my $getter = &quot;- (&quot; . $attributeType . &quot;)&quot; . $attributeName . $declarationSuffix;
</span><span class="cx">                 push(@headerAttributes, $getter) if $public;
</span><span class="lines">@@ -961,11 +977,6 @@
</span><span class="cx">                     push(@headerAttributes, $setter) if $public;
</span><span class="cx">                     push(@privateHeaderAttributes, $setter) unless $public;
</span><span class="cx">                 }
</span><del>- 
-                if ($attributeConditionalString) {
-                    push(@headerAttributes, &quot;#endif\n&quot;) if $public;
-                    push(@privateHeaderAttributes, &quot;#endif\n&quot;) unless $public;
-                }
</del><span class="cx">             }
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -1052,46 +1063,35 @@
</span><span class="cx">                 push(@privateHeaderFunctions, $endAppleCopyright) unless $public;
</span><span class="cx">                 $inAppleCopyright{$public ? &quot;public&quot; : &quot;private&quot;} = 0;
</span><span class="cx">             }
</span><ins>+            
+            if (ConditionalIsEnabled(%definesRef, $function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Conditional&quot;})) {
+                push(@headerFunctions, $functionDeclaration) if $public;
+                push(@privateHeaderFunctions, $functionDeclaration) unless $public;
</ins><span class="cx"> 
</span><del>-            my $functionConditionalString = $codeGenerator-&gt;GenerateConditionalString($function-&gt;signature);
-            if ($functionConditionalString) {
-                push(@headerFunctions, &quot;#if ${functionConditionalString}\n&quot;) if $public;
-                push(@privateHeaderFunctions, &quot;#if ${functionConditionalString}\n&quot;) unless $public;
-                push(@deprecatedHeaderFunctions, &quot;#if ${functionConditionalString}\n&quot;) if $needsDeprecatedVersion;
-            }
</del><ins>+                # generate the old style method names with un-named parameters, these methods are deprecated
+                if ($needsDeprecatedVersion) {
+                    my $deprecatedFunctionSig = $functionSig;
+                    $deprecatedFunctionSig =~ s/\s\w+:/ :/g; # remove parameter names
</ins><span class="cx"> 
</span><del>-            push(@headerFunctions, $functionDeclaration) if $public;
-            push(@privateHeaderFunctions, $functionDeclaration) unless $public;
</del><ins>+                    $publicInterfaceKey = $deprecatedFunctionSig . &quot;;&quot;;
</ins><span class="cx"> 
</span><del>-            # generate the old style method names with un-named parameters, these methods are deprecated
-            if ($needsDeprecatedVersion) {
-                my $deprecatedFunctionSig = $functionSig;
-                $deprecatedFunctionSig =~ s/\s\w+:/ :/g; # remove parameter names
</del><ins>+                    my $availabilityMacro = &quot;WEBKIT_DEPRECATED_MAC(10_4, 10_5)&quot;;
+                    if (defined $publicInterfaces{$publicInterfaceKey} and length $publicInterfaces{$publicInterfaceKey}) {
+                        $availabilityMacro = $publicInterfaces{$publicInterfaceKey};
+                    }
</ins><span class="cx"> 
</span><del>-                $publicInterfaceKey = $deprecatedFunctionSig . &quot;;&quot;;
</del><ins>+                    $functionDeclaration = &quot;$deprecatedFunctionSig $availabilityMacro;\n&quot;;
</ins><span class="cx"> 
</span><del>-                my $availabilityMacro = &quot;WEBKIT_DEPRECATED_MAC(10_4, 10_5)&quot;;
-                if (defined $publicInterfaces{$publicInterfaceKey} and length $publicInterfaces{$publicInterfaceKey}) {
-                    $availabilityMacro = $publicInterfaces{$publicInterfaceKey};
-                }
</del><ins>+                    push(@deprecatedHeaderFunctions, $functionDeclaration);
</ins><span class="cx"> 
</span><del>-                $functionDeclaration = &quot;$deprecatedFunctionSig $availabilityMacro;\n&quot;;
</del><ins>+                    unless (defined $publicInterfaces{$publicInterfaceKey}) {
+                        warn &quot;Deprecated method $publicInterfaceKey is not in PublicDOMInterfaces.h. All deprecated methods need to be public, or should have the ObjCLegacyUnnamedParameters IDL attribute removed&quot;;
+                        $fatalError = 1;
+                    }
</ins><span class="cx"> 
</span><del>-                push(@deprecatedHeaderFunctions, $functionDeclaration);
-
-                unless (defined $publicInterfaces{$publicInterfaceKey}) {
-                    warn &quot;Deprecated method $publicInterfaceKey is not in PublicDOMInterfaces.h. All deprecated methods need to be public, or should have the ObjCLegacyUnnamedParameters IDL attribute removed&quot;;
-                    $fatalError = 1;
</del><ins>+                    delete $publicInterfaces{$publicInterfaceKey};
</ins><span class="cx">                 }
</span><del>-
-                delete $publicInterfaces{$publicInterfaceKey};
</del><span class="cx">             }
</span><del>-
-            if ($functionConditionalString) {
-                push(@headerFunctions, &quot;#endif\n&quot;) if $public;
-                push(@privateHeaderFunctions, &quot;#endif\n&quot;) unless $public;
-                push(@deprecatedHeaderFunctions, &quot;#endif\n&quot;) if $needsDeprecatedVersion;
-            }
</del><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         push(@headerFunctions, $endAppleCopyright) if $inAppleCopyright{&quot;public&quot;};
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorebindingsscriptstestObjCDOMTestInterfaceh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/bindings/scripts/test/ObjC/DOMTestInterface.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/bindings/scripts/test/ObjC/DOMTestInterface.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/bindings/scripts/test/ObjC/DOMTestInterface.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -31,18 +31,6 @@
</span><span class="cx"> @class NSString;
</span><span class="cx"> 
</span><span class="cx"> enum {
</span><del>-#if ENABLE(Condition22) || ENABLE(Condition23)
-    DOM_IMPLEMENTSCONSTANT1 = 1,
-#endif
-#if ENABLE(Condition22) || ENABLE(Condition23)
-    DOM_IMPLEMENTSCONSTANT2 = 2,
-#endif
-#if ENABLE(Condition11) || ENABLE(Condition12)
-    DOM_SUPPLEMENTALCONSTANT1 = 1,
-#endif
-#if ENABLE(Condition11) || ENABLE(Condition12)
-    DOM_SUPPLEMENTALCONSTANT2 = 2
-#endif
</del><span class="cx"> 
</span><span class="cx"> } WEBKIT_ENUM_AVAILABLE_MAC(TBD);
</span><span class="cx"> 
</span><span class="lines">@@ -56,29 +44,4 @@
</span><span class="cx"> @property (copy) NSString *supplementalStr2;
</span><span class="cx"> @property (copy) NSString *supplementalStr3;
</span><span class="cx"> @property (strong) DOMNode *supplementalNode;
</span><del>-
-#if ENABLE(Condition22) || ENABLE(Condition23)
-- (void)implementsMethod1;
-#endif
-#if ENABLE(Condition22) || ENABLE(Condition23)
-- (DOMTestObj *)implementsMethod2:(NSString *)strArg objArg:(DOMTestObj *)objArg;
-#endif
-#if ENABLE(Condition22) || ENABLE(Condition23)
-- (void)implementsMethod3;
-#endif
-#if ENABLE(Condition22) || ENABLE(Condition23)
-- (void)implementsMethod4;
-#endif
-#if ENABLE(Condition11) || ENABLE(Condition12)
-- (void)supplementalMethod1;
-#endif
-#if ENABLE(Condition11) || ENABLE(Condition12)
-- (DOMTestObj *)supplementalMethod2:(NSString *)strArg objArg:(DOMTestObj *)objArg;
-#endif
-#if ENABLE(Condition11) || ENABLE(Condition12)
-- (void)supplementalMethod3;
-#endif
-#if ENABLE(Condition11) || ENABLE(Condition12)
-- (void)supplementalMethod4;
-#endif
</del><span class="cx"> @end
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorebindingsscriptstestObjCDOMTestObjh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/bindings/scripts/test/ObjC/DOMTestObj.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/bindings/scripts/test/ObjC/DOMTestObj.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/bindings/scripts/test/ObjC/DOMTestObj.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -44,9 +44,6 @@
</span><span class="cx"> @protocol DOMEventListener;
</span><span class="cx"> 
</span><span class="cx"> enum {
</span><del>-#if ENABLE(Condition1)
-    DOM_CONDITIONAL_CONST = 0,
-#endif
</del><span class="cx">     DOM_CONST_VALUE_0 = 0,
</span><span class="cx">     DOM_CONST_VALUE_1 = 1,
</span><span class="cx">     DOM_CONST_VALUE_2 = 2,
</span><span class="lines">@@ -159,24 +156,9 @@
</span><span class="cx"> - (void)methodWithOptionalString:(NSString *)str;
</span><span class="cx"> - (void)methodWithOptionalStringIsUndefined:(NSString *)str;
</span><span class="cx"> - (void)methodWithOptionalStringIsNullString:(NSString *)str;
</span><del>-#if ENABLE(Condition1)
-- (NSString *)conditionalMethod1;
-#endif
-#if ENABLE(Condition1) &amp;&amp; ENABLE(Condition2)
-- (void)conditionalMethod2;
-#endif
-#if ENABLE(Condition1) || ENABLE(Condition2)
-- (void)conditionalMethod3;
-#endif
</del><span class="cx"> - (void)classMethod;
</span><span class="cx"> - (int)classMethodWithOptional:(int)arg;
</span><span class="cx"> - (void)classMethod2:(int)arg;
</span><del>-#if ENABLE(Condition1)
-- (void)overloadedMethod1:(int)arg;
-#endif
-#if ENABLE(Condition1)
-- (void)overloadedMethod1:(NSString *)type;
-#endif
</del><span class="cx"> - (DOMSVGDocument *)getSVGDocument;
</span><span class="cx"> - (void)convert1:(DOMTestNode *)value;
</span><span class="cx"> - (void)convert2:(DOMTestNode *)value;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorecssCSSBasicShapescpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/css/CSSBasicShapes.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/css/CSSBasicShapes.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/css/CSSBasicShapes.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -411,22 +411,21 @@
</span><span class="cx">     char opening[] = &quot;inset(&quot;;
</span><span class="cx">     char separator[] = &quot; &quot;;
</span><span class="cx">     char cornersSeparator[] = &quot;round&quot;;
</span><del>-    char radiusSeparator[] = &quot;/&quot;;
</del><span class="cx">     StringBuilder result;
</span><del>-    // Compute the required capacity in advance to reduce allocations.
-    result.reserveCapacity((sizeof(opening) - 1) + (13 * (sizeof(separator) - 1)) + (sizeof(cornersSeparator) - 1) + (sizeof(radiusSeparator) - 1) + 1
-        + top.length() + right.length() + bottom.length() + left.length()
-        + topLeftRadiusWidth.length() + topRightRadiusWidth.length() + bottomRightRadiusWidth.length() + bottomLeftRadiusWidth.length() +
-        + topLeftRadiusHeight.length() + topRightRadiusHeight.length() + bottomRightRadiusHeight.length() + bottomLeftRadiusHeight.length() +
-        + (box.length() ? box.length() + 1 : 0));
</del><span class="cx">     result.appendLiteral(opening);
</span><span class="cx">     result.append(top);
</span><del>-    result.appendLiteral(separator);
-    result.append(right);
-    result.appendLiteral(separator);
-    result.append(bottom);
-    result.appendLiteral(separator);
-    result.append(left);
</del><ins>+    if (!right.isNull()) {
+        result.appendLiteral(separator);
+        result.append(right);
+    }
+    if (!bottom.isNull()) {
+        result.appendLiteral(separator);
+        result.append(bottom);
+    }
+    if (!left.isNull()) {
+        result.appendLiteral(separator);
+        result.append(left);
+    }
</ins><span class="cx"> 
</span><span class="cx">     if (!topLeftRadiusWidth.isNull() &amp;&amp; !topLeftRadiusHeight.isNull()) {
</span><span class="cx">         result.appendLiteral(separator);
</span><span class="lines">@@ -442,7 +441,7 @@
</span><span class="cx">         result.append(bottomLeftRadiusWidth);
</span><span class="cx"> 
</span><span class="cx">         result.appendLiteral(separator);
</span><del>-        result.append(radiusSeparator);
</del><ins>+        result.append('/');
</ins><span class="cx">         result.appendLiteral(separator);
</span><span class="cx"> 
</span><span class="cx">         result.append(topLeftRadiusHeight);
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorecssCSSComputedStyleDeclarationcpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/css/CSSComputedStyleDeclaration.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/css/CSSComputedStyleDeclaration.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/css/CSSComputedStyleDeclaration.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -2297,7 +2297,9 @@
</span><span class="cx">                 return cssValuePool().createValue(style-&gt;textEmphasisCustomMark(), CSSPrimitiveValue::CSS_STRING);
</span><span class="cx">             case TextEmphasisMarkAuto:
</span><span class="cx">                 ASSERT_NOT_REACHED();
</span><del>-                // Fall through
</del><ins>+#if ASSERT_DISABLED
+                FALLTHROUGH;
+#endif
</ins><span class="cx">             case TextEmphasisMarkDot:
</span><span class="cx">             case TextEmphasisMarkCircle:
</span><span class="cx">             case TextEmphasisMarkDoubleCircle:
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorecssCSSParsercpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/css/CSSParser.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/css/CSSParser.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/css/CSSParser.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -1909,7 +1909,7 @@
</span><span class="cx">             validPrimitive = true;
</span><span class="cx">             break;
</span><span class="cx">         }
</span><del>-        /* nobreak */
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case CSSPropertyBackgroundColor: // &lt;color&gt; | inherit
</span><span class="cx">     case CSSPropertyBorderTopColor: // &lt;color&gt; | inherit
</span><span class="cx">     case CSSPropertyBorderRightColor:
</span><span class="lines">@@ -3690,6 +3690,7 @@
</span><span class="cx">             case CSSValueNone:
</span><span class="cx">             case CSSValueNormal:
</span><span class="cx">                 parsedValue = cssValuePool().createIdentifierValue(val-&gt;id);
</span><ins>+                break;
</ins><span class="cx">             default:
</span><span class="cx">                 break;
</span><span class="cx">             }
</span><span class="lines">@@ -5393,7 +5394,7 @@
</span><span class="cx">             return nullptr;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        Units unitFlags = FLength | FPercent| FNonNeg;
</del><ins>+        Units unitFlags = FLength | FPercent;
</ins><span class="cx">         if (!validUnit(argument, unitFlags) || argumentNumber &gt; 3)
</span><span class="cx">             return nullptr;
</span><span class="cx"> 
</span><span class="lines">@@ -10930,13 +10931,14 @@
</span><span class="cx"> 
</span><span class="cx">     switch ((m_token &lt;= 127) ? typesOfASCIICharacters[m_token] : CharacterIdentifierStart) {
</span><span class="cx">     case CharacterCaselessU:
</span><del>-        if (UNLIKELY(*currentCharacter&lt;SrcCharacterType&gt;() == '+'))
</del><ins>+        if (UNLIKELY(*currentCharacter&lt;SrcCharacterType&gt;() == '+')) {
</ins><span class="cx">             if (parseUnicodeRange&lt;SrcCharacterType&gt;()) {
</span><span class="cx">                 m_token = UNICODERANGE;
</span><span class="cx">                 yylval-&gt;string.init(tokenStart&lt;SrcCharacterType&gt;(), currentCharacter&lt;SrcCharacterType&gt;() - tokenStart&lt;SrcCharacterType&gt;());
</span><span class="cx">                 break;
</span><span class="cx">             }
</span><del>-        // Fall through to CharacterIdentifierStart.
</del><ins>+        }
+        FALLTHROUGH; // To CharacterIdentifierStart.
</ins><span class="cx"> 
</span><span class="cx">     case CharacterIdentifierStart:
</span><span class="cx">         --currentCharacter&lt;SrcCharacterType&gt;();
</span><span class="lines">@@ -11011,7 +11013,7 @@
</span><span class="cx">     case CharacterDot:
</span><span class="cx">         if (!isASCIIDigit(currentCharacter&lt;SrcCharacterType&gt;()[0]))
</span><span class="cx">             break;
</span><del>-        // Fall through to CharacterNumber.
</del><ins>+        FALLTHROUGH; // To CharacterNumber.
</ins><span class="cx"> 
</span><span class="cx">     case CharacterNumber: {
</span><span class="cx">         bool dotSeen = (m_token == '.');
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorecssCSSSelectorcpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/css/CSSSelector.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/css/CSSSelector.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/css/CSSSelector.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -400,6 +400,7 @@
</span><span class="cx">     case PseudoFirstLetter:
</span><span class="cx">     case PseudoFirstLine:
</span><span class="cx">         compat = true;
</span><ins>+        FALLTHROUGH;
</ins><span class="cx"> #if ENABLE(SHADOW_DOM)
</span><span class="cx">     case PseudoDistributed:
</span><span class="cx"> #endif
</span><span class="lines">@@ -642,6 +643,9 @@
</span><span class="cx">             return tagHistory-&gt;selectorText(&quot; ~ &quot; + str.toString() + rightSide);
</span><span class="cx">         case CSSSelector::SubSelector:
</span><span class="cx">             ASSERT_NOT_REACHED();
</span><ins>+#if ASSERT_DISABLED
+            FALLTHROUGH;
+#endif
</ins><span class="cx">         case CSSSelector::ShadowDescendant:
</span><span class="cx">             return tagHistory-&gt;selectorText(str.toString() + rightSide);
</span><span class="cx">         }
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorecssSVGCSSParsercpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/css/SVGCSSParser.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/css/SVGCSSParser.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/css/SVGCSSParser.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -165,7 +165,8 @@
</span><span class="cx">             valid_primitive = true;
</span><span class="cx">             break;
</span><span class="cx">         }
</span><del>-    /* fallthrough intentional */
</del><ins>+        FALLTHROUGH;
+
</ins><span class="cx">     case CSSPropertyGlyphOrientationHorizontal: // &lt;angle&gt; (restricted to _deg_ per SVG 1.1 spec) | inherit
</span><span class="cx">         if (value-&gt;unit == CSSPrimitiveValue::CSS_DEG || value-&gt;unit == CSSPrimitiveValue::CSS_NUMBER) {
</span><span class="cx">             parsedValue = CSSPrimitiveValue::create(value-&gt;fValue, CSSPrimitiveValue::CSS_DEG);
</span><span class="lines">@@ -270,6 +271,7 @@
</span><span class="cx">             }
</span><span class="cx">             return false;
</span><span class="cx">         }
</span><ins>+        break;
</ins><span class="cx"> 
</span><span class="cx">     case CSSPropertyMaskType: // luminance | alpha | inherit
</span><span class="cx">         if (id == CSSValueLuminance || id == CSSValueAlpha)
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorecssStylePropertiescpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/css/StyleProperties.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/css/StyleProperties.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/css/StyleProperties.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -810,12 +810,14 @@
</span><span class="cx">         case CSSPropertyBorderLeftWidth:
</span><span class="cx">             if (!borderFallbackShorthandProperty)
</span><span class="cx">                 borderFallbackShorthandProperty = CSSPropertyBorderWidth;
</span><ins>+            FALLTHROUGH;
</ins><span class="cx">         case CSSPropertyBorderTopStyle:
</span><span class="cx">         case CSSPropertyBorderRightStyle:
</span><span class="cx">         case CSSPropertyBorderBottomStyle:
</span><span class="cx">         case CSSPropertyBorderLeftStyle:
</span><span class="cx">             if (!borderFallbackShorthandProperty)
</span><span class="cx">                 borderFallbackShorthandProperty = CSSPropertyBorderStyle;
</span><ins>+            FALLTHROUGH;
</ins><span class="cx">         case CSSPropertyBorderTopColor:
</span><span class="cx">         case CSSPropertyBorderRightColor:
</span><span class="cx">         case CSSPropertyBorderBottomColor:
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorecssStyleResolvercpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/css/StyleResolver.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/css/StyleResolver.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/css/StyleResolver.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -2225,7 +2225,9 @@
</span><span class="cx">             }
</span><span class="cx">             if (!didSet)
</span><span class="cx">                 state.style()-&gt;setContentAltText(emptyAtom);
</span><ins>+            return;
</ins><span class="cx">         }
</span><ins>+        
</ins><span class="cx">     case CSSPropertyQuotes:
</span><span class="cx">         if (isInherit) {
</span><span class="cx">             state.style()-&gt;setQuotes(state.parentStyle()-&gt;quotes());
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorecssStyleSheetContentscpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/css/StyleSheetContents.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/css/StyleSheetContents.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/css/StyleSheetContents.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -456,6 +456,9 @@
</span><span class="cx"> #endif
</span><span class="cx">         case StyleRuleBase::Import:
</span><span class="cx">             ASSERT_NOT_REACHED();
</span><ins>+#if ASSERT_DISABLED
+            FALLTHROUGH;
+#endif
</ins><span class="cx">         case StyleRuleBase::Page:
</span><span class="cx">         case StyleRuleBase::Keyframes:
</span><span class="cx">         case StyleRuleBase::Unknown:
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorecssmakeproppl"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/css/makeprop.pl (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/css/makeprop.pl        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/css/makeprop.pl        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -102,6 +102,7 @@
</span><span class="cx"> #pragma clang diagnostic push
</span><span class="cx"> #pragma clang diagnostic ignored \&quot;-Wunknown-pragmas\&quot;
</span><span class="cx"> #pragma clang diagnostic ignored \&quot;-Wdeprecated-register\&quot;
</span><ins>+#pragma clang diagnostic ignored \&quot;-Wimplicit-fallthrough\&quot;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorecssmakevaluespl"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/css/makevalues.pl (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/css/makevalues.pl        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/css/makevalues.pl        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -70,6 +70,7 @@
</span><span class="cx"> #pragma clang diagnostic push
</span><span class="cx"> #pragma clang diagnostic ignored \&quot;-Wunknown-pragmas\&quot;
</span><span class="cx"> #pragma clang diagnostic ignored \&quot;-Wdeprecated-register\&quot;
</span><ins>+#pragma clang diagnostic ignored \&quot;-Wimplicit-fallthrough\&quot;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoredomNodecpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/dom/Node.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/dom/Node.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/dom/Node.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -1303,7 +1303,7 @@
</span><span class="cx">             content.append('\n');
</span><span class="cx">             break;
</span><span class="cx">         }
</span><del>-    // Fall through.
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case Node::ATTRIBUTE_NODE:
</span><span class="cx">     case Node::ENTITY_NODE:
</span><span class="cx">     case Node::ENTITY_REFERENCE_NODE:
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorehtmlDOMURLidl"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/html/DOMURL.idl (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/html/DOMURL.idl        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/html/DOMURL.idl        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -26,7 +26,6 @@
</span><span class="cx"> 
</span><span class="cx"> [
</span><span class="cx">     GlobalContext=DOMWindow&amp;WorkerGlobalScope,
</span><del>-    Conditional=BLOB,
</del><span class="cx">     Constructor,
</span><span class="cx">     JSGenerateToNativeObject,
</span><span class="cx">     JSGenerateToJSObject,
</span><span class="lines">@@ -34,6 +33,6 @@
</span><span class="cx">     InterfaceName=URL,
</span><span class="cx">     ImplementationLacksVTable,
</span><span class="cx"> ] interface DOMURL {
</span><del>-    [CallWith=ScriptExecutionContext,TreatReturnedNullStringAs=Null] static DOMString createObjectURL(Blob? blob);
-    [CallWith=ScriptExecutionContext] static void revokeObjectURL(DOMString url);
</del><ins>+    [CallWith=ScriptExecutionContext,TreatReturnedNullStringAs=Null,Conditional=BLOB] static DOMString createObjectURL(Blob? blob);
+    [CallWith=ScriptExecutionContext,Conditional=BLOB] static void revokeObjectURL(DOMString url);
</ins><span class="cx"> };
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorehtmlHTMLMediaElementcpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/html/HTMLMediaElement.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/html/HTMLMediaElement.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/html/HTMLMediaElement.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -4108,11 +4108,16 @@
</span><span class="cx"> 
</span><span class="cx"> bool HTMLMediaElement::potentiallyPlaying() const
</span><span class="cx"> {
</span><del>-    // When media engine ran out of buffered data it's not playing.
-    if (m_readyStateMaximum &lt; HAVE_FUTURE_DATA &amp;&amp; m_readyState &lt; HAVE_FUTURE_DATA)
</del><ins>+    if (isBlockedOnMediaController())
</ins><span class="cx">         return false;
</span><ins>+    
+    if (!couldPlayIfEnoughData())
+        return false;
</ins><span class="cx"> 
</span><del>-    return couldPlayIfEnoughData() &amp;&amp; !isBlockedOnMediaController();
</del><ins>+    if (m_readyState &gt;= HAVE_FUTURE_DATA)
+        return true;
+
+    return m_readyStateMaximum &gt;= HAVE_FUTURE_DATA &amp;&amp; m_readyState &lt; HAVE_FUTURE_DATA;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool HTMLMediaElement::couldPlayIfEnoughData() const
</span><span class="lines">@@ -4242,11 +4247,13 @@
</span><span class="cx">     bool shouldBePlaying = potentiallyPlaying();
</span><span class="cx">     bool playerPaused = m_player-&gt;paused();
</span><span class="cx"> 
</span><del>-#if PLATFORM(IOS)
-    if (shouldBePlaying &amp;&amp; !m_requestingPlay &amp;&amp; !m_player-&gt;readyForPlayback())
-        shouldBePlaying = false;
-    else if (!shouldBePlaying &amp;&amp; m_requestingPlay &amp;&amp; m_player-&gt;readyForPlayback())
-        shouldBePlaying = true;
</del><ins>+#if ENABLE(PLUGIN_PROXY_FOR_VIDEO)
+    if (shouldUseVideoPluginProxy()) {
+        if (shouldBePlaying &amp;&amp; !m_requestingPlay &amp;&amp; !m_player-&gt;readyForPlayback())
+            shouldBePlaying = false;
+        else if (!shouldBePlaying &amp;&amp; m_requestingPlay &amp;&amp; m_player-&gt;readyForPlayback())
+            shouldBePlaying = true;
+    }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     LOG(Media, &quot;HTMLMediaElement::updatePlayState - shouldBePlaying = %s, playerPaused = %s&quot;, 
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorehtmlparserHTMLTreeBuildercpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/html/parser/HTMLTreeBuilder.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/html/parser/HTMLTreeBuilder.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/html/parser/HTMLTreeBuilder.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -1099,7 +1099,7 @@
</span><span class="cx">     case InsertionMode::Initial:
</span><span class="cx">         ASSERT(insertionMode() == InsertionMode::Initial);
</span><span class="cx">         defaultForInitial();
</span><del>-        // Fall through.
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case InsertionMode::BeforeHTML:
</span><span class="cx">         ASSERT(insertionMode() == InsertionMode::BeforeHTML);
</span><span class="cx">         if (token-&gt;name() == htmlTag) {
</span><span class="lines">@@ -1108,7 +1108,7 @@
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         defaultForBeforeHTML();
</span><del>-        // Fall through.
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case InsertionMode::BeforeHead:
</span><span class="cx">         ASSERT(insertionMode() == InsertionMode::BeforeHead);
</span><span class="cx">         if (token-&gt;name() == htmlTag) {
</span><span class="lines">@@ -1121,13 +1121,13 @@
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         defaultForBeforeHead();
</span><del>-        // Fall through.
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case InsertionMode::InHead:
</span><span class="cx">         ASSERT(insertionMode() == InsertionMode::InHead);
</span><span class="cx">         if (processStartTagForInHead(token))
</span><span class="cx">             return;
</span><span class="cx">         defaultForInHead();
</span><del>-        // Fall through.
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case InsertionMode::AfterHead:
</span><span class="cx">         ASSERT(insertionMode() == InsertionMode::AfterHead);
</span><span class="cx">         if (token-&gt;name() == htmlTag) {
</span><span class="lines">@@ -1169,7 +1169,7 @@
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         defaultForAfterHead();
</span><del>-        // Fall through
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case InsertionMode::InBody:
</span><span class="cx">         ASSERT(insertionMode() == InsertionMode::InBody);
</span><span class="cx">         processStartTagForInBody(token);
</span><span class="lines">@@ -1371,7 +1371,7 @@
</span><span class="cx">             processStartTag(token);
</span><span class="cx">             return;
</span><span class="cx">         }
</span><del>-        // Fall through
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case InsertionMode::InSelect:
</span><span class="cx">         ASSERT(insertionMode() == InsertionMode::InSelect || insertionMode() == InsertionMode::InSelectInTable);
</span><span class="cx">         if (token-&gt;name() == htmlTag) {
</span><span class="lines">@@ -2049,7 +2049,7 @@
</span><span class="cx">     case InsertionMode::Initial:
</span><span class="cx">         ASSERT(insertionMode() == InsertionMode::Initial);
</span><span class="cx">         defaultForInitial();
</span><del>-        // Fall through.
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case InsertionMode::BeforeHTML:
</span><span class="cx">         ASSERT(insertionMode() == InsertionMode::BeforeHTML);
</span><span class="cx">         if (token-&gt;name() != headTag &amp;&amp; token-&gt;name() != bodyTag &amp;&amp; token-&gt;name() != htmlTag &amp;&amp; token-&gt;name() != brTag) {
</span><span class="lines">@@ -2057,7 +2057,7 @@
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         defaultForBeforeHTML();
</span><del>-        // Fall through.
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case InsertionMode::BeforeHead:
</span><span class="cx">         ASSERT(insertionMode() == InsertionMode::BeforeHead);
</span><span class="cx">         if (token-&gt;name() != headTag &amp;&amp; token-&gt;name() != bodyTag &amp;&amp; token-&gt;name() != htmlTag &amp;&amp; token-&gt;name() != brTag) {
</span><span class="lines">@@ -2065,7 +2065,7 @@
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         defaultForBeforeHead();
</span><del>-        // Fall through.
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case InsertionMode::InHead:
</span><span class="cx">         ASSERT(insertionMode() == InsertionMode::InHead);
</span><span class="cx">         // FIXME: This case should be broken out into processEndTagForInHead,
</span><span class="lines">@@ -2087,7 +2087,7 @@
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         defaultForInHead();
</span><del>-        // Fall through.
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case InsertionMode::AfterHead:
</span><span class="cx">         ASSERT(insertionMode() == InsertionMode::AfterHead);
</span><span class="cx">         if (token-&gt;name() != bodyTag &amp;&amp; token-&gt;name() != htmlTag &amp;&amp; token-&gt;name() != brTag) {
</span><span class="lines">@@ -2095,7 +2095,7 @@
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         defaultForAfterHead();
</span><del>-        // Fall through
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case InsertionMode::InBody:
</span><span class="cx">         ASSERT(insertionMode() == InsertionMode::InBody);
</span><span class="cx">         processEndTagForInBody(token);
</span><span class="lines">@@ -2175,7 +2175,7 @@
</span><span class="cx">             setInsertionMode(InsertionMode::AfterAfterBody);
</span><span class="cx">             return;
</span><span class="cx">         }
</span><del>-        // Fall through.
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case InsertionMode::AfterAfterBody:
</span><span class="cx">         ASSERT(insertionMode() == InsertionMode::AfterBody || insertionMode() == InsertionMode::AfterAfterBody);
</span><span class="cx">         parseError(token);
</span><span class="lines">@@ -2250,7 +2250,7 @@
</span><span class="cx">             setInsertionMode(InsertionMode::AfterAfterFrameset);
</span><span class="cx">             return;
</span><span class="cx">         }
</span><del>-        // Fall through.
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case InsertionMode::AfterAfterFrameset:
</span><span class="cx">         ASSERT(insertionMode() == InsertionMode::AfterFrameset || insertionMode() == InsertionMode::AfterAfterFrameset);
</span><span class="cx">         parseError(token);
</span><span class="lines">@@ -2270,7 +2270,7 @@
</span><span class="cx">             }
</span><span class="cx">             return;
</span><span class="cx">         }
</span><del>-        // Fall through.
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case InsertionMode::InSelect:
</span><span class="cx">         ASSERT(insertionMode() == InsertionMode::InSelect || insertionMode() == InsertionMode::InSelectInTable);
</span><span class="cx">         if (token-&gt;name() == optgroupTag) {
</span><span class="lines">@@ -2475,7 +2475,7 @@
</span><span class="cx">         if (buffer.isEmpty())
</span><span class="cx">             return;
</span><span class="cx">         defaultForInitial();
</span><del>-        // Fall through.
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     }
</span><span class="cx">     case InsertionMode::BeforeHTML: {
</span><span class="cx">         ASSERT(insertionMode() == InsertionMode::BeforeHTML);
</span><span class="lines">@@ -2483,7 +2483,7 @@
</span><span class="cx">         if (buffer.isEmpty())
</span><span class="cx">             return;
</span><span class="cx">         defaultForBeforeHTML();
</span><del>-        // Fall through.
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     }
</span><span class="cx">     case InsertionMode::BeforeHead: {
</span><span class="cx">         ASSERT(insertionMode() == InsertionMode::BeforeHead);
</span><span class="lines">@@ -2491,7 +2491,7 @@
</span><span class="cx">         if (buffer.isEmpty())
</span><span class="cx">             return;
</span><span class="cx">         defaultForBeforeHead();
</span><del>-        // Fall through.
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     }
</span><span class="cx">     case InsertionMode::InHead: {
</span><span class="cx">         ASSERT(insertionMode() == InsertionMode::InHead);
</span><span class="lines">@@ -2501,7 +2501,7 @@
</span><span class="cx">         if (buffer.isEmpty())
</span><span class="cx">             return;
</span><span class="cx">         defaultForInHead();
</span><del>-        // Fall through.
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     }
</span><span class="cx">     case InsertionMode::AfterHead: {
</span><span class="cx">         ASSERT(insertionMode() == InsertionMode::AfterHead);
</span><span class="lines">@@ -2511,7 +2511,7 @@
</span><span class="cx">         if (buffer.isEmpty())
</span><span class="cx">             return;
</span><span class="cx">         defaultForAfterHead();
</span><del>-        // Fall through.
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     }
</span><span class="cx">     case InsertionMode::InBody:
</span><span class="cx">     case InsertionMode::InCaption:
</span><span class="lines">@@ -2545,7 +2545,7 @@
</span><span class="cx">             processCharacterBufferForInBody(buffer);
</span><span class="cx">             break;
</span><span class="cx">         }
</span><del>-        // Fall through.
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     }
</span><span class="cx">     case InsertionMode::InTableText: {
</span><span class="cx">         buffer.giveRemainingTo(m_pendingTableCharacters);
</span><span class="lines">@@ -2644,23 +2644,23 @@
</span><span class="cx">     case InsertionMode::Initial:
</span><span class="cx">         ASSERT(insertionMode() == InsertionMode::Initial);
</span><span class="cx">         defaultForInitial();
</span><del>-        // Fall through.
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case InsertionMode::BeforeHTML:
</span><span class="cx">         ASSERT(insertionMode() == InsertionMode::BeforeHTML);
</span><span class="cx">         defaultForBeforeHTML();
</span><del>-        // Fall through.
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case InsertionMode::BeforeHead:
</span><span class="cx">         ASSERT(insertionMode() == InsertionMode::BeforeHead);
</span><span class="cx">         defaultForBeforeHead();
</span><del>-        // Fall through.
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case InsertionMode::InHead:
</span><span class="cx">         ASSERT(insertionMode() == InsertionMode::InHead);
</span><span class="cx">         defaultForInHead();
</span><del>-        // Fall through.
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case InsertionMode::AfterHead:
</span><span class="cx">         ASSERT(insertionMode() == InsertionMode::AfterHead);
</span><span class="cx">         defaultForAfterHead();
</span><del>-        // Fall through
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case InsertionMode::InBody:
</span><span class="cx">     case InsertionMode::InCell:
</span><span class="cx">     case InsertionMode::InCaption:
</span><span class="lines">@@ -2702,7 +2702,7 @@
</span><span class="cx">         ASSERT(m_tree.currentNode()-&gt;hasTagName(colgroupTag));
</span><span class="cx"> #endif
</span><span class="cx">         processColgroupEndTagForInColumnGroup();
</span><del>-        // Fall through
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case InsertionMode::InFrameset:
</span><span class="cx">     case InsertionMode::InTable:
</span><span class="cx">     case InsertionMode::InTableBody:
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreloadercacheCachedFontcpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/loader/cache/CachedFont.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/loader/cache/CachedFont.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/loader/cache/CachedFont.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -33,7 +33,6 @@
</span><span class="cx"> #include &quot;FontCustomPlatformData.h&quot;
</span><span class="cx"> #include &quot;FontPlatformData.h&quot;
</span><span class="cx"> #include &quot;MemoryCache.h&quot;
</span><del>-#include &quot;OpenTypeSanitizer.h&quot;
</del><span class="cx"> #include &quot;ResourceBuffer.h&quot;
</span><span class="cx"> #include &quot;SharedBuffer.h&quot;
</span><span class="cx"> #include &quot;TextResourceDecoder.h&quot;
</span><span class="lines">@@ -54,7 +53,7 @@
</span><span class="cx"> CachedFont::CachedFont(const ResourceRequest&amp; resourceRequest)
</span><span class="cx">     : CachedResource(resourceRequest, FontResource)
</span><span class="cx">     , m_loadInitiated(false)
</span><del>-    , m_hasCreatedFontData(false)
</del><ins>+    , m_hasCreatedFontDataWrappingResource(false)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -98,13 +97,10 @@
</span><span class="cx">         SharedBuffer* buffer = m_data.get()-&gt;sharedBuffer();
</span><span class="cx">         ASSERT(buffer);
</span><span class="cx"> 
</span><del>-#if USE(OPENTYPE_SANITIZER)
-        OpenTypeSanitizer sanitizer(buffer);
-        RefPtr&lt;SharedBuffer&gt; transcodeBuffer = sanitizer.sanitize();
-        buffer = transcodeBuffer.get();
-#else
</del><span class="cx">         RefPtr&lt;SharedBuffer&gt; sfntBuffer;
</span><del>-        if (isWOFF(buffer)) {
</del><ins>+
+        bool fontIsWOFF = isWOFF(buffer);
+        if (fontIsWOFF) {
</ins><span class="cx">             Vector&lt;char&gt; sfnt;
</span><span class="cx">             if (convertWOFFToSfnt(buffer, sfnt)) {
</span><span class="cx">                 sfntBuffer = SharedBuffer::adoptVector(sfnt);
</span><span class="lines">@@ -112,11 +108,10 @@
</span><span class="cx">             } else
</span><span class="cx">                 buffer = nullptr;
</span><span class="cx">         }
</span><del>-#endif
</del><span class="cx"> 
</span><span class="cx">         m_fontData = buffer ? createFontCustomPlatformData(*buffer) : nullptr;
</span><span class="cx">         if (m_fontData)
</span><del>-            m_hasCreatedFontData = true;
</del><ins>+            m_hasCreatedFontDataWrappingResource = !fontIsWOFF;
</ins><span class="cx">         else
</span><span class="cx">             setStatus(DecodeError);
</span><span class="cx">     }
</span><span class="lines">@@ -199,11 +194,11 @@
</span><span class="cx"> 
</span><span class="cx"> bool CachedFont::mayTryReplaceEncodedData() const
</span><span class="cx"> {
</span><del>-    // If the FontCustomPlatformData has ever been constructed then it still might be in use somewhere.
</del><ins>+    // If a FontCustomPlatformData has ever been constructed to wrap the internal resource buffer then it still might be in use somewhere.
</ins><span class="cx">     // That platform font object might directly reference the encoded data buffer behind this CachedFont,
</span><span class="cx">     // so replacing it is unsafe.
</span><span class="cx"> 
</span><del>-    return !m_hasCreatedFontData;
</del><ins>+    return !m_hasCreatedFontDataWrappingResource;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreloadercacheCachedFonth"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/loader/cache/CachedFont.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/loader/cache/CachedFont.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/loader/cache/CachedFont.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -69,7 +69,7 @@
</span><span class="cx"> 
</span><span class="cx">     std::unique_ptr&lt;FontCustomPlatformData&gt; m_fontData;
</span><span class="cx">     bool m_loadInitiated;
</span><del>-    bool m_hasCreatedFontData;
</del><ins>+    bool m_hasCreatedFontDataWrappingResource;
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(SVG_FONTS)
</span><span class="cx">     RefPtr&lt;SVGDocument&gt; m_externalSVGDocument;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreloadercacheCachedResourceLoadercpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/loader/cache/CachedResourceLoader.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/loader/cache/CachedResourceLoader.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/loader/cache/CachedResourceLoader.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -443,7 +443,7 @@
</span><span class="cx">     switch (policy) {
</span><span class="cx">     case Reload:
</span><span class="cx">         memoryCache()-&gt;remove(resource.get());
</span><del>-        // Fall through
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case Load:
</span><span class="cx">         resource = loadResource(type, request, request.charset());
</span><span class="cx">         break;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorepageEventSourcecpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/page/EventSource.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/page/EventSource.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/page/EventSource.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -336,6 +336,7 @@
</span><span class="cx">                 break;
</span><span class="cx">             case '\r':
</span><span class="cx">                 m_discardTrailingNewline = true;
</span><ins>+                FALLTHROUGH;
</ins><span class="cx">             case '\n':
</span><span class="cx">                 lineLength = i - bufPos;
</span><span class="cx">                 break;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorepagescrollingScrollingTreecpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/page/scrolling/ScrollingTree.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/page/scrolling/ScrollingTree.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/page/scrolling/ScrollingTree.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2012, 2013, 2014 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2012, 2013 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -48,7 +48,6 @@
</span><span class="cx">     , m_mainFramePinnedToTheBottom(false)
</span><span class="cx">     , m_mainFrameIsRubberBanding(false)
</span><span class="cx">     , m_scrollPinningBehavior(DoNotPin)
</span><del>-    , m_latchedNode(0)
</del><span class="cx">     , m_scrollingPerformanceLoggingEnabled(false)
</span><span class="cx">     , m_isHandlingProgrammaticScroll(false)
</span><span class="cx"> {
</span><span class="lines">@@ -60,14 +59,10 @@
</span><span class="cx"> 
</span><span class="cx"> bool ScrollingTree::shouldHandleWheelEventSynchronously(const PlatformWheelEvent&amp; wheelEvent)
</span><span class="cx"> {
</span><del>-    // This method is invoked by the event handling thread
</del><span class="cx">     MutexLocker lock(m_mutex);
</span><span class="cx"> 
</span><span class="cx">     if (m_hasWheelEventHandlers)
</span><span class="cx">         return true;
</span><del>-    
-    if (hasLatchedNode())
-        return false;
</del><span class="cx"> 
</span><span class="cx">     if (!m_nonFastScrollableRegion.isEmpty()) {
</span><span class="cx">         // FIXME: This is not correct for non-default scroll origins.
</span><span class="lines">@@ -179,18 +174,14 @@
</span><span class="cx"> 
</span><span class="cx"> void ScrollingTree::removeDestroyedNodes(const ScrollingStateTree&amp; stateTree)
</span><span class="cx"> {
</span><del>-    for (const auto&amp; removedNode : stateTree.removedNodes()) {
-        ScrollingTreeNode* node = m_nodeMap.take(removedNode);
-        if (!node)
-            continue;
-
</del><ins>+    const Vector&lt;ScrollingNodeID&gt;&amp; removedNodes = stateTree.removedNodes();
+    size_t size = removedNodes.size();
+    for (size_t i = 0; i &lt; size; ++i) {
+        ScrollingTreeNode* node = m_nodeMap.take(removedNodes[i]);
</ins><span class="cx">         // Never destroy the root node. There will be a new root node in the state tree, and we will
</span><span class="cx">         // associate it with our existing root node in updateTreeFromStateNode().
</span><del>-        if (node-&gt;parent())
</del><ins>+        if (node &amp;&amp; node-&gt;parent())
</ins><span class="cx">             m_rootNode-&gt;removeChild(node);
</span><del>-
-        if (node-&gt;scrollingNodeID() == m_latchedNode)
-            clearLatchedNode();
</del><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -324,24 +315,6 @@
</span><span class="cx">     return m_scrollingPerformanceLoggingEnabled;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ScrollingNodeID ScrollingTree::latchedNode()
-{
-    MutexLocker locker(m_mutex);
-    return m_latchedNode;
-}
-
-void ScrollingTree::setLatchedNode(ScrollingNodeID node)
-{
-    MutexLocker locker(m_mutex);
-    m_latchedNode = node;
-}
-
-void ScrollingTree::clearLatchedNode()
-{
-    MutexLocker locker(m_mutex);
-    m_latchedNode = 0;
-}
-
</del><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(ASYNC_SCROLLING)
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorepagescrollingScrollingTreeh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/page/scrolling/ScrollingTree.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/page/scrolling/ScrollingTree.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/page/scrolling/ScrollingTree.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2012, 2013, 2014 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2012, 2013 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -99,12 +99,6 @@
</span><span class="cx"> 
</span><span class="cx">     ScrollingTreeScrollingNode* rootNode() const { return m_rootNode.get(); }
</span><span class="cx"> 
</span><del>-    ScrollingNodeID latchedNode();
-    void setLatchedNode(ScrollingNodeID);
-    void clearLatchedNode();
-
-    bool hasLatchedNode() const { return m_latchedNode; }
-
</del><span class="cx"> protected:
</span><span class="cx">     void setMainFrameScrollPosition(IntPoint);
</span><span class="cx">     virtual void handleWheelEvent(const PlatformWheelEvent&amp;);
</span><span class="lines">@@ -138,7 +132,6 @@
</span><span class="cx">     bool m_mainFramePinnedToTheBottom;
</span><span class="cx">     bool m_mainFrameIsRubberBanding;
</span><span class="cx">     ScrollPinningBehavior m_scrollPinningBehavior;
</span><del>-    ScrollingNodeID m_latchedNode;
</del><span class="cx"> 
</span><span class="cx">     bool m_scrollingPerformanceLoggingEnabled;
</span><span class="cx">     
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorepagescrollingmacScrollingTreeScrollingNodeMacmm"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2012, 2014 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2012 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -128,22 +128,12 @@
</span><span class="cx">         updateMainFramePinState(scrollPosition());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static bool shouldConsiderLatching(const PlatformWheelEvent&amp; wheelEvent)
-{
-    return wheelEvent.phase() == PlatformWheelEventPhaseBegan
-        || wheelEvent.phase() == PlatformWheelEventPhaseMayBegin;
-}
-
</del><span class="cx"> void ScrollingTreeScrollingNodeMac::handleWheelEvent(const PlatformWheelEvent&amp; wheelEvent)
</span><span class="cx"> {
</span><span class="cx">     if (!canHaveScrollbars())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     m_scrollElasticityController.handleWheelEvent(wheelEvent);
</span><del>-
-    if (shouldConsiderLatching(wheelEvent))
-        scrollingTree().setLatchedNode(scrollingNodeID());
-
</del><span class="cx">     scrollingTree().handleWheelEventPhase(wheelEvent.phase());
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreplatformColorDatagperf"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/platform/ColorData.gperf (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/platform/ColorData.gperf        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/platform/ColorData.gperf        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -6,6 +6,7 @@
</span><span class="cx"> #pragma clang diagnostic push
</span><span class="cx"> #pragma clang diagnostic ignored &quot;-Wunknown-pragmas&quot;
</span><span class="cx"> #pragma clang diagnostic ignored &quot;-Wdeprecated-register&quot;
</span><ins>+#pragma clang diagnostic ignored &quot;-Wimplicit-fallthrough&quot;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreplatformDateComponentscpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/platform/DateComponents.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/platform/DateComponents.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/platform/DateComponents.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -689,7 +689,9 @@
</span><span class="cx">     switch (effectiveFormat) {
</span><span class="cx">     default:
</span><span class="cx">         ASSERT_NOT_REACHED();
</span><del>-        // Fallback to None.
</del><ins>+#if ASSERT_DISABLED
+        FALLTHROUGH; // To None.
+#endif
</ins><span class="cx">     case None:
</span><span class="cx">         return String::format(&quot;%02d:%02d&quot;, m_hour, m_minute);
</span><span class="cx">     case Second:
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreplatformDecimalcpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/platform/Decimal.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/platform/Decimal.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/platform/Decimal.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -753,6 +753,8 @@
</span><span class="cx">                 state = StateDotDigit;
</span><span class="cx">                 break;
</span><span class="cx">             }
</span><ins>+            // FIXME: &lt;http://webkit.org/b/127667&gt; Decimal::fromString's EBNF documentation does not match implementation
+            FALLTHROUGH;
</ins><span class="cx"> 
</span><span class="cx">         case StateDotDigit:
</span><span class="cx">             if (ch &gt;= '0' &amp;&amp; ch &lt;= '9') {
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreplatformaudioiosMediaSessionManagerIOSmm"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.mm (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.mm        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.mm        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -73,6 +73,7 @@
</span><span class="cx">     :MediaSessionManager()
</span><span class="cx">     , m_objcObserver(adoptNS([[WebMediaSessionHelper alloc] initWithCallback:this]))
</span><span class="cx"> {
</span><ins>+    resetRestrictions();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void MediaSessionManageriOS::resetRestrictions()
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreplatformgraphicsWOFFFileFormatcpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/platform/graphics/WOFFFileFormat.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/platform/graphics/WOFFFileFormat.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/platform/graphics/WOFFFileFormat.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -27,8 +27,6 @@
</span><span class="cx"> #include &quot;WOFFFileFormat.h&quot;
</span><span class="cx"> #include &lt;zlib.h&gt;
</span><span class="cx"> 
</span><del>-#if !USE(OPENTYPE_SANITIZER)
-
</del><span class="cx"> #include &quot;SharedBuffer.h&quot;
</span><span class="cx"> #include &lt;wtf/ByteOrder.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -219,5 +217,3 @@
</span><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> } // namespace WebCore
</span><del>-
-#endif // !USE(OPENTYPE_SANITIZER)
</del></span></pre></div>
<a id="branchesjsCStackSourceWebCoreplatformgraphicsWOFFFileFormath"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/platform/graphics/WOFFFileFormat.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/platform/graphics/WOFFFileFormat.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/platform/graphics/WOFFFileFormat.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -26,8 +26,6 @@
</span><span class="cx"> #ifndef WOFFFileFormat_h
</span><span class="cx"> #define WOFFFileFormat_h
</span><span class="cx"> 
</span><del>-#if !USE(OPENTYPE_SANITIZER)
-
</del><span class="cx"> #include &lt;wtf/Vector.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -43,6 +41,4 @@
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><del>-#endif // !USE(OPENTYPE_SANITIZER)
-
</del><span class="cx"> #endif // WOFFFileFormat_h
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreplatformgraphicsavfoundationMediaPlayerPrivateAVFoundationcpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -538,6 +538,7 @@
</span><span class="cx">                 // If the readyState is already HaveEnoughData, don't go lower because of this state change.
</span><span class="cx">                 if (m_readyState == MediaPlayer::HaveEnoughData)
</span><span class="cx">                     break;
</span><ins>+                FALLTHROUGH;
</ins><span class="cx"> 
</span><span class="cx">             case MediaPlayerAVPlayerItemStatusPlaybackBufferEmpty:
</span><span class="cx">                 if (maxTimeLoaded() &gt; currentTime())
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateAVFoundationObjCh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -116,6 +116,8 @@
</span><span class="cx"> private:
</span><span class="cx">     MediaPlayerPrivateAVFoundationObjC(MediaPlayer*);
</span><span class="cx"> 
</span><ins>+    WeakPtr&lt;MediaPlayerPrivateAVFoundationObjC&gt; createWeakPtr() { return m_weakPtrFactory.createWeakPtr(); }
+
</ins><span class="cx">     // engine support
</span><span class="cx">     static PassOwnPtr&lt;MediaPlayerPrivateInterface&gt; create(MediaPlayer*);
</span><span class="cx">     static void getSupportedTypes(HashSet&lt;String&gt;&amp; types);
</span><span class="lines">@@ -215,6 +217,8 @@
</span><span class="cx">     void updateVideoTracks();
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+    WeakPtrFactory&lt;MediaPlayerPrivateAVFoundationObjC&gt; m_weakPtrFactory;
+
</ins><span class="cx">     RetainPtr&lt;AVURLAsset&gt; m_avAsset;
</span><span class="cx">     RetainPtr&lt;AVPlayer&gt; m_avPlayer;
</span><span class="cx">     RetainPtr&lt;AVPlayerItem&gt; m_avPlayerItem;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateAVFoundationObjCmm"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -274,6 +274,7 @@
</span><span class="cx"> 
</span><span class="cx"> MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC(MediaPlayer* player)
</span><span class="cx">     : MediaPlayerPrivateAVFoundation(player)
</span><ins>+    , m_weakPtrFactory(this)
</ins><span class="cx">     , m_objcObserver(adoptNS([[WebCoreAVFMovieObserver alloc] initWithCallback:this]))
</span><span class="cx">     , m_videoFrameHasDrawn(false)
</span><span class="cx">     , m_haveCheckedPlayability(false)
</span><span class="lines">@@ -426,7 +427,11 @@
</span><span class="cx">     if (!m_avPlayer || m_videoLayer)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    callOnMainThread([this] {
</del><ins>+    auto weakThis = createWeakPtr();
+    callOnMainThread([this, weakThis] {
+        if (!weakThis)
+            return;
+
</ins><span class="cx">         if (!m_avPlayer || m_videoLayer)
</span><span class="cx">             return;
</span><span class="cx"> 
</span><span class="lines">@@ -693,10 +698,10 @@
</span><span class="cx">     CMTime cmBefore = CMTimeMakeWithSeconds(negativeTolerance, 600);
</span><span class="cx">     CMTime cmAfter = CMTimeMakeWithSeconds(positiveTolerance, 600);
</span><span class="cx"> 
</span><del>-    __block auto weakThis = createWeakPtr();
</del><ins>+    auto weakThis = createWeakPtr();
</ins><span class="cx"> 
</span><span class="cx">     [m_avPlayerItem.get() seekToTime:cmTime toleranceBefore:cmBefore toleranceAfter:cmAfter completionHandler:^(BOOL finished) {
</span><del>-        dispatch_async(dispatch_get_main_queue(), ^{
</del><ins>+        callOnMainThread([weakThis, finished] {
</ins><span class="cx">             auto _this = weakThis.get();
</span><span class="cx">             if (!_this)
</span><span class="cx">                 return;
</span><span class="lines">@@ -2029,10 +2034,13 @@
</span><span class="cx">     if (!m_callback)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    dispatch_async(dispatch_get_main_queue(), ^{
-        if (!m_callback)
</del><ins>+    RetainPtr&lt;WebCoreAVFMovieObserver&gt; strongSelf = self;
+    RetainPtr&lt;NSArray&gt; strongStrings = strings;
+    callOnMainThread([strongSelf, strongStrings, itemTime] {
+        MediaPlayerPrivateAVFoundationObjC* callback = strongSelf-&gt;m_callback;
+        if (!callback)
</ins><span class="cx">             return;
</span><del>-        m_callback-&gt;processCue(strings, CMTimeGetSeconds(itemTime));
</del><ins>+        callback-&gt;processCue(strongStrings.get(), CMTimeGetSeconds(itemTime));
</ins><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -2043,10 +2051,10 @@
</span><span class="cx">     if (!m_callback)
</span><span class="cx">         return;
</span><span class="cx">     
</span><del>-    dispatch_async(dispatch_get_main_queue(), ^{
-        if (!m_callback)
-            return;
-        m_callback-&gt;flushCues();
</del><ins>+    RetainPtr&lt;WebCoreAVFMovieObserver&gt; strongSelf = self;
+    callOnMainThread([strongSelf] {
+        if (MediaPlayerPrivateAVFoundationObjC* callback = strongSelf-&gt;m_callback)
+            callback-&gt;flushCues();
</ins><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="lines">@@ -2071,14 +2079,17 @@
</span><span class="cx">     if (!m_callback)
</span><span class="cx">         return NO;
</span><span class="cx"> 
</span><del>-    dispatch_async(dispatch_get_main_queue(), ^{
-        if (!m_callback) {
-            [loadingRequest finishLoadingWithError:nil];
</del><ins>+    RetainPtr&lt;WebCoreAVFLoaderDelegate&gt; strongSelf = self;
+    RetainPtr&lt;AVAssetResourceLoadingRequest&gt; strongRequest = loadingRequest;
+    callOnMainThread([strongSelf, strongRequest] {
+        MediaPlayerPrivateAVFoundationObjC* callback = strongSelf-&gt;m_callback;
+        if (!callback) {
+            [strongRequest finishLoadingWithError:nil];
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        if (!m_callback-&gt;shouldWaitForLoadingOfResource(loadingRequest))
-            [loadingRequest finishLoadingWithError:nil];
</del><ins>+        if (!callback-&gt;shouldWaitForLoadingOfResource(strongRequest.get()))
+            [strongRequest finishLoadingWithError:nil];
</ins><span class="cx">     });
</span><span class="cx"> 
</span><span class="cx">     return YES;
</span><span class="lines">@@ -2090,14 +2101,17 @@
</span><span class="cx">     if (!m_callback)
</span><span class="cx">         return NO;
</span><span class="cx"> 
</span><del>-    dispatch_async(dispatch_get_main_queue(), ^{
-        if (!m_callback) {
-            [[challenge sender] cancelAuthenticationChallenge:challenge];
</del><ins>+    RetainPtr&lt;WebCoreAVFLoaderDelegate&gt; strongSelf = self;
+    RetainPtr&lt;NSURLAuthenticationChallenge&gt; strongChallenge = challenge;
+    callOnMainThread([strongSelf, strongChallenge] {
+        MediaPlayerPrivateAVFoundationObjC* callback = strongSelf-&gt;m_callback;
+        if (!callback) {
+            [[strongChallenge sender] cancelAuthenticationChallenge:strongChallenge.get()];
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        if (!m_callback-&gt;shouldWaitForResponseToAuthenticationChallenge(challenge))
-            [[challenge sender] cancelAuthenticationChallenge:challenge];
</del><ins>+        if (!callback-&gt;shouldWaitForResponseToAuthenticationChallenge(strongChallenge.get()))
+            [[strongChallenge sender] cancelAuthenticationChallenge:strongChallenge.get()];
</ins><span class="cx">     });
</span><span class="cx"> 
</span><span class="cx">     return YES;
</span><span class="lines">@@ -2109,9 +2123,12 @@
</span><span class="cx">     if (!m_callback)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    dispatch_async(dispatch_get_main_queue(), ^{
-        if (m_callback)
-            m_callback-&gt;didCancelLoadingRequest(loadingRequest);
</del><ins>+    RetainPtr&lt;WebCoreAVFLoaderDelegate&gt; strongSelf = self;
+    RetainPtr&lt;AVAssetResourceLoadingRequest&gt; strongRequest = loadingRequest;
+    callOnMainThread([strongSelf, strongRequest] {
+        MediaPlayerPrivateAVFoundationObjC* callback = strongSelf-&gt;m_callback;
+        if (callback)
+            callback-&gt;didCancelLoadingRequest(strongRequest.get());
</ins><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreplatformgraphicscgGraphicsContextCGcpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -1752,6 +1752,7 @@
</span><span class="cx">             break;
</span><span class="cx">         case BlendModeLuminosity:
</span><span class="cx">             target = kCGBlendModeLuminosity;
</span><ins>+            break;
</ins><span class="cx">         default:
</span><span class="cx">             break;
</span><span class="cx">         }
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreplatformgraphicsgstreamerMediaPlayerPrivateGStreamercpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -1257,7 +1257,7 @@
</span><span class="cx">             gst_iterator_resync(iter);
</span><span class="cx">             break;
</span><span class="cx">         case GST_ITERATOR_ERROR:
</span><del>-            // Fall through.
</del><ins>+            FALLTHROUGH;
</ins><span class="cx">         case GST_ITERATOR_DONE:
</span><span class="cx">             done = true;
</span><span class="cx">             break;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreplatformgraphicsmacMediaPlayerProxyh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/platform/graphics/mac/MediaPlayerProxy.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/platform/graphics/mac/MediaPlayerProxy.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/platform/graphics/mac/MediaPlayerProxy.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -26,7 +26,7 @@
</span><span class="cx"> #ifndef MediaPlayerProxy_h
</span><span class="cx"> #define MediaPlayerProxy_h
</span><span class="cx"> 
</span><del>-#if PLATFORM(IOS)
</del><ins>+#if TARGET_OS_IPHONE
</ins><span class="cx"> #if defined(__OBJC__)
</span><span class="cx"> #import &lt;Foundation/NSGeometry.h&gt;
</span><span class="cx"> #endif
</span><span class="lines">@@ -41,8 +41,13 @@
</span><span class="cx"> #endif // !defined(OBJC_CLASS)
</span><span class="cx"> 
</span><span class="cx"> OBJC_CLASS CALayer;
</span><del>-#endif // PLATFORM(IOS)
</del><span class="cx"> 
</span><ins>+#endif // TARGET_OS_IPHONE
+
+#if !defined(ENABLE_IOS_AIRPLAY)
+#define ENABLE_IOS_AIRPLAY TARGET_OS_IPHONE
+#endif
+
</ins><span class="cx"> OBJC_CLASS WebMediaPlayerProxy;
</span><span class="cx"> 
</span><span class="cx"> enum MediaPlayerProxyNotificationType {
</span><span class="lines">@@ -80,7 +85,7 @@
</span><span class="cx">     MediaPlayerRequestBeginPlayback,
</span><span class="cx">     MediaPlayerRequestPausePlayback,
</span><span class="cx"> 
</span><del>-#if ENABLE(IOS_AIRPLAY)
</del><ins>+#if ENABLE_IOS_AIRPLAY
</ins><span class="cx">     MediaPlayerNotificationCurrentPlaybackTargetIsWirelessChanged,
</span><span class="cx">     MediaPlayerNotificationPlaybackTargetAvailabilityChanged,
</span><span class="cx"> #endif
</span><span class="lines">@@ -104,7 +109,7 @@
</span><span class="cx"> - (void)_enterFullScreen;
</span><span class="cx"> - (void)_exitFullScreen;
</span><span class="cx"> 
</span><del>-#if ENABLE(IOS_AIRPLAY)
</del><ins>+#if ENABLE_IOS_AIRPLAY
</ins><span class="cx"> - (BOOL)_isCurrentPlaybackTargetWireless;
</span><span class="cx"> - (void)_showPlaybackTargetPicker;
</span><span class="cx"> 
</span><span class="lines">@@ -157,7 +162,7 @@
</span><span class="cx"> 
</span><span class="cx"> - (NSArray *)_mimeTypes;
</span><span class="cx"> 
</span><del>-#if PLATFORM(IOS)
</del><ins>+#if TARGET_OS_IPHONE
</ins><span class="cx"> - (void)_setDelegate:(id)delegate;
</span><span class="cx"> - (void)_setOutOfBandTextTracks:(NSArray *)textTracks;
</span><span class="cx"> - (void)_setSelectedTextTrack:(NSNumber *)textTrack;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreplatformgraphicsopentypeOpenTypeSanitizercpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/platform/graphics/opentype/OpenTypeSanitizer.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/platform/graphics/opentype/OpenTypeSanitizer.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/platform/graphics/opentype/OpenTypeSanitizer.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -1,68 +0,0 @@
</span><del>-/*
- * Copyright (C) 2009 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#if USE(OPENTYPE_SANITIZER)
-#include &quot;OpenTypeSanitizer.h&quot;
-
-#include &quot;SharedBuffer.h&quot;
-#include &quot;opentype-sanitiser.h&quot;
-#include &quot;ots-memory-stream.h&quot;
-
-namespace WebCore {
-
-PassRefPtr&lt;SharedBuffer&gt; OpenTypeSanitizer::sanitize()
-{
-    if (!m_buffer)
-        return 0;
-
-    // This is the largest web font size which we'll try to transcode.
-    static const size_t maxWebFontSize = 30 * 1024 * 1024; // 30 MB
-    if (m_buffer-&gt;size() &gt; maxWebFontSize)
-        return 0;
-
-    // A transcoded font is usually smaller than an original font.
-    // However, it can be slightly bigger than the original one due to
-    // name table replacement and/or padding for glyf table.
-    //
-    // With WOFF fonts, however, we'll be decompressing, so the result can be
-    // much larger than the original.
-
-    ots::ExpandingMemoryStream output(m_buffer-&gt;size(), maxWebFontSize);
-    if (!ots::Process(&amp;output, reinterpret_cast&lt;const uint8_t*&gt;(m_buffer-&gt;data()), m_buffer-&gt;size()))
-        return 0;
-
-    const size_t transcodeLen = output.Tell();
-    return SharedBuffer::create(static_cast&lt;unsigned char*&gt;(output.get()), transcodeLen);
-}
-
-} // namespace WebCore
-
-#endif // USE(OPENTYPE_SANITIZER)
</del></span></pre></div>
<a id="branchesjsCStackSourceWebCoreplatformgraphicsopentypeOpenTypeSanitizerh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/platform/graphics/opentype/OpenTypeSanitizer.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/platform/graphics/opentype/OpenTypeSanitizer.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/platform/graphics/opentype/OpenTypeSanitizer.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -1,57 +0,0 @@
</span><del>-/*
- * Copyright (C) 2009 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef OpenTypeSanitizer_h
-#define OpenTypeSanitizer_h
-
-#if USE(OPENTYPE_SANITIZER)
-#include &lt;wtf/Forward.h&gt;
-
-namespace WebCore {
-
-class SharedBuffer;
-
-class OpenTypeSanitizer {
-public:
-    explicit OpenTypeSanitizer(SharedBuffer* buffer)
-        : m_buffer(buffer)
-    {
-    }
-
-    PassRefPtr&lt;SharedBuffer&gt; sanitize();
-
-private:
-    SharedBuffer* const m_buffer;
-};
-
-} // namespace WebCore
-
-#endif // USE(OPENTYPE_SANITIZER)
-#endif // OpenTypeSanitizer_h
</del></span></pre></div>
<a id="branchesjsCStackSourceWebCoreplatformgraphicswinFullScreenControllercpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/platform/graphics/win/FullScreenController.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/platform/graphics/win/FullScreenController.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/platform/graphics/win/FullScreenController.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -94,7 +94,7 @@
</span><span class="cx">             m_controller-&gt;exitFullScreen();
</span><span class="cx">             break;
</span><span class="cx">         }
</span><del>-        // Fall through.
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     default:
</span><span class="cx">         lResult = ::DefWindowProc(hwnd, msg, wParam, lParam);
</span><span class="cx">     }
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreplatformiosSystemMemoryh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/platform/ios/SystemMemory.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/platform/ios/SystemMemory.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/platform/ios/SystemMemory.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -29,7 +29,7 @@
</span><span class="cx"> #ifndef SystemMemory_h
</span><span class="cx"> #define SystemMemory_h
</span><span class="cx"> 
</span><del>-#if PLATFORM(IOS)
</del><ins>+#if TARGET_OS_IPHONE
</ins><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> int systemMemoryLevel(); // In [0, 100]
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreplatformioswakWKGraphicsh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/platform/ios/wak/WKGraphics.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/platform/ios/wak/WKGraphics.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/platform/ios/wak/WKGraphics.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -65,7 +65,7 @@
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx"> 
</span><del>-#if PLATFORM(IOS_SIMULATOR)
</del><ins>+#if TARGET_IPHONE_SIMULATOR
</ins><span class="cx"> #pragma clang diagnostic push
</span><span class="cx"> #if defined(__has_warning) &amp;&amp; __has_warning(&quot;-Wunused-private-field&quot;)
</span><span class="cx"> #pragma clang diagnostic ignored &quot;-Wunused-private-field&quot;
</span><span class="lines">@@ -74,7 +74,7 @@
</span><span class="cx">     CGContextRef m_context;
</span><span class="cx">     bool m_useOrientationDependentFontAntialiasing;
</span><span class="cx">     CGFontAntialiasingStyle m_oldAntialiasingStyle;
</span><del>-#if PLATFORM(IOS_SIMULATOR)
</del><ins>+#if TARGET_IPHONE_SIMULATOR
</ins><span class="cx"> #pragma clang diagnostic pop
</span><span class="cx"> #endif
</span><span class="cx"> };
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreplatformtextBidiResolverh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/platform/text/BidiResolver.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/platform/text/BidiResolver.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/platform/text/BidiResolver.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -514,7 +514,7 @@
</span><span class="cx">         // ignore these
</span><span class="cx">         break;
</span><span class="cx">     case U_EUROPEAN_NUMBER:
</span><del>-        // fall through
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     default:
</span><span class="cx">         m_status.last = dirCurrent;
</span><span class="cx">     }
</span><span class="lines">@@ -687,6 +687,7 @@
</span><span class="cx">                         }
</span><span class="cx">                         appendRun();
</span><span class="cx">                     }
</span><ins>+                    break;
</ins><span class="cx">                 default:
</span><span class="cx">                     break;
</span><span class="cx">             }
</span><span class="lines">@@ -702,6 +703,7 @@
</span><span class="cx">                 case U_EUROPEAN_NUMBER:
</span><span class="cx">                 case U_ARABIC_NUMBER:
</span><span class="cx">                     appendRun();
</span><ins>+                    FALLTHROUGH;
</ins><span class="cx">                 case U_RIGHT_TO_LEFT:
</span><span class="cx">                 case U_RIGHT_TO_LEFT_ARABIC:
</span><span class="cx">                     break;
</span><span class="lines">@@ -724,6 +726,7 @@
</span><span class="cx">                             m_eor = m_last;
</span><span class="cx">                         appendRun();
</span><span class="cx">                     }
</span><ins>+                    break;
</ins><span class="cx">                 default:
</span><span class="cx">                     break;
</span><span class="cx">             }
</span><span class="lines">@@ -753,6 +756,7 @@
</span><span class="cx">                     case U_COMMON_NUMBER_SEPARATOR:
</span><span class="cx">                         if (m_status.eor == U_EUROPEAN_NUMBER)
</span><span class="cx">                             break;
</span><ins>+                        FALLTHROUGH;
</ins><span class="cx">                     case U_EUROPEAN_NUMBER_TERMINATOR:
</span><span class="cx">                     case U_BOUNDARY_NEUTRAL:
</span><span class="cx">                     case U_BLOCK_SEPARATOR:
</span><span class="lines">@@ -790,6 +794,7 @@
</span><span class="cx">                             // Begin a new EN run.
</span><span class="cx">                             m_direction = U_EUROPEAN_NUMBER;
</span><span class="cx">                         }
</span><ins>+                        break;
</ins><span class="cx">                     default:
</span><span class="cx">                         break;
</span><span class="cx">                 }
</span><span class="lines">@@ -799,6 +804,7 @@
</span><span class="cx">                     m_direction = U_LEFT_TO_RIGHT;
</span><span class="cx">                 break;
</span><span class="cx">             }
</span><ins>+            FALLTHROUGH;
</ins><span class="cx">         case U_ARABIC_NUMBER:
</span><span class="cx">             dirCurrent = U_ARABIC_NUMBER;
</span><span class="cx">             switch (m_status.last) {
</span><span class="lines">@@ -817,6 +823,7 @@
</span><span class="cx">                 case U_COMMON_NUMBER_SEPARATOR:
</span><span class="cx">                     if (m_status.eor == U_ARABIC_NUMBER)
</span><span class="cx">                         break;
</span><ins>+                    FALLTHROUGH;
</ins><span class="cx">                 case U_EUROPEAN_NUMBER_SEPARATOR:
</span><span class="cx">                 case U_EUROPEAN_NUMBER_TERMINATOR:
</span><span class="cx">                 case U_BOUNDARY_NEUTRAL:
</span><span class="lines">@@ -835,6 +842,7 @@
</span><span class="cx">                         m_direction = m_status.lastStrong == U_LEFT_TO_RIGHT ? U_LEFT_TO_RIGHT : U_RIGHT_TO_LEFT;
</span><span class="cx">                     m_eor = m_last;
</span><span class="cx">                     appendRun();
</span><ins>+                    break;
</ins><span class="cx">                 default:
</span><span class="cx">                     break;
</span><span class="cx">             }
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoreplatformtextwinLocaleWincpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/platform/text/win/LocaleWin.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/platform/text/win/LocaleWin.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/platform/text/win/LocaleWin.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -523,7 +523,8 @@
</span><span class="cx">     case NegativeFormatSpaceSignSuffix:
</span><span class="cx">         negativeSuffix = &quot; &quot; + negativeSign;
</span><span class="cx">         break;
</span><del>-    case NegativeFormatSignPrefix: // Fall through.
</del><ins>+    case NegativeFormatSignPrefix:
+        FALLTHROUGH;
</ins><span class="cx">     default:
</span><span class="cx">         negativePrefix = negativeSign;
</span><span class="cx">         break;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorerenderingAutoTableLayoutcpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/rendering/AutoTableLayout.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/rendering/AutoTableLayout.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/rendering/AutoTableLayout.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -116,6 +116,7 @@
</span><span class="cx">                         // which are not necessarily of the same type.
</span><span class="cx">                         if (cellLogicalWidth.value() &gt; columnLayout.logicalWidth.value())
</span><span class="cx">                             columnLayout.logicalWidth = cellLogicalWidth;
</span><ins>+                        break;
</ins><span class="cx">                     default:
</span><span class="cx">                         break;
</span><span class="cx">                     }
</span><span class="lines">@@ -309,10 +310,10 @@
</span><span class="cx">                     // legacy behaviour anyway. mozilla doesn't do this so I decided we don't neither.
</span><span class="cx">                     break;
</span><span class="cx">                 }
</span><del>-                // fall through
</del><ins>+                FALLTHROUGH;
</ins><span class="cx">             case Auto:
</span><span class="cx">                 haveAuto = true;
</span><del>-                // fall through
</del><ins>+                FALLTHROUGH;
</ins><span class="cx">             default:
</span><span class="cx">                 // If the column is a percentage width, do not let the spanning cell overwrite the
</span><span class="cx">                 // width value.  This caused a mis-rendering on amazon.com.
</span><span class="lines">@@ -520,7 +521,6 @@
</span><span class="cx">         case Fixed:
</span><span class="cx">             numFixed++;
</span><span class="cx">             totalFixed += m_layoutStruct[i].effectiveMaxLogicalWidth;
</span><del>-            // fall through
</del><span class="cx">             break;
</span><span class="cx">         case Auto:
</span><span class="cx">             if (m_layoutStruct[i].emptyCellsOnly)
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorerenderingPointerEventsHitRulescpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/rendering/PointerEventsHitRules.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/rendering/PointerEventsHitRules.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/rendering/PointerEventsHitRules.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -39,6 +39,7 @@
</span><span class="cx">             case PE_AUTO: // &quot;auto&quot; is like &quot;visiblePainted&quot; when in SVG content
</span><span class="cx">                 requireFill = true;
</span><span class="cx">                 requireStroke = true;
</span><ins>+                FALLTHROUGH;
</ins><span class="cx">             case PE_VISIBLE:
</span><span class="cx">                 requireVisible = true;
</span><span class="cx">                 canHitFill = true;
</span><span class="lines">@@ -55,6 +56,7 @@
</span><span class="cx">             case PE_PAINTED:
</span><span class="cx">                 requireFill = true;
</span><span class="cx">                 requireStroke = true;
</span><ins>+                FALLTHROUGH;
</ins><span class="cx">             case PE_ALL:
</span><span class="cx">                 canHitFill = true;
</span><span class="cx">                 canHitStroke = true;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorerenderingRenderBlockcpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/rendering/RenderBlock.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/rendering/RenderBlock.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/rendering/RenderBlock.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -1677,6 +1677,30 @@
</span><span class="cx">         flowThread-&gt;addRegionsVisualOverflowFromTheme(this);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+bool RenderBlock::isTopLayoutOverflowAllowed() const
+{
+    bool hasTopOverflow = RenderBox::isTopLayoutOverflowAllowed();
+    if (!hasColumns() || style().columnProgression() == NormalColumnProgression)
+        return hasTopOverflow;
+    
+    if (!(isHorizontalWritingMode() ^ !style().hasInlineColumnAxis()))
+        hasTopOverflow = !hasTopOverflow;
+
+    return hasTopOverflow;
+}
+
+bool RenderBlock::isLeftLayoutOverflowAllowed() const
+{
+    bool hasLeftOverflow = RenderBox::isLeftLayoutOverflowAllowed();
+    if (!hasColumns() || style().columnProgression() == NormalColumnProgression)
+        return hasLeftOverflow;
+    
+    if (isHorizontalWritingMode() ^ !style().hasInlineColumnAxis())
+        hasLeftOverflow = !hasLeftOverflow;
+
+    return hasLeftOverflow;
+}
+
</ins><span class="cx"> bool RenderBlock::expandsToEncloseOverhangingFloats() const
</span><span class="cx"> {
</span><span class="cx">     return isInlineBlockOrInlineTable() || isFloatingOrOutOfFlowPositioned() || hasOverflowClip() || (parent() &amp;&amp; parent()-&gt;isFlexibleBoxIncludingDeprecated())
</span><span class="lines">@@ -1846,25 +1870,6 @@
</span><span class="cx">     return newPosition - oldPosition;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RenderBlock::determineLogicalLeftPositionForChild(RenderBox&amp; child, ApplyLayoutDeltaMode applyDelta)
-{
-    LayoutUnit startPosition = borderStart() + paddingStart();
-    if (style().shouldPlaceBlockDirectionScrollbarOnLogicalLeft())
-        startPosition -= verticalScrollbarWidth();
-    LayoutUnit totalAvailableLogicalWidth = borderAndPaddingLogicalWidth() + availableLogicalWidth();
-
-    // Add in our start margin.
-    LayoutUnit childMarginStart = marginStartForChild(child);
-    LayoutUnit newPosition = startPosition + childMarginStart;
-        
-    // Some objects (e.g., tables, horizontal rules, overflow:auto blocks) avoid floats.  They need
-    // to shift over as necessary to dodge any floats that might get in the way.
-    if (child.avoidsFloats() &amp;&amp; containsFloats() &amp;&amp; !flowThreadContainingBlock())
-        newPosition += computeStartPositionDeltaForChildAvoidingFloats(child, marginStartForChild(child));
-
-    setLogicalLeftForChild(child, style().isLeftToRightDirection() ? newPosition : totalAvailableLogicalWidth - newPosition - logicalWidthForChild(child), applyDelta);
-}
-
</del><span class="cx"> void RenderBlock::setLogicalLeftForChild(RenderBox&amp; child, LayoutUnit logicalLeft, ApplyLayoutDeltaMode applyDelta)
</span><span class="cx"> {
</span><span class="cx">     if (isHorizontalWritingMode()) {
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorerenderingRenderBlockh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/rendering/RenderBlock.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/rendering/RenderBlock.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/rendering/RenderBlock.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -423,9 +423,13 @@
</span><span class="cx"> public:
</span><span class="cx">     virtual void computeOverflow(LayoutUnit oldClientAfterEdge, bool recomputeFloats = false);
</span><span class="cx">     void clearLayoutOverflow();
</span><ins>+    
+    bool isTopLayoutOverflowAllowed() const override;
+    bool isLeftLayoutOverflowAllowed() const override;
+
</ins><span class="cx"> protected:
</span><span class="cx">     virtual void addOverflowFromChildren();
</span><del>-    // FIXME-BLOCKFLOW: Remove virtualizaion when all callers have moved to RenderBlockFlow
</del><ins>+    // FIXME-BLOCKFLOW: Remove virtualization when all callers have moved to RenderBlockFlow
</ins><span class="cx">     virtual void addOverflowFromInlineChildren() { }
</span><span class="cx">     void addOverflowFromBlockChildren();
</span><span class="cx">     void addOverflowFromPositionedObjects();
</span><span class="lines">@@ -581,8 +585,6 @@
</span><span class="cx"> protected:
</span><span class="cx">     void dirtyForLayoutFromPercentageHeightDescendants();
</span><span class="cx">     
</span><del>-    void determineLogicalLeftPositionForChild(RenderBox&amp; child, ApplyLayoutDeltaMode = DoNotApplyLayoutDelta);
-    
</del><span class="cx">     virtual ColumnInfo::PaginationUnit paginationUnit() const;
</span><span class="cx"> 
</span><span class="cx"> protected:
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorerenderingRenderBlockFlowcpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/rendering/RenderBlockFlow.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/rendering/RenderBlockFlow.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/rendering/RenderBlockFlow.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -762,7 +762,25 @@
</span><span class="cx">     return LayoutUnit();
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void RenderBlockFlow::determineLogicalLeftPositionForChild(RenderBox&amp; child, ApplyLayoutDeltaMode applyDelta)
+{
+    LayoutUnit startPosition = borderStart() + paddingStart();
+    if (style().shouldPlaceBlockDirectionScrollbarOnLogicalLeft())
+        startPosition -= verticalScrollbarWidth();
+    LayoutUnit totalAvailableLogicalWidth = borderAndPaddingLogicalWidth() + availableLogicalWidth();
</ins><span class="cx"> 
</span><ins>+    // Add in our start margin.
+    LayoutUnit childMarginStart = marginStartForChild(child);
+    LayoutUnit newPosition = startPosition + childMarginStart;
+        
+    // Some objects (e.g., tables, horizontal rules, overflow:auto blocks) avoid floats. They need
+    // to shift over as necessary to dodge any floats that might get in the way.
+    if (child.avoidsFloats() &amp;&amp; containsFloats() &amp;&amp; !flowThreadContainingBlock())
+        newPosition += computeStartPositionDeltaForChildAvoidingFloats(child, marginStartForChild(child));
+
+    setLogicalLeftForChild(child, style().isLeftToRightDirection() ? newPosition : totalAvailableLogicalWidth - newPosition - logicalWidthForChild(child), applyDelta);
+}
+
</ins><span class="cx"> void RenderBlockFlow::adjustFloatingBlock(const MarginInfo&amp; marginInfo)
</span><span class="cx"> {
</span><span class="cx">     // The float should be positioned taking into account the bottom margin
</span><span class="lines">@@ -2352,6 +2370,7 @@
</span><span class="cx">         break;
</span><span class="cx">     case CBOTH:
</span><span class="cx">         newY = lowestFloatLogicalBottom();
</span><ins>+        break;
</ins><span class="cx">     default:
</span><span class="cx">         break;
</span><span class="cx">     }
</span><span class="lines">@@ -3646,5 +3665,29 @@
</span><span class="cx">     return 1;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+bool RenderBlockFlow::isTopLayoutOverflowAllowed() const
+{
+    bool hasTopOverflow = RenderBlock::isTopLayoutOverflowAllowed();
+    if (!multiColumnFlowThread() || style().columnProgression() == NormalColumnProgression)
+        return hasTopOverflow;
+    
+    if (!(isHorizontalWritingMode() ^ !style().hasInlineColumnAxis()))
+        hasTopOverflow = !hasTopOverflow;
+
+    return hasTopOverflow;
</ins><span class="cx"> }
</span><ins>+
+bool RenderBlockFlow::isLeftLayoutOverflowAllowed() const
+{
+    bool hasLeftOverflow = RenderBlock::isLeftLayoutOverflowAllowed();
+    if (!multiColumnFlowThread() || style().columnProgression() == NormalColumnProgression)
+        return hasLeftOverflow;
+    
+    if (isHorizontalWritingMode() ^ !style().hasInlineColumnAxis())
+        hasLeftOverflow = !hasLeftOverflow;
+
+    return hasLeftOverflow;
+}
+
+}
</ins><span class="cx"> // namespace WebCore
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorerenderingRenderBlockFlowh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/rendering/RenderBlockFlow.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/rendering/RenderBlockFlow.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/rendering/RenderBlockFlow.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -441,6 +441,9 @@
</span><span class="cx"> 
</span><span class="cx">     virtual LayoutUnit computedColumnWidth() const override;
</span><span class="cx">     virtual unsigned computedColumnCount() const override;
</span><ins>+    
+    bool isTopLayoutOverflowAllowed() const override;
+    bool isLeftLayoutOverflowAllowed() const override;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     // Called to lay out the legend for a fieldset or the ruby text of a ruby run. Also used by multi-column layout to handle
</span><span class="lines">@@ -483,6 +486,8 @@
</span><span class="cx">     bool hasOverhangingFloats() { return parent() &amp;&amp; !hasColumns() &amp;&amp; containsFloats() &amp;&amp; lowestFloatLogicalBottom() &gt; logicalHeight(); }
</span><span class="cx">     LayoutUnit getClearDelta(RenderBox&amp; child, LayoutUnit yPos);
</span><span class="cx"> 
</span><ins>+    void determineLogicalLeftPositionForChild(RenderBox&amp; child, ApplyLayoutDeltaMode = DoNotApplyLayoutDelta);
+    
</ins><span class="cx">     virtual bool hitTestFloats(const HitTestRequest&amp;, HitTestResult&amp;, const HitTestLocation&amp; locationInContainer, const LayoutPoint&amp; accumulatedOffset) override;
</span><span class="cx">     virtual bool hitTestInlineChildren(const HitTestRequest&amp;, HitTestResult&amp;, const HitTestLocation&amp; locationInContainer, const LayoutPoint&amp; accumulatedOffset, HitTestAction) override;
</span><span class="cx"> 
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorerenderingRenderBlockLineLayoutcpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/rendering/RenderBlockLineLayout.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/rendering/RenderBlockLineLayout.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/rendering/RenderBlockLineLayout.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -602,7 +602,7 @@
</span><span class="cx">             }
</span><span class="cx">             break;
</span><span class="cx">         }
</span><del>-        // Fall through
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case TASTART:
</span><span class="cx">         if (style().isLeftToRightDirection())
</span><span class="cx">             updateLogicalWidthForLeftAlignedBlock(style().isLeftToRightDirection(), trailingSpaceRun, logicalLeft, totalLogicalWidth, availableLogicalWidth);
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorerenderingRenderBoxcpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/rendering/RenderBox.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/rendering/RenderBox.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/rendering/RenderBox.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -2860,7 +2860,7 @@
</span><span class="cx">             if (cw &gt; 0 || (!cw &amp;&amp; (containerLogicalWidth.isFixed() || containerLogicalWidth.isPercent())))
</span><span class="cx">                 return adjustContentBoxLogicalWidthForBoxSizing(minimumValueForLength(logicalWidth, cw));
</span><span class="cx">         }
</span><del>-        // fall through
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">         case Intrinsic:
</span><span class="cx">         case MinIntrinsic:
</span><span class="cx">         case Auto:
</span><span class="lines">@@ -4307,23 +4307,9 @@
</span><span class="cx">         // Overflow is in the block's coordinate space and thus is flipped for horizontal-bt and vertical-rl 
</span><span class="cx">         // writing modes.  At this stage that is actually a simplification, since we can treat horizontal-tb/bt as the same
</span><span class="cx">         // and vertical-lr/rl as the same.
</span><del>-        bool hasTopOverflow = !style().isLeftToRightDirection() &amp;&amp; !isHorizontalWritingMode();
-        bool hasLeftOverflow = !style().isLeftToRightDirection() &amp;&amp; isHorizontalWritingMode();
-        if (isFlexibleBox() &amp;&amp; style().isReverseFlexDirection()) {
-            RenderFlexibleBox* flexibleBox = toRenderFlexibleBox(this);
-            if (flexibleBox-&gt;isHorizontalFlow())
-                hasLeftOverflow = true;
-            else
-                hasTopOverflow = true;
-        }
</del><ins>+        bool hasTopOverflow = isTopLayoutOverflowAllowed();
+        bool hasLeftOverflow = isLeftLayoutOverflowAllowed();
</ins><span class="cx"> 
</span><del>-        if (hasColumns() &amp;&amp; style().columnProgression() == ReverseColumnProgression) {
-            if (isHorizontalWritingMode() ^ !style().hasInlineColumnAxis())
-                hasLeftOverflow = !hasLeftOverflow;
-            else
-                hasTopOverflow = !hasTopOverflow;
-        }
-
</del><span class="cx">         if (!hasTopOverflow)
</span><span class="cx">             overflowRect.shiftYEdgeTo(std::max(overflowRect.y(), clientBox.y()));
</span><span class="cx">         else
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorerenderingRenderBoxh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/rendering/RenderBox.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/rendering/RenderBox.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/rendering/RenderBox.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -197,6 +197,9 @@
</span><span class="cx">     void addVisualOverflow(const LayoutRect&amp;);
</span><span class="cx">     void clearOverflow();
</span><span class="cx">     
</span><ins>+    virtual bool isTopLayoutOverflowAllowed() const { return !style().isLeftToRightDirection() &amp;&amp; !isHorizontalWritingMode(); }
+    virtual bool isLeftLayoutOverflowAllowed() const { return !style().isLeftToRightDirection() &amp;&amp; isHorizontalWritingMode(); }
+    
</ins><span class="cx">     void addVisualEffectOverflow();
</span><span class="cx">     LayoutRect applyVisualEffectOverflow(const LayoutRect&amp;) const;
</span><span class="cx">     void addOverflowFromChild(RenderBox* child) { addOverflowFromChild(child, child-&gt;locationOffset()); }
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorerenderingRenderBoxModelObjectcpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/rendering/RenderBoxModelObject.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/rendering/RenderBoxModelObject.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/rendering/RenderBoxModelObject.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -979,6 +979,7 @@
</span><span class="cx">             // If the image has neither an intrinsic width nor an intrinsic height, its size is determined as for â€˜contain’.
</span><span class="cx">             type = Contain;
</span><span class="cx">         }
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">         case Contain:
</span><span class="cx">         case Cover: {
</span><span class="cx">             float horizontalScaleFactor = imageIntrinsicSize.width()
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorerenderingRenderFlexibleBoxcpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/rendering/RenderFlexibleBox.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/rendering/RenderFlexibleBox.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/rendering/RenderFlexibleBox.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -1384,4 +1384,22 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+bool RenderFlexibleBox::isTopLayoutOverflowAllowed() const
+{
+    bool hasTopOverflow = RenderBlock::isTopLayoutOverflowAllowed();
+    if (hasTopOverflow || !style().isReverseFlexDirection())
+        return hasTopOverflow;
+    
+    return !isHorizontalFlow();
</ins><span class="cx"> }
</span><ins>+
+bool RenderFlexibleBox::isLeftLayoutOverflowAllowed() const
+{
+    bool hasLeftOverflow = RenderBlock::isLeftLayoutOverflowAllowed();
+    if (hasLeftOverflow || !style().isReverseFlexDirection())
+        return hasLeftOverflow;
+    
+    return isHorizontalFlow();
+}
+
+}
</ins></span></pre></div>
<a id="branchesjsCStackSourceWebCorerenderingRenderFlexibleBoxh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/rendering/RenderFlexibleBox.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/rendering/RenderFlexibleBox.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/rendering/RenderFlexibleBox.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -57,6 +57,9 @@
</span><span class="cx"> 
</span><span class="cx">     bool isHorizontalFlow() const;
</span><span class="cx"> 
</span><ins>+    bool isTopLayoutOverflowAllowed() const override;
+    bool isLeftLayoutOverflowAllowed() const override;
+
</ins><span class="cx"> protected:
</span><span class="cx">     virtual void computeIntrinsicLogicalWidths(LayoutUnit&amp; minLogicalWidth, LayoutUnit&amp; maxLogicalWidth) const override;
</span><span class="cx">     virtual void computePreferredLogicalWidths() override;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorerenderingRenderMultiColumnFlowThreadh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/rendering/RenderMultiColumnFlowThread.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/rendering/RenderMultiColumnFlowThread.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/rendering/RenderMultiColumnFlowThread.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -47,7 +47,7 @@
</span><span class="cx">     
</span><span class="cx">     bool shouldRelayoutForPagination() const { return !m_inBalancingPass &amp;&amp; m_needsRebalancing; }
</span><span class="cx">     
</span><del>-    bool requiresBalancing() const { return !columnHeightAvailable() || parent()-&gt;style().columnFill() == ColumnFillBalance; }
</del><ins>+    bool requiresBalancing() const { return progressionIsInline() &amp;&amp; (!columnHeightAvailable() || parent()-&gt;style().columnFill() == ColumnFillBalance); }
</ins><span class="cx"> 
</span><span class="cx">     void setColumnCountAndWidth(unsigned count, LayoutUnit width)
</span><span class="cx">     {
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorerenderingRenderMultiColumnSetcpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/rendering/RenderMultiColumnSet.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/rendering/RenderMultiColumnSet.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/rendering/RenderMultiColumnSet.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -205,18 +205,6 @@
</span><span class="cx">     // FIXME: When we add regions support, we'll start it off at the width of the multi-column
</span><span class="cx">     // block in that particular region.
</span><span class="cx">     setLogicalWidth(parentBox()-&gt;contentLogicalWidth());
</span><del>-
-    // If we overflow, increase our logical width.
-    unsigned colCount = columnCount();
-    LayoutUnit colGap = columnGap();
-    LayoutUnit minimumContentLogicalWidth = colCount * computedColumnWidth() + (colCount - 1) * colGap;
-    LayoutUnit currentContentLogicalWidth = contentLogicalWidth();
-    LayoutUnit delta = std::max(LayoutUnit(), minimumContentLogicalWidth - currentContentLogicalWidth);
-    if (!delta)
-        return;
-
-    // Increase our logical width by the delta.
-    setLogicalWidth(logicalWidth() + delta);
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderMultiColumnSet::prepareForLayout()
</span><span class="lines">@@ -295,11 +283,23 @@
</span><span class="cx">     LayoutUnit colLogicalTop = borderAndPaddingBefore();
</span><span class="cx">     LayoutUnit colLogicalLeft = borderAndPaddingLogicalLeft();
</span><span class="cx">     LayoutUnit colGap = columnGap();
</span><del>-    if (style().isLeftToRightDirection())
-        colLogicalLeft += index * (colLogicalWidth + colGap);
-    else
-        colLogicalLeft += contentLogicalWidth() - colLogicalWidth - index * (colLogicalWidth + colGap);
-
</del><ins>+    
+    RenderBlockFlow* parentFlow = toRenderBlockFlow(parent());
+    bool progressionReversed = parentFlow-&gt;multiColumnFlowThread()-&gt;progressionIsReversed();
+    bool progressionInline = parentFlow-&gt;multiColumnFlowThread()-&gt;progressionIsInline();
+    
+    if (progressionInline) {
+        if (style().isLeftToRightDirection() ^ progressionReversed)
+            colLogicalLeft += index * (colLogicalWidth + colGap);
+        else
+            colLogicalLeft += contentLogicalWidth() - colLogicalWidth - index * (colLogicalWidth + colGap);
+    } else {
+        if (!progressionReversed)
+            colLogicalTop += index * (colLogicalHeight + colGap);
+        else
+            colLogicalTop += contentLogicalHeight() - colLogicalHeight - index * (colLogicalHeight + colGap);
+    }
+    
</ins><span class="cx">     if (isHorizontalWritingMode())
</span><span class="cx">         return LayoutRect(colLogicalLeft, colLogicalTop, colLogicalWidth, colLogicalHeight);
</span><span class="cx">     return LayoutRect(colLogicalTop, colLogicalLeft, colLogicalHeight, colLogicalWidth);
</span><span class="lines">@@ -347,10 +347,14 @@
</span><span class="cx">     // FIXME: Eventually we will know overflow on a per-column basis, but we can't do this until we have a painting
</span><span class="cx">     // mode that understands not to paint contents from a previous column in the overflow area of a following column.
</span><span class="cx">     // This problem applies to regions and pages as well and is not unique to columns.
</span><ins>+    
+    RenderBlockFlow* parentFlow = toRenderBlockFlow(parent());
+    bool progressionReversed = parentFlow-&gt;multiColumnFlowThread()-&gt;progressionIsReversed();
+    
</ins><span class="cx">     bool isFirstColumn = !index;
</span><span class="cx">     bool isLastColumn = index == colCount - 1;
</span><del>-    bool isLeftmostColumn = style().isLeftToRightDirection() ? isFirstColumn : isLastColumn;
-    bool isRightmostColumn = style().isLeftToRightDirection() ? isLastColumn : isFirstColumn;
</del><ins>+    bool isLeftmostColumn = style().isLeftToRightDirection() ^ progressionReversed ? isFirstColumn : isLastColumn;
+    bool isRightmostColumn = style().isLeftToRightDirection() ^ progressionReversed ? isLastColumn : isFirstColumn;
</ins><span class="cx"> 
</span><span class="cx">     // Calculate the overflow rectangle, based on the flow thread's, clipped at column logical
</span><span class="cx">     // top/bottom unless it's the first/last column.
</span><span class="lines">@@ -395,6 +399,7 @@
</span><span class="cx">     if (paintInfo.context-&gt;paintingDisabled())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><ins>+    RenderMultiColumnFlowThread* flowThread = toRenderBlockFlow(parent())-&gt;multiColumnFlowThread();
</ins><span class="cx">     const RenderStyle&amp; blockStyle = parent()-&gt;style();
</span><span class="cx">     const Color&amp; ruleColor = blockStyle.visitedDependentColor(CSSPropertyWebkitColumnRuleColor);
</span><span class="cx">     bool ruleTransparent = blockStyle.columnRuleIsTransparent();
</span><span class="lines">@@ -411,36 +416,66 @@
</span><span class="cx"> 
</span><span class="cx">     bool antialias = shouldAntialiasLines(paintInfo.context);
</span><span class="cx"> 
</span><del>-    bool leftToRight = style().isLeftToRightDirection();
-    LayoutUnit currLogicalLeftOffset = leftToRight ? LayoutUnit() : contentLogicalWidth();
-    LayoutUnit ruleAdd = borderAndPaddingLogicalLeft();
-    LayoutUnit ruleLogicalLeft = leftToRight ? LayoutUnit() : contentLogicalWidth();
-    LayoutUnit inlineDirectionSize = computedColumnWidth();
-    BoxSide boxSide = isHorizontalWritingMode()
-        ? leftToRight ? BSLeft : BSRight
-        : leftToRight ? BSTop : BSBottom;
</del><ins>+    if (flowThread-&gt;progressionIsInline()) {
+        bool leftToRight = style().isLeftToRightDirection() ^ flowThread-&gt;progressionIsReversed();
+        LayoutUnit currLogicalLeftOffset = leftToRight ? LayoutUnit() : contentLogicalWidth();
+        LayoutUnit ruleAdd = logicalLeftOffsetForContent();
+        LayoutUnit ruleLogicalLeft = leftToRight ? LayoutUnit() : contentLogicalWidth();
+        LayoutUnit inlineDirectionSize = computedColumnWidth();
+        BoxSide boxSide = isHorizontalWritingMode()
+            ? leftToRight ? BSLeft : BSRight
+            : leftToRight ? BSTop : BSBottom;
</ins><span class="cx"> 
</span><del>-    for (unsigned i = 0; i &lt; colCount; i++) {
-        // Move to the next position.
-        if (leftToRight) {
-            ruleLogicalLeft += inlineDirectionSize + colGap / 2;
-            currLogicalLeftOffset += inlineDirectionSize + colGap;
-        } else {
-            ruleLogicalLeft -= (inlineDirectionSize + colGap / 2);
-            currLogicalLeftOffset -= (inlineDirectionSize + colGap);
</del><ins>+        for (unsigned i = 0; i &lt; colCount; i++) {
+            // Move to the next position.
+            if (leftToRight) {
+                ruleLogicalLeft += inlineDirectionSize + colGap / 2;
+                currLogicalLeftOffset += inlineDirectionSize + colGap;
+            } else {
+                ruleLogicalLeft -= (inlineDirectionSize + colGap / 2);
+                currLogicalLeftOffset -= (inlineDirectionSize + colGap);
+            }
+
+            // Now paint the column rule.
+            if (i &lt; colCount - 1) {
+                LayoutUnit ruleLeft = isHorizontalWritingMode() ? paintOffset.x() + ruleLogicalLeft - ruleThickness / 2 + ruleAdd : paintOffset.x() + borderLeft() + paddingLeft();
+                LayoutUnit ruleRight = isHorizontalWritingMode() ? ruleLeft + ruleThickness : ruleLeft + contentWidth();
+                LayoutUnit ruleTop = isHorizontalWritingMode() ? paintOffset.y() + borderTop() + paddingTop() : paintOffset.y() + ruleLogicalLeft - ruleThickness / 2 + ruleAdd;
+                LayoutUnit ruleBottom = isHorizontalWritingMode() ? ruleTop + contentHeight() : ruleTop + ruleThickness;
+                IntRect pixelSnappedRuleRect = pixelSnappedIntRectFromEdges(ruleLeft, ruleTop, ruleRight, ruleBottom);
+                drawLineForBoxSide(paintInfo.context, pixelSnappedRuleRect.x(), pixelSnappedRuleRect.y(), pixelSnappedRuleRect.maxX(), pixelSnappedRuleRect.maxY(), boxSide, ruleColor, ruleStyle, 0, 0, antialias);
+            }
+            
+            ruleLogicalLeft = currLogicalLeftOffset;
</ins><span class="cx">         }
</span><ins>+    } else {
+        bool topToBottom = !style().isFlippedBlocksWritingMode() ^ flowThread-&gt;progressionIsReversed();
+        LayoutUnit ruleLeft = isHorizontalWritingMode() ? LayoutUnit() : colGap / 2 - colGap - ruleThickness / 2;
+        LayoutUnit ruleWidth = isHorizontalWritingMode() ? contentWidth() : ruleThickness;
+        LayoutUnit ruleTop = isHorizontalWritingMode() ? colGap / 2 - colGap - ruleThickness / 2 : LayoutUnit();
+        LayoutUnit ruleHeight = isHorizontalWritingMode() ? ruleThickness : contentHeight();
+        LayoutRect ruleRect(ruleLeft, ruleTop, ruleWidth, ruleHeight);
</ins><span class="cx"> 
</span><del>-        // Now paint the column rule.
-        if (i &lt; colCount - 1) {
-            LayoutUnit ruleLeft = isHorizontalWritingMode() ? paintOffset.x() + ruleLogicalLeft - ruleThickness / 2 + ruleAdd : paintOffset.x() + borderLeft() + paddingLeft();
-            LayoutUnit ruleRight = isHorizontalWritingMode() ? ruleLeft + ruleThickness : ruleLeft + contentWidth();
-            LayoutUnit ruleTop = isHorizontalWritingMode() ? paintOffset.y() + borderTop() + paddingTop() : paintOffset.y() + ruleLogicalLeft - ruleThickness / 2 + ruleAdd;
-            LayoutUnit ruleBottom = isHorizontalWritingMode() ? ruleTop + contentHeight() : ruleTop + ruleThickness;
-            IntRect pixelSnappedRuleRect = pixelSnappedIntRectFromEdges(ruleLeft, ruleTop, ruleRight, ruleBottom);
</del><ins>+        if (!topToBottom) {
+            if (isHorizontalWritingMode())
+                ruleRect.setY(height() - ruleRect.maxY());
+            else
+                ruleRect.setX(width() - ruleRect.maxX());
+        }
+
+        ruleRect.moveBy(paintOffset);
+
+        BoxSide boxSide = isHorizontalWritingMode() ? topToBottom ? BSTop : BSBottom : topToBottom ? BSLeft : BSRight;
+
+        LayoutSize step(0, topToBottom ? computedColumnHeight() + colGap : -(computedColumnHeight() + colGap));
+        if (!isHorizontalWritingMode())
+            step = step.transposedSize();
+
+        for (unsigned i = 1; i &lt; colCount; i++) {
+            ruleRect.move(step);
+            IntRect pixelSnappedRuleRect = pixelSnappedIntRect(ruleRect);
</ins><span class="cx">             drawLineForBoxSide(paintInfo.context, pixelSnappedRuleRect.x(), pixelSnappedRuleRect.y(), pixelSnappedRuleRect.maxX(), pixelSnappedRuleRect.maxY(), boxSide, ruleColor, ruleStyle, 0, 0, antialias);
</span><span class="cx">         }
</span><del>-        
-        ruleLogicalLeft = currLogicalLeftOffset;
</del><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -482,6 +517,22 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+LayoutUnit RenderMultiColumnSet::initialBlockOffsetForPainting() const
+{
+    RenderBlockFlow* parentFlow = toRenderBlockFlow(parent());
+    bool progressionReversed = parentFlow-&gt;multiColumnFlowThread()-&gt;progressionIsReversed();
+    bool progressionIsInline = parentFlow-&gt;multiColumnFlowThread()-&gt;progressionIsInline();
+    
+    LayoutUnit result = 0;
+    if (!progressionIsInline &amp;&amp; progressionReversed) {
+        LayoutRect colRect = columnRectAt(0);
+        result = isHorizontalWritingMode() ? colRect.y() : colRect.x();
+        if (style().isFlippedBlocksWritingMode())
+            result = -result;
+    }
+    return result;
+}
+
</ins><span class="cx"> void RenderMultiColumnSet::collectLayerFragments(LayerFragments&amp; fragments, const LayoutRect&amp; layerBoundingBox, const LayoutRect&amp; dirtyRect)
</span><span class="cx"> {
</span><span class="cx">     // Let's start by introducing the different coordinate systems involved here. They are different
</span><span class="lines">@@ -535,6 +586,12 @@
</span><span class="cx">     LayoutUnit colGap = columnGap();
</span><span class="cx">     unsigned colCount = columnCount();
</span><span class="cx">     
</span><ins>+    RenderBlockFlow* parentFlow = toRenderBlockFlow(parent());
+    bool progressionReversed = parentFlow-&gt;multiColumnFlowThread()-&gt;progressionIsReversed();
+    bool progressionIsInline = parentFlow-&gt;multiColumnFlowThread()-&gt;progressionIsInline();
+    
+    LayoutUnit initialBlockOffset = initialBlockOffsetForPainting();
+    
</ins><span class="cx">     for (unsigned i = startColumn; i &lt;= endColumn; i++) {
</span><span class="cx">         // Get the portion of the flow thread that corresponds to this column.
</span><span class="cx">         LayoutRect flowThreadPortion = flowThreadPortionRectAt(i);
</span><span class="lines">@@ -551,11 +608,22 @@
</span><span class="cx">         // We also need to intersect the dirty rect. We have to apply a translation and shift based off
</span><span class="cx">         // our column index.
</span><span class="cx">         LayoutPoint translationOffset;
</span><del>-        LayoutUnit inlineOffset = i * (colLogicalWidth + colGap);
-        if (!style().isLeftToRightDirection())
</del><ins>+        LayoutUnit inlineOffset = progressionIsInline ? i * (colLogicalWidth + colGap) : LayoutUnit();
+        
+        bool leftToRight = style().isLeftToRightDirection() ^ progressionReversed;
+        if (!leftToRight) {
</ins><span class="cx">             inlineOffset = -inlineOffset;
</span><ins>+            if (progressionReversed)
+                inlineOffset += contentLogicalWidth() - colLogicalWidth;
+        }
</ins><span class="cx">         translationOffset.setX(inlineOffset);
</span><del>-        LayoutUnit blockOffset = isHorizontalWritingMode() ? -flowThreadPortion.y() : -flowThreadPortion.x();
</del><ins>+        LayoutUnit blockOffset = initialBlockOffset + (isHorizontalWritingMode() ? -flowThreadPortion.y() : -flowThreadPortion.x());
+        if (!progressionIsInline) {
+            if (!progressionReversed)
+                blockOffset = i * colGap;
+            else
+                blockOffset -= i * (computedColumnHeight() + colGap);
+        }
</ins><span class="cx">         if (isFlippedBlocksWritingMode(style().writingMode()))
</span><span class="cx">             blockOffset = -blockOffset;
</span><span class="cx">         translationOffset.setY(blockOffset);
</span><span class="lines">@@ -597,13 +665,29 @@
</span><span class="cx">     
</span><span class="cx">     LayoutRect flowThreadPortion = flowThreadPortionRectAt(startColumn);
</span><span class="cx">     LayoutPoint translationOffset;
</span><del>-
-    LayoutUnit inlineOffset = startColumn * (colLogicalWidth + colGap);
-    if (!style().isLeftToRightDirection())
</del><ins>+    
+    RenderBlockFlow* parentFlow = toRenderBlockFlow(parent());
+    bool progressionReversed = parentFlow-&gt;multiColumnFlowThread()-&gt;progressionIsReversed();
+    bool progressionIsInline = parentFlow-&gt;multiColumnFlowThread()-&gt;progressionIsInline();
+    
+    LayoutUnit initialBlockOffset = initialBlockOffsetForPainting();
+    
+    LayoutUnit inlineOffset = progressionIsInline ? startColumn * (colLogicalWidth + colGap) : LayoutUnit();
+    
+    bool leftToRight = style().isLeftToRightDirection() ^ progressionReversed;
+    if (!leftToRight) {
</ins><span class="cx">         inlineOffset = -inlineOffset;
</span><ins>+        if (progressionReversed)
+            inlineOffset += contentLogicalWidth() - colLogicalWidth;
+    }
</ins><span class="cx">     translationOffset.setX(inlineOffset);
</span><del>-        
-    LayoutUnit blockOffset = isHorizontalWritingMode() ? -flowThreadPortion.y() : -flowThreadPortion.x();
</del><ins>+    LayoutUnit blockOffset = initialBlockOffset + (isHorizontalWritingMode() ? -flowThreadPortion.y() : -flowThreadPortion.x());
+    if (!progressionIsInline) {
+        if (!progressionReversed)
+            blockOffset = startColumn * colGap;
+        else
+            blockOffset -= startColumn * (computedColumnHeight() + colGap);
+    }
</ins><span class="cx">     if (isFlippedBlocksWritingMode(style().writingMode()))
</span><span class="cx">         blockOffset = -blockOffset;
</span><span class="cx">     translationOffset.setY(blockOffset);
</span><span class="lines">@@ -617,6 +701,19 @@
</span><span class="cx">     regionBounds.moveBy(roundedIntPoint(-translationOffset));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void RenderMultiColumnSet::addOverflowFromChildren()
+{
+    // FIXME: Need to do much better here.
+    unsigned colCount = columnCount();
+    if (!colCount)
+        return;
+    
+    LayoutRect lastRect = columnRectAt(colCount - 1);
+    addLayoutOverflow(lastRect);
+    if (!hasOverflowClip())
+        addVisualOverflow(lastRect);
+}
+
</ins><span class="cx"> const char* RenderMultiColumnSet::renderName() const
</span><span class="cx"> {    
</span><span class="cx">     return &quot;RenderMultiColumnSet&quot;;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorerenderingRenderMultiColumnSeth"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/rendering/RenderMultiColumnSet.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/rendering/RenderMultiColumnSet.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/rendering/RenderMultiColumnSet.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -82,6 +82,9 @@
</span><span class="cx"> 
</span><span class="cx">     void prepareForLayout();
</span><span class="cx"> 
</span><ins>+protected:
+    void addOverflowFromChildren() override;
+    
</ins><span class="cx"> private:
</span><span class="cx">     virtual void computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logicalTop, LogicalExtentComputedValues&amp;) const override;
</span><span class="cx"> 
</span><span class="lines">@@ -112,6 +115,8 @@
</span><span class="cx">     LayoutRect flowThreadPortionRectAt(unsigned index) const;
</span><span class="cx">     LayoutRect flowThreadPortionOverflowRect(const LayoutRect&amp; flowThreadPortion, unsigned index, unsigned colCount, LayoutUnit colGap);
</span><span class="cx"> 
</span><ins>+    LayoutUnit initialBlockOffsetForPainting() const;
+
</ins><span class="cx">     enum ColumnIndexCalculationMode {
</span><span class="cx">         ClampToExistingColumns, // Stay within the range of already existing columns.
</span><span class="cx">         AssumeNewColumns // Allow column indices outside the range of already existing columns.
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorerenderingRenderObjectcpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/rendering/RenderObject.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/rendering/RenderObject.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/rendering/RenderObject.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -908,11 +908,11 @@
</span><span class="cx">             // https://bugs.webkit.org/show_bug.cgi?id=58608
</span><span class="cx">             if (side == BSTop || side == BSLeft)
</span><span class="cx">                 color = color.dark();
</span><del>-            // fall through
</del><ins>+            FALLTHROUGH;
</ins><span class="cx">         case OUTSET:
</span><span class="cx">             if (borderStyle == OUTSET &amp;&amp; (side == BSBottom || side == BSRight))
</span><span class="cx">                 color = color.dark();
</span><del>-            // fall through
</del><ins>+            FALLTHROUGH;
</ins><span class="cx">         case SOLID: {
</span><span class="cx">             StrokeStyle oldStrokeStyle = graphicsContext-&gt;strokeStyle();
</span><span class="cx">             graphicsContext-&gt;setStrokeStyle(NoStroke);
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorerenderingRenderQuotecpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/rendering/RenderQuote.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/rendering/RenderQuote.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/rendering/RenderQuote.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -347,7 +347,7 @@
</span><span class="cx">         return emptyString();
</span><span class="cx">     case OPEN_QUOTE:
</span><span class="cx">         isOpenQuote = true;
</span><del>-        // fall through
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case CLOSE_QUOTE:
</span><span class="cx">         if (const QuotesData* quotes = style().quotes())
</span><span class="cx">             return isOpenQuote ? quotes-&gt;openQuote(m_depth).impl() : quotes-&gt;closeQuote(m_depth).impl();
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorerenderingRenderReplacedcpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/rendering/RenderReplaced.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/rendering/RenderReplaced.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/rendering/RenderReplaced.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -329,7 +329,7 @@
</span><span class="cx">         finalRect.setSize(finalRect.size().fitToAspectRatio(intrinsicSize, objectFit == ObjectFitCover ? AspectRatioFitGrow : AspectRatioFitShrink));
</span><span class="cx">         if (objectFit != ObjectFitScaleDown || finalRect.width() &lt;= intrinsicSize.width())
</span><span class="cx">             break;
</span><del>-        // fall through
</del><ins>+        FALLTHROUGH;
</ins><span class="cx">     case ObjectFitNone:
</span><span class="cx">         finalRect.setSize(intrinsicSize);
</span><span class="cx">         break;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorerenderingRenderTablecpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/rendering/RenderTable.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/rendering/RenderTable.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/rendering/RenderTable.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -159,7 +159,7 @@
</span><span class="cx">                     wrapInAnonymousSection = false;
</span><span class="cx">                     break;
</span><span class="cx">                 }
</span><del>-                // Fall through.
</del><ins>+                FALLTHROUGH;
</ins><span class="cx">             case TABLE_ROW_GROUP:
</span><span class="cx">                 resetSectionPointerIfNotBefore(m_firstBody, beforeChild);
</span><span class="cx">                 if (!m_firstBody)
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorerenderingRenderThemecpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/rendering/RenderTheme.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/rendering/RenderTheme.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/rendering/RenderTheme.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -181,6 +181,7 @@
</span><span class="cx">                 style.font().update(0);
</span><span class="cx">         }
</span><span class="cx">     }
</span><ins>+    break;
</ins><span class="cx">     default:
</span><span class="cx">         break;
</span><span class="cx">     }
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorerenderingstyleRenderStylecpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/rendering/style/RenderStyle.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/rendering/style/RenderStyle.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/rendering/style/RenderStyle.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -1456,6 +1456,7 @@
</span><span class="cx">     switch (v.type()) {
</span><span class="cx">     case Auto:
</span><span class="cx">         fontWordSpacing = 0;
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">     case Percent:
</span><span class="cx">         fontWordSpacing = v.getFloatValue() * font().spaceWidth() / 100;
</span><span class="cx">         break;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorerenderingsvgRenderSVGResourcecpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/rendering/svg/RenderSVGResource.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/rendering/svg/RenderSVGResource.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/rendering/svg/RenderSVGResource.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -85,6 +85,7 @@
</span><span class="cx">     case SVGPaint::SVG_PAINTTYPE_URI_RGBCOLOR:
</span><span class="cx">     case SVGPaint::SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR:
</span><span class="cx">         color = applyToFill ? svgStyle.fillPaintColor() : svgStyle.strokePaintColor();
</span><ins>+        break;
</ins><span class="cx">     default:
</span><span class="cx">         break;
</span><span class="cx">     }
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCorerenderingsvgSVGMarkerDatah"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/rendering/svg/SVGMarkerData.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/rendering/svg/SVGMarkerData.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/rendering/svg/SVGMarkerData.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -127,6 +127,7 @@
</span><span class="cx">             break;
</span><span class="cx">         case PathElementMoveToPoint:
</span><span class="cx">             m_subpathStart = points[0];
</span><ins>+            FALLTHROUGH;
</ins><span class="cx">         case PathElementAddLineToPoint:
</span><span class="cx">             updateInslope(points[0]);
</span><span class="cx">             m_origin = points[0];
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoresvgSVGPathParsercpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/svg/SVGPathParser.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/svg/SVGPathParser.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/svg/SVGPathParser.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -314,24 +314,28 @@
</span><span class="cx">         switch (command) {
</span><span class="cx">         case PathSegMoveToRel:
</span><span class="cx">             m_mode = RelativeCoordinates;
</span><ins>+            FALLTHROUGH;
</ins><span class="cx">         case PathSegMoveToAbs:
</span><span class="cx">             if (!parseMoveToSegment())
</span><span class="cx">                 return false;
</span><span class="cx">             break;
</span><span class="cx">         case PathSegLineToRel:
</span><span class="cx">             m_mode = RelativeCoordinates;
</span><ins>+            FALLTHROUGH;
</ins><span class="cx">         case PathSegLineToAbs:
</span><span class="cx">             if (!parseLineToSegment())
</span><span class="cx">                 return false;
</span><span class="cx">             break;
</span><span class="cx">         case PathSegLineToHorizontalRel:
</span><span class="cx">             m_mode = RelativeCoordinates;
</span><ins>+            FALLTHROUGH;
</ins><span class="cx">         case PathSegLineToHorizontalAbs:
</span><span class="cx">             if (!parseLineToHorizontalSegment())
</span><span class="cx">                 return false;
</span><span class="cx">             break;
</span><span class="cx">         case PathSegLineToVerticalRel:
</span><span class="cx">             m_mode = RelativeCoordinates;
</span><ins>+            FALLTHROUGH;
</ins><span class="cx">         case PathSegLineToVerticalAbs:
</span><span class="cx">             if (!parseLineToVerticalSegment())
</span><span class="cx">                 return false;
</span><span class="lines">@@ -341,30 +345,35 @@
</span><span class="cx">             break;
</span><span class="cx">         case PathSegCurveToCubicRel:
</span><span class="cx">             m_mode = RelativeCoordinates;
</span><ins>+            FALLTHROUGH;
</ins><span class="cx">         case PathSegCurveToCubicAbs:
</span><span class="cx">             if (!parseCurveToCubicSegment())
</span><span class="cx">                 return false;
</span><span class="cx">             break;
</span><span class="cx">         case PathSegCurveToCubicSmoothRel:
</span><span class="cx">             m_mode = RelativeCoordinates;
</span><ins>+            FALLTHROUGH;
</ins><span class="cx">         case PathSegCurveToCubicSmoothAbs:
</span><span class="cx">             if (!parseCurveToCubicSmoothSegment())
</span><span class="cx">                 return false;
</span><span class="cx">             break;
</span><span class="cx">         case PathSegCurveToQuadraticRel:
</span><span class="cx">             m_mode = RelativeCoordinates;
</span><ins>+            FALLTHROUGH;
</ins><span class="cx">         case PathSegCurveToQuadraticAbs:
</span><span class="cx">             if (!parseCurveToQuadraticSegment())
</span><span class="cx">                 return false;
</span><span class="cx">             break;
</span><span class="cx">         case PathSegCurveToQuadraticSmoothRel:
</span><span class="cx">             m_mode = RelativeCoordinates;
</span><ins>+            FALLTHROUGH;
</ins><span class="cx">         case PathSegCurveToQuadraticSmoothAbs:
</span><span class="cx">             if (!parseCurveToQuadraticSmoothSegment())
</span><span class="cx">                 return false;
</span><span class="cx">             break;
</span><span class="cx">         case PathSegArcRel:
</span><span class="cx">             m_mode = RelativeCoordinates;
</span><ins>+            FALLTHROUGH;
</ins><span class="cx">         case PathSegArcAbs:
</span><span class="cx">             if (!parseArcToSegment())
</span><span class="cx">                 return false;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebCoresvgSVGTransformDistancecpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebCore/svg/SVGTransformDistance.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebCore/svg/SVGTransformDistance.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebCore/svg/SVGTransformDistance.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -58,6 +58,9 @@
</span><span class="cx">     switch (m_type) {
</span><span class="cx">     case SVGTransform::SVG_TRANSFORM_MATRIX:
</span><span class="cx">         ASSERT_NOT_REACHED();
</span><ins>+#if ASSERT_DISABLED
+        FALLTHROUGH;
+#endif
</ins><span class="cx">     case SVGTransform::SVG_TRANSFORM_UNKNOWN:
</span><span class="cx">         break;
</span><span class="cx">     case SVGTransform::SVG_TRANSFORM_ROTATE: {
</span><span class="lines">@@ -90,6 +93,9 @@
</span><span class="cx">     switch (m_type) {
</span><span class="cx">     case SVGTransform::SVG_TRANSFORM_MATRIX:
</span><span class="cx">         ASSERT_NOT_REACHED();
</span><ins>+#if ASSERT_DISABLED
+        FALLTHROUGH;
+#endif
</ins><span class="cx">     case SVGTransform::SVG_TRANSFORM_UNKNOWN:
</span><span class="cx">         return SVGTransformDistance();
</span><span class="cx">     case SVGTransform::SVG_TRANSFORM_ROTATE:
</span><span class="lines">@@ -120,6 +126,9 @@
</span><span class="cx">     switch (first.type()) {
</span><span class="cx">     case SVGTransform::SVG_TRANSFORM_MATRIX:
</span><span class="cx">         ASSERT_NOT_REACHED();
</span><ins>+#if ASSERT_DISABLED
+        FALLTHROUGH;
+#endif
</ins><span class="cx">     case SVGTransform::SVG_TRANSFORM_UNKNOWN:
</span><span class="cx">         return SVGTransform();
</span><span class="cx">     case SVGTransform::SVG_TRANSFORM_ROTATE: {
</span><span class="lines">@@ -159,6 +168,9 @@
</span><span class="cx">     switch (m_type) {
</span><span class="cx">     case SVGTransform::SVG_TRANSFORM_MATRIX:
</span><span class="cx">         ASSERT_NOT_REACHED();
</span><ins>+#if ASSERT_DISABLED
+        FALLTHROUGH;
+#endif
</ins><span class="cx">     case SVGTransform::SVG_TRANSFORM_UNKNOWN:
</span><span class="cx">         return SVGTransform();
</span><span class="cx">     case SVGTransform::SVG_TRANSFORM_TRANSLATE: {
</span><span class="lines">@@ -200,6 +212,9 @@
</span><span class="cx">     switch (m_type) {
</span><span class="cx">     case SVGTransform::SVG_TRANSFORM_MATRIX:
</span><span class="cx">         ASSERT_NOT_REACHED();
</span><ins>+#if ASSERT_DISABLED
+        FALLTHROUGH;
+#endif
</ins><span class="cx">     case SVGTransform::SVG_TRANSFORM_UNKNOWN:
</span><span class="cx">         return 0;
</span><span class="cx">     case SVGTransform::SVG_TRANSFORM_ROTATE:
</span></span></pre></div>
<a id="branchesjsCStackSourceWebInspectorUIUserInterfaceApplicationCacheManagerjs"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebInspectorUI/UserInterface/ApplicationCacheManager.js (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebInspectorUI/UserInterface/ApplicationCacheManager.js        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebInspectorUI/UserInterface/ApplicationCacheManager.js        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -27,7 +27,8 @@
</span><span class="cx"> {
</span><span class="cx">     WebInspector.Object.call(this);
</span><span class="cx"> 
</span><del>-    ApplicationCacheAgent.enable();
</del><ins>+    if (window.ApplicationCacheAgent)
+        ApplicationCacheAgent.enable();
</ins><span class="cx"> 
</span><span class="cx">     WebInspector.Frame.addEventListener(WebInspector.Frame.Event.MainResourceDidChange, this._mainResourceDidChange, this);
</span><span class="cx">     WebInspector.Frame.addEventListener(WebInspector.Frame.Event.ChildFrameWasRemoved, this._childFrameWasRemoved, this);
</span><span class="lines">@@ -63,7 +64,8 @@
</span><span class="cx">     {
</span><span class="cx">         this._applicationCacheObjects = [];
</span><span class="cx"> 
</span><del>-        ApplicationCacheAgent.getFramesWithManifests(this._framesWithManifestsLoaded.bind(this));
</del><ins>+        if (window.ApplicationCacheAgent)
+            ApplicationCacheAgent.getFramesWithManifests(this._framesWithManifestsLoaded.bind(this));
</ins><span class="cx">     },
</span><span class="cx"> 
</span><span class="cx">     networkStateUpdated: function(isNowOnline)
</span></span></pre></div>
<a id="branchesjsCStackSourceWebInspectorUIUserInterfaceCSSCompletionsjs"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebInspectorUI/UserInterface/CSSCompletions.js (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebInspectorUI/UserInterface/CSSCompletions.js        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebInspectorUI/UserInterface/CSSCompletions.js        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -153,7 +153,8 @@
</span><span class="cx">         updateCodeMirrorCSSMode(&quot;text/x-scss&quot;);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    CSSAgent.getSupportedCSSProperties(propertyNamesCallback);
</del><ins>+    if (window.CSSAgent)
+        CSSAgent.getSupportedCSSProperties(propertyNamesCallback);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> WebInspector.CSSCompletions.prototype = {
</span></span></pre></div>
<a id="branchesjsCStackSourceWebInspectorUIUserInterfaceCSSStyleManagerjs"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebInspectorUI/UserInterface/CSSStyleManager.js (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebInspectorUI/UserInterface/CSSStyleManager.js        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebInspectorUI/UserInterface/CSSStyleManager.js        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -27,7 +27,8 @@
</span><span class="cx"> {
</span><span class="cx">     WebInspector.Object.call(this);
</span><span class="cx"> 
</span><del>-    CSSAgent.enable();
</del><ins>+    if (window.CSSAgent)
+        CSSAgent.enable();
</ins><span class="cx"> 
</span><span class="cx">     WebInspector.Frame.addEventListener(WebInspector.Frame.Event.MainResourceDidChange, this._mainResourceDidChange, this);
</span><span class="cx">     WebInspector.Frame.addEventListener(WebInspector.Frame.Event.ResourceWasAdded, this._resourceAdded, this);
</span><span class="lines">@@ -59,7 +60,7 @@
</span><span class="cx"> 
</span><span class="cx">     canForcePseudoClasses: function()
</span><span class="cx">     {
</span><del>-        return !!CSSAgent.forcePseudoState;
</del><ins>+        return window.CSSAgent &amp;&amp; !!CSSAgent.forcePseudoState;
</ins><span class="cx">     },
</span><span class="cx"> 
</span><span class="cx">     propertyNameHasOtherVendorPrefix: function(name)
</span></span></pre></div>
<a id="branchesjsCStackSourceWebInspectorUIUserInterfaceDebuggerManagerjs"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebInspectorUI/UserInterface/DebuggerManager.js (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebInspectorUI/UserInterface/DebuggerManager.js        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebInspectorUI/UserInterface/DebuggerManager.js        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -27,7 +27,8 @@
</span><span class="cx"> {
</span><span class="cx">     WebInspector.Object.call(this);
</span><span class="cx"> 
</span><del>-    DebuggerAgent.enable();
</del><ins>+    if (window.DebuggerAgent)
+        DebuggerAgent.enable();
</ins><span class="cx"> 
</span><span class="cx">     WebInspector.Breakpoint.addEventListener(WebInspector.Breakpoint.Event.DisplayLocationDidChange, this._breakpointDisplayLocationDidChange, this);
</span><span class="cx">     WebInspector.Breakpoint.addEventListener(WebInspector.Breakpoint.Event.DisabledStateDidChange, this._breakpointDisabledStateDidChange, this);
</span><span class="lines">@@ -58,7 +59,8 @@
</span><span class="cx">     this._breakpointsSetting = new WebInspector.Setting(&quot;breakpoints&quot;, []);
</span><span class="cx">     this._breakpointsEnabledSetting = new WebInspector.Setting(&quot;breakpoints-enabled&quot;, true);
</span><span class="cx"> 
</span><del>-    DebuggerAgent.setBreakpointsActive(this._breakpointsEnabledSetting.value);
</del><ins>+    if (window.DebuggerAgent)
+        DebuggerAgent.setBreakpointsActive(this._breakpointsEnabledSetting.value);
</ins><span class="cx"> 
</span><span class="cx">     this._updateBreakOnExceptionsState();
</span><span class="cx"> 
</span><span class="lines">@@ -345,7 +347,7 @@
</span><span class="cx">             var callFramePayload = callFramesPayload[i];
</span><span class="cx">             var sourceCodeLocation = this._sourceCodeLocationFromPayload(callFramePayload.location);
</span><span class="cx">             // Exclude the case where the call frame is in the inspector code.
</span><del>-            if (!sourceCodeLocation || sourceCodeLocation._sourceCode._url.indexOf(&quot;__WebInspector&quot;) === 0)
</del><ins>+            if (!sourceCodeLocation || !sourceCodeLocation._sourceCode || !sourceCodeLocation._sourceCode._url || sourceCodeLocation._sourceCode._url.indexOf(&quot;__WebInspector&quot;) === 0)
</ins><span class="cx">                 continue;
</span><span class="cx">             var thisObject = WebInspector.RemoteObject.fromPayload(callFramePayload.this);
</span><span class="cx">             var scopeChain = this._scopeChainFromPayload(callFramePayload.scopeChain);
</span></span></pre></div>
<a id="branchesjsCStackSourceWebInspectorUIUserInterfaceFrameResourceManagerjs"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebInspectorUI/UserInterface/FrameResourceManager.js (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebInspectorUI/UserInterface/FrameResourceManager.js        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebInspectorUI/UserInterface/FrameResourceManager.js        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -27,8 +27,10 @@
</span><span class="cx"> {
</span><span class="cx">     WebInspector.Object.call(this);
</span><span class="cx"> 
</span><del>-    PageAgent.enable();
-    NetworkAgent.enable();
</del><ins>+    if (window.PageAgent)
+        PageAgent.enable();
+    if (window.NetworkAgent)
+        NetworkAgent.enable();
</ins><span class="cx"> 
</span><span class="cx">     this.initialize();
</span><span class="cx"> };
</span><span class="lines">@@ -58,7 +60,8 @@
</span><span class="cx">             this._mainFrameDidChange(oldMainFrame);
</span><span class="cx"> 
</span><span class="cx">         this._waitingForMainFrameResourceTreePayload = true;
</span><del>-        PageAgent.getResourceTree(this._processMainFrameResourceTreePayload.bind(this));
</del><ins>+        if (window.PageAgent)
+            PageAgent.getResourceTree(this._processMainFrameResourceTreePayload.bind(this));
</ins><span class="cx">     },
</span><span class="cx"> 
</span><span class="cx">     get mainFrame()
</span></span></pre></div>
<a id="branchesjsCStackSourceWebInspectorUIUserInterfaceMainjs"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebInspectorUI/UserInterface/Main.js (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebInspectorUI/UserInterface/Main.js        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebInspectorUI/UserInterface/Main.js        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -52,27 +52,40 @@
</span><span class="cx">     this._initializeWebSocketIfNeeded();
</span><span class="cx"> 
</span><span class="cx">     // Register observers for events from the InspectorBackend.
</span><del>-    InspectorBackend.registerInspectorDispatcher(new WebInspector.InspectorObserver);
-    InspectorBackend.registerPageDispatcher(new WebInspector.PageObserver);
</del><ins>+    if (InspectorBackend.registerInspectorDispatcher)
+        InspectorBackend.registerInspectorDispatcher(new WebInspector.InspectorObserver);
+    if (InspectorBackend.registerPageDispatcher)
+        InspectorBackend.registerPageDispatcher(new WebInspector.PageObserver);
</ins><span class="cx">     if (InspectorBackend.registerCanvasDispatcher)
</span><span class="cx">         InspectorBackend.registerCanvasDispatcher(new WebInspector.CanvasObserver);
</span><del>-    InspectorBackend.registerConsoleDispatcher(new WebInspector.ConsoleObserver);
-    InspectorBackend.registerNetworkDispatcher(new WebInspector.NetworkObserver);
-    InspectorBackend.registerDOMDispatcher(new WebInspector.DOMObserver);
-    InspectorBackend.registerDebuggerDispatcher(new WebInspector.DebuggerObserver);
-    InspectorBackend.registerDatabaseDispatcher(new WebInspector.DatabaseObserver);
-    InspectorBackend.registerDOMStorageDispatcher(new WebInspector.DOMStorageObserver);
-    InspectorBackend.registerApplicationCacheDispatcher(new WebInspector.ApplicationCacheObserver);
-    InspectorBackend.registerTimelineDispatcher(new WebInspector.TimelineObserver);
-    InspectorBackend.registerProfilerDispatcher(new WebInspector.ProfilerObserver);
-    InspectorBackend.registerCSSDispatcher(new WebInspector.CSSObserver);
</del><ins>+    if (InspectorBackend.registerConsoleDispatcher)
+        InspectorBackend.registerConsoleDispatcher(new WebInspector.ConsoleObserver);
+    if (InspectorBackend.registerNetworkDispatcher)
+        InspectorBackend.registerNetworkDispatcher(new WebInspector.NetworkObserver);
+    if (InspectorBackend.registerDOMDispatcher)
+        InspectorBackend.registerDOMDispatcher(new WebInspector.DOMObserver);
+    if (InspectorBackend.registerDebuggerDispatcher)
+        InspectorBackend.registerDebuggerDispatcher(new WebInspector.DebuggerObserver);
+    if (InspectorBackend.registerDatabaseDispatcher)
+        InspectorBackend.registerDatabaseDispatcher(new WebInspector.DatabaseObserver);
+    if (InspectorBackend.registerDOMStorageDispatcher)
+        InspectorBackend.registerDOMStorageDispatcher(new WebInspector.DOMStorageObserver);
+    if (InspectorBackend.registerApplicationCacheDispatcher)
+        InspectorBackend.registerApplicationCacheDispatcher(new WebInspector.ApplicationCacheObserver);
+    if (InspectorBackend.registerTimelineDispatcher)
+        InspectorBackend.registerTimelineDispatcher(new WebInspector.TimelineObserver);
+    if (InspectorBackend.registerProfilerDispatcher)
+        InspectorBackend.registerProfilerDispatcher(new WebInspector.ProfilerObserver);
+    if (InspectorBackend.registerCSSDispatcher)
+        InspectorBackend.registerCSSDispatcher(new WebInspector.CSSObserver);
</ins><span class="cx">     if (InspectorBackend.registerLayerTreeDispatcher)
</span><span class="cx">         InspectorBackend.registerLayerTreeDispatcher(new WebInspector.LayerTreeObserver);
</span><span class="cx">     if (InspectorBackend.registerRuntimeDispatcher)
</span><span class="cx">         InspectorBackend.registerRuntimeDispatcher(new WebInspector.RuntimeObserver);
</span><span class="cx"> 
</span><span class="cx">     // Enable agents.
</span><del>-    InspectorAgent.enable();
</del><ins>+    if (window.InspectorAgent)
+        InspectorAgent.enable();
</ins><span class="cx"> 
</span><span class="cx">     // Perform one-time tasks.
</span><span class="cx">     WebInspector.CSSCompletions.requestCSSNameCompletions();
</span><span class="lines">@@ -101,7 +114,8 @@
</span><span class="cx">     this.dashboardManager = new WebInspector.DashboardManager;
</span><span class="cx"> 
</span><span class="cx">     // Enable the Console Agent after creating the singleton managers.
</span><del>-    ConsoleAgent.enable();
</del><ins>+    if (window.ConsoleAgent)
+        ConsoleAgent.enable();
</ins><span class="cx"> 
</span><span class="cx">     // Register for events.
</span><span class="cx">     this.debuggerManager.addEventListener(WebInspector.DebuggerManager.Event.Paused, this._debuggerDidPause, this);
</span></span></pre></div>
<a id="branchesjsCStackSourceWebInspectorUIUserInterfaceProfileManagerjs"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebInspectorUI/UserInterface/ProfileManager.js (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebInspectorUI/UserInterface/ProfileManager.js        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebInspectorUI/UserInterface/ProfileManager.js        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -30,8 +30,10 @@
</span><span class="cx">     this._javaScriptProfileType = new WebInspector.JavaScriptProfileType;
</span><span class="cx">     this._canvasProfileType = new WebInspector.CanvasProfileType;
</span><span class="cx"> 
</span><del>-    ProfilerAgent.enable();
-    ProfilerAgent.getProfileHeaders();
</del><ins>+    if (window.ProfilerAgent) {
+        ProfilerAgent.enable();
+        ProfilerAgent.getProfileHeaders();
+    }
</ins><span class="cx"> 
</span><span class="cx">     WebInspector.Frame.addEventListener(WebInspector.Frame.Event.MainResourceDidChange, this._mainResourceDidChange, this);
</span><span class="cx"> 
</span></span></pre></div>
<a id="branchesjsCStackSourceWebInspectorUIUserInterfaceStorageManagerjs"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebInspectorUI/UserInterface/StorageManager.js (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebInspectorUI/UserInterface/StorageManager.js        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebInspectorUI/UserInterface/StorageManager.js        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -28,15 +28,17 @@
</span><span class="cx"> {
</span><span class="cx">     WebInspector.Object.call(this);
</span><span class="cx"> 
</span><del>-    DOMStorageAgent.enable();
-    DatabaseAgent.enable();
</del><ins>+    if (window.DOMStorageAgent)
+        DOMStorageAgent.enable();
+    if (window.DatabaseAgent)
+        DatabaseAgent.enable();
</ins><span class="cx"> 
</span><span class="cx">     WebInspector.Frame.addEventListener(WebInspector.Frame.Event.MainResourceDidChange, this._mainResourceDidChange, this);
</span><span class="cx"> 
</span><span class="cx">     // COMPATIBILITY (iOS 6): DOMStorage was discovered via a DOMStorageObserver event. Now DOM Storage
</span><span class="cx">     // is added whenever a new securityOrigin is discovered. Check for DOMStorageAgent.getDOMStorageItems,
</span><span class="cx">     // which was renamed at the same time the change to start using securityOrigin was made.
</span><del>-    if (DOMStorageAgent.getDOMStorageItems)
</del><ins>+    if (window.DOMStorageAgent &amp;&amp; DOMStorageAgent.getDOMStorageItems)
</ins><span class="cx">         WebInspector.Frame.addEventListener(WebInspector.Frame.Event.SecurityOriginDidChange, this._securityOriginDidChange, this);
</span><span class="cx"> 
</span><span class="cx">     this.initialize();
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKitWebKitvcxprojWebKitExportGeneratorWebKitExportsdefin"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit/WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit/WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit/WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -469,5 +469,4 @@
</span><span class="cx">         symbolWithPointer(?completeURL@Document@WebCore@@UBE?AVURL@2@ABVString@WTF@@@Z, ?completeURL@Document@WebCore@@UEBA?AVURL@2@AEBVString@WTF@@@Z)
</span><span class="cx">         symbolWithPointer(??1DOMWindow@WebCore@@UAE@XZ, ??1DOMWindow@WebCore@@UEAA@XZ)
</span><span class="cx">         symbolWithPointer(?visibleContentRect@ScrollableArea@WebCore@@QBE?AVIntRect@2@W4VisibleContentRectBehavior@12@@Z, ?visibleContentRect@ScrollableArea@WebCore@@QEBA?AVIntRect@2@W4VisibleContentRectBehavior@12@@Z)
</span><del>-        symbolWithPointer(?gAccessibilityEnabled@AXObjectCache@WebCore@@0_NA, ?gAccessibilityEnabled@AXObjectCache@WebCore@@0_NA)
-
</del><ins>+        symbolWithPointer(?disableAccessibility@AXObjectCache@WebCore@@SAXXZ, ?disableAccessibility@AXObjectCache@WebCore@@SAXXZ)
</ins></span></pre></div>
<a id="branchesjsCStackSourceWebKitiosWebCoreSupportWebMIMETypeRegistryh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit/ios/WebCoreSupport/WebMIMETypeRegistry.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit/ios/WebCoreSupport/WebMIMETypeRegistry.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit/ios/WebCoreSupport/WebMIMETypeRegistry.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -23,7 +23,7 @@
</span><span class="cx">  * THE POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx">  */
</span><span class="cx"> 
</span><del>-#if PLATFORM(IOS)
</del><ins>+#if TARGET_OS_IPHONE
</ins><span class="cx"> 
</span><span class="cx"> #import &lt;Foundation/Foundation.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -42,4 +42,4 @@
</span><span class="cx"> 
</span><span class="cx"> @end
</span><span class="cx"> 
</span><del>-#endif // PLATFORM(IOS)
</del><ins>+#endif
</ins></span></pre></div>
<a id="branchesjsCStackSourceWebKitmacConfigurationsBasexcconfig"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit/mac/Configurations/Base.xcconfig (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit/mac/Configurations/Base.xcconfig        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit/mac/Configurations/Base.xcconfig        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -68,7 +68,7 @@
</span><span class="cx"> LINKER_DISPLAYS_MANGLED_NAMES = YES;
</span><span class="cx"> OTHER_MIGFLAGS = -F$(BUILT_PRODUCTS_DIR);
</span><span class="cx"> PREBINDING = NO;
</span><del>-WARNING_CFLAGS = -Wall -Wextra -Wchar-subscripts -Wextra-tokens -Wformat-security -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wno-unused-parameter -Wpacked -Wpointer-arith -Wredundant-decls -Wundef -Wwrite-strings -Wexit-time-destructors -Wglobal-constructors -Wtautological-compare;
</del><ins>+WARNING_CFLAGS = -Wall -Wextra -Wchar-subscripts -Wextra-tokens -Wformat-security -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wno-unused-parameter -Wpacked -Wpointer-arith -Wredundant-decls -Wundef -Wwrite-strings -Wexit-time-destructors -Wglobal-constructors -Wtautological-compare -Wimplicit-fallthrough;
</ins><span class="cx"> 
</span><span class="cx"> TARGET_MAC_OS_X_VERSION_MAJOR = $(MAC_OS_X_VERSION_MAJOR);
</span><span class="cx"> 
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKitmacConfigurationsFeatureDefinesxcconfig"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -113,6 +113,7 @@
</span><span class="cx"> ENABLE_INPUT_TYPE_WEEK = $(ENABLE_INPUT_TYPE_WEEK_$(PLATFORM_NAME));
</span><span class="cx"> ENABLE_INPUT_TYPE_WEEK_iphoneos = ENABLE_INPUT_TYPE_WEEK;
</span><span class="cx"> ENABLE_INPUT_TYPE_WEEK_iphonesimulator = $(ENABLE_INPUT_TYPE_WEEK_iphoneos);
</span><ins>+ENABLE_INSPECTOR = ENABLE_INSPECTOR;
</ins><span class="cx"> ENABLE_IOS_AIRPLAY = $(ENABLE_IOS_AIRPLAY_$(PLATFORM_NAME));
</span><span class="cx"> ENABLE_IOS_AIRPLAY_iphoneos = ENABLE_IOS_AIRPLAY;
</span><span class="cx"> ENABLE_IOS_AIRPLAY_iphonesimulator = $(ENABLE_IOS_AIRPLAY_iphoneos);
</span><span class="lines">@@ -195,4 +196,4 @@
</span><span class="cx"> ENABLE_FTL_JIT = ;
</span><span class="cx"> ENABLE_LLINT_C_LOOP = ;
</span><span class="cx"> 
</span><del>-FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS3_CONDITIONAL_RULES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILTERS) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IFRAME_SEAMLESS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_IOS_AIRPLAY) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBPIXEL_LAYOUT) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG) $(ENABLE_SVG_FONTS) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WORKERS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(FEATURE_DEFINES_$(PLATFORM_NAME));
</del><ins>+FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS3_CONDITIONAL_RULES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILTERS) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IFRAME_SEAMLESS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INSPECTOR) $(ENABLE_IOS_AIRPLAY) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBPIXEL_LAYOUT) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG) $(ENABLE_SVG_FONTS) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WORKERS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(FEATURE_DEFINES_$(PLATFORM_NAME));
</ins></span></pre></div>
<a id="branchesjsCStackSourceWebKitmacHistoryBinaryPropertyListcpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit/mac/History/BinaryPropertyList.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit/mac/History/BinaryPropertyList.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit/mac/History/BinaryPropertyList.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -749,19 +749,26 @@
</span><span class="cx"> #ifdef __LP64__
</span><span class="cx">     case 8:
</span><span class="cx">         appendByte(reference &gt;&gt; 56);
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">     case 7:
</span><span class="cx">         appendByte(reference &gt;&gt; 48);
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">     case 6:
</span><span class="cx">         appendByte(reference &gt;&gt; 40);
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">     case 5:
</span><span class="cx">         appendByte(reference &gt;&gt; 32);
</span><ins>+        FALLTHROUGH;
</ins><span class="cx"> #endif
</span><span class="cx">     case 4:
</span><span class="cx">         appendByte(reference &gt;&gt; 24);
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">     case 3:
</span><span class="cx">         appendByte(reference &gt;&gt; 16);
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">     case 2:
</span><span class="cx">         appendByte(reference &gt;&gt; 8);
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">     case 1:
</span><span class="cx">         appendByte(reference);
</span><span class="cx">     }
</span><span class="lines">@@ -778,19 +785,26 @@
</span><span class="cx"> #ifdef __LP64__
</span><span class="cx">     case 8:
</span><span class="cx">         offsetTableEntry[-8] = offset &gt;&gt; 56;
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">     case 7:
</span><span class="cx">         offsetTableEntry[-7] = offset &gt;&gt; 48;
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">     case 6:
</span><span class="cx">         offsetTableEntry[-6] = offset &gt;&gt; 40;
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">     case 5:
</span><span class="cx">         offsetTableEntry[-5] = offset &gt;&gt; 32;
</span><ins>+        FALLTHROUGH;
</ins><span class="cx"> #endif
</span><span class="cx">     case 4:
</span><span class="cx">         offsetTableEntry[-4] = offset &gt;&gt; 24;
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">     case 3:
</span><span class="cx">         offsetTableEntry[-3] = offset &gt;&gt; 16;
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">     case 2:
</span><span class="cx">         offsetTableEntry[-2] = offset &gt;&gt; 8;
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">     case 1:
</span><span class="cx">         offsetTableEntry[-1] = offset;
</span><span class="cx">     }
</span><span class="lines">@@ -802,19 +816,26 @@
</span><span class="cx"> #ifdef __LP64__
</span><span class="cx">     case 8:
</span><span class="cx">         *--m_currentAggregateBufferByte = reference &gt;&gt; 56;
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">     case 7:
</span><span class="cx">         *--m_currentAggregateBufferByte = reference &gt;&gt; 48;
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">     case 6:
</span><span class="cx">         *--m_currentAggregateBufferByte = reference &gt;&gt; 40;
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">     case 5:
</span><span class="cx">         *--m_currentAggregateBufferByte = reference &gt;&gt; 32;
</span><ins>+        FALLTHROUGH;
</ins><span class="cx"> #endif
</span><span class="cx">     case 4:
</span><span class="cx">         *--m_currentAggregateBufferByte = reference &gt;&gt; 24;
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">     case 3:
</span><span class="cx">         *--m_currentAggregateBufferByte = reference &gt;&gt; 16;
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">     case 2:
</span><span class="cx">         *--m_currentAggregateBufferByte = reference &gt;&gt; 8;
</span><ins>+        FALLTHROUGH;
</ins><span class="cx">     case 1:
</span><span class="cx">         *--m_currentAggregateBufferByte = reference;
</span><span class="cx">     }
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKitmacWebViewWebPDFViewmm"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit/mac/WebView/WebPDFView.mm (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit/mac/WebView/WebPDFView.mm        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit/mac/WebView/WebPDFView.mm        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -1037,6 +1037,7 @@
</span><span class="cx">             PlatformKeyboardEvent pe = PlatformEventFactory::createPlatformKeyboardEvent(nsEvent);
</span><span class="cx">             pe.disambiguateKeyDownEvent(PlatformEvent::RawKeyDown);
</span><span class="cx">             event = KeyboardEvent::create(pe, 0);
</span><ins>+            break;
</ins><span class="cx">         }
</span><span class="cx">         default:
</span><span class="cx">             break;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKitmacWebViewWebPreferenceKeysPrivateh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -204,7 +204,7 @@
</span><span class="cx"> #define WebKitDiskImageCacheSavedCacheDirectoryKey @&quot;WebKitDiskImageCacheSavedCacheDirectory&quot;
</span><span class="cx"> 
</span><span class="cx"> #if TARGET_OS_IPHONE
</span><del>-#if ENABLE(REMOTE_INSPECTOR)
</del><ins>+#if !defined(ENABLE_REMOTE_INSPECTOR) || ENABLE_REMOTE_INSPECTOR
</ins><span class="cx"> #define WebKitTextFieldRemoteInspectionEnabledPreferenceKey @&quot;WebKitTextFieldRemoteInspectionEnabled&quot;
</span><span class="cx"> #endif
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKitmacpostprocessheaderssh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit/mac/postprocess-headers.sh (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit/mac/postprocess-headers.sh        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit/mac/postprocess-headers.sh        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -7,11 +7,11 @@
</span><span class="cx">     local unifdefOptions sedExpression
</span><span class="cx"> 
</span><span class="cx">     if [[ ${PLATFORM_NAME} == iphoneos ]]; then
</span><del>-        unifdefOptions=&quot;-DTARGET_OS_EMBEDDED=1 -DTARGET_OS_IPHONE=1 -DTARGET_IPHONE_SIMULATOR=0 -DENABLE_IOS_TOUCH_EVENTS=1 -DENABLE_IOS_GESTURE_EVENTS=1&quot;;
</del><ins>+        unifdefOptions=&quot;-DTARGET_OS_EMBEDDED=1 -DTARGET_OS_IPHONE=1 -DTARGET_IPHONE_SIMULATOR=0&quot;;
</ins><span class="cx">     elif [[ ${PLATFORM_NAME} == iphonesimulator ]]; then
</span><del>-        unifdefOptions=&quot;-DTARGET_OS_EMBEDDED=0 -DTARGET_OS_IPHONE=1 -DTARGET_IPHONE_SIMULATOR=1 -DENABLE_IOS_TOUCH_EVENTS=1 -DENABLE_IOS_GESTURE_EVENTS=1&quot;;
</del><ins>+        unifdefOptions=&quot;-DTARGET_OS_EMBEDDED=0 -DTARGET_OS_IPHONE=1 -DTARGET_IPHONE_SIMULATOR=1&quot;;
</ins><span class="cx">     else
</span><del>-        unifdefOptions=&quot;-DTARGET_OS_EMBEDDED=0 -DTARGET_OS_IPHONE=0 -DTARGET_IPHONE_SIMULATOR=0 -DENABLE_IOS_TOUCH_EVENTS=0 -DENABLE_IOS_GESTURE_EVENTS=0&quot;;
</del><ins>+        unifdefOptions=&quot;-DTARGET_OS_EMBEDDED=0 -DTARGET_OS_IPHONE=0 -DTARGET_IPHONE_SIMULATOR=0&quot;;
</ins><span class="cx">     fi
</span><span class="cx"> 
</span><span class="cx">     if [[ ${PLATFORM_NAME} == iphone* ]]; then
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2ConfigurationsBasexcconfig"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/Configurations/Base.xcconfig (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/Configurations/Base.xcconfig        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/Configurations/Base.xcconfig        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -68,7 +68,7 @@
</span><span class="cx"> LINKER_DISPLAYS_MANGLED_NAMES = YES;
</span><span class="cx"> OTHER_MIGFLAGS = -F$(BUILT_PRODUCTS_DIR);
</span><span class="cx"> PREBINDING = NO;
</span><del>-WARNING_CFLAGS = -Wall -Wextra -Wchar-subscripts -Wextra-tokens -Wformat-security -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wno-unused-parameter -Wpacked -Wpointer-arith -Wredundant-decls -Wundef -Wwrite-strings -Wexit-time-destructors -Wglobal-constructors -Wtautological-compare;
</del><ins>+WARNING_CFLAGS = -Wall -Wextra -Wchar-subscripts -Wextra-tokens -Wformat-security -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wno-unused-parameter -Wpacked -Wpointer-arith -Wredundant-decls -Wundef -Wwrite-strings -Wexit-time-destructors -Wglobal-constructors -Wtautological-compare -Wimplicit-fallthrough;
</ins><span class="cx"> 
</span><span class="cx"> TARGET_MAC_OS_X_VERSION_MAJOR = $(MAC_OS_X_VERSION_MAJOR);
</span><span class="cx"> 
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2ConfigurationsFeatureDefinesxcconfig"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/Configurations/FeatureDefines.xcconfig (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/Configurations/FeatureDefines.xcconfig        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/Configurations/FeatureDefines.xcconfig        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -113,6 +113,7 @@
</span><span class="cx"> ENABLE_INPUT_TYPE_WEEK = $(ENABLE_INPUT_TYPE_WEEK_$(PLATFORM_NAME));
</span><span class="cx"> ENABLE_INPUT_TYPE_WEEK_iphoneos = ENABLE_INPUT_TYPE_WEEK;
</span><span class="cx"> ENABLE_INPUT_TYPE_WEEK_iphonesimulator = $(ENABLE_INPUT_TYPE_WEEK_iphoneos);
</span><ins>+ENABLE_INSPECTOR = ENABLE_INSPECTOR;
</ins><span class="cx"> ENABLE_IOS_AIRPLAY = $(ENABLE_IOS_AIRPLAY_$(PLATFORM_NAME));
</span><span class="cx"> ENABLE_IOS_AIRPLAY_iphoneos = ENABLE_IOS_AIRPLAY;
</span><span class="cx"> ENABLE_IOS_AIRPLAY_iphonesimulator = $(ENABLE_IOS_AIRPLAY_iphoneos);
</span><span class="lines">@@ -195,4 +196,4 @@
</span><span class="cx"> ENABLE_FTL_JIT = ;
</span><span class="cx"> ENABLE_LLINT_C_LOOP = ;
</span><span class="cx"> 
</span><del>-FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS3_CONDITIONAL_RULES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILTERS) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IFRAME_SEAMLESS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_IOS_AIRPLAY) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBPIXEL_LAYOUT) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG) $(ENABLE_SVG_FONTS) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WORKERS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(FEATURE_DEFINES_$(PLATFORM_NAME));
</del><ins>+FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS3_CONDITIONAL_RULES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILTERS) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IFRAME_SEAMLESS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INSPECTOR) $(ENABLE_IOS_AIRPLAY) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBPIXEL_LAYOUT) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG) $(ENABLE_SVG_FONTS) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_ANIMATIONS) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WORKERS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(FEATURE_DEFINES_$(PLATFORM_NAME));
</ins></span></pre></div>
<a id="branchesjsCStackSourceWebKit2DatabaseProcessIndexedDBDatabaseProcessIDBConnectioncpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -30,7 +30,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;DatabaseProcess.h&quot;
</span><span class="cx"> #include &quot;DatabaseToWebProcessConnection.h&quot;
</span><del>-#include &quot;IDBTransactionIdentifier.h&quot;
</del><ins>+#include &quot;IDBIdentifier.h&quot;
</ins><span class="cx"> #include &quot;Logging.h&quot;
</span><span class="cx"> #include &quot;UniqueIDBDatabase.h&quot;
</span><span class="cx"> #include &quot;WebCoreArgumentCoders.h&quot;
</span><span class="lines">@@ -91,7 +91,7 @@
</span><span class="cx"> 
</span><span class="cx">     IndexedDB::TransactionMode mode = static_cast&lt;IndexedDB::TransactionMode&gt;(intMode);
</span><span class="cx">     RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
</span><del>-    m_uniqueIDBDatabase-&gt;openTransaction(IDBTransactionIdentifier(*this, transactionID), objectStoreIDs, mode, [connection, requestID](bool success) {
</del><ins>+    m_uniqueIDBDatabase-&gt;openTransaction(IDBIdentifier(*this, transactionID), objectStoreIDs, mode, [connection, requestID](bool success) {
</ins><span class="cx">         connection-&gt;send(Messages::WebIDBServerConnection::DidOpenTransaction(requestID, success));
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -103,7 +103,7 @@
</span><span class="cx">     LOG(IDB, &quot;DatabaseProcess beginTransaction request ID %llu&quot;, requestID);
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
</span><del>-    m_uniqueIDBDatabase-&gt;beginTransaction(IDBTransactionIdentifier(*this, transactionID), [connection, requestID](bool success) {
</del><ins>+    m_uniqueIDBDatabase-&gt;beginTransaction(IDBIdentifier(*this, transactionID), [connection, requestID](bool success) {
</ins><span class="cx">         connection-&gt;send(Messages::WebIDBServerConnection::DidBeginTransaction(requestID, success));
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -115,7 +115,7 @@
</span><span class="cx">     LOG(IDB, &quot;DatabaseProcess commitTransaction request ID %llu&quot;, requestID);
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
</span><del>-    m_uniqueIDBDatabase-&gt;commitTransaction(IDBTransactionIdentifier(*this, transactionID), [connection, requestID](bool success) {
</del><ins>+    m_uniqueIDBDatabase-&gt;commitTransaction(IDBIdentifier(*this, transactionID), [connection, requestID](bool success) {
</ins><span class="cx">         connection-&gt;send(Messages::WebIDBServerConnection::DidCommitTransaction(requestID, success));
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -127,7 +127,7 @@
</span><span class="cx">     LOG(IDB, &quot;DatabaseProcess resetTransaction request ID %llu&quot;, requestID);
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
</span><del>-    m_uniqueIDBDatabase-&gt;resetTransaction(IDBTransactionIdentifier(*this, transactionID), [connection, requestID](bool success) {
</del><ins>+    m_uniqueIDBDatabase-&gt;resetTransaction(IDBIdentifier(*this, transactionID), [connection, requestID](bool success) {
</ins><span class="cx">         connection-&gt;send(Messages::WebIDBServerConnection::DidResetTransaction(requestID, success));
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -139,7 +139,7 @@
</span><span class="cx">     LOG(IDB, &quot;DatabaseProcess rollbackTransaction request ID %llu&quot;, requestID);
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
</span><del>-    m_uniqueIDBDatabase-&gt;rollbackTransaction(IDBTransactionIdentifier(*this, transactionID), [connection, requestID](bool success) {
</del><ins>+    m_uniqueIDBDatabase-&gt;rollbackTransaction(IDBIdentifier(*this, transactionID), [connection, requestID](bool success) {
</ins><span class="cx">         connection-&gt;send(Messages::WebIDBServerConnection::DidRollbackTransaction(requestID, success));
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -151,7 +151,7 @@
</span><span class="cx">     LOG(IDB, &quot;DatabaseProcess changeDatabaseVersion request ID %llu, new version %llu&quot;, requestID, newVersion);
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
</span><del>-    m_uniqueIDBDatabase-&gt;changeDatabaseVersion(IDBTransactionIdentifier(*this, transactionID), newVersion, [connection, requestID](bool success) {
</del><ins>+    m_uniqueIDBDatabase-&gt;changeDatabaseVersion(IDBIdentifier(*this, transactionID), newVersion, [connection, requestID](bool success) {
</ins><span class="cx">         connection-&gt;send(Messages::WebIDBServerConnection::DidChangeDatabaseVersion(requestID, success));
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -162,7 +162,7 @@
</span><span class="cx"> 
</span><span class="cx">     LOG(IDB, &quot;DatabaseProcess createObjectStore request ID %llu, object store name '%s'&quot;, requestID, metadata.name.utf8().data());
</span><span class="cx">     RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
</span><del>-    m_uniqueIDBDatabase-&gt;createObjectStore(IDBTransactionIdentifier(*this, transactionID), metadata, [connection, requestID](bool success) {
</del><ins>+    m_uniqueIDBDatabase-&gt;createObjectStore(IDBIdentifier(*this, transactionID), metadata, [connection, requestID](bool success) {
</ins><span class="cx">         connection-&gt;send(Messages::WebIDBServerConnection::DidCreateObjectStore(requestID, success));
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -173,7 +173,7 @@
</span><span class="cx"> 
</span><span class="cx">     LOG(IDB, &quot;DatabaseProcess deleteObjectStore request ID %llu, object store id %lli&quot;, requestID, objectStoreID);
</span><span class="cx">     RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
</span><del>-    m_uniqueIDBDatabase-&gt;deleteObjectStore(IDBTransactionIdentifier(*this, transactionID), objectStoreID, [connection, requestID](bool success) {
</del><ins>+    m_uniqueIDBDatabase-&gt;deleteObjectStore(IDBIdentifier(*this, transactionID), objectStoreID, [connection, requestID](bool success) {
</ins><span class="cx">         connection-&gt;send(Messages::WebIDBServerConnection::DidDeleteObjectStore(requestID, success));
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -184,7 +184,7 @@
</span><span class="cx"> 
</span><span class="cx">     LOG(IDB, &quot;DatabaseProcess clearObjectStore request ID %llu, object store id %lli&quot;, requestID, objectStoreID);
</span><span class="cx">     RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
</span><del>-    m_uniqueIDBDatabase-&gt;clearObjectStore(IDBTransactionIdentifier(*this, transactionID), objectStoreID, [connection, requestID](bool success) {
</del><ins>+    m_uniqueIDBDatabase-&gt;clearObjectStore(IDBIdentifier(*this, transactionID), objectStoreID, [connection, requestID](bool success) {
</ins><span class="cx">         connection-&gt;send(Messages::WebIDBServerConnection::DidClearObjectStore(requestID, success));
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -195,7 +195,7 @@
</span><span class="cx"> 
</span><span class="cx">     LOG(IDB, &quot;DatabaseProcess createIndex request ID %llu, object store id %lli&quot;, requestID, objectStoreID);
</span><span class="cx">     RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
</span><del>-    m_uniqueIDBDatabase-&gt;createIndex(IDBTransactionIdentifier(*this, transactionID), objectStoreID, metadata, [connection, requestID](bool success) {
</del><ins>+    m_uniqueIDBDatabase-&gt;createIndex(IDBIdentifier(*this, transactionID), objectStoreID, metadata, [connection, requestID](bool success) {
</ins><span class="cx">         connection-&gt;send(Messages::WebIDBServerConnection::DidCreateIndex(requestID, success));
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -206,7 +206,7 @@
</span><span class="cx"> 
</span><span class="cx">     LOG(IDB, &quot;DatabaseProcess deleteIndex request ID %llu, object store id %lli&quot;, requestID, objectStoreID);
</span><span class="cx">     RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
</span><del>-    m_uniqueIDBDatabase-&gt;deleteIndex(IDBTransactionIdentifier(*this, transactionID), objectStoreID, indexID, [connection, requestID](bool success) {
</del><ins>+    m_uniqueIDBDatabase-&gt;deleteIndex(IDBIdentifier(*this, transactionID), objectStoreID, indexID, [connection, requestID](bool success) {
</ins><span class="cx">         connection-&gt;send(Messages::WebIDBServerConnection::DidDeleteIndex(requestID, success));
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -217,7 +217,7 @@
</span><span class="cx"> 
</span><span class="cx">     LOG(IDB, &quot;DatabaseProcess putRecord request ID %llu, object store id %lli&quot;, requestID, objectStoreID);
</span><span class="cx">     RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
</span><del>-    m_uniqueIDBDatabase-&gt;putRecord(IDBTransactionIdentifier(*this, transactionID), objectStoreID, key, value, putMode, indexIDs, indexKeys, [connection, requestID](const IDBKeyData&amp; keyData, uint32_t errorCode, const String&amp; errorMessage) {
</del><ins>+    m_uniqueIDBDatabase-&gt;putRecord(IDBIdentifier(*this, transactionID), objectStoreID, key, value, putMode, indexIDs, indexKeys, [connection, requestID](const IDBKeyData&amp; keyData, uint32_t errorCode, const String&amp; errorMessage) {
</ins><span class="cx">         connection-&gt;send(Messages::WebIDBServerConnection::DidPutRecord(requestID, keyData, errorCode, errorMessage));
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -228,7 +228,7 @@
</span><span class="cx"> 
</span><span class="cx">     LOG(IDB, &quot;DatabaseProcess getRecord request ID %llu, object store id %lli&quot;, requestID, objectStoreID);
</span><span class="cx">     RefPtr&lt;DatabaseProcessIDBConnection&gt; connection(this);
</span><del>-    m_uniqueIDBDatabase-&gt;getRecord(IDBTransactionIdentifier(*this, transactionID), objectStoreID, indexID, keyRange, static_cast&lt;IndexedDB::CursorType&gt;(cursorType), [connection, requestID](const IDBGetResult&amp; getResult, uint32_t errorCode, const String&amp; errorMessage) {
</del><ins>+    m_uniqueIDBDatabase-&gt;getRecord(IDBIdentifier(*this, transactionID), objectStoreID, indexID, keyRange, static_cast&lt;IndexedDB::CursorType&gt;(cursorType), [connection, requestID](const IDBGetResult&amp; getResult, uint32_t errorCode, const String&amp; errorMessage) {
</ins><span class="cx">         connection-&gt;send(Messages::WebIDBServerConnection::DidGetRecord(requestID, getResult, errorCode, errorMessage));
</span><span class="cx">     });
</span><span class="cx"> }
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2DatabaseProcessIndexedDBIDBIdentifierh"></a>
<div class="addfile"><h4>Added: branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/IDBIdentifier.h (0 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/IDBIdentifier.h                                (rev 0)
+++ branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/IDBIdentifier.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -0,0 +1,226 @@
</span><ins>+/*
+ * Copyright (C) 2013 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef IDBIdentifier_h
+#define IDBIdentifier_h
+
+#if ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
+
+#include &lt;wtf/HashTraits.h&gt;
+#include &lt;wtf/StringHasher.h&gt;
+
+namespace WebKit {
+
+class DatabaseProcessIDBConnection;
+
+class IDBIdentifier {
+public:
+    IDBIdentifier()
+        : m_connection(nullptr)
+        , m_identifier(0)
+    {
+    }
+
+    IDBIdentifier(DatabaseProcessIDBConnection&amp; connection, int64_t identifier)
+        : m_connection(&amp;connection)
+        , m_identifier(identifier)
+    {
+    }
+
+    IDBIdentifier isolatedCopy() const
+    {
+        return *this;
+    }
+
+    bool isEmpty() const
+    {
+        return !m_connection &amp;&amp; !m_identifier;
+    }
+
+    unsigned hash() const
+    {
+        uint64_t hashCodes[2] = { reinterpret_cast&lt;uint64_t&gt;(m_connection), static_cast&lt;uint64_t&gt;(m_identifier) };
+        return StringHasher::hashMemory&lt;sizeof(hashCodes)&gt;(hashCodes);
+    }
+
+    bool operator==(const IDBIdentifier&amp; other) const
+    {
+        return m_connection == other.m_connection &amp;&amp; m_identifier == other.m_identifier;
+    }
+
+    IDBIdentifier(WTF::HashTableDeletedValueType)
+        : m_connection(nullptr)
+        , m_identifier(-1)
+    {
+    }
+
+    bool isHashTableDeletedValue() const
+    {
+        return !m_connection &amp;&amp; m_identifier == -1;
+    }
+
+private:
+    // If any members are added that cannot be safely copied across threads, isolatedCopy() must be updated.
+    DatabaseProcessIDBConnection* m_connection;
+    int64_t m_identifier;
+};
+
+struct IDBIdentifierHash {
+    static unsigned hash(const IDBIdentifier&amp; a) { return a.hash(); }
+    static bool equal(const IDBIdentifier&amp; a, const IDBIdentifier&amp; b) { return a == b; }
+    static const bool safeToCompareToEmptyOrDeleted = false;
+};
+
+struct IDBIdentifierHashTraits : WTF::SimpleClassHashTraits&lt;IDBIdentifier&gt; {
+    static const bool hasIsEmptyValueFunction = true;
+    static bool isEmptyValue(const IDBIdentifier&amp; info) { return info.isEmpty(); }
+};
+
+} // namespace WebKit
+
+namespace WTF {
+
+template&lt;&gt; struct HashTraits&lt;WebKit::IDBIdentifier&gt; : WebKit::IDBIdentifierHashTraits { };
+template&lt;&gt; struct DefaultHash&lt;WebKit::IDBIdentifier&gt; {
+    typedef WebKit::IDBIdentifierHash Hash;
+};
+
+} // namespace WTF
+
+#endif // ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
+#endif // IDBIdentifier_h
+/*
+ * Copyright (C) 2013 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef IDBIdentifier_h
+#define IDBIdentifier_h
+
+#if ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
+
+#include &lt;wtf/HashTraits.h&gt;
+#include &lt;wtf/StringHasher.h&gt;
+
+namespace WebKit {
+
+class DatabaseProcessIDBConnection;
+
+class IDBIdentifier {
+public:
+    IDBIdentifier()
+        : m_connection(nullptr)
+        , m_identifier(0)
+    {
+    }
+
+    IDBIdentifier(DatabaseProcessIDBConnection&amp; connection, int64_t identifier)
+        : m_connection(&amp;connection)
+        , m_identifier(identifier)
+    {
+    }
+
+    IDBIdentifier isolatedCopy() const
+    {
+        return *this;
+    }
+
+    bool isEmpty() const
+    {
+        return !m_connection &amp;&amp; !m_identifier;
+    }
+
+    unsigned hash() const
+    {
+        uint64_t hashCodes[2] = { reinterpret_cast&lt;uint64_t&gt;(m_connection), static_cast&lt;uint64_t&gt;(m_identifier) };
+        return StringHasher::hashMemory&lt;sizeof(hashCodes)&gt;(hashCodes);
+    }
+
+    bool operator==(const IDBIdentifier&amp; other) const
+    {
+        return m_connection == other.m_connection &amp;&amp; m_identifier == other.m_identifier;
+    }
+
+    IDBIdentifier(WTF::HashTableDeletedValueType)
+        : m_connection(nullptr)
+        , m_identifier(-1)
+    {
+    }
+
+    bool isHashTableDeletedValue() const
+    {
+        return !m_connection &amp;&amp; m_identifier == -1;
+    }
+
+private:
+    // If any members are added that cannot be safely copied across threads, isolatedCopy() must be updated.
+    DatabaseProcessIDBConnection* m_connection;
+    int64_t m_identifier;
+};
+
+struct IDBIdentifierHash {
+    static unsigned hash(const IDBIdentifier&amp; a) { return a.hash(); }
+    static bool equal(const IDBIdentifier&amp; a, const IDBIdentifier&amp; b) { return a == b; }
+    static const bool safeToCompareToEmptyOrDeleted = false;
+};
+
+struct IDBIdentifierHashTraits : WTF::SimpleClassHashTraits&lt;IDBIdentifier&gt; {
+    static const bool hasIsEmptyValueFunction = true;
+    static bool isEmptyValue(const IDBIdentifier&amp; info) { return info.isEmpty(); }
+};
+
+} // namespace WebKit
+
+namespace WTF {
+
+template&lt;&gt; struct HashTraits&lt;WebKit::IDBIdentifier&gt; : WebKit::IDBIdentifierHashTraits { };
+template&lt;&gt; struct DefaultHash&lt;WebKit::IDBIdentifier&gt; {
+    typedef WebKit::IDBIdentifierHash Hash;
+};
+
+} // namespace WTF
+
+#endif // ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
+#endif // IDBIdentifier_h
</ins></span></pre></div>
<a id="branchesjsCStackSourceWebKit2DatabaseProcessIndexedDBIDBTransactionIdentifierh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/IDBTransactionIdentifier.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/IDBTransactionIdentifier.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/IDBTransactionIdentifier.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -1,113 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef IDBTransactionIdentifier_h
-#define IDBTransactionIdentifier_h
-
-#if ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-
-#include &lt;wtf/HashTraits.h&gt;
-#include &lt;wtf/StringHasher.h&gt;
-
-namespace WebKit {
-
-class DatabaseProcessIDBConnection;
-
-class IDBTransactionIdentifier {
-public:
-    IDBTransactionIdentifier()
-        : m_connection(nullptr)
-        , m_transactionID(0)
-    {
-    }
-
-    IDBTransactionIdentifier(DatabaseProcessIDBConnection&amp; connection, int64_t transactionID)
-        : m_connection(&amp;connection)
-        , m_transactionID(transactionID)
-    {
-    }
-
-    IDBTransactionIdentifier isolatedCopy() const
-    {
-        return *this;
-    }
-
-    bool isEmpty() const
-    {
-        return !m_connection &amp;&amp; !m_transactionID;
-    }
-
-    unsigned hash() const
-    {
-        uint64_t hashCodes[2] = { reinterpret_cast&lt;uint64_t&gt;(m_connection), static_cast&lt;uint64_t&gt;(m_transactionID) };
-        return StringHasher::hashMemory&lt;sizeof(hashCodes)&gt;(hashCodes);
-    }
-
-    bool operator==(const IDBTransactionIdentifier&amp; other) const
-    {
-        return m_connection == other.m_connection &amp;&amp; m_transactionID == other.m_transactionID;
-    }
-
-    IDBTransactionIdentifier(WTF::HashTableDeletedValueType)
-        : m_connection(nullptr)
-        , m_transactionID(-1)
-    {
-    }
-
-    bool isHashTableDeletedValue() const
-    {
-        return !m_connection &amp;&amp; m_transactionID == -1;
-    }
-
-private:
-    // If any members are added that cannot be safely copied across threads, isolatedCopy() must be updated.
-    DatabaseProcessIDBConnection* m_connection;
-    int64_t m_transactionID;
-};
-
-struct IDBTransactionIdentifierHash {
-    static unsigned hash(const IDBTransactionIdentifier&amp; a) { return a.hash(); }
-    static bool equal(const IDBTransactionIdentifier&amp; a, const IDBTransactionIdentifier&amp; b) { return a == b; }
-    static const bool safeToCompareToEmptyOrDeleted = false;
-};
-
-struct IDBTransactionIdentifierHashTraits : WTF::SimpleClassHashTraits&lt;IDBTransactionIdentifier&gt; {
-    static const bool hasIsEmptyValueFunction = true;
-    static bool isEmptyValue(const IDBTransactionIdentifier&amp; info) { return info.isEmpty(); }
-};
-
-} // namespace WebKit
-
-namespace WTF {
-
-template&lt;&gt; struct HashTraits&lt;WebKit::IDBTransactionIdentifier&gt; : WebKit::IDBTransactionIdentifierHashTraits { };
-template&lt;&gt; struct DefaultHash&lt;WebKit::IDBTransactionIdentifier&gt; {
-    typedef WebKit::IDBTransactionIdentifierHash Hash;
-};
-
-} // namespace WTF
-
-#endif // ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
-#endif // IDBTransactionIdentifier_h
</del></span></pre></div>
<a id="branchesjsCStackSourceWebKit2DatabaseProcessIndexedDBUniqueIDBDatabasecpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -228,32 +228,32 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UniqueIDBDatabase::openTransaction(const IDBTransactionIdentifier&amp; identifier, const Vector&lt;int64_t&gt;&amp; objectStoreIDs, IndexedDB::TransactionMode mode, std::function&lt;void(bool)&gt; successCallback)
</del><ins>+void UniqueIDBDatabase::openTransaction(const IDBIdentifier&amp; transactionIdentifier, const Vector&lt;int64_t&gt;&amp; objectStoreIDs, IndexedDB::TransactionMode mode, std::function&lt;void(bool)&gt; successCallback)
</ins><span class="cx"> {
</span><del>-    postTransactionOperation(identifier, createAsyncTask(*this, &amp;UniqueIDBDatabase::openBackingStoreTransaction, identifier, objectStoreIDs, mode), successCallback);
</del><ins>+    postTransactionOperation(transactionIdentifier, createAsyncTask(*this, &amp;UniqueIDBDatabase::openBackingStoreTransaction, transactionIdentifier, objectStoreIDs, mode), successCallback);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UniqueIDBDatabase::beginTransaction(const IDBTransactionIdentifier&amp; identifier, std::function&lt;void(bool)&gt; successCallback)
</del><ins>+void UniqueIDBDatabase::beginTransaction(const IDBIdentifier&amp; transactionIdentifier, std::function&lt;void(bool)&gt; successCallback)
</ins><span class="cx"> {
</span><del>-    postTransactionOperation(identifier, createAsyncTask(*this, &amp;UniqueIDBDatabase::beginBackingStoreTransaction, identifier), successCallback);
</del><ins>+    postTransactionOperation(transactionIdentifier, createAsyncTask(*this, &amp;UniqueIDBDatabase::beginBackingStoreTransaction, transactionIdentifier), successCallback);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UniqueIDBDatabase::commitTransaction(const IDBTransactionIdentifier&amp; identifier, std::function&lt;void(bool)&gt; successCallback)
</del><ins>+void UniqueIDBDatabase::commitTransaction(const IDBIdentifier&amp; transactionIdentifier, std::function&lt;void(bool)&gt; successCallback)
</ins><span class="cx"> {
</span><del>-    postTransactionOperation(identifier, createAsyncTask(*this, &amp;UniqueIDBDatabase::commitBackingStoreTransaction, identifier), successCallback);
</del><ins>+    postTransactionOperation(transactionIdentifier, createAsyncTask(*this, &amp;UniqueIDBDatabase::commitBackingStoreTransaction, transactionIdentifier), successCallback);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UniqueIDBDatabase::resetTransaction(const IDBTransactionIdentifier&amp; identifier, std::function&lt;void(bool)&gt; successCallback)
</del><ins>+void UniqueIDBDatabase::resetTransaction(const IDBIdentifier&amp; transactionIdentifier, std::function&lt;void(bool)&gt; successCallback)
</ins><span class="cx"> {
</span><del>-    postTransactionOperation(identifier, createAsyncTask(*this, &amp;UniqueIDBDatabase::resetBackingStoreTransaction, identifier), successCallback);
</del><ins>+    postTransactionOperation(transactionIdentifier, createAsyncTask(*this, &amp;UniqueIDBDatabase::resetBackingStoreTransaction, transactionIdentifier), successCallback);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UniqueIDBDatabase::rollbackTransaction(const IDBTransactionIdentifier&amp; identifier, std::function&lt;void(bool)&gt; successCallback)
</del><ins>+void UniqueIDBDatabase::rollbackTransaction(const IDBIdentifier&amp; transactionIdentifier, std::function&lt;void(bool)&gt; successCallback)
</ins><span class="cx"> {
</span><del>-    postTransactionOperation(identifier, createAsyncTask(*this, &amp;UniqueIDBDatabase::rollbackBackingStoreTransaction, identifier), successCallback);
</del><ins>+    postTransactionOperation(transactionIdentifier, createAsyncTask(*this, &amp;UniqueIDBDatabase::rollbackBackingStoreTransaction, transactionIdentifier), successCallback);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UniqueIDBDatabase::postTransactionOperation(const IDBTransactionIdentifier&amp; identifier, std::unique_ptr&lt;AsyncTask&gt; task, std::function&lt;void(bool)&gt; successCallback)
</del><ins>+void UniqueIDBDatabase::postTransactionOperation(const IDBIdentifier&amp; transactionIdentifier, std::unique_ptr&lt;AsyncTask&gt; task, std::function&lt;void(bool)&gt; successCallback)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span><span class="cx"> 
</span><span class="lines">@@ -262,7 +262,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (m_pendingTransactionRequests.contains(identifier)) {
</del><ins>+    if (m_pendingTransactionRequests.contains(transactionIdentifier)) {
</ins><span class="cx">         LOG_ERROR(&quot;Attempting to queue an operation for a transaction that already has an operation pending. Each transaction should only have one operation pending at a time.&quot;);
</span><span class="cx">         successCallback(false);
</span><span class="cx">         return;
</span><span class="lines">@@ -276,21 +276,21 @@
</span><span class="cx">         successCallback(false);
</span><span class="cx">     });
</span><span class="cx"> 
</span><del>-    m_pendingTransactionRequests.add(identifier, request.release());
</del><ins>+    m_pendingTransactionRequests.add(transactionIdentifier, request.release());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UniqueIDBDatabase::didCompleteTransactionOperation(const IDBTransactionIdentifier&amp; identifier, bool success)
</del><ins>+void UniqueIDBDatabase::didCompleteTransactionOperation(const IDBIdentifier&amp; transactionIdentifier, bool success)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span><span class="cx"> 
</span><del>-    RefPtr&lt;AsyncRequest&gt; request = m_pendingTransactionRequests.take(identifier);
</del><ins>+    RefPtr&lt;AsyncRequest&gt; request = m_pendingTransactionRequests.take(transactionIdentifier);
</ins><span class="cx">     if (!request)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     request-&gt;completeRequest(success);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UniqueIDBDatabase::changeDatabaseVersion(const IDBTransactionIdentifier&amp; identifier, uint64_t newVersion, std::function&lt;void(bool)&gt; successCallback)
</del><ins>+void UniqueIDBDatabase::changeDatabaseVersion(const IDBIdentifier&amp; transactionIdentifier, uint64_t newVersion, std::function&lt;void(bool)&gt; successCallback)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span><span class="cx"> 
</span><span class="lines">@@ -314,7 +314,7 @@
</span><span class="cx">     uint64_t requestID = request-&gt;requestID();
</span><span class="cx">     m_pendingDatabaseTasks.add(requestID, request.release());
</span><span class="cx"> 
</span><del>-    postDatabaseTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::changeDatabaseVersionInBackingStore, requestID, identifier, newVersion));
</del><ins>+    postDatabaseTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::changeDatabaseVersionInBackingStore, requestID, transactionIdentifier, newVersion));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void UniqueIDBDatabase::didChangeDatabaseVersion(uint64_t requestID, bool success)
</span><span class="lines">@@ -355,7 +355,7 @@
</span><span class="cx">     request-&gt;completeRequest(success);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UniqueIDBDatabase::createObjectStore(const IDBTransactionIdentifier&amp; identifier, const IDBObjectStoreMetadata&amp; metadata, std::function&lt;void(bool)&gt; successCallback)
</del><ins>+void UniqueIDBDatabase::createObjectStore(const IDBIdentifier&amp; transactionIdentifier, const IDBObjectStoreMetadata&amp; metadata, std::function&lt;void(bool)&gt; successCallback)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span><span class="cx"> 
</span><span class="lines">@@ -380,10 +380,10 @@
</span><span class="cx">     uint64_t requestID = request-&gt;requestID();
</span><span class="cx">     m_pendingDatabaseTasks.add(requestID, request.release());
</span><span class="cx"> 
</span><del>-    postDatabaseTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::createObjectStoreInBackingStore, requestID, identifier, metadata));
</del><ins>+    postDatabaseTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::createObjectStoreInBackingStore, requestID, transactionIdentifier, metadata));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UniqueIDBDatabase::deleteObjectStore(const IDBTransactionIdentifier&amp; identifier, int64_t objectStoreID, std::function&lt;void(bool)&gt; successCallback)
</del><ins>+void UniqueIDBDatabase::deleteObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, std::function&lt;void(bool)&gt; successCallback)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span><span class="cx"> 
</span><span class="lines">@@ -407,10 +407,10 @@
</span><span class="cx">     uint64_t requestID = request-&gt;requestID();
</span><span class="cx">     m_pendingDatabaseTasks.add(requestID, request.release());
</span><span class="cx"> 
</span><del>-    postDatabaseTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::deleteObjectStoreInBackingStore, requestID, identifier, objectStoreID));
</del><ins>+    postDatabaseTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::deleteObjectStoreInBackingStore, requestID, transactionIdentifier, objectStoreID));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UniqueIDBDatabase::clearObjectStore(const IDBTransactionIdentifier&amp; identifier, int64_t objectStoreID, std::function&lt;void(bool)&gt; successCallback)
</del><ins>+void UniqueIDBDatabase::clearObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, std::function&lt;void(bool)&gt; successCallback)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span><span class="cx"> 
</span><span class="lines">@@ -430,10 +430,10 @@
</span><span class="cx">     uint64_t requestID = request-&gt;requestID();
</span><span class="cx">     m_pendingDatabaseTasks.add(requestID, request.release());
</span><span class="cx"> 
</span><del>-    postDatabaseTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::clearObjectStoreInBackingStore, requestID, identifier, objectStoreID));
</del><ins>+    postDatabaseTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::clearObjectStoreInBackingStore, requestID, transactionIdentifier, objectStoreID));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UniqueIDBDatabase::createIndex(const IDBTransactionIdentifier&amp; identifier, int64_t objectStoreID, const WebCore::IDBIndexMetadata&amp; metadata, std::function&lt;void(bool)&gt; successCallback)
</del><ins>+void UniqueIDBDatabase::createIndex(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBIndexMetadata&amp; metadata, std::function&lt;void(bool)&gt; successCallback)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span><span class="cx"> 
</span><span class="lines">@@ -464,10 +464,10 @@
</span><span class="cx">     uint64_t requestID = request-&gt;requestID();
</span><span class="cx">     m_pendingDatabaseTasks.add(requestID, request.release());
</span><span class="cx"> 
</span><del>-    postDatabaseTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::createIndexInBackingStore, requestID, identifier, objectStoreID, metadata));
</del><ins>+    postDatabaseTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::createIndexInBackingStore, requestID, transactionIdentifier, objectStoreID, metadata));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UniqueIDBDatabase::deleteIndex(const IDBTransactionIdentifier&amp; identifier, int64_t objectStoreID, int64_t indexID, std::function&lt;void(bool)&gt; successCallback)
</del><ins>+void UniqueIDBDatabase::deleteIndex(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID, std::function&lt;void(bool)&gt; successCallback)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span><span class="cx"> 
</span><span class="lines">@@ -498,10 +498,10 @@
</span><span class="cx">     uint64_t requestID = request-&gt;requestID();
</span><span class="cx">     m_pendingDatabaseTasks.add(requestID, request.release());
</span><span class="cx"> 
</span><del>-    postDatabaseTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::deleteIndexInBackingStore, requestID, identifier, objectStoreID, indexID));
</del><ins>+    postDatabaseTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::deleteIndexInBackingStore, requestID, transactionIdentifier, objectStoreID, indexID));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UniqueIDBDatabase::putRecord(const IDBTransactionIdentifier&amp; identifier, int64_t objectStoreID, const IDBKeyData&amp; keyData, const IPC::DataReference&amp; value, int64_t putMode, const Vector&lt;int64_t&gt;&amp; indexIDs, const Vector&lt;Vector&lt;IDBKeyData&gt;&gt;&amp; indexKeys, std::function&lt;void(const IDBKeyData&amp;, uint32_t, const String&amp;)&gt; callback)
</del><ins>+void UniqueIDBDatabase::putRecord(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const IDBKeyData&amp; keyData, const IPC::DataReference&amp; value, int64_t putMode, const Vector&lt;int64_t&gt;&amp; indexIDs, const Vector&lt;Vector&lt;IDBKeyData&gt;&gt;&amp; indexKeys, std::function&lt;void(const IDBKeyData&amp;, uint32_t, const String&amp;)&gt; callback)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span><span class="cx"> 
</span><span class="lines">@@ -521,10 +521,10 @@
</span><span class="cx">     uint64_t requestID = request-&gt;requestID();
</span><span class="cx">     m_pendingDatabaseTasks.add(requestID, request.release());
</span><span class="cx"> 
</span><del>-    postDatabaseTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::putRecordInBackingStore, requestID, identifier, m_metadata-&gt;objectStores.get(objectStoreID), keyData, value.vector(), putMode, indexIDs, indexKeys));
</del><ins>+    postDatabaseTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::putRecordInBackingStore, requestID, transactionIdentifier, m_metadata-&gt;objectStores.get(objectStoreID), keyData, value.vector(), putMode, indexIDs, indexKeys));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UniqueIDBDatabase::getRecord(const IDBTransactionIdentifier&amp; identifier, int64_t objectStoreID, int64_t indexID, const WebCore::IDBKeyRangeData&amp; keyRangeData, WebCore::IndexedDB::CursorType cursorType, std::function&lt;void(const WebCore::IDBGetResult&amp;, uint32_t, const String&amp;)&gt; callback)
</del><ins>+void UniqueIDBDatabase::getRecord(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID, const WebCore::IDBKeyRangeData&amp; keyRangeData, WebCore::IndexedDB::CursorType cursorType, std::function&lt;void(const WebCore::IDBGetResult&amp;, uint32_t, const String&amp;)&gt; callback)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span><span class="cx"> 
</span><span class="lines">@@ -544,120 +544,120 @@
</span><span class="cx">     uint64_t requestID = request-&gt;requestID();
</span><span class="cx">     m_pendingDatabaseTasks.add(requestID, request.release());
</span><span class="cx"> 
</span><del>-    postDatabaseTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::getRecordFromBackingStore, requestID, identifier, m_metadata-&gt;objectStores.get(objectStoreID), indexID, keyRangeData, cursorType));
</del><ins>+    postDatabaseTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::getRecordFromBackingStore, requestID, transactionIdentifier, m_metadata-&gt;objectStores.get(objectStoreID), indexID, keyRangeData, cursorType));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UniqueIDBDatabase::openBackingStoreTransaction(const IDBTransactionIdentifier&amp; identifier, const Vector&lt;int64_t&gt;&amp; objectStoreIDs, IndexedDB::TransactionMode mode)
</del><ins>+void UniqueIDBDatabase::openBackingStoreTransaction(const IDBIdentifier&amp; transactionIdentifier, const Vector&lt;int64_t&gt;&amp; objectStoreIDs, IndexedDB::TransactionMode mode)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!isMainThread());
</span><span class="cx">     ASSERT(m_backingStore);
</span><span class="cx"> 
</span><del>-    bool success = m_backingStore-&gt;establishTransaction(identifier, objectStoreIDs, mode);
</del><ins>+    bool success = m_backingStore-&gt;establishTransaction(transactionIdentifier, objectStoreIDs, mode);
</ins><span class="cx"> 
</span><del>-    postMainThreadTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::didCompleteTransactionOperation, identifier, success));
</del><ins>+    postMainThreadTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::didCompleteTransactionOperation, transactionIdentifier, success));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UniqueIDBDatabase::beginBackingStoreTransaction(const IDBTransactionIdentifier&amp; identifier)
</del><ins>+void UniqueIDBDatabase::beginBackingStoreTransaction(const IDBIdentifier&amp; transactionIdentifier)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!isMainThread());
</span><span class="cx">     ASSERT(m_backingStore);
</span><span class="cx"> 
</span><del>-    bool success = m_backingStore-&gt;beginTransaction(identifier);
</del><ins>+    bool success = m_backingStore-&gt;beginTransaction(transactionIdentifier);
</ins><span class="cx"> 
</span><del>-    postMainThreadTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::didCompleteTransactionOperation, identifier, success));
</del><ins>+    postMainThreadTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::didCompleteTransactionOperation, transactionIdentifier, success));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UniqueIDBDatabase::commitBackingStoreTransaction(const IDBTransactionIdentifier&amp; identifier)
</del><ins>+void UniqueIDBDatabase::commitBackingStoreTransaction(const IDBIdentifier&amp; transactionIdentifier)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!isMainThread());
</span><span class="cx">     ASSERT(m_backingStore);
</span><span class="cx"> 
</span><del>-    bool success = m_backingStore-&gt;commitTransaction(identifier);
</del><ins>+    bool success = m_backingStore-&gt;commitTransaction(transactionIdentifier);
</ins><span class="cx"> 
</span><del>-    postMainThreadTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::didCompleteTransactionOperation, identifier, success));
</del><ins>+    postMainThreadTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::didCompleteTransactionOperation, transactionIdentifier, success));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UniqueIDBDatabase::resetBackingStoreTransaction(const IDBTransactionIdentifier&amp; identifier)
</del><ins>+void UniqueIDBDatabase::resetBackingStoreTransaction(const IDBIdentifier&amp; transactionIdentifier)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!isMainThread());
</span><span class="cx">     ASSERT(m_backingStore);
</span><span class="cx"> 
</span><del>-    bool success = m_backingStore-&gt;resetTransaction(identifier);
</del><ins>+    bool success = m_backingStore-&gt;resetTransaction(transactionIdentifier);
</ins><span class="cx"> 
</span><del>-    postMainThreadTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::didCompleteTransactionOperation, identifier, success));
</del><ins>+    postMainThreadTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::didCompleteTransactionOperation, transactionIdentifier, success));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UniqueIDBDatabase::rollbackBackingStoreTransaction(const IDBTransactionIdentifier&amp; identifier)
</del><ins>+void UniqueIDBDatabase::rollbackBackingStoreTransaction(const IDBIdentifier&amp; transactionIdentifier)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!isMainThread());
</span><span class="cx">     ASSERT(m_backingStore);
</span><span class="cx"> 
</span><del>-    bool success = m_backingStore-&gt;rollbackTransaction(identifier);
</del><ins>+    bool success = m_backingStore-&gt;rollbackTransaction(transactionIdentifier);
</ins><span class="cx"> 
</span><del>-    postMainThreadTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::didCompleteTransactionOperation, identifier, success));
</del><ins>+    postMainThreadTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::didCompleteTransactionOperation, transactionIdentifier, success));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UniqueIDBDatabase::changeDatabaseVersionInBackingStore(uint64_t requestID, const IDBTransactionIdentifier&amp; identifier, uint64_t newVersion)
</del><ins>+void UniqueIDBDatabase::changeDatabaseVersionInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, uint64_t newVersion)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!isMainThread());
</span><span class="cx">     ASSERT(m_backingStore);
</span><span class="cx"> 
</span><del>-    bool success = m_backingStore-&gt;changeDatabaseVersion(identifier, newVersion);
</del><ins>+    bool success = m_backingStore-&gt;changeDatabaseVersion(transactionIdentifier, newVersion);
</ins><span class="cx"> 
</span><span class="cx">     postMainThreadTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::didChangeDatabaseVersion, requestID, success));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UniqueIDBDatabase::createObjectStoreInBackingStore(uint64_t requestID, const IDBTransactionIdentifier&amp; identifier, const IDBObjectStoreMetadata&amp; metadata)
</del><ins>+void UniqueIDBDatabase::createObjectStoreInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, const IDBObjectStoreMetadata&amp; metadata)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!isMainThread());
</span><span class="cx">     ASSERT(m_backingStore);
</span><span class="cx"> 
</span><del>-    bool success = m_backingStore-&gt;createObjectStore(identifier, metadata);
</del><ins>+    bool success = m_backingStore-&gt;createObjectStore(transactionIdentifier, metadata);
</ins><span class="cx"> 
</span><span class="cx">     postMainThreadTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::didCreateObjectStore, requestID, success));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UniqueIDBDatabase::deleteObjectStoreInBackingStore(uint64_t requestID, const IDBTransactionIdentifier&amp; identifier, int64_t objectStoreID)
</del><ins>+void UniqueIDBDatabase::deleteObjectStoreInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!isMainThread());
</span><span class="cx">     ASSERT(m_backingStore);
</span><span class="cx"> 
</span><del>-    bool success = m_backingStore-&gt;deleteObjectStore(identifier, objectStoreID);
</del><ins>+    bool success = m_backingStore-&gt;deleteObjectStore(transactionIdentifier, objectStoreID);
</ins><span class="cx"> 
</span><span class="cx">     postMainThreadTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::didDeleteObjectStore, requestID, success));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UniqueIDBDatabase::clearObjectStoreInBackingStore(uint64_t requestID, const IDBTransactionIdentifier&amp; identifier, int64_t objectStoreID)
</del><ins>+void UniqueIDBDatabase::clearObjectStoreInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!isMainThread());
</span><span class="cx">     ASSERT(m_backingStore);
</span><span class="cx"> 
</span><del>-    bool success = m_backingStore-&gt;clearObjectStore(identifier, objectStoreID);
</del><ins>+    bool success = m_backingStore-&gt;clearObjectStore(transactionIdentifier, objectStoreID);
</ins><span class="cx"> 
</span><span class="cx">     postMainThreadTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::didClearObjectStore, requestID, success));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UniqueIDBDatabase::createIndexInBackingStore(uint64_t requestID, const IDBTransactionIdentifier&amp; identifier, int64_t objectStoreID, const WebCore::IDBIndexMetadata&amp; metadata)
</del><ins>+void UniqueIDBDatabase::createIndexInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBIndexMetadata&amp; metadata)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!isMainThread());
</span><span class="cx">     ASSERT(m_backingStore);
</span><span class="cx"> 
</span><del>-    bool success = m_backingStore-&gt;createIndex(identifier, objectStoreID, metadata);
</del><ins>+    bool success = m_backingStore-&gt;createIndex(transactionIdentifier, objectStoreID, metadata);
</ins><span class="cx"> 
</span><span class="cx">     postMainThreadTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::didCreateIndex, requestID, success));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UniqueIDBDatabase::deleteIndexInBackingStore(uint64_t requestID, const IDBTransactionIdentifier&amp; identifier, int64_t objectStoreID, int64_t indexID)
</del><ins>+void UniqueIDBDatabase::deleteIndexInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!isMainThread());
</span><span class="cx">     ASSERT(m_backingStore);
</span><span class="cx"> 
</span><del>-    bool success = m_backingStore-&gt;deleteIndex(identifier, objectStoreID, indexID);
</del><ins>+    bool success = m_backingStore-&gt;deleteIndex(transactionIdentifier, objectStoreID, indexID);
</ins><span class="cx"> 
</span><span class="cx">     postMainThreadTask(createAsyncTask(*this, &amp;UniqueIDBDatabase::didDeleteIndex, requestID, success));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UniqueIDBDatabase::putRecordInBackingStore(uint64_t requestID, const IDBTransactionIdentifier&amp; transaction, const IDBObjectStoreMetadata&amp; objectStoreMetadata, const IDBKeyData&amp; keyData, const Vector&lt;uint8_t&gt;&amp; value, int64_t putMode, const Vector&lt;int64_t&gt;&amp; indexIDs, const Vector&lt;Vector&lt;IDBKeyData&gt;&gt;&amp; indexKeys)
</del><ins>+void UniqueIDBDatabase::putRecordInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transaction, const IDBObjectStoreMetadata&amp; objectStoreMetadata, const IDBKeyData&amp; keyData, const Vector&lt;uint8_t&gt;&amp; value, int64_t putMode, const Vector&lt;int64_t&gt;&amp; indexIDs, const Vector&lt;Vector&lt;IDBKeyData&gt;&gt;&amp; indexKeys)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!isMainThread());
</span><span class="cx">     ASSERT(m_backingStore);
</span><span class="lines">@@ -713,7 +713,7 @@
</span><span class="cx">     request-&gt;completeRequest(keyData, errorCode, errorMessage);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void UniqueIDBDatabase::getRecordFromBackingStore(uint64_t requestID, const IDBTransactionIdentifier&amp; transaction, const WebCore::IDBObjectStoreMetadata&amp; objectStoreMetadata, int64_t indexID, const WebCore::IDBKeyRangeData&amp; keyRangeData, WebCore::IndexedDB::CursorType cursorType)
</del><ins>+void UniqueIDBDatabase::getRecordFromBackingStore(uint64_t requestID, const IDBIdentifier&amp; transaction, const WebCore::IDBObjectStoreMetadata&amp; objectStoreMetadata, int64_t indexID, const WebCore::IDBKeyRangeData&amp; keyRangeData, WebCore::IndexedDB::CursorType cursorType)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!isMainThread());
</span><span class="cx">     ASSERT(m_backingStore);
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2DatabaseProcessIndexedDBUniqueIDBDatabaseh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -28,7 +28,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
</span><span class="cx"> 
</span><del>-#include &quot;IDBTransactionIdentifier.h&quot;
</del><ins>+#include &quot;IDBIdentifier.h&quot;
</ins><span class="cx"> #include &quot;UniqueIDBDatabaseIdentifier.h&quot;
</span><span class="cx"> #include &lt;WebCore/IndexedDB.h&gt;
</span><span class="cx"> #include &lt;functional&gt;
</span><span class="lines">@@ -68,21 +68,21 @@
</span><span class="cx"> 
</span><span class="cx">     void getOrEstablishIDBDatabaseMetadata(std::function&lt;void(bool, const WebCore::IDBDatabaseMetadata&amp;)&gt; completionCallback);
</span><span class="cx"> 
</span><del>-    void openTransaction(const IDBTransactionIdentifier&amp;, const Vector&lt;int64_t&gt;&amp; objectStoreIDs, WebCore::IndexedDB::TransactionMode, std::function&lt;void(bool)&gt; successCallback);
-    void beginTransaction(const IDBTransactionIdentifier&amp;, std::function&lt;void(bool)&gt; successCallback);
-    void commitTransaction(const IDBTransactionIdentifier&amp;, std::function&lt;void(bool)&gt; successCallback);
-    void resetTransaction(const IDBTransactionIdentifier&amp;, std::function&lt;void(bool)&gt; successCallback);
-    void rollbackTransaction(const IDBTransactionIdentifier&amp;, std::function&lt;void(bool)&gt; successCallback);
</del><ins>+    void openTransaction(const IDBIdentifier&amp; transactionIdentifier, const Vector&lt;int64_t&gt;&amp; objectStoreIDs, WebCore::IndexedDB::TransactionMode, std::function&lt;void(bool)&gt; successCallback);
+    void beginTransaction(const IDBIdentifier&amp; transactionIdentifier, std::function&lt;void(bool)&gt; successCallback);
+    void commitTransaction(const IDBIdentifier&amp; transactionIdentifier, std::function&lt;void(bool)&gt; successCallback);
+    void resetTransaction(const IDBIdentifier&amp; transactionIdentifier, std::function&lt;void(bool)&gt; successCallback);
+    void rollbackTransaction(const IDBIdentifier&amp; transactionIdentifier, std::function&lt;void(bool)&gt; successCallback);
</ins><span class="cx"> 
</span><del>-    void changeDatabaseVersion(const IDBTransactionIdentifier&amp;, uint64_t newVersion, std::function&lt;void(bool)&gt; successCallback);
-    void createObjectStore(const IDBTransactionIdentifier&amp;, const WebCore::IDBObjectStoreMetadata&amp;, std::function&lt;void(bool)&gt; successCallback);
-    void deleteObjectStore(const IDBTransactionIdentifier&amp;, int64_t objectStoreID, std::function&lt;void(bool)&gt; successCallback);
-    void clearObjectStore(const IDBTransactionIdentifier&amp;, int64_t objectStoreID, std::function&lt;void(bool)&gt; successCallback);
-    void createIndex(const IDBTransactionIdentifier&amp;, int64_t objectStoreID, const WebCore::IDBIndexMetadata&amp;, std::function&lt;void(bool)&gt; successCallback);
-    void deleteIndex(const IDBTransactionIdentifier&amp;, int64_t objectStoreID, int64_t indexID, std::function&lt;void(bool)&gt; successCallback);
</del><ins>+    void changeDatabaseVersion(const IDBIdentifier&amp; transactionIdentifier, uint64_t newVersion, std::function&lt;void(bool)&gt; successCallback);
+    void createObjectStore(const IDBIdentifier&amp; transactionIdentifier, const WebCore::IDBObjectStoreMetadata&amp;, std::function&lt;void(bool)&gt; successCallback);
+    void deleteObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, std::function&lt;void(bool)&gt; successCallback);
+    void clearObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, std::function&lt;void(bool)&gt; successCallback);
+    void createIndex(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBIndexMetadata&amp;, std::function&lt;void(bool)&gt; successCallback);
+    void deleteIndex(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID, std::function&lt;void(bool)&gt; successCallback);
</ins><span class="cx"> 
</span><del>-    void putRecord(const IDBTransactionIdentifier&amp;, int64_t objectStoreID, const WebCore::IDBKeyData&amp;, const IPC::DataReference&amp; value, int64_t putMode, const Vector&lt;int64_t&gt;&amp; indexIDs, const Vector&lt;Vector&lt;WebCore::IDBKeyData&gt;&gt;&amp; indexKeys, std::function&lt;void(const WebCore::IDBKeyData&amp;, uint32_t, const String&amp;)&gt; callback);
-    void getRecord(const IDBTransactionIdentifier&amp;, int64_t objectStoreID, int64_t indexID, const WebCore::IDBKeyRangeData&amp;, WebCore::IndexedDB::CursorType, std::function&lt;void(const WebCore::IDBGetResult&amp;, uint32_t, const String&amp;)&gt; callback);
</del><ins>+    void putRecord(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBKeyData&amp;, const IPC::DataReference&amp; value, int64_t putMode, const Vector&lt;int64_t&gt;&amp; indexIDs, const Vector&lt;Vector&lt;WebCore::IDBKeyData&gt;&gt;&amp; indexKeys, std::function&lt;void(const WebCore::IDBKeyData&amp;, uint32_t, const String&amp;)&gt; callback);
+    void getRecord(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID, const WebCore::IDBKeyRangeData&amp;, WebCore::IndexedDB::CursorType, std::function&lt;void(const WebCore::IDBGetResult&amp;, uint32_t, const String&amp;)&gt; callback);
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     UniqueIDBDatabase(const UniqueIDBDatabaseIdentifier&amp;);
</span><span class="lines">@@ -109,33 +109,33 @@
</span><span class="cx">     // Returns true if this origin can use the same databases as the given origin.
</span><span class="cx">     bool canShareDatabases(const SecurityOriginData&amp;, const SecurityOriginData&amp;) const;
</span><span class="cx"> 
</span><del>-    void postTransactionOperation(const IDBTransactionIdentifier&amp;, std::unique_ptr&lt;AsyncTask&gt;, std::function&lt;void(bool)&gt; successCallback);
</del><ins>+    void postTransactionOperation(const IDBIdentifier&amp; transactionIdentifier, std::unique_ptr&lt;AsyncTask&gt;, std::function&lt;void(bool)&gt; successCallback);
</ins><span class="cx">     
</span><span class="cx">     // To be called from the database workqueue thread only
</span><span class="cx">     void performNextDatabaseTask();
</span><span class="cx">     void postMainThreadTask(std::unique_ptr&lt;AsyncTask&gt;);
</span><span class="cx">     void openBackingStoreAndReadMetadata(const UniqueIDBDatabaseIdentifier&amp;, const String&amp; databaseDirectory);
</span><del>-    void openBackingStoreTransaction(const IDBTransactionIdentifier&amp;, const Vector&lt;int64_t&gt;&amp; objectStoreIDs, WebCore::IndexedDB::TransactionMode);
-    void beginBackingStoreTransaction(const IDBTransactionIdentifier&amp;);
-    void commitBackingStoreTransaction(const IDBTransactionIdentifier&amp;);
-    void resetBackingStoreTransaction(const IDBTransactionIdentifier&amp;);
-    void rollbackBackingStoreTransaction(const IDBTransactionIdentifier&amp;);
</del><ins>+    void openBackingStoreTransaction(const IDBIdentifier&amp; transactionIdentifier, const Vector&lt;int64_t&gt;&amp; objectStoreIDs, WebCore::IndexedDB::TransactionMode);
+    void beginBackingStoreTransaction(const IDBIdentifier&amp;);
+    void commitBackingStoreTransaction(const IDBIdentifier&amp;);
+    void resetBackingStoreTransaction(const IDBIdentifier&amp;);
+    void rollbackBackingStoreTransaction(const IDBIdentifier&amp;);
</ins><span class="cx"> 
</span><del>-    void changeDatabaseVersionInBackingStore(uint64_t requestID, const IDBTransactionIdentifier&amp;, uint64_t newVersion);
-    void createObjectStoreInBackingStore(uint64_t requestID, const IDBTransactionIdentifier&amp;, const WebCore::IDBObjectStoreMetadata&amp;);
-    void deleteObjectStoreInBackingStore(uint64_t requestID, const IDBTransactionIdentifier&amp;, int64_t objectStoreID);
-    void clearObjectStoreInBackingStore(uint64_t requestID, const IDBTransactionIdentifier&amp;, int64_t objectStoreID);
-    void createIndexInBackingStore(uint64_t requestID, const IDBTransactionIdentifier&amp;, int64_t objectStoreID, const WebCore::IDBIndexMetadata&amp;);
-    void deleteIndexInBackingStore(uint64_t requestID, const IDBTransactionIdentifier&amp;, int64_t objectStoreID, int64_t indexID);
-    void putRecordInBackingStore(uint64_t requestID, const IDBTransactionIdentifier&amp;, const WebCore::IDBObjectStoreMetadata&amp;, const WebCore::IDBKeyData&amp;, const Vector&lt;uint8_t&gt;&amp; value, int64_t putMode, const Vector&lt;int64_t&gt;&amp; indexIDs, const Vector&lt;Vector&lt;WebCore::IDBKeyData&gt;&gt;&amp; indexKeys);
-    void getRecordFromBackingStore(uint64_t requestID, const IDBTransactionIdentifier&amp;, const WebCore::IDBObjectStoreMetadata&amp;, int64_t indexID, const WebCore::IDBKeyRangeData&amp;, WebCore::IndexedDB::CursorType);
</del><ins>+    void changeDatabaseVersionInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, uint64_t newVersion);
+    void createObjectStoreInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, const WebCore::IDBObjectStoreMetadata&amp;);
+    void deleteObjectStoreInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID);
+    void clearObjectStoreInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID);
+    void createIndexInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBIndexMetadata&amp;);
+    void deleteIndexInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID);
+    void putRecordInBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, const WebCore::IDBObjectStoreMetadata&amp;, const WebCore::IDBKeyData&amp;, const Vector&lt;uint8_t&gt;&amp; value, int64_t putMode, const Vector&lt;int64_t&gt;&amp; indexIDs, const Vector&lt;Vector&lt;WebCore::IDBKeyData&gt;&gt;&amp; indexKeys);
+    void getRecordFromBackingStore(uint64_t requestID, const IDBIdentifier&amp; transactionIdentifier, const WebCore::IDBObjectStoreMetadata&amp;, int64_t indexID, const WebCore::IDBKeyRangeData&amp;, WebCore::IndexedDB::CursorType);
</ins><span class="cx"> 
</span><span class="cx">     void shutdownBackingStore();
</span><span class="cx"> 
</span><span class="cx">     // Callbacks from the database workqueue thread, to be performed on the main thread only
</span><span class="cx">     void performNextMainThreadTask();
</span><span class="cx">     void didOpenBackingStoreAndReadMetadata(const WebCore::IDBDatabaseMetadata&amp;, bool success);
</span><del>-    void didCompleteTransactionOperation(const IDBTransactionIdentifier&amp;, bool success);
</del><ins>+    void didCompleteTransactionOperation(const IDBIdentifier&amp; transactionIdentifier, bool success);
</ins><span class="cx">     void didChangeDatabaseVersion(uint64_t requestID, bool success);
</span><span class="cx">     void didCreateObjectStore(uint64_t requestID, bool success);
</span><span class="cx">     void didDeleteObjectStore(uint64_t requestID, bool success);
</span><span class="lines">@@ -150,7 +150,7 @@
</span><span class="cx">     bool m_acceptingNewRequests;
</span><span class="cx"> 
</span><span class="cx">     Deque&lt;RefPtr&lt;AsyncRequest&gt;&gt; m_pendingMetadataRequests;
</span><del>-    HashMap&lt;IDBTransactionIdentifier, RefPtr&lt;AsyncRequest&gt;&gt; m_pendingTransactionRequests;
</del><ins>+    HashMap&lt;IDBIdentifier, RefPtr&lt;AsyncRequest&gt;&gt; m_pendingTransactionRequests;
</ins><span class="cx">     HashMap&lt;uint64_t, RefPtr&lt;AsyncRequest&gt;&gt; m_pendingDatabaseTasks;
</span><span class="cx"> 
</span><span class="cx">     std::unique_ptr&lt;WebCore::IDBDatabaseMetadata&gt; m_metadata;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2DatabaseProcessIndexedDBUniqueIDBDatabaseBackingStoreh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -42,7 +42,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-class IDBTransactionIdentifier;
</del><ins>+class IDBIdentifier;
</ins><span class="cx"> 
</span><span class="cx"> class UniqueIDBDatabaseBackingStore : public RefCounted&lt;UniqueIDBDatabaseBackingStore&gt; {
</span><span class="cx"> public:
</span><span class="lines">@@ -50,26 +50,26 @@
</span><span class="cx"> 
</span><span class="cx">     virtual std::unique_ptr&lt;WebCore::IDBDatabaseMetadata&gt; getOrEstablishMetadata() = 0;
</span><span class="cx"> 
</span><del>-    virtual bool establishTransaction(const IDBTransactionIdentifier&amp;, const Vector&lt;int64_t&gt;&amp; objectStoreIDs, WebCore::IndexedDB::TransactionMode) = 0;
-    virtual bool beginTransaction(const IDBTransactionIdentifier&amp;) = 0;
-    virtual bool commitTransaction(const IDBTransactionIdentifier&amp;) = 0;
-    virtual bool resetTransaction(const IDBTransactionIdentifier&amp;) = 0;
-    virtual bool rollbackTransaction(const IDBTransactionIdentifier&amp;) = 0;
</del><ins>+    virtual bool establishTransaction(const IDBIdentifier&amp; transactionIdentifier, const Vector&lt;int64_t&gt;&amp; objectStoreIDs, WebCore::IndexedDB::TransactionMode) = 0;
+    virtual bool beginTransaction(const IDBIdentifier&amp;) = 0;
+    virtual bool commitTransaction(const IDBIdentifier&amp;) = 0;
+    virtual bool resetTransaction(const IDBIdentifier&amp;) = 0;
+    virtual bool rollbackTransaction(const IDBIdentifier&amp;) = 0;
</ins><span class="cx"> 
</span><del>-    virtual bool changeDatabaseVersion(const IDBTransactionIdentifier&amp;, uint64_t newVersion) = 0;
-    virtual bool createObjectStore(const IDBTransactionIdentifier&amp;, const WebCore::IDBObjectStoreMetadata&amp;) = 0;
-    virtual bool deleteObjectStore(const IDBTransactionIdentifier&amp;, int64_t objectStoreID) = 0;
-    virtual bool clearObjectStore(const IDBTransactionIdentifier&amp;, int64_t objectStoreID) = 0;
-    virtual bool createIndex(const IDBTransactionIdentifier&amp;, int64_t objectStoreID, const WebCore::IDBIndexMetadata&amp;) = 0;
-    virtual bool deleteIndex(const IDBTransactionIdentifier&amp;, int64_t objectStoreID, int64_t indexID) = 0;
</del><ins>+    virtual bool changeDatabaseVersion(const IDBIdentifier&amp; transactionIdentifier, uint64_t newVersion) = 0;
+    virtual bool createObjectStore(const IDBIdentifier&amp; transactionIdentifier, const WebCore::IDBObjectStoreMetadata&amp;) = 0;
+    virtual bool deleteObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID) = 0;
+    virtual bool clearObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID) = 0;
+    virtual bool createIndex(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBIndexMetadata&amp;) = 0;
+    virtual bool deleteIndex(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID) = 0;
</ins><span class="cx"> 
</span><del>-    virtual PassRefPtr&lt;WebCore::IDBKey&gt; generateKey(const IDBTransactionIdentifier&amp;, int64_t objectStoreID) = 0;
-    virtual bool keyExistsInObjectStore(const IDBTransactionIdentifier&amp;, int64_t objectStoreID, const WebCore::IDBKey&amp;, bool&amp; keyExists) = 0;
-    virtual bool putRecord(const IDBTransactionIdentifier&amp;, int64_t objectStoreID, const WebCore::IDBKey&amp;, const uint8_t* valueBuffer, size_t valueSize) = 0;
-    virtual bool updateKeyGenerator(const IDBTransactionIdentifier&amp;, int64_t objectStoreId, const WebCore::IDBKey&amp;, bool checkCurrent) = 0;
</del><ins>+    virtual PassRefPtr&lt;WebCore::IDBKey&gt; generateKey(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID) = 0;
+    virtual bool keyExistsInObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBKey&amp;, bool&amp; keyExists) = 0;
+    virtual bool putRecord(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBKey&amp;, const uint8_t* valueBuffer, size_t valueSize) = 0;
+    virtual bool updateKeyGenerator(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreId, const WebCore::IDBKey&amp;, bool checkCurrent) = 0;
</ins><span class="cx"> 
</span><del>-    virtual bool getKeyRecordFromObjectStore(const IDBTransactionIdentifier&amp;, int64_t objectStoreID, const WebCore::IDBKey&amp;, RefPtr&lt;WebCore::SharedBuffer&gt;&amp; result) = 0;
-    virtual bool getKeyRangeRecordFromObjectStore(const IDBTransactionIdentifier&amp;, int64_t objectStoreID, const WebCore::IDBKeyRange&amp;, RefPtr&lt;WebCore::SharedBuffer&gt;&amp; result, RefPtr&lt;WebCore::IDBKey&gt;&amp; resultKey) = 0;
</del><ins>+    virtual bool getKeyRecordFromObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBKey&amp;, RefPtr&lt;WebCore::SharedBuffer&gt;&amp; result) = 0;
+    virtual bool getKeyRangeRecordFromObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBKeyRange&amp;, RefPtr&lt;WebCore::SharedBuffer&gt;&amp; result, RefPtr&lt;WebCore::IDBKey&gt;&amp; resultKey) = 0;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2DatabaseProcessIndexedDBsqliteSQLiteIDBTransactioncpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -34,8 +34,8 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-SQLiteIDBTransaction::SQLiteIDBTransaction(const IDBTransactionIdentifier&amp; identifier, IndexedDB::TransactionMode mode)
-    : m_identifier(identifier)
</del><ins>+SQLiteIDBTransaction::SQLiteIDBTransaction(const IDBIdentifier&amp; transactionIdentifier, IndexedDB::TransactionMode mode)
+    : m_identifier(transactionIdentifier)
</ins><span class="cx">     , m_mode(mode)
</span><span class="cx"> {
</span><span class="cx"> }
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2DatabaseProcessIndexedDBsqliteSQLiteIDBTransactionh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -28,7 +28,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE) &amp;&amp; ENABLE(DATABASE_PROCESS)
</span><span class="cx"> 
</span><del>-#include &quot;IDBTransactionIdentifier.h&quot;
</del><ins>+#include &quot;IDBIdentifier.h&quot;
</ins><span class="cx"> #include &lt;wtf/Noncopyable.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -47,14 +47,14 @@
</span><span class="cx"> class SQLiteIDBTransaction {
</span><span class="cx">     WTF_MAKE_NONCOPYABLE(SQLiteIDBTransaction);
</span><span class="cx"> public:
</span><del>-    static std::unique_ptr&lt;SQLiteIDBTransaction&gt; create(const IDBTransactionIdentifier&amp; identifier, WebCore::IndexedDB::TransactionMode mode)
</del><ins>+    static std::unique_ptr&lt;SQLiteIDBTransaction&gt; create(const IDBIdentifier&amp; transactionIdentifier, WebCore::IndexedDB::TransactionMode mode)
</ins><span class="cx">     {
</span><del>-        return std::unique_ptr&lt;SQLiteIDBTransaction&gt;(new SQLiteIDBTransaction(identifier, mode));
</del><ins>+        return std::unique_ptr&lt;SQLiteIDBTransaction&gt;(new SQLiteIDBTransaction(transactionIdentifier, mode));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     ~SQLiteIDBTransaction();
</span><span class="cx"> 
</span><del>-    const IDBTransactionIdentifier&amp; identifier() const { return m_identifier; }
</del><ins>+    const IDBIdentifier&amp; transactionIdentifier() const { return m_identifier; }
</ins><span class="cx"> 
</span><span class="cx">     bool begin(WebCore::SQLiteDatabase&amp;);
</span><span class="cx">     bool commit();
</span><span class="lines">@@ -65,9 +65,9 @@
</span><span class="cx">     bool inProgress() const;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    SQLiteIDBTransaction(const IDBTransactionIdentifier&amp;, WebCore::IndexedDB::TransactionMode);
</del><ins>+    SQLiteIDBTransaction(const IDBIdentifier&amp; transactionIdentifier, WebCore::IndexedDB::TransactionMode);
</ins><span class="cx"> 
</span><del>-    IDBTransactionIdentifier m_identifier;
</del><ins>+    IDBIdentifier m_identifier;
</ins><span class="cx">     WebCore::IndexedDB::TransactionMode m_mode;
</span><span class="cx"> 
</span><span class="cx">     std::unique_ptr&lt;WebCore::SQLiteTransaction&gt; m_sqliteTransaction;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2DatabaseProcessIndexedDBsqliteUniqueIDBDatabaseBackingStoreSQLitecpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -267,11 +267,11 @@
</span><span class="cx">     return metadata;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool UniqueIDBDatabaseBackingStoreSQLite::establishTransaction(const IDBTransactionIdentifier&amp; identifier, const Vector&lt;int64_t&gt;&amp;, WebCore::IndexedDB::TransactionMode mode)
</del><ins>+bool UniqueIDBDatabaseBackingStoreSQLite::establishTransaction(const IDBIdentifier&amp; transactionIdentifier, const Vector&lt;int64_t&gt;&amp;, WebCore::IndexedDB::TransactionMode mode)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!isMainThread());
</span><span class="cx"> 
</span><del>-    if (!m_transactions.add(identifier, SQLiteIDBTransaction::create(identifier, mode)).isNewEntry) {
</del><ins>+    if (!m_transactions.add(transactionIdentifier, SQLiteIDBTransaction::create(transactionIdentifier, mode)).isNewEntry) {
</ins><span class="cx">         LOG_ERROR(&quot;Attempt to establish transaction identifier that already exists&quot;);
</span><span class="cx">         return false;
</span><span class="cx">     }
</span><span class="lines">@@ -279,11 +279,11 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool UniqueIDBDatabaseBackingStoreSQLite::beginTransaction(const IDBTransactionIdentifier&amp; identifier)
</del><ins>+bool UniqueIDBDatabaseBackingStoreSQLite::beginTransaction(const IDBIdentifier&amp; transactionIdentifier)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!isMainThread());
</span><span class="cx"> 
</span><del>-    SQLiteIDBTransaction* transaction = m_transactions.get(identifier);
</del><ins>+    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
</ins><span class="cx">     if (!transaction) {
</span><span class="cx">         LOG_ERROR(&quot;Attempt to begin a transaction that hasn't been established&quot;);
</span><span class="cx">         return false;
</span><span class="lines">@@ -292,11 +292,11 @@
</span><span class="cx">     return transaction-&gt;begin(*m_sqliteDB);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool UniqueIDBDatabaseBackingStoreSQLite::commitTransaction(const IDBTransactionIdentifier&amp; identifier)
</del><ins>+bool UniqueIDBDatabaseBackingStoreSQLite::commitTransaction(const IDBIdentifier&amp; transactionIdentifier)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!isMainThread());
</span><span class="cx"> 
</span><del>-    SQLiteIDBTransaction* transaction = m_transactions.get(identifier);
</del><ins>+    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
</ins><span class="cx">     if (!transaction) {
</span><span class="cx">         LOG_ERROR(&quot;Attempt to commit a transaction that hasn't been established&quot;);
</span><span class="cx">         return false;
</span><span class="lines">@@ -305,11 +305,11 @@
</span><span class="cx">     return transaction-&gt;commit();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool UniqueIDBDatabaseBackingStoreSQLite::resetTransaction(const IDBTransactionIdentifier&amp; identifier)
</del><ins>+bool UniqueIDBDatabaseBackingStoreSQLite::resetTransaction(const IDBIdentifier&amp; transactionIdentifier)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!isMainThread());
</span><span class="cx"> 
</span><del>-    SQLiteIDBTransaction* transaction = m_transactions.get(identifier);
</del><ins>+    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
</ins><span class="cx">     if (!transaction) {
</span><span class="cx">         LOG_ERROR(&quot;Attempt to reset a transaction that hasn't been established&quot;);
</span><span class="cx">         return false;
</span><span class="lines">@@ -318,11 +318,11 @@
</span><span class="cx">     return transaction-&gt;reset();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool UniqueIDBDatabaseBackingStoreSQLite::rollbackTransaction(const IDBTransactionIdentifier&amp; identifier)
</del><ins>+bool UniqueIDBDatabaseBackingStoreSQLite::rollbackTransaction(const IDBIdentifier&amp; transactionIdentifier)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!isMainThread());
</span><span class="cx"> 
</span><del>-    SQLiteIDBTransaction* transaction = m_transactions.get(identifier);
</del><ins>+    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
</ins><span class="cx">     if (!transaction) {
</span><span class="cx">         LOG_ERROR(&quot;Attempt to rollback a transaction that hasn't been established&quot;);
</span><span class="cx">         return false;
</span><span class="lines">@@ -331,13 +331,13 @@
</span><span class="cx">     return transaction-&gt;rollback();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool UniqueIDBDatabaseBackingStoreSQLite::changeDatabaseVersion(const IDBTransactionIdentifier&amp; identifier, uint64_t newVersion)
</del><ins>+bool UniqueIDBDatabaseBackingStoreSQLite::changeDatabaseVersion(const IDBIdentifier&amp; transactionIdentifier, uint64_t newVersion)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!isMainThread());
</span><span class="cx">     ASSERT(m_sqliteDB);
</span><span class="cx">     ASSERT(m_sqliteDB-&gt;isOpen());
</span><span class="cx"> 
</span><del>-    SQLiteIDBTransaction* transaction = m_transactions.get(identifier);
</del><ins>+    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
</ins><span class="cx">     if (!transaction || !transaction-&gt;inProgress()) {
</span><span class="cx">         LOG_ERROR(&quot;Attempt to change database version with an established, in-progress transaction&quot;);
</span><span class="cx">         return false;
</span><span class="lines">@@ -360,13 +360,13 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool UniqueIDBDatabaseBackingStoreSQLite::createObjectStore(const IDBTransactionIdentifier&amp; identifier, const IDBObjectStoreMetadata&amp; metadata)
</del><ins>+bool UniqueIDBDatabaseBackingStoreSQLite::createObjectStore(const IDBIdentifier&amp; transactionIdentifier, const IDBObjectStoreMetadata&amp; metadata)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!isMainThread());
</span><span class="cx">     ASSERT(m_sqliteDB);
</span><span class="cx">     ASSERT(m_sqliteDB-&gt;isOpen());
</span><span class="cx"> 
</span><del>-    SQLiteIDBTransaction* transaction = m_transactions.get(identifier);
</del><ins>+    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
</ins><span class="cx">     if (!transaction || !transaction-&gt;inProgress()) {
</span><span class="cx">         LOG_ERROR(&quot;Attempt to change database version with an established, in-progress transaction&quot;);
</span><span class="cx">         return false;
</span><span class="lines">@@ -397,13 +397,13 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool UniqueIDBDatabaseBackingStoreSQLite::deleteObjectStore(const IDBTransactionIdentifier&amp; identifier, int64_t objectStoreID)
</del><ins>+bool UniqueIDBDatabaseBackingStoreSQLite::deleteObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!isMainThread());
</span><span class="cx">     ASSERT(m_sqliteDB);
</span><span class="cx">     ASSERT(m_sqliteDB-&gt;isOpen());
</span><span class="cx"> 
</span><del>-    SQLiteIDBTransaction* transaction = m_transactions.get(identifier);
</del><ins>+    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
</ins><span class="cx">     if (!transaction || !transaction-&gt;inProgress()) {
</span><span class="cx">         LOG_ERROR(&quot;Attempt to change database version with an established, in-progress transaction&quot;);
</span><span class="cx">         return false;
</span><span class="lines">@@ -444,7 +444,7 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         for (auto indexID : indexIDs) {
</span><del>-            if (!deleteIndex(identifier, objectStoreID, indexID))
</del><ins>+            if (!deleteIndex(transactionIdentifier, objectStoreID, indexID))
</ins><span class="cx">                 return false;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -456,13 +456,13 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool UniqueIDBDatabaseBackingStoreSQLite::clearObjectStore(const IDBTransactionIdentifier&amp; identifier, int64_t objectStoreID)
</del><ins>+bool UniqueIDBDatabaseBackingStoreSQLite::clearObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!isMainThread());
</span><span class="cx">     ASSERT(m_sqliteDB);
</span><span class="cx">     ASSERT(m_sqliteDB-&gt;isOpen());
</span><span class="cx"> 
</span><del>-    SQLiteIDBTransaction* transaction = m_transactions.get(identifier);
</del><ins>+    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
</ins><span class="cx">     if (!transaction || !transaction-&gt;inProgress()) {
</span><span class="cx">         LOG_ERROR(&quot;Attempt to change database version with an establish, in-progress transaction&quot;);
</span><span class="cx">         return false;
</span><span class="lines">@@ -486,13 +486,13 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool UniqueIDBDatabaseBackingStoreSQLite::createIndex(const IDBTransactionIdentifier&amp; identifier, int64_t objectStoreID, const WebCore::IDBIndexMetadata&amp; metadata)
</del><ins>+bool UniqueIDBDatabaseBackingStoreSQLite::createIndex(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBIndexMetadata&amp; metadata)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!isMainThread());
</span><span class="cx">     ASSERT(m_sqliteDB);
</span><span class="cx">     ASSERT(m_sqliteDB-&gt;isOpen());
</span><span class="cx"> 
</span><del>-    SQLiteIDBTransaction* transaction = m_transactions.get(identifier);
</del><ins>+    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
</ins><span class="cx">     if (!transaction || !transaction-&gt;inProgress()) {
</span><span class="cx">         LOG_ERROR(&quot;Attempt to create index without an established, in-progress transaction&quot;);
</span><span class="cx">         return false;
</span><span class="lines">@@ -524,13 +524,13 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool UniqueIDBDatabaseBackingStoreSQLite::deleteIndex(const IDBTransactionIdentifier&amp; identifier, int64_t objectStoreID, int64_t indexID)
</del><ins>+bool UniqueIDBDatabaseBackingStoreSQLite::deleteIndex(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!isMainThread());
</span><span class="cx">     ASSERT(m_sqliteDB);
</span><span class="cx">     ASSERT(m_sqliteDB-&gt;isOpen());
</span><span class="cx"> 
</span><del>-    SQLiteIDBTransaction* transaction = m_transactions.get(identifier);
</del><ins>+    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
</ins><span class="cx">     if (!transaction || !transaction-&gt;inProgress()) {
</span><span class="cx">         LOG_ERROR(&quot;Attempt to delete index without an established, in-progress transaction&quot;);
</span><span class="cx">         return false;
</span><span class="lines">@@ -555,25 +555,25 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;IDBKey&gt; UniqueIDBDatabaseBackingStoreSQLite::generateKey(const IDBTransactionIdentifier&amp;, int64_t objectStoreID)
</del><ins>+PassRefPtr&lt;IDBKey&gt; UniqueIDBDatabaseBackingStoreSQLite::generateKey(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID)
</ins><span class="cx"> {
</span><span class="cx">     // FIXME (&lt;rdar://problem/15877909&gt;): Implement
</span><span class="cx">     return nullptr;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool UniqueIDBDatabaseBackingStoreSQLite::keyExistsInObjectStore(const IDBTransactionIdentifier&amp;, int64_t objectStoreID, const IDBKey&amp;, bool&amp; keyExists)
</del><ins>+bool UniqueIDBDatabaseBackingStoreSQLite::keyExistsInObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const IDBKey&amp;, bool&amp; keyExists)
</ins><span class="cx"> {
</span><span class="cx">     // FIXME: When Get support is implemented, we need to implement this also (&lt;rdar://problem/15779644&gt;)
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool UniqueIDBDatabaseBackingStoreSQLite::putRecord(const IDBTransactionIdentifier&amp; identifier, int64_t objectStoreID, const IDBKey&amp; key, const uint8_t* valueBuffer, size_t valueSize)
</del><ins>+bool UniqueIDBDatabaseBackingStoreSQLite::putRecord(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const IDBKey&amp; key, const uint8_t* valueBuffer, size_t valueSize)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!isMainThread());
</span><span class="cx">     ASSERT(m_sqliteDB);
</span><span class="cx">     ASSERT(m_sqliteDB-&gt;isOpen());
</span><span class="cx"> 
</span><del>-    SQLiteIDBTransaction* transaction = m_transactions.get(identifier);
</del><ins>+    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
</ins><span class="cx">     if (!transaction || !transaction-&gt;inProgress()) {
</span><span class="cx">         LOG_ERROR(&quot;Attempt to put a record into database without an established, in-progress transaction&quot;);
</span><span class="cx">         return false;
</span><span class="lines">@@ -603,19 +603,19 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool UniqueIDBDatabaseBackingStoreSQLite::updateKeyGenerator(const IDBTransactionIdentifier&amp;, int64_t objectStoreId, const IDBKey&amp;, bool checkCurrent)
</del><ins>+bool UniqueIDBDatabaseBackingStoreSQLite::updateKeyGenerator(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreId, const IDBKey&amp;, bool checkCurrent)
</ins><span class="cx"> {
</span><span class="cx">     // FIXME (&lt;rdar://problem/15877909&gt;): Implement
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool UniqueIDBDatabaseBackingStoreSQLite::getKeyRecordFromObjectStore(const IDBTransactionIdentifier&amp; identifier, int64_t objectStoreID, const WebCore::IDBKey&amp; key, RefPtr&lt;WebCore::SharedBuffer&gt;&amp; result)
</del><ins>+bool UniqueIDBDatabaseBackingStoreSQLite::getKeyRecordFromObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBKey&amp; key, RefPtr&lt;WebCore::SharedBuffer&gt;&amp; result)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!isMainThread());
</span><span class="cx">     ASSERT(m_sqliteDB);
</span><span class="cx">     ASSERT(m_sqliteDB-&gt;isOpen());
</span><span class="cx"> 
</span><del>-    SQLiteIDBTransaction* transaction = m_transactions.get(identifier);
</del><ins>+    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
</ins><span class="cx">     if (!transaction || !transaction-&gt;inProgress()) {
</span><span class="cx">         LOG_ERROR(&quot;Attempt to put a record into database without an established, in-progress transaction&quot;);
</span><span class="cx">         return false;
</span><span class="lines">@@ -655,13 +655,13 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool UniqueIDBDatabaseBackingStoreSQLite::getKeyRangeRecordFromObjectStore(const IDBTransactionIdentifier&amp; identifier, int64_t objectStoreID, const WebCore::IDBKeyRange&amp; keyRange, RefPtr&lt;WebCore::SharedBuffer&gt;&amp; result, RefPtr&lt;WebCore::IDBKey&gt;&amp; resultKey)
</del><ins>+bool UniqueIDBDatabaseBackingStoreSQLite::getKeyRangeRecordFromObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBKeyRange&amp; keyRange, RefPtr&lt;WebCore::SharedBuffer&gt;&amp; result, RefPtr&lt;WebCore::IDBKey&gt;&amp; resultKey)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!isMainThread());
</span><span class="cx">     ASSERT(m_sqliteDB);
</span><span class="cx">     ASSERT(m_sqliteDB-&gt;isOpen());
</span><span class="cx"> 
</span><del>-    SQLiteIDBTransaction* transaction = m_transactions.get(identifier);
</del><ins>+    SQLiteIDBTransaction* transaction = m_transactions.get(transactionIdentifier);
</ins><span class="cx">     if (!transaction || !transaction-&gt;inProgress()) {
</span><span class="cx">         LOG_ERROR(&quot;Attempt to put a record into database without an established, in-progress transaction&quot;);
</span><span class="cx">         return false;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2DatabaseProcessIndexedDBsqliteUniqueIDBDatabaseBackingStoreSQLiteh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -54,26 +54,26 @@
</span><span class="cx"> 
</span><span class="cx">     virtual std::unique_ptr&lt;WebCore::IDBDatabaseMetadata&gt; getOrEstablishMetadata() override;
</span><span class="cx"> 
</span><del>-    virtual bool establishTransaction(const IDBTransactionIdentifier&amp;, const Vector&lt;int64_t&gt;&amp; objectStoreIDs, WebCore::IndexedDB::TransactionMode) override;
-    virtual bool beginTransaction(const IDBTransactionIdentifier&amp;) override;
-    virtual bool commitTransaction(const IDBTransactionIdentifier&amp;) override;
-    virtual bool resetTransaction(const IDBTransactionIdentifier&amp;) override;
-    virtual bool rollbackTransaction(const IDBTransactionIdentifier&amp;) override;
</del><ins>+    virtual bool establishTransaction(const IDBIdentifier&amp; transactionIdentifier, const Vector&lt;int64_t&gt;&amp; objectStoreIDs, WebCore::IndexedDB::TransactionMode) override;
+    virtual bool beginTransaction(const IDBIdentifier&amp;) override;
+    virtual bool commitTransaction(const IDBIdentifier&amp;) override;
+    virtual bool resetTransaction(const IDBIdentifier&amp;) override;
+    virtual bool rollbackTransaction(const IDBIdentifier&amp;) override;
</ins><span class="cx"> 
</span><del>-    virtual bool changeDatabaseVersion(const IDBTransactionIdentifier&amp;, uint64_t newVersion) override;
-    virtual bool createObjectStore(const IDBTransactionIdentifier&amp;, const WebCore::IDBObjectStoreMetadata&amp;) override;
-    virtual bool deleteObjectStore(const IDBTransactionIdentifier&amp;, int64_t objectStoreID) override;
-    virtual bool clearObjectStore(const IDBTransactionIdentifier&amp;, int64_t objectStoreID) override;
-    virtual bool createIndex(const IDBTransactionIdentifier&amp;, int64_t objectStoreID, const WebCore::IDBIndexMetadata&amp;) override;
-    virtual bool deleteIndex(const IDBTransactionIdentifier&amp;, int64_t objectStoreID, int64_t indexID) override;
</del><ins>+    virtual bool changeDatabaseVersion(const IDBIdentifier&amp; transactionIdentifier, uint64_t newVersion) override;
+    virtual bool createObjectStore(const IDBIdentifier&amp; transactionIdentifier, const WebCore::IDBObjectStoreMetadata&amp;) override;
+    virtual bool deleteObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID) override;
+    virtual bool clearObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID) override;
+    virtual bool createIndex(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBIndexMetadata&amp;) override;
+    virtual bool deleteIndex(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, int64_t indexID) override;
</ins><span class="cx"> 
</span><del>-    virtual PassRefPtr&lt;WebCore::IDBKey&gt; generateKey(const IDBTransactionIdentifier&amp;, int64_t objectStoreID) override;
-    virtual bool keyExistsInObjectStore(const IDBTransactionIdentifier&amp;, int64_t objectStoreID, const WebCore::IDBKey&amp;, bool&amp; keyExists) override;
-    virtual bool putRecord(const IDBTransactionIdentifier&amp;, int64_t objectStoreID, const WebCore::IDBKey&amp;, const uint8_t* valueBuffer, size_t valueSize) override;
-    virtual bool updateKeyGenerator(const IDBTransactionIdentifier&amp;, int64_t objectStoreId, const WebCore::IDBKey&amp;, bool checkCurrent) override;
</del><ins>+    virtual PassRefPtr&lt;WebCore::IDBKey&gt; generateKey(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID) override;
+    virtual bool keyExistsInObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBKey&amp;, bool&amp; keyExists) override;
+    virtual bool putRecord(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBKey&amp;, const uint8_t* valueBuffer, size_t valueSize) override;
+    virtual bool updateKeyGenerator(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreId, const WebCore::IDBKey&amp;, bool checkCurrent) override;
</ins><span class="cx"> 
</span><del>-    virtual bool getKeyRecordFromObjectStore(const IDBTransactionIdentifier&amp;, int64_t objectStoreID, const WebCore::IDBKey&amp;, RefPtr&lt;WebCore::SharedBuffer&gt;&amp; result) override;
-    virtual bool getKeyRangeRecordFromObjectStore(const IDBTransactionIdentifier&amp;, int64_t objectStoreID, const WebCore::IDBKeyRange&amp;, RefPtr&lt;WebCore::SharedBuffer&gt;&amp; result, RefPtr&lt;WebCore::IDBKey&gt;&amp; resultKey) override;
</del><ins>+    virtual bool getKeyRecordFromObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBKey&amp;, RefPtr&lt;WebCore::SharedBuffer&gt;&amp; result) override;
+    virtual bool getKeyRangeRecordFromObjectStore(const IDBIdentifier&amp; transactionIdentifier, int64_t objectStoreID, const WebCore::IDBKeyRange&amp;, RefPtr&lt;WebCore::SharedBuffer&gt;&amp; result, RefPtr&lt;WebCore::IDBKey&gt;&amp; resultKey) override;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     UniqueIDBDatabaseBackingStoreSQLite(const UniqueIDBDatabaseIdentifier&amp;, const String&amp; databaseDirectory);
</span><span class="lines">@@ -89,7 +89,7 @@
</span><span class="cx"> 
</span><span class="cx">     std::unique_ptr&lt;WebCore::SQLiteDatabase&gt; m_sqliteDB;
</span><span class="cx"> 
</span><del>-    HashMap&lt;IDBTransactionIdentifier, std::unique_ptr&lt;SQLiteIDBTransaction&gt;&gt; m_transactions;
</del><ins>+    HashMap&lt;IDBIdentifier, std::unique_ptr&lt;SQLiteIDBTransaction&gt;&gt; m_transactions;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2SharedUserDatacpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/Shared/UserData.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/Shared/UserData.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/Shared/UserData.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -150,9 +150,11 @@
</span><span class="cx"> 
</span><span class="cx">     case API::Object::Type::Point:
</span><span class="cx">         static_cast&lt;const API::Point&amp;&gt;(object).encode(encoder);
</span><ins>+        break;
</ins><span class="cx"> 
</span><span class="cx">     case API::Object::Type::Rect:
</span><span class="cx">         static_cast&lt;const API::Rect&amp;&gt;(object).encode(encoder);
</span><ins>+        break;
</ins><span class="cx"> 
</span><span class="cx">     case API::Object::Type::SerializedScriptValue: {
</span><span class="cx">         auto&amp; serializedScriptValue = static_cast&lt;const WebSerializedScriptValue&amp;&gt;(object);
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2SharedWebCrossThreadCopiercpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/Shared/WebCrossThreadCopier.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/Shared/WebCrossThreadCopier.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/Shared/WebCrossThreadCopier.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -27,7 +27,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><span class="cx"> 
</span><del>-#include &quot;IDBTransactionIdentifier.h&quot;
</del><ins>+#include &quot;IDBIdentifier.h&quot;
</ins><span class="cx"> #include &quot;UniqueIDBDatabaseIdentifier.h&quot;
</span><span class="cx"> #include &lt;WebCore/IDBKeyData.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -40,9 +40,9 @@
</span><span class="cx">     return identifier.isolatedCopy();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-IDBTransactionIdentifier CrossThreadCopierBase&lt;false, false, IDBTransactionIdentifier&gt;::copy(const IDBTransactionIdentifier&amp; identifier)
</del><ins>+IDBIdentifier CrossThreadCopierBase&lt;false, false, IDBIdentifier&gt;::copy(const IDBIdentifier&amp; transactionIdentifier)
</ins><span class="cx"> {
</span><del>-    return identifier.isolatedCopy();
</del><ins>+    return transactionIdentifier.isolatedCopy();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Vector&lt;int64_t&gt; CrossThreadCopierBase&lt;false, false, Vector&lt;int64_t&gt;&gt;::copy(const Vector&lt;int64_t&gt;&amp; vector)
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2SharedWebCrossThreadCopierh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/Shared/WebCrossThreadCopier.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/Shared/WebCrossThreadCopier.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/Shared/WebCrossThreadCopier.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -32,7 +32,7 @@
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><del>-class IDBTransactionIdentifier;
</del><ins>+class IDBIdentifier;
</ins><span class="cx"> class UniqueIDBDatabaseIdentifier;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -46,8 +46,8 @@
</span><span class="cx">     static WebKit::UniqueIDBDatabaseIdentifier copy(const WebKit::UniqueIDBDatabaseIdentifier&amp;);
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-template&lt;&gt; struct CrossThreadCopierBase&lt;false, false, WebKit::IDBTransactionIdentifier&gt; {
-    static WebKit::IDBTransactionIdentifier copy(const WebKit::IDBTransactionIdentifier&amp;);
</del><ins>+template&lt;&gt; struct CrossThreadCopierBase&lt;false, false, WebKit::IDBIdentifier&gt; {
+    static WebKit::IDBIdentifier copy(const WebKit::IDBIdentifier&amp;);
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> template&lt;&gt; struct CrossThreadCopierBase&lt;false, false, Vector&lt;int64_t&gt;&gt; {
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2SharedWebPreferencesStoreh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/Shared/WebPreferencesStore.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/Shared/WebPreferencesStore.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/Shared/WebPreferencesStore.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -178,6 +178,7 @@
</span><span class="cx">     macro(UseLegacyTextAlignPositionedElementBehavior, useLegacyTextAlignPositionedElementBehavior, Bool, bool, false) \
</span><span class="cx">     macro(SpatialNavigationEnabled, spatialNavigationEnabled, Bool, bool, false) \
</span><span class="cx">     macro(MediaSourceEnabled, mediaSourceEnabled, Bool, bool, false) \
</span><ins>+    macro(ViewGestureDebuggingEnabled, viewGestureDebuggingEnabled, Bool, bool, false) \
</ins><span class="cx">     \
</span><span class="cx"> 
</span><span class="cx"> #define FOR_EACH_WEBKIT_DOUBLE_PREFERENCE(macro) \
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2SharedWebProcessCreationParameterscpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/Shared/WebProcessCreationParameters.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/Shared/WebProcessCreationParameters.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/Shared/WebProcessCreationParameters.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -44,6 +44,7 @@
</span><span class="cx"> #if ENABLE(NETWORK_PROCESS)
</span><span class="cx">     , usesNetworkProcess(false)
</span><span class="cx"> #endif
</span><ins>+    , memoryCacheDisabled(false)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -116,6 +117,7 @@
</span><span class="cx"> 
</span><span class="cx">     encoder &lt;&lt; plugInAutoStartOriginHashes;
</span><span class="cx">     encoder &lt;&lt; plugInAutoStartOrigins;
</span><ins>+    encoder &lt;&lt; memoryCacheDisabled;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool WebProcessCreationParameters::decode(IPC::ArgumentDecoder&amp; decoder, WebProcessCreationParameters&amp; parameters)
</span><span class="lines">@@ -238,6 +240,8 @@
</span><span class="cx">         return false;
</span><span class="cx">     if (!decoder.decode(parameters.plugInAutoStartOrigins))
</span><span class="cx">         return false;
</span><ins>+    if (!decoder.decode(parameters.memoryCacheDisabled))
+        return false;
</ins><span class="cx"> 
</span><span class="cx">     return true;
</span><span class="cx"> }
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2SharedWebProcessCreationParametersh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/Shared/WebProcessCreationParameters.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/Shared/WebProcessCreationParameters.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/Shared/WebProcessCreationParameters.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -140,6 +140,8 @@
</span><span class="cx"> 
</span><span class="cx">     HashMap&lt;unsigned, double&gt; plugInAutoStartOriginHashes;
</span><span class="cx">     Vector&lt;String&gt; plugInAutoStartOrigins;
</span><ins>+
+    bool memoryCacheDisabled;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2SharedmacObjCObjectGraphCodersmm"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/Shared/mac/ObjCObjectGraphCoders.mm (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/Shared/mac/ObjCObjectGraphCoders.mm        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/Shared/mac/ObjCObjectGraphCoders.mm        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -410,6 +410,7 @@
</span><span class="cx">         case WKTypeRefWrapperType: {
</span><span class="cx">             WKTypeRefWrapper *wrapper = static_cast&lt;WKTypeRefWrapper *&gt;(m_root);
</span><span class="cx">             encoder &lt;&lt; InjectedBundleUserMessageEncoder(toImpl(wrapper.object));
</span><ins>+            break;
</ins><span class="cx">         }
</span><span class="cx"> #endif
</span><span class="cx">         default:
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessAPIAPILoaderClienth"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/API/APILoaderClient.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/API/APILoaderClient.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/API/APILoaderClient.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -91,7 +91,7 @@
</span><span class="cx">     virtual void willGoToBackForwardListItem(WebKit::WebPageProxy*, WebKit::WebBackForwardListItem*, API::Object*) { }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(NETSCAPE_PLUGIN_API)
</span><del>-    virtual WebKit::PluginModuleLoadPolicy pluginLoadPolicy(WebKit::WebPageProxy*, WebKit::PluginModuleLoadPolicy currentPluginLoadPolicy, WebKit::ImmutableDictionary*, WTF::String&amp; unavailabilityDescription, WTF::String&amp; useBlockedPluginTitle) { return currentPluginLoadPolicy; }
</del><ins>+    virtual WebKit::PluginModuleLoadPolicy pluginLoadPolicy(WebKit::WebPageProxy*, WebKit::PluginModuleLoadPolicy currentPluginLoadPolicy, WebKit::ImmutableDictionary*, WTF::String&amp; unavailabilityDescription) { return currentPluginLoadPolicy; }
</ins><span class="cx">     virtual void didFailToInitializePlugin(WebKit::WebPageProxy*, WebKit::ImmutableDictionary*) { }
</span><span class="cx">     virtual void didBlockInsecurePluginVersion(WebKit::WebPageProxy*, WebKit::ImmutableDictionary*) { }
</span><span class="cx"> #endif // ENABLE(NETSCAPE_PLUGIN_API)
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessAPICWKContextcpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/API/C/WKContext.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/API/C/WKContext.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/API/C/WKContext.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -401,3 +401,8 @@
</span><span class="cx"> {
</span><span class="cx">     WebContext::setInvalidMessageCallback(invalidMessageFunction);
</span><span class="cx"> }
</span><ins>+
+void WKContextSetMemoryCacheDisabled(WKContextRef contextRef, bool disabled)
+{
+    toImpl(contextRef)-&gt;setMemoryCacheDisabled(disabled);
+}
</ins></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessAPICWKContextPrivateh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/API/C/WKContextPrivate.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/API/C/WKContextPrivate.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/API/C/WKContextPrivate.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -84,6 +84,8 @@
</span><span class="cx"> 
</span><span class="cx"> typedef void (*WKContextInvalidMessageFunction)(WKStringRef messageName);
</span><span class="cx"> WK_EXPORT void WKContextSetInvalidMessageFunction(WKContextInvalidMessageFunction invalidMessageFunction);
</span><ins>+    
+WK_EXPORT void WKContextSetMemoryCacheDisabled(WKContextRef, bool disabled);
</ins><span class="cx"> 
</span><span class="cx"> #ifdef __cplusplus
</span><span class="cx"> }
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessAPICWKPagecpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/API/C/WKPage.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/API/C/WKPage.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/API/C/WKPage.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -931,28 +931,20 @@
</span><span class="cx">                 m_client.pluginDidFail(toAPI(page), kWKErrorCodeInsecurePlugInVersion, toAPI(pluginInformation), m_client.base.clientInfo);
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        virtual PluginModuleLoadPolicy pluginLoadPolicy(WebPageProxy* page, PluginModuleLoadPolicy currentPluginLoadPolicy, ImmutableDictionary* pluginInformation, String&amp; unavailabilityDescription, String&amp; useBlockedPluginTitle) override
</del><ins>+        virtual PluginModuleLoadPolicy pluginLoadPolicy(WebPageProxy* page, PluginModuleLoadPolicy currentPluginLoadPolicy, ImmutableDictionary* pluginInformation, String&amp; unavailabilityDescription) override
</ins><span class="cx">         {
</span><span class="cx">             WKStringRef unavailabilityDescriptionOut = 0;
</span><del>-            WKStringRef useBlockedPluginTitleOut = 0;
</del><span class="cx">             PluginModuleLoadPolicy loadPolicy = currentPluginLoadPolicy;
</span><span class="cx"> 
</span><span class="cx">             if (m_client.pluginLoadPolicy_deprecatedForUseWithV2)
</span><span class="cx">                 loadPolicy = toPluginModuleLoadPolicy(m_client.pluginLoadPolicy_deprecatedForUseWithV2(toAPI(page), toWKPluginLoadPolicy(currentPluginLoadPolicy), toAPI(pluginInformation), m_client.base.clientInfo));
</span><del>-            else if (m_client.pluginLoadPolicy_deprecatedForUseWithV3)
-                loadPolicy = toPluginModuleLoadPolicy(m_client.pluginLoadPolicy_deprecatedForUseWithV3(toAPI(page), toWKPluginLoadPolicy(currentPluginLoadPolicy), toAPI(pluginInformation), &amp;unavailabilityDescriptionOut, m_client.base.clientInfo));
</del><span class="cx">             else if (m_client.pluginLoadPolicy)
</span><del>-                loadPolicy = toPluginModuleLoadPolicy(m_client.pluginLoadPolicy(toAPI(page), toWKPluginLoadPolicy(currentPluginLoadPolicy), toAPI(pluginInformation), &amp;unavailabilityDescriptionOut, &amp;useBlockedPluginTitleOut, m_client.base.clientInfo));
</del><ins>+                loadPolicy = toPluginModuleLoadPolicy(m_client.pluginLoadPolicy(toAPI(page), toWKPluginLoadPolicy(currentPluginLoadPolicy), toAPI(pluginInformation), &amp;unavailabilityDescriptionOut, m_client.base.clientInfo));
</ins><span class="cx"> 
</span><span class="cx">             if (unavailabilityDescriptionOut) {
</span><span class="cx">                 RefPtr&lt;API::String&gt; webUnavailabilityDescription = adoptRef(toImpl(unavailabilityDescriptionOut));
</span><span class="cx">                 unavailabilityDescription = webUnavailabilityDescription-&gt;string();
</span><span class="cx">             }
</span><del>-
-            if (useBlockedPluginTitleOut) {
-                RefPtr&lt;API::String&gt; webUseBlockedPluginTitle = adoptRef(toImpl(useBlockedPluginTitleOut));
-                useBlockedPluginTitle = webUseBlockedPluginTitle-&gt;string();
-            }
</del><span class="cx">             
</span><span class="cx">             return loadPolicy;
</span><span class="cx">         }
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessAPICWKPageLoaderClienth"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/API/C/WKPageLoaderClient.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/API/C/WKPageLoaderClient.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/API/C/WKPageLoaderClient.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -71,7 +71,7 @@
</span><span class="cx"> typedef bool (*WKPageShouldGoToBackForwardListItemCallback)(WKPageRef page, WKBackForwardListItemRef item, const void *clientInfo);
</span><span class="cx"> typedef void (*WKPageWillGoToBackForwardListItemCallback)(WKPageRef page, WKBackForwardListItemRef item, WKTypeRef userData, const void *clientInfo);
</span><span class="cx"> typedef void (*WKPageDidLayoutCallback)(WKPageRef page, WKLayoutMilestones milestones, WKTypeRef userData, const void *clientInfo);
</span><del>-typedef WKPluginLoadPolicy (*WKPagePluginLoadPolicyCallback)(WKPageRef page, WKPluginLoadPolicy currentPluginLoadPolicy, WKDictionaryRef pluginInfoDictionary, WKStringRef* unavailabilityDescription, WKStringRef* useBlockedPluginTitle, const void* clientInfo);
</del><ins>+typedef WKPluginLoadPolicy (*WKPagePluginLoadPolicyCallback)(WKPageRef page, WKPluginLoadPolicy currentPluginLoadPolicy, WKDictionaryRef pluginInfoDictionary, WKStringRef* unavailabilityDescription, const void* clientInfo);
</ins><span class="cx"> typedef void (*WKPagePluginDidFailCallback)(WKPageRef page, WKErrorCode errorCode, WKDictionaryRef pluginInfoDictionary, const void* clientInfo);
</span><span class="cx"> typedef WKWebGLLoadPolicy (*WKPageWebGLLoadPolicyCallback)(WKPageRef page, WKStringRef url, const void* clientInfo);
</span><span class="cx"> 
</span><span class="lines">@@ -79,7 +79,6 @@
</span><span class="cx"> typedef void (*WKPageDidFailToInitializePluginCallback_deprecatedForUseWithV0)(WKPageRef page, WKStringRef mimeType, const void* clientInfo);
</span><span class="cx"> typedef void (*WKPagePluginDidFailCallback_deprecatedForUseWithV1)(WKPageRef page, WKErrorCode errorCode, WKStringRef mimeType, WKStringRef pluginIdentifier, WKStringRef pluginVersion, const void* clientInfo);
</span><span class="cx"> typedef WKPluginLoadPolicy (*WKPagePluginLoadPolicyCallback_deprecatedForUseWithV2)(WKPageRef page, WKPluginLoadPolicy currentPluginLoadPolicy, WKDictionaryRef pluginInfoDictionary, const void* clientInfo);
</span><del>-typedef WKPluginLoadPolicy (*WKPagePluginLoadPolicyCallback_deprecatedForUseWithV3)(WKPageRef page, WKPluginLoadPolicy currentPluginLoadPolicy, WKDictionaryRef pluginInfoDictionary, WKStringRef* unavailabilityDescription, const void* clientInfo);
</del><span class="cx"> 
</span><span class="cx"> typedef struct WKPageLoaderClientBase {
</span><span class="cx">     int                                                                 version;
</span><span class="lines">@@ -272,7 +271,7 @@
</span><span class="cx">     WKPagePluginDidFailCallback                                         pluginDidFail;
</span><span class="cx"> 
</span><span class="cx">     // Version 3.
</span><del>-    WKPagePluginLoadPolicyCallback_deprecatedForUseWithV3               pluginLoadPolicy_deprecatedForUseWithV3;
</del><ins>+    WKPagePluginLoadPolicyCallback                                      pluginLoadPolicy;
</ins><span class="cx"> } WKPageLoaderClientV3;
</span><span class="cx"> 
</span><span class="cx"> typedef struct WKPageLoaderClientV4 {
</span><span class="lines">@@ -328,11 +327,10 @@
</span><span class="cx">     WKPagePluginDidFailCallback                                         pluginDidFail;
</span><span class="cx">     
</span><span class="cx">     // Version 3.
</span><del>-    WKPagePluginLoadPolicyCallback_deprecatedForUseWithV3               pluginLoadPolicy_deprecatedForUseWithV3;
</del><ins>+    WKPagePluginLoadPolicyCallback                                      pluginLoadPolicy;
</ins><span class="cx">     
</span><del>-    // Version 4.
</del><ins>+    // Version 4
</ins><span class="cx">     WKPageWebGLLoadPolicyCallback                                       webGLLoadPolicy;
</span><del>-    WKPagePluginLoadPolicyCallback                                      pluginLoadPolicy;
</del><span class="cx"> } WKPageLoaderClientV4;
</span><span class="cx"> 
</span><span class="cx"> // FIXME: These should be deprecated.
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessAPICWKPreferencescpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -1235,3 +1235,13 @@
</span><span class="cx"> {
</span><span class="cx">     return toImpl(preferencesRef)-&gt;mediaSourceEnabled();
</span><span class="cx"> }
</span><ins>+
+void WKPreferencesSetViewGestureDebuggingEnabled(WKPreferencesRef preferencesRef, bool enabled)
+{
+    toImpl(preferencesRef)-&gt;setViewGestureDebuggingEnabled(enabled);
+}
+
+bool WKPreferencesGetViewGestureDebuggingEnabled(WKPreferencesRef preferencesRef)
+{
+    return toImpl(preferencesRef)-&gt;viewGestureDebuggingEnabled();
+}
</ins></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessAPICWKPreferencesPrivateh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -310,6 +310,10 @@
</span><span class="cx"> WK_EXPORT void WKPreferencesSetMediaSourceEnabled(WKPreferencesRef preferencesRef, bool enabled);
</span><span class="cx"> WK_EXPORT bool WKPreferencesGetMediaSourceEnabled(WKPreferencesRef preferencesRef);
</span><span class="cx"> 
</span><ins>+// Default to false.
+WK_EXPORT void WKPreferencesSetViewGestureDebuggingEnabled(WKPreferencesRef preferencesRef, bool enabled);
+WK_EXPORT bool WKPreferencesGetViewGestureDebuggingEnabled(WKPreferencesRef preferencesRef);
+
</ins><span class="cx"> #ifdef __cplusplus
</span><span class="cx"> }
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessAPICocoaWKProcessClassmm"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/API/Cocoa/WKProcessClass.mm (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/API/Cocoa/WKProcessClass.mm        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/API/Cocoa/WKProcessClass.mm        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -37,12 +37,8 @@
</span><span class="cx"> #import &lt;WebCore/WebCoreThreadSystemInterface.h&gt;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-@implementation WKProcessClass {
-    RetainPtr&lt;WKProcessClassConfiguration&gt; _configuration;
</del><ins>+@implementation WKProcessClass
</ins><span class="cx"> 
</span><del>-    API::ObjectStorage&lt;WebKit::WebContext&gt; _context;
-}
-
</del><span class="cx"> - (instancetype)init
</span><span class="cx"> {
</span><span class="cx">     return [self initWithConfiguration:adoptNS([[WKProcessClassConfiguration alloc] init]).get()];
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessAPICocoaWKProcessClassConfigurationmm"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/API/Cocoa/WKProcessClassConfiguration.mm (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/API/Cocoa/WKProcessClassConfiguration.mm        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/API/Cocoa/WKProcessClassConfiguration.mm        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -28,8 +28,22 @@
</span><span class="cx"> 
</span><span class="cx"> #if WK_API_ENABLED
</span><span class="cx"> 
</span><del>-@implementation WKProcessClassConfiguration
</del><ins>+#import &lt;wtf/RetainPtr.h&gt;
</ins><span class="cx"> 
</span><ins>+@implementation WKProcessClassConfiguration {
+    RetainPtr&lt;NSURL&gt; _injectedBundleURL;
+}
+
+- (NSURL *)_injectedBundleURL
+{
+    return _injectedBundleURL.get();
+}
+
+- (void)_setInjectedBundleURL:(NSURL *)injectedBundleURL
+{
+    _injectedBundleURL = adoptNS([injectedBundleURL copy]);
+}
+
</ins><span class="cx"> - (id)copyWithZone:(NSZone *)zone
</span><span class="cx"> {
</span><span class="cx">     WKProcessClassConfiguration *configuration = [[[self class] allocWithZone:zone] init];
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessAPICocoaWKProcessClassInternalh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/API/Cocoa/WKProcessClassInternal.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/API/Cocoa/WKProcessClassInternal.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/API/Cocoa/WKProcessClassInternal.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -40,7 +40,12 @@
</span><span class="cx"> 
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-@interface WKProcessClass () &lt;WKObject&gt;
</del><ins>+@interface WKProcessClass () &lt;WKObject&gt; {
+@package
+    RetainPtr&lt;WKProcessClassConfiguration&gt; _configuration;
+
+    API::ObjectStorage&lt;WebKit::WebContext&gt; _context;
+}
</ins><span class="cx"> @end
</span><span class="cx"> 
</span><span class="cx"> #endif // WK_API_ENABLED
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessAPICocoaWKViewPrivateh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/API/Cocoa/WKViewPrivate.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/API/Cocoa/WKViewPrivate.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/API/Cocoa/WKViewPrivate.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -70,6 +70,7 @@
</span><span class="cx"> @property (readonly, getter=isUsingUISideCompositing) BOOL usingUISideCompositing;
</span><span class="cx"> @property (readwrite) BOOL allowsMagnification;
</span><span class="cx"> @property (readwrite) double magnification;
</span><ins>+@property (readwrite) BOOL allowsBackForwardNavigationGestures;
</ins><span class="cx"> 
</span><span class="cx"> @property(copy, nonatomic) NSColor *underlayColor;
</span><span class="cx"> 
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessAPICocoaWKWebViewh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -42,8 +42,10 @@
</span><span class="cx">  Used to configure @link WKWebView @/link instances.
</span><span class="cx">  */
</span><span class="cx"> #if TARGET_OS_IPHONE
</span><ins>+WK_API_CLASS
</ins><span class="cx"> @interface WKWebView : UIView
</span><span class="cx"> #else
</span><ins>+WK_API_CLASS
</ins><span class="cx"> @interface WKWebView : NSView
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="lines">@@ -64,6 +66,9 @@
</span><span class="cx">  */
</span><span class="cx"> - (instancetype)initWithFrame:(CGRect)frame configuration:(WKWebViewConfiguration *)configuration WK_DESIGNATED_INITIALIZER;
</span><span class="cx"> 
</span><ins>+// FIXME: This should return a WKNavigation object.
+- (void)loadRequest:(NSURLRequest *)request;
+
</ins><span class="cx"> @end
</span><span class="cx"> 
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessAPICocoaWKWebViewmm"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -28,11 +28,38 @@
</span><span class="cx"> 
</span><span class="cx"> #if WK_API_ENABLED
</span><span class="cx"> 
</span><ins>+#import &quot;WKProcessClass.h&quot;
</ins><span class="cx"> #import &quot;WKWebViewConfiguration.h&quot;
</span><ins>+#import &quot;WebPageProxy.h&quot;
</ins><span class="cx"> #import &lt;wtf/RetainPtr.h&gt;
</span><span class="cx"> 
</span><ins>+#if PLATFORM(IOS)
+#import &quot;WKContentViewInternal.h&quot;
+#import &quot;WKScrollView.h&quot;
+#import &lt;UIKit/UIScrollView_Private.h&gt;
+#import &lt;UIKit/_UIWebViewportHandler.h&gt;
+
+static const float minWebViewScale = 0.25;
+static const float maxWebViewScale = 5;
+static _UIWebViewportConfiguration standardViewportConfiguration = { { UIWebViewportStandardViewportWidth, UIWebViewportGrowsAndShrinksToFitHeight }, UIWebViewportScaleForScalesToFit, minWebViewScale, maxWebViewScale, true
+};
+
+@interface WKWebView () &lt;UIScrollViewDelegate, WKContentViewDelegate, _UIWebViewportHandlerDelegate&gt;
+@end
+#endif
+
</ins><span class="cx"> @implementation WKWebView {
</span><span class="cx">     RetainPtr&lt;WKWebViewConfiguration&gt; _configuration;
</span><ins>+    RefPtr&lt;WebKit::WebPageProxy&gt; _page;
+
+#if PLATFORM(IOS)
+    RetainPtr&lt;WKScrollView&gt; _scrollView;
+    RetainPtr&lt;WKContentView&gt; _contentView;
+    RetainPtr&lt;_UIWebViewportHandler&gt; _viewportHandler;
+
+    BOOL _userHasChangedPageScale;
+    BOOL _hasStaticMinimumLayoutSize;
+#endif
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (instancetype)initWithFrame:(CGRect)frame
</span><span class="lines">@@ -45,11 +72,33 @@
</span><span class="cx">     if (!(self = [super initWithFrame:frame]))
</span><span class="cx">         return nil;
</span><span class="cx"> 
</span><del>-    // FIXME: Fill in nil properties with concrete properties.
</del><span class="cx">     _configuration = adoptNS([configuration copy]);
</span><span class="cx"> 
</span><del>-    // FIXME: Initialize the WKWebView object.
</del><ins>+    if (![_configuration processClass])
+        [_configuration setProcessClass:adoptNS([[WKProcessClass alloc] init]).get()];
</ins><span class="cx"> 
</span><ins>+#if PLATFORM(IOS)
+    CGRect bounds = self.bounds;
+
+    _scrollView = adoptNS([[WKScrollView alloc] initWithFrame:bounds]);
+    [_scrollView setInternalDelegate:self];
+    [_scrollView setBouncesZoom:YES];
+
+    [self addSubview:_scrollView.get()];
+
+    _contentView = adoptNS([[WKContentView alloc] initWithFrame:bounds configuration:_configuration.get()]);
+    _page = _contentView-&gt;_page;
+    [_contentView setDelegate:self];
+    [_contentView layer].anchorPoint = CGPointZero;
+    [_contentView setFrame:bounds];
+    [_scrollView addSubview:_contentView.get()];
+
+    _viewportHandler = adoptNS([[_UIWebViewportHandler alloc] init]);
+    [_viewportHandler setDelegate:self];
+
+    [self _frameOrBoundsChanged];
+#endif
+
</ins><span class="cx">     return self;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -58,6 +107,192 @@
</span><span class="cx">     return [[_configuration copy] autorelease];
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+- (void)loadRequest:(NSURLRequest *)request
+{
+    _page-&gt;loadURLRequest(API::URLRequest::create(request).get());
+}
+
+#pragma mark iOS-specific methods
+
+#if PLATFORM(IOS)
+- (void)setFrame:(CGRect)frame
+{
+    CGRect oldFrame = self.frame;
+    [super setFrame:frame];
+
+    if (!CGSizeEqualToSize(oldFrame.size, frame.size))
+        [self _frameOrBoundsChanged];
+}
+
+- (void)setBounds:(CGRect)bounds
+{
+    CGRect oldBounds = self.bounds;
+    [super setBounds:bounds];
+
+    if (!CGSizeEqualToSize(oldBounds.size, bounds.size))
+        [self _frameOrBoundsChanged];
+}
+
+- (UIScrollView *)scrollView
+{
+    return _scrollView.get();
+}
+
+- (WKBrowsingContextController *)browsingContextController
+{
+    return [_contentView browsingContextController];
+}
+
+#pragma mark WKContentViewDelegate
+
+- (void)contentView:(WKContentView *)contentView contentsSizeDidChange:(CGSize)newSize
+{
+    CGFloat zoomScale = [_scrollView zoomScale];
+    CGSize contentsSizeInScrollViewCoordinates = CGSizeMake(newSize.width * zoomScale, newSize.height * zoomScale);
+    [_scrollView setContentSize:contentsSizeInScrollViewCoordinates];
+
+    [_viewportHandler update:^{
+         [_viewportHandler setDocumentBounds:{CGPointZero, newSize}];
+    }];
+}
+
+- (void)contentViewDidCommitLoadForMainFrame:(WKContentView *)contentView
+{
+    _userHasChangedPageScale = NO;
+
+    WKContentType contentType = [_contentView contentType];
+    [_viewportHandler update:^{
+        [_viewportHandler clearWebKitViewportConfigurationFlags];
+        _UIWebViewportConfiguration configuration = standardViewportConfiguration;
+
+        if (contentType == PlainText) {
+            CGFloat screenWidth = [[UIScreen mainScreen] bounds].size.width;
+            configuration.size.width = screenWidth;
+        } else if (contentType == WKContentType::Image)
+            configuration.minimumScale = 0.01;
+
+        [_viewportHandler resetViewportConfiguration:&amp;configuration];
+    }];
+}
+
+- (void)contentViewDidReceiveMobileDocType:(WKContentView *)contentView
+{
+    [_viewportHandler update:^{
+        _UIWebViewportConfiguration configuration = standardViewportConfiguration;
+        configuration.minimumScale = 1;
+        configuration.size = CGSizeMake(320, UIWebViewportGrowsAndShrinksToFitHeight);
+        [_viewportHandler resetViewportConfiguration:&amp;configuration];
+    }];
+}
+
+- (void)contentView:(WKContentView *)contentView didChangeViewportArgumentsSize:(CGSize)newSize initialScale:(float)initialScale minimumScale:(float)minimumScale maximumScale:(float)maximumScale allowsUserScaling:(float)allowsUserScaling
+{
+    [_viewportHandler update:^{
+        [_viewportHandler applyWebKitViewportArgumentsSize:newSize initialScale:initialScale minimumScale:minimumScale maximumScale:maximumScale allowsUserScaling:allowsUserScaling];
+    }];
+}
+
+#pragma mark - _UIWebViewportHandlerDelegate
+
+- (void)viewportHandlerDidChangeScales:(_UIWebViewportHandler *)viewportHandler
+{
+    ASSERT(viewportHandler == _viewportHandler);
+    [_scrollView setMinimumZoomScale:viewportHandler.minimumScale];
+    [_scrollView setMaximumZoomScale:viewportHandler.maximumScale];
+    [_scrollView setZoomEnabled:viewportHandler.allowsUserScaling];
+
+    if (!_userHasChangedPageScale)
+        [self _setDocumentScale:viewportHandler.initialScale];
+    else {
+        CGFloat currentScale = [_scrollView zoomScale];
+        CGFloat validScale = std::max(std::min(currentScale, static_cast&lt;CGFloat&gt;(viewportHandler.maximumScale)), static_cast&lt;CGFloat&gt;(viewportHandler.minimumScale));
+        [self _setDocumentScale:validScale];
+    }
+}
+
+- (void)viewportHandler:(_UIWebViewportHandler *)viewportHandler didChangeViewportSize:(CGSize)newSize
+{
+    ASSERT(viewportHandler == _viewportHandler);
+    [_contentView setViewportSize:newSize];
+}
+
+#pragma mark - UIScrollViewDelegate
+
+- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
+{
+    ASSERT(_scrollView == scrollView);
+    return _contentView.get();
+}
+
+- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view
+{
+    if (scrollView.pinchGestureRecognizer.state == UIGestureRecognizerStateBegan)
+        _userHasChangedPageScale = YES;
+}
+
+- (void)_didFinishScroll
+{
+    CGPoint position = [_scrollView convertPoint:[_scrollView contentOffset] toView:_contentView.get()];
+    [_contentView didFinishScrollTo:position];
+}
+
+- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
+{
+    // If we're decelerating, scroll offset will be updated when scrollViewDidFinishDecelerating: is called.
+    if (!decelerate)
+        [self _didFinishScroll];
+}
+
+- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
+{
+    [self _didFinishScroll];
+}
+
+- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView
+{
+    [self _didFinishScroll];
+}
+
+- (void)scrollViewDidScroll:(UIScrollView *)scrollView
+{
+    CGPoint position = [_scrollView convertPoint:[_scrollView contentOffset] toView:_contentView.get()];
+    [_contentView didScrollTo:position];
+}
+
+- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale
+{
+    ASSERT(scrollView == _scrollView);
+    [_contentView didZoomToScale:scale];
+}
+
+#pragma mark Internal
+
+- (void)_frameOrBoundsChanged
+{
+    CGRect bounds = self.bounds;
+
+    if (!_hasStaticMinimumLayoutSize) {
+        [_viewportHandler update:^{
+            [_viewportHandler setAvailableViewSize:bounds.size];
+        }];
+    }
+    [_scrollView setFrame:bounds];
+    [_contentView setMinimumSize:bounds.size];
+}
+
+- (void)_setDocumentScale:(CGFloat)newScale
+{
+    CGPoint contentOffsetInDocumentCoordinates = [_scrollView convertPoint:[_scrollView contentOffset] toView:_contentView.get()];
+
+    [_scrollView setZoomScale:newScale];
+    [_contentView didZoomToScale:newScale];
+
+    CGPoint contentOffset = [_scrollView convertPoint:contentOffsetInDocumentCoordinates fromView:_contentView.get()];
+    [_scrollView setContentOffset:contentOffset];
+}
+
+#endif
+
</ins><span class="cx"> @end
</span><span class="cx"> 
</span><span class="cx"> #endif // WK_API_ENABLED
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessAPIiosPageClientImplIOSh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/API/ios/PageClientImplIOS.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/API/ios/PageClientImplIOS.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/API/ios/PageClientImplIOS.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -94,6 +94,7 @@
</span><span class="cx">     virtual void exitAcceleratedCompositingMode() override;
</span><span class="cx">     virtual void updateAcceleratedCompositingMode(const LayerTreeContext&amp;) override;
</span><span class="cx">     virtual void setAcceleratedCompositingRootLayer(CALayer *rootLayer) override;
</span><ins>+    virtual CALayer *acceleratedCompositingRootLayer() const override;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     virtual RetainPtr&lt;CGImageRef&gt; takeViewSnapshot() override;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessAPIiosPageClientImplIOSmm"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/API/ios/PageClientImplIOS.mm (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/API/ios/PageClientImplIOS.mm        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/API/ios/PageClientImplIOS.mm        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -314,6 +314,12 @@
</span><span class="cx"> {
</span><span class="cx">     [m_view _setAcceleratedCompositingRootLayer:rootLayer];
</span><span class="cx"> }
</span><ins>+
+CALayer *PageClientImpl::acceleratedCompositingRootLayer() const
+{
+    notImplemented();
+    return nullptr;
+}
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> RetainPtr&lt;CGImageRef&gt; PageClientImpl::takeViewSnapshot()
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessAPIiosWKContentViewh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/API/ios/WKContentView.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/API/ios/WKContentView.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/API/ios/WKContentView.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> #import &lt;WebKit2/WKProcessGroup.h&gt;
</span><span class="cx"> 
</span><span class="cx"> @class WKContentView;
</span><ins>+@class WKWebViewConfiguration;
</ins><span class="cx"> 
</span><span class="cx"> typedef NS_ENUM(unsigned, WKContentType)
</span><span class="cx"> {
</span><span class="lines">@@ -57,6 +58,8 @@
</span><span class="cx"> 
</span><span class="cx"> @property (readonly) WKPageRef _pageRef;
</span><span class="cx"> 
</span><ins>+- (instancetype)initWithFrame:(CGRect)frame configuration:(WKWebViewConfiguration *)configuration;
+
</ins><span class="cx"> - (id)initWithFrame:(CGRect)frame contextRef:(WKContextRef)contextRef pageGroupRef:(WKPageGroupRef)pageGroupRef;
</span><span class="cx"> - (id)initWithFrame:(CGRect)frame contextRef:(WKContextRef)contextRef pageGroupRef:(WKPageGroupRef)pageGroupRef relatedToPage:(WKPageRef)relatedPage;
</span><span class="cx"> - (id)initWithFrame:(CGRect)frame processGroup:(WKProcessGroup *)processGroup browsingContextGroup:(WKBrowsingContextGroup *)browsingContextGroup;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessAPIiosWKContentViewmm"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/API/ios/WKContentView.mm (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/API/ios/WKContentView.mm        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/API/ios/WKContentView.mm        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -36,6 +36,8 @@
</span><span class="cx"> #import &quot;WKGeolocationProviderIOS.h&quot;
</span><span class="cx"> #import &quot;WKInteractionView.h&quot;
</span><span class="cx"> #import &quot;WKProcessGroupPrivate.h&quot;
</span><ins>+#import &quot;WKProcessClassInternal.h&quot;
+#import &quot;WKWebViewConfiguration.h&quot;
</ins><span class="cx"> #import &quot;WebContext.h&quot;
</span><span class="cx"> #import &quot;WebFrameProxy.h&quot;
</span><span class="cx"> #import &quot;WebPageGroup.h&quot;
</span><span class="lines">@@ -57,7 +59,6 @@
</span><span class="cx"> 
</span><span class="cx"> @implementation WKContentView {
</span><span class="cx">     std::unique_ptr&lt;PageClientImpl&gt; _pageClient;
</span><del>-    RefPtr&lt;WebPageProxy&gt; _page;
</del><span class="cx">     RetainPtr&lt;WKBrowsingContextController&gt; _browsingContextController;
</span><span class="cx"> 
</span><span class="cx">     RetainPtr&lt;UIView&gt; _rootContentView;
</span><span class="lines">@@ -66,13 +67,6 @@
</span><span class="cx">     WebCore::FloatPoint _currentExposedRectPosition;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-- (id)initWithCoder:(NSCoder *)coder
-{
-    // FIXME: Implement.
-    [self release];
-    return nil;
-}
-
</del><span class="cx"> - (id)initWithFrame:(CGRect)frame contextRef:(WKContextRef)contextRef pageGroupRef:(WKPageGroupRef)pageGroupRef
</span><span class="cx"> {
</span><span class="cx">     return [self initWithFrame:frame contextRef:contextRef pageGroupRef:pageGroupRef relatedToPage:nullptr];
</span><span class="lines">@@ -96,6 +90,38 @@
</span><span class="cx">     return self;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+- (instancetype)initWithFrame:(CGRect)frame configuration:(WKWebViewConfiguration *)configuration
+{
+    if (!(self = [super initWithFrame:frame]))
+        return nil;
+
+    InitializeWebKit2();
+    RunLoop::initializeMainRunLoop();
+
+    _pageClient = std::make_unique&lt;PageClientImpl&gt;(self);
+
+    _page = configuration.processClass-&gt;_context-&gt;createWebPage(*_pageClient, nullptr);
+    _page-&gt;initializeWebPage();
+    _page-&gt;setIntrinsicDeviceScaleFactor([UIScreen mainScreen].scale);
+    _page-&gt;setUseFixedLayout(true);
+
+    WebContext::statistics().wkViewCount++;
+
+    _rootContentView = adoptNS([[UIView alloc] init]);
+    [_rootContentView layer].masksToBounds = NO;
+    [_rootContentView setUserInteractionEnabled:NO];
+
+    [self addSubview:_rootContentView.get()];
+
+    _interactionView = adoptNS([[WKInteractionView alloc] init]);
+    [_interactionView setPage:_page];
+    [self addSubview:_interactionView.get()];
+
+    self.layer.hitTestsAsOpaque = YES;
+
+    return self;
+}
+
</ins><span class="cx"> - (void)dealloc
</span><span class="cx"> {
</span><span class="cx">     _page-&gt;close();
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessAPIiosWKContentViewInternalh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/API/ios/WKContentViewInternal.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/API/ios/WKContentViewInternal.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/API/ios/WKContentViewInternal.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -39,13 +39,17 @@
</span><span class="cx"> class GeolocationPermissionRequestProxy;
</span><span class="cx"> class LayerTreeContext;
</span><span class="cx"> class WebFrameProxy;
</span><ins>+class WebPageProxy;
</ins><span class="cx"> class WebSecurityOrigin;
</span><span class="cx"> struct InteractionInformationAtPosition;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> @class WebIOSEvent;
</span><span class="cx"> 
</span><del>-@interface WKContentView ()
</del><ins>+@interface WKContentView () {
+@package
+    RefPtr&lt;WebKit::WebPageProxy&gt; _page;
+}
</ins><span class="cx"> 
</span><span class="cx"> - (std::unique_ptr&lt;WebKit::DrawingAreaProxy&gt;)_createDrawingAreaProxy;
</span><span class="cx"> - (void)_processDidCrash;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessAPImacPageClientImplh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/API/mac/PageClientImpl.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/API/mac/PageClientImpl.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/API/mac/PageClientImpl.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -69,6 +69,7 @@
</span><span class="cx">     virtual LayerHostingMode viewLayerHostingMode() override;
</span><span class="cx">     virtual ColorSpaceData colorSpace() override;
</span><span class="cx">     virtual void setAcceleratedCompositingRootLayer(CALayer *) override;
</span><ins>+    virtual CALayer *acceleratedCompositingRootLayer() const override;
</ins><span class="cx"> 
</span><span class="cx">     virtual void processDidCrash();
</span><span class="cx">     virtual void pageClosed();
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessAPImacPageClientImplmm"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/API/mac/PageClientImpl.mm (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/API/mac/PageClientImpl.mm        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/API/mac/PageClientImpl.mm        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -434,6 +434,11 @@
</span><span class="cx">     [m_wkView _setAcceleratedCompositingModeRootLayer:rootLayer];
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+CALayer *PageClientImpl::acceleratedCompositingRootLayer() const
+{
+    return m_wkView._acceleratedCompositingModeRootLayer;
+}
+
</ins><span class="cx"> RetainPtr&lt;CGImageRef&gt; PageClientImpl::takeViewSnapshot()
</span><span class="cx"> {
</span><span class="cx">     return [m_wkView _takeViewSnapshot];
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessAPImacWKViewmm"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/API/mac/WKView.mm (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/API/mac/WKView.mm        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/API/mac/WKView.mm        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -230,6 +230,7 @@
</span><span class="cx"> 
</span><span class="cx">     std::unique_ptr&lt;ViewGestureController&gt; _gestureController;
</span><span class="cx">     BOOL _allowsMagnification;
</span><ins>+    BOOL _allowsBackForwardNavigationGestures;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> @end
</span><span class="lines">@@ -1103,17 +1104,26 @@
</span><span class="cx"> 
</span><span class="cx"> #undef NATIVE_MOUSE_EVENT_HANDLER
</span><span class="cx"> 
</span><del>-#define NATIVE_EVENT_HANDLER(Selector, Type) \
-    - (void)Selector:(NSEvent *)theEvent \
-    { \
-        NativeWeb##Type##Event webEvent = NativeWeb##Type##Event(theEvent, self); \
-        _data-&gt;_page-&gt;handle##Type##Event(webEvent); \
</del><ins>+- (void)_ensureGestureController
+{
+    if (_data-&gt;_gestureController)
+        return;
+
+    _data-&gt;_gestureController = std::make_unique&lt;ViewGestureController&gt;(*_data-&gt;_page);
+}
+
+- (void)scrollWheel:(NSEvent *)event
+{
+    if (_data-&gt;_allowsBackForwardNavigationGestures) {
+        [self _ensureGestureController];
+        if (_data-&gt;_gestureController-&gt;handleScrollWheelEvent(event))
+            return;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-NATIVE_EVENT_HANDLER(scrollWheel, Wheel)
</del><ins>+    NativeWebWheelEvent webEvent = NativeWebWheelEvent(event, self);
+    _data-&gt;_page-&gt;handleWheelEvent(webEvent);
+}
</ins><span class="cx"> 
</span><del>-#undef NATIVE_EVENT_HANDLER
-
</del><span class="cx"> - (void)mouseMoved:(NSEvent *)event
</span><span class="cx"> {
</span><span class="cx">     // When a view is first responder, it gets mouse moved events even when the mouse is outside its visible rect.
</span><span class="lines">@@ -2471,6 +2481,11 @@
</span><span class="cx">     _data-&gt;_findIndicatorWindow-&gt;setFindIndicator(findIndicator, fadeOut, animate);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+- (CALayer *)_rootLayer
+{
+    return [_data-&gt;_layerHostingView layer];
+}
+
</ins><span class="cx"> - (void)_setAcceleratedCompositingModeRootLayer:(CALayer *)rootLayer
</span><span class="cx"> {
</span><span class="cx">     [CATransaction begin];
</span><span class="lines">@@ -2510,6 +2525,16 @@
</span><span class="cx">     [CATransaction commit];
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+- (CALayer *)_acceleratedCompositingModeRootLayer
+{
+    NSView *hostView = _data-&gt;_layerHostingView.get();
+
+    if (!hostView)
+        return nullptr;
+
+    return hostView.layer;
+}
+
</ins><span class="cx"> - (RetainPtr&lt;CGImageRef&gt;)_takeViewSnapshot
</span><span class="cx"> {
</span><span class="cx">     NSWindow *window = self.window;
</span><span class="lines">@@ -3221,14 +3246,6 @@
</span><span class="cx">     return NO;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-- (void)_ensureGestureController
-{
-    if (_data-&gt;_gestureController)
-        return;
-
-    _data-&gt;_gestureController = std::make_unique&lt;ViewGestureController&gt;(*_data-&gt;_page);
-}
-
</del><span class="cx"> - (void)setAllowsMagnification:(BOOL)allowsMagnification
</span><span class="cx"> {
</span><span class="cx">     _data-&gt;_allowsMagnification = allowsMagnification;
</span><span class="lines">@@ -3239,6 +3256,17 @@
</span><span class="cx">     return _data-&gt;_allowsMagnification;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+- (void)setAllowsBackForwardNavigationGestures:(BOOL)allowsBackForwardNavigationGestures
+{
+    _data-&gt;_allowsBackForwardNavigationGestures = allowsBackForwardNavigationGestures;
+    _data-&gt;_page-&gt;setShouldRecordNavigationSnapshots(allowsBackForwardNavigationGestures);
+}
+
+- (BOOL)allowsBackForwardNavigationGestures
+{
+    return _data-&gt;_allowsBackForwardNavigationGestures;
+}
+
</ins><span class="cx"> - (void)magnifyWithEvent:(NSEvent *)event
</span><span class="cx"> {
</span><span class="cx">     if (!_data-&gt;_allowsMagnification) {
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessAPImacWKViewInternalh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -69,6 +69,7 @@
</span><span class="cx"> - (void)_setFindIndicator:(PassRefPtr&lt;WebKit::FindIndicator&gt;)findIndicator fadeOut:(BOOL)fadeOut animate:(BOOL)animate;
</span><span class="cx"> 
</span><span class="cx"> - (void)_setAcceleratedCompositingModeRootLayer:(CALayer *)rootLayer;
</span><ins>+- (CALayer *)_acceleratedCompositingModeRootLayer;
</ins><span class="cx"> 
</span><span class="cx"> - (RetainPtr&lt;CGImageRef&gt;)_takeViewSnapshot;
</span><span class="cx"> 
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessPageClienth"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/PageClient.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/PageClient.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/PageClient.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -172,6 +172,7 @@
</span><span class="cx">     virtual void notifyInputContextAboutDiscardedComposition() = 0;
</span><span class="cx">     virtual void makeFirstResponder() = 0;
</span><span class="cx">     virtual void setAcceleratedCompositingRootLayer(CALayer *) = 0;
</span><ins>+    virtual CALayer *acceleratedCompositingRootLayer() const = 0;
</ins><span class="cx">     virtual RetainPtr&lt;CGImageRef&gt; takeViewSnapshot() = 0;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessScrollingRemoteScrollingCoordinatorProxycpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -57,6 +57,9 @@
</span><span class="cx"> 
</span><span class="cx"> WebCore::ScrollingNodeID RemoteScrollingCoordinatorProxy::rootScrollingNodeID() const
</span><span class="cx"> {
</span><ins>+    if (!m_scrollingTree-&gt;rootNode())
+        return 0;
+
</ins><span class="cx">     return m_scrollingTree-&gt;rootNode()-&gt;scrollingNodeID();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessWebContextcpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/WebContext.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/WebContext.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/WebContext.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -154,6 +154,7 @@
</span><span class="cx"> #if USE(SOUP)
</span><span class="cx">     , m_ignoreTLSErrors(true)
</span><span class="cx"> #endif
</span><ins>+    , m_memoryCacheDisabled(false)
</ins><span class="cx"> {
</span><span class="cx">     platformInitialize();
</span><span class="cx"> 
</span><span class="lines">@@ -601,6 +602,8 @@
</span><span class="cx">     parameters.plugInAutoStartOriginHashes = m_plugInAutoStartProvider.autoStartOriginHashesCopy();
</span><span class="cx">     copyToVector(m_plugInAutoStartProvider.autoStartOrigins(), parameters.plugInAutoStartOrigins);
</span><span class="cx"> 
</span><ins>+    parameters.memoryCacheDisabled = m_memoryCacheDisabled;
+
</ins><span class="cx">     // Add any platform specific parameters
</span><span class="cx">     platformInitializeWebProcess(parameters);
</span><span class="cx"> 
</span><span class="lines">@@ -1368,5 +1371,11 @@
</span><span class="cx">     m_client.plugInInformationBecameAvailable(this, API::Array::create(std::move(plugins)).get());
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><ins>+    
+void WebContext::setMemoryCacheDisabled(bool disabled)
+{
+    m_memoryCacheDisabled = disabled;
+    sendToAllProcesses(Messages::WebProcess::SetMemoryCacheDisabled(disabled));
+}
</ins><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessWebContexth"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/WebContext.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/WebContext.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/WebContext.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -328,6 +328,8 @@
</span><span class="cx">     void updateProcessSuppressionState() const;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+    void setMemoryCacheDisabled(bool);
+
</ins><span class="cx"> private:
</span><span class="cx">     void platformInitialize();
</span><span class="cx"> 
</span><span class="lines">@@ -513,6 +515,8 @@
</span><span class="cx"> #if USE(SOUP)
</span><span class="cx">     bool m_ignoreTLSErrors;
</span><span class="cx"> #endif
</span><ins>+
+    bool m_memoryCacheDisabled;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> template&lt;typename T&gt;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessWebPageProxycpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/WebPageProxy.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/WebPageProxy.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/WebPageProxy.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -1338,7 +1338,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(NETSCAPE_PLUGIN_API)
</span><del>-void WebPageProxy::findPlugin(const String&amp; mimeType, uint32_t processType, const String&amp; urlString, const String&amp; frameURLString, const String&amp; pageURLString, bool allowOnlyApplicationPlugins, uint64_t&amp; pluginProcessToken, String&amp; newMimeType, uint32_t&amp; pluginLoadPolicy, String&amp; unavailabilityDescription, String&amp; useBlockedPluginTitle)
</del><ins>+void WebPageProxy::findPlugin(const String&amp; mimeType, uint32_t processType, const String&amp; urlString, const String&amp; frameURLString, const String&amp; pageURLString, bool allowOnlyApplicationPlugins, uint64_t&amp; pluginProcessToken, String&amp; newMimeType, uint32_t&amp; pluginLoadPolicy, String&amp; unavailabilityDescription)
</ins><span class="cx"> {
</span><span class="cx">     MESSAGE_CHECK_URL(urlString);
</span><span class="cx"> 
</span><span class="lines">@@ -1356,12 +1356,11 @@
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(MAC)
</span><span class="cx">     RefPtr&lt;ImmutableDictionary&gt; pluginInformation = createPluginInformationDictionary(plugin, frameURLString, String(), pageURLString, String(), String());
</span><del>-    pluginLoadPolicy = m_loaderClient-&gt;pluginLoadPolicy(this, static_cast&lt;PluginModuleLoadPolicy&gt;(pluginLoadPolicy), pluginInformation.get(), unavailabilityDescription, useBlockedPluginTitle);
</del><ins>+    pluginLoadPolicy = m_loaderClient-&gt;pluginLoadPolicy(this, static_cast&lt;PluginModuleLoadPolicy&gt;(pluginLoadPolicy), pluginInformation.get(), unavailabilityDescription);
</ins><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(frameURLString);
</span><span class="cx">     UNUSED_PARAM(pageURLString);
</span><span class="cx">     UNUSED_PARAM(unavailabilityDescription);
</span><del>-    UNUSED_PARAM(useBlockedPluginTitle);
</del><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     PluginProcessSandboxPolicy pluginProcessSandboxPolicy = PluginProcessSandboxPolicyNormal;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessWebPageProxyh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/WebPageProxy.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/WebPageProxy.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/WebPageProxy.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -499,6 +499,7 @@
</span><span class="cx">     bool acceptsFirstMouse(int eventNumber, const WebMouseEvent&amp;);
</span><span class="cx"> 
</span><span class="cx">     void setAcceleratedCompositingRootLayer(PlatformLayer* rootLayer);
</span><ins>+    PlatformLayer* acceleratedCompositingRootLayer() const;
</ins><span class="cx"> 
</span><span class="cx"> #if USE(APPKIT)
</span><span class="cx">     WKView* wkView() const;
</span><span class="lines">@@ -1164,7 +1165,7 @@
</span><span class="cx">     void sendWheelEvent(const WebWheelEvent&amp;);
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(NETSCAPE_PLUGIN_API)
</span><del>-    void findPlugin(const String&amp; mimeType, uint32_t processType, const String&amp; urlString, const String&amp; frameURLString, const String&amp; pageURLString, bool allowOnlyApplicationPlugins, uint64_t&amp; pluginProcessToken, String&amp; newMIMEType, uint32_t&amp; pluginLoadPolicy, String&amp; unavailabilityDescription, String&amp; useBlockedPluginTitle);
</del><ins>+    void findPlugin(const String&amp; mimeType, uint32_t processType, const String&amp; urlString, const String&amp; frameURLString, const String&amp; pageURLString, bool allowOnlyApplicationPlugins, uint64_t&amp; pluginProcessToken, String&amp; newMIMEType, uint32_t&amp; pluginLoadPolicy, String&amp; unavailabilityDescription);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     PageClient&amp; m_pageClient;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessWebPageProxymessagesin"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/WebPageProxy.messages.in (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/WebPageProxy.messages.in        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/WebPageProxy.messages.in        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -334,7 +334,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(NETSCAPE_PLUGIN_API)
</span><del>-    FindPlugin(String mimeType, uint32_t processType, String urlString, String frameURLString, String pageURLString, bool allowOnlyApplicationPlugins) -&gt; (uint64_t pluginProcessToken, String newMIMEType, uint32_t pluginLoadPolicy, String unavailabilityDescription, String useBlockedPluginTitle)
</del><ins>+    FindPlugin(String mimeType, uint32_t processType, String urlString, String frameURLString, String pageURLString, bool allowOnlyApplicationPlugins) -&gt; (uint64_t pluginProcessToken, String newMIMEType, uint32_t pluginLoadPolicy, String unavailabilityDescription)
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     DidUpdateViewState()
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessmacViewGestureControllerh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/mac/ViewGestureController.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/mac/ViewGestureController.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/mac/ViewGestureController.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2013 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -26,11 +26,19 @@
</span><span class="cx"> #ifndef ViewGestureController_h
</span><span class="cx"> #define ViewGestureController_h
</span><span class="cx"> 
</span><ins>+#if !PLATFORM(IOS)
+
</ins><span class="cx"> #include &quot;MessageReceiver.h&quot;
</span><span class="cx"> #include &lt;WebCore/FloatRect.h&gt;
</span><ins>+#include &lt;WebCore/Timer.h&gt;
+#include &lt;wtf/RetainPtr.h&gt;
</ins><span class="cx"> 
</span><ins>+OBJC_CLASS CALayer;
+OBJC_CLASS NSEvent;
+
</ins><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><ins>+class WebBackForwardListItem;
</ins><span class="cx"> class WebPageProxy;
</span><span class="cx"> 
</span><span class="cx"> class ViewGestureController : private IPC::MessageReceiver {
</span><span class="lines">@@ -44,14 +52,23 @@
</span><span class="cx">     void handleMagnificationGesture(double scale, WebCore::FloatPoint origin);
</span><span class="cx">     void handleSmartMagnificationGesture(WebCore::FloatPoint origin);
</span><span class="cx"> 
</span><ins>+    bool handleScrollWheelEvent(NSEvent *);
+    void didHitRenderTreeSizeThreshold();
+
</ins><span class="cx">     void endActiveGesture();
</span><span class="cx"> 
</span><span class="cx">     enum class ViewGestureType {
</span><span class="cx">         None,
</span><span class="cx">         Magnification,
</span><span class="cx">         SmartMagnification,
</span><ins>+        Swipe
</ins><span class="cx">     };
</span><span class="cx"> 
</span><ins>+    enum class SwipeTransitionStyle {
+        Overlap,
+        Push
+    };
+
</ins><span class="cx"> private:
</span><span class="cx">     // IPC::MessageReceiver.
</span><span class="cx">     virtual void didReceiveMessage(IPC::Connection*, IPC::MessageDecoder&amp;) override;
</span><span class="lines">@@ -63,6 +80,12 @@
</span><span class="cx">     void endMagnificationGesture();
</span><span class="cx">     WebCore::FloatPoint scaledMagnificationOrigin(WebCore::FloatPoint origin, double scale);
</span><span class="cx"> 
</span><ins>+    void beginSwipeGesture(WebBackForwardListItem* targetItem, bool swipingLeft);
+    void handleSwipeGesture(WebBackForwardListItem* targetItem, double progress, bool swipingLeft);
+    void endSwipeGesture(WebBackForwardListItem* targetItem, bool cancelled);
+    void removeSwipeSnapshot();
+    void swipeSnapshotWatchdogTimerFired(WebCore::Timer&lt;ViewGestureController&gt;*);
+
</ins><span class="cx">     WebPageProxy&amp; m_webPageProxy;
</span><span class="cx"> 
</span><span class="cx">     double m_magnification;
</span><span class="lines">@@ -76,8 +99,14 @@
</span><span class="cx">     WebCore::FloatRect m_visibleContentRect;
</span><span class="cx">     bool m_visibleContentRectIsValid;
</span><span class="cx">     bool m_frameHandlesMagnificationGesture;
</span><ins>+
+    RetainPtr&lt;CALayer&gt; m_swipeSnapshotLayer;
+    SwipeTransitionStyle m_swipeTransitionStyle;
+    WebCore::Timer&lt;ViewGestureController&gt; m_swipeWatchdogTimer;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span><span class="cx"> 
</span><ins>+#endif // !PLATFORM(IOS)
+
</ins><span class="cx"> #endif // ViewGestureController_h
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessmacViewGestureControllermessagesin"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/mac/ViewGestureController.messages.in (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/mac/ViewGestureController.messages.in        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/mac/ViewGestureController.messages.in        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -20,7 +20,12 @@
</span><span class="cx"> # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
</span><span class="cx"> # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx"> 
</span><ins>+#if !PLATFORM(IOS)
+
</ins><span class="cx"> messages -&gt; ViewGestureController {
</span><span class="cx">     DidCollectGeometryForMagnificationGesture(WebCore::FloatRect visibleContentBounds, bool frameHandlesMagnificationGesture)
</span><span class="cx">     DidCollectGeometryForSmartMagnificationGesture(WebCore::FloatPoint origin, WebCore::FloatRect renderRect, WebCore::FloatRect visibleContentBounds, bool isReplacedElement, bool frameHandlesMagnificationGesture)
</span><ins>+    DidHitRenderTreeSizeThreshold()
</ins><span class="cx"> }
</span><ins>+
+#endif
</ins></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessmacViewGestureControllermm"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/mac/ViewGestureController.mm (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/mac/ViewGestureController.mm        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/mac/ViewGestureController.mm        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2013 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -26,11 +26,34 @@
</span><span class="cx"> #import &quot;config.h&quot;
</span><span class="cx"> #import &quot;ViewGestureController.h&quot;
</span><span class="cx"> 
</span><ins>+#if !PLATFORM(IOS)
+
+#import &quot;WebPageGroup.h&quot;
</ins><span class="cx"> #import &quot;ViewGestureControllerMessages.h&quot;
</span><span class="cx"> #import &quot;ViewGestureGeometryCollectorMessages.h&quot;
</span><ins>+#import &quot;ViewSnapshotStore.h&quot;
+#import &quot;WebBackForwardList.h&quot;
+#import &quot;WebPageMessages.h&quot;
</ins><span class="cx"> #import &quot;WebPageProxy.h&quot;
</span><ins>+#import &quot;WebPreferences.h&quot;
</ins><span class="cx"> #import &quot;WebProcessProxy.h&quot;
</span><ins>+#import &lt;Cocoa/Cocoa.h&gt;
+#import &lt;QuartzCore/QuartzCore.h&gt;
+#import &lt;WebCore/WebCoreCALayerExtras.h&gt;
</ins><span class="cx"> 
</span><ins>+#if defined(__has_include) &amp;&amp; __has_include(&lt;QuartzCore/QuartzCorePrivate.h&gt;)
+#import &lt;QuartzCore/QuartzCorePrivate.h&gt;
+#else
+@interface CAFilter : NSObject &lt;NSCopying, NSMutableCopying, NSCoding&gt;
+@end
+#endif
+
+@interface CAFilter (Details)
++ (CAFilter *)filterWithType:(NSString *)type;
+@end
+
+extern NSString * const kCAFilterGaussianBlur;
+
</ins><span class="cx"> using namespace WebCore;
</span><span class="cx"> 
</span><span class="cx"> static const double minMagnification = 1;
</span><span class="lines">@@ -45,6 +68,12 @@
</span><span class="cx"> static const float smartMagnificationElementPadding = 0.05;
</span><span class="cx"> static const float smartMagnificationPanScrollThreshold = 100;
</span><span class="cx"> 
</span><ins>+static const double swipeOverlayShadowOpacity = 0.66;
+static const double swipeOverlayShadowRadius = 3;
+
+static const float swipeSnapshotRemovalRenderTreeSizeTargetFraction = 0.5;
+static const std::chrono::seconds swipeSnapshotRemovalWatchdogDuration = 3_s;
+
</ins><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><span class="cx"> ViewGestureController::ViewGestureController(WebPageProxy&amp; webPageProxy)
</span><span class="lines">@@ -53,6 +82,8 @@
</span><span class="cx">     , m_activeGestureType(ViewGestureType::None)
</span><span class="cx">     , m_visibleContentRectIsValid(false)
</span><span class="cx">     , m_frameHandlesMagnificationGesture(false)
</span><ins>+    , m_swipeTransitionStyle(SwipeTransitionStyle::Overlap)
+    , m_swipeWatchdogTimer(this, &amp;ViewGestureController::swipeSnapshotWatchdogTimerFired)
</ins><span class="cx"> {
</span><span class="cx">     m_webPageProxy.process().addMessageReceiver(Messages::ViewGestureController::messageReceiverName(), m_webPageProxy.pageID(), *this);
</span><span class="cx"> }
</span><span class="lines">@@ -139,6 +170,8 @@
</span><span class="cx">         m_webPageProxy.scalePage(newMagnification, roundedIntPoint(m_magnificationOrigin));
</span><span class="cx">     else
</span><span class="cx">         m_webPageProxy.drawingArea()-&gt;commitTransientZoom(newMagnification, scaledMagnificationOrigin(m_magnificationOrigin, newMagnification));
</span><ins>+
+    m_activeGestureType = ViewGestureType::None;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ViewGestureController::handleSmartMagnificationGesture(FloatPoint origin)
</span><span class="lines">@@ -194,20 +227,177 @@
</span><span class="cx">     m_lastSmartMagnificationUnscaledTargetRectIsValid = true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ViewGestureController::endActiveGesture()
</del><ins>+bool ViewGestureController::handleScrollWheelEvent(NSEvent *event)
</ins><span class="cx"> {
</span><del>-    switch (m_activeGestureType) {
-    case ViewGestureType::None:
-    case ViewGestureType::SmartMagnification:
-        break;
-    case ViewGestureType::Magnification:
-        endMagnificationGesture();
</del><ins>+    if (m_activeGestureType != ViewGestureType::None)
+        return false;
+
+    if (event.phase != NSEventPhaseBegan)
+        return false;
+
+    if (fabs(event.scrollingDeltaX) &lt; fabs(event.scrollingDeltaY))
+        return false;
+
+    bool willSwipeLeft = event.scrollingDeltaX &gt; 0 &amp;&amp; m_webPageProxy.isPinnedToLeftSide() &amp;&amp; m_webPageProxy.backForwardList().backItem();
+    bool willSwipeRight = event.scrollingDeltaX &lt; 0 &amp;&amp; m_webPageProxy.isPinnedToRightSide() &amp;&amp; m_webPageProxy.backForwardList().forwardItem();
+    if (!willSwipeLeft &amp;&amp; !willSwipeRight)
+        return false;
+
+    if (!event.hasPreciseScrollingDeltas)
+        return false;
+
+    if (![NSEvent isSwipeTrackingFromScrollEventsEnabled])
+        return false;
+
+    ViewSnapshotStore::shared().recordSnapshot(m_webPageProxy);
+
+    CGFloat maxProgress = willSwipeLeft ? 1 : 0;
+    CGFloat minProgress = willSwipeRight ? -1 : 0;
+    RefPtr&lt;WebBackForwardListItem&gt; targetItem = willSwipeLeft ? m_webPageProxy.backForwardList().backItem() : m_webPageProxy.backForwardList().forwardItem();
+    __block bool swipeCancelled = false;
+
+    [event trackSwipeEventWithOptions:0 dampenAmountThresholdMin:minProgress max:maxProgress usingHandler:^(CGFloat progress, NSEventPhase phase, BOOL isComplete, BOOL *stop) {
+        if (phase == NSEventPhaseBegan)
+            this-&gt;beginSwipeGesture(targetItem.get(), willSwipeLeft);
+        CGFloat clampedProgress = std::min(std::max(progress, minProgress), maxProgress);
+        this-&gt;handleSwipeGesture(targetItem.get(), clampedProgress, willSwipeLeft);
+        if (phase == NSEventPhaseCancelled)
+            swipeCancelled = true;
+        if (isComplete)
+            this-&gt;endSwipeGesture(targetItem.get(), swipeCancelled);
+    }];
+
+    return true;
+}
+
+void ViewGestureController::beginSwipeGesture(WebBackForwardListItem* targetItem, bool swipingLeft)
+{
+    m_activeGestureType = ViewGestureType::Swipe;
+
+    CALayer *rootLayer = m_webPageProxy.acceleratedCompositingRootLayer();
+
+    m_swipeSnapshotLayer = adoptNS([[CALayer alloc] init]);
+    [m_swipeSnapshotLayer setBackgroundColor:CGColorGetConstantColor(kCGColorWhite)];
+
+    RetainPtr&lt;CGImageRef&gt; snapshot = ViewSnapshotStore::shared().snapshotAndRenderTreeSize(targetItem).first;
+    [m_swipeSnapshotLayer setContents:(id)snapshot.get()];
+    [m_swipeSnapshotLayer setContentsGravity:kCAGravityTopLeft];
+    [m_swipeSnapshotLayer setContentsScale:m_webPageProxy.deviceScaleFactor()];
+    [m_swipeSnapshotLayer setFrame:rootLayer.frame];
+    [m_swipeSnapshotLayer setAnchorPoint:CGPointZero];
+    [m_swipeSnapshotLayer setPosition:CGPointZero];
+    [m_swipeSnapshotLayer setName:@&quot;Gesture Swipe Snapshot Layer&quot;];
+    [m_swipeSnapshotLayer web_disableAllActions];
+
+    if (m_webPageProxy.pageGroup().preferences()-&gt;viewGestureDebuggingEnabled()) {
+        CAFilter* filter = [CAFilter filterWithType:kCAFilterGaussianBlur];
+        [filter setValue:[NSNumber numberWithFloat:3] forKey:@&quot;inputRadius&quot;];
+        [m_swipeSnapshotLayer setFilters:@[filter]];
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    m_visibleContentRectIsValid = false;
</del><ins>+    if (m_swipeTransitionStyle == SwipeTransitionStyle::Overlap) {
+        RetainPtr&lt;CGPathRef&gt; shadowPath = adoptCF(CGPathCreateWithRect([rootLayer bounds], 0));
+
+        [m_swipeSnapshotLayer setShadowColor:CGColorGetConstantColor(kCGColorBlack)];
+        [m_swipeSnapshotLayer setShadowOpacity:swipeOverlayShadowOpacity];
+        [m_swipeSnapshotLayer setShadowRadius:swipeOverlayShadowRadius];
+        [m_swipeSnapshotLayer setShadowPath:shadowPath.get()];
+
+        [rootLayer setShadowColor:CGColorGetConstantColor(kCGColorBlack)];
+        [rootLayer setShadowOpacity:swipeOverlayShadowOpacity];
+        [rootLayer setShadowRadius:swipeOverlayShadowRadius];
+        [rootLayer setShadowPath:shadowPath.get()];
+    }
+
+    if (swipingLeft)
+        [rootLayer.superlayer insertSublayer:m_swipeSnapshotLayer.get() below:rootLayer];
+    else
+        [rootLayer.superlayer insertSublayer:m_swipeSnapshotLayer.get() above:rootLayer];
+}
+
+void ViewGestureController::handleSwipeGesture(WebBackForwardListItem* targetItem, double progress, bool swipingLeft)
+{
+    ASSERT(m_activeGestureType == ViewGestureType::Swipe);
+
+    CALayer *rootLayer = m_webPageProxy.acceleratedCompositingRootLayer();
+    double width = rootLayer.bounds.size.width;
+    double swipingLayerOffset = floor(width * progress);
+
+    if (m_swipeTransitionStyle == SwipeTransitionStyle::Overlap) {
+        if (swipingLeft)
+            [rootLayer setPosition:CGPointMake(swipingLayerOffset, 0)];
+        else
+            [m_swipeSnapshotLayer setPosition:CGPointMake(width + swipingLayerOffset, 0)];
+    } else if (m_swipeTransitionStyle == SwipeTransitionStyle::Push) {
+        [rootLayer setPosition:CGPointMake(swipingLayerOffset, 0)];
+        [m_swipeSnapshotLayer setPosition:CGPointMake((swipingLeft ? -width : width) + swipingLayerOffset, 0)];
+    }
+}
+
+void ViewGestureController::endSwipeGesture(WebBackForwardListItem* targetItem, bool cancelled)
+{
+    ASSERT(m_activeGestureType == ViewGestureType::Swipe);
+
+    CALayer *rootLayer = m_webPageProxy.acceleratedCompositingRootLayer();
+
+    [rootLayer setShadowOpacity:0];
+    [rootLayer setShadowRadius:0];
+
+    if (cancelled) {
+        removeSwipeSnapshot();
+        return;
+    }
+
+    uint64_t renderTreeSize = ViewSnapshotStore::shared().snapshotAndRenderTreeSize(targetItem).second;
+    m_webPageProxy.process().send(Messages::ViewGestureGeometryCollector::SetRenderTreeSizeNotificationThreshold(renderTreeSize * swipeSnapshotRemovalRenderTreeSizeTargetFraction), m_webPageProxy.pageID());
+
+    // We don't want to replace the current back-forward item's snapshot
+    // like we normally would when going back or forward, because we are
+    // displaying the destination item's snapshot.
+    ViewSnapshotStore::shared().disableSnapshotting();
+    m_webPageProxy.goToBackForwardItem(targetItem);
+    ViewSnapshotStore::shared().enableSnapshotting();
+
+    if (!renderTreeSize) {
+        removeSwipeSnapshot();
+        return;
+    }
+
+    m_swipeWatchdogTimer.startOneShot(swipeSnapshotRemovalWatchdogDuration.count());
+}
+
+void ViewGestureController::didHitRenderTreeSizeThreshold()
+{
+    removeSwipeSnapshot();
+}
+
+void ViewGestureController::swipeSnapshotWatchdogTimerFired(WebCore::Timer&lt;ViewGestureController&gt;*)
+{
+    removeSwipeSnapshot();
+}
+
+void ViewGestureController::removeSwipeSnapshot()
+{
+    m_swipeWatchdogTimer.stop();
+
+    if (m_activeGestureType != ViewGestureType::Swipe)
+        return;
+
+    [m_webPageProxy.acceleratedCompositingRootLayer() setPosition:CGPointZero];
+    [m_swipeSnapshotLayer removeFromSuperlayer];
+    m_swipeSnapshotLayer = nullptr;
+
</ins><span class="cx">     m_activeGestureType = ViewGestureType::None;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void ViewGestureController::endActiveGesture()
+{
+    if (m_activeGestureType == ViewGestureType::Magnification) {
+        endMagnificationGesture();
+        m_visibleContentRectIsValid = false;
+    }
+}
+
</ins><span class="cx"> double ViewGestureController::magnification() const
</span><span class="cx"> {
</span><span class="cx">     if (m_activeGestureType == ViewGestureType::Magnification)
</span><span class="lines">@@ -217,3 +407,5 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span><ins>+
+#endif // !PLATFORM(IOS)
</ins></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessmacViewSnapshotStoremm"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/mac/ViewSnapshotStore.mm (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/mac/ViewSnapshotStore.mm        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/mac/ViewSnapshotStore.mm        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx">     if (snapshotAndRenderTreeSize == m_snapshotMap.end())
</span><span class="cx">         return std::make_pair(nullptr, 0);
</span><span class="cx"> 
</span><del>-    return std::make_pair(snapshotAndRenderTreeSize-&gt;value.first.get(), snapshotAndRenderTreeSize-&gt;value.second);
</del><ins>+    return snapshotAndRenderTreeSize-&gt;value;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2UIProcessmacWebPageProxyMacmm"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -459,6 +459,11 @@
</span><span class="cx">     m_pageClient.setAcceleratedCompositingRootLayer(rootLayer);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+PlatformLayer* WebPageProxy::acceleratedCompositingRootLayer() const
+{
+    return m_pageClient.acceleratedCompositingRootLayer();
+}
+
</ins><span class="cx"> static NSString *temporaryPDFDirectoryPath()
</span><span class="cx"> {
</span><span class="cx">     static NSString *temporaryPDFDirectoryPath;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2WebKit2xcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -144,7 +144,7 @@
</span><span class="cx">                 1A334DED16DE8F88006A8E38 /* StorageAreaMapMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A334DEB16DE8F88006A8E38 /* StorageAreaMapMessageReceiver.cpp */; };
</span><span class="cx">                 1A334DEE16DE8F88006A8E38 /* StorageAreaMapMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A334DEC16DE8F88006A8E38 /* StorageAreaMapMessages.h */; };
</span><span class="cx">                 1A3CC16618906ACF001E6ED8 /* WKWebView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1A3CC16418906ACF001E6ED8 /* WKWebView.mm */; };
</span><del>-                1A3CC16718906ACF001E6ED8 /* WKWebView.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A3CC16518906ACF001E6ED8 /* WKWebView.h */; };
</del><ins>+                1A3CC16718906ACF001E6ED8 /* WKWebView.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A3CC16518906ACF001E6ED8 /* WKWebView.h */; settings = {ATTRIBUTES = (Public, ); }; };
</ins><span class="cx">                 1A3CC16918907EB0001E6ED8 /* WKProcessClassInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A3CC16818907EB0001E6ED8 /* WKProcessClassInternal.h */; };
</span><span class="cx">                 1A3D610113A7CC2A00F95D4E /* PluginModuleInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A3D60FF13A7CC2A00F95D4E /* PluginModuleInfo.cpp */; };
</span><span class="cx">                 1A3D610213A7CC2A00F95D4E /* PluginModuleInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A3D610013A7CC2A00F95D4E /* PluginModuleInfo.h */; };
</span><span class="lines">@@ -317,7 +317,7 @@
</span><span class="cx">                 1AD3306E16B1D991004F60E7 /* StorageAreaImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AD3306C16B1D991004F60E7 /* StorageAreaImpl.cpp */; };
</span><span class="cx">                 1AD3306F16B1D991004F60E7 /* StorageAreaImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AD3306D16B1D991004F60E7 /* StorageAreaImpl.h */; };
</span><span class="cx">                 1ADF591A1890528E0043C145 /* WKWebViewConfiguration.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1ADF59181890528E0043C145 /* WKWebViewConfiguration.mm */; };
</span><del>-                1ADF591B1890528E0043C145 /* WKWebViewConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ADF59191890528E0043C145 /* WKWebViewConfiguration.h */; };
</del><ins>+                1ADF591B1890528E0043C145 /* WKWebViewConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ADF59191890528E0043C145 /* WKWebViewConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; };
</ins><span class="cx">                 1AE00D4C182D6EB000087DD7 /* WKBrowsingContextHandle.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1AE00D4A182D6EB000087DD7 /* WKBrowsingContextHandle.mm */; };
</span><span class="cx">                 1AE00D4D182D6EB000087DD7 /* WKBrowsingContextHandle.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AE00D4B182D6EB000087DD7 /* WKBrowsingContextHandle.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 1AE00D4F182D6F5000087DD7 /* WKBrowsingContextHandleInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AE00D4E182D6F5000087DD7 /* WKBrowsingContextHandleInternal.h */; };
</span><span class="lines">@@ -682,6 +682,7 @@
</span><span class="cx">                 5167EEA0170377BF007681CA /* DiskCacheMonitor.h in Headers */ = {isa = PBXBuildFile; fileRef = 5167EE9E170377BF007681CA /* DiskCacheMonitor.h */; };
</span><span class="cx">                 5167EEA1170377BF007681CA /* DiskCacheMonitor.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5167EE9F170377BF007681CA /* DiskCacheMonitor.mm */; };
</span><span class="cx">                 516A4A5D120A2CCD00C05B7F /* APIError.h in Headers */ = {isa = PBXBuildFile; fileRef = 516A4A5B120A2CCD00C05B7F /* APIError.h */; };
</span><ins>+                5175095A1897249700408FAC /* IDBIdentifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 517509591897249700408FAC /* IDBIdentifier.h */; };
</ins><span class="cx">                 51795567162876CB00FA43B6 /* NetworkProcessMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51A8A6151627F3F9000D90E9 /* NetworkProcessMac.mm */; };
</span><span class="cx">                 51795568162876CF00FA43B6 /* NetworkProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 510CC7DF16138E2900D03ED3 /* NetworkProcess.cpp */; };
</span><span class="cx">                 5179556A162876F300FA43B6 /* NetworkProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 510CC7E016138E2900D03ED3 /* NetworkProcess.h */; };
</span><span class="lines">@@ -760,7 +761,6 @@
</span><span class="cx">                 51D130551382EAC000351EDD /* SecItemResponseData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51D130511382EAC000351EDD /* SecItemResponseData.cpp */; };
</span><span class="cx">                 51D130561382EAC000351EDD /* SecItemResponseData.h in Headers */ = {isa = PBXBuildFile; fileRef = 51D130521382EAC000351EDD /* SecItemResponseData.h */; };
</span><span class="cx">                 51D130581382F10500351EDD /* WebProcessProxyMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51D130571382F10500351EDD /* WebProcessProxyMac.mm */; };
</span><del>-                51D54A73185BAC42000CAED2 /* IDBTransactionIdentifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 51D54A72185BAC42000CAED2 /* IDBTransactionIdentifier.h */; };
</del><span class="cx">                 51DD9F2816367DA2001578E9 /* NetworkConnectionToWebProcessMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51DD9F2616367DA2001578E9 /* NetworkConnectionToWebProcessMessageReceiver.cpp */; };
</span><span class="cx">                 51DD9F2916367DA2001578E9 /* NetworkConnectionToWebProcessMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 51DD9F2716367DA2001578E9 /* NetworkConnectionToWebProcessMessages.h */; };
</span><span class="cx">                 51E351CA180F2CCC00E53BE9 /* IDBUtilities.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51E351C8180F2CCC00E53BE9 /* IDBUtilities.cpp */; };
</span><span class="lines">@@ -2358,6 +2358,7 @@
</span><span class="cx">                 5167EE9E170377BF007681CA /* DiskCacheMonitor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DiskCacheMonitor.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 5167EE9F170377BF007681CA /* DiskCacheMonitor.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DiskCacheMonitor.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 516A4A5B120A2CCD00C05B7F /* APIError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIError.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                517509591897249700408FAC /* IDBIdentifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBIdentifier.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 517A33B3130B308C00F80CB5 /* WKApplicationCacheManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKApplicationCacheManager.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 517A33B4130B308C00F80CB5 /* WKApplicationCacheManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKApplicationCacheManager.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 517CF0E1163A486C00C2950E /* NetworkProcessConnectionMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkProcessConnectionMessageReceiver.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -2446,7 +2447,6 @@
</span><span class="cx">                 51D130511382EAC000351EDD /* SecItemResponseData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SecItemResponseData.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 51D130521382EAC000351EDD /* SecItemResponseData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SecItemResponseData.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 51D130571382F10500351EDD /* WebProcessProxyMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebProcessProxyMac.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                51D54A72185BAC42000CAED2 /* IDBTransactionIdentifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDBTransactionIdentifier.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 51DD9F2616367DA2001578E9 /* NetworkConnectionToWebProcessMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkConnectionToWebProcessMessageReceiver.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 51DD9F2716367DA2001578E9 /* NetworkConnectionToWebProcessMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkConnectionToWebProcessMessages.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 51E351C8180F2CCC00E53BE9 /* IDBUtilities.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IDBUtilities.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -4578,9 +4578,9 @@
</span><span class="cx">                                 51D0D42E183B34130097041D /* DatabaseProcessIDBConnection.cpp */,
</span><span class="cx">                                 51D0D42F183B34130097041D /* DatabaseProcessIDBConnection.h */,
</span><span class="cx">                                 51D0D430183B34130097041D /* DatabaseProcessIDBConnection.messages.in */,
</span><ins>+                                517509591897249700408FAC /* IDBIdentifier.h */,
</ins><span class="cx">                                 518353D81885BF8C00D9FE44 /* IDBSerialization.cpp */,
</span><span class="cx">                                 518353D91885BF8C00D9FE44 /* IDBSerialization.h */,
</span><del>-                                51D54A72185BAC42000CAED2 /* IDBTransactionIdentifier.h */,
</del><span class="cx">                                 515E772D184015800007203F /* UniqueIDBDatabase.cpp */,
</span><span class="cx">                                 515E772E184015800007203F /* UniqueIDBDatabase.h */,
</span><span class="cx">                                 51654EFF184EF34A007DC837 /* UniqueIDBDatabaseBackingStore.h */,
</span><span class="lines">@@ -6503,7 +6503,6 @@
</span><span class="cx">                                 518353DB1885BF8C00D9FE44 /* IDBSerialization.h in Headers */,
</span><span class="cx">                                 1ADF591B1890528E0043C145 /* WKWebViewConfiguration.h in Headers */,
</span><span class="cx">                                 BC5744F012638FB3006F0F12 /* WebPopupItem.h in Headers */,
</span><del>-                                51D54A73185BAC42000CAED2 /* IDBTransactionIdentifier.h in Headers */,
</del><span class="cx">                                 D3B9484711FF4B6500032B39 /* WebPopupMenu.h in Headers */,
</span><span class="cx">                                 BC574E631267D080006F0F12 /* WebPopupMenuProxy.h in Headers */,
</span><span class="cx">                                 C58CDF2A1887548B00871536 /* InteractionInformationAtPosition.h in Headers */,
</span><span class="lines">@@ -6702,6 +6701,7 @@
</span><span class="cx">                                 759CCD591808F1690078E8A8 /* WebOriginDataManagerProxyChangeClient.h in Headers */,
</span><span class="cx">                                 BC9099801256A98200083756 /* WKStringPrivate.h in Headers */,
</span><span class="cx">                                 1A4A9AA812B7E796008FE984 /* WKTextInputWindowController.h in Headers */,
</span><ins>+                                5175095A1897249700408FAC /* IDBIdentifier.h in Headers */,
</ins><span class="cx">                                 BC407608124FF0270068F20A /* WKType.h in Headers */,
</span><span class="cx">                                 7CD5EBBF1746B04C000C1C45 /* WKTypeRefWrapper.h in Headers */,
</span><span class="cx">                                 BC40760A124FF0270068F20A /* WKURL.h in Headers */,
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2WebProcessDatabasesIndexedDBWebIDBServerConnectioncpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -420,11 +420,11 @@
</span><span class="cx">     serverRequest-&gt;completeRequest(getResult, errorCode ? IDBDatabaseError::create(errorCode, errorMessage) : nullptr);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebIDBServerConnection::openCursor(IDBTransactionBackend&amp;, const OpenCursorOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)
</del><ins>+void WebIDBServerConnection::openCursor(IDBTransactionBackend&amp;, const OpenCursorOperation&amp;, std::function&lt;void(int64_t, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebIDBServerConnection::count(IDBTransactionBackend&amp;, const CountOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)
</del><ins>+void WebIDBServerConnection::count(IDBTransactionBackend&amp;, const CountOperation&amp;, std::function&lt;void(int64_t, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -519,22 +519,14 @@
</span><span class="cx">     serverRequest-&gt;completeRequest(success ? nullptr : IDBDatabaseError::create(IDBDatabaseException::UnknownError, &quot;Unknown error occured changing database version&quot;));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebIDBServerConnection::cursorAdvance(IDBCursorBackend&amp;, const CursorAdvanceOperation&amp;, std::function&lt;void()&gt; completionCallback)
</del><ins>+void WebIDBServerConnection::cursorAdvance(IDBCursorBackend&amp;, const CursorAdvanceOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;SharedBuffer&gt;, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebIDBServerConnection::cursorIterate(IDBCursorBackend&amp;, const CursorIterationOperation&amp;, std::function&lt;void()&gt; completionCallback)
</del><ins>+void WebIDBServerConnection::cursorIterate(IDBCursorBackend&amp;, const CursorIterationOperation&amp;, std::function&lt;void(PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;IDBKey&gt;, PassRefPtr&lt;SharedBuffer&gt;, PassRefPtr&lt;IDBDatabaseError&gt;)&gt; completionCallback)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebIDBServerConnection::cursorPrefetchIteration(IDBCursorBackend&amp;, const CursorPrefetchIterationOperation&amp;, std::function&lt;void()&gt; completionCallback)
-{
-}
-
-void WebIDBServerConnection::cursorPrefetchReset(IDBCursorBackend&amp;, int usedPrefetches)
-{
-}
-
</del><span class="cx"> IPC::Connection* WebIDBServerConnection::messageSenderConnection()
</span><span class="cx"> {
</span><span class="cx">     return WebProcess::shared().webToDatabaseProcessConnection()-&gt;connection();
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2WebProcessDatabasesIndexedDBWebIDBServerConnectionh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -72,18 +72,16 @@
</span><span class="cx">     virtual void deleteIndex(WebCore::IDBTransactionBackend&amp;, const WebCore::DeleteIndexOperation&amp;, std::function&lt;void(PassRefPtr&lt;WebCore::IDBDatabaseError&gt;)&gt; completionCallback) override;
</span><span class="cx">     virtual void get(WebCore::IDBTransactionBackend&amp;, const WebCore::GetOperation&amp;, std::function&lt;void(const WebCore::IDBGetResult&amp;, PassRefPtr&lt;WebCore::IDBDatabaseError&gt;)&gt; completionCallback) override;
</span><span class="cx">     virtual void put(WebCore::IDBTransactionBackend&amp;, const WebCore::PutOperation&amp;, std::function&lt;void(PassRefPtr&lt;WebCore::IDBKey&gt;, PassRefPtr&lt;WebCore::IDBDatabaseError&gt;)&gt; completionCallback) override;
</span><del>-    virtual void openCursor(WebCore::IDBTransactionBackend&amp;, const WebCore::OpenCursorOperation&amp;, std::function&lt;void(PassRefPtr&lt;WebCore::IDBDatabaseError&gt;)&gt; completionCallback) override;
-    virtual void count(WebCore::IDBTransactionBackend&amp;, const WebCore::CountOperation&amp;, std::function&lt;void(PassRefPtr&lt;WebCore::IDBDatabaseError&gt;)&gt; completionCallback) override;
</del><ins>+    virtual void openCursor(WebCore::IDBTransactionBackend&amp;, const WebCore::OpenCursorOperation&amp;, std::function&lt;void(int64_t, PassRefPtr&lt;WebCore::IDBDatabaseError&gt;)&gt; completionCallback) override;
+    virtual void count(WebCore::IDBTransactionBackend&amp;, const WebCore::CountOperation&amp;, std::function&lt;void(int64_t, PassRefPtr&lt;WebCore::IDBDatabaseError&gt;)&gt; completionCallback) override;
</ins><span class="cx">     virtual void deleteRange(WebCore::IDBTransactionBackend&amp;, const WebCore::DeleteRangeOperation&amp;, std::function&lt;void(PassRefPtr&lt;WebCore::IDBDatabaseError&gt;)&gt; completionCallback) override;
</span><span class="cx">     virtual void clearObjectStore(WebCore::IDBTransactionBackend&amp;, const WebCore::ClearObjectStoreOperation&amp;, std::function&lt;void(PassRefPtr&lt;WebCore::IDBDatabaseError&gt;)&gt; completionCallback) override;
</span><span class="cx">     virtual void deleteObjectStore(WebCore::IDBTransactionBackend&amp;, const WebCore::DeleteObjectStoreOperation&amp;, std::function&lt;void(PassRefPtr&lt;WebCore::IDBDatabaseError&gt;)&gt; completionCallback) override;
</span><span class="cx">     virtual void changeDatabaseVersion(WebCore::IDBTransactionBackend&amp;, const WebCore::IDBDatabaseBackend::VersionChangeOperation&amp;, std::function&lt;void(PassRefPtr&lt;WebCore::IDBDatabaseError&gt;)&gt; completionCallback) override;
</span><span class="cx"> 
</span><span class="cx">     // Cursor-level operations
</span><del>-    virtual void cursorAdvance(WebCore::IDBCursorBackend&amp;, const WebCore::CursorAdvanceOperation&amp;, std::function&lt;void()&gt; completionCallback) override;
-    virtual void cursorIterate(WebCore::IDBCursorBackend&amp;, const WebCore::CursorIterationOperation&amp;, std::function&lt;void()&gt; completionCallback) override;
-    virtual void cursorPrefetchIteration(WebCore::IDBCursorBackend&amp;, const WebCore::CursorPrefetchIterationOperation&amp;, std::function&lt;void()&gt; completionCallback) override;
-    virtual void cursorPrefetchReset(WebCore::IDBCursorBackend&amp;, int usedPrefetches) override;
</del><ins>+    virtual void cursorAdvance(WebCore::IDBCursorBackend&amp;, const WebCore::CursorAdvanceOperation&amp;, std::function&lt;void(PassRefPtr&lt;WebCore::IDBKey&gt;, PassRefPtr&lt;WebCore::IDBKey&gt;, PassRefPtr&lt;WebCore::SharedBuffer&gt;, PassRefPtr&lt;WebCore::IDBDatabaseError&gt;)&gt; completionCallback) override;
+    virtual void cursorIterate(WebCore::IDBCursorBackend&amp;, const WebCore::CursorIterationOperation&amp;, std::function&lt;void(PassRefPtr&lt;WebCore::IDBKey&gt;, PassRefPtr&lt;WebCore::IDBKey&gt;, PassRefPtr&lt;WebCore::SharedBuffer&gt;, PassRefPtr&lt;WebCore::IDBDatabaseError&gt;)&gt; completionCallback) override;
</ins><span class="cx"> 
</span><span class="cx">     // Message handlers.
</span><span class="cx">     void didReceiveWebIDBServerConnectionMessage(IPC::Connection*, IPC::MessageDecoder&amp;);
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2WebProcessPluginsPDFPDFPluginh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -46,9 +46,8 @@
</span><span class="cx"> OBJC_CLASS PDFAnnotation;
</span><span class="cx"> OBJC_CLASS PDFLayerController;
</span><span class="cx"> OBJC_CLASS PDFSelection;
</span><del>-OBJC_CLASS WKPDFLayerControllerDelegate;
</del><span class="cx"> OBJC_CLASS WKPDFPluginAccessibilityObject;
</span><del>-OBJC_CLASS WKPDFPluginContextMenuTarget;
</del><ins>+OBJC_CLASS WKPDFLayerControllerDelegate;
</ins><span class="cx"> 
</span><span class="cx"> namespace IPC {
</span><span class="cx"> class DataReference;
</span><span class="lines">@@ -89,7 +88,6 @@
</span><span class="cx">     void clickedLink(NSURL *);
</span><span class="cx">     void saveToPDF();
</span><span class="cx">     void openWithNativeApplication();
</span><del>-    void openWithPlugin();
</del><span class="cx">     void writeItemsToPasteboard(NSString *pasteboardName, NSArray *items, NSArray *types);
</span><span class="cx">     void showDefinitionForAttributedString(NSAttributedString *, CGPoint);
</span><span class="cx">     void performWebSearch(NSString *);
</span><span class="lines">@@ -105,8 +103,6 @@
</span><span class="cx">     
</span><span class="cx">     bool showContextMenuAtPoint(const WebCore::IntPoint&amp;);
</span><span class="cx"> 
</span><del>-    void setUsedInPlaceOfBlockedPlugin(bool value, const String&amp; useBlockedPluginContextMenuTitle);
-
</del><span class="cx"> private:
</span><span class="cx">     explicit PDFPlugin(WebFrame*);
</span><span class="cx"> 
</span><span class="lines">@@ -261,10 +257,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool m_isPostScript;
</span><span class="cx">     bool m_pdfDocumentWasMutated;
</span><del>-    bool m_usedInPlaceOfBlockedPlugin;
</del><span class="cx"> 
</span><del>-    String m_useBlockedPluginContextMenuTitle;
-
</del><span class="cx">     WebCore::IntSize m_scrollOffset;
</span><span class="cx"> 
</span><span class="cx">     RetainPtr&lt;CALayer&gt; m_containerLayer;
</span><span class="lines">@@ -274,8 +267,7 @@
</span><span class="cx">     RetainPtr&lt;CALayer&gt; m_scrollCornerLayer;
</span><span class="cx">     RetainPtr&lt;PDFLayerController&gt; m_pdfLayerController;
</span><span class="cx">     RetainPtr&lt;WKPDFPluginAccessibilityObject&gt; m_accessibilityObject;
</span><del>-    RetainPtr&lt;WKPDFPluginContextMenuTarget&gt; m_contextMenuTarget;
-
</del><ins>+    
</ins><span class="cx">     RefPtr&lt;PDFPluginAnnotation&gt; m_activeAnnotation;
</span><span class="cx">     RefPtr&lt;PDFPluginPasswordField&gt; m_passwordField;
</span><span class="cx">     RefPtr&lt;WebCore::Element&gt; m_annotationContainer;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2WebProcessPluginsPDFPDFPluginmm"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -55,7 +55,6 @@
</span><span class="cx"> #import &lt;QuartzCore/QuartzCore.h&gt;
</span><span class="cx"> #import &lt;WebCore/ArchiveResource.h&gt;
</span><span class="cx"> #import &lt;WebCore/Chrome.h&gt;
</span><del>-#import &lt;WebCore/ChromeClient.h&gt;
</del><span class="cx"> #import &lt;WebCore/Cursor.h&gt;
</span><span class="cx"> #import &lt;WebCore/DocumentLoader.h&gt;
</span><span class="cx"> #import &lt;WebCore/FocusController.h&gt;
</span><span class="lines">@@ -66,7 +65,6 @@
</span><span class="cx"> #import &lt;WebCore/GraphicsContext.h&gt;
</span><span class="cx"> #import &lt;WebCore/HTMLElement.h&gt;
</span><span class="cx"> #import &lt;WebCore/HTMLFormElement.h&gt;
</span><del>-#import &lt;WebCore/HTMLPlugInElement.h&gt;
</del><span class="cx"> #import &lt;WebCore/LocalizedStrings.h&gt;
</span><span class="cx"> #import &lt;WebCore/MouseEvent.h&gt;
</span><span class="cx"> #import &lt;WebCore/Page.h&gt;
</span><span class="lines">@@ -271,38 +269,7 @@
</span><span class="cx"> 
</span><span class="cx"> @end
</span><span class="cx"> 
</span><del>-@interface WKPDFPluginContextMenuTarget : NSObject
-{
-    WebKit::PDFPlugin* _pdfPlugin;
-}
</del><span class="cx"> 
</span><del>-@property(assign) WebKit::PDFPlugin* pdfPlugin;
-
-- (id)initWithPDFPlugin:(WebKit::PDFPlugin *)plugin;
-
-@end
-
-@implementation WKPDFPluginContextMenuTarget
-
-@synthesize pdfPlugin = _pdfPlugin;
-
-- (id)initWithPDFPlugin:(WebKit::PDFPlugin *)plugin
-{
-    if (!(self = [super init]))
-        return nil;
-
-    _pdfPlugin = plugin;
-
-    return self;
-}
-
-- (void)useBlockedPlugin:(id)sender
-{
-    _pdfPlugin-&gt;openWithPlugin();
-}
-
-@end
-
</del><span class="cx"> @interface WKPDFPluginScrollbarLayer : CALayer
</span><span class="cx"> {
</span><span class="cx">     WebKit::PDFPlugin* _pdfPlugin;
</span><span class="lines">@@ -532,12 +499,10 @@
</span><span class="cx">     : m_frame(frame)
</span><span class="cx">     , m_isPostScript(false)
</span><span class="cx">     , m_pdfDocumentWasMutated(false)
</span><del>-    , m_usedInPlaceOfBlockedPlugin(false)
</del><span class="cx">     , m_containerLayer(adoptNS([[CALayer alloc] init]))
</span><span class="cx">     , m_contentLayer(adoptNS([[CALayer alloc] init]))
</span><span class="cx">     , m_scrollCornerLayer(adoptNS([[WKPDFPluginScrollbarLayer alloc] initWithPDFPlugin:this]))
</span><span class="cx">     , m_pdfLayerController(adoptNS([[pdfLayerControllerClass() alloc] init]))
</span><del>-    , m_contextMenuTarget(adoptNS([[WKPDFPluginContextMenuTarget alloc] initWithPDFPlugin:this]))
</del><span class="cx">     , m_pdfLayerControllerDelegate(adoptNS([[WKPDFLayerControllerDelegate alloc] initWithPDFPlugin:this]))
</span><span class="cx"> {
</span><span class="cx">     m_pdfLayerController.get().delegate = m_pdfLayerControllerDelegate.get();
</span><span class="lines">@@ -1492,18 +1457,6 @@
</span><span class="cx">     IntPoint point = frameView-&gt;contentsToScreen(IntRect(frameView-&gt;windowToContents(event.position()), IntSize())).location();
</span><span class="cx">     
</span><span class="cx">     if (NSMenu *nsMenu = [m_pdfLayerController menuForEvent:nsEventForWebMouseEvent(event)]) {
</span><del>-        if (m_usedInPlaceOfBlockedPlugin) {
-            String title = useBlockedPlugInContextMenuTitle();
-
-            if (!m_useBlockedPluginContextMenuTitle.isEmpty())
-                title = m_useBlockedPluginContextMenuTitle;
-
-            NSMenuItem *useBlockedPluginItem = [[[NSMenuItem alloc] initWithTitle:title action:@selector(useBlockedPlugin:) keyEquivalent:@&quot;&quot;] autorelease];
-
-            [useBlockedPluginItem setTarget:m_contextMenuTarget.get()];
-            [nsMenu insertItem:useBlockedPluginItem atIndex:0];
-            [nsMenu insertItem:[NSMenuItem separatorItem] atIndex:1];
-        }
</del><span class="cx">         WKPopupContextMenu(nsMenu, point);
</span><span class="cx">         return true;
</span><span class="cx">     }
</span><span class="lines">@@ -1690,11 +1643,6 @@
</span><span class="cx">     webFrame()-&gt;page()-&gt;send(Messages::WebPageProxy::OpenPDFFromTemporaryFolderWithNativeApplication(m_temporaryPDFUUID));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void PDFPlugin::openWithPlugin()
-{
-    webFrame()-&gt;page()-&gt;corePage()-&gt;chrome().client().unavailablePluginButtonClicked(pluginView()-&gt;pluginElement(), RenderEmbeddedObject::InsecurePluginVersion);
-}
-
</del><span class="cx"> void PDFPlugin::writeItemsToPasteboard(NSString *pasteboardName, NSArray *items, NSArray *types)
</span><span class="cx"> {
</span><span class="cx">     Vector&lt;String&gt; pasteboardTypes;
</span><span class="lines">@@ -1935,13 +1883,6 @@
</span><span class="cx">     return m_accessibilityObject.get();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-
-void PDFPlugin::setUsedInPlaceOfBlockedPlugin(bool value, const String&amp; useBlockedPluginContextMenuTitle)
-{
-    m_usedInPlaceOfBlockedPlugin = value;
-    m_useBlockedPluginContextMenuTitle = useBlockedPluginContextMenuTitle;
-}
-
</del><span class="cx"> } // namespace WebKit
</span><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(PDFKIT_PLUGIN)
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2WebProcessWebPageViewGestureGeometryCollectorcpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/WebProcess/WebPage/ViewGestureGeometryCollector.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/WebProcess/WebPage/ViewGestureGeometryCollector.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/WebProcess/WebPage/ViewGestureGeometryCollector.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -26,6 +26,8 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;ViewGestureGeometryCollector.h&quot;
</span><span class="cx"> 
</span><ins>+#if !PLATFORM(IOS)
+
</ins><span class="cx"> #include &quot;ViewGestureControllerMessages.h&quot;
</span><span class="cx"> #include &quot;ViewGestureGeometryCollectorMessages.h&quot;
</span><span class="cx"> #include &quot;WebCoreArgumentCoders.h&quot;
</span><span class="lines">@@ -42,6 +44,8 @@
</span><span class="cx"> 
</span><span class="cx"> ViewGestureGeometryCollector::ViewGestureGeometryCollector(WebPage&amp; webPage)
</span><span class="cx">     : m_webPage(webPage)
</span><ins>+    , m_renderTreeSizeNotificationThreshold(0)
+    , m_renderTreeSizeNotificationTimer(RunLoop::main(), this, &amp;ViewGestureGeometryCollector::renderTreeSizeNotificationTimerFired)
</ins><span class="cx"> {
</span><span class="cx">     WebProcess::shared().addMessageReceiver(Messages::ViewGestureGeometryCollector::messageReceiverName(), m_webPage.pageID(), *this);
</span><span class="cx"> }
</span><span class="lines">@@ -77,4 +81,19 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void ViewGestureGeometryCollector::mainFrameDidLayout()
+{
+    if (m_renderTreeSizeNotificationThreshold &amp;&amp; m_webPage.renderTreeSize() &gt;= m_renderTreeSizeNotificationThreshold) {
+        m_renderTreeSizeNotificationTimer.startOneShot(0);
+        m_renderTreeSizeNotificationThreshold = 0;
+    }
+}
+
+void ViewGestureGeometryCollector::renderTreeSizeNotificationTimerFired()
+{
+    m_webPage.send(Messages::ViewGestureController::DidHitRenderTreeSizeThreshold());
+}
+
</ins><span class="cx"> } // namespace WebKit
</span><ins>+
+#endif // !PLATFORM(IOS)
</ins></span></pre></div>
<a id="branchesjsCStackSourceWebKit2WebProcessWebPageViewGestureGeometryCollectorh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/WebProcess/WebPage/ViewGestureGeometryCollector.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/WebProcess/WebPage/ViewGestureGeometryCollector.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/WebProcess/WebPage/ViewGestureGeometryCollector.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -26,7 +26,10 @@
</span><span class="cx"> #ifndef ViewGestureGeometryCollector_h
</span><span class="cx"> #define ViewGestureGeometryCollector_h
</span><span class="cx"> 
</span><ins>+#if !PLATFORM(IOS)
+
</ins><span class="cx"> #include &quot;MessageReceiver.h&quot;
</span><ins>+#include &lt;wtf/RunLoop.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> class FloatPoint;
</span><span class="lines">@@ -41,6 +44,8 @@
</span><span class="cx">     ViewGestureGeometryCollector(WebPage&amp;);
</span><span class="cx">     ~ViewGestureGeometryCollector();
</span><span class="cx"> 
</span><ins>+    void mainFrameDidLayout();
+
</ins><span class="cx"> private:
</span><span class="cx">     // IPC::MessageReceiver.
</span><span class="cx">     virtual void didReceiveMessage(IPC::Connection*, IPC::MessageDecoder&amp;) override;
</span><span class="lines">@@ -48,10 +53,18 @@
</span><span class="cx">     // Message handlers.
</span><span class="cx">     void collectGeometryForMagnificationGesture();
</span><span class="cx">     void collectGeometryForSmartMagnificationGesture(WebCore::FloatPoint origin);
</span><ins>+    void setRenderTreeSizeNotificationThreshold(uint64_t size) { m_renderTreeSizeNotificationThreshold = size; }
</ins><span class="cx"> 
</span><ins>+    void renderTreeSizeNotificationTimerFired();
+
</ins><span class="cx">     WebPage&amp; m_webPage;
</span><ins>+
+    uint64_t m_renderTreeSizeNotificationThreshold;
+    RunLoop::Timer&lt;ViewGestureGeometryCollector&gt; m_renderTreeSizeNotificationTimer;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span><span class="cx"> 
</span><ins>+#endif // !PLATFORM(IOS)
+
</ins><span class="cx"> #endif // ViewGestureGeometryCollector
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2WebProcessWebPageViewGestureGeometryCollectormessagesin"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/WebProcess/WebPage/ViewGestureGeometryCollector.messages.in (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/WebProcess/WebPage/ViewGestureGeometryCollector.messages.in        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/WebProcess/WebPage/ViewGestureGeometryCollector.messages.in        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -20,9 +20,14 @@
</span><span class="cx"> # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
</span><span class="cx"> # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx"> 
</span><ins>+#if !PLATFORM(IOS)
+
</ins><span class="cx"> messages -&gt; ViewGestureGeometryCollector {
</span><span class="cx"> 
</span><span class="cx"> CollectGeometryForMagnificationGesture()
</span><span class="cx"> CollectGeometryForSmartMagnificationGesture(WebCore::FloatPoint origin)
</span><span class="cx"> 
</span><ins>+SetRenderTreeSizeNotificationThreshold(uint64_t size)
</ins><span class="cx"> }
</span><ins>+
+#endif
</ins></span></pre></div>
<a id="branchesjsCStackSourceWebKit2WebProcessWebPageWebPagecpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -248,7 +248,9 @@
</span><span class="cx">     , m_pdfPluginEnabled(false)
</span><span class="cx">     , m_hasCachedWindowFrame(false)
</span><span class="cx">     , m_keyboardEventBeingInterpreted(0)
</span><ins>+#if !PLATFORM(IOS)
</ins><span class="cx">     , m_viewGestureGeometryCollector(*this)
</span><ins>+#endif
</ins><span class="cx"> #elif PLATFORM(GTK) &amp;&amp; HAVE(ACCESSIBILITY)
</span><span class="cx">     , m_accessibilityObject(0)
</span><span class="cx"> #endif
</span><span class="lines">@@ -572,8 +574,7 @@
</span><span class="cx">     uint64_t pluginProcessToken;
</span><span class="cx">     uint32_t pluginLoadPolicy;
</span><span class="cx">     String unavailabilityDescription;
</span><del>-    String useBlockedPluginTitle;
-    if (!sendSync(Messages::WebPageProxy::FindPlugin(parameters.mimeType, static_cast&lt;uint32_t&gt;(processType), parameters.url.string(), frameURLString, pageURLString, allowOnlyApplicationPlugins), Messages::WebPageProxy::FindPlugin::Reply(pluginProcessToken, newMIMEType, pluginLoadPolicy, unavailabilityDescription, useBlockedPluginTitle)))
</del><ins>+    if (!sendSync(Messages::WebPageProxy::FindPlugin(parameters.mimeType, static_cast&lt;uint32_t&gt;(processType), parameters.url.string(), frameURLString, pageURLString, allowOnlyApplicationPlugins), Messages::WebPageProxy::FindPlugin::Reply(pluginProcessToken, newMIMEType, pluginLoadPolicy, unavailabilityDescription)))
</ins><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     bool isBlockedPlugin = static_cast&lt;PluginModuleLoadPolicy&gt;(pluginLoadPolicy) == PluginModuleBlocked;
</span><span class="lines">@@ -583,7 +584,6 @@
</span><span class="cx">         String path = parameters.url.path();
</span><span class="cx">         if (shouldUsePDFPlugin() &amp;&amp; (MIMETypeRegistry::isPDFOrPostScriptMIMEType(parameters.mimeType) || (parameters.mimeType.isEmpty() &amp;&amp; (path.endsWith(&quot;.pdf&quot;, false) || path.endsWith(&quot;.ps&quot;, false))))) {
</span><span class="cx">             RefPtr&lt;PDFPlugin&gt; pdfPlugin = PDFPlugin::create(frame);
</span><del>-            pdfPlugin-&gt;setUsedInPlaceOfBlockedPlugin(isBlockedPlugin, useBlockedPluginTitle);
</del><span class="cx">             return pdfPlugin.release();
</span><span class="cx">         }
</span><span class="cx"> #else
</span><span class="lines">@@ -3057,6 +3057,10 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> #endif
</span><ins>+
+#if PLATFORM(MAC) &amp;&amp; !PLATFORM(IOS)
+    m_viewGestureGeometryCollector.mainFrameDidLayout();
+#endif
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPage::addPluginView(PluginView* pluginView)
</span><span class="lines">@@ -3749,8 +3753,7 @@
</span><span class="cx">     uint64_t pluginProcessToken;
</span><span class="cx">     String newMIMEType;
</span><span class="cx">     String unavailabilityDescription;
</span><del>-    String useBlockedPluginTitle;
-    if (!sendSync(Messages::WebPageProxy::FindPlugin(response.mimeType(), PluginProcessTypeNormal, response.url().string(), response.url().string(), response.url().string(), allowOnlyApplicationPlugins), Messages::WebPageProxy::FindPlugin::Reply(pluginProcessToken, newMIMEType, pluginLoadPolicy, unavailabilityDescription, useBlockedPluginTitle)))
</del><ins>+    if (!sendSync(Messages::WebPageProxy::FindPlugin(response.mimeType(), PluginProcessTypeNormal, response.url().string(), response.url().string(), response.url().string(), allowOnlyApplicationPlugins), Messages::WebPageProxy::FindPlugin::Reply(pluginProcessToken, newMIMEType, pluginLoadPolicy, unavailabilityDescription)))
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     return pluginLoadPolicy != PluginModuleBlocked &amp;&amp; pluginProcessToken;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2WebProcessWebPageWebPageh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/WebProcess/WebPage/WebPage.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/WebProcess/WebPage/WebPage.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/WebProcess/WebPage/WebPage.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -943,7 +943,9 @@
</span><span class="cx"> 
</span><span class="cx">     WebCore::KeyboardEvent* m_keyboardEventBeingInterpreted;
</span><span class="cx"> 
</span><ins>+#if !PLATFORM(IOS)
</ins><span class="cx">     ViewGestureGeometryCollector m_viewGestureGeometryCollector;
</span><ins>+#endif
</ins><span class="cx"> 
</span><span class="cx"> #elif HAVE(ACCESSIBILITY) &amp;&amp; (PLATFORM(GTK) || PLATFORM(EFL))
</span><span class="cx">     GRefPtr&lt;WebPageAccessibilityObject&gt; m_accessibilityObject;
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2WebProcessWebProcesscpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/WebProcess/WebProcess.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/WebProcess/WebProcess.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/WebProcess/WebProcess.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -356,6 +356,8 @@
</span><span class="cx">     resetPlugInAutoStartOriginHashes(parameters.plugInAutoStartOriginHashes);
</span><span class="cx">     for (size_t i = 0; i &lt; parameters.plugInAutoStartOrigins.size(); ++i)
</span><span class="cx">         m_plugInAutoStartOrigins.add(parameters.plugInAutoStartOrigins[i]);
</span><ins>+
+    setMemoryCacheDisabled(parameters.memoryCacheDisabled);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(NETWORK_PROCESS)
</span><span class="lines">@@ -1193,4 +1195,10 @@
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void WebProcess::setMemoryCacheDisabled(bool disabled)
+{
+    if (memoryCache()-&gt;disabled() != disabled)
+        memoryCache()-&gt;setDisabled(disabled);
+}
+
</ins><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2WebProcessWebProcessh"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/WebProcess/WebProcess.h (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/WebProcess/WebProcess.h        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/WebProcess/WebProcess.h        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -243,6 +243,8 @@
</span><span class="cx">     void setIgnoreTLSErrors(bool);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+    void setMemoryCacheDisabled(bool);
+
</ins><span class="cx">     void postInjectedBundleMessage(const IPC::DataReference&amp; messageData);
</span><span class="cx"> 
</span><span class="cx">     // ChildProcess
</span></span></pre></div>
<a id="branchesjsCStackSourceWebKit2WebProcessWebProcessmessagesin"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Source/WebKit2/WebProcess/WebProcess.messages.in (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Source/WebKit2/WebProcess/WebProcess.messages.in        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Source/WebKit2/WebProcess/WebProcess.messages.in        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -87,4 +87,6 @@
</span><span class="cx"> #if USE(SOUP)
</span><span class="cx">     AllowSpecificHTTPSCertificateForHost(WebCore::CertificateInfo certificate, String host)
</span><span class="cx"> #endif
</span><ins>+
+    SetMemoryCacheDisabled(bool disabled);
</ins><span class="cx"> }
</span></span></pre></div>
<a id="branchesjsCStackToolsBuildSlaveSupportbuildwebkitorgconfigpublic_htmldashboardScriptsInitializationjs"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Initialization.js (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Initialization.js        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Initialization.js        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -24,7 +24,7 @@
</span><span class="cx">  */
</span><span class="cx"> 
</span><span class="cx"> var settings = new Settings;
</span><del>-var buildbot = new WebKitBuildbot;
</del><ins>+var buildbots = [ new WebKitBuildbot ];
</ins><span class="cx"> var webkitTrac = new Trac(&quot;http://trac.webkit.org/&quot;);
</span><span class="cx"> var bugzilla = new Bugzilla;
</span><span class="cx"> var ews = new EWS;
</span></span></pre></div>
<a id="branchesjsCStackToolsBuildSlaveSupportbuildwebkitorgconfigpublic_htmldashboardScriptsMainjs"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -28,35 +28,38 @@
</span><span class="cx"> 
</span><span class="cx"> var categorizedQueuesByPlatformAndBuildType = {};
</span><span class="cx"> 
</span><del>-for (var id in buildbot.queues) {
-    var queue = buildbot.queues[id];
-    var platform = categorizedQueuesByPlatformAndBuildType[queue.platform];
-    if (!platform)
-        platform = categorizedQueuesByPlatformAndBuildType[queue.platform] = {};
-    if (!platform.builders)
-        platform.builders = {};
</del><ins>+for (var i = 0; i &lt; buildbots.length; ++i) {
+    var buildbot = buildbots[i];
+    for (var id in buildbot.queues) {
+        var queue = buildbot.queues[id];
+        var platform = categorizedQueuesByPlatformAndBuildType[queue.platform];
+        if (!platform)
+            platform = categorizedQueuesByPlatformAndBuildType[queue.platform] = {};
+        if (!platform.builders)
+            platform.builders = {};
</ins><span class="cx"> 
</span><del>-    var categoryName;
-    if (queue.builder) {
-        categoryName = &quot;builders&quot;;
-    } else if (queue.tester) {
-        categoryName = queue.testCategory;
-    } else {
-        console.assert(&quot;Unknown queue type.&quot;);
-        continue;
-    }
</del><ins>+        var categoryName;
+        if (queue.builder) {
+            categoryName = &quot;builders&quot;;
+        } else if (queue.tester) {
+            categoryName = queue.testCategory;
+        } else {
+            console.assert(&quot;Unknown queue type.&quot;);
+            continue;
+        }
</ins><span class="cx"> 
</span><del>-    category = platform[categoryName];
-    if (!category)
-        category = platform[categoryName] = {};
</del><ins>+        category = platform[categoryName];
+        if (!category)
+            category = platform[categoryName] = {};
</ins><span class="cx"> 
</span><del>-    var buildType = queue.debug ? &quot;debug&quot; : &quot;release&quot;;
</del><ins>+        var buildType = queue.debug ? &quot;debug&quot; : &quot;release&quot;;
</ins><span class="cx"> 
</span><del>-    buildQueues = category[buildType];
-    if (!buildQueues)
-        buildQueues = category[buildType] = [];
</del><ins>+        buildQueues = category[buildType];
+        if (!buildQueues)
+            buildQueues = category[buildType] = [];
</ins><span class="cx"> 
</span><del>-    buildQueues.push(queue);
</del><ins>+        buildQueues.push(queue);
+    }
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> if (hasEWS) {
</span></span></pre></div>
<a id="branchesjsCStackToolsDumpRenderTreemacConfigurationsDumpRenderTreeAppxcconfig"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Tools/DumpRenderTree/mac/Configurations/DumpRenderTreeApp.xcconfig (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Tools/DumpRenderTree/mac/Configurations/DumpRenderTreeApp.xcconfig        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Tools/DumpRenderTree/mac/Configurations/DumpRenderTreeApp.xcconfig        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -25,7 +25,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;BaseTarget.xcconfig&quot;
</span><span class="cx"> 
</span><del>-OTHER_LDFLAGS_FONTS = -sectcreate __DATA WeightWatcher100 fonts/WebKitWeightWatcher100.ttf -sectcreate __DATA WeightWatcher200 fonts/WebKitWeightWatcher200.ttf -sectcreate __DATA WeightWatcher300 fonts/WebKitWeightWatcher300.ttf -sectcreate __DATA WeightWatcher400 fonts/WebKitWeightWatcher400.ttf -sectcreate __DATA WeightWatcher500 fonts/WebKitWeightWatcher500.ttf -sectcreate __DATA WeightWatcher600 fonts/WebKitWeightWatcher600.ttf -sectcreate __DATA WeightWatcher700 fonts/WebKitWeightWatcher700.ttf -sectcreate __DATA WeightWatcher800 fonts/WebKitWeightWatcher800.ttf -sectcreate __DATA WeightWatcher900 fonts/WebKitWeightWatcher900.ttf -sectcreate __DATA HiraMaruMono-W4 fonts/SampleFont.sfont;
</del><ins>+OTHER_LDFLAGS_FONTS = -sectcreate __DATA Ahem fonts/AHEM____.TTF -sectcreate __DATA WeightWatcher100 fonts/WebKitWeightWatcher100.ttf -sectcreate __DATA WeightWatcher200 fonts/WebKitWeightWatcher200.ttf -sectcreate __DATA WeightWatcher300 fonts/WebKitWeightWatcher300.ttf -sectcreate __DATA WeightWatcher400 fonts/WebKitWeightWatcher400.ttf -sectcreate __DATA WeightWatcher500 fonts/WebKitWeightWatcher500.ttf -sectcreate __DATA WeightWatcher600 fonts/WebKitWeightWatcher600.ttf -sectcreate __DATA WeightWatcher700 fonts/WebKitWeightWatcher700.ttf -sectcreate __DATA WeightWatcher800 fonts/WebKitWeightWatcher800.ttf -sectcreate __DATA WeightWatcher900 fonts/WebKitWeightWatcher900.ttf -sectcreate __DATA HiraMaruMono-W4 fonts/SampleFont.sfont;
</ins><span class="cx"> 
</span><span class="cx"> OTHER_LDFLAGS = $(OTHER_LDFLAGS_$(PLATFORM_NAME));
</span><span class="cx"> OTHER_LDFLAGS_iphoneos = $(inherited) -l$(WEBKIT_SYSTEM_INTERFACE_LIBRARY) -lWebCoreTestSupport -force_load $(BUILT_PRODUCTS_DIR)/libDumpRenderTree.a -framework QuartzCore -framework CFNetwork -framework CoreFoundation -framework CoreGraphics -framework Foundation -framework GraphicsServices -framework ImageIO -framework MobileCoreServices -framework UIKit -framework WebCore -framework JavaScriptCore -framework WebKit $(OTHER_LDFLAGS_FONTS);
</span></span></pre></div>
<a id="branchesjsCStackToolsDumpRenderTreemacDumpRenderTreemm"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Tools/DumpRenderTree/mac/DumpRenderTree.mm (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Tools/DumpRenderTree/mac/DumpRenderTree.mm        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Tools/DumpRenderTree/mac/DumpRenderTree.mm        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -530,7 +530,7 @@
</span><span class="cx"> {
</span><span class="cx">     static const char* fontSectionNames[] = {
</span><span class="cx">         &quot;Ahem&quot;,
</span><del>-        &quot;ltcher100&quot;,
</del><ins>+        &quot;WeightWatcher100&quot;,
</ins><span class="cx">         &quot;WeightWatcher200&quot;,
</span><span class="cx">         &quot;WeightWatcher300&quot;,
</span><span class="cx">         &quot;WeightWatcher400&quot;,
</span></span></pre></div>
<a id="branchesjsCStackToolsScriptscheckforinappropriatemacrosinexternalheaders"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Tools/Scripts/check-for-inappropriate-macros-in-external-headers (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Tools/Scripts/check-for-inappropriate-macros-in-external-headers        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Tools/Scripts/check-for-inappropriate-macros-in-external-headers        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -55,9 +55,9 @@
</span><span class="cx">   File.open(header) do |file|
</span><span class="cx">     file.each_line.with_index do |line, index|
</span><span class="cx">       # Check for the common macros from Platform.h and Compiler.h.
</span><ins>+      # Require a '(' immediately after the macro name to prevent matching things like &quot;defined(__OS2__)&quot;.
</ins><span class="cx">       # NOTE: Negative lookahead (?!error) prevents matching &quot;#error WebKit was not available prior to Mac OS X 10.2&quot;.
</span><del>-      # NOTE: Negative lookahead (?!:2) prevents matching OS2 in macros like &quot;defined(__OS2__)&quot;.
-      if match = /^\s*#(?!error).*?\b(PLATFORM|CPU|HAVE|OS(?!2)|USE|ENABLE|COMPILER)/.match(line)
</del><ins>+      if match = /^\s*#(?!error).*?\b(PLATFORM|CPU|HAVE|OS|USE|ENABLE|COMPILER)\(/.match(line)
</ins><span class="cx">         print_error &quot;'#{header}:#{index+1}' included forbidden macro '#{match[1]}' =&gt; '#{line.chomp}'&quot;
</span><span class="cx">       end
</span><span class="cx">     end
</span></span></pre></div>
<a id="branchesjsCStackToolsScriptswebkitdirspm"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Tools/Scripts/webkitdirs.pm (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Tools/Scripts/webkitdirs.pm        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Tools/Scripts/webkitdirs.pm        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -2129,7 +2129,11 @@
</span><span class="cx"> sub argumentsForRunAndDebugMacWebKitApp()
</span><span class="cx"> {
</span><span class="cx">     my @args = ();
</span><del>-    push @args, (&quot;-ApplePersistenceIgnoreState&quot;, &quot;YES&quot;) if checkForArgumentAndRemoveFromARGV(&quot;--no-saved-state&quot;);
</del><ins>+    if (checkForArgumentAndRemoveFromARGV(&quot;--no-saved-state&quot;)) {
+        push @args, (&quot;-ApplePersistenceIgnoreStateQuietly&quot;, &quot;YES&quot;);
+        # FIXME: Don't set ApplePersistenceIgnoreState once all supported OS versions respect ApplePersistenceIgnoreStateQuietly (rdar://15032886).
+        push @args, (&quot;-ApplePersistenceIgnoreState&quot;, &quot;YES&quot;);
+    }
</ins><span class="cx">     push @args, (&quot;-WebKit2UseXPCServiceForWebProcess&quot;, &quot;YES&quot;) if shouldUseXPCServiceForWebProcess();
</span><span class="cx">     unshift @args, @ARGV;
</span><span class="cx"> 
</span></span></pre></div>
<a id="branchesjsCStackToolsWebKitTestRunnerTestControllercpp"></a>
<div class="modfile"><h4>Modified: branches/jsCStack/Tools/WebKitTestRunner/TestController.cpp (162913 => 162914)</h4>
<pre class="diff"><span>
<span class="info">--- branches/jsCStack/Tools/WebKitTestRunner/TestController.cpp        2014-01-28 05:19:48 UTC (rev 162913)
+++ branches/jsCStack/Tools/WebKitTestRunner/TestController.cpp        2014-01-28 05:29:33 UTC (rev 162914)
</span><span class="lines">@@ -459,9 +459,8 @@
</span><span class="cx">         0, // didLayout
</span><span class="cx">         0, // pluginLoadPolicy_deprecatedForUseWithV2
</span><span class="cx">         0, // pluginDidFail
</span><del>-        0, // pluginLoadPolicy_deprecatedForUseWithV3
</del><ins>+        0, // pluginLoadPolicy
</ins><span class="cx">         0, // webGLLoadPolicy
</span><del>-        pluginLoadPolicy, // pluginLoadPolicy
</del><span class="cx">     };
</span><span class="cx">     WKPageSetPageLoaderClient(m_mainWebView-&gt;page(), &amp;pageLoaderClient.base);
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>