| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2009 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 738 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 749 } | 749 } |
| 750 | 750 |
| 751 WebFrame* WebFrameImpl::findChildByExpression(const WebString& xpath) const | 751 WebFrame* WebFrameImpl::findChildByExpression(const WebString& xpath) const |
| 752 { | 752 { |
| 753 if (xpath.isEmpty()) | 753 if (xpath.isEmpty()) |
| 754 return 0; | 754 return 0; |
| 755 | 755 |
| 756 Document* document = frame()->document(); | 756 Document* document = frame()->document(); |
| 757 ASSERT(document); | 757 ASSERT(document); |
| 758 | 758 |
| 759 RefPtrWillBeRawPtr<XPathResult> xpathResult = DocumentXPathEvaluator::evalua
te(*document, xpath, document, 0, XPathResult::ORDERED_NODE_ITERATOR_TYPE, 0, IG
NORE_EXCEPTION); | 759 RefPtrWillBeRawPtr<XPathResult> xpathResult = DocumentXPathEvaluator::evalua
te(*document, xpath, document, nullptr, XPathResult::ORDERED_NODE_ITERATOR_TYPE,
0, IGNORE_EXCEPTION); |
| 760 if (!xpathResult) | 760 if (!xpathResult) |
| 761 return 0; | 761 return 0; |
| 762 | 762 |
| 763 Node* node = xpathResult->iterateNext(IGNORE_EXCEPTION); | 763 Node* node = xpathResult->iterateNext(IGNORE_EXCEPTION); |
| 764 if (!node || !node->isFrameOwnerElement()) | 764 if (!node || !node->isFrameOwnerElement()) |
| 765 return 0; | 765 return 0; |
| 766 return fromFrame(toHTMLFrameOwnerElement(node)->contentFrame()); | 766 return fromFrame(toHTMLFrameOwnerElement(node)->contentFrame()); |
| 767 } | 767 } |
| 768 | 768 |
| 769 WebDocument WebFrameImpl::document() const | 769 WebDocument WebFrameImpl::document() const |
| (...skipping 724 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1494 return false; | 1494 return false; |
| 1495 | 1495 |
| 1496 WebFrameImpl* mainFrameImpl = viewImpl()->mainFrameImpl(); | 1496 WebFrameImpl* mainFrameImpl = viewImpl()->mainFrameImpl(); |
| 1497 | 1497 |
| 1498 if (!options.findNext) | 1498 if (!options.findNext) |
| 1499 frame()->page()->unmarkAllTextMatches(); | 1499 frame()->page()->unmarkAllTextMatches(); |
| 1500 else | 1500 else |
| 1501 setMarkerActive(m_activeMatch.get(), false); | 1501 setMarkerActive(m_activeMatch.get(), false); |
| 1502 | 1502 |
| 1503 if (m_activeMatch && &m_activeMatch->ownerDocument() != frame()->document()) | 1503 if (m_activeMatch && &m_activeMatch->ownerDocument() != frame()->document()) |
| 1504 m_activeMatch = 0; | 1504 m_activeMatch = nullptr; |
| 1505 | 1505 |
| 1506 // If the user has selected something since the last Find operation we want | 1506 // If the user has selected something since the last Find operation we want |
| 1507 // to start from there. Otherwise, we start searching from where the last Fi
nd | 1507 // to start from there. Otherwise, we start searching from where the last Fi
nd |
| 1508 // operation left off (either a Find or a FindNext operation). | 1508 // operation left off (either a Find or a FindNext operation). |
| 1509 VisibleSelection selection(frame()->selection().selection()); | 1509 VisibleSelection selection(frame()->selection().selection()); |
| 1510 bool activeSelection = !selection.isNone(); | 1510 bool activeSelection = !selection.isNone(); |
| 1511 if (activeSelection) { | 1511 if (activeSelection) { |
| 1512 m_activeMatch = selection.firstRange().get(); | 1512 m_activeMatch = selection.firstRange().get(); |
| 1513 frame()->selection().clear(); | 1513 frame()->selection().clear(); |
| 1514 } | 1514 } |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1533 | 1533 |
| 1534 #if OS(ANDROID) | 1534 #if OS(ANDROID) |
| 1535 viewImpl()->zoomToFindInPageRect(frameView()->contentsToWindow(enclosingIntR
ect(RenderObject::absoluteBoundingBoxRectForRange(m_activeMatch.get())))); | 1535 viewImpl()->zoomToFindInPageRect(frameView()->contentsToWindow(enclosingIntR
ect(RenderObject::absoluteBoundingBoxRectForRange(m_activeMatch.get())))); |
| 1536 #endif | 1536 #endif |
| 1537 | 1537 |
| 1538 setMarkerActive(m_activeMatch.get(), true); | 1538 setMarkerActive(m_activeMatch.get(), true); |
| 1539 WebFrameImpl* oldActiveFrame = mainFrameImpl->m_currentActiveMatchFrame; | 1539 WebFrameImpl* oldActiveFrame = mainFrameImpl->m_currentActiveMatchFrame; |
| 1540 mainFrameImpl->m_currentActiveMatchFrame = this; | 1540 mainFrameImpl->m_currentActiveMatchFrame = this; |
| 1541 | 1541 |
| 1542 // Make sure no node is focused. See http://crbug.com/38700. | 1542 // Make sure no node is focused. See http://crbug.com/38700. |
| 1543 frame()->document()->setFocusedElement(0); | 1543 frame()->document()->setFocusedElement(nullptr); |
| 1544 | 1544 |
| 1545 if (!options.findNext || activeSelection) { | 1545 if (!options.findNext || activeSelection) { |
| 1546 // This is either a Find operation or a Find-next from a new start point | 1546 // This is either a Find operation or a Find-next from a new start point |
| 1547 // due to a selection, so we set the flag to ask the scoping effort | 1547 // due to a selection, so we set the flag to ask the scoping effort |
| 1548 // to find the active rect for us and report it back to the UI. | 1548 // to find the active rect for us and report it back to the UI. |
| 1549 m_locatingActiveRect = true; | 1549 m_locatingActiveRect = true; |
| 1550 } else { | 1550 } else { |
| 1551 if (oldActiveFrame != this) { | 1551 if (oldActiveFrame != this) { |
| 1552 if (options.forward) | 1552 if (options.forward) |
| 1553 m_activeMatchIndexInCurrentFrame = 0; | 1553 m_activeMatchIndexInCurrentFrame = 0; |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1603 if (frame() && frame()->page() && frame()->editor().markedTextMatchesAre
Highlighted()) | 1603 if (frame() && frame()->page() && frame()->editor().markedTextMatchesAre
Highlighted()) |
| 1604 frame()->page()->unmarkAllTextMatches(); | 1604 frame()->page()->unmarkAllTextMatches(); |
| 1605 | 1605 |
| 1606 // Clear the tickmarks and results cache. | 1606 // Clear the tickmarks and results cache. |
| 1607 clearFindMatchesCache(); | 1607 clearFindMatchesCache(); |
| 1608 | 1608 |
| 1609 // Clear the counters from last operation. | 1609 // Clear the counters from last operation. |
| 1610 m_lastMatchCount = 0; | 1610 m_lastMatchCount = 0; |
| 1611 m_nextInvalidateAfter = 0; | 1611 m_nextInvalidateAfter = 0; |
| 1612 | 1612 |
| 1613 m_resumeScopingFromRange = 0; | 1613 m_resumeScopingFromRange = nullptr; |
| 1614 | 1614 |
| 1615 // The view might be null on detached frames. | 1615 // The view might be null on detached frames. |
| 1616 if (frame() && frame()->page()) | 1616 if (frame() && frame()->page()) |
| 1617 viewImpl()->mainFrameImpl()->m_framesScopingCount++; | 1617 viewImpl()->mainFrameImpl()->m_framesScopingCount++; |
| 1618 | 1618 |
| 1619 // Now, defer scoping until later to allow find operation to finish quic
kly. | 1619 // Now, defer scoping until later to allow find operation to finish quic
kly. |
| 1620 scopeStringMatchesSoon(identifier, searchText, options, false); // false
means just reset, so don't do it again. | 1620 scopeStringMatchesSoon(identifier, searchText, options, false); // false
means just reset, so don't do it again. |
| 1621 return; | 1621 return; |
| 1622 } | 1622 } |
| 1623 | 1623 |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1832 | 1832 |
| 1833 void WebFrameImpl::sendOrientationChangeEvent(int orientation) | 1833 void WebFrameImpl::sendOrientationChangeEvent(int orientation) |
| 1834 { | 1834 { |
| 1835 if (frame()) | 1835 if (frame()) |
| 1836 frame()->sendOrientationChangeEvent(orientation); | 1836 frame()->sendOrientationChangeEvent(orientation); |
| 1837 } | 1837 } |
| 1838 | 1838 |
| 1839 void WebFrameImpl::dispatchMessageEventWithOriginCheck(const WebSecurityOrigin&
intendedTargetOrigin, const WebDOMEvent& event) | 1839 void WebFrameImpl::dispatchMessageEventWithOriginCheck(const WebSecurityOrigin&
intendedTargetOrigin, const WebDOMEvent& event) |
| 1840 { | 1840 { |
| 1841 ASSERT(!event.isNull()); | 1841 ASSERT(!event.isNull()); |
| 1842 frame()->domWindow()->dispatchMessageEventWithOriginCheck(intendedTargetOrig
in.get(), event, 0); | 1842 frame()->domWindow()->dispatchMessageEventWithOriginCheck(intendedTargetOrig
in.get(), event, nullptr); |
| 1843 } | 1843 } |
| 1844 | 1844 |
| 1845 int WebFrameImpl::findMatchMarkersVersion() const | 1845 int WebFrameImpl::findMatchMarkersVersion() const |
| 1846 { | 1846 { |
| 1847 ASSERT(!parent()); | 1847 ASSERT(!parent()); |
| 1848 return m_findMatchMarkersVersion; | 1848 return m_findMatchMarkersVersion; |
| 1849 } | 1849 } |
| 1850 | 1850 |
| 1851 void WebFrameImpl::clearFindMatchesCache() | 1851 void WebFrameImpl::clearFindMatchesCache() |
| 1852 { | 1852 { |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1998 viewImpl()->mainFrameImpl()->m_currentActiveMatchFrame = this; | 1998 viewImpl()->mainFrameImpl()->m_currentActiveMatchFrame = this; |
| 1999 viewImpl()->setFocusedFrame(this); | 1999 viewImpl()->setFocusedFrame(this); |
| 2000 | 2000 |
| 2001 m_activeMatch = range.release(); | 2001 m_activeMatch = range.release(); |
| 2002 setMarkerActive(m_activeMatch.get(), true); | 2002 setMarkerActive(m_activeMatch.get(), true); |
| 2003 | 2003 |
| 2004 // Clear any user selection, to make sure Find Next continues on from th
e match we just activated. | 2004 // Clear any user selection, to make sure Find Next continues on from th
e match we just activated. |
| 2005 frame()->selection().clear(); | 2005 frame()->selection().clear(); |
| 2006 | 2006 |
| 2007 // Make sure no node is focused. See http://crbug.com/38700. | 2007 // Make sure no node is focused. See http://crbug.com/38700. |
| 2008 frame()->document()->setFocusedElement(0); | 2008 frame()->document()->setFocusedElement(nullptr); |
| 2009 } | 2009 } |
| 2010 | 2010 |
| 2011 IntRect activeMatchRect; | 2011 IntRect activeMatchRect; |
| 2012 IntRect activeMatchBoundingBox = enclosingIntRect(RenderObject::absoluteBoun
dingBoxRectForRange(m_activeMatch.get())); | 2012 IntRect activeMatchBoundingBox = enclosingIntRect(RenderObject::absoluteBoun
dingBoxRectForRange(m_activeMatch.get())); |
| 2013 | 2013 |
| 2014 if (!activeMatchBoundingBox.isEmpty()) { | 2014 if (!activeMatchBoundingBox.isEmpty()) { |
| 2015 if (m_activeMatch->firstNode() && m_activeMatch->firstNode()->renderer()
) | 2015 if (m_activeMatch->firstNode() && m_activeMatch->firstNode()->renderer()
) |
| 2016 m_activeMatch->firstNode()->renderer()->scrollRectToVisible(activeMa
tchBoundingBox, | 2016 m_activeMatch->firstNode()->renderer()->scrollRectToVisible(activeMa
tchBoundingBox, |
| 2017 ScrollAlignment::alignCenterIfNeeded, ScrollAlignment::align
CenterIfNeeded); | 2017 ScrollAlignment::alignCenterIfNeeded, ScrollAlignment::align
CenterIfNeeded); |
| 2018 | 2018 |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2125 , m_parent(0) | 2125 , m_parent(0) |
| 2126 , m_previousSibling(0) | 2126 , m_previousSibling(0) |
| 2127 , m_nextSibling(0) | 2127 , m_nextSibling(0) |
| 2128 , m_firstChild(0) | 2128 , m_firstChild(0) |
| 2129 , m_lastChild(0) | 2129 , m_lastChild(0) |
| 2130 , m_client(client) | 2130 , m_client(client) |
| 2131 , m_permissionClient(0) | 2131 , m_permissionClient(0) |
| 2132 , m_currentActiveMatchFrame(0) | 2132 , m_currentActiveMatchFrame(0) |
| 2133 , m_activeMatchIndexInCurrentFrame(-1) | 2133 , m_activeMatchIndexInCurrentFrame(-1) |
| 2134 , m_locatingActiveRect(false) | 2134 , m_locatingActiveRect(false) |
| 2135 , m_resumeScopingFromRange(0) | 2135 , m_resumeScopingFromRange(nullptr) |
| 2136 , m_lastMatchCount(-1) | 2136 , m_lastMatchCount(-1) |
| 2137 , m_totalMatchCount(-1) | 2137 , m_totalMatchCount(-1) |
| 2138 , m_framesScopingCount(-1) | 2138 , m_framesScopingCount(-1) |
| 2139 , m_findRequestIdentifier(-1) | 2139 , m_findRequestIdentifier(-1) |
| 2140 , m_scopingInProgress(false) | 2140 , m_scopingInProgress(false) |
| 2141 , m_lastFindRequestCompletedWithNoMatches(false) | 2141 , m_lastFindRequestCompletedWithNoMatches(false) |
| 2142 , m_nextInvalidateAfter(0) | 2142 , m_nextInvalidateAfter(0) |
| 2143 , m_findMatchMarkersVersion(0) | 2143 , m_findMatchMarkersVersion(0) |
| 2144 , m_findMatchRectsAreValid(false) | 2144 , m_findMatchRectsAreValid(false) |
| 2145 , m_inputEventsScaleFactorForEmulation(1) | 2145 , m_inputEventsScaleFactorForEmulation(1) |
| (...skipping 23 matching lines...) Expand all Loading... |
| 2169 // We must call init() after m_frame is assigned because it is referenced | 2169 // We must call init() after m_frame is assigned because it is referenced |
| 2170 // during init(). | 2170 // during init(). |
| 2171 m_frame->init(); | 2171 m_frame->init(); |
| 2172 } | 2172 } |
| 2173 | 2173 |
| 2174 PassRefPtr<Frame> WebFrameImpl::createChildFrame(const FrameLoadRequest& request
, HTMLFrameOwnerElement* ownerElement) | 2174 PassRefPtr<Frame> WebFrameImpl::createChildFrame(const FrameLoadRequest& request
, HTMLFrameOwnerElement* ownerElement) |
| 2175 { | 2175 { |
| 2176 ASSERT(m_client); | 2176 ASSERT(m_client); |
| 2177 WebFrameImpl* webframe = toWebFrameImpl(m_client->createChildFrame(this, req
uest.frameName())); | 2177 WebFrameImpl* webframe = toWebFrameImpl(m_client->createChildFrame(this, req
uest.frameName())); |
| 2178 if (!webframe) | 2178 if (!webframe) |
| 2179 return 0; | 2179 return nullptr; |
| 2180 | 2180 |
| 2181 webframe->m_frameInit->setFrameHost(frame()->host()); | 2181 webframe->m_frameInit->setFrameHost(frame()->host()); |
| 2182 webframe->m_frameInit->setOwnerElement(ownerElement); | 2182 webframe->m_frameInit->setOwnerElement(ownerElement); |
| 2183 RefPtr<Frame> childFrame = Frame::create(webframe->m_frameInit); | 2183 RefPtr<Frame> childFrame = Frame::create(webframe->m_frameInit); |
| 2184 webframe->setWebCoreFrame(childFrame); | 2184 webframe->setWebCoreFrame(childFrame); |
| 2185 | 2185 |
| 2186 childFrame->tree().setName(request.frameName()); | 2186 childFrame->tree().setName(request.frameName()); |
| 2187 | 2187 |
| 2188 // FIXME: This comment is not quite accurate anymore. | 2188 // FIXME: This comment is not quite accurate anymore. |
| 2189 // Frame::init() can trigger onload event in the parent frame, | 2189 // Frame::init() can trigger onload event in the parent frame, |
| 2190 // which may detach this frame and trigger a null-pointer access | 2190 // which may detach this frame and trigger a null-pointer access |
| 2191 // in FrameTree::removeChild. Move init() after appendChild call | 2191 // in FrameTree::removeChild. Move init() after appendChild call |
| 2192 // so that webframe->mFrame is in the tree before triggering | 2192 // so that webframe->mFrame is in the tree before triggering |
| 2193 // onload event handler. | 2193 // onload event handler. |
| 2194 // Because the event handler may set webframe->mFrame to null, | 2194 // Because the event handler may set webframe->mFrame to null, |
| 2195 // it is necessary to check the value after calling init() and | 2195 // it is necessary to check the value after calling init() and |
| 2196 // return without loading URL. | 2196 // return without loading URL. |
| 2197 // NOTE: m_client will be null if this frame has been detached. | 2197 // NOTE: m_client will be null if this frame has been detached. |
| 2198 // (b:791612) | 2198 // (b:791612) |
| 2199 childFrame->init(); // create an empty document | 2199 childFrame->init(); // create an empty document |
| 2200 if (!childFrame->tree().parent()) | 2200 if (!childFrame->tree().parent()) |
| 2201 return 0; | 2201 return nullptr; |
| 2202 | 2202 |
| 2203 // If we're moving in the back/forward list, we might want to replace the co
ntent | 2203 // If we're moving in the back/forward list, we might want to replace the co
ntent |
| 2204 // of this child frame with whatever was there at that point. | 2204 // of this child frame with whatever was there at that point. |
| 2205 HistoryItem* childItem = 0; | 2205 HistoryItem* childItem = 0; |
| 2206 if (isBackForwardLoadType(frame()->loader().loadType()) && !frame()->documen
t()->loadEventFinished()) | 2206 if (isBackForwardLoadType(frame()->loader().loadType()) && !frame()->documen
t()->loadEventFinished()) |
| 2207 childItem = frame()->page()->historyController().itemForNewChildFrame(ch
ildFrame.get()); | 2207 childItem = frame()->page()->historyController().itemForNewChildFrame(ch
ildFrame.get()); |
| 2208 | 2208 |
| 2209 if (childItem) | 2209 if (childItem) |
| 2210 childFrame->loader().loadHistoryItem(childItem); | 2210 childFrame->loader().loadHistoryItem(childItem); |
| 2211 else | 2211 else |
| 2212 childFrame->loader().load(FrameLoadRequest(0, request.resourceRequest(),
"_self")); | 2212 childFrame->loader().load(FrameLoadRequest(0, request.resourceRequest(),
"_self")); |
| 2213 | 2213 |
| 2214 // A synchronous navigation (about:blank) would have already processed | 2214 // A synchronous navigation (about:blank) would have already processed |
| 2215 // onload, so it is possible for the frame to have already been destroyed by | 2215 // onload, so it is possible for the frame to have already been destroyed by |
| 2216 // script in the page. | 2216 // script in the page. |
| 2217 // NOTE: m_client will be null if this frame has been detached. | 2217 // NOTE: m_client will be null if this frame has been detached. |
| 2218 if (!childFrame->tree().parent()) | 2218 if (!childFrame->tree().parent()) |
| 2219 return 0; | 2219 return nullptr; |
| 2220 | 2220 |
| 2221 return childFrame.release(); | 2221 return childFrame.release(); |
| 2222 } | 2222 } |
| 2223 | 2223 |
| 2224 void WebFrameImpl::didChangeContentsSize(const IntSize& size) | 2224 void WebFrameImpl::didChangeContentsSize(const IntSize& size) |
| 2225 { | 2225 { |
| 2226 // This is only possible on the main frame. | 2226 // This is only possible on the main frame. |
| 2227 if (m_totalMatchCount > 0) { | 2227 if (m_totalMatchCount > 0) { |
| 2228 ASSERT(!parent()); | 2228 ASSERT(!parent()); |
| 2229 ++m_findMatchMarkersVersion; | 2229 ++m_findMatchMarkersVersion; |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2328 return; | 2328 return; |
| 2329 } | 2329 } |
| 2330 } | 2330 } |
| 2331 | 2331 |
| 2332 // No node related to the active match was focusable, so set the | 2332 // No node related to the active match was focusable, so set the |
| 2333 // active match as the selection (so that when you end the Find session, | 2333 // active match as the selection (so that when you end the Find session, |
| 2334 // you'll have the last thing you found highlighted) and make sure that | 2334 // you'll have the last thing you found highlighted) and make sure that |
| 2335 // we have nothing focused (otherwise you might have text selected but | 2335 // we have nothing focused (otherwise you might have text selected but |
| 2336 // a link focused, which is weird). | 2336 // a link focused, which is weird). |
| 2337 frame()->selection().setSelection(m_activeMatch.get()); | 2337 frame()->selection().setSelection(m_activeMatch.get()); |
| 2338 frame()->document()->setFocusedElement(0); | 2338 frame()->document()->setFocusedElement(nullptr); |
| 2339 | 2339 |
| 2340 // Finally clear the active match, for two reasons: | 2340 // Finally clear the active match, for two reasons: |
| 2341 // We just finished the find 'session' and we don't want future (potenti
ally | 2341 // We just finished the find 'session' and we don't want future (potenti
ally |
| 2342 // unrelated) find 'sessions' operations to start at the same place. | 2342 // unrelated) find 'sessions' operations to start at the same place. |
| 2343 // The WebFrameImpl could get reused and the m_activeMatch could end up
pointing | 2343 // The WebFrameImpl could get reused and the m_activeMatch could end up
pointing |
| 2344 // to a document that is no longer valid. Keeping an invalid reference a
round | 2344 // to a document that is no longer valid. Keeping an invalid reference a
round |
| 2345 // is just asking for trouble. | 2345 // is just asking for trouble. |
| 2346 m_activeMatch = 0; | 2346 m_activeMatch = nullptr; |
| 2347 } | 2347 } |
| 2348 } | 2348 } |
| 2349 | 2349 |
| 2350 void WebFrameImpl::didFail(const ResourceError& error, bool wasProvisional) | 2350 void WebFrameImpl::didFail(const ResourceError& error, bool wasProvisional) |
| 2351 { | 2351 { |
| 2352 if (!client()) | 2352 if (!client()) |
| 2353 return; | 2353 return; |
| 2354 WebURLError webError = error; | 2354 WebURLError webError = error; |
| 2355 if (wasProvisional) | 2355 if (wasProvisional) |
| 2356 client()->didFailProvisionalLoad(this, webError); | 2356 client()->didFailProvisionalLoad(this, webError); |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2519 | 2519 |
| 2520 // There is a possibility that the frame being detached was the only | 2520 // There is a possibility that the frame being detached was the only |
| 2521 // pending one. We need to make sure final replies can be sent. | 2521 // pending one. We need to make sure final replies can be sent. |
| 2522 flushCurrentScopingEffort(m_findRequestIdentifier); | 2522 flushCurrentScopingEffort(m_findRequestIdentifier); |
| 2523 | 2523 |
| 2524 cancelPendingScopingEffort(); | 2524 cancelPendingScopingEffort(); |
| 2525 } | 2525 } |
| 2526 } | 2526 } |
| 2527 | 2527 |
| 2528 } // namespace blink | 2528 } // namespace blink |
| OLD | NEW |