Title: [135664] trunk/Source/WebKit/blackberry
- Revision
- 135664
- Author
- [email protected]
- Date
- 2012-11-24 20:13:29 -0800 (Sat, 24 Nov 2012)
Log Message
[BlackBerry] Find-on-page keeps stale pointer
https://bugs.webkit.org/show_bug.cgi?id=103190
Patch by Andy Chen <[email protected]> on 2012-11-24
Reviewed by Rob Buis.
Find on page: pendingScopingEffort stores stale pointer when frames unload,
we need to cancel those scoping efforts.
PR 250807.
Internally reviewed by Yongxin Dai and Mike Fenton.
* WebKitSupport/InPageSearchManager.cpp:
(InPageSearchManager::DeferredScopeStringMatches):
(BlackBerry::WebKit::InPageSearchManager::frameUnloaded):
Modified Paths
Diff
Modified: trunk/Source/WebKit/blackberry/ChangeLog (135663 => 135664)
--- trunk/Source/WebKit/blackberry/ChangeLog 2012-11-25 02:52:20 UTC (rev 135663)
+++ trunk/Source/WebKit/blackberry/ChangeLog 2012-11-25 04:13:29 UTC (rev 135664)
@@ -1,3 +1,20 @@
+2012-11-24 Andy Chen <[email protected]>
+
+ [BlackBerry] Find-on-page keeps stale pointer
+ https://bugs.webkit.org/show_bug.cgi?id=103190
+
+ Reviewed by Rob Buis.
+
+ Find on page: pendingScopingEffort stores stale pointer when frames unload,
+ we need to cancel those scoping efforts.
+ PR 250807.
+
+ Internally reviewed by Yongxin Dai and Mike Fenton.
+
+ * WebKitSupport/InPageSearchManager.cpp:
+ (InPageSearchManager::DeferredScopeStringMatches):
+ (BlackBerry::WebKit::InPageSearchManager::frameUnloaded):
+
2012-11-24 Genevieve Mak <[email protected]>
[BlackBerry] Text not selected when input field focused.
Modified: trunk/Source/WebKit/blackberry/WebKitSupport/InPageSearchManager.cpp (135663 => 135664)
--- trunk/Source/WebKit/blackberry/WebKitSupport/InPageSearchManager.cpp 2012-11-25 02:52:20 UTC (rev 135663)
+++ trunk/Source/WebKit/blackberry/WebKitSupport/InPageSearchManager.cpp 2012-11-25 04:13:29 UTC (rev 135664)
@@ -53,6 +53,7 @@
}
private:
+ friend class InPageSearchManager;
void doTimeout(Timer<DeferredScopeStringMatches>*)
{
m_searchManager->callScopeStringMatches(this, m_scopingFrame, m_searchText, m_reset, m_locateActiveMatchOnly);
@@ -247,6 +248,13 @@
void InPageSearchManager::frameUnloaded(const Frame* frame)
{
+ for (size_t i = 0; i < m_deferredScopingWork.size(); i++) {
+ if (m_deferredScopingWork[i]->m_scopingFrame == frame) {
+ // Clear pending scoping efforts in case of dangling pointer.
+ cancelPendingScopingEffort();
+ break;
+ }
+ }
if (!m_activeMatch) {
if (m_webPage->mainFrame() == frame && m_activeSearchString.length())
m_activeSearchString = String();
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes