<!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>[211033] 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/211033">211033</a></dd>
<dt>Author</dt> <dd>darin@apple.com</dd>
<dt>Date</dt> <dd>2017-01-22 22:24:18 -0800 (Sun, 22 Jan 2017)</dd>
</dl>

<h3>Log Message</h3>
<pre>Remove PassRefPtr from &quot;page&quot; directory of WebCore, also deploy references
https://bugs.webkit.org/show_bug.cgi?id=167224

Reviewed by Chris Dumez.

Source/WebCore:

* Modules/fetch/DOMWindowFetch.cpp:
(WebCore::DOMWindowFetch::fetch): Use DOMWindow::document instead of
scriptExecutionContext.

* Modules/webdatabase/DatabaseContext.cpp:
(WebCore::DatabaseContext::databaseExceededQuota): Pass a reference.

* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityShowContextMenu]):
Pass a reference.

* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::getOwnPropertySlot): Pass a reference.

* dom/Document.cpp:
(WebCore::Document::childrenChanged): Pass a reference. Also made the
didReceiveDocType code unconditional instead of iOS-only.
(WebCore::Document::platformSuspendOrStopActiveDOMObjects): Ditto.
(WebCore::Document::updateViewportArguments): Ditto.
(WebCore::Document::setFocusedElement): Ditto.
(WebCore::Document::createDOMWindow): Ditto.
(WebCore::Document::takeDOMWindowFrom): Ditto.
(WebCore::Document::requestFullScreenForElement): Ditto.
(WebCore::Document::webkitExitFullscreen): Ditto.
* dom/Element.cpp:
(WebCore::Element::focus): Ditto.
(WebCore::Element::blur): Ditto.
(WebCore::Element::dispatchFocusEvent): Ditto.
(WebCore::Element::dispatchBlurEvent): Ditto.
* dom/Node.cpp:
(WebCore::Node::defaultEventHandler): Ditto.
* editing/EditorCommand.cpp:
(WebCore::executePrint): Ditto.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::setFocusedElementIfNeeded): Ditto.
* history/CachedFrame.cpp:
(WebCore::CachedFrameBase::restore): Ditto.
(WebCore::CachedFrame::CachedFrame): Ditto.
* html/ColorInputType.cpp:
(WebCore::ColorInputType::handleDOMActivateEvent): Ditto.
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::isKeyboardFocusable): Ditto.

* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::isKeyboardFocusable): Pass a reference,
and also rewrote to use &amp;&amp; for clarity.

* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::supportsFullscreen): Pass a reference.
* html/shadow/SpinButtonElement.cpp:
(WebCore::SpinButtonElement::defaultEventHandler): Ditto.
(WebCore::SpinButtonElement::releaseCapture): Ditto.
* html/shadow/mac/ImageControlsButtonElementMac.cpp:
(WebCore::ImageControlsButtonElementMac::defaultEventHandler): Ditto.
* inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::showContextMenu): Ditto.
(WebCore::InspectorFrontendHost::dispatchEventAsContextMenuEvent): Ditto.

* loader/EmptyClients.cpp:
(WebCore::EmptyChromeClient::createPopupMenu): Updated to take reference.
(WebCore::EmptyChromeClient::createSearchPopupMenu): Ditto.
(WebCore::EmptyChromeClient::createColorChooser): Ditto.
* loader/EmptyClients.h: Ditto.

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::submitForm): Pass a reference.
(WebCore::FrameLoader::commitProvisionalLoad): Ditto.
(WebCore::FrameLoader::closeAndRemoveChild): Take a reference.
(WebCore::FrameLoader::detachFromParent): Pass a reference.
(WebCore::FrameLoader::dispatchBeforeUnloadEvent): Ditto.
(WebCore::createWindow): Ditto.
* loader/FrameLoader.h: Updated for the above.

* loader/PolicyChecker.cpp:
(WebCore::PolicyChecker::checkNewWindowPolicy): Pass a reference.
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::recalculateAvailableSpaceInQuota): Ditto.

* loader/appcache/ApplicationCacheGroup.h: Return a reference from origin.

* loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::calculateQuotaForOrigin): Take a reference.
(WebCore::ApplicationCacheStorage::calculateRemainingSizeForOriginExcludingCache):
Ditto.
(WebCore::ApplicationCacheStorage::store): Pass a reference.
(WebCore::ApplicationCacheStorage::checkOriginQuota): Updated since origin
now returns areference.
* loader/appcache/ApplicationCacheStorage.h: Updated for the above.

* loader/archive/mhtml/MHTMLArchive.cpp:
(WebCore::MHTMLArchive::generateMHTMLData): Pass a reference.
* mathml/MathMLElement.cpp:
(WebCore::MathMLElement::isKeyboardFocusable): Ditto.

* page/Chrome.cpp:
(WebCore::Chrome::Chrome): Moved initialization of data members to the
class definition.
(WebCore::Chrome::contentsSizeChanged): Take a reference.
(WebCore::Chrome::createWindow): Ditto.
(WebCore::Chrome::runBeforeUnloadConfirmPanel): Ditto.
(WebCore::Chrome::runJavaScriptAlert): Ditto.
(WebCore::Chrome::runJavaScriptConfirm): Ditto.
(WebCore::Chrome::runJavaScriptPrompt): Ditto.
(WebCore::Chrome::setStatusbarText): Ditto.
(WebCore::Chrome::print): Ditto.
(WebCore::Chrome::createColorChooser): Ditto.
(WebCore::Chrome::createPopupMenu): Ditto.
(WebCore::Chrome::createSearchPopupMenu): Ditto.
(WebCore::Chrome::didReceiveDocType): Ditto. Also made unconditional, but
empty for non-iOS platforms.
(WebCore::Chrome::registerPopupOpeningObserver): Take a reference.
(WebCore::Chrome::unregisterPopupOpeningObserver): Ditto.
* page/Chrome.h: Updated for the above.

* page/ChromeClient.h: Take references. Also updated some arguments from
Node to Element.

* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::handleContextMenuEvent): Take a reference.
(WebCore::ContextMenuController::showContextMenu): Ditto.
(WebCore::ContextMenuController::maybeCreateContextMenu): Ditto. Also use
make_unique instead of unique_ptr plus new.
(WebCore::openNewWindow): Ditto.
(WebCore::insertUnicodeCharacter): Ditto.
(WebCore::ContextMenuController::contextMenuItemSelected): Ditto.
(WebCore::ContextMenuController::showContextMenuAt): Ditto.
(WebCore::ContextMenuController::showImageControlsMenu): Ditto.
* page/ContextMenuController.h: Updated for the above.

* page/DOMTimer.cpp:
(WebCore::DOMTimer::fired): Pass a reference.

* page/DOMWindow.cpp:
(WebCore::PostMessageTimer::PostMessageTimer): Take Ref&amp;&amp; instead of
PassRefPtr.
(WebCore::DOMWindow::adjustWindowRect): Use a reference.
(WebCore::DOMWindow::allowPopUp): Ditto. Also rewrite to use || instead
of successive if statements.
(WebCore::DOMWindow::canShowModalDialog): Ditto.
(WebCore::DOMWindow::DOMWindow): Ditto.
(WebCore::DOMWindow::didSecureTransitionTo): Ditto.
(WebCore::DOMWindow::registerProperty): Ditto.
(WebCore::DOMWindow::unregisterProperty): Ditto.
(WebCore::DOMWindow::postMessageTimerFired): Merge with the function
immediately followed, called only from here.
(WebCore::DOMWindow::dispatchMessageEventWithOriginCheck): Deleted.
(WebCore::DOMWindow::print): Pass a reference.
(WebCore::DOMWindow::alert): Ditto.
(WebCore::DOMWindow::confirm): Ditto.
(WebCore::DOMWindow::prompt): Ditto.
(WebCore::DOMWindow::setStatus): Ditto.
(WebCore::DOMWindow::setDefaultStatus): Ditto.
(WebCore::DOMWindow::moveBy): Ditto.
(WebCore::DOMWindow::moveTo): Ditto.
(WebCore::DOMWindow::resizeBy): Ditto.
(WebCore::DOMWindow::resizeTo): Ditto.
(WebCore::DOMWindow::clearTimeout): Ditto.
(WebCore::DOMWindow::incrementScrollEventListenersCount): Ditto.
(WebCore::DOMWindow::decrementScrollEventListenersCount): Ditto.
(WebCore::DOMWindow::showModalDialog): Ditto.
* page/DOMWindow.h: Updated for the above. ALso made functions private
and final.

* page/DOMWindowProperty.cpp:
(WebCore::DOMWindowProperty::DOMWindowProperty): Pass a reference.
(WebCore::DOMWindowProperty::~DOMWindowProperty): Ditto.
(WebCore::DOMWindowProperty::willDestroyGlobalObjectInCachedFrame): Ditto.
(WebCore::DOMWindowProperty::willDestroyGlobalObjectInFrame): Ditto.

* page/DebugPageOverlays.cpp:
(WebCore::RegionOverlay::create): Return RefPtr instead of PassRefPtr.
(WebCore::RegionOverlay::~RegionOverlay): Pass a reference.
(WebCore::DebugPageOverlays::showRegionOverlay): Ditto.
(WebCore::DebugPageOverlays::hideRegionOverlay): Ditto.

* page/DragController.cpp:
(WebCore::DragController::dragExited): Pass a reference.
(WebCore::DragController::performDragOperation): Ditto.
(WebCore::DragController::concludeEditDrag): Ditto.
(WebCore::DragController::tryDHTMLDrag): Ditto.

* page/EventHandler.cpp: Replaced OptionalCursor with std::optional&lt;Cursor&gt;.
(WebCore::EventHandler::updateCursor): Refactor into two functions so we
can share more code with selectCursor.
(WebCore::EventHandler::selectCursor): Updated to use std::optional.
(WebCore::EventHandler::handleMouseMoveEvent): Use the new updateCursor.
(WebCore::EventHandler::startPanScrolling): Use a reference.
(WebCore::EventHandler::updateDragAndDrop): Ditto.
(WebCore::EventHandler::cancelDragAndDrop): Ditto.
(WebCore::EventHandler::performDragAndDrop): Ditto.
(WebCore::EventHandler::setCapturingMouseEventsElement): Take a raw pointer
instead of a PassRefPtr.
(WebCore::EventHandler::dispatchMouseEvent): Use a reference.
(WebCore::EventHandler::updateDragStateAfterEditDragIfNeeded): Ditto.
(WebCore::EventHandler::isKeyboardOptionTab): Ditto.
(WebCore::EventHandler::eventInvertsTabsToLinksClientCallResult): Ditto.
(WebCore::EventHandler::tabsToLinks): Ditto.
* page/EventHandler.h: Updated for the above.

* page/FocusController.cpp:
(WebCore::FocusController::setFocusedFrame): Take pointer instead
of PassRefPtr.
(WebCore::FocusController::setFocusedElement): Take reference instead of
PassRefPtr.
* page/FocusController.h: Updated for the above changes.

* page/FrameTree.cpp:
(WebCore::FrameTree::transferChild): Deleted. Unused function.
(WebCore::FrameTree::appendChild): Merged with the following function
since it's now only used here. Take reference instead of PassRefPtr.
(WebCore::FrameTree::actuallyAppendChild): Deleted.
(WebCore::FrameTree::removeChild): Take reference instead of pointer.
Use move instead of trickier swap.
* page/FrameTree.h: Updated for the above.

* page/FrameView.cpp:
(WebCore::FrameView::setContentsSize): Use a reference.
* page/MainFrame.cpp:
(WebCore::MainFrame::dropChildren): Ditto.
* page/Page.cpp:
(WebCore::Page::scrollingCoordinator): Ditto.
* page/PageOverlay.cpp:
(WebCore::PageOverlay::fadeAnimationTimerFired): Ditto.

* page/PageOverlayController.cpp:
(WebCore::PageOverlayController::installPageOverlay): Take reference
instead of PassRefPtr.
(WebCore::PageOverlayController::uninstallPageOverlay): Take reference
intead of pointer.
* page/PageOverlayController.h: Updated for the above.

* page/PageSerializer.cpp:
(WebCore::PageSerializer::PageSerializer): Moved most initialization to the
class definition.
(WebCore::PageSerializer::serialize): Use reference.
(WebCore::PageSerializer::serializeFrame): Use initializer list instead of
constructor for resource.
(WebCore::PageSerializer::serializeCSSStyleSheet): Ditto.
(WebCore::PageSerializer::addImageToResources): Ditto.
* page/PageSerializer.h: Removed constructors from PageSerializer::Resource
struct since structures don't really need them. Updated for the above.
Changed SerializerMarkupAccumulator into a nested class.

* page/PerformanceEntry.h:
(WebCore::PerformanceEntry::startTimeCompareLessThan): Use const RefPtr&amp;
instead of PassRefPtr to compare RefPtr in place.

* page/PerformanceUserTiming.cpp:
(WebCore::insertPerformanceEntry): Take Ref&amp;&amp; instead of PassRefPtr.

* page/ResourceUsageOverlay.cpp:
(WebCore::ResourceUsageOverlay::~ResourceUsageOverlay): Use refrence.
(WebCore::ResourceUsageOverlay::initialize): Ditto.

* page/animation/AnimationBase.h: Removed unneeded include.

* page/animation/AnimationController.cpp:
(WebCore::AnimationControllerPrivate::clear): Use reference.
(WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle): Ditto.
(WebCore::AnimationControllerPrivate::addEventToDispatch): Use the
append function instead of a hand-written alternative.
(WebCore::AnimationControllerPrivate::addElementChangeToDispatch):
Take a reference rather than a Ref&amp;&amp; since no caller is passing ownership.
* page/animation/AnimationControllerPrivate.h: Updated for the above.

* page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc): Return RefPtr instead of PassRefPtr.
(WebCore::blendFilter): Ditto.
(WebCore::crossfadeBlend): Ditto.

* page/animation/CompositeAnimation.cpp:
(WebCore::CompositeAnimation::updateTransitions): Updated to use
animationForProperty, which returns a raw pointer.
(WebCore::CompositeAnimation::animationForProperty): Renamed from
getAnimationForProperty and changed to return raw pointer instead
of PassRefPtr.
* page/animation/CompositeAnimation.h: Updated for the above.

* page/animation/ImplicitAnimation.cpp:
(WebCore::ImplicitAnimation::onAnimationEnd): Use animationForProperty.
(WebCore::ImplicitAnimation::sendTransitionEvent): Pass reference.
* page/animation/KeyframeAnimation.cpp:
(WebCore::KeyframeAnimation::sendAnimationEvent): Ditto.

* page/efl/EventHandlerEfl.cpp:
(WebCore::EventHandler::tabsToAllFormControls): Take reference.
(WebCore::EventHandler::createDraggingDataTransfer): Return Ref.
* page/gtk/EventHandlerGtk.cpp:
(WebCore::EventHandler::tabsToAllFormControls): Ditto.
(WebCore::EventHandler::createDraggingDataTransfer): Ditto.
* page/ios/EventHandlerIOS.mm:
(WebCore::EventHandler::tabsToAllFormControls): Ditto.
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::createDraggingDataTransfer): Ditto.
(WebCore::EventHandler::tabsToAllFormControls): Ditto.
(WebCore::EventHandler::platformPrepareForWheelEvents): Ditto.

* page/mac/ServicesOverlayController.h: Take Ref&amp;&amp; for ranges instead
of PassRefPtr. Use references.
* page/mac/ServicesOverlayController.mm:
(WebCore::ServicesOverlayController::Highlight::createForSelection): Ditto.
(WebCore::ServicesOverlayController::Highlight::createForTelephoneNumber): Ditto.
(WebCore::ServicesOverlayController::Highlight::Highlight): Ditto.
(WebCore::ServicesOverlayController::buildPotentialHighlightsIfNeeded): Ditto.
(WebCore::ServicesOverlayController::buildPhoneNumberHighlights): Ditto.
(WebCore::ServicesOverlayController::buildSelectionHighlight): Ditto.
(WebCore::ServicesOverlayController::highlightsAreEquivalent): Ditto.
(WebCore::ServicesOverlayController::findTelephoneNumberHighlightContainingSelectionHighlight): Ditto.
(WebCore::ServicesOverlayController::handleClick): Ditto.

* page/mac/TextIndicatorWindow.mm:
(-[WebTextIndicatorView initWithFrame:textIndicator:margin:offset:]):
Take a reference instead of PassRefPtr.
(WebCore::TextIndicatorWindow::setTextIndicator): Updated for the above.

* page/scrolling/AsyncScrollingCoordinator.h: Use Ref&amp;&amp; and RefPtr intead
of PsasRefPtr.

* page/scrolling/ScrollLatchingState.cpp:
(WebCore::ScrollLatchingState::ScrollLatchingState): Initialize data members
in class definition.
(WebCore::ScrollLatchingState::setWheelEventElement): Use raw pointer instead
of PassRefPtr.
(WebCore::ScrollLatchingState::setPreviousWheelScrolledElement): Use raw
pointer instead of RefPtr&amp;&amp;.
(WebCore::ScrollLatchingState::setScrollableContainer): Use raw pointer instead
of PassRefPtr.
* page/scrolling/ScrollLatchingState.h: Updated for the above.

* page/scrolling/ScrollingStateNode.cpp:
(WebCore::ScrollingStateNode::cloneAndReset): Use Ref instead of PassRefPtr.
(WebCore::ScrollingStateNode::appendChild): Use Ref&amp;&amp; instead of PassRefPtr.
* page/scrolling/ScrollingStateNode.h: Updated for the above.

* page/scrolling/ScrollingStateTree.cpp:
(WebCore::ScrollingStateTree::createNode): Use Ref instead of PassRefPtr.
(WebCore::ScrollingStateTree::attachNode): Updated for the abve.
(WebCore::ScrollingStateTree::commit): Ditto.
* page/scrolling/ScrollingStateTree.h: Ditto.

* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::updateTreeFromStateNode): Use reference.
* page/scrolling/ScrollingTree.h: Return Ref instead of PassRefPtr.

* page/scrolling/ScrollingTreeNode.cpp:
(WebCore::ScrollingTreeNode::appendChild): Take Ref&amp;&amp; instead of PassRefPtr.
(WebCore::ScrollingTreeNode::removeChild): Take reference instead of pointer.
* page/scrolling/ScrollingTreeNode.h: Updated for the above.

* page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::ThreadedScrollingTree): Take reference
instead of pointer.
* page/scrolling/ThreadedScrollingTree.h: Updated for the above.

* page/scrolling/ios/ScrollingCoordinatorIOS.mm:
(WebCore::ScrollingCoordinatorIOS::ScrollingCoordinatorIOS): Pass reference.

* page/scrolling/ios/ScrollingTreeIOS.cpp:
(WebCore::ScrollingTreeIOS::create): Take a reference.
(WebCore::ScrollingTreeIOS::ScrollingTreeIOS): Ditto.
(WebCore::ScrollingTreeIOS::createScrollingTreeNode): Return Ref instead of
PassRefPtr.
* page/scrolling/ios/ScrollingTreeIOS.h: Updated for the above.

* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::ScrollingCoordinatorMac): Use reference.

* page/scrolling/mac/ScrollingTreeMac.cpp:
(ScrollingTreeMac::create): Take a reference.
(ScrollingTreeMac::ScrollingTreeMac): Ditto.
(ScrollingTreeMac::createScrollingTreeNode): Return a Ref instead of a
PassRefPtr.
* page/scrolling/mac/ScrollingTreeMac.h: Updated for the above.

* page/win/EventHandlerWin.cpp:
(WebCore::EventHandler::tabsToAllFormControls): Take reference.
(WebCore::EventHandler::createDraggingDataTransfer): Return Ref.

* platform/Cursor.h: Rearranged the header a bit. Got rid of the explicit
copy constructor, assignment operator, and destructor. Using the ones
that the compiler automatically generates will work for all platforms and
we then also get move constructor and move assignment operator.

* platform/efl/CursorEfl.cpp:
(WebCore::Cursor::Cursor): Deleted.
(WebCore::Cursor::~Cursor): Deleted.
(WebCore::Cursor::operator=): Deleted.
* platform/gtk/CursorGtk.cpp:
(WebCore::Cursor::Cursor): Deleted.
(WebCore::Cursor::operator=): Deleted.
(WebCore::Cursor::~Cursor): Deleted.
* platform/mac/CursorMac.mm:
(WebCore::Cursor::Cursor): Deleted.
(WebCore::Cursor::operator=): Deleted.
(WebCore::Cursor::~Cursor): Deleted.
* platform/win/CursorWin.cpp:
(WebCore::SharedCursor::SharedCursor): Moved this here from the header
since it is only used within this file.
(WebCore::SharedCursor::create): Ditto.
(WebCore::Cursor::Cursor): Deleted.
(WebCore::Cursor::operator=): Deleted.
(WebCore::Cursor::~Cursor): Deleted.

* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::handleUnavailablePluginIndicatorEvent):
Pass reference.

* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::RenderLayerBacking): Get to FrameView
through the render tree itself, rather than through the frame.

* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateLayerForHeader): Use reference.
(WebCore::RenderLayerCompositor::updateLayerForFooter): Ditto.
(WebCore::RenderLayerCompositor::attachRootLayer): Ditto.
(WebCore::RenderLayerCompositor::detachRootLayer): Ditto.
* rendering/RenderMenuList.cpp:
(RenderMenuList::showPopup): Ditto.
* rendering/RenderSearchField.cpp:
(WebCore::RenderSearchField::addSearchResult): Ditto.
(WebCore::RenderSearchField::showPopup): Ditto.
(WebCore::RenderSearchField::valueChanged): Ditto.
* svg/SVGAElement.cpp:
(WebCore::SVGAElement::isKeyboardFocusable): Ditto.
* testing/MockPageOverlayClient.cpp:
(WebCore::MockPageOverlayClient::installOverlay): Ditto.
(WebCore::MockPageOverlayClient::uninstallAllOverlays): Ditto.

Source/WebKit/ios:

* WebCoreSupport/WebChromeClientIOS.h: Update for changes to ChromeClient.
* WebCoreSupport/WebChromeClientIOS.mm:
(WebChromeClientIOS::runJavaScriptAlert): Ditto.
(WebChromeClientIOS::runJavaScriptConfirm): Ditto.
(WebChromeClientIOS::runJavaScriptPrompt): Ditto.
(WebChromeClientIOS::setNeedsScrollNotifications): Ditto.
(WebChromeClientIOS::observedContentChange): Ditto.
(WebChromeClientIOS::clearContentChangeObservers): Ditto.
(WebChromeClientIOS::notifyRevealedSelectionByScrollingFrame): Ditto.
(WebChromeClientIOS::elementDidFocus): Ditto.
(WebChromeClientIOS::elementDidBlur): Ditto.
(WebChromeClientIOS::createPopupMenu): Ditto.
(WebChromeClientIOS::createSearchPopupMenu): Ditto.
(WebChromeClientIOS::attachRootGraphicsLayer): Ditto.

Source/WebKit/mac:

* WebCoreSupport/WebApplicationCacheQuotaManager.mm:
(-[WebApplicationCacheQuotaManager quota]): Pass reference.

* WebCoreSupport/WebChromeClient.h: Updated for changes to ChromeClient.
* WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::focusedElementChanged): Ditto.
(WebChromeClient::createWindow): Ditto.
(WebChromeClient::runBeforeUnloadConfirmPanel): Ditto.
(WebChromeClient::runJavaScriptAlert): Ditto.
(WebChromeClient::runJavaScriptConfirm): Ditto.
(WebChromeClient::runJavaScriptPrompt): Ditto.
(WebChromeClient::contentsSizeChanged): Ditto.
(WebChromeClient::unavailablePluginButtonClicked): Ditto.
(WebChromeClient::print): Ditto.
(WebChromeClient::exceededDatabaseQuota): Ditto.
(WebChromeClient::reachedApplicationCacheOriginQuota): Ditto.
(WebChromeClient::createColorChooser): Ditto.
(WebChromeClient::elementDidFocus): Ditto.
(WebChromeClient::elementDidBlur): Ditto.
(WebChromeClient::createPopupMenu): Ditto.
(WebChromeClient::createSearchPopupMenu): Ditto.
(WebChromeClient::attachRootGraphicsLayer): Ditto.
(WebChromeClient::attachViewOverlayGraphicsLayer): Ditto.
(WebChromeClient::supportsFullScreenForElement): Ditto.
(WebChromeClient::enterFullScreenForElement): Ditto.
(WebChromeClient::exitFullScreenForElement): Ditto.

* WebView/WebFrame.mm:
(+[WebFrame _createFrameWithPage:frameName:frameView:ownerElement:]):
Updated for change to the appendChild function.

Source/WebKit/win:

* Plugins/PluginView.cpp:
(WebCore::PluginView::status): Pass reference.
(WebCore::PluginView::focusPluginElement): Ditto.

* WebCoreSupport/WebChromeClient.cpp:
(WebChromeClient::createWindow): Updated for change to ChromeClient.
(WebChromeClient::runBeforeUnloadConfirmPanel): Ditto.
(WebChromeClient::runJavaScriptAlert): Ditto.
(WebChromeClient::runJavaScriptConfirm): Ditto.
(WebChromeClient::runJavaScriptPrompt): Ditto.
(WebChromeClient::contentsSizeChanged): Ditto.
(WebChromeClient::unavailablePluginButtonClicked): Ditto.
(WebChromeClient::print): Ditto.
(WebChromeClient::exceededDatabaseQuota): Ditto.
(WebChromeClient::reachedApplicationCacheOriginQuota): Ditto.
(WebChromeClient::attachRootGraphicsLayer): Ditto.
(WebChromeClient::attachViewOverlayGraphicsLayer): Ditto.
(WebChromeClient::enterVideoFullscreenForVideoElement): Ditto.
(WebChromeClient::createPopupMenu): Ditto.
(WebChromeClient::createSearchPopupMenu): Ditto.
(WebChromeClient::supportsFullScreenForElement): Ditto.
(WebChromeClient::enterFullScreenForElement): Ditto.
(WebChromeClient::exitFullScreenForElement): Ditto.
(WebChromeClient::shouldUseTiledBackingForFrameView): Ditto.
* WebCoreSupport/WebChromeClient.h: Ditto.

Source/WebKit2:

* UIProcess/Scrolling/RemoteScrollingTree.cpp:
(WebKit::RemoteScrollingTree::createScrollingTreeNode): Return a Ref
instead of PassRefPtr.
* UIProcess/Scrolling/RemoteScrollingTree.h: Updated for the above.

* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageInstallPageOverlay): Pass a reference.
(WKBundlePageUninstallPageOverlay): Ditto.
(WKBundlePageInstallPageOverlayWithAnimation): Ditto.
(WKBundlePageUninstallPageOverlayWithAnimation): Ditto.
* WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:
(WebKit::PDFPlugin::jsPDFDocPrint): Ditto.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::focusPluginElement): Ditto.
(WebKit::PluginView::setStatusbarText): Ditto.

* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::elementDidFocus): Updated for changes to ChromeClient.
(WebKit::WebChromeClient::elementDidBlur): Ditto.
(WebKit::WebChromeClient::makeFirstResponder): Ditto.
(WebKit::WebChromeClient::createWindow): Ditto.
(WebKit::WebChromeClient::runBeforeUnloadConfirmPanel): Ditto.
(WebKit::WebChromeClient::runJavaScriptAlert): Ditto.
(WebKit::WebChromeClient::runJavaScriptConfirm): Ditto.
(WebKit::WebChromeClient::runJavaScriptPrompt): Ditto.
(WebKit::WebChromeClient::contentsSizeChanged): Ditto.
(WebKit::WebChromeClient::unavailablePluginButtonClicked): Ditto.
(WebKit::WebChromeClient::print): Ditto.
(WebKit::WebChromeClient::exceededDatabaseQuota): Ditto.
(WebKit::WebChromeClient::reachedApplicationCacheOriginQuota): Ditto.
(WebKit::WebChromeClient::createColorChooser): Ditto.
(WebKit::WebChromeClient::createPopupMenu): Ditto.
(WebKit::WebChromeClient::createSearchPopupMenu): Ditto.
(WebKit::WebChromeClient::attachRootGraphicsLayer): Ditto.
(WebKit::WebChromeClient::attachViewOverlayGraphicsLayer): Ditto.
(WebKit::WebChromeClient::createScrollingCoordinator): Ditto.
(WebKit::WebChromeClient::supportsFullScreenForElement): Ditto.
(WebKit::WebChromeClient::enterFullScreenForElement): Ditto.
(WebKit::WebChromeClient::exitFullScreenForElement): Ditto.
(WebKit::WebChromeClient::didAddHeaderLayer): Ditto.
(WebKit::WebChromeClient::didAddFooterLayer): Ditto.
(WebKit::WebChromeClient::shouldUseTiledBackingForFrameView): Ditto.
* WebProcess/WebCoreSupport/WebChromeClient.h: Ditto.
* WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
(WebKit::WebChromeClient::elementDidRefocus): Ditto.
(WebKit::WebChromeClient::didReceiveMobileDocType): Ditto.
(WebKit::WebChromeClient::observedContentChange): Ditto.
(WebKit::WebChromeClient::clearContentChangeObservers): Ditto.
(WebKit::WebChromeClient::notifyRevealedSelectionByScrollingFrame): Ditto.

* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchCreatePage): Pass reference.
* WebProcess/WebCoreSupport/WebInspectorClient.cpp:
(WebKit::WebInspectorClient::~WebInspectorClient): Ditto.
(WebKit::WebInspectorClient::hideHighlight): Ditto.
(WebKit::WebInspectorClient::showPaintRect): Ditto.
* WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::updateFindUIAfterPageScroll): Ditto.
(WebKit::FindController::hideFindUI): Ditto.

* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::createWithCoreMainFrame): Return Ref instead of
PassRefPtr.
(WebKit::WebFrame::createSubframe): Ditto.
(WebKit::WebFrame::create): Ditto.
* WebProcess/WebPage/WebFrame.h: Updated for the above.

* WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::openInNewTab): Pass reference.

* WebProcess/WebPage/ios/FindControllerIOS.mm:
(WebKit::FindController::updateFindIndicator): Use reference.
(WebKit::FindController::hideFindIndicator): Ditto.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulesfetchDOMWindowFetchcpp">trunk/Source/WebCore/Modules/fetch/DOMWindowFetch.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebdatabaseDatabaseContextcpp">trunk/Source/WebCore/Modules/webdatabase/DatabaseContext.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilitymacWebAccessibilityObjectWrapperMacmm">trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMWindowCustomcpp">trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDocumentcpp">trunk/Source/WebCore/dom/Document.cpp</a></li>
<li><a href="#trunkSourceWebCoredomElementcpp">trunk/Source/WebCore/dom/Element.cpp</a></li>
<li><a href="#trunkSourceWebCoredomNodecpp">trunk/Source/WebCore/dom/Node.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingEditorCommandcpp">trunk/Source/WebCore/editing/EditorCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingFrameSelectioncpp">trunk/Source/WebCore/editing/FrameSelection.cpp</a></li>
<li><a href="#trunkSourceWebCorehistoryCachedFramecpp">trunk/Source/WebCore/history/CachedFrame.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlColorInputTypecpp">trunk/Source/WebCore/html/ColorInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLAnchorElementcpp">trunk/Source/WebCore/html/HTMLAnchorElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLFormControlElementcpp">trunk/Source/WebCore/html/HTMLFormControlElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLVideoElementcpp">trunk/Source/WebCore/html/HTMLVideoElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowSpinButtonElementcpp">trunk/Source/WebCore/html/shadow/SpinButtonElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowmacImageControlsButtonElementMaccpp">trunk/Source/WebCore/html/shadow/mac/ImageControlsButtonElementMac.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorFrontendHostcpp">trunk/Source/WebCore/inspector/InspectorFrontendHost.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderEmptyClientscpp">trunk/Source/WebCore/loader/EmptyClients.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderEmptyClientsh">trunk/Source/WebCore/loader/EmptyClients.h</a></li>
<li><a href="#trunkSourceWebCoreloaderFrameLoadercpp">trunk/Source/WebCore/loader/FrameLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderFrameLoaderh">trunk/Source/WebCore/loader/FrameLoader.h</a></li>
<li><a href="#trunkSourceWebCoreloaderPolicyCheckercpp">trunk/Source/WebCore/loader/PolicyChecker.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderappcacheApplicationCacheGroupcpp">trunk/Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderappcacheApplicationCacheGrouph">trunk/Source/WebCore/loader/appcache/ApplicationCacheGroup.h</a></li>
<li><a href="#trunkSourceWebCoreloaderappcacheApplicationCacheStoragecpp">trunk/Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderappcacheApplicationCacheStorageh">trunk/Source/WebCore/loader/appcache/ApplicationCacheStorage.h</a></li>
<li><a href="#trunkSourceWebCoreloaderarchivemhtmlMHTMLArchivecpp">trunk/Source/WebCore/loader/archive/mhtml/MHTMLArchive.cpp</a></li>
<li><a href="#trunkSourceWebCoremathmlMathMLElementcpp">trunk/Source/WebCore/mathml/MathMLElement.cpp</a></li>
<li><a href="#trunkSourceWebCorepageChromecpp">trunk/Source/WebCore/page/Chrome.cpp</a></li>
<li><a href="#trunkSourceWebCorepageChromeh">trunk/Source/WebCore/page/Chrome.h</a></li>
<li><a href="#trunkSourceWebCorepageChromeClienth">trunk/Source/WebCore/page/ChromeClient.h</a></li>
<li><a href="#trunkSourceWebCorepageContextMenuControllercpp">trunk/Source/WebCore/page/ContextMenuController.cpp</a></li>
<li><a href="#trunkSourceWebCorepageContextMenuControllerh">trunk/Source/WebCore/page/ContextMenuController.h</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="#trunkSourceWebCorepageDOMWindowh">trunk/Source/WebCore/page/DOMWindow.h</a></li>
<li><a href="#trunkSourceWebCorepageDOMWindowPropertycpp">trunk/Source/WebCore/page/DOMWindowProperty.cpp</a></li>
<li><a href="#trunkSourceWebCorepageDebugPageOverlayscpp">trunk/Source/WebCore/page/DebugPageOverlays.cpp</a></li>
<li><a href="#trunkSourceWebCorepageDragControllercpp">trunk/Source/WebCore/page/DragController.cpp</a></li>
<li><a href="#trunkSourceWebCorepageEventHandlercpp">trunk/Source/WebCore/page/EventHandler.cpp</a></li>
<li><a href="#trunkSourceWebCorepageEventHandlerh">trunk/Source/WebCore/page/EventHandler.h</a></li>
<li><a href="#trunkSourceWebCorepageFocusControllercpp">trunk/Source/WebCore/page/FocusController.cpp</a></li>
<li><a href="#trunkSourceWebCorepageFocusControllerh">trunk/Source/WebCore/page/FocusController.h</a></li>
<li><a href="#trunkSourceWebCorepageFramecpp">trunk/Source/WebCore/page/Frame.cpp</a></li>
<li><a href="#trunkSourceWebCorepageFrameTreecpp">trunk/Source/WebCore/page/FrameTree.cpp</a></li>
<li><a href="#trunkSourceWebCorepageFrameTreeh">trunk/Source/WebCore/page/FrameTree.h</a></li>
<li><a href="#trunkSourceWebCorepageFrameViewcpp">trunk/Source/WebCore/page/FrameView.cpp</a></li>
<li><a href="#trunkSourceWebCorepageMainFramecpp">trunk/Source/WebCore/page/MainFrame.cpp</a></li>
<li><a href="#trunkSourceWebCorepagePagecpp">trunk/Source/WebCore/page/Page.cpp</a></li>
<li><a href="#trunkSourceWebCorepagePageOverlaycpp">trunk/Source/WebCore/page/PageOverlay.cpp</a></li>
<li><a href="#trunkSourceWebCorepagePageOverlayControllercpp">trunk/Source/WebCore/page/PageOverlayController.cpp</a></li>
<li><a href="#trunkSourceWebCorepagePageOverlayControllerh">trunk/Source/WebCore/page/PageOverlayController.h</a></li>
<li><a href="#trunkSourceWebCorepagePageSerializercpp">trunk/Source/WebCore/page/PageSerializer.cpp</a></li>
<li><a href="#trunkSourceWebCorepagePageSerializerh">trunk/Source/WebCore/page/PageSerializer.h</a></li>
<li><a href="#trunkSourceWebCorepagePerformanceEntryh">trunk/Source/WebCore/page/PerformanceEntry.h</a></li>
<li><a href="#trunkSourceWebCorepagePerformanceUserTimingcpp">trunk/Source/WebCore/page/PerformanceUserTiming.cpp</a></li>
<li><a href="#trunkSourceWebCorepageResourceUsageOverlaycpp">trunk/Source/WebCore/page/ResourceUsageOverlay.cpp</a></li>
<li><a href="#trunkSourceWebCorepageanimationAnimationBaseh">trunk/Source/WebCore/page/animation/AnimationBase.h</a></li>
<li><a href="#trunkSourceWebCorepageanimationAnimationControllercpp">trunk/Source/WebCore/page/animation/AnimationController.cpp</a></li>
<li><a href="#trunkSourceWebCorepageanimationAnimationControllerPrivateh">trunk/Source/WebCore/page/animation/AnimationControllerPrivate.h</a></li>
<li><a href="#trunkSourceWebCorepageanimationCSSPropertyAnimationcpp">trunk/Source/WebCore/page/animation/CSSPropertyAnimation.cpp</a></li>
<li><a href="#trunkSourceWebCorepageanimationCompositeAnimationcpp">trunk/Source/WebCore/page/animation/CompositeAnimation.cpp</a></li>
<li><a href="#trunkSourceWebCorepageanimationCompositeAnimationh">trunk/Source/WebCore/page/animation/CompositeAnimation.h</a></li>
<li><a href="#trunkSourceWebCorepageanimationImplicitAnimationcpp">trunk/Source/WebCore/page/animation/ImplicitAnimation.cpp</a></li>
<li><a href="#trunkSourceWebCorepageanimationKeyframeAnimationcpp">trunk/Source/WebCore/page/animation/KeyframeAnimation.cpp</a></li>
<li><a href="#trunkSourceWebCorepageeflEventHandlerEflcpp">trunk/Source/WebCore/page/efl/EventHandlerEfl.cpp</a></li>
<li><a href="#trunkSourceWebCorepagegtkEventHandlerGtkcpp">trunk/Source/WebCore/page/gtk/EventHandlerGtk.cpp</a></li>
<li><a href="#trunkSourceWebCorepageiosEventHandlerIOSmm">trunk/Source/WebCore/page/ios/EventHandlerIOS.mm</a></li>
<li><a href="#trunkSourceWebCorepagemacEventHandlerMacmm">trunk/Source/WebCore/page/mac/EventHandlerMac.mm</a></li>
<li><a href="#trunkSourceWebCorepagemacServicesOverlayControllerh">trunk/Source/WebCore/page/mac/ServicesOverlayController.h</a></li>
<li><a href="#trunkSourceWebCorepagemacServicesOverlayControllermm">trunk/Source/WebCore/page/mac/ServicesOverlayController.mm</a></li>
<li><a href="#trunkSourceWebCorepagemacTextIndicatorWindowmm">trunk/Source/WebCore/page/mac/TextIndicatorWindow.mm</a></li>
<li><a href="#trunkSourceWebCorepagescrollingAsyncScrollingCoordinatorh">trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.h</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollLatchingStatecpp">trunk/Source/WebCore/page/scrolling/ScrollLatchingState.cpp</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollLatchingStateh">trunk/Source/WebCore/page/scrolling/ScrollLatchingState.h</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollingStateNodecpp">trunk/Source/WebCore/page/scrolling/ScrollingStateNode.cpp</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollingStateNodeh">trunk/Source/WebCore/page/scrolling/ScrollingStateNode.h</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollingStateTreecpp">trunk/Source/WebCore/page/scrolling/ScrollingStateTree.cpp</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollingStateTreeh">trunk/Source/WebCore/page/scrolling/ScrollingStateTree.h</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollingTreecpp">trunk/Source/WebCore/page/scrolling/ScrollingTree.cpp</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollingTreeh">trunk/Source/WebCore/page/scrolling/ScrollingTree.h</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollingTreeNodecpp">trunk/Source/WebCore/page/scrolling/ScrollingTreeNode.cpp</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollingTreeNodeh">trunk/Source/WebCore/page/scrolling/ScrollingTreeNode.h</a></li>
<li><a href="#trunkSourceWebCorepagescrollingThreadedScrollingTreecpp">trunk/Source/WebCore/page/scrolling/ThreadedScrollingTree.cpp</a></li>
<li><a href="#trunkSourceWebCorepagescrollingThreadedScrollingTreeh">trunk/Source/WebCore/page/scrolling/ThreadedScrollingTree.h</a></li>
<li><a href="#trunkSourceWebCorepagescrollingiosScrollingCoordinatorIOSmm">trunk/Source/WebCore/page/scrolling/ios/ScrollingCoordinatorIOS.mm</a></li>
<li><a href="#trunkSourceWebCorepagescrollingiosScrollingTreeIOScpp">trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeIOS.cpp</a></li>
<li><a href="#trunkSourceWebCorepagescrollingiosScrollingTreeIOSh">trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeIOS.h</a></li>
<li><a href="#trunkSourceWebCorepagescrollingmacScrollingCoordinatorMacmm">trunk/Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.mm</a></li>
<li><a href="#trunkSourceWebCorepagescrollingmacScrollingTreeMaccpp">trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeMac.cpp</a></li>
<li><a href="#trunkSourceWebCorepagescrollingmacScrollingTreeMach">trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeMac.h</a></li>
<li><a href="#trunkSourceWebCorepagewinEventHandlerWincpp">trunk/Source/WebCore/page/win/EventHandlerWin.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformCursorh">trunk/Source/WebCore/platform/Cursor.h</a></li>
<li><a href="#trunkSourceWebCoreplatformeflCursorEflcpp">trunk/Source/WebCore/platform/efl/CursorEfl.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgtkCursorGtkcpp">trunk/Source/WebCore/platform/gtk/CursorGtk.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmacCursorMacmm">trunk/Source/WebCore/platform/mac/CursorMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformwinCursorWincpp">trunk/Source/WebCore/platform/win/CursorWin.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderEmbeddedObjectcpp">trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayerBackingcpp">trunk/Source/WebCore/rendering/RenderLayerBacking.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayerCompositorcpp">trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderMenuListcpp">trunk/Source/WebCore/rendering/RenderMenuList.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderSearchFieldcpp">trunk/Source/WebCore/rendering/RenderSearchField.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGAElementcpp">trunk/Source/WebCore/svg/SVGAElement.cpp</a></li>
<li><a href="#trunkSourceWebCoretestingMockPageOverlayClientcpp">trunk/Source/WebCore/testing/MockPageOverlayClient.cpp</a></li>
<li><a href="#trunkSourceWebKitiosChangeLog">trunk/Source/WebKit/ios/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitiosWebCoreSupportWebChromeClientIOSh">trunk/Source/WebKit/ios/WebCoreSupport/WebChromeClientIOS.h</a></li>
<li><a href="#trunkSourceWebKitiosWebCoreSupportWebChromeClientIOSmm">trunk/Source/WebKit/ios/WebCoreSupport/WebChromeClientIOS.mm</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebApplicationCacheQuotaManagermm">trunk/Source/WebKit/mac/WebCoreSupport/WebApplicationCacheQuotaManager.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebChromeClienth">trunk/Source/WebKit/mac/WebCoreSupport/WebChromeClient.h</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebChromeClientmm">trunk/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebFramemm">trunk/Source/WebKit/mac/WebView/WebFrame.mm</a></li>
<li><a href="#trunkSourceWebKitwinChangeLog">trunk/Source/WebKit/win/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitwinPluginsPluginViewcpp">trunk/Source/WebKit/win/Plugins/PluginView.cpp</a></li>
<li><a href="#trunkSourceWebKitwinWebCoreSupportWebChromeClientcpp">trunk/Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp</a></li>
<li><a href="#trunkSourceWebKitwinWebCoreSupportWebChromeClienth">trunk/Source/WebKit/win/WebCoreSupport/WebChromeClient.h</a></li>
<li><a href="#trunkSourceWebKitwinWebCoreSupportWebFrameLoaderClientcpp">trunk/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp</a></li>
<li><a href="#trunkSourceWebKitwinWebViewcpp">trunk/Source/WebKit/win/WebView.cpp</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2UIProcessScrollingRemoteScrollingTreecpp">trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingTree.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessScrollingRemoteScrollingTreeh">trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingTree.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessInjectedBundleAPIcWKBundlePagecpp">trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPDFDeprecatedPDFPluginmm">trunk/Source/WebKit2/WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPluginViewcpp">trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebChromeClientcpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebChromeClienth">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebFrameLoaderClientcpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebInspectorClientcpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportiosWebChromeClientIOSmm">trunk/Source/WebKit2/WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageFindControllercpp">trunk/Source/WebKit2/WebProcess/WebPage/FindController.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebFramecpp">trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebFrameh">trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebInspectorcpp">trunk/Source/WebKit2/WebProcess/WebPage/WebInspector.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageiosFindControllerIOSmm">trunk/Source/WebKit2/WebProcess/WebPage/ios/FindControllerIOS.mm</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/ChangeLog        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -1,3 +1,438 @@
</span><ins>+2017-01-20  Darin Adler  &lt;darin@apple.com&gt;
+
+        Remove PassRefPtr from &quot;page&quot; directory of WebCore, also deploy references
+        https://bugs.webkit.org/show_bug.cgi?id=167224
+
+        Reviewed by Chris Dumez.
+
+        * Modules/fetch/DOMWindowFetch.cpp:
+        (WebCore::DOMWindowFetch::fetch): Use DOMWindow::document instead of
+        scriptExecutionContext.
+
+        * Modules/webdatabase/DatabaseContext.cpp:
+        (WebCore::DatabaseContext::databaseExceededQuota): Pass a reference.
+
+        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
+        (-[WebAccessibilityObjectWrapper accessibilityShowContextMenu]):
+        Pass a reference.
+
+        * bindings/js/JSDOMWindowCustom.cpp:
+        (WebCore::JSDOMWindow::getOwnPropertySlot): Pass a reference.
+
+        * dom/Document.cpp:
+        (WebCore::Document::childrenChanged): Pass a reference. Also made the
+        didReceiveDocType code unconditional instead of iOS-only.
+        (WebCore::Document::platformSuspendOrStopActiveDOMObjects): Ditto.
+        (WebCore::Document::updateViewportArguments): Ditto.
+        (WebCore::Document::setFocusedElement): Ditto.
+        (WebCore::Document::createDOMWindow): Ditto.
+        (WebCore::Document::takeDOMWindowFrom): Ditto.
+        (WebCore::Document::requestFullScreenForElement): Ditto.
+        (WebCore::Document::webkitExitFullscreen): Ditto.
+        * dom/Element.cpp:
+        (WebCore::Element::focus): Ditto.
+        (WebCore::Element::blur): Ditto.
+        (WebCore::Element::dispatchFocusEvent): Ditto.
+        (WebCore::Element::dispatchBlurEvent): Ditto.
+        * dom/Node.cpp:
+        (WebCore::Node::defaultEventHandler): Ditto.
+        * editing/EditorCommand.cpp:
+        (WebCore::executePrint): Ditto.
+        * editing/FrameSelection.cpp:
+        (WebCore::FrameSelection::setFocusedElementIfNeeded): Ditto.
+        * history/CachedFrame.cpp:
+        (WebCore::CachedFrameBase::restore): Ditto.
+        (WebCore::CachedFrame::CachedFrame): Ditto.
+        * html/ColorInputType.cpp:
+        (WebCore::ColorInputType::handleDOMActivateEvent): Ditto.
+        * html/HTMLAnchorElement.cpp:
+        (WebCore::HTMLAnchorElement::isKeyboardFocusable): Ditto.
+
+        * html/HTMLFormControlElement.cpp:
+        (WebCore::HTMLFormControlElement::isKeyboardFocusable): Pass a reference,
+        and also rewrote to use &amp;&amp; for clarity.
+
+        * html/HTMLVideoElement.cpp:
+        (WebCore::HTMLVideoElement::supportsFullscreen): Pass a reference.
+        * html/shadow/SpinButtonElement.cpp:
+        (WebCore::SpinButtonElement::defaultEventHandler): Ditto.
+        (WebCore::SpinButtonElement::releaseCapture): Ditto.
+        * html/shadow/mac/ImageControlsButtonElementMac.cpp:
+        (WebCore::ImageControlsButtonElementMac::defaultEventHandler): Ditto.
+        * inspector/InspectorFrontendHost.cpp:
+        (WebCore::InspectorFrontendHost::showContextMenu): Ditto.
+        (WebCore::InspectorFrontendHost::dispatchEventAsContextMenuEvent): Ditto.
+
+        * loader/EmptyClients.cpp:
+        (WebCore::EmptyChromeClient::createPopupMenu): Updated to take reference.
+        (WebCore::EmptyChromeClient::createSearchPopupMenu): Ditto.
+        (WebCore::EmptyChromeClient::createColorChooser): Ditto.
+        * loader/EmptyClients.h: Ditto.
+
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::submitForm): Pass a reference.
+        (WebCore::FrameLoader::commitProvisionalLoad): Ditto.
+        (WebCore::FrameLoader::closeAndRemoveChild): Take a reference.
+        (WebCore::FrameLoader::detachFromParent): Pass a reference.
+        (WebCore::FrameLoader::dispatchBeforeUnloadEvent): Ditto.
+        (WebCore::createWindow): Ditto.
+        * loader/FrameLoader.h: Updated for the above.
+
+        * loader/PolicyChecker.cpp:
+        (WebCore::PolicyChecker::checkNewWindowPolicy): Pass a reference.
+        * loader/appcache/ApplicationCacheGroup.cpp:
+        (WebCore::ApplicationCacheGroup::recalculateAvailableSpaceInQuota): Ditto.
+
+        * loader/appcache/ApplicationCacheGroup.h: Return a reference from origin.
+
+        * loader/appcache/ApplicationCacheStorage.cpp:
+        (WebCore::ApplicationCacheStorage::calculateQuotaForOrigin): Take a reference.
+        (WebCore::ApplicationCacheStorage::calculateRemainingSizeForOriginExcludingCache):
+        Ditto.
+        (WebCore::ApplicationCacheStorage::store): Pass a reference.
+        (WebCore::ApplicationCacheStorage::checkOriginQuota): Updated since origin
+        now returns areference.
+        * loader/appcache/ApplicationCacheStorage.h: Updated for the above.
+
+        * loader/archive/mhtml/MHTMLArchive.cpp:
+        (WebCore::MHTMLArchive::generateMHTMLData): Pass a reference.
+        * mathml/MathMLElement.cpp:
+        (WebCore::MathMLElement::isKeyboardFocusable): Ditto.
+
+        * page/Chrome.cpp:
+        (WebCore::Chrome::Chrome): Moved initialization of data members to the
+        class definition.
+        (WebCore::Chrome::contentsSizeChanged): Take a reference.
+        (WebCore::Chrome::createWindow): Ditto.
+        (WebCore::Chrome::runBeforeUnloadConfirmPanel): Ditto.
+        (WebCore::Chrome::runJavaScriptAlert): Ditto.
+        (WebCore::Chrome::runJavaScriptConfirm): Ditto.
+        (WebCore::Chrome::runJavaScriptPrompt): Ditto.
+        (WebCore::Chrome::setStatusbarText): Ditto.
+        (WebCore::Chrome::print): Ditto.
+        (WebCore::Chrome::createColorChooser): Ditto.
+        (WebCore::Chrome::createPopupMenu): Ditto.
+        (WebCore::Chrome::createSearchPopupMenu): Ditto.
+        (WebCore::Chrome::didReceiveDocType): Ditto. Also made unconditional, but
+        empty for non-iOS platforms.
+        (WebCore::Chrome::registerPopupOpeningObserver): Take a reference.
+        (WebCore::Chrome::unregisterPopupOpeningObserver): Ditto.
+        * page/Chrome.h: Updated for the above.
+
+        * page/ChromeClient.h: Take references. Also updated some arguments from
+        Node to Element.
+
+        * page/ContextMenuController.cpp:
+        (WebCore::ContextMenuController::handleContextMenuEvent): Take a reference.
+        (WebCore::ContextMenuController::showContextMenu): Ditto.
+        (WebCore::ContextMenuController::maybeCreateContextMenu): Ditto. Also use
+        make_unique instead of unique_ptr plus new.
+        (WebCore::openNewWindow): Ditto.
+        (WebCore::insertUnicodeCharacter): Ditto.
+        (WebCore::ContextMenuController::contextMenuItemSelected): Ditto.
+        (WebCore::ContextMenuController::showContextMenuAt): Ditto.
+        (WebCore::ContextMenuController::showImageControlsMenu): Ditto.
+        * page/ContextMenuController.h: Updated for the above.
+
+        * page/DOMTimer.cpp:
+        (WebCore::DOMTimer::fired): Pass a reference.
+
+        * page/DOMWindow.cpp:
+        (WebCore::PostMessageTimer::PostMessageTimer): Take Ref&amp;&amp; instead of
+        PassRefPtr.
+        (WebCore::DOMWindow::adjustWindowRect): Use a reference.
+        (WebCore::DOMWindow::allowPopUp): Ditto. Also rewrite to use || instead
+        of successive if statements.
+        (WebCore::DOMWindow::canShowModalDialog): Ditto.
+        (WebCore::DOMWindow::DOMWindow): Ditto.
+        (WebCore::DOMWindow::didSecureTransitionTo): Ditto.
+        (WebCore::DOMWindow::registerProperty): Ditto.
+        (WebCore::DOMWindow::unregisterProperty): Ditto.
+        (WebCore::DOMWindow::postMessageTimerFired): Merge with the function
+        immediately followed, called only from here.
+        (WebCore::DOMWindow::dispatchMessageEventWithOriginCheck): Deleted.
+        (WebCore::DOMWindow::print): Pass a reference.
+        (WebCore::DOMWindow::alert): Ditto.
+        (WebCore::DOMWindow::confirm): Ditto.
+        (WebCore::DOMWindow::prompt): Ditto.
+        (WebCore::DOMWindow::setStatus): Ditto.
+        (WebCore::DOMWindow::setDefaultStatus): Ditto.
+        (WebCore::DOMWindow::moveBy): Ditto.
+        (WebCore::DOMWindow::moveTo): Ditto.
+        (WebCore::DOMWindow::resizeBy): Ditto.
+        (WebCore::DOMWindow::resizeTo): Ditto.
+        (WebCore::DOMWindow::clearTimeout): Ditto.
+        (WebCore::DOMWindow::incrementScrollEventListenersCount): Ditto.
+        (WebCore::DOMWindow::decrementScrollEventListenersCount): Ditto.
+        (WebCore::DOMWindow::showModalDialog): Ditto.
+        * page/DOMWindow.h: Updated for the above. ALso made functions private
+        and final.
+
+        * page/DOMWindowProperty.cpp:
+        (WebCore::DOMWindowProperty::DOMWindowProperty): Pass a reference.
+        (WebCore::DOMWindowProperty::~DOMWindowProperty): Ditto.
+        (WebCore::DOMWindowProperty::willDestroyGlobalObjectInCachedFrame): Ditto.
+        (WebCore::DOMWindowProperty::willDestroyGlobalObjectInFrame): Ditto.
+
+        * page/DebugPageOverlays.cpp:
+        (WebCore::RegionOverlay::create): Return RefPtr instead of PassRefPtr.
+        (WebCore::RegionOverlay::~RegionOverlay): Pass a reference.
+        (WebCore::DebugPageOverlays::showRegionOverlay): Ditto.
+        (WebCore::DebugPageOverlays::hideRegionOverlay): Ditto.
+
+        * page/DragController.cpp:
+        (WebCore::DragController::dragExited): Pass a reference.
+        (WebCore::DragController::performDragOperation): Ditto.
+        (WebCore::DragController::concludeEditDrag): Ditto.
+        (WebCore::DragController::tryDHTMLDrag): Ditto.
+
+        * page/EventHandler.cpp: Replaced OptionalCursor with std::optional&lt;Cursor&gt;.
+        (WebCore::EventHandler::updateCursor): Refactor into two functions so we
+        can share more code with selectCursor.
+        (WebCore::EventHandler::selectCursor): Updated to use std::optional.
+        (WebCore::EventHandler::handleMouseMoveEvent): Use the new updateCursor.
+        (WebCore::EventHandler::startPanScrolling): Use a reference.
+        (WebCore::EventHandler::updateDragAndDrop): Ditto.
+        (WebCore::EventHandler::cancelDragAndDrop): Ditto.
+        (WebCore::EventHandler::performDragAndDrop): Ditto.
+        (WebCore::EventHandler::setCapturingMouseEventsElement): Take a raw pointer
+        instead of a PassRefPtr.
+        (WebCore::EventHandler::dispatchMouseEvent): Use a reference.
+        (WebCore::EventHandler::updateDragStateAfterEditDragIfNeeded): Ditto.
+        (WebCore::EventHandler::isKeyboardOptionTab): Ditto.
+        (WebCore::EventHandler::eventInvertsTabsToLinksClientCallResult): Ditto.
+        (WebCore::EventHandler::tabsToLinks): Ditto.
+        * page/EventHandler.h: Updated for the above.
+
+        * page/FocusController.cpp:
+        (WebCore::FocusController::setFocusedFrame): Take pointer instead
+        of PassRefPtr.
+        (WebCore::FocusController::setFocusedElement): Take reference instead of
+        PassRefPtr.
+        * page/FocusController.h: Updated for the above changes.
+
+        * page/FrameTree.cpp:
+        (WebCore::FrameTree::transferChild): Deleted. Unused function.
+        (WebCore::FrameTree::appendChild): Merged with the following function
+        since it's now only used here. Take reference instead of PassRefPtr.
+        (WebCore::FrameTree::actuallyAppendChild): Deleted.
+        (WebCore::FrameTree::removeChild): Take reference instead of pointer.
+        Use move instead of trickier swap.
+        * page/FrameTree.h: Updated for the above.
+
+        * page/FrameView.cpp:
+        (WebCore::FrameView::setContentsSize): Use a reference.
+        * page/MainFrame.cpp:
+        (WebCore::MainFrame::dropChildren): Ditto.
+        * page/Page.cpp:
+        (WebCore::Page::scrollingCoordinator): Ditto.
+        * page/PageOverlay.cpp:
+        (WebCore::PageOverlay::fadeAnimationTimerFired): Ditto.
+
+        * page/PageOverlayController.cpp:
+        (WebCore::PageOverlayController::installPageOverlay): Take reference
+        instead of PassRefPtr.
+        (WebCore::PageOverlayController::uninstallPageOverlay): Take reference
+        intead of pointer.
+        * page/PageOverlayController.h: Updated for the above.
+
+        * page/PageSerializer.cpp:
+        (WebCore::PageSerializer::PageSerializer): Moved most initialization to the
+        class definition.
+        (WebCore::PageSerializer::serialize): Use reference.
+        (WebCore::PageSerializer::serializeFrame): Use initializer list instead of
+        constructor for resource.
+        (WebCore::PageSerializer::serializeCSSStyleSheet): Ditto.
+        (WebCore::PageSerializer::addImageToResources): Ditto.
+        * page/PageSerializer.h: Removed constructors from PageSerializer::Resource
+        struct since structures don't really need them. Updated for the above.
+        Changed SerializerMarkupAccumulator into a nested class.
+
+        * page/PerformanceEntry.h:
+        (WebCore::PerformanceEntry::startTimeCompareLessThan): Use const RefPtr&amp;
+        instead of PassRefPtr to compare RefPtr in place.
+
+        * page/PerformanceUserTiming.cpp:
+        (WebCore::insertPerformanceEntry): Take Ref&amp;&amp; instead of PassRefPtr.
+
+        * page/ResourceUsageOverlay.cpp:
+        (WebCore::ResourceUsageOverlay::~ResourceUsageOverlay): Use refrence.
+        (WebCore::ResourceUsageOverlay::initialize): Ditto.
+
+        * page/animation/AnimationBase.h: Removed unneeded include.
+
+        * page/animation/AnimationController.cpp:
+        (WebCore::AnimationControllerPrivate::clear): Use reference.
+        (WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle): Ditto.
+        (WebCore::AnimationControllerPrivate::addEventToDispatch): Use the
+        append function instead of a hand-written alternative.
+        (WebCore::AnimationControllerPrivate::addElementChangeToDispatch):
+        Take a reference rather than a Ref&amp;&amp; since no caller is passing ownership.
+        * page/animation/AnimationControllerPrivate.h: Updated for the above.
+
+        * page/animation/CSSPropertyAnimation.cpp:
+        (WebCore::blendFunc): Return RefPtr instead of PassRefPtr.
+        (WebCore::blendFilter): Ditto.
+        (WebCore::crossfadeBlend): Ditto.
+
+        * page/animation/CompositeAnimation.cpp:
+        (WebCore::CompositeAnimation::updateTransitions): Updated to use
+        animationForProperty, which returns a raw pointer.
+        (WebCore::CompositeAnimation::animationForProperty): Renamed from
+        getAnimationForProperty and changed to return raw pointer instead
+        of PassRefPtr.
+        * page/animation/CompositeAnimation.h: Updated for the above.
+
+        * page/animation/ImplicitAnimation.cpp:
+        (WebCore::ImplicitAnimation::onAnimationEnd): Use animationForProperty.
+        (WebCore::ImplicitAnimation::sendTransitionEvent): Pass reference.
+        * page/animation/KeyframeAnimation.cpp:
+        (WebCore::KeyframeAnimation::sendAnimationEvent): Ditto.
+
+        * page/efl/EventHandlerEfl.cpp:
+        (WebCore::EventHandler::tabsToAllFormControls): Take reference.
+        (WebCore::EventHandler::createDraggingDataTransfer): Return Ref.
+        * page/gtk/EventHandlerGtk.cpp:
+        (WebCore::EventHandler::tabsToAllFormControls): Ditto.
+        (WebCore::EventHandler::createDraggingDataTransfer): Ditto.
+        * page/ios/EventHandlerIOS.mm:
+        (WebCore::EventHandler::tabsToAllFormControls): Ditto.
+        * page/mac/EventHandlerMac.mm:
+        (WebCore::EventHandler::createDraggingDataTransfer): Ditto.
+        (WebCore::EventHandler::tabsToAllFormControls): Ditto.
+        (WebCore::EventHandler::platformPrepareForWheelEvents): Ditto.
+
+        * page/mac/ServicesOverlayController.h: Take Ref&amp;&amp; for ranges instead
+        of PassRefPtr. Use references.
+        * page/mac/ServicesOverlayController.mm:
+        (WebCore::ServicesOverlayController::Highlight::createForSelection): Ditto.
+        (WebCore::ServicesOverlayController::Highlight::createForTelephoneNumber): Ditto.
+        (WebCore::ServicesOverlayController::Highlight::Highlight): Ditto.
+        (WebCore::ServicesOverlayController::buildPotentialHighlightsIfNeeded): Ditto.
+        (WebCore::ServicesOverlayController::buildPhoneNumberHighlights): Ditto.
+        (WebCore::ServicesOverlayController::buildSelectionHighlight): Ditto.
+        (WebCore::ServicesOverlayController::highlightsAreEquivalent): Ditto.
+        (WebCore::ServicesOverlayController::findTelephoneNumberHighlightContainingSelectionHighlight): Ditto.
+        (WebCore::ServicesOverlayController::handleClick): Ditto.
+
+        * page/mac/TextIndicatorWindow.mm:
+        (-[WebTextIndicatorView initWithFrame:textIndicator:margin:offset:]):
+        Take a reference instead of PassRefPtr.
+        (WebCore::TextIndicatorWindow::setTextIndicator): Updated for the above.
+
+        * page/scrolling/AsyncScrollingCoordinator.h: Use Ref&amp;&amp; and RefPtr intead
+        of PsasRefPtr.
+
+        * page/scrolling/ScrollLatchingState.cpp:
+        (WebCore::ScrollLatchingState::ScrollLatchingState): Initialize data members
+        in class definition.
+        (WebCore::ScrollLatchingState::setWheelEventElement): Use raw pointer instead
+        of PassRefPtr.
+        (WebCore::ScrollLatchingState::setPreviousWheelScrolledElement): Use raw
+        pointer instead of RefPtr&amp;&amp;.
+        (WebCore::ScrollLatchingState::setScrollableContainer): Use raw pointer instead
+        of PassRefPtr.
+        * page/scrolling/ScrollLatchingState.h: Updated for the above.
+
+        * page/scrolling/ScrollingStateNode.cpp:
+        (WebCore::ScrollingStateNode::cloneAndReset): Use Ref instead of PassRefPtr.
+        (WebCore::ScrollingStateNode::appendChild): Use Ref&amp;&amp; instead of PassRefPtr.
+        * page/scrolling/ScrollingStateNode.h: Updated for the above.
+
+        * page/scrolling/ScrollingStateTree.cpp:
+        (WebCore::ScrollingStateTree::createNode): Use Ref instead of PassRefPtr.
+        (WebCore::ScrollingStateTree::attachNode): Updated for the abve.
+        (WebCore::ScrollingStateTree::commit): Ditto.
+        * page/scrolling/ScrollingStateTree.h: Ditto.
+
+        * page/scrolling/ScrollingTree.cpp:
+        (WebCore::ScrollingTree::updateTreeFromStateNode): Use reference.
+        * page/scrolling/ScrollingTree.h: Return Ref instead of PassRefPtr.
+
+        * page/scrolling/ScrollingTreeNode.cpp:
+        (WebCore::ScrollingTreeNode::appendChild): Take Ref&amp;&amp; instead of PassRefPtr.
+        (WebCore::ScrollingTreeNode::removeChild): Take reference instead of pointer.
+        * page/scrolling/ScrollingTreeNode.h: Updated for the above.
+
+        * page/scrolling/ThreadedScrollingTree.cpp:
+        (WebCore::ThreadedScrollingTree::ThreadedScrollingTree): Take reference
+        instead of pointer.
+        * page/scrolling/ThreadedScrollingTree.h: Updated for the above.
+
+        * page/scrolling/ios/ScrollingCoordinatorIOS.mm:
+        (WebCore::ScrollingCoordinatorIOS::ScrollingCoordinatorIOS): Pass reference.
+
+        * page/scrolling/ios/ScrollingTreeIOS.cpp:
+        (WebCore::ScrollingTreeIOS::create): Take a reference.
+        (WebCore::ScrollingTreeIOS::ScrollingTreeIOS): Ditto.
+        (WebCore::ScrollingTreeIOS::createScrollingTreeNode): Return Ref instead of
+        PassRefPtr.
+        * page/scrolling/ios/ScrollingTreeIOS.h: Updated for the above.
+
+        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
+        (WebCore::ScrollingCoordinatorMac::ScrollingCoordinatorMac): Use reference.
+
+        * page/scrolling/mac/ScrollingTreeMac.cpp:
+        (ScrollingTreeMac::create): Take a reference.
+        (ScrollingTreeMac::ScrollingTreeMac): Ditto.
+        (ScrollingTreeMac::createScrollingTreeNode): Return a Ref instead of a
+        PassRefPtr.
+        * page/scrolling/mac/ScrollingTreeMac.h: Updated for the above.
+
+        * page/win/EventHandlerWin.cpp:
+        (WebCore::EventHandler::tabsToAllFormControls): Take reference.
+        (WebCore::EventHandler::createDraggingDataTransfer): Return Ref.
+
+        * platform/Cursor.h: Rearranged the header a bit. Got rid of the explicit
+        copy constructor, assignment operator, and destructor. Using the ones
+        that the compiler automatically generates will work for all platforms and
+        we then also get move constructor and move assignment operator.
+
+        * platform/efl/CursorEfl.cpp:
+        (WebCore::Cursor::Cursor): Deleted.
+        (WebCore::Cursor::~Cursor): Deleted.
+        (WebCore::Cursor::operator=): Deleted.
+        * platform/gtk/CursorGtk.cpp:
+        (WebCore::Cursor::Cursor): Deleted.
+        (WebCore::Cursor::operator=): Deleted.
+        (WebCore::Cursor::~Cursor): Deleted.
+        * platform/mac/CursorMac.mm:
+        (WebCore::Cursor::Cursor): Deleted.
+        (WebCore::Cursor::operator=): Deleted.
+        (WebCore::Cursor::~Cursor): Deleted.
+        * platform/win/CursorWin.cpp:
+        (WebCore::SharedCursor::SharedCursor): Moved this here from the header
+        since it is only used within this file.
+        (WebCore::SharedCursor::create): Ditto.
+        (WebCore::Cursor::Cursor): Deleted.
+        (WebCore::Cursor::operator=): Deleted.
+        (WebCore::Cursor::~Cursor): Deleted.
+
+        * rendering/RenderEmbeddedObject.cpp:
+        (WebCore::RenderEmbeddedObject::handleUnavailablePluginIndicatorEvent):
+        Pass reference.
+
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::RenderLayerBacking): Get to FrameView
+        through the render tree itself, rather than through the frame.
+
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::updateLayerForHeader): Use reference.
+        (WebCore::RenderLayerCompositor::updateLayerForFooter): Ditto.
+        (WebCore::RenderLayerCompositor::attachRootLayer): Ditto.
+        (WebCore::RenderLayerCompositor::detachRootLayer): Ditto.
+        * rendering/RenderMenuList.cpp:
+        (RenderMenuList::showPopup): Ditto.
+        * rendering/RenderSearchField.cpp:
+        (WebCore::RenderSearchField::addSearchResult): Ditto.
+        (WebCore::RenderSearchField::showPopup): Ditto.
+        (WebCore::RenderSearchField::valueChanged): Ditto.
+        * svg/SVGAElement.cpp:
+        (WebCore::SVGAElement::isKeyboardFocusable): Ditto.
+        * testing/MockPageOverlayClient.cpp:
+        (WebCore::MockPageOverlayClient::installOverlay): Ditto.
+        (WebCore::MockPageOverlayClient::uninstallAllOverlays): Ditto.
+
</ins><span class="cx"> 2017-01-22  Myles C. Maxfield  &lt;mmaxfield@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [Cocoa] Unify FontPlatformData's hashing and equality operators
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesfetchDOMWindowFetchcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/fetch/DOMWindowFetch.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/fetch/DOMWindowFetch.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/Modules/fetch/DOMWindowFetch.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -1,5 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2016 Canon Inc.
</span><ins>+ * Copyright (C) 2017 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted, provided that the following conditions
</span><span class="lines">@@ -32,7 +33,7 @@
</span><span class="cx"> #if ENABLE(FETCH_API)
</span><span class="cx"> 
</span><span class="cx"> #include &quot;DOMWindow.h&quot;
</span><del>-#include &quot;FetchRequest.h&quot;
</del><ins>+#include &quot;Document.h&quot;
</ins><span class="cx"> #include &quot;FetchResponse.h&quot;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -39,9 +40,10 @@
</span><span class="cx"> 
</span><span class="cx"> void DOMWindowFetch::fetch(DOMWindow&amp; window, FetchRequest&amp; request, Ref&lt;DeferredPromise&gt;&amp;&amp; promise)
</span><span class="cx"> {
</span><del>-    if (!window.scriptExecutionContext())
</del><ins>+    auto* document = window.document();
+    if (!document)
</ins><span class="cx">         return;
</span><del>-    FetchResponse::fetch(*window.scriptExecutionContext(), request, WTFMove(promise));
</del><ins>+    FetchResponse::fetch(*document, request, WTFMove(promise));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebdatabaseDatabaseContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webdatabase/DatabaseContext.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webdatabase/DatabaseContext.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/Modules/webdatabase/DatabaseContext.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -204,7 +204,7 @@
</span><span class="cx">     if (is&lt;Document&gt;(*m_scriptExecutionContext)) {
</span><span class="cx">         Document&amp; document = downcast&lt;Document&gt;(*m_scriptExecutionContext);
</span><span class="cx">         if (Page* page = document.page())
</span><del>-            page-&gt;chrome().client().exceededDatabaseQuota(document.frame(), name, details);
</del><ins>+            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="trunkSourceWebCoreaccessibilitymacWebAccessibilityObjectWrapperMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -3729,7 +3729,7 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx">     
</span><del>-    page-&gt;contextMenuController().showContextMenuAt(&amp;page-&gt;mainFrame(), rect.center());
</del><ins>+    page-&gt;contextMenuController().showContextMenuAt(page-&gt;mainFrame(), rect.center());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)accessibilityScrollToVisible
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMWindowCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -178,7 +178,7 @@
</span><span class="cx">     if (Base::getOwnPropertySlot(thisObject, state, propertyName, slot)) {
</span><span class="cx">         // Detect when we're getting the property 'showModalDialog', this is disabled, and has its original value.
</span><span class="cx">         bool isShowModalDialogAndShouldHide = propertyName == state-&gt;propertyNames().showModalDialog
</span><del>-            &amp;&amp; !DOMWindow::canShowModalDialog(frame)
</del><ins>+            &amp;&amp; !DOMWindow::canShowModalDialog(*frame)
</ins><span class="cx">             &amp;&amp; slot.isValue() &amp;&amp; isHostFunction(slot.getValue(state, propertyName), jsDOMWindowInstanceFunctionShowModalDialog);
</span><span class="cx">         // Unless we're in the showModalDialog special case, we're done.
</span><span class="cx">         if (!isShowModalDialogAndShouldHide)
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/dom/Document.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -848,13 +848,11 @@
</span><span class="cx"> {
</span><span class="cx">     ContainerNode::childrenChanged(change);
</span><span class="cx"> 
</span><del>-#if PLATFORM(IOS)
</del><span class="cx">     // FIXME: Chrome::didReceiveDocType() used to be called only when the doctype changed. We need to check the
</span><span class="cx">     // impact of calling this systematically. If the overhead is negligible, we need to rename didReceiveDocType,
</span><span class="cx">     // otherwise, we need to detect the doc type changes before updating the viewport.
</span><span class="cx">     if (Page* page = this-&gt;page())
</span><del>-        page-&gt;chrome().didReceiveDocType(frame());
-#endif
</del><ins>+        page-&gt;chrome().didReceiveDocType(*frame());
</ins><span class="cx"> 
</span><span class="cx">     Element* newDocumentElement = childrenOfType&lt;Element&gt;(*this).first();
</span><span class="cx">     if (newDocumentElement == m_documentElement)
</span><span class="lines">@@ -2372,9 +2370,10 @@
</span><span class="cx"> {
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     if (WebThreadCountOfObservedContentModifiers() &gt; 0) {
</span><del>-        Frame* frame = this-&gt;frame();
-        if (Page* page = frame ? frame-&gt;page() : nullptr)
-            page-&gt;chrome().client().clearContentChangeObservers(frame);
</del><ins>+        if (auto* frame = this-&gt;frame()) {
+            if (auto* page = frame-&gt;page())
+                page-&gt;chrome().client().clearContentChangeObservers(*frame);
+        }
</ins><span class="cx">     }
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="lines">@@ -3218,9 +3217,7 @@
</span><span class="cx">         m_didDispatchViewportPropertiesChanged = true;
</span><span class="cx"> #endif
</span><span class="cx">         page()-&gt;chrome().dispatchViewportPropertiesDidChange(m_viewportArguments);
</span><del>-#if PLATFORM(IOS)
-        page()-&gt;chrome().didReceiveDocType(frame());
-#endif
</del><ins>+        page()-&gt;chrome().didReceiveDocType(*frame());
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -3642,7 +3639,7 @@
</span><span class="cx">             if (is&lt;HTMLInputElement&gt;(*oldFocusedElement))
</span><span class="cx">                 downcast&lt;HTMLInputElement&gt;(*oldFocusedElement).endEditing();
</span><span class="cx">             if (page())
</span><del>-                page()-&gt;chrome().client().elementDidBlur(oldFocusedElement.get());
</del><ins>+                page()-&gt;chrome().client().elementDidBlur(*oldFocusedElement);
</ins><span class="cx">             ASSERT(!m_focusedElement);
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -4000,7 +3997,7 @@
</span><span class="cx">     ASSERT(m_frame);
</span><span class="cx">     ASSERT(!m_domWindow);
</span><span class="cx"> 
</span><del>-    m_domWindow = DOMWindow::create(this);
</del><ins>+    m_domWindow = DOMWindow::create(*this);
</ins><span class="cx"> 
</span><span class="cx">     ASSERT(m_domWindow-&gt;document() == this);
</span><span class="cx">     ASSERT(m_domWindow-&gt;frame() == m_frame);
</span><span class="lines">@@ -4015,7 +4012,7 @@
</span><span class="cx">     ASSERT(pageCacheState() == NotInPageCache);
</span><span class="cx"> 
</span><span class="cx">     m_domWindow = WTFMove(document-&gt;m_domWindow);
</span><del>-    m_domWindow-&gt;didSecureTransitionTo(this);
</del><ins>+    m_domWindow-&gt;didSecureTransitionTo(*this);
</ins><span class="cx"> 
</span><span class="cx">     ASSERT(m_domWindow-&gt;document() == this);
</span><span class="cx">     ASSERT(m_domWindow-&gt;frame() == m_frame);
</span><span class="lines">@@ -5573,12 +5570,12 @@
</span><span class="cx">             break;
</span><span class="cx"> 
</span><span class="cx">         bool hasKeyboardAccess = true;
</span><del>-        if (!page()-&gt;chrome().client().supportsFullScreenForElement(element, hasKeyboardAccess)) {
</del><ins>+        if (!page()-&gt;chrome().client().supportsFullScreenForElement(*element, hasKeyboardAccess)) {
</ins><span class="cx">             // The new full screen API does not accept a &quot;flags&quot; parameter, so fall back to disallowing
</span><span class="cx">             // keyboard input if the chrome client refuses to allow keyboard input.
</span><span class="cx">             hasKeyboardAccess = false;
</span><span class="cx"> 
</span><del>-            if (!page()-&gt;chrome().client().supportsFullScreenForElement(element, hasKeyboardAccess))
</del><ins>+            if (!page()-&gt;chrome().client().supportsFullScreenForElement(*element, hasKeyboardAccess))
</ins><span class="cx">                 break;
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -5631,7 +5628,7 @@
</span><span class="cx">         // 5. Return, and run the remaining steps asynchronously.
</span><span class="cx">         // 6. Optionally, perform some animation.
</span><span class="cx">         m_areKeysEnabledInFullScreen = hasKeyboardAccess;
</span><del>-        page()-&gt;chrome().client().enterFullScreenForElement(element);
</del><ins>+        page()-&gt;chrome().client().enterFullScreenForElement(*element);
</ins><span class="cx"> 
</span><span class="cx">         // 7. Optionally, display a message indicating how the user can exit displaying the context object fullscreen.
</span><span class="cx">         return;
</span><span class="lines">@@ -5723,12 +5720,12 @@
</span><span class="cx">     // Only exit out of full screen window mode if there are no remaining elements in the 
</span><span class="cx">     // full screen stack.
</span><span class="cx">     if (!newTop) {
</span><del>-        page()-&gt;chrome().client().exitFullScreenForElement(m_fullScreenElement.get());
</del><ins>+        page()-&gt;chrome().client().exitFullScreenForElement(*m_fullScreenElement);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // Otherwise, notify the chrome of the new full screen element.
</span><del>-    page()-&gt;chrome().client().enterFullScreenForElement(newTop);
</del><ins>+    page()-&gt;chrome().client().enterFullScreenForElement(*newTop);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool Document::webkitFullscreenEnabled() const
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/dom/Element.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -2348,7 +2348,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (document().focusedElement() == this) {
</span><span class="cx">         if (document().page())
</span><del>-            document().page()-&gt;chrome().client().elementDidRefocus(this);
</del><ins>+            document().page()-&gt;chrome().client().elementDidRefocus(*this);
</ins><span class="cx"> 
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -2371,7 +2371,7 @@
</span><span class="cx">         // If a focus event handler changes the focus to a different node it
</span><span class="cx">         // does not make sense to continue and update appearence.
</span><span class="cx">         protect = this;
</span><del>-        if (!page-&gt;focusController().setFocusedElement(this, document().frame(), direction))
</del><ins>+        if (!page-&gt;focusController().setFocusedElement(this, *document().frame(), direction))
</ins><span class="cx">             return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -2441,7 +2441,7 @@
</span><span class="cx">     cancelFocusAppearanceUpdate();
</span><span class="cx">     if (treeScope().focusedElementInScope() == this) {
</span><span class="cx">         if (Frame* frame = document().frame())
</span><del>-            frame-&gt;page()-&gt;focusController().setFocusedElement(0, frame);
</del><ins>+            frame-&gt;page()-&gt;focusController().setFocusedElement(nullptr, *frame);
</ins><span class="cx">         else
</span><span class="cx">             document().setFocusedElement(nullptr);
</span><span class="cx">     }
</span><span class="lines">@@ -2464,7 +2464,7 @@
</span><span class="cx"> void Element::dispatchFocusEvent(RefPtr&lt;Element&gt;&amp;&amp; oldFocusedElement, FocusDirection)
</span><span class="cx"> {
</span><span class="cx">     if (document().page())
</span><del>-        document().page()-&gt;chrome().client().elementDidFocus(this);
</del><ins>+        document().page()-&gt;chrome().client().elementDidFocus(*this);
</ins><span class="cx"> 
</span><span class="cx">     EventDispatcher::dispatchEvent(*this, FocusEvent::create(eventNames().focusEvent, false, false, document().defaultView(), 0, WTFMove(oldFocusedElement)));
</span><span class="cx"> }
</span><span class="lines">@@ -2472,7 +2472,7 @@
</span><span class="cx"> void Element::dispatchBlurEvent(RefPtr&lt;Element&gt;&amp;&amp; newFocusedElement)
</span><span class="cx"> {
</span><span class="cx">     if (document().page())
</span><del>-        document().page()-&gt;chrome().client().elementDidBlur(this);
</del><ins>+        document().page()-&gt;chrome().client().elementDidBlur(*this);
</ins><span class="cx"> 
</span><span class="cx">     EventDispatcher::dispatchEvent(*this, FocusEvent::create(eventNames().blurEvent, false, false, document().defaultView(), 0, WTFMove(newFocusedElement)));
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Node.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Node.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/dom/Node.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -2253,7 +2253,7 @@
</span><span class="cx">     } else if (eventType == eventNames().contextmenuEvent) {
</span><span class="cx">         if (Frame* frame = document().frame())
</span><span class="cx">             if (Page* page = frame-&gt;page())
</span><del>-                page-&gt;contextMenuController().handleContextMenuEvent(&amp;event);
</del><ins>+                page-&gt;contextMenuController().handleContextMenuEvent(event);
</ins><span class="cx"> #endif
</span><span class="cx">     } else if (eventType == eventNames().textInputEvent) {
</span><span class="cx">         if (is&lt;TextEvent&gt;(event)) {
</span><span class="lines">@@ -2272,7 +2272,7 @@
</span><span class="cx"> 
</span><span class="cx">             if (renderer) {
</span><span class="cx">                 if (Frame* frame = document().frame())
</span><del>-                    frame-&gt;eventHandler().startPanScrolling(downcast&lt;RenderBox&gt;(renderer));
</del><ins>+                    frame-&gt;eventHandler().startPanScrolling(downcast&lt;RenderBox&gt;(*renderer));
</ins><span class="cx">             }
</span><span class="cx">         }
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingEditorCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/EditorCommand.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/EditorCommand.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/editing/EditorCommand.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -930,7 +930,7 @@
</span><span class="cx">     Page* page = frame.page();
</span><span class="cx">     if (!page)
</span><span class="cx">         return false;
</span><del>-    page-&gt;chrome().print(&amp;frame);
</del><ins>+    page-&gt;chrome().print(frame);
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingFrameSelectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/FrameSelection.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/FrameSelection.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/editing/FrameSelection.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -2157,7 +2157,7 @@
</span><span class="cx">     bool caretBrowsing = m_frame-&gt;settings().caretBrowsingEnabled();
</span><span class="cx">     if (caretBrowsing) {
</span><span class="cx">         if (Element* anchor = enclosingAnchorElement(m_selection.base())) {
</span><del>-            m_frame-&gt;page()-&gt;focusController().setFocusedElement(anchor, m_frame);
</del><ins>+            m_frame-&gt;page()-&gt;focusController().setFocusedElement(anchor, *m_frame);
</ins><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -2169,16 +2169,16 @@
</span><span class="cx">             // so add the !isFrameElement check here. There's probably a better way to make this
</span><span class="cx">             // work in the long term, but this is the safest fix at this time.
</span><span class="cx">             if (target-&gt;isMouseFocusable() &amp;&amp; !isFrameElement(target)) {
</span><del>-                m_frame-&gt;page()-&gt;focusController().setFocusedElement(target, m_frame);
</del><ins>+                m_frame-&gt;page()-&gt;focusController().setFocusedElement(target, *m_frame);
</ins><span class="cx">                 return;
</span><span class="cx">             }
</span><span class="cx">             target = target-&gt;parentOrShadowHostElement();
</span><span class="cx">         }
</span><del>-        m_frame-&gt;document()-&gt;setFocusedElement(0);
</del><ins>+        m_frame-&gt;document()-&gt;setFocusedElement(nullptr);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (caretBrowsing)
</span><del>-        m_frame-&gt;page()-&gt;focusController().setFocusedElement(0, m_frame);
</del><ins>+        m_frame-&gt;page()-&gt;focusController().setFocusedElement(nullptr, *m_frame);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DragCaretController::paintDragCaret(Frame* frame, GraphicsContext&amp; p, const LayoutPoint&amp; paintOffset, const LayoutRect&amp; clipRect) const
</span><span class="lines">@@ -2328,7 +2328,7 @@
</span><span class="cx">                 layer-&gt;setAdjustForIOSCaretWhenScrolling(false);
</span><span class="cx">                 updateAppearance();
</span><span class="cx">                 if (m_frame-&gt;page())
</span><del>-                    m_frame-&gt;page()-&gt;chrome().client().notifyRevealedSelectionByScrollingFrame(m_frame);
</del><ins>+                    m_frame-&gt;page()-&gt;chrome().client().notifyRevealedSelectionByScrollingFrame(*m_frame);
</ins><span class="cx">             }
</span><span class="cx">         }
</span><span class="cx"> #else
</span></span></pre></div>
<a id="trunkSourceWebCorehistoryCachedFramecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/history/CachedFrame.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/history/CachedFrame.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/history/CachedFrame.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -98,9 +98,9 @@
</span><span class="cx">     frame.loader().client().didRestoreFromPageCache();
</span><span class="cx"> 
</span><span class="cx">     // Reconstruct the FrameTree. And open the child CachedFrames in their respective FrameLoaders.
</span><del>-    for (unsigned i = 0; i &lt; m_childFrames.size(); ++i) {
-        frame.tree().appendChild(&amp;m_childFrames[i]-&gt;view()-&gt;frame());
-        m_childFrames[i]-&gt;open();
</del><ins>+    for (auto&amp; childFrame : m_childFrames) {
+        frame.tree().appendChild(childFrame-&gt;view()-&gt;frame());
+        childFrame-&gt;open();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="lines">@@ -111,7 +111,7 @@
</span><span class="cx">             // FIXME: Add SCROLL_LISTENER to the list of event types on Document, and use m_document-&gt;hasListenerType(). See &lt;rdar://problem/9615482&gt;.
</span><span class="cx">             // FIXME: Can use Document::hasListenerType() now.
</span><span class="cx">             if (domWindow-&gt;scrollEventListenerCount() &amp;&amp; frame.page())
</span><del>-                frame.page()-&gt;chrome().client().setNeedsScrollNotifications(&amp;frame, true);
</del><ins>+                frame.page()-&gt;chrome().client().setNeedsScrollNotifications(frame, true);
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> #endif
</span><span class="lines">@@ -163,7 +163,7 @@
</span><span class="cx">     // 1 - We reuse the main frame, so when it navigates to a new page load it needs to start with a blank FrameTree.
</span><span class="cx">     // 2 - It's much easier to destroy a CachedFrame while it resides in the PageCache if it is disconnected from its parent.
</span><span class="cx">     for (unsigned i = 0; i &lt; m_childFrames.size(); ++i)
</span><del>-        frame.tree().removeChild(&amp;m_childFrames[i]-&gt;view()-&gt;frame());
</del><ins>+        frame.tree().removeChild(m_childFrames[i]-&gt;view()-&gt;frame());
</ins><span class="cx"> 
</span><span class="cx">     if (!m_isMainFrame)
</span><span class="cx">         frame.page()-&gt;decrementSubframeCount();
</span><span class="lines">@@ -181,7 +181,7 @@
</span><span class="cx">     if (m_isMainFrame) {
</span><span class="cx">         if (DOMWindow* domWindow = m_document-&gt;domWindow()) {
</span><span class="cx">             if (domWindow-&gt;scrollEventListenerCount() &amp;&amp; frame.page())
</span><del>-                frame.page()-&gt;chrome().client().setNeedsScrollNotifications(&amp;frame, false);
</del><ins>+                frame.page()-&gt;chrome().client().setNeedsScrollNotifications(frame, false);
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlColorInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/ColorInputType.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/ColorInputType.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/html/ColorInputType.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -156,7 +156,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (Chrome* chrome = this-&gt;chrome()) {
</span><span class="cx">         if (!m_chooser)
</span><del>-            m_chooser = chrome-&gt;createColorChooser(this, valueAsColor());
</del><ins>+            m_chooser = chrome-&gt;createColorChooser(*this, valueAsColor());
</ins><span class="cx">         else
</span><span class="cx">             m_chooser-&gt;reattachColorChooser(valueAsColor());
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLAnchorElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLAnchorElement.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLAnchorElement.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/html/HTMLAnchorElement.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -129,7 +129,7 @@
</span><span class="cx">     if (!document().frame())
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    if (!document().frame()-&gt;eventHandler().tabsToLinks(&amp;event))
</del><ins>+    if (!document().frame()-&gt;eventHandler().tabsToLinks(event))
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     if (!renderer() &amp;&amp; ancestorsOfType&lt;HTMLCanvasElement&gt;(*this).first())
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFormControlElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFormControlElement.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFormControlElement.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/html/HTMLFormControlElement.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -370,10 +370,9 @@
</span><span class="cx"> 
</span><span class="cx"> bool HTMLFormControlElement::isKeyboardFocusable(KeyboardEvent&amp; event) const
</span><span class="cx"> {
</span><del>-    if (isFocusable())
-        if (document().frame())
-            return document().frame()-&gt;eventHandler().tabsToAllFormControls(&amp;event);
-    return false;
</del><ins>+    return isFocusable()
+        &amp;&amp; document().frame()
+        &amp;&amp; document().frame()-&gt;eventHandler().tabsToAllFormControls(event);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool HTMLFormControlElement::isMouseFocusable() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLVideoElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLVideoElement.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLVideoElement.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/html/HTMLVideoElement.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -171,7 +171,7 @@
</span><span class="cx"> #if ENABLE(FULLSCREEN_API)
</span><span class="cx">     // If the full screen API is enabled and is supported for the current element
</span><span class="cx">     // do not require that the player has a video track to enter full screen.
</span><del>-    if (videoFullscreenMode == HTMLMediaElementEnums::VideoFullscreenModeStandard &amp;&amp; page-&gt;chrome().client().supportsFullScreenForElement(this, false))
</del><ins>+    if (videoFullscreenMode == HTMLMediaElementEnums::VideoFullscreenModeStandard &amp;&amp; page-&gt;chrome().client().supportsFullScreenForElement(*this, false))
</ins><span class="cx">         return true;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowSpinButtonElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/SpinButtonElement.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/SpinButtonElement.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/html/shadow/SpinButtonElement.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -119,7 +119,7 @@
</span><span class="cx">                     frame-&gt;eventHandler().setCapturingMouseEventsElement(this);
</span><span class="cx">                     m_capturing = true;
</span><span class="cx">                     if (Page* page = document().page())
</span><del>-                        page-&gt;chrome().registerPopupOpeningObserver(this);
</del><ins>+                        page-&gt;chrome().registerPopupOpeningObserver(*this);
</ins><span class="cx">                 }
</span><span class="cx">             }
</span><span class="cx">             UpDownState oldUpDownState = m_upDownState;
</span><span class="lines">@@ -205,7 +205,7 @@
</span><span class="cx">             frame-&gt;eventHandler().setCapturingMouseEventsElement(nullptr);
</span><span class="cx">             m_capturing = false;
</span><span class="cx">             if (Page* page = document().page())
</span><del>-                page-&gt;chrome().unregisterPopupOpeningObserver(this);
</del><ins>+                page-&gt;chrome().unregisterPopupOpeningObserver(*this);
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowmacImageControlsButtonElementMaccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/mac/ImageControlsButtonElementMac.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/mac/ImageControlsButtonElementMac.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/html/shadow/mac/ImageControlsButtonElementMac.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -117,7 +117,7 @@
</span><span class="cx">         if (!page)
</span><span class="cx">             return;
</span><span class="cx"> 
</span><del>-        page-&gt;contextMenuController().showImageControlsMenu(&amp;event);
</del><ins>+        page-&gt;contextMenuController().showImageControlsMenu(event);
</ins><span class="cx">         event.setDefaultHandled();
</span><span class="cx">         return;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorFrontendHostcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorFrontendHost.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorFrontendHost.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/inspector/InspectorFrontendHost.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -339,8 +339,8 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     auto menuProvider = FrontendMenuProvider::create(this, { &amp;state, frontendApiObject }, items);
</span><del>-    m_frontendPage-&gt;contextMenuController().showContextMenu(event, menuProvider.ptr());
</del><span class="cx">     m_menuProvider = menuProvider.ptr();
</span><ins>+    m_frontendPage-&gt;contextMenuController().showContextMenu(*event, menuProvider);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #endif
</span><span class="lines">@@ -355,7 +355,7 @@
</span><span class="cx">     MouseEvent&amp; mouseEvent = downcast&lt;MouseEvent&gt;(*event);
</span><span class="cx">     IntPoint mousePoint = IntPoint(mouseEvent.clientX(), mouseEvent.clientY());
</span><span class="cx"> 
</span><del>-    m_frontendPage-&gt;contextMenuController().showContextMenuAt(frame, mousePoint);
</del><ins>+    m_frontendPage-&gt;contextMenuController().showContextMenuAt(*frame, mousePoint);
</ins><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(event);
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderEmptyClientscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/EmptyClients.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/EmptyClients.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/loader/EmptyClients.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -572,12 +572,12 @@
</span><span class="cx">     void addVisitedLink(Page&amp;, LinkHash) final { }
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-RefPtr&lt;PopupMenu&gt; EmptyChromeClient::createPopupMenu(PopupMenuClient*) const
</del><ins>+RefPtr&lt;PopupMenu&gt; EmptyChromeClient::createPopupMenu(PopupMenuClient&amp;) const
</ins><span class="cx"> {
</span><span class="cx">     return adoptRef(*new EmptyPopupMenu);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;SearchPopupMenu&gt; EmptyChromeClient::createSearchPopupMenu(PopupMenuClient*) const
</del><ins>+RefPtr&lt;SearchPopupMenu&gt; EmptyChromeClient::createSearchPopupMenu(PopupMenuClient&amp;) const
</ins><span class="cx"> {
</span><span class="cx">     return adoptRef(*new EmptySearchPopupMenu);
</span><span class="cx"> }
</span><span class="lines">@@ -584,7 +584,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INPUT_TYPE_COLOR)
</span><span class="cx"> 
</span><del>-std::unique_ptr&lt;ColorChooser&gt; EmptyChromeClient::createColorChooser(ColorChooserClient*, const Color&amp;)
</del><ins>+std::unique_ptr&lt;ColorChooser&gt; EmptyChromeClient::createColorChooser(ColorChooserClient&amp;, const Color&amp;)
</ins><span class="cx"> {
</span><span class="cx">     return nullptr;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderEmptyClientsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/EmptyClients.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/EmptyClients.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/loader/EmptyClients.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -61,7 +61,7 @@
</span><span class="cx">     void focusedElementChanged(Element*) final { }
</span><span class="cx">     void focusedFrameChanged(Frame*) final { }
</span><span class="cx"> 
</span><del>-    Page* createWindow(Frame*, const FrameLoadRequest&amp;, const WindowFeatures&amp;, const NavigationAction&amp;) final { return nullptr; }
</del><ins>+    Page* createWindow(Frame&amp;, const FrameLoadRequest&amp;, const WindowFeatures&amp;, const NavigationAction&amp;) final { return nullptr; }
</ins><span class="cx">     void show() final { }
</span><span class="cx"> 
</span><span class="cx">     bool canRunModal() final { return false; }
</span><span class="lines">@@ -84,19 +84,19 @@
</span><span class="cx">     void addMessageToConsole(MessageSource, MessageLevel, const String&amp;, unsigned, unsigned, const String&amp;) final { }
</span><span class="cx"> 
</span><span class="cx">     bool canRunBeforeUnloadConfirmPanel() final { return false; }
</span><del>-    bool runBeforeUnloadConfirmPanel(const String&amp;, Frame*) final { return true; }
</del><ins>+    bool runBeforeUnloadConfirmPanel(const String&amp;, Frame&amp;) final { return true; }
</ins><span class="cx"> 
</span><span class="cx">     void closeWindowSoon() final { }
</span><span class="cx"> 
</span><del>-    void runJavaScriptAlert(Frame*, const String&amp;) final { }
-    bool runJavaScriptConfirm(Frame*, const String&amp;) final { return false; }
-    bool runJavaScriptPrompt(Frame*, const String&amp;, const String&amp;, String&amp;) final { return false; }
</del><ins>+    void runJavaScriptAlert(Frame&amp;, const String&amp;) final { }
+    bool runJavaScriptConfirm(Frame&amp;, const String&amp;) final { return false; }
+    bool runJavaScriptPrompt(Frame&amp;, const String&amp;, const String&amp;, String&amp;) final { return false; }
</ins><span class="cx"> 
</span><span class="cx">     bool selectItemWritingDirectionIsNatural() final { return false; }
</span><span class="cx">     bool selectItemAlignmentFollowsMenuWritingDirection() final { return false; }
</span><span class="cx">     bool hasOpenedPopup() const final { return false; }
</span><del>-    RefPtr&lt;PopupMenu&gt; createPopupMenu(PopupMenuClient*) const final;
-    RefPtr&lt;SearchPopupMenu&gt; createSearchPopupMenu(PopupMenuClient*) const final;
</del><ins>+    RefPtr&lt;PopupMenu&gt; createPopupMenu(PopupMenuClient&amp;) const final;
+    RefPtr&lt;SearchPopupMenu&gt; createSearchPopupMenu(PopupMenuClient&amp;) const final;
</ins><span class="cx"> 
</span><span class="cx">     void setStatusbarText(const String&amp;) final { }
</span><span class="cx"> 
</span><span class="lines">@@ -106,9 +106,11 @@
</span><span class="cx">     void invalidateContentsAndRootView(const IntRect&amp;) override { }
</span><span class="cx">     void invalidateContentsForSlowScroll(const IntRect&amp;) final { }
</span><span class="cx">     void scroll(const IntSize&amp;, const IntRect&amp;, const IntRect&amp;) final { }
</span><ins>+
</ins><span class="cx"> #if USE(COORDINATED_GRAPHICS)
</span><span class="cx">     void delegatedScrollRequested(const IntPoint&amp;) final { }
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx"> #if !USE(REQUEST_ANIMATION_FRAME_TIMER)
</span><span class="cx">     void scheduleAnimation() final { }
</span><span class="cx"> #endif
</span><span class="lines">@@ -115,12 +117,14 @@
</span><span class="cx"> 
</span><span class="cx">     IntPoint screenToRootView(const IntPoint&amp; p) const final { return p; }
</span><span class="cx">     IntRect rootViewToScreen(const IntRect&amp; r) const final { return r; }
</span><ins>+
</ins><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     IntPoint accessibilityScreenToRootView(const IntPoint&amp; p) const final { return p; };
</span><span class="cx">     IntRect rootViewToAccessibilityScreen(const IntRect&amp; r) const final { return r; };
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx">     PlatformPageClient platformPageClient() const final { return 0; }
</span><del>-    void contentsSizeChanged(Frame*, const IntSize&amp;) const final { }
</del><ins>+    void contentsSizeChanged(Frame&amp;, const IntSize&amp;) const final { }
</ins><span class="cx"> 
</span><span class="cx">     void scrollbarsModeDidChange() const final { }
</span><span class="cx">     void mouseDidMoveOverElement(const HitTestResult&amp;, unsigned) final { }
</span><span class="lines">@@ -127,22 +131,22 @@
</span><span class="cx"> 
</span><span class="cx">     void setToolTip(const String&amp;, TextDirection) final { }
</span><span class="cx"> 
</span><del>-    void print(Frame*) final { }
</del><ins>+    void print(Frame&amp;) final { }
</ins><span class="cx"> 
</span><del>-    void exceededDatabaseQuota(Frame*, const String&amp;, DatabaseDetails) final { }
</del><ins>+    void exceededDatabaseQuota(Frame&amp;, const String&amp;, DatabaseDetails) final { }
</ins><span class="cx"> 
</span><span class="cx">     void reachedMaxAppCacheSize(int64_t) final { }
</span><del>-    void reachedApplicationCacheOriginQuota(SecurityOrigin*, int64_t) final { }
</del><ins>+    void reachedApplicationCacheOriginQuota(SecurityOrigin&amp;, int64_t) final { }
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(INPUT_TYPE_COLOR)
</span><del>-    std::unique_ptr&lt;ColorChooser&gt; createColorChooser(ColorChooserClient*, const Color&amp;) final;
</del><ins>+    std::unique_ptr&lt;ColorChooser&gt; createColorChooser(ColorChooserClient&amp;, const Color&amp;) final;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     void runOpenPanel(Frame&amp;, FileChooser&amp;) final;
</span><span class="cx">     void loadIconForFiles(const Vector&lt;String&gt;&amp;, FileIconLoader&amp;) final { }
</span><span class="cx"> 
</span><del>-    void elementDidFocus(const Node*) final { }
-    void elementDidBlur(const Node*) final { }
</del><ins>+    void elementDidFocus(Element&amp;) final { }
+    void elementDidBlur(Element&amp;) final { }
</ins><span class="cx"> 
</span><span class="cx"> #if !PLATFORM(IOS)
</span><span class="cx">     void setCursor(const Cursor&amp;) final { }
</span><span class="lines">@@ -151,8 +155,8 @@
</span><span class="cx"> 
</span><span class="cx">     void scrollRectIntoView(const IntRect&amp;) const final { }
</span><span class="cx"> 
</span><del>-    void attachRootGraphicsLayer(Frame*, GraphicsLayer*) final { }
-    void attachViewOverlayGraphicsLayer(Frame*, GraphicsLayer*) final { }
</del><ins>+    void attachRootGraphicsLayer(Frame&amp;, GraphicsLayer*) final { }
+    void attachViewOverlayGraphicsLayer(Frame&amp;, GraphicsLayer*) final { }
</ins><span class="cx">     void setNeedsOneShotDrawingSynchronization() final { }
</span><span class="cx">     void scheduleCompositingLayerFlush() final { }
</span><span class="cx"> 
</span><span class="lines">@@ -162,15 +166,16 @@
</span><span class="cx">     void AXFinishFrameLoad() final { }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-#if PLATFORM(IOS)
</del><span class="cx"> #if ENABLE(IOS_TOUCH_EVENTS)
</span><span class="cx">     void didPreventDefaultForEvent() final { }
</span><span class="cx"> #endif
</span><ins>+
+#if PLATFORM(IOS)
</ins><span class="cx">     void didReceiveMobileDocType(bool) final { }
</span><del>-    void setNeedsScrollNotifications(Frame*, bool) final { }
-    void observedContentChange(Frame*) final { }
-    void clearContentChangeObservers(Frame*) final { }
-    void notifyRevealedSelectionByScrollingFrame(Frame*) final { }
</del><ins>+    void setNeedsScrollNotifications(Frame&amp;, bool) final { }
+    void observedContentChange(Frame&amp;) final { }
+    void clearContentChangeObservers(Frame&amp;) final { }
+    void notifyRevealedSelectionByScrollingFrame(Frame&amp;) final { }
</ins><span class="cx">     void didLayout(LayoutType) final { }
</span><span class="cx">     void didStartOverflowScroll() final { }
</span><span class="cx">     void didEndOverflowScroll() final { }
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderFrameLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/FrameLoader.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/FrameLoader.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/loader/FrameLoader.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -397,7 +397,7 @@
</span><span class="cx"> 
</span><span class="cx">     Frame* targetFrame = findFrameForNavigation(submission-&gt;target(), &amp;submission-&gt;state().sourceDocument());
</span><span class="cx">     if (!targetFrame) {
</span><del>-        if (!DOMWindow::allowPopUp(&amp;m_frame) &amp;&amp; !ScriptController::processingUserGesture())
</del><ins>+        if (!DOMWindow::allowPopUp(m_frame) &amp;&amp; !ScriptController::processingUserGesture())
</ins><span class="cx">             return;
</span><span class="cx"> 
</span><span class="cx">         // FIXME: targetFrame can be null for two distinct reasons:
</span><span class="lines">@@ -1852,11 +1852,9 @@
</span><span class="cx">         history().updateForClientRedirect();
</span><span class="cx"> 
</span><span class="cx">     if (m_loadingFromCachedPage) {
</span><del>-#if PLATFORM(IOS)
</del><span class="cx">         // Note, didReceiveDocType is expected to be called for cached pages. See &lt;rdar://problem/5906758&gt; for more details.
</span><del>-        if (m_frame.document()-&gt;doctype() &amp;&amp; m_frame.page())
-            m_frame.page()-&gt;chrome().didReceiveDocType(&amp;m_frame);
-#endif
</del><ins>+        if (auto* page = m_frame.page())
+            page-&gt;chrome().didReceiveDocType(m_frame);
</ins><span class="cx">         m_frame.document()-&gt;resume(ActiveDOMObject::PageCache);
</span><span class="cx"> 
</span><span class="cx">         // Force a layout to update view size and thereby update scrollbars.
</span><span class="lines">@@ -2439,15 +2437,15 @@
</span><span class="cx">         child-&gt;loader().detachFromParent();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void FrameLoader::closeAndRemoveChild(Frame* child)
</del><ins>+void FrameLoader::closeAndRemoveChild(Frame&amp; child)
</ins><span class="cx"> {
</span><del>-    child-&gt;tree().detachFromParent();
</del><ins>+    child.tree().detachFromParent();
</ins><span class="cx"> 
</span><del>-    child-&gt;setView(nullptr);
-    if (child-&gt;ownerElement() &amp;&amp; child-&gt;page())
-        child-&gt;page()-&gt;decrementSubframeCount();
-    child-&gt;willDetachPage();
-    child-&gt;detachFromPage();
</del><ins>+    child.setView(nullptr);
+    if (child.ownerElement() &amp;&amp; child.page())
+        child.page()-&gt;decrementSubframeCount();
+    child.willDetachPage();
+    child.detachFromPage();
</ins><span class="cx"> 
</span><span class="cx">     m_frame.tree().removeChild(child);
</span><span class="cx"> }
</span><span class="lines">@@ -2528,7 +2526,7 @@
</span><span class="cx">     m_progressTracker = nullptr;
</span><span class="cx"> 
</span><span class="cx">     if (Frame* parent = m_frame.tree().parent()) {
</span><del>-        parent-&gt;loader().closeAndRemoveChild(&amp;m_frame);
</del><ins>+        parent-&gt;loader().closeAndRemoveChild(m_frame);
</ins><span class="cx">         parent-&gt;loader().scheduleCheckCompleted();
</span><span class="cx">     } else {
</span><span class="cx">         m_frame.setView(nullptr);
</span><span class="lines">@@ -3032,7 +3030,7 @@
</span><span class="cx">     frameLoaderBeingNavigated-&gt;m_currentNavigationHasShownBeforeUnloadConfirmPanel = true;
</span><span class="cx"> 
</span><span class="cx">     String text = document-&gt;displayStringModifiedByEncoding(beforeUnloadEvent-&gt;returnValue());
</span><del>-    return chrome.runBeforeUnloadConfirmPanel(text, &amp;m_frame);
</del><ins>+    return chrome.runBeforeUnloadConfirmPanel(text, m_frame);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void FrameLoader::continueLoadAfterNavigationPolicy(const ResourceRequest&amp; request, FormState* formState, bool shouldContinue, AllowNavigationToInvalidURL allowNavigationToInvalidURL)
</span><span class="lines">@@ -3657,7 +3655,7 @@
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     ShouldOpenExternalURLsPolicy shouldOpenExternalURLsPolicy = shouldOpenExternalURLsPolicyToApply(openerFrame, request.shouldOpenExternalURLsPolicy());
</span><del>-    Page* page = oldPage-&gt;chrome().createWindow(&amp;openerFrame, requestWithReferrer, features, NavigationAction(requestWithReferrer.resourceRequest(), shouldOpenExternalURLsPolicy));
</del><ins>+    Page* page = oldPage-&gt;chrome().createWindow(openerFrame, requestWithReferrer, features, NavigationAction(requestWithReferrer.resourceRequest(), shouldOpenExternalURLsPolicy));
</ins><span class="cx">     if (!page)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="lines">@@ -3705,7 +3703,7 @@
</span><span class="cx">         windowRect.setHeight(*features.height + (windowRect.height() - viewportSize.height()));
</span><span class="cx"> 
</span><span class="cx">     // Ensure non-NaN values, minimum size as well as being within valid screen area.
</span><del>-    FloatRect newWindowRect = DOMWindow::adjustWindowRect(page, windowRect);
</del><ins>+    FloatRect newWindowRect = DOMWindow::adjustWindowRect(*page, windowRect);
</ins><span class="cx"> 
</span><span class="cx">     if (!frame-&gt;page())
</span><span class="cx">         return nullptr;
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderFrameLoaderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/FrameLoader.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/FrameLoader.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/loader/FrameLoader.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -366,7 +366,7 @@
</span><span class="cx">     void requestFromDelegate(ResourceRequest&amp;, unsigned long&amp; identifier, ResourceError&amp;);
</span><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT void detachChildren();
</span><del>-    void closeAndRemoveChild(Frame*);
</del><ins>+    void closeAndRemoveChild(Frame&amp;);
</ins><span class="cx"> 
</span><span class="cx">     void loadInSameDocument(const URL&amp;, SerializedScriptValue* stateObject, bool isNewNavigation);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderPolicyCheckercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/PolicyChecker.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/PolicyChecker.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/loader/PolicyChecker.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -157,7 +157,7 @@
</span><span class="cx">     if (m_frame.document() &amp;&amp; m_frame.document()-&gt;isSandboxed(SandboxPopups))
</span><span class="cx">         return continueAfterNavigationPolicy(PolicyIgnore);
</span><span class="cx"> 
</span><del>-    if (!DOMWindow::allowPopUp(&amp;m_frame))
</del><ins>+    if (!DOMWindow::allowPopUp(m_frame))
</ins><span class="cx">         return continueAfterNavigationPolicy(PolicyIgnore);
</span><span class="cx"> 
</span><span class="cx">     m_callback.set(request, formState, frameName, action, WTFMove(function));
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderappcacheApplicationCacheGroupcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -784,7 +784,7 @@
</span><span class="cx"> 
</span><span class="cx"> void ApplicationCacheGroup::recalculateAvailableSpaceInQuota()
</span><span class="cx"> {
</span><del>-    if (!m_frame-&gt;page()-&gt;applicationCacheStorage().calculateRemainingSizeForOriginExcludingCache(m_origin.get(), m_newestCache.get(), m_availableSpaceInQuota)) {
</del><ins>+    if (!m_frame-&gt;page()-&gt;applicationCacheStorage().calculateRemainingSizeForOriginExcludingCache(m_origin, m_newestCache.get(), m_availableSpaceInQuota)) {
</ins><span class="cx">         // Failed to determine what is left in the quota. Fallback to allowing anything.
</span><span class="cx">         m_availableSpaceInQuota = ApplicationCacheStorage::noQuota();
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderappcacheApplicationCacheGrouph"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/appcache/ApplicationCacheGroup.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/appcache/ApplicationCacheGroup.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/loader/appcache/ApplicationCacheGroup.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx"> 
</span><span class="cx">     ApplicationCacheStorage&amp; storage() { return m_storage; }
</span><span class="cx">     const URL&amp; manifestURL() const { return m_manifestURL; }
</span><del>-    const SecurityOrigin* origin() const { return m_origin.get(); }
</del><ins>+    const SecurityOrigin&amp; origin() const { return m_origin.get(); }
</ins><span class="cx">     UpdateStatus updateStatus() const { return m_updateStatus; }
</span><span class="cx">     void setUpdateStatus(UpdateStatus status);
</span><span class="cx"> 
</span><span class="lines">@@ -135,7 +135,7 @@
</span><span class="cx">     Ref&lt;ApplicationCacheStorage&gt; m_storage;
</span><span class="cx"> 
</span><span class="cx">     URL m_manifestURL;
</span><del>-    RefPtr&lt;SecurityOrigin&gt; m_origin;
</del><ins>+    Ref&lt;SecurityOrigin&gt; m_origin;
</ins><span class="cx">     UpdateStatus m_updateStatus { Idle };
</span><span class="cx">     
</span><span class="cx">     // This is the newest complete cache in the group.
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderappcacheApplicationCacheStoragecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -421,7 +421,7 @@
</span><span class="cx">     m_defaultOriginQuota = quota;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool ApplicationCacheStorage::calculateQuotaForOrigin(const SecurityOrigin* origin, int64_t&amp; quota)
</del><ins>+bool ApplicationCacheStorage::calculateQuotaForOrigin(const SecurityOrigin&amp; origin, int64_t&amp; quota)
</ins><span class="cx"> {
</span><span class="cx">     SQLiteTransactionInProgressAutoCounter transactionCounter;
</span><span class="cx"> 
</span><span class="lines">@@ -432,7 +432,7 @@
</span><span class="cx">     if (statement.prepare() != SQLITE_OK)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    statement.bindText(1, SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier());
</del><ins>+    statement.bindText(1, SecurityOriginData::fromSecurityOrigin(origin).databaseIdentifier());
</ins><span class="cx">     int result = statement.step();
</span><span class="cx"> 
</span><span class="cx">     // Return the quota, or if it was null the default.
</span><span class="lines">@@ -472,7 +472,7 @@
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool ApplicationCacheStorage::calculateRemainingSizeForOriginExcludingCache(const SecurityOrigin* origin, ApplicationCache* cache, int64_t&amp; remainingSize)
</del><ins>+bool ApplicationCacheStorage::calculateRemainingSizeForOriginExcludingCache(const SecurityOrigin&amp; origin, ApplicationCache* cache, int64_t&amp; remainingSize)
</ins><span class="cx"> {
</span><span class="cx">     SQLiteTransactionInProgressAutoCounter transactionCounter;
</span><span class="cx"> 
</span><span class="lines">@@ -503,7 +503,7 @@
</span><span class="cx">     if (statement.prepare() != SQLITE_OK)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    statement.bindText(1, SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier());
</del><ins>+    statement.bindText(1, SecurityOriginData::fromSecurityOrigin(origin).databaseIdentifier());
</ins><span class="cx">     if (excludingCacheIdentifier != 0)
</span><span class="cx">         statement.bindInt64(2, excludingCacheIdentifier);
</span><span class="cx">     int result = statement.step();
</span><span class="lines">@@ -688,7 +688,7 @@
</span><span class="cx"> 
</span><span class="cx">     statement.bindInt64(1, urlHostHash(group-&gt;manifestURL()));
</span><span class="cx">     statement.bindText(2, group-&gt;manifestURL());
</span><del>-    statement.bindText(3, SecurityOriginData::fromSecurityOrigin(*group-&gt;origin()).databaseIdentifier());
</del><ins>+    statement.bindText(3, SecurityOriginData::fromSecurityOrigin(group-&gt;origin()).databaseIdentifier());
</ins><span class="cx"> 
</span><span class="cx">     if (!executeStatement(statement))
</span><span class="cx">         return false;
</span><span class="lines">@@ -695,7 +695,7 @@
</span><span class="cx"> 
</span><span class="cx">     unsigned groupStorageID = static_cast&lt;unsigned&gt;(m_database.lastInsertRowID());
</span><span class="cx"> 
</span><del>-    if (!ensureOriginRecord(group-&gt;origin()))
</del><ins>+    if (!ensureOriginRecord(&amp;group-&gt;origin()))
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     group-&gt;setStorageID(groupStorageID);
</span><span class="lines">@@ -971,7 +971,7 @@
</span><span class="cx"> {
</span><span class="cx">     // Check if the oldCache with the newCache would reach the per-origin quota.
</span><span class="cx">     int64_t remainingSpaceInOrigin;
</span><del>-    const SecurityOrigin* origin = group-&gt;origin();
</del><ins>+    auto&amp; origin = group-&gt;origin();
</ins><span class="cx">     if (calculateRemainingSizeForOriginExcludingCache(origin, oldCache, remainingSpaceInOrigin)) {
</span><span class="cx">         if (remainingSpaceInOrigin &lt; newCache-&gt;estimatedSizeInStorage()) {
</span><span class="cx">             int64_t quota;
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderappcacheApplicationCacheStorageh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/appcache/ApplicationCacheStorage.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/appcache/ApplicationCacheStorage.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/loader/appcache/ApplicationCacheStorage.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -63,8 +63,8 @@
</span><span class="cx">     int64_t defaultOriginQuota() const { return m_defaultOriginQuota; }
</span><span class="cx">     WEBCORE_EXPORT void setDefaultOriginQuota(int64_t quota);
</span><span class="cx">     WEBCORE_EXPORT bool calculateUsageForOrigin(const SecurityOrigin*, int64_t&amp; usage);
</span><del>-    WEBCORE_EXPORT bool calculateQuotaForOrigin(const SecurityOrigin*, int64_t&amp; quota);
-    bool calculateRemainingSizeForOriginExcludingCache(const SecurityOrigin*, ApplicationCache*, int64_t&amp; remainingSize);
</del><ins>+    WEBCORE_EXPORT bool calculateQuotaForOrigin(const SecurityOrigin&amp;, int64_t&amp; quota);
+    bool calculateRemainingSizeForOriginExcludingCache(const SecurityOrigin&amp;, ApplicationCache*, int64_t&amp; remainingSize);
</ins><span class="cx">     WEBCORE_EXPORT bool storeUpdatedQuotaForOrigin(const SecurityOrigin*, int64_t quota);
</span><span class="cx">     bool checkOriginQuota(ApplicationCacheGroup*, ApplicationCache* oldCache, ApplicationCache* newCache, int64_t&amp; totalSpaceNeeded);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderarchivemhtmlMHTMLArchivecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/archive/mhtml/MHTMLArchive.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/archive/mhtml/MHTMLArchive.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/loader/archive/mhtml/MHTMLArchive.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -133,8 +133,8 @@
</span><span class="cx"> RefPtr&lt;SharedBuffer&gt; MHTMLArchive::generateMHTMLData(Page* page)
</span><span class="cx"> {
</span><span class="cx">     Vector&lt;PageSerializer::Resource&gt; resources;
</span><del>-    PageSerializer pageSerializer(&amp;resources);
-    pageSerializer.serialize(page);
</del><ins>+    PageSerializer pageSerializer(resources);
+    pageSerializer.serialize(*page);
</ins><span class="cx"> 
</span><span class="cx">     String boundary = generateRandomBoundary();
</span><span class="cx">     String endOfResourceBoundary = makeString(&quot;--&quot;, boundary, &quot;\r\n&quot;);
</span></span></pre></div>
<a id="trunkSourceWebCoremathmlMathMLElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/mathml/MathMLElement.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/mathml/MathMLElement.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/mathml/MathMLElement.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -182,7 +182,7 @@
</span><span class="cx">         return StyledElement::isKeyboardFocusable(event);
</span><span class="cx"> 
</span><span class="cx">     if (isLink())
</span><del>-        return document().frame()-&gt;eventHandler().tabsToLinks(&amp;event);
</del><ins>+        return document().frame()-&gt;eventHandler().tabsToLinks(event);
</ins><span class="cx"> 
</span><span class="cx">     return StyledElement::isKeyboardFocusable(event);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorepageChromecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Chrome.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Chrome.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/Chrome.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -48,7 +48,6 @@
</span><span class="cx"> #include &quot;StorageNamespace.h&quot;
</span><span class="cx"> #include &quot;WindowFeatures.h&quot;
</span><span class="cx"> #include &lt;runtime/VM.h&gt;
</span><del>-#include &lt;wtf/PassRefPtr.h&gt;
</del><span class="cx"> #include &lt;wtf/SetForScope.h&gt;
</span><span class="cx"> #include &lt;wtf/Vector.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -63,10 +62,6 @@
</span><span class="cx"> Chrome::Chrome(Page&amp; page, ChromeClient&amp; client)
</span><span class="cx">     : m_page(page)
</span><span class="cx">     , m_client(client)
</span><del>-    , m_displayID(0)
-#if PLATFORM(IOS)
-    , m_isDispatchViewportDataDidChangeSuppressed(false)
-#endif
</del><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -114,6 +109,7 @@
</span><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> #if PLATFORM(IOS)
</span><ins>+
</ins><span class="cx"> IntPoint Chrome::accessibilityScreenToRootView(const IntPoint&amp; point) const
</span><span class="cx"> {
</span><span class="cx">     return m_client.accessibilityScreenToRootView(point);
</span><span class="lines">@@ -123,6 +119,7 @@
</span><span class="cx"> {
</span><span class="cx">     return m_client.rootViewToAccessibilityScreen(rect);
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> PlatformPageClient Chrome::platformPageClient() const
</span><span class="lines">@@ -130,7 +127,7 @@
</span><span class="cx">     return m_client.platformPageClient();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Chrome::contentsSizeChanged(Frame* frame, const IntSize&amp; size) const
</del><ins>+void Chrome::contentsSizeChanged(Frame&amp; frame, const IntSize&amp; size) const
</ins><span class="cx"> {
</span><span class="cx">     m_client.contentsSizeChanged(frame, size);
</span><span class="cx"> }
</span><span class="lines">@@ -190,15 +187,13 @@
</span><span class="cx">     m_client.focusedFrameChanged(frame);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Page* Chrome::createWindow(Frame* frame, const FrameLoadRequest&amp; request, const WindowFeatures&amp; features, const NavigationAction&amp; action) const
</del><ins>+Page* Chrome::createWindow(Frame&amp; frame, const FrameLoadRequest&amp; request, const WindowFeatures&amp; features, const NavigationAction&amp; action) const
</ins><span class="cx"> {
</span><span class="cx">     Page* newPage = m_client.createWindow(frame, request, features, action);
</span><span class="cx">     if (!newPage)
</span><del>-        return 0;
-
-    if (StorageNamespace* oldSessionStorage = m_page.sessionStorage(false))
</del><ins>+        return nullptr;
+    if (auto* oldSessionStorage = m_page.sessionStorage(false))
</ins><span class="cx">         newPage-&gt;setSessionStorage(oldSessionStorage-&gt;copy(newPage));
</span><del>-
</del><span class="cx">     return newPage;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -276,7 +271,7 @@
</span><span class="cx">     return m_client.canRunBeforeUnloadConfirmPanel();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool Chrome::runBeforeUnloadConfirmPanel(const String&amp; message, Frame* frame)
</del><ins>+bool Chrome::runBeforeUnloadConfirmPanel(const String&amp; message, Frame&amp; frame)
</ins><span class="cx"> {
</span><span class="cx">     // Defer loads in case the client method runs a new event loop that would
</span><span class="cx">     // otherwise cause the load to continue while we're in the middle of executing JavaScript.
</span><span class="lines">@@ -290,53 +285,47 @@
</span><span class="cx">     m_client.closeWindowSoon();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Chrome::runJavaScriptAlert(Frame* frame, const String&amp; message)
</del><ins>+void Chrome::runJavaScriptAlert(Frame&amp; frame, const String&amp; message)
</ins><span class="cx"> {
</span><span class="cx">     // Defer loads in case the client method runs a new event loop that would
</span><span class="cx">     // otherwise cause the load to continue while we're in the middle of executing JavaScript.
</span><span class="cx">     PageGroupLoadDeferrer deferrer(m_page, true);
</span><span class="cx"> 
</span><del>-    ASSERT(frame);
</del><span class="cx">     notifyPopupOpeningObservers();
</span><del>-    String displayMessage = frame-&gt;displayStringModifiedByEncoding(message);
</del><ins>+    String displayMessage = frame.displayStringModifiedByEncoding(message);
</ins><span class="cx"> 
</span><span class="cx">     m_client.runJavaScriptAlert(frame, displayMessage);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool Chrome::runJavaScriptConfirm(Frame* frame, const String&amp; message)
</del><ins>+bool Chrome::runJavaScriptConfirm(Frame&amp; frame, const String&amp; message)
</ins><span class="cx"> {
</span><span class="cx">     // Defer loads in case the client method runs a new event loop that would
</span><span class="cx">     // otherwise cause the load to continue while we're in the middle of executing JavaScript.
</span><span class="cx">     PageGroupLoadDeferrer deferrer(m_page, true);
</span><span class="cx"> 
</span><del>-    ASSERT(frame);
</del><span class="cx">     notifyPopupOpeningObservers();
</span><del>-    String displayMessage = frame-&gt;displayStringModifiedByEncoding(message);
-
-    return m_client.runJavaScriptConfirm(frame, displayMessage);
</del><ins>+    return m_client.runJavaScriptConfirm(frame, frame.displayStringModifiedByEncoding(message));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool Chrome::runJavaScriptPrompt(Frame* frame, const String&amp; prompt, const String&amp; defaultValue, String&amp; result)
</del><ins>+bool Chrome::runJavaScriptPrompt(Frame&amp; frame, const String&amp; prompt, const String&amp; defaultValue, String&amp; result)
</ins><span class="cx"> {
</span><span class="cx">     // Defer loads in case the client method runs a new event loop that would
</span><span class="cx">     // otherwise cause the load to continue while we're in the middle of executing JavaScript.
</span><span class="cx">     PageGroupLoadDeferrer deferrer(m_page, true);
</span><span class="cx"> 
</span><del>-    ASSERT(frame);
</del><span class="cx">     notifyPopupOpeningObservers();
</span><del>-    String displayPrompt = frame-&gt;displayStringModifiedByEncoding(prompt);
</del><ins>+    String displayPrompt = frame.displayStringModifiedByEncoding(prompt);
</ins><span class="cx"> 
</span><del>-    bool ok = m_client.runJavaScriptPrompt(frame, displayPrompt, frame-&gt;displayStringModifiedByEncoding(defaultValue), result);
</del><ins>+    bool ok = m_client.runJavaScriptPrompt(frame, displayPrompt, frame.displayStringModifiedByEncoding(defaultValue), result);
</ins><span class="cx">     if (ok)
</span><del>-        result = frame-&gt;displayStringModifiedByEncoding(result);
</del><ins>+        result = frame.displayStringModifiedByEncoding(result);
</ins><span class="cx"> 
</span><span class="cx">     return ok;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Chrome::setStatusbarText(Frame* frame, const String&amp; status)
</del><ins>+void Chrome::setStatusbarText(Frame&amp; frame, const String&amp; status)
</ins><span class="cx"> {
</span><del>-    ASSERT(frame);
-    m_client.setStatusbarText(frame-&gt;displayStringModifiedByEncoding(status));
</del><ins>+    m_client.setStatusbarText(frame.displayStringModifiedByEncoding(status));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Chrome::mouseDidMoveOverElement(const HitTestResult&amp; result, unsigned modifierFlags)
</span><span class="lines">@@ -407,9 +396,9 @@
</span><span class="cx">     m_client.setToolTip(toolTip, toolTipDirection);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Chrome::print(Frame* frame)
</del><ins>+void Chrome::print(Frame&amp; frame)
</ins><span class="cx"> {
</span><del>-    // FIXME: This should have PageGroupLoadDeferrer, like runModal() or runJavaScriptAlert(), becasue it's no different from those.
</del><ins>+    // FIXME: This should have PageGroupLoadDeferrer, like runModal() or runJavaScriptAlert(), because it's no different from those.
</ins><span class="cx">     m_client.print(frame);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -424,11 +413,13 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INPUT_TYPE_COLOR)
</span><del>-std::unique_ptr&lt;ColorChooser&gt; Chrome::createColorChooser(ColorChooserClient* client, const Color&amp; initialColor)
</del><ins>+
+std::unique_ptr&lt;ColorChooser&gt; Chrome::createColorChooser(ColorChooserClient&amp; client, const Color&amp; initialColor)
</ins><span class="cx"> {
</span><span class="cx">     notifyPopupOpeningObservers();
</span><span class="cx">     return m_client.createColorChooser(client, initialColor);
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> void Chrome::runOpenPanel(Frame&amp; frame, FileChooser&amp; fileChooser)
</span><span class="lines">@@ -538,13 +529,13 @@
</span><span class="cx">     return m_client.hasOpenedPopup();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;PopupMenu&gt; Chrome::createPopupMenu(PopupMenuClient* client) const
</del><ins>+RefPtr&lt;PopupMenu&gt; Chrome::createPopupMenu(PopupMenuClient&amp; client) const
</ins><span class="cx"> {
</span><span class="cx">     notifyPopupOpeningObservers();
</span><span class="cx">     return m_client.createPopupMenu(client);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;SearchPopupMenu&gt; Chrome::createSearchPopupMenu(PopupMenuClient* client) const
</del><ins>+RefPtr&lt;SearchPopupMenu&gt; Chrome::createSearchPopupMenu(PopupMenuClient&amp; client) const
</ins><span class="cx"> {
</span><span class="cx">     notifyPopupOpeningObservers();
</span><span class="cx">     return m_client.createSearchPopupMenu(client);
</span><span class="lines">@@ -555,30 +546,27 @@
</span><span class="cx">     return m_client.requiresFullscreenForVideoPlayback();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-#if PLATFORM(IOS)
-// FIXME: Make argument, frame, a reference.
-void Chrome::didReceiveDocType(Frame* frame)
</del><ins>+void Chrome::didReceiveDocType(Frame&amp; frame)
</ins><span class="cx"> {
</span><del>-    ASSERT(frame);
-    if (!frame-&gt;isMainFrame())
</del><ins>+#if !PLATFORM(IOS)
+    UNUSED_PARAM(frame);
+#else
+    if (!frame.isMainFrame())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    bool hasMobileDocType = false;
-    if (DocumentType* documentType = frame-&gt;document()-&gt;doctype())
-        hasMobileDocType = documentType-&gt;publicId().contains(&quot;xhtml mobile&quot;, false);
-    m_client.didReceiveMobileDocType(hasMobileDocType);
</del><ins>+    auto* doctype = frame.document()-&gt;doctype();
+    m_client.didReceiveMobileDocType(doctype &amp;&amp; doctype-&gt;publicId().containsIgnoringASCIICase(&quot;xhtml mobile&quot;));
+#endif
</ins><span class="cx"> }
</span><del>-#endif
</del><span class="cx"> 
</span><del>-void Chrome::registerPopupOpeningObserver(PopupOpeningObserver* observer)
</del><ins>+void Chrome::registerPopupOpeningObserver(PopupOpeningObserver&amp; observer)
</ins><span class="cx"> {
</span><del>-    ASSERT(observer);
-    m_popupOpeningObservers.append(observer);
</del><ins>+    m_popupOpeningObservers.append(&amp;observer);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Chrome::unregisterPopupOpeningObserver(PopupOpeningObserver* observer)
</del><ins>+void Chrome::unregisterPopupOpeningObserver(PopupOpeningObserver&amp; observer)
</ins><span class="cx"> {
</span><del>-    bool removed = m_popupOpeningObservers.removeFirst(observer);
</del><ins>+    bool removed = m_popupOpeningObservers.removeFirst(&amp;observer);
</ins><span class="cx">     ASSERT_UNUSED(removed, removed);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageChromeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Chrome.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Chrome.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/Chrome.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -95,7 +95,7 @@
</span><span class="cx"> 
</span><span class="cx">     void scrollRectIntoView(const IntRect&amp;) const;
</span><span class="cx"> 
</span><del>-    void contentsSizeChanged(Frame*, const IntSize&amp;) const;
</del><ins>+    void contentsSizeChanged(Frame&amp;, const IntSize&amp;) const;
</ins><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT void setWindowRect(const FloatRect&amp;) const;
</span><span class="cx">     WEBCORE_EXPORT FloatRect windowRect() const;
</span><span class="lines">@@ -111,7 +111,7 @@
</span><span class="cx">     void focusedElementChanged(Element*) const;
</span><span class="cx">     void focusedFrameChanged(Frame*) const;
</span><span class="cx"> 
</span><del>-    WEBCORE_EXPORT Page* createWindow(Frame*, const FrameLoadRequest&amp;, const WindowFeatures&amp;, const NavigationAction&amp;) const;
</del><ins>+    WEBCORE_EXPORT Page* createWindow(Frame&amp;, const FrameLoadRequest&amp;, const WindowFeatures&amp;, const NavigationAction&amp;) const;
</ins><span class="cx">     WEBCORE_EXPORT void show() const;
</span><span class="cx"> 
</span><span class="cx">     bool canRunModal() const;
</span><span class="lines">@@ -132,26 +132,26 @@
</span><span class="cx">     void setResizable(bool) const;
</span><span class="cx"> 
</span><span class="cx">     bool canRunBeforeUnloadConfirmPanel();
</span><del>-    bool runBeforeUnloadConfirmPanel(const String&amp; message, Frame*);
</del><ins>+    bool runBeforeUnloadConfirmPanel(const String&amp; message, Frame&amp;);
</ins><span class="cx"> 
</span><span class="cx">     void closeWindowSoon();
</span><span class="cx"> 
</span><del>-    void runJavaScriptAlert(Frame*, const String&amp;);
-    bool runJavaScriptConfirm(Frame*, const String&amp;);
-    bool runJavaScriptPrompt(Frame*, const String&amp; message, const String&amp; defaultValue, String&amp; result);
-    WEBCORE_EXPORT void setStatusbarText(Frame*, const String&amp;);
</del><ins>+    void runJavaScriptAlert(Frame&amp;, const String&amp;);
+    bool runJavaScriptConfirm(Frame&amp;, const String&amp;);
+    bool runJavaScriptPrompt(Frame&amp;, const String&amp; message, const String&amp; defaultValue, String&amp; result);
+    WEBCORE_EXPORT void setStatusbarText(Frame&amp;, const String&amp;);
</ins><span class="cx"> 
</span><span class="cx">     void mouseDidMoveOverElement(const HitTestResult&amp;, unsigned modifierFlags);
</span><span class="cx"> 
</span><span class="cx">     void setToolTip(const HitTestResult&amp;);
</span><span class="cx"> 
</span><del>-    WEBCORE_EXPORT void print(Frame*);
</del><ins>+    WEBCORE_EXPORT void print(Frame&amp;);
</ins><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT void enableSuddenTermination();
</span><span class="cx">     WEBCORE_EXPORT void disableSuddenTermination();
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INPUT_TYPE_COLOR)
</span><del>-    std::unique_ptr&lt;ColorChooser&gt; createColorChooser(ColorChooserClient*, const Color&amp; initialColor);
</del><ins>+    std::unique_ptr&lt;ColorChooser&gt; createColorChooser(ColorChooserClient&amp;, const Color&amp; initialColor);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     void runOpenPanel(Frame&amp;, FileChooser&amp;);
</span><span class="lines">@@ -168,28 +168,28 @@
</span><span class="cx">     bool selectItemWritingDirectionIsNatural();
</span><span class="cx">     bool selectItemAlignmentFollowsMenuWritingDirection();
</span><span class="cx">     bool hasOpenedPopup() const;
</span><del>-    RefPtr&lt;PopupMenu&gt; createPopupMenu(PopupMenuClient*) const;
-    RefPtr&lt;SearchPopupMenu&gt; createSearchPopupMenu(PopupMenuClient*) const;
</del><ins>+    RefPtr&lt;PopupMenu&gt; createPopupMenu(PopupMenuClient&amp;) const;
+    RefPtr&lt;SearchPopupMenu&gt; createSearchPopupMenu(PopupMenuClient&amp;) const;
</ins><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     // FIXME: Can we come up with a better name for this setter?
</span><span class="cx">     void setDispatchViewportDataDidChangeSuppressed(bool dispatchViewportDataDidChangeSuppressed) { m_isDispatchViewportDataDidChangeSuppressed = dispatchViewportDataDidChangeSuppressed; }
</span><del>-
-    void didReceiveDocType(Frame*);
</del><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    void registerPopupOpeningObserver(PopupOpeningObserver*);
-    void unregisterPopupOpeningObserver(PopupOpeningObserver*);
</del><ins>+    void didReceiveDocType(Frame&amp;);
</ins><span class="cx"> 
</span><ins>+    void registerPopupOpeningObserver(PopupOpeningObserver&amp;);
+    void unregisterPopupOpeningObserver(PopupOpeningObserver&amp;);
+
</ins><span class="cx"> private:
</span><span class="cx">     void notifyPopupOpeningObservers() const;
</span><span class="cx"> 
</span><span class="cx">     Page&amp; m_page;
</span><span class="cx">     ChromeClient&amp; m_client;
</span><del>-    PlatformDisplayID m_displayID;
</del><ins>+    PlatformDisplayID m_displayID { 0 };
</ins><span class="cx">     Vector&lt;PopupOpeningObserver*&gt; m_popupOpeningObservers;
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>-    bool m_isDispatchViewportDataDidChangeSuppressed;
</del><ins>+    bool m_isDispatchViewportDataDidChangeSuppressed { false };
</ins><span class="cx"> #endif
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageChromeClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/ChromeClient.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/ChromeClient.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/ChromeClient.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -123,7 +123,7 @@
</span><span class="cx">     // created Page has its show method called.
</span><span class="cx">     // The FrameLoadRequest parameter is only for ChromeClient to check if the
</span><span class="cx">     // request could be fulfilled. The ChromeClient should not load the request.
</span><del>-    virtual Page* createWindow(Frame*, const FrameLoadRequest&amp;, const WindowFeatures&amp;, const NavigationAction&amp;) = 0;
</del><ins>+    virtual Page* createWindow(Frame&amp;, const FrameLoadRequest&amp;, const WindowFeatures&amp;, const NavigationAction&amp;) = 0;
</ins><span class="cx">     virtual void show() = 0;
</span><span class="cx"> 
</span><span class="cx">     virtual bool canRunModal() = 0;
</span><span class="lines">@@ -146,63 +146,67 @@
</span><span class="cx">     virtual void addMessageToConsole(MessageSource, MessageLevel, const String&amp; message, unsigned lineNumber, unsigned columnNumber, const String&amp; sourceID) = 0;
</span><span class="cx"> 
</span><span class="cx">     virtual bool canRunBeforeUnloadConfirmPanel() = 0;
</span><del>-    virtual bool runBeforeUnloadConfirmPanel(const String&amp; message, Frame*) = 0;
</del><ins>+    virtual bool runBeforeUnloadConfirmPanel(const String&amp; message, Frame&amp;) = 0;
</ins><span class="cx"> 
</span><span class="cx">     virtual void closeWindowSoon() = 0;
</span><span class="cx"> 
</span><del>-    virtual void runJavaScriptAlert(Frame*, const String&amp;) = 0;
-    virtual bool runJavaScriptConfirm(Frame*, const String&amp;) = 0;
-    virtual bool runJavaScriptPrompt(Frame*, const String&amp; message, const String&amp; defaultValue, String&amp; result) = 0;
</del><ins>+    virtual void runJavaScriptAlert(Frame&amp;, const String&amp;) = 0;
+    virtual bool runJavaScriptConfirm(Frame&amp;, const String&amp;) = 0;
+    virtual bool runJavaScriptPrompt(Frame&amp;, const String&amp; message, const String&amp; defaultValue, String&amp; result) = 0;
</ins><span class="cx">     virtual void setStatusbarText(const String&amp;) = 0;
</span><span class="cx">     virtual KeyboardUIMode keyboardUIMode() = 0;
</span><span class="cx"> 
</span><del>-    // Methods used by HostWindow.
</del><span class="cx">     virtual bool supportsImmediateInvalidation() { return false; }
</span><span class="cx">     virtual void invalidateRootView(const IntRect&amp;) = 0;
</span><span class="cx">     virtual void invalidateContentsAndRootView(const IntRect&amp;) = 0;
</span><span class="cx">     virtual void invalidateContentsForSlowScroll(const IntRect&amp;) = 0;
</span><span class="cx">     virtual void scroll(const IntSize&amp;, const IntRect&amp;, const IntRect&amp;) = 0;
</span><ins>+
</ins><span class="cx"> #if USE(COORDINATED_GRAPHICS)
</span><span class="cx">     virtual void delegatedScrollRequested(const IntPoint&amp;) = 0;
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx">     virtual IntPoint screenToRootView(const IntPoint&amp;) const = 0;
</span><span class="cx">     virtual IntRect rootViewToScreen(const IntRect&amp;) const = 0;
</span><ins>+
</ins><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     virtual IntPoint accessibilityScreenToRootView(const IntPoint&amp;) const = 0;
</span><span class="cx">     virtual IntRect rootViewToAccessibilityScreen(const IntRect&amp;) const = 0;
</span><span class="cx"> #endif    
</span><ins>+
</ins><span class="cx">     virtual PlatformPageClient platformPageClient() const = 0;
</span><span class="cx">     virtual void scrollbarsModeDidChange() const = 0;
</span><ins>+
</ins><span class="cx"> #if ENABLE(CURSOR_SUPPORT)
</span><span class="cx">     virtual void setCursor(const Cursor&amp;) = 0;
</span><span class="cx">     virtual void setCursorHiddenUntilMouseMoves(bool) = 0;
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx"> #if !USE(REQUEST_ANIMATION_FRAME_TIMER)
</span><span class="cx">     virtual void scheduleAnimation() = 0;
</span><span class="cx"> #endif
</span><del>-    // End methods used by HostWindow.
</del><span class="cx"> 
</span><del>-    virtual FloatSize screenSize() const { return const_cast&lt;ChromeClient*&gt;(this)-&gt;windowRect().size(); }
-    virtual FloatSize availableScreenSize() const { return const_cast&lt;ChromeClient*&gt;(this)-&gt;windowRect().size(); }
</del><ins>+    virtual FloatSize screenSize() const { return const_cast&lt;ChromeClient&amp;&gt;(*this).windowRect().size(); }
+    virtual FloatSize availableScreenSize() const { return const_cast&lt;ChromeClient&amp;&gt;(*this).windowRect().size(); }
</ins><span class="cx"> 
</span><span class="cx">     virtual void dispatchViewportPropertiesDidChange(const ViewportArguments&amp;) const { }
</span><span class="cx"> 
</span><del>-    virtual void contentsSizeChanged(Frame*, const IntSize&amp;) const = 0;
</del><ins>+    virtual void contentsSizeChanged(Frame&amp;, const IntSize&amp;) const = 0;
</ins><span class="cx">     virtual void scrollRectIntoView(const IntRect&amp;) const { }; // Currently only Mac has a non empty implementation.
</span><span class="cx"> 
</span><span class="cx">     virtual bool shouldUnavailablePluginMessageBeButton(RenderEmbeddedObject::PluginUnavailabilityReason) const { return false; }
</span><del>-    virtual void unavailablePluginButtonClicked(Element*, RenderEmbeddedObject::PluginUnavailabilityReason) const { }
</del><ins>+    virtual void unavailablePluginButtonClicked(Element&amp;, RenderEmbeddedObject::PluginUnavailabilityReason) const { }
</ins><span class="cx">     virtual void mouseDidMoveOverElement(const HitTestResult&amp;, unsigned modifierFlags) = 0;
</span><span class="cx"> 
</span><span class="cx">     virtual void setToolTip(const String&amp;, TextDirection) = 0;
</span><span class="cx"> 
</span><del>-    virtual void print(Frame*) = 0;
</del><ins>+    virtual void print(Frame&amp;) = 0;
</ins><span class="cx"> 
</span><span class="cx">     virtual Color underlayColor() const { return Color(); }
</span><span class="cx"> 
</span><span class="cx">     virtual void pageExtendedBackgroundColorDidChange(Color) const { }
</span><span class="cx"> 
</span><del>-    virtual void exceededDatabaseQuota(Frame*, const String&amp; databaseName, DatabaseDetails) = 0;
</del><ins>+    virtual void exceededDatabaseQuota(Frame&amp;, const String&amp; databaseName, DatabaseDetails) = 0;
</ins><span class="cx"> 
</span><span class="cx">     // Callback invoked when the application cache fails to save a cache object
</span><span class="cx">     // because storing it would grow the database file past its defined maximum
</span><span class="lines">@@ -219,7 +223,7 @@
</span><span class="cx">     // storage, in bytes, needed to store the new cache along with all of the
</span><span class="cx">     // other existing caches for the origin that would not be replaced by
</span><span class="cx">     // the new cache.
</span><del>-    virtual void reachedApplicationCacheOriginQuota(SecurityOrigin*, int64_t totalSpaceNeeded) = 0;
</del><ins>+    virtual void reachedApplicationCacheOriginQuota(SecurityOrigin&amp;, int64_t totalSpaceNeeded) = 0;
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(DASHBOARD_SUPPORT)
</span><span class="cx">     virtual void annotatedRegionsChanged();
</span><span class="lines">@@ -236,10 +240,10 @@
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     virtual void didReceiveMobileDocType(bool) = 0;
</span><del>-    virtual void setNeedsScrollNotifications(Frame*, bool) = 0;
-    virtual void observedContentChange(Frame*) = 0;
-    virtual void clearContentChangeObservers(Frame*) = 0;
-    virtual void notifyRevealedSelectionByScrollingFrame(Frame*) = 0;
</del><ins>+    virtual void setNeedsScrollNotifications(Frame&amp;, bool) = 0;
+    virtual void observedContentChange(Frame&amp;) = 0;
+    virtual void clearContentChangeObservers(Frame&amp;) = 0;
+    virtual void notifyRevealedSelectionByScrollingFrame(Frame&amp;) = 0;
</ins><span class="cx"> 
</span><span class="cx">     enum LayoutType { NormalLayout, Scroll };
</span><span class="cx">     virtual void didLayout(LayoutType = NormalLayout) = 0;
</span><span class="lines">@@ -270,7 +274,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INPUT_TYPE_COLOR)
</span><del>-    virtual std::unique_ptr&lt;ColorChooser&gt; createColorChooser(ColorChooserClient*, const Color&amp;) = 0;
</del><ins>+    virtual std::unique_ptr&lt;ColorChooser&gt; createColorChooser(ColorChooserClient&amp;, const Color&amp;) = 0;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     virtual void runOpenPanel(Frame&amp;, FileChooser&amp;) = 0;
</span><span class="lines">@@ -277,9 +281,9 @@
</span><span class="cx">     // Asynchronous request to load an icon for specified filenames.
</span><span class="cx">     virtual void loadIconForFiles(const Vector&lt;String&gt;&amp;, FileIconLoader&amp;) = 0;
</span><span class="cx">         
</span><del>-    virtual void elementDidFocus(const Node*) { };
-    virtual void elementDidBlur(const Node*) { };
-    virtual void elementDidRefocus(const Node*) { };
</del><ins>+    virtual void elementDidFocus(Element&amp;) { }
+    virtual void elementDidBlur(Element&amp;) { }
+    virtual void elementDidRefocus(Element&amp;) { }
</ins><span class="cx">     
</span><span class="cx">     virtual bool shouldPaintEntireContents() const { return false; }
</span><span class="cx">     virtual bool hasStablePageScaleFactor() const { return true; }
</span><span class="lines">@@ -291,9 +295,9 @@
</span><span class="cx">     virtual RefPtr&lt;DisplayRefreshMonitor&gt; createDisplayRefreshMonitor(PlatformDisplayID) const { return nullptr; }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    // Pass 0 as the GraphicsLayer to detatch the root layer.
-    virtual void attachRootGraphicsLayer(Frame*, GraphicsLayer*) = 0;
-    virtual void attachViewOverlayGraphicsLayer(Frame*, GraphicsLayer*) = 0;
</del><ins>+    // Pass nullptr as the GraphicsLayer to detatch the root layer.
+    virtual void attachRootGraphicsLayer(Frame&amp;, GraphicsLayer*) = 0;
+    virtual void attachViewOverlayGraphicsLayer(Frame&amp;, GraphicsLayer*) = 0;
</ins><span class="cx">     // Sets a flag to specify that the next time content is drawn to the window,
</span><span class="cx">     // the changes appear on the screen in synchrony with updates to GraphicsLayers.
</span><span class="cx">     virtual void setNeedsOneShotDrawingSynchronization() = 0;
</span><span class="lines">@@ -325,26 +329,28 @@
</span><span class="cx"> 
</span><span class="cx">     virtual bool adjustLayerFlushThrottling(LayerFlushThrottleState::Flags) { return false; }
</span><span class="cx"> 
</span><del>-    virtual PassRefPtr&lt;ScrollingCoordinator&gt; createScrollingCoordinator(Page*) const { return nullptr; }
</del><ins>+    virtual RefPtr&lt;ScrollingCoordinator&gt; createScrollingCoordinator(Page&amp;) const { return nullptr; }
</ins><span class="cx"> 
</span><span class="cx"> #if PLATFORM(WIN) &amp;&amp; USE(AVFOUNDATION)
</span><del>-    virtual GraphicsDeviceAdapter* graphicsDeviceAdapter() const { return 0; }
</del><ins>+    virtual GraphicsDeviceAdapter* graphicsDeviceAdapter() const { return nullptr; }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     virtual bool supportsVideoFullscreen(HTMLMediaElementEnums::VideoFullscreenMode) { return false; }
</span><ins>+
</ins><span class="cx"> #if ENABLE(VIDEO)
</span><span class="cx">     virtual void enterVideoFullscreenForVideoElement(HTMLVideoElement&amp;, HTMLMediaElementEnums::VideoFullscreenMode) { }
</span><span class="cx">     virtual void setUpPlaybackControlsManager(HTMLMediaElement&amp;) { }
</span><span class="cx">     virtual void clearPlaybackControlsManager() { }
</span><span class="cx"> #endif
</span><del>-    virtual void exitVideoFullscreenForVideoElement(WebCore::HTMLVideoElement&amp;) { }
-    virtual void exitVideoFullscreenToModeWithoutAnimation(WebCore::HTMLVideoElement&amp;, HTMLMediaElementEnums::VideoFullscreenMode /*targetMode*/) { }
</del><ins>+
+    virtual void exitVideoFullscreenForVideoElement(HTMLVideoElement&amp;) { }
+    virtual void exitVideoFullscreenToModeWithoutAnimation(HTMLVideoElement&amp;, HTMLMediaElementEnums::VideoFullscreenMode) { }
</ins><span class="cx">     virtual bool requiresFullscreenForVideoPlayback() { return false; } 
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(FULLSCREEN_API)
</span><del>-    virtual bool supportsFullScreenForElement(const Element*, bool) { return false; }
-    virtual void enterFullScreenForElement(Element*) { }
-    virtual void exitFullScreenForElement(Element*) { }
</del><ins>+    virtual bool supportsFullScreenForElement(const Element&amp;, bool) { return false; }
+    virtual void enterFullScreenForElement(Element&amp;) { }
+    virtual void exitFullScreenForElement(Element&amp;) { }
</ins><span class="cx">     virtual void setRootFullScreenLayer(GraphicsLayer*) { }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="lines">@@ -353,7 +359,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(COCOA)
</span><del>-    virtual NSResponder *firstResponder() { return 0; }
</del><ins>+    virtual NSResponder *firstResponder() { return nullptr; }
</ins><span class="cx">     virtual void makeFirstResponder(NSResponder *) { }
</span><span class="cx">     // Focuses on the containing view associated with this page.
</span><span class="cx">     virtual void makeFirstResponder() { }
</span><span class="lines">@@ -377,10 +383,10 @@
</span><span class="cx">     virtual bool selectItemAlignmentFollowsMenuWritingDirection() = 0;
</span><span class="cx">     // Checks if there is an opened popup, called by RenderMenuList::showPopup().
</span><span class="cx">     virtual bool hasOpenedPopup() const = 0;
</span><del>-    virtual RefPtr&lt;PopupMenu&gt; createPopupMenu(PopupMenuClient*) const = 0;
-    virtual RefPtr&lt;SearchPopupMenu&gt; createSearchPopupMenu(PopupMenuClient*) const = 0;
</del><ins>+    virtual RefPtr&lt;PopupMenu&gt; createPopupMenu(PopupMenuClient&amp;) const = 0;
+    virtual RefPtr&lt;SearchPopupMenu&gt; createSearchPopupMenu(PopupMenuClient&amp;) const = 0;
</ins><span class="cx"> 
</span><del>-    virtual void postAccessibilityNotification(AccessibilityObject*, AXObjectCache::AXNotification) { }
</del><ins>+    virtual void postAccessibilityNotification(AccessibilityObject&amp;, AXObjectCache::AXNotification) { }
</ins><span class="cx"> 
</span><span class="cx">     virtual void notifyScrollerThumbIsVisibleInRect(const IntRect&amp;) { }
</span><span class="cx">     virtual void recommendedScrollbarStyleDidChange(ScrollbarStyle) { }
</span><span class="lines">@@ -408,16 +414,16 @@
</span><span class="cx">     virtual void didAssociateFormControls(const Vector&lt;RefPtr&lt;Element&gt;&gt;&amp;) { };
</span><span class="cx">     virtual bool shouldNotifyOnFormChanges() { return false; };
</span><span class="cx"> 
</span><del>-    virtual void didAddHeaderLayer(GraphicsLayer*) { }
-    virtual void didAddFooterLayer(GraphicsLayer*) { }
</del><ins>+    virtual void didAddHeaderLayer(GraphicsLayer&amp;) { }
+    virtual void didAddFooterLayer(GraphicsLayer&amp;) { }
</ins><span class="cx"> 
</span><del>-    virtual bool shouldUseTiledBackingForFrameView(const FrameView*) const { return false; }
</del><ins>+    virtual bool shouldUseTiledBackingForFrameView(const FrameView&amp;) const { return false; }
</ins><span class="cx"> 
</span><span class="cx">     virtual void isPlayingMediaDidChange(MediaProducer::MediaStateFlags, uint64_t) { }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(MEDIA_SESSION)
</span><span class="cx">     virtual void hasMediaSessionWithActiveMediaElementsDidChange(bool) { }
</span><del>-    virtual void mediaSessionMetadataDidChange(const WebCore::MediaSessionMetadata&amp;) { }
</del><ins>+    virtual void mediaSessionMetadataDidChange(const MediaSessionMetadata&amp;) { }
</ins><span class="cx">     virtual void focusedContentMediaElementDidChange(uint64_t) { }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="lines">@@ -427,11 +433,12 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(TELEPHONE_NUMBER_DETECTION) &amp;&amp; PLATFORM(MAC)
</span><del>-    virtual void handleTelephoneNumberClick(const String&amp;, const WebCore::IntPoint&amp;) { }
</del><ins>+    virtual void handleTelephoneNumberClick(const String&amp;, const IntPoint&amp;) { }
</ins><span class="cx"> #endif
</span><ins>+
</ins><span class="cx"> #if ENABLE(SERVICE_CONTROLS)
</span><del>-    virtual void handleSelectionServiceClick(WebCore::FrameSelection&amp;, const Vector&lt;String&gt;&amp;, const WebCore::IntPoint&amp;) { }
-    virtual bool hasRelevantSelectionServices(bool /* isTextOnly */) const { return false; }
</del><ins>+    virtual void handleSelectionServiceClick(FrameSelection&amp;, const Vector&lt;String&gt;&amp;, const IntPoint&amp;) { }
+    virtual bool hasRelevantSelectionServices(bool /*isTextOnly*/) const { return false; }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     virtual bool shouldDispatchFakeMouseMoveEvents() const { return true; }
</span><span class="lines">@@ -441,13 +448,13 @@
</span><span class="cx"> #if ENABLE(WIRELESS_PLAYBACK_TARGET)
</span><span class="cx">     virtual void addPlaybackTargetPickerClient(uint64_t /*contextId*/) { }
</span><span class="cx">     virtual void removePlaybackTargetPickerClient(uint64_t /*contextId*/) { }
</span><del>-    virtual void showPlaybackTargetPicker(uint64_t /*contextId*/, const WebCore::IntPoint&amp;, bool /* isVideo */) { }
</del><ins>+    virtual void showPlaybackTargetPicker(uint64_t /*contextId*/, const IntPoint&amp;, bool /*isVideo*/) { }
</ins><span class="cx">     virtual void playbackTargetPickerClientStateDidChange(uint64_t /*contextId*/, MediaProducer::MediaStateFlags) { }
</span><span class="cx">     virtual void setMockMediaPlaybackTargetPickerEnabled(bool)  { }
</span><del>-    virtual void setMockMediaPlaybackTargetPickerState(const String&amp;, WebCore::MediaPlaybackTargetContext::State) { }
</del><ins>+    virtual void setMockMediaPlaybackTargetPickerState(const String&amp;, MediaPlaybackTargetContext::State) { }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    virtual void imageOrMediaDocumentSizeChanged(const WebCore::IntSize&amp;) { }
</del><ins>+    virtual void imageOrMediaDocumentSizeChanged(const IntSize&amp;) { }
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(VIDEO) &amp;&amp; USE(GSTREAMER)
</span><span class="cx">     virtual void requestInstallMissingMediaPlugins(const String&amp; /*details*/, const String&amp; /*description*/, MediaPlayerRequestInstallMissingPluginsCallback&amp;) { }
</span></span></pre></div>
<a id="trunkSourceWebCorepageContextMenuControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/ContextMenuController.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/ContextMenuController.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/ContextMenuController.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -94,7 +94,7 @@
</span><span class="cx">     m_menuProvider = nullptr;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ContextMenuController::handleContextMenuEvent(Event* event)
</del><ins>+void ContextMenuController::handleContextMenuEvent(Event&amp; event)
</ins><span class="cx"> {
</span><span class="cx">     m_contextMenu = maybeCreateContextMenu(event);
</span><span class="cx">     if (!m_contextMenu)
</span><span class="lines">@@ -110,9 +110,9 @@
</span><span class="cx">     return std::unique_ptr&lt;ContextMenuItem&gt;(new ContextMenuItem(SeparatorType, ContextMenuItemTagNoAction, String()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ContextMenuController::showContextMenu(Event* event, PassRefPtr&lt;ContextMenuProvider&gt; menuProvider)
</del><ins>+void ContextMenuController::showContextMenu(Event&amp; event, ContextMenuProvider&amp; provider)
</ins><span class="cx"> {
</span><del>-    m_menuProvider = menuProvider;
</del><ins>+    m_menuProvider = &amp;provider;
</ins><span class="cx"> 
</span><span class="cx">     m_contextMenu = maybeCreateContextMenu(event);
</span><span class="cx">     if (!m_contextMenu) {
</span><span class="lines">@@ -120,7 +120,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    m_menuProvider-&gt;populateContextMenu(m_contextMenu.get());
</del><ins>+    provider.populateContextMenu(m_contextMenu.get());
</ins><span class="cx">     if (m_context.hitTestResult().isSelected()) {
</span><span class="cx">         appendItem(*separatorItem(), m_contextMenu.get());
</span><span class="cx">         populate();
</span><span class="lines">@@ -129,33 +129,34 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(SERVICE_CONTROLS)
</span><ins>+
</ins><span class="cx"> static Image* imageFromImageElementNode(Node&amp; node)
</span><span class="cx"> {
</span><del>-    RenderObject* renderer = node.renderer();
</del><ins>+    auto* renderer = node.renderer();
</ins><span class="cx">     if (!is&lt;RenderImage&gt;(renderer))
</span><span class="cx">         return nullptr;
</span><del>-    CachedImage* image = downcast&lt;RenderImage&gt;(*renderer).cachedImage();
</del><ins>+    auto* image = downcast&lt;RenderImage&gt;(*renderer).cachedImage();
</ins><span class="cx">     if (!image || image-&gt;errorOccurred())
</span><span class="cx">         return nullptr;
</span><del>-
</del><span class="cx">     return image-&gt;imageForRenderer(renderer);
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-std::unique_ptr&lt;ContextMenu&gt; ContextMenuController::maybeCreateContextMenu(Event* event)
</del><ins>+std::unique_ptr&lt;ContextMenu&gt; ContextMenuController::maybeCreateContextMenu(Event&amp; event)
</ins><span class="cx"> {
</span><del>-    ASSERT(event);
-    
-    if (!is&lt;MouseEvent&gt;(*event))
</del><ins>+    if (!is&lt;MouseEvent&gt;(event))
</ins><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><del>-    MouseEvent&amp; mouseEvent = downcast&lt;MouseEvent&gt;(*event);
-    HitTestResult result(mouseEvent.absoluteLocation());
</del><ins>+    auto&amp; mouseEvent = downcast&lt;MouseEvent&gt;(event);
+    auto* node = mouseEvent.target()-&gt;toNode();
+    if (!node)
+        return nullptr;
+    auto* frame = node-&gt;document().frame();
+    if (!frame)
+        return nullptr;
</ins><span class="cx"> 
</span><del>-    Node* node = event-&gt;target()-&gt;toNode();
-    if (Frame* frame = node-&gt;document().frame())
-        result = frame-&gt;eventHandler().hitTestResultAtPoint(mouseEvent.absoluteLocation());
-    
</del><ins>+    auto result = frame-&gt;eventHandler().hitTestResultAtPoint(mouseEvent.absoluteLocation());
</ins><span class="cx">     if (!result.innerNonSharedNode())
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="lines">@@ -163,7 +164,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(SERVICE_CONTROLS)
</span><span class="cx">     if (node-&gt;isImageControlsButtonElement()) {
</span><del>-        if (Image* image = imageFromImageElementNode(*result.innerNonSharedNode()))
</del><ins>+        if (auto* image = imageFromImageElementNode(*result.innerNonSharedNode()))
</ins><span class="cx">             m_context.setControlledImage(image);
</span><span class="cx"> 
</span><span class="cx">         // FIXME: If we couldn't get the image then we shouldn't try to show the image controls menu for it.
</span><span class="lines">@@ -171,24 +172,24 @@
</span><span class="cx">     }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    return std::unique_ptr&lt;ContextMenu&gt;(new ContextMenu);
</del><ins>+    return std::make_unique&lt;ContextMenu&gt;();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ContextMenuController::showContextMenu(Event* event)
</del><ins>+void ContextMenuController::showContextMenu(Event&amp; event)
</ins><span class="cx"> {
</span><span class="cx">     if (m_page.inspectorController().enabled())
</span><span class="cx">         addInspectElementItem();
</span><span class="cx"> 
</span><del>-    event-&gt;setDefaultHandled();
</del><ins>+    event.setDefaultHandled();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-static void openNewWindow(const URL&amp; urlToLoad, Frame* frame, ShouldOpenExternalURLsPolicy shouldOpenExternalURLsPolicy)
</del><ins>+static void openNewWindow(const URL&amp; urlToLoad, Frame&amp; frame, ShouldOpenExternalURLsPolicy shouldOpenExternalURLsPolicy)
</ins><span class="cx"> {
</span><del>-    Page* oldPage = frame-&gt;page();
</del><ins>+    Page* oldPage = frame.page();
</ins><span class="cx">     if (!oldPage)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    FrameLoadRequest request(frame-&gt;document()-&gt;securityOrigin(), ResourceRequest(urlToLoad, frame-&gt;loader().outgoingReferrer()), LockHistory::No, LockBackForwardList::No, MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Suppress, shouldOpenExternalURLsPolicy);
</del><ins>+    FrameLoadRequest request(frame.document()-&gt;securityOrigin(), ResourceRequest(urlToLoad, frame.loader().outgoingReferrer()), LockHistory::No, LockBackForwardList::No, MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Suppress, shouldOpenExternalURLsPolicy);
</ins><span class="cx"> 
</span><span class="cx">     Page* newPage = oldPage-&gt;chrome().createWindow(frame, request, WindowFeatures(), NavigationAction(request.resourceRequest()));
</span><span class="cx">     if (!newPage)
</span><span class="lines">@@ -198,15 +199,17 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(GTK)
</span><del>-static void insertUnicodeCharacter(UChar character, Frame* frame)
</del><ins>+
+static void insertUnicodeCharacter(UChar character, Frame&amp; frame)
</ins><span class="cx"> {
</span><span class="cx">     String text(&amp;character, 1);
</span><del>-    if (!frame-&gt;editor().shouldInsertText(text, frame-&gt;selection().toNormalizedRange().get(), EditorInsertAction::Typed))
</del><ins>+    if (!frame.editor().shouldInsertText(text, frame.selection().toNormalizedRange().get(), EditorInsertAction::Typed))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    ASSERT(frame-&gt;document());
-    TypingCommand::insertText(*frame-&gt;document(), text, 0, TypingCommand::TextCompositionNone);
</del><ins>+    ASSERT(frame.document());
+    TypingCommand::insertText(*frame.document(), text, 0, TypingCommand::TextCompositionNone);
</ins><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> void ContextMenuController::contextMenuItemSelected(ContextMenuAction action, const String&amp; title)
</span><span class="lines">@@ -225,7 +228,7 @@
</span><span class="cx"> 
</span><span class="cx">     switch (action) {
</span><span class="cx">     case ContextMenuItemTagOpenLinkInNewWindow:
</span><del>-        openNewWindow(m_context.hitTestResult().absoluteLinkURL(), frame, ShouldOpenExternalURLsPolicy::ShouldAllowExternalSchemes);
</del><ins>+        openNewWindow(m_context.hitTestResult().absoluteLinkURL(), *frame, ShouldOpenExternalURLsPolicy::ShouldAllowExternalSchemes);
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagDownloadLinkToDisk:
</span><span class="cx">         // FIXME: Some day we should be able to do this from within WebCore. (Bug 117709)
</span><span class="lines">@@ -235,7 +238,7 @@
</span><span class="cx">         frame-&gt;editor().copyURL(m_context.hitTestResult().absoluteLinkURL(), m_context.hitTestResult().textContent());
</span><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagOpenImageInNewWindow:
</span><del>-        openNewWindow(m_context.hitTestResult().absoluteImageURL(), frame, ShouldOpenExternalURLsPolicy::ShouldNotAllow);
</del><ins>+        openNewWindow(m_context.hitTestResult().absoluteImageURL(), *frame, ShouldOpenExternalURLsPolicy::ShouldNotAllow);
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagDownloadImageToDisk:
</span><span class="cx">         // FIXME: Some day we should be able to do this from within WebCore. (Bug 117709)
</span><span class="lines">@@ -252,7 +255,7 @@
</span><span class="cx">         break;
</span><span class="cx"> #endif
</span><span class="cx">     case ContextMenuItemTagOpenMediaInNewWindow:
</span><del>-        openNewWindow(m_context.hitTestResult().absoluteMediaURL(), frame, ShouldOpenExternalURLsPolicy::ShouldNotAllow);
</del><ins>+        openNewWindow(m_context.hitTestResult().absoluteMediaURL(), *frame, ShouldOpenExternalURLsPolicy::ShouldNotAllow);
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagDownloadMediaToDisk:
</span><span class="cx">         // FIXME: Some day we should be able to do this from within WebCore. (Bug 117709)
</span><span class="lines">@@ -285,9 +288,9 @@
</span><span class="cx">     case ContextMenuItemTagOpenFrameInNewWindow: {
</span><span class="cx">         DocumentLoader* loader = frame-&gt;loader().documentLoader();
</span><span class="cx">         if (!loader-&gt;unreachableURL().isEmpty())
</span><del>-            openNewWindow(loader-&gt;unreachableURL(), frame, ShouldOpenExternalURLsPolicy::ShouldNotAllow);
</del><ins>+            openNewWindow(loader-&gt;unreachableURL(), *frame, ShouldOpenExternalURLsPolicy::ShouldNotAllow);
</ins><span class="cx">         else
</span><del>-            openNewWindow(loader-&gt;url(), frame, ShouldOpenExternalURLsPolicy::ShouldNotAllow);
</del><ins>+            openNewWindow(loader-&gt;url(), *frame, ShouldOpenExternalURLsPolicy::ShouldNotAllow);
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx">     case ContextMenuItemTagCopy:
</span><span class="lines">@@ -318,34 +321,34 @@
</span><span class="cx">         frame-&gt;editor().performDelete();
</span><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagUnicodeInsertLRMMark:
</span><del>-        insertUnicodeCharacter(leftToRightMark, frame);
</del><ins>+        insertUnicodeCharacter(leftToRightMark, *frame);
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagUnicodeInsertRLMMark:
</span><del>-        insertUnicodeCharacter(rightToLeftMark, frame);
</del><ins>+        insertUnicodeCharacter(rightToLeftMark, *frame);
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagUnicodeInsertLREMark:
</span><del>-        insertUnicodeCharacter(leftToRightEmbed, frame);
</del><ins>+        insertUnicodeCharacter(leftToRightEmbed, *frame);
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagUnicodeInsertRLEMark:
</span><del>-        insertUnicodeCharacter(rightToLeftEmbed, frame);
</del><ins>+        insertUnicodeCharacter(rightToLeftEmbed, *frame);
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagUnicodeInsertLROMark:
</span><del>-        insertUnicodeCharacter(leftToRightOverride, frame);
</del><ins>+        insertUnicodeCharacter(leftToRightOverride, *frame);
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagUnicodeInsertRLOMark:
</span><del>-        insertUnicodeCharacter(rightToLeftOverride, frame);
</del><ins>+        insertUnicodeCharacter(rightToLeftOverride, *frame);
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagUnicodeInsertPDFMark:
</span><del>-        insertUnicodeCharacter(popDirectionalFormatting, frame);
</del><ins>+        insertUnicodeCharacter(popDirectionalFormatting, *frame);
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagUnicodeInsertZWSMark:
</span><del>-        insertUnicodeCharacter(zeroWidthSpace, frame);
</del><ins>+        insertUnicodeCharacter(zeroWidthSpace, *frame);
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagUnicodeInsertZWJMark:
</span><del>-        insertUnicodeCharacter(zeroWidthJoiner, frame);
</del><ins>+        insertUnicodeCharacter(zeroWidthJoiner, *frame);
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagUnicodeInsertZWNJMark:
</span><del>-        insertUnicodeCharacter(zeroWidthNonJoiner, frame);
</del><ins>+        insertUnicodeCharacter(zeroWidthNonJoiner, *frame);
</ins><span class="cx">         break;
</span><span class="cx"> #endif
</span><span class="cx"> #if PLATFORM(GTK) || PLATFORM(EFL)
</span><span class="lines">@@ -393,7 +396,7 @@
</span><span class="cx">         if (Frame* targetFrame = m_context.hitTestResult().targetFrame())
</span><span class="cx">             targetFrame-&gt;loader().loadFrameRequest(FrameLoadRequest(frame-&gt;document()-&gt;securityOrigin(), ResourceRequest(m_context.hitTestResult().absoluteLinkURL(), frame-&gt;loader().outgoingReferrer()), LockHistory::No, LockBackForwardList::No, MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Suppress, targetFrame-&gt;isMainFrame() ? ShouldOpenExternalURLsPolicy::ShouldAllow : ShouldOpenExternalURLsPolicy::ShouldNotAllow), nullptr, nullptr);
</span><span class="cx">         else
</span><del>-            openNewWindow(m_context.hitTestResult().absoluteLinkURL(), frame, ShouldOpenExternalURLsPolicy::ShouldAllow);
</del><ins>+            openNewWindow(m_context.hitTestResult().absoluteLinkURL(), *frame, ShouldOpenExternalURLsPolicy::ShouldAllow);
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagBold:
</span><span class="cx">         frame-&gt;editor().command(&quot;ToggleBold&quot;).execute();
</span><span class="lines">@@ -1429,26 +1432,30 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if USE(ACCESSIBILITY_CONTEXT_MENUS)
</span><del>-void ContextMenuController::showContextMenuAt(Frame* frame, const IntPoint&amp; clickPoint)
</del><ins>+
+void ContextMenuController::showContextMenuAt(Frame&amp; frame, const IntPoint&amp; clickPoint)
</ins><span class="cx"> {
</span><span class="cx">     clearContextMenu();
</span><span class="cx">     
</span><span class="cx">     // Simulate a click in the middle of the accessibility object.
</span><span class="cx">     PlatformMouseEvent mouseEvent(clickPoint, clickPoint, RightButton, PlatformEvent::MousePressed, 1, false, false, false, false, currentTime(), ForceAtClick, NoTap);
</span><del>-    frame-&gt;eventHandler().handleMousePressEvent(mouseEvent);
-    bool handled = frame-&gt;eventHandler().sendContextMenuEvent(mouseEvent);
</del><ins>+    frame.eventHandler().handleMousePressEvent(mouseEvent);
+    bool handled = frame.eventHandler().sendContextMenuEvent(mouseEvent);
</ins><span class="cx">     if (handled)
</span><span class="cx">         m_client.showContextMenu();
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(SERVICE_CONTROLS)
</span><del>-void ContextMenuController::showImageControlsMenu(Event* event)
</del><ins>+
+void ContextMenuController::showImageControlsMenu(Event&amp; event)
</ins><span class="cx"> {
</span><span class="cx">     clearContextMenu();
</span><span class="cx">     handleContextMenuEvent(event);
</span><span class="cx">     m_client.showContextMenu();
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorepageContextMenuControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/ContextMenuController.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/ContextMenuController.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/ContextMenuController.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2006-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -29,21 +29,16 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;ContextMenuContext.h&quot;
</span><span class="cx"> #include &quot;ContextMenuItem.h&quot;
</span><del>-#include &lt;wtf/Noncopyable.h&gt;
-#include &lt;wtf/PassRefPtr.h&gt;
-#include &lt;wtf/RefPtr.h&gt;
</del><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-class ContextMenu;
</del><span class="cx"> class ContextMenuClient;
</span><del>-class ContextMenuItem;
</del><span class="cx"> class ContextMenuProvider;
</span><span class="cx"> class Event;
</span><span class="cx"> class Page;
</span><span class="cx"> 
</span><span class="cx"> class ContextMenuController {
</span><del>-    WTF_MAKE_NONCOPYABLE(ContextMenuController); WTF_MAKE_FAST_ALLOCATED;
</del><ins>+    WTF_MAKE_FAST_ALLOCATED;
</ins><span class="cx"> public:
</span><span class="cx">     ContextMenuController(Page&amp;, ContextMenuClient&amp;);
</span><span class="cx">     ~ContextMenuController();
</span><span class="lines">@@ -54,8 +49,8 @@
</span><span class="cx">     ContextMenu* contextMenu() const { return m_contextMenu.get(); }
</span><span class="cx">     WEBCORE_EXPORT void clearContextMenu();
</span><span class="cx"> 
</span><del>-    void handleContextMenuEvent(Event*);
-    void showContextMenu(Event*, PassRefPtr&lt;ContextMenuProvider&gt;);
</del><ins>+    void handleContextMenuEvent(Event&amp;);
+    void showContextMenu(Event&amp;, ContextMenuProvider&amp;);
</ins><span class="cx"> 
</span><span class="cx">     void populate();
</span><span class="cx">     WEBCORE_EXPORT void contextMenuItemSelected(ContextMenuAction, const String&amp; title);
</span><span class="lines">@@ -68,16 +63,16 @@
</span><span class="cx">     const HitTestResult&amp; hitTestResult() const { return m_context.hitTestResult(); }
</span><span class="cx"> 
</span><span class="cx"> #if USE(ACCESSIBILITY_CONTEXT_MENUS)
</span><del>-    void showContextMenuAt(Frame*, const IntPoint&amp; clickPoint);
</del><ins>+    void showContextMenuAt(Frame&amp;, const IntPoint&amp; clickPoint);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(SERVICE_CONTROLS)
</span><del>-    void showImageControlsMenu(Event*);
</del><ins>+    void showImageControlsMenu(Event&amp;);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    std::unique_ptr&lt;ContextMenu&gt; maybeCreateContextMenu(Event*);
-    void showContextMenu(Event*);
</del><ins>+    std::unique_ptr&lt;ContextMenu&gt; maybeCreateContextMenu(Event&amp;);
+    void showContextMenu(Event&amp;);
</ins><span class="cx">     
</span><span class="cx">     void appendItem(ContextMenuItem&amp;, ContextMenu* parentMenu);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageDOMTimercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DOMTimer.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DOMTimer.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/DOMTimer.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -361,7 +361,7 @@
</span><span class="cx">         if (WKObservedContentChange() == WKContentVisibilityChange || shouldReportLackOfChanges) {
</span><span class="cx">             Document&amp; document = downcast&lt;Document&gt;(context);
</span><span class="cx">             if (Page* page = document.page())
</span><del>-                page-&gt;chrome().client().observedContentChange(document.frame());
</del><ins>+                page-&gt;chrome().client().observedContentChange(*document.frame());
</ins><span class="cx">         }
</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 (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DOMWindow.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/DOMWindow.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2006, 2007, 2008, 2010, 2013 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2006-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
</span><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="lines">@@ -29,7 +29,6 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;BackForwardController.h&quot;
</span><span class="cx"> #include &quot;BarProp.h&quot;
</span><del>-#include &quot;BeforeUnloadEvent.h&quot;
</del><span class="cx"> #include &quot;CSSComputedStyleDeclaration.h&quot;
</span><span class="cx"> #include &quot;CSSRule.h&quot;
</span><span class="cx"> #include &quot;CSSRuleList.h&quot;
</span><span class="lines">@@ -125,22 +124,23 @@
</span><span class="cx"> #include &quot;WebKitNamespace.h&quot;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-#if ENABLE(PROXIMITY_EVENTS)
-#include &quot;DeviceProximityController.h&quot;
-#endif
-
</del><span class="cx"> #if ENABLE(GAMEPAD)
</span><span class="cx"> #include &quot;GamepadManager.h&quot;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+#if ENABLE(GEOLOCATION)
+#include &quot;NavigatorGeolocation.h&quot;
+#endif
+
</ins><span class="cx"> #if ENABLE(POINTER_LOCK)
</span><span class="cx"> #include &quot;PointerLockController.h&quot;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+#if ENABLE(PROXIMITY_EVENTS)
+#include &quot;DeviceProximityController.h&quot;
+#endif
+
</ins><span class="cx"> #if PLATFORM(IOS)
</span><del>-#if ENABLE(GEOLOCATION)
-#include &quot;NavigatorGeolocation.h&quot;
-#endif
</del><span class="cx"> #include &quot;WKContentObservation.h&quot;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="lines">@@ -150,9 +150,9 @@
</span><span class="cx"> 
</span><span class="cx"> class PostMessageTimer : public TimerBase {
</span><span class="cx"> public:
</span><del>-    PostMessageTimer(DOMWindow&amp; window, PassRefPtr&lt;SerializedScriptValue&gt; message, const String&amp; sourceOrigin, DOMWindow&amp; source, std::unique_ptr&lt;MessagePortChannelArray&gt; channels, RefPtr&lt;SecurityOrigin&gt;&amp;&amp; targetOrigin, RefPtr&lt;ScriptCallStack&gt;&amp;&amp; stackTrace)
</del><ins>+    PostMessageTimer(DOMWindow&amp; window, Ref&lt;SerializedScriptValue&gt;&amp;&amp; message, const String&amp; sourceOrigin, DOMWindow&amp; source, std::unique_ptr&lt;MessagePortChannelArray&gt; channels, RefPtr&lt;SecurityOrigin&gt;&amp;&amp; targetOrigin, RefPtr&lt;ScriptCallStack&gt;&amp;&amp; stackTrace)
</ins><span class="cx">         : m_window(window)
</span><del>-        , m_message(message)
</del><ins>+        , m_message(WTFMove(message))
</ins><span class="cx">         , m_origin(sourceOrigin)
</span><span class="cx">         , m_source(source)
</span><span class="cx">         , m_channels(WTFMove(channels))
</span><span class="lines">@@ -181,7 +181,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     Ref&lt;DOMWindow&gt; m_window;
</span><del>-    RefPtr&lt;SerializedScriptValue&gt; m_message;
</del><ins>+    Ref&lt;SerializedScriptValue&gt; m_message;
</ins><span class="cx">     String m_origin;
</span><span class="cx">     Ref&lt;DOMWindow&gt; m_source;
</span><span class="cx">     std::unique_ptr&lt;MessagePortChannelArray&gt; m_channels;
</span><span class="lines">@@ -325,13 +325,11 @@
</span><span class="cx"> // 3) Constrains the window rect to within the top and left boundaries of the available screen rect.
</span><span class="cx"> // 4) Constrains the window rect to within the bottom and right boundaries of the available screen rect.
</span><span class="cx"> // 5) Translate the window rect coordinates to be within the coordinate space of the screen.
</span><del>-FloatRect DOMWindow::adjustWindowRect(Page* page, const FloatRect&amp; pendingChanges)
</del><ins>+FloatRect DOMWindow::adjustWindowRect(Page&amp; page, const FloatRect&amp; pendingChanges)
</ins><span class="cx"> {
</span><del>-    ASSERT(page);
</del><ins>+    FloatRect screen = screenAvailableRect(page.mainFrame().view());
+    FloatRect window = page.chrome().windowRect();
</ins><span class="cx"> 
</span><del>-    FloatRect screen = screenAvailableRect(page-&gt;mainFrame().view());
-    FloatRect window = page-&gt;chrome().windowRect();
-
</del><span class="cx">     // Make sure we're in a valid state before adjusting dimensions.
</span><span class="cx">     ASSERT(std::isfinite(screen.x()));
</span><span class="cx">     ASSERT(std::isfinite(screen.y()));
</span><span class="lines">@@ -352,7 +350,7 @@
</span><span class="cx">     if (!std::isnan(pendingChanges.height()))
</span><span class="cx">         window.setHeight(pendingChanges.height());
</span><span class="cx"> 
</span><del>-    FloatSize minimumSize = page-&gt;chrome().client().minimumWindowSize();
</del><ins>+    FloatSize minimumSize = page.chrome().client().minimumWindowSize();
</ins><span class="cx">     window.setWidth(std::min(std::max(minimumSize.width(), window.width()), screen.width()));
</span><span class="cx">     window.setHeight(std::min(std::max(minimumSize.height(), window.height()), screen.height()));
</span><span class="cx"> 
</span><span class="lines">@@ -363,30 +361,23 @@
</span><span class="cx">     return window;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool DOMWindow::allowPopUp(Frame* firstFrame)
</del><ins>+bool DOMWindow::allowPopUp(Frame&amp; firstFrame)
</ins><span class="cx"> {
</span><del>-    ASSERT(firstFrame);
-    
-    auto&amp; settings = firstFrame-&gt;settings();
-
-    if (ScriptController::processingUserGesture() || settings.allowWindowOpenWithoutUserGesture())
-        return true;
-
-    return settings.javaScriptCanOpenWindowsAutomatically();
</del><ins>+    auto&amp; settings = firstFrame.settings();
+    return ScriptController::processingUserGesture()
+        || settings.allowWindowOpenWithoutUserGesture()
+        || settings.javaScriptCanOpenWindowsAutomatically();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool DOMWindow::allowPopUp()
</span><span class="cx"> {
</span><del>-    return m_frame &amp;&amp; allowPopUp(m_frame);
</del><ins>+    return m_frame &amp;&amp; allowPopUp(*m_frame);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool DOMWindow::canShowModalDialog(const Frame* frame)
</del><ins>+bool DOMWindow::canShowModalDialog(const Frame&amp; frame)
</ins><span class="cx"> {
</span><del>-    if (!frame)
-        return false;
-
</del><span class="cx">     // Override support for layout testing purposes.
</span><del>-    if (auto* document = frame-&gt;document()) {
</del><ins>+    if (auto* document = frame.document()) {
</ins><span class="cx">         if (auto* window = document-&gt;domWindow()) {
</span><span class="cx">             if (window-&gt;m_canShowModalDialogOverride)
</span><span class="cx">                 return window-&gt;m_canShowModalDialogOverride.value();
</span><span class="lines">@@ -393,8 +384,8 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    auto* page = frame-&gt;page();
-    return page ? page-&gt;chrome().canRunModal() : false;
</del><ins>+    auto* page = frame.page();
+    return page &amp;&amp; page-&gt;chrome().canRunModal();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static void languagesChangedCallback(void* context)
</span><span class="lines">@@ -407,20 +398,18 @@
</span><span class="cx">     m_canShowModalDialogOverride = allow;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-DOMWindow::DOMWindow(Document* document)
-    : ContextDestructionObserver(document)
-    , FrameDestructionObserver(document-&gt;frame())
</del><ins>+DOMWindow::DOMWindow(Document&amp; document)
+    : ContextDestructionObserver(&amp;document)
+    , FrameDestructionObserver(document.frame())
</ins><span class="cx">     , m_weakPtrFactory(this)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(frame());
</span><del>-    ASSERT(DOMWindow::document());
-
</del><span class="cx">     addLanguageChangeObserver(this, &amp;languagesChangedCallback);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void DOMWindow::didSecureTransitionTo(Document* document)
</del><ins>+void DOMWindow::didSecureTransitionTo(Document&amp; document)
</ins><span class="cx"> {
</span><del>-    observeContext(document);
</del><ins>+    observeContext(&amp;document);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> DOMWindow::~DOMWindow()
</span><span class="lines">@@ -547,14 +536,14 @@
</span><span class="cx"> 
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-void DOMWindow::registerProperty(DOMWindowProperty* property)
</del><ins>+void DOMWindow::registerProperty(DOMWindowProperty&amp; property)
</ins><span class="cx"> {
</span><del>-    m_properties.add(property);
</del><ins>+    m_properties.add(&amp;property);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void DOMWindow::unregisterProperty(DOMWindowProperty* property)
</del><ins>+void DOMWindow::unregisterProperty(DOMWindowProperty&amp; property)
</ins><span class="cx"> {
</span><del>-    m_properties.remove(property);
</del><ins>+    m_properties.remove(&amp;property);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DOMWindow::resetUnlessSuspendedForDocumentSuspension()
</span><span class="lines">@@ -974,23 +963,18 @@
</span><span class="cx">     if (!document() || !isCurrentlyDisplayedInFrame())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    dispatchMessageEventWithOriginCheck(timer.targetOrigin(), timer.event(*document()), timer.stackTrace());
-}
-
-void DOMWindow::dispatchMessageEventWithOriginCheck(SecurityOrigin* intendedTargetOrigin, Event&amp; event, PassRefPtr&lt;ScriptCallStack&gt; stackTrace)
-{
-    if (intendedTargetOrigin) {
</del><ins>+    if (auto* intendedTargetOrigin = timer.targetOrigin()) {
</ins><span class="cx">         // Check target origin now since the target document may have changed since the timer was scheduled.
</span><span class="cx">         if (!intendedTargetOrigin-&gt;isSameSchemeHostPort(document()-&gt;securityOrigin())) {
</span><del>-            if (PageConsoleClient* pageConsole = console()) {
</del><ins>+            if (auto* pageConsole = console()) {
</ins><span class="cx">                 String message = makeString(&quot;Unable to post message to &quot;, intendedTargetOrigin-&gt;toString(), &quot;. Recipient has origin &quot;, document()-&gt;securityOrigin().toString(), &quot;.\n&quot;);
</span><del>-                pageConsole-&gt;addMessage(MessageSource::Security, MessageLevel::Error, message, stackTrace);
</del><ins>+                pageConsole-&gt;addMessage(MessageSource::Security, MessageLevel::Error, message, timer.stackTrace());
</ins><span class="cx">             }
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    dispatchEvent(event);
</del><ins>+    dispatchEvent(timer.event(*document()));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> DOMSelection* DOMWindow::getSelection()
</span><span class="lines">@@ -1113,7 +1097,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     m_shouldPrintWhenFinishedLoading = false;
</span><del>-    page-&gt;chrome().print(m_frame);
</del><ins>+    page-&gt;chrome().print(*m_frame);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DOMWindow::stop()
</span><span class="lines">@@ -1145,7 +1129,7 @@
</span><span class="cx">     page-&gt;pointerLockController().requestPointerUnlock();
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    page-&gt;chrome().runJavaScriptAlert(m_frame, message);
</del><ins>+    page-&gt;chrome().runJavaScriptAlert(*m_frame, message);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool DOMWindow::confirm(const String&amp; message)
</span><span class="lines">@@ -1167,7 +1151,7 @@
</span><span class="cx">     page-&gt;pointerLockController().requestPointerUnlock();
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    return page-&gt;chrome().runJavaScriptConfirm(m_frame, message);
</del><ins>+    return page-&gt;chrome().runJavaScriptConfirm(*m_frame, message);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String DOMWindow::prompt(const String&amp; message, const String&amp; defaultValue)
</span><span class="lines">@@ -1190,7 +1174,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     String returnValue;
</span><del>-    if (page-&gt;chrome().runJavaScriptPrompt(m_frame, message, defaultValue, returnValue))
</del><ins>+    if (page-&gt;chrome().runJavaScriptPrompt(*m_frame, message, defaultValue, returnValue))
</ins><span class="cx">         return returnValue;
</span><span class="cx"> 
</span><span class="cx">     return String();
</span><span class="lines">@@ -1368,7 +1352,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     ASSERT(m_frame-&gt;document()); // Client calls shouldn't be made when the frame is in inconsistent state.
</span><del>-    page-&gt;chrome().setStatusbarText(m_frame, m_status);
</del><ins>+    page-&gt;chrome().setStatusbarText(*m_frame, m_status);
</ins><span class="cx"> } 
</span><span class="cx">     
</span><span class="cx"> void DOMWindow::setDefaultStatus(const String&amp; string) 
</span><span class="lines">@@ -1383,7 +1367,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     ASSERT(m_frame-&gt;document()); // Client calls shouldn't be made when the frame is in inconsistent state.
</span><del>-    page-&gt;chrome().setStatusbarText(m_frame, m_defaultStatus);
</del><ins>+    page-&gt;chrome().setStatusbarText(*m_frame, m_defaultStatus);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> DOMWindow* DOMWindow::self() const
</span><span class="lines">@@ -1432,8 +1416,7 @@
</span><span class="cx"> 
</span><span class="cx"> Document* DOMWindow::document() const
</span><span class="cx"> {
</span><del>-    ScriptExecutionContext* context = ContextDestructionObserver::scriptExecutionContext();
-    return downcast&lt;Document&gt;(context);
</del><ins>+    return downcast&lt;Document&gt;(ContextDestructionObserver::scriptExecutionContext());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> RefPtr&lt;StyleMedia&gt; DOMWindow::styleMedia() const
</span><span class="lines">@@ -1618,8 +1601,7 @@
</span><span class="cx">     FloatRect fr = page-&gt;chrome().windowRect();
</span><span class="cx">     FloatRect update = fr;
</span><span class="cx">     update.move(x, y);
</span><del>-    // Security check (the spec talks about UniversalBrowserWrite to disable this check...)
-    page-&gt;chrome().setWindowRect(adjustWindowRect(page, update));
</del><ins>+    page-&gt;chrome().setWindowRect(adjustWindowRect(*page, update));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DOMWindow::moveTo(float x, float y) const
</span><span class="lines">@@ -1633,8 +1615,7 @@
</span><span class="cx">     fr.setLocation(sr.location());
</span><span class="cx">     FloatRect update = fr;
</span><span class="cx">     update.move(x, y);
</span><del>-    // Security check (the spec talks about UniversalBrowserWrite to disable this check...)
-    page-&gt;chrome().setWindowRect(adjustWindowRect(page, update));
</del><ins>+    page-&gt;chrome().setWindowRect(adjustWindowRect(*page, update));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DOMWindow::resizeBy(float x, float y) const
</span><span class="lines">@@ -1646,7 +1627,7 @@
</span><span class="cx">     FloatRect fr = page-&gt;chrome().windowRect();
</span><span class="cx">     FloatSize dest = fr.size() + FloatSize(x, y);
</span><span class="cx">     FloatRect update(fr.location(), dest);
</span><del>-    page-&gt;chrome().setWindowRect(adjustWindowRect(page, update));
</del><ins>+    page-&gt;chrome().setWindowRect(adjustWindowRect(*page, update));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DOMWindow::resizeTo(float width, float height) const
</span><span class="lines">@@ -1658,7 +1639,7 @@
</span><span class="cx">     FloatRect fr = page-&gt;chrome().windowRect();
</span><span class="cx">     FloatSize dest = FloatSize(width, height);
</span><span class="cx">     FloatRect update(fr.location(), dest);
</span><del>-    page-&gt;chrome().setWindowRect(adjustWindowRect(page, update));
</del><ins>+    page-&gt;chrome().setWindowRect(adjustWindowRect(*page, update));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> ExceptionOr&lt;int&gt; DOMWindow::setTimeout(std::unique_ptr&lt;ScheduledAction&gt; action, int timeout)
</span><span class="lines">@@ -1681,7 +1662,7 @@
</span><span class="cx"> 
</span><span class="cx">                 if (!WebThreadCountOfObservedContentModifiers()) {
</span><span class="cx">                     if (Page* page = m_frame-&gt;page())
</span><del>-                        page-&gt;chrome().client().observedContentChange(m_frame);
</del><ins>+                        page-&gt;chrome().client().observedContentChange(*m_frame);
</ins><span class="cx">                 }
</span><span class="cx">             }
</span><span class="cx">         }
</span><span class="lines">@@ -1841,7 +1822,7 @@
</span><span class="cx">     if (++m_scrollEventListenerCount == 1 &amp;&amp; document == &amp;document-&gt;topDocument()) {
</span><span class="cx">         Frame* frame = this-&gt;frame();
</span><span class="cx">         if (frame &amp;&amp; frame-&gt;page())
</span><del>-            frame-&gt;page()-&gt;chrome().client().setNeedsScrollNotifications(frame, true);
</del><ins>+            frame-&gt;page()-&gt;chrome().client().setNeedsScrollNotifications(*frame, true);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1851,7 +1832,7 @@
</span><span class="cx">     if (!--m_scrollEventListenerCount &amp;&amp; document == &amp;document-&gt;topDocument()) {
</span><span class="cx">         Frame* frame = this-&gt;frame();
</span><span class="cx">         if (frame &amp;&amp; frame-&gt;page() &amp;&amp; document-&gt;pageCacheState() == Document::NotInPageCache)
</span><del>-            frame-&gt;page()-&gt;chrome().client().setNeedsScrollNotifications(frame, false);
</del><ins>+            frame-&gt;page()-&gt;chrome().client().setNeedsScrollNotifications(*frame, false);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1859,7 +1840,7 @@
</span><span class="cx"> 
</span><span class="cx"> void DOMWindow::resetAllGeolocationPermission()
</span><span class="cx"> {
</span><del>-    // FIXME: Remove PLATFORM(IOS)-guard once we upstream the iOS changes to Geolocation.cpp.
</del><ins>+    // FIXME: Can we remove the PLATFORM(IOS)-guard?
</ins><span class="cx"> #if ENABLE(GEOLOCATION) &amp;&amp; PLATFORM(IOS)
</span><span class="cx">     if (m_navigator)
</span><span class="cx">         NavigatorGeolocation::from(m_navigator.get())-&gt;resetAllGeolocationPermission();
</span><span class="lines">@@ -2287,8 +2268,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (!isCurrentlyDisplayedInFrame())
</span><span class="cx">         return;
</span><del>-    Frame* activeFrame = activeWindow.frame();
-    if (!activeFrame)
</del><ins>+    if (!activeWindow.frame())
</ins><span class="cx">         return;
</span><span class="cx">     Frame* firstFrame = firstWindow.frame();
</span><span class="cx">     if (!firstFrame)
</span><span class="lines">@@ -2303,7 +2283,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (!canShowModalDialog(m_frame) || !firstWindow.allowPopUp())
</del><ins>+    if (!canShowModalDialog(*m_frame) || !firstWindow.allowPopUp())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;Frame&gt; dialogFrame = createWindow(urlString, emptyAtom, parseDialogFeatures(dialogFeaturesString, screenAvailableRect(m_frame-&gt;view())), activeWindow, *firstFrame, *m_frame, WTFMove(prepareDialogFunction));
</span></span></pre></div>
<a id="trunkSourceWebCorepageDOMWindowh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DOMWindow.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DOMWindow.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/DOMWindow.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2006, 2007, 2009, 2010 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2006-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
</span><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="lines">@@ -33,23 +33,14 @@
</span><span class="cx"> #include &quot;FrameDestructionObserver.h&quot;
</span><span class="cx"> #include &quot;ScrollToOptions.h&quot;
</span><span class="cx"> #include &quot;Supplementable.h&quot;
</span><del>-#include &quot;URL.h&quot;
-#include &lt;functional&gt;
-#include &lt;memory&gt;
-#include &lt;wtf/Forward.h&gt;
</del><span class="cx"> #include &lt;wtf/HashSet.h&gt;
</span><del>-#include &lt;wtf/Optional.h&gt;
</del><span class="cx"> #include &lt;wtf/WeakPtr.h&gt;
</span><span class="cx"> 
</span><del>-namespace Inspector {
-class ScriptCallStack;
-}
-
</del><span class="cx"> namespace JSC {
</span><span class="cx"> class ExecState;
</span><span class="cx"> class JSObject;
</span><span class="cx"> class JSValue;
</span><del>-template&lt;typename T&gt; class Strong;
</del><ins>+template&lt;typename&gt; class Strong;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -61,22 +52,15 @@
</span><span class="cx"> class CustomElementRegistry;
</span><span class="cx"> class DOMApplicationCache;
</span><span class="cx"> class DOMSelection;
</span><del>-class DOMURL;
</del><span class="cx"> class DOMWindowProperty;
</span><span class="cx"> class DOMWrapperWorld;
</span><del>-class Database;
-class DatabaseCallback;
</del><span class="cx"> class Document;
</span><span class="cx"> class Element;
</span><span class="cx"> class EventListener;
</span><span class="cx"> class FloatRect;
</span><del>-class Frame;
</del><span class="cx"> class History;
</span><del>-class IDBFactory;
</del><span class="cx"> class Location;
</span><span class="cx"> class MediaQueryList;
</span><del>-class MessageEvent;
-class MessagePort;
</del><span class="cx"> class Navigator;
</span><span class="cx"> class Node;
</span><span class="cx"> class NodeList;
</span><span class="lines">@@ -87,8 +71,6 @@
</span><span class="cx"> class RequestAnimationFrameCallback;
</span><span class="cx"> class ScheduledAction;
</span><span class="cx"> class Screen;
</span><del>-class SecurityOrigin;
-class SerializedScriptValue;
</del><span class="cx"> class Storage;
</span><span class="cx"> class StyleMedia;
</span><span class="cx"> class WebKitNamespace;
</span><span class="lines">@@ -107,7 +89,7 @@
</span><span class="cx">     , public Base64Utilities
</span><span class="cx">     , public Supplementable&lt;DOMWindow&gt; {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;DOMWindow&gt; create(Document* document) { return adoptRef(*new DOMWindow(document)); }
</del><ins>+    static Ref&lt;DOMWindow&gt; create(Document&amp; document) { return adoptRef(*new DOMWindow(document)); }
</ins><span class="cx">     WEBCORE_EXPORT virtual ~DOMWindow();
</span><span class="cx"> 
</span><span class="cx">     // In some rare cases, we'll reuse a DOMWindow for a new Document. For example,
</span><span class="lines">@@ -117,16 +99,11 @@
</span><span class="cx">     // won't be blown away when the network load commits. To make that happen, we
</span><span class="cx">     // &quot;securely transition&quot; the existing DOMWindow to the Document that results from
</span><span class="cx">     // the network load. See also SecurityContext::isSecureTransitionTo.
</span><del>-    void didSecureTransitionTo(Document*);
</del><ins>+    void didSecureTransitionTo(Document&amp;);
</ins><span class="cx"> 
</span><del>-    EventTargetInterface eventTargetInterface() const override { return DOMWindowEventTargetInterfaceType; }
-    ScriptExecutionContext* scriptExecutionContext() const override { return ContextDestructionObserver::scriptExecutionContext(); }
</del><ins>+    void registerProperty(DOMWindowProperty&amp;);
+    void unregisterProperty(DOMWindowProperty&amp;);
</ins><span class="cx"> 
</span><del>-    DOMWindow* toDOMWindow() override;
-
-    void registerProperty(DOMWindowProperty*);
-    void unregisterProperty(DOMWindowProperty*);
-
</del><span class="cx">     void resetUnlessSuspendedForDocumentSuspension();
</span><span class="cx">     void suspendForDocumentSuspension();
</span><span class="cx">     void resumeFromDocumentSuspension();
</span><span class="lines">@@ -138,11 +115,11 @@
</span><span class="cx">     WEBCORE_EXPORT static bool dispatchAllPendingBeforeUnloadEvents();
</span><span class="cx">     WEBCORE_EXPORT static void dispatchAllPendingUnloadEvents();
</span><span class="cx"> 
</span><del>-    static FloatRect adjustWindowRect(Page*, const FloatRect&amp; pendingChanges);
</del><ins>+    static FloatRect adjustWindowRect(Page&amp;, const FloatRect&amp; pendingChanges);
</ins><span class="cx"> 
</span><span class="cx">     bool allowPopUp(); // Call on first window, not target window.
</span><del>-    static bool allowPopUp(Frame* firstFrame);
-    static bool canShowModalDialog(const Frame*);
</del><ins>+    static bool allowPopUp(Frame&amp; firstFrame);
+    static bool canShowModalDialog(const Frame&amp;);
</ins><span class="cx">     WEBCORE_EXPORT void setCanShowModalDialogOverride(bool);
</span><span class="cx"> 
</span><span class="cx">     Screen* screen() const;
</span><span class="lines">@@ -245,7 +222,6 @@
</span><span class="cx"> 
</span><span class="cx">     ExceptionOr&lt;void&gt; postMessage(JSC::ExecState&amp;, DOMWindow&amp; callerWindow, JSC::JSValue message, const String&amp; targetOrigin, Vector&lt;JSC::Strong&lt;JSC::JSObject&gt;&gt;&amp;&amp;);
</span><span class="cx">     void postMessageTimerFired(PostMessageTimer&amp;);
</span><del>-    void dispatchMessageEventWithOriginCheck(SecurityOrigin* intendedTargetOrigin, Event&amp;, PassRefPtr&lt;Inspector::ScriptCallStack&gt;);
</del><span class="cx"> 
</span><span class="cx">     void languagesChanged();
</span><span class="cx"> 
</span><span class="lines">@@ -272,9 +248,9 @@
</span><span class="cx"> 
</span><span class="cx">     // Events
</span><span class="cx">     // EventTarget API
</span><del>-    bool addEventListener(const AtomicString&amp; eventType, Ref&lt;EventListener&gt;&amp;&amp;, const AddEventListenerOptions&amp;) override;
-    bool removeEventListener(const AtomicString&amp; eventType, EventListener&amp;, const ListenerOptions&amp;) override;
-    void removeAllEventListeners() override;
</del><ins>+    bool addEventListener(const AtomicString&amp; eventType, Ref&lt;EventListener&gt;&amp;&amp;, const AddEventListenerOptions&amp;) final;
+    bool removeEventListener(const AtomicString&amp; eventType, EventListener&amp;, const ListenerOptions&amp;) final;
+    void removeAllEventListeners() final;
</ins><span class="cx"> 
</span><span class="cx">     using EventTarget::dispatchEvent;
</span><span class="cx">     bool dispatchEvent(Event&amp;, EventTarget*);
</span><span class="lines">@@ -286,8 +262,8 @@
</span><span class="cx"> 
</span><span class="cx">     void finishedLoading();
</span><span class="cx"> 
</span><del>-    using RefCounted&lt;DOMWindow&gt;::ref;
-    using RefCounted&lt;DOMWindow&gt;::deref;
</del><ins>+    using RefCounted::ref;
+    using RefCounted::deref;
</ins><span class="cx"> 
</span><span class="cx">     // HTML 5 key/value storage
</span><span class="cx">     ExceptionOr&lt;Storage*&gt; sessionStorage() const;
</span><span class="lines">@@ -313,6 +289,7 @@
</span><span class="cx"> #if ENABLE(WEB_TIMING)
</span><span class="cx">     Performance* performance() const;
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx">     double nowTimestamp() const;
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="lines">@@ -347,16 +324,21 @@
</span><span class="cx">     WeakPtr&lt;DOMWindow&gt; createWeakPtr() { return m_weakPtrFactory.createWeakPtr(); }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    explicit DOMWindow(Document*);
</del><ins>+    explicit DOMWindow(Document&amp;);
</ins><span class="cx"> 
</span><ins>+    EventTargetInterface eventTargetInterface() const final { return DOMWindowEventTargetInterfaceType; }
+    ScriptExecutionContext* scriptExecutionContext() const final { return ContextDestructionObserver::scriptExecutionContext(); }
+
+    DOMWindow* toDOMWindow() final;
+
</ins><span class="cx">     Page* page();
</span><span class="cx">     bool allowedToChangeWindowGeometry() const;
</span><span class="cx"> 
</span><del>-    void frameDestroyed() override;
-    void willDetachPage() override;
</del><ins>+    void frameDestroyed() final;
+    void willDetachPage() final;
</ins><span class="cx"> 
</span><del>-    void refEventTarget() override { ref(); }
-    void derefEventTarget() override { deref(); }
</del><ins>+    void refEventTarget() final { ref(); }
+    void derefEventTarget() final { deref(); }
</ins><span class="cx"> 
</span><span class="cx">     static RefPtr&lt;Frame&gt; createWindow(const String&amp; urlString, const AtomicString&amp; frameName, const WindowFeatures&amp;, DOMWindow&amp; activeWindow, Frame&amp; firstFrame, Frame&amp; openerFrame, std::function&lt;void(DOMWindow&amp;)&gt; prepareDialogFunction = nullptr);
</span><span class="cx">     bool isInsecureScriptAccess(DOMWindow&amp; activeWindow, const String&amp; urlString);
</span></span></pre></div>
<a id="trunkSourceWebCorepageDOMWindowPropertycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DOMWindowProperty.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DOMWindowProperty.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/DOMWindowProperty.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -42,7 +42,7 @@
</span><span class="cx">     // We should fix that.  &lt;rdar://problem/11567132&gt;
</span><span class="cx">     if (m_frame) {
</span><span class="cx">         m_associatedDOMWindow = m_frame-&gt;document()-&gt;domWindow();
</span><del>-        m_associatedDOMWindow-&gt;registerProperty(this);
</del><ins>+        m_associatedDOMWindow-&gt;registerProperty(*this);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx"> DOMWindowProperty::~DOMWindowProperty()
</span><span class="cx"> {
</span><span class="cx">     if (m_associatedDOMWindow)
</span><del>-        m_associatedDOMWindow-&gt;unregisterProperty(this);
</del><ins>+        m_associatedDOMWindow-&gt;unregisterProperty(*this);
</ins><span class="cx"> 
</span><span class="cx">     m_associatedDOMWindow = nullptr;
</span><span class="cx">     m_frame = nullptr;
</span><span class="lines">@@ -86,7 +86,7 @@
</span><span class="cx">     // DOMWindowProperty lifetime isn't tied directly to the DOMWindow itself so it is important that it unregister
</span><span class="cx">     // itself from any DOMWindow it is associated with if that DOMWindow is going away.
</span><span class="cx">     if (m_associatedDOMWindow)
</span><del>-        m_associatedDOMWindow-&gt;unregisterProperty(this);
</del><ins>+        m_associatedDOMWindow-&gt;unregisterProperty(*this);
</ins><span class="cx">     m_associatedDOMWindow = nullptr;
</span><span class="cx">     m_frame = nullptr;
</span><span class="cx"> }
</span><span class="lines">@@ -100,7 +100,7 @@
</span><span class="cx">     // DOMWindowProperty lifetime isn't tied directly to the DOMWindow itself so it is important that it unregister
</span><span class="cx">     // itself from any DOMWindow it is associated with if that DOMWindow is going away.
</span><span class="cx">     if (m_associatedDOMWindow)
</span><del>-        m_associatedDOMWindow-&gt;unregisterProperty(this);
</del><ins>+        m_associatedDOMWindow-&gt;unregisterProperty(*this);
</ins><span class="cx">     m_associatedDOMWindow = nullptr;
</span><span class="cx">     m_frame = nullptr;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorepageDebugPageOverlayscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DebugPageOverlays.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DebugPageOverlays.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/DebugPageOverlays.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2014 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2014-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -36,7 +36,6 @@
</span><span class="cx"> #include &quot;Region.h&quot;
</span><span class="cx"> #include &quot;ScrollingCoordinator.h&quot;
</span><span class="cx"> #include &quot;Settings.h&quot;
</span><del>-#include &lt;wtf/RefPtr.h&gt;
</del><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="lines">@@ -44,7 +43,7 @@
</span><span class="cx"> 
</span><span class="cx"> class RegionOverlay : public RefCounted&lt;RegionOverlay&gt;, public PageOverlay::Client {
</span><span class="cx"> public:
</span><del>-    static PassRefPtr&lt;RegionOverlay&gt; create(MainFrame&amp;, DebugPageOverlays::RegionType);
</del><ins>+    static Ref&lt;RegionOverlay&gt; create(MainFrame&amp;, DebugPageOverlays::RegionType);
</ins><span class="cx">     virtual ~RegionOverlay();
</span><span class="cx"> 
</span><span class="cx">     void recomputeRegion();
</span><span class="lines">@@ -70,7 +69,6 @@
</span><span class="cx">     Color m_color;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-
</del><span class="cx"> class MouseWheelRegionOverlay final : public RegionOverlay {
</span><span class="cx"> public:
</span><span class="cx">     static Ref&lt;MouseWheelRegionOverlay&gt; create(MainFrame&amp; frame)
</span><span class="lines">@@ -89,17 +87,14 @@
</span><span class="cx"> 
</span><span class="cx"> bool MouseWheelRegionOverlay::updateRegion()
</span><span class="cx"> {
</span><del>-    std::unique_ptr&lt;Region&gt; region = std::make_unique&lt;Region&gt;();
</del><ins>+    auto region = std::make_unique&lt;Region&gt;();
</ins><span class="cx">     
</span><span class="cx">     for (const Frame* frame = &amp;m_frame; frame; frame = frame-&gt;tree().traverseNext()) {
</span><span class="cx">         if (!frame-&gt;view() || !frame-&gt;document())
</span><span class="cx">             continue;
</span><span class="cx"> 
</span><del>-        Document::RegionFixedPair frameRegion = frame-&gt;document()-&gt;absoluteRegionForEventTargets(frame-&gt;document()-&gt;wheelEventTargets());
-    
-        IntPoint frameOffset = frame-&gt;view()-&gt;contentsToRootView(IntPoint());
-        frameRegion.first.translate(toIntSize(frameOffset));
-        
</del><ins>+        auto frameRegion = frame-&gt;document()-&gt;absoluteRegionForEventTargets(frame-&gt;document()-&gt;wheelEventTargets());
+        frameRegion.first.translate(toIntSize(frame-&gt;view()-&gt;contentsToRootView(IntPoint())));
</ins><span class="cx">         region-&gt;unite(frameRegion.first);
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="lines">@@ -128,7 +123,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool NonFastScrollableRegionOverlay::updateRegion()
</span><span class="cx"> {
</span><del>-    std::unique_ptr&lt;Region&gt; region = std::make_unique&lt;Region&gt;();
</del><ins>+    auto region = std::make_unique&lt;Region&gt;();
</ins><span class="cx"> 
</span><span class="cx">     if (Page* page = m_frame.page()) {
</span><span class="cx">         if (ScrollingCoordinator* scrollingCoordinator = page-&gt;scrollingCoordinator()) {
</span><span class="lines">@@ -143,16 +138,16 @@
</span><span class="cx">     return regionChanged;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;RegionOverlay&gt; RegionOverlay::create(MainFrame&amp; frame, DebugPageOverlays::RegionType regionType)
</del><ins>+Ref&lt;RegionOverlay&gt; RegionOverlay::create(MainFrame&amp; frame, DebugPageOverlays::RegionType regionType)
</ins><span class="cx"> {
</span><span class="cx">     switch (regionType) {
</span><span class="cx">     case DebugPageOverlays::RegionType::WheelEventHandlers:
</span><span class="cx">         return MouseWheelRegionOverlay::create(frame);
</span><del>-
</del><span class="cx">     case DebugPageOverlays::RegionType::NonFastScrollableRegion:
</span><span class="cx">         return NonFastScrollableRegionOverlay::create(frame);
</span><span class="cx">     }
</span><del>-    return nullptr;
</del><ins>+    ASSERT_NOT_REACHED();
+    return MouseWheelRegionOverlay::create(frame);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> RegionOverlay::RegionOverlay(MainFrame&amp; frame, Color regionColor)
</span><span class="lines">@@ -165,7 +160,7 @@
</span><span class="cx"> RegionOverlay::~RegionOverlay()
</span><span class="cx"> {
</span><span class="cx">     if (m_overlay)
</span><del>-        m_frame.pageOverlayController().uninstallPageOverlay(m_overlay.get(), PageOverlay::FadeMode::DoNotFade);
</del><ins>+        m_frame.pageOverlayController().uninstallPageOverlay(*m_overlay, PageOverlay::FadeMode::DoNotFade);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RegionOverlay::willMoveToPage(PageOverlay&amp;, Page* page)
</span><span class="lines">@@ -186,11 +181,10 @@
</span><span class="cx"> 
</span><span class="cx">     if (!m_region)
</span><span class="cx">         return;
</span><del>-    
</del><ins>+
</ins><span class="cx">     GraphicsContextStateSaver saver(context);
</span><span class="cx">     context.setFillColor(m_color);
</span><span class="cx">     for (auto rect : m_region-&gt;rects()) {
</span><del>-    
</del><span class="cx">         if (rect.intersects(dirtyRect))
</span><span class="cx">             context.fillRect(rect);
</span><span class="cx">     }
</span><span class="lines">@@ -228,44 +222,40 @@
</span><span class="cx"> {
</span><span class="cx">     auto it = m_frameRegionOverlays.find(&amp;frame);
</span><span class="cx">     if (it != m_frameRegionOverlays.end()) {
</span><del>-        auto&amp; visualizers = it-&gt;value;
-        
-        if (!visualizers[indexOf(regionType)])
-            visualizers[indexOf(regionType)] = RegionOverlay::create(frame, regionType);
-
-        return *visualizers[indexOf(regionType)];
</del><ins>+        auto&amp; visualizer = it-&gt;value[indexOf(regionType)];
+        if (!visualizer)
+            visualizer = RegionOverlay::create(frame, regionType);
+        return *visualizer;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     Vector&lt;RefPtr&lt;RegionOverlay&gt;&gt; visualizers(NumberOfRegionTypes);
</span><del>-    
-    RefPtr&lt;RegionOverlay&gt; visualizer = RegionOverlay::create(frame, regionType);
-    visualizers[indexOf(regionType)] = visualizer;
-
</del><ins>+    auto visualizer = RegionOverlay::create(frame, regionType);
+    visualizers[indexOf(regionType)] = visualizer.copyRef();
</ins><span class="cx">     m_frameRegionOverlays.add(&amp;frame, WTFMove(visualizers));
</span><del>-    return *visualizer;
</del><ins>+    return visualizer;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DebugPageOverlays::showRegionOverlay(MainFrame&amp; frame, RegionType regionType)
</span><span class="cx"> {
</span><del>-    RegionOverlay&amp; visualizer = ensureRegionOverlayForFrame(frame, regionType);
-    frame.pageOverlayController().installPageOverlay(&amp;visualizer.overlay(), PageOverlay::FadeMode::DoNotFade);
</del><ins>+    auto&amp; visualizer = ensureRegionOverlayForFrame(frame, regionType);
+    frame.pageOverlayController().installPageOverlay(visualizer.overlay(), PageOverlay::FadeMode::DoNotFade);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DebugPageOverlays::hideRegionOverlay(MainFrame&amp; frame, RegionType regionType)
</span><span class="cx"> {
</span><span class="cx">     auto it = m_frameRegionOverlays.find(&amp;frame);
</span><del>-    if (it != m_frameRegionOverlays.end()) {
-        auto&amp; visualizers = it-&gt;value;
-        if (RegionOverlay* visualizer = visualizers[indexOf(regionType)].get()) {
-            frame.pageOverlayController().uninstallPageOverlay(&amp;visualizer-&gt;overlay(), PageOverlay::FadeMode::DoNotFade);
-            visualizers[indexOf(regionType)] = nullptr;
-        }
-    }
</del><ins>+    if (it == m_frameRegionOverlays.end())
+        return;
+    auto&amp; visualizer = it-&gt;value[indexOf(regionType)];
+    if (!visualizer)
+        return;
+    frame.pageOverlayController().uninstallPageOverlay(visualizer-&gt;overlay(), PageOverlay::FadeMode::DoNotFade);
+    visualizer = nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DebugPageOverlays::regionChanged(Frame&amp; frame, RegionType regionType)
</span><span class="cx"> {
</span><del>-    if (RegionOverlay* visualizer = regionOverlayForFrame(frame.mainFrame(), regionType))
</del><ins>+    if (auto* visualizer = regionOverlayForFrame(frame.mainFrame(), regionType))
</ins><span class="cx">         visualizer-&gt;recomputeRegion();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -272,10 +262,9 @@
</span><span class="cx"> RegionOverlay* DebugPageOverlays::regionOverlayForFrame(MainFrame&amp; frame, RegionType regionType) const
</span><span class="cx"> {
</span><span class="cx">     auto it = m_frameRegionOverlays.find(&amp;frame);
</span><del>-    if (it != m_frameRegionOverlays.end())
-        return it-&gt;value.at(indexOf(regionType)).get();
-
-    return nullptr;
</del><ins>+    if (it == m_frameRegionOverlays.end())
+        return nullptr;
+    return it-&gt;value.at(indexOf(regionType)).get();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DebugPageOverlays::updateOverlayRegionVisibility(MainFrame&amp; frame, DebugOverlayRegions visibleRegions)
</span></span></pre></div>
<a id="trunkSourceWebCorepageDragControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DragController.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DragController.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/DragController.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -195,9 +195,9 @@
</span><span class="cx"> #else
</span><span class="cx">         DataTransferAccessPolicy policy = DataTransferAccessPolicy::TypesReadable;
</span><span class="cx"> #endif
</span><del>-        RefPtr&lt;DataTransfer&gt; dataTransfer = DataTransfer::createForDragAndDrop(policy, dragData);
</del><ins>+        auto dataTransfer = DataTransfer::createForDragAndDrop(policy, dragData);
</ins><span class="cx">         dataTransfer-&gt;setSourceOperation(dragData.draggingSourceOperationMask());
</span><del>-        m_page.mainFrame().eventHandler().cancelDragAndDrop(createMouseEvent(dragData), dataTransfer.get());
</del><ins>+        m_page.mainFrame().eventHandler().cancelDragAndDrop(createMouseEvent(dragData), dataTransfer);
</ins><span class="cx">         dataTransfer-&gt;setAccessPolicy(DataTransferAccessPolicy::Numb); // Invalidate dataTransfer here for security.
</span><span class="cx">     }
</span><span class="cx">     mouseMovedIntoDocument(nullptr);
</span><span class="lines">@@ -225,9 +225,9 @@
</span><span class="cx">         bool preventedDefault = false;
</span><span class="cx">         if (mainFrame-&gt;view()) {
</span><span class="cx">             // Sending an event can result in the destruction of the view and part.
</span><del>-            RefPtr&lt;DataTransfer&gt; dataTransfer = DataTransfer::createForDragAndDrop(DataTransferAccessPolicy::Readable, dragData);
</del><ins>+            auto dataTransfer = DataTransfer::createForDragAndDrop(DataTransferAccessPolicy::Readable, dragData);
</ins><span class="cx">             dataTransfer-&gt;setSourceOperation(dragData.draggingSourceOperationMask());
</span><del>-            preventedDefault = mainFrame-&gt;eventHandler().performDragAndDrop(createMouseEvent(dragData), dataTransfer.get());
</del><ins>+            preventedDefault = mainFrame-&gt;eventHandler().performDragAndDrop(createMouseEvent(dragData), dataTransfer);
</ins><span class="cx">             dataTransfer-&gt;setAccessPolicy(DataTransferAccessPolicy::Numb); // Invalidate dataTransfer here for security.
</span><span class="cx">         }
</span><span class="cx">         if (preventedDefault) {
</span><span class="lines">@@ -547,7 +547,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (rootEditableElement) {
</span><span class="cx">         if (Frame* frame = rootEditableElement-&gt;document().frame())
</span><del>-            frame-&gt;eventHandler().updateDragStateAfterEditDragIfNeeded(rootEditableElement.get());
</del><ins>+            frame-&gt;eventHandler().updateDragStateAfterEditDragIfNeeded(*rootEditableElement);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return true;
</span><span class="lines">@@ -616,12 +616,12 @@
</span><span class="cx"> #else
</span><span class="cx">     DataTransferAccessPolicy policy = DataTransferAccessPolicy::TypesReadable;
</span><span class="cx"> #endif
</span><del>-    RefPtr&lt;DataTransfer&gt; dataTransfer = DataTransfer::createForDragAndDrop(policy, dragData);
</del><ins>+    auto dataTransfer = DataTransfer::createForDragAndDrop(policy, dragData);
</ins><span class="cx">     DragOperation srcOpMask = dragData.draggingSourceOperationMask();
</span><span class="cx">     dataTransfer-&gt;setSourceOperation(srcOpMask);
</span><span class="cx"> 
</span><span class="cx">     PlatformMouseEvent event = createMouseEvent(dragData);
</span><del>-    if (!mainFrame-&gt;eventHandler().updateDragAndDrop(event, dataTransfer.get())) {
</del><ins>+    if (!mainFrame-&gt;eventHandler().updateDragAndDrop(event, dataTransfer)) {
</ins><span class="cx">         dataTransfer-&gt;setAccessPolicy(DataTransferAccessPolicy::Numb); // Invalidate dataTransfer here for security.
</span><span class="cx">         return false;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorepageEventHandlercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/EventHandler.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/EventHandler.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/EventHandler.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2006-2016 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2006-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org)
</span><span class="cx">  * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies)
</span><span class="cx">  *
</span><span class="lines">@@ -28,16 +28,12 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;EventHandler.h&quot;
</span><span class="cx"> 
</span><del>-#include &quot;AXObjectCache.h&quot;
</del><span class="cx"> #include &quot;AutoscrollController.h&quot;
</span><span class="cx"> #include &quot;BackForwardController.h&quot;
</span><span class="cx"> #include &quot;CachedImage.h&quot;
</span><span class="cx"> #include &quot;Chrome.h&quot;
</span><span class="cx"> #include &quot;ChromeClient.h&quot;
</span><del>-#include &quot;Cursor.h&quot;
</del><span class="cx"> #include &quot;CursorList.h&quot;
</span><del>-#include &quot;Document.h&quot;
-#include &quot;DocumentEventQueue.h&quot;
</del><span class="cx"> #include &quot;DragController.h&quot;
</span><span class="cx"> #include &quot;DragState.h&quot;
</span><span class="cx"> #include &quot;Editor.h&quot;
</span><span class="lines">@@ -94,6 +90,7 @@
</span><span class="cx"> #include &quot;UserTypingGestureIndicator.h&quot;
</span><span class="cx"> #include &quot;VisibleUnits.h&quot;
</span><span class="cx"> #include &quot;WheelEvent.h&quot;
</span><ins>+#include &quot;WheelEventDeltaFilter.h&quot;
</ins><span class="cx"> #include &quot;WindowsKeyboardCodes.h&quot;
</span><span class="cx"> #include &quot;htmlediting.h&quot;
</span><span class="cx"> #include &lt;wtf/Assertions.h&gt;
</span><span class="lines">@@ -100,7 +97,6 @@
</span><span class="cx"> #include &lt;wtf/CurrentTime.h&gt;
</span><span class="cx"> #include &lt;wtf/NeverDestroyed.h&gt;
</span><span class="cx"> #include &lt;wtf/StdLibExtras.h&gt;
</span><del>-#include &lt;wtf/WeakPtr.h&gt;
</del><span class="cx"> 
</span><span class="cx"> #if ENABLE(IOS_TOUCH_EVENTS)
</span><span class="cx"> #include &quot;PlatformTouchEventIOS.h&quot;
</span><span class="lines">@@ -176,21 +172,6 @@
</span><span class="cx"> const double minimumCursorScale = 0.001;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-enum NoCursorChangeType { NoCursorChange };
-
-class OptionalCursor {
-public:
-    OptionalCursor(NoCursorChangeType) : m_isCursorChange(false) { }
-    OptionalCursor(const Cursor&amp; cursor) : m_isCursorChange(true), m_cursor(cursor) { }
-
-    bool isCursorChange() const { return m_isCursorChange; }
-    const Cursor&amp; cursor() const { ASSERT(m_isCursorChange); return m_cursor; }
-
-private:
-    bool m_isCursorChange;
-    Cursor m_cursor;
-};
-
</del><span class="cx"> class MaximumDurationTracker {
</span><span class="cx"> public:
</span><span class="cx">     explicit MaximumDurationTracker(double *maxDuration)
</span><span class="lines">@@ -405,12 +386,14 @@
</span><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> #if ENABLE(DRAG_SUPPORT)
</span><ins>+
</ins><span class="cx"> DragState&amp; EventHandler::dragState()
</span><span class="cx"> {
</span><span class="cx">     static NeverDestroyed&lt;DragState&gt; state;
</span><span class="cx">     return state;
</span><span class="cx"> }
</span><del>-#endif // ENABLE(DRAG_SUPPORT)
</del><ins>+
+#endif
</ins><span class="cx">     
</span><span class="cx"> void EventHandler::clear()
</span><span class="cx"> {
</span><span class="lines">@@ -800,14 +783,15 @@
</span><span class="cx"> 
</span><span class="cx">     m_mousePressNode = event.targetNode();
</span><span class="cx">     m_frame.document()-&gt;setFocusNavigationStartingNode(event.targetNode());
</span><ins>+
</ins><span class="cx"> #if ENABLE(DRAG_SUPPORT)
</span><del>-    m_dragStartPos = event.event().position();
</del><ins>+    m_dragStartPosition = event.event().position();
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    bool swallowEvent = false;
</del><span class="cx">     m_mousePressed = true;
</span><span class="cx">     m_selectionInitiationState = HaveNotStartedSelection;
</span><span class="cx"> 
</span><ins>+    bool swallowEvent = false;
</ins><span class="cx">     if (event.event().clickCount() == 2)
</span><span class="cx">         swallowEvent = handleMousePressEventDoubleClick(event);
</span><span class="cx">     else if (event.event().clickCount() &gt;= 3)
</span><span class="lines">@@ -977,11 +961,11 @@
</span><span class="cx">         newSelection.setExtent(positionAfterNode(rootUserSelectAllForMousePressNode).downstream(CanCrossEditingBoundary));
</span><span class="cx">     } else {
</span><span class="cx">         // Reset base for user select all when base is inside user-select-all area and extent &lt; base.
</span><del>-        if (rootUserSelectAllForMousePressNode &amp;&amp; comparePositions(target-&gt;renderer()-&gt;positionForPoint(hitTestResult.localPoint(), nullptr), m_mousePressNode-&gt;renderer()-&gt;positionForPoint(m_dragStartPos, nullptr)) &lt; 0)
</del><ins>+        if (rootUserSelectAllForMousePressNode &amp;&amp; comparePositions(target-&gt;renderer()-&gt;positionForPoint(hitTestResult.localPoint(), nullptr), m_mousePressNode-&gt;renderer()-&gt;positionForPoint(m_dragStartPosition, nullptr)) &lt; 0)
</ins><span class="cx">             newSelection.setBase(positionAfterNode(rootUserSelectAllForMousePressNode).downstream(CanCrossEditingBoundary));
</span><span class="cx">         
</span><span class="cx">         Node* rootUserSelectAllForTarget = Position::rootUserSelectAllForNode(target);
</span><del>-        if (rootUserSelectAllForTarget &amp;&amp; m_mousePressNode-&gt;renderer() &amp;&amp; comparePositions(target-&gt;renderer()-&gt;positionForPoint(hitTestResult.localPoint(), nullptr), m_mousePressNode-&gt;renderer()-&gt;positionForPoint(m_dragStartPos, nullptr)) &lt; 0)
</del><ins>+        if (rootUserSelectAllForTarget &amp;&amp; m_mousePressNode-&gt;renderer() &amp;&amp; comparePositions(target-&gt;renderer()-&gt;positionForPoint(hitTestResult.localPoint(), nullptr), m_mousePressNode-&gt;renderer()-&gt;positionForPoint(m_dragStartPosition, nullptr)) &lt; 0)
</ins><span class="cx">             newSelection.setExtent(positionBeforeNode(rootUserSelectAllForTarget).upstream(CanCrossEditingBoundary));
</span><span class="cx">         else if (rootUserSelectAllForTarget &amp;&amp; m_mousePressNode-&gt;renderer())
</span><span class="cx">             newSelection.setExtent(positionAfterNode(rootUserSelectAllForTarget).downstream(CanCrossEditingBoundary));
</span><span class="lines">@@ -1047,7 +1031,7 @@
</span><span class="cx">     // editing, place the caret.
</span><span class="cx">     if (m_mouseDownWasSingleClickInSelection &amp;&amp; m_selectionInitiationState != ExtendedSelection
</span><span class="cx"> #if ENABLE(DRAG_SUPPORT)
</span><del>-            &amp;&amp; m_dragStartPos == event.event().position()
</del><ins>+            &amp;&amp; m_dragStartPosition == event.event().position()
</ins><span class="cx"> #endif
</span><span class="cx">             &amp;&amp; m_frame.selection().isRange()
</span><span class="cx">             &amp;&amp; event.event().button() != RightButton) {
</span><span class="lines">@@ -1084,12 +1068,12 @@
</span><span class="cx">     m_autoscrollController-&gt;didPanScrollStop();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void EventHandler::startPanScrolling(RenderElement* renderer)
</del><ins>+void EventHandler::startPanScrolling(RenderElement&amp; renderer)
</ins><span class="cx"> {
</span><span class="cx"> #if !PLATFORM(IOS)
</span><del>-    if (!is&lt;RenderBox&gt;(*renderer))
</del><ins>+    if (!is&lt;RenderBox&gt;(renderer))
</ins><span class="cx">         return;
</span><del>-    m_autoscrollController-&gt;startPanScrolling(downcast&lt;RenderBox&gt;(renderer), lastKnownMousePosition());
</del><ins>+    m_autoscrollController-&gt;startPanScrolling(&amp;downcast&lt;RenderBox&gt;(renderer), lastKnownMousePosition());
</ins><span class="cx">     invalidateClick();
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="lines">@@ -1374,24 +1358,28 @@
</span><span class="cx">     HitTestResult result(view-&gt;windowToContents(m_lastKnownMousePosition));
</span><span class="cx">     renderView-&gt;hitTest(request, result);
</span><span class="cx"> 
</span><del>-    OptionalCursor optionalCursor = selectCursor(result, shiftKey);
-    if (optionalCursor.isCursorChange()) {
-        m_currentMouseCursor = optionalCursor.cursor();
-        view-&gt;setCursor(m_currentMouseCursor);
</del><ins>+    updateCursor(*view, result, shiftKey);
+}
+
+void EventHandler::updateCursor(FrameView&amp; view, const HitTestResult&amp; result, bool shiftKey)
+{
+    if (auto optionalCursor = selectCursor(result, shiftKey)) {
+        m_currentMouseCursor = WTFMove(optionalCursor.value());
+        view.setCursor(m_currentMouseCursor);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-OptionalCursor EventHandler::selectCursor(const HitTestResult&amp; result, bool shiftKey)
</del><ins>+std::optional&lt;Cursor&gt; EventHandler::selectCursor(const HitTestResult&amp; result, bool shiftKey)
</ins><span class="cx"> {
</span><span class="cx">     if (m_resizeLayer &amp;&amp; m_resizeLayer-&gt;inResizeMode())
</span><del>-        return NoCursorChange;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     if (!m_frame.page())
</span><del>-        return NoCursorChange;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(PAN_SCROLLING)
</span><span class="cx">     if (m_frame.mainFrame().eventHandler().panScrollInProgress())
</span><del>-        return NoCursorChange;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     Ref&lt;Frame&gt; protectedFrame(m_frame);
</span><span class="lines">@@ -1406,7 +1394,7 @@
</span><span class="cx"> 
</span><span class="cx">     Node* node = result.targetNode();
</span><span class="cx">     if (!node)
</span><del>-        return NoCursorChange;
</del><ins>+        return std::nullopt;
</ins><span class="cx"> 
</span><span class="cx">     auto renderer = node-&gt;renderer();
</span><span class="cx">     auto* style = renderer ? &amp;renderer-&gt;style() : nullptr;
</span><span class="lines">@@ -1428,7 +1416,7 @@
</span><span class="cx">         case SetCursor:
</span><span class="cx">             return overrideCursor;
</span><span class="cx">         case DoNotSetCursor:
</span><del>-            return NoCursorChange;
</del><ins>+            return std::nullopt;
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -1947,15 +1935,10 @@
</span><span class="cx">         // node to be detached from its FrameView, in which case the event should not be passed.
</span><span class="cx">         if (newSubframe-&gt;view())
</span><span class="cx">             swallowEvent |= passMouseMoveEventToSubframe(mouseEvent, newSubframe.get(), hoveredNode);
</span><ins>+    } else {
</ins><span class="cx"> #if ENABLE(CURSOR_SUPPORT)
</span><del>-    } else {
-        if (FrameView* view = m_frame.view()) {
-            OptionalCursor optionalCursor = selectCursor(mouseEvent.hitTestResult(), platformMouseEvent.shiftKey());
-            if (optionalCursor.isCursorChange()) {
-                m_currentMouseCursor = optionalCursor.cursor();
-                view-&gt;setCursor(m_currentMouseCursor);
-            }
-        }
</del><ins>+        if (auto* view = m_frame.view())
+            updateCursor(*view, mouseEvent.hitTestResult(), platformMouseEvent.shiftKey());
</ins><span class="cx"> #endif
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="lines">@@ -1968,7 +1951,7 @@
</span><span class="cx"> #if ENABLE(DRAG_SUPPORT)
</span><span class="cx">     if (!swallowEvent)
</span><span class="cx">         swallowEvent = handleMouseDraggedEvent(mouseEvent);
</span><del>-#endif // ENABLE(DRAG_SUPPORT)
</del><ins>+#endif
</ins><span class="cx"> 
</span><span class="cx">     return swallowEvent;
</span><span class="cx"> }
</span><span class="lines">@@ -2236,7 +2219,7 @@
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx">     
</span><del>-bool EventHandler::updateDragAndDrop(const PlatformMouseEvent&amp; event, DataTransfer* dataTransfer)
</del><ins>+bool EventHandler::updateDragAndDrop(const PlatformMouseEvent&amp; event, DataTransfer&amp; dataTransfer)
</ins><span class="cx"> {
</span><span class="cx">     Ref&lt;Frame&gt; protectedFrame(m_frame);
</span><span class="cx"> 
</span><span class="lines">@@ -2275,9 +2258,9 @@
</span><span class="cx">                 // for now we don't care if event handler cancels default behavior, since there is none
</span><span class="cx">                 dispatchDragSrcEvent(eventNames().dragEvent, event);
</span><span class="cx">             }
</span><del>-            accept = dispatchDragEvent(eventNames().dragenterEvent, *newTarget, event, dataTransfer);
</del><ins>+            accept = dispatchDragEvent(eventNames().dragenterEvent, *newTarget, event, &amp;dataTransfer);
</ins><span class="cx">             if (!accept)
</span><del>-                accept = findDropZone(newTarget.get(), dataTransfer);
</del><ins>+                accept = findDropZone(newTarget.get(), &amp;dataTransfer);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         if (targetIsFrame(m_dragTarget.get(), targetFrame)) {
</span><span class="lines">@@ -2284,7 +2267,7 @@
</span><span class="cx">             if (targetFrame)
</span><span class="cx">                 accept = targetFrame-&gt;eventHandler().updateDragAndDrop(event, dataTransfer);
</span><span class="cx">         } else if (m_dragTarget)
</span><del>-            dispatchDragEvent(eventNames().dragleaveEvent, *m_dragTarget, event, dataTransfer);
</del><ins>+            dispatchDragEvent(eventNames().dragleaveEvent, *m_dragTarget, event, &amp;dataTransfer);
</ins><span class="cx"> 
</span><span class="cx">         if (newTarget) {
</span><span class="cx">             // We do not explicitly call dispatchDragEvent here because it could ultimately result in the appearance that
</span><span class="lines">@@ -2302,9 +2285,9 @@
</span><span class="cx">                 // for now we don't care if event handler cancels default behavior, since there is none
</span><span class="cx">                 dispatchDragSrcEvent(eventNames().dragEvent, event);
</span><span class="cx">             }
</span><del>-            accept = dispatchDragEvent(eventNames().dragoverEvent, *newTarget, event, dataTransfer);
</del><ins>+            accept = dispatchDragEvent(eventNames().dragoverEvent, *newTarget, event, &amp;dataTransfer);
</ins><span class="cx">             if (!accept)
</span><del>-                accept = findDropZone(newTarget.get(), dataTransfer);
</del><ins>+                accept = findDropZone(newTarget.get(), &amp;dataTransfer);
</ins><span class="cx">             m_shouldOnlyFireDragOverEvent = false;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -2312,7 +2295,7 @@
</span><span class="cx">     return accept;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void EventHandler::cancelDragAndDrop(const PlatformMouseEvent&amp; event, DataTransfer* dataTransfer)
</del><ins>+void EventHandler::cancelDragAndDrop(const PlatformMouseEvent&amp; event, DataTransfer&amp; dataTransfer)
</ins><span class="cx"> {
</span><span class="cx">     Ref&lt;Frame&gt; protectedFrame(m_frame);
</span><span class="cx"> 
</span><span class="lines">@@ -2323,12 +2306,12 @@
</span><span class="cx">     } else if (m_dragTarget) {
</span><span class="cx">         if (dragState().source &amp;&amp; dragState().shouldDispatchEvents)
</span><span class="cx">             dispatchDragSrcEvent(eventNames().dragEvent, event);
</span><del>-        dispatchDragEvent(eventNames().dragleaveEvent, *m_dragTarget, event, dataTransfer);
</del><ins>+        dispatchDragEvent(eventNames().dragleaveEvent, *m_dragTarget, event, &amp;dataTransfer);
</ins><span class="cx">     }
</span><span class="cx">     clearDragState();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool EventHandler::performDragAndDrop(const PlatformMouseEvent&amp; event, DataTransfer* dataTransfer)
</del><ins>+bool EventHandler::performDragAndDrop(const PlatformMouseEvent&amp; event, DataTransfer&amp; dataTransfer)
</ins><span class="cx"> {
</span><span class="cx">     Ref&lt;Frame&gt; protectedFrame(m_frame);
</span><span class="cx"> 
</span><span class="lines">@@ -2338,7 +2321,7 @@
</span><span class="cx">         if (targetFrame)
</span><span class="cx">             preventedDefault = targetFrame-&gt;eventHandler().performDragAndDrop(event, dataTransfer);
</span><span class="cx">     } else if (m_dragTarget)
</span><del>-        preventedDefault = dispatchDragEvent(eventNames().dropEvent, *m_dragTarget, event, dataTransfer);
</del><ins>+        preventedDefault = dispatchDragEvent(eventNames().dropEvent, *m_dragTarget, event, &amp;dataTransfer);
</ins><span class="cx">     clearDragState();
</span><span class="cx">     return preventedDefault;
</span><span class="cx"> }
</span><span class="lines">@@ -2353,9 +2336,10 @@
</span><span class="cx">     m_sendingEventToSubview = false;
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif // ENABLE(DRAG_SUPPORT)
</span><span class="cx"> 
</span><del>-void EventHandler::setCapturingMouseEventsElement(PassRefPtr&lt;Element&gt; element)
</del><ins>+void EventHandler::setCapturingMouseEventsElement(Element* element)
</ins><span class="cx"> {
</span><span class="cx">     m_capturingMouseEventsElement = element;
</span><span class="cx">     m_eventHandlerWillResetCapturingMouseEventsElement = false;
</span><span class="lines">@@ -2563,7 +2547,7 @@
</span><span class="cx"> 
</span><span class="cx">     // If focus shift is blocked, we eat the event.
</span><span class="cx">     auto* page = m_frame.page();
</span><del>-    if (page &amp;&amp; !page-&gt;focusController().setFocusedElement(element, &amp;m_frame))
</del><ins>+    if (page &amp;&amp; !page-&gt;focusController().setFocusedElement(element, m_frame))
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     return true;
</span><span class="lines">@@ -3411,11 +3395,11 @@
</span><span class="cx">     m_mouseDownMayStartDrag = false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void EventHandler::updateDragStateAfterEditDragIfNeeded(Element* rootEditableElement)
</del><ins>+void EventHandler::updateDragStateAfterEditDragIfNeeded(Element&amp; rootEditableElement)
</ins><span class="cx"> {
</span><span class="cx">     // If inserting the dragged contents removed the drag source, we still want to fire dragend at the root editable element.
</span><span class="cx">     if (dragState().source &amp;&amp; !dragState().source-&gt;inDocument())
</span><del>-        dragState().source = rootEditableElement;
</del><ins>+        dragState().source = &amp;rootEditableElement;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // Return value indicates if we should continue &quot;default processing&quot;, i.e., whether event handler canceled.
</span><span class="lines">@@ -3625,18 +3609,17 @@
</span><span class="cx">     return event-&gt;defaultHandled();
</span><span class="cx"> }
</span><span class="cx">     
</span><del>-bool EventHandler::isKeyboardOptionTab(KeyboardEvent* event)
</del><ins>+bool EventHandler::isKeyboardOptionTab(KeyboardEvent&amp; event)
</ins><span class="cx"> {
</span><del>-    return event
-        &amp;&amp; (event-&gt;type() == eventNames().keydownEvent || event-&gt;type() == eventNames().keypressEvent)
-        &amp;&amp; event-&gt;altKey()
-        &amp;&amp; event-&gt;keyIdentifier() == &quot;U+0009&quot;;    
</del><ins>+    return (event.type() == eventNames().keydownEvent || event.type() == eventNames().keypressEvent)
+        &amp;&amp; event.altKey()
+        &amp;&amp; event.keyIdentifier() == &quot;U+0009&quot;;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool EventHandler::eventInvertsTabsToLinksClientCallResult(KeyboardEvent* event)
</del><ins>+bool EventHandler::eventInvertsTabsToLinksClientCallResult(KeyboardEvent&amp; event)
</ins><span class="cx"> {
</span><span class="cx"> #if PLATFORM(COCOA) || PLATFORM(EFL)
</span><del>-    return EventHandler::isKeyboardOptionTab(event);
</del><ins>+    return isKeyboardOptionTab(event);
</ins><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(event);
</span><span class="cx">     return false;
</span><span class="lines">@@ -3643,7 +3626,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool EventHandler::tabsToLinks(KeyboardEvent* event) const
</del><ins>+bool EventHandler::tabsToLinks(KeyboardEvent&amp; event) const
</ins><span class="cx"> {
</span><span class="cx">     // FIXME: This function needs a better name. It can be called for keypresses other than Tab when spatial navigation is enabled.
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageEventHandlerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/EventHandler.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/EventHandler.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/EventHandler.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2006-2016 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2006-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -31,32 +31,33 @@
</span><span class="cx"> #include &quot;HitTestRequest.h&quot;
</span><span class="cx"> #include &quot;LayoutPoint.h&quot;
</span><span class="cx"> #include &quot;PlatformMouseEvent.h&quot;
</span><del>-#include &quot;PlatformWheelEvent.h&quot;
</del><span class="cx"> #include &quot;ScrollTypes.h&quot;
</span><span class="cx"> #include &quot;TextEventInputType.h&quot;
</span><span class="cx"> #include &quot;TextGranularity.h&quot;
</span><span class="cx"> #include &quot;Timer.h&quot;
</span><del>-#include &quot;WheelEventDeltaFilter.h&quot;
</del><span class="cx"> #include &lt;memory&gt;
</span><span class="cx"> #include &lt;wtf/Forward.h&gt;
</span><span class="cx"> #include &lt;wtf/HashMap.h&gt;
</span><span class="cx"> #include &lt;wtf/HashSet.h&gt;
</span><span class="cx"> #include &lt;wtf/RefPtr.h&gt;
</span><del>-#include &lt;wtf/Vector.h&gt;
</del><span class="cx"> #include &lt;wtf/WeakPtr.h&gt;
</span><span class="cx"> 
</span><ins>+#if PLATFORM(COCOA)
+OBJC_CLASS NSView;
+#endif
+
</ins><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> OBJC_CLASS WebEvent;
</span><del>-OBJC_CLASS WAKView;
-#ifdef __OBJC__
-#include &quot;WAKAppKitStubs.h&quot;
</del><span class="cx"> #endif
</span><del>-#endif // PLATFORM(IOS)
</del><span class="cx"> 
</span><del>-#if PLATFORM(COCOA)
-OBJC_CLASS NSView;
</del><ins>+#if PLATFORM(MAC)
+OBJC_CLASS NSEvent;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+#if PLATFORM(IOS) &amp;&amp; defined(__OBJC__)
+#include &quot;WAKAppKitStubs.h&quot;
+#endif
+
</ins><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> class AutoscrollController;
</span><span class="lines">@@ -66,16 +67,14 @@
</span><span class="cx"> class Element;
</span><span class="cx"> class Event;
</span><span class="cx"> class EventTarget;
</span><del>-class FloatPoint;
</del><span class="cx"> class FloatQuad;
</span><span class="cx"> class Frame;
</span><ins>+class FrameView;
</ins><span class="cx"> class HTMLFrameSetElement;
</span><del>-class HitTestRequest;
</del><span class="cx"> class HitTestResult;
</span><span class="cx"> class KeyboardEvent;
</span><span class="cx"> class MouseEventWithHitTestResults;
</span><span class="cx"> class Node;
</span><del>-class OptionalCursor;
</del><span class="cx"> class PlatformGestureEvent;
</span><span class="cx"> class PlatformKeyboardEvent;
</span><span class="cx"> class PlatformTouchEvent;
</span><span class="lines">@@ -100,7 +99,7 @@
</span><span class="cx"> extern const int ImageDragHysteresis;
</span><span class="cx"> extern const int TextDragHysteresis;
</span><span class="cx"> extern const int GeneralDragHysteresis;
</span><del>-#endif // ENABLE(DRAG_SUPPORT)
</del><ins>+#endif
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(IOS_GESTURE_EVENTS) || ENABLE(MAC_GESTURE_EVENTS)
</span><span class="cx"> extern const float GestureUnknown;
</span><span class="lines">@@ -120,7 +119,6 @@
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> class EventHandler {
</span><del>-    WTF_MAKE_NONCOPYABLE(EventHandler);
</del><span class="cx">     WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><span class="cx">     explicit EventHandler(Frame&amp;);
</span><span class="lines">@@ -136,7 +134,7 @@
</span><span class="cx"> #if ENABLE(PAN_SCROLLING)
</span><span class="cx">     void didPanScrollStart();
</span><span class="cx">     void didPanScrollStop();
</span><del>-    void startPanScrolling(RenderElement*);
</del><ins>+    void startPanScrolling(RenderElement&amp;);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     void stopAutoscrollTimer(bool rendererIsBeingDestroyed = false);
</span><span class="lines">@@ -156,13 +154,13 @@
</span><span class="cx">     bool mousePressed() const { return m_mousePressed; }
</span><span class="cx">     Node* mousePressNode() const { return m_mousePressNode.get(); }
</span><span class="cx"> 
</span><del>-    WEBCORE_EXPORT void setCapturingMouseEventsElement(PassRefPtr&lt;Element&gt;); // A caller is responsible for resetting capturing element to 0.
</del><ins>+    WEBCORE_EXPORT void setCapturingMouseEventsElement(Element*);
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(DRAG_SUPPORT)
</span><del>-    bool updateDragAndDrop(const PlatformMouseEvent&amp;, DataTransfer*);
-    void cancelDragAndDrop(const PlatformMouseEvent&amp;, DataTransfer*);
-    bool performDragAndDrop(const PlatformMouseEvent&amp;, DataTransfer*);
-    void updateDragStateAfterEditDragIfNeeded(Element* rootEditableElement);
</del><ins>+    bool updateDragAndDrop(const PlatformMouseEvent&amp;, DataTransfer&amp;);
+    void cancelDragAndDrop(const PlatformMouseEvent&amp;, DataTransfer&amp;);
+    bool performDragAndDrop(const PlatformMouseEvent&amp;, DataTransfer&amp;);
+    void updateDragStateAfterEditDragIfNeeded(Element&amp; rootEditableElement);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     void scheduleHoverStateUpdate();
</span><span class="lines">@@ -187,8 +185,8 @@
</span><span class="cx">     WEBCORE_EXPORT bool scrollRecursively(ScrollDirection, ScrollGranularity, Node* startingNode = nullptr);
</span><span class="cx">     WEBCORE_EXPORT bool logicalScrollRecursively(ScrollLogicalDirection, ScrollGranularity, Node* startingNode = nullptr);
</span><span class="cx"> 
</span><del>-    bool tabsToLinks(KeyboardEvent*) const;
-    bool tabsToAllFormControls(KeyboardEvent*) const;
</del><ins>+    bool tabsToLinks(KeyboardEvent&amp;) const;
+    bool tabsToAllFormControls(KeyboardEvent&amp;) const;
</ins><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT bool mouseMoved(const PlatformMouseEvent&amp;);
</span><span class="cx">     WEBCORE_EXPORT bool passMouseMovedEventToScrollbars(const PlatformMouseEvent&amp;);
</span><span class="lines">@@ -210,12 +208,12 @@
</span><span class="cx">     void platformNotifyIfEndGesture(const PlatformWheelEvent&amp;, const WeakPtr&lt;ScrollableArea&gt;&amp;);
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(IOS_TOUCH_EVENTS) || ENABLE(IOS_GESTURE_EVENTS)
</span><del>-    typedef Vector&lt;RefPtr&lt;Touch&gt;&gt; TouchArray;
-    typedef HashMap&lt;EventTarget*, TouchArray*&gt; EventTargetTouchMap;
</del><ins>+    using TouchArray = Vector&lt;RefPtr&lt;Touch&gt;&gt;;
+    using EventTargetTouchMap = HashMap&lt;EventTarget*, TouchArray*&gt;;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(IOS_TOUCH_EVENTS) || ENABLE(IOS_GESTURE_EVENTS) || ENABLE(MAC_GESTURE_EVENTS)
</span><del>-    typedef HashSet&lt;RefPtr&lt;EventTarget&gt;&gt; EventTargetSet;
</del><ins>+    using EventTargetSet = HashSet&lt;RefPtr&lt;EventTarget&gt;&gt;;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(IOS_TOUCH_EVENTS)
</span><span class="lines">@@ -231,7 +229,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>-    void defaultTouchEventHandler(Node*, TouchEvent*);
</del><ins>+    void defaultTouchEventHandler(Node&amp;, TouchEvent&amp;);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CONTEXT_MENUS)
</span><span class="lines">@@ -264,8 +262,7 @@
</span><span class="cx">     
</span><span class="cx">     WEBCORE_EXPORT void sendScrollEvent();
</span><span class="cx"> 
</span><del>-#if PLATFORM(COCOA) &amp;&amp; defined(__OBJC__)
-#if !PLATFORM(IOS)
</del><ins>+#if PLATFORM(MAC)
</ins><span class="cx">     WEBCORE_EXPORT void mouseDown(NSEvent *, NSEvent *correspondingPressureEvent);
</span><span class="cx">     WEBCORE_EXPORT void mouseDragged(NSEvent *, NSEvent *correspondingPressureEvent);
</span><span class="cx">     WEBCORE_EXPORT void mouseUp(NSEvent *, NSEvent *correspondingPressureEvent);
</span><span class="lines">@@ -273,7 +270,9 @@
</span><span class="cx">     WEBCORE_EXPORT void pressureChange(NSEvent *, NSEvent* correspondingPressureEvent);
</span><span class="cx">     WEBCORE_EXPORT bool keyEvent(NSEvent *);
</span><span class="cx">     WEBCORE_EXPORT bool wheelEvent(NSEvent *);
</span><del>-#else
</del><ins>+#endif
+
+#if PLATFORM(IOS)
</ins><span class="cx">     WEBCORE_EXPORT void mouseDown(WebEvent *);
</span><span class="cx">     WEBCORE_EXPORT void mouseUp(WebEvent *);
</span><span class="cx">     WEBCORE_EXPORT void mouseMoved(WebEvent *);
</span><span class="lines">@@ -285,23 +284,20 @@
</span><span class="cx">     WEBCORE_EXPORT void touchEvent(WebEvent *);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-#if !PLATFORM(IOS)
</del><ins>+#if PLATFORM(MAC)
</ins><span class="cx">     WEBCORE_EXPORT void passMouseMovedEventToScrollbars(NSEvent *, NSEvent* correspondingPressureEvent);
</span><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT void sendFakeEventsAfterWidgetTracking(NSEvent *initiatingEvent);
</span><del>-#endif
</del><span class="cx"> 
</span><del>-#if !PLATFORM(IOS)
</del><span class="cx">     void setActivationEventNumber(int num) { m_activationEventNumber = num; }
</span><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT static NSEvent *currentNSEvent();
</span><span class="cx">     static NSEvent *correspondingPressureEvent();
</span><del>-#else
</del><ins>+#endif
+
+#if PLATFORM(IOS)
</ins><span class="cx">     static WebEvent *currentEvent();
</span><del>-#endif // !PLATFORM(IOS)
-#endif // PLATFORM(COCOA) &amp;&amp; defined(__OBJC__)
</del><span class="cx"> 
</span><del>-#if PLATFORM(IOS)
</del><span class="cx">     void invalidateClick();
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="lines">@@ -323,9 +319,8 @@
</span><span class="cx"> #if ENABLE(DRAG_SUPPORT)
</span><span class="cx">     static DragState&amp; dragState();
</span><span class="cx">     static const double TextDragDelay;
</span><del>-    
-    PassRefPtr&lt;DataTransfer&gt; createDraggingDataTransfer() const;
-#endif // ENABLE(DRAG_SUPPORT)
</del><ins>+    Ref&lt;DataTransfer&gt; createDraggingDataTransfer() const;
+#endif
</ins><span class="cx"> 
</span><span class="cx">     bool eventActivatedView(const PlatformMouseEvent&amp;) const;
</span><span class="cx">     bool updateSelectionForMouseDownDispatchingSelectStart(Node*, const VisibleSelection&amp;, TextGranularity);
</span><span class="lines">@@ -341,14 +336,18 @@
</span><span class="cx">     bool handleMousePressEventSingleClick(const MouseEventWithHitTestResults&amp;);
</span><span class="cx">     bool handleMousePressEventDoubleClick(const MouseEventWithHitTestResults&amp;);
</span><span class="cx">     bool handleMousePressEventTripleClick(const MouseEventWithHitTestResults&amp;);
</span><ins>+
</ins><span class="cx"> #if ENABLE(DRAG_SUPPORT)
</span><span class="cx">     bool handleMouseDraggedEvent(const MouseEventWithHitTestResults&amp;);
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx">     WEBCORE_EXPORT bool handleMouseReleaseEvent(const MouseEventWithHitTestResults&amp;);
</span><span class="cx"> 
</span><del>-    OptionalCursor selectCursor(const HitTestResult&amp;, bool shiftKey);
</del><ins>+    std::optional&lt;Cursor&gt; selectCursor(const HitTestResult&amp;, bool shiftKey);
+    void updateCursor(FrameView&amp;, const HitTestResult&amp;, bool shiftKey);
</ins><span class="cx"> 
</span><span class="cx">     void hoverTimerFired();
</span><ins>+
</ins><span class="cx"> #if ENABLE(CURSOR_SUPPORT)
</span><span class="cx">     void cursorUpdateTimerFired();
</span><span class="cx"> #endif
</span><span class="lines">@@ -359,8 +358,8 @@
</span><span class="cx">     
</span><span class="cx">     bool mouseDownMayStartSelect() const { return m_mouseDownMayStartSelect; }
</span><span class="cx"> 
</span><del>-    static bool isKeyboardOptionTab(KeyboardEvent*);
-    static bool eventInvertsTabsToLinksClientCallResult(KeyboardEvent*);
</del><ins>+    static bool isKeyboardOptionTab(KeyboardEvent&amp;);
+    static bool eventInvertsTabsToLinksClientCallResult(KeyboardEvent&amp;);
</ins><span class="cx"> 
</span><span class="cx"> #if !ENABLE(IOS_TOUCH_EVENTS)
</span><span class="cx">     void fakeMouseMoveEventTimerFired();
</span><span class="lines">@@ -385,6 +384,7 @@
</span><span class="cx">     MouseEventWithHitTestResults prepareMouseEvent(const HitTestRequest&amp;, const PlatformMouseEvent&amp;);
</span><span class="cx"> 
</span><span class="cx">     bool dispatchMouseEvent(const AtomicString&amp; eventType, Node* target, bool cancelable, int clickCount, const PlatformMouseEvent&amp;, bool setUnder);
</span><ins>+
</ins><span class="cx"> #if ENABLE(DRAG_SUPPORT)
</span><span class="cx">     bool dispatchDragEvent(const AtomicString&amp; eventType, Element&amp; target, const PlatformMouseEvent&amp;, DataTransfer*);
</span><span class="cx"> 
</span><span class="lines">@@ -392,7 +392,9 @@
</span><span class="cx"> 
</span><span class="cx">     bool handleDrag(const MouseEventWithHitTestResults&amp;, CheckDragHysteresis);
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx">     bool handleMouseUp(const MouseEventWithHitTestResults&amp;);
</span><ins>+
</ins><span class="cx"> #if ENABLE(DRAG_SUPPORT)
</span><span class="cx">     void clearDragState();
</span><span class="cx"> 
</span><span class="lines">@@ -400,7 +402,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool dragHysteresisExceeded(const FloatPoint&amp;) const;
</span><span class="cx">     bool dragHysteresisExceeded(const IntPoint&amp;) const;
</span><del>-#endif // ENABLE(DRAG_SUPPORT)
</del><ins>+#endif
</ins><span class="cx">     
</span><span class="cx">     bool mouseMovementExceedsThreshold(const FloatPoint&amp;, int pointsThreshold) const;
</span><span class="cx"> 
</span><span class="lines">@@ -431,11 +433,9 @@
</span><span class="cx">     // The following are called at the beginning of handleMouseUp and handleDrag.  
</span><span class="cx">     // If they return true it indicates that they have consumed the event.
</span><span class="cx">     bool eventLoopHandleMouseUp(const MouseEventWithHitTestResults&amp;);
</span><ins>+
</ins><span class="cx"> #if ENABLE(DRAG_SUPPORT)
</span><span class="cx">     bool eventLoopHandleMouseDragged(const MouseEventWithHitTestResults&amp;);
</span><del>-#endif
-
-#if ENABLE(DRAG_SUPPORT)
</del><span class="cx">     void updateSelectionForMouseDrag(const HitTestResult&amp;);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="lines">@@ -473,21 +473,24 @@
</span><span class="cx">     RefPtr&lt;Node&gt; m_mousePressNode;
</span><span class="cx"> 
</span><span class="cx">     bool m_mouseDownMayStartSelect { false };
</span><ins>+
</ins><span class="cx"> #if ENABLE(DRAG_SUPPORT)
</span><span class="cx">     bool m_mouseDownMayStartDrag { false };
</span><span class="cx">     bool m_dragMayStartSelectionInstead { false };
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx">     bool m_mouseDownWasSingleClickInSelection { false };
</span><span class="cx">     enum SelectionInitiationState { HaveNotStartedSelection, PlacedCaret, ExtendedSelection };
</span><span class="cx">     SelectionInitiationState m_selectionInitiationState { HaveNotStartedSelection };
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(DRAG_SUPPORT)
</span><del>-    LayoutPoint m_dragStartPos;
</del><ins>+    LayoutPoint m_dragStartPosition;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     bool m_panScrollButtonPressed { false };
</span><span class="cx"> 
</span><span class="cx">     Timer m_hoverTimer;
</span><ins>+
</ins><span class="cx"> #if ENABLE(CURSOR_SUPPORT)
</span><span class="cx">     Timer m_cursorUpdateTimer;
</span><span class="cx"> #endif
</span><span class="lines">@@ -495,6 +498,7 @@
</span><span class="cx"> #if PLATFORM(MAC)
</span><span class="cx">     Timer m_pendingMomentumWheelEventsTimer;
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx">     std::unique_ptr&lt;AutoscrollController&gt; m_autoscrollController;
</span><span class="cx">     bool m_mouseDownMayStartAutoscroll { false };
</span><span class="cx">     bool m_mouseDownWasInSubframe { false };
</span><span class="lines">@@ -523,11 +527,13 @@
</span><span class="cx">     float m_gestureInitialDiameter { GestureUnknown };
</span><span class="cx">     float m_gestureInitialRotation { GestureUnknown };
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx"> #if ENABLE(IOS_GESTURE_EVENTS) || ENABLE(MAC_GESTURE_EVENTS)
</span><span class="cx">     float m_gestureLastDiameter { GestureUnknown };
</span><span class="cx">     float m_gestureLastRotation { GestureUnknown };
</span><span class="cx">     EventTargetSet m_gestureTargets;
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx"> #if ENABLE(MAC_GESTURE_EVENTS)
</span><span class="cx">     bool m_hasActiveGesture { false };
</span><span class="cx"> #endif
</span><span class="lines">@@ -558,12 +564,14 @@
</span><span class="cx"> #if PLATFORM(COCOA)
</span><span class="cx">     NSView *m_mouseDownView { nullptr };
</span><span class="cx">     bool m_sendingEventToSubview { false };
</span><del>-#if !PLATFORM(IOS)
</del><ins>+#endif
+
+#if PLATFORM(MAC)
</ins><span class="cx">     int m_activationEventNumber { -1 };
</span><span class="cx"> #endif
</span><del>-#endif
</del><ins>+
</ins><span class="cx"> #if ENABLE(TOUCH_EVENTS) &amp;&amp; !ENABLE(IOS_TOUCH_EVENTS)
</span><del>-    typedef HashMap&lt;int, RefPtr&lt;EventTarget&gt;&gt; TouchTargetMap;
</del><ins>+    using TouchTargetMap = HashMap&lt;int, RefPtr&lt;EventTarget&gt;&gt;;
</ins><span class="cx">     TouchTargetMap m_originatingTouchPointTargets;
</span><span class="cx">     RefPtr&lt;Document&gt; m_originatingTouchPointDocument;
</span><span class="cx">     unsigned m_originatingTouchPointTargetKey { 0 };
</span></span></pre></div>
<a id="trunkSourceWebCorepageFocusControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/FocusController.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/FocusController.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/FocusController.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -316,7 +316,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void FocusController::setFocusedFrame(PassRefPtr&lt;Frame&gt; frame)
</del><ins>+void FocusController::setFocusedFrame(Frame* frame)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!frame || frame-&gt;page() == &amp;m_page);
</span><span class="cx">     if (m_focusedFrame == frame || m_isChangingFocusedFrame)
</span><span class="lines">@@ -765,8 +765,9 @@
</span><span class="cx">     oldFocusedFrame-&gt;selection().clear();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool FocusController::setFocusedElement(Element* element, PassRefPtr&lt;Frame&gt; newFocusedFrame, FocusDirection direction)
</del><ins>+bool FocusController::setFocusedElement(Element* element, Frame&amp; newFocusedFrame, FocusDirection direction)
</ins><span class="cx"> {
</span><ins>+    Ref&lt;Frame&gt; protectedNewFocusedFrame = newFocusedFrame;
</ins><span class="cx">     RefPtr&lt;Frame&gt; oldFocusedFrame = focusedFrame();
</span><span class="cx">     RefPtr&lt;Document&gt; oldDocument = oldFocusedFrame ? oldFocusedFrame-&gt;document() : nullptr;
</span><span class="cx">     
</span><span class="lines">@@ -780,7 +781,7 @@
</span><span class="cx"> 
</span><span class="cx">     m_page.editorClient().willSetInputMethodState();
</span><span class="cx"> 
</span><del>-    clearSelectionIfNeeded(oldFocusedFrame.get(), newFocusedFrame.get(), element);
</del><ins>+    clearSelectionIfNeeded(oldFocusedFrame.get(), &amp;newFocusedFrame, element);
</ins><span class="cx"> 
</span><span class="cx">     if (!element) {
</span><span class="cx">         if (oldDocument)
</span><span class="lines">@@ -799,11 +800,11 @@
</span><span class="cx">     if (oldDocument &amp;&amp; oldDocument != newDocument.ptr())
</span><span class="cx">         oldDocument-&gt;setFocusedElement(nullptr);
</span><span class="cx"> 
</span><del>-    if (newFocusedFrame &amp;&amp; !newFocusedFrame-&gt;page()) {
</del><ins>+    if (!newFocusedFrame.page()) {
</ins><span class="cx">         setFocusedFrame(nullptr);
</span><span class="cx">         return false;
</span><span class="cx">     }
</span><del>-    setFocusedFrame(newFocusedFrame);
</del><ins>+    setFocusedFrame(&amp;newFocusedFrame);
</ins><span class="cx"> 
</span><span class="cx">     Ref&lt;Element&gt; protect(*element);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageFocusControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/FocusController.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/FocusController.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/FocusController.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2006-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -30,12 +30,10 @@
</span><span class="cx"> #include &quot;LayoutRect.h&quot;
</span><span class="cx"> #include &quot;Timer.h&quot;
</span><span class="cx"> #include &lt;wtf/Forward.h&gt;
</span><del>-#include &lt;wtf/Noncopyable.h&gt;
</del><span class="cx"> #include &lt;wtf/RefPtr.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-struct FocusCandidate;
</del><span class="cx"> class ContainerNode;
</span><span class="cx"> class Document;
</span><span class="cx"> class Element;
</span><span class="lines">@@ -48,12 +46,14 @@
</span><span class="cx"> class Page;
</span><span class="cx"> class TreeScope;
</span><span class="cx"> 
</span><ins>+struct FocusCandidate;
+
</ins><span class="cx"> class FocusController {
</span><del>-    WTF_MAKE_NONCOPYABLE(FocusController); WTF_MAKE_FAST_ALLOCATED;
</del><ins>+    WTF_MAKE_FAST_ALLOCATED;
</ins><span class="cx"> public:
</span><span class="cx">     explicit FocusController(Page&amp;, ActivityState::Flags);
</span><span class="cx"> 
</span><del>-    WEBCORE_EXPORT void setFocusedFrame(PassRefPtr&lt;Frame&gt;);
</del><ins>+    WEBCORE_EXPORT void setFocusedFrame(Frame*);
</ins><span class="cx">     Frame* focusedFrame() const { return m_focusedFrame.get(); }
</span><span class="cx">     WEBCORE_EXPORT Frame&amp; focusedOrMainFrame() const;
</span><span class="cx"> 
</span><span class="lines">@@ -60,7 +60,7 @@
</span><span class="cx">     WEBCORE_EXPORT bool setInitialFocus(FocusDirection, KeyboardEvent*);
</span><span class="cx">     bool advanceFocus(FocusDirection, KeyboardEvent&amp;, bool initialFocus = false);
</span><span class="cx"> 
</span><del>-    WEBCORE_EXPORT bool setFocusedElement(Element*, PassRefPtr&lt;Frame&gt;, FocusDirection = FocusDirectionNone);
</del><ins>+    WEBCORE_EXPORT bool setFocusedElement(Element*, Frame&amp;, FocusDirection = FocusDirectionNone);
</ins><span class="cx"> 
</span><span class="cx">     void setActivityState(ActivityState::Flags);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageFramecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Frame.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Frame.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/Frame.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -777,7 +777,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     if (WebThreadCountOfObservedContentModifiers() &gt; 0 &amp;&amp; m_page)
</span><del>-        m_page-&gt;chrome().client().clearContentChangeObservers(this);
</del><ins>+        m_page-&gt;chrome().client().clearContentChangeObservers(*this);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     script().clearScriptObjects();
</span></span></pre></div>
<a id="trunkSourceWebCorepageFrameTreecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/FrameTree.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/FrameTree.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/FrameTree.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2006, 2013 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2006-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  * Copyright (C) Research In Motion Limited 2010. All rights reserved.
</span><span class="cx">  *
</span><span class="cx">  * This library is free software; you can redistribute it and/or
</span><span class="lines">@@ -63,25 +63,6 @@
</span><span class="cx">     return m_parent;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool FrameTree::transferChild(PassRefPtr&lt;Frame&gt; child)
-{
-    Frame* oldParent = child-&gt;tree().parent();
-    if (oldParent == &amp;m_thisFrame)
-        return false; // |child| is already a child of m_thisFrame.
-
-    if (oldParent)
-        oldParent-&gt;tree().removeChild(child.get());
-
-    ASSERT(child-&gt;page() == m_thisFrame.page());
-    child-&gt;tree().m_parent = &amp;m_thisFrame;
-
-    // We need to ensure that the child still has a unique frame name with respect to its new parent.
-    child-&gt;tree().setName(child-&gt;tree().m_name);
-
-    actuallyAppendChild(child); // Note, on return |child| is null.
-    return true;
-}
-
</del><span class="cx"> unsigned FrameTree::indexInParent() const
</span><span class="cx"> {
</span><span class="cx">     if (!m_parent)
</span><span class="lines">@@ -95,24 +76,18 @@
</span><span class="cx">     RELEASE_ASSERT_NOT_REACHED();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void FrameTree::appendChild(PassRefPtr&lt;Frame&gt; child)
</del><ins>+void FrameTree::appendChild(Frame&amp; child)
</ins><span class="cx"> {
</span><del>-    ASSERT(child-&gt;page() == m_thisFrame.page());
-    child-&gt;tree().m_parent = &amp;m_thisFrame;
-    actuallyAppendChild(child); // Note, on return |child| is null.
-}
-
-void FrameTree::actuallyAppendChild(PassRefPtr&lt;Frame&gt; child)
-{
-    ASSERT(child-&gt;tree().m_parent == &amp;m_thisFrame);
</del><ins>+    ASSERT(child.page() == m_thisFrame.page());
+    child.tree().m_parent = &amp;m_thisFrame;
</ins><span class="cx">     Frame* oldLast = m_lastChild;
</span><del>-    m_lastChild = child.get();
</del><ins>+    m_lastChild = &amp;child;
</ins><span class="cx"> 
</span><span class="cx">     if (oldLast) {
</span><del>-        child-&gt;tree().m_previousSibling = oldLast;
-        oldLast-&gt;tree().m_nextSibling = child;
</del><ins>+        child.tree().m_previousSibling = oldLast;
+        oldLast-&gt;tree().m_nextSibling = &amp;child;
</ins><span class="cx">     } else
</span><del>-        m_firstChild = child;
</del><ins>+        m_firstChild = &amp;child;
</ins><span class="cx"> 
</span><span class="cx">     m_scopedChildCount = invalidCount;
</span><span class="cx"> 
</span><span class="lines">@@ -119,23 +94,15 @@
</span><span class="cx">     ASSERT(!m_lastChild-&gt;tree().m_nextSibling);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void FrameTree::removeChild(Frame* child)
</del><ins>+void FrameTree::removeChild(Frame&amp; child)
</ins><span class="cx"> {
</span><del>-    child-&gt;tree().m_parent = nullptr;
</del><ins>+    Frame*&amp; newLocationForPrevious = m_lastChild == &amp;child ? m_lastChild : child.tree().m_nextSibling-&gt;tree().m_previousSibling;
+    RefPtr&lt;Frame&gt;&amp; newLocationForNext = m_firstChild == &amp;child ? m_firstChild : child.tree().m_previousSibling-&gt;tree().m_nextSibling;
</ins><span class="cx"> 
</span><del>-    // Slightly tricky way to prevent deleting the child until we are done with it, w/o
-    // extra refs. These swaps leave the child in a circular list by itself. Clearing its
-    // previous and next will then finally deref it.
</del><ins>+    child.tree().m_parent = nullptr;
+    newLocationForPrevious = std::exchange(child.tree().m_previousSibling, nullptr);
+    newLocationForNext = WTFMove(child.tree().m_nextSibling);
</ins><span class="cx"> 
</span><del>-    RefPtr&lt;Frame&gt;&amp; newLocationForNext = m_firstChild == child ? m_firstChild : child-&gt;tree().m_previousSibling-&gt;tree().m_nextSibling;
-    Frame*&amp; newLocationForPrevious = m_lastChild == child ? m_lastChild : child-&gt;tree().m_nextSibling-&gt;tree().m_previousSibling;
-    swap(newLocationForNext, child-&gt;tree().m_nextSibling);
-    // For some inexplicable reason, the following line does not compile without the explicit std:: namespace
-    std::swap(newLocationForPrevious, child-&gt;tree().m_previousSibling);
-
-    child-&gt;tree().m_previousSibling = nullptr;
-    child-&gt;tree().m_nextSibling = nullptr;
-
</del><span class="cx">     m_scopedChildCount = invalidCount;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageFrameTreeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/FrameTree.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/FrameTree.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/FrameTree.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2006 Apple Inc.
</del><ins>+ * Copyright (C) 2006-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * This library is free software; you can redistribute it and/or
</span><span class="cx">  * modify it under the terms of the GNU Library General Public
</span><span class="lines">@@ -65,10 +65,9 @@
</span><span class="cx">     WEBCORE_EXPORT Frame* traverseNextWithWrap(bool) const;
</span><span class="cx">     WEBCORE_EXPORT Frame* traversePreviousWithWrap(bool) const;
</span><span class="cx">     
</span><del>-    WEBCORE_EXPORT void appendChild(PassRefPtr&lt;Frame&gt;);
-    bool transferChild(PassRefPtr&lt;Frame&gt;);
</del><ins>+    WEBCORE_EXPORT void appendChild(Frame&amp;);
</ins><span class="cx">     void detachFromParent() { m_parent = nullptr; }
</span><del>-    void removeChild(Frame*);
</del><ins>+    void removeChild(Frame&amp;);
</ins><span class="cx"> 
</span><span class="cx">     Frame* child(unsigned index) const;
</span><span class="cx">     Frame* child(const AtomicString&amp; name) const;
</span><span class="lines">@@ -87,7 +86,6 @@
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     Frame* deepLastChild() const;
</span><del>-    void actuallyAppendChild(PassRefPtr&lt;Frame&gt;);
</del><span class="cx"> 
</span><span class="cx">     bool scopedBy(TreeScope*) const;
</span><span class="cx">     Frame* scopedChild(unsigned index, TreeScope*) const;
</span></span></pre></div>
<a id="trunkSourceWebCorepageFrameViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/FrameView.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/FrameView.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/FrameView.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -677,7 +677,7 @@
</span><span class="cx"> 
</span><span class="cx">     updateScrollableAreaSet();
</span><span class="cx"> 
</span><del>-    page-&gt;chrome().contentsSizeChanged(&amp;frame(), size); // Notify only.
</del><ins>+    page-&gt;chrome().contentsSizeChanged(frame(), size); // Notify only.
</ins><span class="cx"> 
</span><span class="cx">     if (frame().isMainFrame()) {
</span><span class="cx">         frame().mainFrame().pageOverlayController().didChangeDocumentSize();
</span></span></pre></div>
<a id="trunkSourceWebCorepageMainFramecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/MainFrame.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/MainFrame.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/MainFrame.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -92,7 +92,7 @@
</span><span class="cx"> void MainFrame::dropChildren()
</span><span class="cx"> {
</span><span class="cx">     while (Frame* child = tree().firstChild())
</span><del>-        tree().removeChild(child);
</del><ins>+        tree().removeChild(*child);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(MAC)
</span></span></pre></div>
<a id="trunkSourceWebCorepagePagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Page.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Page.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/Page.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -363,7 +363,7 @@
</span><span class="cx"> ScrollingCoordinator* Page::scrollingCoordinator()
</span><span class="cx"> {
</span><span class="cx">     if (!m_scrollingCoordinator &amp;&amp; m_settings-&gt;scrollingCoordinatorEnabled()) {
</span><del>-        m_scrollingCoordinator = chrome().client().createScrollingCoordinator(this);
</del><ins>+        m_scrollingCoordinator = chrome().client().createScrollingCoordinator(*this);
</ins><span class="cx">         if (!m_scrollingCoordinator)
</span><span class="cx">             m_scrollingCoordinator = ScrollingCoordinator::create(this);
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorepagePageOverlaycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/PageOverlay.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/PageOverlay.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/PageOverlay.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -274,7 +274,7 @@
</span><span class="cx"> 
</span><span class="cx">         // If this was a fade out, uninstall the page overlay.
</span><span class="cx">         if (wasFadingOut)
</span><del>-            controller()-&gt;uninstallPageOverlay(this, PageOverlay::FadeMode::DoNotFade);
</del><ins>+            controller()-&gt;uninstallPageOverlay(*this, PageOverlay::FadeMode::DoNotFade);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepagePageOverlayControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/PageOverlayController.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/PageOverlayController.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/PageOverlayController.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2014 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2014-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -95,20 +95,18 @@
</span><span class="cx">     graphicsLayer.setSize(overlayFrame.size());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void PageOverlayController::installPageOverlay(PassRefPtr&lt;PageOverlay&gt; pageOverlay, PageOverlay::FadeMode fadeMode)
</del><ins>+void PageOverlayController::installPageOverlay(PageOverlay&amp; overlay, PageOverlay::FadeMode fadeMode)
</ins><span class="cx"> {
</span><span class="cx">     createRootLayersIfNeeded();
</span><span class="cx"> 
</span><del>-    RefPtr&lt;PageOverlay&gt; overlay = pageOverlay;
-
-    if (m_pageOverlays.contains(overlay))
</del><ins>+    if (m_pageOverlays.contains(&amp;overlay))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    m_pageOverlays.append(overlay);
</del><ins>+    m_pageOverlays.append(&amp;overlay);
</ins><span class="cx"> 
</span><span class="cx">     std::unique_ptr&lt;GraphicsLayer&gt; layer = GraphicsLayer::create(m_mainFrame.page()-&gt;chrome().client().graphicsLayerFactory(), *this);
</span><span class="cx">     layer-&gt;setAnchorPoint(FloatPoint3D());
</span><del>-    layer-&gt;setBackgroundColor(overlay-&gt;backgroundColor());
</del><ins>+    layer-&gt;setBackgroundColor(overlay.backgroundColor());
</ins><span class="cx"> #ifndef NDEBUG
</span><span class="cx">     layer-&gt;setName(&quot;Page Overlay content&quot;);
</span><span class="cx"> #endif
</span><span class="lines">@@ -115,7 +113,7 @@
</span><span class="cx"> 
</span><span class="cx">     updateSettingsForLayer(*layer);
</span><span class="cx"> 
</span><del>-    switch (overlay-&gt;overlayType()) {
</del><ins>+    switch (overlay.overlayType()) {
</ins><span class="cx">     case PageOverlay::OverlayType::View:
</span><span class="cx">         m_viewOverlayRootLayer-&gt;addChild(layer.get());
</span><span class="cx">         break;
</span><span class="lines">@@ -125,33 +123,33 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     GraphicsLayer&amp; rawLayer = *layer;
</span><del>-    m_overlayGraphicsLayers.set(overlay.get(), WTFMove(layer));
</del><ins>+    m_overlayGraphicsLayers.set(&amp;overlay, WTFMove(layer));
</ins><span class="cx"> 
</span><span class="cx">     updateForceSynchronousScrollLayerPositionUpdates();
</span><span class="cx"> 
</span><del>-    overlay-&gt;setPage(m_mainFrame.page());
</del><ins>+    overlay.setPage(m_mainFrame.page());
</ins><span class="cx"> 
</span><span class="cx">     if (FrameView* frameView = m_mainFrame.view())
</span><span class="cx">         frameView-&gt;enterCompositingMode();
</span><span class="cx"> 
</span><del>-    updateOverlayGeometry(*overlay, rawLayer);
</del><ins>+    updateOverlayGeometry(overlay, rawLayer);
</ins><span class="cx"> 
</span><span class="cx">     if (fadeMode == PageOverlay::FadeMode::Fade)
</span><del>-        overlay-&gt;startFadeInAnimation();
</del><ins>+        overlay.startFadeInAnimation();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void PageOverlayController::uninstallPageOverlay(PageOverlay* overlay, PageOverlay::FadeMode fadeMode)
</del><ins>+void PageOverlayController::uninstallPageOverlay(PageOverlay&amp; overlay, PageOverlay::FadeMode fadeMode)
</ins><span class="cx"> {
</span><span class="cx">     if (fadeMode == PageOverlay::FadeMode::Fade) {
</span><del>-        overlay-&gt;startFadeOutAnimation();
</del><ins>+        overlay.startFadeOutAnimation();
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    overlay-&gt;setPage(nullptr);
</del><ins>+    overlay.setPage(nullptr);
</ins><span class="cx"> 
</span><del>-    m_overlayGraphicsLayers.take(overlay)-&gt;removeFromParent();
</del><ins>+    m_overlayGraphicsLayers.take(&amp;overlay)-&gt;removeFromParent();
</ins><span class="cx"> 
</span><del>-    bool removed = m_pageOverlays.removeFirst(overlay);
</del><ins>+    bool removed = m_pageOverlays.removeFirst(&amp;overlay);
</ins><span class="cx">     ASSERT_UNUSED(removed, removed);
</span><span class="cx"> 
</span><span class="cx">     updateForceSynchronousScrollLayerPositionUpdates();
</span></span></pre></div>
<a id="trunkSourceWebCorepagePageOverlayControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/PageOverlayController.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/PageOverlayController.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/PageOverlayController.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -39,7 +39,6 @@
</span><span class="cx"> class PlatformMouseEvent;
</span><span class="cx"> 
</span><span class="cx"> class PageOverlayController final : public GraphicsLayerClient {
</span><del>-    WTF_MAKE_NONCOPYABLE(PageOverlayController);
</del><span class="cx">     WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><span class="cx">     PageOverlayController(MainFrame&amp;);
</span><span class="lines">@@ -50,8 +49,8 @@
</span><span class="cx"> 
</span><span class="cx">     const Vector&lt;RefPtr&lt;PageOverlay&gt;&gt;&amp; pageOverlays() const { return m_pageOverlays; }
</span><span class="cx"> 
</span><del>-    WEBCORE_EXPORT void installPageOverlay(PassRefPtr&lt;PageOverlay&gt;, PageOverlay::FadeMode);
-    WEBCORE_EXPORT void uninstallPageOverlay(PageOverlay*, PageOverlay::FadeMode);
</del><ins>+    WEBCORE_EXPORT void installPageOverlay(PageOverlay&amp;, PageOverlay::FadeMode);
+    WEBCORE_EXPORT void uninstallPageOverlay(PageOverlay&amp;, PageOverlay::FadeMode);
</ins><span class="cx"> 
</span><span class="cx">     void setPageOverlayNeedsDisplay(PageOverlay&amp;, const IntRect&amp;);
</span><span class="cx">     void setPageOverlayOpacity(PageOverlay&amp;, float);
</span></span></pre></div>
<a id="trunkSourceWebCorepagePageSerializercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/PageSerializer.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/PageSerializer.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/PageSerializer.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -80,8 +80,7 @@
</span><span class="cx">             attributes.append(std::make_pair(attribute.name().toString(), attribute.value().string()));
</span><span class="cx">         }
</span><span class="cx">     }
</span><del>-    TextEncoding textEncoding = HTMLMetaCharsetParser::encodingFromMetaAttributes(attributes);
-    return textEncoding.isValid();
</del><ins>+    return HTMLMetaCharsetParser::encodingFromMetaAttributes(attributes).isValid();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool shouldIgnoreElement(const Element&amp; element)
</span><span class="lines">@@ -95,10 +94,9 @@
</span><span class="cx">     return is&lt;HTMLObjectElement&gt;(frameOwner) ? HTMLNames::dataAttr : HTMLNames::srcAttr;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-class SerializerMarkupAccumulator final : public WebCore::MarkupAccumulator {
</del><ins>+class PageSerializer::SerializerMarkupAccumulator final : public WebCore::MarkupAccumulator {
</ins><span class="cx"> public:
</span><span class="cx">     SerializerMarkupAccumulator(PageSerializer&amp;, Document&amp;, Vector&lt;Node*&gt;*);
</span><del>-    virtual ~SerializerMarkupAccumulator();
</del><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     PageSerializer&amp; m_serializer;
</span><span class="lines">@@ -110,7 +108,7 @@
</span><span class="cx">     void appendEndTag(const Element&amp;) override;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-SerializerMarkupAccumulator::SerializerMarkupAccumulator(PageSerializer&amp; serializer, Document&amp; document, Vector&lt;Node*&gt;* nodes)
</del><ins>+PageSerializer::SerializerMarkupAccumulator::SerializerMarkupAccumulator(PageSerializer&amp; serializer, Document&amp; document, Vector&lt;Node*&gt;* nodes)
</ins><span class="cx">     : MarkupAccumulator(nodes, ResolveAllURLs)
</span><span class="cx">     , m_serializer(serializer)
</span><span class="cx">     , m_document(document)
</span><span class="lines">@@ -120,18 +118,14 @@
</span><span class="cx">         appendString(&quot;&lt;?xml version=\&quot;&quot; + m_document.xmlVersion() + &quot;\&quot; encoding=\&quot;&quot; + m_document.charset() + &quot;\&quot;?&gt;&quot;);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-SerializerMarkupAccumulator::~SerializerMarkupAccumulator()
</del><ins>+void PageSerializer::SerializerMarkupAccumulator::appendText(StringBuilder&amp; out, const Text&amp; text)
</ins><span class="cx"> {
</span><del>-}
-
-void SerializerMarkupAccumulator::appendText(StringBuilder&amp; out, const Text&amp; text)
-{
</del><span class="cx">     Element* parent = text.parentElement();
</span><span class="cx">     if (parent &amp;&amp; !shouldIgnoreElement(*parent))
</span><span class="cx">         MarkupAccumulator::appendText(out, text);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void SerializerMarkupAccumulator::appendElement(StringBuilder&amp; out, const Element&amp; element, Namespaces* namespaces)
</del><ins>+void PageSerializer::SerializerMarkupAccumulator::appendElement(StringBuilder&amp; out, const Element&amp; element, Namespaces* namespaces)
</ins><span class="cx"> {
</span><span class="cx">     if (!shouldIgnoreElement(element))
</span><span class="cx">         MarkupAccumulator::appendElement(out, element, namespaces);
</span><span class="lines">@@ -145,7 +139,7 @@
</span><span class="cx">     // FIXME: For object (plugins) tags and video tag we could replace them by an image of their current contents.
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void SerializerMarkupAccumulator::appendCustomAttributes(StringBuilder&amp; out, const Element&amp; element, Namespaces* namespaces)
</del><ins>+void PageSerializer::SerializerMarkupAccumulator::appendCustomAttributes(StringBuilder&amp; out, const Element&amp; element, Namespaces* namespaces)
</ins><span class="cx"> {
</span><span class="cx">     if (!is&lt;HTMLFrameOwnerElement&gt;(element))
</span><span class="cx">         return;
</span><span class="lines">@@ -164,32 +158,20 @@
</span><span class="cx">     appendAttribute(out, element, Attribute(frameOwnerURLAttributeName(frameOwner), url.string()), namespaces);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void SerializerMarkupAccumulator::appendEndTag(const Element&amp; element)
</del><ins>+void PageSerializer::SerializerMarkupAccumulator::appendEndTag(const Element&amp; element)
</ins><span class="cx"> {
</span><span class="cx">     if (!shouldIgnoreElement(element))
</span><span class="cx">         MarkupAccumulator::appendEndTag(element);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PageSerializer::Resource::Resource()
-{
-}
-
-PageSerializer::Resource::Resource(const URL&amp; url, const String&amp; mimeType, PassRefPtr&lt;SharedBuffer&gt; data)
-    : url(url)
-    , mimeType(mimeType)
-    , data(data)
-{
-}
-
-PageSerializer::PageSerializer(Vector&lt;PageSerializer::Resource&gt;* resources)
</del><ins>+PageSerializer::PageSerializer(Vector&lt;PageSerializer::Resource&gt;&amp; resources)
</ins><span class="cx">     : m_resources(resources)
</span><del>-    , m_blankFrameCounter(0)
</del><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void PageSerializer::serialize(Page* page)
</del><ins>+void PageSerializer::serialize(Page&amp; page)
</ins><span class="cx"> {
</span><del>-    serializeFrame(&amp;page-&gt;mainFrame());
</del><ins>+    serializeFrame(&amp;page.mainFrame());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void PageSerializer::serializeFrame(Frame* frame)
</span><span class="lines">@@ -218,7 +200,7 @@
</span><span class="cx">     }
</span><span class="cx">     String text = accumulator.serializeNodes(*document-&gt;documentElement(), IncludeNode);
</span><span class="cx">     CString frameHTML = textEncoding.encode(text, EntitiesForUnencodables);
</span><del>-    m_resources-&gt;append(Resource(url, document-&gt;suggestedMIMEType(), SharedBuffer::create(frameHTML.data(), frameHTML.length())));
</del><ins>+    m_resources.append({ url, document-&gt;suggestedMIMEType(), SharedBuffer::create(frameHTML.data(), frameHTML.length()) });
</ins><span class="cx">     m_resourceURLs.add(url);
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; node : nodes) {
</span><span class="lines">@@ -284,7 +266,7 @@
</span><span class="cx">         ASSERT(textEncoding.isValid());
</span><span class="cx">         String textString = cssText.toString();
</span><span class="cx">         CString text = textEncoding.encode(textString, EntitiesForUnencodables);
</span><del>-        m_resources-&gt;append(Resource(url, String(&quot;text/css&quot;), SharedBuffer::create(text.data(), text.length())));
</del><ins>+        m_resources.append({ url, ASCIILiteral { &quot;text/css&quot; }, SharedBuffer::create(text.data(), text.length()) });
</ins><span class="cx">         m_resourceURLs.add(url);
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="lines">@@ -306,8 +288,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    String mimeType = image-&gt;response().mimeType();
-    m_resources-&gt;append(Resource(url, mimeType, data));
</del><ins>+    m_resources.append({ url, image-&gt;response().mimeType(), WTFMove(data) });
</ins><span class="cx">     m_resourceURLs.add(url);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -334,20 +315,18 @@
</span><span class="cx">         if (!image)
</span><span class="cx">             continue;
</span><span class="cx"> 
</span><del>-        URL url = document-&gt;completeURL(image-&gt;url());
-        addImageToResources(image, nullptr, url);
</del><ins>+        addImageToResources(image, nullptr, document-&gt;completeURL(image-&gt;url()));
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> URL PageSerializer::urlForBlankFrame(Frame* frame)
</span><span class="cx"> {
</span><del>-    HashMap&lt;Frame*, URL&gt;::iterator iter = m_blankFrameURLs.find(frame);
</del><ins>+    auto iter = m_blankFrameURLs.find(frame);
</ins><span class="cx">     if (iter != m_blankFrameURLs.end())
</span><span class="cx">         return iter-&gt;value;
</span><span class="cx">     String url = &quot;wyciwyg://frame/&quot; + String::number(m_blankFrameCounter++);
</span><span class="cx">     URL fakeURL(ParsedURLString, url);
</span><span class="cx">     m_blankFrameURLs.add(frame, fakeURL);
</span><del>-
</del><span class="cx">     return fakeURL;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepagePageSerializerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/PageSerializer.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/PageSerializer.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/PageSerializer.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -30,7 +30,6 @@
</span><span class="cx"> 
</span><span class="cx"> #pragma once
</span><span class="cx"> 
</span><del>-#include &quot;URL.h&quot;
</del><span class="cx"> #include &quot;URLHash.h&quot;
</span><span class="cx"> #include &quot;SharedBuffer.h&quot;
</span><span class="cx"> #include &lt;wtf/HashMap.h&gt;
</span><span class="lines">@@ -56,20 +55,20 @@
</span><span class="cx">         URL url;
</span><span class="cx">         String mimeType;
</span><span class="cx">         RefPtr&lt;SharedBuffer&gt; data;
</span><del>-        Resource();
-        Resource(const URL&amp;, const String&amp; mimeType, PassRefPtr&lt;SharedBuffer&gt; data);
</del><span class="cx">     };
</span><span class="cx"> 
</span><del>-    explicit PageSerializer(Vector&lt;Resource&gt;*);
</del><ins>+    explicit PageSerializer(Vector&lt;Resource&gt;&amp;);
</ins><span class="cx"> 
</span><span class="cx">     // Initiates the serialization of the frame's page. All serialized content and retrieved
</span><span class="cx">     // resources are added to the Vector passed to the constructor. The first resource in that
</span><span class="cx">     // vector is the top frame serialized content.
</span><del>-    void serialize(Page*);
</del><ins>+    void serialize(Page&amp;);
</ins><span class="cx"> 
</span><ins>+private:
+    class SerializerMarkupAccumulator;
+
</ins><span class="cx">     URL urlForBlankFrame(Frame*);
</span><span class="cx"> 
</span><del>-private:
</del><span class="cx">     void serializeFrame(Frame*);
</span><span class="cx"> 
</span><span class="cx">     // Serializes the stylesheet back to text and adds it to the resources if URL is not-empty.
</span><span class="lines">@@ -80,10 +79,10 @@
</span><span class="cx">     void retrieveResourcesForProperties(const StyleProperties*, Document*);
</span><span class="cx">     void retrieveResourcesForRule(StyleRule&amp;, Document*);
</span><span class="cx"> 
</span><del>-    Vector&lt;Resource&gt;* m_resources;
</del><ins>+    Vector&lt;Resource&gt;&amp; m_resources;
</ins><span class="cx">     ListHashSet&lt;URL&gt; m_resourceURLs;
</span><span class="cx">     HashMap&lt;Frame*, URL&gt; m_blankFrameURLs;
</span><del>-    unsigned m_blankFrameCounter;
</del><ins>+    unsigned m_blankFrameCounter { 0 };
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorepagePerformanceEntryh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/PerformanceEntry.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/PerformanceEntry.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/PerformanceEntry.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -34,7 +34,6 @@
</span><span class="cx"> #if ENABLE(WEB_TIMING)
</span><span class="cx"> 
</span><span class="cx"> #include &quot;Performance.h&quot;
</span><del>-#include &lt;wtf/PassRefPtr.h&gt;
</del><span class="cx"> #include &lt;wtf/RefCounted.h&gt;
</span><span class="cx"> #include &lt;wtf/TypeCasts.h&gt;
</span><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="lines">@@ -54,7 +53,7 @@
</span><span class="cx">     virtual bool isMark() const { return false; }
</span><span class="cx">     virtual bool isMeasure() const { return false; }
</span><span class="cx"> 
</span><del>-    static bool startTimeCompareLessThan(PassRefPtr&lt;PerformanceEntry&gt; a, PassRefPtr&lt;PerformanceEntry&gt; b)
</del><ins>+    static bool startTimeCompareLessThan(const RefPtr&lt;PerformanceEntry&gt;&amp; a, const RefPtr&lt;PerformanceEntry&gt;&amp; b)
</ins><span class="cx">     {
</span><span class="cx">         return a-&gt;startTime() &lt; b-&gt;startTime();
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorepagePerformanceUserTimingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/PerformanceUserTiming.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/PerformanceUserTiming.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/PerformanceUserTiming.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -87,14 +87,14 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static void insertPerformanceEntry(PerformanceEntryMap&amp; performanceEntryMap, PassRefPtr&lt;PerformanceEntry&gt; performanceEntry)
</del><ins>+static void insertPerformanceEntry(PerformanceEntryMap&amp; performanceEntryMap, Ref&lt;PerformanceEntry&gt;&amp;&amp; performanceEntry)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;PerformanceEntry&gt; entry = performanceEntry;
-    PerformanceEntryMap::iterator it = performanceEntryMap.find(entry-&gt;name());
</del><ins>+    RefPtr&lt;PerformanceEntry&gt; entry = WTFMove(performanceEntry);
+    auto it = performanceEntryMap.find(entry-&gt;name());
</ins><span class="cx">     if (it != performanceEntryMap.end())
</span><del>-        it-&gt;value.append(entry);
</del><ins>+        it-&gt;value.append(WTFMove(entry));
</ins><span class="cx">     else
</span><del>-        performanceEntryMap.set(entry-&gt;name(), Vector&lt;RefPtr&lt;PerformanceEntry&gt;&gt;{ entry });
</del><ins>+        performanceEntryMap.set(entry-&gt;name(), Vector&lt;RefPtr&lt;PerformanceEntry&gt;&gt; { WTFMove(entry) });
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static void clearPeformanceEntries(PerformanceEntryMap&amp; performanceEntryMap, const String&amp; name)
</span></span></pre></div>
<a id="trunkSourceWebCorepageResourceUsageOverlaycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/ResourceUsageOverlay.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/ResourceUsageOverlay.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/ResourceUsageOverlay.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -53,7 +53,7 @@
</span><span class="cx"> 
</span><span class="cx">     // FIXME: This is a hack so we don't try to uninstall the PageOverlay during Page destruction.
</span><span class="cx">     if (m_page.mainFrame().page())
</span><del>-        m_page.mainFrame().pageOverlayController().uninstallPageOverlay(m_overlay.get(), PageOverlay::FadeMode::DoNotFade);
</del><ins>+        m_page.mainFrame().pageOverlayController().uninstallPageOverlay(*m_overlay, PageOverlay::FadeMode::DoNotFade);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ResourceUsageOverlay::initialize()
</span><span class="lines">@@ -72,7 +72,7 @@
</span><span class="cx"> 
</span><span class="cx">     m_overlay-&gt;setFrame(initialRect);
</span><span class="cx">     m_overlay-&gt;setShouldIgnoreMouseEventsOutsideBounds(false);
</span><del>-    m_page.mainFrame().pageOverlayController().installPageOverlay(m_overlay.get(), PageOverlay::FadeMode::DoNotFade);
</del><ins>+    m_page.mainFrame().pageOverlayController().installPageOverlay(*m_overlay, PageOverlay::FadeMode::DoNotFade);
</ins><span class="cx">     platformInitialize();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageanimationAnimationBaseh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/animation/AnimationBase.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/animation/AnimationBase.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/animation/AnimationBase.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -31,7 +31,6 @@
</span><span class="cx"> #include &quot;Animation.h&quot;
</span><span class="cx"> #include &quot;CSSPropertyNames.h&quot;
</span><span class="cx"> #include &quot;RenderStyleConstants.h&quot;
</span><del>-#include &lt;wtf/RefCounted.h&gt;
</del><span class="cx"> #include &lt;wtf/text/AtomicString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span></span></pre></div>
<a id="trunkSourceWebCorepageanimationAnimationControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/animation/AnimationController.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/animation/AnimationController.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/animation/AnimationController.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -104,7 +104,7 @@
</span><span class="cx">     Element* element = renderer.element();
</span><span class="cx"> 
</span><span class="cx">     m_eventsToDispatch.removeAllMatching([element] (const EventToDispatch&amp; info) {
</span><del>-        return info.element == element;
</del><ins>+        return info.element.ptr() == element;
</ins><span class="cx">     });
</span><span class="cx"> 
</span><span class="cx">     m_elementChangesToDispatch.removeAllMatching([element](auto&amp; currentElement) {
</span><span class="lines">@@ -203,7 +203,7 @@
</span><span class="cx">     // fire all the events
</span><span class="cx">     Vector&lt;EventToDispatch&gt; eventsToDispatch = WTFMove(m_eventsToDispatch);
</span><span class="cx">     for (auto&amp; event : eventsToDispatch) {
</span><del>-        Element&amp; element = *event.element;
</del><ins>+        Element&amp; element = event.element;
</ins><span class="cx">         if (event.eventType == eventNames().transitionendEvent)
</span><span class="cx">             element.dispatchEvent(TransitionEvent::create(event.eventType, event.name, event.elapsedTime, PseudoElement::pseudoElementNameForEvents(element.pseudoId())));
</span><span class="cx">         else
</span><span class="lines">@@ -225,21 +225,15 @@
</span><span class="cx">         m_updateStyleIfNeededDispatcher.startOneShot(0);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void AnimationControllerPrivate::addEventToDispatch(PassRefPtr&lt;Element&gt; element, const AtomicString&amp; eventType, const String&amp; name, double elapsedTime)
</del><ins>+void AnimationControllerPrivate::addEventToDispatch(Element&amp; element, const AtomicString&amp; eventType, const String&amp; name, double elapsedTime)
</ins><span class="cx"> {
</span><del>-    m_eventsToDispatch.grow(m_eventsToDispatch.size()+1);
-    EventToDispatch&amp; event = m_eventsToDispatch[m_eventsToDispatch.size()-1];
-    event.element = element;
-    event.eventType = eventType;
-    event.name = name;
-    event.elapsedTime = elapsedTime;
-    
</del><ins>+    m_eventsToDispatch.append({ element, eventType, name, elapsedTime });
</ins><span class="cx">     startUpdateStyleIfNeededDispatcher();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void AnimationControllerPrivate::addElementChangeToDispatch(Ref&lt;Element&gt;&amp;&amp; element)
</del><ins>+void AnimationControllerPrivate::addElementChangeToDispatch(Element&amp; element)
</ins><span class="cx"> {
</span><del>-    m_elementChangesToDispatch.append(WTFMove(element));
</del><ins>+    m_elementChangesToDispatch.append(element);
</ins><span class="cx">     ASSERT(m_elementChangesToDispatch.last()-&gt;document().pageCacheState() == Document::NotInPageCache);
</span><span class="cx">     startUpdateStyleIfNeededDispatcher();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorepageanimationAnimationControllerPrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/animation/AnimationControllerPrivate.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/animation/AnimationControllerPrivate.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/animation/AnimationControllerPrivate.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -29,33 +29,21 @@
</span><span class="cx"> #pragma once
</span><span class="cx"> 
</span><span class="cx"> #include &quot;AnimationBase.h&quot;
</span><del>-#include &quot;CSSPropertyNames.h&quot;
</del><span class="cx"> #include &quot;Timer.h&quot;
</span><span class="cx"> #include &lt;wtf/HashMap.h&gt;
</span><span class="cx"> #include &lt;wtf/HashSet.h&gt;
</span><del>-#include &lt;wtf/PassRefPtr.h&gt;
-#include &lt;wtf/RefPtr.h&gt;
</del><span class="cx"> #include &lt;wtf/Vector.h&gt;
</span><del>-#include &lt;wtf/text/AtomicString.h&gt;
-#include &lt;wtf/text/WTFString.h&gt;
</del><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-class AnimationBase;
</del><span class="cx"> class CompositeAnimation;
</span><span class="cx"> class Document;
</span><del>-class Element;
</del><span class="cx"> class Frame;
</span><del>-class RenderElement;
-class RenderStyle;
</del><span class="cx"> 
</span><del>-enum SetChanged {
-    DoNotCallSetChanged = 0,
-    CallSetChanged = 1
-};
</del><ins>+enum SetChanged { DoNotCallSetChanged, CallSetChanged };
</ins><span class="cx"> 
</span><span class="cx"> class AnimationControllerPrivate {
</span><del>-    WTF_MAKE_NONCOPYABLE(AnimationControllerPrivate); WTF_MAKE_FAST_ALLOCATED;
</del><ins>+    WTF_MAKE_FAST_ALLOCATED;
</ins><span class="cx"> public:
</span><span class="cx">     explicit AnimationControllerPrivate(Frame&amp;);
</span><span class="cx">     ~AnimationControllerPrivate();
</span><span class="lines">@@ -69,8 +57,8 @@
</span><span class="cx"> 
</span><span class="cx">     void updateStyleIfNeededDispatcherFired();
</span><span class="cx">     void startUpdateStyleIfNeededDispatcher();
</span><del>-    void addEventToDispatch(PassRefPtr&lt;Element&gt; element, const AtomicString&amp; eventType, const String&amp; name, double elapsedTime);
-    void addElementChangeToDispatch(Ref&lt;Element&gt;&amp;&amp;);
</del><ins>+    void addEventToDispatch(Element&amp;, const AtomicString&amp; eventType, const String&amp; name, double elapsedTime);
+    void addElementChangeToDispatch(Element&amp;);
</ins><span class="cx"> 
</span><span class="cx">     bool hasAnimations() const { return !m_compositeAnimations.isEmpty(); }
</span><span class="cx"> 
</span><span class="lines">@@ -134,21 +122,19 @@
</span><span class="cx">     Timer m_animationTimer;
</span><span class="cx">     Timer m_updateStyleIfNeededDispatcher;
</span><span class="cx">     Frame&amp; m_frame;
</span><del>-    
-    class EventToDispatch {
-    public:
-        RefPtr&lt;Element&gt; element;
</del><ins>+
+    struct EventToDispatch {
+        Ref&lt;Element&gt; element;
</ins><span class="cx">         AtomicString eventType;
</span><span class="cx">         String name;
</span><span class="cx">         double elapsedTime;
</span><span class="cx">     };
</span><del>-    
</del><span class="cx">     Vector&lt;EventToDispatch&gt; m_eventsToDispatch;
</span><span class="cx">     Vector&lt;Ref&lt;Element&gt;&gt; m_elementChangesToDispatch;
</span><span class="cx">     
</span><span class="cx">     double m_beginAnimationUpdateTime;
</span><span class="cx"> 
</span><del>-    typedef HashSet&lt;RefPtr&lt;AnimationBase&gt;&gt; AnimationsSet;
</del><ins>+    using AnimationsSet = HashSet&lt;RefPtr&lt;AnimationBase&gt;&gt;;
</ins><span class="cx">     AnimationsSet m_animationsWaitingForStyle;
</span><span class="cx">     AnimationsSet m_animationsWaitingForStartTimeResponse;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageanimationCSSPropertyAnimationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/animation/CSSPropertyAnimation.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/animation/CSSPropertyAnimation.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/animation/CSSPropertyAnimation.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -125,7 +125,7 @@
</span><span class="cx">     return to.blendByUsingMatrixInterpolation(from, progress, is&lt;RenderBox&gt;(*animation-&gt;renderer()) ? downcast&lt;RenderBox&gt;(*animation-&gt;renderer()).borderBoxRect().size() : LayoutSize());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static inline PassRefPtr&lt;ClipPathOperation&gt; blendFunc(const AnimationBase*, ClipPathOperation* from, ClipPathOperation* to, double progress)
</del><ins>+static inline RefPtr&lt;ClipPathOperation&gt; blendFunc(const AnimationBase*, ClipPathOperation* from, ClipPathOperation* to, double progress)
</ins><span class="cx"> {
</span><span class="cx">     if (!from || !to)
</span><span class="cx">         return to;
</span><span class="lines">@@ -143,7 +143,7 @@
</span><span class="cx">     return ShapeClipPathOperation::create(toShape.blend(fromShape, progress));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static inline PassRefPtr&lt;ShapeValue&gt; blendFunc(const AnimationBase*, ShapeValue* from, ShapeValue* to, double progress)
</del><ins>+static inline RefPtr&lt;ShapeValue&gt; blendFunc(const AnimationBase*, ShapeValue* from, ShapeValue* to, double progress)
</ins><span class="cx"> {
</span><span class="cx">     if (!from || !to)
</span><span class="cx">         return to;
</span><span class="lines">@@ -163,7 +163,7 @@
</span><span class="cx">     return ShapeValue::create(toShape.blend(fromShape, progress), to-&gt;cssBox());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static inline PassRefPtr&lt;FilterOperation&gt; blendFunc(const AnimationBase* animation, FilterOperation* fromOp, FilterOperation* toOp, double progress, bool blendToPassthrough = false)
</del><ins>+static inline RefPtr&lt;FilterOperation&gt; blendFunc(const AnimationBase* animation, FilterOperation* fromOp, FilterOperation* toOp, double progress, bool blendToPassthrough = false)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(toOp);
</span><span class="cx">     if (toOp-&gt;blendingNeedsRendererSize()) {
</span><span class="lines">@@ -218,7 +218,7 @@
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static inline PassRefPtr&lt;StyleImage&gt; blendFilter(const AnimationBase* anim, CachedImage* image, const FilterOperations&amp; from, const FilterOperations&amp; to, double progress)
</del><ins>+static inline RefPtr&lt;StyleImage&gt; blendFilter(const AnimationBase* anim, CachedImage* image, const FilterOperations&amp; from, const FilterOperations&amp; to, double progress)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(image);
</span><span class="cx">     FilterOperations filterResult = blendFilterOperations(anim, from, to, progress);
</span><span class="lines">@@ -278,7 +278,7 @@
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static inline PassRefPtr&lt;StyleImage&gt; crossfadeBlend(const AnimationBase*, StyleCachedImage* fromStyleImage, StyleCachedImage* toStyleImage, double progress)
</del><ins>+static inline RefPtr&lt;StyleImage&gt; crossfadeBlend(const AnimationBase*, StyleCachedImage* fromStyleImage, StyleCachedImage* toStyleImage, double progress)
</ins><span class="cx"> {
</span><span class="cx">     // If progress is at one of the extremes, we want getComputedStyle to show the image,
</span><span class="cx">     // not a completed cross-fade, so we hand back one of the existing images.
</span><span class="lines">@@ -295,7 +295,7 @@
</span><span class="cx">     return StyleGeneratedImage::create(WTFMove(crossfadeValue));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static inline PassRefPtr&lt;StyleImage&gt; blendFunc(const AnimationBase* anim, StyleImage* from, StyleImage* to, double progress)
</del><ins>+static inline RefPtr&lt;StyleImage&gt; blendFunc(const AnimationBase* anim, StyleImage* from, StyleImage* to, double progress)
</ins><span class="cx"> {
</span><span class="cx">     if (!from || !to)
</span><span class="cx">         return to;
</span><span class="lines">@@ -364,11 +364,12 @@
</span><span class="cx">     if (from.image()-&gt;imageSize(anim-&gt;renderer(), 1.0) != to.image()-&gt;imageSize(anim-&gt;renderer(), 1.0))
</span><span class="cx">         return to;
</span><span class="cx"> 
</span><del>-    auto newContentImage = blendFunc(anim, from.image(), to.image(), progress);
-    return NinePieceImage(newContentImage, from.imageSlices(), from.fill(), from.borderSlices(), from.outset(), from.horizontalRule(), from.verticalRule());
</del><ins>+    return NinePieceImage(blendFunc(anim, from.image(), to.image(), progress),
+        from.imageSlices(), from.fill(), from.borderSlices(), from.outset(), from.horizontalRule(), from.verticalRule());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(VARIATION_FONTS)
</span><ins>+
</ins><span class="cx"> static inline FontVariationSettings blendFunc(const AnimationBase* anim, const FontVariationSettings&amp; from, const FontVariationSettings&amp; to, double progress)
</span><span class="cx"> {
</span><span class="cx">     if (from.size() != to.size())
</span><span class="lines">@@ -385,6 +386,7 @@
</span><span class="cx">     }
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> class AnimationPropertyWrapperBase {
</span></span></pre></div>
<a id="trunkSourceWebCorepageanimationCompositeAnimationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/animation/CompositeAnimation.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/animation/CompositeAnimation.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/animation/CompositeAnimation.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -121,8 +121,8 @@
</span><span class="cx">                 // If there is a running animation for this property, the transition is overridden
</span><span class="cx">                 // and we have to use the unanimatedStyle from the animation. We do the test
</span><span class="cx">                 // against the unanimated style here, but we &quot;override&quot; the transition later.
</span><del>-                RefPtr&lt;KeyframeAnimation&gt; keyframeAnim = getAnimationForProperty(prop);
-                auto* fromStyle = keyframeAnim ? keyframeAnim-&gt;unanimatedStyle() : currentStyle;
</del><ins>+                auto* keyframeAnimation = animationForProperty(prop);
+                auto* fromStyle = keyframeAnimation ? keyframeAnimation-&gt;unanimatedStyle() : currentStyle;
</ins><span class="cx"> 
</span><span class="cx">                 // See if there is a current transition for this prop
</span><span class="cx">                 ImplicitAnimation* implAnim = m_transitions.get(prop);
</span><span class="lines">@@ -172,7 +172,7 @@
</span><span class="cx">                     LOG(Animations, &quot;Created ImplicitAnimation %p on renderer %p for property %s duration %.2f delay %.2f&quot;, implicitAnimation.ptr(), renderer, getPropertyName(prop), animation.duration(), animation.delay());
</span><span class="cx">                     m_transitions.set(prop, WTFMove(implicitAnimation));
</span><span class="cx">                 }
</span><del>-                
</del><ins>+
</ins><span class="cx">                 // We only need one pass for the single prop case
</span><span class="cx">                 if (!all)
</span><span class="cx">                     break;
</span><span class="lines">@@ -399,10 +399,10 @@
</span><span class="cx">     return minT;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;KeyframeAnimation&gt; CompositeAnimation::getAnimationForProperty(CSSPropertyID property) const
</del><ins>+KeyframeAnimation* CompositeAnimation::animationForProperty(CSSPropertyID property) const
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;KeyframeAnimation&gt; retval;
-    
</del><ins>+    KeyframeAnimation* result = nullptr;
+
</ins><span class="cx">     // We want to send back the last animation with the property if there are multiples.
</span><span class="cx">     // So we need to iterate through all animations
</span><span class="cx">     if (!m_keyframeAnimations.isEmpty()) {
</span><span class="lines">@@ -409,11 +409,11 @@
</span><span class="cx">         m_keyframeAnimations.checkConsistency();
</span><span class="cx">         for (auto&amp; animation : m_keyframeAnimations.values()) {
</span><span class="cx">             if (animation-&gt;hasAnimationForProperty(property))
</span><del>-                retval = animation;
</del><ins>+                result = animation.get();
</ins><span class="cx">         }
</span><span class="cx">     }
</span><del>-    
-    return retval;
</del><ins>+
+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool CompositeAnimation::computeExtentOfTransformAnimation(LayoutRect&amp; bounds) const
</span></span></pre></div>
<a id="trunkSourceWebCorepageanimationCompositeAnimationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/animation/CompositeAnimation.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/animation/CompositeAnimation.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/animation/CompositeAnimation.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -71,7 +71,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool isAnimatingProperty(CSSPropertyID, bool acceleratedOnly, AnimationBase::RunningState) const;
</span><span class="cx"> 
</span><del>-    PassRefPtr&lt;KeyframeAnimation&gt; getAnimationForProperty(CSSPropertyID) const;
</del><ins>+    KeyframeAnimation* animationForProperty(CSSPropertyID) const;
</ins><span class="cx"> 
</span><span class="cx">     void overrideImplicitAnimations(CSSPropertyID);
</span><span class="cx">     void resumeOverriddenImplicitAnimations(CSSPropertyID);
</span></span></pre></div>
<a id="trunkSourceWebCorepageanimationImplicitAnimationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/animation/ImplicitAnimation.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/animation/ImplicitAnimation.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/animation/ImplicitAnimation.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -163,10 +163,9 @@
</span><span class="cx">     // running. But now that the transition has completed, we need to update this style with its new
</span><span class="cx">     // destination. If we didn't, the next time through we would think a transition had started
</span><span class="cx">     // (comparing the old unanimated style with the new final style of the transition).
</span><del>-    RefPtr&lt;KeyframeAnimation&gt; keyframeAnim = m_compositeAnimation-&gt;getAnimationForProperty(m_animatingProperty);
-    if (keyframeAnim)
-        keyframeAnim-&gt;setUnanimatedStyle(RenderStyle::clonePtr(*m_toStyle));
-    
</del><ins>+    if (auto* animation = m_compositeAnimation-&gt;animationForProperty(m_animatingProperty))
+        animation-&gt;setUnanimatedStyle(RenderStyle::clonePtr(*m_toStyle));
+
</ins><span class="cx">     sendTransitionEvent(eventNames().transitionendEvent, elapsedTime);
</span><span class="cx">     endAnimation();
</span><span class="cx"> }
</span><span class="lines">@@ -187,7 +186,7 @@
</span><span class="cx">                 return false;
</span><span class="cx"> 
</span><span class="cx">             // Schedule event handling
</span><del>-            m_compositeAnimation-&gt;animationController().addEventToDispatch(element, eventType, propertyName, elapsedTime);
</del><ins>+            m_compositeAnimation-&gt;animationController().addEventToDispatch(*element, eventType, propertyName, elapsedTime);
</ins><span class="cx"> 
</span><span class="cx">             // Restore the original (unanimated) style
</span><span class="cx">             if (eventType == eventNames().transitionendEvent &amp;&amp; element-&gt;renderer())
</span></span></pre></div>
<a id="trunkSourceWebCorepageanimationKeyframeAnimationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/animation/KeyframeAnimation.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/animation/KeyframeAnimation.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/animation/KeyframeAnimation.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -327,7 +327,7 @@
</span><span class="cx">             return false;
</span><span class="cx"> 
</span><span class="cx">         // Schedule event handling
</span><del>-        m_compositeAnimation-&gt;animationController().addEventToDispatch(element, eventType, m_keyframes.animationName(), elapsedTime);
</del><ins>+        m_compositeAnimation-&gt;animationController().addEventToDispatch(*element, eventType, m_keyframes.animationName(), elapsedTime);
</ins><span class="cx"> 
</span><span class="cx">         // Restore the original (unanimated) style
</span><span class="cx">         if ((eventType == eventNames().webkitAnimationEndEvent || eventType == eventNames().animationendEvent) &amp;&amp; element-&gt;renderer())
</span></span></pre></div>
<a id="trunkSourceWebCorepageeflEventHandlerEflcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/efl/EventHandlerEfl.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/efl/EventHandlerEfl.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/efl/EventHandlerEfl.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx"> const double EventHandler::TextDragDelay = 0.0;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-bool EventHandler::tabsToAllFormControls(KeyboardEvent*) const
</del><ins>+bool EventHandler::tabsToAllFormControls(KeyboardEvent&amp;) const
</ins><span class="cx"> {
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="lines">@@ -96,10 +96,12 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(DRAG_SUPPORT)
</span><del>-PassRefPtr&lt;DataTransfer&gt; EventHandler::createDraggingDataTransfer() const
</del><ins>+
+Ref&lt;DataTransfer&gt; EventHandler::createDraggingDataTransfer() const
</ins><span class="cx"> {
</span><span class="cx">     return DataTransfer::createForDragAndDrop();
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> bool EventHandler::passMousePressEventToSubframe(MouseEventWithHitTestResults&amp; mev, Frame* subframe)
</span></span></pre></div>
<a id="trunkSourceWebCorepagegtkEventHandlerGtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/gtk/EventHandlerGtk.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/gtk/EventHandlerGtk.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/gtk/EventHandlerGtk.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -46,7 +46,7 @@
</span><span class="cx"> const double EventHandler::TextDragDelay = 0.0;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-bool EventHandler::tabsToAllFormControls(KeyboardEvent*) const
</del><ins>+bool EventHandler::tabsToAllFormControls(KeyboardEvent&amp;) const
</ins><span class="cx"> {
</span><span class="cx">     // We always allow tabs to all controls
</span><span class="cx">     return true;
</span><span class="lines">@@ -96,10 +96,12 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(DRAG_SUPPORT)
</span><del>-PassRefPtr&lt;DataTransfer&gt; EventHandler::createDraggingDataTransfer() const
</del><ins>+
+Ref&lt;DataTransfer&gt; EventHandler::createDraggingDataTransfer() const
</ins><span class="cx"> {
</span><span class="cx">     return DataTransfer::createForDragAndDrop();
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> bool EventHandler::passMousePressEventToSubframe(MouseEventWithHitTestResults&amp; mev, Frame* subframe)
</span></span></pre></div>
<a id="trunkSourceWebCorepageiosEventHandlerIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/ios/EventHandlerIOS.mm (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/ios/EventHandlerIOS.mm        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/ios/EventHandlerIOS.mm        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -120,7 +120,7 @@
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-bool EventHandler::tabsToAllFormControls(KeyboardEvent* event) const
</del><ins>+bool EventHandler::tabsToAllFormControls(KeyboardEvent&amp; event) const
</ins><span class="cx"> {
</span><span class="cx">     Page* page = m_frame.page();
</span><span class="cx">     if (!page)
</span></span></pre></div>
<a id="trunkSourceWebCorepagemacEventHandlerMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/mac/EventHandlerMac.mm (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/mac/EventHandlerMac.mm        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/mac/EventHandlerMac.mm        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -61,6 +61,7 @@
</span><span class="cx"> #include &quot;Settings.h&quot;
</span><span class="cx"> #include &quot;ShadowRoot.h&quot;
</span><span class="cx"> #include &quot;WebCoreSystemInterface.h&quot;
</span><ins>+#include &quot;WheelEventDeltaFilter.h&quot;
</ins><span class="cx"> #include &quot;WheelEventTestTrigger.h&quot;
</span><span class="cx"> #include &lt;wtf/BlockObjCExceptions.h&gt;
</span><span class="cx"> #include &lt;wtf/MainThread.h&gt;
</span><span class="lines">@@ -723,7 +724,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(DRAG_SUPPORT)
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;DataTransfer&gt; EventHandler::createDraggingDataTransfer() const
</del><ins>+Ref&lt;DataTransfer&gt; EventHandler::createDraggingDataTransfer() const
</ins><span class="cx"> {
</span><span class="cx">     // Must be done before ondragstart adds types and data to the pboard,
</span><span class="cx">     // also done for security, as it erases data from the last drag.
</span><span class="lines">@@ -734,7 +735,7 @@
</span><span class="cx"> 
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-bool EventHandler::tabsToAllFormControls(KeyboardEvent* event) const
</del><ins>+bool EventHandler::tabsToAllFormControls(KeyboardEvent&amp; event) const
</ins><span class="cx"> {
</span><span class="cx">     Page* page = m_frame.page();
</span><span class="cx">     if (!page)
</span><span class="lines">@@ -971,10 +972,10 @@
</span><span class="cx">                 m_frame.mainFrame().pushNewLatchingState();
</span><span class="cx">                 latchingState = m_frame.mainFrame().latchingState();
</span><span class="cx">                 latchingState-&gt;setStartedGestureAtScrollLimit(false);
</span><del>-                latchingState-&gt;setWheelEventElement(wheelEventTarget);
</del><ins>+                latchingState-&gt;setWheelEventElement(wheelEventTarget.get());
</ins><span class="cx">                 latchingState-&gt;setFrame(&amp;m_frame);
</span><span class="cx">                 // FIXME: What prevents us from deleting this scrollable container while still holding a pointer to it?
</span><del>-                latchingState-&gt;setScrollableContainer(scrollableContainer);
</del><ins>+                latchingState-&gt;setScrollableContainer(scrollableContainer.get());
</ins><span class="cx">                 latchingState-&gt;setWidgetIsLatched(result.isOverWidget());
</span><span class="cx">                 isOverWidget = latchingState-&gt;widgetIsLatched();
</span><span class="cx">                 m_frame.mainFrame().wheelEventDeltaFilter()-&gt;beginFilteringDeltas();
</span></span></pre></div>
<a id="trunkSourceWebCorepagemacServicesOverlayControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/mac/ServicesOverlayController.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/mac/ServicesOverlayController.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/mac/ServicesOverlayController.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2014 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2014-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -31,7 +31,6 @@
</span><span class="cx"> #include &quot;PageOverlay.h&quot;
</span><span class="cx"> #include &quot;Range.h&quot;
</span><span class="cx"> #include &quot;Timer.h&quot;
</span><del>-#include &lt;wtf/RefCounted.h&gt;
</del><span class="cx"> 
</span><span class="cx"> typedef struct __DDHighlight *DDHighlightRef;
</span><span class="cx"> 
</span><span class="lines">@@ -39,6 +38,7 @@
</span><span class="cx">     
</span><span class="cx"> class LayoutRect;
</span><span class="cx"> class MainFrame;
</span><ins>+
</ins><span class="cx"> struct GapRects;
</span><span class="cx"> 
</span><span class="cx"> class ServicesOverlayController : private PageOverlay::Client {
</span><span class="lines">@@ -54,14 +54,14 @@
</span><span class="cx">     class Highlight : public RefCounted&lt;Highlight&gt;, private GraphicsLayerClient {
</span><span class="cx">         WTF_MAKE_NONCOPYABLE(Highlight);
</span><span class="cx">     public:
</span><del>-        static Ref&lt;Highlight&gt; createForSelection(ServicesOverlayController&amp;, RetainPtr&lt;DDHighlightRef&gt;, PassRefPtr&lt;Range&gt;);
-        static Ref&lt;Highlight&gt; createForTelephoneNumber(ServicesOverlayController&amp;, RetainPtr&lt;DDHighlightRef&gt;, PassRefPtr&lt;Range&gt;);
</del><ins>+        static Ref&lt;Highlight&gt; createForSelection(ServicesOverlayController&amp;, RetainPtr&lt;DDHighlightRef&gt;, Ref&lt;Range&gt;&amp;&amp;);
+        static Ref&lt;Highlight&gt; createForTelephoneNumber(ServicesOverlayController&amp;, RetainPtr&lt;DDHighlightRef&gt;, Ref&lt;Range&gt;&amp;&amp;);
</ins><span class="cx">         ~Highlight();
</span><span class="cx"> 
</span><span class="cx">         void invalidate();
</span><span class="cx"> 
</span><span class="cx">         DDHighlightRef ddHighlight() const { return m_ddHighlight.get(); }
</span><del>-        Range* range() const { return m_range.get(); }
</del><ins>+        Range&amp; range() const { return m_range.get(); }
</ins><span class="cx">         GraphicsLayer* layer() const { return m_graphicsLayer.get(); }
</span><span class="cx"> 
</span><span class="cx">         enum {
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx">         void setDDHighlight(DDHighlightRef);
</span><span class="cx"> 
</span><span class="cx">     private:
</span><del>-        explicit Highlight(ServicesOverlayController&amp;, Type, RetainPtr&lt;DDHighlightRef&gt;, PassRefPtr&lt;Range&gt;);
</del><ins>+        Highlight(ServicesOverlayController&amp;, Type, RetainPtr&lt;DDHighlightRef&gt;, Ref&lt;Range&gt;&amp;&amp;);
</ins><span class="cx"> 
</span><span class="cx">         // GraphicsLayerClient
</span><span class="cx">         void notifyFlushRequired(const GraphicsLayer*) override;
</span><span class="lines">@@ -87,7 +87,7 @@
</span><span class="cx">         void didFinishFadeOutAnimation();
</span><span class="cx"> 
</span><span class="cx">         RetainPtr&lt;DDHighlightRef&gt; m_ddHighlight;
</span><del>-        RefPtr&lt;Range&gt; m_range;
</del><ins>+        Ref&lt;Range&gt; m_range;
</ins><span class="cx">         std::unique_ptr&lt;GraphicsLayer&gt; m_graphicsLayer;
</span><span class="cx">         Type m_type;
</span><span class="cx">         ServicesOverlayController* m_controller;
</span></span></pre></div>
<a id="trunkSourceWebCorepagemacServicesOverlayControllermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/mac/ServicesOverlayController.mm (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/mac/ServicesOverlayController.mm        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/mac/ServicesOverlayController.mm        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -55,23 +55,22 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-Ref&lt;ServicesOverlayController::Highlight&gt; ServicesOverlayController::Highlight::createForSelection(ServicesOverlayController&amp; controller, RetainPtr&lt;DDHighlightRef&gt; ddHighlight, PassRefPtr&lt;Range&gt; range)
</del><ins>+Ref&lt;ServicesOverlayController::Highlight&gt; ServicesOverlayController::Highlight::createForSelection(ServicesOverlayController&amp; controller, RetainPtr&lt;DDHighlightRef&gt; ddHighlight, Ref&lt;Range&gt;&amp;&amp; range)
</ins><span class="cx"> {
</span><del>-    return adoptRef(*new Highlight(controller, Highlight::SelectionType, ddHighlight, range));
</del><ins>+    return adoptRef(*new Highlight(controller, Highlight::SelectionType, ddHighlight, WTFMove(range)));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;ServicesOverlayController::Highlight&gt; ServicesOverlayController::Highlight::createForTelephoneNumber(ServicesOverlayController&amp; controller, RetainPtr&lt;DDHighlightRef&gt; ddHighlight, PassRefPtr&lt;Range&gt; range)
</del><ins>+Ref&lt;ServicesOverlayController::Highlight&gt; ServicesOverlayController::Highlight::createForTelephoneNumber(ServicesOverlayController&amp; controller, RetainPtr&lt;DDHighlightRef&gt; ddHighlight, Ref&lt;Range&gt;&amp;&amp; range)
</ins><span class="cx"> {
</span><del>-    return adoptRef(*new Highlight(controller, Highlight::TelephoneNumberType, ddHighlight, range));
</del><ins>+    return adoptRef(*new Highlight(controller, Highlight::TelephoneNumberType, ddHighlight, WTFMove(range)));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-ServicesOverlayController::Highlight::Highlight(ServicesOverlayController&amp; controller, Type type, RetainPtr&lt;DDHighlightRef&gt; ddHighlight, PassRefPtr&lt;WebCore::Range&gt; range)
-    : m_range(range)
</del><ins>+ServicesOverlayController::Highlight::Highlight(ServicesOverlayController&amp; controller, Type type, RetainPtr&lt;DDHighlightRef&gt; ddHighlight, Ref&lt;WebCore::Range&gt;&amp;&amp; range)
+    : m_range(WTFMove(range))
</ins><span class="cx">     , m_type(type)
</span><span class="cx">     , m_controller(&amp;controller)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(ddHighlight);
</span><del>-    ASSERT(m_range);
</del><span class="cx"> 
</span><span class="cx">     Page* page = controller.mainFrame().page();
</span><span class="cx">     m_graphicsLayer = GraphicsLayer::create(page ? page-&gt;chrome().client().graphicsLayerFactory() : nullptr, *this);
</span><span class="lines">@@ -409,7 +408,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (m_potentialHighlights.isEmpty()) {
</span><span class="cx">         if (m_servicesOverlay)
</span><del>-            m_mainFrame.pageOverlayController().uninstallPageOverlay(m_servicesOverlay, PageOverlay::FadeMode::DoNotFade);
</del><ins>+            m_mainFrame.pageOverlayController().uninstallPageOverlay(*m_servicesOverlay, PageOverlay::FadeMode::DoNotFade);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -527,7 +526,7 @@
</span><span class="cx">         CGRect cgRect = rect;
</span><span class="cx">         RetainPtr&lt;DDHighlightRef&gt; ddHighlight = adoptCF(DDHighlightCreateWithRectsInVisibleRectWithStyleAndDirection(nullptr, &amp;cgRect, 1, mainFrameView.visibleContentRect(), DDHighlightStyleBubbleStandard | DDHighlightStyleStandardIconArrow, YES, NSWritingDirectionNatural, NO, YES));
</span><span class="cx"> 
</span><del>-        newPotentialHighlights.add(Highlight::createForTelephoneNumber(*this, ddHighlight, range));
</del><ins>+        newPotentialHighlights.add(Highlight::createForTelephoneNumber(*this, ddHighlight, range.releaseNonNull()));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     replaceHighlightsOfTypePreservingEquivalentHighlights(newPotentialHighlights, Highlight::TelephoneNumberType);
</span><span class="lines">@@ -570,7 +569,7 @@
</span><span class="cx">             CGRect visibleRect = mainFrameView-&gt;visibleContentRect();
</span><span class="cx">             RetainPtr&lt;DDHighlightRef&gt; ddHighlight = adoptCF(DDHighlightCreateWithRectsInVisibleRectWithStyleAndDirection(nullptr, cgRects.begin(), cgRects.size(), visibleRect, DDHighlightStyleBubbleNone | DDHighlightStyleStandardIconArrow | DDHighlightStyleButtonShowAlways, YES, NSWritingDirectionNatural, NO, YES));
</span><span class="cx">             
</span><del>-            newPotentialHighlights.add(Highlight::createForSelection(*this, ddHighlight, selectionRange));
</del><ins>+            newPotentialHighlights.add(Highlight::createForSelection(*this, ddHighlight, selectionRange.releaseNonNull()));
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -638,14 +637,9 @@
</span><span class="cx"> {
</span><span class="cx">     if (a == b)
</span><span class="cx">         return true;
</span><del>-
</del><span class="cx">     if (!a || !b)
</span><span class="cx">         return false;
</span><del>-
-    if (a-&gt;type() == b-&gt;type() &amp;&amp; areRangesEqual(a-&gt;range(), b-&gt;range()))
-        return true;
-
-    return false;
</del><ins>+    return a-&gt;type() == b-&gt;type() &amp;&amp; areRangesEqual(&amp;a-&gt;range(), &amp;b-&gt;range());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> ServicesOverlayController::Highlight* ServicesOverlayController::findTelephoneNumberHighlightContainingSelectionHighlight(Highlight&amp; selectionHighlight)
</span><span class="lines">@@ -669,7 +663,7 @@
</span><span class="cx">         if (highlight-&gt;type() != Highlight::TelephoneNumberType)
</span><span class="cx">             continue;
</span><span class="cx"> 
</span><del>-        if (highlight-&gt;range()-&gt;contains(*activeSelectionRange))
</del><ins>+        if (highlight-&gt;range().contains(*activeSelectionRange))
</ins><span class="cx">             return highlight.get();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -832,7 +826,7 @@
</span><span class="cx"> 
</span><span class="cx">         page-&gt;chrome().client().handleSelectionServiceClick(page-&gt;focusController().focusedOrMainFrame().selection(), selectedTelephoneNumbers, windowPoint);
</span><span class="cx">     } else if (highlight.type() == Highlight::TelephoneNumberType)
</span><del>-        page-&gt;chrome().client().handleTelephoneNumberClick(highlight.range()-&gt;text(), windowPoint);
</del><ins>+        page-&gt;chrome().client().handleTelephoneNumberClick(highlight.range().text(), windowPoint);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ServicesOverlayController::didCreateHighlight(Highlight* highlight)
</span></span></pre></div>
<a id="trunkSourceWebCorepagemacTextIndicatorWindowmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/mac/TextIndicatorWindow.mm (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/mac/TextIndicatorWindow.mm        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/mac/TextIndicatorWindow.mm        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -64,7 +64,7 @@
</span><span class="cx">     BOOL _fadingOut;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-- (instancetype)initWithFrame:(NSRect)frame textIndicator:(PassRefPtr&lt;TextIndicator&gt;)textIndicator margin:(NSSize)margin offset:(NSPoint)offset;
</del><ins>+- (instancetype)initWithFrame:(NSRect)frame textIndicator:(TextIndicator&amp;)textIndicator margin:(NSSize)margin offset:(NSPoint)offset;
</ins><span class="cx"> 
</span><span class="cx"> - (void)present;
</span><span class="cx"> - (void)hideWithCompletionHandler:(void(^)(void))completionHandler;
</span><span class="lines">@@ -147,12 +147,12 @@
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-- (instancetype)initWithFrame:(NSRect)frame textIndicator:(PassRefPtr&lt;TextIndicator&gt;)textIndicator margin:(NSSize)margin offset:(NSPoint)offset
</del><ins>+- (instancetype)initWithFrame:(NSRect)frame textIndicator:(TextIndicator&amp;)textIndicator margin:(NSSize)margin offset:(NSPoint)offset
</ins><span class="cx"> {
</span><span class="cx">     if (!(self = [super initWithFrame:frame]))
</span><span class="cx">         return nil;
</span><span class="cx"> 
</span><del>-    _textIndicator = textIndicator;
</del><ins>+    _textIndicator = &amp;textIndicator;
</ins><span class="cx">     _margin = margin;
</span><span class="cx"> 
</span><span class="cx">     self.wantsLayer = YES;
</span><span class="lines">@@ -465,7 +465,8 @@
</span><span class="cx">     [m_textIndicatorWindow setOpaque:NO];
</span><span class="cx">     [m_textIndicatorWindow setIgnoresMouseEvents:YES];
</span><span class="cx"> 
</span><del>-    m_textIndicatorView = adoptNS([[WebTextIndicatorView alloc] initWithFrame:NSMakeRect(0, 0, [m_textIndicatorWindow frame].size.width, [m_textIndicatorWindow frame].size.height) textIndicator:m_textIndicator margin:NSMakeSize(horizontalMargin, verticalMargin) offset:fractionalTextOffset]);
</del><ins>+    m_textIndicatorView = adoptNS([[WebTextIndicatorView alloc] initWithFrame:NSMakeRect(0, 0, [m_textIndicatorWindow frame].size.width, [m_textIndicatorWindow frame].size.height)
+        textIndicator:*m_textIndicator margin:NSMakeSize(horizontalMargin, verticalMargin) offset:fractionalTextOffset]);
</ins><span class="cx">     [m_textIndicatorWindow setContentView:m_textIndicatorView.get()];
</span><span class="cx"> 
</span><span class="cx">     [[m_targetView window] addChildWindow:m_textIndicatorWindow.get() ordered:NSWindowAbove];
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingAsyncScrollingCoordinatorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -30,7 +30,6 @@
</span><span class="cx"> #include &quot;ScrollingCoordinator.h&quot;
</span><span class="cx"> #include &quot;ScrollingTree.h&quot;
</span><span class="cx"> #include &quot;Timer.h&quot;
</span><del>-#include &lt;wtf/PassRefPtr.h&gt;
</del><span class="cx"> #include &lt;wtf/RefPtr.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -69,11 +68,11 @@
</span><span class="cx"> protected:
</span><span class="cx">     WEBCORE_EXPORT AsyncScrollingCoordinator(Page*);
</span><span class="cx"> 
</span><del>-    void setScrollingTree(PassRefPtr&lt;ScrollingTree&gt; scrollingTree) { m_scrollingTree = scrollingTree; }
</del><ins>+    void setScrollingTree(Ref&lt;ScrollingTree&gt;&amp;&amp; scrollingTree) { m_scrollingTree = WTFMove(scrollingTree); }
</ins><span class="cx"> 
</span><span class="cx">     ScrollingStateTree* scrollingStateTree() { return m_scrollingStateTree.get(); }
</span><span class="cx"> 
</span><del>-    PassRefPtr&lt;ScrollingTree&gt; releaseScrollingTree() { return WTFMove(m_scrollingTree); }
</del><ins>+    RefPtr&lt;ScrollingTree&gt; releaseScrollingTree() { return WTFMove(m_scrollingTree); }
</ins><span class="cx"> 
</span><span class="cx">     void updateScrollPositionAfterAsyncScroll(ScrollingNodeID, const FloatPoint&amp;, std::optional&lt;FloatPoint&gt; layoutViewportOrigin, bool programmaticScroll, ScrollingLayerPositionAction);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollLatchingStatecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollLatchingState.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollLatchingState.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/scrolling/ScrollLatchingState.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -31,9 +31,6 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> ScrollLatchingState::ScrollLatchingState()
</span><del>-    : m_frame(nullptr)
-    , m_widgetIsLatched(false)
-    , m_startedGestureAtScrollLimit(false)
</del><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">     
</span><span class="lines">@@ -50,7 +47,7 @@
</span><span class="cx">     m_previousWheelScrolledElement = nullptr;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ScrollLatchingState::setWheelEventElement(PassRefPtr&lt;Element&gt; element)
</del><ins>+void ScrollLatchingState::setWheelEventElement(Element* element)
</ins><span class="cx"> {
</span><span class="cx">     m_wheelEventElement = element;
</span><span class="cx"> }
</span><span class="lines">@@ -60,14 +57,14 @@
</span><span class="cx">     m_widgetIsLatched = isOverWidget;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ScrollLatchingState::setPreviousWheelScrolledElement(RefPtr&lt;Element&gt;&amp;&amp; element)
</del><ins>+void ScrollLatchingState::setPreviousWheelScrolledElement(Element* element)
</ins><span class="cx"> {
</span><span class="cx">     m_previousWheelScrolledElement = element;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ScrollLatchingState::setScrollableContainer(PassRefPtr&lt;ContainerNode&gt; node)
</del><ins>+void ScrollLatchingState::setScrollableContainer(ContainerNode* container)
</ins><span class="cx"> {
</span><del>-    m_scrollableContainer = node;
</del><ins>+    m_scrollableContainer = container;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollLatchingStateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollLatchingState.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollLatchingState.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/scrolling/ScrollLatchingState.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -41,7 +41,7 @@
</span><span class="cx">     void clear();
</span><span class="cx"> 
</span><span class="cx">     Element* wheelEventElement() { return m_wheelEventElement.get(); }
</span><del>-    void setWheelEventElement(PassRefPtr&lt;Element&gt;);
</del><ins>+    void setWheelEventElement(Element*);
</ins><span class="cx">     Frame* frame() { return m_frame; }
</span><span class="cx">     void setFrame(Frame* frame) { m_frame = frame; }
</span><span class="cx"> 
</span><span class="lines">@@ -49,10 +49,10 @@
</span><span class="cx">     void setWidgetIsLatched(bool isOverWidget);
</span><span class="cx"> 
</span><span class="cx">     Element* previousWheelScrolledElement() { return m_previousWheelScrolledElement.get(); }
</span><del>-    void setPreviousWheelScrolledElement(RefPtr&lt;Element&gt;&amp;&amp;);
</del><ins>+    void setPreviousWheelScrolledElement(Element*);
</ins><span class="cx">     
</span><span class="cx">     ContainerNode* scrollableContainer() { return m_scrollableContainer.get(); }
</span><del>-    void setScrollableContainer(PassRefPtr&lt;ContainerNode&gt;);
</del><ins>+    void setScrollableContainer(ContainerNode*);
</ins><span class="cx">     bool startedGestureAtScrollLimit() const { return m_startedGestureAtScrollLimit; }
</span><span class="cx">     void setStartedGestureAtScrollLimit(bool startedAtLimit) { m_startedGestureAtScrollLimit = startedAtLimit; }
</span><span class="cx"> 
</span><span class="lines">@@ -61,10 +61,10 @@
</span><span class="cx">     RefPtr&lt;Element&gt; m_previousWheelScrolledElement;
</span><span class="cx">     RefPtr&lt;ContainerNode&gt; m_scrollableContainer;
</span><span class="cx"> 
</span><del>-    Frame* m_frame;
-    
-    bool m_widgetIsLatched;
-    bool m_startedGestureAtScrollLimit;
</del><ins>+    Frame* m_frame { nullptr };
+
+    bool m_widgetIsLatched { false };
+    bool m_startedGestureAtScrollLimit { false };
</ins><span class="cx"> };
</span><span class="cx">     
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollingStateNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollingStateNode.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollingStateNode.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/scrolling/ScrollingStateNode.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -72,7 +72,7 @@
</span><span class="cx">     m_scrollingStateTree.setHasChangedProperties();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;ScrollingStateNode&gt; ScrollingStateNode::cloneAndReset(ScrollingStateTree&amp; adoptiveTree)
</del><ins>+Ref&lt;ScrollingStateNode&gt; ScrollingStateNode::cloneAndReset(ScrollingStateTree&amp; adoptiveTree)
</ins><span class="cx"> {
</span><span class="cx">     auto clone = this-&gt;clone(adoptiveTree);
</span><span class="cx"> 
</span><span class="lines">@@ -80,7 +80,8 @@
</span><span class="cx">     resetChangedProperties();
</span><span class="cx"> 
</span><span class="cx">     cloneAndResetChildren(clone.get(), adoptiveTree);
</span><del>-    return WTFMove(clone);
</del><ins>+
+    return clone;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ScrollingStateNode::cloneAndResetChildren(ScrollingStateNode&amp; clone, ScrollingStateTree&amp; adoptiveTree)
</span><span class="lines">@@ -92,14 +93,13 @@
</span><span class="cx">         clone.appendChild(child-&gt;cloneAndReset(adoptiveTree));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ScrollingStateNode::appendChild(PassRefPtr&lt;ScrollingStateNode&gt; childNode)
</del><ins>+void ScrollingStateNode::appendChild(Ref&lt;ScrollingStateNode&gt;&amp;&amp; childNode)
</ins><span class="cx"> {
</span><span class="cx">     childNode-&gt;setParent(this);
</span><span class="cx"> 
</span><span class="cx">     if (!m_children)
</span><span class="cx">         m_children = std::make_unique&lt;Vector&lt;RefPtr&lt;ScrollingStateNode&gt;&gt;&gt;();
</span><del>-
-    m_children-&gt;append(childNode);
</del><ins>+    m_children-&gt;append(WTFMove(childNode));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ScrollingStateNode::setLayer(const LayerRepresentation&amp; layerRepresentation)
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollingStateNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollingStateNode.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollingStateNode.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/scrolling/ScrollingStateNode.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -206,7 +206,7 @@
</span><span class="cx">     bool isOverflowScrollingNode() const { return m_nodeType == OverflowScrollingNode; }
</span><span class="cx"> 
</span><span class="cx">     virtual Ref&lt;ScrollingStateNode&gt; clone(ScrollingStateTree&amp; adoptiveTree) = 0;
</span><del>-    PassRefPtr&lt;ScrollingStateNode&gt; cloneAndReset(ScrollingStateTree&amp; adoptiveTree);
</del><ins>+    Ref&lt;ScrollingStateNode&gt; cloneAndReset(ScrollingStateTree&amp; adoptiveTree);
</ins><span class="cx">     void cloneAndResetChildren(ScrollingStateNode&amp;, ScrollingStateTree&amp; adoptiveTree);
</span><span class="cx"> 
</span><span class="cx">     enum {
</span><span class="lines">@@ -238,7 +238,7 @@
</span><span class="cx"> 
</span><span class="cx">     Vector&lt;RefPtr&lt;ScrollingStateNode&gt;&gt;* children() const { return m_children.get(); }
</span><span class="cx"> 
</span><del>-    void appendChild(PassRefPtr&lt;ScrollingStateNode&gt;);
</del><ins>+    void appendChild(Ref&lt;ScrollingStateNode&gt;&amp;&amp;);
</ins><span class="cx"> 
</span><span class="cx">     String scrollingStateTreeAsText() const;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollingStateTreecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollingStateTree.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollingStateTree.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/scrolling/ScrollingStateTree.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -67,7 +67,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;ScrollingStateNode&gt; ScrollingStateTree::createNode(ScrollingNodeType nodeType, ScrollingNodeID nodeID)
</del><ins>+Ref&lt;ScrollingStateNode&gt; ScrollingStateTree::createNode(ScrollingNodeType nodeType, ScrollingNodeID nodeID)
</ins><span class="cx"> {
</span><span class="cx">     switch (nodeType) {
</span><span class="cx">     case FixedNode:
</span><span class="lines">@@ -80,7 +80,7 @@
</span><span class="cx">         return ScrollingStateOverflowScrollingNode::create(*this, nodeID);
</span><span class="cx">     }
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><del>-    return nullptr;
</del><ins>+    return ScrollingStateFixedNode::create(*this, nodeID);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool ScrollingStateTree::nodeTypeAndParentMatch(ScrollingStateNode&amp; node, ScrollingNodeType nodeType, ScrollingNodeID parentID) const
</span><span class="lines">@@ -129,13 +129,13 @@
</span><span class="cx">         if (nodeType == FrameScrollingNode &amp;&amp; parentID) {
</span><span class="cx">             if (auto orphanedNode = m_orphanedSubframeNodes.take(newNodeID)) {
</span><span class="cx">                 newNode = orphanedNode.get();
</span><del>-                parent-&gt;appendChild(WTFMove(orphanedNode));
</del><ins>+                parent-&gt;appendChild(orphanedNode.releaseNonNull());
</ins><span class="cx">             }
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         if (!newNode) {
</span><span class="cx">             auto stateNode = createNode(nodeType, newNodeID);
</span><del>-            newNode = stateNode.get();
</del><ins>+            newNode = stateNode.ptr();
</ins><span class="cx">             parent-&gt;appendChild(WTFMove(stateNode));
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -182,7 +182,7 @@
</span><span class="cx">     treeStateClone-&gt;setPreferredLayerRepresentation(preferredLayerRepresentation);
</span><span class="cx"> 
</span><span class="cx">     if (m_rootStateNode)
</span><del>-        treeStateClone-&gt;setRootStateNode(static_pointer_cast&lt;ScrollingStateFrameScrollingNode&gt;(m_rootStateNode-&gt;cloneAndReset(*treeStateClone)));
</del><ins>+        treeStateClone-&gt;setRootStateNode(static_reference_cast&lt;ScrollingStateFrameScrollingNode&gt;(m_rootStateNode-&gt;cloneAndReset(*treeStateClone)));
</ins><span class="cx"> 
</span><span class="cx">     // Copy the IDs of the nodes that have been removed since the last commit into the clone.
</span><span class="cx">     treeStateClone-&gt;m_nodesRemovedSinceLastCommit.swap(m_nodesRemovedSinceLastCommit);
</span><span class="lines">@@ -211,7 +211,8 @@
</span><span class="cx">     if (node == m_rootStateNode)
</span><span class="cx">         m_rootStateNode = nullptr;
</span><span class="cx">     else if (parent) {
</span><del>-        ASSERT(parent-&gt;children() &amp;&amp; parent-&gt;children()-&gt;find(node) != notFound);
</del><ins>+        ASSERT(parent-&gt;children());
+        ASSERT(parent-&gt;children()-&gt;find(node) != notFound);
</ins><span class="cx">         if (auto children = parent-&gt;children()) {
</span><span class="cx">             size_t index = children-&gt;find(node);
</span><span class="cx">             if (index != notFound)
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollingStateTreeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollingStateTree.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollingStateTree.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/scrolling/ScrollingStateTree.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -74,17 +74,14 @@
</span><span class="cx">     void setPreferredLayerRepresentation(LayerRepresentation::Type representation) { m_preferredLayerRepresentation = representation; }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    void setRootStateNode(PassRefPtr&lt;ScrollingStateFrameScrollingNode&gt; rootStateNode) { m_rootStateNode = rootStateNode; }
</del><ins>+    void setRootStateNode(Ref&lt;ScrollingStateFrameScrollingNode&gt;&amp;&amp; rootStateNode) { m_rootStateNode = WTFMove(rootStateNode); }
</ins><span class="cx">     void addNode(ScrollingStateNode*);
</span><span class="cx"> 
</span><del>-    PassRefPtr&lt;ScrollingStateNode&gt; createNode(ScrollingNodeType, ScrollingNodeID);
</del><ins>+    Ref&lt;ScrollingStateNode&gt; createNode(ScrollingNodeType, ScrollingNodeID);
</ins><span class="cx"> 
</span><span class="cx">     bool nodeTypeAndParentMatch(ScrollingStateNode&amp;, ScrollingNodeType, ScrollingNodeID parentID) const;
</span><span class="cx"> 
</span><del>-    enum class SubframeNodeRemoval {
-        Delete,
-        Orphan
-    };
</del><ins>+    enum class SubframeNodeRemoval { Delete, Orphan };
</ins><span class="cx">     void removeNodeAndAllDescendants(ScrollingStateNode*, SubframeNodeRemoval = SubframeNodeRemoval::Delete);
</span><span class="cx"> 
</span><span class="cx">     void recursiveNodeWillBeRemoved(ScrollingStateNode* currNode, SubframeNodeRemoval);
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollingTreecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollingTree.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollingTree.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/scrolling/ScrollingTree.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -179,7 +179,7 @@
</span><span class="cx">         if (parentIt != m_nodeMap.end()) {
</span><span class="cx">             ScrollingTreeNode* parent = parentIt-&gt;value;
</span><span class="cx">             node-&gt;setParent(parent);
</span><del>-            parent-&gt;appendChild(node);
</del><ins>+            parent-&gt;appendChild(*node);
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -189,7 +189,7 @@
</span><span class="cx">     if (auto nodeChildren = node-&gt;children()) {
</span><span class="cx">         for (auto&amp; childScrollingNode : *nodeChildren) {
</span><span class="cx">             childScrollingNode-&gt;setParent(nullptr);
</span><del>-            orphanNodes.add(childScrollingNode-&gt;scrollingNodeID(), childScrollingNode);
</del><ins>+            orphanNodes.add(childScrollingNode-&gt;scrollingNodeID(), childScrollingNode.get());
</ins><span class="cx">         }
</span><span class="cx">         nodeChildren-&gt;clear();
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollingTreeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollingTree.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollingTree.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/scrolling/ScrollingTree.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -74,7 +74,7 @@
</span><span class="cx"> 
</span><span class="cx">     void setMainFramePinState(bool pinnedToTheLeft, bool pinnedToTheRight, bool pinnedToTheTop, bool pinnedToTheBottom);
</span><span class="cx"> 
</span><del>-    virtual PassRefPtr&lt;ScrollingTreeNode&gt; createScrollingTreeNode(ScrollingNodeType, ScrollingNodeID) = 0;
</del><ins>+    virtual Ref&lt;ScrollingTreeNode&gt; createScrollingTreeNode(ScrollingNodeType, ScrollingNodeID) = 0;
</ins><span class="cx"> 
</span><span class="cx">     // Called after a scrolling tree node has handled a scroll and updated its layers.
</span><span class="cx">     // Updates FrameView/RenderLayer scrolling state and GraphicsLayers.
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollingTreeNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollingTreeNode.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollingTreeNode.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/scrolling/ScrollingTreeNode.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -45,22 +45,21 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ScrollingTreeNode::appendChild(PassRefPtr&lt;ScrollingTreeNode&gt; childNode)
</del><ins>+void ScrollingTreeNode::appendChild(Ref&lt;ScrollingTreeNode&gt;&amp;&amp; childNode)
</ins><span class="cx"> {
</span><span class="cx">     childNode-&gt;setParent(this);
</span><span class="cx"> 
</span><span class="cx">     if (!m_children)
</span><del>-        m_children = std::make_unique&lt;ScrollingTreeChildrenVector&gt;();
-
-    m_children-&gt;append(childNode);
</del><ins>+        m_children = std::make_unique&lt;Vector&lt;RefPtr&lt;ScrollingTreeNode&gt;&gt;&gt;();
+    m_children-&gt;append(WTFMove(childNode));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ScrollingTreeNode::removeChild(ScrollingTreeNode* node)
</del><ins>+void ScrollingTreeNode::removeChild(ScrollingTreeNode&amp; node)
</ins><span class="cx"> {
</span><span class="cx">     if (!m_children)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    size_t index = m_children-&gt;find(node);
</del><ins>+    size_t index = m_children-&gt;find(&amp;node);
</ins><span class="cx"> 
</span><span class="cx">     // The index will be notFound if the node to remove is a deeper-than-1-level descendant or
</span><span class="cx">     // if node is the root state node.
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollingTreeNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollingTreeNode.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollingTreeNode.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/scrolling/ScrollingTreeNode.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -60,12 +60,11 @@
</span><span class="cx">     ScrollingTreeNode* parent() const { return m_parent; }
</span><span class="cx">     void setParent(ScrollingTreeNode* parent) { m_parent = parent; }
</span><span class="cx"> 
</span><del>-    typedef Vector&lt;RefPtr&lt;ScrollingTreeNode&gt;&gt; ScrollingTreeChildrenVector;
-    ScrollingTreeChildrenVector* children() { return m_children.get(); }
-    
-    void appendChild(PassRefPtr&lt;ScrollingTreeNode&gt;);
-    void removeChild(ScrollingTreeNode*);
</del><ins>+    Vector&lt;RefPtr&lt;ScrollingTreeNode&gt;&gt;* children() { return m_children.get(); }
</ins><span class="cx"> 
</span><ins>+    void appendChild(Ref&lt;ScrollingTreeNode&gt;&amp;&amp;);
+    void removeChild(ScrollingTreeNode&amp;);
+
</ins><span class="cx">     WEBCORE_EXPORT void dump(TextStream&amp;, ScrollingStateTreeAsTextBehavior) const;
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><span class="lines">@@ -72,7 +71,7 @@
</span><span class="cx">     ScrollingTreeNode(ScrollingTree&amp;, ScrollingNodeType, ScrollingNodeID);
</span><span class="cx">     ScrollingTree&amp; scrollingTree() const { return m_scrollingTree; }
</span><span class="cx"> 
</span><del>-    std::unique_ptr&lt;ScrollingTreeChildrenVector&gt; m_children;
</del><ins>+    std::unique_ptr&lt;Vector&lt;RefPtr&lt;ScrollingTreeNode&gt;&gt;&gt; m_children;
</ins><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT virtual void dumpProperties(TextStream&amp;, ScrollingStateTreeAsTextBehavior) const;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingThreadedScrollingTreecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ThreadedScrollingTree.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ThreadedScrollingTree.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/scrolling/ThreadedScrollingTree.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -39,8 +39,8 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-ThreadedScrollingTree::ThreadedScrollingTree(AsyncScrollingCoordinator* scrollingCoordinator)
-    : m_scrollingCoordinator(scrollingCoordinator)
</del><ins>+ThreadedScrollingTree::ThreadedScrollingTree(AsyncScrollingCoordinator&amp; scrollingCoordinator)
+    : m_scrollingCoordinator(&amp;scrollingCoordinator)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingThreadedScrollingTreeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ThreadedScrollingTree.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ThreadedScrollingTree.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/scrolling/ThreadedScrollingTree.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2014-2015 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2014-2017 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx">     void invalidate() override;
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><del>-    explicit ThreadedScrollingTree(AsyncScrollingCoordinator*);
</del><ins>+    explicit ThreadedScrollingTree(AsyncScrollingCoordinator&amp;);
</ins><span class="cx"> 
</span><span class="cx">     void scrollingTreeNodeDidScroll(ScrollingNodeID, const FloatPoint&amp; scrollPosition, const std::optional&lt;FloatPoint&gt;&amp; layoutViewportOrigin, ScrollingLayerPositionAction = ScrollingLayerPositionAction::Sync) override;
</span><span class="cx">     void currentSnapPointIndicesDidChange(ScrollingNodeID, unsigned horizontal, unsigned vertical) override;
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingiosScrollingCoordinatorIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ios/ScrollingCoordinatorIOS.mm (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ios/ScrollingCoordinatorIOS.mm        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/scrolling/ios/ScrollingCoordinatorIOS.mm        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -52,7 +52,7 @@
</span><span class="cx">     : AsyncScrollingCoordinator(page)
</span><span class="cx">     , m_scrollingStateTreeCommitterTimer(*this, &amp;ScrollingCoordinatorIOS::commitTreeState)
</span><span class="cx"> {
</span><del>-    setScrollingTree(ScrollingTreeIOS::create(this));
</del><ins>+    setScrollingTree(ScrollingTreeIOS::create(*this));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> ScrollingCoordinatorIOS::~ScrollingCoordinatorIOS()
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingiosScrollingTreeIOScpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeIOS.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeIOS.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeIOS.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -40,13 +40,13 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-Ref&lt;ScrollingTreeIOS&gt; ScrollingTreeIOS::create(AsyncScrollingCoordinator* scrollingCoordinator)
</del><ins>+Ref&lt;ScrollingTreeIOS&gt; ScrollingTreeIOS::create(AsyncScrollingCoordinator&amp; scrollingCoordinator)
</ins><span class="cx"> {
</span><span class="cx">     return adoptRef(*new ScrollingTreeIOS(scrollingCoordinator));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ScrollingTreeIOS::ScrollingTreeIOS(AsyncScrollingCoordinator* scrollingCoordinator)
-    : m_scrollingCoordinator(scrollingCoordinator)
</del><ins>+ScrollingTreeIOS::ScrollingTreeIOS(AsyncScrollingCoordinator&amp; scrollingCoordinator)
+    : m_scrollingCoordinator(&amp;scrollingCoordinator)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;ScrollingTreeNode&gt; ScrollingTreeIOS::createScrollingTreeNode(ScrollingNodeType nodeType, ScrollingNodeID nodeID)
</del><ins>+Ref&lt;ScrollingTreeNode&gt; ScrollingTreeIOS::createScrollingTreeNode(ScrollingNodeType nodeType, ScrollingNodeID nodeID)
</ins><span class="cx"> {
</span><span class="cx">     switch (nodeType) {
</span><span class="cx">     case FrameScrollingNode:
</span><span class="lines">@@ -90,13 +90,14 @@
</span><span class="cx">         return ScrollingTreeFrameScrollingNodeIOS::create(*this, nodeID);
</span><span class="cx">     case OverflowScrollingNode:
</span><span class="cx">         ASSERT_NOT_REACHED();
</span><del>-        return nullptr;
</del><ins>+        break;
</ins><span class="cx">     case FixedNode:
</span><span class="cx">         return ScrollingTreeFixedNode::create(*this, nodeID);
</span><span class="cx">     case StickyNode:
</span><span class="cx">         return ScrollingTreeStickyNode::create(*this, nodeID);
</span><span class="cx">     }
</span><del>-    return nullptr;
</del><ins>+    ASSERT_NOT_REACHED();
+    return ScrollingTreeFixedNode::create(*this, nodeID);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> FloatRect ScrollingTreeIOS::fixedPositionRect()
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingiosScrollingTreeIOSh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeIOS.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeIOS.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/scrolling/ios/ScrollingTreeIOS.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -29,35 +29,31 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;ScrollingStateTree.h&quot;
</span><span class="cx"> #include &quot;ScrollingTree.h&quot;
</span><del>-#include &lt;wtf/PassRefPtr.h&gt;
-#include &lt;wtf/RefPtr.h&gt;
</del><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> class AsyncScrollingCoordinator;
</span><span class="cx"> 
</span><del>-class ScrollingTreeIOS : public ScrollingTree {
</del><ins>+class ScrollingTreeIOS final : public ScrollingTree {
</ins><span class="cx"> public:
</span><del>-    static Ref&lt;ScrollingTreeIOS&gt; create(AsyncScrollingCoordinator*);
</del><ins>+    static Ref&lt;ScrollingTreeIOS&gt; create(AsyncScrollingCoordinator&amp;);
</ins><span class="cx">     virtual ~ScrollingTreeIOS();
</span><span class="cx"> 
</span><del>-    // No wheel events on iOS
-    void handleWheelEvent(const PlatformWheelEvent&amp;) override { }
-    EventResult tryToHandleWheelEvent(const PlatformWheelEvent&amp;) override { return DidNotHandleEvent; }
-
-    void invalidate() override;
-
</del><span class="cx"> private:
</span><del>-    explicit ScrollingTreeIOS(AsyncScrollingCoordinator*);
-    bool isScrollingTreeIOS() const override { return true; }
</del><ins>+    explicit ScrollingTreeIOS(AsyncScrollingCoordinator&amp;);
</ins><span class="cx"> 
</span><del>-    PassRefPtr&lt;ScrollingTreeNode&gt; createScrollingTreeNode(ScrollingNodeType, ScrollingNodeID) override;
</del><ins>+    bool isScrollingTreeIOS() const final { return true; }
</ins><span class="cx"> 
</span><del>-    void scrollingTreeNodeDidScroll(ScrollingNodeID, const FloatPoint&amp; scrollPosition, const std::optional&lt;FloatPoint&gt;&amp; layoutViewportOrigin, ScrollingLayerPositionAction = ScrollingLayerPositionAction::Sync) override;
</del><ins>+    // No wheel events on iOS
+    void handleWheelEvent(const PlatformWheelEvent&amp;) final { }
+    EventResult tryToHandleWheelEvent(const PlatformWheelEvent&amp;) final { return DidNotHandleEvent; }
</ins><span class="cx"> 
</span><del>-    void currentSnapPointIndicesDidChange(WebCore::ScrollingNodeID, unsigned horizontal, unsigned vertical) override;
</del><ins>+    void invalidate() final;
</ins><span class="cx"> 
</span><del>-    FloatRect fixedPositionRect() override;
</del><ins>+    Ref&lt;ScrollingTreeNode&gt; createScrollingTreeNode(ScrollingNodeType, ScrollingNodeID) final;
+    void scrollingTreeNodeDidScroll(ScrollingNodeID, const FloatPoint&amp; scrollPosition, const std::optional&lt;FloatPoint&gt;&amp; layoutViewportOrigin, ScrollingLayerPositionAction = ScrollingLayerPositionAction::Sync) final;
+    void currentSnapPointIndicesDidChange(WebCore::ScrollingNodeID, unsigned horizontal, unsigned vertical) final;
+    FloatRect fixedPositionRect() final;
</ins><span class="cx"> 
</span><span class="cx">     RefPtr&lt;AsyncScrollingCoordinator&gt; m_scrollingCoordinator;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingmacScrollingCoordinatorMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.mm (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.mm        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.mm        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx">     : AsyncScrollingCoordinator(page)
</span><span class="cx">     , m_scrollingStateTreeCommitterTimer(*this, &amp;ScrollingCoordinatorMac::commitTreeState)
</span><span class="cx"> {
</span><del>-    setScrollingTree(ScrollingTreeMac::create(this));
</del><ins>+    setScrollingTree(ScrollingTreeMac::create(*this));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> ScrollingCoordinatorMac::~ScrollingCoordinatorMac()
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingmacScrollingTreeMaccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeMac.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeMac.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeMac.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -34,17 +34,17 @@
</span><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> 
</span><del>-Ref&lt;ScrollingTreeMac&gt; ScrollingTreeMac::create(AsyncScrollingCoordinator* scrollingCoordinator)
</del><ins>+Ref&lt;ScrollingTreeMac&gt; ScrollingTreeMac::create(AsyncScrollingCoordinator&amp; scrollingCoordinator)
</ins><span class="cx"> {
</span><span class="cx">     return adoptRef(*new ScrollingTreeMac(scrollingCoordinator));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-ScrollingTreeMac::ScrollingTreeMac(AsyncScrollingCoordinator* scrollingCoordinator)
</del><ins>+ScrollingTreeMac::ScrollingTreeMac(AsyncScrollingCoordinator&amp; scrollingCoordinator)
</ins><span class="cx">     : ThreadedScrollingTree(scrollingCoordinator)
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;ScrollingTreeNode&gt; ScrollingTreeMac::createScrollingTreeNode(ScrollingNodeType nodeType, ScrollingNodeID nodeID)
</del><ins>+Ref&lt;ScrollingTreeNode&gt; ScrollingTreeMac::createScrollingTreeNode(ScrollingNodeType nodeType, ScrollingNodeID nodeID)
</ins><span class="cx"> {
</span><span class="cx">     switch (nodeType) {
</span><span class="cx">     case FrameScrollingNode:
</span><span class="lines">@@ -51,13 +51,14 @@
</span><span class="cx">         return ScrollingTreeFrameScrollingNodeMac::create(*this, nodeID);
</span><span class="cx">     case OverflowScrollingNode:
</span><span class="cx">         ASSERT_NOT_REACHED();
</span><del>-        return nullptr;
</del><ins>+        break;
</ins><span class="cx">     case FixedNode:
</span><span class="cx">         return ScrollingTreeFixedNode::create(*this, nodeID);
</span><span class="cx">     case StickyNode:
</span><span class="cx">         return ScrollingTreeStickyNode::create(*this, nodeID);
</span><span class="cx">     }
</span><del>-    return nullptr;
</del><ins>+    ASSERT_NOT_REACHED();
+    return ScrollingTreeFixedNode::create(*this, nodeID);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(ASYNC_SCROLLING) &amp;&amp; PLATFORM(MAC)
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingmacScrollingTreeMach"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeMac.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeMac.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/scrolling/mac/ScrollingTreeMac.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -31,14 +31,14 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-class ScrollingTreeMac : public ThreadedScrollingTree {
</del><ins>+class ScrollingTreeMac final : public ThreadedScrollingTree {
</ins><span class="cx"> public:
</span><del>-    static Ref&lt;ScrollingTreeMac&gt; create(AsyncScrollingCoordinator*);
</del><ins>+    static Ref&lt;ScrollingTreeMac&gt; create(AsyncScrollingCoordinator&amp;);
</ins><span class="cx"> 
</span><del>-    PassRefPtr&lt;ScrollingTreeNode&gt; createScrollingTreeNode(ScrollingNodeType, ScrollingNodeID) override;
-    
</del><span class="cx"> private:
</span><del>-    explicit ScrollingTreeMac(AsyncScrollingCoordinator*);
</del><ins>+    explicit ScrollingTreeMac(AsyncScrollingCoordinator&amp;);
+
+    Ref&lt;ScrollingTreeNode&gt; createScrollingTreeNode(ScrollingNodeType, ScrollingNodeID) final;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorepagewinEventHandlerWincpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/win/EventHandlerWin.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/win/EventHandlerWin.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/page/win/EventHandlerWin.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -81,7 +81,7 @@
</span><span class="cx">     return downcast&lt;FrameView&gt;(widget).frame().eventHandler().handleWheelEvent(wheelEvent);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool EventHandler::tabsToAllFormControls(KeyboardEvent*) const
</del><ins>+bool EventHandler::tabsToAllFormControls(KeyboardEvent&amp;) const
</ins><span class="cx"> {
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="lines">@@ -92,10 +92,12 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(DRAG_SUPPORT)
</span><del>-PassRefPtr&lt;DataTransfer&gt; EventHandler::createDraggingDataTransfer() const
</del><ins>+
+Ref&lt;DataTransfer&gt; EventHandler::createDraggingDataTransfer() const
</ins><span class="cx"> {
</span><span class="cx">     return DataTransfer::createForDragAndDrop();
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> void EventHandler::focusDocumentView()
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformCursorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/Cursor.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/Cursor.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/platform/Cursor.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -54,24 +54,28 @@
</span><span class="cx"> class Image;
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(WIN)
</span><ins>+
</ins><span class="cx"> class SharedCursor : public RefCounted&lt;SharedCursor&gt; {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;SharedCursor&gt; create(HCURSOR nativeCursor) { return adoptRef(*new SharedCursor(nativeCursor)); }
-    ~SharedCursor();
</del><ins>+    static Ref&lt;SharedCursor&gt; create(HCURSOR);
+    WEBCORE_EXPORT ~SharedCursor();
</ins><span class="cx">     HCURSOR nativeCursor() const { return m_nativeCursor; }
</span><ins>+
</ins><span class="cx"> private:
</span><del>-    SharedCursor(HCURSOR nativeCursor) : m_nativeCursor(nativeCursor) { }
</del><ins>+    SharedCursor(HCURSOR);
</ins><span class="cx">     HCURSOR m_nativeCursor;
</span><span class="cx"> };
</span><del>-typedef RefPtr&lt;SharedCursor&gt; PlatformCursor;
</del><ins>+
+#endif
+
+#if PLATFORM(WIN)
+using PlatformCursor = RefPtr&lt;SharedCursor&gt;;
</ins><span class="cx"> #elif USE(APPKIT)
</span><del>-typedef NSCursor *PlatformCursor;
</del><ins>+using PlatformCursor = NSCursor *;
</ins><span class="cx"> #elif PLATFORM(GTK)
</span><del>-typedef GRefPtr&lt;GdkCursor&gt; PlatformCursor;
</del><ins>+using PlatformCursor = GRefPtr&lt;GdkCursor&gt;;
</ins><span class="cx"> #elif PLATFORM(EFL)
</span><del>-typedef const char* PlatformCursor;
-#else
-typedef void* PlatformCursor;
</del><ins>+using PlatformCursor = const char*;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> class Cursor {
</span><span class="lines">@@ -124,23 +128,13 @@
</span><span class="cx">         Custom
</span><span class="cx">     };
</span><span class="cx"> 
</span><del>-    WEBCORE_EXPORT static const Cursor&amp; fromType(Cursor::Type);
</del><ins>+    Cursor() = default;
</ins><span class="cx"> 
</span><del>-    Cursor()
</del><span class="cx"> #if !PLATFORM(IOS)
</span><del>-        // This is an invalid Cursor and should never actually get used.
-        : m_type(static_cast&lt;Type&gt;(-1))
-#if ENABLE(MOUSE_CURSOR_SCALE)
-        , m_imageScaleFactor(1)
-#endif
-        , m_platformCursor(0)
-#endif // !PLATFORM(IOS)
-    {
-    }
</del><span class="cx"> 
</span><del>-#if !PLATFORM(IOS)
</del><ins>+    WEBCORE_EXPORT static const Cursor&amp; fromType(Cursor::Type);
+
</ins><span class="cx">     WEBCORE_EXPORT Cursor(Image*, const IntPoint&amp; hotSpot);
</span><del>-    WEBCORE_EXPORT Cursor(const Cursor&amp;);
</del><span class="cx"> 
</span><span class="cx"> #if ENABLE(MOUSE_CURSOR_SCALE)
</span><span class="cx">     // Hot spot is in image pixels.
</span><span class="lines">@@ -147,38 +141,37 @@
</span><span class="cx">     WEBCORE_EXPORT Cursor(Image*, const IntPoint&amp; hotSpot, float imageScaleFactor);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    WEBCORE_EXPORT ~Cursor();
-    WEBCORE_EXPORT Cursor&amp; operator=(const Cursor&amp;);
</del><ins>+    explicit Cursor(Type);
</ins><span class="cx"> 
</span><del>-    explicit Cursor(Type);
-    Type type() const
-    {
-        ASSERT(m_type &gt;= 0 &amp;&amp; m_type &lt;= Custom);
-        return m_type;
-    }
</del><ins>+    Type type() const;
</ins><span class="cx">     Image* image() const { return m_image.get(); }
</span><span class="cx">     const IntPoint&amp; hotSpot() const { return m_hotSpot; }
</span><ins>+
</ins><span class="cx"> #if ENABLE(MOUSE_CURSOR_SCALE)
</span><span class="cx">     // Image scale in image pixels per logical (UI) pixel.
</span><span class="cx">     float imageScaleFactor() const { return m_imageScaleFactor; }
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx">     WEBCORE_EXPORT PlatformCursor platformCursor() const;
</span><span class="cx"> 
</span><del>- private:
</del><ins>+private:
</ins><span class="cx">     void ensurePlatformCursor() const;
</span><span class="cx"> 
</span><del>-    Type m_type;
</del><ins>+    // The type of -1 indicates an invalid Cursor that should never actually get used.
+    Type m_type { static_cast&lt;Type&gt;(-1) };
</ins><span class="cx">     RefPtr&lt;Image&gt; m_image;
</span><span class="cx">     IntPoint m_hotSpot;
</span><ins>+
</ins><span class="cx"> #if ENABLE(MOUSE_CURSOR_SCALE)
</span><del>-    float m_imageScaleFactor;
</del><ins>+    float m_imageScaleFactor { 1 };
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if !USE(APPKIT)
</span><del>-    mutable PlatformCursor m_platformCursor;
</del><ins>+    mutable PlatformCursor m_platformCursor { nullptr };
</ins><span class="cx"> #else
</span><span class="cx">     mutable RetainPtr&lt;NSCursor&gt; m_platformCursor;
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx"> #endif // !PLATFORM(IOS)
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="lines">@@ -228,4 +221,15 @@
</span><span class="cx"> const Cursor&amp; grabCursor();
</span><span class="cx"> const Cursor&amp; grabbingCursor();
</span><span class="cx"> 
</span><ins>+#if !PLATFORM(IOS)
+
+inline Cursor::Type Cursor::type() const
+{
+    ASSERT(m_type &gt;= 0);
+    ASSERT(m_type &lt;= Custom);
+    return m_type;
+}
+
+#endif
+
</ins><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformeflCursorEflcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/efl/CursorEfl.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/efl/CursorEfl.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/platform/efl/CursorEfl.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -40,34 +40,6 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-Cursor::Cursor(const Cursor&amp; other)
-    : m_type(other.m_type)
-    , m_image(other.m_image)
-    , m_hotSpot(other.m_hotSpot)
-#if ENABLE(MOUSE_CURSOR_SCALE)
-    , m_imageScaleFactor(other.m_imageScaleFactor)
-#endif
-    , m_platformCursor(other.m_platformCursor)
-{
-}
-
-Cursor::~Cursor()
-{
-}
-
-Cursor&amp; Cursor::operator=(const Cursor&amp; other)
-{
-    m_type = other.m_type;
-    m_image = other.m_image;
-    m_hotSpot = other.m_hotSpot;
-#if ENABLE(MOUSE_CURSOR_SCALE)
-    m_imageScaleFactor = other.m_imageScaleFactor;
-#endif
-    m_platformCursor = other.m_platformCursor;
-
-    return *this;
-}
-
</del><span class="cx"> static const char* cursorString(Cursor::Type type)
</span><span class="cx"> {
</span><span class="cx">     static const char* cursorStrings[] = {
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgtkCursorGtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/gtk/CursorGtk.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/gtk/CursorGtk.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/platform/gtk/CursorGtk.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -175,25 +175,4 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Cursor::Cursor(const Cursor&amp; other)
-    : m_type(other.m_type)
-    , m_image(other.m_image)
-    , m_hotSpot(other.m_hotSpot)
-    , m_platformCursor(other.m_platformCursor)
-{
</del><span class="cx"> }
</span><del>-
-Cursor&amp; Cursor::operator=(const Cursor&amp; other)
-{
-    m_type = other.m_type;
-    m_image = other.m_image;
-    m_hotSpot = other.m_hotSpot;
-    m_platformCursor = other.m_platformCursor;
-    return *this;
-}
-
-Cursor::~Cursor()
-{
-}
-
-}
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformmacCursorMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/CursorMac.mm (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/CursorMac.mm        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/platform/mac/CursorMac.mm        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -241,33 +241,6 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Cursor::Cursor(const Cursor&amp; other)
-    : m_type(other.m_type)
-    , m_image(other.m_image)
-    , m_hotSpot(other.m_hotSpot)
-#if ENABLE(MOUSE_CURSOR_SCALE)
-    , m_imageScaleFactor(other.m_imageScaleFactor)
-#endif
-    , m_platformCursor(other.m_platformCursor)
-{
-}
-
-Cursor&amp; Cursor::operator=(const Cursor&amp; other)
-{
-    m_type = other.m_type;
-    m_image = other.m_image;
-    m_hotSpot = other.m_hotSpot;
-#if ENABLE(MOUSE_CURSOR_SCALE)
-    m_imageScaleFactor = other.m_imageScaleFactor;
-#endif
-    m_platformCursor = other.m_platformCursor;
-    return *this;
-}
-
-Cursor::~Cursor()
-{
-}
-
</del><span class="cx"> NSCursor *Cursor::platformCursor() const
</span><span class="cx"> {
</span><span class="cx">     ensurePlatformCursor();
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformwinCursorWincpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/win/CursorWin.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/win/CursorWin.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/platform/win/CursorWin.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -40,6 +40,21 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><ins>+SharedCursor::SharedCursor(HCURSOR nativeCursor)
+    : m_nativeCursor(nativeCursor)
+{
+}
+
+Ref&lt;SharedCursor&gt; SharedCursor::create(HCURSOR nativeCursor)
+{
+    return adoptRef(*new SharedCursor(nativeCursor));
+}
+
+SharedCursor::~SharedCursor()
+{
+    DestroyIcon(m_nativeCursor);
+}
+
</ins><span class="cx"> static Ref&lt;SharedCursor&gt; createSharedCursor(Image* img, const IntPoint&amp; hotSpot)
</span><span class="cx"> {
</span><span class="cx">     IntPoint effectiveHotSpot = determineHotSpot(img, hotSpot);
</span><span class="lines">@@ -253,36 +268,4 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-SharedCursor::~SharedCursor()
-{
-    DestroyIcon(m_nativeCursor);
-}
-
-Cursor::Cursor(const Cursor&amp; other)
-    : m_type(other.m_type)
-    , m_image(other.m_image)
-    , m_hotSpot(other.m_hotSpot)
-#if ENABLE(MOUSE_CURSOR_SCALE)
-    , m_imageScaleFactor(other.m_imageScaleFactor)
-#endif
-    , m_platformCursor(other.m_platformCursor)
-{
-}
-
-Cursor&amp; Cursor::operator=(const Cursor&amp; other)
-{
-    m_type = other.m_type;
-    m_image = other.m_image;
-    m_hotSpot = other.m_hotSpot;
-#if ENABLE(MOUSE_CURSOR_SCALE)
-    m_imageScaleFactor = other.m_imageScaleFactor;
-#endif
-    m_platformCursor = other.m_platformCursor;
-    return *this;
-}
-
-Cursor::~Cursor()
-{
-}
-
</del><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderEmbeddedObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/rendering/RenderEmbeddedObject.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -616,7 +616,7 @@
</span><span class="cx">             setUnavailablePluginIndicatorIsPressed(false);
</span><span class="cx">         }
</span><span class="cx">         if (m_mouseDownWasInUnavailablePluginIndicator &amp;&amp; isInUnavailablePluginIndicator(mouseEvent)) {
</span><del>-            page().chrome().client().unavailablePluginButtonClicked(&amp;element, m_pluginUnavailabilityReason);
</del><ins>+            page().chrome().client().unavailablePluginButtonClicked(element, m_pluginUnavailabilityReason);
</ins><span class="cx">         }
</span><span class="cx">         m_mouseDownWasInUnavailablePluginIndicator = false;
</span><span class="cx">         event-&gt;setDefaultHandled();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayerBackingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -107,7 +107,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (layer.isRootLayer()) {
</span><span class="cx">         m_isMainFrameRenderViewLayer = renderer().frame().isMainFrame();
</span><del>-        m_usingTiledCacheLayer = renderer().page().chrome().client().shouldUseTiledBackingForFrameView(renderer().frame().view());
</del><ins>+        m_usingTiledCacheLayer = renderer().page().chrome().client().shouldUseTiledBackingForFrameView(renderer().view().frameView());
</ins><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     createPrimaryGraphicsLayer();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayerCompositorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -3103,7 +3103,7 @@
</span><span class="cx">     if (ScrollingCoordinator* scrollingCoordinator = this-&gt;scrollingCoordinator())
</span><span class="cx">         scrollingCoordinator-&gt;frameViewRootLayerDidChange(m_renderView.frameView());
</span><span class="cx"> 
</span><del>-    page().chrome().client().didAddHeaderLayer(m_layerForHeader.get());
</del><ins>+    page().chrome().client().didAddHeaderLayer(*m_layerForHeader);
</ins><span class="cx"> 
</span><span class="cx">     return m_layerForHeader.get();
</span><span class="cx"> }
</span><span class="lines">@@ -3141,7 +3141,7 @@
</span><span class="cx">     if (ScrollingCoordinator* scrollingCoordinator = this-&gt;scrollingCoordinator())
</span><span class="cx">         scrollingCoordinator-&gt;frameViewRootLayerDidChange(m_renderView.frameView());
</span><span class="cx"> 
</span><del>-    page().chrome().client().didAddFooterLayer(m_layerForFooter.get());
</del><ins>+    page().chrome().client().didAddFooterLayer(*m_layerForFooter);
</ins><span class="cx"> 
</span><span class="cx">     return m_layerForFooter.get();
</span><span class="cx"> }
</span><span class="lines">@@ -3463,11 +3463,11 @@
</span><span class="cx">             break;
</span><span class="cx">         case RootLayerAttachedViaChromeClient: {
</span><span class="cx">             Frame&amp; frame = m_renderView.frameView().frame();
</span><del>-            page().chrome().client().attachRootGraphicsLayer(&amp;frame, rootGraphicsLayer());
</del><ins>+            page().chrome().client().attachRootGraphicsLayer(frame, rootGraphicsLayer());
</ins><span class="cx">             if (frame.isMainFrame()) {
</span><span class="cx">                 PageOverlayController&amp; pageOverlayController = frame.mainFrame().pageOverlayController();
</span><span class="cx">                 pageOverlayController.willAttachRootLayer();
</span><del>-                page().chrome().client().attachViewOverlayGraphicsLayer(&amp;frame, &amp;pageOverlayController.viewOverlayRootLayer());
</del><ins>+                page().chrome().client().attachViewOverlayGraphicsLayer(frame, &amp;pageOverlayController.viewOverlayRootLayer());
</ins><span class="cx">             }
</span><span class="cx">             break;
</span><span class="cx">         }
</span><span class="lines">@@ -3508,9 +3508,9 @@
</span><span class="cx">     }
</span><span class="cx">     case RootLayerAttachedViaChromeClient: {
</span><span class="cx">         Frame&amp; frame = m_renderView.frameView().frame();
</span><del>-        page().chrome().client().attachRootGraphicsLayer(&amp;frame, 0);
</del><ins>+        page().chrome().client().attachRootGraphicsLayer(frame, nullptr);
</ins><span class="cx">         if (frame.isMainFrame())
</span><del>-            page().chrome().client().attachViewOverlayGraphicsLayer(&amp;frame, 0);
</del><ins>+            page().chrome().client().attachViewOverlayGraphicsLayer(frame, nullptr);
</ins><span class="cx">     }
</span><span class="cx">     break;
</span><span class="cx">     case RootLayerUnattached:
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderMenuListcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderMenuList.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderMenuList.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/rendering/RenderMenuList.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -371,7 +371,7 @@
</span><span class="cx">     // inside the showPopup call and it would fail.
</span><span class="cx">     createInnerBlock();
</span><span class="cx">     if (!m_popup)
</span><del>-        m_popup = document().page()-&gt;chrome().createPopupMenu(this);
</del><ins>+        m_popup = document().page()-&gt;chrome().createPopupMenu(*this);
</ins><span class="cx">     m_popupIsVisible = true;
</span><span class="cx"> 
</span><span class="cx">     // Compute the top left taking transforms into account, but use
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderSearchFieldcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderSearchField.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderSearchField.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/rendering/RenderSearchField.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -97,7 +97,7 @@
</span><span class="cx"> 
</span><span class="cx">     const AtomicString&amp; name = autosaveName();
</span><span class="cx">     if (!m_searchPopup)
</span><del>-        m_searchPopup = page().chrome().createSearchPopupMenu(this);
</del><ins>+        m_searchPopup = page().chrome().createSearchPopupMenu(*this);
</ins><span class="cx"> 
</span><span class="cx">     m_searchPopup-&gt;saveRecentSearches(name, m_recentSearches);
</span><span class="cx"> }
</span><span class="lines">@@ -108,7 +108,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     if (!m_searchPopup)
</span><del>-        m_searchPopup = page().chrome().createSearchPopupMenu(this);
</del><ins>+        m_searchPopup = page().chrome().createSearchPopupMenu(*this);
</ins><span class="cx"> 
</span><span class="cx">     if (!m_searchPopup-&gt;enabled())
</span><span class="cx">         return;
</span><span class="lines">@@ -201,7 +201,7 @@
</span><span class="cx">             const AtomicString&amp; name = autosaveName();
</span><span class="cx">             if (!name.isEmpty()) {
</span><span class="cx">                 if (!m_searchPopup)
</span><del>-                    m_searchPopup = page().chrome().createSearchPopupMenu(this);
</del><ins>+                    m_searchPopup = page().chrome().createSearchPopupMenu(*this);
</ins><span class="cx">                 m_searchPopup-&gt;saveRecentSearches(name, m_recentSearches);
</span><span class="cx">             }
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGAElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGAElement.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGAElement.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/svg/SVGAElement.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -197,7 +197,7 @@
</span><span class="cx">         return SVGElement::isKeyboardFocusable(event);
</span><span class="cx"> 
</span><span class="cx">     if (isLink())
</span><del>-        return document().frame()-&gt;eventHandler().tabsToLinks(&amp;event);
</del><ins>+        return document().frame()-&gt;eventHandler().tabsToLinks(event);
</ins><span class="cx"> 
</span><span class="cx">     return SVGElement::isKeyboardFocusable(event);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoretestingMockPageOverlayClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/MockPageOverlayClient.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/MockPageOverlayClient.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebCore/testing/MockPageOverlayClient.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -51,7 +51,7 @@
</span><span class="cx"> Ref&lt;MockPageOverlay&gt; MockPageOverlayClient::installOverlay(MainFrame&amp; mainFrame, PageOverlay::OverlayType overlayType)
</span><span class="cx"> {
</span><span class="cx">     auto overlay = PageOverlay::create(*this, overlayType);
</span><del>-    mainFrame.pageOverlayController().installPageOverlay(overlay.ptr(), PageOverlay::FadeMode::DoNotFade);
</del><ins>+    mainFrame.pageOverlayController().installPageOverlay(overlay, PageOverlay::FadeMode::DoNotFade);
</ins><span class="cx"> 
</span><span class="cx">     auto mockOverlay = MockPageOverlay::create(overlay.ptr());
</span><span class="cx">     m_overlays.add(mockOverlay.ptr());
</span><span class="lines">@@ -65,7 +65,7 @@
</span><span class="cx">         RefPtr&lt;MockPageOverlay&gt; mockOverlay = m_overlays.takeAny();
</span><span class="cx">         PageOverlayController* overlayController = mockOverlay-&gt;overlay()-&gt;controller();
</span><span class="cx">         ASSERT(overlayController);
</span><del>-        overlayController-&gt;uninstallPageOverlay(mockOverlay-&gt;overlay(), PageOverlay::FadeMode::DoNotFade);
</del><ins>+        overlayController-&gt;uninstallPageOverlay(*mockOverlay-&gt;overlay(), PageOverlay::FadeMode::DoNotFade);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKitiosChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ios/ChangeLog (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ios/ChangeLog        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit/ios/ChangeLog        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -1,3 +1,25 @@
</span><ins>+2017-01-21  Darin Adler  &lt;darin@apple.com&gt;
+
+        Remove PassRefPtr from &quot;page&quot; directory of WebCore, also deploy references
+        https://bugs.webkit.org/show_bug.cgi?id=167224
+
+        Reviewed by Chris Dumez.
+
+        * WebCoreSupport/WebChromeClientIOS.h: Update for changes to ChromeClient.
+        * WebCoreSupport/WebChromeClientIOS.mm:
+        (WebChromeClientIOS::runJavaScriptAlert): Ditto.
+        (WebChromeClientIOS::runJavaScriptConfirm): Ditto.
+        (WebChromeClientIOS::runJavaScriptPrompt): Ditto.
+        (WebChromeClientIOS::setNeedsScrollNotifications): Ditto.
+        (WebChromeClientIOS::observedContentChange): Ditto.
+        (WebChromeClientIOS::clearContentChangeObservers): Ditto.
+        (WebChromeClientIOS::notifyRevealedSelectionByScrollingFrame): Ditto.
+        (WebChromeClientIOS::elementDidFocus): Ditto.
+        (WebChromeClientIOS::elementDidBlur): Ditto.
+        (WebChromeClientIOS::createPopupMenu): Ditto.
+        (WebChromeClientIOS::createSearchPopupMenu): Ditto.
+        (WebChromeClientIOS::attachRootGraphicsLayer): Ditto.
+
</ins><span class="cx"> 2017-01-21  Simon Fraser  &lt;simon.fraser@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Remove the unused -[WebFixedPositionContent minimumOffsetFromFixedPositionLayersToAnchorEdge:ofRect:inLayer:]
</span></span></pre></div>
<a id="trunkSourceWebKitiosWebCoreSupportWebChromeClientIOSh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ios/WebCoreSupport/WebChromeClientIOS.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ios/WebCoreSupport/WebChromeClientIOS.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit/ios/WebCoreSupport/WebChromeClientIOS.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -42,9 +42,9 @@
</span><span class="cx">     void focus() final;
</span><span class="cx">     void takeFocus(WebCore::FocusDirection) final { }
</span><span class="cx"> 
</span><del>-    void runJavaScriptAlert(WebCore::Frame*, const WTF::String&amp;) final;
-    bool runJavaScriptConfirm(WebCore::Frame*, const WTF::String&amp;) final;
-    bool runJavaScriptPrompt(WebCore::Frame*, const WTF::String&amp; message, const WTF::String&amp; defaultValue, WTF::String&amp; result) final;
</del><ins>+    void runJavaScriptAlert(WebCore::Frame&amp;, const WTF::String&amp;) final;
+    bool runJavaScriptConfirm(WebCore::Frame&amp;, const WTF::String&amp;) final;
+    bool runJavaScriptPrompt(WebCore::Frame&amp;, const WTF::String&amp; message, const WTF::String&amp; defaultValue, WTF::String&amp; result) final;
</ins><span class="cx"> 
</span><span class="cx">     void runOpenPanel(WebCore::Frame&amp;, WebCore::FileChooser&amp;) final;
</span><span class="cx"> 
</span><span class="lines">@@ -53,13 +53,13 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     void didReceiveMobileDocType(bool) final;
</span><del>-    void setNeedsScrollNotifications(WebCore::Frame*, bool) final;
-    void observedContentChange(WebCore::Frame*) final;
-    void clearContentChangeObservers(WebCore::Frame*) final;
</del><ins>+    void setNeedsScrollNotifications(WebCore::Frame&amp;, bool) final;
+    void observedContentChange(WebCore::Frame&amp;) final;
+    void clearContentChangeObservers(WebCore::Frame&amp;) final;
</ins><span class="cx">     WebCore::FloatSize screenSize() const final;
</span><span class="cx">     WebCore::FloatSize availableScreenSize() const final;
</span><span class="cx">     void dispatchViewportPropertiesDidChange(const WebCore::ViewportArguments&amp;) const final;
</span><del>-    void notifyRevealedSelectionByScrollingFrame(WebCore::Frame*) final;
</del><ins>+    void notifyRevealedSelectionByScrollingFrame(WebCore::Frame&amp;) final;
</ins><span class="cx">     bool isStopping() final;
</span><span class="cx">     void didLayout(LayoutType) final;
</span><span class="cx">     void didStartOverflowScroll() final;
</span><span class="lines">@@ -67,12 +67,12 @@
</span><span class="cx"> 
</span><span class="cx">     void suppressFormNotifications() final;
</span><span class="cx">     void restoreFormNotifications() final;
</span><del>-    
-    void elementDidFocus(const WebCore::Node*) final;
-    void elementDidBlur(const WebCore::Node*) final;
</del><span class="cx"> 
</span><del>-    void attachRootGraphicsLayer(WebCore::Frame*, WebCore::GraphicsLayer*) final;
</del><ins>+    void elementDidFocus(WebCore::Element&amp;) final;
+    void elementDidBlur(WebCore::Element&amp;) final;
</ins><span class="cx"> 
</span><ins>+    void attachRootGraphicsLayer(WebCore::Frame&amp;, WebCore::GraphicsLayer*) final;
+
</ins><span class="cx">     void didFlushCompositingLayers() final;
</span><span class="cx"> 
</span><span class="cx">     void updateViewportConstrainedLayers(HashMap&lt;PlatformLayer*, std::unique_ptr&lt;WebCore::ViewportConstraints&gt;&gt;&amp;, HashMap&lt;PlatformLayer*, PlatformLayer*&gt;&amp;) final;
</span><span class="lines">@@ -83,8 +83,8 @@
</span><span class="cx"> 
</span><span class="cx">     bool selectItemWritingDirectionIsNatural() final;
</span><span class="cx">     bool selectItemAlignmentFollowsMenuWritingDirection() final;
</span><del>-    RefPtr&lt;WebCore::PopupMenu&gt; createPopupMenu(WebCore::PopupMenuClient*) const final;
-    RefPtr&lt;WebCore::SearchPopupMenu&gt; createSearchPopupMenu(WebCore::PopupMenuClient*) const final;
</del><ins>+    RefPtr&lt;WebCore::PopupMenu&gt; createPopupMenu(WebCore::PopupMenuClient&amp;) const final;
+    RefPtr&lt;WebCore::SearchPopupMenu&gt; createSearchPopupMenu(WebCore::PopupMenuClient&amp;) const final;
</ins><span class="cx"> 
</span><span class="cx">     void webAppOrientationsUpdated() final;
</span><span class="cx">     void focusedElementChanged(WebCore::Element*) final;
</span></span></pre></div>
<a id="trunkSourceWebKitiosWebCoreSupportWebChromeClientIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ios/WebCoreSupport/WebChromeClientIOS.mm (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ios/WebCoreSupport/WebChromeClientIOS.mm        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit/ios/WebCoreSupport/WebChromeClientIOS.mm        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -103,25 +103,25 @@
</span><span class="cx">     [[webView() _UIDelegateForwarder] webViewFocus:webView()];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClientIOS::runJavaScriptAlert(Frame* frame, const WTF::String&amp; message)
</del><ins>+void WebChromeClientIOS::runJavaScriptAlert(Frame&amp; frame, const WTF::String&amp; message)
</ins><span class="cx"> {
</span><span class="cx">     WebThreadLockPushModal();
</span><del>-    [[webView() _UIDelegateForwarder] webView:webView() runJavaScriptAlertPanelWithMessage:message initiatedByFrame:kit(frame)];
</del><ins>+    [[webView() _UIDelegateForwarder] webView:webView() runJavaScriptAlertPanelWithMessage:message initiatedByFrame:kit(&amp;frame)];
</ins><span class="cx">     WebThreadLockPopModal();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool WebChromeClientIOS::runJavaScriptConfirm(Frame* frame, const WTF::String&amp; message)
</del><ins>+bool WebChromeClientIOS::runJavaScriptConfirm(Frame&amp; frame, const WTF::String&amp; message)
</ins><span class="cx"> {
</span><span class="cx">     WebThreadLockPushModal();
</span><del>-    bool result = [[webView() _UIDelegateForwarder] webView:webView() runJavaScriptConfirmPanelWithMessage:message initiatedByFrame:kit(frame)];
</del><ins>+    bool result = [[webView() _UIDelegateForwarder] webView:webView() runJavaScriptConfirmPanelWithMessage:message initiatedByFrame:kit(&amp;frame)];
</ins><span class="cx">     WebThreadLockPopModal();
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool WebChromeClientIOS::runJavaScriptPrompt(Frame* frame, const WTF::String&amp; prompt, const WTF::String&amp; defaultText, WTF::String&amp; result)
</del><ins>+bool WebChromeClientIOS::runJavaScriptPrompt(Frame&amp; frame, const WTF::String&amp; prompt, const WTF::String&amp; defaultText, WTF::String&amp; result)
</ins><span class="cx"> {
</span><span class="cx">     WebThreadLockPushModal();
</span><del>-    result = [[webView() _UIDelegateForwarder] webView:webView() runJavaScriptTextInputPanelWithPrompt:prompt defaultText:defaultText initiatedByFrame:kit(frame)];
</del><ins>+    result = [[webView() _UIDelegateForwarder] webView:webView() runJavaScriptTextInputPanelWithPrompt:prompt defaultText:defaultText initiatedByFrame:kit(&amp;frame)];
</ins><span class="cx">     WebThreadLockPopModal();
</span><span class="cx">     return !result.isNull();
</span><span class="cx"> }
</span><span class="lines">@@ -171,26 +171,26 @@
</span><span class="cx">         [[webView() _UIKitDelegateForwarder] webViewDidReceiveMobileDocType:webView()];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClientIOS::setNeedsScrollNotifications(WebCore::Frame* frame, bool flag)
</del><ins>+void WebChromeClientIOS::setNeedsScrollNotifications(WebCore::Frame&amp; frame, bool flag)
</ins><span class="cx"> {
</span><del>-    [[webView() _UIKitDelegateForwarder] webView:webView() needsScrollNotifications:[NSNumber numberWithBool:flag] forFrame:kit(frame)];
</del><ins>+    [[webView() _UIKitDelegateForwarder] webView:webView() needsScrollNotifications:[NSNumber numberWithBool:flag] forFrame:kit(&amp;frame)];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClientIOS::observedContentChange(WebCore::Frame* frame)
</del><ins>+void WebChromeClientIOS::observedContentChange(WebCore::Frame&amp; frame)
</ins><span class="cx"> {
</span><del>-    [[webView() _UIKitDelegateForwarder] webView:webView() didObserveDeferredContentChange:WKObservedContentChange() forFrame:kit(frame)];
</del><ins>+    [[webView() _UIKitDelegateForwarder] webView:webView() didObserveDeferredContentChange:WKObservedContentChange() forFrame:kit(&amp;frame)];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClientIOS::clearContentChangeObservers(WebCore::Frame* frame)
</del><ins>+void WebChromeClientIOS::clearContentChangeObservers(WebCore::Frame&amp; frame)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(WebThreadCountOfObservedContentModifiers() &gt; 0);
</span><span class="cx">     if (WebThreadCountOfObservedContentModifiers() &gt; 0) {
</span><span class="cx">         WebThreadClearObservedContentModifiers();
</span><span class="cx">         observedContentChange(frame);
</span><del>-    }        
</del><ins>+    }
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-static inline NSDictionary* dictionaryForViewportArguments(const WebCore::ViewportArguments&amp; arguments)
</del><ins>+static inline NSDictionary *dictionaryForViewportArguments(const WebCore::ViewportArguments&amp; arguments)
</ins><span class="cx"> {
</span><span class="cx">     return @{ @&quot;initial-scale&quot;:@(arguments.zoom),
</span><span class="cx">               @&quot;minimum-scale&quot;:@(arguments.minZoom),
</span><span class="lines">@@ -218,9 +218,9 @@
</span><span class="cx">     [[webView() _UIKitDelegateForwarder] webView:webView() didReceiveViewportArguments:dictionaryForViewportArguments(arguments)];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClientIOS::notifyRevealedSelectionByScrollingFrame(WebCore::Frame* frame)
</del><ins>+void WebChromeClientIOS::notifyRevealedSelectionByScrollingFrame(WebCore::Frame&amp; frame)
</ins><span class="cx"> {
</span><del>-    [[webView() _UIKitDelegateForwarder] revealedSelectionByScrollingWebFrame:kit(frame)];
</del><ins>+    [[webView() _UIKitDelegateForwarder] revealedSelectionByScrollingWebFrame:kit(&amp;frame)];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool WebChromeClientIOS::isStopping()
</span><span class="lines">@@ -256,16 +256,16 @@
</span><span class="cx">         m_formNotificationSuppressions = 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClientIOS::elementDidFocus(const WebCore::Node* node)
</del><ins>+void WebChromeClientIOS::elementDidFocus(WebCore::Element&amp; element)
</ins><span class="cx"> {
</span><span class="cx">     if (m_formNotificationSuppressions &lt;= 0)
</span><del>-        [[webView() _UIKitDelegateForwarder] webView:webView() elementDidFocusNode:kit(const_cast&lt;WebCore::Node*&gt;(node))];
</del><ins>+        [[webView() _UIKitDelegateForwarder] webView:webView() elementDidFocusNode:kit(&amp;element)];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClientIOS::elementDidBlur(const WebCore::Node* node)
</del><ins>+void WebChromeClientIOS::elementDidBlur(WebCore::Element&amp; element)
</ins><span class="cx"> {
</span><span class="cx">     if (m_formNotificationSuppressions &lt;= 0)
</span><del>-        [[webView() _UIKitDelegateForwarder] webView:webView() elementDidBlurNode:kit(const_cast&lt;WebCore::Node*&gt;(node))];
</del><ins>+        [[webView() _UIKitDelegateForwarder] webView:webView() elementDidBlurNode:kit(&amp;element)];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool WebChromeClientIOS::selectItemWritingDirectionIsNatural()
</span><span class="lines">@@ -278,17 +278,17 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;WebCore::PopupMenu&gt; WebChromeClientIOS::createPopupMenu(WebCore::PopupMenuClient* client) const
</del><ins>+RefPtr&lt;WebCore::PopupMenu&gt; WebChromeClientIOS::createPopupMenu(WebCore::PopupMenuClient&amp; client) const
</ins><span class="cx"> {
</span><del>-    return adoptRef(new PopupMenuIOS(client));
</del><ins>+    return adoptRef(new PopupMenuIOS(&amp;client));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;WebCore::SearchPopupMenu&gt; WebChromeClientIOS::createSearchPopupMenu(WebCore::PopupMenuClient* client) const
</del><ins>+RefPtr&lt;WebCore::SearchPopupMenu&gt; WebChromeClientIOS::createSearchPopupMenu(WebCore::PopupMenuClient&amp; client) const
</ins><span class="cx"> {
</span><del>-    return adoptRef(new SearchPopupMenuIOS(client));
</del><ins>+    return adoptRef(new SearchPopupMenuIOS(&amp;client));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClientIOS::attachRootGraphicsLayer(Frame*, GraphicsLayer* graphicsLayer)
</del><ins>+void WebChromeClientIOS::attachRootGraphicsLayer(Frame&amp;, GraphicsLayer* graphicsLayer)
</ins><span class="cx"> {
</span><span class="cx">     // FIXME: for non-root frames we rely on RenderView positioning the root layer,
</span><span class="cx">     // which is a hack. &lt;rdar://problem/5906146&gt;
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit/mac/ChangeLog        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -1,3 +1,41 @@
</span><ins>+2017-01-20  Darin Adler  &lt;darin@apple.com&gt;
+
+        Remove PassRefPtr from &quot;page&quot; directory of WebCore, also deploy references
+        https://bugs.webkit.org/show_bug.cgi?id=167224
+
+        Reviewed by Chris Dumez.
+
+        * WebCoreSupport/WebApplicationCacheQuotaManager.mm:
+        (-[WebApplicationCacheQuotaManager quota]): Pass reference.
+
+        * WebCoreSupport/WebChromeClient.h: Updated for changes to ChromeClient.
+        * WebCoreSupport/WebChromeClient.mm:
+        (WebChromeClient::focusedElementChanged): Ditto.
+        (WebChromeClient::createWindow): Ditto.
+        (WebChromeClient::runBeforeUnloadConfirmPanel): Ditto.
+        (WebChromeClient::runJavaScriptAlert): Ditto.
+        (WebChromeClient::runJavaScriptConfirm): Ditto.
+        (WebChromeClient::runJavaScriptPrompt): Ditto.
+        (WebChromeClient::contentsSizeChanged): Ditto.
+        (WebChromeClient::unavailablePluginButtonClicked): Ditto.
+        (WebChromeClient::print): Ditto.
+        (WebChromeClient::exceededDatabaseQuota): Ditto.
+        (WebChromeClient::reachedApplicationCacheOriginQuota): Ditto.
+        (WebChromeClient::createColorChooser): Ditto.
+        (WebChromeClient::elementDidFocus): Ditto.
+        (WebChromeClient::elementDidBlur): Ditto.
+        (WebChromeClient::createPopupMenu): Ditto.
+        (WebChromeClient::createSearchPopupMenu): Ditto.
+        (WebChromeClient::attachRootGraphicsLayer): Ditto.
+        (WebChromeClient::attachViewOverlayGraphicsLayer): Ditto.
+        (WebChromeClient::supportsFullScreenForElement): Ditto.
+        (WebChromeClient::enterFullScreenForElement): Ditto.
+        (WebChromeClient::exitFullScreenForElement): Ditto.
+
+        * WebView/WebFrame.mm:
+        (+[WebFrame _createFrameWithPage:frameName:frameView:ownerElement:]):
+        Updated for change to the appendChild function.
+
</ins><span class="cx"> 2017-01-21  Simon Fraser  &lt;simon.fraser@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Remove -[WebFrame sendOrientationChangeEvent:] which is unused
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebApplicationCacheQuotaManagermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebApplicationCacheQuotaManager.mm (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebApplicationCacheQuotaManager.mm        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebApplicationCacheQuotaManager.mm        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -59,7 +59,9 @@
</span><span class="cx"> - (unsigned long long)quota
</span><span class="cx"> {
</span><span class="cx">     long long quota;
</span><del>-    if (webApplicationCacheStorage().calculateQuotaForOrigin([_origin _core], quota))
</del><ins>+    if (!_origin)
+        return 0;
+    if (webApplicationCacheStorage().calculateQuotaForOrigin(*[_origin _core], quota))
</ins><span class="cx">         return quota;
</span><span class="cx">     return 0;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebChromeClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebChromeClient.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebChromeClient.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebChromeClient.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -59,7 +59,7 @@
</span><span class="cx">     void focusedElementChanged(WebCore::Element*) override;
</span><span class="cx">     void focusedFrameChanged(WebCore::Frame*) final;
</span><span class="cx"> 
</span><del>-    WebCore::Page* createWindow(WebCore::Frame*, const WebCore::FrameLoadRequest&amp;, const WebCore::WindowFeatures&amp;, const WebCore::NavigationAction&amp;) final;
</del><ins>+    WebCore::Page* createWindow(WebCore::Frame&amp;, const WebCore::FrameLoadRequest&amp;, const WebCore::WindowFeatures&amp;, const WebCore::NavigationAction&amp;) final;
</ins><span class="cx">     void show() final;
</span><span class="cx"> 
</span><span class="cx">     bool canRunModal() final;
</span><span class="lines">@@ -79,16 +79,16 @@
</span><span class="cx"> 
</span><span class="cx">     void setResizable(bool) final;
</span><span class="cx"> 
</span><del>-    void addMessageToConsole(JSC::MessageSource, JSC::MessageLevel, const WTF::String&amp; message, unsigned lineNumber, unsigned columnNumber, const WTF::String&amp; sourceURL) final;
</del><ins>+    void addMessageToConsole(JSC::MessageSource, JSC::MessageLevel, const String&amp; message, unsigned lineNumber, unsigned columnNumber, const String&amp; sourceURL) final;
</ins><span class="cx"> 
</span><span class="cx">     bool canRunBeforeUnloadConfirmPanel() final;
</span><del>-    bool runBeforeUnloadConfirmPanel(const WTF::String&amp; message, WebCore::Frame*) final;
</del><ins>+    bool runBeforeUnloadConfirmPanel(const String&amp; message, WebCore::Frame&amp;) final;
</ins><span class="cx"> 
</span><span class="cx">     void closeWindowSoon() final;
</span><span class="cx"> 
</span><del>-    void runJavaScriptAlert(WebCore::Frame*, const WTF::String&amp;) override;
-    bool runJavaScriptConfirm(WebCore::Frame*, const WTF::String&amp;) override;
-    bool runJavaScriptPrompt(WebCore::Frame*, const WTF::String&amp; message, const WTF::String&amp; defaultValue, WTF::String&amp; result) override;
</del><ins>+    void runJavaScriptAlert(WebCore::Frame&amp;, const String&amp;) override;
+    bool runJavaScriptConfirm(WebCore::Frame&amp;, const String&amp;) override;
+    bool runJavaScriptPrompt(WebCore::Frame&amp;, const String&amp; message, const String&amp; defaultValue, String&amp; result) override;
</ins><span class="cx"> 
</span><span class="cx">     bool supportsImmediateInvalidation() final;
</span><span class="cx">     void invalidateRootView(const WebCore::IntRect&amp;) final;
</span><span class="lines">@@ -105,22 +105,22 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     PlatformPageClient platformPageClient() const final;
</span><del>-    void contentsSizeChanged(WebCore::Frame*, const WebCore::IntSize&amp;) const final;
</del><ins>+    void contentsSizeChanged(WebCore::Frame&amp;, const WebCore::IntSize&amp;) const final;
</ins><span class="cx">     void scrollRectIntoView(const WebCore::IntRect&amp;) const final;
</span><span class="cx"> 
</span><del>-    void setStatusbarText(const WTF::String&amp;) override;
</del><ins>+    void setStatusbarText(const String&amp;) override;
</ins><span class="cx"> 
</span><span class="cx">     void scrollbarsModeDidChange() const final { }
</span><span class="cx">     bool shouldUnavailablePluginMessageBeButton(WebCore::RenderEmbeddedObject::PluginUnavailabilityReason) const final;
</span><del>-    void unavailablePluginButtonClicked(WebCore::Element*, WebCore::RenderEmbeddedObject::PluginUnavailabilityReason) const final;
</del><ins>+    void unavailablePluginButtonClicked(WebCore::Element&amp;, WebCore::RenderEmbeddedObject::PluginUnavailabilityReason) const final;
</ins><span class="cx">     void mouseDidMoveOverElement(const WebCore::HitTestResult&amp;, unsigned modifierFlags) final;
</span><span class="cx"> 
</span><del>-    void setToolTip(const WTF::String&amp;, WebCore::TextDirection) final;
</del><ins>+    void setToolTip(const String&amp;, WebCore::TextDirection) final;
</ins><span class="cx"> 
</span><del>-    void print(WebCore::Frame*) final;
-    void exceededDatabaseQuota(WebCore::Frame*, const WTF::String&amp; databaseName, WebCore::DatabaseDetails) final;
</del><ins>+    void print(WebCore::Frame&amp;) final;
+    void exceededDatabaseQuota(WebCore::Frame&amp;, const String&amp; databaseName, WebCore::DatabaseDetails) final;
</ins><span class="cx">     void reachedMaxAppCacheSize(int64_t spaceNeeded) final;
</span><del>-    void reachedApplicationCacheOriginQuota(WebCore::SecurityOrigin*, int64_t totalSpaceNeeded) final;
</del><ins>+    void reachedApplicationCacheOriginQuota(WebCore::SecurityOrigin&amp;, int64_t totalSpaceNeeded) final;
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(DASHBOARD_SUPPORT)
</span><span class="cx">     void annotatedRegionsChanged() final;
</span><span class="lines">@@ -127,7 +127,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     void runOpenPanel(WebCore::Frame&amp;, WebCore::FileChooser&amp;) override;
</span><del>-    void loadIconForFiles(const Vector&lt;WTF::String&gt;&amp;, WebCore::FileIconLoader&amp;) final;
</del><ins>+    void loadIconForFiles(const Vector&lt;String&gt;&amp;, WebCore::FileIconLoader&amp;) final;
</ins><span class="cx"> 
</span><span class="cx"> #if !PLATFORM(IOS)
</span><span class="cx">     void setCursor(const WebCore::Cursor&amp;) final;
</span><span class="lines">@@ -135,7 +135,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INPUT_TYPE_COLOR)
</span><del>-    std::unique_ptr&lt;WebCore::ColorChooser&gt; createColorChooser(WebCore::ColorChooserClient*, const WebCore::Color&amp;) final;
</del><ins>+    std::unique_ptr&lt;WebCore::ColorChooser&gt; createColorChooser(WebCore::ColorChooserClient&amp;, const WebCore::Color&amp;) final;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(POINTER_LOCK)
</span><span class="lines">@@ -151,16 +151,16 @@
</span><span class="cx">     void enableSuddenTermination() final;
</span><span class="cx">     void disableSuddenTermination() final;
</span><span class="cx"> 
</span><del>-    bool shouldReplaceWithGeneratedFileForUpload(const WTF::String&amp; path, WTF::String &amp;generatedFilename) final;
-    WTF::String generateReplacementFile(const WTF::String&amp; path) final;
</del><ins>+    bool shouldReplaceWithGeneratedFileForUpload(const String&amp; path, String &amp;generatedFilename) final;
+    String generateReplacementFile(const String&amp; path) final;
</ins><span class="cx"> 
</span><del>-    void elementDidFocus(const WebCore::Node*) override;
-    void elementDidBlur(const WebCore::Node*) override;
</del><ins>+    void elementDidFocus(WebCore::Element&amp;) override;
+    void elementDidBlur(WebCore::Element&amp;) override;
</ins><span class="cx"> 
</span><span class="cx">     bool shouldPaintEntireContents() const final;
</span><span class="cx"> 
</span><del>-    void attachRootGraphicsLayer(WebCore::Frame*, WebCore::GraphicsLayer*) override;
-    void attachViewOverlayGraphicsLayer(WebCore::Frame*, WebCore::GraphicsLayer*) final;
</del><ins>+    void attachRootGraphicsLayer(WebCore::Frame&amp;, WebCore::GraphicsLayer*) override;
+    void attachViewOverlayGraphicsLayer(WebCore::Frame&amp;, WebCore::GraphicsLayer*) final;
</ins><span class="cx">     void setNeedsOneShotDrawingSynchronization() final;
</span><span class="cx">     void scheduleCompositingLayerFlush() final;
</span><span class="cx"> 
</span><span class="lines">@@ -189,16 +189,16 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(FULLSCREEN_API)
</span><del>-    bool supportsFullScreenForElement(const WebCore::Element*, bool withKeyboard) final;
-    void enterFullScreenForElement(WebCore::Element*) final;
-    void exitFullScreenForElement(WebCore::Element*) final;
</del><ins>+    bool supportsFullScreenForElement(const WebCore::Element&amp;, bool withKeyboard) final;
+    void enterFullScreenForElement(WebCore::Element&amp;) final;
+    void exitFullScreenForElement(WebCore::Element&amp;) final;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     bool selectItemWritingDirectionIsNatural() override;
</span><span class="cx">     bool selectItemAlignmentFollowsMenuWritingDirection() override;
</span><span class="cx">     bool hasOpenedPopup() const final;
</span><del>-    RefPtr&lt;WebCore::PopupMenu&gt; createPopupMenu(WebCore::PopupMenuClient*) const override;
-    RefPtr&lt;WebCore::SearchPopupMenu&gt; createSearchPopupMenu(WebCore::PopupMenuClient*) const override;
</del><ins>+    RefPtr&lt;WebCore::PopupMenu&gt; createPopupMenu(WebCore::PopupMenuClient&amp;) const override;
+    RefPtr&lt;WebCore::SearchPopupMenu&gt; createSearchPopupMenu(WebCore::PopupMenuClient&amp;) const override;
</ins><span class="cx"> 
</span><span class="cx">     void wheelEventHandlersChanged(bool) final { }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebChromeClientmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> #import &quot;WebChromeClient.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #import &quot;DOMElementInternal.h&quot;
</span><ins>+#import &quot;DOMHTMLInputElementInternal.h&quot;
</ins><span class="cx"> #import &quot;DOMNodeInternal.h&quot;
</span><span class="cx"> #import &quot;PopupMenuMac.h&quot;
</span><span class="cx"> #import &quot;SearchPopupMenuMac.h&quot;
</span><span class="lines">@@ -222,7 +223,7 @@
</span><span class="cx">     if (!is&lt;HTMLInputElement&gt;(element))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    HTMLInputElement&amp; inputElement = downcast&lt;HTMLInputElement&gt;(*element);
</del><ins>+    auto&amp; inputElement = downcast&lt;HTMLInputElement&gt;(*element);
</ins><span class="cx">     if (!inputElement.isText())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="lines">@@ -233,14 +234,14 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Page* WebChromeClient::createWindow(Frame* frame, const FrameLoadRequest&amp;, const WindowFeatures&amp; features, const NavigationAction&amp;)
</del><ins>+Page* WebChromeClient::createWindow(Frame&amp; frame, const FrameLoadRequest&amp;, const WindowFeatures&amp; features, const NavigationAction&amp;)
</ins><span class="cx"> {
</span><span class="cx">     id delegate = [m_webView UIDelegate];
</span><span class="cx">     WebView *newWebView;
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(FULLSCREEN_API)
</span><del>-    if (frame-&gt;document() &amp;&amp; frame-&gt;document()-&gt;webkitCurrentFullScreenElement())
-        frame-&gt;document()-&gt;webkitCancelFullScreen();
</del><ins>+    if (frame.document() &amp;&amp; frame.document()-&gt;webkitCurrentFullScreenElement())
+        frame.document()-&gt;webkitCancelFullScreen();
</ins><span class="cx"> #endif
</span><span class="cx">     
</span><span class="cx">     if ([delegate respondsToSelector:@selector(webView:createWebViewWithRequest:windowFeatures:)]) {
</span><span class="lines">@@ -468,9 +469,9 @@
</span><span class="cx">     return [[m_webView UIDelegate] respondsToSelector:@selector(webView:runBeforeUnloadConfirmPanelWithMessage:initiatedByFrame:)];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool WebChromeClient::runBeforeUnloadConfirmPanel(const String&amp; message, Frame* frame)
</del><ins>+bool WebChromeClient::runBeforeUnloadConfirmPanel(const String&amp; message, Frame&amp; frame)
</ins><span class="cx"> {
</span><del>-    return CallUIDelegateReturningBoolean(true, m_webView, @selector(webView:runBeforeUnloadConfirmPanelWithMessage:initiatedByFrame:), message, kit(frame));
</del><ins>+    return CallUIDelegateReturningBoolean(true, m_webView, @selector(webView:runBeforeUnloadConfirmPanelWithMessage:initiatedByFrame:), message, kit(&amp;frame));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebChromeClient::closeWindowSoon()
</span><span class="lines">@@ -493,12 +494,12 @@
</span><span class="cx">     [m_webView performSelector:@selector(_closeWindow) withObject:nil afterDelay:0.0];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::runJavaScriptAlert(Frame* frame, const String&amp; message)
</del><ins>+void WebChromeClient::runJavaScriptAlert(Frame&amp; frame, const String&amp; message)
</ins><span class="cx"> {
</span><span class="cx">     id delegate = [m_webView UIDelegate];
</span><span class="cx">     SEL selector = @selector(webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:);
</span><span class="cx">     if ([delegate respondsToSelector:selector]) {
</span><del>-        CallUIDelegate(m_webView, selector, message, kit(frame));
</del><ins>+        CallUIDelegate(m_webView, selector, message, kit(&amp;frame));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -510,12 +511,12 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool WebChromeClient::runJavaScriptConfirm(Frame* frame, const String&amp; message)
</del><ins>+bool WebChromeClient::runJavaScriptConfirm(Frame&amp; frame, const String&amp; message)
</ins><span class="cx"> {
</span><span class="cx">     id delegate = [m_webView UIDelegate];
</span><span class="cx">     SEL selector = @selector(webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:);
</span><span class="cx">     if ([delegate respondsToSelector:selector])
</span><del>-        return CallUIDelegateReturningBoolean(NO, m_webView, selector, message, kit(frame));
</del><ins>+        return CallUIDelegateReturningBoolean(NO, m_webView, selector, message, kit(&amp;frame));
</ins><span class="cx"> 
</span><span class="cx">     // Call the old version of the delegate method if it is implemented.
</span><span class="cx">     selector = @selector(webView:runJavaScriptConfirmPanelWithMessage:);
</span><span class="lines">@@ -525,13 +526,13 @@
</span><span class="cx">     return NO;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool WebChromeClient::runJavaScriptPrompt(Frame* frame, const String&amp; prompt, const String&amp; defaultText, String&amp; result)
</del><ins>+bool WebChromeClient::runJavaScriptPrompt(Frame&amp; frame, const String&amp; prompt, const String&amp; defaultText, String&amp; result)
</ins><span class="cx"> {
</span><span class="cx">     id delegate = [m_webView UIDelegate];
</span><span class="cx">     SEL selector = @selector(webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:);
</span><span class="cx">     NSString *defaultString = defaultText;
</span><span class="cx">     if ([delegate respondsToSelector:selector]) {
</span><del>-        result = (NSString *)CallUIDelegate(m_webView, selector, prompt, defaultString, kit(frame));
</del><ins>+        result = (NSString *)CallUIDelegate(m_webView, selector, prompt, defaultString, kit(&amp;frame));
</ins><span class="cx">         return !result.isNull();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -542,7 +543,7 @@
</span><span class="cx">         return !result.isNull();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    result = [[WebDefaultUIDelegate sharedUIDelegate] webView:m_webView runJavaScriptTextInputPanelWithPrompt:prompt defaultText:defaultString initiatedByFrame:kit(frame)];
</del><ins>+    result = [[WebDefaultUIDelegate sharedUIDelegate] webView:m_webView runJavaScriptTextInputPanelWithPrompt:prompt defaultText:defaultString initiatedByFrame:kit(&amp;frame)];
</ins><span class="cx">     return !result.isNull();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -606,7 +607,7 @@
</span><span class="cx">     return 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::contentsSizeChanged(Frame*, const IntSize&amp;) const
</del><ins>+void WebChromeClient::contentsSizeChanged(Frame&amp;, const IntSize&amp;) const
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -635,12 +636,12 @@
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::unavailablePluginButtonClicked(Element* element, RenderEmbeddedObject::PluginUnavailabilityReason pluginUnavailabilityReason) const
</del><ins>+void WebChromeClient::unavailablePluginButtonClicked(Element&amp; element, RenderEmbeddedObject::PluginUnavailabilityReason pluginUnavailabilityReason) const
</ins><span class="cx"> {
</span><del>-    ASSERT(element-&gt;hasTagName(objectTag) || element-&gt;hasTagName(embedTag) || element-&gt;hasTagName(appletTag));
</del><ins>+    ASSERT(element.hasTagName(objectTag) || element.hasTagName(embedTag) || element.hasTagName(appletTag));
</ins><span class="cx"> 
</span><span class="cx">     ASSERT(pluginUnavailabilityReason == RenderEmbeddedObject::PluginMissing);
</span><del>-    CallUIDelegate(m_webView, @selector(webView:didPressMissingPluginButton:), kit(element));
</del><ins>+    CallUIDelegate(m_webView, @selector(webView:didPressMissingPluginButton:), kit(&amp;element));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebChromeClient::mouseDidMoveOverElement(const HitTestResult&amp; result, unsigned modifierFlags)
</span><span class="lines">@@ -657,9 +658,9 @@
</span><span class="cx">         [(WebHTMLView *)documentView _setToolTip:toolTip];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::print(Frame* frame)
</del><ins>+void WebChromeClient::print(Frame&amp; frame)
</ins><span class="cx"> {
</span><del>-    WebFrame *webFrame = kit(frame);
</del><ins>+    WebFrame *webFrame = kit(&amp;frame);
</ins><span class="cx">     if ([[m_webView UIDelegate] respondsToSelector:@selector(webView:printFrame:)])
</span><span class="cx">         CallUIDelegate(m_webView, @selector(webView:printFrame:), webFrame);
</span><span class="cx">     else
</span><span class="lines">@@ -666,12 +667,12 @@
</span><span class="cx">         CallUIDelegate(m_webView, @selector(webView:printFrameView:), [webFrame frameView]);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::exceededDatabaseQuota(Frame* frame, const String&amp; databaseName, DatabaseDetails)
</del><ins>+void WebChromeClient::exceededDatabaseQuota(Frame&amp; frame, const String&amp; databaseName, DatabaseDetails)
</ins><span class="cx"> {
</span><span class="cx">     BEGIN_BLOCK_OBJC_EXCEPTIONS;
</span><span class="cx"> 
</span><del>-    WebSecurityOrigin *webOrigin = [[WebSecurityOrigin alloc] _initWithWebCoreSecurityOrigin:&amp;frame-&gt;document()-&gt;securityOrigin()];
-    CallUIDelegate(m_webView, @selector(webView:frame:exceededDatabaseQuotaForSecurityOrigin:database:), kit(frame), webOrigin, (NSString *)databaseName);
</del><ins>+    WebSecurityOrigin *webOrigin = [[WebSecurityOrigin alloc] _initWithWebCoreSecurityOrigin:&amp;frame.document()-&gt;securityOrigin()];
+    CallUIDelegate(m_webView, @selector(webView:frame:exceededDatabaseQuotaForSecurityOrigin:database:), kit(&amp;frame), webOrigin, (NSString *)databaseName);
</ins><span class="cx">     [webOrigin release];
</span><span class="cx"> 
</span><span class="cx">     END_BLOCK_OBJC_EXCEPTIONS;
</span><span class="lines">@@ -682,11 +683,11 @@
</span><span class="cx">     // FIXME: Free some space.
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::reachedApplicationCacheOriginQuota(SecurityOrigin* origin, int64_t totalSpaceNeeded)
</del><ins>+void WebChromeClient::reachedApplicationCacheOriginQuota(SecurityOrigin&amp; origin, int64_t totalSpaceNeeded)
</ins><span class="cx"> {
</span><span class="cx">     BEGIN_BLOCK_OBJC_EXCEPTIONS;
</span><span class="cx"> 
</span><del>-    WebSecurityOrigin *webOrigin = [[WebSecurityOrigin alloc] _initWithWebCoreSecurityOrigin:origin];
</del><ins>+    WebSecurityOrigin *webOrigin = [[WebSecurityOrigin alloc] _initWithWebCoreSecurityOrigin:&amp;origin];
</ins><span class="cx">     CallUIDelegate(m_webView, @selector(webView:exceededApplicationCacheOriginQuotaForSecurityOrigin:totalSpaceNeeded:), webOrigin, static_cast&lt;NSUInteger&gt;(totalSpaceNeeded));
</span><span class="cx">     [webOrigin release];
</span><span class="cx"> 
</span><span class="lines">@@ -705,12 +706,14 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INPUT_TYPE_COLOR)
</span><del>-std::unique_ptr&lt;ColorChooser&gt; WebChromeClient::createColorChooser(ColorChooserClient* client, const Color&amp; initialColor)
</del><ins>+
+std::unique_ptr&lt;ColorChooser&gt; WebChromeClient::createColorChooser(ColorChooserClient&amp; client, const Color&amp; initialColor)
</ins><span class="cx"> {
</span><span class="cx">     // FIXME: Implement &lt;input type='color'&gt; for WK1 (Bug 119094).
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><span class="cx">     return nullptr;
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(POINTER_LOCK)
</span><span class="lines">@@ -848,14 +851,14 @@
</span><span class="cx">     return [[m_webView _UIDelegateForwarder] webView:m_webView generateReplacementFile:path];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::elementDidFocus(const WebCore::Node* node)
</del><ins>+void WebChromeClient::elementDidFocus(WebCore::Element&amp; element)
</ins><span class="cx"> {
</span><del>-    CallUIDelegate(m_webView, @selector(webView:formDidFocusNode:), kit(const_cast&lt;WebCore::Node*&gt;(node)));
</del><ins>+    CallUIDelegate(m_webView, @selector(webView:formDidFocusNode:), kit(&amp;element));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::elementDidBlur(const WebCore::Node* node)
</del><ins>+void WebChromeClient::elementDidBlur(WebCore::Element&amp; element)
</ins><span class="cx"> {
</span><del>-    CallUIDelegate(m_webView, @selector(webView:formDidBlurNode:), kit(const_cast&lt;WebCore::Node*&gt;(node)));
</del><ins>+    CallUIDelegate(m_webView, @selector(webView:formDidBlurNode:), kit(&amp;element));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool WebChromeClient::selectItemWritingDirectionIsNatural()
</span><span class="lines">@@ -874,19 +877,19 @@
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;WebCore::PopupMenu&gt; WebChromeClient::createPopupMenu(WebCore::PopupMenuClient* client) const
</del><ins>+RefPtr&lt;WebCore::PopupMenu&gt; WebChromeClient::createPopupMenu(WebCore::PopupMenuClient&amp; client) const
</ins><span class="cx"> {
</span><span class="cx"> #if !PLATFORM(IOS)
</span><del>-    return adoptRef(new PopupMenuMac(client));
</del><ins>+    return adoptRef(*new PopupMenuMac(&amp;client));
</ins><span class="cx"> #else
</span><span class="cx">     return nullptr;
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;WebCore::SearchPopupMenu&gt; WebChromeClient::createSearchPopupMenu(WebCore::PopupMenuClient* client) const
</del><ins>+RefPtr&lt;WebCore::SearchPopupMenu&gt; WebChromeClient::createSearchPopupMenu(WebCore::PopupMenuClient&amp; client) const
</ins><span class="cx"> {
</span><span class="cx"> #if !PLATFORM(IOS)
</span><del>-    return adoptRef(new SearchPopupMenuMac(client));
</del><ins>+    return adoptRef(*new SearchPopupMenuMac(&amp;client));
</ins><span class="cx"> #else
</span><span class="cx">     return nullptr;
</span><span class="cx"> #endif
</span><span class="lines">@@ -902,11 +905,11 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::attachRootGraphicsLayer(Frame* frame, GraphicsLayer* graphicsLayer)
</del><ins>+void WebChromeClient::attachRootGraphicsLayer(Frame&amp; frame, GraphicsLayer* graphicsLayer)
</ins><span class="cx"> {
</span><span class="cx">     BEGIN_BLOCK_OBJC_EXCEPTIONS;
</span><span class="cx"> 
</span><del>-    NSView *documentView = [[kit(frame) frameView] documentView];
</del><ins>+    NSView *documentView = [[kit(&amp;frame) frameView] documentView];
</ins><span class="cx">     if (![documentView isKindOfClass:[WebHTMLView class]]) {
</span><span class="cx">         // We should never be attaching when we don't have a WebHTMLView.
</span><span class="cx">         ASSERT(!graphicsLayer);
</span><span class="lines">@@ -921,7 +924,7 @@
</span><span class="cx">     END_BLOCK_OBJC_EXCEPTIONS;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::attachViewOverlayGraphicsLayer(Frame*, GraphicsLayer*)
</del><ins>+void WebChromeClient::attachViewOverlayGraphicsLayer(Frame&amp;, GraphicsLayer*)
</ins><span class="cx"> {
</span><span class="cx">     // FIXME: If we want view-relative page overlays in Legacy WebKit, this would be the place to hook them up.
</span><span class="cx"> }
</span><span class="lines">@@ -941,6 +944,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(VIDEO)
</span><ins>+
</ins><span class="cx"> bool WebChromeClient::supportsVideoFullscreen(HTMLMediaElementEnums::VideoFullscreenMode)
</span><span class="cx"> {
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="lines">@@ -965,7 +969,10 @@
</span><span class="cx">     END_BLOCK_OBJC_EXCEPTIONS;    
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-#if PLATFORM(MAC) &amp;&amp; ENABLE(VIDEO_PRESENTATION_MODE)
</del><ins>+#endif // ENABLE(VIDEO)
+
+#if ENABLE(VIDEO) &amp;&amp; PLATFORM(MAC) &amp;&amp; ENABLE(VIDEO_PRESENTATION_MODE)
+
</ins><span class="cx"> void WebChromeClient::setUpPlaybackControlsManager(HTMLMediaElement&amp; element)
</span><span class="cx"> {
</span><span class="cx">     [m_webView _setUpPlaybackControlsManagerForMediaElement:element];
</span><span class="lines">@@ -975,48 +982,48 @@
</span><span class="cx"> {
</span><span class="cx">     [m_webView _clearPlaybackControlsManager];
</span><span class="cx"> }
</span><del>-#endif // PLATFORM(MAC)
-#endif // ENABLE(VIDEO)
</del><span class="cx"> 
</span><ins>+#endif
+
</ins><span class="cx"> #if ENABLE(FULLSCREEN_API)
</span><span class="cx"> 
</span><del>-bool WebChromeClient::supportsFullScreenForElement(const Element* element, bool withKeyboard)
</del><ins>+bool WebChromeClient::supportsFullScreenForElement(const Element&amp; element, bool withKeyboard)
</ins><span class="cx"> {
</span><span class="cx">     SEL selector = @selector(webView:supportsFullScreenForElement:withKeyboard:);
</span><span class="cx">     if ([[m_webView UIDelegate] respondsToSelector:selector])
</span><del>-        return CallUIDelegateReturningBoolean(false, m_webView, selector, kit(const_cast&lt;WebCore::Element*&gt;(element)), withKeyboard);
</del><ins>+        return CallUIDelegateReturningBoolean(false, m_webView, selector, kit(const_cast&lt;WebCore::Element*&gt;(&amp;element)), withKeyboard);
</ins><span class="cx"> #if !PLATFORM(IOS)
</span><del>-    return [m_webView _supportsFullScreenForElement:const_cast&lt;WebCore::Element*&gt;(element) withKeyboard:withKeyboard];
</del><ins>+    return [m_webView _supportsFullScreenForElement:const_cast&lt;WebCore::Element*&gt;(&amp;element) withKeyboard:withKeyboard];
</ins><span class="cx"> #else
</span><span class="cx">     return NO;
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::enterFullScreenForElement(Element* element)
</del><ins>+void WebChromeClient::enterFullScreenForElement(Element&amp; element)
</ins><span class="cx"> {
</span><span class="cx">     SEL selector = @selector(webView:enterFullScreenForElement:listener:);
</span><span class="cx">     if ([[m_webView UIDelegate] respondsToSelector:selector]) {
</span><del>-        WebKitFullScreenListener* listener = [[WebKitFullScreenListener alloc] initWithElement:element];
-        CallUIDelegate(m_webView, selector, kit(element), listener);
</del><ins>+        WebKitFullScreenListener* listener = [[WebKitFullScreenListener alloc] initWithElement:&amp;element];
+        CallUIDelegate(m_webView, selector, kit(&amp;element), listener);
</ins><span class="cx">         [listener release];
</span><span class="cx">     }
</span><span class="cx"> #if !PLATFORM(IOS)
</span><span class="cx">     else
</span><del>-        [m_webView _enterFullScreenForElement:element];
</del><ins>+        [m_webView _enterFullScreenForElement:&amp;element];
</ins><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::exitFullScreenForElement(Element* element)
</del><ins>+void WebChromeClient::exitFullScreenForElement(Element&amp; element)
</ins><span class="cx"> {
</span><span class="cx">     SEL selector = @selector(webView:exitFullScreenForElement:listener:);
</span><span class="cx">     if ([[m_webView UIDelegate] respondsToSelector:selector]) {
</span><del>-        WebKitFullScreenListener* listener = [[WebKitFullScreenListener alloc] initWithElement:element];
-        CallUIDelegate(m_webView, selector, kit(element), listener);
</del><ins>+        WebKitFullScreenListener* listener = [[WebKitFullScreenListener alloc] initWithElement:&amp;element];
+        CallUIDelegate(m_webView, selector, kit(&amp;element), listener);
</ins><span class="cx">         [listener release];
</span><span class="cx">     }
</span><span class="cx"> #if !PLATFORM(IOS)
</span><span class="cx">     else
</span><del>-        [m_webView _exitFullScreenForElement:element];
</del><ins>+        [m_webView _exitFullScreenForElement:&amp;element];
</ins><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1023,6 +1030,7 @@
</span><span class="cx"> #endif // ENABLE(FULLSCREEN_API)
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(SUBTLE_CRYPTO)
</span><ins>+
</ins><span class="cx"> bool WebChromeClient::wrapCryptoKey(const Vector&lt;uint8_t&gt;&amp; key, Vector&lt;uint8_t&gt;&amp; wrappedKey) const
</span><span class="cx"> {
</span><span class="cx">     Vector&lt;uint8_t&gt; masterKey;
</span><span class="lines">@@ -1048,9 +1056,11 @@
</span><span class="cx"> 
</span><span class="cx">     return unwrapSerializedCryptoKey(masterKey, wrappedKey, key);
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(SERVICE_CONTROLS)
</span><ins>+
</ins><span class="cx"> void WebChromeClient::handleSelectionServiceClick(WebCore::FrameSelection&amp; selection, const Vector&lt;String&gt;&amp; telephoneNumbers, const WebCore::IntPoint&amp; point)
</span><span class="cx"> {
</span><span class="cx">     [m_webView _selectionServiceController].handleSelectionServiceClick(selection, telephoneNumbers, point);
</span><span class="lines">@@ -1064,6 +1074,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(WIRELESS_PLAYBACK_TARGET) &amp;&amp; !PLATFORM(IOS)
</span><ins>+
</ins><span class="cx"> void WebChromeClient::addPlaybackTargetPickerClient(uint64_t contextId)
</span><span class="cx"> {
</span><span class="cx">     [m_webView _addPlaybackTargetPickerClient:contextId];
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebFramemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebFrame.mm (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebFrame.mm        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit/mac/WebView/WebFrame.mm        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -302,7 +302,7 @@
</span><span class="cx">     WebView *webView = kit(page);
</span><span class="cx"> 
</span><span class="cx">     WebFrame *frame = [[self alloc] _initWithWebFrameView:frameView webView:webView];
</span><del>-    Ref&lt;WebCore::Frame&gt; coreFrame = Frame::create(page, ownerElement, new WebFrameLoaderClient(frame));
</del><ins>+    auto coreFrame = Frame::create(page, ownerElement, new WebFrameLoaderClient(frame));
</ins><span class="cx">     [frame release];
</span><span class="cx">     frame-&gt;_private-&gt;coreFrame = coreFrame.ptr();
</span><span class="cx"> 
</span><span class="lines">@@ -309,7 +309,7 @@
</span><span class="cx">     coreFrame.get().tree().setName(name);
</span><span class="cx">     if (ownerElement) {
</span><span class="cx">         ASSERT(ownerElement-&gt;document().frame());
</span><del>-        ownerElement-&gt;document().frame()-&gt;tree().appendChild(coreFrame.ptr());
</del><ins>+        ownerElement-&gt;document().frame()-&gt;tree().appendChild(coreFrame.get());
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     coreFrame.get().init();
</span></span></pre></div>
<a id="trunkSourceWebKitwinChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/ChangeLog (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/ChangeLog        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit/win/ChangeLog        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -1,3 +1,36 @@
</span><ins>+2017-01-20  Darin Adler  &lt;darin@apple.com&gt;
+
+        Remove PassRefPtr from &quot;page&quot; directory of WebCore, also deploy references
+        https://bugs.webkit.org/show_bug.cgi?id=167224
+
+        Reviewed by Chris Dumez.
+
+        * Plugins/PluginView.cpp:
+        (WebCore::PluginView::status): Pass reference.
+        (WebCore::PluginView::focusPluginElement): Ditto.
+
+        * WebCoreSupport/WebChromeClient.cpp:
+        (WebChromeClient::createWindow): Updated for change to ChromeClient.
+        (WebChromeClient::runBeforeUnloadConfirmPanel): Ditto.
+        (WebChromeClient::runJavaScriptAlert): Ditto.
+        (WebChromeClient::runJavaScriptConfirm): Ditto.
+        (WebChromeClient::runJavaScriptPrompt): Ditto.
+        (WebChromeClient::contentsSizeChanged): Ditto.
+        (WebChromeClient::unavailablePluginButtonClicked): Ditto.
+        (WebChromeClient::print): Ditto.
+        (WebChromeClient::exceededDatabaseQuota): Ditto.
+        (WebChromeClient::reachedApplicationCacheOriginQuota): Ditto.
+        (WebChromeClient::attachRootGraphicsLayer): Ditto.
+        (WebChromeClient::attachViewOverlayGraphicsLayer): Ditto.
+        (WebChromeClient::enterVideoFullscreenForVideoElement): Ditto.
+        (WebChromeClient::createPopupMenu): Ditto.
+        (WebChromeClient::createSearchPopupMenu): Ditto.
+        (WebChromeClient::supportsFullScreenForElement): Ditto.
+        (WebChromeClient::enterFullScreenForElement): Ditto.
+        (WebChromeClient::exitFullScreenForElement): Ditto.
+        (WebChromeClient::shouldUseTiledBackingForFrameView): Ditto.
+        * WebCoreSupport/WebChromeClient.h: Ditto.
+
</ins><span class="cx"> 2017-01-20  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Remove never changing IndexedDB RuntimeEnabledFeature
</span></span></pre></div>
<a id="trunkSourceWebKitwinPluginsPluginViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/Plugins/PluginView.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/Plugins/PluginView.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit/win/Plugins/PluginView.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -593,7 +593,7 @@
</span><span class="cx"> void PluginView::status(const char* message)
</span><span class="cx"> {
</span><span class="cx">     if (Page* page = m_parentFrame-&gt;page())
</span><del>-        page-&gt;chrome().setStatusbarText(m_parentFrame.get(), String::fromUTF8(message));
</del><ins>+        page-&gt;chrome().setStatusbarText(*m_parentFrame, String::fromUTF8(message));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> NPError PluginView::setValue(NPPVariable variable, void* value)
</span><span class="lines">@@ -793,7 +793,7 @@
</span><span class="cx"> void PluginView::focusPluginElement()
</span><span class="cx"> {
</span><span class="cx">     if (Page* page = m_parentFrame-&gt;page())
</span><del>-        page-&gt;focusController().setFocusedElement(m_element, m_parentFrame);
</del><ins>+        page-&gt;focusController().setFocusedElement(m_element, *m_parentFrame);
</ins><span class="cx">     else
</span><span class="cx">         m_parentFrame-&gt;document()-&gt;setFocusedElement(m_element);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKitwinWebCoreSupportWebChromeClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -189,7 +189,7 @@
</span><span class="cx">     return COMPtr&lt;IPropertyBag&gt;(AdoptCOM, COMPropertyBag&lt;COMVariant&gt;::adopt(map));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Page* WebChromeClient::createWindow(Frame* frame, const FrameLoadRequest&amp;, const WindowFeatures&amp; features, const NavigationAction&amp; navigationAction)
</del><ins>+Page* WebChromeClient::createWindow(Frame&amp; frame, const FrameLoadRequest&amp;, const WindowFeatures&amp; features, const NavigationAction&amp; navigationAction)
</ins><span class="cx"> {
</span><span class="cx">     COMPtr&lt;IWebUIDelegate&gt; delegate = uiDelegate();
</span><span class="cx">     if (!delegate)
</span><span class="lines">@@ -196,8 +196,8 @@
</span><span class="cx">         return 0;
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(FULLSCREEN_API)
</span><del>-    if (frame-&gt;document() &amp;&amp; frame-&gt;document()-&gt;webkitCurrentFullScreenElement())
-        frame-&gt;document()-&gt;webkitCancelFullScreen();
</del><ins>+    if (frame.document() &amp;&amp; frame.document()-&gt;webkitCurrentFullScreenElement())
+        frame.document()-&gt;webkitCancelFullScreen();
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     COMPtr&lt;WebMutableURLRequest&gt; request = adoptCOM(WebMutableURLRequest::createInstance(ResourceRequest(navigationAction.url())));
</span><span class="lines">@@ -361,12 +361,12 @@
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool WebChromeClient::runBeforeUnloadConfirmPanel(const String&amp; message, Frame* frame)
</del><ins>+bool WebChromeClient::runBeforeUnloadConfirmPanel(const String&amp; message, Frame&amp; frame)
</ins><span class="cx"> {
</span><span class="cx">     BOOL result = TRUE;
</span><span class="cx">     IWebUIDelegate* ui;
</span><span class="cx">     if (SUCCEEDED(m_webView-&gt;uiDelegate(&amp;ui)) &amp;&amp; ui) {
</span><del>-        WebFrame* webFrame = kit(frame);
</del><ins>+        WebFrame* webFrame = kit(&amp;frame);
</ins><span class="cx">         ui-&gt;runBeforeUnloadConfirmPanelWithMessage(m_webView, BString(message), webFrame, &amp;result);
</span><span class="cx">         ui-&gt;Release();
</span><span class="cx">     }
</span><span class="lines">@@ -393,7 +393,7 @@
</span><span class="cx">     m_webView-&gt;closeWindowSoon();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::runJavaScriptAlert(Frame*, const String&amp; message)
</del><ins>+void WebChromeClient::runJavaScriptAlert(Frame&amp;, const String&amp; message)
</ins><span class="cx"> {
</span><span class="cx">     COMPtr&lt;IWebUIDelegate&gt; ui;
</span><span class="cx">     if (SUCCEEDED(m_webView-&gt;uiDelegate(&amp;ui)))
</span><span class="lines">@@ -400,7 +400,7 @@
</span><span class="cx">         ui-&gt;runJavaScriptAlertPanelWithMessage(m_webView, BString(message));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool WebChromeClient::runJavaScriptConfirm(Frame*, const String&amp; message)
</del><ins>+bool WebChromeClient::runJavaScriptConfirm(Frame&amp;, const String&amp; message)
</ins><span class="cx"> {
</span><span class="cx">     BOOL result = FALSE;
</span><span class="cx">     COMPtr&lt;IWebUIDelegate&gt; ui;
</span><span class="lines">@@ -409,7 +409,7 @@
</span><span class="cx">     return !!result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool WebChromeClient::runJavaScriptPrompt(Frame*, const String&amp; message, const String&amp; defaultValue, String&amp; result)
</del><ins>+bool WebChromeClient::runJavaScriptPrompt(Frame&amp;, const String&amp; message, const String&amp; defaultValue, String&amp; result)
</ins><span class="cx"> {
</span><span class="cx">     COMPtr&lt;IWebUIDelegate&gt; ui;
</span><span class="cx">     if (FAILED(m_webView-&gt;uiDelegate(&amp;ui)))
</span><span class="lines">@@ -508,7 +508,7 @@
</span><span class="cx">     return viewWindow;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::contentsSizeChanged(Frame*, const IntSize&amp;) const
</del><ins>+void WebChromeClient::contentsSizeChanged(Frame&amp;, const IntSize&amp;) const
</ins><span class="cx"> {
</span><span class="cx">     notImplemented();
</span><span class="cx"> }
</span><span class="lines">@@ -540,7 +540,7 @@
</span><span class="cx">     return uiDelegatePrivate3;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::unavailablePluginButtonClicked(Element* element, RenderEmbeddedObject::PluginUnavailabilityReason pluginUnavailabilityReason) const
</del><ins>+void WebChromeClient::unavailablePluginButtonClicked(Element&amp; element, RenderEmbeddedObject::PluginUnavailabilityReason pluginUnavailabilityReason) const
</ins><span class="cx"> {
</span><span class="cx">     ASSERT_UNUSED(pluginUnavailabilityReason, pluginUnavailabilityReason == RenderEmbeddedObject::PluginMissing);
</span><span class="cx"> 
</span><span class="lines">@@ -552,7 +552,7 @@
</span><span class="cx">     if (!uiDelegatePrivate3)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    COMPtr&lt;IDOMElement&gt; e(AdoptCOM, DOMElement::createInstance(element));
</del><ins>+    COMPtr&lt;IDOMElement&gt; e(AdoptCOM, DOMElement::createInstance(&amp;element));
</ins><span class="cx">     uiDelegatePrivate3-&gt;didPressMissingPluginButton(e.get());
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -561,21 +561,21 @@
</span><span class="cx">     m_webView-&gt;setToolTip(toolTip);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::print(Frame* frame)
</del><ins>+void WebChromeClient::print(Frame&amp; frame)
</ins><span class="cx"> {
</span><span class="cx">     COMPtr&lt;IWebUIDelegate&gt; uiDelegate;
</span><span class="cx">     if (SUCCEEDED(m_webView-&gt;uiDelegate(&amp;uiDelegate)))
</span><del>-        uiDelegate-&gt;printFrame(m_webView, kit(frame));
</del><ins>+        uiDelegate-&gt;printFrame(m_webView, kit(&amp;frame));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::exceededDatabaseQuota(Frame* frame, const String&amp; databaseIdentifier, DatabaseDetails)
</del><ins>+void WebChromeClient::exceededDatabaseQuota(Frame&amp; frame, const String&amp; databaseIdentifier, DatabaseDetails)
</ins><span class="cx"> {
</span><del>-    COMPtr&lt;WebSecurityOrigin&gt; origin(AdoptCOM, WebSecurityOrigin::createInstance(&amp;frame-&gt;document()-&gt;securityOrigin()));
</del><ins>+    COMPtr&lt;WebSecurityOrigin&gt; origin(AdoptCOM, WebSecurityOrigin::createInstance(&amp;frame.document()-&gt;securityOrigin()));
</ins><span class="cx">     COMPtr&lt;IWebUIDelegate&gt; uiDelegate;
</span><span class="cx">     if (SUCCEEDED(m_webView-&gt;uiDelegate(&amp;uiDelegate))) {
</span><span class="cx">         COMPtr&lt;IWebUIDelegatePrivate&gt; uiDelegatePrivate(Query, uiDelegate);
</span><span class="cx">         if (uiDelegatePrivate)
</span><del>-            uiDelegatePrivate-&gt;exceededDatabaseQuota(m_webView, kit(frame), origin.get(), BString(databaseIdentifier));
</del><ins>+            uiDelegatePrivate-&gt;exceededDatabaseQuota(m_webView, kit(&amp;frame), origin.get(), BString(databaseIdentifier));
</ins><span class="cx">         else {
</span><span class="cx">             // FIXME: remove this workaround once shipping Safari has the necessary delegate implemented.
</span><span class="cx">             WCHAR path[MAX_PATH];
</span><span class="lines">@@ -613,7 +613,7 @@
</span><span class="cx">     notImplemented();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::reachedApplicationCacheOriginQuota(SecurityOrigin*, int64_t)
</del><ins>+void WebChromeClient::reachedApplicationCacheOriginQuota(SecurityOrigin&amp;, int64_t)
</ins><span class="cx"> {
</span><span class="cx">     notImplemented();
</span><span class="cx"> }
</span><span class="lines">@@ -717,12 +717,12 @@
</span><span class="cx">     m_webView-&gt;setLastCursor(::GetCursor());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::attachRootGraphicsLayer(Frame* frame, GraphicsLayer* graphicsLayer)
</del><ins>+void WebChromeClient::attachRootGraphicsLayer(Frame&amp;, GraphicsLayer* graphicsLayer)
</ins><span class="cx"> {
</span><span class="cx">     m_webView-&gt;setRootChildLayer(graphicsLayer);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::attachViewOverlayGraphicsLayer(Frame*, GraphicsLayer*)
</del><ins>+void WebChromeClient::attachViewOverlayGraphicsLayer(Frame&amp;, GraphicsLayer*)
</ins><span class="cx"> {
</span><span class="cx">     // FIXME: If we want view-relative page overlays in Legacy WebKit on Windows, this would be the place to hook them up.
</span><span class="cx"> }
</span><span class="lines">@@ -753,7 +753,7 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::enterVideoFullscreenForVideoElement(HTMLVideoElement&amp; videoElement)
</del><ins>+void WebChromeClient::enterVideoFullscreenForVideoElement(HTMLVideoElement&amp; videoElement, HTMLMediaElementEnums::VideoFullscreenMode)
</ins><span class="cx"> {
</span><span class="cx">     m_webView-&gt;enterVideoFullscreenForVideoElement(videoElement);
</span><span class="cx"> }
</span><span class="lines">@@ -781,59 +781,61 @@
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;PopupMenu&gt; WebChromeClient::createPopupMenu(PopupMenuClient* client) const
</del><ins>+RefPtr&lt;PopupMenu&gt; WebChromeClient::createPopupMenu(PopupMenuClient&amp; client) const
</ins><span class="cx"> {
</span><del>-    return adoptRef(new PopupMenuWin(client));
</del><ins>+    return adoptRef(new PopupMenuWin(&amp;client));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;SearchPopupMenu&gt; WebChromeClient::createSearchPopupMenu(PopupMenuClient* client) const
</del><ins>+RefPtr&lt;SearchPopupMenu&gt; WebChromeClient::createSearchPopupMenu(PopupMenuClient&amp; client) const
</ins><span class="cx"> {
</span><del>-    return adoptRef(new SearchPopupMenuWin(client));
</del><ins>+    return adoptRef(new SearchPopupMenuWin(&amp;client));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(FULLSCREEN_API)
</span><del>-bool WebChromeClient::supportsFullScreenForElement(const Element* element, bool requestingKeyboardAccess)
</del><ins>+
+bool WebChromeClient::supportsFullScreenForElement(const Element&amp; element, bool requestingKeyboardAccess)
</ins><span class="cx"> {
</span><span class="cx">     COMPtr&lt;IWebUIDelegate&gt; uiDelegate;
</span><span class="cx">     if (SUCCEEDED(m_webView-&gt;uiDelegate(&amp;uiDelegate))) {
</span><span class="cx">         COMPtr&lt;IWebUIDelegatePrivate4&gt; uiDelegatePrivate4(Query, uiDelegate);
</span><span class="cx">         BOOL supports = FALSE;
</span><del>-        COMPtr&lt;IDOMElement&gt; domElement(AdoptCOM, DOMElement::createInstance(const_cast&lt;Element*&gt;(element)));
</del><ins>+        COMPtr&lt;IDOMElement&gt; domElement(AdoptCOM, DOMElement::createInstance(const_cast&lt;Element*&gt;(&amp;element)));
</ins><span class="cx"> 
</span><span class="cx">         if (uiDelegatePrivate4 &amp;&amp; SUCCEEDED(uiDelegatePrivate4-&gt;supportsFullScreenForElement(domElement.get(), requestingKeyboardAccess, &amp;supports)))
</span><span class="cx">             return supports;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return m_webView-&gt;supportsFullScreenForElement(element, requestingKeyboardAccess);
</del><ins>+    return m_webView-&gt;supportsFullScreenForElement(&amp;element, requestingKeyboardAccess);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::enterFullScreenForElement(Element* element)
</del><ins>+void WebChromeClient::enterFullScreenForElement(Element&amp; element)
</ins><span class="cx"> {
</span><span class="cx">     COMPtr&lt;IWebUIDelegate&gt; uiDelegate;
</span><span class="cx">     if (SUCCEEDED(m_webView-&gt;uiDelegate(&amp;uiDelegate))) {
</span><span class="cx">         COMPtr&lt;IWebUIDelegatePrivate4&gt; uiDelegatePrivate4(Query, uiDelegate);
</span><del>-        COMPtr&lt;IDOMElement&gt; domElement(AdoptCOM, DOMElement::createInstance(element));
</del><ins>+        COMPtr&lt;IDOMElement&gt; domElement(AdoptCOM, DOMElement::createInstance(&amp;element));
</ins><span class="cx">         if (uiDelegatePrivate4 &amp;&amp; SUCCEEDED(uiDelegatePrivate4-&gt;enterFullScreenForElement(domElement.get())))
</span><span class="cx">             return;
</span><span class="cx">     } 
</span><span class="cx"> 
</span><del>-    m_webView-&gt;setFullScreenElement(element);
</del><ins>+    m_webView-&gt;setFullScreenElement(&amp;element);
</ins><span class="cx">     m_webView-&gt;fullScreenController()-&gt;enterFullScreen();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::exitFullScreenForElement(Element* element)
</del><ins>+void WebChromeClient::exitFullScreenForElement(Element&amp; element)
</ins><span class="cx"> {
</span><span class="cx">     COMPtr&lt;IWebUIDelegate&gt; uiDelegate;
</span><span class="cx">     if (SUCCEEDED(m_webView-&gt;uiDelegate(&amp;uiDelegate))) {
</span><span class="cx">         COMPtr&lt;IWebUIDelegatePrivate4&gt; uiDelegatePrivate4(Query, uiDelegate);
</span><del>-        COMPtr&lt;IDOMElement&gt; domElement(AdoptCOM, DOMElement::createInstance(element));
</del><ins>+        COMPtr&lt;IDOMElement&gt; domElement(AdoptCOM, DOMElement::createInstance(&amp;element));
</ins><span class="cx">         if (uiDelegatePrivate4 &amp;&amp; SUCCEEDED(uiDelegatePrivate4-&gt;exitFullScreenForElement(domElement.get())))
</span><span class="cx">             return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    ASSERT(element == m_webView-&gt;fullScreenElement());
</del><ins>+    ASSERT(&amp;element == m_webView-&gt;fullScreenElement());
</ins><span class="cx">     m_webView-&gt;fullScreenController()-&gt;exitFullScreen();
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> void WebChromeClient::AXStartFrameLoad()
</span><span class="lines">@@ -852,10 +854,10 @@
</span><span class="cx">         delegate-&gt;fireFrameLoadFinishedEvents();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool WebChromeClient::shouldUseTiledBackingForFrameView(const FrameView* frameView) const
</del><ins>+bool WebChromeClient::shouldUseTiledBackingForFrameView(const FrameView&amp; frameView) const
</ins><span class="cx"> {
</span><span class="cx"> #if !USE(CAIRO)
</span><del>-    return frameView &amp;&amp; frameView-&gt;frame().isMainFrame();
</del><ins>+    return frameView.frame().isMainFrame();
</ins><span class="cx"> #else
</span><span class="cx">     return false;
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebKitwinWebCoreSupportWebChromeClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebCoreSupport/WebChromeClient.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebCoreSupport/WebChromeClient.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit/win/WebCoreSupport/WebChromeClient.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -37,137 +37,137 @@
</span><span class="cx"> 
</span><span class="cx"> interface IWebUIDelegate;
</span><span class="cx"> 
</span><del>-class WebChromeClient : public WebCore::ChromeClient {
</del><ins>+class WebChromeClient final : public WebCore::ChromeClient {
</ins><span class="cx"> public:
</span><span class="cx">     WebChromeClient(WebView*);
</span><span class="cx"> 
</span><del>-    virtual void chromeDestroyed();
</del><ins>+    void chromeDestroyed() final;
</ins><span class="cx"> 
</span><del>-    virtual void setWindowRect(const WebCore::FloatRect&amp;);
-    virtual WebCore::FloatRect windowRect();
</del><ins>+    void setWindowRect(const WebCore::FloatRect&amp;) final;
+    WebCore::FloatRect windowRect() final;
</ins><span class="cx">     
</span><del>-    virtual WebCore::FloatRect pageRect();
</del><ins>+    WebCore::FloatRect pageRect() final;
</ins><span class="cx"> 
</span><del>-    virtual void focus();
-    virtual void unfocus();
</del><ins>+    void focus() final;
+    void unfocus() final;
</ins><span class="cx"> 
</span><del>-    virtual bool canTakeFocus(WebCore::FocusDirection);
-    virtual void takeFocus(WebCore::FocusDirection);
</del><ins>+    bool canTakeFocus(WebCore::FocusDirection) final;
+    void takeFocus(WebCore::FocusDirection) final;
</ins><span class="cx"> 
</span><del>-    virtual void focusedElementChanged(WebCore::Element*);
-    virtual void focusedFrameChanged(WebCore::Frame*);
</del><ins>+    void focusedElementChanged(WebCore::Element*) final;
+    void focusedFrameChanged(WebCore::Frame*) final;
</ins><span class="cx"> 
</span><del>-    virtual WebCore::Page* createWindow(WebCore::Frame*, const WebCore::FrameLoadRequest&amp;, const WebCore::WindowFeatures&amp;, const WebCore::NavigationAction&amp;);
-    virtual void show();
</del><ins>+    WebCore::Page* createWindow(WebCore::Frame&amp;, const WebCore::FrameLoadRequest&amp;, const WebCore::WindowFeatures&amp;, const WebCore::NavigationAction&amp;) final;
+    void show() final;
</ins><span class="cx"> 
</span><del>-    virtual bool canRunModal();
-    virtual void runModal();
</del><ins>+    bool canRunModal() final;
+    void runModal() final;
</ins><span class="cx"> 
</span><del>-    virtual void setToolbarsVisible(bool);
-    virtual bool toolbarsVisible();
</del><ins>+    void setToolbarsVisible(bool) final;
+    bool toolbarsVisible() final;
</ins><span class="cx">     
</span><del>-    virtual void setStatusbarVisible(bool);
-    virtual bool statusbarVisible();
</del><ins>+    void setStatusbarVisible(bool) final;
+    bool statusbarVisible() final;
</ins><span class="cx">     
</span><del>-    virtual void setScrollbarsVisible(bool);
-    virtual bool scrollbarsVisible();
</del><ins>+    void setScrollbarsVisible(bool) final;
+    bool scrollbarsVisible() final;
</ins><span class="cx">     
</span><del>-    virtual void setMenubarVisible(bool);
-    virtual bool menubarVisible();
</del><ins>+    void setMenubarVisible(bool) final;
+    bool menubarVisible() final;
</ins><span class="cx"> 
</span><del>-    virtual void setResizable(bool);
</del><ins>+    void setResizable(bool) final;
</ins><span class="cx"> 
</span><del>-    virtual void addMessageToConsole(JSC::MessageSource, JSC::MessageLevel, const WTF::String&amp; message, unsigned lineNumber, unsigned columnNumber, const WTF::String&amp; url);
</del><ins>+    void addMessageToConsole(JSC::MessageSource, JSC::MessageLevel, const WTF::String&amp; message, unsigned lineNumber, unsigned columnNumber, const WTF::String&amp; url) final;
</ins><span class="cx"> 
</span><del>-    virtual bool canRunBeforeUnloadConfirmPanel();
-    virtual bool runBeforeUnloadConfirmPanel(const WTF::String&amp; message, WebCore::Frame* frame);
</del><ins>+    bool canRunBeforeUnloadConfirmPanel() final;
+    bool runBeforeUnloadConfirmPanel(const WTF::String&amp; message, WebCore::Frame&amp;) final;
</ins><span class="cx"> 
</span><del>-    virtual void closeWindowSoon();
</del><ins>+    void closeWindowSoon() final;
</ins><span class="cx"> 
</span><del>-    virtual void runJavaScriptAlert(WebCore::Frame*, const WTF::String&amp;);
-    virtual bool runJavaScriptConfirm(WebCore::Frame*, const WTF::String&amp;);
-    virtual bool runJavaScriptPrompt(WebCore::Frame*, const WTF::String&amp; message, const WTF::String&amp; defaultValue, WTF::String&amp; result);
-    virtual void setStatusbarText(const WTF::String&amp;);
</del><ins>+    void runJavaScriptAlert(WebCore::Frame&amp;, const WTF::String&amp;) final;
+    bool runJavaScriptConfirm(WebCore::Frame&amp;, const WTF::String&amp;) final;
+    bool runJavaScriptPrompt(WebCore::Frame&amp;, const WTF::String&amp; message, const WTF::String&amp; defaultValue, WTF::String&amp; result) final;
+    void setStatusbarText(const WTF::String&amp;) final;
</ins><span class="cx"> 
</span><del>-    virtual WebCore::KeyboardUIMode keyboardUIMode();
</del><ins>+    WebCore::KeyboardUIMode keyboardUIMode() final;
</ins><span class="cx"> 
</span><del>-    virtual void invalidateRootView(const WebCore::IntRect&amp;);
-    virtual void invalidateContentsAndRootView(const WebCore::IntRect&amp;);
-    virtual void invalidateContentsForSlowScroll(const WebCore::IntRect&amp;);
-    virtual void scroll(const WebCore::IntSize&amp; scrollDelta, const WebCore::IntRect&amp; rectToScroll, const WebCore::IntRect&amp; clipRect);
</del><ins>+    void invalidateRootView(const WebCore::IntRect&amp;) final;
+    void invalidateContentsAndRootView(const WebCore::IntRect&amp;) final;
+    void invalidateContentsForSlowScroll(const WebCore::IntRect&amp;) final;
+    void scroll(const WebCore::IntSize&amp; scrollDelta, const WebCore::IntRect&amp; rectToScroll, const WebCore::IntRect&amp; clipRect) final;
</ins><span class="cx"> 
</span><del>-    virtual WebCore::IntPoint screenToRootView(const WebCore::IntPoint&amp;) const;
-    virtual WebCore::IntRect rootViewToScreen(const WebCore::IntRect&amp;) const;
-    virtual PlatformPageClient platformPageClient() const;
-    virtual void contentsSizeChanged(WebCore::Frame*, const WebCore::IntSize&amp;) const;
</del><ins>+    WebCore::IntPoint screenToRootView(const WebCore::IntPoint&amp;) const final;
+    WebCore::IntRect rootViewToScreen(const WebCore::IntRect&amp;) const final;
+    PlatformPageClient platformPageClient() const final;
+    void contentsSizeChanged(WebCore::Frame&amp;, const WebCore::IntSize&amp;) const final;
</ins><span class="cx"> 
</span><del>-    virtual void scrollbarsModeDidChange() const { }
-    virtual void mouseDidMoveOverElement(const WebCore::HitTestResult&amp;, unsigned modifierFlags);
-    virtual bool shouldUnavailablePluginMessageBeButton(WebCore::RenderEmbeddedObject::PluginUnavailabilityReason) const;
-    virtual void unavailablePluginButtonClicked(WebCore::Element*, WebCore::RenderEmbeddedObject::PluginUnavailabilityReason) const;
</del><ins>+    void scrollbarsModeDidChange() const final { }
+    void mouseDidMoveOverElement(const WebCore::HitTestResult&amp;, unsigned modifierFlags) final;
+    bool shouldUnavailablePluginMessageBeButton(WebCore::RenderEmbeddedObject::PluginUnavailabilityReason) const final;
+    void unavailablePluginButtonClicked(WebCore::Element&amp;, WebCore::RenderEmbeddedObject::PluginUnavailabilityReason) const final;
</ins><span class="cx"> 
</span><del>-    virtual void setToolTip(const WTF::String&amp;, WebCore::TextDirection);
</del><ins>+    void setToolTip(const WTF::String&amp;, WebCore::TextDirection) final;
</ins><span class="cx"> 
</span><del>-    virtual void print(WebCore::Frame*);
</del><ins>+    void print(WebCore::Frame&amp;) final;
</ins><span class="cx"> 
</span><del>-    virtual void exceededDatabaseQuota(WebCore::Frame*, const WTF::String&amp;, WebCore::DatabaseDetails);
</del><ins>+    void exceededDatabaseQuota(WebCore::Frame&amp;, const WTF::String&amp;, WebCore::DatabaseDetails) final;
</ins><span class="cx"> 
</span><del>-    virtual void reachedMaxAppCacheSize(int64_t spaceNeeded);
-    virtual void reachedApplicationCacheOriginQuota(WebCore::SecurityOrigin*, int64_t totalSpaceNeeded);
</del><ins>+    void reachedMaxAppCacheSize(int64_t spaceNeeded) final;
+    void reachedApplicationCacheOriginQuota(WebCore::SecurityOrigin&amp;, int64_t totalSpaceNeeded) final;
</ins><span class="cx"> 
</span><del>-    virtual void runOpenPanel(WebCore::Frame&amp;, WebCore::FileChooser&amp;);
-    virtual void loadIconForFiles(const Vector&lt;WTF::String&gt;&amp;, WebCore::FileIconLoader&amp;);
</del><ins>+    void runOpenPanel(WebCore::Frame&amp;, WebCore::FileChooser&amp;) final;
+    void loadIconForFiles(const Vector&lt;WTF::String&gt;&amp;, WebCore::FileIconLoader&amp;) final;
</ins><span class="cx"> 
</span><del>-    virtual void setCursor(const WebCore::Cursor&amp;);
-    virtual void setCursorHiddenUntilMouseMoves(bool);
-    virtual void setLastSetCursorToCurrentCursor();
</del><ins>+    void setCursor(const WebCore::Cursor&amp;) final;
+    void setCursorHiddenUntilMouseMoves(bool) final;
+    void setLastSetCursorToCurrentCursor() final;
</ins><span class="cx"> 
</span><span class="cx">     // Pass 0 as the GraphicsLayer to detatch the root layer.
</span><del>-    virtual void attachRootGraphicsLayer(WebCore::Frame*, WebCore::GraphicsLayer*);
-    void attachViewOverlayGraphicsLayer(WebCore::Frame*, WebCore::GraphicsLayer*) override;
</del><ins>+    void attachRootGraphicsLayer(WebCore::Frame&amp;, WebCore::GraphicsLayer*) final;
+    void attachViewOverlayGraphicsLayer(WebCore::Frame&amp;, WebCore::GraphicsLayer*) final;
</ins><span class="cx">     // Sets a flag to specify that the next time content is drawn to the window,
</span><span class="cx">     // the changes appear on the screen in synchrony with updates to GraphicsLayers.
</span><del>-    virtual void setNeedsOneShotDrawingSynchronization() { }
</del><ins>+    void setNeedsOneShotDrawingSynchronization() final { }
</ins><span class="cx">     // Sets a flag to specify that the view needs to be updated, so we need
</span><span class="cx">     // to do an eager layout before the drawing.
</span><del>-    virtual void scheduleCompositingLayerFlush();
</del><ins>+    void scheduleCompositingLayerFlush() final;
</ins><span class="cx"> 
</span><span class="cx"> #if PLATFORM(WIN) &amp;&amp; USE(AVFOUNDATION)
</span><del>-    WebCore::GraphicsDeviceAdapter* graphicsDeviceAdapter() const override;
</del><ins>+    WebCore::GraphicsDeviceAdapter* graphicsDeviceAdapter() const final;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    virtual void scrollRectIntoView(const WebCore::IntRect&amp;) const { }
</del><ins>+    void scrollRectIntoView(const WebCore::IntRect&amp;) const final { }
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(VIDEO)
</span><del>-    virtual bool supportsVideoFullscreen(WebCore::HTMLMediaElementEnums::VideoFullscreenMode);
-    virtual void enterVideoFullscreenForVideoElement(WebCore::HTMLVideoElement&amp;);
-    virtual void exitVideoFullscreenForVideoElement(WebCore::HTMLVideoElement&amp;);
</del><ins>+    bool supportsVideoFullscreen(WebCore::HTMLMediaElementEnums::VideoFullscreenMode) final;
+    void enterVideoFullscreenForVideoElement(WebCore::HTMLVideoElement&amp;, WebCore::HTMLMediaElementEnums::VideoFullscreenMode) final;
+    void exitVideoFullscreenForVideoElement(WebCore::HTMLVideoElement&amp;) final;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
</span><del>-    virtual WebCore::NotificationClient* notificationPresenter() const { return reinterpret_cast&lt;WebCore::NotificationClient*&gt;(m_notificationsDelegate.get()); }
</del><ins>+    WebCore::NotificationClient* notificationPresenter() const final { return reinterpret_cast&lt;WebCore::NotificationClient*&gt;(m_notificationsDelegate.get()); }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    virtual bool selectItemWritingDirectionIsNatural();
-    virtual bool selectItemAlignmentFollowsMenuWritingDirection();
-    virtual bool hasOpenedPopup() const;
-    virtual RefPtr&lt;WebCore::PopupMenu&gt; createPopupMenu(WebCore::PopupMenuClient*) const;
-    virtual RefPtr&lt;WebCore::SearchPopupMenu&gt; createSearchPopupMenu(WebCore::PopupMenuClient*) const;
</del><ins>+    bool selectItemWritingDirectionIsNatural() final;
+    bool selectItemAlignmentFollowsMenuWritingDirection() final;
+    bool hasOpenedPopup() const final;
+    RefPtr&lt;WebCore::PopupMenu&gt; createPopupMenu(WebCore::PopupMenuClient&amp;) const final;
+    RefPtr&lt;WebCore::SearchPopupMenu&gt; createSearchPopupMenu(WebCore::PopupMenuClient&amp;) const final;
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(FULLSCREEN_API)
</span><del>-    virtual bool supportsFullScreenForElement(const WebCore::Element*, bool withKeyboard);
-    virtual void enterFullScreenForElement(WebCore::Element*);
-    virtual void exitFullScreenForElement(WebCore::Element*);
</del><ins>+    bool supportsFullScreenForElement(const WebCore::Element&amp;, bool withKeyboard) final;
+    void enterFullScreenForElement(WebCore::Element&amp;) final;
+    void exitFullScreenForElement(WebCore::Element&amp;) final;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    void wheelEventHandlersChanged(bool) override { }
</del><ins>+    void wheelEventHandlersChanged(bool) final { }
</ins><span class="cx"> 
</span><span class="cx">     WebView* webView() { return m_webView; }
</span><span class="cx"> 
</span><del>-    virtual void AXStartFrameLoad();
-    virtual void AXFinishFrameLoad();
</del><ins>+    void AXStartFrameLoad() final;
+    void AXFinishFrameLoad() final;
</ins><span class="cx"> 
</span><del>-    bool shouldUseTiledBackingForFrameView(const WebCore::FrameView*) const override;
</del><ins>+    bool shouldUseTiledBackingForFrameView(const WebCore::FrameView&amp;) const final;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     COMPtr&lt;IWebUIDelegate&gt; uiDelegate();
</span></span></pre></div>
<a id="trunkSourceWebKitwinWebCoreSupportWebFrameLoaderClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -1025,7 +1025,7 @@
</span><span class="cx">     RefPtr&lt;Frame&gt; childFrame = webFrame-&gt;createSubframeWithOwnerElement(m_webFrame-&gt;webView(), coreFrame-&gt;page(), &amp;ownerElement);
</span><span class="cx"> 
</span><span class="cx">     childFrame-&gt;tree().setName(name);
</span><del>-    coreFrame-&gt;tree().appendChild(childFrame);
</del><ins>+    coreFrame-&gt;tree().appendChild(*childFrame);
</ins><span class="cx">     childFrame-&gt;init();
</span><span class="cx"> 
</span><span class="cx">     coreFrame-&gt;loader().loadURLIntoChildFrame(url, referrer, childFrame.get());
</span></span></pre></div>
<a id="trunkSourceWebKitwinWebViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebView.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebView.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit/win/WebView.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -5853,7 +5853,7 @@
</span><span class="cx"> HRESULT WebView::clearFocusNode()
</span><span class="cx"> {
</span><span class="cx">     if (m_page)
</span><del>-        m_page-&gt;focusController().setFocusedElement(0, 0);
</del><ins>+        m_page-&gt;focusController().setFocusedElement(nullptr, m_page-&gt;focusController().focusedOrMainFrame());
</ins><span class="cx">     return S_OK;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit2/ChangeLog        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -1,3 +1,84 @@
</span><ins>+2017-01-20  Darin Adler  &lt;darin@apple.com&gt;
+
+        Remove PassRefPtr from &quot;page&quot; directory of WebCore, also deploy references
+        https://bugs.webkit.org/show_bug.cgi?id=167224
+
+        Reviewed by Chris Dumez.
+
+        * UIProcess/Scrolling/RemoteScrollingTree.cpp:
+        (WebKit::RemoteScrollingTree::createScrollingTreeNode): Return a Ref
+        instead of PassRefPtr.
+        * UIProcess/Scrolling/RemoteScrollingTree.h: Updated for the above.
+
+        * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
+        (WKBundlePageInstallPageOverlay): Pass a reference.
+        (WKBundlePageUninstallPageOverlay): Ditto.
+        (WKBundlePageInstallPageOverlayWithAnimation): Ditto.
+        (WKBundlePageUninstallPageOverlayWithAnimation): Ditto.
+        * WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:
+        (WebKit::PDFPlugin::jsPDFDocPrint): Ditto.
+        * WebProcess/Plugins/PluginView.cpp:
+        (WebKit::PluginView::focusPluginElement): Ditto.
+        (WebKit::PluginView::setStatusbarText): Ditto.
+
+        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+        (WebKit::WebChromeClient::elementDidFocus): Updated for changes to ChromeClient.
+        (WebKit::WebChromeClient::elementDidBlur): Ditto.
+        (WebKit::WebChromeClient::makeFirstResponder): Ditto.
+        (WebKit::WebChromeClient::createWindow): Ditto.
+        (WebKit::WebChromeClient::runBeforeUnloadConfirmPanel): Ditto.
+        (WebKit::WebChromeClient::runJavaScriptAlert): Ditto.
+        (WebKit::WebChromeClient::runJavaScriptConfirm): Ditto.
+        (WebKit::WebChromeClient::runJavaScriptPrompt): Ditto.
+        (WebKit::WebChromeClient::contentsSizeChanged): Ditto.
+        (WebKit::WebChromeClient::unavailablePluginButtonClicked): Ditto.
+        (WebKit::WebChromeClient::print): Ditto.
+        (WebKit::WebChromeClient::exceededDatabaseQuota): Ditto.
+        (WebKit::WebChromeClient::reachedApplicationCacheOriginQuota): Ditto.
+        (WebKit::WebChromeClient::createColorChooser): Ditto.
+        (WebKit::WebChromeClient::createPopupMenu): Ditto.
+        (WebKit::WebChromeClient::createSearchPopupMenu): Ditto.
+        (WebKit::WebChromeClient::attachRootGraphicsLayer): Ditto.
+        (WebKit::WebChromeClient::attachViewOverlayGraphicsLayer): Ditto.
+        (WebKit::WebChromeClient::createScrollingCoordinator): Ditto.
+        (WebKit::WebChromeClient::supportsFullScreenForElement): Ditto.
+        (WebKit::WebChromeClient::enterFullScreenForElement): Ditto.
+        (WebKit::WebChromeClient::exitFullScreenForElement): Ditto.
+        (WebKit::WebChromeClient::didAddHeaderLayer): Ditto.
+        (WebKit::WebChromeClient::didAddFooterLayer): Ditto.
+        (WebKit::WebChromeClient::shouldUseTiledBackingForFrameView): Ditto.
+        * WebProcess/WebCoreSupport/WebChromeClient.h: Ditto.
+        * WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
+        (WebKit::WebChromeClient::elementDidRefocus): Ditto.
+        (WebKit::WebChromeClient::didReceiveMobileDocType): Ditto.
+        (WebKit::WebChromeClient::observedContentChange): Ditto.
+        (WebKit::WebChromeClient::clearContentChangeObservers): Ditto.
+        (WebKit::WebChromeClient::notifyRevealedSelectionByScrollingFrame): Ditto.
+
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+        (WebKit::WebFrameLoaderClient::dispatchCreatePage): Pass reference.
+        * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
+        (WebKit::WebInspectorClient::~WebInspectorClient): Ditto.
+        (WebKit::WebInspectorClient::hideHighlight): Ditto.
+        (WebKit::WebInspectorClient::showPaintRect): Ditto.
+        * WebProcess/WebPage/FindController.cpp:
+        (WebKit::FindController::updateFindUIAfterPageScroll): Ditto.
+        (WebKit::FindController::hideFindUI): Ditto.
+
+        * WebProcess/WebPage/WebFrame.cpp:
+        (WebKit::WebFrame::createWithCoreMainFrame): Return Ref instead of
+        PassRefPtr.
+        (WebKit::WebFrame::createSubframe): Ditto.
+        (WebKit::WebFrame::create): Ditto.
+        * WebProcess/WebPage/WebFrame.h: Updated for the above.
+
+        * WebProcess/WebPage/WebInspector.cpp:
+        (WebKit::WebInspector::openInNewTab): Pass reference.
+
+        * WebProcess/WebPage/ios/FindControllerIOS.mm:
+        (WebKit::FindController::updateFindIndicator): Use reference.
+        (WebKit::FindController::hideFindIndicator): Ditto.
+
</ins><span class="cx"> 2017-01-21  Carlos Garcia Campos  &lt;cgarcia@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Unreviewed, rolling out r211012.
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessScrollingRemoteScrollingTreecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingTree.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingTree.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingTree.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -110,7 +110,7 @@
</span><span class="cx">     m_scrollingCoordinatorProxy.scrollingTreeNodeRequestsScroll(nodeID, scrollPosition, representsProgrammaticScroll);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;ScrollingTreeNode&gt; RemoteScrollingTree::createScrollingTreeNode(ScrollingNodeType nodeType, ScrollingNodeID nodeID)
</del><ins>+Ref&lt;ScrollingTreeNode&gt; RemoteScrollingTree::createScrollingTreeNode(ScrollingNodeType nodeType, ScrollingNodeID nodeID)
</ins><span class="cx"> {
</span><span class="cx">     switch (nodeType) {
</span><span class="cx">     case FrameScrollingNode:
</span><span class="lines">@@ -124,7 +124,7 @@
</span><span class="cx">         return ScrollingTreeOverflowScrollingNodeIOS::create(*this, nodeID);
</span><span class="cx"> #else
</span><span class="cx">         ASSERT_NOT_REACHED();
</span><del>-        return nullptr;
</del><ins>+        break;
</ins><span class="cx"> #endif
</span><span class="cx">     case FixedNode:
</span><span class="cx">         return ScrollingTreeFixedNode::create(*this, nodeID);
</span><span class="lines">@@ -131,7 +131,8 @@
</span><span class="cx">     case StickyNode:
</span><span class="cx">         return ScrollingTreeStickyNode::create(*this, nodeID);
</span><span class="cx">     }
</span><del>-    return nullptr;
</del><ins>+    ASSERT_NOT_REACHED();
+    return ScrollingTreeFixedNode::create(*this, nodeID);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RemoteScrollingTree::currentSnapPointIndicesDidChange(ScrollingNodeID nodeID, unsigned horizontal, unsigned vertical)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessScrollingRemoteScrollingTreeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingTree.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingTree.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit2/UIProcess/Scrolling/RemoteScrollingTree.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -36,7 +36,7 @@
</span><span class="cx"> 
</span><span class="cx"> class RemoteScrollingCoordinatorProxy;
</span><span class="cx"> 
</span><del>-class RemoteScrollingTree : public WebCore::ScrollingTree {
</del><ins>+class RemoteScrollingTree final : public WebCore::ScrollingTree {
</ins><span class="cx"> public:
</span><span class="cx">     static Ref&lt;RemoteScrollingTree&gt; create(RemoteScrollingCoordinatorProxy&amp;);
</span><span class="cx">     virtual ~RemoteScrollingTree();
</span><span class="lines">@@ -65,7 +65,7 @@
</span><span class="cx">     void scrollingTreeNodeDidEndScroll() override;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    PassRefPtr&lt;WebCore::ScrollingTreeNode&gt; createScrollingTreeNode(WebCore::ScrollingNodeType, WebCore::ScrollingNodeID) override;
</del><ins>+    Ref&lt;WebCore::ScrollingTreeNode&gt; createScrollingTreeNode(WebCore::ScrollingNodeType, WebCore::ScrollingNodeID) override;
</ins><span class="cx">     
</span><span class="cx">     RemoteScrollingCoordinatorProxy&amp; m_scrollingCoordinatorProxy;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessInjectedBundleAPIcWKBundlePagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -368,22 +368,22 @@
</span><span class="cx"> 
</span><span class="cx"> void WKBundlePageInstallPageOverlay(WKBundlePageRef pageRef, WKBundlePageOverlayRef pageOverlayRef)
</span><span class="cx"> {
</span><del>-    toImpl(pageRef)-&gt;mainFrame()-&gt;pageOverlayController().installPageOverlay(toImpl(pageOverlayRef)-&gt;coreOverlay(), WebCore::PageOverlay::FadeMode::DoNotFade);
</del><ins>+    toImpl(pageRef)-&gt;mainFrame()-&gt;pageOverlayController().installPageOverlay(*toImpl(pageOverlayRef)-&gt;coreOverlay(), WebCore::PageOverlay::FadeMode::DoNotFade);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WKBundlePageUninstallPageOverlay(WKBundlePageRef pageRef, WKBundlePageOverlayRef pageOverlayRef)
</span><span class="cx"> {
</span><del>-    toImpl(pageRef)-&gt;mainFrame()-&gt;pageOverlayController().uninstallPageOverlay(toImpl(pageOverlayRef)-&gt;coreOverlay(), WebCore::PageOverlay::FadeMode::DoNotFade);
</del><ins>+    toImpl(pageRef)-&gt;mainFrame()-&gt;pageOverlayController().uninstallPageOverlay(*toImpl(pageOverlayRef)-&gt;coreOverlay(), WebCore::PageOverlay::FadeMode::DoNotFade);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WKBundlePageInstallPageOverlayWithAnimation(WKBundlePageRef pageRef, WKBundlePageOverlayRef pageOverlayRef)
</span><span class="cx"> {
</span><del>-    toImpl(pageRef)-&gt;mainFrame()-&gt;pageOverlayController().installPageOverlay(toImpl(pageOverlayRef)-&gt;coreOverlay(), WebCore::PageOverlay::FadeMode::Fade);
</del><ins>+    toImpl(pageRef)-&gt;mainFrame()-&gt;pageOverlayController().installPageOverlay(*toImpl(pageOverlayRef)-&gt;coreOverlay(), WebCore::PageOverlay::FadeMode::Fade);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WKBundlePageUninstallPageOverlayWithAnimation(WKBundlePageRef pageRef, WKBundlePageOverlayRef pageOverlayRef)
</span><span class="cx"> {
</span><del>-    toImpl(pageRef)-&gt;mainFrame()-&gt;pageOverlayController().uninstallPageOverlay(toImpl(pageOverlayRef)-&gt;coreOverlay(), WebCore::PageOverlay::FadeMode::Fade);
</del><ins>+    toImpl(pageRef)-&gt;mainFrame()-&gt;pageOverlayController().uninstallPageOverlay(*toImpl(pageOverlayRef)-&gt;coreOverlay(), WebCore::PageOverlay::FadeMode::Fade);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WKBundlePageSetTopOverhangImage(WKBundlePageRef pageRef, WKImageRef imageRef)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPDFDeprecatedPDFPluginmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -860,7 +860,7 @@
</span><span class="cx">     if (!page)
</span><span class="cx">         return JSValueMakeUndefined(ctx);
</span><span class="cx"> 
</span><del>-    page-&gt;chrome().print(coreFrame);
</del><ins>+    page-&gt;chrome().print(*coreFrame);
</ins><span class="cx"> 
</span><span class="cx">     return JSValueMakeUndefined(ctx);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPluginViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -1128,7 +1128,7 @@
</span><span class="cx">     ASSERT(frame());
</span><span class="cx">     
</span><span class="cx">     if (Page* page = frame()-&gt;page())
</span><del>-        page-&gt;focusController().setFocusedElement(m_pluginElement.get(), frame());
</del><ins>+        page-&gt;focusController().setFocusedElement(m_pluginElement.get(), *frame());
</ins><span class="cx">     else
</span><span class="cx">         frame()-&gt;document()-&gt;setFocusedElement(m_pluginElement.get());
</span><span class="cx"> }
</span><span class="lines">@@ -1508,7 +1508,7 @@
</span><span class="cx">     if (!page)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    page-&gt;chrome().setStatusbarText(frame(), statusbarText);
</del><ins>+    page-&gt;chrome().setStatusbarText(*frame(), statusbarText);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool PluginView::isAcceleratedCompositingEnabled()
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebChromeClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -103,7 +103,6 @@
</span><span class="cx">     return static_cast&lt;double&gt;(size.height()) * size.width();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-
</del><span class="cx"> static WebFrame* findLargestFrameInFrameSet(WebPage&amp; page)
</span><span class="cx"> {
</span><span class="cx">     // Approximate what a user could consider a default target frame for application menu operations.
</span><span class="lines">@@ -179,20 +178,22 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(COCOA)
</span><del>-void WebChromeClient::elementDidFocus(const WebCore::Node* node)
</del><ins>+
+void WebChromeClient::elementDidFocus(Element&amp; element)
</ins><span class="cx"> {
</span><del>-    m_page.elementDidFocus(const_cast&lt;WebCore::Node*&gt;(node));
</del><ins>+    m_page.elementDidFocus(&amp;element);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::elementDidBlur(const WebCore::Node* node)
</del><ins>+void WebChromeClient::elementDidBlur(Element&amp; element)
</ins><span class="cx"> {
</span><del>-    m_page.elementDidBlur(const_cast&lt;WebCore::Node*&gt;(node));
</del><ins>+    m_page.elementDidBlur(&amp;element);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebChromeClient::makeFirstResponder()
</span><span class="cx"> {
</span><span class="cx">     m_page.send(Messages::WebPageProxy::MakeFirstResponder());
</span><del>-}    
</del><ins>+}
+
</ins><span class="cx"> #endif    
</span><span class="cx"> 
</span><span class="cx"> bool WebChromeClient::canTakeFocus(FocusDirection)
</span><span class="lines">@@ -227,16 +228,16 @@
</span><span class="cx">     WebProcess::singleton().parentProcessConnection()-&gt;send(Messages::WebPageProxy::FocusedFrameChanged(webFrame ? webFrame-&gt;frameID() : 0), m_page.pageID());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Page* WebChromeClient::createWindow(Frame* frame, const FrameLoadRequest&amp; request, const WindowFeatures&amp; windowFeatures, const NavigationAction&amp; navigationAction)
</del><ins>+Page* WebChromeClient::createWindow(Frame&amp; frame, const FrameLoadRequest&amp; request, const WindowFeatures&amp; windowFeatures, const NavigationAction&amp; navigationAction)
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(FULLSCREEN_API)
</span><del>-    if (frame-&gt;document() &amp;&amp; frame-&gt;document()-&gt;webkitCurrentFullScreenElement())
-        frame-&gt;document()-&gt;webkitCancelFullScreen();
</del><ins>+    if (frame.document() &amp;&amp; frame.document()-&gt;webkitCurrentFullScreenElement())
+        frame.document()-&gt;webkitCancelFullScreen();
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     auto&amp; webProcess = WebProcess::singleton();
</span><span class="cx"> 
</span><del>-    WebFrame* webFrame = WebFrame::fromCoreFrame(*frame);
</del><ins>+    WebFrame* webFrame = WebFrame::fromCoreFrame(frame);
</ins><span class="cx"> 
</span><span class="cx">     NavigationActionData navigationActionData;
</span><span class="cx">     navigationActionData.navigationType = navigationAction.type();
</span><span class="lines">@@ -250,7 +251,7 @@
</span><span class="cx"> 
</span><span class="cx">     uint64_t newPageID = 0;
</span><span class="cx">     WebPageCreationParameters parameters;
</span><del>-    if (!webProcess.parentProcessConnection()-&gt;sendSync(Messages::WebPageProxy::CreateNewPage(webFrame-&gt;frameID(), SecurityOriginData::fromFrame(frame), request.resourceRequest(), windowFeatures, navigationActionData), Messages::WebPageProxy::CreateNewPage::Reply(newPageID, parameters), m_page.pageID()))
</del><ins>+    if (!webProcess.parentProcessConnection()-&gt;sendSync(Messages::WebPageProxy::CreateNewPage(webFrame-&gt;frameID(), SecurityOriginData::fromFrame(&amp;frame), request.resourceRequest(), windowFeatures, navigationActionData), Messages::WebPageProxy::CreateNewPage::Reply(newPageID, parameters), m_page.pageID()))
</ins><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     if (!newPageID)
</span><span class="lines">@@ -361,9 +362,9 @@
</span><span class="cx">     return m_page.canRunBeforeUnloadConfirmPanel();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool WebChromeClient::runBeforeUnloadConfirmPanel(const String&amp; message, Frame* frame)
</del><ins>+bool WebChromeClient::runBeforeUnloadConfirmPanel(const String&amp; message, Frame&amp; frame)
</ins><span class="cx"> {
</span><del>-    WebFrame* webFrame = WebFrame::fromCoreFrame(*frame);
</del><ins>+    WebFrame* webFrame = WebFrame::fromCoreFrame(frame);
</ins><span class="cx"> 
</span><span class="cx">     bool shouldClose = false;
</span><span class="cx"> 
</span><span class="lines">@@ -402,12 +403,12 @@
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::runJavaScriptAlert(Frame* frame, const String&amp; alertText)
</del><ins>+void WebChromeClient::runJavaScriptAlert(Frame&amp; frame, const String&amp; alertText)
</ins><span class="cx"> {
</span><del>-    if (shouldSuppressJavaScriptDialogs(*frame))
</del><ins>+    if (shouldSuppressJavaScriptDialogs(frame))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    WebFrame* webFrame = WebFrame::fromCoreFrame(*frame);
</del><ins>+    WebFrame* webFrame = WebFrame::fromCoreFrame(frame);
</ins><span class="cx">     ASSERT(webFrame);
</span><span class="cx"> 
</span><span class="cx">     // Notify the bundle client.
</span><span class="lines">@@ -415,15 +416,15 @@
</span><span class="cx"> 
</span><span class="cx">     HangDetectionDisabler hangDetectionDisabler;
</span><span class="cx"> 
</span><del>-    WebProcess::singleton().parentProcessConnection()-&gt;sendSync(Messages::WebPageProxy::RunJavaScriptAlert(webFrame-&gt;frameID(), SecurityOriginData::fromFrame(frame), alertText), Messages::WebPageProxy::RunJavaScriptAlert::Reply(), m_page.pageID(), Seconds::infinity(), IPC::SendSyncOption::InformPlatformProcessWillSuspend);
</del><ins>+    WebProcess::singleton().parentProcessConnection()-&gt;sendSync(Messages::WebPageProxy::RunJavaScriptAlert(webFrame-&gt;frameID(), SecurityOriginData::fromFrame(&amp;frame), alertText), Messages::WebPageProxy::RunJavaScriptAlert::Reply(), m_page.pageID(), Seconds::infinity(), IPC::SendSyncOption::InformPlatformProcessWillSuspend);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool WebChromeClient::runJavaScriptConfirm(Frame* frame, const String&amp; message)
</del><ins>+bool WebChromeClient::runJavaScriptConfirm(Frame&amp; frame, const String&amp; message)
</ins><span class="cx"> {
</span><del>-    if (shouldSuppressJavaScriptDialogs(*frame))
</del><ins>+    if (shouldSuppressJavaScriptDialogs(frame))
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    WebFrame* webFrame = WebFrame::fromCoreFrame(*frame);
</del><ins>+    WebFrame* webFrame = WebFrame::fromCoreFrame(frame);
</ins><span class="cx">     ASSERT(webFrame);
</span><span class="cx"> 
</span><span class="cx">     // Notify the bundle client.
</span><span class="lines">@@ -432,18 +433,18 @@
</span><span class="cx">     HangDetectionDisabler hangDetectionDisabler;
</span><span class="cx"> 
</span><span class="cx">     bool result = false;
</span><del>-    if (!WebProcess::singleton().parentProcessConnection()-&gt;sendSync(Messages::WebPageProxy::RunJavaScriptConfirm(webFrame-&gt;frameID(), SecurityOriginData::fromFrame(frame), message), Messages::WebPageProxy::RunJavaScriptConfirm::Reply(result), m_page.pageID(), Seconds::infinity(), IPC::SendSyncOption::InformPlatformProcessWillSuspend))
</del><ins>+    if (!WebProcess::singleton().parentProcessConnection()-&gt;sendSync(Messages::WebPageProxy::RunJavaScriptConfirm(webFrame-&gt;frameID(), SecurityOriginData::fromFrame(&amp;frame), message), Messages::WebPageProxy::RunJavaScriptConfirm::Reply(result), m_page.pageID(), Seconds::infinity(), IPC::SendSyncOption::InformPlatformProcessWillSuspend))
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool WebChromeClient::runJavaScriptPrompt(Frame* frame, const String&amp; message, const String&amp; defaultValue, String&amp; result)
</del><ins>+bool WebChromeClient::runJavaScriptPrompt(Frame&amp; frame, const String&amp; message, const String&amp; defaultValue, String&amp; result)
</ins><span class="cx"> {
</span><del>-    if (shouldSuppressJavaScriptDialogs(*frame))
</del><ins>+    if (shouldSuppressJavaScriptDialogs(frame))
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    WebFrame* webFrame = WebFrame::fromCoreFrame(*frame);
</del><ins>+    WebFrame* webFrame = WebFrame::fromCoreFrame(frame);
</ins><span class="cx">     ASSERT(webFrame);
</span><span class="cx"> 
</span><span class="cx">     // Notify the bundle client.
</span><span class="lines">@@ -451,7 +452,7 @@
</span><span class="cx"> 
</span><span class="cx">     HangDetectionDisabler hangDetectionDisabler;
</span><span class="cx"> 
</span><del>-    if (!WebProcess::singleton().parentProcessConnection()-&gt;sendSync(Messages::WebPageProxy::RunJavaScriptPrompt(webFrame-&gt;frameID(), SecurityOriginData::fromFrame(frame), message, defaultValue), Messages::WebPageProxy::RunJavaScriptPrompt::Reply(result), m_page.pageID(), Seconds::infinity(), IPC::SendSyncOption::InformPlatformProcessWillSuspend))
</del><ins>+    if (!WebProcess::singleton().parentProcessConnection()-&gt;sendSync(Messages::WebPageProxy::RunJavaScriptPrompt(webFrame-&gt;frameID(), SecurityOriginData::fromFrame(&amp;frame), message, defaultValue), Messages::WebPageProxy::RunJavaScriptPrompt::Reply(result), m_page.pageID(), Seconds::infinity(), IPC::SendSyncOption::InformPlatformProcessWillSuspend))
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     return !result.isNull();
</span><span class="lines">@@ -556,7 +557,7 @@
</span><span class="cx">     return 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::contentsSizeChanged(Frame* frame, const IntSize&amp; size) const
</del><ins>+void WebChromeClient::contentsSizeChanged(Frame&amp; frame, const IntSize&amp; size) const
</ins><span class="cx"> {
</span><span class="cx">     if (!m_page.corePage()-&gt;settings().frameFlatteningEnabled()) {
</span><span class="cx">         WebFrame* largestFrame = findLargestFrameInFrameSet(m_page);
</span><span class="lines">@@ -566,7 +567,7 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (&amp;frame-&gt;page()-&gt;mainFrame() != frame)
</del><ins>+    if (&amp;frame.page()-&gt;mainFrame() != &amp;frame)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     m_page.send(Messages::WebPageProxy::DidChangeContentSize(size));
</span><span class="lines">@@ -573,7 +574,7 @@
</span><span class="cx"> 
</span><span class="cx">     m_page.drawingArea()-&gt;mainFrameContentSizeChanged(size);
</span><span class="cx"> 
</span><del>-    FrameView* frameView = frame-&gt;view();
</del><ins>+    FrameView* frameView = frame.view();
</ins><span class="cx">     if (frameView &amp;&amp; !frameView-&gt;delegatesScrolling())  {
</span><span class="cx">         bool hasHorizontalScrollbar = frameView-&gt;horizontalScrollbar();
</span><span class="cx">         bool hasVerticalScrollbar = frameView-&gt;verticalScrollbar();
</span><span class="lines">@@ -611,21 +612,21 @@
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx">     
</span><del>-void WebChromeClient::unavailablePluginButtonClicked(Element* element, RenderEmbeddedObject::PluginUnavailabilityReason pluginUnavailabilityReason) const
</del><ins>+void WebChromeClient::unavailablePluginButtonClicked(Element&amp; element, RenderEmbeddedObject::PluginUnavailabilityReason pluginUnavailabilityReason) const
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(NETSCAPE_PLUGIN_API)
</span><del>-    ASSERT(element-&gt;hasTagName(objectTag) || element-&gt;hasTagName(embedTag) || element-&gt;hasTagName(appletTag));
</del><ins>+    ASSERT(element.hasTagName(objectTag) || element.hasTagName(embedTag) || element.hasTagName(appletTag));
</ins><span class="cx">     ASSERT(pluginUnavailabilityReason == RenderEmbeddedObject::PluginMissing || pluginUnavailabilityReason == RenderEmbeddedObject::InsecurePluginVersion || pluginUnavailabilityReason);
</span><span class="cx"> 
</span><del>-    HTMLPlugInImageElement* pluginElement = static_cast&lt;HTMLPlugInImageElement*&gt;(element);
</del><ins>+    auto&amp; pluginElement = downcast&lt;HTMLPlugInImageElement&gt;(element);
</ins><span class="cx"> 
</span><del>-    String frameURLString = pluginElement-&gt;document().frame()-&gt;loader().documentLoader()-&gt;responseURL().string();
</del><ins>+    String frameURLString = pluginElement.document().frame()-&gt;loader().documentLoader()-&gt;responseURL().string();
</ins><span class="cx">     String pageURLString = m_page.mainFrame()-&gt;loader().documentLoader()-&gt;responseURL().string();
</span><del>-    String pluginURLString = pluginElement-&gt;document().completeURL(pluginElement-&gt;url()).string();
-    URL pluginspageAttributeURL = element-&gt;document().completeURL(stripLeadingAndTrailingHTMLSpaces(pluginElement-&gt;getAttribute(pluginspageAttr)));
</del><ins>+    String pluginURLString = pluginElement.document().completeURL(pluginElement.url()).string();
+    URL pluginspageAttributeURL = pluginElement.document().completeURL(stripLeadingAndTrailingHTMLSpaces(pluginElement.attributeWithoutSynchronization(pluginspageAttr)));
</ins><span class="cx">     if (!pluginspageAttributeURL.protocolIsInHTTPFamily())
</span><span class="cx">         pluginspageAttributeURL = URL();
</span><del>-    m_page.send(Messages::WebPageProxy::UnavailablePluginButtonClicked(pluginUnavailabilityReason, pluginElement-&gt;serviceType(), pluginURLString, pluginspageAttributeURL.string(), frameURLString, pageURLString));
</del><ins>+    m_page.send(Messages::WebPageProxy::UnavailablePluginButtonClicked(pluginUnavailabilityReason, pluginElement.serviceType(), pluginURLString, pluginspageAttributeURL.string(), frameURLString, pageURLString));
</ins><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(element);
</span><span class="cx">     UNUSED_PARAM(pluginUnavailabilityReason);
</span><span class="lines">@@ -660,9 +661,9 @@
</span><span class="cx">     m_page.send(Messages::WebPageProxy::SetToolTip(m_cachedToolTip));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::print(Frame* frame)
</del><ins>+void WebChromeClient::print(Frame&amp; frame)
</ins><span class="cx"> {
</span><del>-    WebFrame* webFrame = WebFrame::fromCoreFrame(*frame);
</del><ins>+    WebFrame* webFrame = WebFrame::fromCoreFrame(frame);
</ins><span class="cx">     ASSERT(webFrame);
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(GTK) &amp;&amp; HAVE(GTK_UNIX_PRINTING)
</span><span class="lines">@@ -688,23 +689,23 @@
</span><span class="cx">     m_page.sendSync(Messages::WebPageProxy::PrintFrame(webFrame-&gt;frameID()), Messages::WebPageProxy::PrintFrame::Reply(), Seconds::infinity(), IPC::SendSyncOption::InformPlatformProcessWillSuspend);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::exceededDatabaseQuota(Frame* frame, const String&amp; databaseName, DatabaseDetails details)
</del><ins>+void WebChromeClient::exceededDatabaseQuota(Frame&amp; frame, const String&amp; databaseName, DatabaseDetails details)
</ins><span class="cx"> {
</span><del>-    WebFrame* webFrame = WebFrame::fromCoreFrame(*frame);
</del><ins>+    WebFrame* webFrame = WebFrame::fromCoreFrame(frame);
</ins><span class="cx">     ASSERT(webFrame);
</span><span class="cx">     
</span><del>-    auto&amp; origin = frame-&gt;document()-&gt;securityOrigin();
</del><ins>+    auto&amp; origin = frame.document()-&gt;securityOrigin();
</ins><span class="cx">     auto originData = SecurityOriginData::fromSecurityOrigin(origin);
</span><span class="cx">     auto&amp; tracker = DatabaseTracker::singleton();
</span><span class="cx">     auto currentQuota = tracker.quota(originData);
</span><span class="cx">     auto currentOriginUsage = tracker.usage(originData);
</span><span class="cx">     uint64_t newQuota = 0;
</span><del>-    RefPtr&lt;API::SecurityOrigin&gt; securityOrigin = API::SecurityOrigin::create(WebCore::SecurityOriginData::fromDatabaseIdentifier(WebCore::SecurityOriginData::fromSecurityOrigin(origin).databaseIdentifier())-&gt;securityOrigin());
</del><ins>+    RefPtr&lt;API::SecurityOrigin&gt; securityOrigin = API::SecurityOrigin::create(SecurityOriginData::fromDatabaseIdentifier(SecurityOriginData::fromSecurityOrigin(origin).databaseIdentifier())-&gt;securityOrigin());
</ins><span class="cx">     newQuota = m_page.injectedBundleUIClient().didExceedDatabaseQuota(&amp;m_page, securityOrigin.get(), databaseName, details.displayName(), currentQuota, currentOriginUsage, details.currentUsage(), details.expectedUsage());
</span><span class="cx"> 
</span><span class="cx">     if (!newQuota) {
</span><span class="cx">         WebProcess::singleton().parentProcessConnection()-&gt;sendSync(
</span><del>-            Messages::WebPageProxy::ExceededDatabaseQuota(webFrame-&gt;frameID(), WebCore::SecurityOriginData::fromSecurityOrigin(origin).databaseIdentifier(), databaseName, details.displayName(), currentQuota, currentOriginUsage, details.currentUsage(), details.expectedUsage()),
</del><ins>+            Messages::WebPageProxy::ExceededDatabaseQuota(webFrame-&gt;frameID(), SecurityOriginData::fromSecurityOrigin(origin).databaseIdentifier(), databaseName, details.displayName(), currentQuota, currentOriginUsage, details.currentUsage(), details.expectedUsage()),
</ins><span class="cx">             Messages::WebPageProxy::ExceededDatabaseQuota::Reply(newQuota), m_page.pageID(), Seconds::infinity(), IPC::SendSyncOption::InformPlatformProcessWillSuspend);
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -716,9 +717,9 @@
</span><span class="cx">     notImplemented();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::reachedApplicationCacheOriginQuota(SecurityOrigin* origin, int64_t totalBytesNeeded)
</del><ins>+void WebChromeClient::reachedApplicationCacheOriginQuota(SecurityOrigin&amp; origin, int64_t totalBytesNeeded)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;API::SecurityOrigin&gt; securityOrigin = API::SecurityOrigin::createFromString(origin-&gt;toString());
</del><ins>+    RefPtr&lt;API::SecurityOrigin&gt; securityOrigin = API::SecurityOrigin::createFromString(origin.toString());
</ins><span class="cx">     if (m_page.injectedBundleUIClient().didReachApplicationCacheOriginQuota(&amp;m_page, securityOrigin.get(), totalBytesNeeded))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="lines">@@ -729,17 +730,19 @@
</span><span class="cx"> 
</span><span class="cx">     uint64_t newQuota = 0;
</span><span class="cx">     WebProcess::singleton().parentProcessConnection()-&gt;sendSync(
</span><del>-        Messages::WebPageProxy::ReachedApplicationCacheOriginQuota(WebCore::SecurityOriginData::fromSecurityOrigin(*origin).databaseIdentifier(), currentQuota, totalBytesNeeded),
</del><ins>+        Messages::WebPageProxy::ReachedApplicationCacheOriginQuota(SecurityOriginData::fromSecurityOrigin(origin).databaseIdentifier(), currentQuota, totalBytesNeeded),
</ins><span class="cx">         Messages::WebPageProxy::ReachedApplicationCacheOriginQuota::Reply(newQuota), m_page.pageID(), Seconds::infinity(), IPC::SendSyncOption::InformPlatformProcessWillSuspend);
</span><span class="cx"> 
</span><del>-    cacheStorage.storeUpdatedQuotaForOrigin(origin, newQuota);
</del><ins>+    cacheStorage.storeUpdatedQuotaForOrigin(&amp;origin, newQuota);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(DASHBOARD_SUPPORT)
</span><ins>+
</ins><span class="cx"> void WebChromeClient::annotatedRegionsChanged()
</span><span class="cx"> {
</span><span class="cx">     notImplemented();
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> bool WebChromeClient::shouldReplaceWithGeneratedFileForUpload(const String&amp; path, String&amp; generatedFilename)
</span><span class="lines">@@ -754,10 +757,12 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INPUT_TYPE_COLOR)
</span><del>-std::unique_ptr&lt;ColorChooser&gt; WebChromeClient::createColorChooser(ColorChooserClient* client, const Color&amp; initialColor)
</del><ins>+
+std::unique_ptr&lt;ColorChooser&gt; WebChromeClient::createColorChooser(ColorChooserClient&amp; client, const Color&amp; initialColor)
</ins><span class="cx"> {
</span><del>-    return std::make_unique&lt;WebColorChooser&gt;(&amp;m_page, client, initialColor);
</del><ins>+    return std::make_unique&lt;WebColorChooser&gt;(&amp;m_page, &amp;client, initialColor);
</ins><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> void WebChromeClient::runOpenPanel(Frame&amp; frame, FileChooser&amp; fileChooser)
</span><span class="lines">@@ -779,7 +784,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if !PLATFORM(IOS)
</span><span class="cx"> 
</span><del>-void WebChromeClient::setCursor(const WebCore::Cursor&amp; cursor)
</del><ins>+void WebChromeClient::setCursor(const Cursor&amp; cursor)
</ins><span class="cx"> {
</span><span class="cx">     m_page.send(Messages::WebPageProxy::SetCursor(cursor));
</span><span class="cx"> }
</span><span class="lines">@@ -802,7 +807,7 @@
</span><span class="cx"> 
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-void WebChromeClient::didAssociateFormControls(const Vector&lt;RefPtr&lt;WebCore::Element&gt;&gt;&amp; elements)
</del><ins>+void WebChromeClient::didAssociateFormControls(const Vector&lt;RefPtr&lt;Element&gt;&gt;&amp; elements)
</ins><span class="cx"> {
</span><span class="cx">     return m_page.injectedBundleFormClient().didAssociateFormControls(&amp;m_page, elements);
</span><span class="cx"> }
</span><span class="lines">@@ -832,14 +837,14 @@
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;WebCore::PopupMenu&gt; WebChromeClient::createPopupMenu(WebCore::PopupMenuClient* client) const
</del><ins>+RefPtr&lt;PopupMenu&gt; WebChromeClient::createPopupMenu(PopupMenuClient&amp; client) const
</ins><span class="cx"> {
</span><del>-    return WebPopupMenu::create(&amp;m_page, client);
</del><ins>+    return WebPopupMenu::create(&amp;m_page, &amp;client);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;WebCore::SearchPopupMenu&gt; WebChromeClient::createSearchPopupMenu(WebCore::PopupMenuClient* client) const
</del><ins>+RefPtr&lt;SearchPopupMenu&gt; WebChromeClient::createSearchPopupMenu(PopupMenuClient&amp; client) const
</ins><span class="cx"> {
</span><del>-    return WebSearchPopupMenu::create(&amp;m_page, client);
</del><ins>+    return WebSearchPopupMenu::create(&amp;m_page, &amp;client);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> GraphicsLayerFactory* WebChromeClient::graphicsLayerFactory() const
</span><span class="lines">@@ -851,7 +856,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
</span><span class="cx"> 
</span><del>-RefPtr&lt;WebCore::DisplayRefreshMonitor&gt; WebChromeClient::createDisplayRefreshMonitor(PlatformDisplayID displayID) const
</del><ins>+RefPtr&lt;DisplayRefreshMonitor&gt; WebChromeClient::createDisplayRefreshMonitor(PlatformDisplayID displayID) const
</ins><span class="cx"> {
</span><span class="cx">     return m_page.drawingArea()-&gt;createDisplayRefreshMonitor(displayID);
</span><span class="cx"> }
</span><span class="lines">@@ -858,7 +863,7 @@
</span><span class="cx"> 
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-void WebChromeClient::attachRootGraphicsLayer(Frame*, GraphicsLayer* layer)
</del><ins>+void WebChromeClient::attachRootGraphicsLayer(Frame&amp;, GraphicsLayer* layer)
</ins><span class="cx"> {
</span><span class="cx">     if (layer)
</span><span class="cx">         m_page.enterAcceleratedCompositingMode(layer);
</span><span class="lines">@@ -866,10 +871,10 @@
</span><span class="cx">         m_page.exitAcceleratedCompositingMode();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::attachViewOverlayGraphicsLayer(Frame* frame, GraphicsLayer* graphicsLayer)
</del><ins>+void WebChromeClient::attachViewOverlayGraphicsLayer(Frame&amp; frame, GraphicsLayer* graphicsLayer)
</ins><span class="cx"> {
</span><span class="cx">     if (auto drawingArea = m_page.drawingArea())
</span><del>-        drawingArea-&gt;attachViewOverlayGraphicsLayer(frame, graphicsLayer);
</del><ins>+        drawingArea-&gt;attachViewOverlayGraphicsLayer(&amp;frame, graphicsLayer);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebChromeClient::setNeedsOneShotDrawingSynchronization()
</span><span class="lines">@@ -883,7 +888,7 @@
</span><span class="cx">         m_page.drawingArea()-&gt;scheduleCompositingLayerFlush();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool WebChromeClient::adjustLayerFlushThrottling(WebCore::LayerFlushThrottleState::Flags flags)
</del><ins>+bool WebChromeClient::adjustLayerFlushThrottling(LayerFlushThrottleState::Flags flags)
</ins><span class="cx"> {
</span><span class="cx">     return m_page.drawingArea() &amp;&amp; m_page.drawingArea()-&gt;adjustLayerFlushThrottling(flags);
</span><span class="cx"> }
</span><span class="lines">@@ -898,9 +903,9 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(ASYNC_SCROLLING)
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;ScrollingCoordinator&gt; WebChromeClient::createScrollingCoordinator(Page* page) const
</del><ins>+RefPtr&lt;ScrollingCoordinator&gt; WebChromeClient::createScrollingCoordinator(Page&amp; page) const
</ins><span class="cx"> {
</span><del>-    ASSERT(m_page.corePage() == page);
</del><ins>+    ASSERT_UNUSED(page, m_page.corePage() == &amp;page);
</ins><span class="cx">     if (m_page.drawingArea()-&gt;type() != DrawingAreaTypeRemoteLayerTree)
</span><span class="cx">         return nullptr;
</span><span class="cx">     return RemoteScrollingCoordinator::create(&amp;m_page);
</span><span class="lines">@@ -910,12 +915,12 @@
</span><span class="cx"> 
</span><span class="cx"> #if (PLATFORM(IOS) &amp;&amp; HAVE(AVKIT)) || (PLATFORM(MAC) &amp;&amp; ENABLE(VIDEO_PRESENTATION_MODE))
</span><span class="cx"> 
</span><del>-bool WebChromeClient::supportsVideoFullscreen(WebCore::HTMLMediaElementEnums::VideoFullscreenMode mode)
</del><ins>+bool WebChromeClient::supportsVideoFullscreen(HTMLMediaElementEnums::VideoFullscreenMode mode)
</ins><span class="cx"> {
</span><span class="cx">     return m_page.videoFullscreenManager().supportsVideoFullscreen(mode);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::setUpPlaybackControlsManager(WebCore::HTMLMediaElement&amp; mediaElement)
</del><ins>+void WebChromeClient::setUpPlaybackControlsManager(HTMLMediaElement&amp; mediaElement)
</ins><span class="cx"> {
</span><span class="cx">     m_page.playbackSessionManager().setUpPlaybackControlsManager(mediaElement);
</span><span class="cx"> }
</span><span class="lines">@@ -925,13 +930,13 @@
</span><span class="cx">     m_page.playbackSessionManager().clearPlaybackControlsManager();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::enterVideoFullscreenForVideoElement(WebCore::HTMLVideoElement&amp; videoElement, WebCore::HTMLMediaElementEnums::VideoFullscreenMode mode)
</del><ins>+void WebChromeClient::enterVideoFullscreenForVideoElement(HTMLVideoElement&amp; videoElement, HTMLMediaElementEnums::VideoFullscreenMode mode)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(mode != HTMLMediaElementEnums::VideoFullscreenModeNone);
</span><span class="cx">     m_page.videoFullscreenManager().enterVideoFullscreenForVideoElement(videoElement, mode);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::exitVideoFullscreenForVideoElement(WebCore::HTMLVideoElement&amp; videoElement)
</del><ins>+void WebChromeClient::exitVideoFullscreenForVideoElement(HTMLVideoElement&amp; videoElement)
</ins><span class="cx"> {
</span><span class="cx">     m_page.videoFullscreenManager().exitVideoFullscreenForVideoElement(videoElement);
</span><span class="cx"> }
</span><span class="lines">@@ -940,7 +945,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(MAC) &amp;&amp; ENABLE(VIDEO_PRESENTATION_MODE)
</span><span class="cx"> 
</span><del>-void WebChromeClient::exitVideoFullscreenToModeWithoutAnimation(WebCore::HTMLVideoElement&amp; videoElement, HTMLMediaElementEnums::VideoFullscreenMode targetMode)
</del><ins>+void WebChromeClient::exitVideoFullscreenToModeWithoutAnimation(HTMLVideoElement&amp; videoElement, HTMLMediaElementEnums::VideoFullscreenMode targetMode)
</ins><span class="cx"> {
</span><span class="cx">     m_page.videoFullscreenManager().exitVideoFullscreenToModeWithoutAnimation(videoElement, targetMode);
</span><span class="cx"> }
</span><span class="lines">@@ -949,19 +954,19 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(FULLSCREEN_API)
</span><span class="cx"> 
</span><del>-bool WebChromeClient::supportsFullScreenForElement(const WebCore::Element*, bool withKeyboard)
</del><ins>+bool WebChromeClient::supportsFullScreenForElement(const Element&amp;, bool withKeyboard)
</ins><span class="cx"> {
</span><span class="cx">     return m_page.fullScreenManager()-&gt;supportsFullScreen(withKeyboard);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::enterFullScreenForElement(WebCore::Element* element)
</del><ins>+void WebChromeClient::enterFullScreenForElement(Element&amp; element)
</ins><span class="cx"> {
</span><del>-    m_page.fullScreenManager()-&gt;enterFullScreenForElement(element);
</del><ins>+    m_page.fullScreenManager()-&gt;enterFullScreenForElement(&amp;element);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::exitFullScreenForElement(WebCore::Element* element)
</del><ins>+void WebChromeClient::exitFullScreenForElement(Element&amp; element)
</ins><span class="cx"> {
</span><del>-    m_page.fullScreenManager()-&gt;exitFullScreenForElement(element);
</del><ins>+    m_page.fullScreenManager()-&gt;exitFullScreenForElement(&amp;element);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #endif
</span><span class="lines">@@ -1049,32 +1054,32 @@
</span><span class="cx">     m_page.send(Messages::WebProcessProxy::DisableSuddenTermination());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::didAddHeaderLayer(GraphicsLayer* headerParent)
</del><ins>+void WebChromeClient::didAddHeaderLayer(GraphicsLayer&amp; headerParent)
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(RUBBER_BANDING)
</span><span class="cx">     if (PageBanner* banner = m_page.headerPageBanner())
</span><del>-        banner-&gt;didAddParentLayer(headerParent);
</del><ins>+        banner-&gt;didAddParentLayer(&amp;headerParent);
</ins><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(headerParent);
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::didAddFooterLayer(GraphicsLayer* footerParent)
</del><ins>+void WebChromeClient::didAddFooterLayer(GraphicsLayer&amp; footerParent)
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(RUBBER_BANDING)
</span><span class="cx">     if (PageBanner* banner = m_page.footerPageBanner())
</span><del>-        banner-&gt;didAddParentLayer(footerParent);
</del><ins>+        banner-&gt;didAddParentLayer(&amp;footerParent);
</ins><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(footerParent);
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool WebChromeClient::shouldUseTiledBackingForFrameView(const FrameView* frameView) const
</del><ins>+bool WebChromeClient::shouldUseTiledBackingForFrameView(const FrameView&amp; frameView) const
</ins><span class="cx"> {
</span><del>-    return m_page.drawingArea()-&gt;shouldUseTiledBackingForFrameView(frameView);
</del><ins>+    return m_page.drawingArea()-&gt;shouldUseTiledBackingForFrameView(&amp;frameView);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::isPlayingMediaDidChange(WebCore::MediaProducer::MediaStateFlags state, uint64_t sourceElementID)
</del><ins>+void WebChromeClient::isPlayingMediaDidChange(MediaProducer::MediaStateFlags state, uint64_t sourceElementID)
</ins><span class="cx"> {
</span><span class="cx">     m_page.send(Messages::WebPageProxy::IsPlayingMediaDidChange(state, sourceElementID));
</span><span class="cx"> }
</span><span class="lines">@@ -1086,7 +1091,7 @@
</span><span class="cx">     m_page.send(Messages::WebPageProxy::HasMediaSessionWithActiveMediaElementsDidChange(state));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::mediaSessionMetadataDidChange(const WebCore::MediaSessionMetadata&amp; metadata)
</del><ins>+void WebChromeClient::mediaSessionMetadataDidChange(const MediaSessionMetadata&amp; metadata)
</ins><span class="cx"> {
</span><span class="cx">     m_page.send(Messages::WebPageProxy::MediaSessionMetadataDidChange(metadata));
</span><span class="cx"> }
</span><span class="lines">@@ -1120,7 +1125,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(TELEPHONE_NUMBER_DETECTION) &amp;&amp; PLATFORM(MAC)
</span><span class="cx"> 
</span><del>-void WebChromeClient::handleTelephoneNumberClick(const String&amp; number, const WebCore::IntPoint&amp; point)
</del><ins>+void WebChromeClient::handleTelephoneNumberClick(const String&amp; number, const IntPoint&amp; point)
</ins><span class="cx"> {
</span><span class="cx">     m_page.handleTelephoneNumberClick(number, point);
</span><span class="cx"> }
</span><span class="lines">@@ -1129,7 +1134,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(SERVICE_CONTROLS)
</span><span class="cx"> 
</span><del>-void WebChromeClient::handleSelectionServiceClick(WebCore::FrameSelection&amp; selection, const Vector&lt;String&gt;&amp; telephoneNumbers, const WebCore::IntPoint&amp; point)
</del><ins>+void WebChromeClient::handleSelectionServiceClick(FrameSelection&amp; selection, const Vector&lt;String&gt;&amp; telephoneNumbers, const IntPoint&amp; point)
</ins><span class="cx"> {
</span><span class="cx">     m_page.handleSelectionServiceClick(selection, telephoneNumbers, point);
</span><span class="cx"> }
</span><span class="lines">@@ -1170,7 +1175,7 @@
</span><span class="cx">     m_page.send(Messages::WebPageProxy::RemovePlaybackTargetPickerClient(contextId));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::showPlaybackTargetPicker(uint64_t contextId, const WebCore::IntPoint&amp; position, bool isVideo)
</del><ins>+void WebChromeClient::showPlaybackTargetPicker(uint64_t contextId, const IntPoint&amp; position, bool isVideo)
</ins><span class="cx"> {
</span><span class="cx">     FrameView* frameView = m_page.mainFrame()-&gt;view();
</span><span class="cx">     FloatRect rect(frameView-&gt;contentsToRootView(frameView-&gt;windowToContents(position)), FloatSize());
</span><span class="lines">@@ -1177,7 +1182,7 @@
</span><span class="cx">     m_page.send(Messages::WebPageProxy::ShowPlaybackTargetPicker(contextId, rect, isVideo));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::playbackTargetPickerClientStateDidChange(uint64_t contextId, WebCore::MediaProducer::MediaStateFlags state)
</del><ins>+void WebChromeClient::playbackTargetPickerClientStateDidChange(uint64_t contextId, MediaProducer::MediaStateFlags state)
</ins><span class="cx"> {
</span><span class="cx">     m_page.send(Messages::WebPageProxy::PlaybackTargetPickerClientStateDidChange(contextId, state));
</span><span class="cx"> }
</span><span class="lines">@@ -1187,7 +1192,7 @@
</span><span class="cx">     m_page.send(Messages::WebPageProxy::SetMockMediaPlaybackTargetPickerEnabled(enabled));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::setMockMediaPlaybackTargetPickerState(const String&amp; name, WebCore::MediaPlaybackTargetContext::State state)
</del><ins>+void WebChromeClient::setMockMediaPlaybackTargetPickerState(const String&amp; name, MediaPlaybackTargetContext::State state)
</ins><span class="cx"> {
</span><span class="cx">     m_page.send(Messages::WebPageProxy::SetMockMediaPlaybackTargetPickerState(name, state));
</span><span class="cx"> }
</span><span class="lines">@@ -1194,7 +1199,7 @@
</span><span class="cx"> 
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-void WebChromeClient::imageOrMediaDocumentSizeChanged(const WebCore::IntSize&amp; newSize)
</del><ins>+void WebChromeClient::imageOrMediaDocumentSizeChanged(const IntSize&amp; newSize)
</ins><span class="cx"> {
</span><span class="cx">     m_page.imageOrMediaDocumentSizeChanged(newSize);
</span><span class="cx"> }
</span><span class="lines">@@ -1201,7 +1206,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(VIDEO) &amp;&amp; USE(GSTREAMER)
</span><span class="cx"> 
</span><del>-void WebChromeClient::requestInstallMissingMediaPlugins(const String&amp; details, const String&amp; description, WebCore::MediaPlayerRequestInstallMissingPluginsCallback&amp; callback)
</del><ins>+void WebChromeClient::requestInstallMissingMediaPlugins(const String&amp; details, const String&amp; description, MediaPlayerRequestInstallMissingPluginsCallback&amp; callback)
</ins><span class="cx"> {
</span><span class="cx">     m_page.requestInstallMissingMediaPlugins(details, description, callback);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebChromeClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -62,7 +62,7 @@
</span><span class="cx">     // Frame wants to create the new Page.  Also, the newly created window
</span><span class="cx">     // should not be shown to the user until the ChromeClient of the newly
</span><span class="cx">     // created Page has its show method called.
</span><del>-    WebCore::Page* createWindow(WebCore::Frame*, const WebCore::FrameLoadRequest&amp;, const WebCore::WindowFeatures&amp;, const WebCore::NavigationAction&amp;) final;
</del><ins>+    WebCore::Page* createWindow(WebCore::Frame&amp;, const WebCore::FrameLoadRequest&amp;, const WebCore::WindowFeatures&amp;, const WebCore::NavigationAction&amp;) final;
</ins><span class="cx">     void show() final;
</span><span class="cx">     
</span><span class="cx">     bool canRunModal() final;
</span><span class="lines">@@ -87,13 +87,13 @@
</span><span class="cx">     void addMessageToConsole(JSC::MessageSource, JSC::MessageLevel, const String&amp; message, unsigned lineNumber, unsigned columnNumber, const String&amp; sourceID) final;
</span><span class="cx">     
</span><span class="cx">     bool canRunBeforeUnloadConfirmPanel() final;
</span><del>-    bool runBeforeUnloadConfirmPanel(const String&amp; message, WebCore::Frame*) final;
</del><ins>+    bool runBeforeUnloadConfirmPanel(const String&amp; message, WebCore::Frame&amp;) final;
</ins><span class="cx">     
</span><span class="cx">     void closeWindowSoon() final;
</span><span class="cx">     
</span><del>-    void runJavaScriptAlert(WebCore::Frame*, const String&amp;) final;
-    bool runJavaScriptConfirm(WebCore::Frame*, const String&amp;) final;
-    bool runJavaScriptPrompt(WebCore::Frame*, const String&amp; message, const String&amp; defaultValue, String&amp; result) final;
</del><ins>+    void runJavaScriptAlert(WebCore::Frame&amp;, const String&amp;) final;
+    bool runJavaScriptConfirm(WebCore::Frame&amp;, const String&amp;) final;
+    bool runJavaScriptPrompt(WebCore::Frame&amp;, const String&amp; message, const String&amp; defaultValue, String&amp; result) final;
</ins><span class="cx">     void setStatusbarText(const String&amp;) final;
</span><span class="cx"> 
</span><span class="cx">     WebCore::KeyboardUIMode keyboardUIMode() final;
</span><span class="lines">@@ -117,11 +117,11 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     PlatformPageClient platformPageClient() const final;
</span><del>-    void contentsSizeChanged(WebCore::Frame*, const WebCore::IntSize&amp;) const final;
</del><ins>+    void contentsSizeChanged(WebCore::Frame&amp;, const WebCore::IntSize&amp;) const final;
</ins><span class="cx">     void scrollRectIntoView(const WebCore::IntRect&amp;) const final; // Currently only Mac has a non empty implementation.
</span><span class="cx"> 
</span><span class="cx">     bool shouldUnavailablePluginMessageBeButton(WebCore::RenderEmbeddedObject::PluginUnavailabilityReason) const final;
</span><del>-    void unavailablePluginButtonClicked(WebCore::Element*, WebCore::RenderEmbeddedObject::PluginUnavailabilityReason) const final;
</del><ins>+    void unavailablePluginButtonClicked(WebCore::Element&amp;, WebCore::RenderEmbeddedObject::PluginUnavailabilityReason) const final;
</ins><span class="cx"> 
</span><span class="cx">     void scrollbarsModeDidChange() const final;
</span><span class="cx">     void mouseDidMoveOverElement(const WebCore::HitTestResult&amp;, unsigned modifierFlags) final;
</span><span class="lines">@@ -128,12 +128,12 @@
</span><span class="cx"> 
</span><span class="cx">     void setToolTip(const String&amp;, WebCore::TextDirection) final;
</span><span class="cx">     
</span><del>-    void print(WebCore::Frame*) final;
</del><ins>+    void print(WebCore::Frame&amp;) final;
</ins><span class="cx"> 
</span><del>-    void exceededDatabaseQuota(WebCore::Frame*, const String&amp; databaseName, WebCore::DatabaseDetails) final;
</del><ins>+    void exceededDatabaseQuota(WebCore::Frame&amp;, const String&amp; databaseName, WebCore::DatabaseDetails) final;
</ins><span class="cx"> 
</span><span class="cx">     void reachedMaxAppCacheSize(int64_t spaceNeeded) final;
</span><del>-    void reachedApplicationCacheOriginQuota(WebCore::SecurityOrigin*, int64_t spaceNeeded) final;
</del><ins>+    void reachedApplicationCacheOriginQuota(WebCore::SecurityOrigin&amp;, int64_t spaceNeeded) final;
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(DASHBOARD_SUPPORT)
</span><span class="cx">     void annotatedRegionsChanged() final;
</span><span class="lines">@@ -143,7 +143,7 @@
</span><span class="cx">     String generateReplacementFile(const String&amp; path) final;
</span><span class="cx">     
</span><span class="cx"> #if ENABLE(INPUT_TYPE_COLOR)
</span><del>-    std::unique_ptr&lt;WebCore::ColorChooser&gt; createColorChooser(WebCore::ColorChooserClient*, const WebCore::Color&amp;) final;
</del><ins>+    std::unique_ptr&lt;WebCore::ColorChooser&gt; createColorChooser(WebCore::ColorChooserClient&amp;, const WebCore::Color&amp;) final;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(IOS_TOUCH_EVENTS)
</span><span class="lines">@@ -152,10 +152,10 @@
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     void didReceiveMobileDocType(bool) final;
</span><del>-    void setNeedsScrollNotifications(WebCore::Frame*, bool) final;
-    void observedContentChange(WebCore::Frame*) final;
-    void clearContentChangeObservers(WebCore::Frame*) final;
-    void notifyRevealedSelectionByScrollingFrame(WebCore::Frame*) final;
</del><ins>+    void setNeedsScrollNotifications(WebCore::Frame&amp;, bool) final;
+    void observedContentChange(WebCore::Frame&amp;) final;
+    void clearContentChangeObservers(WebCore::Frame&amp;) final;
+    void notifyRevealedSelectionByScrollingFrame(WebCore::Frame&amp;) final;
</ins><span class="cx">     bool isStopping() final;
</span><span class="cx"> 
</span><span class="cx">     void didLayout(LayoutType = NormalLayout) final;
</span><span class="lines">@@ -203,12 +203,12 @@
</span><span class="cx">     bool selectItemWritingDirectionIsNatural() final;
</span><span class="cx">     bool selectItemAlignmentFollowsMenuWritingDirection() final;
</span><span class="cx">     bool hasOpenedPopup() const final;
</span><del>-    RefPtr&lt;WebCore::PopupMenu&gt; createPopupMenu(WebCore::PopupMenuClient*) const final;
-    RefPtr&lt;WebCore::SearchPopupMenu&gt; createSearchPopupMenu(WebCore::PopupMenuClient*) const final;
</del><ins>+    RefPtr&lt;WebCore::PopupMenu&gt; createPopupMenu(WebCore::PopupMenuClient&amp;) const final;
+    RefPtr&lt;WebCore::SearchPopupMenu&gt; createSearchPopupMenu(WebCore::PopupMenuClient&amp;) const final;
</ins><span class="cx"> 
</span><span class="cx">     WebCore::GraphicsLayerFactory* graphicsLayerFactory() const final;
</span><del>-    void attachRootGraphicsLayer(WebCore::Frame*, WebCore::GraphicsLayer*) final;
-    void attachViewOverlayGraphicsLayer(WebCore::Frame*, WebCore::GraphicsLayer*) final;
</del><ins>+    void attachRootGraphicsLayer(WebCore::Frame&amp;, WebCore::GraphicsLayer*) final;
+    void attachViewOverlayGraphicsLayer(WebCore::Frame&amp;, WebCore::GraphicsLayer*) final;
</ins><span class="cx">     void setNeedsOneShotDrawingSynchronization() final;
</span><span class="cx">     void scheduleCompositingLayerFlush() final;
</span><span class="cx">     bool adjustLayerFlushThrottling(WebCore::LayerFlushThrottleState::Flags) final;
</span><span class="lines">@@ -233,11 +233,11 @@
</span><span class="cx">     bool layerTreeStateIsFrozen() const final;
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(ASYNC_SCROLLING)
</span><del>-    PassRefPtr&lt;WebCore::ScrollingCoordinator&gt; createScrollingCoordinator(WebCore::Page*) const final;
</del><ins>+    RefPtr&lt;WebCore::ScrollingCoordinator&gt; createScrollingCoordinator(WebCore::Page&amp;) const final;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>-    void elementDidRefocus(const WebCore::Node*) final;
</del><ins>+    void elementDidRefocus(WebCore::Element&amp;) final;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if (PLATFORM(IOS) &amp;&amp; HAVE(AVKIT)) || (PLATFORM(MAC) &amp;&amp; ENABLE(VIDEO_PRESENTATION_MODE))
</span><span class="lines">@@ -253,14 +253,14 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(FULLSCREEN_API)
</span><del>-    bool supportsFullScreenForElement(const WebCore::Element*, bool withKeyboard) final;
-    void enterFullScreenForElement(WebCore::Element*) final;
-    void exitFullScreenForElement(WebCore::Element*) final;
</del><ins>+    bool supportsFullScreenForElement(const WebCore::Element&amp;, bool withKeyboard) final;
+    void enterFullScreenForElement(WebCore::Element&amp;) final;
+    void exitFullScreenForElement(WebCore::Element&amp;) final;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(COCOA)
</span><del>-    void elementDidFocus(const WebCore::Node*) final;
-    void elementDidBlur(const WebCore::Node*) final;
</del><ins>+    void elementDidFocus(WebCore::Element&amp;) final;
+    void elementDidBlur(WebCore::Element&amp;) final;
</ins><span class="cx"> 
</span><span class="cx">     void makeFirstResponder() final;
</span><span class="cx"> #endif
</span><span class="lines">@@ -291,10 +291,10 @@
</span><span class="cx">     String plugInExtraStyleSheet() const final;
</span><span class="cx">     String plugInExtraScript() const final;
</span><span class="cx"> 
</span><del>-    void didAddHeaderLayer(WebCore::GraphicsLayer*) final;
-    void didAddFooterLayer(WebCore::GraphicsLayer*) final;
</del><ins>+    void didAddHeaderLayer(WebCore::GraphicsLayer&amp;) final;
+    void didAddFooterLayer(WebCore::GraphicsLayer&amp;) final;
</ins><span class="cx"> 
</span><del>-    bool shouldUseTiledBackingForFrameView(const WebCore::FrameView*) const final;
</del><ins>+    bool shouldUseTiledBackingForFrameView(const WebCore::FrameView&amp;) const final;
</ins><span class="cx"> 
</span><span class="cx">     void isPlayingMediaDidChange(WebCore::MediaProducer::MediaStateFlags, uint64_t) final;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebFrameLoaderClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -640,13 +640,13 @@
</span><span class="cx"> {
</span><span class="cx">     WebPage* webPage = m_frame-&gt;page();
</span><span class="cx">     if (!webPage)
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx"> 
</span><span class="cx">     // Just call through to the chrome client.
</span><span class="cx">     FrameLoadRequest request(m_frame-&gt;coreFrame()-&gt;document()-&gt;securityOrigin(), navigationAction.resourceRequest(), LockHistory::No, LockBackForwardList::No, MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Allow, navigationAction.shouldOpenExternalURLsPolicy());
</span><del>-    Page* newPage = webPage-&gt;corePage()-&gt;chrome().createWindow(m_frame-&gt;coreFrame(), request, WindowFeatures(), navigationAction);
</del><ins>+    Page* newPage = webPage-&gt;corePage()-&gt;chrome().createWindow(*m_frame-&gt;coreFrame(), request, WindowFeatures(), navigationAction);
</ins><span class="cx">     if (!newPage)
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx">     
</span><span class="cx">     return &amp;newPage-&gt;mainFrame();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebInspectorClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -73,7 +73,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (m_paintRectOverlay &amp;&amp; m_page-&gt;mainFrame())
</span><del>-        m_page-&gt;mainFrame()-&gt;pageOverlayController().uninstallPageOverlay(m_paintRectOverlay.get(), PageOverlay::FadeMode::Fade);
</del><ins>+        m_page-&gt;mainFrame()-&gt;pageOverlayController().uninstallPageOverlay(*m_paintRectOverlay, PageOverlay::FadeMode::Fade);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebInspectorClient::inspectedPageDestroyed()
</span><span class="lines">@@ -126,7 +126,7 @@
</span><span class="cx"> {
</span><span class="cx"> #if !PLATFORM(IOS)
</span><span class="cx">     if (m_highlightOverlay &amp;&amp; m_page-&gt;mainFrame())
</span><del>-        m_page-&gt;mainFrame()-&gt;pageOverlayController().uninstallPageOverlay(m_highlightOverlay, PageOverlay::FadeMode::Fade);
</del><ins>+        m_page-&gt;mainFrame()-&gt;pageOverlayController().uninstallPageOverlay(*m_highlightOverlay, PageOverlay::FadeMode::Fade);
</ins><span class="cx"> #else
</span><span class="cx">     m_page-&gt;hideInspectorHighlight();
</span><span class="cx"> #endif
</span><span class="lines">@@ -136,7 +136,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (!m_paintRectOverlay) {
</span><span class="cx">         m_paintRectOverlay = PageOverlay::create(*this, PageOverlay::OverlayType::Document);
</span><del>-        m_page-&gt;mainFrame()-&gt;pageOverlayController().installPageOverlay(m_paintRectOverlay, PageOverlay::FadeMode::DoNotFade);
</del><ins>+        m_page-&gt;mainFrame()-&gt;pageOverlayController().installPageOverlay(*m_paintRectOverlay, PageOverlay::FadeMode::DoNotFade);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (!m_paintIndicatorLayerClient)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportiosWebChromeClientIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -46,9 +46,9 @@
</span><span class="cx"> 
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-void WebChromeClient::elementDidRefocus(const WebCore::Node* node)
</del><ins>+void WebChromeClient::elementDidRefocus(WebCore::Element&amp; element)
</ins><span class="cx"> {
</span><del>-    elementDidFocus(node);
</del><ins>+    elementDidFocus(element);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebChromeClient::didReceiveMobileDocType(bool isMobileDoctype)
</span><span class="lines">@@ -56,22 +56,22 @@
</span><span class="cx">     m_page.didReceiveMobileDocType(isMobileDoctype);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::setNeedsScrollNotifications(WebCore::Frame*, bool)
</del><ins>+void WebChromeClient::setNeedsScrollNotifications(WebCore::Frame&amp;, bool)
</ins><span class="cx"> {
</span><span class="cx">     notImplemented();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::observedContentChange(WebCore::Frame*)
</del><ins>+void WebChromeClient::observedContentChange(WebCore::Frame&amp;)
</ins><span class="cx"> {
</span><span class="cx">     m_page.completePendingSyntheticClickForContentChangeObserver();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::clearContentChangeObservers(WebCore::Frame*)
</del><ins>+void WebChromeClient::clearContentChangeObservers(WebCore::Frame&amp;)
</ins><span class="cx"> {
</span><span class="cx">     notImplemented();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebChromeClient::notifyRevealedSelectionByScrollingFrame(WebCore::Frame*)
</del><ins>+void WebChromeClient::notifyRevealedSelectionByScrollingFrame(WebCore::Frame&amp;)
</ins><span class="cx"> {
</span><span class="cx">     m_page.didChangeSelection();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageFindControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/FindController.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/FindController.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit2/WebProcess/WebPage/FindController.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -189,7 +189,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (!shouldShowOverlay) {
</span><span class="cx">         if (m_findPageOverlay)
</span><del>-            m_webPage-&gt;mainFrame()-&gt;pageOverlayController().uninstallPageOverlay(m_findPageOverlay, PageOverlay::FadeMode::Fade);
</del><ins>+            m_webPage-&gt;mainFrame()-&gt;pageOverlayController().uninstallPageOverlay(*m_findPageOverlay, PageOverlay::FadeMode::Fade);
</ins><span class="cx">     } else {
</span><span class="cx">         if (!m_findPageOverlay) {
</span><span class="cx">             auto findPageOverlay = PageOverlay::create(*this, PageOverlay::OverlayType::Document);
</span><span class="lines">@@ -312,7 +312,7 @@
</span><span class="cx"> {
</span><span class="cx">     m_findMatches.clear();
</span><span class="cx">     if (m_findPageOverlay)
</span><del>-        m_webPage-&gt;mainFrame()-&gt;pageOverlayController().uninstallPageOverlay(m_findPageOverlay, PageOverlay::FadeMode::Fade);
</del><ins>+        m_webPage-&gt;mainFrame()-&gt;pageOverlayController().uninstallPageOverlay(*m_findPageOverlay, PageOverlay::FadeMode::Fade);
</ins><span class="cx"> 
</span><span class="cx">     PluginView* pluginView = pluginViewForFrame(m_webPage-&gt;mainFrame());
</span><span class="cx">     
</span><span class="lines">@@ -325,6 +325,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if !PLATFORM(IOS)
</span><ins>+
</ins><span class="cx"> bool FindController::updateFindIndicator(Frame&amp; selectedFrame, bool isShowingOverlay, bool shouldAnimate)
</span><span class="cx"> {
</span><span class="cx">     RefPtr&lt;TextIndicator&gt; indicator = TextIndicator::createWithSelectionInFrame(selectedFrame, TextIndicatorOptionIncludeMarginIfRangeMatchesSelection, shouldAnimate ? TextIndicatorPresentationTransition::Bounce : TextIndicatorPresentationTransition::None);
</span><span class="lines">@@ -366,6 +367,7 @@
</span><span class="cx"> void FindController::didHideFindIndicator()
</span><span class="cx"> {
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> void FindController::showFindIndicatorInSelection()
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebFramecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -109,7 +109,7 @@
</span><span class="cx">     return uniqueListenerID++;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;WebFrame&gt; WebFrame::createWithCoreMainFrame(WebPage* page, WebCore::Frame* coreFrame)
</del><ins>+Ref&lt;WebFrame&gt; WebFrame::createWithCoreMainFrame(WebPage* page, WebCore::Frame* coreFrame)
</ins><span class="cx"> {
</span><span class="cx">     auto frame = create(std::unique_ptr&lt;WebFrameLoaderClient&gt;(static_cast&lt;WebFrameLoaderClient*&gt;(&amp;coreFrame-&gt;loader().client())));
</span><span class="cx">     page-&gt;send(Messages::WebPageProxy::DidCreateMainFrame(frame-&gt;frameID()), page-&gt;pageID(), IPC::SendOption::DispatchMessageEvenWhenWaitingForSyncReply);
</span><span class="lines">@@ -120,23 +120,25 @@
</span><span class="cx">     return frame;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;WebFrame&gt; WebFrame::createSubframe(WebPage* page, const String&amp; frameName, HTMLFrameOwnerElement* ownerElement)
</del><ins>+Ref&lt;WebFrame&gt; WebFrame::createSubframe(WebPage* page, const String&amp; frameName, HTMLFrameOwnerElement* ownerElement)
</ins><span class="cx"> {
</span><span class="cx">     auto frame = create(std::make_unique&lt;WebFrameLoaderClient&gt;());
</span><span class="cx">     page-&gt;send(Messages::WebPageProxy::DidCreateSubframe(frame-&gt;frameID()), page-&gt;pageID(), IPC::SendOption::DispatchMessageEvenWhenWaitingForSyncReply);
</span><span class="cx"> 
</span><del>-    Ref&lt;WebCore::Frame&gt; coreFrame = Frame::create(page-&gt;corePage(), ownerElement, frame-&gt;m_frameLoaderClient.get());
</del><ins>+    auto coreFrame = Frame::create(page-&gt;corePage(), ownerElement, frame-&gt;m_frameLoaderClient.get());
</ins><span class="cx">     frame-&gt;m_coreFrame = coreFrame.ptr();
</span><del>-    frame-&gt;m_coreFrame-&gt;tree().setName(frameName);
</del><ins>+
+    coreFrame-&gt;tree().setName(frameName);
</ins><span class="cx">     if (ownerElement) {
</span><span class="cx">         ASSERT(ownerElement-&gt;document().frame());
</span><del>-        ownerElement-&gt;document().frame()-&gt;tree().appendChild(WTFMove(coreFrame));
</del><ins>+        ownerElement-&gt;document().frame()-&gt;tree().appendChild(coreFrame.get());
</ins><span class="cx">     }
</span><del>-    frame-&gt;m_coreFrame-&gt;init();
</del><ins>+    coreFrame-&gt;init();
+
</ins><span class="cx">     return frame;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;WebFrame&gt; WebFrame::create(std::unique_ptr&lt;WebFrameLoaderClient&gt; frameLoaderClient)
</del><ins>+Ref&lt;WebFrame&gt; WebFrame::create(std::unique_ptr&lt;WebFrameLoaderClient&gt; frameLoaderClient)
</ins><span class="cx"> {
</span><span class="cx">     auto frame = adoptRef(*new WebFrame(WTFMove(frameLoaderClient)));
</span><span class="cx"> 
</span><span class="lines">@@ -143,7 +145,7 @@
</span><span class="cx">     // Add explict ref() that will be balanced in WebFrameLoaderClient::frameLoaderDestroyed().
</span><span class="cx">     frame-&gt;ref();
</span><span class="cx"> 
</span><del>-    return WTFMove(frame);
</del><ins>+    return frame;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> WebFrame::WebFrame(std::unique_ptr&lt;WebFrameLoaderClient&gt; frameLoaderClient)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebFrameh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.h (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.h        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.h        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -66,8 +66,8 @@
</span><span class="cx"> 
</span><span class="cx"> class WebFrame : public API::ObjectImpl&lt;API::Object::Type::BundleFrame&gt; {
</span><span class="cx"> public:
</span><del>-    static PassRefPtr&lt;WebFrame&gt; createWithCoreMainFrame(WebPage*, WebCore::Frame*);
-    static PassRefPtr&lt;WebFrame&gt; createSubframe(WebPage*, const String&amp; frameName, WebCore::HTMLFrameOwnerElement*);
</del><ins>+    static Ref&lt;WebFrame&gt; createWithCoreMainFrame(WebPage*, WebCore::Frame*);
+    static Ref&lt;WebFrame&gt; createSubframe(WebPage*, const String&amp; frameName, WebCore::HTMLFrameOwnerElement*);
</ins><span class="cx">     ~WebFrame();
</span><span class="cx"> 
</span><span class="cx">     // Called when the FrameLoaderClient (and therefore the WebCore::Frame) is being torn down.
</span><span class="lines">@@ -166,8 +166,8 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    static PassRefPtr&lt;WebFrame&gt; create(std::unique_ptr&lt;WebFrameLoaderClient&gt;);
-    WebFrame(std::unique_ptr&lt;WebFrameLoaderClient&gt;);
</del><ins>+    static Ref&lt;WebFrame&gt; create(std::unique_ptr&lt;WebFrameLoaderClient&gt;);
+    explicit WebFrame(std::unique_ptr&lt;WebFrameLoaderClient&gt;);
</ins><span class="cx"> 
</span><span class="cx">     WebCore::Frame* m_coreFrame;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebInspectorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebInspector.cpp (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebInspector.cpp        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebInspector.cpp        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -145,7 +145,7 @@
</span><span class="cx">     Frame&amp; inspectedMainFrame = inspectedPage-&gt;mainFrame();
</span><span class="cx">     FrameLoadRequest request(inspectedMainFrame.document()-&gt;securityOrigin(), ResourceRequest(urlString), &quot;_blank&quot;, LockHistory::No, LockBackForwardList::No, MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Allow, ReplaceDocumentIfJavaScriptURL, ShouldOpenExternalURLsPolicy::ShouldNotAllow);
</span><span class="cx"> 
</span><del>-    Page* newPage = inspectedPage-&gt;chrome().createWindow(&amp;inspectedMainFrame, request, WindowFeatures(), NavigationAction(request.resourceRequest(), NavigationType::LinkClicked));
</del><ins>+    Page* newPage = inspectedPage-&gt;chrome().createWindow(inspectedMainFrame, request, WindowFeatures(), NavigationAction(request.resourceRequest(), NavigationType::LinkClicked));
</ins><span class="cx">     if (!newPage)
</span><span class="cx">         return;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageiosFindControllerIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/ios/FindControllerIOS.mm (211032 => 211033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/ios/FindControllerIOS.mm        2017-01-23 06:21:07 UTC (rev 211032)
+++ trunk/Source/WebKit2/WebProcess/WebPage/ios/FindControllerIOS.mm        2017-01-23 06:24:18 UTC (rev 211033)
</span><span class="lines">@@ -89,7 +89,7 @@
</span><span class="cx"> bool FindController::updateFindIndicator(Frame&amp; selectedFrame, bool isShowingOverlay, bool shouldAnimate)
</span><span class="cx"> {
</span><span class="cx">     if (m_findIndicatorOverlay)
</span><del>-        m_webPage-&gt;mainFrame()-&gt;pageOverlayController().uninstallPageOverlay(m_findIndicatorOverlay.get(), PageOverlay::FadeMode::DoNotFade);
</del><ins>+        m_webPage-&gt;mainFrame()-&gt;pageOverlayController().uninstallPageOverlay(*m_findIndicatorOverlay, PageOverlay::FadeMode::DoNotFade);
</ins><span class="cx"> 
</span><span class="cx">     RefPtr&lt;TextIndicator&gt; textIndicator = TextIndicator::createWithSelectionInFrame(selectedFrame, findTextIndicatorOptions, TextIndicatorPresentationTransition::None, FloatSize(totalHorizontalMargin, totalVerticalMargin));
</span><span class="cx">     if (!textIndicator)
</span><span class="lines">@@ -97,7 +97,7 @@
</span><span class="cx"> 
</span><span class="cx">     m_findIndicatorOverlayClient = std::make_unique&lt;FindIndicatorOverlayClientIOS&gt;(selectedFrame, textIndicator.get());
</span><span class="cx">     m_findIndicatorOverlay = PageOverlay::create(*m_findIndicatorOverlayClient, PageOverlay::OverlayType::Document);
</span><del>-    m_webPage-&gt;mainFrame()-&gt;pageOverlayController().installPageOverlay(m_findIndicatorOverlay, PageOverlay::FadeMode::DoNotFade);
</del><ins>+    m_webPage-&gt;mainFrame()-&gt;pageOverlayController().installPageOverlay(*m_findIndicatorOverlay, PageOverlay::FadeMode::DoNotFade);
</ins><span class="cx"> 
</span><span class="cx">     m_findIndicatorOverlay-&gt;setFrame(enclosingIntRect(textIndicator-&gt;textBoundingRectInRootViewCoordinates()));
</span><span class="cx">     m_findIndicatorOverlay-&gt;setNeedsDisplay();
</span><span class="lines">@@ -124,7 +124,7 @@
</span><span class="cx">     if (!m_isShowingFindIndicator)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    m_webPage-&gt;mainFrame()-&gt;pageOverlayController().uninstallPageOverlay(m_findIndicatorOverlay.get(), PageOverlay::FadeMode::DoNotFade);
</del><ins>+    m_webPage-&gt;mainFrame()-&gt;pageOverlayController().uninstallPageOverlay(*m_findIndicatorOverlay, PageOverlay::FadeMode::DoNotFade);
</ins><span class="cx">     m_findIndicatorOverlay = nullptr;
</span><span class="cx">     m_isShowingFindIndicator = false;
</span><span class="cx">     m_foundStringMatchIndex = -1;
</span></span></pre>
</div>
</div>

</body>
</html>