1. 04 Dec, 2007 1 commit
    • aroben@apple.com's avatar
      Make the implementation of Frame::setNeedsReapplyStyles cross-platform · 4cfcb8ae
      aroben@apple.com authored
       WebCore:
      
               Make the implementation of Frame::setNeedsReapplyStyles cross-platform
      
               Reviewed by Hyatt.
      
               No change in functionality.
      
               * page/Frame.cpp:
               (WebCore::Frame::setNeedsReapplyStyles): Added. Invalidates the
               FrameView so that FrameView::layout will be called, which ends up
               calling reapplyStyles.
               (WebCore::Frame::needsReapplyStyles): Added.
               (WebCore::Frame::reapplyStyles): Renamed from reparseConfiguration.
               (WebCore::FramePrivate::FramePrivate):
               * page/Frame.h:
               * page/FramePrivate.h: Added new boolean member.
               * page/FrameView.cpp:
               (WebCore::FrameView::layout): Call Frame::reapplyStyles if needed.
               (WebCore::FrameView::needsLayout): Say that we need layout if the
               Frame needs styles reapplied.
               * page/mac/WebCoreFrameBridge.h: Removed setNeedsReapplyStyles.
               * page/mac/WebCoreFrameBridge.mm:
               (-[WebCoreFrameBridge reapplyStylesForDeviceType:]): Updated for
               rename.
      
               * bridge/win/FrameWin.cpp: Removed Frame::setNeedsReapplyStyles.
               * page/gtk/FrameGtk.cpp: Ditto.
               * page/mac/FrameMac.mm: Ditto.
               * page/qt/FrameQt.cpp: Ditto.
               * platform/wx/TemporaryLinkStubs.cpp: Ditto.
      
       WebKit/mac:
      
               Remove -[WebFrameBridge setNeedsReapplyStyles]
      
               This functionality is now WebCore's responsibility.
      
               Reviewed by Hyatt.
      
               * WebCoreSupport/WebFrameBridge.mm:
               * WebKit.order:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@28411 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4cfcb8ae
  2. 08 Nov, 2007 1 commit
    • darin@apple.com's avatar
      WebCore: · 02405e32
      darin@apple.com authored
              Reviewed by Steve.
      
              - cut down on notImplemented() functions on Windows
      
              * bridge/AXObjectCache.h: Put #if around the accessibility
              global.
      
              * bridge/win/FrameWin.cpp: (WebCore::Frame::setNeedsReapplyStyles):
              Moved here from TemporaryLinkStubs.
      
              * dom/Document.cpp: (WebCore::Document::lastModified): Re-implemented
              using the ResourceResponse that's now available from the DocumentLoader.
      
              * editing/JSEditor.cpp: (execTranspose): Changed to call transpose() on
              the Editor instead of the obsolete one on the Frame.
      
              * loader/DocumentLoader.h: Removed getResponseModifiedHeader.
              * loader/FrameLoader.h: Removed overrideMediaType.
      
              * loader/gtk/DocumentLoaderGtk.cpp: Removed.
              * loader/mac/DocumentLoaderMac.mm: Removed.
              * loader/qt/DocumentLoaderQt.cpp: Removed.
      
              * page/Frame.cpp: Removed transpose.
              * page/Frame.h: Ditto.
              * page/FrameView.h: Removed updateBorder.
              * page/gtk/FrameGtk.cpp: Removed issueTransposeCommand.
              * page/mac/FrameMac.mm: Ditto.
              * page/mac/WebCoreFrameBridge.h: Removed issueTransposeCommand and
              overrideMediaType.
              * page/qt/FrameQt.cpp: Removed issueTransposeCommand.
      
              * platform/gtk/TemporaryLinkStubs.cpp: Removed gAccessibilityEnabled.
              * platform/qt/TemporaryLinkStubs.cpp: Ditto.
              * platform/win/TemporaryLinkStubs.cpp: Removed or moved all but 3 of the stubs.
              * platform/wx/TemporaryLinkStubs.cpp: Removed gAccessibilityEnabled,
              issueTransposeCommand, and overrideMediaType.
      
              * platform/network/cf/ResourceHandleCFNet.cpp:
              (WebCore::ResourceHandle::loadsBlocked): Moved here from TemporaryLinkStubs.
              (WebCore::ResourceHandle::willLoadFromCache): Ditto.
              * platform/win/GraphicsContextWin.cpp:
              (WebCore::GraphicsContextPlatformPrivate::clip): Ditto.
              * platform/win/ScrollViewWin.cpp: (WebCore::ScrollView::inWindow): Ditto.
              * platform/win/SystemTimeWin.cpp: (WebCore::userIdleTime): Ditto.
              * platform/win/WidgetWin.cpp: (WebCore::Widget::setIsSelected): Ditto.
      
              * WebCore.pro: Updated for removed files.
              * WebCore.xcodeproj/project.pbxproj: Updated for removed file.
      
      WebKit/mac:
      
              Reviewed by Steve.
      
              - removed some unused WebCore bridge methods
      
              * WebCoreSupport/WebFrameBridge.mm: Removed issueTransposeCommand and overrideMediaType.
      
              * WebCoreSupport/WebFrameLoaderClient.mm:
              (WebFrameLoaderClient::overrideMediaType): Changed to call WebView directly instead of
              using the bridge object.
      
      WebKit/win:
      
              Reviewed by Steve.
      
              * Interfaces/IWebUIDelegate.idl: Added the functions needed below.
              * WebChromeClient.cpp:
              (WebChromeClient::setMenubarVisible): Eliminated the notImplemented()
              here by calling through the UI delegate.
              (WebChromeClient::menubarVisible): Ditto.
              (WebChromeClient::runDatabaseSizeLimitPrompt): Ditto.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@27598 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      02405e32
  3. 03 Nov, 2007 1 commit
    • darin@apple.com's avatar
      JavaScriptCore: · a7c3b87f
      darin@apple.com authored
              Reviewed by Maciej.
      
              - http://bugs.webkit.org/show_bug.cgi?id=15821
                remove unused PCRE features for speed
      
              A first step toward removing the PCRE features we don't use.
              This gives a 0.8% speedup on SunSpider, and a 6.5% speedup on
              the SunSpider regular expression test.
      
              Replaced the public interface with one that doesn't use the
              name PCRE. Removed code we don't need for JavaScript and various
              configurations we don't use. This is in preparation for still
              more changes in the future. We'll probably switch to C++ and
              make some even more significant changes to the regexp engine
              to get some additional speed.
      
              There's probably additional unused stuff that I haven't
              deleted yet.
      
              This does mean that our PCRE is now a fork, but I think that's
              not really a big deal.
      
              * JavaScriptCore.exp: Remove the 5 old entry points and add
              the 3 new entry points for WebCore's direct use of the regular
              expression engine.
      
              * kjs/config.h: Remove the USE(PCRE16) define. I decided to flip
              its sense and now there's a USE(POSIX_REGEX) instead, which should
              probably not be set by anyone. Maybe later we'll just get rid of it
              altogether.
      
              * kjs/regexp.h:
              * kjs/regexp.cpp:
              (KJS::RegExp::RegExp): Switch to new jsRegExp function names and
              defines. Cut down on the number of functions used.
              (KJS::RegExp::~RegExp): Ditto.
              (KJS::RegExp::match): Ditto.
      
              * pcre/dftables.c: (main): Get rid of ctype_letter and ctype_meta,
              which are unused.
      
              * pcre/pcre-config.h: Get rid of EBCIDIC, PCRE_DATA_SCOPE, const,
              size_t, HAVE_STRERROR, HAVE_MEMMOVE, HAVE_BCOPY, NEWLINE,
              POSIX_MALLOC_THRESHOLD, NO_RECURSE, SUPPORT_UCP, SUPPORT_UTF8,
              and JAVASCRIPT. These are all no longer configurable in our copy
              of the library.
      
              * pcre/pcre.h: Remove the macro-based kjs prefix hack, the PCRE
              version macros, PCRE_UTF16, the code to set up PCRE_DATA_SCOPE,
              the include of <stdlib.h>, and most of the constants and
              functions defined in this header. Changed the naming scheme to
              use a JSRegExp prefix rather than a pcre prefix. In the future,
              we'll probably change this to be a C++ header.
      
              * pcre/pcre_compile.c: Removed all unused code branches,
              including many whole functions and various byte codes.
              Kept changes outside of removal to a minimum.
              (check_escape):
              (first_significant_code):
              (find_fixedlength):
              (find_recurse):
              (could_be_empty_branch):
              (compile_branch):
              (compile_regex):
              (is_anchored):
              (is_startline):
              (find_firstassertedchar):
              (jsRegExpCompile): Renamed from pcre_compile2 and changed the
              parameters around a bit.
              (jsRegExpFree): Added.
      
              * pcre/pcre_exec.c: Removed many unused opcodes and variables.
              Also started tearing down the NO_RECURSE mechanism since it's
              now the default. In some cases there were things in the explicit
              frame that could be turned into plain old local variables and
              other small like optimizations.
              (pchars):
              (match_ref):
              (match): Changed parameters quite a bit since it's now not used
              recursively.
              (jsRegExpExecute): Renamed from pcre_exec.
      
              * pcre/pcre_internal.h: Get rid of PCRE_DEFINITION, PCRE_SPTR,
              PCRE_IMS, PCRE_ICHANGED, PCRE_NOPARTIAL, PCRE_STUDY_MAPPED,
              PUBLIC_OPTIONS, PUBLIC_EXEC_OPTIONS, PUBLIC_DFA_EXEC_OPTIONS,
              PUBLIC_STUDY_OPTIONS, MAGIC_NUMBER, 16 of the opcodes,
              _pcre_utt, _pcre_utt_size, _pcre_try_flipped, _pcre_ucp_findprop,
              and _pcre_valid_utf8. Also moved pcre_malloc and pcre_free here.
      
              * pcre/pcre_maketables.c: Changed to only compile in dftables.
              Also got rid of many of the tables that we don't use.
      
              * pcre/pcre_tables.c: Removed the unused Unicode property tables.
      
              * pcre/pcre_ucp_searchfuncs.c: Removed everything except for
              _pcre_ucp_othercase.
      
              * pcre/pcre_xclass.c: (_pcre_xclass): Removed uneeded support
              for classes based on Unicode properties.
      
              * wtf/FastMallocPCRE.cpp: Removed unused bits. It would be good
              to eliminate this completely, but we need the regular expression
              code to be C++ first.
      
              * pcre/pcre_fullinfo.c:
              * pcre/pcre_get.c:
              * pcre/ucp.h:
              Files that are no longer needed. I didn't remove them with this
              check-in, because I didn't want to modify all the project files.
      
      WebCore:
      
              Reviewed by Maciej.
      
              - WebCore part of http://bugs.webkit.org/show_bug.cgi?id=15821
                remove unused PCRE features for speed
      
              * page/Frame.cpp: (WebCore::Frame::matchLabelsAgainstElement):
              * page/mac/FrameMac.mm: (WebCore::Frame::matchLabelsAgainstElement):
              Remove use of "[[:digit:]]" syntax. This hasn't worked for some time.
              Use "\d" instead.
      
              * platform/RegularExpression.h: Remove the unused cap function. We can
              add it back later if we find we need it.
              * platform/RegularExpression.cpp:
              (WebCore::RegularExpression::Private::compile): Update for JavaScriptCore
              regular expression entry point changes.
              (WebCore::RegularExpression::Private::~Private): Ditto.
              (WebCore::RegularExpression::match): Remove the code to set PCRE_NOTBOL.
              This means that regular expressions with metacharactesr like ^ in them
              won't work any more with non-whole-string searches, but we don't use
              any regular expressions like that.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@27419 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a7c3b87f
  4. 21 Sep, 2007 1 commit
    • thatcher's avatar
      WebCore: · 10840e54
      thatcher authored
              Reviewed by Darin.
      
              <rdar://problem/5491013> REGRESSION: -[WebView windowScriptObject] returns a dummy object or nil if a page hasn't loaded
      
              Calling -[WebView windowScriptObject] before the page loads would give you nil. This behavior didn't match Tiger.
              The API behavior in Tiger let you get the window script object once and keep ahold of it as long as you needed it.
              The window object would remain valid even after page loads. This change restores the Tiger behavior.
      
              <rdar://problem/5495790> NULL dereference crash beneath Bindings::RootObject::interpreter when saving Dashcode document
      
              The changes to WebScriptObject's _isSafeScript call also fixed the crash in Dashcode.
      
              * bindings/objc/WebScriptObject.mm:
              (-[WebScriptObject _setOriginRootObject:andRootObject:]): New method used to update the the root objects,
              so the WebScriptObject can still be used after a page load.
              (-[WebScriptObject _isSafeScript]): Call [self _rootObject] instead of accessing the data member directly.
              DOMNode has an override for the _rootObject method, and it can return 0 when _private->_rootObject
              is non-zero. We would return YES here when it wasn't safe and later crash with my modified layout tests.
              Checking _rootObject first prevents other calls sites from needing to check for a valid root object,
              this fixed the Dashcode crash.
              (-[WebScriptObject _imp]): Ditto.
      
              * bindings/objc/WebScriptObjectPrivate.h: Add _setOriginRootObject:andRootObject:.
      
              * loader/FrameLoader.cpp:
              (WebCore::FrameLoader::clear): Call the renamed clearScriptObjects function.
              (WebCore::FrameLoader::dispatchWindowObjectAvailable): Some gratuitous code cleanup.
      
              * page/Frame.cpp:
              (WebCore::Frame::clearScriptObjects): Renamed cleanupScriptObject to clearScriptObjects.
              Call clearPlatformScriptObjects last so m_bindingRootObject is already NULL.
              (WebCore::Frame::windowScriptNPObject): Hold a JSLock before accessing the window. This
              change is unrelated to the bug, but should be fixed.
      
              * page/mac/FrameMac.mm:
              (WebCore::Frame::windowScriptObject): Return a script object even if the interpreter is NULL.
              This resotres the Tiger behavior of always being able to access the window object.
              (WebCore::Frame::clearPlatformScriptObjects): Keep the window script object around, and update
              the root objects for the window script object.
      
              * page/Frame.h: Rename cleanupScriptObject to clearScriptObjects.
              * page/FramePrivate.h: Use a RetainPtr for m_windowScriptObject.
      
      WebKitTools:
      
              Reviewed by Darin.
      
              <rdar://problem/5491013> REGRESSION: -[WebView windowScriptObject] returns a dummy object or nil if a page hasn't loaded (breaks EA Sports Online)
      
              Assert that the -[WebScriptObject JSObject] return value is only NULL for non-window objects.
              This is tested by plugins/root-object-premature-delete-crash.html.
      
              * DumpRenderTree/mac/ObjCController.m:
              (-[ObjCController accessStoredWebScriptObject]):
      
      LayoutTests:
      
              Reviewed by Darin.
      
              <rdar://problem/5491013> REGRESSION: -[WebView windowScriptObject] returns a dummy object or nil if a page hasn't loaded (breaks EA Sports Online)
      
              Updated results to show the didClearWindowScriptObject delegate call. Tweaked plugins/root-object-premature-delete-crash.html
              to test a non-window script object half the time. This change works with a change to DumpRenderTree.
      
              * http/tests/loading/empty-subframe-expected.txt:
              * http/tests/loading/simple-subframe-expected.txt:
              * plugins/root-object-premature-delete-crash.html:
              * webarchive/loading/test-loading-archive-expected.txt:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@25697 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      10840e54
  5. 13 Sep, 2007 1 commit
    • darin's avatar
      WebCore: · ead9a459
      darin authored
              Reviewed by Oliver.
      
              - fix <rdar://problem/5470457> REGRESSION: Input method inline hole is mishandled in text
                <input> elements with maxlength limit
      
              * editing/Editor.h: Moved MarkedTextUnderline here and renamed it CompositionUnderline.
              Moved the rest of the marked text API here and used the term that will be more familiar
              to those on platforms other than Macintosh, "composition". This helps prevent confusion
              with the other kinds of mark -- the emacs "mark" and spelling/grammar marks. Also
              cleaned up the conditionals a bit for the Macintosh-specific parts of this header.
      
              * editing/Editor.cpp:
              (WebCore::Editor::Editor): Updated for name change.
              (WebCore::Editor::clear): Added. To be called by FrameLoader::clear().
              (WebCore::Editor::insertTextWithoutSendingTextEvent): Removed code to make inserted
              text replace the marked text range -- we now deal with this explicitly by not
              calling this function to replace marked text. Also removed unneeded code that was
              specific to the use of this to replace the marked text.
              (WebCore::Editor::selectComposition): Renamed from selectMarkedText. Updated since
              the composition range is not stored as a Range.
              (WebCore::Editor::confirmComposition): Added. To be called when changing a composition
              into actual text. Unlike the old code path, deletes the composition first, then inserts
              the text, triggering the normal insertion code path and events. This is helpful because
              it means the inserted text will be truncated by the <input> element, for example.
              (WebCore::Editor::confirmCompositionWithoutDisturbingSelection): Added.
              (WebCore::Editor::setComposition): Added. To be called when changing the composition.
              Takes parameters for the underlines and selection. Unlike the old code path, this passes
              a flag down that indicates the inserted text is part of a composition. This is helpful
              because we don't send the event that will cause the <input> element to do truncation.
              It's also a better API for future improvements to our input method handling.
              (WebCore::Editor::revealSelectionAfterEditingOperation): Updated for name change.
              (WebCore::Editor::setIgnoreCompositionSelectionChange): Ditto.
              (WebCore::Editor::compositionRange): Added. Needed now that the composition is not
              stored as a Range.
              (WebCore::Editor::getCompositionSelection): Added.
      
              * editing/TypingCommand.h:
              * editing/TypingCommand.cpp: (WebCore::TypingCommand::insertText):
              Added an insertedTextIsComposition parameter, and don't send the BeforeTextInsertedEvent
              if it's true.
      
              * loader/FrameLoader.cpp: (WebCore::FrameLoader::clear): Replaced the Macintosh-specific
              call to setMarkedTextRange with a call to the new Editor::clear().
      
              * page/Frame.h:
              * page/Frame.cpp:
              * page/FramePrivate.h:
              * page/mac/FrameMac.mm:
              Removed the marked text code. It was streamlined and moved to Editor, except for the
              Mac-specific code, which was moved into WebKit.
      
              * page/mac/WebCoreFrameBridge.h:
              * page/mac/WebCoreFrameBridge.mm: Removed some now-unneeded marked text code.
              (-[WebCoreFrameBridge markedTextNSRange]): Updated for name/API change.
      
              * rendering/InlineTextBox.h:
              * rendering/InlineTextBox.cpp:
              (WebCore::InlineTextBox::paint): Updated marked text code for name changes, and also
              streamlined the code a bit for the case where there is no composition.
              (WebCore::InlineTextBox::paintCompositionBackground): Name change.
              (WebCore::InlineTextBox::paintCompositionUnderline): Ditto.
      
              * rendering/RenderTextControl.h:
              * rendering/RenderTextControl.cpp:
              (WebCore::RenderTextControl::finishText): Added. Helper function shared by the
              (WebCore::RenderTextControl::text):
              (WebCore::getNextSoftBreak):
              (WebCore::RenderTextControl::textWithHardLineBreaks):
      
              * platform/CharacterNames.h: Added newlineCharacter.
      
              * dom/Range.h: Remove the now-unneeded version of toString that converts <br>
              elements into newlines.
              * dom/Range.cpp:
              (WebCore::Range::toString): Changed this to use a Vector<UChar> instead of
              a String so it will not have pathological reallocation performance, and removed
              the <br> feature.
              (WebCore::Range::pastEndNode): Made this return 0 when there is no start node.
              This bit of extra robustness guarantees you can't do a null dereference if the
              start node is 0 and the end node is not. Not sure this case really exists.
      
              * page/ContextMenuController.cpp: (ContextMenuController::contextMenuItemSelected):
              Removed a semi-bogus use of Range::toString(true). The right function to use here
              is plainText().
      
              * bridge/EditorClient.h: Removed obsolete markedTextAbandoned function.
      
              * WebCore.exp: Updated for above changes. 
      
      WebKit:
      
              Reviewed by Oliver.
      
              - fix <rdar://problem/5470457> REGRESSION: Input method inline hole is mishandled in text
                <input> elements with maxlength limit
      
              * WebView/WebHTMLView.mm:
              (-[WebHTMLView _selectionChanged]): Tweaked code a bit.
              (-[WebHTMLView markedRange]): Simplified logic, since markedTextNSRange works when there's
              no composition range.
              (-[WebHTMLView hasMarkedText]): Call directly to Editor instead of bridge.
              (-[WebHTMLView unmarkText]): Call new confirmComposition to make it clear that this is
              confirming text, not just unmarking it to discard it.
              (extractUnderlines): Added. Converts directly from an NSAttributedString to the
              CompositionUnderline vector that's used by WebCore.
              (-[WebHTMLView setMarkedText:selectedRange:]): Changed to use the new setComposition.
              (-[WebHTMLView insertText:]): Changed to use confirmComposition when appropriate, instead
              of relying on special behavior of Editor::insertText.
              (-[WebHTMLView _updateSelectionForInputManager]): Rewrote to use getCompositionSelection
              and confirmCompositionWithoutDisturbingSelection.
      
              * WebCoreSupport/WebEditorClient.h:
              * WebCoreSupport/WebEditorClient.mm:
              Removed obsolete markedTextAbandoned function.
      
      win:
      
              Reviewed by Oliver.
      
              - fix <rdar://problem/5470457> REGRESSION: Input method inline hole is mishandled in text
                <input> elements with maxlength limit
      
              * WebView.cpp:
              (WebView::resetIME): Change to use confirmCompositionWithoutDisturbingSelection.
              (WebView::updateSelectionForIME): Update for name changes, and to use new functions
              in Editor.
              (WebView::onIMEStartComposition): Removed unneeded call to unmarkText.
              (compositionToUnderlines): Removed startOffset parameter, since setComposition now
              handles this.
              (WebView::onIMEComposition): Changed to use confirmComposition and setComposition.
              Logic gets a lot cleaner.
              (WebView::onIMEEndComposition): Removed unneeded calls to Editor.
              (WebView::onIMERequestCharPosition): Updated for name changes.
      
      LayoutTests:
      
              Reviewed by Oliver.
      
              - updated test results changed by change in input manager logic
      
              * platform/mac/editing/input/firstrectforcharacterrange-styled-expected.txt:
              * platform/mac/editing/input/text-input-controller-expected.txt:
              * platform/mac/editing/input/wrapped-line-char-rect-expected.txt:
              Updated. Small changes in which delegate methods are called.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@25547 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ead9a459
  6. 06 Sep, 2007 1 commit
    • mjs's avatar
      Reviewed by Oliver Hunt. · 1ddce897
      mjs authored
              - fixed <rdar://problem/5455457> REGRESSION (9A527-9A535): Colloquy crash on launch in WebCoreScriptDebugger initWithDelegate (with announce.js plug-in installed)
      
              * page/mac/FrameMac.mm:
              (WebCore::Frame::windowScriptObject): Ensure that -[WebView
              windowScriptObject] and -[WebFrame windowObject] return null until
              the windowScriptObjectAvailable: delegate method is sent.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@25383 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1ddce897
  7. 21 Aug, 2007 1 commit
    • sullivan's avatar
      WebCore: · 124cc031
      sullivan authored
              Reviewed by Adam Roben
      
              WebCore part of fix for: 
              <rdar://problem/5417777> WebKit focus ring color no longer matches system focus rings
              
              Adele wrote the first version of this patch. No test cases added because I made sure the 
              layout tests are unaffected. Two additional bug fixes were made in passing, but neither 
              of them had any effect on any known real-world case, and both were too difficult to write 
              test cases for to be worthwhile.
      
              * WebCore.exp:
              added symbols for these new functions so WebKit can call them
              
              * WebCore.xcodeproj/project.pbxproj:
              updated for new file
              
              * platform/graphics/mac/ColorMac.h: Added.
              New file to hold the increasing amount of Mac-specific color stuff.
              
              * platform/graphics/Color.h:
              removed #if PLATFORM(MAC) code, which is now in ColorMac.h
              
              * platform/graphics/mac/ColorMac.mm:
              (WebCore::makeRGBAFromNSColor):
              new static function to convert an NSColor object to an RGBA32 struct
              (WebCore::colorFromNSColor):
              new public function to convert an NSColor object to a WebCore-style Color object
              (WebCore::focusRingColor):
              Uses (cached) systemFocusRingColor instead of hardwired values, unless usesTestModeFocusRingColor is true,
              in which case it uses the old hardwired color
              (WebCore::usesTestModeFocusRingColor):
              returns value of global var
              (WebCore::setUsesTestModeFocusRingColor):
              sets value of global var
              (+[WebCoreControlTintObserver controlTintDidChange]):
              Uses [NSColor keyboardFocusIndicatorColor] to set systemFocusRingColor; don't compile if COLORMATCH_EVERYTHING
              is set since we don't know what it would take to satisfy this state.
      
              * bindings/objc/DOMRGBColor.mm:
              now includes ColorMac.h to account for moved declarations
              * bridge/mac/WebCoreAXObject.mm:
              ditto
              
              * page/mac/FrameMac.mm:
              (WebCore::convertAttributesToUnderlines):
              now uses new colorFromNSColor. The old code was swapping G & B, but it didn't matter in practice because
              this function is only used to convert the color of an input manager's marked text underline, which is always black
              
              * page/mac/WebCoreFrameBridge.mm:
              (-[WebCoreFrameBridge setBaseBackgroundColor:]):
              now uses new colorFromNSColor. The old code was swapping G & B, but it didn't matter in practice because
              this function is only called with a grayscale color perhaps containing an alpha value
                      
              * rendering/RenderView.cpp:
              (WebCore::RenderView::paintBoxDecorations):
              just updated a comment
      
      WebKit:
      
              Reviewed by Adam Roben
              
              WebKit part of fix for: 
              <rdar://problem/5417777> WebKit focus ring color no longer matches system focus rings
      
              * Misc/WebNSAttributedStringExtras.mm:
              now includes <WebCore/ColorMac.h> to account for moved declaration
              * WebView/WebFrame.mm:
              ditto
              
              * WebView/WebViewPrivate.h:
              * WebView/WebView.mm:
              (+[WebView _setUsesTestModeFocusRingColor:]):
              new SPI, calls through to new WebCore function. This is used by DumpRenderTree to make sure the
              focus ring color is always the same when performing layout tests, regardless of OS X version.
              (+[WebView _usesTestModeFocusRingColor]):
              new SPI, calls through to new WebCore function
      
      WebKitTools:
      
              Reviewed by Adam Roben
      
              * DumpRenderTree/DumpRenderTree.m:
              (runTest):
              call new +[WebView _setUsesTestModeFocusRingColor:YES] so we get the same focus ring colors
              in layout tests on Tiger and Leopard
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@25169 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      124cc031
  8. 10 Aug, 2007 1 commit
    • thatcher's avatar
      JavaScriptCore: · 43a079ef
      thatcher authored
              Reviewed by Adam.
      
              <rdar://problem/5394449> Stop using some Carbon UI APIs for 64 bit
      
              Disable the NPAPI for 64-bit on Mac OS X.
      
              * Configurations/JavaScriptCore.xcconfig: Use the 64-bit export file.
              * JavaScriptCore.xcodeproj/project.pbxproj: Create a 64-bit export file
              that filters out the NPN fnctions.
              * bindings/NP_jsobject.cpp: #ifdef out this for 64-bit on Mac OS X
              * bindings/NP_jsobject.h: Ditto.
              * bindings/c/c_class.cpp: Ditto.
              * bindings/c/c_class.h: Ditto.
              * bindings/c/c_instance.cpp: Ditto.
              * bindings/c/c_instance.h: Ditto.
              * bindings/c/c_runtime.cpp: Ditto.
              * bindings/c/c_runtime.h: Ditto.
              * bindings/c/c_utility.cpp: Ditto.
              * bindings/c/c_utility.h: Ditto.
              * bindings/npapi.h: Ditto.
              * bindings/npruntime.cpp: Ditto.
              * bindings/npruntime.h: Ditto.
              * bindings/npruntime_impl.h: Ditto.
              * bindings/npruntime_priv.h: Ditto.
              * bindings/runtime.cpp:
              (KJS::Bindings::Instance::createBindingForLanguageInstance):
               don't creat an NPObject on Mac OS X in 64-bit.
      
      WebCore:
      
              Reviewed by Adam.
      
              <rdar://problem/5394449> Stop using some Carbon UI APIs for 64 bit
      
              Disable NPObject use in 64-bit on Mac OS X.
      
              * Configurations/WebCore.xcconfig: Add a framework search path to the sub-framworks of Carbon.
              * WebCore.xcodeproj/project.pbxproj: Filter out the Frame::windowScriptNPObject() symbol in 64-bit.
              * bindings/objc/DOM.mm:
              (-[DOMElement _NPObject]): Return null in 64-bit.
              * config.h: Set WTF_USE_NPOBJECT to 0 in 64-bit Mac OS X.
              * page/Frame.cpp:
              (WebCore::Frame::cleanupScriptObjects): Add more #if USE(NPOBJECT) blocks where needed.
              * page/Frame.h: Ditto.
              * page/mac/FrameMac.mm:
              (WebCore::Frame::createScriptInstanceForWidget): Ditto.
              * page/mac/WebCoreFrameBridge.h: Ditto.
              * page/mac/WebCoreFrameBridge.mm: Ditto.
      
      WebKit:
      
              Reviewed by Adam.
      
              <rdar://problem/5394449> Stop using some Carbon UI APIs for 64 bit
      
              Disable NPObject use in 64-bit on Mac OS X. Also generate the 64-bit export file.
      
              * Configurations/WebKit.xcconfig: Point to the generated 64-bit export file.
              * Plugins/WebBasePluginPackage.h:
              * Plugins/npfunctions.h: #ifdef out this header in 64-bit on Mac OS X.
              * WebKit.LP64.exp: Removed.
              * WebKit.xcodeproj/project.pbxproj: Generate the the 64-bit export file.
              * WebKitPrefix.h: Define WTF_USE_NPOBJECT.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@25000 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      43a079ef
  9. 18 Jul, 2007 1 commit
    • weinig's avatar
      Rubber-stamped by Adam Roben. · e791808f
      weinig authored
              Rename csshelper.h, csshelper.cpp, cssparser.h, cssparser.cpp,
              cssstyleselector.h, and cssstyleselector.cpp to be CamelCase.
      
              * WebCore.pro:
              * WebCore.vcproj/WebCore.vcproj:
              * bindings/objc/DOM.mm:
              * bindings/objc/DOMHTML.mm:
              * css/CSSGrammar.y:
              * css/CSSMediaRule.cpp:
              * css/CSSMutableStyleDeclaration.cpp:
              * css/CSSPrimitiveValue.cpp:
              * css/CSSStyleSheet.cpp:
              * css/MediaList.cpp:
              * css/MediaQueryExp.cpp:
              * css/csshelper.cpp: Removed.
              * css/csshelper.h: Removed.
              * css/CSSHelper.cpp: Copied from css/csshelper.cpp.
              * css/CSSHelper.h: Copied from css/csshelper.h.
              * css/cssparser.cpp: Removed.
              * css/cssparser.h: Removed.
              * css/CSSParser.cpp: Copied from css/cssparser.cpp.
              * css/CSSParser.h: Copied from css/cssparser.h.
              * css/cssstyleselector.cpp: Removed.
              * css/cssstyleselector.h: Removed.
              * css/CSSStyleSelector.cpp: Copied from css/cssstyleselector.cpp.
              * css/CSSStyleSelector.h: Copied from css/cssstyleselector.h.
              * dom/Document.cpp:
              * dom/Element.cpp:
              * dom/StyledElement.cpp:
              * editing/ApplyStyleCommand.cpp:
              * editing/markup.cpp:
              * html/CanvasGradient.cpp:
              * html/CanvasRenderingContext2D.cpp:
              * html/CanvasStyle.cpp:
              * html/HTMLAnchorElement.cpp:
              * html/HTMLBaseElement.cpp:
              * html/HTMLBodyElement.cpp:
              * html/HTMLDocument.cpp:
              * html/HTMLEmbedElement.cpp:
              * html/HTMLFormElement.cpp:
              * html/HTMLFrameElementBase.cpp:
              * html/HTMLImageElement.cpp:
              * html/HTMLImageLoader.cpp:
              * html/HTMLLinkElement.cpp:
              * html/HTMLObjectElement.cpp:
              * html/HTMLOptGroupElement.cpp:
              * html/HTMLOptionElement.cpp:
              * html/HTMLSelectElement.cpp:
              * html/HTMLTableElement.cpp:
              * html/HTMLTablePartElement.cpp:
              * html/HTMLTokenizer.cpp:
              * ksvg2/css/SVGCSSParser.cpp:
              * ksvg2/css/SVGCSSStyleSelector.cpp:
              * ksvg2/svg/SVGAElement.cpp:
              * ksvg2/svg/SVGClipPathElement.cpp:
              * ksvg2/svg/SVGGradientElement.cpp:
              * ksvg2/svg/SVGLength.cpp:
              * ksvg2/svg/SVGMaskElement.cpp:
              * ksvg2/svg/SVGStyledElement.cpp:
              * ksvg2/svg/SVGUseElement.cpp:
              * page/DOMWindow.cpp:
              * page/mac/FrameMac.mm:
              * page/mac/WebCoreFrameBridge.mm:
              * rendering/HitTestResult.cpp:
              * rendering/RenderObject.cpp:
              * rendering/RenderStyle.cpp:
              * rendering/RenderThemeMac.mm:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@24415 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e791808f
  10. 16 Jul, 2007 1 commit
    • aroben's avatar
      Replace Frame::print with Chrome::print and remove -[WebFrameBridge print] · a64dcca8
      aroben authored
      WebCore:
      
              Replace Frame::print with Chrome::print
      
              This also adds a Frame* parameter to Chrome::print and
              ChromeClient::print so that it knows which Frame to print.
      
              Reviewed by Darin.
      
              All tests pass.
      
              * bindings/js/kjs_window.cpp:
              (KJS::WindowFunc::callAsFunction): Call Chrome::print.
              * editing/JSEditor.cpp: Ditto.
      
              * bridge/win/FrameWin.cpp: Removed Frame::print.
              * page/Frame.h: Ditto.
              * page/mac/FrameMac.mm: Ditto.
              * page/qt/FrameQt.cpp: Ditto.
              * platform/gdk/FrameGdk.cpp: Ditto.
              * page/mac/WebCoreFrameBridge.h: Removed -print.
      
              * page/Chrome.cpp: Added Frame* parameter to Chrome::print and pass it
              up to the ChromeClient.
              * page/Chrome.h: Ditto.
              * page/ChromeClient.h: Ditto.
              * platform/gdk/TemporaryLinkStubs.cpp: Ditto.
              * platform/graphics/svg/SVGImageEmptyClients.h: Ditto.
      
      WebKit:
      
              Move printing from WebFrameBridge to WebChromeClient
      
              Reviewed by Darin.
      
              * WebCoreSupport/WebChromeClient.h: Updated for ChromeClient changes.
              * WebCoreSupport/WebChromeClient.mm:
              (WebChromeClient::print): Moved code from WebFrameBridge.
              * WebCoreSupport/WebFrameBridge.mm: Removed -print.
      
      WebKit/win:
      
              Updated WebChromeClient for ChromeClient changes.
      
              Reviewed by Darin.
      
              * WebChromeClient.cpp:
              (WebChromeClient::print): Added a Frame* parameter.
              * WebChromeClient.h: Ditto.
      
      WebKitQt:
      
              Updated ChromeClientQt for ChromeClient changes.
      
              Reviewed by Darin.
      
              * WebCoreSupport/ChromeClientQt.cpp:
              (WebCore::ChromeClientQt::print): Added a Frame* parameter.
              * WebCoreSupport/ChromeClientQt.h: Ditto.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@24330 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a64dcca8
  11. 06 Jul, 2007 1 commit
    • oliver's avatar
      WebCore: · 4c510c0f
      oliver authored
              Reviewed by Maciej.
      
              Pulled a number of methods from WebKit and WebCoreFrameBridge into 
              C++ objects.
      
              * WebCore.exp:
              * WebCore.xcodeproj/project.pbxproj:
              * editing/Editor.cpp:
              (WebCore::Editor::replaceMarkedText):
                  From -[WebCoreFrameBridge replaceMarkedTextWithText:]
              * editing/Editor.h:
              * page/Frame.cpp:
              (WebCore::Frame::setMarkedTextRange):
                  Pulled platform independent logic from Mac specific implementation
              (WebCore::Frame::selectRangeInMarkedText):
                  Converted from -[WebHTMLView _selectRangeInMarkedText:]
              * page/Frame.h:
              * page/mac/FrameMac.mm:
              (WebCore::Frame::setMarkedTextRange):
                  Now only does Mac specific logic when manipulating initial
                  NSAttributedString
              * page/mac/WebCoreFrameBridge.h:
              * page/mac/WebCoreFrameBridge.mm:
                  Removed -[WebCoreFrameBridge replaceMarkedTextWithText:]
      
      WebKit:
      
              Reviewed by Maciej.
      
              <rdar://problem/5318756> Need to refactor IM/Marked text code to share logic with windows.
      
              Moved a number of methods from WebHTMLView into WebCore.
              Replaced bridge methods with calls directly into WebCore objects.
      
              * WebKit.xcodeproj/project.pbxproj:
              * WebView/WebHTMLView.mm:
              (-[WebHTMLView setMarkedText:selectedRange:]):
                Now calls WebCore object methods directly, rather than calling 
                via the bridge.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@24085 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4c510c0f
  12. 05 Jul, 2007 1 commit
    • sullivan's avatar
      WebCore: · 4ea5e41a
      sullivan authored
              Reviewed by Adam
      
              - WebCore part of fix for <rdar://problem/5315033>
      
              * rendering/RenderObject.h:
              replaced PaintRestrictionSelectionOnlyWhiteText with PaintRestrictionSelectionOnlyBlackText
              (WebCore::RenderObject::PaintInfo::PaintInfo):
              replaced forceWhiteText with forceBlackText
      
              * rendering/RenderObject.cpp:
              (WebCore::RenderObject::addLineBoxRects):
              added a useSelectionHeight parameter, which defaults to false; this method is unimplemented
              at this level so this has no effect.
      
              * rendering/RenderText.h:
              * rendering/RenderText.cpp:
              (WebCore::RenderText::addLineBoxRects):
              added a useSelectionHeight parameter, which defaults to false. If true, use the vertical position
              and height returned by selectionRect rather than replacing it with the more tight-fitting position
              and height of the line box.
      
              * dom/Range.h:
              * dom/Range.cpp:
              (WebCore::Range::addLineBoxRects):
              added a useSelectionHeight parameter, which defaults to false. Passes this along to RenderObject.        
      
              * page/Frame.h:
              renamed parameter to selectionImage
              * page/Frame.cpp:
              (WebCore::Frame::selectionTextRects):
              pass true for addLineBoxRects new useSelectionHeight parameter, so the rects returned by this new
              method will match the height that the selection would be painted here
              (WebCore::Frame::paint):
              updated for white->black name changes
              
              * page/mac/FrameMac.mm:
              (WebCore::Frame::selectionImage):
              updated for white->black name changes
              
              * rendering/InlineFlowBox.cpp:
              (WebCore::InlineFlowBox::paintTextDecorations):
              updated for white->black name changes
      
              * rendering/RenderLayer.cpp:
              (WebCore::RenderLayer::paintLayer):
              updated for white->black name changes
      
              * rendering/InlineTextBox.cpp:
              (WebCore::InlineTextBox::paint):
              updated for white->black name changes, and actually use black instead of white. This was the goal
              of all the name changes.
      
      WebKit:
      
              Reviewed by Adam
              
              - WebKit part of fix for <rdar://problem/5315033>
      
              * WebView/WebDocumentPrivate.h:
              new selectionImageForcingBlackText: method. selectionImageForcingWhiteText: is no longer used and was never
              in an official release of WebKit, so it could be removed, except that doing so would cause trouble for people
              using nightly WebKit with Safari 3.0 beta. So I left it in, but made it just force black text instead of
              white text, which will look different for those nightly WebKit/Safari 3.0 beta people but not break anything.
              
              * Misc/WebSearchableTextView.m:
              (-[WebSearchableTextView selectionImageForcingBlackText:]):
              new unimplemented protocol method for this obsolete class
              
              * WebView/WebHTMLView.mm:
              (-[WebHTMLView selectionImageForcingBlackText:]):
              calls through to WebCore the way selectionImageForcingWhiteText: used to
              (-[WebHTMLView selectionImageForcingWhiteText:]):
              now just calls selectionImageForcingBlackText:, thus not working as you would expect from the name
              
              * WebView/WebPDFView.mm:
              (-[WebPDFView selectionImageForcingBlackText:]):
              guts of old selectionImageForcingWhiteText:, but with black substituted for white
              (-[WebPDFView selectionImageForcingWhiteText:]):
              now just calls selectionImageForcingBlackText:, thus not working as you would expect from the name
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@24041 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4ea5e41a
  13. 04 Jul, 2007 2 commits
    • aliceli1's avatar
      Reviewed by Adam. · 7f9f8407
      aliceli1 authored
              Fixed <rdar://problem/5225119> support smart pasting on Windows
      
              * WebCore.vcproj/WebCore.vcproj:
              * WebCore.xcodeproj/project.pbxproj:
                  Added new files
              * editing/SmartReplace.cpp: Added.
              (WebCore::isCharacterSmartReplaceExempt):
                  Added non-CF implementation placeholder
              * editing/SmartReplace.h: Added.
              * editing/SmartReplaceCF.cpp: Added.
              (WebCore::getSmartSet):
              (WebCore::isCharacterSmartReplaceExempt):
                  Added new implementation
      
              * bridge/win/FrameWin.cpp:
              * page/Frame.h:
              * page/mac/FrameMac.mm:
                  Removed old declaration and implementation
      
              * editing/ReplaceSelectionCommand.cpp:
              (WebCore::ReplaceSelectionCommand::doApply):
                  Changed to call the new function instead of old
      
              * page/mac/WebCoreFrameBridge.h:
              * page/mac/WebCoreFrameBridge.mm:
                  Removed old declaration and implementation
              (-[WebCoreFrameBridge smartInsertForString:replacingRange:beforeString:afterString:]):
                  Changed to call the new function instead of old
      
              * platform/win/PasteboardWin.cpp:
              (WebCore::Pasteboard::Pasteboard):
                  Register new clipboard format
              (WebCore::Pasteboard::writeSelection):
                  Set data for smartpaste format on clipboard
              (WebCore::Pasteboard::canSmartReplace):
                  Added non-stub implementation
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@23986 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7f9f8407
    • thatcher's avatar
      Reenable some code for 64-bit now that <rdar://problem/5311640> and... · 9d002c57
      thatcher authored
      Reenable some code for 64-bit now that <rdar://problem/5311640> and <rdar://problem/5311690> are resolved.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@23985 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9d002c57
  14. 03 Jul, 2007 1 commit
  15. 01 Jun, 2007 1 commit
    • ggaren's avatar
      Reviewed by Beth Dakin. · ac7b19fe
      ggaren authored
              Fixed <rdar://problem/5238177> Continuing after hitting breakpoint doesn't 
              execute the next step.
              
              No test because the only code affected is the debugger, and none of the
              relevant API is exported.
              
              Reverted an accidental change in 21324 that caused originRootObject for
              the window object always to be 0. We could probably just remove the debugger's
              dependency on originRootObject, but I wanted to be safe.
      
              * page/mac/FrameMac.mm:
              (WebCore::Frame::windowScriptObject):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@21933 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ac7b19fe
  16. 25 May, 2007 1 commit
    • ggaren's avatar
      Reviewed by Darin Adler. · 6ad6e760
      ggaren authored
              Fixed a bug with Settings where a number of different objects held bare 
              Settings* data members, even though the Page owns the Settings object and 
              deletes it upon destruction.
      
              Added NULL checks since the Page can be deleted before the frame/document.
      
              * page/Settings.cpp: Removed reliance on setNeedsReapplyStylesForSettingsChange.
      
              * css/cssstyleselector.cpp: CSSStyleSelector was the worst offender. It 
              held a number of back pointers that were not guaranteed. I removed the 
              Settings*, Frame*, and FrameView* back pointers, but others could probably 
              go, too. I replaced them with a single Document* pointer, which is guaranteed
              because the Document owns the CSSStyleSelector.
      
              * page/Page.cpp: Removed setNeedsReapplyStylesForSettingsChange -- the 
              Settings object is now a proper subcontroller of Page, so it doesn't need
              to use a global table to find its page anymore. Also, this function
              confusingly implied that the Frames in a page can have heterogeneous settings,
              which is not true.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@21749 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6ad6e760
  17. 12 May, 2007 1 commit
  18. 11 May, 2007 1 commit
  19. 10 May, 2007 2 commits
    • adele's avatar
      LayoutTests: · eaa0055b
      adele authored
              Reviewed by Hyatt.
      
              Test for <rdar://problem/4100616> Doing a "find" in RSS doesn't scroll to result
      
              * fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.checksum: Added.
              * fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.png: Added.
              * fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.txt: Added.
              * fast/overflow/scroll-nested-positioned-layer-in-overflow.html: Added.
      
      WebCore:
      
              Reviewed by Hyatt.
      
              WebCore part of fix for <rdar://problem/4100616> Doing a "find" in RSS doesn't scroll to result
      
              Test: fast/overflow/scroll-nested-positioned-layer-in-overflow.html
      
              Merged visibleSelectionRect into selectionRect.  selectionRect() now takes an argument to determine
              whether or not to return a rect that clips to the visible content.  This change makes all of the implementations of selectionRect
              consistent by having them all consider the repaint rect when clipping to visible content.
      
              * page/Frame.cpp:
              (WebCore::Frame::revealSelection): Call selectionRect with clipToVisibleContent = false, so we can get a rect that's not visible to reveal.
              (WebCore::Frame::selectionRect): Added clipToVisibleContent argument, and merged visibleSelectionRect into this method.
              (WebCore::Frame::setIsActive): Use selectionRect instead of visibleSelectionRect.
              * page/Frame.h:
              * page/mac/FrameMac.mm: (WebCore::Frame::selectionImage): Update layout before creating the image.  Use selectionRect instead of visibleSelectionRect.
              * page/DragController.cpp: (WebCore::dragLocForSelectionDrag): Use selectionRect instead of visibleSelectionRect.
      
              * rendering/RenderBR.h: (WebCore::RenderBR::selectionRect): Updated argument.
              * rendering/RenderBlock.h: (WebCore::RenderBlock::selectionRect): ditto.
              * rendering/RenderSVGInlineText.cpp: (WebCore::RenderSVGInlineText::selectionRect): ditto.
              * rendering/RenderSVGInlineText.h: ditto.
              * rendering/RenderObject.h: 
              (WebCore::RenderObject::selectionRect): ditto.
              (WebCore::RenderObject::SelectionInfo::SelectionInfo): ditto.
              * rendering/RenderView.cpp:
              (WebCore::RenderView::selectionRect): ditto.
              (WebCore::RenderView::setSelection): ditto.
              * rendering/RenderView.h:
      
              * rendering/RenderText.h:
              * rendering/RenderText.cpp: (WebCore::RenderText::selectionRect): Only call computeAbsoluteRepaintRect when clipping to visible content.
              Otherwise, just adjust the rect to the correct position.
              * rendering/RenderListMarker.h:
              * rendering/RenderListMarker.cpp: (WebCore::RenderListMarker::selectionRect):
                To match what we do in RenderText, if we're trying to clip to visible content, just call computeAbsoluteRepaintRect.
              * rendering/RenderReplaced.h:
              * rendering/RenderReplaced.cpp: (WebCore::RenderReplaced::selectionRect): ditto.
      
              * rendering/RenderLayer.cpp: (WebCore::RenderLayer::scrollRectToVisible): Check for a parent layer at the beginning, so we can try to scroll all of our parent layers 
                first, before trying to scroll the top level view.  Also, don't try to scroll overflow layers that have -webkit-line-clamp restricting the height.
                This will prevent us from revealing text hidden by the slider in Safari RSS.
      
              * WebCore.exp: Update symbols for WebKit.
      
      WebKit:
      
              Reviewed by Hyatt.
      
              WebKit part of fix for <rdar://problem/4100616> Doing a "find" in RSS doesn't scroll to result
      
              Updated to use selectionRect instead of visibleSelectionRect.  selectionRect() now returns the visible rect by default.
      
              * WebView/WebHTMLView.mm:
              (-[WebHTMLView _lookUpInDictionaryFromMenu:]):
              (-[WebHTMLView selectionImageRect]):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@21387 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      eaa0055b
    • ggaren's avatar
      LayoutTests: · 54f8e1b6
      ggaren authored
              Reviewed by Maciej Stachowiak.
              
              Tests for more fix-ups to the WebScriptObject/WebScripting APIs, related to
              <rdar://problem/5140447> API for fetching JSGlobalContextRef from WebView 
              or WebFrame
      
              * fast/dom/wrapper-classes-expected.txt:
              * fast/dom/wrapper-classes.html: Added cases to test the wrapper classes
              for different data types sent across the JS/ObjC bridge.
              * fast/dom/wrapper-round-tripping-expected.txt: Added.
              * fast/dom/wrapper-round-tripping.html: Added. New test to verify that
              you can round-trip between a JSObjectRef and a WebScriptObject.
      
      WebCore:
      
              Reviewed by Maciej Stachowiak.
              
              More fix-ups to the WebScriptObject/WebScripting APIs, related to
              <rdar://problem/5140447> API for fetching JSGlobalContextRef from WebView 
              or WebFrame
      
              * bindings/objc/WebScriptObject.h: Fully specified the surprising rules for
              type conversion between JavaScript and ObjC.
              * bindings/objc/WebScriptObject.mm: Added up-call accessor to WebFrame.
              This is kind of stinky, but I'm OK with it because eventually all of this
              code should move up into WebKit.
              (+[WebScriptObject scriptObjectForJSObject:frame:]):
              (-[WebScriptObject valueForKey:]):
              (-[WebScriptObject JSObject]): 
                  - Added _rootObject check because if _rootObject returns NULL it means 
                  that _imp is no longer GC protected, so it's not safe to use. 
                  - Added _isSafeScript check because that's what WebScriptObject methods
                  typically do, even though the value of doing so isn't clear to me.
              * bindings/objc/WebScriptObjectPendingPublic.h: Added WebFrame* parameter
              to -scriptObjectForJSObject:. This is required to wrap JS objects that
              are not already in the wrapper cache. It would be nice to remove this
              limitation of WebScriptObject some day.
              * page/mac/FrameMac.mm:
              (WebCore::Frame::cleanupPlatformScriptObjects): Force removal of m_windowScriptObject
              from the cache, to avoid retrieving the m_windowScriptObject from the previous
              page on a new page load. (It would be non-functional in that case.)
      
      WebKitTools:
      
              Reviewed by Maciej Stachowiak.
              
              Added support for testing ObjC/JS type bridging.
              
              Added ASSERT that -JSObject returns nil when the underlying JSObject
              is no longer GC protected.
      
              * DumpRenderTree/DumpRenderTree.m:
              (returnThisCallback):
              (returnThisClass):
              (-[WaitUntilDoneDelegate webView:didClearWindowObject:forFrame:]):
              (+[LayoutTestController isSelectorExcludedFromWebScript:]):
              (+[LayoutTestController webScriptNameForSelector:]):
              (-[LayoutTestController accessStoredWebScriptObject]):
              (-[LayoutTestController testWrapperRoundTripping]):
              (-[LayoutTestController objCClassNameOf:]):
              (-[LayoutTestController objCObjectOfClass:]):
              * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@21354 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      54f8e1b6
  20. 08 May, 2007 1 commit
    • ggaren's avatar
      LayoutTests: · ec17dbf7
      ggaren authored
              Reviewed by Darin Adler.
      
              Added test to verify that you get back the same JS/ObjC wrapper when
              you access the same object twice.
      
              * fast/dom/wrapper-identity-expected.txt: Added.
              * fast/dom/wrapper-identity.html: Added.
      
      WebCore:
      
              Reviewed by Darin Adler.
              
              More fix-ups to the WebScriptObject/WebScripting APIs, related to
              <rdar://problem/5140447> API for fetching JSGlobalContextRef from WebView 
              or WebFrame
              
              1. Added -scriptObjectForJSObject: SPI so you can bridge back from JavaScriptCore
              to WebScriptObject.
              
              2. Fixed WebScriptObject bridging so that you always get the same WebScriptObject
              for a JSObject (like in the DOM). This makes -scriptObjectForJSObject: a
              lot more coherent as an API.
      
              * bindings/objc/DOMInternal.mm: Renamed wrapperCache to DOMWrapperCache
              to distinguish from the JSWrapperCache. Added typedef for readability.
              (WebCore::getDOMWrapper):
              (WebCore::addDOMWrapper):
              (WebCore::removeDOMWrapper):
              * bindings/objc/WebScriptObject.mm: Added JSWrapperCache, which works just
              like the DOMWrapperCache.
              (WebCore::getJSWrapper):
              (WebCore::addJSWrapper):
              (WebCore::removeJSWrapper):
              (WebCore::createJSWrapper):
              (+[WebScriptObject scriptObjectForJSObject:]): This is the new API. It attempts
              to return a specific DOM wrapper object, or, barring that, it returns a 
              generic WebScriptObject.
              (+[WebScriptObject scriptObjectForJSObject:originRootObject:rootObject:]):
              Added this method to support our old WebScriptObject security and leak 
              checking model, even though it doesn't work very well. 
              (-[WebScriptObject _setImp:originRootObject:rootObject:]):
              (-[WebScriptObject dealloc]):
              (-[WebScriptObject finalize]):
              (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
              * bindings/objc/WebScriptObjectPendingPublic.h:
              * bindings/objc/WebScriptObjectPrivate.h:
              * page/mac/FrameMac.mm:
              (WebCore::Frame::windowScriptObject): Changed to use the new API. This
              fixes a bug where the object sent to -windowScriptObjectAvailable: and returned
              from -windowScriptObject could not be round-tripped.
      
      WebKitTools:
      
              Reviewed by Darin Adler.
              
              Added support for testing ObjC object identity.
              
              Added ASSERT to verify that you can round-trip the object passed to you
              in -didClearWindowObject:forFrame:.
      
              * DumpRenderTree/DumpRenderTree.m:
              (-[WaitUntilDoneDelegate webView:didClearWindowObject:forFrame:]):
              (+[LayoutTestController isSelectorExcludedFromWebScript:]):
              (+[LayoutTestController webScriptNameForSelector:]):
              (-[LayoutTestController accessStoredWebScriptObject]):
              (-[LayoutTestController objCIdentityIsEqual::]):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@21324 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ec17dbf7
  21. 03 May, 2007 2 commits
  22. 16 Apr, 2007 2 commits
    • darin's avatar
      - get layout tests going again · 2a5e5d32
      darin authored
              * page/mac/FrameMac.mm: (WebCore::Frame::setUseSecureKeyboardEntry):
              Replace assertion with a runtime check. We can consider changing it back to
              an assertion some day, but it's not important.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20902 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2a5e5d32
    • darin's avatar
      WebCore: · 28399bcb
      darin authored
              Reviewed by John Sullivan.
      
              - fix http://bugs.webkit.org/show_bug.cgi?id=13303
                <rdar://problem/5126341> REGRESSION: controls in a background Safari window
                maintain active appearance if the address bar has focus (13303)
      
              - fix a related problem where elements could look focused in non-active windows
      
              - simplify secure keyboard entry logic in Frame::setIsActive
      
              * WebCore.exp: Add two new symbols for use by WebKit.
      
              * html/HTMLInputElement.cpp:
              (WebCore::HTMLInputElement::dispatchFocusEvent): Call setUseSecureKeyboardEntryWhenActive
              rather than calling setSecureKeyboardEntry directly -- does nothing if the frame is not active.
              (WebCore::HTMLInputElement::dispatchBlurEvent): Ditto.
      
              * page/Frame.cpp:
              (WebCore::Frame::setUseSecureKeyboardEntryWhenActive): Added. Calls
              setUseSecureKeyboardEntry only if the frame is active, but also stores away the state,
              so that the setIsActive function doesn't have to recompute it.
              (WebCore::Frame::setIsActive): Rewrote all the comments in the function. Removed the code
              to manage control tints, which are not based on the whether the frame is active but rather
              on AppKit's concept of whether the window should have "key appearance". Simplified the
              logic about when to call setUseSecureKeyboardEntry by using the value of
              m_useSecureKeyboardEntryWhenActive.
              (WebCore::FramePrivate::FramePrivate): Initialize m_useSecureKeyboardEntryWhenActive.
              * page/Frame.h: Made setSecureKeyboardEntry private and renamed it to
              setUseSecureKeyboardEntry, removed isSecureKeyboardEntry, and
              added a public setUseSecureKeyboardEntryWhenActive.
              * page/FramePrivate.h: Added m_useSecureKeyboardEntryWhenActive.
              * page/mac/FrameMac.mm: (WebCore::Frame::setUseSecureKeyboardEntry): Added an assertion,
              and removed isSecureKeyboardEntry().
      
              * page/FrameView.h: Added updateControlTints.
              * page/FrameView.cpp: (WebCore::FrameView::updateControlTints): Added. Code was moved
              here from setIsActive for two reasons: (1) it makes more sense in the view class, and
              (2) it needs to be called at the appropriate time for AppKit, not when active changes.
      
              * rendering/RenderTheme.cpp: (WebCore::RenderTheme::isFocused): Added an isActive
              check here to match the logic in the implementation of the CSS pseudo-state.
              * rendering/RenderThemeMac.mm:
              (WebCore::RenderThemeMac::updateFocusedState): Use the isFocused function instead of
              repeating the logic here. Removed the "need to add a key window test here" comment.
              (WebCore::RenderThemeMac::controlSupportsTints): Added a comment about the NSCell
              SPI that's related to the _windowChangedKeyState method we now use in WebHTMLView.
      
      WebKit:
      
              Reviewed by John Sullivan.
      
              - fix http://bugs.webkit.org/show_bug.cgi?id=13303
                <rdar://problem/5126341> REGRESSION: controls in a background Safari window
                maintain active appearance if the address bar has focus (13303)
      
              * WebView/WebHTMLView.mm: (-[WebHTMLView _windowChangedKeyState]):
              Added. Calls FrameView::updateControlTints.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20901 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      28399bcb
  23. 22 Mar, 2007 1 commit
    • sullivan's avatar
      Reviewed by Darin · e7ad9e70
      sullivan authored
              
              Followup for recent fix to 5079700, found by assertion added to Safari.
      
              * page/mac/FrameMac.mm:
              (WebCore::Frame::searchForLabelsBeforeElement):
              Fixed another place in this method where an empty NSString was being returned instead of nil.
              Cleaned up the style a little too.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20404 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e7ad9e70
  24. 21 Mar, 2007 1 commit
  25. 13 Mar, 2007 1 commit
    • darin's avatar
      Reviewed by Tim Hatcher and John Sullivan. · e100d69b
      darin authored
              - fix <rdar://problem/4915303> CrashTracer: 36 crashes in Safari at
                com.apple.AppKit: -[NSView getRectsBeingDrawn:count:] + 502
      
              * page/mac/FrameMac.mm: (WebCore::Frame::imageFromRect):
              This was calling drawRect: directly, but NSView's getRectsBeingDrawn:count:
              method was never really safe to call unless it was AppKit that called your
              drawRect: method. Changed it to call drawSingleRect: instead. A little ugly,
              but seems to work and will almost certainly fix the bug.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20152 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e100d69b
  26. 11 Mar, 2007 1 commit
    • oliver's avatar
      2007-03-11 Oliver Hunt <oliver@apple.com> · 7bb7dc3d
      oliver authored
              Reviewed by Adele.
      WebCore:
              Moving Frame{Mac}::respondToChangedSelection to Frame.cpp
              Added new EditorClient method to handle old bridge function
              
              * bridge/EditorClient.h:
                 Added respondToChangedSelection to replace old bridge function
              * editing/Editor.cpp:
              (WebCore::Editor::respondToChangedSelection):
                 Add client call to replace old bridge call from Frame::respondToChangedSelection
              * editing/SelectionController.cpp:
              (WebCore::SelectionController::setSelection):
                 No longer directly call Editor as Frame::respondToChangedSelection
                 makes the call
              * page/Frame.cpp:
              (WebCore::Frame::respondToChangedSelection):
                 Moved from FrameMac, replaced bridge call with call to Editor
              * page/mac/FrameMac.mm:
                 Moved respondToChangedSelection to Frame.cpp
              * page/mac/WebCoreFrameBridge.h:
                 Removed respondToChangedSelection from bridge
              * page/qt/FrameQt.cpp:
                 Remove stub method for respondToChangedSelection
      WebKit:
              Moved respondToChangedSelection from FrameBridge to EditorClient
      
              * WebCoreSupport/WebEditorClient.h:
              * WebCoreSupport/WebEditorClient.mm:
              (WebEditorClient::respondToChangedSelection):
              * WebCoreSupport/WebFrameBridge.mm:
                Removed respondToChangedSelection from bridge
      WebKitQt:
              Stub for EditorClientQt::respondToChangedSelection
      
              * WebCoreSupport/EditorClientQt.cpp:
              (WebCore::EditorClientQt::respondToChangedSelection):
              * WebCoreSupport/EditorClientQt.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20108 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7bb7dc3d
  27. 08 Mar, 2007 1 commit
    • thatcher's avatar
      WebCore: · 0c0b046a
      thatcher authored
              Reviewed by John.
      
              <rdar://problem/4664697> highlighter SPI needs a node parameter to give more context
      
              Pass the RenderObject's node to customHighlightLineRect and paintCustomHighlight.
      
              * page/Frame.h:
              * page/mac/FrameMac.mm:
              (WebCore::Frame::customHighlightLineRect):
              (WebCore::Frame::paintCustomHighlight):
              * page/mac/WebCoreFrameBridge.h:
              * rendering/InlineTextBox.cpp:
              (WebCore::InlineTextBox::paintCustomHighlight):
              * rendering/RenderBox.cpp:
              (WebCore::RenderBox::paintCustomHighlight):
              * rendering/RootInlineBox.cpp:
              (WebCore::RootInlineBox::addHighlightOverflow):
              (WebCore::RootInlineBox::paintCustomHighlight):
      
      WebKit:
      
              Reviewed by John.
      
              <rdar://problem/4664697> highlighter SPI needs a node parameter to give more context
      
              Added new methods to the WebHTMLHighlighter protocol that include the DOMNode being painted.
      
              * WebCoreSupport/WebFrameBridge.mm:
              (-[WebFrameBridge customHighlightRect:forLine:representedNode:WebCore::]):
              (-[WebFrameBridge paintCustomHighlight:forBox:onLine:behindText:entireLine:representedNode:WebCore::]):
              * WebKit.xcodeproj/project.pbxproj:
              * WebView/WebHTMLViewPrivate.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20067 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0c0b046a
  28. 19 Feb, 2007 1 commit
    • mjs's avatar
      WebCore: · c13fa54c
      mjs authored
              Reviewed by Maciej.
              
              Additional coding by Maciej, additional review by Oliver.
      
              Get rid of the FrameMac and FrameQt classes. Instead
              move all methods into Frame directly, and implement
              some platform specific methods in foo/FrameFoo.cpp.
      
              Some general cleanup in Frame:
              * Move some methods out of Frame, to the place where they 
              belong.
              * Unify the different ways of creating the JavaScript wrappers
              for <object>, <embed> and <applet>
              * Some cleanup of the WebCoreFrameBridge
      
              * ForwardingHeaders/bindings/NP_jsobject.h: Added.
              * ForwardingHeaders/bindings/npruntime_impl.h: Added.
              * ForwardingHeaders/bindings/runtime_root.h: Added.
              * WebCore.exp:
              * WebCore.xcodeproj/project.pbxproj:
              * bindings/js/kjs_binding.cpp:
              (KJS::ScriptInterpreter::shouldInterruptScript):
              * bindings/objc/DOM.mm:
              (-[DOMNode KJS::Bindings::]):
              * bindings/objc/DOMInternal.mm:
              (-[WebScriptObject _initializeScriptDOMNodeImp]):
              * bridge/EditorClient.h:
              * bridge/mac/FrameViewMac.mm:
              (WebCore::FrameView::updateBorder):
              (WebCore::FrameView::updateDashboardRegions):
              * bridge/mac/WebCoreAXObject.mm:
              (-[WebCoreAXObject rendererForView:]):
              * dom/Position.cpp:
              (WebCore::Position::next):
              * editing/CommandByName.cpp:
              (WebCore::Frame::execCopy):
              (WebCore::Frame::execCut):
              (WebCore::Frame::execPaste):
              * editing/Editor.cpp:
              (WebCore::Editor::canEdit):
              (WebCore::Editor::pasteWithPasteboard):
              (WebCore::Editor::paste):
              (WebCore::Editor::pasteAsPlainText):
              * editing/Editor.h:
              * editing/JSEditor.cpp:
              * html/HTMLAppletElement.cpp:
              (WebCore::HTMLAppletElement::getInstance):
              * html/HTMLEmbedElement.cpp:
              (WebCore::HTMLEmbedElement::getInstance):
              * html/HTMLFormElement.cpp:
              (WebCore::HTMLFormElement::formData):
              * html/HTMLObjectElement.cpp:
              (WebCore::HTMLObjectElement::getInstance):
              * loader/FrameLoader.cpp:
              (WebCore::FrameLoader::clear):
              (WebCore::FrameLoader::detachFromParent):
              * loader/mac/ImageDocumentMac.mm:
              (WebCore::finishImageLoad):
              * loader/qt/DocumentLoaderQt.cpp:
              * page/Chrome.cpp:
              (WebCore::Chrome::shouldInterruptJavaScript):
              * page/Chrome.h:
              * page/ChromeClient.h:
              * page/Frame.cpp:
              (WebCore::Frame::~Frame):
              (WebCore::Frame::markedTextRange):
              (WebCore::Frame::shouldChangeSelection):
              (WebCore::Frame::shouldDeleteSelection):
              (WebCore::Frame::isContentEditable):
              (WebCore::Frame::setSecureKeyboardEntry):
              (WebCore::Frame::isSecureKeyboardEntry):
              (WebCore::Frame::bindingRootObject):
              (WebCore::Frame::createRootObject):
              (WebCore::Frame::windowScriptNPObject):
              (WebCore::Frame::cleanupScriptObjects):
              (WebCore::FramePrivate::FramePrivate):
              * page/Frame.h:
              * page/FramePrivate.h:
              * page/FrameView.h:
              * page/mac/EventHandlerMac.mm:
              (WebCore::EventHandler::tabsToLinks):
              (WebCore::EventHandler::tabsToAllControls):
              (WebCore::EventHandler::focusDocumentView):
              (WebCore::EventHandler::passMouseDownEventToWidget):
              (WebCore::EventHandler::handleDrag):
              (WebCore::EventHandler::sendFakeEventsAfterWidgetTracking):
              (WebCore::EventHandler::keyboardUIMode):
              * page/mac/FrameMac.h: Removed.
              * page/mac/FrameMac.mm:
              (WebCore::Frame::setBridge):
              (WebCore::Frame::bridge):
              (WebCore::Frame::searchForLabelsAboveCell):
              (WebCore::Frame::searchForLabelsBeforeElement):
              (WebCore::Frame::matchLabelsAgainstElement):
              (WebCore::Frame::focusWindow):
              (WebCore::Frame::unfocusWindow):
              (WebCore::Frame::imageFromRect):
              (WebCore::Frame::selectionImage):
              (WebCore::Frame::snapshotDragImage):
              (WebCore::Frame::fontAttributesForSelectionStart):
              (WebCore::Frame::baseWritingDirectionForSelectionStart):
              (WebCore::Frame::print):
              (WebCore::Frame::issuePasteCommand):
              (WebCore::Frame::issueTransposeCommand):
              (WebCore::Frame::respondToChangedSelection):
              (WebCore::Frame::textFieldDidBeginEditing):
              (WebCore::Frame::textFieldDidEndEditing):
              (WebCore::Frame::textDidChangeInTextField):
              (WebCore::Frame::textDidChangeInTextArea):
              (WebCore::Frame::doTextFieldCommandFromEvent):
              (WebCore::Frame::textWillBeDeletedInTextField):
              (WebCore::Frame::setSecureKeyboardEntry):
              (WebCore::Frame::isSecureKeyboardEntry):
              (WebCore::Frame::setMarkedTextRange):
              (WebCore::Frame::dashboardRegionsDictionary):
              (WebCore::Frame::dashboardRegionsChanged):
              (WebCore::Frame::willPopupMenu):
              (WebCore::Frame::isCharacterSmartReplaceExempt):
              (WebCore::Frame::setNeedsReapplyStyles):
              (WebCore::Frame::customHighlightLineRect):
              (WebCore::Frame::paintCustomHighlight):
              (WebCore::Frame::createScriptInstanceForWidget):
              (WebCore::Frame::windowScriptObject):
              (WebCore::Frame::cleanupPlatformScriptObjects):
              * page/mac/WebCoreFrameBridge.h:
              * page/mac/WebCoreFrameBridge.mm:
              (createRootObject):
              (bridge):
              (-[WebCoreFrameBridge _frame]):
              * page/qt/EventHandlerQt.cpp:
              * page/qt/FrameQt.cpp:
              (WebCore::Frame::unfocusWindow):
              (WebCore::Frame::focusWindow):
              (WebCore::Frame::issueTransposeCommand):
              (WebCore::Frame::respondToChangedSelection):
              (WebCore::Frame::print):
              (WebCore::Frame::createScriptInstanceForWidget):
              (WebCore::Frame::cleanupPlatformScriptObjects):
              (WebCore::Frame::isCharacterSmartReplaceExempt):
              * page/qt/FrameQt.h: Removed.
              * platform/MimeTypeRegistry.h:
              * platform/graphics/svg/SVGImage.cpp:
              (WebCore::SVGImage::setData):
              * platform/graphics/svg/SVGImageEmptyClients.h:
              (WebCore::SVGEmptyChromeClient::shouldInterruptJavaScript):
              (WebCore::SVGEmptyEditorClient::shouldChangeSelectedRange):
              * platform/mac/ClipboardMac.h:
              * platform/mac/ClipboardMac.mm:
              (WebCore::ClipboardMac::ClipboardMac):
              * platform/mac/FileChooserMac.mm:
              (-[OpenPanelController beginSheetWithFrame:]):
              * platform/mac/MimeTypeRegistryMac.mm:
              (WebCore::MimeTypeRegistry::getMIMETypeForPath):
              * platform/mac/PopupMenuMac.mm:
              (WebCore::PopupMenu::show):
              * platform/mac/WidgetMac.mm:
              (WebCore::Widget::setFocus):
              (WebCore::Widget::setIsSelected):
              * platform/network/mac/ResourceHandleMac.mm:
              * platform/network/qt/ResourceHandleManagerQt.cpp:
              * platform/network/qt/ResourceHandleQt.cpp:
              (WebCore::ResourceHandle::start):
              * platform/qt/MimeTypeRegistryQt.cpp:
              (WebCore::MimeTypeRegistry::getMIMETypeForPath):
              * platform/qt/PopupMenuQt.cpp:
              * platform/qt/ScrollViewCanvasQt.cpp:
              * platform/qt/ScrollViewQt.cpp:
              * platform/win/TemporaryLinkStubs.cpp:
              * rendering/InlineTextBox.cpp:
              (WebCore::InlineTextBox::paintCustomHighlight):
              * rendering/RenderBox.cpp:
              (WebCore::RenderBox::paintCustomHighlight):
              * rendering/RootInlineBox.cpp:
              (WebCore::RootInlineBox::addHighlightOverflow):
              (WebCore::RootInlineBox::paintCustomHighlight):
      
      WebKit:
      
              Reviewed by Maciej.
      
              Additional coding by Maciej, additional review by Oliver.
      
              Added implementations for the new callbacks in EditorClient
              and ChromeClient (basically moved from WebFrameBridge).
              Cleaned up some code paths that are not called anymore
              and done fully inside WebCore now.
      
              * DefaultDelegates/WebDefaultContextMenuDelegate.mm:
              * Misc/WebElementDictionary.mm:
              * Misc/WebNSAttributedStringExtras.mm:
              * Plugins/WebBaseNetscapePluginView.mm:
              (-[WebBaseNetscapePluginView getVariable:value:]):
              * Plugins/WebNetscapePluginEmbeddedView.mm:
              * Plugins/WebNetscapePluginStream.mm:
              * Plugins/WebPluginContainerCheck.mm:
              * WebCoreSupport/WebChromeClient.h:
              * WebCoreSupport/WebChromeClient.mm:
              (WebChromeClient::shouldInterruptJavaScript):
              * WebCoreSupport/WebEditorClient.h:
              * WebCoreSupport/WebEditorClient.mm:
              (WebEditorClient::shouldChangeSelectedRange):
              * WebCoreSupport/WebFrameBridge.mm:
              (-[WebFrameBridge finishInitializingWithPage:frameName:frameView:ownerElement:]):
              (-[WebFrameBridge fini]):
              * WebCoreSupport/WebFrameLoaderClient.mm:
              * WebView/WebArchiver.mm:
              * WebView/WebFrame.mm:
              (core):
              (kit):
              (-[WebFrame _updateBackground]):
              * WebView/WebFrameInternal.h:
              * WebView/WebFrameView.mm:
              * WebView/WebHTMLRepresentation.mm:
              * WebView/WebHTMLView.mm:
              (-[WebHTMLView _updateMouseoverWithEvent:]):
              (-[WebHTMLView _isEditable]):
              (-[WebHTMLView validateUserInterfaceItem:]):
              (-[WebHTMLView maintainsInactiveSelection]):
              (-[WebHTMLView scrollWheel:]):
              (-[WebHTMLView acceptsFirstMouse:]):
              (-[WebHTMLView shouldDelayWindowOrderingForEvent:]):
              (-[WebHTMLView cut:]):
              (-[WebHTMLView paste:]):
              (-[WebHTMLView selectedAttributedString]):
              * WebView/WebScriptDebugDelegate.mm:
              * WebView/WebView.mm:
              (-[WebView _dashboardRegions]):
              (-[WebView setProhibitsMainFrameScrolling:]):
              (-[WebView _setInViewSourceMode:]):
              (-[WebView _inViewSourceMode]):
              (-[WebView shouldClose]):
              (-[WebView setEditable:]):
      
      WebKitQt:
      
              Reviewed by Maciej.
      
              Additional coding by Maciej, additional review by Oliver.
      
              Add stubs for the new methods in ChormeClient and EditorClient,
              remove all references to FrameQt.
      
              * Api/qwebframe.cpp:
              (QWebFrame::QWebFrame):
              * Api/qwebframe_p.h:
              * Api/qwebpage.cpp:
              * WebCoreSupport/ChromeClientQt.cpp:
              (WebCore::ChromeClientQt::shouldInterruptJavaScript):
              * WebCoreSupport/ChromeClientQt.h:
              * WebCoreSupport/EditorClientQt.cpp:
              (WebCore::EditorClientQt::shouldChangeSelectedRange):
              (WebCore::EditorClientQt::isEditable):
              * WebCoreSupport/EditorClientQt.h:
              * WebCoreSupport/FrameLoaderClientQt.cpp:
              (WebCore::FrameLoaderClientQt::setFrame):
              (WebCore::FrameLoaderClientQt::webFrame):
              * WebCoreSupport/FrameLoaderClientQt.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19702 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c13fa54c
  29. 18 Feb, 2007 1 commit
    • oliver's avatar
      2007-02-18 Oliver Hunt <oliver@apple.com> · cd54bad1
      oliver authored
              Reviewed by Adam.
      WebCore:
              More drag and drop migration, now the entirety of the
              drag initiation logic has been rendered platform independent
              This has required a number of new interfaces, and a reasonable
              amount of logic migration.
      
              As a side effect, this patch also fixes rdar://problem/4945341
      
              There are some basic Qt stubs that should stop the build from failing,
              however the absence of ClipboardQt means any attempt to initiate a drag 
              may cause a crash.
      
              * WebCore.exp:
                 Exporting new symbols
      
              * WebCore.xcodeproj/project.pbxproj:
                 New files
      
              * dom/Clipboard.cpp:
              (WebCore::Clipboard::canSaveAsWebArchive):
                Migrated from WebKit
      
              * dom/Clipboard.h:
                Added more methods to allow Clipboard to be used as a 
                platform independent container for drag and drop
      
              * page/DragClient.h:
              (WebCore::DragClient::declareAndWriteDragImage):
                This is a mac only helper function, so i've made it have an empty implementation,
                that way we won't need a PLATFORM(MAC) block in SVGImageEmptyClients
      
              * page/DragController.cpp:
              (WebCore::DragController::dragExited):
              (WebCore::DragController::performDrag):
              (WebCore::DragController::tryDocumentDrag): 
              (WebCore::DragController::tryDHTMLDrag):
                Using RefPtrs now
              (WebCore::getCachedImage):
              (WebCore::getImage):
                Helper functions                   
              (WebCore::dragLocForDHTMLDrag):
              (WebCore::dragLocForSelectionDrag):
              (WebCore::DragController::startDrag):
              (WebCore::DragController::doImageDrag):
              (WebCore::DragController::doSystemDrag):
                Logic that generates drag images and clipboard content, and
                initiates the actual system drag operation
      
              * page/DragController.h:
                Method and variable declarations
      
              * page/EventHandler.cpp:
              (WebCore::EventHandler::handleDrag):
                handleDrag is now platform independent
              (WebCore::EventHandler::handleTextInputEvent):
                 formatting
      
              * page/EventHandler.h:
              (WebCore::EventHandler::eventLoopHandleMouseDragged):
                Forgot to define this stub function 
      
              * page/Frame.h:
                Declaring dragImageForSelection to provide drag image for selected content
      
              * page/mac/DragControllerMac.mm:
                Defining drag images control vars
      
              * page/mac/EventHandlerMac.mm:
              (WebCore::EventHandler::createDraggingClipboard):
                Migrated old clipboard creation to here
      
              * page/mac/FrameMac.mm:
              (WebCore::Frame::dragImageForSelection):
                Wrap FrameMac::selectionImage
      
              * page/qt/DragControllerQt.cpp:
                Defining drag images control vars
      
              * page/qt/EventHandlerQt.cpp:
              (WebCore::EventHandler::createDraggingClipboard):
                stub
      
              * page/qt/FrameQt.cpp:
              (WebCore::Frame::dragImageForSelection):
                stub
      
              * platform/DragImage.cpp: Added.
              (WebCore::fitDragImageToMaxSize):
              (WebCore::createDragImageForSelection):
                 Platform independent processing for drag images
      
              * platform/DragImage.h: Added.
                 Declaring typedefs and wrapper functions to abstract the handling
                 of drag images 
      
              * platform/Pasteboard.h:
                Declaring extracted writeURL and writeSelection methods
      
              * platform/graphics/svg/SVGImageEmptyClients.h:
              (WebCore::SVGEmptyDragClient::willPerformDragSourceAction):
              (WebCore::SVGEmptyDragClient::startDrag):
              (WebCore::SVGEmptyDragClient::createDragImageForLink):
                Stubs FTW!
      
              * platform/mac/ClipboardMac.h:
              (WebCore::ClipboardMac::pasteboard):
                Provide accessor for underlying NSPasteboard
      
              * platform/mac/ClipboardMac.mm:
              (WebCore::ClipboardMac::hasData):
              (WebCore::ClipboardMac::writeRange):
              (WebCore::ClipboardMac::writeURL):
              (WebCore::ClipboardMac::declareAndWriteDragImage):
              (WebCore::ClipboardMac::createDragImage):
                 Implemented new Clipboarid functionality.
              (WebCore::ClipboardMac::dragNSImage):
                 Made this a const method
      
              * platform/mac/DragImageMac.mm: Added.
              (WebCore::dragImageSize):
              (WebCore::deleteDragImage):
              (WebCore::scaleDragImage):
              (WebCore::dissolveDragImageToFraction):
              (WebCore::createDragImageFromImage):
              (WebCore::createDragImageIconForCachedImage):
                 Implemented platform specific DragImage functions
      
              * platform/mac/PasteboardMac.mm:
              (WebCore::writeSelection):
              (WebCore::Pasteboard::writeSelection):
              (WebCore::writeURL):
              (WebCore::Pasteboard::writeURL):
                 Extracted member implementations of these functions, so that
                 Clipboard could also make use of this functionality.
                 Pasteboard methods now call the new non-member implementations.
                 Also fixed implementations to respect the list of requested types.
      
              * platform/qt/DragImageQt.cpp: Added.
              (WebCore::dragImageSize):
              (WebCore::deleteDragImage):
              (WebCore::scaleDragImage):
              (WebCore::dissolveDragImageToFraction):
              (WebCore::createDragImageFromImage):
              (WebCore::createDragImageIconForCachedImage):  
                Stubs
      
      WebKit:
              Moving the drag initiation logic to WebCore.
              The redundant code in webkit will be moved out in a later patch.
      
              * WebCoreSupport/WebDragClient.h:
              * WebCoreSupport/WebDragClient.mm:
              (getTopHTMLView):
                Helper function
              (WebDragClient::willPerformDragSourceAction):
              (WebDragClient::startDrag):
              (WebDragClient::createDragImageForLink):
                Implemented new DragClient methods
              (WebDragClient::declareAndWriteDragImage):
                Helper function for the Mac to allow new drag and drop
                code to match behaviour
                
              * WebView/WebHTMLView.mm:
              (-[WebHTMLView _dragImageForURL:withLabel:]):
              (-[WebHTMLView _dragImageForLinkElement:]):
                Refactoring old _dragImageForLinkElement function so that 
                the link drag image can be created with just a URL and label, 
                rather than requiring the original element
              (-[WebHTMLView dragImage:at:offset:event:pasteboard:source:slideBack:]):
                Removed logic that is no longer necessary                 
              (-[WebHTMLView _mouseDownEvent]):
                The WebDragClient may need the original mouseDownEvent of a drag when initiating
                a drag
              * WebView/WebHTMLViewInternal.h:
                Declaring _mouseDownEvent
      
              * WebView/WebHTMLViewPrivate.h:
                Declaring _dragImageForURL
                                              
            
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19689 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cd54bad1
  30. 08 Feb, 2007 1 commit
    • adele's avatar
      LayoutTests: · a82b0b23
      adele authored
              Reviewed by Brady.
      
              Test for http://bugs.webkit.org/show_bug.cgi?id=12599
              <rdar://problem/4973507> REGRESSION: When replying in Gmail, the caret disappears when you start to type (12599)
      
              * fast/frames/iframe-window-focus-expected.txt: Added.
              * fast/frames/iframe-window-focus.html: Added.
      
      WebCore:
      
              Reviewed by Brady.
      
              Fix for http://bugs.webkit.org/show_bug.cgi?id=12599
              <rdar://problem/4973507> REGRESSION: When replying in Gmail, the caret disappears when you start to type (12599)
      
              When a frame's window was focused, the page didn't get updated about the new frame getting focus.
              This was causing handleKeyPress to fail because it kept getting a selection for the wrong frame (which wasn't editable).
      
              Test: fast/frames/iframe-window-focus.html
      
              * page/Frame.cpp:
              (WebCore::Frame::focusWindow):
              (WebCore::Frame::unfocusWindow):
              * page/Frame.h:
              * page/mac/FrameMac.mm:
              (WebCore::FrameMac::focusWindow):
              (WebCore::FrameMac::unfocusWindow):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19522 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a82b0b23
  31. 07 Feb, 2007 1 commit
    • andersca's avatar
      WebCore: · fe6e4dd1
      andersca authored
              Reviewed by Maciej.
      
              Move shouldInterruptJavaScript to the Chrome.
      
              * bindings/js/kjs_binding.cpp:
              (KJS::ScriptInterpreter::shouldInterruptScript):
              * page/Chrome.cpp:
              (WebCore::Chrome::shouldInterruptJavaScript):
              * page/Chrome.h:
              * page/ChromeClient.h:
              * page/Frame.h:
              * page/mac/FrameMac.h:
              * page/mac/FrameMac.mm:
              * page/mac/WebCoreFrameBridge.h:
              * platform/graphics/svg/SVGImageEmptyClients.h:
              (WebCore::SVGEmptyChromeClient::shouldInterruptJavaScript):
      
      WebKit:
      
              Reviewed by Maciej.
      
              Move shouldInterruptJavaScript to the Chrome.
              
              * WebCoreSupport/WebChromeClient.h:
              * WebCoreSupport/WebChromeClient.mm:
              (WebChromeClient::shouldInterruptJavaScript):
              * WebCoreSupport/WebFrameBridge.mm:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19487 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fe6e4dd1
  32. 26 Jan, 2007 1 commit
    • 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
  33. 19 Jan, 2007 1 commit
    • 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
  34. 11 Jan, 2007 1 commit
    • ggaren's avatar
      JavaScriptCore: · ec60d104
      ggaren authored
              Reviewed by Anders Carlsson.
      
              Even more cleanup in preparation for fixing <rdar://problem/4608404> 
              WebScriptObject's _executionContext lack of ownership policy causes 
              crashes (e.g., in Dashcode)
              
              Layout tests pass.
              
              Renames:
                  findRootObjectForNativeHandleFunction => createRootObject
                  FindRootObjectForNativeHandleFunctionPtr => CreateRootObjectFunction
                  
              Also removed unnecessary use of "Bindings::" prefix.
      
              * JavaScriptCore.exp:
              * bindings/jni/jni_jsobject.cpp:
              (JavaJSObject::createNative):
              (JavaJSObject::convertValueToJObject):
              (JavaJSObject::convertJObjectToValue):
              * bindings/runtime_root.cpp:
              (KJS::Bindings::RootObject::setCreateRootObject):
              * bindings/runtime_root.h:
              (KJS::Bindings::RootObject::createRootObject):
      
      WebCore:
      
              Reviewed by Anders Carlsson.
              
              Even more cleanup in preparation for fixing <rdar://problem/4608404> 
              WebScriptObject's _executionContext lack of ownership policy causes 
              crashes (e.g., in Dashcode)
              
              Layout tests pass.
              
              Renames:
                  findRootObjectForNativeHandleFunction => createRootObject
                  FindRootObjectForNativeHandleFunctionPtr => createRootObjectFunction
                  rootForView => createRootObject
                  getInstanceForView => getPluginInstanceForWidget
      
              * page/mac/FrameMac.mm:
              (WebCore::FrameMac::getAppletInstanceForWidget): Put the NSView * in a void*
              variable named "nativeHandle" to be more explicit about the fact that JavaScript's
              "nativeHandle" is just an NSView *.
      
              (WebCore::getPluginInstanceForWidget): This function now does the NSView *
              fetching that its callers used to do.
              (WebCore::FrameMac::getEmbedInstanceForWidget): Updated for rename.
              (WebCore::FrameMac::getObjectInstanceForWidget): ditto
      
              * page/mac/WebCoreFrameBridge.mm: Killed the WebCoreBridgeInternal category,
              which was really more of a shmategory.
              (createRootObject): Removed rootObjectForView, folding it into its only
              caller, the similarly named rootForView. Renamed the pair to "createRootObject"
              because that's what they do.
      
              (-[WebCoreFrameBridge init]): Updated for renames
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@18782 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ec60d104
  35. 08 Jan, 2007 1 commit
    • weinig's avatar
      Reviewed by Adam. · 91271cab
      weinig authored
              - http://bugs.webkit.org/show_bug.cgi?id=12143
                remove Widget code unneeded now that form elements do not use Widget
      
              * bindings/objc/DOMHTML.mm: (-[DOMHTMLSelectElement _activateItemAtIndex:]):
              Removed useless implementation that would only work with NSView-based
              <select> elements, and added a FIXME about the fact that this function
              doesn't do anything any more. I think it's used by Safari forms auto-fill.
      
              * bridge/mac/WebCoreAXObject.mm: (-[WebCoreAXObject rendererForView:]):
              Removed code that depends on elementForView:, since that always returns
              nil now.
      
              * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::~HTMLFormElement):
              Use a formDestroyed() function rather than clearing m_form directly so that
              this class doesn't have to be a friend of HTMLGenericFormElement.
      
              * html/HTMLGenericFormElement.h: Removed now-unneeded friend declaration
              for HTMLFormElement. Moved definition of supportsFocus into the .cpp file.
              Added a public formDestroyed function for use by HTMLFormElement.
              * html/HTMLGenericFormElement.cpp:
              (WebCore::HTMLGenericFormElement::attach): Removed widget-specific code.
              (WebCore::HTMLGenericFormElement::isKeyboardFocusable): Ditto.
              (WebCore::HTMLGenericFormElement::isMouseFocusable): Ditto.
              (WebCore::HTMLGenericFormElement::supportsFocus): Added this here; it was
              in the header file before, for no good reason.
      
              * page/EventHandler.h: Removed unused Mac-specific
              currentEventIsMouseDownInWidget.
              * page/mac/EventHandlerMac.mm: Ditto.
      
              * page/Frame.cpp: (WebCore::Frame::frameForWidget): Changed to use
              RenderWidget to find the frame rather than the WigetClient element()
              function.
      
              * page/mac/FrameMac.h: Removed unused bridgeForWidget.
              * page/mac/FrameMac.mm: Ditto.
      
              * page/mac/WebCoreFrameBridge.h: Removed elementForView.
              * page/mac/WebCoreFrameBridge.mm: Ditto. While the scroll bar still did
              implement WebCoreWidgetHolder, it does not correspond to a DOM element,
              so this method was always returning nil.
      
              * platform/Widget.h: Moved unused types and functions that are still
              in the platform-specific implementations into a "to be deleted" section:
              FocusPolicy, NoFocus, TabFocus, ClickFocus, StrongFocus, WheelFocus,
              lockDrawingFocus, font, focusPolicy, hasFocus, clearFocus, setFont,
              disableFlushDrawing, enableFlushDrawing, unlockDrawingFocus.
              Removed unused functions that are not in platform-specific implementations:
              sizeHint, baselinePosition, checksDescendantsForFocus.
              * platform/Widget.cpp: Removed functions.
      
              * platform/WidgetClient.h: Emptied out the class. Soon we can delete it.
      
              * platform/mac/PlatformScrollBarMac.mm: (-[WebCoreScrollBar mouseDown:]):
              Got rid of unneeded includes, removed use of the WebCoreWidgetHolder
              protocol and the one method in it, and changed the calls to beforeMouseDown
              and afterMouseDown to pass the widget pointer in.
      
              * platform/mac/WebCoreWidgetHolder.h: Emptied out the file -- to be deleted
              later.
      
              * platform/mac/WidgetMac.mm:
              (WebCore::Widget::~Widget): Removed code to manage deferredFirstResponder.
              (WebCore::Widget::hasFocus): Removed body of function and replaced with
              an assertion that it's never called. Later we'll remove it.
              (WebCore::Widget::setFocus): Tweaked a bit to work given changes to the
              FrameMac class. Also added a FIXME. Given how this works, it does not
              belong in the platform layer.
              (WebCore::Widget::clearFocus): Removed body of function and replaced with
              an assertion that it's never called. Later we'll remove it.
              (WebCore::Widget::focusPolicy): Ditto.
              (WebCore::Widget::font): Ditto.
              (WebCore::Widget::setFont): Ditto.
              (WebCore::Widget::lockDrawingFocus): Ditto.
              (WebCore::Widget::unlockDrawingFocus): Ditto.
              (WebCore::Widget::disableFlushDrawing): Ditto.
              (WebCore::Widget::enableFlushDrawing): Ditto.
              (WebCore::Widget::paint): Removed obsolete comment.
              (WebCore::Widget::sendConsumedMouseUp): Removed body of function and replaced with
              an assertion that it's never called. Later we'll remove it.
              (WebCore::Widget::setIsSelected): Tweaked a bit to work given changes to the
              FrameMac class. Also added a FIXME. Given how this works, it does not
              belong in the platform layer.
              (WebCore::Widget::beforeMouseDown): Changed to take an explicit Widget parameter.
              (WebCore::Widget::afterMouseDown): Ditto.
      
              * rendering/RenderApplet.cpp:
              (WebCore::RenderApplet::intrinsicWidth): Changed to not call sizeHint() any more.
              I didn't change the values returned by the function, but they make no sense and
              this should probably be fixed later.
              (WebCore::RenderApplet::intrinsicHeight): Ditto.
      
              * rendering/RenderWidget.h: Removed unneeded WidgetClient.h include. Changed
              RenderWidget to no longer inherit from WidgetClient. Added a find function to find
              a RenderWidget given a Widget. Removed all the virtual functions that override
              WidgetClient hooks.
              * rendering/RenderWidget.cpp: Removed all the WidgetClient functions.
              (WebCore::widgetRendererMap): Added. Map that gives the RenderWidget for each
              Widget that is owned by a RenderWidget.
              (WebCore::RenderWidget::destroy): Removed the setClient call and added a call to
              remove the widget from the widgetRendererMap.
              (WebCore::RenderWidget::setWidget): Ditto.
              (WebCore::RenderWidget::setStyle): Removed the call to Widget::setFont.
              (WebCore::RenderWidget::find): Added. Returns the RenderWidget for a Widget, if any.
      
              - other changes
      
              * dom/Node.cpp:
              (WebCore::Node::dump): Removed unnecessary use of DeprecatedString.
              (WebCore::appendAttributeDesc): Ditto.
              (WebCore::Node::showNode): Ditto.
              (WebCore::Node::formatForDebugger): Ditto.
      
              * loader/CachedImage.cpp: (WebCore::CachedImage::createImage): Cleaned up
              conditional compilation so adding more MIME types here doesn't make the
              function more and more difficult to read.
      
              * page/Frame.h: Removed unneeded includes and declarations.
              Tweaked formatting.
              * page/Page.h: Removed unneeded declarations.
              * platform/ScrollView.h: Removed unneeded includes.
      
              * rendering/RenderBlock.cpp: (WebCore::RenderBlock::renderName): Tweaked formatting.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@18677 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      91271cab
  36. 02 Jan, 2007 1 commit
    • beidson's avatar
      WebCore: · 50c3bd88
      beidson authored
              Reviewed extensively and repeatedly by Darin
      
              <rdar://problem/4887137> - WebCore Back/Forward Cache
      
              * WebCore.exp:
              * WebCore.xcodeproj/project.pbxproj:
      
              * bridge/mac/WebCorePageState.h: Removed.
              * bridge/mac/WebCorePageState.mm: Removed.
      
              * history/BackForwardList.cpp: Added - This largely emulates the design of WebBackForwardList
              (WebCore::BackForwardList::BackForwardList):
              (WebCore::BackForwardList::~BackForwardList):
              (WebCore::BackForwardList::addItem):
              (WebCore::BackForwardList::goBack):
              (WebCore::BackForwardList::goForward):
              (WebCore::BackForwardList::goToItem):
              (WebCore::BackForwardList::backItem):
              (WebCore::BackForwardList::currentItem):
              (WebCore::BackForwardList::forwardItem):
              (WebCore::BackForwardList::backListWithLimit):
              (WebCore::BackForwardList::forwardListWithLimit):
              (WebCore::BackForwardList::capacity):
              (WebCore::BackForwardList::setCapacity):
              (WebCore::BackForwardList::setPageCacheSize):
              (WebCore::BackForwardList::pageCacheSize):
              (WebCore::BackForwardList::clearPageCache):
              (WebCore::BackForwardList::usesPageCache):
              (WebCore::BackForwardList::backListCount):
              (WebCore::BackForwardList::forwardListCount):
              (WebCore::BackForwardList::itemAtIndex):
              (WebCore::BackForwardList::entries):
              (WebCore::BackForwardList::close):
              (WebCore::BackForwardList::closed):
              (WebCore::BackForwardList::removeItem):
              (WebCore::BackForwardList::containsItem):
              (WebCore::BackForwardList::setDefaultPageCacheSize):
              (WebCore::BackForwardList::defaultPageCacheSize):
              * history/BackForwardList.h: Added.
      
              * history/HistoryItem.cpp: Added - This largely emulates the design of WebBackForwardList
              (WebCore::defaultNotifyHistoryItemChanged):
              (WebCore::HistoryItem::HistoryItem):
              (WebCore::HistoryItem::~HistoryItem):
              (WebCore::HistoryItem::copy):
              (WebCore::HistoryItem::setHasPageCache):
              (WebCore::HistoryItem::retainIconInDatabase):
              (WebCore::HistoryItem::urlString):
              (WebCore::HistoryItem::originalURLString):
              (WebCore::HistoryItem::title):
              (WebCore::HistoryItem::alternateTitle):
              (WebCore::HistoryItem::icon):
              (WebCore::HistoryItem::lastVisitedTime):
              (WebCore::HistoryItem::url):
              (WebCore::HistoryItem::originalURL):
              (WebCore::HistoryItem::target):
              (WebCore::HistoryItem::parent):
              (WebCore::HistoryItem::setAlternateTitle):
              (WebCore::HistoryItem::setURLString):
              (WebCore::HistoryItem::setURL):
              (WebCore::HistoryItem::setOriginalURLString):
              (WebCore::HistoryItem::setTitle):
              (WebCore::HistoryItem::setTarget):
              (WebCore::HistoryItem::setParent):
              (WebCore::HistoryItem::setLastVisitedTime):
              (WebCore::HistoryItem::visitCount):
              (WebCore::HistoryItem::setVisitCount):
              (WebCore::HistoryItem::scrollPoint):
              (WebCore::HistoryItem::setScrollPoint):
              (WebCore::HistoryItem::clearScrollPoint):
              (WebCore::HistoryItem::setDocumentState):
              (WebCore::HistoryItem::documentState):
              (WebCore::HistoryItem::clearDocumentState):
              (WebCore::HistoryItem::isTargetItem):
              (WebCore::HistoryItem::setIsTargetItem):
              (WebCore::HistoryItem::alwaysAttemptToUsePageCache):
              (WebCore::HistoryItem::setAlwaysAttemptToUsePageCache):
              (WebCore::HistoryItem::addChildItem):
              (WebCore::HistoryItem::childItemWithName):
              (WebCore::HistoryItem::recurseToFindTargetItem):
              (WebCore::HistoryItem::targetItem):
              (WebCore::HistoryItem::pageCache):
              (WebCore::HistoryItem::children):
              (WebCore::HistoryItem::hasChildren):
              (WebCore::HistoryItem::formContentType):
              (WebCore::HistoryItem::formReferrer):
              (WebCore::HistoryItem::rssFeedReferrer):
              (WebCore::HistoryItem::setRSSFeedReferrer):
              (WebCore::HistoryItem::setFormInfoFromRequest):
              (WebCore::HistoryItem::formData):
              (WebCore::HistoryItem::mergeAutoCompleteHints):
              (WebCore::HistoryItem::hasPageCache):
              (WebCore::timer): Function to manage the global release timer
              (WebCore::pendingPageCacheToRelease): Function to manage the global queue of caches to be released
              (WebCore::HistoryItem::releasePageCache):
              (WebCore::closeObjectsInPendingPageCaches):
              (WebCore::HistoryItem::releaseAllPendingPageCaches):
              (WebCore::HistoryItem::scheduleRelease):
              (WebCore::HistoryItem::print):
              * history/HistoryItem.h: Added.
              * history/mac/HistoryItemMac.mm: Added.
              (WebCore::HistoryItem::viewState): In the future we need a platform agnostic way to manage the view state
              (WebCore::HistoryItem::setViewState):
              (WebCore::HistoryItem::getTransientProperty): Transient properties are, for now, only a Mac concept
              (WebCore::HistoryItem::setTransientProperty):
      
              * history/HistoryItemTimer.cpp: Added
              (WebCore::HistoryItemTimer::HistoryItemTimer): We need a specific class to be the history item timer because
              WebCore::Timers only work when you have an instance of an object, but the caches pending release is a static concept
              (WebCore::HistoryItemTimer::isActive):
              (WebCore::HistoryItemTimer::schedule):
              (WebCore::HistoryItemTimer::invalidate):
              (WebCore::HistoryItemTimer::callReleasePageCache):
              * history/HistoryItemTimer.h: Added.
      
              * history/PageCache.cpp Added - This is a class that contains the fields that used to be in an NSDictionary in WebKit
              (WebCore::PageCache::PageCache):
              (WebCore::PageCache::setPageState):
              (WebCore::PageCache::~PageCache):
              (WebCore::PageCache::pageState):
              (WebCore::PageCache::setDocumentLoader):
              (WebCore::PageCache::documentLoader):
              (WebCore::PageCache::setTimeStamp):
              (WebCore::PageCache::setTimeStampToNow):
              (WebCore::PageCache::timeStamp):
              * history/PageCache.h: Added.
              * history/mac/PageCacheMac.mm: Added.
              (WebCore::PageCache::close):
              (WebCore::PageCache::setDocumentView): In the future we need a platform agnostic way to manage the documentView
              (WebCore::PageCache::documentView):
      
              * loader/DocumentLoader.cpp:
              (WebCore::DocumentLoader::loadFromPageCache):
              (WebCore::DocumentLoader::setLoadingFromPageCache): 
              (WebCore::DocumentLoader::isLoadingFromPageCache):
              (WebCore::DocumentLoader::originalURL):
              (WebCore::DocumentLoader::requestURL):
              (WebCore::DocumentLoader::responseURL):
              (WebCore::DocumentLoader::responseMIMEType):
              * loader/DocumentLoader.h:
      
              * loader/FrameLoader.cpp: Responsibilities previously scattered in WebKit but concentrated in WebView and WebFrame 
                are now here, where they should be.
              (WebCore::FrameLoader::clear):
              (WebCore::FrameLoader::restoreDocumentState):
              (WebCore::FrameLoader::goBackOrForward):
              (WebCore::FrameLoader::provisionalLoadStarted):
              (WebCore::FrameLoader::canCachePage):
              (WebCore::FrameLoader::commitProvisionalLoad):
              (WebCore::FrameLoader::transitionToCommitted):
              (WebCore::FrameLoader::open):
              (WebCore::FrameLoader::didFirstLayout):
              (WebCore::FrameLoader::dispatchDidChangeLocationWithinPage):
              (WebCore::FrameLoader::dispatchDidFinishLoadToClient):
              (WebCore::FrameLoader::updateGlobalHistoryForStandardLoad): Marked for usage in future GlobalHistory (uses client for now)
              (WebCore::FrameLoader::updateGlobalHistoryForReload): Ditto
              (WebCore::FrameLoader::shouldGoToHistoryItem):
              (WebCore::FrameLoader::addExtraFieldsToRequest):
              (WebCore::FrameLoader::addHistoryItemForFragmentScroll):
              (WebCore::FrameLoader::loadProvisionalItemFromPageCache):
              (WebCore::FrameLoader::createPageCache):
              (WebCore::FrameLoader::shouldTreatURLAsSameAsCurrent):
              (WebCore::FrameLoader::createItem):
              (WebCore::FrameLoader::addBackForwardItemClippedAtTarget):
              (WebCore::FrameLoader::createItemTree):
              (WebCore::FrameLoader::saveScrollPositionAndViewStateToItem):
              (WebCore::FrameLoader::restoreScrollPositionAndViewState):
              (WebCore::FrameLoader::purgePageCache):
              (WebCore::FrameLoader::invalidateCurrentItemPageCache):
              (WebCore::FrameLoader::saveDocumentState):
              (WebCore::FrameLoader::loadItem):
              (WebCore::FrameLoader::urlsMatchItem):
              (WebCore::FrameLoader::goToItem):
              (WebCore::FrameLoader::recursiveGoToItem):
              (WebCore::FrameLoader::childFramesMatchItem):
              (WebCore::FrameLoader::updateHistoryForStandardLoad):
              (WebCore::FrameLoader::updateHistoryForClientRedirect):
              (WebCore::FrameLoader::updateHistoryForBackForwardNavigation):
              (WebCore::FrameLoader::updateHistoryForReload):
              (WebCore::FrameLoader::updateHistoryForInternalLoad):
              (WebCore::FrameLoader::updateHistoryForCommit):
              (WebCore::FrameLoader::saveDocumentAndScrollState):
              (WebCore::FrameLoader::currentHistoryItem):
              (WebCore::FrameLoader::previousHistoryItem):
              (WebCore::FrameLoader::provisionalHistoryItem):
              (WebCore::FrameLoader::setCurrentHistoryItem):
              (WebCore::FrameLoader::setPreviousHistoryItem):
              (WebCore::FrameLoader::setProvisionalHistoryItem):
              * loader/FrameLoader.h:
      
              * loader/FrameLoaderClient.h:
      
              * loader/mac/DocumentLoaderMac.mm:
              (WebCore::DocumentLoader::DocumentLoader):
              (WebCore::DocumentLoader::getResponseRefreshAndModifiedHeaders):
              (WebCore::DocumentLoader::commitIfReady):
              (WebCore::DocumentLoader::urlForHistory):
      
              * loader/mac/FrameLoaderMac.mm:
              (WebCore::FrameLoader::load):
              (WebCore::FrameLoader::startLoading):
              (WebCore::FrameLoader::receivedMainResourceError):
              (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
              (WebCore::FrameLoader::opened):
              (WebCore::FrameLoader::dataURLBaseFromRequest):
              (WebCore::FrameLoader::didChangeTitle):
              (WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
              (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
      
              * page/FrameTree.cpp:
              (WebCore::FrameTree::removeChild):
      
              * page/Page.cpp: Transfered a handful of concepts from WebView
              (WebCore::Page::Page):
              (WebCore::Page::~Page):
              (WebCore::Page::backForwardList):
              (WebCore::Page::goBack):
              (WebCore::Page::goForward):
              (WebCore::Page::goToItem):
              * page/Page.h:
      
              * page/PageState.h:
              * page/mac/FrameMac.h:
              * page/mac/FrameMac.mm:
              * page/mac/WebCoreFrameBridge.h:
              * page/mac/WebCoreFrameBridge.mm:
      
              * platform/KURL.cpp:
              (WebCore::KURL::print):  Added debug only method for debugging convenience
              * platform/KURL.h:
      
              * platform/Logging.cpp:
              (WebCore::): Added some logging channels
              * platform/Logging.h:
      
              * platform/PlatformString.h:
              (WebCore::nsStringNilIfEmpty): Added for WebKit use
      
              * platform/SystemTime.h: Added userIdleTime()
      
              * platform/graphics/svg/SVGImage.cpp:
              * platform/graphics/svg/SVGImageEmptyClients.h: Updated for new FrameLoaderClient methods
              (WebCore::SVGEmptyFrameLoaderClient::setDocumentViewFromPageCache):
              (WebCore::SVGEmptyFrameLoaderClient::updateGlobalHistoryForStandardLoad):
              (WebCore::SVGEmptyFrameLoaderClient::updateGlobalHistoryForReload):
              (WebCore::SVGEmptyFrameLoaderClient::shouldGoToHistoryItem):
              (WebCore::SVGEmptyFrameLoaderClient::saveScrollPositionAndViewStateToItem):
              (WebCore::SVGEmptyFrameLoaderClient::saveDocumentViewToPageCache):
              (WebCore::SVGEmptyFrameLoaderClient::canCachePage):
              (WebCore::SVGEmptyEditorClient::~SVGEmptyEditorClient):
      
              * platform/mac/LoggingMac.mm:
              (WebCore::InitializeLoggingChannelsIfNecessary):
      
              * platform/mac/SystemTimeMac.cpp:
              (WebCore::userIdleTime):
      
              * platform/mac/WebCoreSystemInterface.h: Added wkSecondsSinceLastInput for use in userIdleTime
              * platform/mac/WebCoreSystemInterface.mm:
      
              * platform/network/FormData.cpp:
              (WebCore::FormData::FormData):
              (WebCore::FormData::copy):
              * platform/network/FormData.h:
      
              * platform/network/ResourceHandle.h:
              * platform/network/mac/ResourceHandleMac.mm:
              (WebCore::ResourceHandle::willLoadFromCache): For "are you sure you want to resubmit?" nag
      
              * platform/qt/TemporaryLinkStubs.cpp:
              (WebCore::userIdleTime):
              * rendering/RenderPart.h:
      
      WebKit:
      
              Reviewed extensively and repeatedly by Darin
      
              <rdar://problem/4887137> - WebCore Back/Forward Cache 
              Most things not specifically commented on in the ChangeLog can be summed up as 
              "Do things exactly the same way as we used to, but just stick in WebCore-land as much as possible"
      
              * History/WebBackForwardList.mm:
              (kitPrivate): Convenience functions to help with subbing "WebBackForwardListPrivate" for WebCore::BackForwardList
              (core):
              (backForwardListWrappers): A HashMap pattern used to map WebCore objects to their WebKit counterpart
              (kit):
              (+[WebBackForwardList setDefaultPageCacheSizeIfNecessary]):
              (-[WebBackForwardList initWithWebCoreBackForwardList:]):
              (-[WebBackForwardList init]):
              (-[WebBackForwardList dealloc]):
              (-[WebBackForwardList finalize]):
              (-[WebBackForwardList _close]):
              (-[WebBackForwardList addItem:]):
              (-[WebBackForwardList removeItem:]):
              (-[WebBackForwardList containsItem:]):
              (-[WebBackForwardList goBack]):
              (-[WebBackForwardList goForward]):
              (-[WebBackForwardList goToItem:]):
              (-[WebBackForwardList backItem]):
              (-[WebBackForwardList currentItem]):
              (-[WebBackForwardList forwardItem]):
              (vectorToNSArray):
              (-[WebBackForwardList backListWithLimit:]):
              (-[WebBackForwardList forwardListWithLimit:]):
              (-[WebBackForwardList capacity]):
              (-[WebBackForwardList setCapacity:]):
              (-[WebBackForwardList description]):
              (-[WebBackForwardList _clearPageCache]):
              (-[WebBackForwardList setPageCacheSize:]):
              (-[WebBackForwardList pageCacheSize]):
              (-[WebBackForwardList _usesPageCache]):
              (-[WebBackForwardList backListCount]):
              (-[WebBackForwardList forwardListCount]):
              (-[WebBackForwardList itemAtIndex:]):
              * History/WebBackForwardListInternal.h: Added.
      
              * History/WebHistory.m: Removed.
              * History/WebHistory.mm: Added - Needed to be .mm to accept C++ header style
              (-[_WebCoreHistoryProvider containsItemForURLLatin1:length:]):
              (-[_WebCoreHistoryProvider containsItemForURLUnicode:length:]):
      
              * History/WebHistoryItem.mm:
              (kitPrivate): Same pattern as WebBackForwardList
              (core):
              (historyItemWrappers):
              (WKNotifyHistoryItemChanged):
              (-[WebHistoryItem init]):
              (-[WebHistoryItem initWithURLString:title:lastVisitedTimeInterval:]):
              (-[WebHistoryItem dealloc]):
              (-[WebHistoryItem finalize]):
              (-[WebHistoryItem copyWithZone:]):
              (-[WebHistoryItem URLString]):
              (-[WebHistoryItem originalURLString]):
              (-[WebHistoryItem title]):
              (-[WebHistoryItem setAlternateTitle:]):
              (-[WebHistoryItem alternateTitle]):
              (-[WebHistoryItem icon]):
              (-[WebHistoryItem lastVisitedTimeInterval]):
              (-[WebHistoryItem hash]):
              (-[WebHistoryItem isEqual:]):
              (-[WebHistoryItem description]):
              (kit):
              (+[WebHistoryItem entryWithURL:]):
              (+[WebHistoryItem initWindowWatcherIfNecessary]):
              (-[WebHistoryItem initWithURL:target:parent:title:]):
              (-[WebHistoryItem initWithWebCoreHistoryItem:]):
              (-[WebHistoryItem setTitle:]):
              (-[WebHistoryItem setVisitCount:]):
              (-[WebHistoryItem setViewState:]):
              (-[WebHistoryItem _mergeAutoCompleteHints:]):
              (-[WebHistoryItem initFromDictionaryRepresentation:]):
              (-[WebHistoryItem scrollPoint]):
              (-[WebHistoryItem _transientPropertyForKey:]):
              (-[WebHistoryItem _setTransientProperty:forKey:]):
              (-[WebHistoryItem dictionaryRepresentation]):
              (-[WebHistoryItem target]):
              (-[WebHistoryItem isTargetItem]):
              (-[WebHistoryItem visitCount]):
              (-[WebHistoryItem RSSFeedReferrer]):
              (-[WebHistoryItem setRSSFeedReferrer:]):
              (-[WebHistoryItem children]):
              (-[WebHistoryItem setAlwaysAttemptToUsePageCache:]):
              (-[WebHistoryItem URL]):
              (-[WebHistoryItem _setLastVisitedTimeInterval:]):
              (-[WebHistoryItem _lastVisitedDate]):
              (-[WebHistoryItem targetItem]):
              (+[WebHistoryItem _releaseAllPendingPageCaches]):
              (-[WebWindowWatcher windowWillClose:]):
              * History/WebHistoryItemInternal.h:
              * History/WebHistoryItemPrivate.h:
      
              * WebCoreSupport/WebFrameBridge.mm:
              * WebCoreSupport/WebFrameLoaderClient.h:
              * WebCoreSupport/WebFrameLoaderClient.mm:
              (WebFrameLoaderClient::setDocumentViewFromPageCache):
              (WebFrameLoaderClient::detachedFromParent1):
              (WebFrameLoaderClient::loadedFromPageCache):
              (WebFrameLoaderClient::updateGlobalHistoryForStandardLoad):
              (WebFrameLoaderClient::updateGlobalHistoryForReload):
              (WebFrameLoaderClient::shouldGoToHistoryItem):
              (WebFrameLoaderClient::frameLoadCompleted):
              (WebFrameLoaderClient::saveScrollPositionAndViewStateToItem):
              (WebFrameLoaderClient::restoreScrollPositionAndViewState):
              (WebFrameLoaderClient::provisionalLoadStarted):
              (WebFrameLoaderClient::setTitle):
              (WebFrameLoaderClient::saveDocumentViewToPageCache):
              (WebFrameLoaderClient::canCachePage):
      
              * WebCoreSupport/WebSystemInterface.m:
              (InitWebCoreSystemInterface):
      
              * WebKit.xcodeproj/project.pbxproj:
      
              * WebView/WebDataSource.mm:
              * WebView/WebDataSourceInternal.h:
      
              * WebView/WebFrame.mm:
              (-[WebFramePrivate dealloc]):
              (-[WebFrame _canCachePage]):
              (-[WebFrame _loadURL:referrer:intoChild:]):
              * WebView/WebFrameInternal.h:
      
              * WebView/WebFrameView.mm:
              (-[WebFrameView initWithFrame:]):
              (-[WebFrameView keyDown:]):
      
              * WebView/WebHTMLView.m:
              (-[WebHTMLView closeIfNotCurrentView]): Added for a dirty hack in WebCore that is marked with a FIXME Radar
              * WebView/WebHTMLViewInternal.h:
      
              * WebView/WebView.mm:
              (-[WebViewPrivate init]):
              (-[WebViewPrivate dealloc]):
              (-[WebView _close]):
              (-[WebView _loadBackForwardListFromOtherView:]):
              (-[WebView _commonInitializationWithFrameName:groupName:]):
              (-[WebView initWithCoder:]):
              (-[WebView backForwardList]):
              (-[WebView goBack]):
              (-[WebView goForward]):
              (-[WebView goToBackForwardItem:]):
              (-[WebView canGoBack]):
              (-[WebView canGoForward]):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@18541 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      50c3bd88