Chromium Code Reviews| Index: Source/core/dom/Document.cpp |
| diff --git a/Source/core/dom/Document.cpp b/Source/core/dom/Document.cpp |
| index ff699d8b21e0cb702e42b06a18cc5bcce3318583..273218a26b64a076f2450c7bbca082d19cde0505 100644 |
| --- a/Source/core/dom/Document.cpp |
| +++ b/Source/core/dom/Document.cpp |
| @@ -995,7 +995,8 @@ PassRefPtr<Node> Document::adoptNode(PassRefPtr<Node> source, ExceptionState& ex |
| if (source->isFrameOwnerElement()) { |
| HTMLFrameOwnerElement* frameOwnerElement = toHTMLFrameOwnerElement(source.get()); |
| - if (frame() && frame()->tree().isDescendantOf(frameOwnerElement->contentFrame())) { |
| + // FIXME(kenrb): the downcast can be removed when the FrameTree supports RemoteFrames. |
| + if (frame() && frame()->tree().isDescendantOf(toLocalFrameTemporary(frameOwnerElement->contentFrame()))) { |
|
eseidel
2014/03/24 16:12:48
I'm much more comfortable having a temporary metho
|
| exceptionState.throwDOMException(HierarchyRequestError, "The node provided is a frame which contains this document."); |
| return nullptr; |
| } |
| @@ -5448,9 +5449,9 @@ bool Document::hasFocus() const |
| Page* page = this->page(); |
| if (!page) |
| return false; |
| - if (!page->focusController().isActive() || !page->focusController().isFocused()) |
| + if (!page->focusController().isActive() || !page->focusController().isFocused() || !page->focusController().focusedFrame()->isLocalFrame()) |
| return false; |
| - if (LocalFrame* focusedFrame = page->focusController().focusedFrame()) { |
| + if (LocalFrame* focusedFrame = toLocalFrame(page->focusController().focusedFrame())) { |
| if (focusedFrame->tree().isDescendantOf(frame())) |
| return true; |
| } |