1. 29 Jan, 2007 1 commit
    • oliver's avatar
      2007-01-25 Oliver Hunt <oliver@apple.com> · e71315c1
      oliver authored
              Reviewed by Adam.
      WebKit:
              Migrated drag state and logic to WebCore, removed superfluous methods
      
              * ChangeLog:
              * WebCoreSupport/WebDragClient.h:
              * WebCoreSupport/WebDragClient.mm:
              (WebDragClient::dragSourceActionMaskForPoint):
              * WebCoreSupport/WebFrameBridge.mm:
                 allowDHTMLDrag move to WebCore::EventHandler
              * WebView/WebHTMLView.mm:
              (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
              (-[WebHTMLView draggedImage:movedTo:]):
              (-[WebHTMLView draggedImage:endedAt:operation:]):
                dragOffset and dragSourecAction is now stored in WebCore::DragController
                migrated _delegateDragSourceActionMask to WebCore::DragController
              * WebView/WebHTMLViewInternal.h:
                Removed dragOffset declaration, migrated to WebCore::DragController
              * WebView/WebView.mm:
                removed unnecessary method, _loadingDragOperationForDraggingInfo                       
      
      WebKitQt:       
              Reviewed by Adam.
      
              Stub for new DragClient method
      
              * WebCoreSupport/DragClientQt.cpp:
              (WebCore::DragClientQt::dragSourceActionMaskForPoint):
              * WebCoreSupport/DragClientQt.h:                  
      
      WebCore:
              Reviewed by Adam.
      
              Migrated more drag logic and state to WebCore
                                                    
              * page/DragClient.h:       
      
              * page/DragController.cpp:
              (WebCore::DragController::delegateDragSourceAction):
                New forwarding method for the UI delegate
              * page/DragController.h:
              (WebCore::DragController::dragOffset):
                Now store the drag offset -- the offset of the cursor relative to the drag image)
                in DragController
              * page/EventHandler.cpp:
              (WebCore::EventHandler::allowDHTMLDrag):
                Moved from WebFrameBridge
              * page/EventHandler.h:
              * page/mac/EventHandlerMac.mm:
              (WebCore::EventHandler::eventMayStartDrag):
              (WebCore::EventHandler::handleDrag):                  
                EventHandlerMac now uses EventHandler::allowDHTMLDrag rather than the 
                implementation in WebFrameBridge
              * page/mac/WebCoreFrameBridge.h:
                removed definition of allowDHTMLDrag from WebFrameBridge
              * platform/graphics/svg/SVGImageEmptyClients.h:
              (WebCore::SVGEmptyDragClient::dragSourceActionMaskForPoint):
                Updated empty DragClient
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19230 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e71315c1
  2. 28 Jan, 2007 2 commits
    • aroben's avatar
      Reviewed by Adele. · f0fc1980
      aroben authored
              Fix http://bugs.webkit.org/show_bug.cgi?id=12453
              REGRESSION(r19197): Tabbing into web page requires two key presses
      
              All layout tests pass.
      
              * page/FocusController.cpp:
              (WebCore::FocusController::advanceFocus): If there's no focused frame,
              actually go ahead and find a focusable node instead of just focusing
              the main frame and quitting. This behavior was a holdover from a
              previous desired tabbing behavior with respect to frames.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19207 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f0fc1980
    • 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
  3. 27 Jan, 2007 2 commits
    • aroben's avatar
      Reviewed by Ada. · 50b4bd16
      aroben authored
              Fix <rdar://problem/4957184> REGRESSION: After creating a new mail
              message, the caret is automatically in message body
      
              -[WebHTMLView _updateActiveState] was calling
              FocusController::focusedOrMainFrame, which had the surprising
              side-effect of setting the focused frame if there was none. The fix
              was to remove this side-effect.
      
              No tests possible, as this bug involves focus outside the WebView,
              which we have no support for in DRT.
      
              Change inspired by Dave Harrison.
      
              * page/FocusController.cpp:
              (WebCore::FocusController::focusedOrMainFrame): Removed this method's
              non-obvious side-effect of setting the focused frame.
              * WebCore.xcodeproj/project.pbxproj: Version wars.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19197 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      50b4bd16
    • lars's avatar
      Fix the Qt build and disable the usage · b15efeec
      lars authored
              of QScrollbars for PlatformScrollBar for 
              now as it causes crashes in the layout tests.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19190 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b15efeec
  4. 26 Jan, 2007 7 commits
    • ggaren's avatar
      JavaScriptCore: · d6a0e7ff
      ggaren authored
              Reviewed by Maciej Stachowiak.
              
              Fixed <rdar://problem/4608404> WebScriptObject's _rootObject lack 
              of ownership policy causes crashes (e.g., in Dashcode)
              
              The old model for RootObject ownership was either to (1) leak them or (2) assign
              them to a single owner -- the WebCore::Frame -- which would destroy them 
              when it believed that all of its plug-ins had unloaded.
              
              This model was broken because of (1) and also because plug-ins are not the only 
              RootObject clients. All Bindings clients are RootObjects clients, including 
              applications, which outlive any particular WebCore::Frame.
              
              The new model for RootObject ownership is to reference-count them, with a
              throw-back to the old model: The WebCore::Frame tracks the RootObjects
              it creates, and invalidates them when it believes that all of its plug-ins 
              have unloaded.
              
              We maintain this throw-back to avoid plug-in leaks, particularly from Java.
              Java is completely broken when it comes to releasing JavaScript objects. 
              Comments in our code allege that Java does not always call finalize when 
              collecting objects. Moreoever, my own testing reveals that, when Java does 
              notify JavaScript of a finalize, the data it provides is totally bogus.
              
              This setup is far from ideal, but I don't think we can do better without
              completely rewriting the bindings code, and possibly part of the Java
              plug-in / VM.
              
              Layout tests pass. No additional leaks reported. WebCore/manual-tests/*liveconnect*
              and a few LiveConnect demos on the web also run without a hitch.
              
              const RootObject* => RootObject*, since we need to ref/deref
              
              * bindings/NP_jsobject.cpp:
              (jsDeallocate): deref our RootObjects. Also unprotect or JSObject, instead
              of just relying on the RootObject to do it for us when it's invalidated.
              (_isSafeScript): Check RootObject validity.
              (_NPN_CreateScriptObject): ditto
              (_NPN_Invoke): ditto
              (_NPN_Evaluate): ditto
              (_NPN_GetProperty): ditto
              (_NPN_SetProperty): ditto
              (_NPN_RemoveProperty): ditto
              (_NPN_HasProperty): ditto
              (_NPN_HasMethod): ditto
              (_NPN_SetException): ditto
      
              * bindings/runtime_root.cpp: 
              Revived bit-rotted LIAR LIAR LIAR comment.
              
              LOOK: Added support for invalidating RootObjects without deleting them, 
              which is the main goal of this patch. 
      
              Moved protect counting into the RootObject class, to emphasize that 
              the RootObject protects the JSObject, and unprotects it upon being invalidated.
                  addNativeReference => RootObject::gcProtect
                  removeNativeReference => RootObject::gcUnprotect
                  ProtectCountSet::contains => RootObject::gcIsProtected
                  
              I know we'll all be sad to see the word "native" go.
              
              * bindings/runtime_root.h: Added ref-counting support to RootObject, with
              all the standard accoutrements.
      
              * bindings/c/c_utility.cpp:
              (KJS::Bindings::convertValueToNPVariant): If we can't find a valid RootObject,
              return void instead of just leaking.
      
              * bindings/jni/jni_instance.cpp:
              (JavaInstance::JavaInstance): Don't take a RootObject in our constructor;
              be like other Instances and require the caller to call setRootObject. This
              reduces the number of ownership code paths.
              (JavaInstance::invokeMethod): Check RootObject for validity.
              * bindings/jni/jni_instance.h: Removed private no-arg constructor. Having
              an arg constructor accomplishes the same thing.
      
              * bindings/jni/jni_jsobject.cpp:
              (JavaJSObject::invoke): No need to call findProtectCountSet, because finalize()
              checks for RootObject validity.
              (JavaJSObject::JavaJSObject): check RootObject for validity
              (JavaJSObject::call): ditto
              (JavaJSObject::eval): ditto
              (JavaJSObject::getMember): ditto
              (JavaJSObject::setMember): ditto
              (JavaJSObject::removeMember): ditto
              (JavaJSObject::getSlot): ditto
              (JavaJSObject::setSlot): ditto
              (JavaJSObject::toString): ditto
              (JavaJSObject::finalize): ditto
              (JavaJSObject::createNative): No need to tell the RootObject to protect 
              the global object, since the RootObject already owns the interpreter.
      
              * bindings/jni/jni_runtime.cpp:
              (JavaArray::JavaArray): Removed copy construcutor becaue it was unused.
              Dead code is dangerous code.
      
              * bindings/objc/objc_runtime.mm: Added WebUndefined protocol. Previous use
              of WebScriptObject was bogus, because WebUndefined is not a subclass of
              WebScriptObject.
              (convertValueToObjcObject): If we can't find a valid RootObject,
              return nil instead of just leaking.
      
              * bindings/objc/objc_utility.mm:
              (KJS::Bindings::convertValueToObjcValue): If we can't find a valid RootObject,
              return nil instead of just leaking.
      
      LayoutTests:
      
              Reviewed by Maciej Stachowiak.
              
              Added test for <rdar://problem/4608404> WebScriptObject's _rootObject lack 
              of ownership policy causes crashes (e.g., in Dashcode)
              
              No test for Java or NPP versions of this bug because there's no reliable way to
              make Java and NPP objects outlive their RootObjects (although Java objects
              sometimes do).
      
              * plugins/root-object-premature-delete-crash-expected.txt: Added.
              * plugins/root-object-premature-delete-crash.html: Added.
      
      WebCore:
      
              Reviewed by Maciej Stachowiak.
              
              Fixed <rdar://problem/4608404> WebScriptObject's _executionContext lack 
              of ownership policy causes crashes (e.g., in Dashcode)
      
              Added RootObject ref-counting goodness.
      
              * page/mac/FrameMac.h:
              * page/mac/FrameMac.mm:
              (WebCore::FrameMac::cleanupPluginObjects): Invalidate our RootObjects 
              instead of detroying them. Track _bindingRootObject separately from the
              rest of our RootObjects, since it has its own variable.
      
              * page/mac/WebCoreFrameBridge.mm:
              (createRootObject): Use the Frame's new, more encapsulated function to
              create a RootObject.
      
              * bindings/objc/WebScriptObject.mm: Nixed rootObject setters, since they
              were unused and they complicated reference-counting.
      
      WebKitTools:
      
              Reviewed by Maciej Stachowiak.
              
              Added support for test for <rdar://problem/4608404> WebScriptObject's 
              _rootObject lack of ownership policy causes crashes (e.g., in Dashcode)
              
              * DumpRenderTree/DumpRenderTree.m:
              (+[LayoutTestController isSelectorExcludedFromWebScript:]):
              (+[LayoutTestController webScriptNameForSelector:]):
              (-[LayoutTestController storeWebScriptObject:]):
              (-[LayoutTestController accessStoredWebScriptObject]):
              (-[LayoutTestController dealloc]):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19183 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d6a0e7ff
    • weinig's avatar
      Reviewed by Maciej. · cb316bee
      weinig authored
              Qt build fix.
      
              * page/qt/EventHandlerQt.cpp:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19171 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cb316bee
    • weinig's avatar
      Reviewed by Hyatt. · 2901c77a
      weinig authored
              Fix so that we only relayout frameset children on calls to layout.
      
              * page/FrameView.cpp:
              (WebCore::FrameView::layout):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19170 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2901c77a
    • bdakin's avatar
      Reviewed by Darin. · a9f3ddec
      bdakin authored
              Fix for <rdar://problem/4956565> REGRESSION: After scrolling frame, 
              hovering over link in this frame doesn't change cursor to pointing 
              hand
      
              The mouseMove event was not being propagated correctly after using 
              the mouse to scroll the frame because m_mousePressed was never 
              getting set to false.
      
              * page/EventHandler.cpp:
              (WebCore::EventHandler::handleMousePressEvent): This code does not 
              belong here.
              * page/EventHandler.h: lastEventIsMouseUp() is only ever relevant 
              in EventHandlerMac, so it can just be a static function there.
              * page/mac/EventHandlerMac.mm:
              (WebCore::lastEventIsMouseUp): Make this static.
              (WebCore::EventHandler::passMouseDownEventToWidget): Here is where 
              we need to set m_mousePressed to false if lastEventIsMouseUp() is 
              true.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19166 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a9f3ddec
    • darin's avatar
      LayoutTests: · 19d55274
      darin authored
              * fast/events/objc-event-api-expected.txt: Updated test result now that we no
              longer invalidate clicks when the mouse moves a bit.
      
      WebCore:
      
              Reviewed by Darin.
      
              * page/EventHandler.cpp:
              (WebCore::EventHandler::handleMouseMoveEvent):
              Removed a call to invalidateClick(), since we don't want to cancel a
              click if the mouse moves.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19158 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      19d55274
    • lars's avatar
      Get rid of FrameQtClient. It's unused since we moved over · e2215c63
      lars authored
              to the loader.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19147 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e2215c63
    • aroben's avatar
      Reviewed by Maciej. · e541dc38
      aroben authored
              Fixed an issue on tivofaq.com where you could never tab forward into
              the left frame after tabbing out of the document.
      
              * page/FocusController.cpp:
              (WebCore::FocusController::advanceFocus): Clear the focused frame
              before passing off focus to Chrome so that when we re-enter the
              document we start at the main frame instead of the last focused frame.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19143 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e541dc38
  5. 25 Jan, 2007 3 commits
    • justing's avatar
      LayoutTests: · a9dbf87d
      justing authored
              Reviewed by oliver
              
              <http://bugs.webkit.org/show_bug.cgi?id=12409>
              REGRESSION (r19039): Drag caret isn't cleared after a drop
      
              * editing/pasteboard/4947130-expected.checksum:
              * editing/pasteboard/4947130-expected.png:
      
      WebCore:
      
              Reviewed by oliver
              
              <http://bugs.webkit.org/show_bug.cgi?id=12409>
              REGRESSION (r19039): Drag caret isn't cleared after a drop
      
              No new layout tests because the regression was
              caught by current layout tests.
      
              * page/DragController.cpp:
              (WebCore::DragController::concludeDrag): Clear the drag caret.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19133 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a9dbf87d
    • zack's avatar
      implement wheel event handling and use eventhandler explictly. · 70f930db
      zack authored
      r=lars
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19116 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      70f930db
    • adele's avatar
      LayoutTests: · f62337c5
      adele authored
              Reviewed by Brady and Oliver.
      
              Test for <rdar://problem/4953504> When the keydown event changes focus, the keypress event should go to the new focused node
      
              * fast/events/keydown-keypress-focus-change-expected.txt: Added.
              * fast/events/keydown-keypress-focus-change.html: Added.
      
      WebCore:
      
              Reviewed by Brady and Oliver.
      
              Fix for <rdar://problem/4953504> When the keydown event changes focus, the keypress event should go to the new focused node
      
              Test: fast/events/keydown-keypress-focus-change.html
      
              * page/EventHandler.cpp:
              (WebCore::eventTargetNodeForDocument): Added for convenience.
              (WebCore::EventHandler::keyEvent): Moved from EventHandlerMac.mm.  After dispatching the keyDown event,
               recheck the target node for the keyPress event in case its changed.
              * page/EventHandler.h:
              * page/mac/EventHandlerMac.mm: (WebCore::EventHandler::keyEvent):
                Moved the bulk of this code to EventHandler.cpp.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19108 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f62337c5
  6. 24 Jan, 2007 3 commits
    • oliver's avatar
      Oliver Hunt <oliver@apple.com> · e3c60694
      oliver authored
      WebCore:
              Reviewed by Maciej.
      
              Migrating more drag state information to WebCore
      
              * page/DragController.cpp:
              * page/DragController.h:
              (WebCore::DragController::dragOperation):
              (WebCore::DragController::setDraggingImageURL):
              (WebCore::DragController::draggingImageURL):
              (WebCore::DragController::setDragOffset):
              (WebCore::DragController::dragOffset): 
      WebKit:
              Reviewed by Maciej.
      
              Migrating more drag state information to WebCore
      
              * WebKit.xcodeproj/project.pbxproj:
              * WebView/WebHTMLView.mm:
              (-[WebHTMLViewPrivate dealloc]):
              (-[WebHTMLViewPrivate clear]):
              (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
              (-[WebHTMLView _mayStartDragAtEventLocation:]):
              (-[WebHTMLView close]):
              (-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]):
              (-[WebHTMLView _delegateDragSourceActionMask]):
              * WebView/WebHTMLViewInternal.h:         
                                                  
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19104 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e3c60694
    • bdakin's avatar
      WebCore: · 06de9c41
      bdakin authored
              Reviewed by Geoff.
      
              Fix for <rdar://problem/4948128> REGRESSION: A crash occurs at 
              WebCore::Frame::view() after completing a query at mapquest.com 
              then switching to Bookmarks view
      
              This is just a null-check. If you are in strict mode and ask for 
              the clientWidth or clientHeight after the document was removed from 
              it's parent, we no longer have a frameView, so we have to null-
              check it. I added null checks for the FrameView in some other 
              places where it seems like we could potentially run into this 
              issue.
      
      LayoutTests:
              Reviewed by Geoff.
      
              Test for <rdar://problem/4948128> REGRESSION: A crash occurs at 
              WebCore::Frame::view() after completing a query at mapquest.com 
              then switching to Bookmarks view
      
              * fast/dom/clientWidthAfterDocumentIsRemoved-expected.checksum: Added.
              * fast/dom/clientWidthAfterDocumentIsRemoved-expected.png: Added.
              * fast/dom/clientWidthAfterDocumentIsRemoved-expected.txt: Added.
              * fast/dom/clientWidthAfterDocumentIsRemoved.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19100 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      06de9c41
    • oliver's avatar
      2007-01-24 Oliver Hunt <oliver@apple.com> · 83dc3539
      oliver authored
              Reviewed by Adele.
      
              Fixes DragController to allow a null target Document.
              This is encountered in new tabs/windows that have not
              loaded any page (including about:blank)
      
              * page/DragController.cpp:
              (WebCore::documentAtPoint):
              (WebCore::DragController::tryDocumentDrag):
              (WebCore::DragController::operationForLoad):
              (WebCore::DragController::concludeDrag):
              * page/mac/DragControllerMac.mm:
              (WebCore::DragController::dragOperation):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19084 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      83dc3539
  7. 23 Jan, 2007 5 commits
    • oliver's avatar
      2007-01-23 Oliver Hunt <oliver@apple.com> · 72661129
      oliver authored
              Reviewed by Adam.
      
              Fixes dropping of files into safari
      
              * page/DragController.cpp:
              (WebCore::DragController::performDrag):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19063 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      72661129
    • adele's avatar
      WebCore: · 1c204837
      adele authored
              Reviewed by Darin.
              
              WebCore part of fix for <rdar://problem/4946753>REGRESSION: Inserting tabs is broken in Mail
      
              In addition to this fix, I also reorganized some event handling code for keyPress events to
              prepare for another fix.  There's also just a little bit of unrelated cleanup.
              
              * dom/EventTargetNode.cpp: (WebCore::EventTargetNode::defaultEventHandler):
                Move tab focus behavior into new defaultKeyboardEventHandler method.
              
              * bridge/EditorClient.h: Added handleKeyPress.
              * editing/Editor.cpp:
              (WebCore::Editor::handleKeyPress): Added. Calls over to the client method.
              (WebCore::Editor::deleteRange): Removed unnecessary propogateDOMException.
              * editing/Editor.h: Added handleKeyPress.
              (WebCore::Editor::addToKillRing): Formatting cleanup.
              * editing/mac/EditorMac.mm: Removed unnecessary propogateDOMException.
              
              * page/EventHandler.cpp: (WebCore::EventHandler::defaultKeyboardEventHandler): Added. Checks
                the tabKeyCyclesThroughElements setting before advancing focus for tab key events.  Calls handleKeyPress.
              * page/EventHandler.h: Added defaultKeyboardEventHandler.
              
              * page/Page.cpp: (WebCore::Page::Page): Initialize m_tabKeyCyclesThroughElements to true.
              * page/Page.h: Added m_tabKeyCyclesThroughElements.
              (WebCore::Page::setTabKeyCyclesThroughElements): Added.
              (WebCore::Page::tabKeyCyclesThroughElements): Added.
              
              * platform/PlatformKeyboardEvent.h: Added ability to get NSEvent from PlatformKeyboardEvent.
              * platform/mac/KeyEventMac.mm: (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
                Initialize m_macEvent to the NSEvent.
              
              * platform/graphics/svg/SVGImageEmptyClients.h: (WebCore::SVGEmptyEditorClient::handleKeyPress): Added.
      
      WebKit:
      
              Reviewed by Darin.
      
              WebKit part of fix for <rdar://problem/4946753>REGRESSION: Inserting tabs is broken in Mail
              
              In addition to this fix, I also reorganized some event handling code for keyPress events to
              prepare for another fix.
      
              * WebCoreSupport/WebEditorClient.h: Added handleKeyPress method.
              * WebCoreSupport/WebEditorClient.mm:
              (WebEditorClient::handleKeyPress): Added.  Code moved from WebHTMLView keyDown method.
               This is called from the defaultEventHandler so that in the future, we can make the right 
               decision about which selection the keyPress should apply to.
              * WebView/WebHTMLView.mm:
              (-[WebHTMLView keyDown:]): Moved _interceptEditingKeyEvent call to handleKeyPress.
              (-[WebHTMLView _interceptEditingKeyEvent:]): Prevents intercepting keys for cmd-modified events. Removed tabCycling checks
               since this is now handled in WebCore.
              * WebView/WebHTMLViewInternal.h: Made _interceptEditingKeyEvent SPI.
              * WebView/WebView.mm: Use new tabKeyCyclesThroughElements methods on the page.
              (-[WebViewPrivate init]): ditto.
              (-[WebView setTabKeyCyclesThroughElements:]): ditto.
              (-[WebView tabKeyCyclesThroughElements]): ditto.
              (-[WebView setEditable:]): ditto
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19049 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1c204837
    • zack's avatar
      Fix the Qt build · 1bd89127
      zack authored
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19043 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1bd89127
    • 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
    • oliver's avatar
      2007-01-23 Oliver Hunt <oliver@apple.com> · aeffa297
      oliver authored
              Reviewed by Adam.
      
              Added DragController to handled drag and drop state and control logic.
              Currently this only handles logic for Dragging and Dropping, and is 
              unable to initialise a drag itself.
      
              platform/DragData encapsulate the paltform Drag data (NSDraggingInfo on Mac, 
              QMimeType in Qt).  This provides methods to pull data out the drag data as a String, 
              a URL, a DocumentFragment (for rich content), or a Colour.
      
              * WebCore.exp:
              * WebCore.pro:
              * WebCore.xcodeproj/project.pbxproj:
              * dom/Clipboard.cpp: Added.
              (WebCore::Clipboard::setAccessPolicy):
              (WebCore::dragOpFromIEOp):
              (WebCore::IEOpFromDragOp):
              (WebCore::Clipboard::sourceOperation):
              (WebCore::Clipboard::destinationOperation):
              (WebCore::Clipboard::setSourceOperation):
              (WebCore::Clipboard::setDestinationOperation):
              (WebCore::Clipboard::setDropEffect):
              (WebCore::Clipboard::setEffectAllowed):
                move platform independent functions from ClipboardMac to Clipboard
      
              * dom/Clipboard.h:
              (WebCore::Clipboard::Clipboard):
              (WebCore::Clipboard::dropEffect):
              (WebCore::Clipboard::effectAllowed):
              (WebCore::Clipboard::policy):
                as above -- also removed virtual modifier from now 
                platform independent methods
      
              * editing/Editor.cpp:
              (WebCore::Editor::smartInsertDeleteEnabled): 
              (WebCore::Editor::shouldApplyStyle):
              * editing/Editor.h:
                adding calls through to EditorClient
               
              * page/DragActions.h: Added.
              (WebCore::):
                Replicates a number of NS* enums in the WebCore namespace
      
              * page/DragClient.h: Added.
              (WebCore::DragClient::~DragClient):
                Standard client interface for dragging UIDelegate
      
              * page/DragController.cpp: Added.
              (WebCore::createMouseEvent):
              (WebCore::DragController::DragController):
              (WebCore::DragController::~DragController):
              (WebCore::documentFragmentFromDragData):
              (WebCore::DragController::isMoveDrag):
              (WebCore::visiblePositionForPoint):
              (WebCore::DragController::cancelDrag):
              (WebCore::documentAtPoint):
              (WebCore::DragController::dragEntered):
              (WebCore::DragController::dragExited):
              (WebCore::DragController::dragUpdated):
              (WebCore::DragController::performDrag):
              (WebCore::DragController::dragEnteredOrUpdated):
              (WebCore::DragController::tryDocumentDrag):
              (WebCore::DragController::operationForLoad):
              (WebCore::DragController::concludeDrag):
              (WebCore::DragController::canProcessDrag):
              (WebCore::DragController::tryDHTMLDrag):
                Class to handle state and logic for dragging and dropping
      
              * page/DragController.h: Added.
              (WebCore::DragController::client):
              (WebCore::DragController::didInitiateDrag):
              (WebCore::DragController::isHandlingDrag):
              (WebCore::DragController::dragOperation):
              (WebCore::DragController::document):
              (WebCore::DragController::dragInitiator):
              (WebCore::DragController::dragDestinationAction):
              (WebCore::DragController::dragSourceAction):
              (WebCore::DragController::dragEnded):
              (WebCore::DragController::setIsHandlingDrag):
              (WebCore::DragController::setDidInitiateDrag):
              (WebCore::DragController::setDragOperation):
              (WebCore::DragController::setDragSourceAction):
              (WebCore::DragController::setDragInitiator):
                See above
      
              * page/Page.cpp:
              (WebCore::Page::Page):
                Update Page to have DragController
      
              * page/Page.h:
              (WebCore::Page::dragController):
                ditto
      
              * page/mac/DragControllerMac.mm: Added.
              (WebCore::DragController::isCopyKeyDown):
              (WebCore::DragController::dragOperation):
                Platform specific portions of the DragController
      
              * page/mac/EventHandlerMac.mm:
              (WebCore::EventHandler::handleDrag):
              (WebCore::EventHandler::dragSourceEndedAt):
                Convert from NSDragOperation to WebCore::DragOperation
      
              * page/mac/WebCoreFrameBridge.h:
              * page/mac/WebCoreFrameBridge.mm:
                Remove obsolete Drag functions
      
              * page/qt/DragControllerQt.cpp: Added.
              (WebCore::DragController::isCopyKeyDown):
              (WebCore::DragController::dragOperation):
                Basic stubs to maintain Qt  build
      
              * platform/DragData.cpp: Added.
              (WebCore::DragData::DragData):
              * platform/DragData.h: Added.
              (WebCore::DragData::clientPosition):
              (WebCore::DragData::globalPosition):
              (WebCore::DragData::platformData):
              (WebCore::DragData::draggingSourceOperationMask):
                DragData class to encapsulate platform drag data/event
      
              * platform/graphics/svg/SVGImage.cpp:
              (WebCore::SVGImage::setData):
                Addition of dummy DragClient
      
              * platform/graphics/svg/SVGImageEmptyClients.h:
              (WebCore::SVGEmptyDragClient::~SVGEmptyDragClient):
              (WebCore::SVGEmptyDragClient::willPerformDragDestinationAction):
              (WebCore::SVGEmptyDragClient::actionMaskForDrag):
              (WebCore::SVGEmptyDragClient::dragControllerDestroyed):
                ditto
      
              * platform/mac/ClipboardMac.h:
              * platform/mac/ClipboardMac.mm:
              (WebCore::ClipboardMac::ClipboardMac):
              (WebCore::ClipboardMac::clearData):
              (WebCore::ClipboardMac::clearAllData):
              (WebCore::ClipboardMac::getData):
              (WebCore::ClipboardMac::setData):
              (WebCore::ClipboardMac::types):
              (WebCore::ClipboardMac::setDragImage):
               Moving platform independent logic to Clipboard, and updating
               platform specific methods to use appropriate accessors rather than 
               directly manipulating data they no longer own
      
              * platform/mac/DragDataMac.mm: Added.
              (WebCore::DragData::DragData):
              (WebCore::DragData::canSmartReplace):
              (WebCore::DragData::containsColor):
              (WebCore::DragData::containsPlainText):
              (WebCore::DragData::asPlainText):
              (WebCore::DragData::asColor):
              (WebCore::DragData::createClipboard):
              (WebCore::imageExistsAtPaths):
              (WebCore::DragData::containsCompatibleContent):
              (WebCore::DragData::containsURL):
              (WebCore::DragData::asURL):
              (WebCore::DragData::asFragment):
                Mac implementations of DragData methods.  A number of these use
                a Helper class that accesses WebKit functionality.  That functionality 
                should be migrated to WebCore in the future.
      
              * platform/mac/PasteboardHelper.h: Added.
              (WebCore::PasteboardHelper::~PasteboardHelper):
                Temporary, and Mac only, helper class to access WebKit functionality 
                from WebCore
      
              * platform/qt/DragDataQt.cpp: Added.
              (WebCore::DragData::canSmartReplace):
              (WebCore::DragData::containsColor):
              (WebCore::DragData::containsPlainText):
              (WebCore::DragData::asPlainText):
              (WebCore::DragData::asColor):
              (WebCore::DragData::createClipboard):
              (WebCore::DragData::containsCompatibleContent):
              (WebCore::DragData::containsURL):
              (WebCore::DragData::asURL):
              (WebCore::DragData::asFragment):
               Basic stubs to maintain Qt build
      
              * rendering/HitTestResult.cpp:
              (WebCore::HitTestResult::HitTestResult):
               Correct HitTestResult copy contructor to copy localPoint
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19039 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      aeffa297
  8. 22 Jan, 2007 1 commit
  9. 21 Jan, 2007 3 commits
    • ap's avatar
      Reviewed by Darin. · 9ce7dcca
      ap authored
              http://bugs.webkit.org/show_bug.cgi?id=10934
              REGRESSION: prototype.js logs error (HTMLFormElement) on webkit builds
      
              Added constructors for most HTML elements; started auto-generating HTMLSelectElement JS binding.
      
              Test: fast/dom/Window/element-constructors-on-window.html
      
              * DerivedSources.make: Generate JSHTMLSelectElement.
              * WebCore.xcodeproj/project.pbxproj: Added JSHTMLSelectElement{Custom}.
              * bindings/js/JSHTMLElementWrapperFactory.cpp: Create a proper binding for SELECT.
      
              * bindings/js/kjs_html.cpp:
              (KJS::):
              (KJS::JSHTMLElement::classInfo):
              (KJS::JSHTMLElement::accessors):
              (KJS::JSHTMLElement::getOwnPropertySlot):
              (KJS::HTMLElementFunction::callAsFunction):
              (KJS::JSHTMLElement::put):
              * bindings/js/kjs_html.h:
              (KJS::JSHTMLElement::):
              Removed everything related to SELECT. Renamed getHTMLOptionsCollection to toJS for autogenerated code 
              to be happy, and rewrote it using cacheDOMObject.
      
              * bindings/scripts/CodeGeneratorJS.pm: Added HTMLElement to the list of types that cannot fail conversion.
      
              * html/HTMLAnchorElement.idl:
              * html/HTMLAppletElement.idl:
              * html/HTMLAreaElement.idl:
              * html/HTMLBRElement.idl:
              * html/HTMLBaseElement.idl:
              * html/HTMLBaseFontElement.idl:
              * html/HTMLBodyElement.idl:
              * html/HTMLButtonElement.idl:
              * html/HTMLCanvasElement.idl:
              * html/HTMLDListElement.idl:
              * html/HTMLDirectoryElement.idl:
              * html/HTMLDivElement.idl:
              * html/HTMLFieldSetElement.idl:
              * html/HTMLFontElement.idl:
              * html/HTMLFormElement.idl:
              * html/HTMLHRElement.idl:
              * html/HTMLHeadElement.idl:
              * html/HTMLHeadingElement.idl:
              * html/HTMLHtmlElement.idl:
              * html/HTMLImageElement.idl:
              * html/HTMLInputElement.idl:
              * html/HTMLIsIndexElement.idl:
              * html/HTMLLIElement.idl:
              * html/HTMLLabelElement.idl:
              * html/HTMLLegendElement.idl:
              * html/HTMLLinkElement.idl:
              * html/HTMLMapElement.idl:
              * html/HTMLMenuElement.idl:
              * html/HTMLMetaElement.idl:
              * html/HTMLModElement.idl:
              * html/HTMLOListElement.idl:
              * html/HTMLOptGroupElement.idl:
              * html/HTMLParagraphElement.idl:
              * html/HTMLParamElement.idl:
              * html/HTMLPreElement.idl:
              * html/HTMLQuoteElement.idl:
              * html/HTMLScriptElement.idl:
              * html/HTMLStyleElement.idl:
              * html/HTMLTextAreaElement.idl:
              * html/HTMLTitleElement.idl:
              * html/HTMLUListElement.idl:
              Generate constructors.
      
              * html/HTMLSelectElement.cpp:
              (WebCore::HTMLSelectElement::length):
              * html/HTMLSelectElement.h:
              Make length() return unsigned for auto-generated code to be happy.
      
              * html/HTMLSelectElement.idl: Adjusted to be usable for JS.
      
              * bindings/JSHTMLSelectElementCustom.cpp: Added. Implements remove().
      
              * page/DOMWindow.idl:
              Added properties for most elements' constructors.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19024 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9ce7dcca
    • bdash's avatar
      2007-01-21 Mark Rowe <mrowe@apple.com> · 46f7ec9c
      bdash authored
              Reviewed by Maciej.
      
              http://bugs.webkit.org/show_bug.cgi?id=12357
              Bug 12357: Reproducible crash in WebCore::Settings::isJavaScriptEnabled in svg/custom/js-update-bounce.svg under guard-malloc
      
              * page/Frame.cpp:
              (WebCore::Frame::~Frame): Access the global object directly rather than via Window::retrieveWindow to prevent our reference to
              a deleted settings object being used.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19023 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      46f7ec9c
    • ddkilzer's avatar
      WebCore: · 952a8473
      ddkilzer authored
              Reviewed by NOBODY (no-svg build fix).
      
              * page/EventHandler.cpp:
              (WebCore::EventHandler::handleMouseMoveEvent): Changed #if SVG_SUPPORT to #ifdef SVG_SUPPORT.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19007 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      952a8473
  10. 20 Jan, 2007 1 commit
  11. 19 Jan, 2007 2 commits
    • darin's avatar
      LayoutTests: · a9b3e532
      darin authored
              Reviewed by Adele.
      
              - test for html4.css problem where we had a missing semicolon and thus missed
                parsing a style rule
      
              * fast/forms/radio-no-theme-padding-expected.txt: Added.
              * fast/forms/radio-no-theme-padding.html: Added.
      
              - test for http://bugs.webkit.org/show_bug.cgi?id=12008
                <rdar://problem/4901834> REGRESSION(NativeListBox): Focus is not placed on
                SELECT after mousing down on OPTION
      
              * fast/forms/select-list-box-mouse-focus-expected.txt: Added.
              * fast/forms/select-list-box-mouse-focus.html: Added.
      
              - test for http://bugs.webkit.org/show_bug.cgi?id=11999
                <rdar://problem/4940442> REGRESSION: Incomplete listing in TVListings window (11999)
      
              Note: Only the pixel test shows the failure in the old version.
      
              Note: I generated the pixel results on Leopard -- may need to be
              regenated on Tiger.
      
              * fast/forms/select-list-box-with-height-expected.checksum: Added.
              * fast/forms/select-list-box-with-height-expected.png: Added.
              * fast/forms/select-list-box-with-height-expected.txt: Added.
              * fast/forms/select-list-box-with-height.html: Added.
      
      WebCore:
      
              Reviewed by Adele.
      
              - fix http://bugs.webkit.org/show_bug.cgi?id=11999
                <rdar://problem/4940442> REGRESSION: Incomplete listing in TVListings window (11999)
                Fix was to use the actual size of the renderer in the RenderListBox
                case, instead of always using the size specified by the select element.
      
              Test: fast/forms/select-list-box-with-height.html
      
              - fix http://bugs.webkit.org/show_bug.cgi?id=12008
                <rdar://problem/4901834> REGRESSION(NativeListBox): Focus is not placed on
                SELECT after mousing down on OPTION
      
              Test: fast/forms/select-list-box-mouse-focus.html
      
              - fix bug where auto-scrolling was not working in list box select elements
      
              No test yet.
      
              - fix a missing semicolon in the radio/checkbox section of html4.css
      
              Test: fast/forms/radio-no-theme-padding.html
      
              - fix bug where the scroll bars for select elements were pixel-type scroll
                bars even though the scrolling is line at a time scrolling
      
              No test.
      
              * html/HTMLSelectElement.cpp:
              (WebCore::HTMLSelectElement::selectAll): Removed an explicit call
              to repaint, since the RenderListBox now does that in selectionChanged.
              (WebCore::HTMLSelectElement::notifyOptionSelected): Call the new
              selectionChanged instead of the old setSelectionChanged.
              (WebCore::HTMLSelectElement::listBoxDefaultEventHandler): Added a call
              to focus. Removed an explicit call to repaint and added a call to the
              new setMouseDownMayStartAutoscroll function in EventHandler. Removed an
              explicit call to repaint as above.
              (WebCore::HTMLSelectElement::updateListBoxSelection): Call the new
              selectionChanged instead of the old setSelectionChanged.
      
              * page/EventHandler.h: Added setMouseDownMayStartAutoscroll, needed
              because the existing code to set that flag won't get triggered when
              the select element's default event handler handles the event.
      
              * rendering/RenderListBox.h: Made ScrollbarClient a private base class.
              Removed setSelectionChanged and m_selectionChanged. Added selectionChanged,
              which is really just a synonym for repaint for now. Moved valueChanged,
              the ScrollbarClient function implementations, and itemHeight into the
              private part of the class. Added numVisibleItems() and listHeight() to
              the private section. Changed m_vBar to be a RefPtr.
      
              * rendering/RenderListBox.cpp: Removed unneeded includes. Moved all
              the constants to the top of the file.
              (WebCore::RenderListBox::RenderListBox): Removed initialization of
              m_selectionChanged because it was removed and of m_vBar because it's
              now a RefPtr which is automaticall initialized.
              (WebCore::RenderListBox::~RenderListBox): Removed the explicit deref of
              m_vBar because it's a RefPtr. Added null checking for FrameView.
              (WebCore::RenderListBox::updateFromElement): Use numItems().
              (WebCore::RenderListBox::calcMinMaxWidth): Added null checking for
              FrameView and used RefPtr for the newly-created scroll bar.
              (WebCore::RenderListBox::size): Tweaked formatting. Also renamed the
              misleading minDefaultSize to maxDefaultSize, since it's a maximum.
              (WebCore::RenderListBox::numVisibleItems): Added. Used in many places
              where size() was used before. This computes the number of rows we have
              room for. We don't need a row space after the last row, and this takes
              that into account.
              (WebCore::RenderListBox::numItems): Tweaked to remove the local variable.
              (WebCore::RenderListBox::listHeight): Added. Total height of all the rows
              and spaces between them.
              (WebCore::RenderListBox::calcHeight): Changed to call itemHeight for the
              row height, and to subtract the last row spacing off since we don't need
              a space after the last row. Changed the scroll bar setup to make it
              correspond to row numbers, not pixel numbers.
              (WebCore::RenderListBox::baselinePosition): Moved the comment to the
              constant declaration at the top of the file.
              (WebCore::RenderListBox::itemBoundingBoxRect): Simplified by using
              the itemHeight() function.
              (WebCore::RenderListBox::paintObject): Changed to use numItems and
              to use numVisibleItems instead of size.
              (WebCore::RenderListBox::isPointInScrollbar): Added get() call since
              m_vBar is now a RefPtr.
              (WebCore::RenderListBox::listIndexAtOffset): Changed to use numItems(),
              itemHeight(), and rearranged a min/max combo so it starts with the low,
              then the value, then the high value for pinning.
              (WebCore::RenderListBox::autoscroll): Use numVisibleItems() instead of
              size().
              (WebCore::RenderListBox::stopAutoscroll): Removed an unneeded nil check
              of the element.
              (WebCore::RenderListBox::scrollToRevealElementAtListIndex): Changed
              to use numItems() and to use numVisibleItems() instead of size().
              Also changed scroll bar code to work more simply now that the scroll
              bar is row-based.
              (WebCore::RenderListBox::listIndexIsVisible): Changed to use
              numVisibleItems() instead of size().
              (WebCore::RenderListBox::valueChanged): Simplified since the scrollbar
              is now row-based. Also removed an unnecessary null check.
              (WebCore::RenderListBox::itemHeight): Updated for name change from
              optionsSpacingMiddle to rowSpacing.
              (WebCore::RenderListBox::scrollHeight): Changed to use listHeight().
              (WebCore::RenderListBox::setScrollTop): Simplified, and removed the code
              that does nothing if the computed list index is visible (which did not
              make sense for this function and seemed a cut and paste error from the
              scrollToReveal function). The scrollbar part is simpler now that it's
              row-based.
              (WebCore::RenderListBox::windowClipRect): Changed to use document()->view()
              so we don't have to include RenderView.h.
      
              * css/html4.css: Added a semicolon I noticed was missing.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@18989 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a9b3e532
    • andersca's avatar
      WebCore: · 15375c76
      andersca authored
              Reviewed by Adam.
      
              Move JavaScript alert and status bar functions to the chrome.
              
              * bindings/js/kjs_window.cpp:
              (KJS::WindowFunc::callAsFunction):
              * page/Chrome.cpp:
              (WebCore::Chrome::runJavaScriptAlert):
              (WebCore::Chrome::runJavaScriptConfirm):
              (WebCore::Chrome::runJavaScriptPrompt):
              (WebCore::Chrome::setStatusBarText):
              * page/Chrome.h:
              * page/ChromeClient.h:
              * page/Frame.cpp:
              (WebCore::Frame::setJSStatusBarText):
              (WebCore::Frame::setJSDefaultStatusBarText):
              * page/Frame.h:
              * page/mac/FrameMac.h:
              * page/mac/FrameMac.mm:
              * page/mac/WebCoreFrameBridge.h:
              * platform/graphics/svg/SVGImageEmptyClients.h:
              (WebCore::SVGEmptyChromeClient::runJavaScriptAlert):
              (WebCore::SVGEmptyChromeClient::runJavaScriptConfirm):
              (WebCore::SVGEmptyChromeClient::runJavaScriptPrompt):
              (WebCore::SVGEmptyChromeClient::setStatusBarText):
      
      WebKit:
      
              Reviewed by Adam.
      
              Move functions from the bridge to the chrome client.
              
              * WebCoreSupport/WebChromeClient.h:
              * WebCoreSupport/WebChromeClient.mm:
              (WebChromeClient::runJavaScriptAlert):
              (WebChromeClient::runJavaScriptConfirm):
              (WebChromeClient::runJavaScriptPrompt):
              (WebChromeClient::setStatusBarText):
              * WebCoreSupport/WebFrameBridge.mm:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@18983 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      15375c76
  12. 18 Jan, 2007 2 commits
    • bdakin's avatar
      Reviewed by Adele. · 3e19b052
      bdakin authored
              Fix for <rdar://problem/4939558> REGRESSION: "Search in Google", 
              "Search in Spotlight" and "Look up in Dictionary" are missing 
              initially from the contextual menu
      
              The bug here is that we select the we were selecting the word after 
              the context menu event was dispatched and after the context menu 
              was built up.
      
              * page/EventHandler.cpp:
              (WebCore::EventHandler::sendContextMenuEvent): Select the word 
              before dispatching the event. It is safe to remove the check for 
              swallowEvent since WebCore context menus ensure that we always 
              swallow the event anyway.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@18974 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3e19b052
    • 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
  13. 17 Jan, 2007 3 commits
    • sullivan's avatar
      WebCore: · aaa7b63b
      sullivan authored
              Reviewed by Darin
      
              - WebCore part of fix for <rdar://problem/4462420> REGRESSION: Mail hangs during 
                Replace All if the replacement string contains the search string
              
              * page/Frame.h:
              * page/Frame.cpp:
              (WebCore::Frame::findString):
              new startInSelection parameter -- if true, search starts looking in selection; if false,
              search starts looking after the selection
              
              * page/mac/WebCoreFrameBridge.h:
              * page/mac/WebCoreFrameBridge.mm:
              (-[WebCoreFrameBridge searchFor:direction:caseSensitive:wrap:startInSelection:]):
              new startInSelection parameter, passed through to Frame::findString()
      
              * editing/JSEditor.cpp:
              pass false for new findString parameter, to match old behavior
      
      WebKit:
      
              Reviewed by Darin
      
              - WebKit part of fix for <rdar://problem/4462420> REGRESSION: Mail hangs during 
                Replace All if the replacement string contains the search string
      
              * Misc/WebKitVersionChecks.h:
              Added extern "C" so this can be used from .mm files. I don't need this change anymore for
              this fix, but it's still worth fixing now so it doesn't bite anyone later.
      
              * WebView/WebDocumentPrivate.h:
              Invented new private protocol WebDocumentIncrementalSearching, that has one method. The one
              method is just like the one WebDocumentSearching method, but with an additional parameter.
              We hope to eliminate this dependence on protocols someday, but adding another one as SPI
              seems like it won't make anything worse.
              
              * WebView/WebHTMLView.mm:
              (-[WebHTMLView searchFor:direction:caseSensitive:wrap:]):
              now calls through to new method that has one additional parameter, passing NO to match old behavior
              (-[WebHTMLView searchFor:direction:caseSensitive:wrap:startInSelection:]):
              pass new parameter to bridge
              
              * WebView/WebPDFView.h:
              Declare conformance to WebDocumentIncrementalSearching protocol
              
              * WebView/WebPDFView.mm:
              (-[WebPDFView searchFor:direction:caseSensitive:wrap:]):
              now calls through to new method that has one additional parameter, passing NO to match old behavior
              (-[WebPDFView searchFor:direction:caseSensitive:wrap:startInSelection:]):
              new method, former guts of searchFor:direction:caseSensitive:wrap: but now handles startInSelection
              parameter
              
              * WebView/WebViewPrivate.h:
              Declare new searchFor:direction:caseSensitive:wrap:startInSelection: method, just like existing
              method but with one additional parameter
      
              * WebView/WebView.mm:
              (-[WebView searchFor:direction:caseSensitive:wrap:]):
              now calls through to new method that has one additional parameter, passing NO to match old behavior
              (-[WebView searchFor:direction:caseSensitive:wrap:startInSelection:]):
              new method, former guts of searchFor:direction:caseSensitive:wrap: but now handles startInSelection
              parameter
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@18928 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      aaa7b63b
    • adele's avatar
      Reviewed by Darin and John. · b1eec5e2
      adele authored
              - Fix for <rdar://problem/4816550> REGRESSION: autoscrolling doesn't work after double-click
      
              * page/EventHandler.cpp: (WebCore::EventHandler::handleMousePressEvent): Set swallowEvent bool instead
                of returning early for double and triple clicks.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@18921 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b1eec5e2
    • lars's avatar
      Add a message handler to DumpRenderTree that will · a5f96ca6
      lars authored
              suppress all debug output coming from qDebug() statements.
              Like this we can get rid of all the noise coming
              from the notImplemented() macro when running the
              layout tests. You can get it back by adding -v to
              DumpRenderTree's command line.
      
              Changed run-webkit-tests slightly, so we by default
              don't fail anymore when our output differs from what
              is generated on the Mac. Added a --strict option, so
              that we can still see this cases and fix them one by one.
      
              change all notImplemented() macros to use qDebug
              instead of fprintf(stder, ...)
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@18901 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a5f96ca6
  14. 16 Jan, 2007 1 commit
    • bdakin's avatar
      Reviewed by Adam. · 2d87d4b4
      bdakin authored
              Get rid of show() and hide() since they don't do anything.
      
              * page/ContextMenuController.cpp:
              (WebCore::ContextMenuController::handleContextMenuEvent):
              * platform/ContextMenu.h:
              * platform/mac/ContextMenuMac.mm:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@18889 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2d87d4b4
  15. 15 Jan, 2007 2 commits
    • eseidel's avatar
      2007-01-15 Eric Seidel <eric@webkit.org> · 8eddecf9
      eseidel authored
              Reviewed by bdash.
      
              Update header guards to follow new style guidelines using new clean-header-guards script.
      
              * bindings/js/JSHTMLElementWrapperFactory.h:
              * bindings/js/JSHTMLInputElementBase.h:
              * bindings/js/JSHTMLOptionElementConstructor.h:
              * bindings/js/JSSVGElementWrapperFactory.h:
              * bindings/js/JSSVGPODTypeWrapper.h:
              * bindings/js/JSXMLHttpRequest.h:
              * bindings/js/JSXSLTProcessor.h:
              * bindings/js/kjs_binding.h:
              * bindings/js/kjs_css.h:
              * bindings/js/kjs_dom.h:
              * bindings/js/kjs_domnode.h:
              * bindings/js/kjs_events.h:
              * bindings/js/kjs_html.h:
              * bindings/js/kjs_navigator.h:
              * bindings/js/kjs_proxy.h:
              * bindings/js/kjs_traversal.h:
              * bindings/js/kjs_window.h:
              * bridge/EditorClient.h:
              * bridge/History.h:
              * css/CSSStyleSheet.h:
              * css/CSSValue.h:
              * css/CSSValueList.h:
              * css/DashboardRegion.h:
              * css/FontFamilyValue.h:
              * css/FontValue.h:
              * css/MediaFeatureNames.h:
              * css/MediaList.h:
              * css/Pair.h:
              * css/RectImpl.h:
              * css/ShadowValue.h:
              * css/StyleBase.h:
              * css/StyleList.h:
              * css/StyleSheet.h:
              * css/StyleSheetList.h:
              * css/cssstyleselector.h:
              * dom/BeforeTextInsertedEvent.h:
              * dom/CDATASection.h:
              * dom/CharacterData.h:
              * dom/ChildNodeList.h:
              * dom/Comment.h:
              * dom/DOMImplementation.h:
              * dom/DocPtr.h:
              * dom/Document.h:
              * dom/DocumentFragment.h:
              * dom/DocumentMarker.h:
              * dom/DocumentType.h:
              * dom/EditingText.h:
              * dom/Entity.h:
              * dom/EntityReference.h:
              * dom/EventNames.h:
              * dom/EventTargetNode.h:
              * dom/NameNodeList.h:
              * dom/NamedNodeMap.h:
              * dom/Node.h:
              * dom/NodeList.h:
              * dom/Notation.h:
              * dom/Position.h:
              * dom/ProcessingInstruction.h:
              * dom/Range.h:
              * dom/StyleElement.h:
              * dom/Text.h:
              * editing/AppendNodeCommand.h:
              * editing/ApplyStyleCommand.h:
              * editing/BreakBlockquoteCommand.h:
              * editing/CommandByName.h:
              * editing/CompositeEditCommand.h:
              * editing/DeleteButton.h:
              * editing/DeleteButtonController.h:
              * editing/DeleteFromTextNodeCommand.h:
              * editing/DeleteSelectionCommand.h:
              * editing/InsertIntoTextNodeCommand.h:
              * editing/InsertLineBreakCommand.h:
              * editing/InsertNodeBeforeCommand.h:
              * editing/InsertParagraphSeparatorCommand.h:
              * editing/InsertTextCommand.h:
              * editing/JoinTextNodesCommand.h:
              * editing/MergeIdenticalElementsCommand.h:
              * editing/ModifySelectionListLevel.h:
              * editing/MoveSelectionCommand.h:
              * editing/RemoveCSSPropertyCommand.h:
              * editing/RemoveNodeAttributeCommand.h:
              * editing/RemoveNodeCommand.h:
              * editing/RemoveNodePreservingChildrenCommand.h:
              * editing/ReplaceSelectionCommand.h:
              * editing/SetNodeAttributeCommand.h:
              * editing/SplitElementCommand.h:
              * editing/SplitTextNodeCommand.h:
              * editing/SplitTextNodeContainingElementCommand.h:
              * editing/TextGranularity.h:
              * editing/TypingCommand.h:
              * editing/WrapContentsInDummySpanCommand.h:
              * history/BackForwardList.h:
              * history/HistoryItem.h:
              * history/HistoryItemTimer.h:
              * history/PageCache.h:
              * html/CanvasGradient.h:
              * html/CanvasPattern.h:
              * html/CanvasRenderingContext2D.h:
              * html/CanvasStyle.h:
              * html/FormDataList.h:
              * html/HTMLAnchorElement.h:
              * html/HTMLAppletElement.h:
              * html/HTMLAreaElement.h:
              * html/HTMLBRElement.h:
              * html/HTMLBaseElement.h:
              * html/HTMLBaseFontElement.h:
              * html/HTMLBlockquoteElement.h:
              * html/HTMLBodyElement.h:
              * html/HTMLButtonElement.h:
              * html/HTMLCanvasElement.h:
              * html/HTMLCollection.h:
              * html/HTMLDListElement.h:
              * html/HTMLDirectoryElement.h:
              * html/HTMLDivElement.h:
              * html/HTMLElement.h:
              * html/HTMLElementFactory.h:
              * html/HTMLEmbedElement.h:
              * html/HTMLFieldSetElement.h:
              * html/HTMLFontElement.h:
              * html/HTMLFormCollection.h:
              * html/HTMLFormElement.h:
              * html/HTMLFrameSetElement.h:
              * html/HTMLGenericFormElement.h:
              * html/HTMLHRElement.h:
              * html/HTMLHeadElement.h:
              * html/HTMLHeadingElement.h:
              * html/HTMLHtmlElement.h:
              * html/HTMLImageElement.h:
              * html/HTMLImageLoader.h:
              * html/HTMLInputElement.h:
              * html/HTMLIsIndexElement.h:
              * html/HTMLKeygenElement.h:
              * html/HTMLLIElement.h:
              * html/HTMLLabelElement.h:
              * html/HTMLLegendElement.h:
              * html/HTMLLinkElement.h:
              * html/HTMLMapElement.h:
              * html/HTMLMarqueeElement.h:
              * html/HTMLMenuElement.h:
              * html/HTMLMetaElement.h:
              * html/HTMLModElement.h:
              * html/HTMLNameCollection.h:
              * html/HTMLOListElement.h:
              * html/HTMLObjectElement.h:
              * html/HTMLOptGroupElement.h:
              * html/HTMLOptionElement.h:
              * html/HTMLOptionsCollection.h:
              * html/HTMLParagraphElement.h:
              * html/HTMLParamElement.h:
              * html/HTMLParser.h:
              * html/HTMLPlugInElement.h:
              * html/HTMLPreElement.h:
              * html/HTMLQuoteElement.h:
              * html/HTMLScriptElement.h:
              * html/HTMLSelectElement.h:
              * html/HTMLStyleElement.h:
              * html/HTMLTableCaptionElement.h:
              * html/HTMLTableCellElement.h:
              * html/HTMLTableColElement.h:
              * html/HTMLTableElement.h:
              * html/HTMLTablePartElement.h:
              * html/HTMLTableRowElement.h:
              * html/HTMLTableSectionElement.h:
              * html/HTMLTextAreaElement.h:
              * html/HTMLTextFieldInnerElement.h:
              * html/HTMLTitleElement.h:
              * html/HTMLUListElement.h:
              * ksvg2/css/SVGRenderStyle.h:
              * ksvg2/css/SVGRenderStyleDefs.h:
              * ksvg2/events/JSSVGLazyEventListener.h:
              * ksvg2/events/SVGZoomEvent.h:
              * ksvg2/misc/KCanvasRenderingStyle.h:
              * ksvg2/misc/PointerEventsHitRules.h:
              * ksvg2/misc/SVGDocumentExtensions.h:
              * ksvg2/misc/SVGImageLoader.h:
              * ksvg2/misc/TimeScheduler.h:
              * ksvg2/svg/GradientAttributes.h:
              * ksvg2/svg/LinearGradientAttributes.h:
              * ksvg2/svg/PatternAttributes.h:
              * ksvg2/svg/RadialGradientAttributes.h:
              * ksvg2/svg/SVGAElement.h:
              * ksvg2/svg/SVGAngle.h:
              * ksvg2/svg/SVGAnimateColorElement.h:
              * ksvg2/svg/SVGAnimateElement.h:
              * ksvg2/svg/SVGAnimateMotionElement.h:
              * ksvg2/svg/SVGAnimateTransformElement.h:
              * ksvg2/svg/SVGAnimatedPathData.h:
              * ksvg2/svg/SVGAnimatedPoints.h:
              * ksvg2/svg/SVGAnimatedTemplate.h:
              * ksvg2/svg/SVGAnimationElement.h:
              * ksvg2/svg/SVGCircleElement.h:
              * ksvg2/svg/SVGClipPathElement.h:
              * ksvg2/svg/SVGColor.h:
              * ksvg2/svg/SVGComponentTransferFunctionElement.h:
              * ksvg2/svg/SVGCursorElement.h:
              * ksvg2/svg/SVGDOMImplementation.h:
              * ksvg2/svg/SVGDefsElement.h:
              * ksvg2/svg/SVGDescElement.h:
              * ksvg2/svg/SVGDocument.h:
              * ksvg2/svg/SVGElement.h:
              * ksvg2/svg/SVGElementInstance.h:
              * ksvg2/svg/SVGElementInstanceList.h:
              * ksvg2/svg/SVGEllipseElement.h:
              * ksvg2/svg/SVGExternalResourcesRequired.h:
              * ksvg2/svg/SVGFEBlendElement.h:
              * ksvg2/svg/SVGFEColorMatrixElement.h:
              * ksvg2/svg/SVGFEComponentTransferElement.h:
              * ksvg2/svg/SVGFECompositeElement.h:
              * ksvg2/svg/SVGFEDiffuseLightingElement.h:
              * ksvg2/svg/SVGFEDisplacementMapElement.h:
              * ksvg2/svg/SVGFEDistantLightElement.h:
              * ksvg2/svg/SVGFEFloodElement.h:
              * ksvg2/svg/SVGFEFuncAElement.h:
              * ksvg2/svg/SVGFEFuncBElement.h:
              * ksvg2/svg/SVGFEFuncGElement.h:
              * ksvg2/svg/SVGFEFuncRElement.h:
              * ksvg2/svg/SVGFEGaussianBlurElement.h:
              * ksvg2/svg/SVGFEImageElement.h:
              * ksvg2/svg/SVGFELightElement.h:
              * ksvg2/svg/SVGFEMergeElement.h:
              * ksvg2/svg/SVGFEMergeNodeElement.h:
              * ksvg2/svg/SVGFEOffsetElement.h:
              * ksvg2/svg/SVGFEPointLightElement.h:
              * ksvg2/svg/SVGFESpecularLightingElement.h:
              * ksvg2/svg/SVGFESpotLightElement.h:
              * ksvg2/svg/SVGFETileElement.h:
              * ksvg2/svg/SVGFETurbulenceElement.h:
              * ksvg2/svg/SVGFilterElement.h:
              * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h:
              * ksvg2/svg/SVGFitToViewBox.h:
              * ksvg2/svg/SVGForeignObjectElement.h:
              * ksvg2/svg/SVGGElement.h:
              * ksvg2/svg/SVGGradientElement.h:
              * ksvg2/svg/SVGImageElement.h:
              * ksvg2/svg/SVGLangSpace.h:
              * ksvg2/svg/SVGLength.h:
              * ksvg2/svg/SVGLengthList.h:
              * ksvg2/svg/SVGLineElement.h:
              * ksvg2/svg/SVGLinearGradientElement.h:
              * ksvg2/svg/SVGList.h:
              * ksvg2/svg/SVGListTraits.h:
              * ksvg2/svg/SVGLocatable.h:
              * ksvg2/svg/SVGMarkerElement.h:
              * ksvg2/svg/SVGMaskElement.h:
              * ksvg2/svg/SVGMetadataElement.h:
              * ksvg2/svg/SVGNumberList.h:
              * ksvg2/svg/SVGPaint.h:
              * ksvg2/svg/SVGParserUtilities.h:
              * ksvg2/svg/SVGPathElement.h:
              * ksvg2/svg/SVGPathSeg.h:
              * ksvg2/svg/SVGPathSegArc.h:
              * ksvg2/svg/SVGPathSegClosePath.h:
              * ksvg2/svg/SVGPathSegCurvetoCubic.h:
              * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.h:
              * ksvg2/svg/SVGPathSegCurvetoQuadratic.h:
              * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.h:
              * ksvg2/svg/SVGPathSegLineto.h:
              * ksvg2/svg/SVGPathSegLinetoHorizontal.h:
              * ksvg2/svg/SVGPathSegLinetoVertical.h:
              * ksvg2/svg/SVGPathSegList.h:
              * ksvg2/svg/SVGPathSegMoveto.h:
              * ksvg2/svg/SVGPatternElement.h:
              * ksvg2/svg/SVGPointList.h:
              * ksvg2/svg/SVGPolyElement.h:
              * ksvg2/svg/SVGPolygonElement.h:
              * ksvg2/svg/SVGPolylineElement.h:
              * ksvg2/svg/SVGPreserveAspectRatio.h:
              * ksvg2/svg/SVGRadialGradientElement.h:
              * ksvg2/svg/SVGRectElement.h:
              * ksvg2/svg/SVGRenderingIntent.h:
              * ksvg2/svg/SVGSVGElement.h:
              * ksvg2/svg/SVGScriptElement.h:
              * ksvg2/svg/SVGSetElement.h:
              * ksvg2/svg/SVGStopElement.h:
              * ksvg2/svg/SVGStringList.h:
              * ksvg2/svg/SVGStylable.h:
              * ksvg2/svg/SVGStyleElement.h:
              * ksvg2/svg/SVGStyledElement.h:
              * ksvg2/svg/SVGStyledLocatableElement.h:
              * ksvg2/svg/SVGStyledTransformableElement.h:
              * ksvg2/svg/SVGSwitchElement.h:
              * ksvg2/svg/SVGSymbolElement.h:
              * ksvg2/svg/SVGTRefElement.h:
              * ksvg2/svg/SVGTSpanElement.h:
              * ksvg2/svg/SVGTests.h:
              * ksvg2/svg/SVGTextContentElement.h:
              * ksvg2/svg/SVGTextElement.h:
              * ksvg2/svg/SVGTextPositioningElement.h:
              * ksvg2/svg/SVGTitleElement.h:
              * ksvg2/svg/SVGTransform.h:
              * ksvg2/svg/SVGTransformList.h:
              * ksvg2/svg/SVGTransformable.h:
              * ksvg2/svg/SVGURIReference.h:
              * ksvg2/svg/SVGUnitTypes.h:
              * ksvg2/svg/SVGUseElement.h:
              * ksvg2/svg/SVGViewElement.h:
              * ksvg2/svg/SVGZoomAndPan.h:
              * loader/CachedCSSStyleSheet.h:
              * loader/CachedImage.h:
              * loader/CachedXSLStyleSheet.h:
              * loader/DocumentLoader.h:
              * loader/Request.h:
              * loader/SubresourceLoader.h:
              * loader/icon/IconDataCache.h:
              * loader/icon/IconDatabase.h:
              * loader/icon/IconLoader.h:
              * loader/icon/SQLDatabase.h:
              * loader/icon/SQLStatement.h:
              * loader/icon/SQLTransaction.h:
              * page/Frame.h:
              * page/FrameLoadRequest.h:
              * page/FrameTree.h:
              * page/FrameView.h:
              * page/PageState.h:
              * page/Plugin.h:
              * page/qt/FrameQt.h:
              * page/qt/FrameQtClient.h:
              * platform/Arena.h:
              * platform/ArrayImpl.h:
              * platform/Cursor.h:
              * platform/DeprecatedArray.h:
              * platform/DeprecatedCString.h:
              * platform/FileChooser.h:
              * platform/Font.h:
              * platform/FontCache.h:
              * platform/FontData.h:
              * platform/FontDescription.h:
              * platform/FontFamily.h:
              * platform/GlyphBuffer.h:
              * platform/GlyphMap.h:
              * platform/GlyphWidthMap.h:
              * platform/Logging.h:
              * platform/Pasteboard.h:
              * platform/PlatformString.h:
              * platform/PlugInInfoStore.h:
              * platform/PopupMenu.h:
              * platform/PopupMenuClient.h:
              * platform/ScrollBar.h:
              * platform/ScrollView.h:
              * platform/SearchPopupMenu.h:
              * platform/Shared.h:
              * platform/Sound.h:
              * platform/SystemTime.h:
              * platform/Timer.h:
              * platform/Widget.h:
              * platform/cf/RetainPtr.h:
              * platform/gdk/ChromeClientGdk.h:
              * platform/gdk/FontPlatformData.h:
              * platform/gdk/FrameGdk.h:
              * platform/gdk/KeyboardCodes.h:
              * platform/gdk/RenderPopupMenuGdk.h:
              * platform/gdk/RenderThemeGdk.h:
              * platform/graphics/BitmapImage.h:
              * platform/graphics/Color.h:
              * platform/graphics/FloatPoint.h:
              * platform/graphics/FloatPoint3D.h:
              * platform/graphics/FloatRect.h:
              * platform/graphics/Icon.h:
              * platform/graphics/Image.h:
              * platform/graphics/ImageAnimationObserver.h:
              * platform/graphics/ImageBuffer.h:
              * platform/graphics/ImageSource.h:
              * platform/graphics/IntPoint.h:
              * platform/graphics/IntRect.h:
              * platform/graphics/IntSize.h:
              * platform/graphics/IntSizeHash.h:
              * platform/graphics/PathTraversalState.h:
              * platform/graphics/Pen.h:
              * platform/graphics/qt/ImageDecoderQt.h:
              * platform/graphics/svg/SVGImage.h:
              * platform/graphics/svg/SVGImageEmptyClients.h:
              * platform/graphics/svg/SVGPaintServer.h:
              * platform/graphics/svg/SVGPaintServerGradient.h:
              * platform/graphics/svg/SVGPaintServerLinearGradient.h:
              * platform/graphics/svg/SVGPaintServerPattern.h:
              * platform/graphics/svg/SVGPaintServerRadialGradient.h:
              * platform/graphics/svg/SVGPaintServerSolid.h:
              * platform/graphics/svg/SVGResource.h:
              * platform/graphics/svg/SVGResourceClipper.h:
              * platform/graphics/svg/SVGResourceFilter.h:
              * platform/graphics/svg/SVGResourceMarker.h:
              * platform/graphics/svg/SVGResourceMasker.h:
              * platform/graphics/svg/cg/CgSupport.h:
              * platform/graphics/svg/filters/SVGDistantLightSource.h:
              * platform/graphics/svg/filters/SVGFEBlend.h:
              * platform/graphics/svg/filters/SVGFEColorMatrix.h:
              * platform/graphics/svg/filters/SVGFEComponentTransfer.h:
              * platform/graphics/svg/filters/SVGFEComposite.h:
              * platform/graphics/svg/filters/SVGFEConvolveMatrix.h:
              * platform/graphics/svg/filters/SVGFEDiffuseLighting.h:
              * platform/graphics/svg/filters/SVGFEDisplacementMap.h:
              * platform/graphics/svg/filters/SVGFEFlood.h:
              * platform/graphics/svg/filters/SVGFEGaussianBlur.h:
              * platform/graphics/svg/filters/SVGFEImage.h:
              * platform/graphics/svg/filters/SVGFEMerge.h:
              * platform/graphics/svg/filters/SVGFEMorphology.h:
              * platform/graphics/svg/filters/SVGFEOffset.h:
              * platform/graphics/svg/filters/SVGFESpecularLighting.h:
              * platform/graphics/svg/filters/SVGFETile.h:
              * platform/graphics/svg/filters/SVGFETurbulence.h:
              * platform/graphics/svg/filters/SVGFilterEffect.h:
              * platform/graphics/svg/filters/SVGLightSource.h:
              * platform/graphics/svg/filters/SVGPointLightSource.h:
              * platform/graphics/svg/filters/SVGSpotLightSource.h:
              * platform/mac/FontPlatformData.h:
              * platform/mac/PlatformScrollBar.h:
              * platform/network/AuthenticationChallenge.h:
              * platform/network/Credential.h:
              * platform/network/HTTPHeaderMap.h:
              * platform/network/ProtectionSpace.h:
              * platform/network/ResourceError.h:
              * platform/network/ResourceRequest.h:
              * platform/network/ResourceResponse.h:
              * platform/network/cf/FormDataStreamCFNet.h:
              * platform/network/cf/ResourceRequestCFNet.h:
              * platform/network/cf/ResourceResponseCFNet.h:
              * platform/network/gdk/ResourceHandleManager.h:
              * platform/network/mac/AuthenticationMac.h:
              * platform/network/mac/FormDataStreamMac.h:
              * platform/network/qt/ResourceHandleManagerKDE.h:
              * platform/network/qt/ResourceHandleManagerQt.h:
              * platform/network/win/ResourceHandleWin.h:
              * platform/qt/FontPlatformData.h:
              * platform/qt/KeyboardCodes.h:
              * platform/qt/PlatformScrollBar.h:
              * platform/qt/ScrollViewCanvasQt.h:
              * platform/qt/SharedTimerQt.h:
              * platform/win/FontPlatformData.h:
              * platform/win/PlatformScrollBar.h:
              * rendering/AutoTableLayout.h:
              * rendering/HitTestRequest.h:
              * rendering/HitTestResult.h:
              * rendering/InlineBox.h:
              * rendering/InlineFlowBox.h:
              * rendering/Length.h:
              * rendering/ListMarkerBox.h:
              * rendering/RenderBox.h:
              * rendering/RenderMenuList.h:
              * rendering/RenderPart.h:
              * rendering/RenderPartObject.h:
              * rendering/RenderPath.h:
              * rendering/RenderReplaced.h:
              * rendering/RenderSVGContainer.h:
              * rendering/RenderSVGImage.h:
              * rendering/RenderSVGInline.h:
              * rendering/RenderSVGInlineText.h:
              * rendering/RenderSVGTSpan.h:
              * rendering/RenderSVGText.h:
              * rendering/RenderStyle.h:
              * rendering/RenderTableCol.h:
              * rendering/RenderThemeWin.h:
              * rendering/bidi.h:
              * xml/DOMParser.h:
              * xml/XPathEvaluator.h:
              * xml/XPathExpression.h:
              * xml/XPathExpressionNode.h:
              * xml/XPathFunctions.h:
              * xml/XPathNSResolver.h:
              * xml/XPathNamespace.h:
              * xml/XPathParser.h:
              * xml/XPathPath.h:
              * xml/XPathPredicate.h:
              * xml/XPathResult.h:
              * xml/XPathStep.h:
              * xml/XPathUtil.h:
              * xml/XPathValue.h:
              * xml/XPathVariableReference.h:
              * xml/XSLImportRule.h:
              * xml/XSLStyleSheet.h:
              * xml/XSLTProcessor.h:
              * xml/xmlhttprequest.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@18874 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8eddecf9
    • andersca's avatar
      WebCore: · 2b2c5ce2
      andersca authored
              Reviewed by Darin and Adam.
      
              Move progress tracking down to WebCore.
              
              * WebCore.exp:
              Add ProgressTracker::estimatedProgress() to be used by WebKit.
              
              * WebCore.xcodeproj/project.pbxproj:
              Add ProgressTracker.[cpp|h]
              
              * loader/FrameLoader.cpp:
              (WebCore::FrameLoader::prepareForLoadStart):
              (WebCore::FrameLoader::clearProvisionalLoad):
              (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
              (WebCore::FrameLoader::startLoading):
              (WebCore::FrameLoader::didReceiveResponse):
              (WebCore::FrameLoader::didReceiveData):
              (WebCore::FrameLoader::didFailToLoad):
              (WebCore::FrameLoader::requestFromDelegate):
              (WebCore::FrameLoader::didFinishLoad):
              Call directly to the progress tracker instead of through the frame loader client.
              
              * loader/FrameLoaderClient.h:
              Get rid of the old methods and add new methods for tracking progress.
              
              * loader/ProgressTracker.cpp: Added.
              (WebCore::ProgressItem::ProgressItem):
              (WebCore::ProgressTracker::ProgressTracker):
              (WebCore::ProgressTracker::~ProgressTracker):
              (WebCore::ProgressTracker::estimatedProgress):
              (WebCore::ProgressTracker::reset):
              (WebCore::ProgressTracker::progressStarted):
              (WebCore::ProgressTracker::progressCompleted):
              (WebCore::ProgressTracker::finalProgressComplete):
              (WebCore::ProgressTracker::incrementProgress):
              (WebCore::ProgressTracker::completeProgress):
              (WebCore::ProgressTracker::createUniqueIdentifier):
              * loader/ProgressTracker.h: Added.
              New per page class which tracks progress.
              
              * loader/ResourceLoader.cpp:
              (WebCore::ResourceLoader::willSendRequest):
              * page/Page.cpp:
              (WebCore::Page::Page):
              * page/Page.h:
              (WebCore::Page::progress):
              Move createUniqueIdentifier to ProgressTracker, add ProgressTracker object to Page.
              
              * platform/graphics/svg/SVGImageEmptyClients.h:
              (WebCore::SVGEmptyFrameLoaderClient::willChangeEstimatedProgress):
              (WebCore::SVGEmptyFrameLoaderClient::didChangeEstimatedProgress):
              (WebCore::SVGEmptyFrameLoaderClient::postProgressStartedNotification):
              (WebCore::SVGEmptyFrameLoaderClient::postProgressEstimateChangedNotification):
              (WebCore::SVGEmptyFrameLoaderClient::postProgressFinishedNotification):
              Add new methods, get rid of the old ones.
      
      WebKit:
      
              Reviewed by Darin.
      
              Update to match WebCore.
              
              * WebCoreSupport/WebFrameLoaderClient.h:
              * WebCoreSupport/WebFrameLoaderClient.mm:
              (WebFrameLoaderClient::willChangeEstimatedProgress):
              (WebFrameLoaderClient::didChangeEstimatedProgress):
              (WebFrameLoaderClient::postProgressStartedNotification):
              (WebFrameLoaderClient::postProgressEstimateChangedNotification):
              (WebFrameLoaderClient::postProgressFinishedNotification):
              Post the correct notifications.
              
              * WebView/WebView.mm:
              (-[WebViewPrivate init]):
              (-[WebViewPrivate dealloc]):
              Get rid of all progress tracking code.
              
              (-[WebView estimatedProgress]):
              Call ProgressTracker::estimatedProgress()
      
      WebKitQt:
      
              Fix build.
              
              * WebCoreSupport/FrameLoaderClientQt.cpp:
              (WebCore::FrameLoaderClientQt::postProgressStartedNotification):
              (WebCore::FrameLoaderClientQt::postProgressEstimateChangedNotification):
              (WebCore::FrameLoaderClientQt::postProgressFinishedNotification):
              * WebCoreSupport/FrameLoaderClientQt.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@18868 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2b2c5ce2
  16. 14 Jan, 2007 1 commit
    • hyatt's avatar
      Fix for 10145, regression where line breaks are not being honored... · 34bba544
      hyatt authored
              Fix for 10145, regression where line breaks are not being honored between adjacent replaced elements.
              When checking for break opportunities where replaced elements are involved, we ignore their white-space
              values and use their parents' instead.  The assumption/idea behind this change is that because the element
              is replaced, its white-space value is irrelevant except as a means of applying style to its interior.
      
              The CSS spec does not cover this situation, so we're implementing this based off what other browsers seem to
              do.
      
              Reviewed by aroben
      
              * css/CSSComputedStyleDeclaration.cpp:
              (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
              * css/CSSValueKeywords.in:
              * css/cssparser.cpp:
              (WebCore::CSSParser::parseValue):
              * css/cssstyleselector.cpp:
              (WebCore::CSSStyleSelector::applyProperty):
              * page/EventHandler.cpp:
              (WebCore::EventHandler::EventHandler):
              (WebCore::EventHandler::clear):
              (WebCore::EventHandler::handleWheelEvent):
              * page/EventHandler.h:
              * rendering/RenderBox.cpp:
              (WebCore::RenderBox::calcHeight):
              * rendering/RenderLayer.cpp:
              (WebCore::Marquee::Marquee):
              (WebCore::Marquee::start):
              (WebCore::Marquee::updateMarqueePosition):
              (WebCore::Marquee::updateMarqueeStyle):
              (WebCore::Marquee::timerFired):
              * rendering/RenderLayer.h:
              * rendering/RenderPartObject.cpp:
              (WebCore::RenderPartObject::viewCleared):
              * rendering/RenderStyle.h:
              (WebCore::):
              * rendering/bidi.cpp:
              (WebCore::RenderBlock::findNextLineBreak):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@18838 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      34bba544
  17. 12 Jan, 2007 1 commit
    • andersca's avatar
      JavaScriptCore: · ec429f5b
      andersca authored
              Reviewed by Darin.
      
              * wtf/HashTraits.h:
              Add hash traits for unsigned long and unsigned long long.
      
      WebCore:
      
              Reviewed by Darin.
      
              Use unsigned long for identifiers instead of Objective-C objects.
              
              * loader/FrameLoader.cpp:
              (WebCore::FrameLoader::loadResourceSynchronously):
              (WebCore::FrameLoader::startLoadingMainResource):
              (WebCore::FrameLoader::startLoading):
              (WebCore::FrameLoader::assignIdentifierToInitialRequest):
              (WebCore::FrameLoader::opened):
              (WebCore::FrameLoader::sendRemainingDelegateMessages):
              (WebCore::FrameLoader::requestFromDelegate):
              (WebCore::FrameLoader::loadedResourceFromMemoryCache):
              * loader/FrameLoader.h:
              * loader/FrameLoaderClient.h:
              * loader/ResourceLoader.cpp:
              (WebCore::ResourceLoader::ResourceLoader):
              (WebCore::ResourceLoader::willSendRequest):
              * loader/ResourceLoader.h:
              (WebCore::ResourceLoader::setIdentifier):
              (WebCore::ResourceLoader::identifier):
              * page/Page.cpp:
              (WebCore::Page::Page):
              (WebCore::Page::createUniqueIdentifier):
              * page/Page.h:
              * platform/graphics/svg/SVGImageEmptyClients.h:
              (WebCore::SVGEmptyFrameLoaderClient::assignIdentifierToInitialRequest):
              (WebCore::SVGEmptyFrameLoaderClient::dispatchWillSendRequest):
              (WebCore::SVGEmptyFrameLoaderClient::dispatchDidReceiveAuthenticationChallenge):
              (WebCore::SVGEmptyFrameLoaderClient::dispatchDidCancelAuthenticationChallenge):
              (WebCore::SVGEmptyFrameLoaderClient::dispatchDidReceiveResponse):
              (WebCore::SVGEmptyFrameLoaderClient::dispatchDidReceiveContentLength):
              (WebCore::SVGEmptyFrameLoaderClient::dispatchDidFinishLoading):
              (WebCore::SVGEmptyFrameLoaderClient::dispatchDidFailLoading):
              (WebCore::SVGEmptyFrameLoaderClient::incrementProgress):
              (WebCore::SVGEmptyFrameLoaderClient::completeProgress):
      
      WebKit:
      
              Reviewed by Darin.
      
              Add a HashMap between unsigned longs and Objective-C objects and use it for
              the resource load delegate.
              
              * WebCoreSupport/WebFrameLoaderClient.h:
              * WebCoreSupport/WebFrameLoaderClient.mm:
              (WebFrameLoaderClient::assignIdentifierToInitialRequest):
              (WebFrameLoaderClient::dispatchIdentifierForInitialRequest):
              (WebFrameLoaderClient::dispatchWillSendRequest):
              (WebFrameLoaderClient::dispatchDidReceiveAuthenticationChallenge):
              (WebFrameLoaderClient::dispatchDidCancelAuthenticationChallenge):
              (WebFrameLoaderClient::dispatchDidReceiveResponse):
              (WebFrameLoaderClient::dispatchDidReceiveContentLength):
              (WebFrameLoaderClient::dispatchDidFinishLoading):
              (WebFrameLoaderClient::dispatchDidFailLoading):
              (WebFrameLoaderClient::incrementProgress):
              (WebFrameLoaderClient::completeProgress):
              * WebView/WebView.mm:
              (-[WebViewPrivate init]):
              (-[WebViewPrivate dealloc]):
              (-[WebView _addObject:forIdentifier:]):
              (-[WebView _objectForIdentifier:]):
              (-[WebView _removeObjectForIdentifier:]):
              * WebView/WebViewInternal.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@18822 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ec429f5b