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

Reply via email to