Title: [117572] trunk
Revision
117572
Author
[email protected]
Date
2012-05-18 03:17:52 -0700 (Fri, 18 May 2012)

Log Message

https://bugs.webkit.org/show_bug.cgi?id=85515
Stale frame in WebCore::SpellChecker::didCheckSucceeded

Source/WebCore:

Reviewed by Ryosuke Niwa.

Added EditorClient::frameWillDetachPage() notification to give a
change to invalidate pending spellcheck requests on the client.

Test: editing/spelling/spellcheck-async-remove-frame.html

* editing/Editor.cpp:
(WebCore::Editor::Editor):
* editing/Editor.h:
(Editor):
* loader/EmptyClients.h:
(WebCore::EmptyEditorClient::frameWillDetachPage):
* page/EditorClient.h:
(EditorClient):

Source/WebKit/blackberry:

Reviewed by Ryosuke Niwa.

* WebCoreSupport/EditorClientBlackBerry.h:
(WebCore::EditorClientBlackBerry::frameWillDetachPage):

Source/WebKit/chromium:

Added WebTextCheckingCompletionImpl::invalidate() to mark
pending spellcheck request as invalid, and added frameWillDetachPage()
to fire it.

Reviewed by Ryosuke Niwa.

* src/EditorClientImpl.cpp:
(WebKit::EditorClientImpl::frameWillDetachPage):
(WebKit):
(WebKit::EditorClientImpl::requestCheckingOfString):
(WebKit::EditorClientImpl::didCheckString):
* src/EditorClientImpl.h:
(WebKit):
(EditorClientImpl):
* src/WebTextCheckingCompletionImpl.cpp:
(WebKit::WebTextCheckingCompletionImpl::didFinishCheckingText):
(WebKit::WebTextCheckingCompletionImpl::didCancelCheckingText):
(WebKit::WebTextCheckingCompletionImpl::invalidate):
(WebKit):
* src/WebTextCheckingCompletionImpl.h:
(WebKit):
(WebKit::WebTextCheckingCompletionImpl::WebTextCheckingCompletionImpl):
(WebTextCheckingCompletionImpl):
(WebKit::WebTextCheckingCompletionImpl::spellChecker):

Source/WebKit/efl:

Reviewed by Ryosuke Niwa.

* WebCoreSupport/EditorClientEfl.h:
(WebCore::EditorClientEfl::frameWillDetachPage):

Source/WebKit/gtk:

Reviewed by Ryosuke Niwa.

* WebCoreSupport/EditorClientGtk.h:
(WebKit::EditorClient::frameWillDetachPage):

Source/WebKit/mac:

Reviewed by Ryosuke Niwa.

* WebCoreSupport/WebEditorClient.h:

Source/WebKit/qt:

Reviewed by Ryosuke Niwa.

* WebCoreSupport/EditorClientQt.h:
(WebCore::EditorClientQt::frameWillDetachPage):

Source/WebKit/win:

Reviewed by Ryosuke Niwa.

* WebCoreSupport/WebEditorClient.h:
(WebEditorClient::frameWillDetachPage):

Source/WebKit/wince:

Reviewed by Ryosuke Niwa.

* WebCoreSupport/EditorClientWinCE.h:
(WebKit::EditorClientWinCE::frameWillDetachPage):

Source/WebKit/wx:

Reviewed by Ryosuke Niwa.

* WebKitSupport/EditorClientWx.h:
(WebCore::EditorClientWx::frameWillDetachPage):

LayoutTests:

Reviewed by Ryosuke Niwa.

* editing/spelling/spellcheck-async-remove-frame-expected.txt: Added.
* editing/spelling/spellcheck-async-remove-frame.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (117571 => 117572)


--- trunk/LayoutTests/ChangeLog	2012-05-18 10:10:52 UTC (rev 117571)
+++ trunk/LayoutTests/ChangeLog	2012-05-18 10:17:52 UTC (rev 117572)
@@ -1,3 +1,13 @@
+2012-05-18  MORITA Hajime  <[email protected]>
+
+        https://bugs.webkit.org/show_bug.cgi?id=85515
+        Stale frame in WebCore::SpellChecker::didCheckSucceeded
+
+        Reviewed by Ryosuke Niwa.
+
+        * editing/spelling/spellcheck-async-remove-frame-expected.txt: Added.
+        * editing/spelling/spellcheck-async-remove-frame.html: Added.
+
 2012-05-18  Pavel Feldman  <[email protected]>
 
         Web Inspector: add ContentProvider::contentType and use it when rendering navigator tree.

Added: trunk/LayoutTests/editing/spelling/spellcheck-async-remove-frame-expected.txt (0 => 117572)


--- trunk/LayoutTests/editing/spelling/spellcheck-async-remove-frame-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/editing/spelling/spellcheck-async-remove-frame-expected.txt	2012-05-18 10:17:52 UTC (rev 117572)
@@ -0,0 +1,2 @@
+PASS unless crash.
+
Property changes on: trunk/LayoutTests/editing/spelling/spellcheck-async-remove-frame-expected.txt
___________________________________________________________________

Added: svn:eol-style

Added: trunk/LayoutTests/editing/spelling/spellcheck-async-remove-frame.html (0 => 117572)


--- trunk/LayoutTests/editing/spelling/spellcheck-async-remove-frame.html	                        (rev 0)
+++ trunk/LayoutTests/editing/spelling/spellcheck-async-remove-frame.html	2012-05-18 10:17:52 UTC (rev 117572)
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+if (window.layoutTestController) {
+    layoutTestController.waitUntilDone();
+    layoutTestController.dumpAsText();
+    layoutTestController.setAsynchronousSpellCheckingEnabled(true);
+    internals.settings.setUnifiedTextCheckingEnabled(true);
+}
+
+function runTest() {
+    var textToSelect = "This text should be selected, but this frame shouldn't be focused.";
+    var frame = document.getElementById("frame");
+    var s = frame.contentDocument.getSelection();
+    s.setPosition(frame.contentDocument.body, 0);
+    frame.contentDocument.execCommand("InsertText", false, textToSelect);
+    frame.parentNode.removeChild(frame);
+    window.setTimeout(function() {
+        if (window.layoutTestController)
+            layoutTestController.notifyDone();
+    }, 50);
+}
+</script>
+</head>
+<body>
+<div>PASS unless crash.</div>
+<iframe id="frame" src="" _onload_="runTest();"></iframe>
+</body>
+</html>
Property changes on: trunk/LayoutTests/editing/spelling/spellcheck-async-remove-frame.html
___________________________________________________________________

Added: svn:eol-style

Modified: trunk/Source/WebCore/ChangeLog (117571 => 117572)


--- trunk/Source/WebCore/ChangeLog	2012-05-18 10:10:52 UTC (rev 117571)
+++ trunk/Source/WebCore/ChangeLog	2012-05-18 10:17:52 UTC (rev 117572)
@@ -1,3 +1,24 @@
+2012-05-18  MORITA Hajime  <[email protected]>
+
+        https://bugs.webkit.org/show_bug.cgi?id=85515
+        Stale frame in WebCore::SpellChecker::didCheckSucceeded
+
+        Reviewed by Ryosuke Niwa.
+
+        Added EditorClient::frameWillDetachPage() notification to give a
+        change to invalidate pending spellcheck requests on the client.
+
+        Test: editing/spelling/spellcheck-async-remove-frame.html
+
+        * editing/Editor.cpp:
+        (WebCore::Editor::Editor):
+        * editing/Editor.h:
+        (Editor):
+        * loader/EmptyClients.h:
+        (WebCore::EmptyEditorClient::frameWillDetachPage):
+        * page/EditorClient.h:
+        (EditorClient):
+
 2012-05-18  Pavel Feldman  <[email protected]>
 
         Web Inspector: add ContentProvider::contentType and use it when rendering navigator tree.

Modified: trunk/Source/WebCore/editing/Editor.cpp (117571 => 117572)


--- trunk/Source/WebCore/editing/Editor.cpp	2012-05-18 10:10:52 UTC (rev 117571)
+++ trunk/Source/WebCore/editing/Editor.cpp	2012-05-18 10:17:52 UTC (rev 117572)
@@ -841,7 +841,7 @@
 }
 
 Editor::Editor(Frame* frame)
-    : m_frame(frame)
+    : FrameDestructionObserver(frame)
     , m_deleteButtonController(adoptPtr(new DeleteButtonController(frame)))
     , m_ignoreCompositionSelectionChange(false)
     , m_shouldStartNewKillRingSequence(false)
@@ -3057,4 +3057,10 @@
     return WebCore::unifiedTextCheckerEnabled(m_frame);
 }
 
+void Editor::willDetachPage() OVERRIDE
+{
+    if (EditorClient* editorClient = client())
+        editorClient->frameWillDetachPage(frame());
+}
+
 } // namespace WebCore

Modified: trunk/Source/WebCore/editing/Editor.h (117571 => 117572)


--- trunk/Source/WebCore/editing/Editor.h	2012-05-18 10:10:52 UTC (rev 117571)
+++ trunk/Source/WebCore/editing/Editor.h	2012-05-18 10:17:52 UTC (rev 117572)
@@ -35,6 +35,7 @@
 #include "EditingStyle.h"
 #include "EditorInsertAction.h"
 #include "FindOptions.h"
+#include "FrameDestructionObserver.h"
 #include "FrameSelection.h"
 #include "TextChecking.h"
 #include "VisibleSelection.h"
@@ -83,7 +84,7 @@
 enum EditorCommandSource { CommandFromMenuOrKeyBinding, CommandFromDOM, CommandFromDOMWithUserInterface };
 enum EditorParagraphSeparator { EditorParagraphSeparatorIsDiv, EditorParagraphSeparatorIsP };
 
-class Editor {
+class Editor : public FrameDestructionObserver {
 public:
     Editor(Frame*);
     ~Editor();
@@ -398,7 +399,8 @@
     void setDefaultParagraphSeparator(EditorParagraphSeparator separator) { m_defaultParagraphSeparator = separator; }
 
 private:
-    Frame* m_frame;
+    virtual void willDetachPage() OVERRIDE;
+
     OwnPtr<DeleteButtonController> m_deleteButtonController;
     RefPtr<CompositeEditCommand> m_lastEditCommand;
     RefPtr<Node> m_removedAnchor;

Modified: trunk/Source/WebCore/loader/EmptyClients.h (117571 => 117572)


--- trunk/Source/WebCore/loader/EmptyClients.h	2012-05-18 10:10:52 UTC (rev 117571)
+++ trunk/Source/WebCore/loader/EmptyClients.h	2012-05-18 10:17:52 UTC (rev 117572)
@@ -437,6 +437,7 @@
     EmptyEditorClient() { }
     virtual ~EmptyEditorClient() { }
     virtual void pageDestroyed() { }
+    virtual void frameWillDetachPage(Frame*) { }
 
     virtual bool shouldDeleteRange(Range*) { return false; }
     virtual bool shouldShowDeleteInterface(HTMLElement*) { return false; }

Modified: trunk/Source/WebCore/page/EditorClient.h (117571 => 117572)


--- trunk/Source/WebCore/page/EditorClient.h	2012-05-18 10:10:52 UTC (rev 117571)
+++ trunk/Source/WebCore/page/EditorClient.h	2012-05-18 10:17:52 UTC (rev 117572)
@@ -63,7 +63,8 @@
 public:
     virtual ~EditorClient() {  }
     virtual void pageDestroyed() = 0;
-    
+    virtual void frameWillDetachPage(Frame*) = 0;
+
     virtual bool shouldDeleteRange(Range*) = 0;
     virtual bool shouldShowDeleteInterface(HTMLElement*) = 0;
     virtual bool smartInsertDeleteEnabled() = 0; 

Modified: trunk/Source/WebKit/blackberry/ChangeLog (117571 => 117572)


--- trunk/Source/WebKit/blackberry/ChangeLog	2012-05-18 10:10:52 UTC (rev 117571)
+++ trunk/Source/WebKit/blackberry/ChangeLog	2012-05-18 10:17:52 UTC (rev 117572)
@@ -1,3 +1,13 @@
+2012-05-18  MORITA Hajime  <[email protected]>
+
+        https://bugs.webkit.org/show_bug.cgi?id=85515
+        Stale frame in WebCore::SpellChecker::didCheckSucceeded
+
+        Reviewed by Ryosuke Niwa.
+
+        * WebCoreSupport/EditorClientBlackBerry.h:
+        (WebCore::EditorClientBlackBerry::frameWillDetachPage):
+
 2012-05-17  Jacky Jiang  <[email protected]>
 
         [BlackBerry] www.thestar.com/iphone Viewport Weirdness

Modified: trunk/Source/WebKit/blackberry/WebCoreSupport/EditorClientBlackBerry.h (117571 => 117572)


--- trunk/Source/WebKit/blackberry/WebCoreSupport/EditorClientBlackBerry.h	2012-05-18 10:10:52 UTC (rev 117571)
+++ trunk/Source/WebKit/blackberry/WebCoreSupport/EditorClientBlackBerry.h	2012-05-18 10:17:52 UTC (rev 117572)
@@ -37,6 +37,7 @@
 public:
     EditorClientBlackBerry(BlackBerry::WebKit::WebPagePrivate*);
     virtual void pageDestroyed();
+    virtual void frameWillDetachPage(Frame*) { }
     virtual bool shouldDeleteRange(Range*);
     virtual bool shouldShowDeleteInterface(HTMLElement*);
     virtual bool smartInsertDeleteEnabled();

Modified: trunk/Source/WebKit/chromium/ChangeLog (117571 => 117572)


--- trunk/Source/WebKit/chromium/ChangeLog	2012-05-18 10:10:52 UTC (rev 117571)
+++ trunk/Source/WebKit/chromium/ChangeLog	2012-05-18 10:17:52 UTC (rev 117572)
@@ -1,3 +1,33 @@
+2012-05-18  MORITA Hajime  <[email protected]>
+
+        https://bugs.webkit.org/show_bug.cgi?id=85515
+        Stale frame in WebCore::SpellChecker::didCheckSucceeded
+
+        Added WebTextCheckingCompletionImpl::invalidate() to mark
+        pending spellcheck request as invalid, and added frameWillDetachPage()
+        to fire it.
+
+        Reviewed by Ryosuke Niwa.
+
+        * src/EditorClientImpl.cpp:
+        (WebKit::EditorClientImpl::frameWillDetachPage):
+        (WebKit):
+        (WebKit::EditorClientImpl::requestCheckingOfString):
+        (WebKit::EditorClientImpl::didCheckString):
+        * src/EditorClientImpl.h:
+        (WebKit):
+        (EditorClientImpl):
+        * src/WebTextCheckingCompletionImpl.cpp:
+        (WebKit::WebTextCheckingCompletionImpl::didFinishCheckingText):
+        (WebKit::WebTextCheckingCompletionImpl::didCancelCheckingText):
+        (WebKit::WebTextCheckingCompletionImpl::invalidate):
+        (WebKit):
+        * src/WebTextCheckingCompletionImpl.h:
+        (WebKit):
+        (WebKit::WebTextCheckingCompletionImpl::WebTextCheckingCompletionImpl):
+        (WebTextCheckingCompletionImpl):
+        (WebKit::WebTextCheckingCompletionImpl::spellChecker):
+
 2012-05-18  Jochen Eisinger  <[email protected]>
 
         [chromium] plumb the frame for which a drag was initiated to the WebViewClient

Modified: trunk/Source/WebKit/chromium/src/EditorClientImpl.cpp (117571 => 117572)


--- trunk/Source/WebKit/chromium/src/EditorClientImpl.cpp	2012-05-18 10:10:52 UTC (rev 117571)
+++ trunk/Source/WebKit/chromium/src/EditorClientImpl.cpp	2012-05-18 10:17:52 UTC (rev 117572)
@@ -88,6 +88,21 @@
     // Our lifetime is bound to the WebViewImpl.
 }
 
+void EditorClientImpl::frameWillDetachPage(WebCore::Frame* frame)
+{
+    HashSet<WebTextCheckingCompletionImpl*> validRequests;
+
+    for (HashSet<WebTextCheckingCompletionImpl*>::iterator i = m_pendingTextChecks.begin();
+         i != m_pendingTextChecks.end(); ++i) {
+        if (frame->editor()->spellChecker() == (*i)->spellChecker())
+            (*i)->invalidate();
+        else
+            validRequests.add(*i);
+    }
+
+    m_pendingTextChecks.swap(validRequests);
+}
+
 bool EditorClientImpl::shouldShowDeleteInterface(HTMLElement* elem)
 {
     // Normally, we don't care to show WebCore's deletion UI, so we only enable
@@ -738,10 +753,19 @@
 
 void EditorClientImpl::requestCheckingOfString(SpellChecker* sender, const WebCore::TextCheckingRequest& request)
 {
-    if (m_webView->spellCheckClient())
-        m_webView->spellCheckClient()->requestCheckingOfText(request.text(), new WebTextCheckingCompletionImpl(request.sequence(), sender));
+    if (!m_webView->spellCheckClient())
+        return;
+
+    WebTextCheckingCompletionImpl* completion = new WebTextCheckingCompletionImpl(request.sequence(), sender, this);
+    m_pendingTextChecks.add(completion);
+    m_webView->spellCheckClient()->requestCheckingOfText(request.text(), completion);
 }
 
+void EditorClientImpl::didCheckString(WebTextCheckingCompletionImpl* completion)
+{
+    m_pendingTextChecks.remove(completion);
+}
+
 String EditorClientImpl::getAutoCorrectSuggestionForMisspelledWord(const String& misspelledWord)
 {
     if (!(isContinuousSpellCheckingEnabled() && m_webView->client()))

Modified: trunk/Source/WebKit/chromium/src/EditorClientImpl.h (117571 => 117572)


--- trunk/Source/WebKit/chromium/src/EditorClientImpl.h	2012-05-18 10:10:52 UTC (rev 117571)
+++ trunk/Source/WebKit/chromium/src/EditorClientImpl.h	2012-05-18 10:17:52 UTC (rev 117572)
@@ -35,6 +35,7 @@
 #include "TextCheckerClient.h"
 #include "Timer.h"
 #include <wtf/Deque.h>
+#include <wtf/HashSet.h>
 
 namespace WebCore {
 class Frame;
@@ -44,6 +45,7 @@
 
 namespace WebKit {
 class WebViewImpl;
+class WebTextCheckingCompletionImpl;
 
 class EditorClientImpl : public WebCore::EditorClient, public WebCore::TextCheckerClient {
 public:
@@ -51,6 +53,7 @@
 
     virtual ~EditorClientImpl();
     virtual void pageDestroyed();
+    virtual void frameWillDetachPage(WebCore::Frame*) OVERRIDE;
 
     virtual bool shouldShowDeleteInterface(WebCore::HTMLElement*);
     virtual bool smartInsertDeleteEnabled();
@@ -114,6 +117,8 @@
 
     virtual WebCore::TextCheckerClient* textChecker() { return this; }
 
+    void didCheckString(WebTextCheckingCompletionImpl*);
+
 private:
     void modifySelection(WebCore::Frame*, WebCore::KeyboardEvent*);
 
@@ -141,6 +146,8 @@
         SpellCheckForcedOff
     };
     int m_spellCheckThisFieldStatus;
+
+    WTF::HashSet<WebTextCheckingCompletionImpl*> m_pendingTextChecks;
 };
 
 } // namespace WebKit

Modified: trunk/Source/WebKit/chromium/src/WebTextCheckingCompletionImpl.cpp (117571 => 117572)


--- trunk/Source/WebKit/chromium/src/WebTextCheckingCompletionImpl.cpp	2012-05-18 10:10:52 UTC (rev 117571)
+++ trunk/Source/WebKit/chromium/src/WebTextCheckingCompletionImpl.cpp	2012-05-18 10:17:52 UTC (rev 117572)
@@ -31,6 +31,7 @@
 #include "config.h"
 #include "WebTextCheckingCompletionImpl.h"
 
+#include "EditorClientImpl.h"
 #include "SpellChecker.h"
 #include "TextCheckerClient.h"
 #include "WebTextCheckingResult.h"
@@ -51,14 +52,28 @@
 
 void WebTextCheckingCompletionImpl::didFinishCheckingText(const WebVector<WebTextCheckingResult>& results)
 {
-    m_spellChecker->didCheckSucceeded(m_identifier, toCoreResults(results));
+    if (m_spellChecker) {
+        m_spellChecker->didCheckSucceeded(m_identifier, toCoreResults(results));
+        m_editorClient->didCheckString(this);
+    }
+
     delete this;
 }
 
 void WebTextCheckingCompletionImpl::didCancelCheckingText()
 {
-    m_spellChecker->didCheckCanceled(m_identifier);
+    if (m_spellChecker) {
+        m_spellChecker->didCheckCanceled(m_identifier);
+        m_editorClient->didCheckString(this);
+    }
+
     delete this;
 }
 
+void WebTextCheckingCompletionImpl::invalidate()
+{
+    m_spellChecker = 0;
+    m_editorClient = 0;
+}
+
 } // namespace WebKit

Modified: trunk/Source/WebKit/chromium/src/WebTextCheckingCompletionImpl.h (117571 => 117572)


--- trunk/Source/WebKit/chromium/src/WebTextCheckingCompletionImpl.h	2012-05-18 10:10:52 UTC (rev 117571)
+++ trunk/Source/WebKit/chromium/src/WebTextCheckingCompletionImpl.h	2012-05-18 10:17:52 UTC (rev 117572)
@@ -39,21 +39,29 @@
 
 namespace WebKit {
 
+class EditorClientImpl;
+
 class WebTextCheckingCompletionImpl : public WebTextCheckingCompletion {
 public:
-    WebTextCheckingCompletionImpl(int identifier, WebCore::SpellChecker* spellchecker)
-        : m_identifier(identifier), m_spellChecker(spellchecker)
+    WebTextCheckingCompletionImpl(int identifier, WebCore::SpellChecker* spellchecker, EditorClientImpl* editorClient)
+        : m_identifier(identifier)
+        , m_spellChecker(spellchecker)
+        , m_editorClient(editorClient)
     {
     }
 
     virtual void didFinishCheckingText(const WebVector<WebTextCheckingResult>&);
     virtual void didCancelCheckingText();
 
+    void invalidate();
+    WebCore::SpellChecker* spellChecker() const { return m_spellChecker; }
+
 private:
     virtual ~WebTextCheckingCompletionImpl() { }
 
     int m_identifier;
     WebCore::SpellChecker* m_spellChecker;
+    EditorClientImpl* m_editorClient;
 };
 
 } // namespace WebKit

Modified: trunk/Source/WebKit/efl/ChangeLog (117571 => 117572)


--- trunk/Source/WebKit/efl/ChangeLog	2012-05-18 10:10:52 UTC (rev 117571)
+++ trunk/Source/WebKit/efl/ChangeLog	2012-05-18 10:17:52 UTC (rev 117572)
@@ -1,3 +1,13 @@
+2012-05-18  MORITA Hajime  <[email protected]>
+
+        https://bugs.webkit.org/show_bug.cgi?id=85515
+        Stale frame in WebCore::SpellChecker::didCheckSucceeded
+
+        Reviewed by Ryosuke Niwa.
+
+        * WebCoreSupport/EditorClientEfl.h:
+        (WebCore::EditorClientEfl::frameWillDetachPage):
+
 2012-05-18  Sudarsana Nagineni  <[email protected]>
 
         [EFL] DRT needs an implementation of layoutTestController.setSerializeHTTPLoads

Modified: trunk/Source/WebKit/efl/WebCoreSupport/EditorClientEfl.h (117571 => 117572)


--- trunk/Source/WebKit/efl/WebCoreSupport/EditorClientEfl.h	2012-05-18 10:10:52 UTC (rev 117571)
+++ trunk/Source/WebKit/efl/WebCoreSupport/EditorClientEfl.h	2012-05-18 10:17:52 UTC (rev 117572)
@@ -82,6 +82,7 @@
 
     // from EditorClient
     virtual void pageDestroyed();
+    virtual void frameWillDetachPage(Frame*) { }
 
     virtual bool shouldDeleteRange(Range*);
     virtual bool shouldShowDeleteInterface(HTMLElement*);

Modified: trunk/Source/WebKit/gtk/ChangeLog (117571 => 117572)


--- trunk/Source/WebKit/gtk/ChangeLog	2012-05-18 10:10:52 UTC (rev 117571)
+++ trunk/Source/WebKit/gtk/ChangeLog	2012-05-18 10:17:52 UTC (rev 117572)
@@ -1,3 +1,13 @@
+2012-05-18  MORITA Hajime  <[email protected]>
+
+        https://bugs.webkit.org/show_bug.cgi?id=85515
+        Stale frame in WebCore::SpellChecker::didCheckSucceeded
+
+        Reviewed by Ryosuke Niwa.
+
+        * WebCoreSupport/EditorClientGtk.h:
+        (WebKit::EditorClient::frameWillDetachPage):
+
 2012-05-17  Hironori Bono  <[email protected]>
 
         [Refactoring] Move platform-specific code in Editor::respondToChangedSelection to the WebKit layer

Modified: trunk/Source/WebKit/gtk/WebCoreSupport/EditorClientGtk.h (117571 => 117572)


--- trunk/Source/WebKit/gtk/WebCoreSupport/EditorClientGtk.h	2012-05-18 10:10:52 UTC (rev 117571)
+++ trunk/Source/WebKit/gtk/WebCoreSupport/EditorClientGtk.h	2012-05-18 10:17:52 UTC (rev 117572)
@@ -71,6 +71,7 @@
 
         // from EditorClient
         virtual void pageDestroyed();
+        virtual void frameWillDetachPage(Frame*) { }
 
         virtual bool shouldDeleteRange(WebCore::Range*);
         virtual bool shouldShowDeleteInterface(WebCore::HTMLElement*);

Modified: trunk/Source/WebKit/mac/ChangeLog (117571 => 117572)


--- trunk/Source/WebKit/mac/ChangeLog	2012-05-18 10:10:52 UTC (rev 117571)
+++ trunk/Source/WebKit/mac/ChangeLog	2012-05-18 10:17:52 UTC (rev 117572)
@@ -1,3 +1,12 @@
+2012-05-18  MORITA Hajime  <[email protected]>
+
+        https://bugs.webkit.org/show_bug.cgi?id=85515
+        Stale frame in WebCore::SpellChecker::didCheckSucceeded
+
+        Reviewed by Ryosuke Niwa.
+
+        * WebCoreSupport/WebEditorClient.h:
+
 2012-05-17  Andy Estes  <[email protected]>
 
         Don't let -[CALayer renderInContext:] try to render WebView's root layer

Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebEditorClient.h (117571 => 117572)


--- trunk/Source/WebKit/mac/WebCoreSupport/WebEditorClient.h	2012-05-18 10:10:52 UTC (rev 117571)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebEditorClient.h	2012-05-18 10:17:52 UTC (rev 117572)
@@ -41,6 +41,7 @@
     WebEditorClient(WebView *);
     virtual ~WebEditorClient();
     virtual void pageDestroyed() OVERRIDE;
+    virtual void frameWillDetachPage(Frame*) OVERRIDE { }
 
     virtual bool isGrammarCheckingEnabled() OVERRIDE;
     virtual void toggleGrammarChecking() OVERRIDE;

Modified: trunk/Source/WebKit/qt/ChangeLog (117571 => 117572)


--- trunk/Source/WebKit/qt/ChangeLog	2012-05-18 10:10:52 UTC (rev 117571)
+++ trunk/Source/WebKit/qt/ChangeLog	2012-05-18 10:17:52 UTC (rev 117572)
@@ -1,3 +1,13 @@
+2012-05-18  MORITA Hajime  <[email protected]>
+
+        https://bugs.webkit.org/show_bug.cgi?id=85515
+        Stale frame in WebCore::SpellChecker::didCheckSucceeded
+
+        Reviewed by Ryosuke Niwa.
+
+        * WebCoreSupport/EditorClientQt.h:
+        (WebCore::EditorClientQt::frameWillDetachPage):
+
 2012-05-17  Hironori Bono  <[email protected]>
 
         [Refactoring] Move platform-specific code in Editor::respondToChangedSelection to the WebKit layer

Modified: trunk/Source/WebKit/qt/WebCoreSupport/EditorClientQt.h (117571 => 117572)


--- trunk/Source/WebKit/qt/WebCoreSupport/EditorClientQt.h	2012-05-18 10:10:52 UTC (rev 117571)
+++ trunk/Source/WebKit/qt/WebCoreSupport/EditorClientQt.h	2012-05-18 10:17:52 UTC (rev 117572)
@@ -44,6 +44,7 @@
     EditorClientQt(QWebPage* page);
     
     virtual void pageDestroyed();
+    virtual void frameWillDetachPage(Frame*) { }
     
     virtual bool shouldDeleteRange(Range*);
     virtual bool shouldShowDeleteInterface(HTMLElement*);

Modified: trunk/Source/WebKit/win/ChangeLog (117571 => 117572)


--- trunk/Source/WebKit/win/ChangeLog	2012-05-18 10:10:52 UTC (rev 117571)
+++ trunk/Source/WebKit/win/ChangeLog	2012-05-18 10:17:52 UTC (rev 117572)
@@ -1,3 +1,13 @@
+2012-05-18  MORITA Hajime  <[email protected]>
+
+        https://bugs.webkit.org/show_bug.cgi?id=85515
+        Stale frame in WebCore::SpellChecker::didCheckSucceeded
+
+        Reviewed by Ryosuke Niwa.
+
+        * WebCoreSupport/WebEditorClient.h:
+        (WebEditorClient::frameWillDetachPage):
+
 2012-05-17  Hironori Bono  <[email protected]>
 
         [Refactoring] Move platform-specific code in Editor::respondToChangedSelection to the WebKit layer

Modified: trunk/Source/WebKit/win/WebCoreSupport/WebEditorClient.h (117571 => 117572)


--- trunk/Source/WebKit/win/WebCoreSupport/WebEditorClient.h	2012-05-18 10:10:52 UTC (rev 117571)
+++ trunk/Source/WebKit/win/WebCoreSupport/WebEditorClient.h	2012-05-18 10:17:52 UTC (rev 117572)
@@ -41,6 +41,7 @@
     ~WebEditorClient();
 
     virtual void pageDestroyed();
+    virtual void frameWillDetachPage(Frame*) { }
 
     virtual bool isContinuousSpellCheckingEnabled();
     virtual void toggleGrammarChecking();

Modified: trunk/Source/WebKit/wince/ChangeLog (117571 => 117572)


--- trunk/Source/WebKit/wince/ChangeLog	2012-05-18 10:10:52 UTC (rev 117571)
+++ trunk/Source/WebKit/wince/ChangeLog	2012-05-18 10:17:52 UTC (rev 117572)
@@ -1,3 +1,13 @@
+2012-05-18  MORITA Hajime  <[email protected]>
+
+        https://bugs.webkit.org/show_bug.cgi?id=85515
+        Stale frame in WebCore::SpellChecker::didCheckSucceeded
+
+        Reviewed by Ryosuke Niwa.
+
+        * WebCoreSupport/EditorClientWinCE.h:
+        (WebKit::EditorClientWinCE::frameWillDetachPage):
+
 2012-05-17  Hironori Bono  <[email protected]>
 
         [Refactoring] Move platform-specific code in Editor::respondToChangedSelection to the WebKit layer

Modified: trunk/Source/WebKit/wince/WebCoreSupport/EditorClientWinCE.h (117571 => 117572)


--- trunk/Source/WebKit/wince/WebCoreSupport/EditorClientWinCE.h	2012-05-18 10:10:52 UTC (rev 117571)
+++ trunk/Source/WebKit/wince/WebCoreSupport/EditorClientWinCE.h	2012-05-18 10:17:52 UTC (rev 117572)
@@ -38,6 +38,7 @@
     ~EditorClientWinCE();
 
     virtual void pageDestroyed();
+    virtual void frameWillDetachPage(Frame*) { }
 
     virtual bool shouldDeleteRange(WebCore::Range*);
     virtual bool shouldShowDeleteInterface(WebCore::HTMLElement*);

Modified: trunk/Source/WebKit/wx/ChangeLog (117571 => 117572)


--- trunk/Source/WebKit/wx/ChangeLog	2012-05-18 10:10:52 UTC (rev 117571)
+++ trunk/Source/WebKit/wx/ChangeLog	2012-05-18 10:17:52 UTC (rev 117572)
@@ -1,3 +1,13 @@
+2012-05-18  MORITA Hajime  <[email protected]>
+
+        https://bugs.webkit.org/show_bug.cgi?id=85515
+        Stale frame in WebCore::SpellChecker::didCheckSucceeded
+
+        Reviewed by Ryosuke Niwa.
+
+        * WebKitSupport/EditorClientWx.h:
+        (WebCore::EditorClientWx::frameWillDetachPage):
+
 2012-05-17  Hironori Bono  <[email protected]>
 
         [Refactoring] Move platform-specific code in Editor::respondToChangedSelection to the WebKit layer

Modified: trunk/Source/WebKit/wx/WebKitSupport/EditorClientWx.h (117571 => 117572)


--- trunk/Source/WebKit/wx/WebKitSupport/EditorClientWx.h	2012-05-18 10:10:52 UTC (rev 117571)
+++ trunk/Source/WebKit/wx/WebKitSupport/EditorClientWx.h	2012-05-18 10:17:52 UTC (rev 117572)
@@ -45,6 +45,7 @@
     virtual ~EditorClientWx();
     void setPage(Page*);
     virtual void pageDestroyed();
+    virtual void frameWillDetachPage(Frame*) { }
 
     virtual bool shouldDeleteRange(Range*);
     virtual bool shouldShowDeleteInterface(HTMLElement*);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to