- 20 Apr, 2009 2 commits
-
-
mitz@apple.com authored
Reviewed by Mark Rowe. - fix <rdar://problem/6734365> REGRESSION eBay "Save this search" link does nothing the second time search results are opened Test: fast/dom/HTMLScriptElement/nested-execution.html Instead of executing scripts as soon as they finish loading, which may happen synchronously during execution of another script, defer their execution until the next run loop iteration, using a queue that is similar to the HTML5 notion of the "list of scripts that will execute as soon as possible", and in my testing was consistent with how Firefox behaved. * dom/Document.cpp: (WebCore::Document::Document): Initialize m_executeScriptSoonTimer. (WebCore::Document::~Document): deref() script elements in m_scriptsToExecuteSoon. (WebCore::Document::executeScriptSoonTimerFired): Added. Executes the scripts in m_scriptsToExecuteSoon and deref()s them. (WebCore::Document::executeScriptSoon): Added. Appends to m_scriptsToExecuteSoon and ref()s the script element, which keeps the ScriptElementData alive as well. * dom/Document.h: * dom/ScriptElement.cpp: (WebCore::ScriptElementData::ScriptElementData): Initialize m_requested. (WebCore::ScriptElementData::requestScript): Set m_requested to true, to prevent further load requests. (WebCore::ScriptElementData::execute): Added. Moved the code from notifyFinished() which should not execute synchronously here, to be called by the Document on a 0-interval timer. (WebCore::ScriptElementData::notifyFinished): Moved the code to dispatch events and evaluate the script, which should not execute synchronously, out of here. (WebCore::ScriptElementData::ignoresLoadRequest): Changed to test for m_requested instead of m_cachedScript, because the latter is cleared before the script is evaluated. * dom/ScriptElement.h: LayoutTests: Reviewed by Mark Rowe. - test and updated tests for <rdar://problem/6734365> eBay "Save this search" link does nothing the second time search results are opened * fast/dom/HTMLScriptElement/nested-execution-expected.txt: Added. * fast/dom/HTMLScriptElement/nested-execution.html: Added. * fast/dom/HTMLScriptElement/resources/nested-execution.js: Added. * fast/dom/HTMLScriptElement/script-reexecution.html: * fast/dom/HTMLScriptElement/script-set-src.html: * fast/dom/script-element-gc.html: * fast/loader/local-JavaScript-from-local.html: * svg/dom/SVGScriptElement/script-reexecution.svg: * svg/dom/SVGScriptElement/script-set-href.svg: git-svn-id: svn://svn.chromium.org/blink/trunk@42665 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
rdar://problem/6127705oliver@apple.com authored
Reviewed by Antti Koivisto and Darin Adler When we fail to decode an image we clear most of the image data, but not the input data itself, which can be backed by a CFData object that itself holds onto a few hundred Kbs of memory. This patch merely ensures that this buffer gets cleared. git-svn-id: svn://svn.chromium.org/blink/trunk@42664 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
- 19 Apr, 2009 19 commits
-
-
darin@apple.com authored
* StringsNotToBeLocalized.txt: Updated for recent changes. git-svn-id: svn://svn.chromium.org/blink/trunk@42663 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
weinig@apple.com authored
Reviewed by Darin Adler. Better fix for JSStringCreateWithCFString hardening. * API/JSStringRefCF.cpp: (JSStringCreateWithCFString): git-svn-id: svn://svn.chromium.org/blink/trunk@42662 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
darin@apple.com authored
git-svn-id: svn://svn.chromium.org/blink/trunk@42661 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
darin@apple.com authored
Reviewed by Sam Weinig. Add hoooks so sudden termination will not cause loss of icons or local storage. rdar://problem/5951701 * loader/icon/IconDatabase.cpp: Marked various constants static to give them internal linkage. (WebCore::IconDatabase::IconDatabase): Added initial value for m_syncTimer. Removed unneeded initial value for m_defaultIconRecord. Changed assertion to work cross-platform. (WebCore::IconDatabase::wakeSyncThread): Added disableSuddenTermination, so we won't terminate until the sync thread has done its thing. (WebCore::IconDatabase::scheduleOrDeferSyncTimer): Added disableSuddenTermination, so we won't terminate if we have an outstanding sync timer. (WebCore::IconDatabase::syncTimerFired): Added enableSuddenTermination, to balance the one in scheduleOrDeferSyncTimer. (WebCore::IconDatabase::syncThreadMainLoop): Added enableSuddenTermination, to balance the one in wakeSyncThread. (WebCore::IconDatabase::deleteAllPreparedStatements): Use clear() instead of set(0). * loader/icon/IconDatabase.h: Use a Timer instead of an OwnPtr<Timer>. * storage/LocalStorageArea.cpp: (WebCore::LocalStorageArea::scheduleFinalSync): Added disableSuddenTermination. (WebCore::LocalStorageArea::scheduleItemForSync): Ditto. (WebCore::LocalStorageArea::scheduleClear): Ditto. (WebCore::LocalStorageArea::syncTimerFired): Added a disableSuddenTermination if we schedule a performSync callback for later and an unconditional enableSuddenTermination to balance the ones in the schedule calls above. (WebCore::LocalStorageArea::sync): Factored out the work of the sync function so it can continue to use early return idiom. (WebCore::LocalStorageArea::performSync): Added a call to enableSuddenTermination. * storage/LocalStorageArea.h: Added declaration of the sync function. git-svn-id: svn://svn.chromium.org/blink/trunk@42660 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
weinig@apple.com authored
Reviewed by Dan Bernstein. Fix for <rdar://problem/5860954> Harden JSStringCreateWithCFString against malformed CFStringRefs. * API/JSStringRefCF.cpp: (JSStringCreateWithCFString): git-svn-id: svn://svn.chromium.org/blink/trunk@42659 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
ddkilzer@apple.com authored
Reviewed by Darin Adler. Make FEATURE_DEFINES depend on individual ENABLE_FEATURE_NAME variables for each feature, making it possible to remove all knowledge of FEATURE_DEFINES from build-webkit. JavaScriptCore: * Configurations/FeatureDefines.xcconfig: Extract a variable from FEATURE_DEFINES for each feature setting. WebCore: * Configurations/FeatureDefines.xcconfig: Extract a variable from FEATURE_DEFINES for each feature setting. WebKit/mac: * Configurations/FeatureDefines.xcconfig: Extract a variable from FEATURE_DEFINES for each feature setting. WebKitTools: * Scripts/build-webkit: Define individual ENABLE_FEATURE_NAME variables instead of the whole FEATURE_DEFINES string when building with Xcode. Miscellaneous clean up: - Reordered/sorted command-line switch variables. - Reordered/sorted command-line switches in $usage. - Reordered/sorted command-line switches in GetOptions(). - Defined $svgSupport to true if any --svg-feature switch is set in order to match "Implies SVG Support" claim. - Build JavaScriptGlue after JavaScriptCore again! - Fixed --[no-]geolocation for GTK+ port and sorted GTK+ command-line switches. - Added "exit 0" statement at the end of the script. git-svn-id: svn://svn.chromium.org/blink/trunk@42658 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
ggaren@apple.com authored
Reviewed by Alexey Proskuryakov. More fix for https://bugs.webkit.org/show_bug.cgi?id=21260 Unbounded memory growth when churning elements with anonymous event handler functions Removed a little more complexity from event handler creation and destruction. Removed the jsProtectedEventListeners, jsProtectedInlineEventListeners, and jsInlineEventListeners maps, and all the code for managing them. ProtectedEventListeners don't exist anymore, so they're easy to nix. Inline EventListeners do still exist, but there's no reason to track them in a map. The map exists to enable 'removeEventListener' to associate a unique JSEventListener with a given JavaScript function. But the 'removeEventListener' API only works with non-inline event listeners! * bindings/js/JSDOMGlobalObject.cpp: (WebCore::JSDOMGlobalObject::~JSDOMGlobalObject): (WebCore::JSDOMGlobalObject::findJSEventListener): (WebCore::JSDOMGlobalObject::findOrCreateJSEventListener): (WebCore::JSDOMGlobalObject::createJSInlineEventListener): * bindings/js/JSDOMGlobalObject.h: * bindings/js/JSEventListener.cpp: (WebCore::JSEventListener::JSEventListener): (WebCore::JSEventListener::clearJSFunctionInline): * bindings/js/JSLazyEventListener.cpp: (WebCore::JSLazyEventListener::~JSLazyEventListener): (WebCore::JSLazyEventListener::parseCode): * bindings/scripts/CodeGeneratorJS.pm: git-svn-id: svn://svn.chromium.org/blink/trunk@42657 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
weinig@apple.com authored
Reviewed by Dan Bernstein. Fix typo. s/VM_MEMORY_JAVASCRIPT_JIT_REGISTER_FILE/VM_MEMORY_JAVASCRIPT_CORE/ * runtime/Collector.cpp: (JSC::allocateBlock): Fix bozo typo. git-svn-id: svn://svn.chromium.org/blink/trunk@42656 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
mitz@apple.com authored
* editing/VisiblePosition.cpp: (WebCore::VisiblePosition::characterAfter): git-svn-id: svn://svn.chromium.org/blink/trunk@42655 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
mitz@apple.com authored
port does not even use * icu/unicode/utf16.h: git-svn-id: svn://svn.chromium.org/blink/trunk@42654 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
simon.fraser@apple.com authored
git-svn-id: svn://svn.chromium.org/blink/trunk@42653 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
mitz@apple.com authored
- try to fix the Windows build * icu/unicode/utf16.h: git-svn-id: svn://svn.chromium.org/blink/trunk@42652 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
simon.fraser@apple.com authored
Reviewed by Antti Koivisto. https://bugs.webkit.org/show_bug.cgi?id=25066 When a <video> element gained a RenderLayer via opacity, reflection etc., the layer hierarchy was not correctly updated because RenderMedia skipped a level when asked for its children; it skipped m_controlsShadowRoot's renderer, which actually has a layer. Test: fast/layers/video-layer.html * rendering/MediaControlElements.cpp: (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement): Don't manually call setParent() on the renderer. It will happen later as a result of addChild(). * rendering/RenderMedia.cpp: (WebCore::RenderMedia::createControlsShadowRoot): Add m_controlsShadowRoot's renderer as a child. * rendering/RenderMedia.h: (WebCore::RenderMedia::children): Now maintain a RenderObjectChildList, m_children, and remove the unneeded removeChild() method. Make the two children() methods inline. * rendering/RenderObject.cpp: (WebCore::RenderObject::moveLayers): Assert if moveLayers() is called with an oldParent that is not the layer's actual parent (which would have revealed this bug). git-svn-id: svn://svn.chromium.org/blink/trunk@42651 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
ggaren@apple.com authored
Reviewed by Cameron Zwarich. Fixed a layout test failure, caused by my last check-in (fast/dom/script-element-gc.html). * bindings/js/JSDOMBinding.cpp: (WebCore::isObservableThroughDOM): * html/HTMLScriptElement.h: (WebCore::HTMLScriptElement::haveFiredLoadEvent): Treat script elements just like image elements: if a script element is loading, mark its JS wrapper, even if the element is not in the document. git-svn-id: svn://svn.chromium.org/blink/trunk@42650 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
weinig@apple.com authored
Reviewed by Anders Carlsson. Fix for <rdar://problem/6801555> Tag JavaScript memory on SnowLeopard * interpreter/RegisterFile.h: (JSC::RegisterFile::RegisterFile): * jit/ExecutableAllocatorFixedVMPool.cpp: (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator): * jit/ExecutableAllocatorPosix.cpp: (JSC::ExecutablePool::systemAlloc): * runtime/Collector.cpp: (JSC::allocateBlock): git-svn-id: svn://svn.chromium.org/blink/trunk@42649 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
dimich@chromium.org authored
Reviewed by Dimitri Glazkov. https://bugs.webkit.org/show_bug.cgi?id=25170 Upstream V8WorkerCustom.cpp and V8WorkerContextCustom.cpp for V8 bindings. * bindings/v8/WorkerContextExecutionProxy.cpp: (WebCore::WorkerContextExecutionProxy::findOrCreateEventListener): * bindings/v8/WorkerContextExecutionProxy.h: * bindings/v8/custom/V8WorkerContextCustom.cpp: Added. * bindings/v8/custom/V8WorkerCustom.cpp: Added. git-svn-id: svn://svn.chromium.org/blink/trunk@42648 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
dimich@chromium.org authored
Reviewed by Dimitri Glazkov. https://bugs.webkit.org/post_bug.cg://bugs.webkit.org/show_bug.cgi?id=25167 Change createHiddenXHRDependency and removeHiddenXHRDependency so that they can be used by other custom code in V8 bindings. * bindings/v8/V8Utilities.cpp: Renamed from WebCore/bindings/v8/V8XMLHttpRequestUtilities.cpp. (WebCore::createHiddenDependency): (WebCore::removeHiddenDependency): * bindings/v8/V8Utilities.h: Renamed from WebCore/bindings/v8/V8XMLHttpRequestUtilities.h. * bindings/v8/custom/V8XMLHttpRequestCustom.cpp: (WebCore::ACCESSOR_SETTER): (WebCore::CALLBACK_FUNC_DECL): * bindings/v8/custom/V8XMLHttpRequestUploadCustom.cpp: (WebCore::ACCESSOR_SETTER): (WebCore::CALLBACK_FUNC_DECL): git-svn-id: svn://svn.chromium.org/blink/trunk@42647 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
ddkilzer@apple.com authored
<rdar://problem/6781407> VisiblePosition.characterAfter should return UChar32 Reviewed by Dan Bernstein. JavaScriptCore: * wtf/unicode/icu/UnicodeIcu.h: (WTF::Unicode::hasLineBreakingPropertyComplexContextOrIdeographic): Added. WebCore: No test case since there is no change in behavior. * editing/VisiblePosition.cpp: (WebCore::VisiblePosition::characterAfter): Now handles surrogate pairs correctly and returns a UChar32. * editing/VisiblePosition.h: (WebCore::VisiblePosition::characterBefore): Now returns a UChar32. * editing/visible_units.cpp: (WebCore::endOfFirstWordBoundaryContext): Renamed firstNonComplexContextLineBreak() to this. Changed it to use the generic requiresContextForWordBoundary() instead of hasLineBreakingPropertyComplexContext(). (WebCore::startOfLastWordBoundaryContext): Replaces lastNonComplexContextLineBreak(), but returns the offset of the character after the last character that does not require context for word breaking. Also changed to use requiresContextForWordBoundary(). (WebCore::previousBoundary): Updated for the above changes in names and semantics, and changed to use requiresContextForWordBoundary(). (WebCore::nextBoundary): Ditto. (WebCore::startWordBoundary): Ditto. (WebCore::endWordBoundary): Ditto. (WebCore::previousWordPositionBoundary): Ditto. (WebCore::nextWordPositionBoundary): Ditto. * platform/text/TextBoundaries.h: (WebCore::requiresContextForWordBoundary): Added. * platform/text/mac/TextBoundaries.mm: git-svn-id: svn://svn.chromium.org/blink/trunk@42646 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
ggaren@apple.com authored
2009-04-18 Geoffrey Garen <ggaren@apple.com> Reviewed by Cameron Zwarich. Fixed <rdar://problem/6797442> | https://bugs.webkit.org/show_bug.cgi?id=25285 REGRESSION (r42569): Profiles cannot be selected in inspector profiler EventListeners are shared; RegisteredEventListeners are not. Therefore, when a node wrapper needs to invalidate the node's JS event listeners, it should invalidate its RegisteredEventListeners, not its EventListeners. Otherwise, it might invalidate an EventListener shared by another node. * dom/RegisteredEventListener.h: (WebCore::invalidateEventListeners): ditto LayoutTests: 2009-04-18 Geoffrey Garen <ggaren@apple.com> Reviewed by Cameron Zwarich. Test for <rdar://problem/6797442> | https://bugs.webkit.org/show_bug.cgi?id=25285 REGRESSION (r42569): Profiles cannot be selected in inspector profiler * fast/events/event-listener-sharing-expected.txt: Added. * fast/events/event-listener-sharing.html: Added. * fast/events/resources/event-listener-sharing.js: Added. (gc): (clickHandler): git-svn-id: svn://svn.chromium.org/blink/trunk@42645 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
- 18 Apr, 2009 12 commits
-
-
weinig@apple.com authored
Reviewed by Mark Rowe. Fix for <rdar://problem/5861045> A little bit of hardening for UString. * runtime/UString.cpp: (JSC::concatenate): (JSC::UString::append): git-svn-id: svn://svn.chromium.org/blink/trunk@42644 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
weinig@apple.com authored
Reviewed by Mark Rowe and Dan Bernstein. Fix for <rdar://problem/5861188> A little bit of hardening for Vector. * wtf/Vector.h: (WTF::Vector<T, inlineCapacity>::append): (WTF::Vector<T, inlineCapacity>::insert): git-svn-id: svn://svn.chromium.org/blink/trunk@42643 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
eric.carlson@apple.com authored
Reviewed by Mark Rowe. <rdar://problem/6781295> video.buffered and video.seekable are not the same. * WebCore.base.exp: Added wkQTMovieMaxTimeSeekable. * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: (WebCore::MediaPlayerPrivate::maxTimeSeekable): Return wkQTMovieMaxTimeSeekable. * platform/mac/WebCoreSystemInterface.h: Add wkQTMovieMaxTimeSeekable. * platform/mac/WebCoreSystemInterface.mm: Ditto. 2009-04-18 Pierre d'Herbemont <pdherbemont@apple.com> Reviewed by Mark Rowe. <rdar://problem/6781295> video.buffered and video.seekable are not the same. * WebCoreSupport/WebSystemInterface.m: (InitWebCoreSystemInterface): Add wkQTMovieMaxTimeSeekable. 2009-04-18 Pierre d'Herbemont <pdherbemont@apple.com> Reviewed by Mark Rowe. <rdar://problem/6781295> video.buffered and video.seekable are not the same. * WebKitSystemInterface.h: * libWebKitSystemInterfaceLeopard.a: * libWebKitSystemInterfaceTiger.a: git-svn-id: svn://svn.chromium.org/blink/trunk@42642 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
eric.carlson@apple.com authored
Reviewed by Mark Rowe. <rdar://problem/6747241> work around QTKit no longer reaching QTMovieLoadStateComplete * WebCore.base.exp: Export wkQTMovieMaxTimeLoadedChangeNotification. * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: (WebCore::MediaPlayerPrivate::createQTMovie): observe QTMovieMaxTimeLoadedChangeNotification. (WebCore::MediaPlayerPrivate::updateStates): compare duuration() with maxTimeLoaded() instead of using QTMovieLoadStateComplete to determine if a movie are fully loaded. * platform/mac/WebCoreSystemInterface.h: Add wkQTMovieMaxTimeLoadedChangeNotification. * platform/mac/WebCoreSystemInterface.mm: Ditto. 2009-04-18 Pierre d'Herbemont <pdherbemont@apple.com> Reviewed by Mark Rowe. <rdar://problem/6747241> work around QTKit no longer reaching QTMovieLoadStateComplete * WebCoreSupport/WebSystemInterface.m: (InitWebCoreSystemInterface): Init the new WKSI exported symbol. git-svn-id: svn://svn.chromium.org/blink/trunk@42641 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
justin.garcia@apple.com authored
Updated test results for https://bugs.webkit.org/show_bug.cgi?id=25277 * platform/mac/fast/forms/input-text-scroll-left-on-blur-expected.checksum: * platform/mac/fast/forms/input-text-scroll-left-on-blur-expected.png: * platform/mac/fast/forms/input-text-scroll-left-on-blur-expected.txt: git-svn-id: svn://svn.chromium.org/blink/trunk@42640 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
staikos@webkit.org authored
Reviewed by George Staikos. Make WML work again, most regressions test were failing. git-svn-id: svn://svn.chromium.org/blink/trunk@42639 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
barraclough@apple.com authored
Reviewed by Geoff Garen. On x86_64, make all JIT-code allocations from a new heap, managed by FixedVMPoolAllocator. This class allocates a single large (2Gb) pool of virtual memory from which all further allocations take place. Since all JIT code is allocated from this pool, we can continue to safely assume (as is already asserted) that it will always be possible to link any JIT-code to JIT-code jumps and calls. * JavaScriptCore.xcodeproj/project.pbxproj: Add new file. * jit/ExecutableAllocatorFixedVMPool.cpp: Added. (JSC::FreeListEntry::FreeListEntry): (JSC::AVLTreeAbstractorForFreeList::get_less): (JSC::AVLTreeAbstractorForFreeList::set_less): (JSC::AVLTreeAbstractorForFreeList::get_greater): (JSC::AVLTreeAbstractorForFreeList::set_greater): (JSC::AVLTreeAbstractorForFreeList::get_balance_factor): (JSC::AVLTreeAbstractorForFreeList::set_balance_factor): (JSC::AVLTreeAbstractorForFreeList::null): (JSC::AVLTreeAbstractorForFreeList::compare_key_key): (JSC::AVLTreeAbstractorForFreeList::compare_key_node): (JSC::AVLTreeAbstractorForFreeList::compare_node_node): (JSC::sortFreeListEntriesByPointer): (JSC::sortCommonSizedAllocations): (JSC::FixedVMPoolAllocator::release): (JSC::FixedVMPoolAllocator::reuse): (JSC::FixedVMPoolAllocator::addToFreeList): (JSC::FixedVMPoolAllocator::coalesceFreeSpace): (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator): (JSC::FixedVMPoolAllocator::alloc): (JSC::FixedVMPoolAllocator::free): (JSC::ExecutableAllocator::intializePageSize): (JSC::ExecutablePool::systemAlloc): (JSC::ExecutablePool::systemRelease): The new 2Gb heap class! * jit/ExecutableAllocatorPosix.cpp: Disable use of this implementation on x86_64. * wtf/AVLTree.h: Add missing variable initialization. (WTF::::remove): git-svn-id: svn://svn.chromium.org/blink/trunk@42638 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
justin.garcia@apple.com authored
git-svn-id: svn://svn.chromium.org/blink/trunk@42637 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
oliver@apple.com authored
Reviewed by Darin Adler Fix a check that was intended to mark a cached call as invalid when the callframe could not be constructed. Instead it was just checking that there was a place to put the exception. This eventually results in a non-recoverable RegisterFile starvation. git-svn-id: svn://svn.chromium.org/blink/trunk@42636 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
justin.garcia@apple.com authored
git-svn-id: svn://svn.chromium.org/blink/trunk@42635 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
justin.garcia@apple.com authored
2009-04-17 Justin Garcia <justin.garcia@apple.com> Reviewed by Dan Bernstein. https://bugs.webkit.org/show_bug.cgi?id=25277 If there is no line wrapping, a caret can leave its containing block but it shouldn't leave its root line box Also added code to handle a caret wider than one pixel. Added fast/inline/25277.html and fast/inline/25277-2.html * rendering/RenderText.cpp: (WebCore::RenderText::localCaretRect): Distribute a caret's width to either side of the offset, so that a caret between two characters doesn't hang over one character more than the other. If there is no wrapping, the caret can leave its containing block, but not its root line box. LayoutTests: 2009-04-17 Justin Garcia <justin.garcia@apple.com> Reviewed by Dan Bernstein. https://bugs.webkit.org/show_bug.cgi?id=25277 If there is no line wrapping, a caret can leave its containing block but it shouldn't leave its root line box * fast/inline/25277-2.html: Added. * fast/inline/25277.html: Added. * platform/mac/fast/inline/25277-2-expected.checksum: Added. * platform/mac/fast/inline/25277-2-expected.png: Added. * platform/mac/fast/inline/25277-2-expected.txt: Added. * platform/mac/fast/inline/25277-expected.checksum: Added. * platform/mac/fast/inline/25277-expected.png: Added. * platform/mac/fast/inline/25277-expected.txt: Added. git-svn-id: svn://svn.chromium.org/blink/trunk@42634 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
ggaren@apple.com authored
Reviewed by Oliver Hunt. More fix for https://bugs.webkit.org/show_bug.cgi?id=21260 Unbounded memory growth when churning elements with anonymous event handler functions Some refactoring of "inline" event listeners. Renames: dispatchEventForType => dispatchEvent setWindowInlineEventListenerForTypeAndAttribute => setWindowInlineEventListener removeInlineEventListenerForType => clearInlineEventListener setInlineEventListenerForType => setInlineEventListener inlineEventListenerForType => getInlineEventListener * bindings/js/JSLazyEventListener.cpp: (WebCore::eventParameterName): (WebCore::JSLazyEventListener::JSLazyEventListener): (WebCore::createInlineEventListener): * bindings/js/JSLazyEventListener.h: Added two helper functions for creating "inline" event listeners. These replace Document::createEventListener, and abstract the creation of JS event listeners for DOM attributes out of the DOM. Removed legacy JSProtectedEventListener constructor code for adding the event listener's function to a map, since lazy event listeners don't have functions at construction time. * dom/Document.cpp: (WebCore::Document::setFocusedNode): * dom/Document.h: (WebCore::Document::isSVGDocument): * dom/Element.cpp: (WebCore::Element::setWindowInlineEventListener): * dom/Element.h: Updated for renames. Nixed Document::createEventListener, mentioned above. Moved setWindowInlineEventListenerForTypeAndAttribute to Element, for simplicity. * dom/InputElement.cpp: (WebCore::InputElement::setValueFromRenderer): * dom/Node.cpp: (WebCore::Node::dispatchFocusEvent): (WebCore::Node::dispatchBlurEvent): (WebCore::Node::dispatchEvent): (WebCore::Node::clearInlineEventListener): (WebCore::Node::setInlineEventListener): (WebCore::Node::getInlineEventListener): (WebCore::Node::onabort): (WebCore::Node::setOnabort): (WebCore::Node::etc.): * dom/Node.h: Updated for renames. * editing/ReplaceSelectionCommand.cpp: (WebCore::ReplacementFragment::ReplacementFragment): Updated for renames. Updated these files for renames, and to use the new createInlineEventListener helper function: * html/HTMLBodyElement.cpp: (WebCore::HTMLBodyElement::parseMappedAttribute): * html/HTMLButtonElement.cpp: (WebCore::HTMLButtonElement::parseMappedAttribute): * html/HTMLElement.cpp: (WebCore::HTMLElement::parseMappedAttribute): * html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::onChange): * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::prepareSubmit): (WebCore::HTMLFormElement::reset): (WebCore::HTMLFormElement::parseMappedAttribute): * html/HTMLFrameElementBase.cpp: (WebCore::HTMLFrameElementBase::parseMappedAttribute): * html/HTMLFrameSetElement.cpp: (WebCore::HTMLFrameSetElement::parseMappedAttribute): * html/HTMLImageElement.cpp: (WebCore::HTMLImageElement::parseMappedAttribute): * html/HTMLImageLoader.cpp: (WebCore::HTMLImageLoader::dispatchLoadEvent): * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::parseMappedAttribute): (WebCore::HTMLInputElement::onSearch): * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::loadInternal): * html/HTMLObjectElement.cpp: (WebCore::HTMLObjectElement::parseMappedAttribute): * html/HTMLScriptElement.cpp: (WebCore::HTMLScriptElement::parseMappedAttribute): (WebCore::HTMLScriptElement::dispatchLoadEvent): (WebCore::HTMLScriptElement::dispatchErrorEvent): * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::parseMappedAttribute): * html/HTMLTextAreaElement.cpp: (WebCore::HTMLTextAreaElement::parseMappedAttribute): * html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::notifyFinished): * page/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::mouseButtonListener): * page/DOMWindow.cpp: * page/DOMWindow.h: (WebCore::DOMWindow::eventListeners): * page/EventHandler.cpp: (WebCore::EventHandler::canMouseDownStartSelect): (WebCore::EventHandler::canMouseDragExtendSelect): (WebCore::EventHandler::sendScrollEvent): * page/Page.cpp: (WebCore::networkStateChanged): * rendering/RenderListBox.cpp: (WebCore::RenderListBox::valueChanged): * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::selectionChanged): * svg/SVGElement.cpp: (WebCore::SVGElement::parseMappedAttribute): * svg/SVGElementInstance.cpp: * svg/SVGImageLoader.cpp: (WebCore::SVGImageLoader::dispatchLoadEvent): * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::parseMappedAttribute): * svg/SVGScriptElement.cpp: (WebCore::SVGScriptElement::dispatchErrorEvent): * wml/WMLInputElement.cpp: (WebCore::WMLInputElement::defaultEventHandler): git-svn-id: svn://svn.chromium.org/blink/trunk@42633 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
- 17 Apr, 2009 7 commits
-
-
andersca@apple.com authored
Reviewed by Dan Bernstein. <rdar://problem/6714488> REGRESSION (Safari 3-4): Edit menu commands (cut/copy/paste/select all) do not work on Flash content * Plugins/Hosted/NetscapePluginInstanceProxy.h: * Plugins/Hosted/NetscapePluginInstanceProxy.mm: (WebKit::NetscapePluginInstanceProxy::syntheticKeyDownWithCommandModifier): Send a keyDown event to the plug-in host. * Plugins/Hosted/WebHostedNetscapePluginView.mm: (-[WebHostedNetscapePluginView sendModifierEventWithKeyCode:character:]): Call the plug-in instance proxy. * Plugins/WebBaseNetscapePluginView.mm: (-[WebBaseNetscapePluginView sendModifierEventWithKeyCode:character:]): Add this. Subclasses are required to override it. (-[WebBaseNetscapePluginView cut:]): (-[WebBaseNetscapePluginView copy:]): (-[WebBaseNetscapePluginView paste:]): (-[WebBaseNetscapePluginView selectAll:]): Call sendModifierEventWithKeyCode. * Plugins/WebNetscapePluginEventHandler.h: Add syntheticKeyDownWithCommandModifier. * Plugins/WebNetscapePluginEventHandlerCarbon.h: * Plugins/WebNetscapePluginEventHandlerCarbon.mm: (WebNetscapePluginEventHandlerCarbon::syntheticKeyDownWithCommandModifier): Send the synthetic event. * Plugins/WebNetscapePluginEventHandlerCocoa.h: * Plugins/WebNetscapePluginEventHandlerCocoa.mm: (WebNetscapePluginEventHandlerCocoa::syntheticKeyDownWithCommandModifier): Send the synthetic event. * Plugins/WebNetscapePluginView.mm: (-[WebNetscapePluginView sendModifierEventWithKeyCode:character:]): Call the event handler. git-svn-id: svn://svn.chromium.org/blink/trunk@42632 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
ddkilzer@apple.com authored
Reviewed by Darin Adler. This moves FEATURE_DEFINES and its related ENABLE_FEATURE_NAME variables to their own FeatureDefines.xcconfig file. It also extracts a new ENABLE_GEOLOCATION variable so that FEATURE_DEFINES only needs to be defined once. JavaScriptCore: * Configurations/FeatureDefines.xcconfig: Added. * Configurations/JavaScriptCore.xcconfig: Removed definition of ENABLE_SVG_DOM_OBJC_BINDINGS and FEATURE_DEFINES. Added include of FeatureDefines.xcconfig. * JavaScriptCore.xcodeproj/project.pbxproj: Added FeatureDefines.xcconfig file. WebCore: * Configurations/FeatureDefines.xcconfig: Added. * Configurations/WebCore.xcconfig: Removed definition of ENABLE_SVG_DOM_OBJC_BINDINGS and FEATURE_DEFINES. Added include of FeatureDefines.xcconfig. * WebCore.xcodeproj/project.pbxproj: Added FeatureDefines.xcconfig file. * bindings/scripts/CodeGeneratorObjC.pm: When creating a list of command-line macro definitions, split on one-or-more spaces instead of a single space since the FEATURE_DEFINES macro may now contain more than one space between macros if some macros aren't defined. WebKit: * WebKit.xcodeproj/project.pbxproj: Added FeatureDefines.xcconfig file. WebKit/mac: * Configurations/FeatureDefines.xcconfig: Added. * Configurations/WebKit.xcconfig: Removed definition of ENABLE_SVG_DOM_OBJC_BINDINGS and FEATURE_DEFINES. Added include of FeatureDefines.xcconfig. WebKitTools: * Scripts/build-webkit: Realphabetized code related to enabling Geolation features for WebKit. Also set ENABLE_GEOLOCATION variable for xcodebuild. git-svn-id: svn://svn.chromium.org/blink/trunk@42631 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
rdar://problem/6803905adachan@apple.com authored
Reviewed by Steve Falkenburg. * WebHistory.cpp: (WebHistory::data): Return null if there are no history items. git-svn-id: svn://svn.chromium.org/blink/trunk@42630 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
simon.fraser@apple.com authored
Reviewed by Steve Falkenburg Fix the link for setting the Platform SDK paths in the Windows instructions. * building/build.html: git-svn-id: svn://svn.chromium.org/blink/trunk@42629 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
beidson@apple.com authored
2009-04-17 Brady Eidson <beidson@apple.com> Reviewed by Mark Rowe <rdar://problem/6786999> Tiger WebKit shouldn't try to POST on back/forward without nagging. * platform/network/mac/ResourceHandleMac.mm: (WebCore::ResourceHandle::willLoadFromCache): LayoutTests: 2009-04-17 Brady Eidson <beidson@apple.com> Reviewed by Mark Rowe <rdar://problem/6778137> - Disable post-goback-repost-policy.html until the networking layer allows it to be useful. * http/tests/navigation/post-goback-repost-policy.html: Removed. * http/tests/navigation/post-goback-repost-policy.html-disabled: Copied from http/tests/navigation/post-goback-repost-policy.html. git-svn-id: svn://svn.chromium.org/blink/trunk@42628 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
darin@apple.com authored
Reviewed by Timothy Hatcher. Added sudden termination functions that can be called without involving the page or client. * GNUmakefile.am: Added SuddenTermination.h. * WebCore.vcproj/WebCore.vcproj: Ditto. * WebCore.xcodeproj/project.pbxproj: Ditto. Also added SuddenTermination.mm. * platform/SuddenTermination.h: Added. * platform/mac/SuddenTermination.mm: Added. git-svn-id: svn://svn.chromium.org/blink/trunk@42627 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-
eric@webkit.org authored
Move more code into RenderSVGModelObject needsLayer() already returns false from RenderSVGModelObject lineHeight and baselinePosition are from days of RenderPath having RenderBox parents. I also added comments to explain how focus rings work (now that I understand) I got rid of two more uses of m_absoluteBounds (nearly dead!) * rendering/RenderPath.cpp: * rendering/RenderPath.h: * rendering/RenderSVGContainer.cpp: (WebCore::RenderSVGContainer::paint): (WebCore::RenderSVGContainer::addFocusRingRects): * rendering/RenderSVGContainer.h: * rendering/RenderSVGModelObject.cpp: (WebCore::RenderSVGModelObject::absoluteRects): (WebCore::RenderSVGModelObject::absoluteQuads): * rendering/RenderSVGModelObject.h: git-svn-id: svn://svn.chromium.org/blink/trunk@42626 bbb929c8-8fbe-4397-9dbb-9b2b20218538
-