⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Mar 11, 2007:

12:21 AM Changeset in webkit [20102] by ap
  • 16 edits in trunk

Reviewed by Darin.

A partial fix for http://bugs.webkit.org/show_bug.cgi?id=13021
XPath can be very slow

  • xml/XPathExpression.cpp: (WebCore::XPathExpression::evaluate): Cache evaluationContext in a local variable.
  • xml/XPathExpressionNode.cpp: (WebCore::XPath::Expression::evaluationContext):
  • xml/XPathExpressionNode.h: (WebCore::XPath::Expression::addSubExpression): (WebCore::XPath::Expression::subExprCount): (WebCore::XPath::Expression::subExpr):
  • xml/XPathFunctions.cpp:
  • xml/XPathFunctions.h: (WebCore::XPath::Function::setName): (WebCore::XPath::Function::arg): (WebCore::XPath::Function::argCount): (WebCore::XPath::Function::name): Made one-liners critical for performance inline.
  • xml/XPathGrammar.y: Fully parse NodeTests, so that strings are no longer passed for what is essentially an enum. Use LocationPath accessors to add steps, instead of directly manipulating internal data members.
  • xml/XPathParser.cpp: (WebCore::XPath::Parser::parseStatement): (WebCore::XPath::Parser::registerNodeTest): (WebCore::XPath::Parser::deleteNodeTest):
  • xml/XPathParser.h: Added support methods for changes in XPathGrammar.y.
  • xml/XPathPath.cpp: (WebCore::XPath::Filter::evaluate): Cache evaluationContext in a local variable. Use swap() to avoid performing vector assignments. (WebCore::XPath::LocationPath::evaluate): Use swap() to avoid performing vector assignments. (WebCore::XPath::LocationPath::optimizeStepPair): This new method is called during LocationPath construction, to simplify the path as it's being built. Currently, the only optimized case is "*" - it is a basis for important operations that cannot be efficiently written in XPath 1.0, but can be optimized with a little bit of XPath 2.0. (WebCore::XPath::LocationPath::appendStep): A new accessor that modifies m_steps and calls optimizeStepPair(). (WebCore::XPath::LocationPath::insertFirstStep): Ditto.
  • xml/XPathPath.h: (WebCore::XPath::LocationPath::setAbsolute): A new accessor.
  • xml/XPathStep.h: (WebCore::XPath::Step::NodeTest::): (WebCore::XPath::Step::NodeTest::NodeTest): (WebCore::XPath::Step::NodeTest::kind): (WebCore::XPath::Step::NodeTest::data): Step::NodeTest is a new sub-class that represents a fully parsed NodeTest. (WebCore::XPath::Step::axis): (WebCore::XPath::Step::nodeTest): (WebCore::XPath::Step::nodeTestData): (WebCore::XPath::Step::namespaceURI): (WebCore::XPath::Step::predicates): (WebCore::XPath::Step::setAxis): (WebCore::XPath::Step::setNodeTest): (WebCore::XPath::Step::setNodeTestData): (WebCore::XPath::Step::setNamespaceURI): (WebCore::XPath::Step::setPredicates): New accessors that let optimizeStepPair() manipulate Step data.
  • xml/XPathStep.cpp: (WebCore::XPath::Step::Step): Use the new NodeTest class. (WebCore::XPath::Step::evaluate): Cache evaluationContext in a local variable. Use swap() to avoid performing unneeded vector assignments. (WebCore::XPath::Step::nodesInAxis): Cosmetic changes. (WebCore::XPath::Step::nodeTestMatches): Use NodeTest instead of parsing the test from string each time. Added a partial implementation of XPath 2.0 element() node test.
12:10 AM Changeset in webkit [20101] by ap
  • 4 edits
    2 adds in trunk

Reviewed by Darin.

http://bugs.webkit.org/show_bug.cgi?id=12249
FCKeditor: <hr>, <ul> and <ol> have id="undefined"

This fixes the attached reduction, but not the original issue.

Test: editing/execCommand/default-parameters.html

  • dom/Document.h:
  • dom/Document.idl: Make second and third execCommand() parameters optional.

Mar 10, 2007:

10:49 PM Changeset in webkit [20111] by kjk
  • 5 edits in trunk/WebCore

Not reviewed - gdk build fixes.

  • platform/gdk/EditorClientGdk.cpp: (WebCore::EditorClientGdk::respondToChangedSelection): add stub
  • platform/gdk/EditorClientGdk.h:
  • platform/gdk/FrameGdk.cpp:
  • platform/gdk/TemporaryLinkStubs.cpp: (Editor::markMisspellings): add stub
10:39 PM Changeset in webkit [20110] by ap
  • 6 edits
    2 adds in trunk

Reviewed by Adele.

http://bugs.webkit.org/show_bug.cgi?id=12560
W3C XPath test Text_Nodes.svg fails

WebCore:

  • xml/XPathStep.cpp: (WebCore::XPath::Step::nodeTestMatches): Revert the fix, as the behavior doesn't appear all that desirable as it did at first glance.

LayoutTests:

  • dom/svg/level3/xpath/Text_Nodes-expected.txt: This fails again.
  • fast/xpath/4XPath/Borrowed/kd_20010423-expected.txt:
  • fast/xpath/4XPath/Borrowed/kd_20010423.html: Brought the test back to its original form (in which Firefox passes).
  • fast/xpath/text-nodes-expected.txt: Added.
  • fast/xpath/text-nodes.html: Added. A new test for text nodes, verifying some more arcane cases.
10:34 PM Changeset in webkit [20109] by oliver
  • 3 edits
    2 adds in trunk

2007-03-11 Oliver Hunt <oliver@apple.com>

Reviewed by hyatt.

Fix for <rdar://problem/5055690> ASSERTION failure on drop into
editable element with content changed on drop

After setting the selection for a drop into an editable region
we make sure the we succeeded. If we didn't we assume a focus handler
or similar altered the element contents and try again, if the second
attempt fails we bail out.

  • page/DragController.cpp: (WebCore::setSelectionToDragCaret): (WebCore::DragController::concludeDrag):

LayoutTests:

<rdar://problem/5055690> ASSERTION failure on drop into editable element with content changed on drop

  • fast/events/content-changed-during-drop-expected.txt: Added.
  • fast/events/content-changed-during-drop.html: Added.
9:46 PM Changeset in webkit [23058] by oliver
  • 5 edits in branches/WindowsMerge

2007-03-11 Oliver Hunt <oliver@apple.com>

Reviewed by Adele.

WebCoreWin:

Removed Frame::respondToChangedSelection stub
added Editor::markMisspellings stub

  • platform/win/TemporaryLinkStubs.cpp: (WebCore::Editor::markMisspellings):

WebKitWin:

Stubbed WebEditorClient::respondToChangedSelection

  • WebEditorClient.cpp: (WebEditorClient::respondToChangedSelection):
  • WebEditorClient.h:
9:41 PM Changeset in webkit [20108] by oliver
  • 16 edits in trunk

2007-03-11 Oliver Hunt <oliver@apple.com>

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:
8:24 PM Changeset in webkit [20107] by darin
  • 2 edits in trunk/WebKit

Reviewed by Adele.

  • Plugins/WebBaseNetscapePluginStream.m: (-[WebBaseNetscapePluginStream startStreamResponseURL:expectedContentLength:lastModifiedDate:MIMEType:]): At every place we call the plug-in, since it could destroy the stream, get pluginView into a local variable; it will be set to nil if the stream is destroyed. (-[WebBaseNetscapePluginStream _destroyStream]): Added calls to retain/release to handle the case where one of the calls to the plug-in destroys the stream. Added a call to cancelPreviousPerformRequestsWithTarget in case _deliverData has been scheduled but not yet delivered. Also get pluginView into a local variable as mentioned above, and check at strategic points and exit if the stream was already destroyed to avoid multiple calls to NPP_DestroyStream or NPP_URLNotify. (-[WebBaseNetscapePluginStream _deliverData]): Ditto.
6:32 PM Changeset in webkit [20106] by beidson
  • 2 edits in trunk

Fixed my name in the 2 ChangeLogs kjk just comitted

6:09 PM Changeset in webkit [20105] by kjk
  • 4 edits in trunk

WebCore:

Reviewed by Brady Edison.

Linux/gdk fix.

  • loader/gdk/FrameLoaderClientGdk.cpp: (WebCore::FrameLoaderClientGdk::shouldGoToHistoryItem): return true so that FrameLoader:goBackOrForwards() works.

WebKitTools:

Reviewed by Brady Edison.

Add forward/backward/quit menus for easier testing.

  • GdkLauncher/main.cpp: (menuMainBackCb): (menuMainForwardCb): (menuMainQuitCb): (main):
5:01 PM Changeset in webkit [23057] by ggaren
  • 2 edits in branches/WindowsMerge/WebCore

Reviewed by Darin Adler.

Fixed <rdar://problem/4587763> PAC file: lock inversion between QT and
JSCore causes a hang @ www.panoramas.dk


See JavaScriptCore ChangeLog for details.


Stress test doesn't show any problems.


Drop the JSLock before making calls through the plug-in API from functions
that may have been called by JavaScript.


  • plugins/win/PluginViewWin.cpp: (WebCore::PluginViewWin::paint): (WebCore::PluginViewWin::handleKeyboardEvent): (WebCore::PluginViewWin::handleMouseEvent): (WebCore::PluginViewWin::setNPWindowRect): (WebCore::PluginViewWin::start): (WebCore::PluginViewWin::stop): (WebCore::PluginViewWin::performRequest): (WebCore::PluginViewWin::bindingInstance):
4:57 PM Changeset in webkit [20104] by ggaren
  • 23 edits in trunk

JavaScriptCore:

Reviewed by Darin Adler.

Fixed <rdar://problem/4587763> PAC file: lock inversion between QT and
JSCore causes a hang @ www.panoramas.dk


With a PAC file, run-webkit-tests --threaded passes, the reported site
works, and all the Quicktime/JavaScript and Flash/JavaScript examples
I found through Google work, too.


Any time JavaScript causes arbitrary non-JavaScript code to execute, it
risks deadlock, because that code may block, trying to acquire a lock
owned by a thread that is waiting to execute JavaScript. In this case,
the thread was a networking thread that was waiting to interpret a PAC file.


Because non-JavaScript code may execute in response to, well, anything,
a perfect solution to this problem is impossible. I've implemented an
optimistic solution, instead: JavaScript will drop its lock whenever it
makes a direct call to non-JavaScript code through a bridging/plug-in API,
but will blissfully ignore the indirect ways it may cause non-JavaScript
code to run (resizing a window, for example).


Unfortunately, this solution introduces significant locking overhead in
the bridging APIs. I don't see a way around that.

This patch includes some distinct bug fixes I saw along the way:


  • bindings/objc/objc_instance.mm: Fixed a bug where a nested begin() call would leak its autorelease pool, because it would NULL out _pool without draining it.
  • bindings/runtime_object.cpp: (RuntimeObjectImp::methodGetter): Don't copy an Identifier to ASCII only to turn around and make an Identifier from the ASCII. In an earlier version of this patch, the copy caused an assertion failure. Now it's just unnecessary work. (RuntimeObjectImp::getOwnPropertySlot): ditto
  • bindings/objc/objc_instance.h: Removed overrides of setVAlueOfField and getValueOfField, because they did exactly what the base class versions did. Removed overrides of Noncopyable declarations for the same reason.
  • bindings/runtime.h: Inherit from Noncopyable instead of rolling our own.
  • bindings/c/c_instance.h: ditto

And the actual patch:


  • API/JSCallbackConstructor.cpp: Drop all locks when calling out to C. (KJS::JSCallbackConstructor::construct):
  • API/JSCallbackFunction.cpp: ditto (KJS::JSCallbackFunction::callAsFunction):
  • API/JSCallbackObject.cpp: ditto (KJS::JSCallbackObject::init): (KJS::JSCallbackObject::~JSCallbackObject): (KJS::JSCallbackObject::getOwnPropertySlot): (KJS::JSCallbackObject::put): (KJS::JSCallbackObject::deleteProperty): (KJS::JSCallbackObject::construct): (KJS::JSCallbackObject::hasInstance): (KJS::JSCallbackObject::callAsFunction): (KJS::JSCallbackObject::getPropertyNames): (KJS::JSCallbackObject::toNumber): (KJS::JSCallbackObject::toString): (KJS::JSCallbackObject::staticValueGetter): (KJS::JSCallbackObject::callbackGetter):


  • bindings/c/c_instance.cpp: Drop all locks when calling out to C. (KJS::Bindings::CInstance::invokeMethod): (KJS::Bindings::CInstance::invokeDefaultMethod):
  • bindings/c/c_runtime.cpp: Drop all locks when calling out to C. (KJS::Bindings::CField::valueFromInstance): (KJS::Bindings::CField::setValueToInstance):
  • bindings/jni/jni_objc.mm: (KJS::Bindings::dispatchJNICall): Drop all locks when calling out to Java.
  • bindings/objc/objc_instance.mm: The changes here are to accomodate the fact that C++ unwinding of DropAllLocks goes crazy when you put it inside a @try block. I moved all JavaScript stuff outside of the @try blocks, and then prefixed the whole blocks with DropAllLocks objects. This required some supporting changes in other functions, which now acquire the JSLock for themselves, intead of relying on their callers to do so. (ObjcInstance::end): (ObjcInstance::invokeMethod): (ObjcInstance::invokeDefaultMethod): (ObjcInstance::setValueOfUndefinedField): (ObjcInstance::getValueOfUndefinedField):
  • bindings/objc/objc_runtime.mm: Same as above, except I didn't want to change throwError to acquire the JSLock for itself. (ObjcField::valueFromInstance): (ObjcField::setValueToInstance):
  • bindings/objc/objc_utility.mm: Supporting changes mentioned above. (KJS::Bindings::convertValueToObjcValue): (KJS::Bindings::convertObjcValueToValue):
  • kjs/JSLock.cpp: (1) Fixed DropAllLocks to behave as advertised, and drop the JSLock only if the current thread actually acquired it in the first place. This is important because WebKit needs to ensure that the JSLock has been dropped before it makes a plug-in call, even though it doesn't know if the current thread actually acquired the JSLock. (We don't want WebKit to accidentally drop a lock belonging to *another thread*.) (2) Used the new per-thread code written for (1) to make recursive calls to JSLock very cheap. JSLock now knows to call pthread_mutext_lock/ pthread_mutext_unlock only at nesting level 0. (KJS::createDidLockJSMutex): (KJS::JSLock::lock): (KJS::JSLock::unlock): (KJS::DropAllLocks::DropAllLocks): (KJS::DropAllLocks::~DropAllLocks): (KJS::JSLock::lockCount):
  • kjs/JSLock.h: Don't duplicate Noncopyable. (KJS::JSLock::~JSLock):
  • wtf/Assertions.h: Blind attempt at helping the Windows build.

WebCore:

Reviewed by Darin Adler.

Fixed <rdar://problem/4587763> PAC file: lock inversion between QT and
JSCore causes a hang @ www.panoramas.dk


See JavaScriptCore ChangeLog for details.


  • bindings/objc/WebScriptObject.mm: (_didExecute): Added helpful ASSERT. (+[WebScriptObject throwException:]): Added missing JSLock.

WebKit:

Reviewed by Darin Adler.

Fixed <rdar://problem/4587763> PAC file: lock inversion between QT and
JSCore causes a hang @ www.panoramas.dk


See JavaScriptCore ChangeLog for details.

Drop the JSLock before making calls through the plug-in API from functions
that may have been called by JavaScript.


  • Plugins/WebBaseNetscapePluginView.mm: (-[WebBaseNetscapePluginView sendEvent:]): (-[WebBaseNetscapePluginView setWindowIfNecessary]): (-[WebBaseNetscapePluginView initWithFrame:pluginPackage:URL:baseURL:MIMEType:attributeKeys:attributeValues:loadManually:DOMElement:]): (-[WebBaseNetscapePluginView createPluginScriptableObject]): (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:]): (-[WebBaseNetscapePluginView webFrame:didFinishLoadWithReason:]): (-[WebBaseNetscapePluginView loadPluginRequest:]): (-[WebBaseNetscapePluginView _printedPluginBitmap]):
  • Plugins/WebPluginController.mm: (+[WebPluginController plugInViewWithArguments:fromPluginPackage:]): (-[WebPluginController startAllPlugins]): (-[WebPluginController stopAllPlugins]): (-[WebPluginController addPlugin:]): (-[WebPluginController destroyPlugin:]): (-[WebPluginController destroyAllPlugins]):
4:14 AM Changeset in webkit [20103] by antti
  • 7 edits in trunk/WebCore

Reviewed by Hyatt.

Optimize linebox memory consumption:

  • move all bitfields to baseclass compacting them
  • make InlineTextBox::m_truncation unsigned short and make it relative to m_start
  • remove extremely rarely used EllipsisBox pointer from RootInlineBox and instead use a global hashmap to store it if needed
  • use minimum required number of bits to store BidiStatus enum variables in RootInlineBox
  • move overflow variables in RootInlineBox to a separate struct that is instantiated only if any of the variables is set to a value that can't trivially be derived from box x, y, width and height


As a result line box objects shrink:

InlineBox: 44 -> 44 bytes
InlineTextBox: 68 -> 60 bytes
InlineFlowBox: 68 -> 64 bytes
RootInlineBox: 128 -> 88 bytes


The optimizations possiblity was noticed when debugging http://bugs.webkit.org/show_bug.cgi?id=12833
Bug 12833: REGRESSION: Selecting text in 6.6MB txt file is sluggish as of the Feb 19th nightly
<rdar://problem/5028159>


On that page the patch saves 11.5MB or some 21% of linebox memory consumption. It also
actually improves selection performance somewhat by improving memory locality.

  • rendering/InlineBox.h: (WebCore::InlineBox::InlineBox):
  • rendering/InlineFlowBox.h: (WebCore::InlineFlowBox::InlineFlowBox):
  • rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::placeEllipsisBox): (WebCore::InlineTextBox::nodeAtPoint): (WebCore::InlineTextBox::paint): (WebCore::InlineTextBox::paintDecoration): (WebCore::InlineTextBox::paintSpellingOrGrammarMarker): (WebCore::InlineTextBox::paintMarkedTextUnderline):
  • rendering/InlineTextBox.h: (WebCore::InlineTextBox::InlineTextBox):
  • rendering/RootInlineBox.cpp: (WebCore::throw): (WebCore::RootInlineBox::Overflow::operator delete): (WebCore::RootInlineBox::Overflow::destroy): (WebCore::RootInlineBox::destroy): (WebCore::RootInlineBox::detachEllipsisBox): (WebCore::RootInlineBox::clearTruncation): (WebCore::RootInlineBox::placeEllipsis): (WebCore::RootInlineBox::paintEllipsisBox): (WebCore::RootInlineBox::addHighlightOverflow): (WebCore::RootInlineBox::nodeAtPoint): (WebCore::RootInlineBox::adjustPosition): (WebCore::RootInlineBox::selectionTop): (WebCore::RootInlineBox::setLineBreakInfo): (WebCore::RootInlineBox::ellipsisBox): (WebCore::RootInlineBox::setVerticalOverflowPositions): (WebCore::RootInlineBox::setHorizontalOverflowPositions): (WebCore::RootInlineBox::setVerticalSelectionPositions):
  • rendering/RootInlineBox.h: (WebCore::RootInlineBox::RootInlineBox): (WebCore::RootInlineBox::topOverflow): (WebCore::RootInlineBox::bottomOverflow): (WebCore::RootInlineBox::leftOverflow): (WebCore::RootInlineBox::rightOverflow): (WebCore::RootInlineBox::lineBreakBidiStatus): (WebCore::RootInlineBox::selectionBottom): (WebCore::RootInlineBox::Overflow::Overflow):

Mar 10, 2007:

3:37 PM Changeset in webkit [20100] by adele
  • 2 edits in trunk/WebCore

Reviewed by Maciej.

Fix for http://bugs.webkit.org/show_bug.cgi?id=13028
REGRESSION: textField:doCommandBySelector:inFrame: not being called properly

  • html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler): Before calling the base class defaultEventHandler, which will call handleKeypress, call doTextFieldCommandFromEvent.
2:46 PM Changeset in webkit [20099] by ddkilzer
  • 3 edits
    2 adds in trunk

LayoutTests:

Reviewed by Darin.

  • fast/forms/listbox-typeahead-scroll-expected.txt: Added.
  • fast/forms/listbox-typeahead-scroll.html: Added.

WebCore:

Reviewed by Darin.

Test: fast/forms/listbox-typeahead-scroll.html

  • html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::setSelectedIndex): Reordered to set the active selection's anchor and end before selecting the option, since the active selection is used to decide where to scroll when the selection is made. (WebCore::HTMLSelectElement::defaultEventHandler): Removed redundant check.
2:43 PM Changeset in webkit [20098] by ddkilzer
  • 7 edits
    4 adds in trunk

LayoutTests:

Reviewed by Darin.

  • fast/dom/css-cached-import-rule-expected.checksum: Added.
  • fast/dom/css-cached-import-rule-expected.png: Added.
  • fast/dom/css-cached-import-rule-expected.txt: Added.
  • fast/dom/css-cached-import-rule.html: Added.

WebCore:

Reviewed by Darin.

Test: fast/dom/css-cached-import-rule.html

Replaced some direct calls to document->stylesheetLoaded() with calls to
the sheet's checkLoaded(). The latter calls back to the element's sheetLoaded() --
which notifies the document of the load -- and then updates the sheet's
loadCompleted() flag, ensuring that it stays in sync with whether the stylesheet
is still considered pending by the document.

  • dom/ProcessingInstruction.cpp: (WebCore::ProcessingInstruction::parseStyleSheet):
  • dom/StyleElement.cpp: (WebCore::StyleElement::childrenChanged):
  • html/HTMLLinkElement.cpp: (WebCore::HTMLLinkElement::process): (WebCore::HTMLLinkElement::setCSSStyleSheet):
  • ksvg2/svg/SVGStyleElement.cpp: (WebCore::SVGStyleElement::sheetLoaded):
  • ksvg2/svg/SVGStyleElement.h:
2:38 PM Changeset in webkit [20097] by ddkilzer
  • 4 edits in trunk

WebCore:

Reviewed by Darin.

  • WebCore.exp: Export WebCore::Image::loadPlatformResource(const char*) for use in [WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:].

WebKit:

Reviewed by Darin.

  • WebView/WebHTMLView.mm: (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): Use WebCore::Image::loadPlatformResource(const char*) to load the missingImage image.
12:17 AM Changeset in webkit [23056] by andersca
  • 2 edits in branches/WindowsMerge/WebKitWin

Reviewed by Adam.

  • DOMCoreClasses.cpp: (DOMNode::textContent): Implement this.
12:08 AM Changeset in webkit [20096] by bdash
  • 2 edits in trunk/WebKit

2007-03-10 Mark Rowe <mrowe@apple.com>

Reviewed by John.

<rdar://problem/5051827> HIWebView handling of kEventControlGetData is broken in 64-bit

On Leopard the kEventParamControlDataBufferSize event parameter is of type typeByteCount.
The 32-bit implementation of GetEventParameter will coerce between integer types and
typeByteCount while the 64-bit version will return a failure. As typeByteCount is new
in Leopard we must continue using typeSInt32 when building for Tiger.

  • Carbon/HIWebView.m: (HIWebViewEventHandler):
Note: See TracTimeline for information about the timeline view.