1. 23 Sep, 2007 1 commit
    • zecke's avatar
      /: · 2752405f
      zecke authored
      2007-09-20  Holger Hans Peter Freyther  <zecke@selfish.org>
      
              Rubber stamped by Adam.
      
              Renamed files from *Gdk to *Gtk (see #14732) using the
              work of Juan A. Suarez Romero as a base.
      
              GDK -> GTK
      
              * WebKit.pri:
              * WebKit.pro:
      
      JavaScriptCore:
      2007-09-20  Holger Hans Peter Freyther  <zecke@selfish.org>
      
              Rubber stamped by Adam.
      
              Renamed files from *Gdk to *Gtk (see #14732) using the
              work of Juan A. Suarez Romero as a base.
      
              GDK -> GTK 
      
              * JavaScriptCore.pri:
              * kjs/testkjs.pro:
              * pcre/dftables.pro:
              * wtf/Platform.h: PLATFORM(GDK) to PLATFORM(GTK)
      
      WebCore:
      2007-09-20  Holger Hans Peter Freyther  <zecke@selfish.org>
      
              Rubber stamped by Adam.
      
              Renamed files from *Gdk to *Gtk (see #14732) using the
              work of Juan A. Suarez Romero as a base.
      
              GDK -> GTK
      
              * Projects/gdk/webcore-gdk.bkl:
              * WebCore.pro:
              * WebCoreSources.bkl:
              * loader/gdk: Removed.
              * loader/gdk/DocumentLoaderGdk.cpp: Removed.
              * loader/gtk: Added.
              * loader/gtk/DocumentLoaderGdk.cpp: Removed.
              * loader/gtk/DocumentLoaderGtk.cpp: Added.
              * page/FrameView.cpp:
              * page/FrameView.h:
              * page/gdk: Removed.
              * page/gdk/DragControllerGdk.cpp: Removed.
              * page/gdk/EventHandlerGdk.cpp: Removed.
              * page/gdk/FrameGdk.cpp: Removed.
              * page/gtk: Added.
              * page/gtk/DragControllerGdk.cpp: Removed.
              * page/gtk/DragControllerGtk.cpp: Added.
              * page/gtk/EventHandlerGdk.cpp: Removed.
              * page/gtk/EventHandlerGtk.cpp: Added.
              (WebCore::EventHandler::createDraggingClipboard):
              * page/gtk/FrameGdk.cpp: Removed.
              * page/gtk/FrameGtk.cpp: Added.
              * platform/ContextMenuItem.h:
              * platform/Cursor.h:
              * platform/DragData.h:
              * platform/DragImage.h:
              * platform/FontData.h:
              * platform/NotImplemented.h:
              * platform/PlatformKeyboardEvent.h:
              * platform/PlatformMenuDescription.h:
              * platform/PlatformMouseEvent.h:
              * platform/PlatformWheelEvent.h:
              * platform/ScrollView.h:
              * platform/Widget.h:
              * platform/gdk: Removed.
              * platform/gdk/ClipboardGdk.cpp: Removed.
              * platform/gdk/ClipboardGdk.h: Removed.
              * platform/gdk/ContextMenuGdk.cpp: Removed.
              * platform/gdk/ContextMenuItemGdk.cpp: Removed.
              * platform/gdk/CookieJarGdk.cpp: Removed.
              * platform/gdk/CursorGdk.cpp: Removed.
              * platform/gdk/DragDataGdk.cpp: Removed.
              * platform/gdk/DragImageGdk.cpp: Removed.
              * platform/gdk/FileChooserGdk.cpp: Removed.
              * platform/gdk/FileSystemGdk.cpp: Removed.
              * platform/gdk/FontCacheGdk.cpp: Removed.
              * platform/gdk/FontDataGdk.cpp: Removed.
              * platform/gdk/FontGdk.cpp: Removed.
              * platform/gdk/FontPlatformData.h: Removed.
              * platform/gdk/FontPlatformDataGdk.cpp: Removed.
              * platform/gdk/GlyphPageTreeNodeGdk.cpp: Removed.
              * platform/gdk/KeyEventGdk.cpp: Removed.
              * platform/gdk/KeyboardCodes.h: Removed.
              * platform/gdk/LocalizedStringsGdk.cpp: Removed.
              * platform/gdk/LoggingGdk.cpp: Removed.
              * platform/gdk/MIMETypeRegistryGdk.cpp: Removed.
              * platform/gdk/MouseEventGdk.cpp: Removed.
              * platform/gdk/PasteboardGdk.cpp: Removed.
              * platform/gdk/PlatformScreenGdk.cpp: Removed.
              * platform/gdk/PlatformScrollBar.h: Removed.
              * platform/gdk/PlatformScrollBarGdk.cpp: Removed.
              * platform/gdk/PopupMenuGdk.cpp: Removed.
              * platform/gdk/RenderThemeGdk.cpp: Removed.
              * platform/gdk/RenderThemeGdk.h: Removed.
              * platform/gdk/ScrollViewGdk.cpp: Removed.
              * platform/gdk/SearchPopupMenuGdk.cpp: Removed.
              * platform/gdk/SharedTimerLinux.cpp: Removed.
              * platform/gdk/SoundGdk.cpp: Removed.
              * platform/gdk/SystemTimeLinux.cpp: Removed.
              * platform/gdk/TemporaryLinkStubs.cpp: Removed.
              * platform/gdk/WheelEventGdk.cpp: Removed.
              * platform/gdk/WidgetGdk.cpp: Removed.
              * platform/graphics/GraphicsContext.h:
              * platform/graphics/cairo/GraphicsContextCairo.cpp:
              (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
              (WebCore::GraphicsContext::setPlatformFont):
              * platform/graphics/gdk: Removed.
              * platform/graphics/gdk/IconGdk.cpp: Removed.
              * platform/graphics/gdk/ImageGdk.cpp: Removed.
              * platform/graphics/gtk: Added.
              * platform/graphics/gtk/IconGdk.cpp: Removed.
              * platform/graphics/gtk/IconGtk.cpp: Added.
              * platform/graphics/gtk/ImageGdk.cpp: Removed.
              * platform/graphics/gtk/ImageGtk.cpp: Added.
              * platform/gtk: Added.
              * platform/gtk/ClipboardGdk.cpp: Removed.
              * platform/gtk/ClipboardGdk.h: Removed.
              * platform/gtk/ClipboardGtk.cpp: Added.
              (WebCore::ClipboardGtk::ClipboardGtk):
              (WebCore::ClipboardGtk::~ClipboardGtk):
              (WebCore::ClipboardGtk::clearData):
              (WebCore::ClipboardGtk::clearAllData):
              (WebCore::ClipboardGtk::getData):
              (WebCore::ClipboardGtk::setData):
              (WebCore::ClipboardGtk::types):
              (WebCore::ClipboardGtk::dragLocation):
              (WebCore::ClipboardGtk::dragImage):
              (WebCore::ClipboardGtk::setDragImage):
              (WebCore::ClipboardGtk::dragImageElement):
              (WebCore::ClipboardGtk::setDragImageElement):
              (WebCore::ClipboardGtk::createDragImage):
              (WebCore::ClipboardGtk::declareAndWriteDragImage):
              (WebCore::ClipboardGtk::writeURL):
              (WebCore::ClipboardGtk::writeRange):
              (WebCore::ClipboardGtk::hasData):
              * platform/gtk/ClipboardGtk.h: Added.
              * platform/gtk/ContextMenuGdk.cpp: Removed.
              * platform/gtk/ContextMenuGtk.cpp: Added.
              * platform/gtk/ContextMenuItemGdk.cpp: Removed.
              * platform/gtk/ContextMenuItemGtk.cpp: Added.
              * platform/gtk/CookieJarGdk.cpp: Removed.
              * platform/gtk/CookieJarGtk.cpp: Added.
              * platform/gtk/CursorGdk.cpp: Removed.
              * platform/gtk/CursorGtk.cpp: Added.
              * platform/gtk/DragDataGdk.cpp: Removed.
              * platform/gtk/DragDataGtk.cpp: Added.
              * platform/gtk/DragImageGdk.cpp: Removed.
              * platform/gtk/DragImageGtk.cpp: Added.
              * platform/gtk/FileChooserGdk.cpp: Removed.
              * platform/gtk/FileChooserGtk.cpp: Added.
              * platform/gtk/FileSystemGdk.cpp: Removed.
              * platform/gtk/FileSystemGtk.cpp: Added.
              * platform/gtk/FontCacheGdk.cpp: Removed.
              * platform/gtk/FontCacheGtk.cpp: Added.
              * platform/gtk/FontDataGdk.cpp: Removed.
              * platform/gtk/FontDataGtk.cpp: Added.
              * platform/gtk/FontGdk.cpp: Removed.
              * platform/gtk/FontGtk.cpp: Added.
              * platform/gtk/FontPlatformDataGdk.cpp: Removed.
              * platform/gtk/FontPlatformDataGtk.cpp: Added.
              * platform/gtk/GlyphPageTreeNodeGdk.cpp: Removed.
              * platform/gtk/GlyphPageTreeNodeGtk.cpp: Added.
              * platform/gtk/KeyEventGdk.cpp: Removed.
              * platform/gtk/KeyEventGtk.cpp: Added.
              * platform/gtk/LocalizedStringsGdk.cpp: Removed.
              * platform/gtk/LocalizedStringsGtk.cpp: Added.
              * platform/gtk/LoggingGdk.cpp: Removed.
              * platform/gtk/LoggingGtk.cpp: Added.
              * platform/gtk/MIMETypeRegistryGdk.cpp: Removed.
              * platform/gtk/MIMETypeRegistryGtk.cpp: Added.
              * platform/gtk/MouseEventGdk.cpp: Removed.
              * platform/gtk/MouseEventGtk.cpp: Added.
              * platform/gtk/PasteboardGdk.cpp: Removed.
              * platform/gtk/PasteboardGtk.cpp: Added.
              * platform/gtk/PlatformScreenGdk.cpp: Removed.
              * platform/gtk/PlatformScreenGtk.cpp: Added.
              * platform/gtk/PlatformScrollBarGdk.cpp: Removed.
              * platform/gtk/PlatformScrollBarGtk.cpp: Added.
              * platform/gtk/PopupMenuGdk.cpp: Removed.
              * platform/gtk/PopupMenuGtk.cpp: Added.
              * platform/gtk/RenderThemeGdk.cpp: Removed.
              * platform/gtk/RenderThemeGdk.h: Removed.
              * platform/gtk/RenderThemeGtk.cpp: Added.
              (WebCore::theme):
              (WebCore::RenderThemeGtk::RenderThemeGtk):
              (WebCore::RenderThemeGtk::close):
              (WebCore::RenderThemeGtk::addIntrinsicMargins):
              (WebCore::RenderThemeGtk::supportsFocus):
              (WebCore::RenderThemeGtk::determineState):
              (WebCore::RenderThemeGtk::determineShadow):
              (WebCore::RenderThemeGtk::getThemeData):
              (WebCore::RenderThemeGtk::setCheckboxSize):
              (WebCore::RenderThemeGtk::paintCheckbox):
              (WebCore::RenderThemeGtk::setRadioSize):
              (WebCore::RenderThemeGtk::paintRadio):
              (WebCore::RenderThemeGtk::paintButton):
              (WebCore::RenderThemeGtk::adjustTextFieldStyle):
              (WebCore::RenderThemeGtk::paintTextField):
              (WebCore::RenderThemeGtk::paintTextArea):
              (WebCore::RenderThemeGtk::adjustButtonStyle):
              (WebCore::RenderThemeGtk::systemFont):
              (WebCore::RenderThemeGtk::gtkButton):
              (WebCore::RenderThemeGtk::gtkCheckbox):
              (WebCore::RenderThemeGtk::gtkRadioButton):
              (WebCore::RenderThemeGtk::gtkWindowContainer):
              * platform/gtk/RenderThemeGtk.h: Added.
              * platform/gtk/ScrollViewGdk.cpp: Removed.
              * platform/gtk/ScrollViewGtk.cpp: Added.
              * platform/gtk/SearchPopupMenuGdk.cpp: Removed.
              * platform/gtk/SearchPopupMenuGtk.cpp: Added.
              * platform/gtk/SoundGdk.cpp: Removed.
              * platform/gtk/SoundGtk.cpp: Added.
              * platform/gtk/WheelEventGdk.cpp: Removed.
              * platform/gtk/WheelEventGtk.cpp: Added.
              * platform/gtk/WidgetGdk.cpp: Removed.
              * platform/gtk/WidgetGtk.cpp: Added.
              * platform/network/ResourceHandle.h:
      
      WebKitTools:
      2007-09-20  Holger Hans Peter Freyther  <zecke@selfish.org>
      
              Rubber stamped by Adam.
      
              * GdkLauncher: Removed.
              * GdkLauncher/Bakefiles.bkgen: Removed.
              * GdkLauncher/ENV: Removed.
              * GdkLauncher/GdkLauncher.pro: Removed.
              * GdkLauncher/gdklauncher.bkl: Removed.
              * GdkLauncher/main.cpp: Removed.
              * GdkLauncher/mk: Removed.
              * GdkLauncher/simple.svg: Removed.
              * GdkLauncher/text.html: Removed.
              * GtkLauncher: Added.
              * GtkLauncher/GdkLauncher.pro: Removed.
              * GtkLauncher/GtkLauncher.pro: Added.
              * GtkLauncher/main.cpp:
              (updateWindowTitle):
              (main):
              * Scripts/build-webkit:
              * Scripts/regenerate-makefiles:
              * Scripts/run-javascriptcore-tests:
              * Scripts/run-launcher:
              * Scripts/run-webkit-tests:
              * Scripts/webkitdirs.pm:
      
      
      
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@25703 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2752405f
  2. 25 Aug, 2007 1 commit
    • bdash's avatar
      2007-08-25 Peter Kasting <zerodpx@gmail.org> · 62b657b8
      bdash authored
              Reviewed by Sam Weinig.
      
              Part 2 of http://bugs.webkit.org/show_bug.cgi?id=14967.
              Eliminate all remaining implicit conversions of wtf::Vector<T> to T*.  Where code was
              previously checking that the Vector's data pointer was non-NULL, check !Vector::isEmpty()
              instead.
      
              * wtf/Vector.h:
              (WTF::Vector::data):
      
      2007-08-25  Peter Kasting <zerodpx@gmail.org>
      
              Reviewed by Sam Weinig.
      
              Part 2 of http://bugs.webkit.org/show_bug.cgi?id=14967.
              Eliminate all remaining implicit conversions of wtf::Vector<T> to T*.  Where code was
              previously checking that the Vector's data pointer was non-NULL, check !Vector::isEmpty()
              instead.
      
              * bindings/js/kjs_navigator.cpp:
              (KJS::PluginBase::cachePluginDataIfNecessary):
              * loader/mac/LoaderNSURLExtras.m:
              (suggestedFilenameWithMIMEType):
              * page/FrameView.cpp:
              (WebCore::FrameView::~FrameView):
              (WebCore::FrameView::pauseScheduledEvents):
              (WebCore::FrameView::resumeScheduledEvents):
              (WebCore::FrameView::dispatchScheduledEvents):
              * platform/mac/PlugInInfoStoreMac.mm:
              (WebCore::PlugInInfoStore::createPluginInfoForPluginAtIndex):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@25240 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      62b657b8
  3. 21 Aug, 2007 2 commits
    • aroben's avatar
      Build fix for Mac · b8f1c677
      aroben authored
              Keep FrameView::layoutIfNeededRecursive Windows- and Gtk-only for now
              (sadly). This will have to wait until we merge ScrollView and FrameView.
      
              Reviewed by NOBODY.
      
              * page/FrameView.cpp:
              * page/FrameView.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@25179 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b8f1c677
    • aroben's avatar
      Switch Windows to using FrameView::layoutIfNeededRecursive · 7a1f2516
      aroben authored
       WebCore:
      
               Made FrameView::layoutIfNeededRecursive available to all platforms
      
               Currently it's only used on Gtk+ and Windows.
      
               Reviewed by Darin.
      
               * page/FrameView.cpp: Removed #ifdef.
               * page/FrameView.h: Ditto.
      
       WebKit/win:
      
               Switch Windows to using FrameView::layoutIfNeededRecursive
      
               Reviewed by Darin.
      
               * WebFrame.cpp: Removed layoutIfNeededRecursive.
               * WebFrame.h: Ditto.
               * WebView.cpp:
               (WebView::updateBackingStore): Call FrameView::layoutIfNeededRecursive.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@25177 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7a1f2516
  4. 10 Aug, 2007 2 commits
    • bdash's avatar
      2007-08-11 Mark Rowe <mrowe@apple.com> · f2e203d2
      bdash authored
              Build fix.  Change "#ifdef PLATFORM(GDK)" to "#if PLATFORM(GDK)".
      
              * page/FrameView.cpp:
              * page/FrameView.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@25007 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f2e203d2
    • zecke's avatar
      WebCore: · b387fe29
      zecke authored
      2007-08-11  Holger Hans Peter Freyther  <zecke@selfish.org>
      
              Reviewed by Adam.
      
              Copy the WebFrame::layoutIfNeededRecursive method of the windows port
              to FrameView to be used by the Gtk+ port. Simplify the implementation due
              moving it to the FrameView class.
      
              Implement the ScrollView::children() method for the Gtk+ port and make it
              available to the FrameView as children() is used within the layoutIfNeededRecursive method.
      
              * page/FrameView.cpp:
              (WebCore::FrameView::layoutIfNeededRecursive):
              * page/FrameView.h:
              * platform/ScrollView.h:
              * platform/gdk/ScrollViewGdk.cpp:
      
      WebKit/gtk:
      2007-08-11  Holger Hans Peter Freyther  <zecke@selfish.org>
      
              Reviewed by Adam.
      
              To not hit the needsLayout() assert of Frame::paint for subframes we need to
              make sure they are layed out. Use the newly created FrameView::layoutIfNeededRecursive
              method to do this.
      
              * Api/webkitgtkpage.cpp:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@25006 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b387fe29
  5. 05 Aug, 2007 1 commit
    • antti's avatar
      Reviewed by Darin. · 6e917c3a
      antti authored
              Fix <rdar://problem/5378214>
              Mail crashes at RenderLayer::paintLayer() when dragging a selection over To Do text
              
              ObjC interface does not guarantee that Document::updateRendering() gets called after
              modification are made to document. This can lead to situation where paint()
              is invoked with document still dirty which can then crash in number of interesting ways.
              
              - add hasChangedChild() as needsLayout() condition. layout() will then call recalcStyle() 
                catching most cases and making sure document is not dirty when entering painting.
              - protect recalcStyle() and layout() from being executed during painting. There are some
                cases needsLayout() protection does not cover.
              
              No layout test, these states are very hard or impossible to reach using Javascript interface
              (which generally guarantees that updateRendering() is done right after execution).
      
              * dom/Document.cpp:
              (WebCore::Document::recalcStyle):
              * page/Frame.cpp:
              (WebCore::Frame::paint):
              (WebCore::Frame::setPaintRestriction):
              (WebCore::Frame::isPainting):
              (WebCore::FramePrivate::FramePrivate):
              * page/Frame.h:
              * page/FramePrivate.h:
              * page/FrameView.cpp:
              (WebCore::FrameView::layout):
              (WebCore::FrameView::needsLayout):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@24878 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6e917c3a
  6. 03 Jul, 2007 1 commit
    • antti's avatar
      Reviewed by Maciej. · 82a77f52
      antti authored
              Blind fix for CrashTracer: [USER] 25 crashes in Safari at com.apple.WebCore: WebCore::Frame::document const + 6
              <rdar://problem/5263939>
              
              No one has managed to reproduce this but it looks like null check is needed here. There are plausible ways
              m_frame could be null for a live FrameView object.
      
              * page/FrameView.cpp:
              (WebCore::FrameView::needsLayout):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@23943 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      82a77f52
  7. 28 Jun, 2007 1 commit
    • weinig's avatar
      LayoutTests: · eeb79389
      weinig authored
              Reviewed by Beth.
      
              - test for http://bugs.webkit.org/show_bug.cgi?id=14118
                ASSERTION FAILED: !needsLayout() seen again
      
              * fast/dynamic/recursive-layout-expected.txt: Added.
              * fast/dynamic/recursive-layout.html: Added.
      
      WebCore:
      
              Reviewed by Beth.
      
              - fix http://bugs.webkit.org/show_bug.cgi?id=14118
                ASSERTION FAILED: !needsLayout() seen again
      
              Test: fast/dynamic/recursive-layout.html
      
              * page/FrameView.cpp:
              (WebCore::FrameView::layout): Removed the midLayout guards around
              the calls to invalidateSelection() and updateWidgetPositions(). Those
              calls may dirty the layout, but in that case they also update it, so
              they should be allowed to do it. Added an ASSERT to make sure that when
              they return, the root is not marked for layout.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@23866 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      eeb79389
  8. 07 Jun, 2007 1 commit
  9. 06 Jun, 2007 1 commit
  10. 31 May, 2007 1 commit
    • hyatt's avatar
      WebCore: · 6a8da928
      hyatt authored
              Fix for 11768, Flash plugin does not respect clips set via CSS.
      
              Reviewed by olliej
      
              * bindings/objc/DOM.mm:
              (-[DOMElement _windowClipRect]):
              * bindings/objc/DOMPrivate.h:
              * page/FrameView.cpp:
              (WebCore::FrameView::windowClipRect):
              (WebCore::FrameView::windowClipRectForLayer):
              * platform/ScrollView.h:
              (WebCore::ScrollView::contentsToWindow):
              (WebCore::ScrollView::windowToContents):
              * platform/mac/ScrollViewMac.mm:
              (WebCore::ScrollView::contentsToWindow):
              (WebCore::ScrollView::windowToContents):
      
      WebKit:
      
              Fix for 11768, Flash plugin does not respect clips set by CSS.
      
              Reviewed by olliej
      
              * Plugins/WebBaseNetscapePluginView.mm:
              (-[WebBaseNetscapePluginView saveAndSetNewPortStateForUpdate:]):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@21932 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6a8da928
  11. 30 May, 2007 1 commit
  12. 25 May, 2007 2 commits
  13. 18 May, 2007 1 commit
  14. 14 May, 2007 2 commits
    • adele's avatar
      Reviewed by Darin. · 7a2e1974
      adele authored
              Remove incorrect assertion.
      
              * page/FrameView.cpp: (WebCore::FrameView::setContentsPos):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@21462 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7a2e1974
    • darin's avatar
      Reviewed by Antti. · 8f1a187b
      darin authored
              - fix <rdar://problem/3109180> VIP: after go back, page jumps after loading even if I scrolled while loading
      
              * history/CachedPage.cpp: (WebCore::CachedPage::clear): Call clearFrame rather than
              clearPart -- the "part" term was leftover prehistoric terminology.
      
              * loader/FrameLoader.cpp:
              (WebCore::FrameLoader::open): Call setWasScrolledByUser(false) on the page, so that we
              can detect any user scrolling that happens during the "go back" process.
              (WebCore::FrameLoader::restoreScrollPositionAndViewState): Don't scroll if the view's
              wasScrolledByUser flag is set.
              (WebCore::FrameLoader::loadItem): Call setWasScrolledByUser(false) false when we do
              a new "load" (actually just a scroll) using the same frame. Also moved the line of code that
              sets m_currentHistoryItem to make this code path mroe similar to recursiveGoToItem.
              (WebCore::FrameLoader::recursiveGoToItem): Ditto.
      
              * page/Frame.cpp:
              (WebCore::Frame::~Frame): Call clearFrame rather than stting m_frame directly.
              (WebCore::Frame::sendScrollEvent): Call setWasScrolledByUser(true) on FrameView. The FrameView
              itself knows to ignore this if the scrolling is being done programmatically instead of by the user.
      
              * page/FrameView.h: Added wasScrolledByUser and setWasScrolledByUser. Also removed unneeded
              include and class forward declarations, renamed clearPart to clearFrame, removed uneeded function
              haveDelayedLayoutScheduled, and removed unneeded friend declarations.
              * page/FrameView.cpp:
              (WebCore::FrameViewPrivate::FrameViewPrivate): Added m_inProgrammaticScroll and m_wasScrolledByUser.
              (WebCore::FrameViewPrivate::reset): Set m_wasScrolledByUser to false.
              (WebCore::FrameView::clearFrame): Renamed from clearPart.
              (WebCore::FrameView::scrollRectIntoViewRecursively): Added code to set the m_inProgrammaticScroll flag.
              (WebCore::FrameView::setContentsPos): Ditto.
              (WebCore::FrameView::wasScrolledByUser): Added.
              (WebCore::FrameView::setWasScrolledByUser): Added. Does nothing if called when m_inProgrammaticScroll
              is true.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@21454 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8f1a187b
  15. 10 May, 2007 1 commit
    • thatcher's avatar
      LayoutTests: · 2acf17d1
      thatcher authored
              Reviewed by Darin.
      
              - repaint test and updated results for http://bugs.webkit.org/show_bug.cgi?id=13655
                Incomplete repaint when text-shadow is used in a render layer with explicit height
      
              * fast/repaint/layer-full-repaint-expected.checksum: Added.
              * fast/repaint/layer-full-repaint-expected.png: Added.
              * fast/repaint/layer-full-repaint-expected.txt: Added.
              * fast/repaint/layer-full-repaint.html: Added.
              * fast/repaint/repaint-resized-overflow-expected.checksum:
              * fast/repaint/repaint-resized-overflow-expected.png:
      
      WebCore:
      
              Reviewed by Darin.
      
              - fix http://bugs.webkit.org/show_bug.cgi?id=13655
                Incomplete repaint when text-shadow is used in a render layer with explicit height
      
              Test: fast/repaint/layer-full-repaint.html
      
              Removed custom repaint logic from RenderLayer. repaintAfterLayoutIfNeeded()
              knows how to do everything we need now. The only catch is that we cannot
              rely on its "do a full repaint if the object needs layout" behavior, since
              by the time we call it, the needs layout flag has been reset. The solution
              is to cache the need for a full repaint in the layer.
      
              * page/FrameView.cpp:
              (WebCore::FrameView::layout): Removed call to checkForRepaintOnResize().
              * rendering/RenderLayer.cpp:
              (WebCore::RenderLayer::checkForRepaintOnResize): Removed.
              (WebCore::RenderLayer::RenderLayer): Replaced the m_repaintOverflowOnResize
              flag with a m_needsFullRepaint flag, which indicates that the layer needs
              to do a full repaint in the next call to updateLayerPositions().
              (WebCore::RenderLayer::updateLayerPositions): Simplified the repaint logic.
              Either call repaintAfterLayoutIfNeeded() or do a full repaint, depending on
              m_needsFullRepaint.
              * rendering/RenderLayer.h:
              (WebCore::RenderLayer::setNeedsFullRepaint):
              * rendering/RenderObject.cpp:
              (WebCore::RenderObject::setNeedsLayout): Mark the layer for full repaint.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@21390 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2acf17d1
  16. 09 May, 2007 1 commit
    • bdash's avatar
      2007-05-09 Mitz Pettel <mitz@webkit.org> · 2c0baa5a
      bdash authored
              Reviewed by Dave Hyatt.
      
              - fix http://bugs.webkit.org/show_bug.cgi?id=13037
                REGRESSION: Copy-on-scroll not reset properly after back/forward navigation
      
              * page/FrameView.cpp:
              (WebCore::FrameViewPrivate::FrameViewPrivate): Moved initialization of
              m_slowRepaintObjectCount here.
              (WebCore::FrameViewPrivate::reset): Do not reset the slow repaint object
              count here.
              (WebCore::FrameView::useSlowRepaints):
              (WebCore::FrameView::addSlowRepaintObject):
              (WebCore::FrameView::removeSlowRepaintObject): Added an assertion that the
              object count is positive.
              * rendering/RenderObject.cpp:
              (WebCore::RenderObject::setStyle): Corrected a mix up between old and new
              style, which caused the object count to be decremented when it was supposed
              to be incremented and vice versa.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@21329 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2c0baa5a
  17. 29 Apr, 2007 1 commit
    • weinig's avatar
      LayoutTests: · fef13633
      weinig authored
              Reviewed by Darin and Hyatt.
      
              - test and updated results for http://bugs.webkit.org/show_bug.cgi?id=13487
                Implement O(1) absoluteClippedOverflowRect and absoluteOutlineBox during layout for a possible speed gain
      
              * fast/repaint/bugzilla-3509-expected.checksum:
              * fast/repaint/bugzilla-3509-expected.png:
              * fast/repaint/intermediate-layout-position-clip-expected.checksum: Added.
              * fast/repaint/intermediate-layout-position-clip-expected.png: Added.
              * fast/repaint/intermediate-layout-position-clip-expected.txt: Added.
              * fast/repaint/intermediate-layout-position-clip.html: Added.
              * fast/repaint/intermediate-layout-position-expected.checksum:
              * fast/repaint/intermediate-layout-position-expected.png:
      
      WebCore:
      
              Reviewed by Darin and Hyatt.
      
              - http://bugs.webkit.org/show_bug.cgi?id=13487
                Implement O(1) absoluteClippedOverflowRect and absoluteOutlineBox during layout for a possible speed gain
      
              Test for a bug fixed by this patch: fast/repaint/intermediate-layout-position-clip.html
      
              By keeping track of the total translation and clip during layout, absolutePosition and
              computeAbsoluteRepaintRect become O(1).
      
              * WebCore.pro: Added LayoutState.cpp
              * WebCore.vcproj/WebCore/WebCore.vcproj: Added LayoutState.{cpp,h}
              * WebCore.xcodeproj/project.pbxproj: Added LayoutState.{cpp,h}
              * WebCoreSources.bkl: Added LayoutState.cpp
              * page/FrameView.cpp:
              (WebCore::FrameView::layout): When doing subtree layout, push an initial layout state for the
              layout root.
              * rendering/LayoutState.cpp: Added. A LayoutState corresponding to a box consists of the origin of
              its coordinate system in view coordinates and possibly the clip rect, in view coordinates, which
              applies to its children.
              (WebCore::LayoutState::LayoutState):
              (WebCore::LayoutState::destroy):
              (WebCore::throw):
              (WebCore::LayoutState::operator delete):
              * rendering/LayoutState.h: Added.
              (WebCore::LayoutState::LayoutState):
              * rendering/RenderBlock.cpp:
              (WebCore::RenderBlock::layoutBlock): Factored out the "only positioned objects" case into
              layoutOnlyPositionedObjects(). Added code to push/pop LayoutState, unless we have columns, in
              which case we disable/enable LayoutState. Removed the translation by the layout delta
              of the old absolute rects, since that is now integral to absoluteClippedOverflowRect() and
              absoluteOutlineBox().
              (WebCore::RenderBlock::layoutOnlyPositionedObjects): Added this helper function that checks for
              and handles the case where only positioned objects need layout. Returns true in that case.
              (WebCore::RenderBlock::repaintOverhangingFloats): Disabled LayoutState when repainting floats, since
              they may belong to other containers.
              (WebCore::RenderBlock::updateFirstLetter): Disabled LayoutState when adding and removing from the
              first letter container, since it may be different than ourselves.
              * rendering/RenderBlock.h:
              * rendering/RenderBox.cpp:
              (WebCore::RenderBox::setStyle): Minor cleanup: changed element()->document() to the equivalent document().
              (WebCore::RenderBox::offsetForPositionedInContainer): Added. Factored out common code from
              absolutePosition, computeAbsoluteRepaintRect and RenderLayer::updateLayerPosition into this function.
              (WebCore::RenderBox::absolutePosition): Added an O(1) code path when this function is called during
              layout (and LayoutState has not been disabled). Factored out some code into
              offsetForPositionedInContainer.
              (WebCore::RenderBox::absoluteClippedOverflowRect): Added the layout delta here, so callers don't need
              to.
              (WebCore::RenderBox::computeAbsoluteRepaintRect): Added an O(1) code path when this function is called
              during layout (and LayoutState has not been disabled). Factored out some code into
              offsetForPositionedInContainer.
              * rendering/RenderContainer.cpp:
              (WebCore::RenderContainer::layout): Added LayoutState push/pop.
              * rendering/RenderFlexibleBox.cpp:
              (WebCore::RenderFlexibleBox::layoutBlock): Factored out the "only positioned objects" case into
              layoutOnlyPositionedObjects(). Added LayoutState push/pop. Removed the translation by the layout delta
              of the old absolute rects, since that is now integral to absoluteClippedOverflowRect() and
              absoluteOutlineBox().
              * rendering/RenderFlow.cpp:
              (WebCore::RenderFlow::absoluteClippedOverflowRect): Added an ASSERT.
              * rendering/RenderForeignObject.cpp:
              (WebCore::RenderForeignObject::layout): Disabled LayoutState because it is incompatible with arbitrary
              affine transforms.
              * rendering/RenderHTMLCanvas.cpp:
              (WebCore::RenderHTMLCanvas::layout): Removed the translation by the layout delta of the old absolute
              rects, since that is now integral to absoluteClippedOverflowRect() and absoluteOutlineBox().
              * rendering/RenderImage.cpp:
              (WebCore::RenderImage::layout): Ditto.
              * rendering/RenderLayer.cpp:
              (WebCore::RenderLayer::updateLayerPositions): Added ASSERTs. Factored out some code into
              RenderBox::offsetForPositionedInContainer.
              (WebCore::RenderLayer::updateScrollInfoAfterLayout): Disabled LayoutState around the call to
              scrollToOffset.
              * rendering/RenderListItem.cpp:
              (WebCore::RenderListItem::updateMarkerLocation): Disabled LayoutState when moving the list marker, since
              it can trigger repainting in other containers.
              * rendering/RenderObject.cpp:
              (WebCore::RenderObject::isRoot): Minor cleanup: changed element()->document() to the equivalent
              document().
              (WebCore::RenderObject::computeAbsoluteRepaintRect): Removed 'return' at the end of the function.
              (WebCore::RenderObject::container): Reordered to avoid calling isText() twice.
              (WebCore::RenderObject::absoluteOutlineBox): Added the layout delta here, so callers don't need to.
              * rendering/RenderSVGContainer.cpp:
              (WebCore::RenderSVGContainer::layout): Disabled LayoutState because it is incompatible with arbitrary
              affine transforms.
              * rendering/RenderTable.cpp:
              (WebCore::RenderTable::layout):  Factored out the "only positioned objects" case into
              layoutOnlyPositionedObjects(). Added LayoutState push/pop. Removed the translation by the layout delta
              of the old absolute rects, since that is now integral to absoluteClippedOverflowRect() and
              absoluteOutlineBox().
              * rendering/RenderTableCell.cpp:
              (WebCore::RenderTableCell::absoluteClippedOverflowRect): Added the layout delta here, so callers
              don't need to.
              (WebCore::RenderTableCell::computeAbsoluteRepaintRect): For the O(1) code path, skipped the correction
              for the parent row, because RenderTableRow doesn't push a translation into LayoutState.
              (WebCore::RenderTableCell::absolutePosition): Ditto.
              * rendering/RenderTableRow.cpp:
              (WebCore::RenderTableRow::layout): Added LayoutState push/pop.
              * rendering/RenderTableSection.cpp:
              (WebCore::RenderTableSection::setCellWidths): Added LayoutState push/pop if cells are repainted or
              receive layout.
              (WebCore::RenderTableSection::calcRowHeight): Ditto.
              (WebCore::RenderTableSection::layoutRows): Added LayoutState push/pop.
              * rendering/RenderView.cpp:
              (WebCore::RenderView::RenderView):
              (WebCore::RenderView::layout): Added initial LayoutState setup for the layout.
              (WebCore::RenderView::paintBoxDecorations): Minor cleanup: changed element()->document() to the
              equivalent document().
              (WebCore::RenderView::repaintViewRectangle): Ditto.
              (WebCore::RenderView::pushLayoutState): Added. Pushes initial layout state for subtree layout.
              * rendering/RenderView.h:
              (WebCore::RenderView::pushLayoutState):
              (WebCore::RenderView::popLayoutState):
              (WebCore::RenderView::layoutState):
              (WebCore::RenderView::disableLayoutState):
              (WebCore::RenderView::enableLayoutState):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@21183 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fef13633
  18. 26 Apr, 2007 1 commit
    • hyatt's avatar
      Reviewed by hyatt · d72625b9
      hyatt authored
              - http://bugs.webkit.org/show_bug.cgi?id=13496
                Eliminate repaintObjectsBeforeLayout
      
              No tests added since there is no change to functionality. Several
              tests in fast/repaint test repainting of objects that move during layout.
      
              * page/FrameView.cpp:
              (WebCore::FrameView::layout):
              * rendering/RenderBlock.cpp:
              (WebCore::RenderBlock::layoutBlockChildren): Removed an early
              setNeedsLayout(false). Resetting the bit here prevents the full repaint
              that we rely on when we decide not to repaint children that move.
              * rendering/RenderBlock.h:
              * rendering/RenderObject.cpp:
              * rendering/RenderObject.h:
              * rendering/RenderTableSection.cpp:
              (WebCore::RenderTableSection::setCellWidths): Replaced the call to
              repaintObjectsBeforeLayout() if the cell didn't need layout with
              an unconditional repaint(). We don't bother with repainting only the
              delta between the old and new widths, since by marking the cell for
              layout results in a full repaint with the new width anyway.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@21120 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d72625b9
  19. 25 Apr, 2007 1 commit
    • hyatt's avatar
      Rearchitect calcPrefWidths. The calculation is now done lazily only when minPrefWidth · 818bb121
      hyatt authored
              or maxPrefWidth are asked for.  The result of the calculation is cached.
      
              The new invalidation scheme for pref width invalidation follows the
              containing block hierarchy and knows to halt at positioned objects, since
              they cannot influence the size of their containers.
      
              Reviewed by darin
      
              * css/cssstyleselector.cpp:
              (WebCore::CSSStyleSelector::init):
              (WebCore::CSSStyleSelector::initForStyleResolve):
              * page/FrameView.cpp:
              (WebCore::FrameView::layout):
              * rendering/RenderApplet.cpp:
              (WebCore::RenderApplet::layout):
              * rendering/RenderBlock.cpp:
              (WebCore::RenderBlock::makeChildrenNonInline):
              (WebCore::RenderBlock::removeChild):
              (WebCore::RenderBlock::layout):
              (WebCore::RenderBlock::layoutBlock):
              (WebCore::RenderBlock::calcPrefWidths):
              (WebCore::InlineMinMaxIterator::endOfInline):
              (WebCore::shouldGrowTableCellForImage):
              (WebCore::RenderBlock::calcInlinePrefWidths):
              (WebCore::RenderBlock::calcBlockPrefWidths):
              * rendering/RenderBlock.h:
              * rendering/RenderBox.cpp:
              (WebCore::RenderBox::setStyle):
              (WebCore::RenderBox::minPrefWidth):
              (WebCore::RenderBox::maxPrefWidth):
              (WebCore::RenderBox::calcWidth):
              (WebCore::RenderBox::calcWidthUsing):
              (WebCore::RenderBox::calcAbsoluteHorizontal):
              (WebCore::RenderBox::calcAbsoluteHorizontalValues):
              * rendering/RenderBox.h:
              * rendering/RenderContainer.cpp:
              (WebCore::RenderContainer::removeChildNode):
              (WebCore::RenderContainer::appendChildNode):
              (WebCore::RenderContainer::insertChildNode):
              (WebCore::RenderContainer::layout):
              * rendering/RenderContainer.h:
              (WebCore::RenderContainer::moveChildNode):
              * rendering/RenderCounter.cpp:
              (WebCore::RenderCounter::dirtyLineBoxes):
              (WebCore::RenderCounter::calcPrefWidths):
              * rendering/RenderCounter.h:
              * rendering/RenderFileUploadControl.cpp:
              (WebCore::RenderFileUploadControl::calcPrefWidths):
              * rendering/RenderFlexibleBox.cpp:
              (WebCore::RenderFlexibleBox::calcHorizontalPrefWidths):
              (WebCore::RenderFlexibleBox::calcVerticalPrefWidths):
              (WebCore::RenderFlexibleBox::calcPrefWidths):
              (WebCore::RenderFlexibleBox::layoutBlock):
              * rendering/RenderForeignObject.cpp:
              (WebCore::RenderForeignObject::layout):
              * rendering/RenderFrameSet.cpp:
              (WebCore::RenderFrameSet::layout):
              * rendering/RenderHTMLCanvas.cpp:
              (WebCore::RenderHTMLCanvas::layout):
              * rendering/RenderImage.cpp:
              (WebCore::RenderImage::layout):
              * rendering/RenderInline.cpp:
              * rendering/RenderInline.h:
              * rendering/RenderListBox.cpp:
              (WebCore::RenderListBox::updateFromElement):
              (WebCore::RenderListBox::calcPrefWidths):
              * rendering/RenderListItem.cpp:
              (WebCore::firstNonMarkerChild):
              (WebCore::RenderListItem::updateMarkerLocation):
              (WebCore::RenderListItem::calcPrefWidths):
              (WebCore::RenderListItem::layout):
              * rendering/RenderListMarker.cpp:
              (WebCore::RenderListMarker::layout):
              (WebCore::RenderListMarker::calcPrefWidths):
              (WebCore::RenderListMarker::updateMargins):
              * rendering/RenderListMarker.h:
              * rendering/RenderObject.cpp:
              (WebCore::RenderObject::RenderObject):
              (WebCore::RenderObject::removeChildNode):
              (WebCore::RenderObject::moveChildNode):
              (WebCore::RenderObject::appendChildNode):
              (WebCore::RenderObject::insertChildNode):
              (WebCore::RenderObject::setPrefWidthsDirty):
              (WebCore::RenderObject::invalidateContainingBlockPrefWidths):
              (WebCore::RenderObject::information):
              (WebCore::RenderObject::setStyle):
              * rendering/RenderObject.h:
              (WebCore::RenderObject::layer):
              (WebCore::RenderObject::hasLayer):
              (WebCore::RenderObject::prefWidthsDirty):
              (WebCore::RenderObject::setNeedsLayoutAndPrefWidthsRecalc):
              (WebCore::RenderObject::setHasLayer):
              * rendering/RenderPartObject.cpp:
              (WebCore::RenderPartObject::layout):
              * rendering/RenderSVGContainer.cpp:
              (WebCore::RenderSVGContainer::layout):
              * rendering/RenderSVGContainer.h:
              * rendering/RenderSVGHiddenContainer.cpp:
              * rendering/RenderSVGHiddenContainer.h:
              * rendering/RenderSVGText.cpp:
              (WebCore::RenderSVGText::layout):
              * rendering/RenderTable.cpp:
              (WebCore::RenderTable::calcWidth):
              (WebCore::RenderTable::layout):
              (WebCore::RenderTable::removeChildNode):
              * rendering/RenderTable.h:
              * rendering/RenderTableRow.cpp:
              (WebCore::RenderTableRow::layout):
              * rendering/RenderTableSection.cpp:
              (WebCore::RenderTableSection::removeChildNode):
              * rendering/RenderTableSection.h:
              * rendering/RenderText.cpp:
              (WebCore::RenderText::trimmedPrefWidths):
              (WebCore::isSpaceAccordingToStyle):
              (WebCore::RenderText::minPrefWidth):
              (WebCore::RenderText::maxPrefWidth):
              (WebCore::RenderText::calcPrefWidths):
              (WebCore::RenderText::width):
              * rendering/RenderText.h:
              * rendering/RenderView.cpp:
              (WebCore::RenderView::RenderView):
              (WebCore::RenderView::calcPrefWidths):
              (WebCore::RenderView::layout):
              * rendering/RenderWidget.cpp:
              (WebCore::RenderWidget::layout):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@21093 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      818bb121
  20. 19 Apr, 2007 1 commit
    • bdash's avatar
      2007-04-19 Mitz Pettel <mitz@webkit.org> · ba1a663f
      bdash authored
              Reviewed by Darin.
      
              - fix http://bugs.webkit.org/show_bug.cgi?id=13403
                REGRESSION (r18875-r18899): Can no longer type into search form field after searching and then clicking "back"
      
              The problem was that the page was loaded from the page cache with a subtree
              marked for layout and the layout timer stopped (having been stopped when the
              page entered the page cache). FrameView::needsLayout() was returning false
              which prevented the pending layout from completing.
      
              * page/FrameView.cpp:
              (WebCore::FrameView::clear): Removed the call to stop the layout timer, since
              reset() does that already.
              (WebCore::FrameView::needsLayout): Changed to return true if there's a subtree
              pending relayout.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20964 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ba1a663f
  21. 16 Apr, 2007 1 commit
    • darin's avatar
      WebCore: · 28399bcb
      darin authored
              Reviewed by John Sullivan.
      
              - fix http://bugs.webkit.org/show_bug.cgi?id=13303
                <rdar://problem/5126341> REGRESSION: controls in a background Safari window
                maintain active appearance if the address bar has focus (13303)
      
              - fix a related problem where elements could look focused in non-active windows
      
              - simplify secure keyboard entry logic in Frame::setIsActive
      
              * WebCore.exp: Add two new symbols for use by WebKit.
      
              * html/HTMLInputElement.cpp:
              (WebCore::HTMLInputElement::dispatchFocusEvent): Call setUseSecureKeyboardEntryWhenActive
              rather than calling setSecureKeyboardEntry directly -- does nothing if the frame is not active.
              (WebCore::HTMLInputElement::dispatchBlurEvent): Ditto.
      
              * page/Frame.cpp:
              (WebCore::Frame::setUseSecureKeyboardEntryWhenActive): Added. Calls
              setUseSecureKeyboardEntry only if the frame is active, but also stores away the state,
              so that the setIsActive function doesn't have to recompute it.
              (WebCore::Frame::setIsActive): Rewrote all the comments in the function. Removed the code
              to manage control tints, which are not based on the whether the frame is active but rather
              on AppKit's concept of whether the window should have "key appearance". Simplified the
              logic about when to call setUseSecureKeyboardEntry by using the value of
              m_useSecureKeyboardEntryWhenActive.
              (WebCore::FramePrivate::FramePrivate): Initialize m_useSecureKeyboardEntryWhenActive.
              * page/Frame.h: Made setSecureKeyboardEntry private and renamed it to
              setUseSecureKeyboardEntry, removed isSecureKeyboardEntry, and
              added a public setUseSecureKeyboardEntryWhenActive.
              * page/FramePrivate.h: Added m_useSecureKeyboardEntryWhenActive.
              * page/mac/FrameMac.mm: (WebCore::Frame::setUseSecureKeyboardEntry): Added an assertion,
              and removed isSecureKeyboardEntry().
      
              * page/FrameView.h: Added updateControlTints.
              * page/FrameView.cpp: (WebCore::FrameView::updateControlTints): Added. Code was moved
              here from setIsActive for two reasons: (1) it makes more sense in the view class, and
              (2) it needs to be called at the appropriate time for AppKit, not when active changes.
      
              * rendering/RenderTheme.cpp: (WebCore::RenderTheme::isFocused): Added an isActive
              check here to match the logic in the implementation of the CSS pseudo-state.
              * rendering/RenderThemeMac.mm:
              (WebCore::RenderThemeMac::updateFocusedState): Use the isFocused function instead of
              repeating the logic here. Removed the "need to add a key window test here" comment.
              (WebCore::RenderThemeMac::controlSupportsTints): Added a comment about the NSCell
              SPI that's related to the _windowChangedKeyState method we now use in WebHTMLView.
      
      WebKit:
      
              Reviewed by John Sullivan.
      
              - fix http://bugs.webkit.org/show_bug.cgi?id=13303
                <rdar://problem/5126341> REGRESSION: controls in a background Safari window
                maintain active appearance if the address bar has focus (13303)
      
              * WebView/WebHTMLView.mm: (-[WebHTMLView _windowChangedKeyState]):
              Added. Calls FrameView::updateControlTints.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20901 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      28399bcb
  22. 08 Apr, 2007 1 commit
    • aroben's avatar
      Reviewed by Oliver. · e9b4cc74
      aroben authored
              Bestowed the gift of -webkit-dashboard-region upon all platforms, since
              there's nothing Mac-specific about it other than the name. This also
              allowed me to get rid of FrameViewMac.mm.
      
              Removed a lot of #if PLATFORM(MAC):
      
              * css/CSSComputedStyleDeclaration.cpp:
              (WebCore::):
              (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
              * css/CSSPrimitiveValue.cpp:
              (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
              (WebCore::CSSPrimitiveValue::cleanup):
              (WebCore::CSSPrimitiveValue::cssText):
              * css/CSSPrimitiveValue.h:
              (WebCore::CSSPrimitiveValue::getDashboardRegionValue):
              (WebCore::CSSPrimitiveValue::):
              * css/cssparser.cpp:
              (WebCore::CSSParser::parseValue):
              (WebCore::CSSParser::parseDashboardRegions):
              * css/cssparser.h:
              * css/cssstyleselector.cpp:
              (WebCore::CSSStyleSelector::applyProperty):
              * dom/Document.cpp:
              (WebCore::Document::Document):
              * dom/Document.h:
              * page/Frame.cpp:
              (WebCore::Frame::paint):
              * page/Frame.h:
              * page/FrameView.cpp:
              (WebCore::FrameView::layout):
              (WebCore::FrameView::updateDashboardRegions): Moved from FrameViewMac.mm.
              * page/FrameView.h:
              * page/qt/FrameQt.cpp:
              (WebCore::Frame::dashboardRegionsChanged): Stubbed out.
              * platform/gdk/FrameGdk.cpp:
              (WebCore::Frame::dashboardRegionsChanged): Ditto.
              * rendering/RenderLayer.cpp:
              (WebCore::RenderLayer::scrollToOffset):
              (WebCore::RenderLayer::setHasHorizontalScrollbar):
              (WebCore::RenderLayer::setHasVerticalScrollbar):
              (WebCore::RenderLayer::updateScrollInfoAfterLayout):
              * rendering/RenderObject.cpp:
              (WebCore::RenderObject::setStyle):
      
              * WebCore.xcodeproj/project.pbxproj: Removed FrameViewMac.mm.
              * bridge/mac/FrameViewMac.mm: Removed.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20794 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e9b4cc74
  23. 28 Mar, 2007 1 commit
    • mjs's avatar
      LayoutTests: · 14590a57
      mjs authored
              Reviewed by Darin.
              
              - <rdar://problem/4820817> Autoscroll is broken in Mail.app (message jumps around when trying to select text)
      
              * fast/overflow/scrollRevealButton-expected.checksum:
              * fast/overflow/scrollRevealButton-expected.png:
              * fast/overflow/scrollRevealButton-expected.txt:
      
      WebCore:
      
              Reviewed by Darin.
              
              - fixed <rdar://problem/4820817> Autoscroll is broken in Mail.app (message jumps around when trying to select text)
                      
              Handle scrolling external scrollviews around the webview during
              autoscroll or when scrolling into view.
              
              This should also restore performance on BenchJS test 6 lost due to Tim's partial fix.
      
              * page/FrameView.cpp:
              (WebCore::FrameView::scrollRectIntoViewRecursively):
              * page/FrameView.h:
              * platform/ScrollView.h:
              * platform/gdk/ScrollViewGdk.cpp:
              (WebCore::ScrollView::visibleContentRectConsideringExternalScrollers):
              (WebCore::ScrollView::scrollRectIntoViewRecursively):
              * platform/mac/ScrollViewMac.mm:
              (WebCore::ScrollView::visibleContentRect):
              (WebCore::ScrollView::visibleContentRectConsideringExternalScrollers):
              (WebCore::ScrollView::scrollRectIntoViewRecursively):
              (WebCore::ScrollView::updateContents):
              * platform/qt/ScrollViewQt.cpp:
              (WebCore::ScrollView::visibleContentRectConsideringExternalScrollers):
              (WebCore::ScrollView::scrollRectIntoViewRecursively):
              * platform/win/ScrollViewWin.cpp:
              (WebCore::ScrollView::visibleContentRectConsideringExternalScrollers):
              * platform/win/TemporaryLinkStubs.cpp:
              (WebCore::ScrollView::scrollRectIntoViewRecursively):
              * rendering/RenderLayer.cpp:
              (WebCore::RenderLayer::scrollRectToVisible):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20565 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      14590a57
  24. 24 Mar, 2007 2 commits
  25. 22 Mar, 2007 2 commits
    • bdakin's avatar
      Patch by Hyatt, reviewed and committed by me. · e4ed0073
      bdakin authored
              Does not reproduce consistently, so a layout test does not seem 
              possible.
      
              Fix for <rdar://problem/5082421> Constantly hitting ASSERT(!
              needsLayout()) in RenderView::paint()
      
              * page/FrameView.cpp:
              (WebCore::FrameView::layoutPending): It is not enough to ask if the 
              layout timer is active. There may be times that we don't have a 
              body yet so we cannot schedule layout yet, but the root still needs 
              layout.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20410 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e4ed0073
    • hyatt's avatar
      Minor refactoring and cleanup of the bridge calls that want to control... · cebb8f67
      hyatt authored
              Minor refactoring and cleanup of the bridge calls that want to control layout settings on the RenderView.
              Have the bridge talk through the FrameView instead of just asking for the RenderView directly.
      
              Add an assert to help catch situations where the RenderView needs layout at paint time, since this is a known
              catastrophic scenario that will (much of the time) result in a crash in RenderTableSection::paint.
      
              Reviewed by aroben
      
              * page/FrameView.cpp:
              (WebCore::FrameView::adjustViewSize):
              (WebCore::FrameView::needsLayout):
              (WebCore::FrameView::setNeedsLayout):
              * page/FrameView.h:
              * page/mac/WebCoreFrameBridge.mm:
              (-[WebCoreFrameBridge needsLayout]):
              (-[WebCoreFrameBridge setNeedsLayout]):
              * rendering/RenderView.cpp:
              (WebCore::RenderView::paint):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20385 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cebb8f67
  26. 21 Mar, 2007 1 commit
    • bdakin's avatar
      Fix for <rdar://problem/5072678> Crash in · 2ad0c936
      bdakin authored
              RenderLayer::scrollRectToVisible with MallocScribble enabled
      
              I tried to fix this earlier today but my fix caused a regression
              scrolling through RSS pages. It turns out that sometimes scroll
              events need to propagate immediately, and sometimes they must be
              delayed or they risk deleting objects that are expected to be
              around after the event has propagated. Mitz's original fix made
              sheduleEvent() only delay events that happen during layout. This
              fix marks two other places in addition to layout where events also
              need to be delayed. These two places are places that were marked
              with FIXMEs that Mitz removed in his original patch. (There was a
              third FIXME in RenderLayer::updateScrollInfoAfterLayout() but that
              case is only called through layout and is covered by Mitz's
              original patch.)
      
              * page/FrameView.cpp:
              (WebCore::FrameView::~FrameView): Added assertion.
              (WebCore::FrameView::layout): Call new functions to increment and 
              decrement the queued events count.
              (WebCore::FrameView::pauseScheduledEvents):
              (WebCore::FrameView::resumeScheduledEvents): Decrement queued 
              events count and dispatch events if the count has zeroed.
              * page/FrameView.h:
              * rendering/RenderLayer.cpp:
              (WebCore::RenderLayer::scrollRectToVisible):
              (WebCore::Marquee::start):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20360 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2ad0c936
  27. 20 Mar, 2007 2 commits
    • aroben's avatar
      Rubberstamped by Adele. · 44dd849e
      aroben authored
              Roll out r20348 because it was causing crashes.
      
              * page/FrameView.cpp:
              (WebCore::FrameViewPrivate::FrameViewPrivate):
              (WebCore::FrameView::layout):
              (WebCore::FrameView::scheduleEvent):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20355 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      44dd849e
    • bdakin's avatar
      Reviewed by Geoff. · dbe3d69d
      bdakin authored
              Covered by existing test case.
      
              Fix for <rdar://problem/5072678> Crash in 
              RenderLayer::scrollRectToVisible with MallocScribble enabled
      
              This removes some code that was added with http://bugs.webkit.org/
              show_bug.cgi?id=8360. This code was not needed to fix that bug, but 
              the idea behind it was that there are times when it is safe for 
              scheduleEvent() to propagate the event immediately. The 
              MallocScribble crash revealed that this assumption was a bit too 
              broad; the cause of the crash was that we were propagating events 
              immediately when it was not safe. Mitz and I discussed this online 
              and we agree that the safest solution is to revert to the old 
              behavior here, and always delay the propagation of the event. 
      
              * page/FrameView.cpp:
              (WebCore::FrameViewPrivate::FrameViewPrivate):
              (WebCore::FrameView::layout):
              (WebCore::FrameView::scheduleEvent):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20348 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      dbe3d69d
  28. 18 Mar, 2007 1 commit
    • hyatt's avatar
      WebCore: · 0fa2fbcf
      hyatt authored
              Move frame borders out of WebKit and into WebCore.
      
              Reviewed by aroben, olliej
      
              * bridge/mac/FrameViewMac.mm:
              * css/html4.css:
              * html/HTMLFrameSetElement.cpp:
              (WebCore::HTMLFrameSetElement::HTMLFrameSetElement):
              (WebCore::HTMLFrameSetElement::mapToEntry):
              (WebCore::HTMLFrameSetElement::parseMappedAttribute):
              (WebCore::HTMLFrameSetElement::attach):
              * html/HTMLFrameSetElement.h:
              (WebCore::HTMLFrameSetElement::hasBorderColor):
              * page/FrameView.cpp:
              (WebCore::FrameViewPrivate::FrameViewPrivate):
              * page/FrameView.h:
              * page/mac/WebCoreFrameBridge.h:
              * platform/graphics/IntRect.h:
              (WebCore::IntRect::topLeft):
              (WebCore::IntRect::topRight):
              (WebCore::IntRect::bottomLeft):
              (WebCore::IntRect::bottomRight):
              * rendering/RenderFrame.cpp:
              (WebCore::RenderFrame::viewCleared):
              * rendering/RenderFrameSet.cpp:
              (WebCore::borderStartEdgeColor):
              (WebCore::borderEndEdgeColor):
              (WebCore::RenderFrameSet::paintColumnBorder):
              (WebCore::RenderFrameSet::paintRowBorder):
              (WebCore::RenderFrameSet::paint):
              * rendering/RenderFrameSet.h:
              * rendering/RenderPartObject.cpp:
              (WebCore::RenderPartObject::viewCleared):
              * rendering/RenderView.cpp:
              (WebCore::RenderView::repaintViewRectangle):
      
      WebKit:
      
              Move frame borders out of WebKit and into WebCore.
      
              Reviewed by aroben, olliej
      
              * WebCoreSupport/WebFrameBridge.mm:
              * WebKit.xcodeproj/project.pbxproj:
              * WebView/WebFrameView.mm:
              (-[WebFrameView drawRect:]):
              (-[WebFrameView setFrameSize:]):
              * WebView/WebFrameViewInternal.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20269 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0fa2fbcf
  29. 25 Feb, 2007 1 commit
  30. 28 Jan, 2007 1 commit
    • ddkilzer's avatar
      LayoutTests: · 667cffa5
      ddkilzer authored
              Reviewed by Darin.  Patch by Mitz.
      
              - test for http://bugs.webkit.org/show_bug.cgi?id=8360
                Repro crash when onscroll handler deletes the scrolled object
      
              * fast/layers/removed-by-scroll-handler-expected.checksum: Added.
              * fast/layers/removed-by-scroll-handler-expected.png: Added.
              * fast/layers/removed-by-scroll-handler-expected.txt: Added.
              * fast/layers/removed-by-scroll-handler.html: Added.
      
      WebCore:
      
              Reviewed by Darin.  Patch by Mitz.
      
              - fix http://bugs.webkit.org/show_bug.cgi?id=8360
                Repro crash when onscroll handler deletes the scrolled object
      
              Test: fast/layers/removed-by-scroll-handler.html
      
              * page/FrameView.cpp:
              (WebCore::FrameViewPrivate::FrameViewPrivate): Added a m_enqueueEvents count.
              (WebCore::FrameView::layout): Raise the enqueue count before starting layout and
              until after enqueued events are dispatched.
              (WebCore::FrameView::scheduleEvent): Made this function dispatch the event
              immediately unless the enqueue count is positive.
              * rendering/RenderLayer.cpp:
              (WebCore::RenderLayer::scrollToOffset): Schedule the scroll event through the
              FrameView.
              (WebCore::RenderLayer::scrollRectToVisible):
              (WebCore::RenderLayer::updateScrollInfoAfterLayout):
              (WebCore::Marquee::start):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19204 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      667cffa5
  31. 26 Jan, 2007 1 commit
  32. 23 Jan, 2007 1 commit
    • lars's avatar
      Reviewed by Maciej · 1e1dad3d
      lars authored
              Make the last remaining pieces of the FrameLoader platform 
              independent. Move most of the code over to WebFrameLoaderClient.
              Some smaller cleanups in the WebFrameBridge, and moved some
              platform independent functionality over to the shared code
              in WebCore.
      
              Add support for Frames to the Qt build and fix some issues
              in the API classes.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19042 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1e1dad3d
  33. 18 Jan, 2007 1 commit
    • bdash's avatar
      2007-01-18 Mitz Pettel <mitz@webkit.org> · 0872ef78
      bdash authored
              Reviewed by Darin.
      
              - fix http://bugs.webkit.org/show_bug.cgi?id=9952
                REGRESSION: Repro crash when dragging an image from the window to the address bar
      
              * page/FrameView.cpp:
              (WebCore::FrameView::~FrameView): Removed the call to Document::detach(). If this
              view is the current view, then the Frame should have already detached the document.
              Added an assertion that this is the case. If this view is not the current view,
              then it cannot access its document, but the page cache should have detached it already.
              Similarly, changed to call RenderPart::setWidget() only if this is the current view
              in the frame.
              (WebCore::FrameView::adjustViewSize): Added an assertion that this view is the current
              view in the frame.
              (WebCore::FrameView::layout): Ditto.
              (WebCore::FrameView::scheduleRelayout): Ditto.
              (WebCore::FrameView::scheduleRelayoutOfSubtree): Ditto.
              (WebCore::FrameView::windowClipRect): Ditto.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@18965 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0872ef78