<!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>[174089] trunk/Source</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/174089">174089</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2014-09-29 15:23:20 -0700 (Mon, 29 Sep 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Use is&lt;&gt;() / downcast&lt;&gt;() for Document
https://bugs.webkit.org/show_bug.cgi?id=137221

Reviewed by Andreas Kling.

Use is&lt;&gt;() / downcast&lt;&gt;() for Document instead of isDocumentNode() /
toDocument().

Source/WebCore:

No new tests, no behavior change.

* Modules/geolocation/Geolocation.cpp:
(WebCore::Geolocation::document):
(WebCore::Geolocation::frame):
(WebCore::Geolocation::page):
* Modules/indexeddb/IDBFactory.cpp:
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::document):
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::RTCPeerConnection):
* Modules/notifications/Notification.cpp:
(WebCore::Notification::Notification):
(WebCore::Notification::show):
(WebCore::Notification::permission):
(WebCore::Notification::requestPermission):
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::document):
* Modules/webaudio/OfflineAudioContext.cpp:
(WebCore::OfflineAudioContext::create):
* Modules/webdatabase/DatabaseContext.cpp:
(WebCore::DatabaseContext::allowDatabaseAccess):
(WebCore::DatabaseContext::databaseExceededQuota):
* Modules/websockets/ThreadableWebSocketChannel.cpp:
(WebCore::ThreadableWebSocketChannel::create):
* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::connect):
* Modules/websockets/WebSocketHandshake.cpp:
(WebCore::WebSocketHandshake::clientHandshakeMessage):
(WebCore::WebSocketHandshake::clientHandshakeRequest):
* Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
(WebCore::WorkerThreadableWebSocketChannel::Peer::Peer):
* bindings/gobject/WebKitDOMPrivate.cpp:
(WebKit::wrap):
* bindings/js/DOMConstructorWithDocument.h:
(WebCore::DOMConstructorWithDocument::document):
* bindings/js/DOMRequestState.h:
(WebCore::DOMRequestState::DOMRequestState):
(WebCore::DOMRequestState::clear):
* bindings/js/JSAudioContextCustom.cpp:
(WebCore::constructJSAudioContext):
* bindings/js/JSDOMGlobalObject.cpp:
(WebCore::toJSDOMGlobalObject):
* bindings/js/JSLazyEventListener.cpp:
(WebCore::JSLazyEventListener::initializeJSFunction):
* bindings/js/JSNodeCustom.cpp:
(WebCore::createWrapperInline):
* bindings/js/ScheduledAction.cpp:
(WebCore::ScheduledAction::execute):
* bindings/js/ScriptState.cpp:
(WebCore::frameFromExecState):
* crypto/SubtleCrypto.cpp:
(WebCore::SubtleCrypto::document):
* dom/Comment.cpp:
(WebCore::Comment::create):
* dom/ContainerNode.cpp:
(WebCore::checkAcceptChild):
* dom/ContainerNodeAlgorithms.cpp:
(WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
* dom/Document.h:
(WebCore::isDocument):
* dom/DocumentFragment.cpp:
(WebCore::DocumentFragment::create):
* dom/Element.cpp:
(WebCore::Element::computeInheritedLanguage):
* dom/EventDispatcher.cpp:
(WebCore::WindowEventContext::WindowEventContext):
* dom/EventTarget.cpp:
(WebCore::EventTarget::fireEventListeners):
* dom/NamedFlowCollection.cpp:
(WebCore::NamedFlowCollection::document):
* dom/Node.cpp:
(WebCore::Node::isDefaultNamespace):
(WebCore::Node::lookupPrefix):
(WebCore::Node::lookupNamespaceURI):
(WebCore::Node::removedLastRef):
* dom/Range.cpp:
(WebCore::Range::create):
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::dispatchErrorEvent):
* dom/Text.cpp:
(WebCore::Text::create):
* editing/MarkupAccumulator.cpp:
(WebCore::MarkupAccumulator::appendStartMarkup):
* html/HTMLDocument.h:
(WebCore::isHTMLDocument):
* html/HTMLNameCollection.h:
(WebCore::HTMLNameCollection::document):
* html/HTMLStyleElement.cpp:
(WebCore::HTMLStyleElement::insertedInto):
* html/ImageDocument.h:
(WebCore::isImageDocument):
* html/MediaDocument.h:
(WebCore::isMediaDocument):
* html/PluginDocument.h:
(WebCore::isPluginDocument):
* html/track/TextTrackCue.h:
(WebCore::TextTrackCue::ownerDocument):
* html/track/VTTCue.cpp:
(WebCore::VTTCue::initialize):
* html/track/VTTRegion.h:
(WebCore::VTTRegion::ownerDocument):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::assertDocument):
(WebCore::InspectorDOMAgent::buildObjectForNode):
(WebCore::InspectorDOMAgent::innerParentNode):
* inspector/InspectorInstrumentation.cpp:
(WebCore::frameForScriptExecutionContext):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::instrumentingAgentsForContext):
* loader/TextTrackLoader.cpp:
(WebCore::TextTrackLoader::corsPolicyPreventedLoad):
(WebCore::TextTrackLoader::notifyFinished):
(WebCore::TextTrackLoader::load):
* loader/ThreadableLoader.cpp:
(WebCore::ThreadableLoader::create):
(WebCore::ThreadableLoader::loadResourceSynchronously):
* loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader):
* page/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::reportViolation):
* page/Crypto.cpp:
(WebCore::Crypto::document):
* page/DOMTimer.cpp:
(WebCore::DOMTimer::install):
(WebCore::DOMTimer::fired):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::focus):
(WebCore::DOMWindow::close):
(WebCore::DOMWindow::document):
(WebCore::DOMWindow::styleMedia):
(WebCore::DOMWindow::getComputedStyle):
* page/DragController.cpp:
(WebCore::DragController::dragExited):
(WebCore::DragController::dragEnteredOrUpdated):
* page/EventSource.cpp:
(WebCore::EventSource::create):
* page/FocusController.cpp:
(WebCore::FocusController::advanceFocusDirectionally):
* page/History.cpp:
(WebCore::History::go):
* page/SpatialNavigation.cpp:
(WebCore::scrollInDirection):
(WebCore::scrollableEnclosingBoxOrParentFrameForNodeInDirection):
(WebCore::canScrollInDirection):
(WebCore::nodeRectInAbsoluteCoordinates):
* svg/SVGDocument.h:
(WebCore::isSVGDocument):
* testing/Internals.cpp:
(WebCore::Internals::contextDocument):
(WebCore::Internals::frame):
(WebCore::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks):
* testing/js/WebCoreTestSupport.cpp:
(WebCoreTestSupport::injectInternalsObject):
(WebCoreTestSupport::resetInternalsObject):
* workers/DefaultSharedWorkerRepository.cpp:
(WebCore::SharedWorkerProxy::addToWorkerDocuments):
* workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::startWorkerGlobalScope):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::document):
(WebCore::XMLHttpRequest::open):

Source/WebKit2:

* WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm:
(-[WKDOMDocument createElement:]):
(-[WKDOMDocument createTextNode:]):
(-[WKDOMDocument body]):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulesgeolocationGeolocationcpp">trunk/Source/WebCore/Modules/geolocation/Geolocation.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBFactorycpp">trunk/Source/WebCore/Modules/indexeddb/IDBFactory.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediasourceSourceBuffercpp">trunk/Source/WebCore/Modules/mediasource/SourceBuffer.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamRTCPeerConnectioncpp">trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesnotificationsNotificationcpp">trunk/Source/WebCore/Modules/notifications/Notification.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioAudioContextcpp">trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioOfflineAudioContextcpp">trunk/Source/WebCore/Modules/webaudio/OfflineAudioContext.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebdatabaseDatabaseContextcpp">trunk/Source/WebCore/Modules/webdatabase/DatabaseContext.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebsocketsThreadableWebSocketChannelcpp">trunk/Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebsocketsWebSocketcpp">trunk/Source/WebCore/Modules/websockets/WebSocket.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebsocketsWebSocketHandshakecpp">trunk/Source/WebCore/Modules/websockets/WebSocketHandshake.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebsocketsWorkerThreadableWebSocketChannelcpp">trunk/Source/WebCore/Modules/websockets/WorkerThreadableWebSocketChannel.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsgobjectWebKitDOMPrivatecpp">trunk/Source/WebCore/bindings/gobject/WebKitDOMPrivate.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsDOMConstructorWithDocumenth">trunk/Source/WebCore/bindings/js/DOMConstructorWithDocument.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsDOMRequestStateh">trunk/Source/WebCore/bindings/js/DOMRequestState.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSAudioContextCustomcpp">trunk/Source/WebCore/bindings/js/JSAudioContextCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMGlobalObjectcpp">trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSLazyEventListenercpp">trunk/Source/WebCore/bindings/js/JSLazyEventListener.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSNodeCustomcpp">trunk/Source/WebCore/bindings/js/JSNodeCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsScheduledActioncpp">trunk/Source/WebCore/bindings/js/ScheduledAction.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsScriptStatecpp">trunk/Source/WebCore/bindings/js/ScriptState.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptoSubtleCryptocpp">trunk/Source/WebCore/crypto/SubtleCrypto.cpp</a></li>
<li><a href="#trunkSourceWebCoredomCommentcpp">trunk/Source/WebCore/dom/Comment.cpp</a></li>
<li><a href="#trunkSourceWebCoredomContainerNodecpp">trunk/Source/WebCore/dom/ContainerNode.cpp</a></li>
<li><a href="#trunkSourceWebCoredomContainerNodeAlgorithmscpp">trunk/Source/WebCore/dom/ContainerNodeAlgorithms.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDocumenth">trunk/Source/WebCore/dom/Document.h</a></li>
<li><a href="#trunkSourceWebCoredomDocumentFragmentcpp">trunk/Source/WebCore/dom/DocumentFragment.cpp</a></li>
<li><a href="#trunkSourceWebCoredomElementcpp">trunk/Source/WebCore/dom/Element.cpp</a></li>
<li><a href="#trunkSourceWebCoredomEventDispatchercpp">trunk/Source/WebCore/dom/EventDispatcher.cpp</a></li>
<li><a href="#trunkSourceWebCoredomEventTargetcpp">trunk/Source/WebCore/dom/EventTarget.cpp</a></li>
<li><a href="#trunkSourceWebCoredomNamedFlowCollectioncpp">trunk/Source/WebCore/dom/NamedFlowCollection.cpp</a></li>
<li><a href="#trunkSourceWebCoredomNodecpp">trunk/Source/WebCore/dom/Node.cpp</a></li>
<li><a href="#trunkSourceWebCoredomRangecpp">trunk/Source/WebCore/dom/Range.cpp</a></li>
<li><a href="#trunkSourceWebCoredomScriptExecutionContextcpp">trunk/Source/WebCore/dom/ScriptExecutionContext.cpp</a></li>
<li><a href="#trunkSourceWebCoredomTextcpp">trunk/Source/WebCore/dom/Text.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingMarkupAccumulatorcpp">trunk/Source/WebCore/editing/MarkupAccumulator.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLDocumenth">trunk/Source/WebCore/html/HTMLDocument.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLNameCollectionh">trunk/Source/WebCore/html/HTMLNameCollection.h</a></li>
<li><a href="#trunkSourceWebCorehtmlImageDocumenth">trunk/Source/WebCore/html/ImageDocument.h</a></li>
<li><a href="#trunkSourceWebCorehtmlMediaDocumenth">trunk/Source/WebCore/html/MediaDocument.h</a></li>
<li><a href="#trunkSourceWebCorehtmlPluginDocumenth">trunk/Source/WebCore/html/PluginDocument.h</a></li>
<li><a href="#trunkSourceWebCorehtmltrackTextTrackCueh">trunk/Source/WebCore/html/track/TextTrackCue.h</a></li>
<li><a href="#trunkSourceWebCorehtmltrackVTTCuecpp">trunk/Source/WebCore/html/track/VTTCue.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmltrackVTTRegionh">trunk/Source/WebCore/html/track/VTTRegion.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorDOMAgentcpp">trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorInstrumentationcpp">trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorInstrumentationh">trunk/Source/WebCore/inspector/InspectorInstrumentation.h</a></li>
<li><a href="#trunkSourceWebCoreloaderTextTrackLoadercpp">trunk/Source/WebCore/loader/TextTrackLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderThreadableLoadercpp">trunk/Source/WebCore/loader/ThreadableLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderWorkerThreadableLoadercpp">trunk/Source/WebCore/loader/WorkerThreadableLoader.cpp</a></li>
<li><a href="#trunkSourceWebCorepageContentSecurityPolicycpp">trunk/Source/WebCore/page/ContentSecurityPolicy.cpp</a></li>
<li><a href="#trunkSourceWebCorepageCryptocpp">trunk/Source/WebCore/page/Crypto.cpp</a></li>
<li><a href="#trunkSourceWebCorepageDOMTimercpp">trunk/Source/WebCore/page/DOMTimer.cpp</a></li>
<li><a href="#trunkSourceWebCorepageDOMWindowcpp">trunk/Source/WebCore/page/DOMWindow.cpp</a></li>
<li><a href="#trunkSourceWebCorepageDragControllercpp">trunk/Source/WebCore/page/DragController.cpp</a></li>
<li><a href="#trunkSourceWebCorepageEventSourcecpp">trunk/Source/WebCore/page/EventSource.cpp</a></li>
<li><a href="#trunkSourceWebCorepageFocusControllercpp">trunk/Source/WebCore/page/FocusController.cpp</a></li>
<li><a href="#trunkSourceWebCorepageHistorycpp">trunk/Source/WebCore/page/History.cpp</a></li>
<li><a href="#trunkSourceWebCorepageSpatialNavigationcpp">trunk/Source/WebCore/page/SpatialNavigation.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGDocumenth">trunk/Source/WebCore/svg/SVGDocument.h</a></li>
<li><a href="#trunkSourceWebCoretestingInternalscpp">trunk/Source/WebCore/testing/Internals.cpp</a></li>
<li><a href="#trunkSourceWebCoretestingjsWebCoreTestSupportcpp">trunk/Source/WebCore/testing/js/WebCoreTestSupport.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersDefaultSharedWorkerRepositorycpp">trunk/Source/WebCore/workers/DefaultSharedWorkerRepository.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersWorkerMessagingProxycpp">trunk/Source/WebCore/workers/WorkerMessagingProxy.cpp</a></li>
<li><a href="#trunkSourceWebCorexmlXMLHttpRequestcpp">trunk/Source/WebCore/xml/XMLHttpRequest.cpp</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2WebProcessInjectedBundleAPImacWKDOMDocumentmm">trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/ChangeLog        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -1,3 +1,176 @@
</span><ins>+2014-09-29  Christophe Dumez  &lt;cdumez@apple.com&gt;
+
+        Use is&lt;&gt;() / downcast&lt;&gt;() for Document
+        https://bugs.webkit.org/show_bug.cgi?id=137221
+
+        Reviewed by Andreas Kling.
+
+        Use is&lt;&gt;() / downcast&lt;&gt;() for Document instead of isDocumentNode() /
+        toDocument().
+
+        No new tests, no behavior change.
+
+        * Modules/geolocation/Geolocation.cpp:
+        (WebCore::Geolocation::document):
+        (WebCore::Geolocation::frame):
+        (WebCore::Geolocation::page):
+        * Modules/indexeddb/IDBFactory.cpp:
+        * Modules/mediasource/SourceBuffer.cpp:
+        (WebCore::SourceBuffer::document):
+        * Modules/mediastream/RTCPeerConnection.cpp:
+        (WebCore::RTCPeerConnection::RTCPeerConnection):
+        * Modules/notifications/Notification.cpp:
+        (WebCore::Notification::Notification):
+        (WebCore::Notification::show):
+        (WebCore::Notification::permission):
+        (WebCore::Notification::requestPermission):
+        * Modules/webaudio/AudioContext.cpp:
+        (WebCore::AudioContext::document):
+        * Modules/webaudio/OfflineAudioContext.cpp:
+        (WebCore::OfflineAudioContext::create):
+        * Modules/webdatabase/DatabaseContext.cpp:
+        (WebCore::DatabaseContext::allowDatabaseAccess):
+        (WebCore::DatabaseContext::databaseExceededQuota):
+        * Modules/websockets/ThreadableWebSocketChannel.cpp:
+        (WebCore::ThreadableWebSocketChannel::create):
+        * Modules/websockets/WebSocket.cpp:
+        (WebCore::WebSocket::connect):
+        * Modules/websockets/WebSocketHandshake.cpp:
+        (WebCore::WebSocketHandshake::clientHandshakeMessage):
+        (WebCore::WebSocketHandshake::clientHandshakeRequest):
+        * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
+        (WebCore::WorkerThreadableWebSocketChannel::Peer::Peer):
+        * bindings/gobject/WebKitDOMPrivate.cpp:
+        (WebKit::wrap):
+        * bindings/js/DOMConstructorWithDocument.h:
+        (WebCore::DOMConstructorWithDocument::document):
+        * bindings/js/DOMRequestState.h:
+        (WebCore::DOMRequestState::DOMRequestState):
+        (WebCore::DOMRequestState::clear):
+        * bindings/js/JSAudioContextCustom.cpp:
+        (WebCore::constructJSAudioContext):
+        * bindings/js/JSDOMGlobalObject.cpp:
+        (WebCore::toJSDOMGlobalObject):
+        * bindings/js/JSLazyEventListener.cpp:
+        (WebCore::JSLazyEventListener::initializeJSFunction):
+        * bindings/js/JSNodeCustom.cpp:
+        (WebCore::createWrapperInline):
+        * bindings/js/ScheduledAction.cpp:
+        (WebCore::ScheduledAction::execute):
+        * bindings/js/ScriptState.cpp:
+        (WebCore::frameFromExecState):
+        * crypto/SubtleCrypto.cpp:
+        (WebCore::SubtleCrypto::document):
+        * dom/Comment.cpp:
+        (WebCore::Comment::create):
+        * dom/ContainerNode.cpp:
+        (WebCore::checkAcceptChild):
+        * dom/ContainerNodeAlgorithms.cpp:
+        (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
+        * dom/Document.h:
+        (WebCore::isDocument):
+        * dom/DocumentFragment.cpp:
+        (WebCore::DocumentFragment::create):
+        * dom/Element.cpp:
+        (WebCore::Element::computeInheritedLanguage):
+        * dom/EventDispatcher.cpp:
+        (WebCore::WindowEventContext::WindowEventContext):
+        * dom/EventTarget.cpp:
+        (WebCore::EventTarget::fireEventListeners):
+        * dom/NamedFlowCollection.cpp:
+        (WebCore::NamedFlowCollection::document):
+        * dom/Node.cpp:
+        (WebCore::Node::isDefaultNamespace):
+        (WebCore::Node::lookupPrefix):
+        (WebCore::Node::lookupNamespaceURI):
+        (WebCore::Node::removedLastRef):
+        * dom/Range.cpp:
+        (WebCore::Range::create):
+        * dom/ScriptExecutionContext.cpp:
+        (WebCore::ScriptExecutionContext::dispatchErrorEvent):
+        * dom/Text.cpp:
+        (WebCore::Text::create):
+        * editing/MarkupAccumulator.cpp:
+        (WebCore::MarkupAccumulator::appendStartMarkup):
+        * html/HTMLDocument.h:
+        (WebCore::isHTMLDocument):
+        * html/HTMLNameCollection.h:
+        (WebCore::HTMLNameCollection::document):
+        * html/HTMLStyleElement.cpp:
+        (WebCore::HTMLStyleElement::insertedInto):
+        * html/ImageDocument.h:
+        (WebCore::isImageDocument):
+        * html/MediaDocument.h:
+        (WebCore::isMediaDocument):
+        * html/PluginDocument.h:
+        (WebCore::isPluginDocument):
+        * html/track/TextTrackCue.h:
+        (WebCore::TextTrackCue::ownerDocument):
+        * html/track/VTTCue.cpp:
+        (WebCore::VTTCue::initialize):
+        * html/track/VTTRegion.h:
+        (WebCore::VTTRegion::ownerDocument):
+        * inspector/InspectorDOMAgent.cpp:
+        (WebCore::InspectorDOMAgent::assertDocument):
+        (WebCore::InspectorDOMAgent::buildObjectForNode):
+        (WebCore::InspectorDOMAgent::innerParentNode):
+        * inspector/InspectorInstrumentation.cpp:
+        (WebCore::frameForScriptExecutionContext):
+        * inspector/InspectorInstrumentation.h:
+        (WebCore::InspectorInstrumentation::instrumentingAgentsForContext):
+        * loader/TextTrackLoader.cpp:
+        (WebCore::TextTrackLoader::corsPolicyPreventedLoad):
+        (WebCore::TextTrackLoader::notifyFinished):
+        (WebCore::TextTrackLoader::load):
+        * loader/ThreadableLoader.cpp:
+        (WebCore::ThreadableLoader::create):
+        (WebCore::ThreadableLoader::loadResourceSynchronously):
+        * loader/WorkerThreadableLoader.cpp:
+        (WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader):
+        * page/ContentSecurityPolicy.cpp:
+        (WebCore::ContentSecurityPolicy::reportViolation):
+        * page/Crypto.cpp:
+        (WebCore::Crypto::document):
+        * page/DOMTimer.cpp:
+        (WebCore::DOMTimer::install):
+        (WebCore::DOMTimer::fired):
+        * page/DOMWindow.cpp:
+        (WebCore::DOMWindow::focus):
+        (WebCore::DOMWindow::close):
+        (WebCore::DOMWindow::document):
+        (WebCore::DOMWindow::styleMedia):
+        (WebCore::DOMWindow::getComputedStyle):
+        * page/DragController.cpp:
+        (WebCore::DragController::dragExited):
+        (WebCore::DragController::dragEnteredOrUpdated):
+        * page/EventSource.cpp:
+        (WebCore::EventSource::create):
+        * page/FocusController.cpp:
+        (WebCore::FocusController::advanceFocusDirectionally):
+        * page/History.cpp:
+        (WebCore::History::go):
+        * page/SpatialNavigation.cpp:
+        (WebCore::scrollInDirection):
+        (WebCore::scrollableEnclosingBoxOrParentFrameForNodeInDirection):
+        (WebCore::canScrollInDirection):
+        (WebCore::nodeRectInAbsoluteCoordinates):
+        * svg/SVGDocument.h:
+        (WebCore::isSVGDocument):
+        * testing/Internals.cpp:
+        (WebCore::Internals::contextDocument):
+        (WebCore::Internals::frame):
+        (WebCore::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks):
+        * testing/js/WebCoreTestSupport.cpp:
+        (WebCoreTestSupport::injectInternalsObject):
+        (WebCoreTestSupport::resetInternalsObject):
+        * workers/DefaultSharedWorkerRepository.cpp:
+        (WebCore::SharedWorkerProxy::addToWorkerDocuments):
+        * workers/WorkerMessagingProxy.cpp:
+        (WebCore::WorkerMessagingProxy::startWorkerGlobalScope):
+        * xml/XMLHttpRequest.cpp:
+        (WebCore::XMLHttpRequest::document):
+        (WebCore::XMLHttpRequest::open):
+
</ins><span class="cx"> 2014-09-29  David Hyatt  &lt;hyatt@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         REGRESSION (r168046): Confused column spans when combined with dynamic animations
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesgeolocationGeolocationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/geolocation/Geolocation.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/geolocation/Geolocation.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/Modules/geolocation/Geolocation.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -250,17 +250,17 @@
</span><span class="cx"> 
</span><span class="cx"> Document* Geolocation::document() const
</span><span class="cx"> {
</span><del>-    return toDocument(scriptExecutionContext());
</del><ins>+    return downcast&lt;Document&gt;(scriptExecutionContext());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Frame* Geolocation::frame() const
</span><span class="cx"> {
</span><del>-    return document() ? document()-&gt;frame() : 0;
</del><ins>+    return document() ? document()-&gt;frame() : nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Page* Geolocation::page() const
</span><span class="cx"> {
</span><del>-    return document() ? document()-&gt;page() : 0;
</del><ins>+    return document() ? document()-&gt;page() : nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBFactorycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBFactory.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBFactory.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBFactory.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -68,10 +68,10 @@
</span><span class="cx"> namespace {
</span><span class="cx"> static bool isContextValid(ScriptExecutionContext* context)
</span><span class="cx"> {
</span><del>-    ASSERT(context-&gt;isDocument() || context-&gt;isWorkerGlobalScope());
-    if (context-&gt;isDocument()) {
-        Document* document = toDocument(context);
-        return document-&gt;frame() &amp;&amp; document-&gt;page() &amp;&amp; (!document-&gt;page()-&gt;usesEphemeralSession() || SchemeRegistry::allowsDatabaseAccessInPrivateBrowsing(document-&gt;securityOrigin()-&gt;protocol()));
</del><ins>+    ASSERT(is&lt;Document&gt;(context) || context-&gt;isWorkerGlobalScope());
+    if (is&lt;Document&gt;(context)) {
+        Document&amp; document = downcast&lt;Document&gt;(*context);
+        return document.frame() &amp;&amp; document.page() &amp;&amp; (!document.page()-&gt;usesEphemeralSession() || SchemeRegistry::allowsDatabaseAccessInPrivateBrowsing(document.securityOrigin()-&gt;protocol()));
</ins><span class="cx">     }
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="lines">@@ -79,9 +79,9 @@
</span><span class="cx"> static String getIndexedDBDatabasePath(ScriptExecutionContext* context)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(isContextValid(context));
</span><del>-    if (context-&gt;isDocument()) {
-        Document* document = toDocument(context);
-        return document-&gt;page()-&gt;group().groupSettings().indexedDBDatabasePath();
</del><ins>+    if (is&lt;Document&gt;(context)) {
+        Document&amp; document = downcast&lt;Document&gt;(*context);
+        return document.page()-&gt;group().groupSettings().indexedDBDatabasePath();
</ins><span class="cx">     }
</span><span class="cx">     const GroupSettings* groupSettings = toWorkerGlobalScope(context)-&gt;groupSettings();
</span><span class="cx">     if (groupSettings)
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediasourceSourceBuffercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediasource/SourceBuffer.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediasource/SourceBuffer.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/Modules/mediasource/SourceBuffer.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -1796,7 +1796,7 @@
</span><span class="cx"> Document&amp; SourceBuffer::document() const
</span><span class="cx"> {
</span><span class="cx">     ASSERT(scriptExecutionContext());
</span><del>-    return *toDocument(scriptExecutionContext());
</del><ins>+    return downcast&lt;Document&gt;(*scriptExecutionContext());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamRTCPeerConnectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -178,7 +178,7 @@
</span><span class="cx">     , m_configuration(configuration)
</span><span class="cx">     , m_stopped(false)
</span><span class="cx"> {
</span><del>-    Document&amp; document = toDocument(context);
</del><ins>+    Document&amp; document = downcast&lt;Document&gt;(context);
</ins><span class="cx"> 
</span><span class="cx">     if (!document.frame()) {
</span><span class="cx">         ec = NOT_SUPPORTED_ERR;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesnotificationsNotificationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/notifications/Notification.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/notifications/Notification.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/Modules/notifications/Notification.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -86,7 +86,7 @@
</span><span class="cx">     , m_state(Idle)
</span><span class="cx">     , m_taskTimer(std::make_unique&lt;Timer&lt;Notification&gt;&gt;(this, &amp;Notification::taskTimerFired))
</span><span class="cx"> {
</span><del>-    m_notificationCenter = DOMWindowNotifications::webkitNotifications(toDocument(context).domWindow());
</del><ins>+    m_notificationCenter = DOMWindowNotifications::webkitNotifications(downcast&lt;Document&gt;(context).domWindow());
</ins><span class="cx">     
</span><span class="cx">     ASSERT(m_notificationCenter-&gt;client());
</span><span class="cx">     m_taskTimer-&gt;startOneShot(0);
</span><span class="lines">@@ -135,9 +135,9 @@
</span><span class="cx">     // prevent double-showing
</span><span class="cx">     if (m_state == Idle &amp;&amp; m_notificationCenter-&gt;client()) {
</span><span class="cx"> #if ENABLE(NOTIFICATIONS)
</span><del>-        if (!toDocument(scriptExecutionContext())-&gt;page())
</del><ins>+        if (!downcast&lt;Document&gt;(*scriptExecutionContext()).page())
</ins><span class="cx">             return;
</span><del>-        if (NotificationController::from(toDocument(scriptExecutionContext())-&gt;page())-&gt;client()-&gt;checkPermission(scriptExecutionContext()) != NotificationClient::PermissionAllowed) {
</del><ins>+        if (NotificationController::from(downcast&lt;Document&gt;(*scriptExecutionContext()).page())-&gt;client()-&gt;checkPermission(scriptExecutionContext()) != NotificationClient::PermissionAllowed) {
</ins><span class="cx">             dispatchErrorEvent();
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="lines">@@ -213,8 +213,8 @@
</span><span class="cx"> #if ENABLE(NOTIFICATIONS)
</span><span class="cx"> const String Notification::permission(ScriptExecutionContext* context)
</span><span class="cx"> {
</span><del>-    ASSERT(toDocument(context)-&gt;page());
-    return permissionString(NotificationController::from(toDocument(context)-&gt;page())-&gt;client()-&gt;checkPermission(context));
</del><ins>+    ASSERT(downcast&lt;Document&gt;(*context).page());
+    return permissionString(NotificationController::from(downcast&lt;Document&gt;(*context).page())-&gt;client()-&gt;checkPermission(context));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const String Notification::permissionString(NotificationClient::Permission permission)
</span><span class="lines">@@ -234,8 +234,8 @@
</span><span class="cx"> 
</span><span class="cx"> void Notification::requestPermission(ScriptExecutionContext* context, PassRefPtr&lt;NotificationPermissionCallback&gt; callback)
</span><span class="cx"> {
</span><del>-    ASSERT(toDocument(context)-&gt;page());
-    NotificationController::from(toDocument(context)-&gt;page())-&gt;client()-&gt;requestPermission(context, callback);
</del><ins>+    ASSERT(downcast&lt;Document&gt;(*context).page());
+    NotificationController::from(downcast&lt;Document&gt;(*context).page())-&gt;client()-&gt;requestPermission(context, callback);
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioAudioContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -325,7 +325,7 @@
</span><span class="cx"> Document* AudioContext::document() const
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_scriptExecutionContext);
</span><del>-    return toDocument(m_scriptExecutionContext);
</del><ins>+    return downcast&lt;Document&gt;(m_scriptExecutionContext);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> PassRefPtr&lt;AudioBuffer&gt; AudioContext::createBuffer(unsigned numberOfChannels, size_t numberOfFrames, float sampleRate, ExceptionCode&amp; ec)
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioOfflineAudioContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/OfflineAudioContext.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/OfflineAudioContext.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/Modules/webaudio/OfflineAudioContext.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -37,12 +37,12 @@
</span><span class="cx"> PassRefPtr&lt;OfflineAudioContext&gt; OfflineAudioContext::create(ScriptExecutionContext&amp; context, unsigned numberOfChannels, size_t numberOfFrames, float sampleRate, ExceptionCode&amp; ec)
</span><span class="cx"> {
</span><span class="cx">     // FIXME: add support for workers.
</span><del>-    if (!context.isDocument()) {
</del><ins>+    if (!is&lt;Document&gt;(context)) {
</ins><span class="cx">         ec = NOT_SUPPORTED_ERR;
</span><span class="cx">         return nullptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Document&amp; document = toDocument(context);
</del><ins>+    Document&amp; document = downcast&lt;Document&gt;(context);
</ins><span class="cx"> 
</span><span class="cx">     if (numberOfChannels &gt; 10 || !isSampleRateRangeGood(sampleRate)) {
</span><span class="cx">         ec = SYNTAX_ERR;
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebdatabaseDatabaseContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webdatabase/DatabaseContext.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webdatabase/DatabaseContext.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/Modules/webdatabase/DatabaseContext.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -218,9 +218,9 @@
</span><span class="cx"> 
</span><span class="cx"> bool DatabaseContext::allowDatabaseAccess() const
</span><span class="cx"> {
</span><del>-    if (m_scriptExecutionContext-&gt;isDocument()) {
-        Document* document = toDocument(m_scriptExecutionContext);
-        if (!document-&gt;page() || (document-&gt;page()-&gt;usesEphemeralSession() &amp;&amp; !SchemeRegistry::allowsDatabaseAccessInPrivateBrowsing(document-&gt;securityOrigin()-&gt;protocol())))
</del><ins>+    if (is&lt;Document&gt;(*m_scriptExecutionContext)) {
+        Document&amp; document = downcast&lt;Document&gt;(*m_scriptExecutionContext);
+        if (!document.page() || (document.page()-&gt;usesEphemeralSession() &amp;&amp; !SchemeRegistry::allowsDatabaseAccessInPrivateBrowsing(document.securityOrigin()-&gt;protocol())))
</ins><span class="cx">             return false;
</span><span class="cx">         return true;
</span><span class="cx">     }
</span><span class="lines">@@ -231,10 +231,10 @@
</span><span class="cx"> 
</span><span class="cx"> void DatabaseContext::databaseExceededQuota(const String&amp; name, DatabaseDetails details)
</span><span class="cx"> {
</span><del>-    if (m_scriptExecutionContext-&gt;isDocument()) {
-        Document* document = toDocument(m_scriptExecutionContext);
-        if (Page* page = document-&gt;page())
-            page-&gt;chrome().client().exceededDatabaseQuota(document-&gt;frame(), name, details);
</del><ins>+    if (is&lt;Document&gt;(*m_scriptExecutionContext)) {
+        Document&amp; document = downcast&lt;Document&gt;(*m_scriptExecutionContext);
+        if (Page* page = document.page())
+            page-&gt;chrome().client().exceededDatabaseQuota(document.frame(), name, details);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     ASSERT(m_scriptExecutionContext-&gt;isWorkerGlobalScope());
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebsocketsThreadableWebSocketChannelcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -64,7 +64,7 @@
</span><span class="cx">         return WorkerThreadableWebSocketChannel::create(workerGlobalScope, client, mode.toString());
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return WebSocketChannel::create(toDocument(context), client);
</del><ins>+    return WebSocketChannel::create(downcast&lt;Document&gt;(context), client);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebsocketsWebSocketcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/websockets/WebSocket.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/websockets/WebSocket.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/Modules/websockets/WebSocket.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -239,9 +239,9 @@
</span><span class="cx"> 
</span><span class="cx">     // FIXME: Convert this to check the isolated world's Content Security Policy once webkit.org/b/104520 is solved.
</span><span class="cx">     bool shouldBypassMainWorldContentSecurityPolicy = false;
</span><del>-    if (scriptExecutionContext()-&gt;isDocument()) {
-        Document* document = toDocument(scriptExecutionContext());
-        shouldBypassMainWorldContentSecurityPolicy = document-&gt;frame()-&gt;script().shouldBypassMainWorldContentSecurityPolicy();
</del><ins>+    if (is&lt;Document&gt;(scriptExecutionContext())) {
+        Document&amp; document = downcast&lt;Document&gt;(*scriptExecutionContext());
+        shouldBypassMainWorldContentSecurityPolicy = document.frame()-&gt;script().shouldBypassMainWorldContentSecurityPolicy();
</ins><span class="cx">     }
</span><span class="cx">     if (!shouldBypassMainWorldContentSecurityPolicy &amp;&amp; !scriptExecutionContext()-&gt;contentSecurityPolicy()-&gt;allowConnectToSource(m_url)) {
</span><span class="cx">         m_state = CLOSED;
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebsocketsWebSocketHandshakecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/websockets/WebSocketHandshake.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/websockets/WebSocketHandshake.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/Modules/websockets/WebSocketHandshake.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -196,9 +196,9 @@
</span><span class="cx">         fields.append(&quot;Sec-WebSocket-Protocol: &quot; + m_clientProtocol);
</span><span class="cx"> 
</span><span class="cx">     URL url = httpURLForAuthenticationAndCookies();
</span><del>-    if (m_context-&gt;isDocument()) {
-        Document* document = toDocument(m_context);
-        String cookie = cookieRequestHeaderFieldValue(document, url);
</del><ins>+    if (is&lt;Document&gt;(m_context)) {
+        Document&amp; document = downcast&lt;Document&gt;(*m_context);
+        String cookie = cookieRequestHeaderFieldValue(&amp;document, url);
</ins><span class="cx">         if (!cookie.isEmpty())
</span><span class="cx">             fields.append(&quot;Cookie: &quot; + cookie);
</span><span class="cx">         // Set &quot;Cookie2: &lt;cookie&gt;&quot; if cookies 2 exists for url?
</span><span class="lines">@@ -247,9 +247,9 @@
</span><span class="cx">         request.setHTTPHeaderField(HTTPHeaderName::SecWebSocketProtocol, m_clientProtocol);
</span><span class="cx"> 
</span><span class="cx">     URL url = httpURLForAuthenticationAndCookies();
</span><del>-    if (m_context-&gt;isDocument()) {
-        Document* document = toDocument(m_context);
-        String cookie = cookieRequestHeaderFieldValue(document, url);
</del><ins>+    if (is&lt;Document&gt;(*m_context)) {
+        Document&amp; document = downcast&lt;Document&gt;(*m_context);
+        String cookie = cookieRequestHeaderFieldValue(&amp;document, url);
</ins><span class="cx">         if (!cookie.isEmpty())
</span><span class="cx">             request.setHTTPHeaderField(HTTPHeaderName::Cookie, cookie);
</span><span class="cx">         // Set &quot;Cookie2: &lt;cookie&gt;&quot; if cookies 2 exists for url?
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebsocketsWorkerThreadableWebSocketChannelcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/websockets/WorkerThreadableWebSocketChannel.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/websockets/WorkerThreadableWebSocketChannel.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/Modules/websockets/WorkerThreadableWebSocketChannel.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -147,7 +147,7 @@
</span><span class="cx"> WorkerThreadableWebSocketChannel::Peer::Peer(PassRefPtr&lt;ThreadableWebSocketChannelClientWrapper&gt; clientWrapper, WorkerLoaderProxy&amp; loaderProxy, ScriptExecutionContext* context, const String&amp; taskMode)
</span><span class="cx">     : m_workerClientWrapper(clientWrapper)
</span><span class="cx">     , m_loaderProxy(loaderProxy)
</span><del>-    , m_mainWebSocketChannel(WebSocketChannel::create(toDocument(context), this))
</del><ins>+    , m_mainWebSocketChannel(WebSocketChannel::create(downcast&lt;Document&gt;(context), this))
</ins><span class="cx">     , m_taskMode(taskMode)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsgobjectWebKitDOMPrivatecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/gobject/WebKitDOMPrivate.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/gobject/WebKitDOMPrivate.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/bindings/gobject/WebKitDOMPrivate.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -100,9 +100,9 @@
</span><span class="cx">     case Node::COMMENT_NODE:
</span><span class="cx">         return WEBKIT_DOM_NODE(wrapComment(static_cast&lt;Comment*&gt;(node)));
</span><span class="cx">     case Node::DOCUMENT_NODE:
</span><del>-        if (toDocument(node)-&gt;isHTMLDocument())
-            return WEBKIT_DOM_NODE(wrapHTMLDocument(static_cast&lt;HTMLDocument*&gt;(node)));
-        return WEBKIT_DOM_NODE(wrapDocument(toDocument(node)));
</del><ins>+        if (is&lt;HTMLDocument&gt;(node))
+            return WEBKIT_DOM_NODE(wrapHTMLDocument(downcast&lt;HTMLDocument&gt;(node)));
+        return WEBKIT_DOM_NODE(wrapDocument(downcast&lt;Document&gt;(node)));
</ins><span class="cx">     case Node::DOCUMENT_TYPE_NODE:
</span><span class="cx">         return WEBKIT_DOM_NODE(wrapDocumentType(static_cast&lt;DocumentType*&gt;(node)));
</span><span class="cx">     case Node::DOCUMENT_FRAGMENT_NODE:
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsDOMConstructorWithDocumenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/DOMConstructorWithDocument.h (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/DOMConstructorWithDocument.h        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/bindings/js/DOMConstructorWithDocument.h        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -32,7 +32,7 @@
</span><span class="cx"> public:
</span><span class="cx">     Document* document() const
</span><span class="cx">     {
</span><del>-        return toDocument(scriptExecutionContext());
</del><ins>+        return downcast&lt;Document&gt;(scriptExecutionContext());
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> protected:
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsDOMRequestStateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/DOMRequestState.h (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/DOMRequestState.h        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/bindings/js/DOMRequestState.h        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -41,11 +41,11 @@
</span><span class="cx"> public:
</span><span class="cx">     explicit DOMRequestState(ScriptExecutionContext* scriptExecutionContext)
</span><span class="cx">         : m_scriptExecutionContext(scriptExecutionContext)
</span><del>-        , m_exec(0)
</del><ins>+        , m_exec(nullptr)
</ins><span class="cx">     {
</span><del>-        if (m_scriptExecutionContext-&gt;isDocument()) {
-            Document* document = toDocument(m_scriptExecutionContext);
-            m_exec = execStateFromPage(mainThreadNormalWorld(), document-&gt;page());
</del><ins>+        if (is&lt;Document&gt;(*m_scriptExecutionContext)) {
+            Document&amp; document = downcast&lt;Document&gt;(*m_scriptExecutionContext);
+            m_exec = execStateFromPage(mainThreadNormalWorld(), document.page());
</ins><span class="cx">         } else {
</span><span class="cx">             WorkerGlobalScope* workerGlobalScope = static_cast&lt;WorkerGlobalScope*&gt;(m_scriptExecutionContext);
</span><span class="cx">             m_exec = execStateFromWorkerGlobalScope(workerGlobalScope);
</span><span class="lines">@@ -54,8 +54,8 @@
</span><span class="cx"> 
</span><span class="cx">     void clear()
</span><span class="cx">     {
</span><del>-        m_scriptExecutionContext = 0;
-        m_exec = 0;
</del><ins>+        m_scriptExecutionContext = nullptr;
+        m_exec = nullptr;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     class Scope {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSAudioContextCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSAudioContextCustom.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSAudioContextCustom.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/bindings/js/JSAudioContextCustom.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -53,10 +53,10 @@
</span><span class="cx">     if (!scriptExecutionContext)
</span><span class="cx">         return throwVMError(exec, createReferenceError(exec, &quot;AudioContext constructor script execution context is unavailable&quot;));
</span><span class="cx">         
</span><del>-    if (!scriptExecutionContext-&gt;isDocument())
</del><ins>+    if (!is&lt;Document&gt;(scriptExecutionContext))
</ins><span class="cx">         return throwVMError(exec, createReferenceError(exec, &quot;AudioContext constructor called in a script execution context which is not a document&quot;));
</span><span class="cx"> 
</span><del>-    Document&amp; document = toDocument(*scriptExecutionContext);
</del><ins>+    Document&amp; document = downcast&lt;Document&gt;(*scriptExecutionContext);
</ins><span class="cx"> 
</span><span class="cx">     RefPtr&lt;AudioContext&gt; audioContext;
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMGlobalObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -105,14 +105,14 @@
</span><span class="cx"> 
</span><span class="cx"> JSDOMGlobalObject* toJSDOMGlobalObject(ScriptExecutionContext* scriptExecutionContext, JSC::ExecState* exec)
</span><span class="cx"> {
</span><del>-    if (scriptExecutionContext-&gt;isDocument())
-        return toJSDOMGlobalObject(toDocument(scriptExecutionContext), exec);
</del><ins>+    if (is&lt;Document&gt;(scriptExecutionContext))
+        return toJSDOMGlobalObject(downcast&lt;Document&gt;(scriptExecutionContext), exec);
</ins><span class="cx"> 
</span><span class="cx">     if (scriptExecutionContext-&gt;isWorkerGlobalScope())
</span><span class="cx">         return toWorkerGlobalScope(scriptExecutionContext)-&gt;script()-&gt;workerGlobalScopeWrapper();
</span><span class="cx"> 
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><del>-    return 0;
</del><ins>+    return nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSDOMGlobalObject* toJSDOMGlobalObject(Document* document, DOMWrapperWorld&amp; world)
</span><span class="lines">@@ -122,14 +122,14 @@
</span><span class="cx"> 
</span><span class="cx"> JSDOMGlobalObject* toJSDOMGlobalObject(ScriptExecutionContext* scriptExecutionContext, DOMWrapperWorld&amp; world)
</span><span class="cx"> {
</span><del>-    if (scriptExecutionContext-&gt;isDocument())
-        return toJSDOMGlobalObject(toDocument(scriptExecutionContext), world);
</del><ins>+    if (is&lt;Document&gt;(scriptExecutionContext))
+        return toJSDOMGlobalObject(downcast&lt;Document&gt;(scriptExecutionContext), world);
</ins><span class="cx"> 
</span><span class="cx">     if (scriptExecutionContext-&gt;isWorkerGlobalScope())
</span><span class="cx">         return toWorkerGlobalScope(scriptExecutionContext)-&gt;script()-&gt;workerGlobalScopeWrapper();
</span><span class="cx"> 
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><del>-    return 0;
</del><ins>+    return nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSLazyEventListenercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSLazyEventListener.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSLazyEventListener.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/bindings/js/JSLazyEventListener.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -73,30 +73,30 @@
</span><span class="cx"> JSObject* JSLazyEventListener::initializeJSFunction(ScriptExecutionContext* executionContext) const
</span><span class="cx"> {
</span><span class="cx">     ASSERT(executionContext);
</span><del>-    ASSERT(executionContext-&gt;isDocument());
</del><ins>+    ASSERT(is&lt;Document&gt;(executionContext));
</ins><span class="cx">     if (!executionContext)
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx"> 
</span><span class="cx">     ASSERT(!m_code.isNull());
</span><span class="cx">     ASSERT(!m_eventParameterName.isNull());
</span><span class="cx">     if (m_code.isNull() || m_eventParameterName.isNull())
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx"> 
</span><del>-    Document* document = toDocument(executionContext);
</del><ins>+    Document&amp; document = downcast&lt;Document&gt;(*executionContext);
</ins><span class="cx"> 
</span><del>-    if (!document-&gt;frame())
-        return 0;
</del><ins>+    if (!document.frame())
+        return nullptr;
</ins><span class="cx"> 
</span><del>-    if (!document-&gt;contentSecurityPolicy()-&gt;allowInlineEventHandlers(m_sourceURL, m_position.m_line))
-        return 0;
</del><ins>+    if (!document.contentSecurityPolicy()-&gt;allowInlineEventHandlers(m_sourceURL, m_position.m_line))
+        return nullptr;
</ins><span class="cx"> 
</span><del>-    ScriptController&amp; script = document-&gt;frame()-&gt;script();
</del><ins>+    ScriptController&amp; script = document.frame()-&gt;script();
</ins><span class="cx">     if (!script.canExecuteScripts(AboutToExecuteScript) || script.isPaused())
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx"> 
</span><span class="cx">     JSDOMGlobalObject* globalObject = toJSDOMGlobalObject(executionContext, isolatedWorld());
</span><span class="cx">     if (!globalObject)
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx"> 
</span><span class="cx">     ExecState* exec = globalObject-&gt;globalExec();
</span><span class="cx"> 
</span><span class="lines">@@ -108,7 +108,7 @@
</span><span class="cx">     if (exec-&gt;hadException()) {
</span><span class="cx">         reportCurrentException(exec);
</span><span class="cx">         exec-&gt;clearException();
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     JSFunction* listenerAsFunction = jsCast&lt;JSFunction*&gt;(jsFunction);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSNodeCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSNodeCustom.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSNodeCustom.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/bindings/js/JSNodeCustom.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -219,7 +219,7 @@
</span><span class="cx">             break;
</span><span class="cx">         case Node::DOCUMENT_NODE:
</span><span class="cx">             // we don't want to cache the document itself in the per-document dictionary
</span><del>-            return toJS(exec, globalObject, toDocument(node));
</del><ins>+            return toJS(exec, globalObject, downcast&lt;Document&gt;(node));
</ins><span class="cx">         case Node::DOCUMENT_TYPE_NODE:
</span><span class="cx">             wrapper = CREATE_DOM_WRAPPER(globalObject, DocumentType, node);
</span><span class="cx">             break;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsScheduledActioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/ScheduledAction.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/ScheduledAction.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/bindings/js/ScheduledAction.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -74,8 +74,8 @@
</span><span class="cx"> 
</span><span class="cx"> void ScheduledAction::execute(ScriptExecutionContext* context)
</span><span class="cx"> {
</span><del>-    if (context-&gt;isDocument())
-        execute(toDocument(context));
</del><ins>+    if (is&lt;Document&gt;(context))
+        execute(downcast&lt;Document&gt;(context));
</ins><span class="cx">     else
</span><span class="cx">         execute(toWorkerGlobalScope(context));
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsScriptStatecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/ScriptState.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/ScriptState.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/bindings/js/ScriptState.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx"> Frame* frameFromExecState(JSC::ExecState* scriptState)
</span><span class="cx"> {
</span><span class="cx">     ScriptExecutionContext* context = scriptExecutionContextFromExecState(scriptState);
</span><del>-    Document* document = context &amp;&amp; context-&gt;isDocument() ? toDocument(context) : nullptr;
</del><ins>+    Document* document = context &amp;&amp; is&lt;Document&gt;(context) ? downcast&lt;Document&gt;(context) : nullptr;
</ins><span class="cx">     return document ? document-&gt;frame() : nullptr;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoSubtleCryptocpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/SubtleCrypto.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/SubtleCrypto.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/crypto/SubtleCrypto.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx"> 
</span><span class="cx"> Document* SubtleCrypto::document() const
</span><span class="cx"> {
</span><del>-    return toDocument(scriptExecutionContext());
</del><ins>+    return downcast&lt;Document&gt;(scriptExecutionContext());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoredomCommentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Comment.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Comment.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/dom/Comment.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -38,7 +38,7 @@
</span><span class="cx"> 
</span><span class="cx"> PassRefPtr&lt;Comment&gt; Comment::create(ScriptExecutionContext&amp; context, const String&amp; text)
</span><span class="cx"> {
</span><del>-    return adoptRef(new Comment(toDocument(context), text));
</del><ins>+    return adoptRef(new Comment(downcast&lt;Document&gt;(context), text));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String Comment::nodeName() const
</span></span></pre></div>
<a id="trunkSourceWebCoredomContainerNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ContainerNode.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ContainerNode.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/dom/ContainerNode.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -202,8 +202,8 @@
</span><span class="cx">     if (containsConsideringHostElements(newChild, newParent))
</span><span class="cx">         return HIERARCHY_REQUEST_ERR;
</span><span class="cx"> 
</span><del>-    if (oldChild &amp;&amp; newParent-&gt;isDocumentNode()) {
-        if (!toDocument(newParent)-&gt;canReplaceChild(newChild, oldChild))
</del><ins>+    if (oldChild &amp;&amp; is&lt;Document&gt;(newParent)) {
+        if (!downcast&lt;Document&gt;(*newParent).canReplaceChild(newChild, oldChild))
</ins><span class="cx">             return HIERARCHY_REQUEST_ERR;
</span><span class="cx">     } else if (!isChildTypeAllowed(newParent, newChild))
</span><span class="cx">         return HIERARCHY_REQUEST_ERR;
</span></span></pre></div>
<a id="trunkSourceWebCoredomContainerNodeAlgorithmscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ContainerNodeAlgorithms.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ContainerNodeAlgorithms.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/dom/ContainerNodeAlgorithms.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -37,7 +37,7 @@
</span><span class="cx">         // we don't want to tell the rest of our children that they've been
</span><span class="cx">         // inserted into the document because they haven't.
</span><span class="cx">         if (node.inDocument() &amp;&amp; child-&gt;parentNode() == &amp;node)
</span><del>-            notifyNodeInsertedIntoDocument(*child.get());
</del><ins>+            notifyNodeInsertedIntoDocument(*child);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (!node.isElementNode())
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (RefPtr&lt;ShadowRoot&gt; root = toElement(node).shadowRoot()) {
</span><span class="cx">         if (node.inDocument() &amp;&amp; root-&gt;hostElement() == &amp;node)
</span><del>-            notifyNodeInsertedIntoDocument(*root.get());
</del><ins>+            notifyNodeInsertedIntoDocument(*root);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.h (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.h        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/dom/Document.h        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -1740,13 +1740,11 @@
</span><span class="cx"> 
</span><span class="cx"> Element* eventTargetElementForDocument(Document*);
</span><span class="cx"> 
</span><del>-SCRIPT_EXECUTION_CONTEXT_TYPE_CASTS(Document)
</del><ins>+SPECIALIZE_TYPE_TRAITS_BEGIN(Document)
+    static bool isDocument(const ScriptExecutionContext&amp; context) { return context.isDocument(); }
+    static bool isDocument(const Node&amp; node) { return node.isDocumentNode(); }
+SPECIALIZE_TYPE_TRAITS_END()
</ins><span class="cx"> 
</span><del>-inline bool isDocument(const Node&amp; node) { return node.isDocumentNode(); }
-void isDocument(const Document&amp;); // Catch unnecessary runtime check of type known at compile time.
-
-NODE_TYPE_CASTS(Document)
-
</del><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><span class="cx"> namespace WTF {
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentFragmentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/DocumentFragment.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/DocumentFragment.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/dom/DocumentFragment.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx"> 
</span><span class="cx"> PassRefPtr&lt;DocumentFragment&gt; DocumentFragment::create(ScriptExecutionContext&amp; context)
</span><span class="cx"> {
</span><del>-    return adoptRef(new DocumentFragment(toDocument(context), Node::CreateDocumentFragment));
</del><ins>+    return adoptRef(new DocumentFragment(downcast&lt;Document&gt;(context), Node::CreateDocumentFragment));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String DocumentFragment::nodeName() const
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/dom/Element.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -2200,9 +2200,9 @@
</span><span class="cx">                 if (const Attribute* attribute = elementData-&gt;findLanguageAttribute())
</span><span class="cx">                     return attribute-&gt;value();
</span><span class="cx">             }
</span><del>-        } else if (currentNode-&gt;isDocumentNode()) {
</del><ins>+        } else if (is&lt;Document&gt;(currentNode)) {
</ins><span class="cx">             // checking the MIME content-language
</span><del>-            return toDocument(currentNode)-&gt;contentLanguage();
</del><ins>+            return downcast&lt;Document&gt;(*currentNode).contentLanguage();
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomEventDispatchercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/EventDispatcher.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/EventDispatcher.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/dom/EventDispatcher.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -60,10 +60,10 @@
</span><span class="cx"> WindowEventContext::WindowEventContext(PassRefPtr&lt;Node&gt; node, const EventContext* topEventContext)
</span><span class="cx"> {
</span><span class="cx">     Node* topLevelContainer = topEventContext ? topEventContext-&gt;node() : node.get();
</span><del>-    if (!topLevelContainer-&gt;isDocumentNode())
</del><ins>+    if (!is&lt;Document&gt;(topLevelContainer))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    m_window = toDocument(topLevelContainer)-&gt;domWindow();
</del><ins>+    m_window = downcast&lt;Document&gt;(*topLevelContainer).domWindow();
</ins><span class="cx">     m_target = topEventContext ? topEventContext-&gt;target() : node.get();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomEventTargetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/EventTarget.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/EventTarget.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/dom/EventTarget.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -223,8 +223,8 @@
</span><span class="cx">     ScriptExecutionContext* context = scriptExecutionContext();
</span><span class="cx">     Document* document = nullptr;
</span><span class="cx">     InspectorInstrumentationCookie willDispatchEventCookie;
</span><del>-    if (context &amp;&amp; context-&gt;isDocument()) {
-        document = toDocument(context);
</del><ins>+    if (context &amp;&amp; is&lt;Document&gt;(context)) {
+        document = downcast&lt;Document&gt;(context);
</ins><span class="cx">         willDispatchEventCookie = InspectorInstrumentation::willDispatchEvent(document, *event, size &gt; 0);
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomNamedFlowCollectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/NamedFlowCollection.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/NamedFlowCollection.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/dom/NamedFlowCollection.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -101,7 +101,7 @@
</span><span class="cx"> Document* NamedFlowCollection::document() const
</span><span class="cx"> {
</span><span class="cx">     ScriptExecutionContext* context = ContextDestructionObserver::scriptExecutionContext();
</span><del>-    return toDocument(context);
</del><ins>+    return downcast&lt;Document&gt;(context);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> PassRefPtr&lt;DOMNamedFlowCollection&gt; NamedFlowCollection::createCSSOMSnapshot()
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Node.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Node.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/dom/Node.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -1162,8 +1162,8 @@
</span><span class="cx">             return false;
</span><span class="cx">         }
</span><span class="cx">         case DOCUMENT_NODE:
</span><del>-            if (Element* de = toDocument(this)-&gt;documentElement())
-                return de-&gt;isDefaultNamespace(namespaceURI);
</del><ins>+            if (Element* documentElement = downcast&lt;Document&gt;(*this).documentElement())
+                return documentElement-&gt;isDefaultNamespace(namespaceURI);
</ins><span class="cx">             return false;
</span><span class="cx">         case ENTITY_NODE:
</span><span class="cx">         case NOTATION_NODE:
</span><span class="lines">@@ -1195,8 +1195,8 @@
</span><span class="cx">         case ELEMENT_NODE:
</span><span class="cx">             return lookupNamespacePrefix(namespaceURI, static_cast&lt;const Element *&gt;(this));
</span><span class="cx">         case DOCUMENT_NODE:
</span><del>-            if (Element* de = toDocument(this)-&gt;documentElement())
-                return de-&gt;lookupPrefix(namespaceURI);
</del><ins>+            if (Element* documentElement = downcast&lt;Document&gt;(*this).documentElement())
+                return documentElement-&gt;lookupPrefix(namespaceURI);
</ins><span class="cx">             return String();
</span><span class="cx">         case ENTITY_NODE:
</span><span class="cx">         case NOTATION_NODE:
</span><span class="lines">@@ -1253,8 +1253,8 @@
</span><span class="cx">             return String();
</span><span class="cx">         }
</span><span class="cx">         case DOCUMENT_NODE:
</span><del>-            if (Element* de = toDocument(this)-&gt;documentElement())
-                return de-&gt;lookupNamespaceURI(prefix);
</del><ins>+            if (Element* documentElement = downcast&lt;Document&gt;(*this).documentElement())
+                return documentElement-&gt;lookupNamespaceURI(prefix);
</ins><span class="cx">             return String();
</span><span class="cx">         case ENTITY_NODE:
</span><span class="cx">         case NOTATION_NODE:
</span><span class="lines">@@ -2198,8 +2198,8 @@
</span><span class="cx">     // An explicit check for Document here is better than a virtual function since it is
</span><span class="cx">     // faster for non-Document nodes, and because the call to removedLastRef that is inlined
</span><span class="cx">     // at all deref call sites is smaller if it's a non-virtual function.
</span><del>-    if (isDocumentNode()) {
-        toDocument(*this).removedLastRef();
</del><ins>+    if (is&lt;Document&gt;(*this)) {
+        downcast&lt;Document&gt;(*this).removedLastRef();
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomRangecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Range.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Range.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/dom/Range.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -106,7 +106,7 @@
</span><span class="cx"> 
</span><span class="cx"> PassRefPtr&lt;Range&gt; Range::create(ScriptExecutionContext&amp; context)
</span><span class="cx"> {
</span><del>-    return adoptRef(new Range(toDocument(context)));
</del><ins>+    return adoptRef(new Range(downcast&lt;Document&gt;(context)));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> PassRefPtr&lt;Range&gt; Range::create(Document&amp; ownerDocument, const VisiblePosition&amp; visibleStart, const VisiblePosition&amp; visibleEnd)
</span></span></pre></div>
<a id="trunkSourceWebCoredomScriptExecutionContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ScriptExecutionContext.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ScriptExecutionContext.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/dom/ScriptExecutionContext.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -378,8 +378,8 @@
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>-    if (target == target-&gt;toDOMWindow() &amp;&amp; isDocument()) {
-        Settings* settings = toDocument(this)-&gt;settings();
</del><ins>+    if (target == target-&gt;toDOMWindow() &amp;&amp; is&lt;Document&gt;(*this)) {
+        Settings* settings = downcast&lt;Document&gt;(*this).settings();
</ins><span class="cx">         if (settings &amp;&amp; !settings-&gt;shouldDispatchJavaScriptWindowOnErrorEvents())
</span><span class="cx">             return false;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoredomTextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Text.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Text.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/dom/Text.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx"> 
</span><span class="cx"> PassRefPtr&lt;Text&gt; Text::create(ScriptExecutionContext&amp; context, const String&amp; data)
</span><span class="cx"> {
</span><del>-    return adoptRef(new Text(toDocument(context), data, CreateText));
</del><ins>+    return adoptRef(new Text(downcast&lt;Document&gt;(context), data, CreateText));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> PassRefPtr&lt;Text&gt; Text::createEditingText(Document&amp; document, const String&amp; data)
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingMarkupAccumulatorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/MarkupAccumulator.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/MarkupAccumulator.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/editing/MarkupAccumulator.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -559,7 +559,7 @@
</span><span class="cx">         appendComment(result, downcast&lt;Comment&gt;(node).data());
</span><span class="cx">         break;
</span><span class="cx">     case Node::DOCUMENT_NODE:
</span><del>-        appendXMLDeclaration(result, toDocument(node));
</del><ins>+        appendXMLDeclaration(result, downcast&lt;Document&gt;(node));
</ins><span class="cx">         break;
</span><span class="cx">     case Node::DOCUMENT_FRAGMENT_NODE:
</span><span class="cx">         break;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLDocumenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLDocument.h (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLDocument.h        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/html/HTMLDocument.h        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -99,7 +99,7 @@
</span><span class="cx"> 
</span><span class="cx"> SPECIALIZE_TYPE_TRAITS_BEGIN(HTMLDocument)
</span><span class="cx">     static bool isHTMLDocument(const Document&amp; document) { return document.isHTMLDocument(); }
</span><del>-    static bool isHTMLDocument(const Node&amp; node) { return node.isDocumentNode() &amp;&amp; isHTMLDocument(toDocument(node)); }
</del><ins>+    static bool isHTMLDocument(const Node&amp; node) { return is&lt;Document&gt;(node) &amp;&amp; isHTMLDocument(downcast&lt;Document&gt;(node)); }
</ins><span class="cx"> SPECIALIZE_TYPE_TRAITS_END()
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLNameCollectionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLNameCollection.h (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLNameCollection.h        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/html/HTMLNameCollection.h        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -35,7 +35,7 @@
</span><span class="cx"> public:
</span><span class="cx">     ~HTMLNameCollection();
</span><span class="cx"> 
</span><del>-    Document&amp; document() { return toDocument(ownerNode()); }
</del><ins>+    Document&amp; document() { return downcast&lt;Document&gt;(ownerNode()); }
</ins><span class="cx"> 
</span><span class="cx"> protected:
</span><span class="cx">     HTMLNameCollection(Document&amp;, CollectionType, const AtomicString&amp; name);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlImageDocumenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/ImageDocument.h (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/ImageDocument.h        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/html/ImageDocument.h        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -84,7 +84,7 @@
</span><span class="cx"> 
</span><span class="cx"> SPECIALIZE_TYPE_TRAITS_BEGIN(ImageDocument)
</span><span class="cx">     static bool isImageDocument(const Document&amp; document) { return document.isImageDocument(); }
</span><del>-    static bool isImageDocument(const Node&amp; node) { return node.isDocumentNode() &amp;&amp; isImageDocument(toDocument(node)); }
</del><ins>+    static bool isImageDocument(const Node&amp; node) { return is&lt;Document&gt;(node) &amp;&amp; isImageDocument(downcast&lt;Document&gt;(node)); }
</ins><span class="cx"> SPECIALIZE_TYPE_TRAITS_END()
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlMediaDocumenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/MediaDocument.h (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/MediaDocument.h        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/html/MediaDocument.h        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx"> 
</span><span class="cx"> SPECIALIZE_TYPE_TRAITS_BEGIN(MediaDocument)
</span><span class="cx">     static bool isMediaDocument(const Document&amp; document) { return document.isMediaDocument(); }
</span><del>-    static bool isMediaDocument(const Node&amp; node) { return node.isDocumentNode() &amp;&amp; isMediaDocument(toDocument(node)); }
</del><ins>+    static bool isMediaDocument(const Node&amp; node) { return is&lt;Document&gt;(node) &amp;&amp; isMediaDocument(downcast&lt;Document&gt;(node)); }
</ins><span class="cx"> SPECIALIZE_TYPE_TRAITS_END()
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlPluginDocumenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/PluginDocument.h (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/PluginDocument.h        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/html/PluginDocument.h        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -63,7 +63,7 @@
</span><span class="cx"> 
</span><span class="cx"> SPECIALIZE_TYPE_TRAITS_BEGIN(PluginDocument)
</span><span class="cx">     static bool isPluginDocument(const Document&amp; document) { return document.isPluginDocument(); }
</span><del>-    static bool isPluginDocument(const Node&amp; node) { return node.isDocumentNode() &amp;&amp; isPluginDocument(toDocument(node)); }
</del><ins>+    static bool isPluginDocument(const Node&amp; node) { return is&lt;Document&gt;(node) &amp;&amp; isPluginDocument(downcast&lt;Document&gt;(node)); }
</ins><span class="cx"> SPECIALIZE_TYPE_TRAITS_END()
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmltrackTextTrackCueh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/track/TextTrackCue.h (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/track/TextTrackCue.h        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/html/track/TextTrackCue.h        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -120,7 +120,7 @@
</span><span class="cx"> protected:
</span><span class="cx">     TextTrackCue(ScriptExecutionContext&amp;, const MediaTime&amp; start, const MediaTime&amp; end);
</span><span class="cx"> 
</span><del>-    Document&amp; ownerDocument() { return toDocument(m_scriptExecutionContext); }
</del><ins>+    Document&amp; ownerDocument() { return downcast&lt;Document&gt;(m_scriptExecutionContext); }
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmltrackVTTCuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/track/VTTCue.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/track/VTTCue.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/html/track/VTTCue.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -288,8 +288,8 @@
</span><span class="cx">     m_writingDirection = Horizontal;
</span><span class="cx">     m_cueAlignment = Middle;
</span><span class="cx">     m_webVTTNodeTree = nullptr;
</span><del>-    m_cueBackdropBox = HTMLDivElement::create(toDocument(context));
-    m_cueHighlightBox = HTMLSpanElement::create(spanTag, toDocument(context));
</del><ins>+    m_cueBackdropBox = HTMLDivElement::create(downcast&lt;Document&gt;(context));
+    m_cueHighlightBox = HTMLSpanElement::create(spanTag, downcast&lt;Document&gt;(context));
</ins><span class="cx">     m_displayDirection = CSSValueLtr;
</span><span class="cx">     m_displaySize = 0;
</span><span class="cx">     m_snapToLines = true;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmltrackVTTRegionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/track/VTTRegion.h (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/track/VTTRegion.h        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/html/track/VTTRegion.h        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -98,7 +98,7 @@
</span><span class="cx"> private:
</span><span class="cx">     VTTRegion(ScriptExecutionContext&amp;);
</span><span class="cx"> 
</span><del>-    Document* ownerDocument() { return toDocument(m_scriptExecutionContext); }
</del><ins>+    Document* ownerDocument() { return downcast&lt;Document&gt;(m_scriptExecutionContext); }
</ins><span class="cx"> 
</span><span class="cx">     void prepareRegionDisplayTree();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorDOMAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -379,11 +379,11 @@
</span><span class="cx">     Node* node = assertNode(errorString, nodeId);
</span><span class="cx">     if (!node)
</span><span class="cx">         return nullptr;
</span><del>-    if (!node-&gt;isDocumentNode()) {
</del><ins>+    if (!is&lt;Document&gt;(node)) {
</ins><span class="cx">         *errorString = &quot;Document is not available&quot;;
</span><span class="cx">         return nullptr;
</span><span class="cx">     }
</span><del>-    return toDocument(node);
</del><ins>+    return downcast&lt;Document&gt;(node);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Element* InspectorDOMAgent::assertElement(ErrorString* errorString, int nodeId)
</span><span class="lines">@@ -1301,11 +1301,11 @@
</span><span class="cx">             value-&gt;setTemplateContent(buildObjectForNode(downcast&lt;HTMLTemplateElement&gt;(*element).content(), 0, nodesMap));
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    } else if (node-&gt;isDocumentNode()) {
-        Document* document = toDocument(node);
-        value-&gt;setDocumentURL(documentURLString(document));
-        value-&gt;setBaseURL(documentBaseURLString(document));
-        value-&gt;setXmlVersion(document-&gt;xmlVersion());
</del><ins>+    } else if (is&lt;Document&gt;(node)) {
+        Document&amp; document = downcast&lt;Document&gt;(*node);
+        value-&gt;setDocumentURL(documentURLString(&amp;document));
+        value-&gt;setBaseURL(documentBaseURLString(&amp;document));
+        value-&gt;setXmlVersion(document.xmlVersion());
</ins><span class="cx">     } else if (is&lt;DocumentType&gt;(node)) {
</span><span class="cx">         DocumentType&amp; docType = downcast&lt;DocumentType&gt;(*node);
</span><span class="cx">         value-&gt;setPublicId(docType.publicId());
</span><span class="lines">@@ -1728,10 +1728,8 @@
</span><span class="cx"> 
</span><span class="cx"> Node* InspectorDOMAgent::innerParentNode(Node* node)
</span><span class="cx"> {
</span><del>-    if (node-&gt;isDocumentNode()) {
-        Document* document = toDocument(node);
-        return document-&gt;ownerElement();
-    }
</del><ins>+    if (is&lt;Document&gt;(node))
+        return downcast&lt;Document&gt;(*node).ownerElement();
</ins><span class="cx">     return node-&gt;parentNode();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorInstrumentationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -100,8 +100,8 @@
</span><span class="cx"> static Frame* frameForScriptExecutionContext(ScriptExecutionContext* context)
</span><span class="cx"> {
</span><span class="cx">     Frame* frame = nullptr;
</span><del>-    if (context-&gt;isDocument())
-        frame = toDocument(context)-&gt;frame();
</del><ins>+    if (is&lt;Document&gt;(context))
+        frame = downcast&lt;Document&gt;(context)-&gt;frame();
</ins><span class="cx">     return frame;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorInstrumentationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorInstrumentation.h (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorInstrumentation.h        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/inspector/InspectorInstrumentation.h        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -2062,8 +2062,8 @@
</span><span class="cx"> {
</span><span class="cx">     if (!context)
</span><span class="cx">         return nullptr;
</span><del>-    if (context-&gt;isDocument())
-        return instrumentingAgentsForPage(toDocument(context)-&gt;page());
</del><ins>+    if (is&lt;Document&gt;(context))
+        return instrumentingAgentsForPage(downcast&lt;Document&gt;(context)-&gt;page());
</ins><span class="cx">     return instrumentingAgentsForNonDocumentContext(context);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderTextTrackLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/TextTrackLoader.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/TextTrackLoader.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/loader/TextTrackLoader.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -117,7 +117,7 @@
</span><span class="cx"> void TextTrackLoader::corsPolicyPreventedLoad()
</span><span class="cx"> {
</span><span class="cx">     DEPRECATED_DEFINE_STATIC_LOCAL(String, consoleMessage, (ASCIILiteral(&quot;Cross-origin text track load denied by Cross-Origin Resource Sharing policy.&quot;)));
</span><del>-    Document* document = toDocument(m_scriptExecutionContext);
</del><ins>+    Document* document = downcast&lt;Document&gt;(m_scriptExecutionContext);
</ins><span class="cx">     document-&gt;addConsoleMessage(MessageSource::Security, MessageLevel::Error, consoleMessage);
</span><span class="cx">     m_state = Failed;
</span><span class="cx"> }
</span><span class="lines">@@ -126,7 +126,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_resource == resource);
</span><span class="cx"> 
</span><del>-    Document* document = toDocument(m_scriptExecutionContext);
</del><ins>+    Document* document = downcast&lt;Document&gt;(m_scriptExecutionContext);
</ins><span class="cx">     if (!m_crossOriginMode.isNull()
</span><span class="cx">         &amp;&amp; !document-&gt;securityOrigin()-&gt;canRequest(resource-&gt;response().url())
</span><span class="cx">         &amp;&amp; !resource-&gt;passesAccessControlCheck(document-&gt;securityOrigin())) {
</span><span class="lines">@@ -155,8 +155,8 @@
</span><span class="cx"> {
</span><span class="cx">     cancelLoad();
</span><span class="cx"> 
</span><del>-    ASSERT(m_scriptExecutionContext-&gt;isDocument());
-    Document* document = toDocument(m_scriptExecutionContext);
</del><ins>+    ASSERT(is&lt;Document&gt;(m_scriptExecutionContext));
+    Document* document = downcast&lt;Document&gt;(m_scriptExecutionContext);
</ins><span class="cx">     CachedResourceRequest cueRequest(ResourceRequest(document-&gt;completeURL(url)));
</span><span class="cx"> 
</span><span class="cx">     if (!crossOriginMode.isNull()) {
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderThreadableLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/ThreadableLoader.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/ThreadableLoader.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/loader/ThreadableLoader.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -59,7 +59,7 @@
</span><span class="cx">     if (context-&gt;isWorkerGlobalScope())
</span><span class="cx">         return WorkerThreadableLoader::create(toWorkerGlobalScope(context), client, WorkerRunLoop::defaultMode(), request, options);
</span><span class="cx"> 
</span><del>-    return DocumentThreadableLoader::create(toDocument(*context), *client, request, options);
</del><ins>+    return DocumentThreadableLoader::create(downcast&lt;Document&gt;(*context), *client, request, options);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ThreadableLoader::loadResourceSynchronously(ScriptExecutionContext* context, const ResourceRequest&amp; request, ThreadableLoaderClient&amp; client, const ThreadableLoaderOptions&amp; options)
</span><span class="lines">@@ -71,7 +71,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    DocumentThreadableLoader::loadResourceSynchronously(*toDocument(context), request, client, options);
</del><ins>+    DocumentThreadableLoader::loadResourceSynchronously(*downcast&lt;Document&gt;(context), request, client, options);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderWorkerThreadableLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/WorkerThreadableLoader.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/WorkerThreadableLoader.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/loader/WorkerThreadableLoader.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -101,14 +101,14 @@
</span><span class="cx"> void WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader(ScriptExecutionContext&amp; context, MainThreadBridge* thisPtr, PassOwnPtr&lt;CrossThreadResourceRequestData&gt; requestData, ThreadableLoaderOptions options, const String&amp; outgoingReferrer)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span><del>-    Document* document = toDocument(&amp;context);
</del><ins>+    Document&amp; document = downcast&lt;Document&gt;(context);
</ins><span class="cx"> 
</span><span class="cx">     OwnPtr&lt;ResourceRequest&gt; request(ResourceRequest::adopt(requestData));
</span><span class="cx">     request-&gt;setHTTPReferrer(outgoingReferrer);
</span><span class="cx">     // FIXME: If the a site requests a local resource, then this will return a non-zero value but the sync path
</span><span class="cx">     // will return a 0 value.  Either this should return 0 or the other code path should do a callback with
</span><span class="cx">     // a failure.
</span><del>-    thisPtr-&gt;m_mainThreadLoader = DocumentThreadableLoader::create(*document, *thisPtr, *request, options);
</del><ins>+    thisPtr-&gt;m_mainThreadLoader = DocumentThreadableLoader::create(document, *thisPtr, *request, options);
</ins><span class="cx">     ASSERT(thisPtr-&gt;m_mainThreadLoader);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageContentSecurityPolicycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/ContentSecurityPolicy.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/ContentSecurityPolicy.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/page/ContentSecurityPolicy.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -1577,20 +1577,20 @@
</span><span class="cx">     m_scriptExecutionContext-&gt;enforceSandboxFlags(mask);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static String stripURLForUseInReport(Document* document, const URL&amp; url)
</del><ins>+static String stripURLForUseInReport(Document&amp; document, const URL&amp; url)
</ins><span class="cx"> {
</span><span class="cx">     if (!url.isValid())
</span><span class="cx">         return String();
</span><span class="cx">     if (!url.isHierarchical() || url.protocolIs(&quot;file&quot;))
</span><span class="cx">         return url.protocol();
</span><del>-    return document-&gt;securityOrigin()-&gt;canRequest(url) ? url.strippedForUseAsReferrer() : SecurityOrigin::create(url)-&gt;toString();
</del><ins>+    return document.securityOrigin()-&gt;canRequest(url) ? url.strippedForUseAsReferrer() : SecurityOrigin::create(url)-&gt;toString();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSP_NEXT)
</span><del>-static void gatherSecurityPolicyViolationEventData(SecurityPolicyViolationEventInit&amp; init, Document* document, const String&amp; directiveText, const String&amp; effectiveDirective, const URL&amp; blockedURL, const String&amp; header)
</del><ins>+static void gatherSecurityPolicyViolationEventData(SecurityPolicyViolationEventInit&amp; init, Document&amp; document, const String&amp; directiveText, const String&amp; effectiveDirective, const URL&amp; blockedURL, const String&amp; header)
</ins><span class="cx"> {
</span><del>-    init.documentURI = document-&gt;url().string();
-    init.referrer = document-&gt;referrer();
</del><ins>+    init.documentURI = document.url().string();
+    init.referrer = document.referrer();
</ins><span class="cx">     init.blockedURI = stripURLForUseInReport(document, blockedURL);
</span><span class="cx">     init.violatedDirective = directiveText;
</span><span class="cx">     init.effectiveDirective = effectiveDirective;
</span><span class="lines">@@ -1613,11 +1613,11 @@
</span><span class="cx">     logToConsole(consoleMessage, contextURL, contextLine, state);
</span><span class="cx"> 
</span><span class="cx">     // FIXME: Support sending reports from worker.
</span><del>-    if (!m_scriptExecutionContext-&gt;isDocument())
</del><ins>+    if (!is&lt;Document&gt;(*m_scriptExecutionContext))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    Document* document = toDocument(m_scriptExecutionContext);
-    Frame* frame = document-&gt;frame();
</del><ins>+    Document&amp; document = downcast&lt;Document&gt;(*m_scriptExecutionContext);
+    Frame* frame = document.frame();
</ins><span class="cx">     if (!frame)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="lines">@@ -1626,7 +1626,7 @@
</span><span class="cx">         // FIXME: This code means that we're gathering information like line numbers twice. Once we can bring this out from behind the flag, we should reuse the data gathered here when generating the JSON report below.
</span><span class="cx">         SecurityPolicyViolationEventInit init;
</span><span class="cx">         gatherSecurityPolicyViolationEventData(init, document, directiveText, effectiveDirective, blockedURL, header);
</span><del>-        document-&gt;enqueueDocumentEvent(SecurityPolicyViolationEvent::create(eventNames().securitypolicyviolationEvent, init));
</del><ins>+        document.enqueueDocumentEvent(SecurityPolicyViolationEvent::create(eventNames().securitypolicyviolationEvent, init));
</ins><span class="cx">     }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="lines">@@ -1644,8 +1644,8 @@
</span><span class="cx">     // harmless information.
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;InspectorObject&gt; cspReport = InspectorObject::create();
</span><del>-    cspReport-&gt;setString(ASCIILiteral(&quot;document-uri&quot;), document-&gt;url().strippedForUseAsReferrer());
-    cspReport-&gt;setString(ASCIILiteral(&quot;referrer&quot;), document-&gt;referrer());
</del><ins>+    cspReport-&gt;setString(ASCIILiteral(&quot;document-uri&quot;), document.url().strippedForUseAsReferrer());
+    cspReport-&gt;setString(ASCIILiteral(&quot;referrer&quot;), document.referrer());
</ins><span class="cx">     cspReport-&gt;setString(ASCIILiteral(&quot;violated-directive&quot;), directiveText);
</span><span class="cx"> #if ENABLE(CSP_NEXT)
</span><span class="cx">     if (experimentalFeaturesEnabled())
</span></span></pre></div>
<a id="trunkSourceWebCorepageCryptocpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Crypto.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Crypto.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/page/Crypto.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -59,7 +59,7 @@
</span><span class="cx"> 
</span><span class="cx"> Document* Crypto::document() const
</span><span class="cx"> {
</span><del>-    return toDocument(scriptExecutionContext());
</del><ins>+    return downcast&lt;Document&gt;(scriptExecutionContext());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Crypto::getRandomValues(ArrayBufferView* array, ExceptionCode&amp; ec)
</span></span></pre></div>
<a id="trunkSourceWebCorepageDOMTimercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DOMTimer.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DOMTimer.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/page/DOMTimer.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -120,8 +120,8 @@
</span><span class="cx">     // is destroyed, or if explicitly cancelled by removeById. 
</span><span class="cx">     DOMTimer* timer = new DOMTimer(context, WTF::move(action), timeout, singleShot);
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>-    if (context-&gt;isDocument()) {
-        Document&amp; document = toDocument(*context);
</del><ins>+    if (is&lt;Document&gt;(context)) {
+        Document&amp; document = downcast&lt;Document&gt;(*context);
</ins><span class="cx">         bool didDeferTimeout = document.frame() &amp;&amp; document.frame()-&gt;timersPaused();
</span><span class="cx">         if (!didDeferTimeout &amp;&amp; timeout &lt;= 100 &amp;&amp; singleShot) {
</span><span class="cx">             WKSetObservedContentChange(WKContentIndeterminateChange);
</span><span class="lines">@@ -173,8 +173,8 @@
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     Document* document = nullptr;
</span><del>-    if (context-&gt;isDocument()) {
-        document = toDocument(context);
</del><ins>+    if (is&lt;Document&gt;(context)) {
+        document = downcast&lt;Document&gt;(context);
</ins><span class="cx">         ASSERT(!document-&gt;frame()-&gt;timersPaused());
</span><span class="cx">     }
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCorepageDOMWindowcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DOMWindow.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DOMWindow.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/page/DOMWindow.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -973,8 +973,8 @@
</span><span class="cx">     bool allowFocus = WindowFocusAllowedIndicator::windowFocusAllowed() || !m_frame-&gt;settings().windowFocusRestricted();
</span><span class="cx">     if (context) {
</span><span class="cx">         ASSERT(isMainThread());
</span><del>-        Document* activeDocument = toDocument(context);
-        if (opener() &amp;&amp; opener() != this &amp;&amp; activeDocument-&gt;domWindow() == opener())
</del><ins>+        Document&amp; activeDocument = downcast&lt;Document&gt;(*context);
+        if (opener() &amp;&amp; opener() != this &amp;&amp; activeDocument.domWindow() == opener())
</ins><span class="cx">             allowFocus = true;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -1025,12 +1025,8 @@
</span><span class="cx"> 
</span><span class="cx">     if (context) {
</span><span class="cx">         ASSERT(isMainThread());
</span><del>-        Document* activeDocument = toDocument(context);
-        if (!activeDocument)
</del><ins>+        if (!downcast&lt;Document&gt;(*context).canNavigate(m_frame))
</ins><span class="cx">             return;
</span><del>-
-        if (!activeDocument-&gt;canNavigate(m_frame))
-            return;
</del><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     bool allowScriptsToCloseWindows = m_frame-&gt;settings().allowScriptsToCloseWindows();
</span><span class="lines">@@ -1413,24 +1409,24 @@
</span><span class="cx"> Document* DOMWindow::document() const
</span><span class="cx"> {
</span><span class="cx">     ScriptExecutionContext* context = ContextDestructionObserver::scriptExecutionContext();
</span><del>-    return toDocument(context);
</del><ins>+    return downcast&lt;Document&gt;(context);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> PassRefPtr&lt;StyleMedia&gt; DOMWindow::styleMedia() const
</span><span class="cx"> {
</span><span class="cx">     if (!isCurrentlyDisplayedInFrame())
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx">     if (!m_media)
</span><span class="cx">         m_media = StyleMedia::create(m_frame);
</span><span class="cx">     return m_media.get();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;CSSStyleDeclaration&gt; DOMWindow::getComputedStyle(Element* elt, const String&amp; pseudoElt) const
</del><ins>+PassRefPtr&lt;CSSStyleDeclaration&gt; DOMWindow::getComputedStyle(Element* element, const String&amp; pseudoElt) const
</ins><span class="cx"> {
</span><del>-    if (!elt)
-        return 0;
</del><ins>+    if (!element)
+        return nullptr;
</ins><span class="cx"> 
</span><del>-    return CSSComputedStyleDeclaration::create(elt, false, pseudoElt);
</del><ins>+    return CSSComputedStyleDeclaration::create(element, false, pseudoElt);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> PassRefPtr&lt;CSSRuleList&gt; DOMWindow::getMatchedCSSRules(Element* element, const String&amp; pseudoElement, bool authorOnly) const
</span></span></pre></div>
<a id="trunkSourceWebCorepageDragControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DragController.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DragController.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/page/DragController.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -192,10 +192,10 @@
</span><span class="cx">         m_page.mainFrame().eventHandler().cancelDragAndDrop(createMouseEvent(dragData), dataTransfer.get());
</span><span class="cx">         dataTransfer-&gt;setAccessPolicy(DataTransferAccessPolicy::Numb); // Invalidate dataTransfer here for security.
</span><span class="cx">     }
</span><del>-    mouseMovedIntoDocument(0);
</del><ins>+    mouseMovedIntoDocument(nullptr);
</ins><span class="cx">     if (m_fileInputElementUnderMouse)
</span><span class="cx">         m_fileInputElementUnderMouse-&gt;setCanReceiveDroppedFiles(false);
</span><del>-    m_fileInputElementUnderMouse = 0;
</del><ins>+    m_fileInputElementUnderMouse = nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> DragOperation DragController::dragUpdated(DragData&amp; dragData)
</span><span class="lines">@@ -255,7 +255,7 @@
</span><span class="cx"> 
</span><span class="cx">     m_dragDestinationAction = m_client.actionMaskForDrag(dragData);
</span><span class="cx">     if (m_dragDestinationAction == DragDestinationActionNone) {
</span><del>-        cancelDrag(); // FIXME: Why not call mouseMovedIntoDocument(0)?
</del><ins>+        cancelDrag(); // FIXME: Why not call mouseMovedIntoDocument(nullptr)?
</ins><span class="cx">         return DragOperationNone;
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageEventSourcecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/EventSource.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/EventSource.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/page/EventSource.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -77,25 +77,25 @@
</span><span class="cx"> {
</span><span class="cx">     if (url.isEmpty()) {
</span><span class="cx">         ec = SYNTAX_ERR;
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     URL fullURL = context.completeURL(url);
</span><span class="cx">     if (!fullURL.isValid()) {
</span><span class="cx">         ec = SYNTAX_ERR;
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // FIXME: Convert this to check the isolated world's Content Security Policy once webkit.org/b/104520 is solved.
</span><span class="cx">     bool shouldBypassMainWorldContentSecurityPolicy = false;
</span><del>-    if (context.isDocument()) {
-        Document&amp; document = toDocument(context);
</del><ins>+    if (is&lt;Document&gt;(context)) {
+        Document&amp; document = downcast&lt;Document&gt;(context);
</ins><span class="cx">         shouldBypassMainWorldContentSecurityPolicy = document.frame()-&gt;script().shouldBypassMainWorldContentSecurityPolicy();
</span><span class="cx">     }
</span><span class="cx">     if (!shouldBypassMainWorldContentSecurityPolicy &amp;&amp; !context.contentSecurityPolicy()-&gt;allowConnectToSource(fullURL)) {
</span><span class="cx">         // FIXME: Should this be throwing an exception?
</span><span class="cx">         ec = SECURITY_ERR;
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;EventSource&gt; source = adoptRef(new EventSource(context, fullURL, eventSourceInit));
</span></span></pre></div>
<a id="trunkSourceWebCorepageFocusControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/FocusController.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/FocusController.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/page/FocusController.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -876,8 +876,8 @@
</span><span class="cx">     Element* focusedElement = focusedDocument-&gt;focusedElement();
</span><span class="cx">     Node* container = focusedDocument;
</span><span class="cx"> 
</span><del>-    if (container-&gt;isDocumentNode())
-        toDocument(container)-&gt;updateLayoutIgnorePendingStylesheets();
</del><ins>+    if (is&lt;Document&gt;(container))
+        downcast&lt;Document&gt;(*container).updateLayoutIgnorePendingStylesheets();
</ins><span class="cx"> 
</span><span class="cx">     // Figure out the starting rect.
</span><span class="cx">     LayoutRect startingRect;
</span><span class="lines">@@ -900,8 +900,8 @@
</span><span class="cx">         consumed = advanceFocusDirectionallyInContainer(container, startingRect, direction, event);
</span><span class="cx">         startingRect = nodeRectInAbsoluteCoordinates(container, true /* ignore border */);
</span><span class="cx">         container = scrollableEnclosingBoxOrParentFrameForNodeInDirection(direction, container);
</span><del>-        if (container &amp;&amp; container-&gt;isDocumentNode())
-            toDocument(container)-&gt;updateLayoutIgnorePendingStylesheets();
</del><ins>+        if (container &amp;&amp; is&lt;Document&gt;(container))
+            downcast&lt;Document&gt;(*container).updateLayoutIgnorePendingStylesheets();
</ins><span class="cx">     } while (!consumed &amp;&amp; container);
</span><span class="cx"> 
</span><span class="cx">     return consumed;
</span></span></pre></div>
<a id="trunkSourceWebCorepageHistorycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/History.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/History.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/page/History.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -117,7 +117,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     ASSERT(isMainThread());
</span><del>-    Document* activeDocument = toDocument(context);
</del><ins>+    Document* activeDocument = downcast&lt;Document&gt;(context);
</ins><span class="cx">     if (!activeDocument)
</span><span class="cx">         return;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageSpatialNavigationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/SpatialNavigation.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/SpatialNavigation.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/page/SpatialNavigation.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -366,8 +366,8 @@
</span><span class="cx"> bool scrollInDirection(Node* container, FocusDirection direction)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(container);
</span><del>-    if (container-&gt;isDocumentNode())
-        return scrollInDirection(toDocument(container)-&gt;frame(), direction);
</del><ins>+    if (is&lt;Document&gt;(container))
+        return scrollInDirection(downcast&lt;Document&gt;(*container).frame(), direction);
</ins><span class="cx"> 
</span><span class="cx">     if (!container-&gt;renderBox())
</span><span class="cx">         return false;
</span><span class="lines">@@ -435,11 +435,11 @@
</span><span class="cx">     ASSERT(node);
</span><span class="cx">     Node* parent = node;
</span><span class="cx">     do {
</span><del>-        if (parent-&gt;isDocumentNode())
-            parent = toDocument(parent)-&gt;document().frame()-&gt;ownerElement();
</del><ins>+        if (is&lt;Document&gt;(parent))
+            parent = downcast&lt;Document&gt;(*parent).document().frame()-&gt;ownerElement();
</ins><span class="cx">         else
</span><span class="cx">             parent = parent-&gt;parentNode();
</span><del>-    } while (parent &amp;&amp; !canScrollInDirection(parent, direction) &amp;&amp; !parent-&gt;isDocumentNode());
</del><ins>+    } while (parent &amp;&amp; !canScrollInDirection(parent, direction) &amp;&amp; !is&lt;Document&gt;(parent));
</ins><span class="cx"> 
</span><span class="cx">     return parent;
</span><span class="cx"> }
</span><span class="lines">@@ -451,8 +451,8 @@
</span><span class="cx">     if (is&lt;HTMLSelectElement&gt;(container))
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    if (container-&gt;isDocumentNode())
-        return canScrollInDirection(toDocument(container)-&gt;frame(), direction);
</del><ins>+    if (is&lt;Document&gt;(container))
+        return canScrollInDirection(downcast&lt;Document&gt;(*container).frame(), direction);
</ins><span class="cx"> 
</span><span class="cx">     if (!isScrollableNode(container))
</span><span class="cx">         return false;
</span><span class="lines">@@ -520,8 +520,8 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(node &amp;&amp; node-&gt;renderer() &amp;&amp; !node-&gt;document().view()-&gt;needsLayout());
</span><span class="cx"> 
</span><del>-    if (node-&gt;isDocumentNode())
-        return frameRectInAbsoluteCoordinates(toDocument(node)-&gt;frame());
</del><ins>+    if (is&lt;Document&gt;(node))
+        return frameRectInAbsoluteCoordinates(downcast&lt;Document&gt;(*node).frame());
</ins><span class="cx">     LayoutRect rect = rectToAbsoluteCoordinates(node-&gt;document().frame(), node-&gt;boundingBox());
</span><span class="cx"> 
</span><span class="cx">     // For authors that use border instead of outline in their CSS, we compensate by ignoring the border when calculating
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGDocumenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGDocument.h (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGDocument.h        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/svg/SVGDocument.h        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx"> 
</span><span class="cx"> SPECIALIZE_TYPE_TRAITS_BEGIN(SVGDocument)
</span><span class="cx">     static bool isSVGDocument(const Document&amp; document) { return document.isSVGDocument(); }
</span><del>-    static bool isSVGDocument(const Node&amp; node) { return node.isDocumentNode() &amp;&amp; isSVGDocument(toDocument(node)); }
</del><ins>+    static bool isSVGDocument(const Node&amp; node) { return is&lt;Document&gt;(node) &amp;&amp; isSVGDocument(downcast&lt;Document&gt;(node)); }
</ins><span class="cx"> SPECIALIZE_TYPE_TRAITS_END()
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/testing/Internals.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -319,13 +319,13 @@
</span><span class="cx"> 
</span><span class="cx"> Document* Internals::contextDocument() const
</span><span class="cx"> {
</span><del>-    return toDocument(scriptExecutionContext());
</del><ins>+    return downcast&lt;Document&gt;(scriptExecutionContext());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Frame* Internals::frame() const
</span><span class="cx"> {
</span><span class="cx">     if (!contextDocument())
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx">     return contextDocument()-&gt;frame();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1916,8 +1916,8 @@
</span><span class="cx">     Document* document;
</span><span class="cx">     if (!node)
</span><span class="cx">         document = contextDocument();
</span><del>-    else if (node-&gt;isDocumentNode())
-        document = toDocument(node);
</del><ins>+    else if (is&lt;Document&gt;(node))
+        document = downcast&lt;Document&gt;(node);
</ins><span class="cx">     else if (is&lt;HTMLIFrameElement&gt;(node))
</span><span class="cx">         document = downcast&lt;HTMLIFrameElement&gt;(*node).contentDocument();
</span><span class="cx">     else {
</span></span></pre></div>
<a id="trunkSourceWebCoretestingjsWebCoreTestSupportcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/js/WebCoreTestSupport.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/js/WebCoreTestSupport.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/testing/js/WebCoreTestSupport.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -46,8 +46,8 @@
</span><span class="cx">     JSLockHolder lock(exec);
</span><span class="cx">     JSDOMGlobalObject* globalObject = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject());
</span><span class="cx">     ScriptExecutionContext* scriptContext = globalObject-&gt;scriptExecutionContext();
</span><del>-    if (scriptContext-&gt;isDocument())
-        globalObject-&gt;putDirect(exec-&gt;vm(), Identifier(exec, Internals::internalsId), toJS(exec, globalObject, Internals::create(toDocument(scriptContext))));
</del><ins>+    if (is&lt;Document&gt;(scriptContext))
+        globalObject-&gt;putDirect(exec-&gt;vm(), Identifier(exec, Internals::internalsId), toJS(exec, globalObject, Internals::create(downcast&lt;Document&gt;(scriptContext))));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void resetInternalsObject(JSContextRef context)
</span><span class="lines">@@ -56,7 +56,7 @@
</span><span class="cx">     JSLockHolder lock(exec);
</span><span class="cx">     JSDOMGlobalObject* globalObject = jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;lexicalGlobalObject());
</span><span class="cx">     ScriptExecutionContext* scriptContext = globalObject-&gt;scriptExecutionContext();
</span><del>-    Page* page = toDocument(scriptContext)-&gt;frame()-&gt;page();
</del><ins>+    Page* page = downcast&lt;Document&gt;(scriptContext)-&gt;frame()-&gt;page();
</ins><span class="cx">     Internals::resetToConsistentState(page);
</span><span class="cx">     InternalSettings::from(page)-&gt;resetToConsistentState();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersDefaultSharedWorkerRepositorycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/DefaultSharedWorkerRepository.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/DefaultSharedWorkerRepository.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/workers/DefaultSharedWorkerRepository.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -228,7 +228,7 @@
</span><span class="cx">     ASSERT(context);
</span><span class="cx">     ASSERT(!isClosing());
</span><span class="cx">     MutexLocker lock(m_workerDocumentsLock);
</span><del>-    m_workerDocuments.add(toDocument(context));
</del><ins>+    m_workerDocuments.add(downcast&lt;Document&gt;(context));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void SharedWorkerProxy::documentDetached(Document* document)
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersWorkerMessagingProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/WorkerMessagingProxy.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/WorkerMessagingProxy.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/workers/WorkerMessagingProxy.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -83,11 +83,11 @@
</span><span class="cx"> {
</span><span class="cx">     // FIXME: This need to be revisited when we support nested worker one day
</span><span class="cx">     ASSERT(m_scriptExecutionContext);
</span><del>-    Document* document = toDocument(m_scriptExecutionContext);
-    GroupSettings* settings = 0;
-    if (document-&gt;page())
-        settings = &amp;document-&gt;page()-&gt;group().groupSettings();
-    RefPtr&lt;DedicatedWorkerThread&gt; thread = DedicatedWorkerThread::create(scriptURL, userAgent, settings, sourceCode, *this, *this, startMode, document-&gt;contentSecurityPolicy()-&gt;deprecatedHeader(), document-&gt;contentSecurityPolicy()-&gt;deprecatedHeaderType(), document-&gt;topOrigin());
</del><ins>+    Document&amp; document = downcast&lt;Document&gt;(*m_scriptExecutionContext);
+    GroupSettings* settings = nullptr;
+    if (document.page())
+        settings = &amp;document.page()-&gt;group().groupSettings();
+    RefPtr&lt;DedicatedWorkerThread&gt; thread = DedicatedWorkerThread::create(scriptURL, userAgent, settings, sourceCode, *this, *this, startMode, document.contentSecurityPolicy()-&gt;deprecatedHeader(), document.contentSecurityPolicy()-&gt;deprecatedHeaderType(), document.topOrigin());
</ins><span class="cx">     workerThreadCreated(thread);
</span><span class="cx">     thread-&gt;start();
</span><span class="cx">     InspectorInstrumentation::didStartWorkerGlobalScope(m_scriptExecutionContext.get(), this, scriptURL);
</span></span></pre></div>
<a id="trunkSourceWebCorexmlXMLHttpRequestcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/xml/XMLHttpRequest.cpp (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/xml/XMLHttpRequest.cpp        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebCore/xml/XMLHttpRequest.cpp        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -155,7 +155,7 @@
</span><span class="cx"> Document* XMLHttpRequest::document() const
</span><span class="cx"> {
</span><span class="cx">     ASSERT(scriptExecutionContext());
</span><del>-    return toDocument(scriptExecutionContext());
</del><ins>+    return downcast&lt;Document&gt;(scriptExecutionContext());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> SecurityOrigin* XMLHttpRequest::securityOrigin() const
</span><span class="lines">@@ -487,10 +487,10 @@
</span><span class="cx"> 
</span><span class="cx">     // FIXME: Convert this to check the isolated world's Content Security Policy once webkit.org/b/104520 is solved.
</span><span class="cx">     bool shouldBypassMainWorldContentSecurityPolicy = false;
</span><del>-    if (scriptExecutionContext()-&gt;isDocument()) {
-        Document* document = toDocument(scriptExecutionContext());
-        if (document-&gt;frame())
-            shouldBypassMainWorldContentSecurityPolicy = document-&gt;frame()-&gt;script().shouldBypassMainWorldContentSecurityPolicy();
</del><ins>+    if (is&lt;Document&gt;(scriptExecutionContext())) {
+        Document&amp; document = downcast&lt;Document&gt;(*scriptExecutionContext());
+        if (document.frame())
+            shouldBypassMainWorldContentSecurityPolicy = document.frame()-&gt;script().shouldBypassMainWorldContentSecurityPolicy();
</ins><span class="cx">     }
</span><span class="cx">     if (!shouldBypassMainWorldContentSecurityPolicy &amp;&amp; !scriptExecutionContext()-&gt;contentSecurityPolicy()-&gt;allowConnectToSource(url)) {
</span><span class="cx">         // FIXME: Should this be throwing an exception?
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebKit2/ChangeLog        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2014-09-29  Christophe Dumez  &lt;cdumez@apple.com&gt;
+
+        Use is&lt;&gt;() / downcast&lt;&gt;() for Document
+        https://bugs.webkit.org/show_bug.cgi?id=137221
+
+        Reviewed by Andreas Kling.
+
+        Use is&lt;&gt;() / downcast&lt;&gt;() for Document instead of isDocumentNode() /
+        toDocument().
+
+        * WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm:
+        (-[WKDOMDocument createElement:]):
+        (-[WKDOMDocument createTextNode:]):
+        (-[WKDOMDocument body]):
+
</ins><span class="cx"> 2014-09-29  Commit Queue  &lt;commit-queue@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Unreviewed, rolling out r174045.
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessInjectedBundleAPImacWKDOMDocumentmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm (174088 => 174089)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm        2014-09-29 22:14:13 UTC (rev 174088)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm        2014-09-29 22:23:20 UTC (rev 174089)
</span><span class="lines">@@ -39,17 +39,17 @@
</span><span class="cx"> {
</span><span class="cx">     // FIXME: Do something about the exception.
</span><span class="cx">     WebCore::ExceptionCode ec = 0;
</span><del>-    return WebKit::toWKDOMElement(toDocument(_impl.get())-&gt;createElement(tagName, ec).get());
</del><ins>+    return WebKit::toWKDOMElement(WebCore::downcast&lt;WebCore::Document&gt;(*_impl).createElement(tagName, ec).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (WKDOMText *)createTextNode:(NSString *)data
</span><span class="cx"> {
</span><del>-    return WebKit::toWKDOMText(toDocument(_impl.get())-&gt;createTextNode(data).get());
</del><ins>+    return WebKit::toWKDOMText(WebCore::downcast&lt;WebCore::Document&gt;(*_impl).createTextNode(data).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (WKDOMElement *)body
</span><span class="cx"> {
</span><del>-    return WebKit::toWKDOMElement(toDocument(_impl.get())-&gt;body());
</del><ins>+    return WebKit::toWKDOMElement(WebCore::downcast&lt;WebCore::Document&gt;(*_impl).body());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> @end
</span></span></pre>
</div>
</div>

</body>
</html>