| Index: Source/core/page/FocusController.cpp
|
| diff --git a/Source/core/page/FocusController.cpp b/Source/core/page/FocusController.cpp
|
| index 081cc4c1fcccefe2be54c525497d77955392a37b..5d4f4c88a5331081675b777ec2c7f87c45297204 100644
|
| --- a/Source/core/page/FocusController.cpp
|
| +++ b/Source/core/page/FocusController.cpp
|
| @@ -81,7 +81,7 @@ Element* FocusNavigationScope::owner() const
|
| ShadowRoot* shadowRoot = toShadowRoot(root);
|
| return shadowRoot->isYoungest() ? shadowRoot->host() : shadowRoot->insertionPoint();
|
| }
|
| - if (Frame* frame = root->document()->frame())
|
| + if (Frame* frame = root->document().frame())
|
| return frame->ownerElement();
|
| return 0;
|
| }
|
| @@ -368,15 +368,14 @@ bool FocusController::advanceFocusInDocumentOrder(FocusDirection direction, bool
|
| // FIXME: It would be nice to just be able to call setFocusedElement(node)
|
| // here, but we can't do that because some elements (e.g. HTMLInputElement
|
| // and HTMLTextAreaElement) do extra work in their focus() methods.
|
| - Document* newDocument = element->document();
|
| + Document& newDocument = element->document();
|
|
|
| - if (newDocument != document) {
|
| + if (&newDocument != document) {
|
| // Focus is going away from this document, so clear the focused node.
|
| document->setFocusedElement(0);
|
| }
|
|
|
| - if (newDocument)
|
| - setFocusedFrame(newDocument->frame());
|
| + setFocusedFrame(newDocument.frame());
|
|
|
| if (caretBrowsing) {
|
| Position position = firstPositionInOrBeforeNode(element);
|
| @@ -562,7 +561,7 @@ static bool relinquishesEditingFocus(Node *node)
|
| ASSERT(node->rendererIsEditable());
|
|
|
| Node* root = node->rootEditableElement();
|
| - Frame* frame = node->document()->frame();
|
| + Frame* frame = node->document().frame();
|
| if (!frame || !root)
|
| return false;
|
|
|
| @@ -629,7 +628,7 @@ bool FocusController::setFocusedElement(Element* element, PassRefPtr<Frame> newF
|
| return true;
|
| }
|
|
|
| - RefPtr<Document> newDocument = element->document();
|
| + RefPtr<Document> newDocument = &element->document();
|
|
|
| if (newDocument && newDocument->focusedElement() == element)
|
| return true;
|
| @@ -738,7 +737,7 @@ static void updateFocusCandidateIfNeeded(FocusDirection direction, const FocusCa
|
| // If 2 nodes are intersecting, do hit test to find which node in on top.
|
| LayoutUnit x = intersectionRect.x() + intersectionRect.width() / 2;
|
| LayoutUnit y = intersectionRect.y() + intersectionRect.height() / 2;
|
| - HitTestResult result = candidate.visibleNode->document()->page()->mainFrame()->eventHandler()->hitTestResultAtPoint(IntPoint(x, y), HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::IgnoreClipping | HitTestRequest::DisallowShadowContent);
|
| + HitTestResult result = candidate.visibleNode->document().page()->mainFrame()->eventHandler()->hitTestResultAtPoint(IntPoint(x, y), HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::IgnoreClipping | HitTestRequest::DisallowShadowContent);
|
| if (candidate.visibleNode->contains(result.innerNode())) {
|
| closest = candidate;
|
| return;
|
| @@ -814,7 +813,7 @@ bool FocusController::advanceFocusDirectionallyInContainer(Node* container, cons
|
| ASSERT(frameElement->contentFrame());
|
|
|
| if (focusCandidate.isOffscreenAfterScrolling) {
|
| - scrollInDirection(focusCandidate.visibleNode->document(), direction);
|
| + scrollInDirection(&focusCandidate.visibleNode->document(), direction);
|
| return true;
|
| }
|
| // Navigate into a new frame.
|
|
|