[SCM] WebKit Debian packaging branch, webkit-1.2, updated. upstream/1.1.90-6072-g9a69373

levin at chromium.org levin at chromium.org
Thu Apr 8 00:47:56 UTC 2010


The following commit has been merged in the webkit-1.2 branch:
commit 18872f5a639a53500500af45f5f74d80b05d5f1e
Author: levin at chromium.org <levin at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Dec 24 01:15:10 2009 +0000

    2009-12-23  David Levin  <levin at chromium.org>
    
            REGRESSION (r52494): Assertion failure in Frame::caretBlinkTimerFired() (selection()->isCaret())
            https://bugs.webkit.org/show_bug.cgi?id=32903
    
            No review but ok'ed by Darin Adler. Rolling out r52494 due to above regression.
    
    LayoutTests:
            * fast/forms/selection-layout-reentry-strange-case-expected.txt: Removed.
            * fast/forms/selection-layout-reentry-strange-case.html: Removed.
            * platform/mac/accessibility/frame-with-title-expected.txt:
    
    WebCore:
            * editing/SelectionController.cpp:
            (WebCore::SelectionController::SelectionController):
            (WebCore::SelectionController::setSelection):
            * editing/SelectionController.h:
            * page/Frame.cpp:
            (WebCore::Frame::setCaretVisible):
            (WebCore::Frame::selectionLayoutChanged):
            * page/FrameView.cpp:
            (WebCore::FrameView::needsLayout):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@52535 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index eff7be8..223bb29 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,14 @@
+2009-12-23  David Levin  <levin at chromium.org>
+
+        REGRESSION (r52494): Assertion failure in Frame::caretBlinkTimerFired() (selection()->isCaret())
+        https://bugs.webkit.org/show_bug.cgi?id=32903
+
+        No review but ok'ed by Darin Adler. Rolling out r52494 due to above regression.
+
+        * fast/forms/selection-layout-reentry-strange-case-expected.txt: Removed.
+        * fast/forms/selection-layout-reentry-strange-case.html: Removed.
+        * platform/mac/accessibility/frame-with-title-expected.txt:
+
 2009-12-23  Nikolas Zimmermann  <nzimmermann at rim.com>
 
         Reviewed by Eric Seidel.
diff --git a/LayoutTests/fast/forms/selection-layout-reentry-strange-case-expected.txt b/LayoutTests/fast/forms/selection-layout-reentry-strange-case-expected.txt
deleted file mode 100644
index 811b710..0000000
--- a/LayoutTests/fast/forms/selection-layout-reentry-strange-case-expected.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-t down
-Yes, this is a strange test case. If you can see this and it did not crash, then all is well.
diff --git a/LayoutTests/fast/forms/selection-layout-reentry-strange-case.html b/LayoutTests/fast/forms/selection-layout-reentry-strange-case.html
deleted file mode 100644
index 72b96c6..0000000
--- a/LayoutTests/fast/forms/selection-layout-reentry-strange-case.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<textarea id="container">si
-<DIV abcdefgh_POSIT></DIV>
-</textarea>t down
-
-<script>
-    document.execCommand("FindString", true, "sit");
-    document.execCommand("FindString", true, "down");
-</script>
-
-<style></style>
-
-<script type="text/javascript">
-    if (window.layoutTestController)
-        layoutTestController.dumpAsText();
-    document.getElementById('container').innerHTML="";
-</script>
-
-<p>Yes, this is a strange test case. If you can see this and it
-did not crash, then all is well.</p>
diff --git a/LayoutTests/platform/mac/accessibility/frame-with-title-expected.txt b/LayoutTests/platform/mac/accessibility/frame-with-title-expected.txt
index 538cfd8..0cad128 100644
--- a/LayoutTests/platform/mac/accessibility/frame-with-title-expected.txt
+++ b/LayoutTests/platform/mac/accessibility/frame-with-title-expected.txt
@@ -21,7 +21,7 @@ AXBlockQuoteLevel: 0
 AXTopLevelUIElement: <AXWebArea>
 AXLinkUIElements: <array of size 0>
 AXLoaded: 1
-AXLayoutCount: 4
+AXLayoutCount: 3
 AXURL: about:blank
 
 
@@ -48,7 +48,7 @@ AXBlockQuoteLevel: 0
 AXTopLevelUIElement: <AXWebArea>
 AXLinkUIElements: <array of size 0>
 AXLoaded: 1
-AXLayoutCount: 5
+AXLayoutCount: 4
 AXURL: about:blank
 
 
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 4184034..7d0fcd2 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,20 @@
+2009-12-23  David Levin  <levin at chromium.org>
+
+        REGRESSION (r52494): Assertion failure in Frame::caretBlinkTimerFired() (selection()->isCaret())
+        https://bugs.webkit.org/show_bug.cgi?id=32903
+
+        No review but ok'ed by Darin Adler. Rolling out r52494 due to above regression.
+
+        * editing/SelectionController.cpp:
+        (WebCore::SelectionController::SelectionController):
+        (WebCore::SelectionController::setSelection):
+        * editing/SelectionController.h:
+        * page/Frame.cpp:
+        (WebCore::Frame::setCaretVisible):
+        (WebCore::Frame::selectionLayoutChanged):
+        * page/FrameView.cpp:
+        (WebCore::FrameView::needsLayout):
+
 2009-12-23  Nikolas Zimmermann  <nzimmermann at rim.com>
 
         Reviewed by Eric Seidel.
diff --git a/WebCore/editing/SelectionController.cpp b/WebCore/editing/SelectionController.cpp
index bf24aba..518df45 100644
--- a/WebCore/editing/SelectionController.cpp
+++ b/WebCore/editing/SelectionController.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2004, 2008, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2004, 2008 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -70,7 +70,6 @@ SelectionController::SelectionController(Frame* frame, bool isDragCaretControlle
     , m_isDragCaretController(isDragCaretController)
     , m_isCaretBlinkingSuspended(false)
     , m_focused(frame && frame->page() && frame->page()->focusController()->focusedFrame() == frame)
-    , m_needsDisplayUpdate(false)
 {
 }
 
@@ -146,8 +145,7 @@ void SelectionController::setSelection(const VisibleSelection& s, bool closeTypi
     if (!s.isNone())
         m_frame->setFocusedNodeIfNeeded();
     
-    setNeedsDisplayUpdate();
-
+    m_frame->selectionLayoutChanged();
     // Always clear the x position used for vertical arrow navigation.
     // It will be restored by the vertical arrow navigation code if necessary.
     m_xPosForVerticalArrowNavigation = NoXPosForVerticalArrowNavigation;
@@ -1303,20 +1301,6 @@ bool SelectionController::isFocusedAndActive() const
     return m_focused && m_frame->page() && m_frame->page()->focusController()->isActive();
 }
 
-void SelectionController::setNeedsDisplayUpdate(bool needsUpdate)
-{
-    if (m_needsDisplayUpdate == needsUpdate)
-        return;
-    m_needsDisplayUpdate = needsUpdate;
-
-    if (!m_needsDisplayUpdate)
-        return;
-    FrameView* view = m_frame->view();
-    if (!view)
-        return;
-    view->scheduleRelayout();
-}
-
 #ifndef NDEBUG
 
 void SelectionController::formatForDebugger(char* buffer, unsigned length) const
diff --git a/WebCore/editing/SelectionController.h b/WebCore/editing/SelectionController.h
index 532f4d9..d03df52 100644
--- a/WebCore/editing/SelectionController.h
+++ b/WebCore/editing/SelectionController.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2004, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2004 Apple Computer, Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -124,10 +124,6 @@ public:
     bool isFocusedAndActive() const;
     void pageActivationChanged();
 
-    // Selection display machinery
-    void setNeedsDisplayUpdate(bool = true);
-    bool needsDisplayUpdate() const { return m_needsDisplayUpdate; }
-
 #ifndef NDEBUG
     void formatForDebugger(char* buffer, unsigned length) const;
     void showTreeForThis() const;
@@ -178,7 +174,7 @@ private:
     bool m_isDragCaretController : 1;
     bool m_isCaretBlinkingSuspended : 1;
     bool m_focused : 1;
-    bool m_needsDisplayUpdate : 1;
+
 };
 
 inline bool operator==(const SelectionController& a, const SelectionController& b)
diff --git a/WebCore/page/Frame.cpp b/WebCore/page/Frame.cpp
index 5206372..bc1b1ca 100644
--- a/WebCore/page/Frame.cpp
+++ b/WebCore/page/Frame.cpp
@@ -563,7 +563,7 @@ void Frame::setCaretVisible(bool flag)
         return;
     clearCaretRectIfNeeded();
     m_caretVisible = flag;
-    selection()->setNeedsDisplayUpdate();
+    selectionLayoutChanged();
 }
 
 void Frame::clearCaretRectIfNeeded()
@@ -630,8 +630,6 @@ void Frame::setFocusedNodeIfNeeded()
 
 void Frame::selectionLayoutChanged()
 {
-    selection()->setNeedsDisplayUpdate(false);
-
     bool caretRectChanged = selection()->recomputeCaretRect();
 
 #if ENABLE(TEXT_CARET)
diff --git a/WebCore/page/FrameView.cpp b/WebCore/page/FrameView.cpp
index e2f6382..483a220 100644
--- a/WebCore/page/FrameView.cpp
+++ b/WebCore/page/FrameView.cpp
@@ -1198,8 +1198,7 @@ bool FrameView::needsLayout() const
         || m_layoutRoot
         || (document && document->childNeedsStyleRecalc()) // can occur when using WebKit ObjC interface
         || m_frame->needsReapplyStyles()
-        || (m_deferSetNeedsLayouts && m_setNeedsLayoutWasDeferred)
-        || m_frame->selection()->needsDisplayUpdate();
+        || (m_deferSetNeedsLayouts && m_setNeedsLayoutWasDeferred);
 }
 
 void FrameView::setNeedsLayout()

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list