| Index: Source/core/dom/Document.cpp
|
| diff --git a/Source/core/dom/Document.cpp b/Source/core/dom/Document.cpp
|
| index f763de7903e4509757c11db35c50b2dee3cb3748..c03fe65a8f9175ae533c531fd460b45a3ac2f802 100644
|
| --- a/Source/core/dom/Document.cpp
|
| +++ b/Source/core/dom/Document.cpp
|
| @@ -927,13 +927,13 @@ bool Document::importContainerNodeChildren(ContainerNode* oldContainerNode, Pass
|
| return true;
|
| }
|
|
|
| -PassRefPtr<Node> Document::importNode(Node* importedNode, ExceptionState& ec)
|
| +PassRefPtrWillBeRawPtr<Node> Document::importNode(Node* importedNode, ExceptionState& ec)
|
| {
|
| UseCounter::countDeprecation(this, UseCounter::DocumentImportNodeOptionalArgument);
|
| return importNode(importedNode, true, ec);
|
| }
|
|
|
| -PassRefPtr<Node> Document::importNode(Node* importedNode, bool deep, ExceptionState& exceptionState)
|
| +PassRefPtrWillBeRawPtr<Node> Document::importNode(Node* importedNode, bool deep, ExceptionState& exceptionState)
|
| {
|
| if (!importedNode) {
|
| exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::argumentNullOrIncorrectType(1, "Node"));
|
| @@ -961,7 +961,7 @@ PassRefPtr<Node> Document::importNode(Node* importedNode, bool deep, ExceptionSt
|
| exceptionState.throwDOMException(NamespaceError, "The imported node has an invalid namespace.");
|
| return nullptr;
|
| }
|
| - RefPtr<Element> newElement = createElement(oldElement->tagQName(), false);
|
| + RefPtrWillBeRawPtr<Element> newElement = createElement(oldElement->tagQName(), false);
|
|
|
| newElement->cloneDataFromElement(*oldElement);
|
|
|
| @@ -5746,6 +5746,14 @@ void Document::clearWeakMembers(Visitor* visitor)
|
| for (unsigned i = 0; i < deadNodes.size(); ++i)
|
| didClearTouchEventHandlers(deadNodes[i]);
|
| }
|
| + if (m_domWindow && !visitor->isAlive(m_domWindow)) {
|
| + ASSERT(isDisposed());
|
| + // Oilpan: this mirrors the clearing of the document object's touch
|
| + // handlers that happen when the DOMWindow is destructed in a non-Oilpan
|
| + // setting (done via DOMWindow::removeAllEventListeners().)
|
| + didClearTouchEventHandlers(this);
|
| + m_domWindow.clear();
|
| + }
|
| }
|
|
|
| void Document::trace(Visitor* visitor)
|
|
|