blob: 2aaa728d13fac8cd9e84278e946ff68977f4d30f [file] [log] [blame]
2009-02-26 Mark Rowe <mrowe@apple.com>
Merge r41190.
2009-02-24 Sam Weinig <sam@webkit.org>
Reviewed by Geoffrey Garen.
Related to <rdar://problem/6590295>
Allow disabling javascript: urls.
* WebCore.base.exp:
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::parseMappedAttribute):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::executeIfJavaScriptURL):
* page/Page.cpp:
(WebCore::Page::Page):
(WebCore::Page::setJavaScriptURLsAreAllowed):
(WebCore::Page::javaScriptURLsAreAllowed):
* page/Page.h:
2009-01-28 Ada Chan <adachan@apple.com>
Merge the rest of r33579.
Reviewed by Steve Falkenburg.
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::makeFinalRequest):
* platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::ResourceRequest::doUpdatePlatformRequest):
* platform/network/win/CookieJarWin.cpp:
(WebCore::setCookies):
(WebCore::cookies):
(WebCore::cookiesEnabled):
2009-01-20 Mark Rowe <mrowe@apple.com>
Merge r33579.
2008-05-19 Ada Chan <adachan@apple.com>
Added CookieStorageWin.h/cpp, introducing methods to get/set the current CFHTTPCookieStorageRef.
When setting cookies-related attributes in CFURLRequest, make sure we get them from the
current CFHTTPCookieStorageRef. Also, set the cookie storage in CFURLRequest.
Reviewed by Steve Falkenburg.
* WebCore.vcproj/WebCore.vcproj:
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::makeFinalRequest):
* platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::ResourceRequest::doUpdatePlatformRequest):
* platform/network/win/CookieJarCFNetWin.cpp:
(WebCore::setCookies):
(WebCore::cookies):
(WebCore::cookiesEnabled):
* platform/network/win/CookieStorageWin.cpp: Added.
(WebCore::currentCookieStorage):
(WebCore::setCurrentCookieStorage):
* platform/network/win/CookieStorageWin.h: Added.
2009-01-19 Mark Rowe <mrowe@apple.com>
Merge r33993.
2008-05-21 Beth Dakin <bdakin@apple.com>
Reviewed by Anders.
Fix for <rdar://problem/5848161> REGRESSION (r31438?): Crash
beneath ResourceHandle::setDefersLoading while running fast/loader/
simultaneous-reloads-assert.html (null CFURLConnection)
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::setDefersLoading): Added simple null-
check.
2009-01-19 Mark Rowe <mrowe@apple.com>
Merge r39247.
2008-12-11 Steve Falkenburg <sfalken@apple.com>
Delete the previous timer-queue timer in the main thread, just prior to scheduling a new timer.
The code previously called DeleteTimerQueueTimer in the timer callback proc.
The new technique simplifies the code, since we now create and delete timers on the
same thread, and don't access the timer queue or timer handles in the callback.
This allows us to remove some mutex use, and more importantly, it solves a race
condition that was occuring between ChangeTimerQueueTimer and DeleteTimerQueueTimer.
Since the timer callback isn't passed the timer handle, we were retrieving that handle
via a global. If the timer callback code was entered, but then a new timer was immediately
scheduled (prior to the callback acquiring the mutex and calling DeleteTimerQueueTimer),
there was a small window where the timer could be re-scheduled via ChangeTimerQueueTimer
and then immediately deleted once the already running callback acquired the mutex and
then called DeleteTimerQueueTimer. This resulted in the newly scheduled timer never firing.
Reviewed by Oliver Hunt.
* platform/win/SharedTimerWin.cpp:
(WebCore::queueTimerProc): Don't delete the timer in the callback.
(WebCore::setSharedTimerFireTime): Always delete and create the timer instead of using ChangeTimerQueueTimer.
(WebCore::stopSharedTimer): Call DeleteTimerQueueTimer directly.
2008-10-27 Mark Rowe <mrowe@apple.com>
Merge r37628.
2008-10-15 Jon Honeycutt <jhoneycutt@apple.com>
Remove unneeded check of whether a Page defers loading before running it
in a modal dialog.
No test possible.
Reviewed by Tim Hatcher.
* page/Chrome.cpp:
2008-10-27 Mark Rowe <mrowe@apple.com>
Merge r37897.
2008-10-27 Anders Carlsson <andersca@apple.com>
Reviewed by Kevin Decker.
<rdar://problem/6322650> Crash in fast/loader/simultaneous-reloads-assert.html
Make sure to null check the NSURLConnection object.
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::setDefersLoading):
2008-10-22 Mark Rowe <mrowe@apple.com>
Merge r37793.
2008-10-22 Brady Eidson <beidson@apple.com>
Reviewed by Adam Roben
<rdar://6261773> - autocomplete="off" doesn't work on Windows
Visual Studio makes a poor decision regarding the combination of enums and bitfields, such that a
statement like "m_autocomplete = Off" followed by "return m_autocomplete == Off" would return "false"
instead of the much more correct "true."
In the past we have worked around this by declaring the bitfield member as an unsigned instead
of the enum type.
For more discussion, see http://trac.webkit.org/changeset/25329
* html/HTMLInputElement.h: Work around insane Visual Studio enum issue *sigh*
2008-10-21 Mark Rowe <mrowe@apple.com>
Merge r37704.
2008-10-19 Dan Bernstein <mitz@apple.com>
Reviewed by Timothy Hatcher.
- lower the default button repaint frequency
* rendering/RenderButton.cpp:
(WebCore::RenderButton::styleDidChange): Changed the timer interval from
0.01 to 0.03.
2008-10-21 Mark Rowe <mrowe@apple.com>
Merge r31577.
2008-04-02 Mark Rowe <mrowe@apple.com>
Reviewed by Oliver Hunt.
Ensure that debug symbols are generated for x86_64 and ppc64 builds.
* Configurations/Base.xcconfig:
2008-10-13 Steve Falkenburg <sfalken@apple.com>
Roll out r36884.
* platform/graphics/GraphicsContext.h:
* platform/graphics/win/GraphicsContextCGWin.cpp:
(WebCore::CGContextWithHDC):
(WebCore::GraphicsContext::GraphicsContext):
2008-10-07 Mark Rowe <mrowe@apple.com>
Merge r35415.
2008-07-28 Brady Eidson <beidson@apple.com>
Reviewed by Sam Weinig
Test: security/autocomplete-cleared-on-back.html
<rdar://problem/6093281> - autocomplete="off" should work when going back
Taken care of in two ways:
1 - Listening for the page cache notification to clear the form, in cases where the page
is being restored from the page cache
2 - Not saving such form elements when doing the normal "save state" to a history item,
for cases with no page cache
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::~HTMLFormElement):
(WebCore::HTMLFormElement::parseMappedAttribute):
(WebCore::HTMLFormElement::didRestoreFromCache):
(WebCore::HTMLFormElement::willMoveToNewOwnerDocument):
(WebCore::HTMLFormElement::didMoveToNewOwnerDocument):
* html/HTMLFormElement.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::~HTMLInputElement):
(WebCore::HTMLInputElement::setInputType):
(WebCore::HTMLInputElement::saveState):
(WebCore::HTMLInputElement::parseMappedAttribute):
(WebCore::HTMLInputElement::needsCacheCallback):
(WebCore::HTMLInputElement::registerForCacheCallbackIfNeeded): Only register if the type or attribute
indicate we should.
(WebCore::HTMLInputElement::unregisterForCacheCallbackIfNeeded): Only unregister if both the type
and attribute are clear of needing registration.
(WebCore::HTMLInputElement::didRestoreFromCache):
(WebCore::HTMLInputElement::willMoveToNewOwnerDocument):
(WebCore::HTMLInputElement::didMoveToNewOwnerDocument):
* html/HTMLInputElement.h:
2008-10-07 Mark Rowe <mrowe@apple.com>
Merge r35362.
2008-07-25 Brady Eidson <beidson@apple.com>
Reviewed by Sam
Test: security/set-form-autocomplete-attribute.html
Part of the fix for <rdar://problem/6093281> - Improper handling of autocomplete
The autocomplete attribute works on both <form> and <input> elements, but was not
inherited properly when someone asked an <input> if it should autocomplete.
I fixed this up based on the rules in the current WF2 spec so if the <input> element
has its own autocomplete attribute set, it will follow that but otherwise it will
inherit from its parent <form>
* WebCore.base.exp:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::init):
(WebCore::HTMLInputElement::autoComplete):
(WebCore::HTMLInputElement::parseMappedAttribute):
* html/HTMLInputElement.h:
(WebCore::HTMLInputElement::):
2008-10-06 Mark Rowe <mrowe@apple.com>
Merge r33567.
2008-05-18 Darin Adler <darin@apple.com>
Reviewed by Sam.
- fix <rdar://problem/5943569> crash due to stale ownerNode pointer
Test: fast/dom/StyleSheet/ownerNode-lifetime.html
* bindings/js/JSStyleSheetCustom.cpp:
(WebCore::JSStyleSheet::mark): Added code to mark ownerNode. Includes a comment about how
it would be even better to solve this in the DOM rather than just in the JavaScript binding.
* css/StyleSheet.idl: Added CustomMarkFunction attribute.
2008-10-06 Mark Rowe <mrowe@apple.com>
Merge r36108.
2008-09-04 Brady Eidson <beidson@apple.com>
Reviewed by Mitz
<rdar://problem/6180236> - Safari times out connections after 1 or 2 minutes
A 60-second default timeout was added in http://trac.webkit.org/changeset/17144 in an attempt
to model default NSURLRequest behavior in a cross-platform manner.
Sadly by always enforcing this 60 second timeout, WebCore was stomping over the wishes of any Webkit
client that wished to enforce a much larger default timeout using NSURLRequest API.
Additionally, upon reviewing what all other browsers do, it seems apparent that "no limit" is desirable
behavior on the web and this restores previous Safari/WebKit behavior.
It would be easy to write a layout test for this, but to be effective it would have
to run for at least 61 seconds, which seems insane until will can parallelize run-webkit-tests
* manual-tests/timeout-test.html: Added.
* manual-tests/timeout-test.php: Added.
* platform/network/ResourceRequestBase.h:
(WebCore::ResourceRequestBase::ResourceRequestBase): Rename the constant to "unspecifiedTimeoutInterval"
and make it UINT_MAX so platforms that do set it have an effective "no timeout." (Windows, for example)
* platform/network/mac/ResourceRequestMac.mm:
(WebCore::ResourceRequest::doUpdatePlatformRequest): If the timeout for this request is
"unspecifiedTimeoutInterval", then don't bother setting the timeout using NSURLRequest API, allowing
WebKit applications to enforce their own default timeout.
2008-10-06 Mark Rowe <mrowe@apple.com>
Merge r36811.
2008-09-23 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Oliver Hunt, okayed by Darin Adler.
<rdar://problem/5575547> REGRESSION: ATOK has no phrase boundary on Safari/Mail.app
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintCompositionUnderline): Add 2 pixel spacing between clauses.
2008-10-06 Mark Rowe <mrowe@apple.com>
Merge r37008.
2008-09-27 Anders Carlsson <andersca@apple.com>
Reviewed by Sam Weinig.
https://bugs.webkit.org/show_bug.cgi?id=21178
<rdar://problem/6248651>
Check if the plug-in is allowed to load the resource. This matches Firefox.
Test: http/tests/plugins/local-geturl-from-remote.html
* plugins/PluginView.cpp:
(WebCore::PluginView::load):
2008-10-04 Mark Rowe <mrowe@apple.com>
Merge r35278.
2008-07-21 Mark Rowe <mrowe@apple.com>
Reviewed by Sam Weinig.
<rdar://problem/6091287> Revamp the handling of CFBundleShortVersionString to be fixed at the major component of the version number.
* Configurations/Version.xcconfig:
* Info.plist:
2008-09-21 Steve Falkenburg <sfalken@apple.com>
Merge r36748, r36750
2008-09-21 Steve Falkenburg <sfalken@apple.com>
Removed unnecessary nested timer check.
Rubber-stamped by Dan Bernstein.
* platform/win/SharedTimerWin.cpp:
(WebCore::TimerWindowWndProc):
2008-09-21 Steve Falkenburg <sfalken@apple.com>
Improve timer resolution on WinXP.
https://bugs.webkit.org/show_bug.cgi?id=20979
Removed last-chance timer. It should not be necessary.
Change timeEndPeriod timer to fire in 300ms instead of 20ms. Calling timeBeginPeriod/timeEndPeriod too often throws off accuracy.
Remove Vista checks. We now run the same code on both XP and Vista.
Call through to JSC::getCurrentUTCTimeWithMicroseconds from WebCore::currentTime.
The code previously called GetSystemTimeAsFileTime, which is always low-resolution on XP, even within timeBeginPeriod(1).
Reviewed by Maciej Stachowiak.
* platform/win/SharedTimerWin.cpp:
(WebCore::):
(WebCore::TimerWindowWndProc):
(WebCore::setSharedTimerFireTime):
* platform/win/SystemTimeWin.cpp:
(WebCore::currentTime):
2008-09-21 Mark Rowe <mrowe@apple.com>
Merge r35182.
2008-07-15 Adam Roben <aroben@apple.com>
WebCore part of adding WebKit[Set]ShouldUseFontSmoothing functions
<rdar://6059127>
Reviewed by John Sullivan.
* platform/graphics/win/FontCGWin.cpp:
(WebCore::Font::drawGlyphs): Pass the result of
WebCoreShouldUseFontSmoothing() into wkSetFontSmoothingStyle.
* platform/win/WebCoreTextRenderer.cpp:
(WebCore::WebCoreSetShouldUseFontSmoothing):
(WebCore::WebCoreShouldUseFontSmoothing):
Added.
* platform/win/WebCoreTextRenderer.h:
2008-09-14 Mark Rowe <mrowe@apple.com>
Merge r35950.
2008-08-27 Timothy Hatcher <timothy@apple.com>
Add support for support for -webkit-appearance: default-button on the Mac platform.
<rdar://problem/6173530>
Reviewed by Dave Hyatt.
* WebCore.base.exp: Export new symbols.
* platform/mac/WebCoreSystemInterface.h: Add wkAdvanceDefaultButtonPulseAnimation.
* platform/mac/WebCoreSystemInterface.mm: Ditto.
* rendering/RenderButton.cpp:
(WebCore::RenderButton::RenderButton): Remove #if PLATFORM(WIN).
(WebCore::RenderButton::setStyle): Ditto.
* rendering/RenderButton.h: Ditto.
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::adjustRepaintRect): Add a case for DefaultButtonAppearance.
(WebCore::RenderThemeMac::setButtonCellState): Set the key equivalent to the return
key if the button is default, otherwise reset the key equivalent.
(WebCore::RenderThemeMac::paintButton): If the button is default call setDefaultButtonCell:
on the window, then wkAdvanceDefaultButtonPulseAnimation before painting. Restore
the window's previous default button cell when finished.
2008-09-14 Mark Rowe <mrowe@apple.com>
Merge r32881.
2008-05-05 Steve Falkenburg <sfalken@apple.com>
Add support for default button appearance.
Add WebCore setting for app chrome mode.
Reviewed by Dave Hyatt.
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
* css/CSSValueKeywords.in: Added default-button value keyword.
* page/Settings.cpp:
(WebCore::Settings::Settings):
(WebCore::Settings::setApplicationChromeMode):
* page/Settings.h:
(WebCore::Settings::inApplicationChromeMode):
* rendering/RenderButton.cpp:
(WebCore::RenderButton::RenderButton):
(WebCore::RenderButton::setStyle):
(WebCore::RenderButton::timerFired):
* rendering/RenderButton.h:
* rendering/RenderStyle.h:
(WebCore::):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::paintBorderOnly):
(WebCore::RenderTheme::paintDecorations):
(WebCore::RenderTheme::isControlStyled):
(WebCore::RenderTheme::isDefault):
* rendering/RenderTheme.h:
(WebCore::):
* rendering/RenderThemeSafari.cpp:
(WebCore::RenderThemeSafari::determineState):
(WebCore::RenderThemeSafari::adjustRepaintRect):
(WebCore::RenderThemeSafari::adjustButtonStyle):
* rendering/RenderThemeWin.cpp:
(WebCore::RenderThemeWin::supportsFocus):
2008-04-03 Anders Carlsson <andersca@apple.com>
Reviewed by Sam.
<rdar://problem/5832603> REGRESSION: Adding an image to the header image well causes Journal page to incorrectly draw
* dom/Document.cpp:
(WebCore::Document::childrenChanged):
Make sure to chain up to ContainerNode::childrenChanged.
2008-04-03 Mark Rowe <mrowe@apple.com>
Merge r31320 to Safari-3-1-branch.
2008-03-26 Adam Roben <aroben@apple.com>
Fix Bug 17768: REGRESSION (r30146): Inspector no longer shows elements
properties
<http://bugs.webkit.org/show_bug.cgi?id=17768>
We were throwing an exception from Object.describe because of some
undefined variables.
Reviewed by Tim Hatcher.
* page/inspector/utilities.js:
(Object.describe): Reinstate the type1 and type2 variables that were
removed in r30146. They're still used when formatting a function.
2008-03-31 Mark Rowe <mrowe@apple.com>
Merge r31438 to Safari-3-1-branch.
2008-03-29 Sam Weinig <sam@webkit.org>
Reviewed by Darin Adler.
Fix for <rdar://problem/5828873>
Since NSURL is allowing invalid urls to be loaded, we need to
check the URL validity at the ResourceHandle level and fire off
a cannotShowURL error.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::cannotShowURLError):
* loader/FrameLoader.h:
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::cannotShowURLError):
(WebCore::ResourceLoader::wasBlocked):
(WebCore::ResourceLoader::cannotShowURL):
* loader/ResourceLoader.h:
* platform/KURL.h:
(WebCore::KURL::isValid):
* platform/network/ResourceHandle.cpp:
(WebCore::ResourceHandle::create):
(WebCore::ResourceHandle::scheduleFailure):
(WebCore::ResourceHandle::fireFailure):
(WebCore::portAllowed):
* platform/network/ResourceHandle.h:
(WebCore::ResourceHandle::):
* platform/network/ResourceHandleClient.h:
(WebCore::ResourceHandleClient::cannotShowURL):
* platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
2008-03-31 Mark Rowe <mrowe@apple.com>
Merge r31434 to Safari-3-1-branch.
2008-03-29 Sam Weinig <sam@webkit.org>
Reviewed by Brady Eidson.
Fix crash when canceling a resource load while port blocked failure
timer is going.
Test: fast/loader/cancel-load-during-port-block-timer.html
* platform/network/ResourceHandle.cpp:
(WebCore::ResourceHandle::scheduleBlockedFailure):
(WebCore::ResourceHandle::fireBlockedFailure):
* platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
Make the Timer a member variable of ResourceHandleInternal so
that it can be canceled if the ResourceHandle is destroyed.
2008-03-31 Mark Rowe <mrowe@apple.com>
Merge r30722 to Safari-3-1-branch.
2008-03-03 Mark Rowe <mrowe@apple.com>
Reviewed by Dan Bernstein.
Fix http://bugs.webkit.org/show_bug.cgi?id=17313
Bug 17313: querySelectorAll() causing crashes when called via dojo.query() wrapper
Node::querySelector and SelectorNodeList were not sufficiently initializing the CSSStyleSelector
before using it to resolve styles, which lead to it having a stale m_style member in some situations.
This stale m_style member resulted in a wild store that would write over whatever object now resided
at the location m_style pointed to.
Test: fast/dom/SelectorAPI/bug-17313.html
* dom/Node.cpp:
(WebCore::Node::querySelector): Call initForStyleResolve to further initialize the CSSStyleSelector.
* dom/SelectorNodeList.cpp:
(WebCore::SelectorNodeList::SelectorNodeList): Ditto.
2008-03-31 Mark Rowe <mrowe@apple.com>
Merge r31153 to Safari-3-1-branch.
2008-03-19 Dan Bernstein <mitz@apple.com>
Reviewed by John Sullivan.
- fix <rdar://problem/5805070> CrashTracer: [USER] 33 crashes in Safari at com.apple.WebCore: WebCore::FrameView::layout + 431
Test: fast/dynamic/subtree-parent-static-y.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::markContainingBlocksForLayout): Avoid calling
this method on the parent if the parent is the new layout subtree root,
which would result in marking all the way to the top, when it should
actually do nothing.
2008-03-28 Mark Rowe <mrowe@apple.com>
Merge r31071 to Safari-3-1-branch.
2008-03-14 Anders Carlsson <andersca@apple.com>
Reviewed by Sam.
<rdar://problem/5794989>
https://bugs.webkit.org/show_bug.cgi?id=17792
REGRESSION (Safari 3.0.4-3.1): Ordering tickets from Sweden's biggest train operator doesn't work
Pass the frame loader that should be used for looking up the frame name to FrameLoader::createWindow
so that somewindow.open calls where the active window and 'somewindow' differ return the correct frame.
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::createWindow):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::createWindow):
* loader/FrameLoader.h:
2008-03-28 Mark Rowe <mrowe@apple.com>
Merge r31336 to Safari-3-1-branch.
2008-03-26 Justin Garcia <justin.garcia@apple.com>
Reviewed by Harrison.
<rdar://problem/5820749> REGRESSION (Safari 3.1): Mail's plain text reply omits blank line following the attribution
* editing/markup.cpp:
(WebCore::createFragmentFromText): When asked to create a fragment from "Attribution:\n"
with a context from [html, 0] to [html, 0], we'd return "<html>Attribution</html><br>".
Don't enclose paragraphs in clones of the context's enclosing block if that block is the
html or body element. Currently no way to test [DOMHTMLElement createFragmentFromText:].
2008-03-20 Mark Rowe <mrowe@apple.com>
Merge r31144 to Safari-3-1-branch.
2008-03-18 Sam Weinig <sam@webkit.org>
Reviewed by Anders Carlsson.
Fix for http://bugs.webkit.org/show_bug.cgi?id=17057
REGRESSION: Frequent random crashes in WebCore::JSNodeList::indexGetter
<rdar://problem/5725058>
Tests: fast/dom/NodeList/5725058-crash-scenario-1.html
fast/dom/NodeList/5725058-crash-scenario-2.html
fast/dom/NodeList/5725058-crash-scenario-3.html
* dom/ChildNodeList.cpp:
(WebCore::ChildNodeList::ChildNodeList):
* dom/ChildNodeList.h:
Remove rootNodeChildrenChanged() method and fix the constructor to not
pass in a needsNotifications argument to DynamicNodeList, as it no longer
takes one.
* dom/ClassNodeList.cpp:
(WebCore::ClassNodeList::ClassNodeList):
Don't pass the needsNotifications argument to DynamicNodeList.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::childrenChanged):
Rename call to hasNodeLists() to hasNodeListCaches().
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::~Document): Zero out the m_document variable to signify
to destructors down the destruction chain that this is a Document type node
being destructed, and thus, accessing document() is prohibited.
* dom/Document.h:
(WebCore::Document::addNodeListCache): Renamed from addNodeList.
(WebCore::Document::removeNodeListCache): Renamed from removeNodeList, adds assertion.
(WebCore::Document::hasNodeListCaches): Renamed from hasNodeListCaches.
Rename m_numNodeLists to m_numNodeListCaches.
* dom/DynamicNodeList.cpp:
(WebCore::DynamicNodeList::DynamicNodeList):
(WebCore::DynamicNodeList::~DynamicNodeList):
(WebCore::DynamicNodeList::invalidateCache):
(WebCore::DynamicNodeList::Caches::Caches):
* dom/DynamicNodeList.h:
(WebCore::DynamicNodeList::hasOwnCaches):
Remove the needsNotifications concept from DynamicNodeList, instead, manually
invalidate the cache for lists that own their own cache.
* dom/NameNodeList.cpp:
(WebCore::NameNodeList::NameNodeList):
* dom/NameNodeList.h:
Remove rootNodeAttributeChanged() method and fix the constructor to not
pass in a needsNotifications argument to DynamicNodeList, as it no longer
takes one.
* dom/Node.cpp:
(WebCore::Node::~Node): Decrement the document's nodeListCache count
if we had a NodeListsNodeData cache and this is not the Document being
destructor, as tagged by a null m_document.
(WebCore::Node::childNodes): Increment the document's nodeListCache count
if we need create the NodeListsNodeData.
(WebCore::Node::registerDynamicNodeList): Increment the document's nodeListCache count
if we need create the NodeListsNodeData. Change to invalidate all the caches, instead
of just the ChildNodeList, if document has had no NodeListCaches.
(WebCore::Node::unregisterDynamicNodeList): Change to remove the cache from the m_listsWithCaches
set if it is owned by the NodeList and clear the m_nodeLists if it is empty.
(WebCore::Node::notifyLocalNodeListsAttributeChanged): Move logic to
NodeListsNodeData::invalidateAttributeCaches and clear the cache pointer if it is empty.
(WebCore::Node::notifyLocalNodeListsChildrenChanged): Move logic to
NodeListsNodeData::invalidateCaches and clear the cache pointer if it is empty.
(WebCore::Node::notifyNodeListsChildrenChanged): Cleanup.
(WebCore::Node::getElementsByName): Increment the document's nodeListCache count
if we need create the NodeListsNodeData.
(WebCore::Node::getElementsByClassName): Increment the document's nodeListCache count
if we need create the NodeListsNodeData.
(WebCore::NodeListsNodeData::invalidateCaches): Added.
(WebCore::NodeListsNodeData::invalidateAttributeCaches): Added.
(WebCore::NodeListsNodeData::isEmpty): Added.
* dom/TagNodeList.cpp:
(WebCore::TagNodeList::TagNodeList):
Don't pass the needsNotifications argument to DynamicNodeList.
2008-03-17 Mark Rowe <mrowe@apple.com>
Merge r31069 to Safari-3-1-branch.
2008-03-14 Dan Bernstein <mitz@apple.com>
Reviewed by Mark Rowe.
- fix <rdar://problem/5797836> shadow offsets are smaller than specified
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::setShadow): Made the workaround for
<rdar://problem/5539388> unconditional.
2008-03-03 Mark Rowe <mrowe@apple.com>
Merge r30992 to Safari-3-1-branch.
2008-03-12 David Harrison <harrison@apple.com>
Reviewed by Darin.
<rdar://problem/5607382> CrashTracer: [REGRESSION] 2290 crashes in Safari at com.apple.WebCore: -[WebCoreAXObject isWebArea] + 8
The problem was that we lost track of the AX cache for a subframe when Frame::disconnectOwnerElement() was
called, so we were unable to locate the AXObjects to de-register from AppKit's accessibility registry.
Also saw that cache clearing was missing from Document::detach(), and fixed that.
Also added a debug-only check that AXObjectCache::remove() not finding the AXObject is expected.
Lastly, RenderWidget::destroy() now skips trying to remove the AXObject if accessibility has never been enabled.
* dom/Document.cpp:
(WebCore::Document::attach):
Assert that there is no AX cache (since there is no renderer).
(WebCore::Document::detach):
Destroy the AX cache installed on this document.
(WebCore::Document::clearAXObjectCache):
New. Destroy the AX cache associated with this document.
(WebCore::Document::axObjectCache):
Added some comments.
* dom/Document.h:
Declare clearAXObjectCache().
* page/Frame.cpp:
(WebCore::Frame::disconnectOwnerElement):
Destroy the AX cache associated with this frame's document.
* page/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::remove):
* page/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject initWithRenderer:]):
(-[WebCoreAXObject detach]):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::RenderObject):
(WebCore::RenderObject::~RenderObject):
* rendering/RenderObject.h:
(WebCore::RenderObject::setHasAXObject):
(WebCore::RenderObject::hasAXObject):
Add debug-only check that AXObjectCache::remove() not finding the AXObject is expected.
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::destroy):
Skip call to remove the AXObject if accessibility has never been enabled. A simple speed optimization in the
very common case that the accessibility APIs are not being used. Same as in RenderObject::destroy().
2008-03-03 Mark Rowe <mrowe@apple.com>
Merge r30716 to Safari-3-1-branch.
2008-03-03 David Hyatt <hyatt@apple.com>
Fix for <rdar://problem/5776161> REGRESSION: Google Docs Spreadsheet crash
This is also http://bugs.webkit.org/show_bug.cgi?id=17543, fixed table layout corrupts heap.
Make sure not to access position -1 of the size 0 vectors.
Reviewed by ggaren
* rendering/FixedTableLayout.cpp:
(WebCore::FixedTableLayout::layout):
2008-03-03 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Darin, Anders.
Merge r30698 to Safari-3-1-branch.
* plugins/PluginDatabase.h: Added isPreferredPluginPath(),
preferredPluginCompare() qsort comparator.
* plugins/PluginPackage.h: Added bool m_allowsMultipleInstances.
(WebCore::PluginPackage::allowsMultipleInstances): Added; returns true
if plug-in can have multiple instances, false otherwise.
* plugins/win/PluginDatabaseWin.cpp:
(WebCore::PluginDatabase::preferredPluginCompare): qsort comparator
function, calls PluginPackage::compare().
(WebCore::PluginDatabase::pluginForMIMEType): Builds a list of plug-ins
for a MIME type, sorts them, and returns the first item.
(WebCore::PluginDatabase::MIMETypeForExtension): Builds a list of
plug-ins that handle this extension, sorts them, and returns the MIME
type the first plug-in in the list associates with this extension.
(WebCore::PluginDatabase::isPreferredPluginPath): Returns true if the
passed path is the "preferred" plug-in path.
* plugins/win/PluginPackageWin.cpp:
(WebCore::PluginPackage::PluginPackage): Set m_allowsMultipleInstances
to true.
(WebCore::PluginPackage::fetchInfo): If this is the VLC plug-in, set
m_allowsMultipleInstances to false.
(WebCore::PluginPackage::compare): Compare two plug-ins, first checking
whether a plug-in has an issue that should push it to the back, then
whether it's in a preferred directory that should move it to the front,
then by filename, version, and parent directory.
(WebCore::PluginPackage::load): If this plug-in doesn't allow multiple
instances, and the package has been loaded, return false.
2008-02-29 Mark Rowe <mrowe@apple.com>
Merge r30692 to Safari-3-1-branch.
2008-02-29 Brady Eidson <beidson@apple.com>
Reviewed by build-fix karma
Bonehead mistake. Revert function to previous version for all non-Windows+CFNetwork platforms
* platform/network/ProtectionSpace.cpp:
(WebCore::ProtectionSpace::receivesCredentialSecurely): Make my previous change conditionally
2008-02-29 Mark Rowe <mrowe@apple.com>
Merge r30689 to Safari-3-1-branch.
2008-02-29 Brady Eidson <beidson@apple.com>
Reviewed by Darin
<rdar://problem/5771227> - Incorrect password handling text in credential sheet
* platform/network/ProtectionSpace.cpp:
(WebCore::ProtectionSpace::receivesCredentialSecurely): Call functional CFNetwork method to
get "secureness" of the auth challenge instead of figuring it out ourselves
2008-02-28 Dave Hyatt <hyatt@apple.com>
Reviewed by Darin Adler.
Fix <rdar://problem/5771994> REGRESSION: Loading HTML5 spec is 5x slower on TOT than in 3.0.4.
Disable dynamic updating of the + selector when the DOM changes, since it hurt performance on the HTML5 spec.
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::checkSelector):
2008-02-28 Mark Rowe <mrowe@apple.com>
Reviewed by Dave Hyatt.
<rdar://problem/5767534> REGRESSION (r29976): discovermagazine.com lays out incorrect (17564)
Roll r29976 out of Safari-3-1-branch.
* css/CSSGrammar.y:
2008-02-27 Mark Rowe <mrowe@apple.com>
Merge r30634 to Safari-3-1-branch.
2008-02-27 Sam Weinig <sam@webkit.org>
Reviewed by Darin.
Fix for <rdar://problem/5768769>
- Don't allow cross-origin calls using window.functionName.call(otherFrame)
syntax.
* bindings/js/JSLocation.cpp:
(WebCore::jsLocationProtoFuncToString): Do same-origin check.
* bindings/js/kjs_window.cpp:
(KJS::windowProtoFuncAToB): Ditto.
(KJS::windowProtoFuncBToA): Ditto.
(KJS::windowProtoFuncOpen): Ditto.
(KJS::windowProtoFuncClearTimeout): Ditto.
* bindings/scripts/CodeGeneratorJS.pm: Ditto.
2008-02-26 Mark Rowe <mrowe@apple.com>
Merge r30617 to Safari-3-1-branch.
2008-02-26 Antti Koivisto <antti@apple.com>
Reviewed by Darin.
Fix <rdar://problem/5761326>
REGRESSION: 1.5% -2% Sunspider regression from r30009 (ebay photo upload hang)
Generate better code with VS:
- Use ALWAYS_INLINE macro to guarantee versions of allowsAccessFrom() are reduced to single functions
- Refactor error reporting so that there is no need to construct/destruct Strings in common cases
- Add a separate version of the function for cases where error messages are not wanted
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::customGetOwnPropertySlot):
* bindings/js/kjs_window.cpp:
(KJS::Window::allowsAccessFrom):
(KJS::Window::allowsAccessFromNoErrorMessage):
(KJS::Window::allowsAccessFromPrivate):
(KJS::Window::crossDomainAccessErrorMessage):
* bindings/js/kjs_window.h:
2008-02-22 Mark Rowe <mrowe@apple.com>
Build fix.
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::send): Qualify references to symbols in the KJS namespace.
2008-02-22 Mark Rowe <mrowe@apple.com>
Merge r30493 to Safari-3-1-branch.
2008-02-22 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
Fixed <rdar://problem/5057509> Repro leak of JSXMLHttpRequest and
associated objects @ www.viamichelin.it, which was probably an underlying
cause of <rdar://problem/5744037> Gmail out of memory (17455)
If SubresourceLoader::create returned NULL, we would ref() / gcProtect()
the XMLHttpRequest but think we hadn't, therefore never
calling deref() / gcUnprotect().
This could happen at gmail.com, since gmail.com attempts to send
XMLHttpRequests from unload handlers in order to gather usage statistics.
(According to comments in the code, SubresourceLoader::create returns
NULL when called from an unload handler.)
The solution is to ref() / gcProtect() only if SubresourceLoader::create
doesn't return NULL. This make sense, since we only need to protect the
request as long as it has an outstanding network transaction.
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::XMLHttpRequest):
(WebCore::XMLHttpRequest::send):
2008-02-22 Mark Rowe <mrowe@apple.com>
Merge r30489 to Safari-3-1-branch.
2008-02-22 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Anders.
<rdar://problem/5760360> REGRESSION(r30376): Crash loading plugin page
during stress test (after only 5 min) - null dereference
Full-frame plug-ins create PluginStream objects without loaders, as the
PluginView receives the loading callbacks. We were trying to call
setDefersLoading on these null pointers.
* plugins/PluginStream.cpp:
(WebCore::PluginStream::startStream): Add null check.
(WebCore::PluginStream::destroyStream): Same.
(WebCore::PluginStream::deliverData): Same.
2008-02-22 Timothy Hatcher <timothy@apple.com>
Merge r30472 to Safari-3-1-branch.
2008-02-21 Sam Weinig <sam@webkit.org>
Reviewed by Anders Carlsson.
Fix for <rdar://problem/5757946>
- Parse URLs before checking whether they are javascript: urls
(which require security checks).
* bindings/js/JSAttrCustom.cpp:
(WebCore::JSAttr::setValue):
* bindings/js/JSElementCustom.cpp:
(WebCore::allowSettingSrcToJavascriptURL):
* bindings/js/JSHTMLFrameElementCustom.cpp:
(WebCore::allowSettingJavascriptURL):
* bindings/js/JSHTMLIFrameElementCustom.cpp:
(WebCore::JSHTMLIFrameElement::setSrc):
2008-02-22 Timothy Hatcher <timothy@apple.com>
<rdar://problem/5758900> REGRESSION (Ceto-Fireclaw): Margins/padding expand on
hover for some headlines on The Huffington Post
Roll out r29649.
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::computeLogicalBoxHeights):
(WebCore::InlineFlowBox::placeBoxesVertically):
(WebCore::InlineFlowBox::shrinkBoxesWithNoTextChildren):
* rendering/RenderObject.h:
* rendering/bidi.cpp:
(WebCore::inlineFlowRequiresLineBox):
(WebCore::RenderBlock::findNextLineBreak):
2008-02-21 Mark Rowe <mrowe@apple.com>
Merge r30461 to Safari-3-1-branch.
2008-02-21 Antti Koivisto <antti@apple.com>
Reviewed by Sam Weinig.
<rdar://problem/5753789>
REGRESSION: 1.5% -2% Sunspider regression from r30009 (ebay photo upload hang)
Ensure all versions of allowsAccessFrom are inlined to single functions.
This is a 2% win in browser hosted Sunspider.
* bindings/js/kjs_window.cpp:
(KJS::Window::allowsAccessFrom):
(KJS::Window::allowsAccessFromPrivate):
* bindings/js/kjs_window.h:
2008-02-21 Mark Rowe <mrowe@apple.com>
Merge r30458 to Safari-3-1-branch.
2008-02-21 Geoffrey Garen <ggaren@apple.com>
Reviewed by David Harrison.
Fixed <rdar://problem/5756125> REGRESSION: A crash occurs at
WebCore::Frame::scriptProxy() when completing a search with Package Tracker widget
Test: fast/dom/script-element-without-frame-crash.html
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::parseTag): Added back a NULL check that was
accidentally removed in r30325.
2008-02-21 Mark Rowe <mrowe@apple.com>
Merge r30433 to Safari-3-1-branch.
2008-02-20 Sam Weinig <sam@webkit.org>
Reviewed by Darin and Geoff.
- <rdar://problem/5754378> work around missing video on YouTube front page with a site-specific hack
* WebCore.base.exp: Updated.
* bindings/js/kjs_navigator.cpp:
(WebCore::needsYouTubeQuirk): Added. Return true on Windows only when the quirk is needed.
(WebCore::Navigator::getValueProperty): For the appVersion property, if needsYouTubeQuirk
return true, then return the empty string.
* page/Settings.cpp:
(WebCore::Settings::Settings): Set m_needsSiteSpecificQuirks to false.
(WebCore::Settings::setNeedsSiteSpecificQuirks): Added.
* page/Settings.h: Added m_needsSiteSpecificQuirks.
(WebCore::Settings::needsSiteSpecificQuirks): Added.
2008-02-20 Timothy Hatcher <timothy@apple.com>
Merge r30423 to Safari-3-1-branch.
2008-02-20 Alexey Proskuryakov <ap@webkit.org>
Build fix.
* xml/XMLHttpRequest.cpp:
(WebCore::isSafeRequestHeader):
(WebCore::XMLHttpRequest::setRequestHeader):
2008-02-20 Timothy Hatcher <timothy@apple.com>
Merge r30422 to Safari-3-1-branch.
2008-02-20 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
<rdar://problem/5749455> Unable to set the Referer header in Dashboard using XMLHttpRequest
Cannot be tested in DRT.
* xml/XMLHttpRequest.cpp: (WebCore::canSetRequestHeader): Assume that a request that can load
local files can also set any headers.
2008-02-18 Mark Rowe <mrowe@apple.com>
Merge r30395 to Safari-3-1-branch.
2008-02-18 Brady Eidson <beidson@apple.com>
Reviewed by Darin
Fix for <rdar://5747529> - ObjC Exception can cause JSLock to never be released
Test: platform/mac/plugins/webScriptObject-exception-deadlock.html
* bindings/objc/WebScriptObject.mm:
(-[WebScriptObject valueForKey:]): The line `resultObj = [super valueForKey:key]; // defaults to throwing an exception`
says it all - it throws an exception. This method also happens to hold the JSLock. Problematically, when the exeception
is thrown and the method exited, the JSLock is never released. Fix that without otherwise changing behavior by holding the
JSLock in two individual scopes - Right before the exception and right after.
2008-02-18 Mark Rowe <mrowe@apple.com>
Merge r30392 to Safari-3-1-branch.
2008-02-18 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt.
- fix <rdar://problem/5736225> crash in svgFontAndFaceElementForFontData on digitalstrom.org/cms
Test: fast/css/font-face-multiple-remote-sources.html
* css/CSSFontFace.cpp:
(WebCore::CSSFontFace::fontLoaded):
* css/CSSSegmentedFontFace.cpp:
(WebCore::CSSSegmentedFontFace::fontLoaded):
2008-02-18 Mark Rowe <mrowe@apple.com>
Merge r30389 to Safari-3-1-branch.
2008-02-18 Stephanie Lewis <slewis@apple.com>
Reviewed by Adam.
Remove workaround for <rdar://problem/5695848>.
* platform/network/cf/ResourceResponseCFNet.cpp:
(WebCore::ResourceResponse::doUpdateResourceResponse):
2008-02-18 Mark Rowe <mrowe@apple.com>
Merge r30370 to Safari-3-1-branch.
2008-02-18 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Darin.
<rdar://problem/5744899> Crash in Flash when clicking "Yes" to abort
slow script Flash 9 dialog at http://www.kidzui.com
When navigating to a new page, we stop all outstanding PluginStreams.
Flash hangs in the call to NPP_URLNotify. It eventually displays the
"slow script" dialog, which relinquishes control to the system. While
this dialog is running, the request we are in the process of cancelling
completes, and we re-enter Flash to deliver the data. When the dialog
is dismissed, the internal state of Flash has changed, and Flash
crashes with a null dereference.
To work around this, we can defer loading before entering plug-in code,
so that even if a plug-in yields to the system, we won't get callbacks
while we're handling a callback.
* plugins/PluginStream.cpp:
(WebCore::PluginStream::startStream): Defers loads while calling into
plug-in.
(WebCore::PluginStream::destroyStream): Same.
(WebCore::PluginStream::deliverData): Same.
(WebCore::PluginStream::didFail): Protect 'this' from deletion by
destroyStream. Null out m_loader only after destroyStream returns.
(WebCore::PluginStream::didFinishLoading): Same.
2008-02-17 Steve Falkenburg <sfalken@apple.com>
Build fix.
* WebCore.vcproj/build-generated-files.sh:
2008-02-17 Mark Rowe <mrowe@apple.com>
Merge r30331 to Safari-3-1-branch.
2008-02-15 Brady Eidson <beidson@apple.com>
Reviewed by Darin
Fix for <rdar://problem/5727175> and <rdar://problem/5740495> - Database threads and callback scripts can run after
a page has closed or loaded a new document
Deciding to make the Database I/O semantic the same as loaders/XHR when a document is shut down, this patch implements
a policy of shutting down the databases in a document at the same time. This includes removing all pending transactions
in a database, cutting off an queued statements in the current transaction, and preventing further callbacks from being
made.
No new layout tests with this patch as the current layout tests were catching this issue in a plethora of ways already
(crashing, unexpected exceptions and output, etc)
* dom/Document.cpp:
(WebCore::Document::~Document): Don't actually stop the database thread here - it better have been stopped already.
Add an assertion to that effect.
(WebCore::Document::addOpenDatabase): Add a new database handle to this Document's open database set
(WebCore::Document::removeOpenDatabase): Remove such a handle
(WebCore::Document:: stopDatabases): Call "close" on all open Database handles for this document
* dom/Document.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopLoading): In addition to canceling all resource loads and XHRs, stop all database I/O
* platform/MessageQueue.h:
(WebCore::MessageQueue::killed):
* platform/sql/SQLiteTransaction.cpp:
(WebCore::SQLiteTransaction::stop): Added. Explicit stop to cut off a transaction so it won't try anymore SQL activity
* platform/sql/SQLiteTransaction.h:
* storage/Database.cpp:
(WebCore::Database::Database):
(WebCore::Database::~Database):
(WebCore::Database::markAsDeletedAndClose): Check if the thread has terminated before committing to waiting on the
thread.
(WebCore::Database::stop): Stop this database, including all queued transactions and callbacks
* storage/Database.h:
(WebCore::Database::stopped):
* storage/DatabaseThread.cpp:
(WebCore::DatabaseThread::terminationRequested):
* storage/DatabaseThread.h:
* storage/SQLTransaction.cpp:
(WebCore::SQLTransaction::executeSQL): Throw an exception if a new executeSQL comes in after a database is closed
(WebCore::SQLTransaction::checkAndHandleClosedDatabase): Added. Clears queued statements and clear the next step
when the database has been closed since the last step/callback was run. Also stops the current SQLite transaction,
if any
(WebCore::SQLTransaction::performNextStep):
(WebCore::SQLTransaction::performPendingCallback):
* storage/SQLTransaction.h:
2008-02-17 Mark Rowe <mrowe@apple.com>
Merge r30330 to Safari-3-1-branch.
2008-02-15 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Fix for <rdar://problem/5745072> REGRESSION (r29348): Shift + Tab does not change indent level on Google Docs
The immediate cause of this bug was that we stopped sending keypress events for the tab key when it is used to advance focus.
We had a special case for forward-tab in designMode, where the default behavior was to insert a tab key (or respect the keypress handler behavior).
This change makes the shift-tab behavior match the forward-tab behavior.
If the site had put their event handler (which does the indenting) on the keydown event, then this problem would have been avoided.
This is something we should look into and maybe advise the site on in the future. However, it's a low-risk change to just make tab and shift-tab uniform
in this respect, so I think this is the way to go for right now.
* page/EventHandler.cpp: (WebCore::EventHandler::defaultTabEventHandler):
2008-02-17 Mark Rowe <mrowe@apple.com>
Merge r30329 to Safari-3-1-branch.
2008-02-15 Anders Carlsson <andersca@apple.com>
Reviewed by Alice.
<rdar://problem/5738678>
REGRESSION: "Loading" status remains when uploading file to .Mac iDisk via Safari
Use the new CFNetwork functions for setting body parts.
* platform/network/cf/FormDataStreamCFNet.cpp:
(WebCore::setHTTPBody):
(WebCore::httpBodyFromRequest):
2008-02-17 Mark Rowe <mrowe@apple.com>
Merge r30328 to Safari-3-1-branch.
2008-02-15 Geoffrey Garen <ggaren@apple.com>
Reviewed by Anders Carlsson.
Fixed <rdar://problem/5725429> REGRESSION (r27898): Greenfield online
surveys no longer work due to XMLHttpRequest exceptions
Reverted some exception throwing code from r12194.
To comply with the W3C draft spec, we used to throw an exception when
trying to access responseText and responseXML at the wrong time, but
that turned out to be a compatibility problem.
Now, matching Firefox and previous versions of WebKit, we never throw
an exception when accessing responseText or responseXML.
See http://www.mail-archive.com/public-webapi@w3.org/msg02756.html.
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::getResponseText):
(WebCore::XMLHttpRequest::getResponseXML):
2008-02-17 Mark Rowe <mrowe@apple.com>
Merge r30326 to Safari-3-1-branch.
2008-02-15 Justin Garcia <justin.garcia@apple.com>
Reviewed by Dan Bernstein.
<rdar://problem/5738768> REGRESSION (r30062): Crash in InlineTextBox::isLineBreak() when Undoing a replace
Rolled out <http://trac.webkit.org/projects/webkit/changeset/29667>
* editing/SelectionController.cpp:
(WebCore::SelectionController::nodeWillBeRemoved):
2008-02-17 Mark Rowe <mrowe@apple.com>
Merge r30325 to Safari-3-1-branch.
2008-02-15 Alice Liu <alice.liu@apple.com>
Reviewed by Darin.
Fixed <rdar://problem/5741440> REGRESSION (r28496): After deactivating JavaScript, scripts embedded in the HTML page continue to run
Before this patch, Frame::scriptProxy() would only return null in the case that javascript was
disabled and if the script proxy field wasn't set (which would only be the case if the window
hasn't loaded anything yet). Not all callers of scriptProxy() always check for a non-null return
value. Those that did check would effectively be checking if javascript was enabled before proceeding.
This fix consists of 2 elements: first, make sure that scriptProxy() will never return null, regardless
of whether javascript is disabled. This will mean that callers who don't check for null won't crash.
Second, callers who did check for null now instead check for javascript being disabled. This means that
code paths intended for preventing javascript from being run will be making the correct check. Another
minor addition to this patch is that I added a function on Frame to be a shortcut for checking if javascript
is enabled.
* bindings/js/JSCustomSQLStatementCallback.cpp:
(WebCore::JSCustomSQLStatementCallback::handleEvent):
* bindings/js/JSCustomSQLStatementErrorCallback.cpp:
(WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
* bindings/js/JSCustomSQLTransactionCallback.cpp:
(WebCore::JSCustomSQLTransactionCallback::handleEvent):
* bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
(WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
* bindings/js/JSCustomVoidCallback.cpp:
(WebCore::JSCustomVoidCallback::handleEvent):
* bindings/js/JSCustomXPathNSResolver.cpp:
(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
* bindings/js/ScheduledAction.cpp:
(WebCore::ScheduledAction::execute):
* bindings/js/kjs_events.cpp:
(WebCore::JSAbstractEventListener::handleEvent):
(WebCore::JSLazyEventListener::parseCode):
* bindings/js/kjs_html.cpp:
(WebCore::runtimeObjectImplementsCall):
* bindings/js/kjs_proxy.cpp:
(WebCore::KJSProxy::isEnabled):
* bindings/js/kjs_proxy.h:
* bindings/js/kjs_window.cpp:
(KJS::Window::retrieveWindow):
(KJS::Window::retrieve):
* dom/Document.cpp:
(WebCore::Document::createHTMLEventListener):
* dom/EventTarget.cpp:
(WebCore::EventTarget::dispatchGenericEvent):
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::createNPObject):
* html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::evaluateScript):
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::parseTag):
(WebCore::HTMLTokenizer::processToken):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::executeScript):
(WebCore::FrameLoader::userGestureHint):
(WebCore::FrameLoader::open):
(WebCore::FrameLoader::dispatchWindowObjectAvailable):
(WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
* manual-tests/disable-javascript-reload.html: Added.
* page/Frame.cpp:
(WebCore::Frame::scriptProxy):
(WebCore::Frame::bindingRootObject):
(WebCore::Frame::windowScriptNPObject):
* page/Frame.h:
* page/InspectorController.cpp:
(WebCore::canPassNodeToJavaScript):
* page/mac/FrameMac.mm:
(WebCore::Frame::windowScriptObject):
* svg/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::createSVGEventListener):
2008-02-17 Mark Rowe <mrowe@apple.com>
Merge r30323 to Safari-3-1-branch.
2008-02-15 Dan Bernstein <mitz@apple.com>
Reviewed by Alexey Proskuryakov.
- WebCore part of fixing http://bugs.webkit.org/show_bug.cgi?id=17360
<rdar://problem/5743131> REGRESSION: mp4 file downloaded from server is downloaded as html
Test: http/tests/loading/text-content-type-with-binary-extension.html
Refined the workaround for <rdar://problem/5321972> to exclude files
with extensions that are known to be associated with binary MIME types.
* WebCore.xcodeproj/project.pbxproj: Added WebCoreURLResponse.{h,mm}.
* platform/network/mac/ResourceResponseMac.mm:
(WebCore::ResourceResponse::doUpdateResourceResponse): Moved the
workaround logic into WebCoreURLResponse.
* platform/network/mac/WebCoreURLResponse.h: Added.
* platform/network/mac/WebCoreURLResponse.mm: Added.
(createBinaryExtensionsSet): Returns a set of extensions known to
belong to MIME types of binary data.
(-[NSURLResponse _webcore_MIMEType]):
(-[NSHTTPURLResponse _webcore_MIMEType]): Forces the MIME type from
application/octet-stream to text/plain if that is the specified
Content-Type, unless the extension is in the binary extensions set.
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30285 to Safari-3-1-branch.
2008-02-15 Adam Roben <aroben@apple.com>
* bindings/scripts/CodeGenerator.pm: Touch this to force bindings to
regenerate.
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30269 to Safari-3-1-branch.
2008-02-14 Adam Roben <aroben@apple.com>
Conditionalize cross-document messaging support
The cross-document messaging parts of HTML 5 are in flux and we want
ports to be able to turn off the support as needed.
Note that the support is turned off by default right now. A subsequent
commit will turn it on by default.
Reviewed by Darin.
* GNUmakefile.am:
* WebCore.vcproj/build-generated-files.sh:
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::customGetOwnPropertySlot):
* bindings/js/JSEventCustom.cpp:
(WebCore::toJS):
* dom/Event.cpp:
(WebCore::Event::isMessageEvent):
* dom/Event.h:
* dom/MessageEvent.cpp:
* dom/MessageEvent.h:
* dom/MessageEvent.idl:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::postMessage):
* page/DOMWindow.h:
* page/DOMWindow.idl:
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30240 to Safari-3-1-branch.
2008-02-14 Ada Chan <adachan@apple.com>
<rdar://problem/5744728> Fix leaks of RegularExpression objects in Frame.cpp.
Reviewed by Jon and Darin.
* page/Frame.cpp:
(WebCore::createRegExpForLabels):
(WebCore::Frame::searchForLabelsBeforeElement):
(WebCore::Frame::matchLabelsAgainstElement):
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30239 to Safari-3-1-branch.
2008-02-14 Stephanie Lewis <slewis@apple.com>
Reviewed by Geoff.
Update order files.
* WebCore.order:
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30238 to Safari-3-1-branch.
2008-02-14 Oliver Hunt <oliver@apple.com>
Reviewed by Geoff G and Weinig.
<rdar://problem/5726608> REGRESSION (r29428): Assigning to window.status does not update status bar
Revert the portions of r29428 responsible for breaking the ability to
set window.status
* page/DOMWindow.cpp:
(WebCore::DOMWindow::setStatus):
(WebCore::DOMWindow::defaultStatus):
(WebCore::DOMWindow::setDefaultStatus):
* page/DOMWindow.h:
* page/DOMWindow.idl:
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30237 to Safari-3-1-branch.
2008-02-14 Anders Carlsson <andersca@apple.com>
Reviewed by Darin.
<rdar://problem/5721790>
Crash in WebCore::DeprecatedString::operator= + 31 at news.google.com
Use pointers in the cache map tables. Otherwise when we rehash,
we will end up destroying Cache objects that node lists might point to.
* dom/Node.cpp:
(WebCore::NodeListsNodeData::~NodeListsNodeData):
(WebCore::Node::getElementsByName):
(WebCore::Node::getElementsByClassName):
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30233 to Safari-3-1-branch.
2008-02-14 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin Adler.
<rdar://problem/5743768> A deadlock during storage layout tests
Make sure not to hold the m_openDatabaseMapGuard mutex when calling
Database::markAsDeletedAndClose(), since that can cause a deadlock
during the synchronous DatabaseThread call it triggers.
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::deleteDatabaseFile):
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30222 to Safari-3-1-branch.
2008-02-13 Justin Garcia <justin.garcia@apple.com>
Reviewed by Oliver Hunt.
Fixes the editing/deleting/5729680.html failure. It succeeds when run by itself
but fails when run with other tests because FramePrivate's m_selectionGranularity
isn't reset when a Frame receives a new document. It was also uninitialized in
the constructor.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::clear): Initialize m_selectionGranularity.
* page/Frame.cpp:
(WebCore::FramePrivate::FramePrivate): Ditto.
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30218 to Safari-3-1-branch.
2008-02-13 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Anders.
<rdar://problem/5739282> Hangs after closing video trailer popup with
VLC plugin
VLC hangs on NPP_Destroy if we call NPP_SetWindow with a null window
handle.
* plugins/PluginQuirkSet.h: Added new quirk
PluginQuirkDontSetNullWindowHandleOnDestroy.
(WebCore::):
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginView::stop): Selectively call NPP_SetWindow.
(WebCore::PluginView::determineQuirks): Set new quirk for VLC plug-in.
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30213 to Safari-3-1-branch.
2008-02-13 Justin Garcia <justin.garcia@apple.com>
Reviewed by Adam Roben.
<rdar://problem/5729680> REGRESSION (r27873): Removing the last character of a word in Mail or Safari also removes the following space
* editing/Editor.cpp:
(WebCore::Editor::deleteWithDirection): Fixed a typo.
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30195 to Safari-3-1-branch.
2008-02-13 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
<rdar://problem/5740042> Database termination issues
Test: storage/close-during-stress-test.html
* dom/Document.cpp:
(WebCore::Document::databaseThread):
* dom/Document.h:
Don't re-create the database thread if it has been already terminated.
* storage/Database.h: (WebCore::Database::document): Changed m_database to a RefPtr to avoid
having a hanging reference.
* storage/DatabaseThread.cpp:
(WebCore::DatabaseThread::requestTermination):
* storage/SQLTransaction.cpp: (WebCore::SQLTransaction::~SQLTransaction): Removed logging.
Transactions are deleted during GC, so it's usually not importatnt to know when it happens.
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30189 to Safari-3-1-branch.
2008-02-12 Timothy Hatcher <timothy@apple.com>
Reviewed by Brady Eidson.
<rdar://problem/5652560> Can't delete database if the website that
uses it has been opened in this session
Close the Database on the database thread before deleting the file.
Tested and works on Windows and Mac.
* platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::close): Assert we are on the opening thread.
* storage/Database.cpp:
(WebCore::Database::markAsDeletedAndClose): Unschedule any pending
Database tasks, and start and imediate DatabaseCloseTask.
(WebCore::Database::close): Close the SQLDatabase.
* storage/Database.h: Renamed markAsDeleted to markAsDeletedAndClose.
* storage/DatabaseTask.cpp:
(WebCore::DatabaseCloseTask::DatabaseCloseTask): New task.
(WebCore::DatabaseCloseTask::doPerformTask): Call close on the Database.
(WebCore::DatabaseCloseTask::debugTaskName): Return "DatabaseCloseTask".
* storage/DatabaseTask.h: Add DatabaseCloseTask.
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::deleteDatabaseFile): Call the renamed
markAsDeletedAndClose.
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30184 to Safari-3-1-branch.
2008-02-12 Brady Eidson <beidson@apple.com>
Reviewed by Darin Adler
Fix for <rdar://problem/5737692> - Database API needs to support SuccessCallback
Layout tests will come shortly with a mess of DRT changes
* platform/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::SecurityOrigin): Standardize on "empty string" instead of null string
as different paths of constructing a SecurityOrigin were causing different hashes for the "same"
SecurityOrigin
* storage/Database.cpp:
(WebCore::Database::changeVersion): Pass in the successCallback
(WebCore::Database::transaction): Ditto
* storage/SQLTransaction.cpp:
(WebCore::SQLTransaction::SQLTransaction):
(WebCore::SQLTransaction::debugStepName):
(WebCore::SQLTransaction::performNextStep): Update ASSERTs for the new valid steps
(WebCore::SQLTransaction::performPendingCallback): Ditto
(WebCore::SQLTransaction::postflightAndCommit): Schedule the success callback if it exists - otherwise
skip straight to cleanupAfterSuccessCallback()
(WebCore::SQLTransaction::deliverSuccessCallback): Deliver success callback on the main thread, then
schedule cleanupAfterSuccessCallback()
(WebCore::SQLTransaction::cleanupAfterSuccessCallback): Cleanup and end the transaction
(WebCore::SQLTransaction::handleTransactionError):
(WebCore::SQLTransaction::deliverTransactionErrorCallback):
(WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):
* storage/SQLTransaction.h:
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30179 to Safari-3-1-branch.
2008-02-12 Dan Bernstein <mitz@apple.com>
Reviewed by Adam Roben.
- fix http://bugs.webkit.org/show_bug.cgi?id=17041
<rdar://problem/5709660> Eastern Asian fonts do not display without specific box in Control Panel
Revised the system fallback font lookup logic to use MLang font linking
again. To avoid reintroducing bug 16548 and <rdar://problem/5280188>,
for CJK characters, try linking based on a single code page at a time,
starting with the user's default code page (if it is one of the CJK
code pages) followed by the other CJK code pages in a prescribed order
that matches what Firefox does.
* platform/graphics/win/FontCacheWin.cpp:
(WebCore::getCJKCodePageMasks): Added. Returns the search order for CJK
code pages, with the user's default code page first.
(WebCore::currentFontContainsCharacter): Factored out of
getFontDataForCharacters().
(WebCore::createMLangFont): Ditto.
(WebCore::FontCache::getFontDataForCharacters):
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30174 to Safari-3-1-branch.
2008-02-12 Dan Bernstein <mitz@apple.com>
Reviewed by Timothy Hatcher.
- <rdar://problem/5738175> Remove workaround for <rdar://problem/5539388> from post-Tiger builds
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::setShadow):
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30173 to Safari-3-1-branch.
2008-02-12 Brady Eidson <beidson@apple.com>
Release build fix
* storage/DatabaseTask.cpp:
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30172 to Safari-3-1-branch.
2008-02-12 Alexey Proskuryakov <ap@webkit.org> and Brady Eidson <beidson@apple.com>
Reviewed by Brady.
http://bugs.webkit.org/show_bug.cgi?id=17177
<rdar://problem/5729619> Storage tasks are getting lost
<rdar://problem/5729445> REGRESSION: Cannot schedule more than one transaction at a time
<rdar://problem/5729446> Major thread safety issue in Database code
* platform/MessageQueue.h: Added a thread-safe queue abstraction.
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
Added MessageQueue.h.
* dom/Document.cpp:
(WebCore::Document::~Document): Fixed a race condition resulting in a hanging reference.
* storage/Database.idl: Fixed parameter declarations to actually match implementation
(which is custom, so it got out of sync).
* storage/DatabaseTask.h:
(WebCore::DatabaseTask::database):
(WebCore::DatabaseTransactionTask::transaction):
Changed tasks to hold more information internally. Added helpers for better debug logging.
* storage/DatabaseTask.cpp:
(WebCore::DatabaseTask::DatabaseTask):
(WebCore::DatabaseTask::performTask):
(WebCore::DatabaseOpenTask::DatabaseOpenTask):
(WebCore::DatabaseOpenTask::doPerformTask):
(WebCore::DatabaseOpenTask::debugTaskName):
(WebCore::DatabaseTransactionTask::DatabaseTransactionTask):
(WebCore::DatabaseTransactionTask::~DatabaseTransactionTask):
(WebCore::DatabaseTransactionTask::doPerformTask):
(WebCore::DatabaseTransactionTask::debugTaskName):
(WebCore::DatabaseTableNamesTask::DatabaseTableNamesTask):
(WebCore::DatabaseTableNamesTask::doPerformTask):
(WebCore::DatabaseTableNamesTask::debugTaskName):
Implementation for the above.
(WebCore::DatabaseTask::lockForSynchronousScheduling):
(WebCore::DatabaseTask::waitForSynchronousCompletion):
Fixed a potential race condition: if the task completed before we entered a wait, we'd never
wake up. There was an assertion guarding against this, but no actual guarantee that I could see.
* storage/DatabaseThread.cpp:
(WebCore::DatabaseThread::DatabaseThread):
(WebCore::DatabaseThread::requestTermination):
(WebCore::DatabaseThread::databaseThread):
(WebCore::DatabaseThread::scheduleTask):
(WebCore::DatabaseThread::scheduleImmediateTask):
(WebCore::DatabaseThread::unscheduleDatabaseTasks):
* storage/DatabaseThread.h:
Changed to use MessageQueue.
* storage/Database.cpp:
(WebCore::guidMutex):
(WebCore::guidToVersionMap):
(WebCore::guidToDatabaseMap):
(WebCore::Database::openDatabase):
(WebCore::Database::Database):
(WebCore::Database::~Database):
(WebCore::Database::openAndVerifyVersion):
(WebCore::guidForOriginAndName):
(WebCore::Database::changeVersion):
(WebCore::Database::transaction):
(WebCore::Database::scheduleTransaction):
(WebCore::Database::scheduleTransactionStep):
(WebCore::Database::scheduleTransactionCallback):
(WebCore::Database::version):
(WebCore::Database::deliverPendingCallback):
(WebCore::Database::tableNames):
* storage/Database.h:
Changed m_transactionQueue to a MessageQueue.
Got rid of callback tracking - these can take care of themselves.
Got rid of a DatabaseThread member, as the Document can be asked for it.
Moved private static members and helpers out of the header.
Lost CurrentThreadSetter debug helper on the way. We may need to re-add something like that later.
* storage/SQLTransaction.h:
* storage/SQLTransaction.cpp: Added a lot of debug logging.
(WebCore::SQLTransaction::scheduleToRunStatements): Removed "m_currentStatement = 0" assignment,
as it created a race condition. Everything seems to work better without it, although a real fix
would be to get rid of this variable - it's evil shared data that isn't even protected in any way.
* manual-tests/database-threading-stress-test-2.html: Added.
* manual-tests/database-threading-stress-test.html: Added.
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30171 to Safari-3-1-branch.
2008-02-12 Adam Roben <aroben@apple.com>
Fix Bug 17328: REGRESSION (r30147): Inspector is unstyled on Windows
<http://bugs.webkit.org/show_bug.cgi?id=17328>
<rdar://5737946>
Reviewed by Mitz.
Test: fast/loader/local-css-allowed-in-strict-mode.html
* platform/network/cf/ResourceResponseCFNet.cpp:
(WebCore::ResourceResponse::doUpdateResourceResponse): Add a case for
.css files.
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30162 to Safari-3-1-branch.
2008-02-11 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=17320
<rdar://problem/5736953> :last-child does not set the "uses sibling rules" flag
Test: fast/css/last-child-style-sharing.html
* css/CSSGrammar.y: Changed to call setUsesSiblingRules(true) for all
CSS3 selectors that require it.
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30157 to Safari-3-1-branch.
2008-02-11 Sam Weinig <sam@webkit.org>
Reviewed by Darin Adler.
Make the cross-domain security model more closely match Firefox by always returning the
native built-in functions when accessing functions cross-domain.
Fixes for:
<rdar://problem/5735497> Match Firefox's cross-domain model more accurately by return the built-in version of functions even if they have been overridden
<rdar://problem/5735443> Crash when setting the Window objects prototype to a custom Object and then calling a method on it
Tests: fast/dom/Window/window-custom-prototype-crash.html
fast/dom/Window/window-function-frame-getter-precedence.html
http/tests/security/cross-frame-access-get-override.html
http/tests/security/cross-frame-access-location-get-override.html
http/tests/security/cross-frame-access-location-get.html
http/tests/security/cross-frame-access-location-put.html
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::customGetOwnPropertySlot):
- Return the native-built in version of an cross-domain allowed function (eg. window.focus) whether or
not it has been overridden, instead of undefined.
- When doing findEntry lookup, use the the tables directly (JSDOMWindowPrototype::info.propHashTable)
instead of calling the virtual classInfo() method to avoid the unnecessary overhead.
- Allow access to the native toString function cross-domain. It always returns "[object Window]".
- Use the new nonCachingStaticFunctionGetter when return allowed functions cross-frame so that
the function an overridden function is not inadvertantly returned from the PropertyMap.\
* bindings/js/JSHistoryCustom.cpp:
(WebCore::JSHistory::customGetOwnPropertySlot):
- Implement the same model as described above for the History object, always returning the
native built-in function cross-domain.
- Allow access to the native toString function cross-domain.
- Clean up the code to make it clear that the custom functionality is only there for cross-domain
access.
* bindings/js/JSLocation.cpp:
(WebCore::JSLocation::getOwnPropertySlot):
- Match the generated classes by moving all the custom logic into a separate customGetOwnPropertySlot
function. This will help moving to a generated class in the future.
(WebCore::JSLocation::customGetOwnPropertySlot):
- Implement the same model as described above for the Location object, always returning the
native built-in function cross-domain.
- Clean up the code to make it clear that the custom functionality is only there for cross-domain
access.
(WebCore::JSLocation::put):
(WebCore::JSLocation::deleteProperty):
(WebCore::JSLocation::getPropertyNames):
* bindings/js/JSLocation.h:
- Clean up to match the rest of the file a little better.
* bindings/js/kjs_binding.cpp:
(WebCore::allowsAccessFromFrame):
(WebCore::printErrorMessageForFrame):
(WebCore::nonCachingStaticFunctionGetter):
(WebCore::objectToStringFunctionGetter):
* bindings/js/kjs_binding.h:
- Put common functionality related to cross-domain access here to serve as a central shared point.
This includes moving and augmenting the allowsAccessFromFrame method that was in both JSHistoryCustom.cpp
and JSLocation.cpp.
* bindings/js/kjs_dom.cpp:
(WebCore::checkNodeSecurity):
- Use the new allowsAccessFromFrame method.
* bindings/js/kjs_window.cpp:
(KJS::Window::childFrameGetter): Cleanup.
(KJS::Window::namedItemGetter): Cleanup.
(KJS::Window::getOwnPropertySlot):
- Do the prototype lookup early to match Firefox in having function lookup have a higher precedence
than the index or shortcut name getters.
- Cleanup function to make it more understandable and slightly more efficient.
(KJS::Window::allowsAccessFrom):
- Add a new variant of this method that takes a reference to a String, which, on failure, will
contain the error message to print out. The caller can then pass this to printErrorMessage.
This allows for code to check allowsAccessFrom and act on the result without printing out the
error message. For convenience, a version with out the String parameter has been left which
prints out the message automatically.
(KJS::Window::printErrorMessage):
* bindings/js/kjs_window.h:
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30154 to Safari-3-1-branch.
2008-02-11 Timothy Hatcher <timothy@apple.com>
Reviewed by Brady Eidson.
<rdar://problem/5733069> Many m_quotaMap uses do not hold the m_quotaMapGuard
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::hasEntryForOrigin): Hold m_quotaMapGuard when using m_quotaMap.
(WebCore::DatabaseTracker::origins): Ditto.
(WebCore::DatabaseTracker::setQuota): Ditto.
(WebCore::DatabaseTracker::deleteAllDatabases): Call origins() and itterate over the
origins to call deleteOrigin().
(WebCore::DatabaseTracker::deleteOrigin): Hold m_quotaMapGuard when using m_quotaMap.
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30153 to Safari-3-1-branch.
2008-02-11 David Hyatt <hyatt@apple.com>
Fix for bug 17286, crash accessing a null RenderStyle. Add a simple null check.
Reviewed by aroben
Added fast/css/empty-generated-content.html
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::checkOneSelector):
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30146 to Safari-3-1-branch.
2008-02-11 Adam Roben <aroben@apple.com>
Fix Bug 14316: Inspector's Console truncates long strings
<http://bugs.webkit.org/show_bug.cgi?id=14316>
<rdar://5357695>
We no longer call Object.describe to format all the output of commands
enetered into the Console. The ConsolePanel object now has a set of
formatting functions that append a formatted representation of the
passed-in object to the passed-in container node.
Reviewed by Sam.
* page/inspector/ConsolePanel.js:
(WebInspector.ConsolePanel._onEnterPressed): Updated for rename of
_outputToNode to _format.
(WebInspector.ConsolePanel._format): Renamed from _outputToNode. Use
Object.type to get the type of the object, then call the appropriate
formatting function.
(WebInspector.ConsolePanel._formatvalue): Added.
(WebInspector.ConsolePanel._formatstring): Added. This function
contains the actual fix for the bug, since it doesn't truncate the
string no matter how long it is.
(WebInspector.ConsolePanel._formatregexp): Added.
(WebInspector.ConsolePanel._formatarray): Added. This is a bit more
functional than Object.describe for arrays, since it recursively
formats each item in the array. One advantage of this is that Nodes in
arrays will be linkified instead of just turning into "[Object
HTMLBodyElement]" or similar.
(WebInspector.ConsolePanel._formatnode): Added.
(WebInspector.ConsolePanel._formatobject): Added.
(WebInspector.ConsolePanel.
* page/inspector/utilities.js:
(Object.type): Added. Code was pulled out of Object.describe and
reorganized slightly.
(Object.describe): Call Object.type. There should be no change in
behavior of this function.
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30116 to Safari-3-1-branch.
2008-02-09 David Hyatt <hyatt@apple.com>
Fix for bug 17254, nth-* selectors do not work with negative coefficients.
Reviewed by Mitz.
fast/css/negative-nth-child.html
* css/CSSStyleSelector.cpp:
(WebCore::parseNth):
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30112 to Safari-3-1-branch.
2008-02-09 David Hyatt <hyatt@apple.com>
Fix for bug 17203, high CPU usage loading HTML5 spec. This patch significantly improves the performance
of CSS3 selectors.
(1) Split the notion of being affected by positional rules into "forward" and "backward." The "forward"
selectors do not need to re-resolve during parsing, since children are appended on the end. Only the
"backward" selectors like last-child or nth-last-child have to re-resolve when a close tag is encountered.
(2) Extend childrenChanged to specify whether the children were changed by the parser or not. This allows
Element::childrenChanged to know when the parser is adding children so that it can ignore those adds when
possible.
(3) Make sure all Elements now know whether or not their children are currently parsing. Backwards selectors
like last-child will always return false when children are still being parsed. When an Element finishes
parsing its children, finishParsingChildren() gets called and will make sure the children re-resolve properly.
(4) Added a beginParsingChildren method and renamed finishParsing to finishedParsingChildren.
(5) Eliminated one-off hacks that did the same thing in HTMLObjectElement and HTMLAppletElement.
(6) Patched many incorrect implementations of finishedParsingChildren that did not properly call into their
base class (mostly new SVG elements that got added for SVG fonts around the time this became a requirement).
Reviewed by Eric
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::checkSelector):
(WebCore::CSSStyleSelector::checkOneSelector):
* dom/Attr.cpp:
(WebCore::Attr::childrenChanged):
* dom/Attr.h:
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::addChild):
* dom/Document.cpp:
(WebCore::Document::childrenChanged):
* dom/Document.h:
* dom/Element.cpp:
(WebCore::Element::Element):
(WebCore::Element::recalcStyle):
(WebCore::checkFirstChildRules):
(WebCore::checkLastChildRules):
(WebCore::checkEmptyRules):
(WebCore::checkStyleRules):
(WebCore::Element::childrenChanged):
(WebCore::Element::finishParsingChildren):
* dom/Element.h:
(WebCore::Element::finishedParsingChildren):
(WebCore::Element::beginParsingChildren):
* dom/Node.cpp:
* dom/Node.h:
(WebCore::Node::finishParsingChildren):
(WebCore::Node::beginParsingChildren):
(WebCore::Node::childrenChanged):
* dom/StyledElement.cpp:
(WebCore::StyledElement::StyledElement):
* dom/StyledElement.h:
* dom/XMLTokenizer.cpp:
(WebCore::XMLTokenizer::startElementNs):
(WebCore::XMLTokenizer::endElementNs):
(WebCore::):
* html/HTMLAppletElement.cpp:
(WebCore::HTMLAppletElement::HTMLAppletElement):
(WebCore::HTMLAppletElement::finishParsingChildren):
* html/HTMLAppletElement.h:
* html/HTMLElementFactory.cpp:
(WebCore::objectConstructor):
* html/HTMLGenericFormElement.cpp:
(WebCore::HTMLFormControlElementWithState::finishParsingChildren):
* html/HTMLGenericFormElement.h:
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::HTMLObjectElement):
(WebCore::HTMLObjectElement::finishParsingChildren):
(WebCore::HTMLObjectElement::childrenChanged):
* html/HTMLObjectElement.h:
* html/HTMLOptGroupElement.cpp:
(WebCore::HTMLOptGroupElement::childrenChanged):
* html/HTMLOptGroupElement.h:
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::childrenChanged):
* html/HTMLOptionElement.h:
* html/HTMLParser.cpp:
(WebCore::HTMLParser::insertNode):
(WebCore::HTMLParser::pushBlock):
(WebCore::HTMLParser::popOneBlockCommon):
* html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::childrenChanged):
(WebCore::HTMLScriptElement::finishParsingChildren):
* html/HTMLScriptElement.h:
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::childrenChanged):
* html/HTMLSelectElement.h:
* html/HTMLStyleElement.cpp:
(WebCore::HTMLStyleElement::finishParsingChildren):
(WebCore::HTMLStyleElement::childrenChanged):
* html/HTMLStyleElement.h:
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::childrenChanged):
* html/HTMLTextAreaElement.h:
* html/HTMLTitleElement.cpp:
(WebCore::HTMLTitleElement::childrenChanged):
* html/HTMLTitleElement.h:
* rendering/RenderApplet.cpp:
(WebCore::RenderApplet::createWidgetIfNecessary):
* rendering/RenderPartObject.cpp:
(WebCore::RenderPartObject::updateWidget):
* rendering/RenderStyle.cpp:
(WebCore::RenderStyle::RenderStyle):
* rendering/RenderStyle.h:
(WebCore::RenderStyle::childrenAffectedByForwardPositionalRules):
(WebCore::RenderStyle::setChildrenAffectedByForwardPositionalRules):
(WebCore::RenderStyle::childrenAffectedByBackwardPositionalRules):
(WebCore::RenderStyle::setChildrenAffectedByBackwardPositionalRules):
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::finishParsingChildren):
* svg/SVGAnimationElement.h:
* svg/SVGClipPathElement.cpp:
(WebCore::SVGClipPathElement::childrenChanged):
* svg/SVGClipPathElement.h:
* svg/SVGDefinitionSrcElement.cpp:
(WebCore::SVGDefinitionSrcElement::childrenChanged):
* svg/SVGDefinitionSrcElement.h:
* svg/SVGElement.cpp:
(WebCore::SVGElement::finishParsingChildren):
* svg/SVGElement.h:
* svg/SVGFontFaceElement.cpp:
(WebCore::SVGFontFaceElement::childrenChanged):
* svg/SVGFontFaceElement.h:
* svg/SVGFontFaceFormatElement.cpp:
(WebCore::SVGFontFaceFormatElement::childrenChanged):
* svg/SVGFontFaceFormatElement.h:
* svg/SVGFontFaceSrcElement.cpp:
(WebCore::SVGFontFaceSrcElement::childrenChanged):
* svg/SVGFontFaceSrcElement.h:
* svg/SVGFontFaceUriElement.cpp:
(WebCore::SVGFontFaceUriElement::childrenChanged):
* svg/SVGFontFaceUriElement.h:
* svg/SVGGElement.cpp:
(WebCore::SVGGElement::childrenChanged):
* svg/SVGGElement.h:
* svg/SVGGradientElement.cpp:
(WebCore::SVGGradientElement::childrenChanged):
* svg/SVGGradientElement.h:
* svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::childrenChanged):
* svg/SVGMarkerElement.h:
* svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::childrenChanged):
* svg/SVGMaskElement.h:
* svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::childrenChanged):
* svg/SVGPatternElement.h:
* svg/SVGStyleElement.cpp:
(WebCore::SVGStyleElement::finishParsingChildren):
(WebCore::SVGStyleElement::childrenChanged):
* svg/SVGStyleElement.h:
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::childrenChanged):
* svg/SVGStyledElement.h:
* svg/SVGTitleElement.cpp:
(WebCore::SVGTitleElement::childrenChanged):
* svg/SVGTitleElement.h:
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::childrenChanged):
* svg/SVGUseElement.h:
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30104 to Safari-3-1-branch.
2008-02-08 Timothy Hatcher <timothy@apple.com>
Reviewed by Brady Eidson.
<rdar://problem/5640896> Removing database then trying
to recreate it causes trouble
Added open Database support to DatabaseTracker. So any Database that
is deleted will be marked as deleted and will fail to open any transaction
or execute any new SQL queries.
* storage/Database.cpp:
(WebCore::Database::Database): Call DatabaseTracker::addOpenDatabase.
(WebCore::Database::~Database): Call DatabaseTracker::removeOpenDatabase.
(WebCore::Database::markAsDeleted): Set the m_deleted flag.
(WebCore::Database::version): Return a null String if m_deleted is true.
* storage/Database.h:
(WebCore::Database::deleted): Return m_deleted.
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::addOpenDatabase): Add the Database to a map of origins and names.
(WebCore::DatabaseTracker::removeOpenDatabase): Remove the Database from the map.
(WebCore::DatabaseTracker::deleteDatabaseFile): Call markAsDeleted on all the open Databases
matching the origin/name.
* storage/DatabaseTracker.h:
* storage/SQLStatement.cpp:
(WebCore::SQLStatement::setDatabaseDeletedError): Set the error about the user deleting the database.
* storage/SQLStatement.h:
* storage/SQLTransaction.cpp:
(WebCore::SQLTransaction::executeSQL): If the Database is deleted, call setDatabaseDeletedError.
(WebCore::SQLTransaction::openTransactionAndPreflight): Set the error about the user deleting the database
if the Database was marked as deleted.
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30101 to Safari-3-1-branch.
2008-02-08 Anders Carlsson <andersca@apple.com>
Reviewed by Mitz.
<rdar://problem/5650446>
http://bugs.webkit.org/show_bug.cgi?id=16102
Crash in FrameLoader::stopLoadingSubframes() on IMDB page
Store the child frame in a RefPtr to prevent it from being deleted when the
frame tree changes while calling stopAllLoaders().
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopLoadingSubframes):
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30098 to Safari-3-1-branch.
2008-02-08 Alp Toker <alp@atoker.com>
Reviewed by Adam Roben.
Avoid null-dereference crasher noticed in the GTK+ port and also
affecting the Win release build.
Covered by existing tests.
* dom/Document.cpp:
(WebCore::Document::userStyleSheet):
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30097 to Safari-3-1-branch.
2008-02-08 Anders Carlsson <andersca@apple.com>
Reviewed by Adam.
<rdar://problem/5724188>
REGRESSION: PLT 0.7% slower due to 29926 (change Text::createWithLengthLimit to take a UChar pointer)
Revert r29926 which caused the regression.
* dom/Text.cpp:
(WebCore::Text::createWithLengthLimit):
* dom/Text.h:
* html/HTMLParser.cpp:
(WebCore::HTMLParser::parseToken):
* loader/TextDocument.cpp:
(WebCore::TextTokenizer::write):
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30096 to Safari-3-1-branch.
2008-02-08 Sam Weinig <sam@webkit.org>
Reviewed by Hyatt.
Fix for <rdar://problem/5732491>
http://bugs.webkit.org/show_bug.cgi?id=17213
The querySelectorAll method on an element node does not search only the element's descendants
Test: fast/dom/SelectorAPI/elementRoot.html
* dom/Node.cpp:
(WebCore::Node::querySelector): Make sure to stay within the root node when traversing the tree.
* dom/SelectorNodeList.cpp:
(WebCore::SelectorNodeList::SelectorNodeList): ditto.
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30087 to Safari-3-1-branch.
2008-02-06 Kimmo Kinnunen <kimmok@iki.fi>
Reviewed by Tim Hatcher.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=17191
HTML5: Client-side database queries should return values of type number
Test: storage/sql-data-types.html
Make the DB queries return a value as a number if it was inserted
as a number to the database.
* platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::getColumnValue): new member function to return SQLValues
* platform/sql/SQLiteStatement.h:
* storage/SQLStatement.cpp:
(WebCore::SQLStatement::execute): use getColumnValue instead of getColumnText
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30085 to Safari-3-1-branch.
2008-02-07 Ada Chan <adachan@apple.com>
<rdar://problem/5292433> certificate authentication support broken in Safari 3.0
Added mechanism to communicate client certificate info back to CFNetwork.
Reviewed by Adam.
* platform/network/ResourceHandle.h:
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::clientCerts): Keep a mapping of hosts to client certificates.
(WebCore::makeFinalRequest): If we have a client certificate for the host, pass it
to CFNetwork by setting it in the SSL properties.
(WebCore::ResourceHandle::setClientCertificate): Map client certificate to the host.
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30081 to Safari-3-1-branch.
2008-02-07 Adam Roben <aroben@apple.com>
Fix Bug 17138: REGRESSION: Node highlight not updated properly
<http://bugs.webkit.org/show_bug.cgi?id=17138>
<rdar://problem/5719869>
Reviewed by Darin.
No test possible.
* page/InspectorController.cpp:
(WebCore::InspectorController::drawNodeHighlight): Update the
overlayRect after scrolling to make sure that we translate the context
by the correct amount.
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30080 to Safari-3-1-branch.
2008-02-07 Adam Roben <aroben@apple.com>
Qt and GTK+ build fixes
* platform/gtk/FileSystemGtk.cpp: Added a missing #include.
* platform/qt/FileSystemQt.cpp: Ditto.
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30079 to Safari-3-1-branch.
2008-02-07 Adam Roben <aroben@apple.com>
Some cleanup of Mac-only user stylesheet code
I moved UserStyleSheetLoader out of Frame.cpp into its own files, and
moved some Mac-only Frame methods to FrameMac.mm.
Reviewed by Darin.
* WebCore.xcodeproj/project.pbxproj: Added new files to project.
* loader/mac/UserStyleSheetLoader.cpp: Added.
(UserStyleSheetLoader::UserStyleSheetLoader):
(UserStyleSheetLoader::~UserStyleSheetLoader):
* loader/mac/UserStyleSheetLoader.h: Added.
* page/Frame.cpp: Removed setUserStyleSheet[Location]
* page/mac/FrameMac.mm:
(WebCore::Frame::setUserStyleSheetLocation): Moved here from
Frame.cpp.
(WebCore::Frame::setUserStyleSheet): Ditto.
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30078 to Safari-3-1-branch.
2008-02-07 Adam Roben <aroben@apple.com>
Fix <rdar://5555260> GMail never loads when a user stylesheet is
specified
The fix in r29841 did not guarantee that the user stylesheet would not
still be loading by the time GMail called document.write, and so was
not a complete fix.
This change reworks the user stylesheet loading mechanism on non-Mac
platforms to load the stylesheet synchronously from disk, and then
keeps it in memory. This obsoletes the issue of what our behavior
should be before the user stylesheet has loaded and what should happen
when it finishes loading, as the user stylesheet will always be
available when the Document first asks for it. Note, however, that
this removes the ability to specify a non-file: URL for the user
stylesheet. This change was not made for the Mac platform because it's
possible that WebKit clients are relying on non-file: URLs for user
stylesheets. It would also be nice to move back to an asynchronous
loading model someday, but that is not currently possible since we
don't have an asynchronous loading mechanism that is not tied to a
particular Frame.
The responsibility of loading and storing the user stylesheet has
moved from Frame to Page, since the user stylesheet URL is set on the
Page-level Settings object.
Reviewed by Darin.
* dom/Document.cpp:
(WebCore::Document::Document): Changed to call userStyleSheet().
(WebCore::Document::setUserStyleSheet): Made Mac-only.
(WebCore::Document::userStyleSheet): Changed to call up to Page on
non-Mac platforms.
(WebCore::Document::recalcStyleSelector): Changed to call
userStyleSheet().
* dom/Document.h:
- Made setUserStyleSheet and the m_usersheet member Mac-only
- Changed userStyleSheet to return a String instance instead of a
String reference, since we now might return a new null String.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::begin): Made the call to
Frame::setUserStyleSheetLocation Mac-only.
* page/Frame.cpp: Made UserStyleSheetLoader and related code Mac-only.
(WebCore::Frame::~Frame): Ditto.
(WebCore::Frame::reapplyStyles): Made the call to
setUserStyleSheet[Location] Mac-only. On non-Mac platforms the
Document will pick up the new stylesheet in Document::reapplyStyles.
(WebCore::FramePrivate::FramePrivate): Made m_userStyleSheetLoader
Mac-only.
* page/Frame.h: Made setUserStyleSheet[Location] Mac-only.
* page/FramePrivate.h: Made m_userStyleSheetLoader Mac-only.
* page/Page.cpp:
(WebCore::Page::Page): Initialize new members.
(WebCore::Page::userStyleSheetLocationChanged): Added. Does nothing on
Mac. On non-Mac, resets all members relating to the user stylesheet so
we'll know to load it again the next time it's asked for.
(WebCore::Page::userStyleSheet): Added. Loads the user stylesheet if
the user stylesheet location has changed since the last time we loaded
it, or if the file has been modified since we last loaded it, then
returns the contents of the user stylesheet as a String.
* page/Page.h: Added new methods/members.
* page/Settings.cpp:
(WebCore::Settings::setUserStyleSheetLocation): Changed to call
Page::userStyleSheetLocationChanged.
* page/Settings.h: Changed userStyleSheetLocation to return the KURL
by reference instead of making a copy.
* platform/FileSystem.h: Added declaration for getFileModificationTime.
* platform/KURL.h: Added declaration for fileSystemPath method.
* platform/cf/KURLCFNet.cpp:
(WebCore::KURL::fileSystemPath): Added.
* platform/posix/FileSystemPOSIX.cpp:
(WebCore::getFileModificationTime): Added.
* platform/qt/KURLQt.cpp:
(WebCore::KURL::fileSystemPath): Stubbed out.
* platform/win/FileSystemWin.cpp:
(WebCore::getFileModificationTime): Added.
* platform/qt/FileSystemQt.cpp: Stubbed out getFileModificationTime.
* platform/gtk/FileSystemGtk.cpp: Ditto.
* platform/wx/FileSystemWx.cpp: Ditto.
* platform/qt/TemporaryLinkStubs.cpp: Stubbed out
SharedBuffer::createWithContentsOfFile.
* platform/gtk/TemporaryLinkStubs.cpp: Ditto, along with
KURL::fileSystemPath.
* platform/wx/TemporaryLinkStubs.cpp: Ditto.
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30077 to Safari-3-1-branch.
2008-02-07 Adam Roben <aroben@apple.com>
Clean up FileSystemWin.cpp
This cleanup also makes us call _wstat64 instead of _wstat32i64. The
only difference between these two functions is that _wstat64 gives
64-bit time values, while _wstat32i64 only gives 32-bit time values.
Reviewed by Darin.
All tests pass.
* platform/win/FileSystemWin.cpp:
(WebCore::statFile): New static helper that wraps _wstat64.
(WebCore::getFileSize): Changed to call statFile.
(WebCore::fileExists): Ditto.
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30076 to Safari-3-1-branch.
2008-02-07 Adam Roben <aroben@apple.com>
Rename fileSize to getFileSize
Rubberstamped by Darin.
* platform/FileSystem.h:
* platform/gtk/FileSystemGtk.cpp:
* platform/network/cf/FormDataStreamCFNet.cpp:
(WebCore::setHTTPBody):
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::ResourceHandleManager::setupPOST):
* platform/posix/FileSystemPOSIX.cpp:
* platform/qt/FileSystemQt.cpp:
* platform/win/FileSystemWin.cpp:
* platform/wx/FileSystemWx.cpp:
* storage/Database.cpp:
(WebCore::Database::databaseSize):
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::usageForDatabase):
* storage/OriginUsageRecord.cpp:
(WebCore::OriginUsageRecord::diskUsage):
2008-02-15 Mark Rowe <mrowe@apple.com>
Merge r30075 to Safari-3-1-branch.
2008-02-06 Adam Roben <aroben@apple.com>
Make KURL::isLocalFile treat the URL's protocol case-insensitively
Reviewed by Darin.
* platform/KURL.cpp:
(WebCore::KURL::isLocalFile): Use equalIgnoringCase instead of ==.
2008-02-14 Dan Bernstein <mitz@apple.com>
Reviewed by Adele Peterson.
- roll out changes to CSS2 system colors from r28775
* css/CSSStyleSelector.cpp:
(WebCore::):
(WebCore::colorForCSSValue):
* rendering/RenderTheme.cpp:
* rendering/RenderTheme.h:
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
2008-02-07 David Hyatt <hyatt@apple.com>
Fix for bug 6248, implement the nth-* CSS3 selectors. Patch based on original KHTML work from Allan Jensen
and improved upon by Nick Shanks.
Reviewed by Eric
* css/CSSGrammar.y:
* css/CSSParser.cpp:
(WebCore::CSSParser::lex):
* css/CSSSelector.cpp:
(WebCore::CSSSelector::extractPseudoType):
* css/CSSSelector.h:
(WebCore::CSSSelector::):
* css/CSSStyleSelector.cpp:
(WebCore::parseNth):
(WebCore::matchNth):
(WebCore::CSSStyleSelector::checkOneSelector):
* css/tokenizer.flex:
* rendering/RenderStyle.cpp:
(WebCore::RenderStyle::RenderStyle):
* rendering/RenderStyle.h:
(WebCore::RenderStyle::childIndex):
(WebCore::RenderStyle::setChildIndex):
2008-02-07 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt.
- fix <rdar://problem/5729411> REGRESSION (r29834): Float contained in relative-positioned block is painted twice
Test: fast/block/float/relative-painted-twice.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::addOverhangingFloats): Added another case where
the child should not take over painting the float: when they do not have
the same enclosing layer. In that case, the float is already being
painted by one of its closer ancestors.
2008-02-07 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- fix http://bugs.webkit.org/show_bug.cgi?id=17194
Changing text to bold changes font family
Test: platform/mac/fast/text/family-for-font-matched-by-name.html
* platform/mac/WebFontCache.mm:
(+[WebFontCache internalFontWithFamily:traits:size:]): Changed to use
the family of the font whose name matches the desired family if there
is no exact family match.
2008-02-07 Beth Dakin <bdakin@apple.com>
Reviewed by Geoff.
Fix for <rdar://problem/5697882> Traffic or Street View button on
Google Maps is sometimes not positioned correctly (17000)
On the Mac, timers fire in the order that they are registered.
Geoff and I discovered that this is not necessarily true on
Windows, and that turned out to be the cause of this intermittent
layout problem at Google Maps. This patch adds a new member
variable to Timer to remember the timer's insertion point into the
heap. Now when comparing timers, if two timers were registered at
the same time, their insertion orders are compared to determine
which should fire first. This code actually never runs on Debug
builds on the Mac; the system clock on the Mac is accurate enough
that it knows that the two timers were not registered at *exactly*
the same time. This is not the case on Windows. In theory, if we
sped up Javascript enough on the Mac, this code would run and would
prevent misrenderings such as the one found on Google Maps.
* platform/Timer.cpp:
(WebCore::operator<):
(WebCore::TimerBase::setNextFireTime):
* platform/Timer.h:
2008-02-06 Justin Garcia <justin.garcia@apple.com>
Reviewed by Darin Adler.
<rdar://problem/5195056> Huge plain text pastes are slow
This was fixed in r27369 and then r29367 and r29667 caused performance to
regress.
* editing/EditCommand.cpp:
(WebCore::EditCommand::apply): Only updateLayout() for high level commands.
(WebCore::EditCommand::unapply): Ditto.
(WebCore::EditCommand::reapply): Ditto.
* editing/Editor.cpp:
(WebCore::Editor::appliedEditing): Added a note about shouldChangeSelection calls
that shouldn't be made, a bug I filed as <rdar://problem/5729315>.
(WebCore::Editor::unappliedEditing): Ditto.
(WebCore::Editor::reappliedEditing): Ditto.
* editing/SelectionController.cpp:
(WebCore::SelectionController::nodeWillBeRemoved): Don't try to test the selection
base and extent with the expensive isCandidate operation if the node that will
be removed is in a fragment, since such a removal is guaranteed to have no effect
on a selection. This is to speed up the paste operation, which does many removes from
a fragment.
2008-02-06 Kevin Ollivier <kevino@theolliviers.com>
Reviewed by Darin Adler.
Rather than directly handing scroll wheel events, use
PlatformWheelEvent to send them to WebCore first, so that
mouse wheel scrolling info can be retrieved via JavaScript.
http://bugs.webkit.org/show_bug.cgi?id=17179
* platform/ScrollView.h:
* platform/wx/MouseWheelEventWx.cpp:
(WebCore::PlatformWheelEvent::PlatformWheelEvent):
* platform/wx/ScrollViewWx.cpp:
(WebCore::ScrollView::ScrollViewPrivate::bindEvents):
(WebCore::ScrollView::wheelEvent):
(WebCore::ScrollView::maximumScroll):
2008-02-06 Mark Rowe <mrowe@apple.com>
Fix Windows builds.
* WebCore.vcproj/WebCore.vcproj: Unbreak the XML of the project file.
2008-02-06 Mark Rowe <mrowe@apple.com>
Mac build fix. Track rename that happened in r30056.
* platform/graphics/mac/GraphicsContextMac.mm:
2008-02-06 Brent Fulgham <bfulgham@gmail.com>
Reviewed by Adam Roben.
http://bugs.webkit.org/show_bug.cgi?id=16979
Conditionalize CoreGraphics vs Cairo support in Windows port.
* WebCore.vcproj/WebCore.vcproj:
* bridge/win/FrameCGWin.cpp: Copied from WebCore/bridge/win/FrameWin.cpp.
(WebCore::imageFromSelection):
* bridge/win/FrameCairoWin.cpp: Added.
(WebCore::imageFromSelection):
* bridge/win/FrameWin.cpp:
(WebCore::computePageRectsForFrame):
* platform/graphics/SimpleFontData.h:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
* platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h: Copied from WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp.
(WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
(WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate):
(WebCore::GraphicsContextPlatformPrivate::beginTransparencyLayer):
(WebCore::GraphicsContextPlatformPrivate::endTransparencyLayer):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::savePlatformState):
(WebCore::GraphicsContext::restorePlatformState):
* platform/graphics/cg/GraphicsContextPlatformPrivate.h: Removed.
* platform/graphics/cg/GraphicsContextPlatformPrivateCG.h: Copied from WebCore/platform/graphics/cg/GraphicsContextPlatformPrivate.h.
* platform/graphics/win/FontCGWin.cpp: Copied from WebCore/platform/graphics/win/FontWin.cpp.
(WebCore::Font::drawGlyphs):
* platform/graphics/win/FontCairoWin.cpp: Added.
(WebCore::Font::drawGlyphs):
* platform/graphics/win/FontWin.cpp:
* platform/graphics/win/GraphicsContextCGWin.cpp: Copied from WebCore/platform/graphics/win/GraphicsContextWin.cpp.
(WebCore::CGContextWithHDC):
(WebCore::GraphicsContext::inTransparencyLayer):
(WebCore::GraphicsContext::getWindowsContext):
(WebCore::GraphicsContext::releaseWindowsContext):
(WebCore::GraphicsContextPlatformPrivate::scale):
(WebCore::GraphicsContextPlatformPrivate::rotate):
(WebCore::GraphicsContextPlatformPrivate::translate):
(WebCore::GraphicsContextPlatformPrivate::concatCTM):
(WebCore::setCGStrokeColor):
(WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
* platform/graphics/win/GraphicsContextCairoWin.cpp: Added.
(WebCore::GraphicsContext::GraphicsContext):
(WebCore::GraphicsContext::getWindowsContext):
(WebCore::GraphicsContext::inTransparencyLayer):
(WebCore::GraphicsContext::releaseWindowsContext):
(WebCore::GraphicsContext::concatCTM):
* platform/graphics/win/GraphicsContextWin.cpp:
* platform/graphics/win/ImageCGWin.cpp: Copied from WebCore/platform/graphics/win/ImageWin.cpp.
(WebCore::BitmapImage::getHBITMAPOfSize):
(WebCore::BitmapImage::drawFrameMatchingSourceSize):
* platform/graphics/win/ImageCairoWin.cpp: Added.
(WebCore::BitmapImage::getHBITMAPOfSize):
(WebCore::BitmapImage::drawFrameMatchingSourceSize):
* platform/graphics/win/ImageWin.cpp:
* platform/graphics/win/SimpleFontDataCGWin.cpp: Copied from WebCore/platform/graphics/win/SimpleFontDataWin.cpp.
(WebCore::scaleEmToUnits):
(WebCore::SimpleFontData::platformInit):
(WebCore::SimpleFontData::platformWidthForGlyph):
* platform/graphics/win/SimpleFontDataCairoWin.cpp: Added.
(WebCore::SimpleFontData::platformInit):
(WebCore::SimpleFontData::platformDestroy):
(WebCore::SimpleFontData::platformWidthForGlyph):
* platform/graphics/win/SimpleFontDataWin.cpp:
(WebCore::SimpleFontData::setShouldApplyMacAscentHack):
(WebCore::SimpleFontData::shouldApplyMacAscentHack):
* platform/win/DragImageCGWin.cpp: Copied from WebCore/platform/win/DragImageWin.cpp.
(WebCore::scaleDragImage):
(WebCore::createDragImageFromImage):
* platform/win/DragImageCairoWin.cpp: Added.
(WebCore::scaleDragImage):
(WebCore::createDragImageFromImage):
* platform/win/DragImageWin.cpp:
2008-02-06 Anders Carlsson <andersca@apple.com>
Reviewed by Darin.
Change httpBodyFromStream to take the request instead of the stream.
* platform/network/cf/FormDataStreamCFNet.cpp:
(WebCore::httpBodyFromRequest):
* platform/network/cf/FormDataStreamCFNet.h:
* platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::ResourceRequest::doUpdateResourceRequest):
2008-02-06 Kevin McCullough <kmccullough@apple.com>
Reviewed by Darin.
- Added manual tests for <rdar://problem/5556374> REGRESSION: cross-domain error when
one URL uses an explicit port number and another doesn't
* manual-tests/Default-port-frame.html: Added.
* manual-tests/resources/Default-port-frame-contents.html: Added.
2008-02-06 Oliver Hunt <oliver@apple.com>
Reviewed by NOBODY (Build fix).
Fix windows build
* WebCore.vcproj/build-generated-files.sh:
2008-02-06 Kevin McCullough <kmccullough@apple.com>
Rubberstamped by Darin.
<rdar://problem/5727708> REGRESSION (r29952): Can't send message from Yahoo Mail beta
- Reverted the change that caused the regression.
* dom/Document.cpp:
(WebCore::Document::createElement):
(WebCore::Document::createElementNS):
(WebCore::Document::getElementById):
(WebCore::Document::parseQualifiedName):
(WebCore::Document::createAttributeNS):
* dom/Document.idl:
2008-02-06 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Fixed <rdar://problem/5728081> REGRESSION: Many leaks on buildbot
The problem was refCount underflow in NamedAttrMap.
Neither our regression tests nor the stress test have yet discovered
another instance of this problem.
* dom/NamedAttrMap.cpp:
(WebCore::NamedAttrMap::addAttribute): Changed to use PassRefPtr,
for fast and correct refCount management. Also, change a rediculously
slow malloc to a slightly less rediculously slow realloc.
* dom/NamedAttrMap.h:
(WebCore::NamedAttrMap::insertAttribute): Changed to use PassRefPtr,
for fast and correct refCount management.
* html/HTMLTokenizer.cpp:
(WebCore::Token::addAttribute): Use a RefPtr, to guarantee that the
object starts with a refCount of 1.
2008-02-06 Darin Adler <darin@apple.com>
Reviewed by Tim Hatcher.
- fix <rdar://problem/5723293> NULL-deref crash in PropertyMap::put opening web inspector
with View Source window as target
* page/InspectorController.cpp:
(WebCore::canPassNodeToJavaScript): Added. Returns false if the node is in a document with
JavaScript disabled.
(WebCore::InspectorController::inspect): Check canPassNodeToJavaScript and do nothing if
it returns false.
2008-02-06 David Hyatt <hyatt@apple.com>
Fix for bug 16799, object elements should return absolute URLs from .data.
Reviewed by Mark Rowe
* dom/Document.cpp:
(WebCore::Document::completeURL):
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::href):
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::data):
2008-02-05 Antti Koivisto <antti@apple.com>
Reviewed by Darin.
<rdar://problem/5726340>
<video autoplay controls> left in unplayable state if navigated away, then back to, before video finished loading
When moving document in and out from the page cache:
- Cancel incomplete load by deleting the media player. This guarantees everything is in consistent state.
- Restart the load if it was aborted in the middle.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::load):
(WebCore::HTMLMediaElement::willSaveToCache):
(WebCore::HTMLMediaElement::didRestoreFromCache):
* html/HTMLMediaElement.h:
(WebCore::HTMLMediaElement::player):
2008-02-06 Darin Adler <darin@apple.com>
Reviewed by Sam.
- replace calls to put to set up properties with calls to putDirect, to
prepare for a future change where put won't take attributes any more,
and for a slight performance boost
* bindings/js/JSAudioConstructor.cpp:
(WebCore::JSAudioConstructor::JSAudioConstructor): Use putDirect instead of put.
* bindings/js/JSEventTargetBase.h:
(WebCore::JSEventTargetPrototype::self): Ditto.
* bindings/js/JSHTMLOptionElementConstructor.cpp:
(WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor): Ditto.
* bindings/js/JSSQLResultSetRowListCustom.cpp:
(WebCore::JSSQLResultSetRowList::item): Ditto.
2008-02-06 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- fix http://bugs.webkit.org/show_bug.cgi?17093
'border-color' does not animate to the value of 'color' when unspecified
Test: fast/css/transition-color-unspecified.html
* page/AnimationController.cpp:
(WebCore::ImplicitAnimation::animate): Changed to use the value of the
'color' property in the source or destination style as the source or
destination value of properties whose inital value is defined to be the
computed value of 'color'.
2008-02-06 Dan Bernstein <mitz@apple.com>
Build fix.
* svg/svgtags.in:
2008-02-05 Oliver Hunt <oliver@apple.com>
Build fix -- touch generate-bindings to trigger regeneration of bindings
* bindings/scripts/generate-bindings.pl:
2008-02-05 Oliver Hunt <oliver@apple.com>
RS=Eric.
Re-enable foreignObject by default as it is needed for a number of
non-fO related SVG tests and none of the old known crashes occur
anymore.
* Configurations/WebCore.xcconfig:
* WebCore.vcproj/WebCore.vcproj:
2008-02-05 Sam Weinig <sam@webkit.org>
Reviewed by Anders Carlsson.
Fix for http://bugs.webkit.org/show_bug.cgi?id=8080
NodeList (and other DOM lists) items are not enumeratable using for..in
- Match Firefox when enumerating DOM interfaces with indexGetters (support for
the array bracket, nodeList[0], notation) by including all the items in the
list before the attributes and methods of the interface.
Test: fast/dom/domListEnumeration.html
* ForwardingHeaders/kjs/PropertyNameArray.h: Added.
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::customGetPropertyNames): Use the new custom method model.
* bindings/js/JSHistoryCustom.cpp:
(WebCore::JSHistory::customGetPropertyNames): ditto.
* bindings/scripts/CodeGeneratorJS.pm: Instead of just adding a declaration of
getProperyNames and implementing the method in the Custom.cpp, move to a the
model used by generated getOwnPropertySlot() and put() where the custom code
is written in a separate customGetPropertyNames which returns a bool indicating
whether to call up to the base class. This enables adding the list indexes
to the PropertyNameArray for interfaces with indexGetters automatically.
2008-02-05 Samuel Weinig <sam@webkit.org>
Reviewed by Darin Adler.
Fix for <rdar://problem/5726604>
dom-checker: deleting properties of the window object cross-domain should not be allowed
Fix flaw found while testing with dom-checker testing tool (http://code.google.com/p/dom-checker/).
Test: http/tests/security/cross-frame-access-delete.html
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::deleteProperty): Override deleteProperty to not delete cross-domain.
* bindings/js/JSHistoryCustom.cpp:
(WebCore::JSHistory::deleteProperty): ditto.
* bindings/js/JSLocation.cpp:
(WebCore::JSLocation::deleteProperty): ditto.
* bindings/js/JSLocation.h:
* bindings/scripts/CodeGeneratorJS.pm: Add deleteProperty declaration when CustomDeleteProperty is used.
* page/DOMWindow.idl: Add CustomDeleteProperty extended attribute.
* page/History.idl: ditto.
2008-02-05 Alp Toker <alp@atoker.com>
Rubber-stamped by Mark Rowe.
Fix a "missing sentinel in function call" warning by using NULL
instead of 0.
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::caretBlinkFrequency):
2008-02-05 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Oliver.
Fix dynamic updates of <circle> element's properties.
Added tests: svg/dynamic-updates/SVGCircleElement*
* svg/SVGCircleElement.cpp:
(WebCore::SVGCircleElement::svgAttributeChanged): Mixed up cxAttr/xAttr etc.
* svg/SVGCircleElement.h:
2008-02-05 Rodney Dawes <dobey@wayofthemonkey.com>
Wx build fix. Add WebCore/plugins to the include path.
* webcore-base.bkl:
2008-02-05 Mark Rowe <mrowe@apple.com>
Mac build fix. Update the Xcode project to follow a moved file,
and track a rename in two files that were missed earlier.
* WebCore.xcodeproj/project.pbxproj:
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge canProvideDocumentSource]):
* platform/mac/PlugInInfoStoreMac.mm:
(WebCore::PluginInfoStore::pluginNameForMIMEType):
2008-02-05 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Holger.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=17185
Fix dynamic SVG DOM updates of <a> element's href property.
This commit also introduces a new SVG Tests framework: LayoutTests/svg/dynamic-updates
Its purpose is to provide dynamic updating tests for each SVG class & property, aka.
one test per property per class. As a first pass it's sufficient to add testcases for all
SVG*Element classes, and their properties - and only common-used base-class properties.
For SVGAElement - for example - it makes most sense to test scripting its parent
SVGURIReference object ('href' property) and its own property 'target'.
Adding tests to see - for example - if SVGAElement reacts on changes on ie. its parent
SVGExternalResourcesRequired interface, should really be done in a second pass.
All tests within the new framework are supposed to be created using make-js-tests-wrappers.
Added test: svg/dynamic-updates/SVGAElement-dom-href-attr.js
Added test: svg/dynamic-updates/SVGAElement-dom-target-attr.js
Added test: svg/dynamic-updates/SVGAElement-svgdom-href-prop.js
Added test: svg/dynamic-updates/SVGAElement-svgdom-target-prop.js
* svg/SVGAElement.cpp:
(WebCore::SVGAElement::parseMappedAttribute): Move any setChanged() handling in svgAttributeChanged.
(WebCore::SVGAElement::svgAttributeChanged):
(WebCore::SVGAElement::defaultEventHandler): Use href() not getAttribute(hrefAttr) - otherwhise SVG DOM updates fail!
* svg/SVGAElement.h:
2008-02-05 Justin Garcia <justin.garcia@apple.com>
Reviewed by Alexey Proskuryakov.
<rdar://problem/5685601> webkit-block-placeholder class on placeholders seems unnecessary (12317)
* editing/CompositeEditCommand.cpp:
(WebCore::createBlockPlaceholderElement): The khtml-block-placeholder class was needed
when the editing code actively looked for <br>s of that type in order to handle them
specially. That is no longer the case.
* editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::doApply): Fixed a bug where an extra block
would be inserted when hitting return inside an editable root held open by a placeholder
<br> or '\n'. Added test cases for the bug and for the special case code that was incorrectly
triggered to cause the bug.
2008-02-05 Rodney Dawes <dobey@wayofthemonkey.com>
Reviewed by Anders Carlsson.
Part one of http://bugs.webkit.org/show_bug.cgi?id=16924.
Shared PluginDatabase, PluginInfoStore and PluginPackage implementations.
Remove the Win suffix on several plugin-related classes that will
soon be refactored to be more portable.
* WebCore.vcproj/WebCore.vcproj:
* bindings/js/kjs_navigator.cpp:
(KJS::PluginBase::cachePluginDataIfNecessary):
* bindings/js/kjs_window.cpp:
* bridge/win/FrameWin.cpp:
(WebCore::Frame::createScriptInstanceForWidget):
* dom/Clipboard.cpp:
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::shouldUsePlugin):
* page/DragController.cpp:
* platform/PlugInInfoStore.h: Removed.
* platform/gtk/TemporaryLinkStubs.cpp:
(PluginInfoStore::createPluginInfoForPluginAtIndex):
(PluginInfoStore::pluginCount):
(PluginInfoStore::pluginNameForMIMEType):
(WebCore::PluginInfoStore::supportsMIMEType):
* platform/qt/PlugInInfoStoreQt.cpp:
(WebCore::PluginInfoStore::createPluginInfoForPluginAtIndex):
(WebCore::PluginInfoStore::pluginCount):
(WebCore::PluginInfoStore::pluginNameForMIMEType):
(WebCore::PluginInfoStore::supportsMIMEType):
* platform/qt/TemporaryLinkStubs.cpp:
* platform/win/SharedTimerWin.cpp:
(WebCore::TimerWindowWndProc):
* platform/wx/TemporaryLinkStubs.cpp:
(PluginInfoStore::createPluginInfoForPluginAtIndex):
(PluginInfoStore::pluginCount):
(WebCore::PluginInfoStore::supportsMIMEType):
(PluginInfoStore::pluginNameForMIMEType):
* plugins/PluginDatabase.h: Copied from WebCore/plugins/win/PluginDatabaseWin.h.
* plugins/PluginInfoStore.cpp: Copied from WebCore/plugins/win/PlugInInfoStoreWin.cpp.
(WebCore::PluginInfoStore::createPluginInfoForPluginAtIndex):
(WebCore::PluginInfoStore::pluginCount):
(WebCore::PluginInfoStore::pluginNameForMIMEType):
(WebCore::PluginInfoStore::supportsMIMEType):
(WebCore::refreshPlugins):
* plugins/PluginInfoStore.h: Copied from WebCore/platform/PlugInInfoStore.h.
* plugins/PluginPackage.h: Copied from WebCore/plugins/win/PluginPackageWin.h.
(WebCore::PluginPackageHash::hash):
(WebCore::PluginPackageHash::equal):
(WTF::):
* plugins/PluginView.h: Copied from WebCore/plugins/win/PluginViewWin.h.
(WebCore::PluginView::plugin):
* plugins/npapi.cpp: Copied from WebCore/plugins/win/npapi.cpp.
(pluginViewForInstance):
(NPN_UserAgent):
* plugins/win/PlugInInfoStoreWin.cpp: Removed.
* plugins/win/PluginDatabaseWin.cpp:
(WebCore::PluginDatabase::installedPlugins):
(WebCore::PluginDatabase::addExtraPluginPath):
(WebCore::PluginDatabase::refresh):
(WebCore::PluginDatabase::plugins):
(WebCore::addPluginsFromRegistry):
(WebCore::PluginDatabase::getPluginsInPaths):
(WebCore::PluginDatabase::defaultPluginPaths):
(WebCore::PluginDatabase::isMIMETypeRegistered):
(WebCore::PluginDatabase::pluginForMIMEType):
(WebCore::PluginDatabase::MIMETypeForExtension):
(WebCore::PluginDatabase::findPlugin):
(WebCore::PluginDatabase::createPluginView):
* plugins/win/PluginDatabaseWin.h: Removed.
* plugins/win/PluginPackageWin.cpp:
(WebCore::PluginPackage::~PluginPackage):
(WebCore::PluginPackage::freeLibrarySoon):
(WebCore::PluginPackage::freeLibraryTimerFired):
(WebCore::PluginPackage::PluginPackage):
(WebCore::PluginPackage::compareFileVersion):
(WebCore::PluginPackage::storeFileVersion):
(WebCore::PluginPackage::isPluginBlacklisted):
(WebCore::PluginPackage::fetchInfo):
(WebCore::PluginPackage::load):
(WebCore::PluginPackage::unload):
(WebCore::PluginPackage::unloadWithoutShutdown):
(WebCore::PluginPackage::createPackage):
(WebCore::PluginPackage::hash):
(WebCore::PluginPackage::equal):
* plugins/win/PluginPackageWin.h: Removed.
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginRequest::PluginRequest):
(WebCore::PluginMessageThrottlerWin::PluginMessageThrottlerWin):
(WebCore::registerPluginView):
(WebCore::PluginViewWndProc):
(WebCore::PluginView::popPopupsStateTimerFired):
(WebCore::PluginView::wndProc):
(WebCore::PluginView::updateWindow):
(WebCore::PluginView::windowClipRect):
(WebCore::PluginView::setFrameGeometry):
(WebCore::PluginView::geometryChanged):
(WebCore::PluginView::setFocus):
(WebCore::PluginView::show):
(WebCore::PluginView::hide):
(WebCore::PluginView::paintMissingPluginIcon):
(WebCore::PluginView::dispatchNPEvent):
(WebCore::PluginView::paint):
(WebCore::PluginView::handleKeyboardEvent):
(WebCore::PluginView::handleMouseEvent):
(WebCore::PluginView::handleEvent):
(WebCore::PluginView::setParent):
(WebCore::PluginView::attachToWindow):
(WebCore::PluginView::detachFromWindow):
(WebCore::PluginView::setNPWindowRect):
(WebCore::PluginView::start):
(WebCore::PluginView::stop):
(WebCore::PluginView::setCurrentPluginView):
(WebCore::PluginView::currentPluginView):
(WebCore::PluginView::performRequest):
(WebCore::PluginView::requestTimerFired):
(WebCore::PluginView::scheduleRequest):
(WebCore::PluginView::load):
(WebCore::PluginView::getURLNotify):
(WebCore::PluginView::getURL):
(WebCore::PluginView::handlePost):
(WebCore::PluginView::postURLNotify):
(WebCore::PluginView::postURL):
(WebCore::PluginView::newStream):
(WebCore::PluginView::write):
(WebCore::PluginView::destroyStream):
(WebCore::PluginView::userAgent):
(WebCore::PluginView::status):
(WebCore::PluginView::getValue):
(WebCore::PluginView::setValue):
(WebCore::PluginView::invalidateTimerFired):
(WebCore::PluginView::invalidateRect):
(WebCore::PluginView::invalidateRegion):
(WebCore::PluginView::forceRedraw):
(WebCore::PluginView::pushPopupsEnabledState):
(WebCore::PluginView::popPopupsEnabledState):
(WebCore::PluginView::arePopupsAllowed):
(WebCore::PluginView::bindingInstance):
(WebCore::PluginView::~PluginView):
(WebCore::PluginView::disconnectStream):
(WebCore::PluginView::determineQuirks):
(WebCore::PluginView::setParameters):
(WebCore::PluginView::PluginView):
(WebCore::PluginView::init):
(WebCore::PluginView::didReceiveResponse):
(WebCore::PluginView::didReceiveData):
(WebCore::PluginView::didFinishLoading):
(WebCore::PluginView::didFail):
(WebCore::PluginView::setCallingPlugin):
(WebCore::PluginView::isCallingPlugin):
* plugins/win/PluginViewWin.h: Removed.
* plugins/win/npapi.cpp: Removed.
2008-02-05 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=17158
Setting innerHTML in a detached XHTML element doesn't use the right namespace
Test: fast/dom/innerHTML-detached-element.xhtml
* dom/XMLTokenizer.cpp: (WebCore::XMLTokenizer::XMLTokenizer): Take parent element namespace
into account.
2008-02-05 Antti Koivisto <antti@apple.com>
Reviewed by Geoff.
Fix <rdar://problem/5698200>
eBay photo uploading hangs and causes slow script warning to pop up
In a case like this
var f = window.parent.parentFunction;
document.domain = document.domain; // this makes window.parent inaccessible
f();
Firefox allows parentFunction to access parents properties. Match this behavior.
In a domain security check against the dynamic global object fails for the specific reason that one of
the frames has written to the document.domain property and another has not (but they match otherwise),
then recheck against the lexical global object.
Test: http/tests/security/cross-frame-access-callback-explicit-domain-ALLOW.html
http/tests/security/cross-frame-access-callback-explicit-domain-DENY.html
* bindings/js/kjs_window.cpp:
(KJS::Window::allowsAccessFrom):
(KJS::Window::printErrorMessage):
* bindings/js/kjs_window.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::shouldAllowNavigation):
* platform/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::canAccess):
* platform/SecurityOrigin.h:
(WebCore::SecurityOrigin::):
2008-02-05 Adam Roben <aroben@apple.com>
Remove an unused member from Document
Reviewed by Mitz.
* dom/Document.cpp:
(WebCore::Document::recalcStyleSelector): There's no need to take
m_printSheet into account anymore as it's never anything but the null
string.
* dom/Document.h: Removed m_printSheet and methods relating to it.
2008-02-05 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- WebCore part of <rdar://problem/5724303> Should implement writing direction shortcuts
* WebCore.base.exp: Added Editor::setBaseWritingDirection() and
Frame::baseWritingDirectionForSelectionStart().
* page/mac/WebCoreFrameBridge.h: Removed
-baseWritingDirectionForSelectionStart.
* page/mac/WebCoreFrameBridge.mm: Ditto.
2008-02-05 Mark Rowe <mrowe@apple.com>
Reviewed by Oliver Hunt.
Update versioning to support the mysterious future.
* Configurations/Version.xcconfig: Add SYSTEM_VERSION_PREFIX_1060.
2008-02-05 Mark Rowe <mrowe@apple.com>
Fix the wxWidget Mac build by avoiding using ICU functions that were added after ICU 3.2.
* editing/SmartReplaceICU.cpp:
(WebCore::addAllCodePoints): Implement a replacement for uset_addAllCodePoints.
(WebCore::getSmartSet): Use addAllCodePoints instead of uset_addAllCodePoints.
2008-02-05 Mark Rowe <mrowe@apple.com>
Rubber-stamped by Oliver Hunt.
30,000!
* ChangeLog: Point out revision 30,000.
2008-02-04 Mark Rowe <mrowe@apple.com>
Unreviewed Gtk build fix.
wchar_t is only convertible to UChar on Windows. Use WebCore's String class
to get the UChars out of a C string in a portable fashion.
* editing/SmartReplaceICU.cpp:
(WebCore::getSmartSet):
2008-02-04 Tony Chang <idealisms@gmail.com>
Reviewed by Darin Adler.
Port the CoreFoundation version of WebCore::isCharacterSmartReplaceExempt
for other platforms by using ICU directly.
* GNUmakefile.am: Add SmartReplaceICU.cpp.
* WebCore.pro: Ditto.
* WebCoreSources.bkl: Ditto.
* editing/SmartReplace.cpp: Don't use this empty implementation when ICU is available.
* editing/SmartReplaceICU.cpp:
(getSmartSet):
(WebCore::isCharacterSmartReplaceExempt):
2008-02-04 Robert Sesek <rsesek@bluestatic.org>
Reviewed by Darin Adler.
Fix http://bugs.webkit.org/show_bug.cgi?id=17042
forms without action attributes submit to the <base> href instead of the originating page
Test: fast/forms/missing-action.html
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::submit): Submit to origin if there is no action
2008-02-04 Mark Rowe <mrowe@apple.com>
Reviewed by Tim Hatcher.
Gtk build fix. Use std::numeric_limits in place of ULLONG_MAX as
some Linux machines do not have ULLONG_MAX.
OriginUsageRecord::unknownDiskUsage becomes a static function to avoid
the global initialiser which would otherwise be generated.
* storage/OriginUsageRecord.cpp:
(WebCore::OriginUsageRecord::unknownDiskUsage):
(WebCore::OriginUsageRecord::addDatabase):
(WebCore::OriginUsageRecord::removeDatabase):
(WebCore::OriginUsageRecord::markDatabase):
(WebCore::OriginUsageRecord::diskUsage):
* storage/OriginUsageRecord.h:
2008-02-04 Mark Rowe <mrowe@apple.com>
Speculative Gtk build fix.
* storage/OriginUsageRecord.cpp:
2008-02-04 Brady Eidson <beidson@apple.com>
Attempt to fix build of all non-Mac platforms
* GNUmakefile.am:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCoreSources.bkl:
2008-02-04 Brady Eidson <beidson@apple.com>
Reviewed by Darin
Fix for <rdar://problem/5628468> - Quotas need to be implemented per-origin, and not per-database
To accomplish this, we need to track the sizes of all databases in an origin to constantly keep an up to date
count of the origin's total disk usage. I've introduced the OriginQuotaManager and OriginUsageRecord classes
to accomplish this.
Whenever a transaction is known to mutate the size of a database (tracked by the DatabaseAuthorizer), it marks
that database as unknown in the OriginQuotaManager. When a transaction later comes along to ask the
OriginQuotaManager the usage for that origin, it stat's all of the unknown databases in the origin and returns
the result.
Since the OriginQuotaManager is interesting from both the main thread and a DatabaseThread, all accessors it
provides require it to be locked first. ASSERTs help guarantee this is always the case.
Layout test will involve adding functionality to DRT on multiple platforms and will be coming up shortly
* WebCore.xcodeproj/project.pbxproj:
* platform/SecurityOrigin.h: Changed to be ThreadSafeShared instead of RefCounted
* storage/Database.cpp:
(WebCore::Database::databaseSize): Return the current filesize of this database on disk
(WebCore::Database::maximumSize): Added - calculates maximum size of this database based on quota and usage
* storage/Database.h: Add databaseSize() accessor, and get rid of unused declared methods that *were* going
to be the solution for this bug.
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::originQuotaManager): Accessor to the OriginQuotaManager which is lazily created
(WebCore::DatabaseTracker::canEstablishDatabase): Fetch the usage for this database slightly earlier, which
will ensure that the OriginQuotaManager is primed to track this origin
(WebCore::DatabaseTracker::fullPathForDatabase): Ditto
(WebCore::DatabaseTracker::populateOrigins): Create the OriginQuotaManager here.
(WebCore::DatabaseTracker::usageForOrigin): Use the OriginQuotaManager instead of looping through each database
in the origin
(WebCore::DatabaseTracker::deleteOrigin): Remove this origin from the OriginQuotaManager as it is no longer
interesting
(WebCore::DatabaseTracker::deleteDatabase): Remove this database from the OriginQuotaManager as it is no longer
interesting
* storage/DatabaseTracker.h:
* storage/OriginQuotaManager.cpp: Added.
(WebCore::OriginQuotaManager::OriginQuotaManager):
(WebCore::OriginQuotaManager::lock):
(WebCore::OriginQuotaManager::unlock):
(WebCore::OriginQuotaManager::trackOrigin): Add an origin to be tracked. Useful for when the very first database
in a new origin is still in the process of being created
(WebCore::OriginQuotaManager::tracksOrigin):
(WebCore::OriginQuotaManager::addDatabase):
(WebCore::OriginQuotaManager::removeDatabase):
(WebCore::OriginQuotaManager::removeOrigin): Removes all records in a certain origin from being tracked
(WebCore::OriginQuotaManager::markDatabase): Mark a specific database as having an unknown size - called when the
DatabaseAuthorizer in a SQLTransaction knows the file size might change.
(WebCore::OriginQuotaManager::diskUsage): Returns the disk usage for the given origin
* storage/OriginQuotaManager.h: Added.
* storage/OriginUsageRecord.cpp: Added.
(WebCore::OriginUsageRecord::OriginUsageRecord):
(WebCore::OriginUsageRecord::addDatabase): Adds an entry for the database in this origin's record
(WebCore::OriginUsageRecord::removeDatabase): Removes that entry
(WebCore::OriginUsageRecord::markDatabase): Marks the database as of unknown size
(WebCore::OriginUsageRecord::diskUsage): Returns the cached disk usage value, or recalculates it if any databases
are marked
* storage/OriginUsageRecord.h: Added.
* storage/SQLTransaction.cpp:
(WebCore::SQLTransaction::openTransactionAndPreflight): Use Database::maximumSize() instead of attributing the
entire quota to each database.
(WebCore::SQLTransaction::runStatements): Use Database::maximumSize() instead of attributing the entire quota
to each database.
(WebCore::SQLTransaction::runCurrentStatement): Mark this databases's size as unknown in the
OriginQuotaManager if this statement will change the size of the database
* storage/SQLTransaction.h:
2008-02-04 David Harrison <harrison@apple.com>
Reviewed by Darin Adler.
<rdar://problem/5607381> CrashTracer: [REGRESSION] 1748 crashes in Safari at com.apple.WebCore: WebCore::Image::width const + 24
Use an empty image when the local image file could not be loaded.
No test case because it would require forcing tiff load failure.
* editing/DeleteButtonController.cpp:
(WebCore::DeleteButtonController::createDeletionUI):
Do not present the deletion UI in the (odd) event that the delete button could not be loaded.
* platform/graphics/mac/ImageMac.mm:
(WebCore::Image::loadPlatformResource):
Return an empty image instead of 0 if the load fails.
2008-02-04 Darin Adler <darin@apple.com>
* dom/Document.cpp:
(WebCore::Document::completeURL): Fixed misleading comment.
2008-02-04 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Darin.
Blacklist Silverlight versions older than min required, not newer.
* plugins/win/PluginPackageWin.cpp:
(WebCore::PluginPackageWin::isPluginBlacklisted):
2008-02-04 David Hyatt <hyatt@apple.com>
Fix for bug 16751, misparsing of html*.test in CSS.
Reviewed by darin
Added fast/css/simple-selector-chain-parsing.html
* css/CSSGrammar.y:
2008-02-04 Darin Adler <darin@apple.com>
Suggested by Geoff and Maciej.
* bindings/js/JSCustomSQLTransactionCallback.cpp: Reworded a misleading
comment to be correct.
2008-02-04 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Steve, Anders.
<rdar://problem/5211187> QuickTime and Flash plug-ins draw outside of
content area when inside an iframe or div with overflow when playing a
movie and scrolling the iframe/div area
Clip the update region to the zero rect when scrolling. Don't do this
for Java, because it results in repaint problems.
* plugins/PluginQuirkSet.h: Added the DontClipToZeroRectWhenScrolling
quirk
(WebCore::):
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginViewWin::updateWindow): Readded the old behavior of
clipping to the zero rect when updating the window during a scroll.
Added plug-in quirk to ignore this behavior for Java. Swapped order of
the SetWindowRgn() and MoveWindow() calls to prevent Java from painting
outside of its container during a scroll.
(WebCore::PluginViewWin::determineQuirks): If this is Java, add the
DontClipToZeroRectWhenScrolling quirk.
2008-02-04 Timothy Hatcher <timothy@apple.com>
Reviewed by Mark Rowe.
<rdar://problem/5722972> Leopard needs to statically link SQLite
* Configurations/Base.xcconfig: Always have a header search path for WebCoreSQLite3.
* Configurations/DebugRelease.xcconfig: Ditto.
* Configurations/WebCore.xcconfig: Always link against WebCoreSQLite3.
2008-02-04 Adam Roben <aroben@apple.com>
Windows build fix
* bindings/scripts/CodeGeneratorCOM.pm: Touched to force a rebuild of
the COM bindings.
2008-02-04 David Harrison <harrison@apple.com>
Reviewed by Tim Hatcher.
- fix <rdar://problem/5715481> REGRESSION (r26499): JavaScript document.lastModified is not supported
Re-add attribute inadvertantly lost by r26499.
Test: fast/js/lastModified.html: Added.
* dom/Document.idl:
Add lastModified.
2008-02-04 Darin Adler <darin@apple.com>
Reviewed by Geoff.
- fix <rdar://problem/5713621> Threading issue when destroying database transaction callback
Do main-thread-only stuff on the main thread.
Not clear how to make a regression test for this.
* bindings/js/JSCustomSQLTransactionCallback.cpp:
(WebCore::JSCustomSQLTransactionCallback::Data::Data): Added.
(WebCore::JSCustomSQLTransactionCallback::Data::callback): Added.
(WebCore::JSCustomSQLTransactionCallback::Data::frame): Added.
(WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback): Put data into a
separate Data object; we'll destroy it on the main thread.
(WebCore::JSCustomSQLTransactionCallback::deleteData): Added.
(WebCore::JSCustomSQLTransactionCallback::~JSCustomSQLTransactionCallback): Call the
deleteData function on the main thread.
(WebCore::JSCustomSQLTransactionCallback::handleEvent): Updated to get at fields through the
m_data object.
* bindings/js/JSCustomSQLTransactionCallback.h: Declare deleteData, Data, and m_data rather
than m_callback and m_frame.
2008-02-04 Adam Roben <aroben@apple.com>
Fix the search field if the inpsected Document has overridden
Document.evaluate or Document.querySelectorAll
Reviewed by Darin.
* manual-tests/inspector-document-methods-override.html: Added.
* page/InspectorController.cpp:
(WebCore::InspectorController::didCommitLoad): Reworded a comment to
force WebCore.vcproj to build.
* page/inspector/inspector.js: Call
Document.prototype.{evaluate,querySelectorAll}.call instead of calling
the functions directly on the inspected Document. This ensures we are
calling the version of these functions we intended to.
2008-02-04 Darin Adler <darin@apple.com>
Reviewed by Tim Hatcher.
- possible fix for <rdar://problem/5714030> Crash in Database::deliverAllPendingCallbacks()
reloading a page quickly
I don't fully understand the cause of the crash, but I think this might
be a helpful change.
* platform/sql/SQLiteTransaction.cpp:
(WebCore::SQLiteTransaction::commit): If the commit fails, don't leave this
transaction and database both marked as "still in progress". As far as I can
tell this does no good, and also seems to do harm.
(WebCore::SQLiteTransaction::rollback): Ditto.
* storage/Database.cpp:
(WebCore::Database::performTransactionStep): Add some assertions to
detect databases stuck in the "transaction in progress" state.
* storage/SQLTransaction.cpp:
(WebCore::SQLTransaction::openTransactionAndPreflight): Ditto.
(WebCore::SQLTransaction::postflightAndCommit): Ditto.
(WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): Ditto.
2008-02-04 Darin Adler <darin@apple.com>
Reviewed by Geoff.
- fix <rdar://problem/5715692> REGRESSION (r28570): JavaScript window.scrollTo()
calls no longer accept 'undefined' values
By default, we should accept non-numeric parameters and non-integral numbers for
parameters that expect integers, without throwing exceptions.
While creating the test for this, I ran into a couple minor bugs with the
functions involved, and this patch fixes those too.
Test: fast/dom/non-numeric-values-numeric-parameters.html
* bindings/js/JSHTMLOptionsCollectionCustom.cpp:
(WebCore::JSHTMLOptionsCollection::add): Added. This function has unusual behavior
when passed non-integral values for its second parameter, so it needs to be written
by hand. I think that [Custom] is better here than inventing a new keyword.
* bindings/scripts/CodeGeneratorJS.pm: Changed default for "long" and "unsigned long"
to ignore errors rather than failing due to type differences. Also changed a couple
functions to use hashes.
* css/CSSStyleSheet.h:
(WebCore::CSSStyleSheet::removeRule): Remove overload of removeRule without a second
parameters. While we do allow this from JavaScript, it's not a true optional parameter,
but rather just a case of "you can omit parameters and they are treated as undefined"
combined with "undefined turns into 0 when passed to a function that takes an integer".
* css/CSSStyleSheet.idl: Removed [Optional] on the index parameter for removeRule.
This is not truly an optional parameter.
* dom/ProgressEvent.cpp:
(WebCore::ProgressEvent::initProgressEvent): Updated this function to match other
DOM event init functions -- important to do nothing if this is called on the an
already-dispatched event and we need to respect the bubble and cancelable arguments.
Also removed initProgressEventNS. We don't support namespaced events, and if we add
support, it should be across all event classes, not just ProgressEvent.
* dom/ProgressEvent.h: Removed initProgressEventNS.
* dom/ProgressEvent.idl: Ditto.
* dom/Range.cpp:
(WebCore::Range::createContextualFragment): Added a check for 0. This can happen
if the passed-in start container is a node that's not an HTML element and also
does not have a parent.
* html/HTMLOptionsCollection.idl: Added the [Custom] attribute to add, since the
rules for processing its parameters are unusual.
* page/DOMSelection.cpp: Removed the version of setPosition that has only
one parameter. The offset is not really optional.
* page/DOMSelection.h: Ditto.
* page/DOMSelection.idl: Removed the [Optional] keyword for the second parameter of
setPosition. It's not a true optional parameter (see discussion of removeRule above).
* page/DOMWindow.cpp:
(WebCore::DOMWindow::adjustWindowRect): Simplified logic for constraining the X
and Y coordinates, in a way that makes them work even when the window coordinates
are infinite. Also strengthened the assertion.
2008-02-04 Alp Toker <alp@atoker.com>
Rubber-stamped by Mark Rowe.
Remove all trailing whitespace in the GTK+ port and related
components.
* GNUmakefile.am:
* page/gtk/DragControllerGtk.cpp:
(WebCore::DragController::dragOperation):
(WebCore::DragController::maxDragImageSize):
* page/gtk/EventHandlerGtk.cpp:
(WebCore::EventHandler::passWidgetMouseDownEventToWidget):
(WebCore::EventHandler::createDraggingClipboard):
* page/gtk/FrameGtk.cpp:
(WebCore::Frame::dragImageForSelection):
* platform/graphics/cairo/AffineTransformCairo.cpp:
(WebCore::AffineTransform::mapRect):
(WebCore::AffineTransform::isIdentity):
(WebCore::AffineTransform::operator== ):
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::drawLine):
* platform/graphics/cairo/ImageBufferCairo.cpp:
* platform/graphics/cairo/ImageCairo.cpp:
* platform/graphics/cairo/ImageSourceCairo.cpp:
(WebCore::createDecoder):
* platform/graphics/gtk/FontCacheGtk.cpp:
* platform/graphics/gtk/FontGtk.cpp:
* platform/graphics/gtk/FontPlatformData.h:
* platform/graphics/gtk/FontPlatformDataGtk.cpp:
* platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp:
* platform/graphics/gtk/IconGtk.cpp:
* platform/graphics/gtk/ImageGtk.cpp:
* platform/graphics/gtk/SimpleFontDataGtk.cpp:
* platform/gtk/ClipboardGtk.h:
* platform/gtk/ContextMenuItemGtk.cpp:
(WebCore::ContextMenuItem::createNativeMenuItem):
* platform/gtk/CursorGtk.cpp:
* platform/gtk/DragDataGtk.cpp:
* platform/gtk/DragImageGtk.cpp:
(WebCore::createDragImageIconForCachedImage):
* platform/gtk/FileChooserGtk.cpp:
(WebCore::stringByAdoptingFileSystemRepresentation):
* platform/gtk/FileSystemGtk.cpp:
(WebCore::fileExists):
(WebCore::deleteFile):
(WebCore::deleteEmptyDirectory):
* platform/gtk/KeyEventGtk.cpp:
* platform/gtk/KeyboardCodes.h:
* platform/gtk/LocalizedStringsGtk.cpp:
(WebCore::inputElementAltText):
(WebCore::resetButtonDefaultLabel):
(WebCore::fileButtonChooseFileLabel):
(WebCore::fileButtonNoFileSelectedLabel):
(WebCore::contextMenuItemTagOpenImageInNewWindow):
* platform/gtk/MIMETypeRegistryGtk.cpp:
(WebCore::):
* platform/gtk/MouseEventGtk.cpp:
* platform/gtk/PasteboardGtk.cpp:
(WebCore::PasteboardSelectionData::markup):
(WebCore::Pasteboard::writeSelection):
* platform/gtk/PasteboardHelper.h:
* platform/gtk/PlatformScreenGtk.cpp:
(WebCore::screenDepth):
(WebCore::screenIsMonochrome):
(WebCore::screenRect):
(WebCore::screenAvailableRect):
* platform/gtk/PlatformScrollBar.h:
* platform/gtk/PlatformScrollBarGtk.cpp:
(PlatformScrollbar::PlatformScrollbar):
(PlatformScrollbar::updateThumbPosition):
* platform/gtk/PopupMenuGtk.cpp:
(WebCore::PopupMenu::updateFromElement):
* platform/gtk/RenderThemeGtk.h:
* platform/gtk/ScrollViewGtk.cpp:
(WebCore::ScrollView::scrollBy):
(WebCore::ScrollView::addChild):
(WebCore::ScrollView::updateScrollbars):
(WebCore::ScrollView::windowToContents):
(WebCore::ScrollView::contentsToWindow):
(WebCore::ScrollView::scrollbarUnderMouse):
* platform/gtk/SearchPopupMenuGtk.cpp:
* platform/gtk/SharedTimerGtk.cpp:
* platform/gtk/SystemTimeLinux.cpp:
(WebCore::currentTime):
* platform/gtk/TemporaryLinkStubs.cpp:
(PlugInInfoStore::pluginNameForMIMEType):
* platform/gtk/ThreadingGtk.cpp:
(WebCore::establishIdentifierForThread):
(WebCore::threadForIdentifier):
(WebCore::clearThreadForIdentifier):
(WebCore::ThreadCondition::ThreadCondition):
* platform/gtk/WheelEventGtk.cpp:
* platform/gtk/WidgetGtk.cpp:
* platform/network/curl/ResourceHandleCurl.cpp:
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::ResourceHandleManager::setupPOST):
* platform/network/curl/ResourceHandleManager.h:
* platform/network/curl/ResourceRequest.h:
(WebCore::ResourceRequest::ResourceRequest):
* platform/network/curl/ResourceResponse.h:
2008-02-03 Christian Dywan <christian@imendio.com>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=17046
[GTK] Context menu fixes and customisation suport
Provide standard GTK+ context menu items where appropriate.
Note that this change makes direct use of WebKit from WebCore which is
against WebKit/GTK+ guidelines. The ContextMenu abstraction should be
fixed at some point.
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected):
* platform/ContextMenu.cpp:
(WebCore::createAndAppendInputMethodsSubMenu):
(WebCore::):
(WebCore::insertControlCharacter):
(WebCore::createAndAppendUnicodeSubMenu):
(WebCore::ContextMenu::populate):
(ContextMenu::checkOrEnableIfNeeded):
* platform/ContextMenuItem.h:
(WebCore::):
* platform/LocalizedStrings.h:
* platform/gtk/ContextMenuItemGtk.cpp:
(WebCore::gtkStockIDFromContextMenuAction):
* platform/gtk/LocalizedStringsGtk.cpp:
(WebCore::gtkStockLabel):
(WebCore::contextMenuItemTagCopy):
(WebCore::contextMenuItemTagDelete):
(WebCore::contextMenuItemTagSelectAll):
(WebCore::contextMenuItemTagUnicode):
(WebCore::contextMenuItemTagInputMethods):
(WebCore::contextMenuItemTagGoBack):
(WebCore::contextMenuItemTagGoForward):
(WebCore::contextMenuItemTagStop):
(WebCore::contextMenuItemTagCut):
(WebCore::contextMenuItemTagPaste):
(WebCore::contextMenuItemTagBold):
(WebCore::contextMenuItemTagItalic):
(WebCore::contextMenuItemTagUnderline):
2008-02-03 Oliver Hunt <oliver@apple.com>
Reviewed by Maciej.
Bug 17169: Support transform on Canvas
Nice and simple patch as the cross-platform code to apply
a transform was already there.
Tests: fast/canvas/canvas-transform-identity.html
fast/canvas/canvas-transform-infinity.html
fast/canvas/canvas-transform-multiply.html
fast/canvas/canvas-transform-nan.html
fast/canvas/canvas-transform-skewed.html
* html/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::transform):
* html/CanvasRenderingContext2D.h:
* html/CanvasRenderingContext2D.idl:
2008-02-03 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Oliver.
Fix mistake in SVGImageElement, breaking "Dock" example of carto.net
It was comparing against the wrong attribute names in svgAttributeChanged().
Added testcase: svg/custom/js-update-image.svg
* svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::svgAttributeChanged):
2008-02-03 Eric Seidel <eric@webkit.org>
Reviewed by darin.
Acid3 expects textNode.localName === null
http://bugs.webkit.org/show_bug.cgi?id=17060
Test: fast/dom/Node/initial-values.html
* dom/Comment.cpp: remove localName implementation
* dom/Comment.h:
* dom/Node.cpp: return nullAtom instead of emptyAtom
* dom/Text.cpp: remove localName implementation
* dom/Text.h:
2008-02-03 Eric Seidel <eric@webkit.org>
Reviewed by darin.
Make createElementNS and createAttributeNS follow the (vague) DOM Core 2 spec
by throwing exceptions for more types of invalid qualified names.
http://bugs.webkit.org/show_bug.cgi?id=16833
Tests: fast/dom/Document/createAttributeNS-namespace-err.html
fast/dom/Document/createElementNS-namespace-err.html
* dom/Document.cpp:
(WebCore::Document::createElement):
(WebCore::hasNamespaceError):
(WebCore::Document::createElementNS):
(WebCore::Document::createAttributeNS):
* dom/Document.idl:
2008-02-03 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Eric.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=15394
Dramatically improve dynamic update performance in DOM / SVG DOM.
The notifyAttributeChange() sledgehammer is gone now. It was implemented on quite a lot of
SVG*Element classes and blindly reacted on any property change caused by DOM / SVG DOM
by rebuilding style/renderer etc. without actually checking what changed. SVG used a hack
for years that attributeChanged() called notifyAttributeChange() - which results in poor
scripting performance and/or dynamic creation/modification of elements using SVG DOM.
Properly implement childrenChanged / attributeChanged in SVG with some derivation from the HTML code.
Our SVG* element classes implement "svgAttributeChanged(const QualifiedName&)" instead of
"attributeChanged(Attribute*...)" to be able to unify DOM / SVG DOM updates. SVG DOM classes
are aware of the attribute name they belong to. So when using "rectElement.transform.baseVal.getItem(0).setRotate(45)"
SVG DOM updates the <rect> element by calling svgAttributeChanged(SVGNames::transformAttr) on the corresponding
SVGRectElement. So we're now able to handle fast dynamic updates in a unified way - leading to less bugs.
HTML dynamic updates vs. SVG dynamic updates:
HTML:
1) setAttribute("foo", "bar") -> attributeChanged -> parseMappedAttribute -> setChanged/setNeedsLayout
2) someObject.foo = "bar" -> HTML code maps to setAttribute calls, ends up taking the same route as 1)
3) someObject.style.foo = "bar" -> setChanged -> recalcStyle (possible relayout)
SVG:
1) setAttribute("foo", "bar") -> attributeChanged -> svgAttributeChanged -> parseMappedAttribute -> setChanged/setNeedsLayout
2) same, currently most functions are not yet converted to this new system! (most noticeable in SVGMarkerElement::setOrientToAngle)
3) same
4) someRectElement.x.baseVal.value = 100 -> svgAttributeChanged -> setChanged/setNeedsLayout (special SVG DOM updating)
The new SVG DOM updating concept 4) uses the same updating logic as 1) and 2), so we're actually modelling the HTML way.
SVG handles calling setChanged/setNeedsLayout in svgAttributeChanged, unlike HTML which uses parseMappedAttribute for that.
Only updated all elements necessary to let us pass layout tests w/o regressions. Need to crawl through
all SVG*Element classes and implement svgAttributeChanged / childrenChanged anywhere needed in a follow-up patch.
* bindings/js/JSSVGPODTypeWrapper.h:
(WebCore::JSSVGPODTypeWrapperCreatorReadWrite::commitChange):
(WebCore::JSSVGPODTypeWrapperCreatorReadOnly::commitChange):
(WebCore::JSSVGPODTypeWrapperCreatorForList::JSSVGPODTypeWrapperCreatorForList):
(WebCore::JSSVGPODTypeWrapperCreatorForList::operator PODType):
(WebCore::JSSVGPODTypeWrapperCreatorForList::commitChange):
* bindings/js/JSSVGPathSegListCustom.cpp:
(WebCore::JSSVGPathSegList::clear):
(WebCore::JSSVGPathSegList::initialize):
(WebCore::JSSVGPathSegList::insertItemBefore):
(WebCore::JSSVGPathSegList::replaceItem):
(WebCore::JSSVGPathSegList::removeItem):
(WebCore::JSSVGPathSegList::appendItem):
* bindings/js/JSSVGPointListCustom.cpp:
(WebCore::JSSVGPointList::clear):
(WebCore::JSSVGPointList::initialize):
(WebCore::JSSVGPointList::getItem):
(WebCore::JSSVGPointList::insertItemBefore):
(WebCore::JSSVGPointList::replaceItem):
(WebCore::JSSVGPointList::removeItem):
(WebCore::JSSVGPointList::appendItem):
* bindings/js/JSSVGTransformListCustom.cpp:
(WebCore::JSSVGTransformList::clear):
(WebCore::JSSVGTransformList::initialize):
(WebCore::JSSVGTransformList::getItem):
(WebCore::JSSVGTransformList::insertItemBefore):
(WebCore::JSSVGTransformList::replaceItem):
(WebCore::JSSVGTransformList::removeItem):
(WebCore::JSSVGTransformList::appendItem):
* bindings/scripts/CodeGeneratorJS.pm:
* rendering/RenderSVGGradientStop.cpp:
(WebCore::RenderSVGGradientStop::setStyle):
* rendering/RenderSVGGradientStop.h:
* svg/SVGAElement.cpp:
(WebCore::SVGAElement::defaultEventHandler):
* svg/SVGAElement.h:
* svg/SVGAngle.cpp:
* svg/SVGAngle.h:
(WebCore::SVGAngle::associatedAttributeName):
* svg/SVGAnimatedTemplate.h:
(WebCore::SVGAnimatedTemplate::SVGAnimatedTemplate):
(WebCore::SVGAnimatedTemplate::wrapperCache):
(WebCore::SVGAnimatedTemplate::associatedAttributeName):
(WebCore::lookupOrCreateWrapper):
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::parseBeginOrEndValue):
* svg/SVGAnimationElement.h:
* svg/SVGCircleElement.cpp:
(WebCore::SVGCircleElement::svgAttributeChanged):
* svg/SVGCircleElement.h:
* svg/SVGClipPathElement.cpp:
(WebCore::SVGClipPathElement::svgAttributeChanged):
(WebCore::SVGClipPathElement::childrenChanged):
(WebCore::SVGClipPathElement::canvasResource):
* svg/SVGClipPathElement.h:
(WebCore::SVGClipPathElement::isValid):
(WebCore::SVGClipPathElement::rendererIsNeeded):
* svg/SVGComponentTransferFunctionElement.cpp:
(WebCore::SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement):
* svg/SVGComponentTransferFunctionElement.h:
* svg/SVGCursorElement.cpp:
* svg/SVGElement.cpp:
(WebCore::SVGElement::insertedIntoDocument):
(WebCore::SVGElement::attributeChanged):
* svg/SVGElement.h:
(WebCore::SVGElement::svgAttributeChanged):
* svg/SVGEllipseElement.cpp:
(WebCore::SVGEllipseElement::svgAttributeChanged):
* svg/SVGEllipseElement.h:
* svg/SVGExternalResourcesRequired.cpp:
(WebCore::SVGExternalResourcesRequired::isKnownAttribute):
* svg/SVGExternalResourcesRequired.h:
* svg/SVGFEBlendElement.cpp:
* svg/SVGFEColorMatrixElement.cpp:
(WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement):
* svg/SVGFEComponentTransferElement.cpp:
* svg/SVGFECompositeElement.cpp:
* svg/SVGFEDiffuseLightingElement.cpp:
* svg/SVGFEDisplacementMapElement.cpp:
* svg/SVGFEFloodElement.cpp:
* svg/SVGFEGaussianBlurElement.cpp:
* svg/SVGFEImageElement.cpp:
* svg/SVGFELightElement.cpp:
* svg/SVGFEMergeNodeElement.cpp:
* svg/SVGFEOffsetElement.cpp:
* svg/SVGFESpecularLightingElement.cpp:
* svg/SVGFETileElement.cpp:
* svg/SVGFETurbulenceElement.cpp:
* svg/SVGFilterElement.cpp:
* svg/SVGFilterPrimitiveStandardAttributes.cpp:
* svg/SVGFitToViewBox.cpp:
(WebCore::SVGFitToViewBox::isKnownAttribute):
* svg/SVGFitToViewBox.h:
* svg/SVGForeignObjectElement.cpp:
* svg/SVGGElement.cpp:
(WebCore::SVGGElement::svgAttributeChanged):
(WebCore::SVGGElement::childrenChanged):
* svg/SVGGElement.h:
* svg/SVGGradientElement.cpp:
(WebCore::SVGGradientElement::SVGGradientElement):
(WebCore::SVGGradientElement::svgAttributeChanged):
(WebCore::SVGGradientElement::childrenChanged):
(WebCore::SVGGradientElement::buildStops):
* svg/SVGGradientElement.h:
* svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::parseMappedAttribute):
(WebCore::SVGImageElement::svgAttributeChanged):
* svg/SVGImageElement.h:
* svg/SVGLangSpace.cpp:
(WebCore::SVGLangSpace::isKnownAttribute):
* svg/SVGLangSpace.h:
* svg/SVGLengthList.cpp:
(WebCore::SVGLengthList::SVGLengthList):
* svg/SVGLengthList.h:
* svg/SVGLineElement.cpp:
(WebCore::SVGLineElement::svgAttributeChanged):
* svg/SVGLineElement.h:
* svg/SVGLinearGradientElement.cpp:
(WebCore::SVGLinearGradientElement::svgAttributeChanged):
* svg/SVGLinearGradientElement.h:
* svg/SVGList.h:
(WebCore::SVGList::SVGList):
(WebCore::SVGList::associatedAttributeName):
(WebCore::SVGPODList::SVGPODList):
* svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::svgAttributeChanged):
(WebCore::SVGMarkerElement::childrenChanged):
* svg/SVGMarkerElement.h:
* svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::svgAttributeChanged):
(WebCore::SVGMaskElement::childrenChanged):
* svg/SVGMaskElement.h:
* svg/SVGNumberList.cpp:
(WebCore::SVGNumberList::SVGNumberList):
* svg/SVGNumberList.h:
* svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::svgAttributeChanged):
(WebCore::SVGPathElement::pathSegList):
* svg/SVGPathElement.h:
* svg/SVGPathSeg.h:
(WebCore::SVGPathSeg::associatedAttributeName):
* svg/SVGPathSegList.cpp:
(WebCore::SVGPathSegList::SVGPathSegList):
* svg/SVGPathSegList.h:
* svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::SVGPatternElement):
(WebCore::SVGPatternElement::svgAttributeChanged):
(WebCore::SVGPatternElement::childrenChanged):
* svg/SVGPatternElement.h:
* svg/SVGPointList.cpp:
(WebCore::SVGPointList::SVGPointList):
* svg/SVGPointList.h:
* svg/SVGPolyElement.cpp:
(WebCore::SVGPolyElement::SVGPolyElement):
(WebCore::SVGPolyElement::points):
(WebCore::SVGPolyElement::parseMappedAttribute):
(WebCore::SVGPolyElement::svgAttributeChanged):
* svg/SVGPolyElement.h:
* svg/SVGPolygonElement.cpp:
* svg/SVGPolygonElement.h:
* svg/SVGPolylineElement.cpp:
* svg/SVGPolylineElement.h:
* svg/SVGPreserveAspectRatio.cpp:
* svg/SVGPreserveAspectRatio.h:
(WebCore::SVGPreserveAspectRatio::associatedAttributeName):
* svg/SVGRadialGradientElement.cpp:
(WebCore::SVGRadialGradientElement::svgAttributeChanged):
* svg/SVGRadialGradientElement.h:
* svg/SVGRectElement.cpp:
(WebCore::SVGRectElement::svgAttributeChanged):
* svg/SVGRectElement.h:
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::parseMappedAttribute):
(WebCore::SVGSVGElement::svgAttributeChanged):
* svg/SVGSVGElement.h:
* svg/SVGStopElement.cpp:
(WebCore::SVGStopElement::parseMappedAttribute):
(WebCore::SVGStopElement::createRenderer):
* svg/SVGStopElement.h:
* svg/SVGStringList.cpp:
(WebCore::SVGStringList::SVGStringList):
* svg/SVGStringList.h:
* svg/SVGStylable.cpp:
* svg/SVGStylable.h:
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::isKnownAttribute):
(WebCore::SVGStyledElement::svgAttributeChanged):
(WebCore::SVGStyledElement::invalidateResourcesInAncestorChain):
(WebCore::SVGStyledElement::childrenChanged):
* svg/SVGStyledElement.h:
* svg/SVGStyledLocatableElement.cpp:
* svg/SVGStyledLocatableElement.h:
* svg/SVGStyledTransformableElement.cpp:
(WebCore::SVGStyledTransformableElement::SVGStyledTransformableElement):
(WebCore::SVGStyledTransformableElement::parseMappedAttribute):
(WebCore::SVGStyledTransformableElement::isKnownAttribute):
* svg/SVGStyledTransformableElement.h:
* svg/SVGTests.cpp:
(WebCore::SVGTests::requiredFeatures):
(WebCore::SVGTests::requiredExtensions):
(WebCore::SVGTests::systemLanguage):
(WebCore::SVGTests::isKnownAttribute):
* svg/SVGTests.h:
* svg/SVGTextContentElement.cpp:
* svg/SVGTextElement.cpp:
(WebCore::SVGTextElement::SVGTextElement):
* svg/SVGTextElement.h:
* svg/SVGTextPathElement.cpp:
* svg/SVGTextPathElement.h:
* svg/SVGTextPositioningElement.cpp:
(WebCore::SVGTextPositioningElement::SVGTextPositioningElement):
* svg/SVGTextPositioningElement.h:
* svg/SVGTransformList.cpp:
(SVGTransformList::SVGTransformList):
* svg/SVGTransformList.h:
* svg/SVGTransformable.cpp:
(WebCore::SVGTransformable::isKnownAttribute):
* svg/SVGTransformable.h:
* svg/SVGURIReference.cpp:
(WebCore::SVGURIReference::isKnownAttribute):
* svg/SVGURIReference.h:
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::insertedIntoDocument):
(WebCore::SVGUseElement::svgAttributeChanged):
(WebCore::SVGUseElement::childrenChanged):
(WebCore::SVGUseElement::buildPendingResource):
* svg/SVGUseElement.h:
* svg/SVGViewElement.cpp:
(WebCore::SVGViewElement::SVGViewElement):
(WebCore::SVGViewElement::viewTarget):
(WebCore::SVGViewElement::parseMappedAttribute):
* svg/SVGViewElement.h:
* svg/SVGViewSpec.cpp:
(WebCore::SVGViewSpec::SVGViewSpec):
* svg/SVGViewSpec.h:
* svg/SVGZoomAndPan.cpp:
(WebCore::SVGZoomAndPan::isKnownAttribute):
* svg/SVGZoomAndPan.h:
* svg/graphics/SVGResource.cpp:
(WebCore::SVGResource::invalidate):
(WebCore::SVGResource::invalidateClients):
(WebCore::SVGResource::addClient):
* svg/graphics/SVGResource.h:
* svg/graphics/SVGResourceMasker.cpp:
(WebCore::SVGResourceMasker::invalidate):
* svg/graphics/cg/SVGPaintServerGradientCg.cpp:
(WebCore::SVGPaintServerGradient::invalidate):
* svg/graphics/filters/SVGFEImage.cpp:
(WebCore::SVGFEImage::imageChanged):
2008-02-03 Kevin Ollivier <kevino@theolliviers.com>
Build fix for last wx commit (a couple things were not committed).
* platform/ScrollView.h:
* platform/Widget.h:
2008-02-03 Kevin Ollivier <kevino@theolliviers.com>
Clean up overlooked coding guideline issues from last commit.
* platform/wx/ScrollViewWx.cpp:
(WebCore::ScrollView::ScrollViewPrivate::OnScrollWinEvents):
(WebCore::ScrollView::update):
(WebCore::ScrollView::scrollBy):
(WebCore::ScrollView::resizeContents):
(WebCore::ScrollView::adjustScrollbars):
(WebCore::ScrollView::setScrollbarsMode):
(WebCore::ScrollView::setHScrollbarMode):
(WebCore::ScrollView::setVScrollbarMode):
(WebCore::ScrollView::suppressScrollbars):
* platform/wx/WidgetWx.cpp:
(WebCore::Widget::setCursor):
2008-02-03 Kevin Watters <kevinwatters@gmail.com>
Reviewed by Kevin Ollivier.
* platform/wx/RenderThemeWx.cpp:
(WebCore::RenderThemeWx::paintButton):
* platform/wx/ScrollViewWx.cpp:
(WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
(WebCore::ScrollView::ScrollViewPrivate::bindEvents):
(WebCore::ScrollView::ScrollViewPrivate::OnMouseWheelEvents):
(WebCore::ScrollView::ScrollViewPrivate::OnScrollWinEvents):
(WebCore::ScrollView::ScrollView):
(WebCore::ScrollView::setNativeWindow):
(WebCore::ScrollView::updateContents):
(WebCore::ScrollView::update):
(WebCore::ScrollView::visibleWidth):
(WebCore::ScrollView::visibleHeight):
(WebCore::ScrollView::setContentsPos):
(WebCore::ScrollView::scrollBy):
(WebCore::ScrollView::resizeContents):
(WebCore::ScrollView::contentsX):
(WebCore::ScrollView::contentsY):
(WebCore::ScrollView::contentsWidth):
(WebCore::ScrollView::contentsHeight):
(WebCore::ScrollView::AdjustScrollbars):
(WebCore::ScrollView::setScrollbarsMode):
(WebCore::ScrollView::setHScrollbarMode):
(WebCore::ScrollView::setVScrollbarMode):
(WebCore::ScrollView::suppressScrollbars):
(WebCore::ScrollView::inWindow):
(WebCore::ScrollView::wheelEvent):
(WebCore::ScrollView::addChild):
(WebCore::ScrollView::removeChild):
(WebCore::ScrollView::children):
(WebCore::ScrollView::scrollRectIntoViewRecursively):
(WebCore::ScrollView::scrollbarUnderMouse):
* platform/wx/WidgetWx.cpp:
(WebCore::Widget::Widget):
(WebCore::Widget::~Widget):
(WebCore::Widget::nativeWindow):
(WebCore::Widget::setNativeWindow):
2008-02-02 David Hyatt <hyatt@apple.com>
Fix for bug 5468, support CSS3 :only-child and :only-of-type selectors.
Reviewed by olliej
Added fast/css/only-child-pseudo-class.html, fast/css/only-of-type-pseudo-class.html
* css/CSSSelector.cpp:
(WebCore::CSSSelector::extractPseudoType):
* css/CSSSelector.h:
(WebCore::CSSSelector::):
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::checkOneSelector):
2008-02-02 Darin Adler <darin@apple.com>
Reviewed by Geoff Garen.
PLT speedup related to <rdar://problem/5659272> REGRESSION: PLT .4%
slower due to r28884 (global variable symbol table optimization)
* history/CachedPage.cpp:
(WebCore::CachedPage::CachedPage): Removed saveSymbolTable call.
(WebCore::CachedPage::restore): Removed restoreSymbolTable call.
(WebCore::CachedPage::clear): Removed clear of m_windowSymbolTable.
* history/CachedPage.h: Removed m_windowSymbolTable, since save/restoreLocalStorage
now takes care of the symbol table. Also removed many unnecessary includes.
2008-02-02 Tony Chang <idealisms@gmail.com>
Reviewed by eseidel.
Add an include for for <objidl.h> which isn't included
by default with WIN32_LEAN_AND_MEAN.
* platform/graphics/FontCache.h:
2008-02-02 Kevin Watters <kevin@dotsyntax.com>
Reviewed by Kevin Ollivier.
wxFont is reference counted and meant to be used as as a value
object; when using wxFont*, ref-counting was not happening properly
and the font object would be destroyed while still in use.
Also, fix memory leak in wx's FrameData::clear() method.
* platform/graphics/SimpleFontData.h:
(WebCore::SimpleFontData::getWxFont):
* platform/graphics/wx/FontPlatformData.h:
(WebCore::FontPlatformData::):
(WebCore::FontPlatformData::FontPlatformData):
(WebCore::FontPlatformData::font):
(WebCore::FontPlatformData::hash):
(WebCore::FontPlatformData::operator==):
(WebCore::FontPlatformData::computeHash):
* platform/graphics/wx/FontPlatformDataWx.cpp:
(WebCore::fontFamilyToWxFontFamily):
(WebCore::FontPlatformData::FontPlatformData):
(WebCore::FontPlatformData::~FontPlatformData):
* platform/graphics/wx/FontWx.cpp:
(WebCore::Font::drawGlyphs):
* platform/graphics/wx/SimpleFontDataWx.cpp:
(WebCore::SimpleFontData::platformInit):
(WebCore::SimpleFontData::determinePitch):
(WebCore::SimpleFontData::platformWidthForGlyph):
2008-02-02 Kevin Ollivier <kevino@theolliviers.com>
Reviewed by Adam Roben.
On MSW, the wx port internally uses callbacks for wxTimer, so the
wx port suffers from the same crash problem that was fixed
in r28500 for the Windows port. For now, use the SharedTimerWin.cpp
impl. for wx too on MSW, until a version of wx is released that
fixes the issue by reworking wxTimer.
* page/Page.h:
* platform/win/SharedTimerWin.cpp:
(WebCore::TimerWindowWndProc):
* webcore-wx.bkl:
2008-02-02 Mark Rowe <mrowe@apple.com>
Qt build fix.
* platform/qt/ThreadingQt.cpp: Fix typo.
2008-02-02 Kevin Ollivier <kevino@theolliviers.com>
Blind build fix for Qt port. Add Threading.h include.
* platform/qt/ThreadingQt.cpp:
2008-02-02 Kevin Ollivier <kevino@theolliviers.com>
wx build fix - add missing include file.
* platform/wx/ThreadingWx.cpp:
2008-02-02 David Hyatt <hyatt@apple.com>
Fix for bug 4812. Support last-child and last-of-type CSS3 selectors. Brings Acid3 score up to 68/100.
Reviewed by olliej
Added fast/css/last-child-pseudo-class.html, fast/css/last-of-type-pseudo-class.html
* css/CSSGrammar.y:
* css/CSSSelector.cpp:
(WebCore::CSSSelector::extractPseudoType):
* css/CSSSelector.h:
(WebCore::CSSSelector::):
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::checkOneSelector):
2008-02-01 David Hyatt <hyatt@apple.com>
Make :first-child and :first-of-type properly dynamic when the DOM changes. Brings the Acid3 score up
to 66/100.
Reviewed by olliej
Added fast/css/first-child-pseudo-class.html, fast/css/first-of-type-pseudo-class.html, fast/css/empty-body-test.html
* css/CSSGrammar.y:
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::checkOneSelector):
* dom/Element.cpp:
(WebCore::Element::recalcStyle):
(WebCore::Element::childrenChanged):
* rendering/RenderStyle.cpp:
(WebCore::RenderStyle::RenderStyle):
* rendering/RenderStyle.h:
(WebCore::RenderStyle::childrenAffectedByFirstChildRules):
(WebCore::RenderStyle::setChildrenAffectedByFirstChildRules):
(WebCore::RenderStyle::childrenAffectedByLastChildRules):
(WebCore::RenderStyle::setChildrenAffectedByLastChildRules):
(WebCore::RenderStyle::childrenAffectedByPositionalRules):
(WebCore::RenderStyle::setChildrenAffectedByPositionalRules):
(WebCore::RenderStyle::firstChildState):
(WebCore::RenderStyle::setFirstChildState):
(WebCore::RenderStyle::lastChildState):
(WebCore::RenderStyle::setLastChildState):
2008-02-02 Dan Bernstein <mitz@apple.com>
Reviewed by Oliver Hunt.
- fix <rdar://problem/5720637> Missing characters in right-to-left complex text where different fonts are used in the same run
* platform/graphics/win/UniscribeController.cpp:
(WebCore::UniscribeController::advance): Fixed an off-by-1 error in the
start offset of sub-runs of RTL runs. Changed to update
m_currentCharacter to the first character of the sub-run before calling
itemizeShapeAndPlace. In RTL runs, m_currentCharacter decreases as
sub-runs are processed from left to right.
(WebCore::UniscribeController::itemizeShapeAndPlace): Removed the
updating of m_currentCharacter because advance() does it now.
2008-02-01 Brady Eidson <beidson@apple.com>
Reviewed by Darin's rubberstamp
Move the SecurityOriginHash out into a separate header as it will soon be used in different places
* WebCore.xcodeproj/project.pbxproj:
* platform/SecurityOriginHash.h: Added.
(WebCore::SecurityOriginHash::hash):
(WebCore::SecurityOriginHash::equal):
(WebCore::SecurityOriginTraits::deletedValue):
(WebCore::SecurityOriginTraits::emptyValue):
* storage/DatabaseTracker.cpp:
2008-02-01 Darin Adler <darin@apple.com>
Reviewed by Tim.
- fixed mistake in the JSLock fix that caused an assertion every time
* bindings/js/JSCustomSQLTransactionCallback.cpp:
(WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback): Added JSLock.
(WebCore::unprotectOnMainThread): Ditto.
2008-02-01 Anders Carlsson <andersca@apple.com>
Reviewed by Antti and Darin.
Change Text::createWithLengthLimit to take a UChar pointer instead of a string. This
lets us avoid making a copy of the buffer in TextDocument.cpp.
* dom/Text.cpp:
(WebCore::Text::createWithLengthLimit):
* dom/Text.h:
* html/HTMLParser.cpp:
(WebCore::HTMLParser::parseToken):
* loader/TextDocument.cpp:
(WebCore::TextTokenizer::write):
2008-02-01 Darin Adler <darin@apple.com>
Reviewed by Adam.
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::loadsBlocked): Fix grammar and word typo.
2008-02-01 Darin Adler <darin@apple.com>
Reviewed by Adam.
- fix <rdar://problem/4527931> showModalDialog calls from onload functions fail (Aspect)
No automated regression test because showModalDialog doesn't work in DumpRenderTree.
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::CallbackGuard::CallbackGuard): Added.
(WebCore::CallbackGuard::~CallbackGuard): Added.
(WebCore::ResourceHandle::supportsBufferedData): Simplified to take advantage of how
static initialization works in C++.
(WebCore::ResourceHandle::loadsBlocked): Always return false on Leopard. The problem in
NSURLConnection that created the need to block loads is fixed in Leoaprd. This is the
bug fix.
(-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
Use CallbackGuard instead of directly incrementing the count; allows us to omit the code
entirely on Leopard.
(-[WebCoreResourceHandleAsDelegate connection:didReceiveAuthenticationChallenge:]):
Ditto.
(-[WebCoreResourceHandleAsDelegate connection:didCancelAuthenticationChallenge:]):
Ditto.
(-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
Ditto.
(-[WebCoreResourceHandleAsDelegate connection:didReceiveData:lengthReceived:]):
Ditto.
(-[WebCoreResourceHandleAsDelegate connection:willStopBufferingData:]):
Ditto.
(-[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:]):
Ditto.
(-[WebCoreResourceHandleAsDelegate connection:didFailWithError:]):
Ditto.
(-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
Ditto. Fixes a problem where this could leave inNSURLConnectionCallback set
permanently in one of the code paths; this would break showModalDialog from that
point on. This problem doesn't affect Safari.
2008-02-01 Darin Adler <darin@apple.com>
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::loadsBlocked): Roll out accidentally checked in file.
2008-02-01 Darin Adler <darin@apple.com>
Reviewed by Geoff and Brady.
- fix <rdar://problem/5680469> Each database worker thread takes a JSLock,
which slows down all JavaScript execution until the thread terminates
* bindings/js/JSCustomSQLTransactionCallback.cpp:
(WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback):
Explicitly gcProtect, since we aren't using ProtectedPtr any more.
(WebCore::unprotectOnMainThread): Added.
(WebCore::JSCustomSQLTransactionCallback::~JSCustomSQLTransactionCallback):
Use unprotectOnMainThread rather than doing a gcUnprotect here.
* bindings/js/JSCustomSQLTransactionCallback.h: Changed m_callback from
a ProtectedPtr to a plain old JSObject*; we gcProtect by hand now.
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::notifyPendingLoadDecisionsOnMainThread):
Renamed. Changed to takea a void* with the icon database pointer.
(WebCore::IconDatabase::notifyPendingLoadDecisions): Renamed.
(WebCore::IconDatabase::performURLImport): Updated name, and pass the
icon database pointer in.
* loader/icon/IconDatabase.h: Renamed and added void* parameter.
* platform/Threading.h: Changed callOnMainThread to take a function with a
single parameter rather than a function with no parameters. Added a typedef.
* platform/gtk/ThreadingGtk.cpp:
(WebCore::callFunctionOnMainThread): Changed to use a structure with both
a function pointer and a context pointer, and delete it after calling.
(WebCore::callOnMainThread): Changed to create the structure with both
the function and context pointer.
* platform/mac/Threading.mm:
(-[WebCoreFunctionWrapper initWithFunction:context:]): Added context.
(-[WebCoreFunctionWrapper invoke]): Updated to do both function and context.
Renamed from _call.
(WebCore::callOnMainThread): Updated to take both function and context.
* platform/qt/ThreadingQt.cpp:
(WebCore::PerformFunctionEvent::PerformFunctionEvent): Added context.
(WebCore::PerformFunctionEvent::invoke): Added. Calls function with context pointer.
(WebCore::MainThreadInvoker::event): Changed to call invoke.
(WebCore::callOnMainThread): Updated to take both function and context.
* platform/win/ThreadingWin.cpp: Added FunctionWithContext.
(WebCore::callFunctionsOnMainThread): Changed to pass call function with context.
(WebCore::callOnMainThread): Updated to queue both function and context.
* platform/wx/ThreadingWx.cpp:
(WebCore::callOnMainThread): Updated to take both function and context.
* storage/Database.cpp:
(WebCore::Database::scheduleTransactionCallback): Pass 0 for context.
(WebCore::Database::deliverAllPendingCallbacks): Changed to take ignored context pointer.
* storage/Database.h: Added void* parameter to deliverAllPendingCallbacks.
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::scheduleForNotification): Pass 0 for context.
(WebCore::DatabaseTracker::notifyDatabasesChanged): Changed to take ignored context pointer.
* storage/DatabaseTracker.h: Added void* parameter to notifyDatabasesChanged.
2008-02-01 Jon Honeycutt <jhoneycutt@apple.com>
Rubber-stamped by Ollie.
* plugins/win/PluginPackageWin.cpp:
(WebCore::PluginPackageWin::load): Fix two function pointers
2008-02-01 Geoffrey Garen <ggaren@apple.com>
Reviewed by John Sullivan, Oliver Hunt.
Fixed <rdar://problem/5688039> REGRESSION (r29428): Weather widget
fails to load due to reliance on "var location" quirk
Added a Dashboard quirk.
* bindings/js/kjs_window.cpp:
(KJS::Window::put): In DB backwards compatibility mode, make assignment
to window.location in top-level windows shadow the DOM location API
instead of performing a navigation. This makes a reasonable amount of
sense, because widgets can't navigate their top-level frames, anyway.
2008-02-01 David Hyatt <hyatt@apple.com>
Fix for bug 11387, CSS3 :empty selector is not dynamic.
Add support for dynamically updating elements whose style is affected by :empty when the child count changes.
Reviewed by olliej, mitzpettel
fast/css/empty-pseudo-class.html
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::locateSharedStyle):
(WebCore::CSSStyleSelector::checkOneSelector):
* dom/Element.cpp:
(WebCore::Element::childrenChanged):
* dom/Element.h:
* rendering/RenderStyle.h:
(WebCore::RenderStyle::affectedByEmpty):
(WebCore::RenderStyle::emptyState):
(WebCore::RenderStyle::setEmptyState):
2008-02-01 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- switch line breaking from using Carbon Unicode Utilities to using ICU
on Leopard
<http://bugs.webkit.org/show_bug.cgi?id=4628>
fast/text/international/thai-line-breaks.html results do not change.
* rendering/break_lines.cpp:
(WebCore::nextBreakablePosition): Changed to use Carbon only on Tiger.
2008-02-01 Rodney Dawes <dobey@wayofthemonkey.com>
Reviewed by Darin.
Update npfunctions.h to export the proper function signatures for UNIX and add
the appropriate #if around the Windows versions
* plugins/npfunctions.h:
2008-02-01 Eric Seidel <eric@webkit.org>
Reviewed by Oliver.
Add getSVGDocument to frame and iframe.
Test: svg/custom/frame-getSVGDocument.html
* html/HTMLEmbedElement.cpp:
* html/HTMLEmbedElement.h:
* html/HTMLFrameElement.idl:
* html/HTMLFrameOwnerElement.cpp:
(WebCore::HTMLFrameOwnerElement::getSVGDocument):
* html/HTMLFrameOwnerElement.h:
* html/HTMLIFrameElement.idl:
* html/HTMLObjectElement.cpp:
* html/HTMLObjectElement.h:
2008-01-30 Eric Seidel <eric@webkit.org>
Reviewed by darin.
Beat CSSParser with the RefPtr stick. Hopefully squashing any leaks in the process.
(Deploy RefPtr and PassRefPtr throughout CSSParser)
http://bugs.webkit.org/show_bug.cgi?id=17108
No functional changes, thus no tests.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseColor):
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::addBackgroundValue):
(WebCore::CSSParser::parseBackgroundShorthand):
(WebCore::CSSParser::addTransitionValue):
(WebCore::CSSParser::parseTransitionShorthand):
(WebCore::CSSParser::parseBackgroundPosition):
(WebCore::CSSParser::parseBackgroundProperty):
(WebCore::CSSParser::parseTransitionProperty):
(WebCore::CSSParser::parseFontFaceSrc):
(WebCore::ShadowParseContext::ShadowParseContext):
(WebCore::CSSParser::parseShadow):
(WebCore::BorderImageParseContext::BorderImageParseContext):
(WebCore::BorderImageParseContext::commitBorderImage):
* css/CSSParser.h:
* css/SVGCSSParser.cpp:
(WebCore::CSSParser::parseSVGValue):
2008-01-31 Oliver Hunt <oliver@apple.com>
RS=Brady.
Add platform/Locker.h to vcproj
* WebCore.vcproj/WebCore.vcproj:
2008-01-31 Brady Eidson <beidson@apple.com>
Build fix
* WebCore.xcodeproj/project.pbxproj: Header -> WebKit
2008-01-31 Brady Eidson <beidson@apple.com>
Reviewed by Maciej
Abstracted the concept of a "Locker" as upcoming work will rely on it.
* platform/Locker.h: Added. Template class to "lock()" and "unlock()" some arbitrary object
(WebCore::Locker::Locker): Lock the object
(WebCore::Locker::~Locker): Unlock it
* platform/Threading.h: `class MutexLocker` is now `typedef Locker<Mutex>`
* WebCore.xcodeproj/project.pbxproj:
2008-01-31 Kevin McCullough <kmccullough@apple.com>
<rdar://problem/5716912> REGRESSION (r29816): Can't navigate back to
Gmail Inbox from Gmail Compose page
Rolling out the change that caused the regression.
* WebCore.base.exp:
* bindings/js/JSHTMLDocumentCustom.cpp:
(WebCore::JSHTMLDocument::open):
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createHTMLDocument):
* dom/Document.cpp:
(WebCore::Document::recalcStyle):
(WebCore::Document::open):
(WebCore::Document::write):
(WebCore::Document::clear):
* dom/Document.h:
* history/HistoryItem.cpp:
(WebCore::HistoryItem::HistoryItem):
* history/HistoryItem.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::didExplicitOpen):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::reloadAllowingStaleData):
(WebCore::FrameLoader::reload):
(WebCore::FrameLoader::tokenizerProcessedData):
(WebCore::FrameLoader::post):
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
(WebCore::FrameLoader::shouldTreatURLAsSameAsCurrent):
(WebCore::FrameLoader::loadItem):
* loader/FrameLoader.h:
* platform/text/CharacterNames.h:
* xml/DOMParser.cpp:
(WebCore::DOMParser::parseFromString):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::getResponseXML):
* xml/XSLTProcessor.cpp:
(WebCore::XSLTProcessor::createDocumentFromSource):
2008-01-31 Matt Lilek <webkit@mattlilek.com>
Reviewed by Tim Hatcher.
Bug 14960: Cannot copy text in Web Inspector Network panel
http://bugs.webkit.org/show_bug.cgi?id=14960
* page/inspector/inspector.css:
2008-01-31 Matt Lilek <webkit@mattlilek.com>
Reviewed by Adam Roben.
Bug 14514: Add full URL view on mouseOver in the network page
http://bugs.webkit.org/show_bug.cgi?id=14514
<rdar://problem/5712841>
* page/inspector/inspector.js:
2008-01-31 Alp Toker <alp@atoker.com>
Rubber-stamped Adam Roben.
http://bugs.webkit.org/show_bug.cgi?id=17006
[GTK] Header path should be webkit/webkit.h
Move the GTK+ API sources as needed and update the build systems.
* GNUmakefile.am:
* WebCore.pro:
2008-01-31 Sam Weinig <sam@webkit.org>
Reviewed by Geoff Garen.
No need to get the prototype just to compare compare property names.
* bindings/js/JSHistoryCustom.cpp:
(WebCore::JSHistory::customGetOwnPropertySlot):
2008-01-31 Sam Weinig <sam@webkit.org>
Fix non-mac builds.
* GNUmakefile.am:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCoreSources.bkl:
2008-01-31 David Hyatt <hyatt@apple.com>
Fix for bug 17101.
List items need to ignore the line box shrinking quirk, since IE and Firefox both do.
Reviewed by Eric
fast/lists/list-item-line-height.html
* rendering/InlineFlowBox.h:
(WebCore::InlineFlowBox::InlineFlowBox):
2008-01-31 Samuel Weinig <sam@webkit.org>
Reviewed by Darin Adler.
Fix for <rdar://problem/5708993> Mutability of the History object
- Don't allow cross-domain get access to any of the history objects properties
except the back(), forward() and go() methods.
- Don't allow cross-domain put access to any of the history objects properties.
- Don't allow cross-domain enumeration of the History or Location objects.
Tests: http/tests/security/cross-frame-access-history-get-override.html
http/tests/security/cross-frame-access-history-get.html
http/tests/security/cross-frame-access-history-put.html
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDOMWindowCustom.cpp: Remove unnessary KJS::'s
(WebCore::JSDOMWindow::customGetOwnPropertySlot):
(WebCore::JSDOMWindow::customPut):
(WebCore::JSDOMWindow::getPropertyNames): Moved implementation from KJS::Window now that the declaration is autogenerated
using the new CustomGetPropertyNames.
(WebCore::JSDOMWindow::postMessage):
* bindings/js/JSHistoryCustom.cpp: Added.
(WebCore::allowsAccessFromFrame):
(WebCore::JSHistory::customGetOwnPropertySlot): Only allow getting the declared functions back(), forward() and go() from cross-domain.
Deny all other gets.
(WebCore::JSHistory::customPut): Don't allow putting cross-domain.
(WebCore::JSHistory::getPropertyNames): Don't allow enumeration cross-domain.
* bindings/js/JSLocation.cpp:
(WebCore::allowsAccessFromFrame):
(WebCore::JSLocation::getPropertyNames): Don't allow enumeration cross-domain.
* bindings/js/JSLocation.h:
* bindings/js/kjs_window.cpp:
* bindings/js/kjs_window.h:
* bindings/scripts/CodeGeneratorJS.pm:
Add support for new CustomGetPropertNames extended attribute and changed the logic of CustomPutFunction
to create an overrided put() function even if no read-write properties exist.
* page/DOMWindow.idl: Added CustomGetPropertNames
* page/History.idl: Added CustomGetPropertNames
2008-01-30 Justin Garcia <justin.garcia@apple.com>
Reviewed by Darin Adler.
<rdar://problem/5708115> REGRESSION: Words selected with a double click and copied won't paste into Mail
* page/mac/WebCoreFrameBridge.h: Re-exposed smartInsertForString:, it's used by a WebKit method used by Mail.
2008-01-31 Adam Roben <aroben@apple.com>
Add line box drawing code to InspectorController::drawNodeHighlight
This makes drawNodeHighlight a complete replacement for the painting
code in WebKit/mac/WebNodeHighlightView.mm, and also brings line box
rects to Windows for the first time.
Reviewed by Darin.
* dom/Node.h: Changed isSVGElement to always exist, but to only be
virtual when ENABLE(SVG) is true. This way you can always call
node->isSVGElement() without checking ENABLE(SVG).
* page/InspectorController.cpp:
(WebCore::InspectorController::drawNodeHighlight): Ported line box
rect code from the Mac implementation in WebNodeHighlightView.mm.
2008-01-31 Adam Roben <aroben@apple.com>
Put more knowledge about the node highlight in WebCore
InspectorController now calculates the overlay rect and node rect when
drawing the node highlight instead of having them be passed in.
InspectorController now holds onto the highlighted node so that it can
determine these rects.
Once all platforms are calling down to drawNodeHighlight instead of
drawing the highlight themselves, we can change
InspectorClient::highlight(Node*) to something like
InspectorClient::updateAndShowHighlight().
This also fixes Bug 14264: Node highlight makes it impossible to
scroll the page
<http://bugs.webkit.org/show_bug.cgi?id=14264>
<rdar://5712788>
Reviewed by Darin.
* page/InspectorController.cpp:
(WebCore::InspectorController::highlight): Store the node for use in
drawNodeHighlight.
(WebCore::InspectorController::drawNodeHighlight): Changed to be a
const instance method. Now calculates the overlay rect and node rect
instead of having them passed in.
* page/InspectorController.h:
2008-01-31 Adam Roben <aroben@apple.com>
Add node highlight drawing code to InspectorController
The code came from WebKit/win/WebNodeHighlight.cpp. It's not quite as
complete as the Mac implementation (in particular, it doesn't handle
line-box rects), but it's a start.
Reviewed by Darin.
* page/InspectorController.cpp:
(WebCore::InspectorController::drawNodeHighlight): Added.
* page/InspectorController.h:
2008-01-31 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=17107
<rdar://problem/5716722> REGRESSION (r29834): Article text on redhat.com magazine site appears to be painting twice
Test: fast/block/float/intruding-painted-twice.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock): Pass 'false' for the new
makeChildPaintOtherFloats parameter to addOverhangingFloats() because at
this point we are only taking away floats from the child.
(WebCore::RenderBlock::layoutBlockChildren): Pass 'true' for the new
makeChildPaintOtherFloats parameter to addOverhangingFloats() iff the
child was not laid out again. Only in that case, it may have overhanging
floats that it does not paint because they used to be overhanging from
the parent, but now they are not.
(WebCore::RenderBlock::addOverhangingFloats): Refined the conditions for
making the child paint the float: require that the float be a descendant
of the child (the other case is when it intrudes into the child from
another sibling) and that it does not have a layer (in which case it
paints itself). In addition, do the check only if the caller passed
'true' for the makeChildPaintOtherFloats parameter.
* rendering/RenderBlock.h:
2008-01-30 Dan Bernstein <mitz@apple.com>
Reviewed by Sam Weinig.
- change the interpretation of unicode-range values in "from-to" form
to include the "to" character.
Test: fast/css/font-face-unicode-range.html
* css/CSSParser.cpp:
(WebCore::CSSParser::parseFontFaceUnicodeRange):
* css/CSSSegmentedFontFace.cpp:
(WebCore::CSSSegmentedFontFace::overlayRange):
* platform/graphics/GlyphPageTreeNode.cpp:
(WebCore::GlyphPageTreeNode::initializePage):
* platform/graphics/SegmentedFontData.cpp:
(WebCore::SegmentedFontData::fontDataForCharacter):
(WebCore::SegmentedFontData::containsCharacters):
2008-01-30 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- prune references to custom fonts' SimpleFontData from the glyph page
tree when they are destroyed
* css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::pruneTable):
2008-01-30 Darin Adler <darin@apple.com>
Reviewed by Tim Hatcher.
New fix for <rdar://problem/5688428> Reproducible assertion failure
in SQLTransaction::performNextStep() (16876)
Fixes a deadlock that was happening for all Database use. All
storage layout tests pass.
* storage/Database.cpp:
(WebCore::CurrentThreadSetter::CurrentThreadSetter): New helper class
to set the current thread and zero it on destruction.
(WebCore::CurrentThreadSetter::~CurrentThreadSetter): Set threadIdentifierStorage to 0.
(WebCore::Database::Database): Set m_transactionStepThread to 0.
(WebCore::Database::performTransactionStep): Set m_transactionStepThread to currentThread().
(WebCore::Database::scheduleTransactionCallback): Assert m_transactionStepThread
is currentThread().
* storage/Database.h: Add m_transactionStepThread for debug builds
to track which thread performTransactionStep() was called on.
2008-01-30 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin Adler.
ASSERTION FAILED: JSLock::lockCount() > 0 when opening the
Web Inspector on a page with a Database.
Fix the ASSERT by taking a JSLock before calling toJS().
* page/InspectorController.cpp:
(WebCore::InspectorController::addDatabaseScriptResource):
2008-01-30 Beth Dakin <bdakin@apple.com>
Reviewed by Darin.
Fix for <rdar://problem/5598609> CrashTracer: [USER] 626 crashes in
Safari at com.apple.WebCore: WebCore::FrameView::needsFullRepaint
const + 6
The real problem here is tracked by rdar://5598072, which is that
frames can lose sync between their view and their document when a
non-HTML view is loaded (such as bookmarks view or a PDF). That can
cause this crash if the layout timer fires before things have fixed
themselves. This fix turns an ASSERT in FrameView::layout() into an
early return to cause graceful failure until the root of the
problem is addressed.
* page/FrameView.cpp:
(WebCore::FrameView::layout):
2008-01-30 Justin Garcia <justin.garcia@apple.com>
Reviewed by Darin Adler.
<rdar://problem/5700414> REGRESSION (Adama-ToT): Selecting "Header 1" style in Leopard Server wiki inserts newline
* editing/FormatBlockCommand.cpp:
(WebCore::FormatBlockCommand::doApply): If the selected paragraph was empty,
we may still need to call moveParagrah to remove the line break that holds that
paragraph open because the new block of the requested type needs to to replace it.
2008-01-30 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin Adler.
<rdar://problem/5688428> Reproducible assertion failure in SQLTransaction::performNextStep() (16876)
Revised fix to use the globalCallbackMutex() mutex and hold the mutex
for the entire function scope.
* storage/Database.cpp:
(WebCore::Database::performTransactionStep):
2008-01-30 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam Roben.
Make ResourceTreeElement inherit the prototype of TreeElement.
* page/inspector/Resource.js:
2008-01-30 Sam Weinig <sam@webkit.org>
Reviewed by Adam Roben.
Don't include SecurityOrigin.h in Document.h so that we can avoid massive
recompilation when changing the SecurityOrigin.
* dom/Document.cpp:
(WebCore::Document::setSecurityOrigin):
* dom/Document.h:
2008-01-30 Tim Omernick <timo@apple.com>
Reviewed by Tim Hatcher and Brady.
<rdar://problem/5688428> Reproducible assertion failure in SQLTransaction::performNextStep() (16876)
* storage/Database.cpp:
(WebCore::Database::performTransactionStep): Do not perform the next transaction if
a global callback is already scheduled.
2008-01-30 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Darin.
<rdar://problem/5669317> Crash closing pop up window with Real Player
content
Some RealPlayer versions hang on unload. To prevent this hang, don't
unload versions since the last known unloadable version.
<rdar://problem/5713147> tracks revisiting this when the bug in
RealPlayer is fixed and we can again unload the plug-in.
* plugins/win/PluginPackageWin.cpp:
(WebCore::PluginPackageWin::compareFileVersion): Compare the plug-in's
file version to the passed file version, returning -1, 0, or 1 if the
plug-in's version is less than, equal to, or greater than the version
passed.
(WebCore::PluginPackageWin::isPluginBlacklisted): Use
compareFileVersion()
* plugins/win/PluginPackageWin.h:
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginViewWin::determineQuirks): If the plug-in version is
newer than the last-known unloadable version, add the DontUnloadPlugin
quirk
2008-01-29 Mark Rowe <mrowe@apple.com>
Reviewed by Tim Hatcher.
Look for headers relative to NEXT_ROOT so that build-root picks up the WebCoreSQLite
version of sqlite3.h rather than the older system version.
* Configurations/Base.xcconfig:
2008-01-29 Dan Bernstein <mitz@apple.com>
- build fix
* loader/CachedFont.cpp:
(WebCore::CachedFont::CachedFont):
2008-01-29 Mark Rowe <mrowe@apple.com>
Reviewed by Brady Eidson.
Add the correct directory to the header search paths in Production builds.
* Configurations/Base.xcconfig:
2008-01-29 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=17085
<rdar://problem/5714136> REGRESSION (r29839): All remote fonts are treated as SVG fonts
Test: fast/css/font-face-remote.html
Added an isSVGFont method to CachedFont and use it to decide how to
process the font data. Currently whether the data is SVG is determined
based on the format property in the @font-face rule, but in the future
the MIME type or other metadata may be used when the format is
unspecified.
* css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::getFontData): Changed to parse the data as
SVG only if the CachedFont is an SVG font.
* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::addFontFaceRule): Mark the CachedFont as an
SVG font based on format.
* loader/CachedFont.cpp:
(WebCore::CachedFont::CachedFont): Initialize m_isSVGFont to false.
(WebCore::CachedFont::ensureCustomFontData):
(WebCore::CachedFont::ensureSVGFontData):
(WebCore::CachedFont::getSVGFontById):
* loader/CachedFont.h:
(WebCore::CachedFont::isSVGFont): Added.
(WebCore::CachedFont::setSVGFont): Added.
2008-01-29 Antti Koivisto <antti@apple.com>
Some comment cleanup.
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::disableUnsupportedTracks):
* platform/graphics/win/QTMovieWin.cpp:
(QTMovieWin::load):
(QTMovieWin::disableUnsupportedTracks):
2008-01-29 Adele Peterson <adele@apple.com>
Reviewed by Antti.
Fix for <rdar://5683527> media/{audio,video|-controls-rendering.html failing
* rendering/RenderThemeSafari.cpp: (WebCore::RenderThemeSafari::isControlStyled):
Don't treat all media controls as styled. This causes builds with an old version of SafariTheme to have different metrics for these controls.
2008-01-29 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt.
- make Font instances cache their primary font
* WebCore.base.exp:
* platform/graphics/Font.cpp:
(WebCore::Font::Font):
(WebCore::Font::operator=):
(WebCore::Font::cachePrimaryFont):
(WebCore::Font::update):
* platform/graphics/Font.h:
(WebCore::Font::primaryFont):
2008-01-29 Dan Bernstein <mitz@apple.com>
- Leopard build fix
* platform/graphics/SimpleFontData.cpp:
(WebCore::SimpleFontData::SimpleFontData):
2008-01-29 Mark Rowe <mrowe@apple.com>
Reviewed by Tim Hatcher.
<rdar://problem/5600926> WebCore on Tiger must link to its own copy of SQLite 3.4 or newer (so HTML database behavior will be correct).
* Configurations/Base.xcconfig: Update the header search path on Tiger.
* Configurations/DebugRelease.xcconfig: Update the header search path on Tiger.
* Configurations/WebCore.xcconfig: Link against libWebCoreSQLite3.a when building on Tiger.
* WebCore.xcodeproj/project.pbxproj: Update the header search path in Production builds on Tiger.
2008-01-29 Dan Bernstein <mitz@apple.com>
Reviewed by Adam Roben and Oliver Hunt.
- fix <rdar://problem/5713131> REGRESSION (r29246): Many SVG font tests are failing
* platform/graphics/SimpleFontData.cpp:
(WebCore::SimpleFontData::SimpleFontData): Use double instead of float
for consistent rounding behavior between Mac OS X and Windows.
2008-01-29 Adam Roben <aroben@apple.com>
Fix <rdar://5713302> Web Inspector on Windows is not using the
localized strings
Reviewed by Steve.
* WebCore.vcproj/WebCore.vcproj: Copy InspectorLocalizedStrings.js to
$WebKitOutputDir.
* page/InspectorController.cpp: Touch this to force the project to
build.
2008-01-29 Eric Seidel <eric@webkit.org>
Reviewed by Nikolas.
Acid3 after double-attach
http://bugs.webkit.org/show_bug.cgi?id=17058
I believe SVGTextPathElement::buildPendingResource() was entirely
bogus, removing it did not cause any tests to fail.
Test: svg/custom/textPath-assert.svg
* svg/SVGTextPathElement.cpp:
(WebCore::SVGTextPathElement::insertedIntoDocument): remove buildPendingResource()
* svg/SVGTextPathElement.h:
2008-01-29 Adam Roben <aroben@apple.com>
Fix Bug 16234: Inspector should support searching for elements by CSS selectors
<http://bugs.webkit.org/show_bugs.cgi?id=16234>
<rdar://5712862>
Reviewed by Tim.
* page/inspector/inspector.js: Use Document.querySelectorAll to search
for elements by CSS selector. Also store a custom property on nodes
being added to the search results to avoid showing the same node more
than once.
2008-01-29 Adam Roben <aroben@apple.com>
Fix <rdar://5711136> Full-screen Flash on 1up.com is unresponsive
Reviewed by Anders and Darin.
No test possible.
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginViewWin::wndProc): Set/release capture on mouse
down/up, like Firefox does.
2008-01-28 Dan Bernstein <mitz@apple.com>
Reviewed by Sam Weinig.
- make isSVGFont non-virtual
* platform/graphics/FontData.h:
* platform/graphics/SegmentedFontData.cpp:
* platform/graphics/SegmentedFontData.h:
* platform/graphics/SimpleFontData.h:
(WebCore::SimpleFontData::isSVGFont):
2008-01-28 Dan Bernstein <mitz@apple.com>
Reviewed by Adam Roben.
- fix <rdar://problem/5700824> Chunky scrolling + scrolling artifacts @ netflix.com/Notebook
* platform/win/ScrollViewWin.cpp:
(WebCore::ScrollView::ScrollViewPrivate::valueChanged): Send the scroll
event before updating the window, thus giving event handlers a chance
to update layout for the new scroll position, eliminating the jitter.
2008-01-28 Adam Roben <aroben@apple.com>
Fix <rdar://5555260> Gmail doesn't load when a user stylesheet is specified
Reviewed by Darin.
A null value exception was being thrown in Gmail's JS code because a
call to document.write failed. document.write failed because
Document::close had not yet been called. Document::close was not
called because the Document was considered to not be "complete" in
FrameLoader::checkComplete because the user stylesheet was in the
process of loading. The user stylesheet was loading because it had
previously been evicted from the cache and was loading fresh from
disk. It had been evicted from the cache because the calculation of
the expiration date was incorrectly casting/overflowing in
ResourceResponseCFNet.cpp.
We now calculate the expiration date in a way that does not cause us
to overflow a time_t, and we correctly clamp the value to the range of
a time_t. I also made the fix for the last modified date, though that
was not causing any bug I am aware of.
In the long-term it seems like whether or not Document::close is
called should not be dependent upon whether the user stylesheet has
finished loading or not.
* platform/network/cf/ResourceResponseCFNet.cpp:
(WebCore::toTimeT): Added. Converts from CFAbsoluteTime to time_t and
clamps to the range of time_t.
(WebCore::ResourceResponse::doUpdateResourceResponse): Call toTimeT.
2008-01-28 Dan Bernstein <mitz@apple.com>
Reviewed by Nikolas Zimmermann.
- fix leaks introduced in r29838
* svg/SVGFont.cpp:
(WebCore::floatWidthMissingGlyphCallback):
(WebCore::drawTextMissingGlyphCallback):
2008-01-28 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Eric, Dan & Oliver.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=16980
Support external SVG Fonts, by reusing the custom font handling logic.
This enables us - as first engine - to render HTML pages using SVG Fonts.
Fixes fonts-elem-03-b.svg / fonts-elem-04-b.svg / fonts-elem-07-b.svg
Add new testcase svg-fonts-in-html.html.
* css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::getFontData):
* css/CSSFontFaceSource.h:
* css/CSSFontFaceSrcValue.cpp:
(WebCore::CSSFontFaceSrcValue::isSVGFontFaceSrc):
(WebCore::CSSFontFaceSrcValue::isSupportedFormat):
* css/CSSFontFaceSrcValue.h:
* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::addFontFaceRule):
* loader/CachedFont.cpp:
(WebCore::CachedFont::~CachedFont):
(WebCore::CachedFont::ensureSVGFontData):
(WebCore::CachedFont::extractFontFromSVGData):
(WebCore::CachedFont::platformDataFromSVGData):
* loader/CachedFont.h:
* platform/graphics/Font.cpp:
(WebCore::Font::offsetForPosition):
* platform/graphics/Font.h:
* svg/SVGFont.cpp:
(WebCore::floatWidthOfSubStringUsingSVGFont):
(WebCore::Font::drawTextUsingSVGFont):
(WebCore::Font::offsetForPositionForTextUsingSVGFont):
* svg/SVGFontFaceElement.cpp:
(WebCore::SVGFontFaceElement::rebuildFontFace):
* svg/SVGFontFaceElement.h:
* svg/SVGFontFaceUriElement.cpp:
(WebCore::SVGFontFaceUriElement::srcValue):
2008-01-28 Dan Bernstein <mitz@apple.com>
Reviewed by Adam Roben.
- fix svg/W3C-SVG-1.1/fonts-glyph-04-t.svg failure on Windows
The results differed between Mac OS X and Windows because the code was
using a 0-size font, which Mac OS X changes to 12pt.
* svg/SVGFont.cpp:
(WebCore::floatWidthMissingGlyphCallback): Use the font description of
the primary font to initialize the fallback font.
(WebCore::drawTextMissingGlyphCallback): Ditto.
2008-01-28 Eric Seidel <eric@webkit.org>
Reviewed by Nikolas Zimmermann.
Use class instead of struct to appease MSVC.
* history/HistoryItem.h:
* loader/FrameLoaderClient.h:
* page/InspectorController.h:
* platform/network/ResourceRequestBase.h:
* platform/network/mac/ResourceRequest.h:
2008-01-28 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- fix http://bugs.webkit.org/show_bug.cgi?id=16774
REGRESSION (r27464-r27504) javascript popup menu does not display 'close' button
Test: fast/dynamic/float-no-longer-overhanging.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::addOverhangingFloats): If a child's float turns
out not to be overhanging at this time, ensure that the child paints it.
2008-01-28 Oliver Hunt <oliver@apple.com>
More wx fixes
* platform/graphics/wx/AffineTransformWx.cpp:
2008-01-28 Oliver Hunt <oliver@apple.com>
And another Wx build fix
* platform/graphics/wx/AffineTransformWx.cpp:
(WebCore::AffineTransform::mapRect):
2008-01-28 Oliver Hunt <oliver@apple.com>
Yet another Wx build fix
* platform/graphics/wx/GraphicsContextWx.cpp:
2008-01-28 Oliver Hunt <oliver@apple.com>
Wx build fix
* platform/graphics/wx/GraphicsContextWx.cpp:
(WebCore::GraphicsContext::getCTM):
2008-01-28 Oliver Hunt <oliver@apple.com>
Gtk build fix
* platform/graphics/cairo/GraphicsContextCairo.cpp:
2008-01-27 Oliver Hunt <oliver@apple.com>
Reviewed by Sam Weinig.
Bug 16629: <canvas> does not support isPointInPath()
Relatively trivial change to implement pointInPath and add
it to the bindings. Most of this patch is the addition of
GraphicsContext::getCTM() by pulling the various platform
implementations from CanvasRenderingContext2D::willDraw
Test: fast/canvas/pointInPath.html
* html/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::isPointInPath):
(WebCore::CanvasRenderingContext2D::willDraw):
* html/CanvasRenderingContext2D.h:
* html/CanvasRenderingContext2D.idl:
* platform/graphics/AffineTransform.cpp:
(WebCore::AffineTransform::mapPoint):
Support mapping of FloatRects
* platform/graphics/AffineTransform.h:
* platform/graphics/GraphicsContext.h:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::getCTM):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::getCTM):
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::getCTM):
2008-01-27 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=17014
REGRESSION: EUC-CN code A3A0 is mapped to U+E5E5 instead of U+3000
Test: fast/encoding/char-decoding.html
* platform/text/TextCodecICU.cpp:
(WebCore::TextCodecICU::decode): Added a workaround that we used to have in Mac code.
* platform/text/mac/TextCodecMac.cpp:
(WebCore::TextCodecMac::decode): Corrected a comment.
2008-01-27 Alp Toker <alp@atoker.com>
Reviewed by Mark Rowe.
http://bugs.webkit.org/show_bug.cgi?id=17029
Use of deprecated class function but declares GTK_DISABLE_DEPRECATED
Sync gtkdrawing.h (1.51) and gtk2drawing.c (1.71) from Mozilla
upstream.
Adapt RenderThemeGtk.cpp to track minor changes.
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::gtkTextDirection):
(WebCore::adjustMozStyle):
(WebCore::setMozState):
(WebCore::paintMozWidget):
* platform/gtk/gtk2drawing.c:
(setup_widget_prototype):
(ensure_hpaned_widget):
(ensure_vpaned_widget):
(ensure_toggle_button_widget):
(ensure_combo_box_entry_widget):
(ensure_dropdown_entry_widget):
(moz_gtk_get_dropdown_button):
(ensure_arrow_widget):
(ensure_toolbar_separator_widget):
(ensure_statusbar_widget):
(ensure_frame_widget):
(ensure_menu_separator_widget):
(ensure_tree_view_widget):
(ensure_tree_header_cell_widget):
(ensure_expander_widget):
(ConvertGtkState):
(moz_gtk_button_paint):
(moz_gtk_widget_get_focus):
(moz_gtk_splitter_get_metrics):
(moz_gtk_toggle_paint):
(moz_gtk_scrollbar_button_paint):
(moz_gtk_scrollbar_trough_paint):
(moz_gtk_scrollbar_thumb_paint):
(moz_gtk_spin_paint):
(moz_gtk_spin_updown_paint):
(moz_gtk_scale_paint):
(moz_gtk_scale_thumb_paint):
(moz_gtk_gripper_paint):
(moz_gtk_hpaned_paint):
(moz_gtk_vpaned_paint):
(moz_gtk_entry_paint):
(moz_gtk_treeview_paint):
(moz_gtk_tree_header_cell_paint):
(moz_gtk_tree_header_sort_arrow_paint):
(moz_gtk_treeview_expander_paint):
(moz_gtk_expander_paint):
(moz_gtk_option_menu_paint):
(moz_gtk_downarrow_paint):
(moz_gtk_dropdown_arrow_paint):
(moz_gtk_container_paint):
(moz_gtk_toggle_label_paint):
(moz_gtk_toolbar_paint):
(moz_gtk_toolbar_separator_paint):
(moz_gtk_tooltip_paint):
(moz_gtk_resizer_paint):
(moz_gtk_frame_paint):
(moz_gtk_progressbar_paint):
(moz_gtk_progress_chunk_paint):
(moz_gtk_get_tab_thickness):
(moz_gtk_tab_paint):
(moz_gtk_tabpanels_paint):
(moz_gtk_menu_bar_paint):
(moz_gtk_menu_popup_paint):
(moz_gtk_menu_separator_paint):
(moz_gtk_menu_item_paint):
(moz_gtk_menu_arrow_paint):
(moz_gtk_check_menu_item_paint):
(moz_gtk_window_paint):
(moz_gtk_get_widget_border):
(moz_gtk_get_dropdown_arrow_size):
(moz_gtk_get_toolbar_separator_width):
(moz_gtk_get_expander_size):
(moz_gtk_get_treeview_expander_size):
(moz_gtk_get_menu_separator_height):
(moz_gtk_widget_paint):
(moz_gtk_shutdown):
* platform/gtk/gtkdrawing.h:
2008-01-27 Jan Michael Alonzo <jmalonzo@unpluggable.com>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=14811
[gtk] [request] add a webkit_gtk_page_go_to_history_item function
Added webkit/gtk webkitwebbackforwardlist and webkitwebhistoryitem
* WebCore.pro:
2008-01-27 Matt Perry <mpComplete@gmail.com>
Reviewed and tweaked quite a bit by Darin.
Fix for http://bugs.webkit.org/show_bug.cgi?id=14959
No back forward entry added for pages created in javascript
A new HistoryItem is created for calls to Document::open. Calls to
Document::write save the written data to a SharedBuffer that is also
stored on the HistoryItem. When the user navigates back to a
HistoryItem that has a valid buffer, that data is used for the page
content.
Tests: http/tests/navigation/document-open-adds-history-item.html
http/tests/navigation/document-open-delayed-adds-history-item.html
http/tests/navigation/document-open-new-window-adds-history-item.html
http/tests/navigation/document-open-replace-no-history-item.html
* bindings/js/JSHTMLDocumentCustom.cpp:
(WebCore::JSHTMLDocument::open): Pass a MIME type of either "text/html" or
"text/plain" and a boolean for "replace" in rather than always setting replace
to true and the MIME type to "text/html".
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createHTMLDocument): Pass in MIME type and
replace boolean explicitly, since we don't want to rely on Document::open()'s
default.
* dom/Document.cpp:
(WebCore::Document::open): Correctly determine the "replace" boolean.
Pass along the MIME type, replace boolean, and shared buffer to the
frame loader's didExplicitOpen function.
(WebCore::Document::write): Pass MIME type and replace boolean explicitly
to the open function so we don't do treat it as replace if you write without
an open. Store text written by the script so it can be used later for history.
(WebCore::Document::clear): Drop the text written byt he script.
* dom/Document.h: Added MIME type and replace boolean parameters for open.
Had to keep the old version for the sake of DOM bindings. Added the shared
buffer used for text written by script.
* history/HistoryItem.cpp:
(WebCore::HistoryItem::HistoryItem): Copy m_substituteData.
(WebCore::HistoryItem::substituteData): Added.
(WebCore::HistoryItem::setSubstituteData): Added.
* history/HistoryItem.h: Added m_substituteData, getter, and setter.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::didExplicitOpen): Added code to create or update the
history item, including attaching the shared buffer that will contain all
the data written by script.
(WebCore::FrameLoader::load): Added a SubstituteData parameter, passed through
when creating the document loader.
(WebCore::FrameLoader::reloadAllowingStaleData): Create the document loader
with the substitute data from the current history item.
(WebCore::FrameLoader::reload): Ditto.
(WebCore::FrameLoader::shouldTreatURLAsSameAsCurrent): If the current history
item has substitute data, then consider the URL from the substitute data
rather than the one in the history item itself.
(WebCore::FrameLoader::loadItem): Pass in the history item's substitute data.
* loader/FrameLoader.h: Added parameters to load and didExplicitOpen.
* platform/text/CharacterNames.h: Added byteOrderMark, and also added it under
its other official name, zeroWidthNoBreakSpace.
* xml/DOMParser.cpp:
(WebCore::DOMParser::parseFromString): Pass in MIME type and replace boolean
explicitly, since we don't want to rely on Document::open()'s default.
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::getResponseXML): Ditto.
* xml/XSLTProcessor.cpp:
(WebCore::XSLTProcessor::createDocumentFromSource): Ditto.
2008-01-25 Eric Seidel <eric@webkit.org>
Reviewed by Sam and Darin.
Fire a warning shot in DeprecatedChar's direction.
Remove DeprecatedChar::isSpace() usage, in preparation for removing DeprecatedChar
Remove a needless String -> DeprecatedString -> String conversion for <script> tags
* css/MediaQueryEvaluator.cpp:
(WebCore::parseAspectRatio):
* css/SVGCSSParser.cpp:
* dom/Position.cpp:
(WebCore::Position::leadingWhitespacePosition):
(WebCore::Position::trailingWhitespacePosition):
* editing/TextIterator.cpp:
(WebCore::WordAwareIterator::advance):
* html/HTMLFontElement.cpp:
(WebCore::parseFontSizeNumber):
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::scriptHandler):
(WebCore::HTMLTokenizer::scriptExecution):
(WebCore::HTMLTokenizer::notifyFinished):
* html/HTMLTokenizer.h:
* loader/CachedCSSStyleSheet.cpp:
* loader/TextResourceDecoder.cpp:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
* platform/mac/ClipboardMac.mm:
(WebCore::ClipboardMac::getData):
* platform/network/HTTPParsers.cpp:
(WebCore::extractMIMETypeFromMediaType):
* platform/text/PlatformString.h:
* platform/text/StringImpl.cpp:
(WebCore::parseLength):
(WebCore::StringImpl::stripWhiteSpace):
(WebCore::StringImpl::simplifyWhiteSpace):
(WebCore::StringImpl::toInt):
(WebCore::StringImpl::toInt64):
(WebCore::StringImpl::toUInt64):
* platform/text/StringImpl.h:
(WebCore::isSpaceOrNewline):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::placeBoxesHorizontally):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateFirstLetter):
* rendering/bidi.cpp:
(WebCore::RenderBlock::computeHorizontalPositionsForLine):
* svg/SVGFontFaceElement.cpp:
(WebCore::mapAttributeToCSSProperty):
* svg/SVGLength.cpp:
* svg/SVGStyledElement.cpp:
(WebCore::mapAttributeToCSSProperty):
* xml/XPathParser.cpp:
2008-01-25 Stephanie Lewis <slewis@apple.com>
Reviewed by Tim.
expand workaround for <rdar://5695848> to include js files so that the
web inspector can work
* platform/network/cf/ResourceResponseCFNet.cpp:
(WebCore::ResourceResponse::doUpdateResourceResponse):
2008-01-25 Antti Koivisto <antti@apple.com>
Reviewed by Adele.
(this is for r29798, my commit failed to include the log)
Windows fix to match r29773
If the media is playing and the load stalls the playback wont restart by seeking backwards.
* platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
(WebCore::MediaPlayerPrivate::updateStates):
2008-01-25 Darin Adler <darin@apple.com>
Reviewed by Anders.
- fix <rdar://problem/5691072> ASSERTION FAILED: isPrepared() when executing an empty statement
For empty statements, SQLite returns 0 for the statement. We have to cope with that.
Test: storage/empty-statement.html
* platform/sql/SQLiteStatement.cpp:
(WebCore::sqlite3_prepare16_v2): Added overload so we don't need an #if inside the prepare
function.
(WebCore::SQLiteStatement::SQLiteStatement): Initialize the m_isPrepared boolean. Removed
the code to add a null character to the end of the string; instead we will use
charactersWithNullTermination.
(WebCore::SQLiteStatement::prepare): Set m_isPrepared based on the error value returned.
Use the error value from sqlite3_prepare16_v2, not from lastError().
(WebCore::SQLiteStatement::step): Assert that the statement is prepared rather than checking
it at runtime. However, in the case where this is called with m_statement of 0, return
success rather than an error. That's needed for empty statements.
(WebCore::SQLiteStatement::finalize): Use early return idiom for clarity. When there is no
statement, return SQLITE_OK instead of calling lastError().
(WebCore::SQLiteStatement::reset): Use early return idiom for clarity. When there is no
statement, return SQLITE_OK rather than SQLITE_ERROR, but assert the statement is prepared.
(WebCore::SQLiteStatement::executeCommand): Adjust the code that does a prepare so that it
will work for empty statements. Do we really need to allow calling this without prepare?
It would be simpler to just be able to assert that it's prepared.
(WebCore::SQLiteStatement::returnsAtLeastOneResult): Ditto.
(WebCore::SQLiteStatement::bindBlob): Added some assertions. Return SQLITE_ERROR if this
is called with m_statement of 0 (should not be possible without assertions firing first).
Return the actual error code rather than lastError().
(WebCore::SQLiteStatement::bindText): Ditto. Also simplified the special case for empty
strings, since it requires any non-null pointer, not a pointer to a global zero character.
(WebCore::SQLiteStatement::bindInt64): Ditto.
(WebCore::SQLiteStatement::bindDouble): Ditto.
(WebCore::SQLiteStatement::bindNull): Ditto.
(WebCore::SQLiteStatement::bindValue): Moved default case out of the switch to take
advantage of the gcc compiler warning for unhandled enum values in a switch.
(WebCore::SQLiteStatement::bindParameterCount): Added assertion and code to handle the
empty statement case.
(WebCore::SQLiteStatement::columnCount): Added assertion and changed the code to use
the early-return idiom.
(WebCore::SQLiteStatement::getColumnName): Removed getColumnName16 -- we always use 16-bit
characters and have no reason to ever use the 8-bit function. Added assertions about the
passed-in column number. It's a little strange that this function checks the column number
for too-large column numbers, but not for negative ones. I didn't change that for now.
(WebCore::SQLiteStatement::getColumnText): Ditto.
(WebCore::SQLiteStatement::getColumnDouble): Ditto.
(WebCore::SQLiteStatement::getColumnInt): Ditto.
(WebCore::SQLiteStatement::getColumnInt64): Ditto.
(WebCore::SQLiteStatement::getColumnBlobAsVector): Ditto.
(WebCore::SQLiteStatement::getColumnBlob): Tightened up function a bit, including use of
the early-return idiom and replacing the multiple "size = 0" with a single one at the
start of the function.
(WebCore::SQLiteStatement::returnTextResults): Added a failure case when the prepare
call doesn't work. Cleared the vector earlier to make the failure code simpler. Moved
the declaration of the result boolean down lower to make it clearer what it's for.
Changed use of lastError() to call on the database, to make it clearer that there's
no per-statement last error kept around. It'd be even better to not use lastError() here.
(WebCore::SQLiteStatement::returnIntResults): Ditto.
(WebCore::SQLiteStatement::returnInt64Results): Ditto.
(WebCore::SQLiteStatement::returnDoubleResults): Ditto.
(WebCore::SQLiteStatement::isExpired): Changed to use || rather than ?: because I think
it's slightly easier to read that way.
* platform/sql/SQLiteStatement.h: Removed unneeded includes and forward declarations.
Also removed unnneeded functions isPrepared, getColumnName16, getColumnText16,
returnTextResults16, lastError, and lastErrorMsg. Changed prepareAndStep so that it
checks the result of prepare before callling step. Added a debug-only m_isPrepared boolean.
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::checkIntegrity): Remove 16 suffix from text-related function names.
(WebCore::IconDatabase::performURLImport): Ditto.
(WebCore::IconDatabase::pruneUnretainedIcons): Ditto.
* platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::clearAllTables): Ditto.
* storage/Database.cpp:
(WebCore::retrieveTextResultFromDatabase): Ditto.
(WebCore::Database::performGetTableNames): Ditto.
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::fullPathForDatabase): Ditto.
(WebCore::DatabaseTracker::populateOrigins): Ditto.
(WebCore::DatabaseTracker::databaseNamesForOrigin): Ditto.
(WebCore::DatabaseTracker::addDatabase): Ditto.
* storage/SQLStatement.cpp:
(WebCore::SQLStatement::execute): Ditto.
* platform/sql/SQLiteDatabase.h: Removed unneeded includes.
* storage/SQLResultSet.h: Ditto.
* storage/SQLResultSetRowList.h: Ditto.
2008-01-25 Adele Peterson <adele@apple.com>
Reviewed by Sam.
Fix for <rdar://problem/5679452> Finish tweaking layout/alignment of media controls slider to match QuickTime plug-in
* css/html4.css: Add horizontal padding to the media slider.
* rendering/RenderSlider.cpp:
(WebCore::HTMLSliderThumbElement::defaultEventHandler): Replace use of absoluteBoundingBox() with width() and height()
(WebCore::RenderSlider::positionForOffset): ditto. Also, use the trackSize() for the maximum offset.
(WebCore::RenderSlider::layout): Use contentWidth() and contentHeight() to take padding into account.
(WebCore::RenderSlider::trackSize): ditto.
2008-01-24 Adam Roben <aroben@apple.com>
Better fix for Bug 16996
Rubberstamped by Mitz.
* loader/CachedFont.cpp:
(WebCore::CachedFont::ensureCustomFontData): Don't call
createFontCustomPlatformData if m_data is null.
* platform/graphics/gtk/FontCustomPlatformData.cpp:
(WebCore::createFontCustomPlatformData): Added an assertion.
* platform/graphics/mac/FontCustomPlatformData.cpp:
(WebCore::createFontCustomPlatformData): Ditto.
* platform/graphics/qt/FontCustomPlatformData.cpp:
(WebCore::createFontCustomPlatformData): Ditto.
* platform/graphics/win/FontCustomPlatformData.cpp:
(WebCore::createFontCustomPlatformData): Ditto.
2008-01-24 Adam Roben <aroben@apple.com>
Fix Bug 16996: Crash in createFontCustomPlatformData when loading
0-byte font via @font-face
<http://bugs.webkit.org/show_bug.cgi?id=16996>
Reviewed by Hyatt.
Test: fast/loader/font-face-empty.html
* platform/graphics/win/FontCustomPlatformData.cpp:
(WebCore::createFontCustomPlatformData): Null-check the buffer
parameter.
2008-01-24 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Anders.
<rdar://problem/5588807> Crash in Flash when destroying plug-in (found
using yahoo beta mail)
Flash can dereference NULL in the call to NPP_URLNotify if a request
made with NPN_PostURLNotify fails before NPP_NewStream is called.
Work around this by creating a quirk, PluginQuirkFlashURLNotifyBug, and
checking for this quirk before calling NPP_URLNotify for any request
made with NPN_PostURLNotify. If the quirk is present, call NPP_NewStream
and NPP_DestroyStream before calling NPP_URLNotify.
* WebCore.vcproj/WebCore.vcproj:
* plugins/PluginQuirkSet.h: Added. Moved quirks out of PluginViewWin so
PluginViewWin and PluginStream could share it. Created a class,
PluginQuirkSet, to store plug-in quirks
(WebCore::):
(WebCore::PluginQuirkSet::PluginQuirkSet):
(WebCore::PluginQuirkSet::add):
(WebCore::PluginQuirkSet::contains):
* plugins/PluginStream.cpp:
(WebCore::PluginStream::PluginStream): Copy the PluginQuirkSet for this
plug-in
(WebCore::PluginStream::destroyStream): Check for the FlashURLNotifyBug
quirk
* plugins/PluginStream.h:
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginViewWin::performRequest): Pass the quirks when creating
the PluginStream
(WebCore::PluginViewWin::didReceiveResponse): Same
(WebCore::PluginViewWin::wndProc): Use add / contains instead of
bit ops
(WebCore::PluginViewWin::userAgent): Same
(WebCore::PluginViewWin::invalidateRect): Same
(WebCore::PluginViewWin::~PluginViewWin): Same
(WebCore::PluginViewWin::determineQuirks): Same
(WebCore::PluginViewWin::setParameters): Same
(WebCore::PluginViewWin::PluginViewWin): Same
(WebCore::PluginViewWin::init): Same
(WebCore::PluginViewWin::setCallingPlugin): Same
* plugins/win/PluginViewWin.h:
2008-01-24 David Hyatt <hyatt@apple.com>
http://bugs.webkit.org/show_bug.cgi?id=16982
Make sure to make <head> the current block if it is created before a <body> already exists.
Reviewed by Dan
* html/HTMLParser.cpp:
(WebCore::HTMLParser::createHead):
2008-01-24 Alexey Proskuryakov <ap@webkit.org>
http://bugs.webkit.org/show_bug.cgi?id=16993
<rdar://problem/5704331> REGRESSION: Loading page leads to many unexpected redirections
Rolled out r29590, which was not a correct fix for <rdar://problem/5692566>.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::clear):
2008-01-24 Antti Koivisto <antti@apple.com>
Reviewed by Adam.
If the media is playing and the load stalls the playback wont restart by seeking backwards.
We should be in CAN_PLAY state if the current time is less than the maximum loaded time. Rate
tricks were for streaming case and are not necessary now since that is now disabled.
Windows patch coming separately.
Test: http/tests/media/video-play-stall-seek.html
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::updateStates):
2008-01-24 Antti Koivisto <antti@apple.com>
Reviewed by Adam.
Fix <rdar://problem/5684815>
After navigating back to the page that contains a <audio> that has been muted, the audio is still heard
- get rid of the separate muted state in MediaPlayer, maintain the state in the cross platform code only
- remove volumeChanged() callbacks from HTMLMediaElement and OS X MediaPlayer, they were not used for anything
- rename updateMediaPlayer -> updatePlayState which tells more about what it actually does
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::load):
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::play):
(WebCore::HTMLMediaElement::pause):
(WebCore::HTMLMediaElement::setVolume):
(WebCore::HTMLMediaElement::setMuted):
(WebCore::HTMLMediaElement::checkIfSeekNeeded):
(WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
(WebCore::HTMLMediaElement::updateVolume):
(WebCore::HTMLMediaElement::updatePlayState):
(WebCore::HTMLMediaElement::setPausedInternal):
* html/HTMLMediaElement.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::MediaPlayer):
* platform/graphics/MediaPlayer.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::createQTMovie):
* platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
* platform/graphics/win/QTMovieWin.cpp:
* platform/graphics/win/QTMovieWin.h:
2008-01-24 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Simon.
* Fix "QObject::startTimer: QTimer can only be used with threads started with QThread"
* The JSC GCController gets automatically destructed on application exit, it will stop
its timer and we try to schedule the next timer. Now the GCController can get destructed
after our QApplication is gone. This will trigger the above warning, we can avoid this
by checking if our qApp is still around.
* platform/qt/SharedTimerQt.cpp:
(WebCore::setSharedTimerFireTime):
2008-01-24 Morten Johan Sørvig <msorvig@trolltech.com>
Reviewed by Simon.
Qt/Mac: Make sure the scrollbars does not overlap the grow box.
When showing only one scrollbar we need to move it so it doesn't overlap the
grow box. This is similar to the code in QAbstractScrollArea.
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::updateScrollbars):
2008-01-15 Michael Goddard <michael.goddard@trolltech.com>
Reviewed by Darin.
While parsing -webkit-border-image, store
the border widths as naked pointers rather
than as OwnPtrs, since they point to the
middle of an array.
Test: fast/css/border-image-crash.html
* css/CSSParser.cpp:
2008-01-24 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Simon.
* Attempt to fix showing of popup again after a popup has been shown but
the user did not select any item (e.g. clicked outside of the popup)
* Keep track of the popup status using the virtuals showPopup and hidePopup
and do not go into recursion when hiding a popup.
* platform/qt/QWebPopup.cpp:
(WebCore::QWebPopup::showPopup):
(WebCore::QWebPopup::hidePopup):
* platform/qt/QWebPopup.h:
2008-01-24 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Simon.
* Assert the presence of the PopupMenuClient
* platform/qt/QWebPopup.cpp:
(WebCore::QWebPopup::QWebPopup):
(WebCore::QWebPopup::hideEvent):
(WebCore::QWebPopup::activeChanged):
2008-01-23 David Kilzer <ddkilzer@apple.com>
<rdar://problem/5702947> WebCore: CGContextDrawPDFDocument will be deprecated
Reviewed by Darin.
No test cases added since there is no change in behavior.
* platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::draw): Replace CGContextDrawPDFDocument() with
calls to CG methods that perform the equivalent work.
2008-01-23 Antti Koivisto <antti@apple.com>
Reviewed by Hyatt, Adele.
Timers for media controls keep running when the page is in the page cache.
Stop timers in RenderMedia and get rid of the controls tree when the page goes to the cache.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::willSaveToCache):
(WebCore::HTMLMediaElement::didRestoreFromCache):
* html/HTMLMediaElement.h:
(WebCore::HTMLMediaElement::inPageCache):
* rendering/RenderMedia.cpp:
(WebCore::RenderMedia::updateControls):
2008-01-23 Antti Koivisto <antti@apple.com>
Reviewed by Adam.
Video that had already played to the end would start playing (from beginning) on back/forward navigation.
Use setPausedInternal() instead of pause(). This avoid generating pause/play events and matches specification text.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::willSaveToCache):
2008-01-23 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
<rdar://problem/4200075> Missing support for accented chars in mailto forms
With some combinations of form parameters, this was resulting in regressed behavior.
Tests: fast/forms/mailto/get-non-ascii-text-plain-latin-1.html
fast/forms/mailto/post-text-plain-with-accept-charset.html
fast/forms/mailto/post-text-plain.html
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::formData): Ignore accept-charset for mailto forms, which are always
encoded as UTF-8.
(WebCore::HTMLFormElement::isMailtoForm): Added.
(WebCore::HTMLFormElement::dataEncoding): Added (factored out from formData).
(WebCore::HTMLFormElement::submit): When round-tripping in text/plain case, use utf-8 encoding.
* html/HTMLFormElement.h: Added a isMailtoForm() function. It may be a bit unfortunate that
its result is calculated repeatedly, but this doesn't seem to be anywhere near hot code.
2008-01-22 Justin Garcia <justin.garcia@apple.com>
Reviewed by Alice Liu.
<rdar://problem/5658727> Undo/redo for pasted or typed text in yahoo mail becomes disabled after one round of being selected
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::updateFromElement): If value == text() and
m_innerText is empty, then value and text() are "". In that case both DOM
mutations are no-ops and there is no reason to clear the Undo stack.
2008-01-23 Steve Falkenburg <sfalken@apple.com>
<rdar://problem/5698732> Copyright strings should include 2008
Reviewed by Sam.
* WebCore.vcproj/QTMovieWin.rc:
2008-01-23 Steve Falkenburg <sfalken@apple.com>
<rdar://problem/5699509> Allow file upload dialog to be localized.
Reviewed by Darin.
* platform/LocalizedStrings.h:
* platform/win/FileChooserWin.cpp:
(WebCore::FileChooser::openFileChooser):
2008-01-23 Adam Roben <aroben@apple.com>
Fix behavior of type-to-select in <select> menus
In r27825 we started posting both a WM_KEYDOWN and WM_CHAR message
whenever a key was pressed in the dropdown menu. However, since posted
messages go through TranslateMessage, the WM_KEYDOWN was generating
another WM_CHAR message, so two WM_CHAR messages in a row would reach
the WebView. This caused the searching to happen twice for each key,
so typing "dog" would search for "ddoogg".
Reviewed by Darin.
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupWndProc): Repost the WM_KEYDOWN message to the WebView.
This is will generate a WM_CHAR message which will trigger the
type-to-select behavior. This is very similar to our behavior prior to
r27825, except that we're now calling PostMessage instead of
SendMessage.
2008-01-23 Alp Toker <alp@atoker.com>
Rubber-stamped by Mark Rowe.
Remove whitespace after -I in automake include lists.
* GNUmakefile.am:
2008-01-23 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
* Rubber stamped by Simon
* Load images incrementally. This will show warnings on the console
and we want to fix them for Qt4.4. If that happens we have to remove
the comment from the enum inside the ImageDecoderQt.cpp
* platform/graphics/qt/ImageDecoderQt.cpp:
(WebCore::ImageDecoderQt::setData):
2008-01-23 Lars Knoll <lars@trolltech.com>
Reviewed by Holger Freyther <holger.freyther@trolltech.com>.
Fix rendering of the Scrollbar as well as mouse handling for some styles.
The QStyle expects that that painter is set up to clip to the scrollbar bounds
and some of the styles seem to paint somewhat outside of these bounds. Clipping to
the scrollbar bounds before drawing removes some artifacts.
Also set m_opt.rect.topLeft to (0/0) in the mouse handlers. Fixes some issues with
the oxygen style.
* platform/qt/PlatformScrollBarQt.cpp:
(WebCore::PlatformScrollbar::paint):
(WebCore::PlatformScrollbar::handleMouseMoveEvent):
(WebCore::PlatformScrollbar::handleMousePressEvent):
2008-01-23 Michael Brasser <michael.brasser@trolltech.com>
Reviewed by Simon.
Rendering fixes for Qtopia.
Make the focus ring work with line breaks (until we have QPainterPath::simplify) and
call QStyle with better arguments when painting themed elements.
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::drawFocusRing):
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderThemeQt::paintButton):
(WebCore::RenderThemeQt::applyTheme):
2008-01-23 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Simon.
* FormData::flatten does not include to be uploaded files. Create our own QIODevice
for the QNetworkAccessManager and feed the complete content of the FormData* to
the (HTTP) backend.
* Try to optimize the ::readData implementation to fill the buffer as best as possible
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::FormDataIODevice::FormDataIODevice):
(WebCore::FormDataIODevice::~FormDataIODevice):
(WebCore::FormDataIODevice::moveToNextElement):
(WebCore::FormDataIODevice::readData):
(WebCore::FormDataIODevice::writeData):
(WebCore::FormDataIODevice::setParent):
(WebCore::FormDataIODevice::isSequential):
(WebCore::FormDataIODevice::slotFinished):
(WebCore::QNetworkReplyHandler::start):
* platform/network/qt/QNetworkReplyHandler.h:
2008-01-23 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Simon.
* Coding-Style fixes
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
2008-01-23 Michael Brasser <michael.brasser@trolltech.com>
Reviewed by Simon.
use PopupClient's font for popup menu. Otherwise, in Qtopia, the popup's font is much bigger (QApplication::font()?) and the text doesn't fit.
* platform/qt/QWebPopup.cpp:
(WebCore::QWebPopup::QWebPopup):
2008-01-23 Simon Hausmann <hausmann@webkit.org>
Reviewed by Lars.
Implemented FrameLoaderClient::startDownload() and FrameLoaderClient::download().
Added two signals to QWebPage to handle downloading of links and handling of
unsupported content.
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::release):
* platform/network/qt/QNetworkReplyHandler.h:
2008-01-22 Dan Bernstein <mitz@apple.com>
Reviewed by Adele Peterson.
- fix http://bugs.webkit.org/show_bug.cgi?id=16905
<rdar://problem/5692407> REGRESSION (3.0.4-TOT): "menu" pseudocolor is badly chosen
The regression test for this is fast/css/css2-system-color.html which
is currently disabled.
* rendering/RenderThemeMac.mm:
(WebCore::menuBackgroundColor): Added. Uses HIThemeDrawMenuBackground
to draw the menu item background into a bitmap graphics context and
returns the color of the pixel at (0, 0).
(WebCore::RenderThemeMac::systemColor): Changed to call
menuBackgroundColor for the CSS2 menu color.
2008-01-22 Darin Adler <darin@apple.com>
Reviewed by Oliver Hunt.
- turn full repainting back on for <canvas> until we get incremental
repaint working properly
Ollie and I came up with a plan for testing this, but for now we should
just fall back on the "repaint everything" behavior we have always had.
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::willDraw): Just call repaint.
2008-01-22 Alp Toker <alp@atoker.com>
GTK+/qmake build fix.
* WebCore.pro:
2008-01-22 Adam Roben <aroben@apple.com>
Add HTMLFrameOwnerElement::scrollingMode
This new virtual method is overridden by HTMLFrameElementBase to
provide the scrolling mode set on the frame or iframe element. Object
elements always have scrolling=auto, so there's no need to override
this method for HTMLPlugInElement.
Reviewed by Hyatt.
* html/HTMLFrameElementBase.h: Declare scrollingMode as virtual.
* html/HTMLFrameOwnerElement.h:
(WebCore::HTMLFrameOwnerElement::scrollingMode): Added.
2008-01-22 David Hyatt <hyatt@apple.com>
Fix for <rdar://problem/5698481> REGRESSION: Web Inspector source view gutter double divider and no padding
Now that cellpadding cascades properly on <td>s, we need to make the view source padding rules in the user
agent sheet have !important in order to override author settings.
Reviewed by Tim
* css/view-source.css:
2008-01-22 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Alp.
Allow to use SVGPaintServerSolid without RenderObject/RenderStyle. Used later to draw SVG Fonts in HTML.
* svg/graphics/SVGPaintServer.cpp:
(WebCore::SVGPaintServer::sharedSolidPaintServer):
* svg/graphics/SVGPaintServer.h:
* svg/graphics/cg/SVGPaintServerCg.cpp:
(WebCore::SVGPaintServer::renderPath):
(WebCore::SVGPaintServer::fillPath):
(WebCore::SVGPaintServer::clipToFillPath):
* svg/graphics/cg/SVGPaintServerSolidCg.cpp:
(WebCore::SVGPaintServerSolid::setup):
2008-01-22 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Alp.
Initialize missing variables, m_lineGap / m_lineSpacing.
Only noticeable when trying to render HTML text using SVG Fonts (which is not possible with trunk, but with my local version).
* platform/graphics/SimpleFontData.cpp:
(WebCore::SimpleFontData::SimpleFontData):
2008-01-22 Alp Toker <alp@atoker.com>
Reviewed by Nikolas.
Fix Cairo SVG fonts following changes in r29700.
Set the font description's details as needed in FontPlatformData and
eliminate GraphicsContext::setPlatformFont() since it was redundant
and assumed all fonts were Cairo fonts.
* platform/graphics/GraphicsContext.cpp:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
* platform/graphics/gtk/FontPlatformDataGtk.cpp:
(WebCore::FontPlatformData::FontPlatformData):
2008-01-22 Dan Bernstein <mitz@apple.com>
Reviewed by Eric.
- fix http://bugs.webkit.org/show_bug.cgi?id=16967
<rdar://problem/5699344> Reproducible crash when navigating back to a page using SVG fonts
Test: svg/custom/font-platformDestroy-crash.svg
* platform/graphics/SimpleFontData.cpp:
(WebCore::SimpleFontData::~SimpleFontData): Changed to call
platformDestroy() only if platformInit() was called from the
constructor.
2008-01-22 Lars Knoll <lars@trolltech.com>
Reviewed by Simon.
cleanup the CookieJarQt implementation and implement cookiesEnabled.
* platform/qt/CookieJarQt.cpp:
(WebCore::cookieJar):
(WebCore::setCookies):
(WebCore::cookies):
(WebCore::cookiesEnabled):
2008-01-22 Lars Knoll <lars@trolltech.com>
Reviewed by Simon.
Ported the font implementation to use the new QFont features of Qt 4.4.
* platform/graphics/Font.h:
(WebCore::Font::setWordSpacing):
(WebCore::Font::setLetterSpacing):
(WebCore::Font::font):
(WebCore::Font::):
* platform/graphics/qt/FontQt.cpp:
(WebCore::Font::Font):
(WebCore::Font::setWordSpacing):
(WebCore::Font::setLetterSpacing):
(WebCore::qstring):
(WebCore::setupLayout):
(WebCore::Font::drawText):
(WebCore::Font::width):
(WebCore::Font::floatWidth):
(WebCore::Font::offsetForPosition):
(WebCore::Font::selectionRectForText):
(WebCore::generateComponents):
(WebCore::cursorToX):
(WebCore::Font::~Font):
(WebCore::Font::operator=):
(WebCore::Font::operator==):
(WebCore::Font::update):
2008-01-21 Eric Seidel <eric@webkit.org>
Reviewed by Nikolas & Oliver.
Tested by svg/custom/svg-features.html
* dom/DOMImplementation.cpp:
(WebCore::isSVG10Feature): use ENABLE(SVG_*) conditionals
(WebCore::isSVG11Feature): use ENABLE(SVG_*) conditionals
2008-01-21 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
Adapted WebCore to the fix for http://bugs.webkit.org/show_bug.cgi?id=16909
REGRESSION: Amazon.com crash (ActivationImp)
* bindings/js/kjs_proxy.cpp:
(WebCore::KJSProxy::~KJSProxy): No convenient way to make this assertion
anymore. (It wasn't firing for anyone, anyway, so it's no big loss.)
* bindings/objc/WebScriptObject.mm:
(+[WebScriptObject throwException:]): Use the ExecState stack, instead
of currentExec.
(-[WebScriptObject setException:]): ditto. Also, a slight change in
behavior: If no ExecStates are active, we no longer throw an exception
in the global ExecState. The JavaScriptCore ChangeLog explains why.
This also matches the behavior of +throwException.
2008-01-21 Nikolas Zimmermann <zimmermann@kde.org>
Not reviewed. Try to fix Qt build, after the rmdir() fixes.c
* platform/graphics/qt/SimpleFontDataQt.cpp:
(WebCore::SimpleFontData::SimpleFontData):
2008-01-21 Nikolas Zimmermann <zimmermann@kde.org>
Not reviewed. Another Wx build fix.
* platform/graphics/wx/FontWx.cpp:
(WebCore::Font::drawGlyphs):
2008-01-21 Darin Adler <darin@apple.com>
- try to fix Qt build
* platform/qt/FileSystemQt.cpp:
(WebCore::deleteEmptyDirectory): QDir::root().rmdir() instead of QDir::rmdir().
2008-01-21 Nikolas Zimmermann <zimmermann@kde.org>
Not reviewed. Yet another win/gtk build fix.
* platform/graphics/gtk/FontPlatformDataGtk.cpp:
(WebCore::FontPlatformData::FontPlatformData):
* platform/graphics/win/FontWin.cpp:
(WebCore::Font::drawGlyphs):
2008-01-21 Nikolas Zimmermann <zimmermann@kde.org>
Not reviewed. Another build fix for Gtk/Linux & Wx/Mac.
* platform/graphics/SimpleFontData.cpp:
(WebCore::SimpleFontData::SimpleFontData):
2008-01-21 Nikolas Zimmermann <zimmermann@kde.org>
Not reviewed. Build fix for Qt/Gtk & Wx.
* css/CSSFontSelector.cpp:
* platform/graphics/SegmentedFontData.cpp:
(WebCore::SegmentedFontData::isSVGFont): Remove SVG_FONTS block, it's a pure virtual function in the base class.
* platform/graphics/SegmentedFontData.h:
2008-01-21 Nikolas Zimmermann <zimmermann@kde.org>
Not reviewed. Build fix for ports that don't build SVG: wx.
* css/CSSFontFaceSource.h: Wrap include in ENABLE(SVG_FONTS) blocks.
* css/CSSFontFaceSrcValue.h: Ditto.
2008-01-21 Nikolas Zimmermann <zimmermann@kde.org>
Not reviewed. Build fix for Qt/Gtk.
* platform/graphics/SimpleFontData.h:
(WebCore::SimpleFontData::svgFontData):
(WebCore::SimpleFontData::isSVGFont):
2008-01-21 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Eric. Older parts reviewed by Dan.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=16880 (SVGCSSFontFace should die, instead integrate within the FontCache.)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=16784 (In-document fonts work only as the first child to font-face-src)
Proper integration of SVG Fonts within the existing custom font concept, removing the need for a custom SVGCSSFontFace.
Integrate within the CSSFontFaceSource logic for caching support, as well as the framework for external SVG Fonts.
Proper handling of missing glyphs, using <missing-glyph> element. If that is not specified in a font, fallback to non-SVG font rendering.
* GNUmakefile.am:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::getFontData):
* css/CSSFontFaceSource.h:
(WebCore::CSSFontFaceSource::svgFontFaceElement):
(WebCore::CSSFontFaceSource::setSVGFontFaceElement):
* css/CSSFontFaceSrcValue.h:
(WebCore::CSSFontFaceSrcValue::m_isLocal):
(WebCore::CSSFontFaceSrcValue::~CSSFontFaceSrcValue):
(WebCore::CSSFontFaceSrcValue::svgFontFaceElement):
(WebCore::CSSFontFaceSrcValue::setSVGFontFaceElement):
* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::addFontFaceRule):
* css/SVGCSSFontFace.cpp: Removed.
* css/SVGCSSFontFace.h: Removed.
* platform/graphics/Font.cpp:
(WebCore::Font::ascent):
(WebCore::Font::descent):
(WebCore::Font::lineSpacing):
(WebCore::Font::xHeight):
(WebCore::Font::fontSelector):
* platform/graphics/Font.h:
* platform/graphics/FontData.h:
* platform/graphics/SegmentedFontData.cpp:
(WebCore::SegmentedFontData::isSVGFont):
* platform/graphics/SegmentedFontData.h:
* platform/graphics/SimpleFontData.cpp:
(WebCore::SimpleFontData::SimpleFontData):
* platform/graphics/SimpleFontData.h:
(WebCore::SimpleFontData::ascent):
(WebCore::SimpleFontData::descent):
(WebCore::SimpleFontData::lineSpacing):
(WebCore::SimpleFontData::lineGap):
(WebCore::SimpleFontData::xHeight):
(WebCore::SimpleFontData::isSVGFont):
(WebCore::SimpleFontData::svgFontData):
* platform/graphics/gtk/FontPlatformData.h:
(WebCore::FontPlatformData::size):
* platform/graphics/gtk/FontPlatformDataGtk.cpp:
(WebCore::FontPlatformData):
* platform/graphics/mac/FontPlatformData.h:
(WebCore::FontPlatformData::FontPlatformData):
(WebCore::FontPlatformData::size):
* platform/graphics/win/FontPlatformData.h:
* platform/graphics/win/FontPlatformDataWin.cpp:
(WebCore::FontPlatformData::FontPlatformData):
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::relativeBBox):
* svg/SVGFont.cpp:
(WebCore::convertEmUnitToPixel):
(WebCore::isCompatibleGlyph):
(WebCore::svgFontAndFontFaceElementForFontData):
(WebCore::SVGTextRunWalker::SVGTextRunWalker):
(WebCore::SVGTextRunWalker::walk):
(WebCore::floatWidthUsingSVGFontCallback):
(WebCore::floatWidthMissingGlyphCallback):
(WebCore::floatWidthOfSubStringUsingSVGFont):
(WebCore::drawTextUsingSVGFontCallback):
(WebCore::drawTextMissingGlyphCallback):
(WebCore::Font::drawTextUsingSVGFont):
* svg/SVGFontData.cpp: Added.
(WebCore::SVGFontData::SVGFontData):
(WebCore::SVGFontData::~SVGFontData):
* svg/SVGFontData.h: Added.
(WebCore::SVGFontData::svgFontFaceElement):
(WebCore::SVGFontData::horizontalOriginX):
(WebCore::SVGFontData::horizontalOriginY):
(WebCore::SVGFontData::horizontalAdvanceX):
(WebCore::SVGFontData::verticalOriginX):
(WebCore::SVGFontData::verticalOriginY):
(WebCore::SVGFontData::verticalAdvanceY):
* svg/SVGFontFaceElement.cpp:
(WebCore::SVGFontFaceElement::unitsPerEm):
(WebCore::SVGFontFaceElement::xHeight):
(WebCore::SVGFontFaceElement::horizontalOriginX):
(WebCore::SVGFontFaceElement::horizontalOriginY):
(WebCore::SVGFontFaceElement::horizontalAdvanceX):
(WebCore::SVGFontFaceElement::verticalOriginX):
(WebCore::SVGFontFaceElement::verticalOriginY):
(WebCore::SVGFontFaceElement::verticalAdvanceY):
(WebCore::SVGFontFaceElement::ascent):
(WebCore::SVGFontFaceElement::descent):
(WebCore::SVGFontFaceElement::fontFamily):
(WebCore::SVGFontFaceElement::associatedFontElement):
(WebCore::SVGFontFaceElement::rebuildFontFace):
* svg/SVGFontFaceElement.h:
* svg/SVGGlyphElement.cpp:
(WebCore::SVGGlyphElement::inheritUnspecifiedAttributes):
(WebCore::parseSVGGlyphAttribute):
(WebCore::SVGGlyphElement::buildGenericGlyphIdentifier):
(WebCore::SVGGlyphElement::buildGlyphIdentifier):
* svg/SVGGlyphElement.h:
* svg/SVGMissingGlyphElement.cpp:
* svg/svgattrs.in:
2008-01-21 Darin Adler <darin@apple.com>
Reviewed by John Sullivan.
- fix <rdar://problem/5644324> Delegate-less WebKit clients should have no databases
- remove the default database quota setting
- simplify the quota-related client calls by merging the one for a new database with
the one for an existing database, adding a feature where you can get details about
a database being created using the same functions that work on the other databases,
and removing the parameters and return values, instead having clients use a function
to set the quota
- fix unsafe multi-thread access to the database tracker's quota map
- fix bug in deleteAllDatabases where it would iterate a HashMap while modifying it
The tracker database is now only created when we set the quota for a database origin.
Thus asking for info about databases won't cause anything to be written to disk.
* WebCore.base.exp: Updated.
* bindings/js/GCController.cpp: Added an #if to get rid of an unused function warning.
* page/Chrome.cpp: Removed database-related functions. There's no problem having the
code deal directly with the client.
* page/Chrome.h: Ditto. Also made Chrome inherit from Noncopyable.
* page/ChromeClient.h: Replaced the two quota-related functions with a single one.
The details about the state of databases in the origin are now available by asking
for database details. There's also no need to pass the security origin, since
it's easy to get that from the frame's document.
* page/Settings.cpp: Removed the default quota setting.
* page/Settings.h: Ditto.
* platform/FileSystem.h: Added deleteEmptyDirectory.
* platform/gtk/FileSystemGtk.cpp:
(WebCore::deleteEmptyDirectory): Added.
* platform/posix/FileSystemPOSIX.cpp:
(WebCore::deleteEmptyDirectory): Added.
* platform/qt/FileSystemQt.cpp:
(WebCore::deleteEmptyDirectory): Added.
* platform/win/FileSystemWin.cpp:
(WebCore::deleteEmptyDirectory): Added.
* platform/wx/FileSystemWx.cpp:
(WebCore::deleteEmptyDirectory): Added placeholder.
* storage/DatabaseDetails.h: Removed the isValid() function since its name is
confusing -- we removed our other isValid() functions. For the few callers that
need this, it's fine to just check name().isEmpty(). Made the member functions
all const.
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::DatabaseTracker): Removed m_defaultQuota initialization.
Added m_proposedDatabase and m_thread.
(WebCore::DatabaseTracker::setDatabaseDirectoryPath): Got rid of code that would
open the tracker database here. This might slightly speed up launch time, since
we won't do the I/O until we have to, and before we were actually creating an SQL
database in this code that's run when we go to the first webpage.
(WebCore::DatabaseTracker::trackerDatabasePath): Added.
(WebCore::DatabaseTracker::openTrackerDatabase): Added a boolean parameter telling
this function whether to create the database. Made this function safe to call if
the database is already open. Also made the function fail quietly if the path has
not been set yet.
(WebCore::DatabaseTracker::canEstablishDatabase): Got rid of the call to the
establishEntryForOrigin function. The origin is now put in the tracker database
when the quota is set to a non-zero value. When judging if there's enough space
for the new database, require at least one byte even if estimatedSize is 0, and
check for overflow. Also added code here to populate the origins map, which
guarantees it will be ready when the database uses it on another thread later.
Also changed this to call the new ChromeClient function.
(WebCore::DatabaseTracker::hasEntryForDatabase): Added code to open the
tracker database, since that's no longer done by setDatabaseDirectoryPath.
(WebCore::DatabaseTracker::originPath): Added.
(WebCore::DatabaseTracker::fullPathForDatabase): Added code so that this will
return a null string for the proposed database if called from within the
ChromeClient function. Also switched from empty string to null string for the
error cases.
(WebCore::DatabaseTracker::populateOrigins): Added code to open the tracker
database.
(WebCore::DatabaseTracker::databaseNamesForOrigin): Ditto.
(WebCore::DatabaseTracker::detailsForNameAndOrigin): Ditto. Also added code that
will return the details of the proposed database if called from within the
ChromeClient function. This is how the client can learn of the display name and
the estimated size of the new database.
(WebCore::DatabaseTracker::setDatabaseDetails): Added code to open the tracker
database.
(WebCore::DatabaseTracker::quotaForOrigin): Made this code OK to call on a non-main
thread by using m_quotaMapGuard to guard access to the map. Other code runs on the
main thread only, and only functions that write to the map use the lock.
(WebCore::DatabaseTracker::setQuota): Changed this function so it can insert the
initial quota as well as updating an existing quota. Added locking since this
function modifies the quota map. Added code to open the tracker database. Added
an early exit if the quota is already correct, which is guarantees that if you
set a quota to 0 it won't trigger creation of a tracker database.
(WebCore::DatabaseTracker::addDatabase): Added code to open the tracker database.
(WebCore::DatabaseTracker::deleteAllDatabases): Made a copy of the quota map before
iterating it to find all the origins. This fixes a problem with the old code where
it would modify the map while iterating it, which gives assertions in debug builds
and unpredictable results.
(WebCore::DatabaseTracker::deleteOrigin): Replaced deleteDatabasesWithOrigin with
this function. Added code to open the tracker database if needed. Added code to
delete the origin from the tracker database, and to close the tracker database
and delete files and directories as needed if we are deleting the final origin.
(WebCore::DatabaseTracker::deleteDatabase): Added code to open the tracker database
if needed.
* storage/DatabaseTracker.h: Renamed databasePath to databaseDirectoryPath for
clarity, including the data member, and the getter and setter functions.
Replaced deleteDatabasesWithOrigin with deleteOrigin. Removed the functions
dealing with default origin quota. There is no default any more; origins start
with no quota and the client must set a quota. Added trackerDatabasePath and
originPath helper functions. Added a boolean parameter to openTrackerDatabase
to tell it whether to create the database or not. Removed the
establishEntryForOrigin function. Renamed m_originQuotaMap to just m_quotaMap,
and added m_quotaMapGuard. Added a QuotaMap typedef. Added m_proposedDatabase,
which holds the origin and details for the current proposed database during
the client callback function that must decide whether to grant quota. Added a
m_thread data member for debugging use to assert if functions that can only
be called on a single thread are misused.
* storage/SQLTransaction.cpp:
(WebCore::SQLTransaction::deliverQuotaIncreaseCallback): Changed to call the
new exceededDatabaseQuota function instead of the old one.
* svg/graphics/SVGImageEmptyClients.h: Updated for the change to ChromeClient.
2008-01-21 David Hyatt <hyatt@apple.com>
Fix for http://bugs.webkit.org/show_bug.cgi?id=16935
Fix a bug in layers where the positioned ancestor was being computed incorrectly (the root should not
automatically be included).
Reviewed by olliej
Added fast/layers/positioned-inside-root-with-margins.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::stackingContext):
(WebCore::RenderLayer::enclosingPositionedAncestor):
2008-01-21 Simon Hausmann <hausmann@webkit.org>
Reviewed by Holger.
Fix KURL to QUrl conversion.
Stick to the encoded version of the URL and in addition to KURL we encode the
characters mentioned in section 2.4.3 of RFC 2396 as QUrl requires these, too.
This fixes fast/css/import-rule-regression-11590.html,
fast/css/import-style-update.html, svg/hixie/processing-model/003.xml and
svg/hixie/processing-model/004.xml.
* platform/qt/KURLQt.cpp:
(WebCore::toHex):
(WebCore::KURL::operator QUrl):
2008-01-21 Simon Hausmann <hausmann@webkit.org>
Reviewed by Holger.
Fix focus chain handling and cycling through focusable objects (links) using tab/backtab.
* Fix GraphicsContext::drawFocusRing to also draw single focus rects.
* Implemented QWebPage::focusNextPrevChild by sending fake tab/shift-tab events
and make the return value depend on whether we successfully determined a focusable
node or not.
* Changed QWebView::focusNextPrevChild() to call the base QWidget implementation correctly
if we could not handle the focus chain ourselves.
* Changed the focus policy of QWebView to correctly use WheelFocus instead of ClickFocus.
* Made ChromeClientQt::canTakeFocus() and takeFocus() dummy method since they are only
used to control the situation of stepping out of the focus chain inside the page.
* Made inclusion of links in the focus chain configurable through QWebSettings::LinksIncludedInFocusChain.
The layout tests expect this to be disabled but for the user it seems sensible to have it
on by default, hence the default in qwebsettings.cpp
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::drawFocusRing):
2008-01-21 Simon Hausmann <hausmann@webkit.org>
Reviewed by Holger.
Fix access key support and fast/forms/legend-access-key.html
SVN revision 26664 changed the default access key for the non-mac build to Alt
while this test relies on Ctrl.
* page/EventHandler.cpp:
2008-01-21 Simon Hausmann <hausmann@webkit.org>
Reviewed by Holger.
Fix error reporting when parsing X(HT)ML fragments.
We use the regular XMLTokenizer write()/.../end() sequence to parse those
fragments, but we should not report any parsing errors inline inside the
content. Instead we should just return the error and the DOM layer will take
care of throwing an exception.
This fixes fast/innerHTML/innerHTML-changing-document-properties.xhtml
* dom/XMLTokenizer.cpp:
(WebCore::createXHTMLParserErrorHeader):
2008-01-21 Holger Freyther <holger.freyther@trolltech.com>
Reviewed by Simon.
Fix some issues with redirections.
* Ensure that we deliver the response to the ResourceHandleClient only once by
setting m_responseSent back to false only before calling start() for the
redirection
* Added 307 as another HTTP status code that causes a redirection after POST to
become get, just like in MainResourceLoader::isPostOrRedirectAfterPost
* Also set the HTTP method on the ResourceRequest to GET before passing it to
willSendRequest.
* willSendRequest's newRequest argument is actually an in/out argument and could be
modified in theory, so set m_request accordingly after the call.
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::finish):
(WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
2008-01-21 Holger Freyther <holger.freyther@trolltech.com>
Reviewed by Simon.
Fixed WebCore::cookies() to return all cookies, not only the first one.
Fixes login into mail.yahoo.com.
* platform/qt/CookieJarQt.cpp:
(WebCore::cookies):
2008-01-20 Oliver Hunt <oliver@apple.com>
Reviewed by Mitz.
Fix http://bugs.webkit.org/show_bug.cgi?id=16816 , rdar://problem/5682985
Correctly trigger willPerformDragDestinationAction when a drop causes a
load to occur. The logic that originally did this was lost during the
great drag migration of '07.
* page/DragController.cpp:
(WebCore::DragController::performDrag):
2008-01-20 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- fix http://bugs.webkit.org/show_bug.cgi?id=16951
Assertion failure in FrameView::scheduleRelayout (!m_frame->document() || !m_frame->document()->inPageCache()) when going back from a page with a focused popup
* dom/Document.cpp:
(WebCore::Document::setFocusedNode): Bail out if the document is in the
page cache. Documents in the back/forward cache are "frozen" and should
not change state.
2008-01-20 Collin Jackson <webkit@collinjackson.com>
Reviewed by Sam Weinig.
Fix for http://bugs.webkit.org/show_bug.cgi?id=16775
We now use frame()->loader()->url() for postMessage, preventing a
malicious sender from overwriting the uri property (using a <base> tag,
for example). Also, use frame->loader()->url().host() instead of
instead of document()->SecurityOrigin()->domain() to reflect a recent
clarification in the HTML5 spec.
Tests: http/tests/security/postMessage/domain-affected-by-document-domain.html
http/tests/security/postMessage/domain-and-uri-unaffected-by-base-tag.html
http/tests/security/postMessage/javascript-page-still-sends-domain.html
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::postMessage):
2008-01-20 Antti Koivisto <antti@apple.com>
Reviewed by Adele.
Fix <rdar://problem/5695451>
Middle part of the media timeline missing on Windows if load failed
Add some null checking to avoid getting garbage results from the functions.
* platform/graphics/MediaPlayer.cpp:
* platform/graphics/win/QTMovieWin.cpp:
(QTMovieWin::duration):
(QTMovieWin::currentTime):
(QTMovieWin::setCurrentTime):
(QTMovieWin::maxTimeLoaded):
2008-01-19 Alp Toker <alp@atoker.com>
Reviewed by Mark Rowe.
http://bugs.webkit.org/show_bug.cgi?id=16944
Use of GST_PLUGIN_DEFINE_STATIC results in a module-level constructor
http://bugzilla.gnome.org/show_bug.cgi?id=510547
Epiphany/Webkit fails to start due to initializing threads twice
Don't call GST_PLUGIN_DEFINE_STATIC() as it performs g_thread_init()
in the global initializer, breaking subsequent calls to
g_thread_init() in applications.
* platform/graphics/gtk/VideoSinkGStreamer.cpp:
2008-01-19 Alp Toker <alp@atoker.com>
Reviewed by Mark Rowe.
Remove any fragment part from the URL to be requested just before
passing it to curl, otherwise curl sends it as part of the HTTP/local
file request, causing page loads to fail.
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::ResourceHandleManager::startJob):
2008-01-19 Jan Michael Alonzo <jmalonzo@unpluggable.com>
Reviewed by Alp Toker.
Add svg foreign object and svg experimental to the GTK+/autotools
build system.
* GNUmakefile.am:
2008-01-19 Dan Bernstein <mitz@apple.com>
Reviewed by Maciej Stachowiak.
- fix <rdar://problem/5645813> CrashTracer: [USER] 6 crashes in Safari at com.apple.WebCore: WebCore::RenderBox::destroy + 116
Test: editing/selection/inconsistent-in-removeChildNode.html
* editing/SelectionController.cpp:
(WebCore::SelectionController::nodeWillBeRemoved): If the selection
base or extent are not visible any more, adjust the selection.
2008-01-19 Oliver Hunt <oliver@apple.com>
Reviewed by Eric Seidel.
Build fix for --svg-foreign-object path
* svg/SVGForeignObjectElement.idl:
2008-01-18 Stephanie <slewis@apple.com>
Reviewed by Oliver.
Workaround for <rdar://problem/5695848>. Set mime_type for local files based on file extension.
* platform/network/cf/ResourceResponseCFNet.cpp:
(WebCore::ResourceResponse::doUpdateResourceResponse):
2008-01-18 Ada Chan <adachan@apple.com>
<rdar://problem/5682340> REGRESSION (r28188): Context menu appears at wrong place when clicking in iframe whose parent is scrolled (16827)
Calling absolutePosition() in EventHandler::hitTestResultAtPoint() is extremely inefficient and passing in
true as fixed before was wrong. Use HitTestResult::localPoint() instead, and take into account border and padding widths.
Reviewed by Hyatt and Darin.
* page/EventHandler.cpp:
(WebCore::EventHandler::hitTestResultAtPoint):
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::operator=):
2008-01-18 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Darin, landed by Beth.
- fixed http://bugs.webkit.org/show_bug.cgi?id=15765
The call to HTMLTokenizer::write might result in a call to ::end which will invoke
HTMLParser::finished() or Document::finishedParsing(). HTMLParser::finished() will eventually
call Document::finishedParsing. The Document will delete the calling HTMLTokenizer and from the deleted
tokenizer we will call into FrameLoader::tokenizerProcessedData.
-) FrameLoader::tokenizerProcessedData calls FrameLoader::checkCompleted which gets called from the Document::finishedParsing
(FrameLoader::finishedParsing).
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::timerFired):
2008-01-18 David Hyatt <hyatt@apple.com>
Don't apply the border/margin/padding check to root line boxes, since their renderers
are blocks.
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::computeLogicalBoxHeights):
(WebCore::InlineFlowBox::placeBoxesVertically):
2008-01-18 Geoffrey Garen <ggaren@apple.com>
Not reviewed: rolling out a previous patch.
Fixed <rdar://problem/5695439> Crash during GCController destructor on
quitting browser
Used svn merge to roll out r29603 because it introduced some crashes
on quit.
GC relies on static hash tables, so it's not safe to GC from a static
destructor, which might run after the static hash tables' destructors.
* bindings/js/GCController.cpp:
(WebCore::GCController::garbageCollectNow):
* bindings/js/GCController.h:
2008-01-18 David Hyatt <hyatt@apple.com>
Fix for http://bugs.webkit.org/show_bug.cgi?id=15665
Building on Beth's earlier work to start building line boxes for empty inlines, this patch makes more
empty inline cases work. Empty inlines on lines by themselves now set isLineEmpty to false so that
bidiReorderLine will get properly called. In addition, the "shrink boxes with no text children" quirk
needs to be disabled for inlines with padding, margins or borders.
Reviewed by Beth
Added fast/inline/inline-padding-disables-text-quirk.html
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::computeLogicalBoxHeights):
(WebCore::InlineFlowBox::placeBoxesVertically):
(WebCore::InlineFlowBox::shrinkBoxesWithNoTextChildren):
* rendering/RenderObject.h:
(WebCore::RenderObject::hasBordersPaddingOrMargin):
* rendering/bidi.cpp:
(WebCore::inlineFlowRequiresLineBox):
(WebCore::RenderBlock::findNextLineBreak):
2008-01-18 David Hyatt <hyatt@apple.com>
Fix for http://bugs.webkit.org/show_bug.cgi?id=14975
Computed size of padding is incorrect because we default padding to auto. This is a made-up value that
was only used to implement cellpadding on tables. We needed this made-up value in order to tell that
padding wasn't set so that we could then apply cellpadding.
This patch rewrites cellpadding to be like other browsers. Instead of being a setting on the table
renderer that applies to all cells (even ones that were not <td>s), cellpadding is now mapped into the
style of <td>s. With this change it effectively becomes a content model feature and not a rendering
feature.
For example, a <td> will pick up cellpadding even when it is not a cell and/or the enclosing <table> is
not a table. Anonymous cells and CSS-display-type cells will now never pick up cellpadding. This behavior
is all consistent with other browsers.
Reviewed by Antti
Added fast/css/padding-no-renderer.html
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::canShareStyleWithElement):
(WebCore::CSSStyleSelector::styleForElement):
* css/CSSStyleSelector.h:
* dom/StyledElement.cpp:
* dom/StyledElement.h:
(WebCore::StyledElement::canHaveAdditionalAttributeStyleDecls):
(WebCore::StyledElement::additionalAttributeStyleDecls):
* html/HTMLTableCellElement.cpp:
(WebCore::HTMLTableCellElement::additionalAttributeStyleDecls):
* html/HTMLTableCellElement.h:
(WebCore::HTMLTableCellElement::canHaveAdditionalAttributeStyleDecls):
* html/HTMLTableColElement.cpp:
(WebCore::HTMLTableColElement::additionalAttributeStyleDecls):
* html/HTMLTableColElement.h:
(WebCore::HTMLTableColElement::canHaveAdditionalAttributeStyleDecls):
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::parseMappedAttribute):
(WebCore::HTMLTableElement::additionalAttributeStyleDecls):
(WebCore::HTMLTableElement::addSharedCellDecls):
(WebCore::HTMLTableElement::addSharedCellBordersDecl):
(WebCore::HTMLTableElement::addSharedCellPaddingDecl):
(WebCore::HTMLTableElement::addSharedGroupDecls):
(WebCore::HTMLTableElement::attach):
* html/HTMLTableElement.h:
(WebCore::HTMLTableElement::canHaveAdditionalAttributeStyleDecls):
* html/HTMLTableSectionElement.cpp:
(WebCore::HTMLTableSectionElement::additionalAttributeStyleDecls):
* html/HTMLTableSectionElement.h:
(WebCore::HTMLTableSectionElement::canHaveAdditionalAttributeStyleDecls):
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::recalcColumn):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::paddingTop):
(WebCore::RenderObject::paddingBottom):
(WebCore::RenderObject::paddingLeft):
(WebCore::RenderObject::paddingRight):
* rendering/RenderStyle.cpp:
(WebCore::StyleSurroundData::StyleSurroundData):
* rendering/RenderStyle.h:
(WebCore::RenderStyle::initialPadding):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::RenderTable):
* rendering/RenderTable.h:
2008-01-18 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt.
- fix <rdar://problem/5615307> Repro crash in WebKit!WebCore::RenderContainer::destroyLeftoverChildren
Test: fast/table/insert-row-before-form.html
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::addChild): Changed to ensure that the
object a new cell is inserted before is a child of the row, and
added an assertion that that object is either a cell or a form.
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::addChild): Changed to ensure that the
object a new row is inserted before is a child of the table section, and
added an assertion that that object is either a table row or a form.
2008-01-18 Geoffrey Garen <ggaren@apple.com>
Reviewed by Brady Eidson.
Fixed <rdar://problem/5622424> World Leak dialog when closing a page
that has a Database
The problem was that each transaction and SQL statement would hold on
to its callback indefinitely. By design, callbacks often establish
reference cycles to temporarily protect their execution environments.
To break the cycle, we need to explicitly release each callback as soon
as it is no longer needed.
* storage/SQLStatement.cpp:
(WebCore::SQLStatement::performCallback): Release our callback objects
after performing our callback.
* storage/SQLTransaction.cpp:
(WebCore::SQLTransaction::postflightAndCommit): Release our callback
objects after the transaction has terminated.
(WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): ditto.
2008-01-18 Adele Peterson <adele@apple.com>
Reviewed by Antti.
Fix for <rdar://problem/5679490> media controls fade in and out too jerkily and too slowly
* rendering/RenderMedia.cpp: Shorten the duration for the fade in/out animation.
2008-01-18 Beth Dakin <bdakin@apple.com>
Reviewed by Oliver.
Disables SVG foreign object for <rdar://problem/5686989> turn off
SVG foreignobject because it does not repaint/dirty correctly
* DerivedSources.make:
* WebCore.SVG.ForeignObject.exp: Added.
* WebCore.SVG.exp:
* bindings/js/JSSVGElementWrapperFactory.cpp:
(WebCore::createJSSVGWrapper):
* rendering/RenderForeignObject.cpp:
* rendering/RenderForeignObject.h:
* svg/SVGForeignObjectElement.cpp:
* svg/SVGForeignObjectElement.h:
* svg/SVGForeignObjectElement.idl:
* svg/SVGLocatable.cpp:
(WebCore::SVGLocatable::nearestViewportElement):
(WebCore::SVGLocatable::farthestViewportElement):
* svg/SVGUseElement.cpp:
(WebCore::isDisallowedElement):
* svg/svgtags.in:
2008-01-18 Mark Rowe <mrowe@apple.com>
Rubber-stamped by Adam Roben.
Fix mixed line endings in FileSystemWin.cpp and set svn:eol-style to native
to try and keep them consistent in the future.
* platform/win/FileSystemWin.cpp:
(WebCore::fileSize):
(WebCore::fileExists):
(WebCore::deleteFile):
(WebCore::pathByAppendingComponent):
(WebCore::fileSystemRepresentation):
(WebCore::makeAllDirectories):
(WebCore::homeDirectoryPath):
(WebCore::bundleName):
(WebCore::storageDirectory):
(WebCore::cachedStorageDirectory):
2008-01-18 Antti Koivisto <antti@apple.com>
Reviewed by Adam.
Fix unreachable code warning in RenderVideo on Windows.
Make switch cases explicit.
* rendering/RenderImage.cpp:
(WebCore::RenderImage::isWidthSpecified):
(WebCore::RenderImage::isHeightSpecified):
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::isWidthSpecified):
(WebCore::RenderVideo::isHeightSpecified):
2008-01-18 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam Roben.
<rdar://problem/5693558> REGRESSION (r29581): no form field focus
rings and inactive text selection after loading a page
Bug 16910: [GTK] REGRESSION: keyboard cursor doesn't blink
Bug 16917: REGRESSION (r29581/2): Google Maps search box loses focused appearance
* page/FocusController.cpp:
(WebCore::FocusController::setActive): Use focusedOrMainFrame() instead of focusedFrame()
to call selectionController()->pageActivationChanged() for cases when the focusedFrame()
has not been set yet.
2008-01-18 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Brady.
Database origin tracking is broken.
* storage/DatabaseTracker.cpp: (WebCore::DatabaseTracker::populateOrigins):
Move reading from statement back into the loop (broken in r29386).
2008-01-18 Marius Storm-Olsen <marius@trolltech.com>
Reviewed by Simon Hausmann <hausmann@webkit.org>.
Add use of precompiled header, when building inside Qt.
Compiling WebKit was taking forever; 17 minutes on my machine for _one_ build! Adding the PCH at least brings it down to 12 minutes for one build, for me.
* WebCore.pro:
2008-01-18 Simon Hausmann <hausmann@webkit.org>
Reviewed by Holger.
Fix fast/forms/button-state-restore.html
Similar to the fix for fast/forms/form-post-urlencoded.html transform POST
requests to data urls into GET.
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::start):
2008-01-18 Simon Hausmann <hausmann@webkit.org>
Reviewed by Holger.
Fix LayoutTests/fast/cookies/local-file-can-set-cookies.html
In WebCore::cookies() don't return the full raw form but only the name=value
part. This fixes the getter part of the above test. The above test also
requires a parsing fix in Qt 4.4's QNetworkCookie to fully pass.
* platform/qt/CookieJarQt.cpp:
(WebCore::cookies):
2008-01-18 Simon Hausmann <hausmann@webkit.org>
Reviewed by Holger.
Fix svg/custom/path-getTotalLength.svg
Path::apply creates a PathElement and its points array on the stack,
to fill it in from the QPainterPath data and then use the platform
independent path applier functions to calculate properties such as
the length. For converting a QPainterPath::CurveToElement we need
three points in the path element. However we allocated only two
on the stack and as a result we got memory corruption and the
failing test.
* platform/graphics/qt/PathQt.cpp:
(WebCore::Path::apply):
2008-01-18 Simon Hausmann <hausmann@webkit.org>
Reviewed by Holger.
Fix LayoutTests/fast/dom/document-attribute-js-null.html
Don't crash when trying to get/set cookies without a frameloader.
* platform/qt/CookieJarQt.cpp:
(WebCore::setCookies):
(WebCore::cookies):
2008-01-18 Simon Hausmann <hausmann@webkit.org>
Reviewed by Holger.
Fix fast/dom/xmlhttprequest-get.xhtml
For local file requests remove the content length and the last-modified
headers in the response.
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
2008-01-18 Simon Hausmann <hausmann@webkit.org>
Reviewed by Holger.
Fix fast/forms/form-post-urlencoded.html.
Post requests on files don't really make sense, but for
fast/forms/form-post-urlencoded.html we still need to retrieve the file,
which means we map it to a Get instead.
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::start):
2008-01-18 Simon Hausmann <hausmann@webkit.org>
Reviewed by Holger.
Make QNetworkReplyHandler::abort() more robust against multiple invocations.
During DRT runs I see cancel() being called on the same handle multiple times. Guard
against this a bit better by setting m_reply to 0 after we called abort() on it.
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::abort):
2008-01-18 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Simon.
* httpBody() can return 0 and other ports (cf/mac) check for this condition
* Looking at the cf/mac implementation we might need to call setHTTPBody somewhere
as well.
WARNING: NO TEST CASES ADDED OR CHANGED
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::start):
2008-01-18 Prasanth Ullattil <prasanth.ullattil@trolltech.com>
Reviewed by Simon Hausmann <hausmann@webkit.org>.
Fix compilation in Win64(3): Due to the size of size_t cast the return value explicitly to double() to make sure the right Value() constructor is called.
* xml/XPathFunctions.cpp:
(WebCore::XPath::FunCount::evaluate):
2008-01-18 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Simon.
* Remove our windowClipRect reimplementation and instead have our own
Widget::invalidate implementation that is invalidating
IntRect(0, 0, width(), height()) without trying to clip it (in contrast
to Widget::invalidateRect)
* platform/qt/PlatformScrollBar.h:
* platform/qt/PlatformScrollBarQt.cpp:
(WebCore::PlatformScrollbar::invalidate):
2008-01-18 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Simon.
* Change the coordinate transformation in the PlatformMouseEvent handlers
* We want to convert from coordinates of the containing window to our local
position on the scrollbar.
* platform/qt/PlatformScrollBarQt.cpp:
(WebCore::PlatformScrollbar::handleMouseMoveEvent):
(WebCore::PlatformScrollbar::handleMousePressEvent):
2008-01-18 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Simon.
* Make the qDebug more usable. Do not have an additional newline and print
the untranslated coordinates as well.
* platform/qt/PlatformScrollBarQt.cpp:
(WebCore::PlatformScrollbar::handleMouseMoveEvent):
(WebCore::PlatformScrollbar::handleMousePressEvent):
2008-01-18 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Simon.
* Dead code, remove it
* platform/qt/PlatformScrollBarQt.cpp:
2008-01-18 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Simon.
* Coding-Style fixes.
* platform/qt/PlatformScrollBarQt.cpp:
(WebCore::PlatformScrollbar::PlatformScrollbar):
2008-01-18 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Simon.
* Coding-Style fix
* platform/graphics/qt/ImageDecoderQt.cpp:
(WebCore::ImageDecoderQt::ReadContext::ReadContext):
2008-01-17 Geoffrey Garen <ggaren@apple.com>
Reviewed by Darin Adler.
Fixed: lots of WebCore leaks reported when quitting Safari
If we're quitting with a GC still scheduled, do the GC before quitting.
That way, WebCore's leak counters won't count objects that were
scheduled for GC.
* bindings/js/GCController.cpp:
(WebCore::GCController::~GCController):
(WebCore::GCController::garbageCollectNow):
* bindings/js/GCController.h:
2008-01-17 Alp Toker <alp@atoker.com>
Reviewed by Oliver Hunt.
gdk_screen_get_font_options() returns NULL if no default options are
set so we always have to NULL check to avoid crashes later on since
Cairo doesn't accept NULL font options.
* platform/graphics/gtk/FontPlatformDataGtk.cpp:
(WebCore::FontPlatformData::FontPlatformData):
2008-01-17 Antti Koivisto <antti@apple.com>
Reviewed by Adele.
Windows fix for <rdar://problem/5605682>
Disallow streaming protocols for media elements
and <rdar://problem/5668711>
Limit the container and codec types that the <video> tag supports
- Disable unsupported QuickTime tracks types.
- Disallow streaming protocols (for now).
* WebCore.vcproj/WebCore.vcproj:
* platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
(WebCore::MediaPlayerPrivate::updateStates):
* platform/graphics/win/QTMovieWin.cpp:
(QTMovieWin::load):
(QTMovieWin::disableUnsupportedTracks):
* platform/graphics/win/QTMovieWin.h:
2008-01-17 Oliver Hunt <oliver@apple.com>
Support smart copy and paste during drag and drop
Reviewed by Alice
In order for the drag and drop tests in Windows DRT to pass
we need to support smart cut and paste operations during
drag and drop on windows.
There is no layout test as drag and drop is still unsupported
on windows. Once supported smart drag/drop is tested by existing
tests
* platform/win/ClipboardUtilitiesWin.cpp:
(WebCore::smartPasteFormat):
* platform/win/ClipboardUtilitiesWin.h:
* platform/win/ClipboardWin.cpp:
(WebCore::ClipboardWin::writeRange):
* platform/win/DragDataWin.cpp:
2008-01-17 Oliver Hunt <oliver@apple.com>
Reviewed by Anders.
<rdar://problem/5692940> Crash when attempting to get text properties in
SVG with no renderer
We use the element renderer to calculate the text element bounds,
however there was no check against the possibility of the text dimension
properties being requested on a element with no renderer (eg. unattached,
display: none).
Test: svg/text/text-property-with-display-none.html
* svg/SVGTextContentElement.cpp:
(WebCore::rootInlineBoxForTextContentElement):
2008-01-17 Anders Carlsson <andersca@apple.com>
Reviewed by Oliver.
<rdar://problem/5636742>
CrashTracer: [USER] 1302 crashes in Safari at com.apple.WebCore: WTF::Vector<char, 0ul>::reserveCapacity + 78
When loading full-frame plug-ins, disable buffering data for the main resource loader. Otherwise, this can cause us
to crash when loading large files such as movies in the browser. We already do this for embedded plug-ins.
* WebCore.base.exp:
* loader/DocumentLoader.h:
(WebCore::DocumentLoader::mainResourceLoader):
New accessor method.
* loader/PluginDocument.cpp:
(WebCore::PluginTokenizer::writeRawData):
Disable buffering for the main resource loader.
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::setShouldBufferData):
* loader/ResourceLoader.h:
Have this free the buffer when disabling buffering.
2008-01-17 Adam Roben <aroben@apple.com>
More Qt/GTK+ build fixing.
* platform/gtk/ScrollViewGtk.cpp:
* platform/qt/ScrollViewQt.cpp:
2008-01-17 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=16902
<rdar://problem/5692566> fast/encoding/mailto-always-utf-8.html fails when run after
fast/dom/Window/window-property-shadowing.html
Test: fast/dom/Window/window-property-shadowing_.html
* loader/FrameLoader.cpp: (WebCore::FrameLoader::clear): Clear the frame name, too.
2008-01-17 Adam Roben <aroben@apple.com>
Qt/GTK+ build fix.
* platform/gtk/ScrollViewGtk.cpp:
(WebCore::ScrollView::ScrollViewPrivate::isActive):
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::ScrollViewPrivate::isActive):
2008-01-16 Adam Roben <aroben@apple.com>
Update scroll bars/form controls when FocusController::isActive changes
Part of <rdar://5006915> Inactive look for Aqua controls
Reviewed by Darin.
All tests pass.
* page/FocusController.cpp:
(WebCore::FocusController::setActive): Update control tints when the
active state changes.
* page/FrameView.cpp:
(WebCore::FrameView::updateControlTints): On Windows, we have to ask
ScrollView to paint so that the outermost scroll bars will paint. On
Mac, the outermost scroll bars are taken care of by NSScroller.
* platform/PopupMenu.h: Updated for ScrollBarClient changes.
* platform/ScrollBar.h: Added a new ScrollBarClient method.
* platform/win/PlatformScrollBarSafari.cpp:
(WebCore::PlatformScrollbar::paint): Invalidate when updating control
tints so that we can paint with the new tint later.
(WebCore::PlatformScrollbar::paintButton): Pass the active state down
to SafariTheme.
(WebCore::PlatformScrollbar::paintTrack): Ditto.
(WebCore::PlatformScrollbar::paintThumb): Ditto.
* platform/win/ScrollViewWin.cpp:
(WebCore::ScrollView::ScrollViewPrivate::isActive): Added.
(WebCore::ScrollView::paint): Pass paint calls on down if we're
updating control tints so the scroll bars can invalidate.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::isActive): Added.
* rendering/RenderLayer.h:
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::isActive): Added.
* rendering/RenderListBox.h:
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::isActive): Added.
* rendering/RenderTheme.h:
* rendering/RenderThemeSafari.cpp:
(WebCore::RenderThemeSafari::determineState): Pass the active state
down to SafariTheme.
2008-01-16 Adam Roben <aroben@apple.com>
Move focused/active state from Frame to SelectionController/FocusController
This is the first part of <rdar://5006915> Inactive look for Aqua
controls.
The following methods were moved/renamed:
- Frame::setIsActive -> FocusController::setActive
- Frame::isActive -> SelectionController::isActiveAndFocused
- Frame::setWindowHasFocus -> SelectionController::setFocused
Active state is now correctly a Page-level concept.
The Mac parts of this patch were written by Darin.
Reviewed by Darin.
All tests pass.
* WebCore.base.exp: Updated for method renames.
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::checkOneSelector): Ditto.
* editing/SelectionController.cpp:
(WebCore::SelectionController::SelectionController): Initialize new
member.
(WebCore::SelectionController::focusedOrActiveStateChanged): New
private method. Most of this code came from Frame::setIsActive.
(WebCore::SelectionController::pageActivationChanged): Added.
(WebCore::SelectionController::setFocused): Added. Replaces
Frame::setWindowHasFocus.
(WebCore::SelectionController::isFocusedAndActive): Added. Replaces
Frame::isActive.
* editing/SelectionController.h:
* page/FocusController.cpp:
(WebCore::FocusController::FocusController): Initialize new member.
(WebCore::FocusController::setFocusedFrame): Changed to just call
SelectionController::setFocused, since active state has doesn't change
when the focused frame changes.
(WebCore::FocusController::setActive): Added. Replaces
Frame::setIsActive.
* page/FocusController.h:
(WebCore::FocusController::isActive): Added.
* page/Frame.cpp:
(WebCore::Frame::setDocument): Updated for method renames.
(WebCore::Frame::setFocusedNodeIfNeeded): Ditto.
(WebCore::Frame::updateSecureKeyboardEntryIfActive): Ditto.
(WebCore::FramePrivate::FramePrivate): Removed initialization of
removed members.
* page/Frame.h:
* page/FramePrivate.h:
* page/mac/WebCoreFrameBridge.h: Removed -selectionColor.
* page/mac/WebCoreFrameBridge.mm: Ditto.
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::paintItemForeground): Updated for method
renames.
(WebCore::RenderListBox::paintItemBackground): Ditto.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::selectionBackgroundColor): Ditto.
(WebCore::RenderObject::selectionForegroundColor): Ditto.
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::capsLockStateMayHaveChanged): Ditto.
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::isFocused): Ditto.
2008-01-17 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Simon.
* Make the nice 'safari' feature work on our port. When viewing a single image, clicking
on the image will zoom it.
* It seems like our platform can only determine the size of the image once it is completely
loaded. Call m_doc->imageChanged on the last chunk of data as well.
* loader/ImageDocument.cpp:
(WebCore::ImageTokenizer::finish):
2008-01-17 Simon Hausmann <hausmann@webkit.org>
Reviewed by Lars.
Set the library version of QtWebKit to the Qt version.
* WebCore.pro:
2008-01-17 Simon Hausmann <hausmann@webkit.org>
Reviewed by Holger.
Re-enable gzip compression as accepted encoding, now that the bug is fixed in Qt 4.4's network module.
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
2008-01-17 Simon Hausmann <hausmann@webkit.org>
Another Windows build fix, setCookies accidentially had a const
Document pointer.
* platform/network/win/CookieJarWin.cpp:
2008-01-17 Simon Hausmann <hausmann@webkit.org>
MSVC Windows build fix. Forward declaring Document in CookieJar.h
seems not enough for MSVC.
* platform/network/win/CookieJarWin.cpp:
2008-01-17 Simon Hausmann <hausmann@webkit.org>
Reviewed by Maciej, Lars, Holger.
http://bugs.webkit.org/show_bug.cgi?id=16589
Add a document parameter to WebCore::cookies, setCookies and cookiesEnabled.
* WebCore.pro:
* bindings/js/kjs_navigator.cpp:
(KJS::Navigator::getValueProperty):
* dom/Document.cpp:
(WebCore::Document::cookie):
* platform/CookieJar.h:
* platform/gtk/CookieJarGtk.cpp:
(WebCore::setCookies):
(WebCore::cookies):
* platform/mac/CookieJar.mm:
* platform/network/win/CookieJarWin.cpp:
* platform/qt/CookieJarQt.cpp:
(WebCore::setCookies):
(WebCore::cookies):
(WebCore::cookiesEnabled):
* platform/wx/TemporaryLinkStubs.cpp:
2008-01-17 Simon Hausmann <hausmann@webkit.org>
Reviewed by Holger.
Windows build fix. (use localtime_r again instead of _s)
* loader/FTPDirectoryDocument.cpp:
(WebCore::processFileDateString):
2008-01-17 Frans Englich <fenglich@trolltech.com>
Reviewed by Simon Hausmann <hausmann@webkit.org>.
Fix linking on MinGW and at least one MSVC platform by having gmtimeQt in the correct namespace.
* loader/FTPDirectoryDocument.cpp:
2008-01-17 Simon Hausmann <hausmann@webkit.org>
Reviewed by Holger.
Don't link QtWebKit against libQtXml when building against Qt 4.4.
This is not necessary anymore since QXmlStream has been moved into QtCore.
* WebCore.pro:
2008-01-17 HÃ¥vard Wall <hwall@trolltech.com>
Reviewed by Simon Hausmann <hausmann@webkit.org>.
Fix compilation on arm
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::endTransparencyLayer):
2008-01-17 Simon Hausmann <shausman@trolltech.com>
Reviewed by Holger.
Fix compilation against Qt 4.4 without files that are specific for the Qt 4.3 build.
* WebCore.pro:
* platform/network/qt/ResourceHandleQt.cpp:
* platform/qt/MIMETypeRegistryQt.cpp:
* platform/qt/PlugInInfoStoreQt.cpp:
2008-01-17 Frans Englich <fenglich@trolltech.com>
Reviewed by Simon Hausmann <hausmann@webkit.org>.
Fixes compilation with MinGW.
Neither localtime_r nor localtime_s are available on MingW, so instead of
calling back to the thread-unsafe localtime use QDateTime instead.
* loader/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryTokenizer::WebCore::processFilesizeString):
(WebCore::FTPDirectoryTokenizer::WebCore::wasLastDayOfMonth):
(WebCore::FTPDirectoryTokenizer::WebCore::WebCore::gmtimeQt):
* loader/FTPDirectoryParser.cpp:
(WebCore::parseOneFTPLine):
2008-01-17 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt.
- fix determinePitch for segmented fonts
Covered by fast/css/font-face-implicit-local-font.html
* platform/graphics/FontFallbackList.cpp:
(WebCore::FontFallbackList::determinePitch): If the primary font is
segmented, treat as fixed pitch only if it has only one segment
and that segment is fixed-pitch.
2008-01-16 David Hyatt <hyatt@apple.com>
Fix for http://bugs.webkit.org/show_bug.cgi?id=16611
Make sure vertical-align length values are offset from their parents rather than being absolute to the
line.
Reviewed by olliej
Added fast/css/vertical-align-lengths.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::getVerticalPosition):
2008-01-16 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt.
- fix for @font-face rules with unicode-range: always use a local font where not
explicitly overlaid.
Test: fast/css/font-face-implicit-local-font.html
* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::addFontFaceRule): Changed to insert an implicit
@font-face rule with the local font the matches the family and description before
any explicit @font-face rules that overlay specific ranges of the same font.
* css/CSSSegmentedFontFace.h:
(WebCore::CSSSegmentedFontFace::numRanges): Addded.
2008-01-16 Antti Koivisto <antti@apple.com>
Fix Tiger build.
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::disableUnsupportedTracks):
2008-01-16 Antti Koivisto <antti@apple.com>
Reviewed by Adele.
OS X fix for <rdar://problem/5605682>
Disallow streaming protocols for media elements
and <rdar://problem/5668711>
Limit the container and codec types that the <video> tag supports
- Disable unsupported QuickTime tracks types.
- Disallow streaming protocols (for now).
- Set QTMovie QTMoviePreventExternalURLLinksAttribute and QTSecurityPolicyNoCrossSiteAttribute
to limit QuickTime's access to external resources.
Windows patch coming up.
Tests: media/broken-video.html
media/unsupported-rtsp.html
media/unsupported-tracks.html
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::createQTMovie):
(WebCore::MediaPlayerPrivate::updateStates):
(WebCore::MediaPlayerPrivate::disableUnsupportedTracks):
2008-01-16 Rodney Dawes <dobey@wayofthemonkey.com>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=16897
Add shared plugins directory to INCLUDE path
Add the plugins directory to INCLUDEPATH
* GNUmakefile.am:
* WebCore.pro:
2008-01-16 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
Added a debug counter for SQL transactions. This helped me debug an SQL
leak.
* bindings/js/JSCustomSQLTransactionCallback.cpp:
(WebCore::):
(WebCore::JSCustomSQLTransactionCallbackCounter::~JSCustomSQLTransactionCallbackCounter):
(WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback):
(WebCore::JSCustomSQLTransactionCallback::~JSCustomSQLTransactionCallback):
* bindings/js/JSCustomSQLTransactionCallback.h:
* bindings/js/kjs_window.cpp: Removed a silly comment.
2008-01-16 David Hyatt <hyatt@apple.com>
Fix for http://bugs.webkit.org/show_bug.cgi?id=14846, cell padding can't be changed dynamically.
Reviewed by Eric Seidel
Added fast/table/dynamic-cellpadding.html
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::parseMappedAttribute):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::setCellPadding):
* rendering/RenderTable.h:
2008-01-16 David Hyatt <hyatt@apple.com>
Fix for <rdar://problem/5681647> Item pages on http://www.stendmarsofa.com/ hang Safari
This regression was caused by an attempt to implement a WinIE quirk in RenderBlock::calcInlinePrefWidths.
The original patch introduced pathological O(n^2) behavior into this function even when the quirk didn't need
to apply. In addition the quirk was only partially implemented (the full quirk did not care what was adjacent
to images and also needed bidi.cpp patched, since the quirk applies both when computing pref widths and when
laying out).
This new patch rewrites the quirk to be complete. The original test case attached to the bug that tested a variety
of image/text combinations now fully matches WinIE.
Reviewed by Beth
Added fast/table/unbreakable-images-quirk.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::calcInlinePrefWidths):
* rendering/bidi.cpp:
(WebCore::RenderBlock::findNextLineBreak):
2008-01-16 Rodney Dawes <dobey@wayofthemonkey.com>
Reviewed by Jon Honeycutt
Move isPluginBlacklisted to PluginPackageWin.cpp, to avoid
a circular dependency on PluginDatabaseWin
Remove the getFileVersion method, and just check the versions directly
in isPluginBlacklisted, as it was the only caller
http://bugs.webkit.org/show_bug.cgi?id=16884
* plugins/win/PluginDatabaseWin.cpp:
* plugins/win/PluginDatabaseWin.h:
* plugins/win/PluginPackageWin.cpp:
* plugins/win/PluginPackageWin.h:
2008-01-16 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Lars.
* Set the cursor on the containingWindow() instead of the
nativeWidget()
* This should be safe even with plugins as the cursor is set
on the mouse events.
* platform/qt/WidgetQt.cpp:
(WebCore::Widget::setCursor):
2008-01-16 Brad Hughes <bhughes@trolltech.com>
Reviewed by Lars.
Improve the sqlite3 dependency when building WebKit inside Qt.
Build sqlite3 into QtWebKit if a system sqlite3 development package
can't be found.
* WebCore.pro:
2008-01-16 Lars Knoll <lars@trolltech.com>
Reviewed by Simon Hausmann <simon.hausmann@trolltech.com>.
Implement GraphicsContext::clipOut and fix transparency layers.
Transparency layers where broken in two ways: It always used the
complete device rect as the size of the layer pixmap and the pixmaps
where not correctly initialized to transparent.
This fixes the worst drawing errors in the Inspector and makes drawing it
10 times faster.
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::toQtLineJoin):
(WebCore::TransparencyLayer::TransparencyLayer):
(WebCore::GraphicsContextPlatformPrivate::p):
(WebCore::GraphicsContext::platformContext):
(WebCore::GraphicsContext::savePlatformState):
(WebCore::GraphicsContext::restorePlatformState):
(WebCore::GraphicsContext::drawRect):
(WebCore::GraphicsContext::drawLine):
(WebCore::GraphicsContext::drawEllipse):
(WebCore::GraphicsContext::strokeArc):
(WebCore::GraphicsContext::drawConvexPolygon):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::fillRoundedRect):
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::drawFocusRing):
(WebCore::GraphicsContext::beginTransparencyLayer):
(WebCore::GraphicsContext::endTransparencyLayer):
(WebCore::GraphicsContext::clearRect):
(WebCore::GraphicsContext::strokeRect):
(WebCore::GraphicsContext::setLineCap):
(WebCore::GraphicsContext::setLineJoin):
(WebCore::GraphicsContext::setMiterLimit):
(WebCore::GraphicsContext::setAlpha):
(WebCore::GraphicsContext::setCompositeOperation):
(WebCore::GraphicsContext::clipOut):
(WebCore::GraphicsContext::translate):
(WebCore::GraphicsContext::origin):
(WebCore::GraphicsContext::rotate):
(WebCore::GraphicsContext::scale):
(WebCore::GraphicsContext::clipOutEllipseInRect):
(WebCore::GraphicsContext::addInnerRoundedRectClip):
(WebCore::GraphicsContext::setPlatformStrokeStyle):
(WebCore::GraphicsContext::setPlatformStrokeThickness):
(WebCore::GraphicsContext::setPlatformFillColor):
(WebCore::GraphicsContext::setUseAntialiasing):
2008-01-16 Lars Knoll <lars@trolltech.com>
Reviewed by Simon Hausmann <simon.hausmann@trolltech.com>.
Trivially implement the themed search field by mapping it to a text field
Also add a bunch of notImplemented warnings for other places where we don't
have an implementatin in RenderTheme.
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderThemeQt::paintTextField):
(WebCore::RenderThemeQt::paintMenuListButton):
(WebCore::RenderThemeQt::adjustMenuListButtonStyle):
(WebCore::RenderThemeQt::paintSliderTrack):
(WebCore::RenderThemeQt::paintSliderThumb):
(WebCore::RenderThemeQt::paintSearchField):
(WebCore::RenderThemeQt::adjustSearchFieldStyle):
(WebCore::RenderThemeQt::adjustSearchFieldCancelButtonStyle):
(WebCore::RenderThemeQt::paintSearchFieldCancelButton):
(WebCore::RenderThemeQt::adjustSearchFieldDecorationStyle):
(WebCore::RenderThemeQt::paintSearchFieldDecoration):
(WebCore::RenderThemeQt::adjustSearchFieldResultsDecorationStyle):
(WebCore::RenderThemeQt::paintSearchFieldResultsDecoration):
2008-01-16 Holger Freyther <holger.freyther@trolltech.com>
Reviewed by Simon.
* Follow the EventHandlerWin.cpp and always return true in the handlers.
* Match the windows implementation more closely as well.
* This is fixing "selection" bugs with the Web Inspector
* page/qt/EventHandlerQt.cpp:
(WebCore::EventHandler::focusDocumentView):
(WebCore::EventHandler::passMousePressEventToSubframe):
(WebCore::EventHandler::passMouseMoveEventToSubframe):
(WebCore::EventHandler::passMouseReleaseEventToSubframe):
(WebCore::EventHandler::passMousePressEventToScrollbar):
2008-01-16 Simon Hausmann <hausmann@webkit.org>
Reviewed by Lars Knoll <lars@trolltech.com>.
Fix crashes in the new networking code.
When the ResourceLoader cancels the handle we have to make sure not to access
the resource handle afterwards again.
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::finish):
(WebCore::QNetworkReplyHandler::forwardData):
2008-01-16 Lars Knoll <lars@trolltech.com>
Reviewed by Simon.
add conversion methods from and to QUrl to KURL.
Use them in the places I found at the moment. Fixes a bug
where form data was encoded twice.
Also fix QWebSettings to take a QUrl for the user style sheet
location.
* WebCore.pro:
* platform/KURL.h:
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
* platform/network/qt/ResourceRequestQt.cpp:
(WebCore::ResourceRequest::toNetworkRequest):
* platform/qt/KURLQt.cpp: Added.
(WebCore::KURL::KURL):
(WebCore::KURL::operator QUrl):
2008-01-15 Darin Adler <darin@apple.com>
Rubber-stamped by Maciej Stachowiak and Oliver Hunt.
- fix <rdar://problem/5689748> REGRESSION: Cannot redirect to protocols handled by external applications
Put navigation policy delegate calls back for redirects.
Just rolled out the change where I took them out.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::callContinueAfterNavigationPolicy):
(WebCore::MainResourceLoader::continueAfterNavigationPolicy):
(WebCore::MainResourceLoader::willSendRequest):
* loader/MainResourceLoader.h:
2008-01-15 Adele Peterson <adele@apple.com>
Reviewed by Sam.
Remove unused variable for old media control background drawing code.
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::RenderThemeMac):
(WebCore::RenderThemeMac::~RenderThemeMac):
2008-01-15 Sam Weinig <sam@webkit.org>
Reviewed by Geoffrey Garen.
Fix <rdar://problem/5595552> r27608 introduced a 20% increase in JS binary size, 4% increase in WebCore binary size
- Update JS Function implementations to use a static function based method. This decreases
the binary size of an Intel only build by 1013.5K.
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::customGetOwnPropertySlot):
* bindings/js/JSEventTargetBase.cpp:
(WebCore::jsEventTargetAddEventListener):
(WebCore::jsEventTargetRemoveEventListener):
(WebCore::jsEventTargetDispatchEvent):
(WebCore::retrieveEventTargetAndCorrespondingNode):
* bindings/js/JSEventTargetBase.h:
* bindings/js/JSHTMLInputElementBase.cpp:
(WebCore::jsHTMLInputElementBaseFunctionSetSelectionRange):
(WebCore::JSHTMLInputElementBase::getOwnPropertySlot):
* bindings/js/JSHTMLInputElementBase.h:
* bindings/js/JSLocation.cpp:
(WebCore::JSLocation::getOwnPropertySlot):
(WebCore::jsLocationProtoFuncReplace):
(WebCore::jsLocationProtoFuncReload):
(WebCore::jsLocationProtoFuncAssign):
(WebCore::jsLocationProtoFuncToString):
* bindings/js/JSLocation.h:
* bindings/js/JSXMLHttpRequest.cpp:
(KJS::jsXMLHttpRequestPrototypeFunctionAbort):
(KJS::jsXMLHttpRequestPrototypeFunctionGetAllResponseHeaders):
(KJS::jsXMLHttpRequestPrototypeFunctionGetResponseHeader):
(KJS::jsXMLHttpRequestPrototypeFunctionOpen):
(KJS::jsXMLHttpRequestPrototypeFunctionSend):
(KJS::jsXMLHttpRequestPrototypeFunctionSetRequestHeader):
(KJS::jsXMLHttpRequestPrototypeFunctionOverrideMIMEType):
(KJS::jsXMLHttpRequestPrototypeFunctionAddEventListener):
(KJS::jsXMLHttpRequestPrototypeFunctionRemoveEventListener):
(KJS::jsXMLHttpRequestPrototypeFunctionDispatchEvent):
* bindings/js/JSXMLHttpRequest.h:
* bindings/js/JSXSLTProcessor.cpp:
(KJS::jsXSLTProcessorPrototypeFunctionImportStylesheet):
(KJS::jsXSLTProcessorPrototypeFunctionTransformToFragment):
(KJS::jsXSLTProcessorPrototypeFunctionTransformToDocument):
(KJS::jsXSLTProcessorPrototypeFunctionSetParameter):
(KJS::jsXSLTProcessorPrototypeFunctionGetParameter):
(KJS::jsXSLTProcessorPrototypeFunctionRemoveParameter):
(KJS::jsXSLTProcessorPrototypeFunctionClearParameters):
(KJS::jsXSLTProcessorPrototypeFunctionReset):
* bindings/js/JSXSLTProcessor.h:
* bindings/js/kjs_events.cpp:
(WebCore::jsClipboardPrototypeFunctionClearData):
(WebCore::jsClipboardPrototypeFunctionGetData):
(WebCore::jsClipboardPrototypeFunctionSetData):
(WebCore::jsClipboardPrototypeFunctionSetDragImage):
* bindings/js/kjs_events.h:
* bindings/js/kjs_navigator.cpp:
(KJS::pluginsFunctionRefresh):
(KJS::navigatorProtoFuncJavaEnabled):
* bindings/js/kjs_navigator.h:
* bindings/js/kjs_window.cpp:
(KJS::Window::getOwnPropertySlot):
(KJS::windowProtoFuncAToB):
(KJS::windowProtoFuncBToA):
(KJS::windowProtoFuncOpen):
(KJS::windowProtoFuncSetTimeout):
(KJS::windowProtoFuncClearTimeout):
(KJS::windowProtoFuncSetInterval):
(KJS::windowProtoFuncAddEventListener):
(KJS::windowProtoFuncRemoveEventListener):
(KJS::windowProtoFuncShowModalDialog):
(KJS::windowProtoFuncNotImplemented):
* bindings/js/kjs_window.h:
* bindings/scripts/CodeGenerator.pm:
* bindings/scripts/CodeGeneratorJS.pm:
2008-01-15 Adele Peterson <adele@apple.com>
Reviewed by Dan.
Fix for <rdar://problem/5682492> With the <video> element, the audio is heard when forwarding or rewinding a movie while it's playing
* rendering/MediaControlElements.cpp: (WebCore::MediaControlSeekButtonElement::defaultEventHandler):
Instead of pausing the media when you stop seeking on mouse up, pause the video when you first start seeking on mouse down.
2008-01-15 Alp Toker <alp@atoker.com>
Rubber-stamped by Anders.
Make the HTTP backend configurable in the GTK+ port. curl is currently
the only option.
* GNUmakefile.am:
2008-01-15 Adele Peterson <adele@apple.com>
Build fix.
* rendering/RenderThemeSafari.cpp: Removing MediaBackgroundAppearance.
2008-01-14 Samuel Weinig <sam@webkit.org>
Reviewed by Darin.
Fix for <rdar://problem/5671040>
REGRESSION: 6% HTML iBench regression from r28722 (getElementsByClassName)
On my most consistent tests, this brings the HTML iBench from 1.46 -> 1.41,
which does not completely make up reported regression, but I was not able to
reproduce those findings either.
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::matchRules):
(WebCore::CSSStyleSelector::checkOneSelector):
* dom/ClassNames.cpp:
(WebCore::ClassNames::parseClassAttribute):
* dom/ClassNames.h:
(WebCore::ClassNames::contains):
(WebCore::ClassNames::operator[]):
2008-01-15 Adele Peterson <adele@apple.com>
Build fix. This time for real.
* rendering/RenderThemeSafari.cpp:
2008-01-15 Adele Peterson <adele@apple.com>
Build fix.
* rendering/RenderThemeSafari.cpp:
2008-01-15 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- fix <rdar://problem/5666926> svg/custom/use-css-no-effect-on-shadow-tree.svg is failing
* svg/SVGPreserveAspectRatio.cpp:
(WebCore::SVGPreserveAspectRatio::getCTM): Changed the arguments' type
from float to double in order to make the values passed to scale() and
translate() on Mac OS X and on Windows the same.
* svg/SVGPreserveAspectRatio.h:
2008-01-15 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
<rdar://problem/5342813> REGRESSION: Safari encodes mailto URLs incorrectly
Test: fast/encoding/mailto-always-utf-8.html
* platform/KURL.cpp: (WebCore::encodeRelativeString): Always use UTF-8 for mailto URLs.
2008-01-15 Adele Peterson <adele@apple.com>
Reviewed by Adam and Antti.
WebCore part of fix for <rdar://problem/5619062> Add load progress indicator to video controls
* WebCore.base.exp: Removed symbol for wkGetMediaControlBackgroundImageData. Added symbol for wkDrawMediaSliderTrack.
* css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Removed case for MediaBackgroundAppearance.
* css/html4.css: Removed -webkit-appearance: media-background rule for the media panel element. Removed unnecessary margin for slider.
* rendering/RenderStyle.h: (WebCore::): Removed MediaBackgroundAppearance.
* html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::initAndDispatchProgressEvent):
Call updateMediaPlayer more frequently so the load progress control gets updated appropriately.
* platform/mac/WebCoreSystemInterface.h: Removed wkGetMediaControlBackgroundImageData. Added wkDrawMediaSliderTrack.
* platform/mac/WebCoreSystemInterface.mm: ditto.
* rendering/RenderTheme.h: Removed paintMediaBackground. Added paintMediaSliderTrack.
* rendering/RenderTheme.cpp: (WebCore::RenderTheme::paint): Call paintMediaSliderTrack for elements with MediaSliderAppearance.
* rendering/RenderThemeMac.h: Removed paintMediaBackground. Added paintMediaSliderTrack.
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::adjustSliderThumbSize): Added different sizes for the media slider thumb.
(WebCore::RenderThemeMac::paintMediaSliderTrack): Added. Calls wkDrawMediaSliderTrack with the percentage the media has loaded.
* rendering/RenderThemeSafari.cpp: ditto.
(WebCore::RenderThemeSafari::adjustSliderThumbSize):
(WebCore::RenderThemeSafari::paintMediaSliderTrack):
* rendering/RenderThemeSafari.h:
2008-01-15 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Mark Rowe.
Some logging channels weren't initialized from user defaults.
* platform/mac/LoggingMac.mm: (WebCore::InitializeLoggingChannelsIfNecessary):
Initialize LogPlatformLeaks, LogStorageAPI, LogMedia, LogPlugin.
2008-01-14 Steve Falkenburg <sfalken@apple.com>
Use shared vsprops for most vcproj properties.
Reviewed by Darin.
* WebCore.vcproj/QTMovieWin.vcproj:
* WebCore.vcproj/WebCore.vcproj:
* platform/graphics/win/QTMovieWin.cpp:
(QTMovieWin::initializeQuickTime): Fix compiler warning.
2008-01-14 Eric Seidel <eric@webkit.org>
Reviewed by mjs.
Remove a couple more uses of DeprecatedString
No functional changes, thus no test case.
* dom/Document.cpp:
(WebCore::Document::write):
(WebCore::Document::writeln):
(WebCore::Document::recalcStyleSelector):
* dom/Document.h:
2008-01-14 Pierre-Luc Beaudoin <pierre-luc.beaudoin@collabora.co.uk>
Reviewed by Alp Toker.
Build fix: missing symbols when compiling WebKit/Gtk+ with --enable-svg-filters
http://bugs.webkit.org/show_bug.cgi?id=16874
* GNUmakefile.am:
* svg/graphics/cairo/SVGResourceFilterCairo.cpp: Added.
(WebCore::SVGResourceFilter::createPlatformData):
(WebCore::SVGResourceFilter::prepareFilter):
(WebCore::SVGResourceFilter::applyFilter):
2008-01-14 Finnur Thorarinsson <finnur.webkit@gmail.com>
Reviewed by hyatt & eseidel.
- fix http://bugs.webkit.org/show_bug.cgi?id=16844
RenderText::addLineBoxRects erroneously includes last char for boundingBox
This patch fixes an issue with addLineBoxRects not correctly calculating the
rects due to an off-by-one error in using box->end(). We were assuming that
end() gives the index past the last character, when in fact it gives the
index _of_ the last character.
Eric Seidel and I could not find a way to test this via DRT. This method is
only used by WebKit or Safari for displaying selection rects AFAICT.
* rendering/RenderText.cpp:
(WebCore::RenderText::addLineBoxRects):
2008-01-14 Darin Adler <darin@apple.com>
Reviewed by Geoff.
- fix crash seen in layout tests
* html/HTMLFrameSetElement.cpp:
(WebCore::HTMLFrameSetElement::attach):
Remove incorrect cast to HTMLElement* for parentNode(). The parent is either an
HTMLElement or a Document, not necessarily an HTMLElement.
2008-01-14 Darin Adler <darin@apple.com>
Reviewed by Sam.
- fix mistakes Sam noticed in my re-speed-up patch
* dom/Element.cpp:
(WebCore::Element::virtualHasTagName): Moved out of header file. No reason to make
this inline.
* dom/Element.h: Moved virtualHasTagName out of header file.
* dom/Node.cpp:
(WebCore::Node::virtualHasTagName): Moved out of header file. No reason to make
this inline.
* dom/Node.h: Removed incorrect "virtual" on hasTagName and moved virtualHasTagName
out of header file.
* platform/text/StringBuffer.h: Added. Has just the new StringBuffer class.
* platform/text/StringImpl.h: Removed StringBuffer class.
* loader/DocumentLoader.cpp: Added StringBuffer.h include.
* platform/text/String.cpp: Ditto.
* platform/text/StringImpl.cpp: Ditto.
* platform/text/TextCodecLatin1.cpp: Ditto.
* platform/text/TextCodecUTF16.cpp: Ditto.
* platform/text/TextCodecUserDefined.cpp: Ditto.
* WebCore.vcproj/WebCore.vcproj: Added StringBuffer.h.
* WebCore.xcodeproj/project.pbxproj: Ditto.
2008-01-14 Dave Hyatt <hyatt@apple.com>
Clean up all the misplaced graphics files after the recent file moves. Clean up the project to
accurately reflect the location of all the graphics files.
Reviewed by Adam
* WebCore.vcproj/WebCore.vcproj:
* platform/graphics/win/GraphicsContextWin.cpp: Copied from platform/win/GraphicsContextWin.cpp.
* platform/graphics/win/UniscribeController.cpp: Copied from platform/win/UniscribeController.cpp.
* platform/graphics/win/UniscribeController.h: Copied from platform/win/UniscribeController.h.
* platform/win/GraphicsContextWin.cpp: Removed.
* platform/win/UniscribeController.cpp: Removed.
* platform/win/UniscribeController.h: Removed.
2008-01-14 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
Some cleanup to my last patch.
Removed one unused setter declaration and one unused setter definition.
Renamed DoNotCheckDomainSecurityOnRead to DoNotCheckDomainSecurityOnGet
because "get" is all over the IDL files, and "read" is not.
* bindings/scripts/CodeGeneratorJS.pm:
* page/DOMWindow.h:
(WebCore::DOMWindow::defaultstatus):
* page/DOMWindow.idl:
2008-01-14 Dan Bernstein <mitz@apple.com>
Rubber-stamped by Alice Liu.
- remove reference to nonexistent file
* WebCore.vcproj/WebCore.vcproj: Removed reference to SVGFont.h.
2008-01-14 Darin Adler <darin@apple.com>
Reviewed by Adam.
- re-speed-up the page load test (my StringImpl change slowed it down)
<rdar://problem/5677241> 1.5% PLT regression from r29098
To reverse the slowdown I caused by changing StringImpl, I tightened it up,
and also did a little optimization in the HTML tokenizer and in other clients
of Vector.
* WebCore.base.exp: Removed export of a now-inline function.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseTransitionProperty): Removed use of DeprecatedString
to get property ID. This could be sped up even more by writing a fast path
to use a local Vector<char> rather than allocating a string.
(WebCore::convertASCIIToFloat): Added. Allows numeric conversion without
allocating a string object to hold the number.
(WebCore::CSSParser::lex): Changed to call convertASCIIToFloat instead of
DeprecatedString::toFloat.
* dom/Element.h:
(WebCore::Element::hasTagName): Made this non-virtual and inline if you have
an Element*. It's still virtual if you have a Node*.
(WebCore::Element::virtualHasTagName): Virtual version that makes the Node*
case work.
* dom/Node.h:
(WebCore::Node::hasTagName): Made this non-virtual and inline so that Element
can override it with an inline. This is the same technique we use for
firstChild and lastChild.
(WebCore::Node::virtualHasTagName): This is the private virtual that Element
overrides.
* dom/Text.cpp:
(WebCore::Text::splitText): Clean up by using a RefPtr here instead of a
PassRefPtr.
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::parseSpecial): Use the new advancePastNonNewline(),
which is more efficient in cases where we know the character is not a newline
and hence we don't have to update the line number.
(WebCore::HTMLTokenizer::parseComment): Ditto.
(WebCore::HTMLTokenizer::parseServer): Ditto.
(WebCore::HTMLTokenizer::parseProcessingInstruction): Ditto.
(WebCore::HTMLTokenizer::parseText): Ditto.
(WebCore::HTMLTokenizer::parseEntity): Ditto.
(WebCore::HTMLTokenizer::parseTag): Ditto. Also streamline the QuotedValue case
so there's one less branch taken for non-punctuation characters since this
code path is *so* hot.
(WebCore::HTMLTokenizer::write): More of the same.
* loader/Cache.cpp:
(WebCore::Cache::lruListFor): Use Vector::grow instead of resize.
* loader/DocumentLoader.cpp:
(WebCore::canonicalizedTitle): Use StringBuffer instead of Vector<UChar>.
* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::checkForCSSCharset): Use Vector::grow instead of resize.
(WebCore::TextResourceDecoder::checkForHeadCharset): Ditto.
(WebCore::TextResourceDecoder::decode): Use Vector::grow and shrink instead of resize.
(WebCore::TextResourceDecoder::flush): Use Vector::shrink instead of resize.
* platform/KURL.cpp:
(WebCore::KURL::decode_string): Use Vector::grow instead of resize.
* platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::clear): Use Vector::shrink instead of resize.
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::cacheFrame): Use Vector::grow instead of resize.
* platform/network/FormData.cpp:
(WebCore::FormData::appendData): Use Vector::grow instead of resize.
(WebCore::FormData::flatten): Ditto.
* platform/text/AtomicString.cpp:
(WebCore::CStringTranslator::translate): Use a new StringImpl constructor made just
for use by AtomicString. Avoids setting fields twice, and also preserves reference
count behavior (which I changed for the other constructors, since they're entirely
private and used only inside the class).
(WebCore::UCharBufferTranslator::translate): Ditto.
* platform/text/Base64.cpp:
(WebCore::base64Encode): Use Vector::grow instead of resize.
(WebCore::base64Decode): Use Vector::grow and shrink instead of resize.
* platform/text/PlatformString.h:
(WebCore::String::adopt): Added an overload for the new StringBuffer class. Also
made both versions inline.
* platform/text/SegmentedString.h:
(WebCore::SegmentedString::advancePastNewline): Added. One less branch for case
where the character is known to be a newline.
(WebCore::SegmentedString::advancePastNonNewline): Added. Less code for case where
the character is known not to be a newline.
* platform/text/String.cpp:
(WebCore::String::append): Use StringBuffer instead of Vector<UChar>.
(WebCore::String::insert): Ditto.
(WebCore::String::truncate): Ditto.
(WebCore::String::remove): Ditto.
(WebCore::String::format): Use Vector::grow instead of resize.
* platform/text/StringImpl.cpp:
(WebCore::StringImpl::StringImpl): Changed constructors to start with a refCount
of 1 instead of 0, and made them all inline. Eliminates the WithOneRef constructor
since they all behave this way now. The only exceptions are the constructors for
AtomicString, which retain the old behavior.
(WebCore::StringImpl::empty): Simplified, since we no longer need to use the
special WithOneRef constructor.
(WebCore::StringImpl::toCoordsArray): Use StringBuffer instead of Vector<UChar>.
(WebCore::StringImpl::lower): Ditto.
(WebCore::StringImpl::upper): Ditto.
(WebCore::StringImpl::secure): Ditto.
(WebCore::StringImpl::foldCase): Ditto.
(WebCore::StringImpl::simplifyWhiteSpace): Ditto. Also change to use Vector::shrink
instead of resize (since half of the function uses Vector<UChar>).
(WebCore::StringImpl::capitalize): Use StringBuffer instead of Vector<UChar>.
(WebCore::StringImpl::replace): Ditto.
(WebCore::StringImpl::ascii): Streamlined a bit.
(WebCore::StringImpl::createStrippingNullCharacters): Use StringBuffer insetad of
Vector<UChar>. Took out checks for null characters and 0 length that aren't needed.
Coded the check for null characters in a slightly more efficient way. Since this
is so hot, didn't call adopt at all, putting the code right in here, including
the call to the StringImpl constructor and adoptRef (for the fast case).
(WebCore::StringImpl::adopt): Added a version for the new StringBuffer class.
Removed the attempt to resize the buffer at the time we adopt based on measuring
actual use and realizing that it's just a character here or there and not worth
a call to fastRealloc. Changed to use adoptRef since the constructor now starts
with a refCount of 1.
(WebCore::StringImpl::create): Changed to use adoptRef since the constructor now
starts with a refCount of 1.
(WebCore::StringImpl::createWithTerminatingNullCharacter): Ditto.
(WebCore::StringImpl::copy): Ditto. Also made non-inline since the constructor
itself is now inline.
* platform/text/StringImpl.h: Added a StringBuffer class that's useful for
putting characters into a buffer before creating an immutable string. Not good
at resizing the way Vector<UChar> is, so only useful for things that rarely need
to be resized. Added a new AdoptBuffer constructor and empty constructor, but
made all constructors private so they can be inlined and only used inside the
StringImpl class. Added two new constructors for AtomicString. Made copy()
no longer inline. Changed the type of the [] operator to unsigned instead of
int and added an assertion. Made the hash functions inline.
* platform/text/TextCodecICU.cpp:
(WebCore::TextCodecICU::encode): Use Vector::grow instead of resize.
* platform/text/TextCodecLatin1.cpp:
(WebCore::TextCodecLatin1::decode): Use StringBuffer instead of Vector<UChar>.
(WebCore::encodeComplexWindowsLatin1): Use Vector::grow instead of resize.
* platform/text/TextCodecUTF16.cpp:
(WebCore::TextCodecUTF16::decode): Use StringBuffer instead of Vector<UChar>.
* platform/text/TextCodecUserDefined.cpp:
(WebCore::TextCodecUserDefined::decode): Use StringBuffer instead of Vector<UChar>.
(WebCore::encodeComplexUserDefined): Use Vector::grow instead of resize.
* platform/text/TextEncoding.cpp:
(WebCore::TextEncoding::encode): Use Vector::grow instead of resize.
* platform/text/TextStream.cpp:
(WebCore::TextStream::operator<<): Use Vector::grow instead of resize.
* platform/text/mac/TextCodecMac.cpp:
(WebCore::TextCodecMac::encode): Use Vector::grow instead of resize.
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::insertSpanCell): Use Vector::grow instead of resize.
* rendering/RenderFrameSet.h:
(WebCore::FrameEdgeInfo::FrameEdgeInfo): Allocate vectors with the correct initial
size instead of calling resize on them after allocating empty.
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::paint): Use Vector::grow instead of resize.
* rendering/RenderStyle.cpp: Removed CursorList::operator==.
* rendering/RenderStyle.h:
(WebCore::CursorList::operator==): Implemented using the Vector ==.
(WebCore::CursorList::operator!=): Ditto.
* rendering/RenderTable.cpp:
(WebCore::RenderTable::splitColumn): Use Vector::grow instead of resize.
(WebCore::RenderTable::appendColumn): Ditto.
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::ensureRows): Use Vector::grow instead of resize.
* rendering/bidi.cpp:
(WebCore::addMidpoint): Use Vector::grow instead of resize.
* xml/XPathNodeSet.h:
(WebCore::XPath::NodeSet::clear): Use Vector::shrink instead of resize.
2008-01-13 Steve Falkenburg <sfalken@apple.com>
Share common files across projects.
Unify vsprops files
Debug: common.vsprops, debug.vsprops
Debug_Internal: common.vsprops, debug.vsprops, debug_internal.vsprops
Release: common.vsprops, release.vsprops
Shared properties can go into common.vsprops, shared debug settings can go into debug.vsprops.
debug_internal.vsprops will be mostly empty except for file path prefix modifiers.
Pull auto-version.sh, VERSION, and PRODUCTVERSION from tools.
Reviewed by Adam Roben.
* WebCore.vcproj/PRODUCTVERSION: Removed.
* WebCore.vcproj/QTMovieWin.vcproj:
* WebCore.vcproj/VERSION: Removed.
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcproj/auto-version.sh: Removed.
* WebCore.vcproj/debug.vsprops: Removed.
* WebCore.vcproj/debug_internal.vsprops: Removed.
* WebCore.vcproj/release.vsprops: Removed.
2008-01-13 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- fix http://bugs.webkit.org/show_bug.cgi?id=16865
fast/layers/resize-layer-deletion-crash.html crashes under GuardMalloc
* rendering/RenderBox.cpp:
(WebCore::RenderBox::destroy): Removed the call to
RenderLayer::destroy() from here, because ~RenderLayer() calls
RenderObject() methods.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::destroy): Added the call to
RenderLayer::destroy() here.
2008-01-13 Eric Seidel <eric@webkit.org>
Reviewed by darin.
Range.insertNode does not update endContainer endIndex correctly
in the case where it had to split a text node.
http://bugs.webkit.org/show_bug.cgi?id=16765
Darin pointed out during review that we still don't handle the dynamic
range case (where the dom tree changes not using range methods)
Thus this code will get ripped out when we add that. The test cases
are still valid and useful however, so I'm landing this as-is.
Tests: fast/dom/Range/range-insertNode-separate-endContainer.html
fast/dom/Range/range-insertNode-splittext.html
* dom/Range.cpp:
(WebCore::Range::insertNode): handle the splitText case correctly.
2008-01-13 Darin Adler <darin@apple.com>
Reviewed by Eric.
- http://bugs.webkit.org/show_bug.cgi?id=16861
get rid of unnecessary string copying
* dom/Document.cpp:
(WebCore::Document::setDomain): Removed unneeded call to copy.
(WebCore::Document::parseQualifiedName): Removed unneeded call to copy, and
unneeded length argument to substring, which stops at the end of the string
if you don't specify a length.
(WebCore::Document::createAttributeNS): Replaced code that was calling copy
with more-efficient code using the substring function.
* dom/StyledElement.cpp:
(WebCore::StyledElement::addCSSColor): Removed unneeded call to copy.
* editing/InsertIntoTextNodeCommand.cpp:
(WebCore::InsertIntoTextNodeCommand::InsertIntoTextNodeCommand): Removed
unneeded copy and also initialized text instead of assigning to it.
(WebCore::InsertIntoTextNodeCommand::doApply): Removed redundant assertions.
(WebCore::InsertIntoTextNodeCommand::doUnapply): Ditto.
* editing/htmlediting.cpp:
(WebCore::stringWithRebalancedWhitespace): Removed unneeded call to copy.
This one was particularly bad since we just turned around and copied it again!
* editing/markup.cpp:
(WebCore::stringValueForRange): Removed unneeded call to copy.
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::performOpenInitialization): Changed logging code to not
get the path from the database object. This was the only reason the database
had to keep its path around.
* platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::open): Use a local variable instead of a data member to
convert the string to a null-terminated one.
(WebCore::SQLiteDatabase::close): Removed the code to clear out m_path.
* platform/sql/SQLiteDatabase.h: Removed the m_path data member and the path
functio member. Also tweaked formatting and comments a bit. Removed the unused
escapeSQLString function.
* platform/text/String.cpp: (WebCore::operator+): Removed uneeded calls to copy.
2008-01-13 Oliver Hunt <oliver@apple.com>
Attempt to fix QT build
* html/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::willDraw):
2008-01-13 Oliver Hunt <oliver@apple.com>
Reviewed by Mark Rowe.
Avoid repainting the entire canvas element when possible.
http://bugs.webkit.org/show_bug.cgi?id=16859
We now only register the dirty regions of a canvas for repainting, rather
than the entire element (though repaint coalescing may choose to combine
these regions). This doesn't cause a measurable regression in the worst
case (clearing the canvas repeatedly), but is a moderate-large win if only
a minor update has occurred. If there is any CSS scaling applied to the
canvas almost any update short of clearing the entire element is substantially
faster.
* html/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::willDraw):
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::willDraw):
2008-01-13 Michael Goddard <michael.goddard@trolltech.com>
Reviewed by Anders Carlsson.
Move RuntimeObjectImp creations into Instance.
Make the ctor protected, and Instance a friend class, so
that all creation of RuntimeObjectImps goes through
one place.
* bindings/js/kjs_dom.cpp:
(WebCore::getRuntimeObject):
2008-01-12 Rodney Dawes <dobey@wayofthemonkey.com>
Gtk debug build fix. Reviewed by Mark Rowe.
Add plugin logging channel, and use it rather than Win32-specific debugging methods _RPTF1 _RPTF2 and _CRT_WARN.
* WebCore.pro: Add plugins directory to DEPENDPATH so dependencies are correctly tracked.
* platform/Logging.cpp:
* platform/Logging.h:
* plugins/PluginDebug.h:
2008-01-12 Adam Barth <hk9565@gmail.com>
Reviewed by Maciej (and also tweaked a little bit).
- more thorough fix for some crashing tests
http://bugs.webkit.org/show_bug.cgi?id=16782
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::urlSelected):
(WebCore::FrameLoader::submitForm):
(WebCore::FrameLoader::executeIfJavaScriptURL):
* loader/FrameLoader.h:
2008-01-12 Maciej Stachowiak <mjs@apple.com>
Reviewed by Sam.
- fixed <rdar://problem/5556374> REGRESSION: cross-domain error when one URL uses an explicit port number and another doesn't
* platform/SecurityOrigin.cpp:
(WebCore::isDefaultPortForProtocol):
(WebCore::SecurityOrigin::SecurityOrigin):
2008-01-11 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Fixed <rdar://problem/5665251> REGRESSION (r28880-r28886): Global
variable access (16644)
Removed the ReadOnly bit from some properties, to match Firefox. Also
removed status-related setters, to allow using their names as variable
names.
* bindings/scripts/CodeGeneratorJS.pm: Added support for properties that
are one-way across domain boundaries, to match Firefox.
* bindings/js/kjs_window.cpp: Changed ReadOnly declarations to match FF.
* bindings/scripts/CodeGeneratorJS.pm: Don't use JSObject:: because
we don't know that JSObject is our base class.
* page/DOMWindow.idl: Replaced lots of readonly declarations with
[Replaceable] declarations.
* page/DOMWindow.h: Removed interfaces for setting status text via the
DOM. (They were getting in the way of, e.g., "var status"
declarations.) By default, IE 7 and FF disable these interfaces in order
to defend against phishing attacks that try to spoof domain names in the
statusbar.
* page/DOMWindow.cpp:
2008-01-11 Anyang Ren <anyang.ren@gmail.com>
Reviewed by Darin Adler.
http://bugs.webkit.org/show_bug.cgi?id=15960
The view source mode should skip an empty attribute value only if
the attribute name is not followed by an equal sign (=).
Test: fast/frames/viewsource-empty-attribute-value.html
* html/HTMLViewSourceDocument.cpp:
(WebCore::HTMLViewSourceDocument::addViewSourceToken):
2008-01-11 Sylvain Pasche <sylvain.pasche@gmail.com>
Reviewed by Alp Toker.
[Gtk] Uneven glyph spacing with subpixel antialiasing
http://bugs.webkit.org/show_bug.cgi?id=16715
Use cairo font options from the default GDK screen when creating a
scaled font.
* platform/graphics/gtk/FontPlatformDataGtk.cpp:
(WebCore::FontPlatformData::FontPlatformData):
2008-01-11 Cameron Zwarich <cwzwarich@uwaterloo.ca>
Reviewed by Maciej.
Added a new forwarding header, because Activation.h has been separated
from function.h
* ForwardingHeaders/kjs/Activation.h: Added.
2008-01-11 Luca Bruno <lethalman88@gmail.com>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=16729
[cURL] Allow multiple files for upload
* platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
* platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandleInternal::~ResourceHandleInternal):
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::readCallback): added
(WebCore::ResourceHandleManager::setupPOST): setup for streaming the POST
(WebCore::ResourceHandleManager::startJob):
(WebCore::ResourceHandleManager::cancel): revert the previous patch for regression
* platform/network/curl/ResourceHandleManager.h:
2008-01-11 Christian Dywan <christian@imendio.com>
Reviewed by Alp Toker.
[Gtk] Menu items need underscores
http://bugs.webkit.org/show_bug.cgi?id=16817
Add underscores to appropriate menu labels.
Also adjust strings slightly.
* platform/gtk/ContextMenuItemGtk.cpp:
(WebCore::ContextMenuItem::createNativeMenuItem):
* platform/gtk/LocalizedStringsGtk.cpp:
(WebCore::searchableIndexIntroduction):
(WebCore::fileButtonChooseFileLabel):
(WebCore::fileButtonNoFileSelectedLabel):
(WebCore::contextMenuItemTagOpenLinkInNewWindow):
(WebCore::contextMenuItemTagDownloadLinkToDisk):
(WebCore::contextMenuItemTagCopyLinkToClipboard):
(WebCore::contextMenuItemTagOpenImageInNewWindow):
(WebCore::contextMenuItemTagDownloadImageToDisk):
(WebCore::contextMenuItemTagCopyImageToClipboard):
(WebCore::contextMenuItemTagOpenFrameInNewWindow):
(WebCore::contextMenuItemTagCopy):
(WebCore::contextMenuItemTagGoBack):
(WebCore::contextMenuItemTagGoForward):
(WebCore::contextMenuItemTagStop):
(WebCore::contextMenuItemTagReload):
(WebCore::contextMenuItemTagCut):
(WebCore::contextMenuItemTagPaste):
(WebCore::contextMenuItemTagIgnoreSpelling):
(WebCore::contextMenuItemTagLearnSpelling):
(WebCore::contextMenuItemTagSearchWeb):
(WebCore::contextMenuItemTagLookUpInDictionary):
(WebCore::contextMenuItemTagOpenLink):
(WebCore::contextMenuItemTagIgnoreGrammar):
(WebCore::contextMenuItemTagSpellingMenu):
(WebCore::contextMenuItemTagShowSpellingPanel):
(WebCore::contextMenuItemTagCheckSpelling):
(WebCore::contextMenuItemTagCheckSpellingWhileTyping):
(WebCore::contextMenuItemTagCheckGrammarWithSpelling):
(WebCore::contextMenuItemTagFontMenu):
(WebCore::contextMenuItemTagBold):
(WebCore::contextMenuItemTagItalic):
(WebCore::contextMenuItemTagUnderline):
(WebCore::contextMenuItemTagOutline):
(WebCore::contextMenuItemTagWritingDirectionMenu):
(WebCore::contextMenuItemTagDefaultDirection):
(WebCore::contextMenuItemTagLeftToRight):
(WebCore::contextMenuItemTagRightToLeft):
(WebCore::contextMenuItemTagInspectElement):
(WebCore::searchMenuClearRecentSearchesText):
2008-01-11 Ada Chan <adachan@apple.com>
<rdar://problem/5681557> On Windows Safari, mouse events are ignored after clicking on link that triggers download
Moved the call to cache page from provisionalLoadStarted() to commitProvisionalLoad(), since
provisionalLoadStarted() can be called for cases that do not result in a page navigation, for example,
when a link to download a file has been clicked.
Reviewed by John and Anders.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::provisionalLoadStarted):
(WebCore::FrameLoader::commitProvisionalLoad):
2008-01-11 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Anders.
<rdar://problem/5683529> plugins/embed-inside-object.html is timing
out/failing
Revert to using FrameTree::find() so that frame aliases like "_self" and
"_current" are interpreted properly
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginViewWin::performRequest):
(WebCore::PluginViewWin::load):
2008-01-11 Alp Toker <alp@atoker.com>
Reviewed by Dave Hyatt and Mark Rowe.
http://bugs.webkit.org/show_bug.cgi?id=16089
[GTK] Support custom fonts, CachedFont::platformDataFromCustomData()
Add support for CSS2 @font-face custom/downloadable fonts to the GTK+
port.
* GNUmakefile.am:
* WebCore.pro:
* loader/CachedFont.cpp:
(WebCore::CachedFont::~CachedFont):
(WebCore::CachedFont::ensureCustomFontData):
(WebCore::CachedFont::platformDataFromCustomData):
(WebCore::CachedFont::allReferencesRemoved):
* platform/graphics/gtk/FontCustomPlatformData.cpp: Added.
(WebCore::FontCustomPlatformData::~FontCustomPlatformData):
(WebCore::FontCustomPlatformData::fontPlatformData):
(WebCore::releaseData):
(WebCore::createFontCustomPlatformData):
* platform/graphics/gtk/FontCustomPlatformData.h: Added.
(WebCore::FontCustomPlatformData::FontCustomPlatformData):
* platform/graphics/gtk/FontPlatformData.h:
* platform/graphics/gtk/FontPlatformDataGtk.cpp:
(WebCore::FontPlatformData::FontPlatformData):
(WebCore::FontPlatformData::init):
(WebCore::FontPlatformData::isFixedPitch):
* platform/graphics/gtk/SimpleFontDataGtk.cpp:
(WebCore::SimpleFontData::platformDestroy):
2008-01-11 Adam Roben <aroben@apple.com>
Remove FrameLoader::committedFirstRealDocumentLoad
This method no longer has any callers.
Reviewed by Hyatt.
* loader/FrameLoader.h:
2008-01-11 Antti Koivisto <antti@apple.com>
Add a standalone version of the blog post video player as a manual test.
* manual-tests/resources/touch-poster.png: Added.
* manual-tests/video-player.html: Added.
2008-01-10 Antti Koivisto <antti@apple.com>
Reviewed by Adam.
Fix <rdar://problem/5682767>
Video does not show up in http://webkit.org/blog/140/html5-media-support/ on Windows
Take care that GWorld is created and deletes when needed as size or visibility changes.
* platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
(WebCore::MediaPlayerPrivate::load):
* platform/graphics/win/QTMovieWin.cpp:
(QTMovieWinPrivate::QTMovieWinPrivate):
(QTMovieWinPrivate::updateGWorld):
(QTMovieWinPrivate::setSize):
(QTMovieWin::setVisible):
(QTMovieWin::initializeQuickTime):
2008-01-11 David Hyatt <hyatt@apple.com>
Fix for bug 11188, setting hspace on a table overrides align=center. Fix align=center to be done using
mapped attributes so that it does not get overridden by hspace all the time.
Reviewed by mitz
Added fast/table/table-hspace-align-center.html
* css/html4.css:
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::parseMappedAttribute):
2008-01-11 Mark Rowe <mrowe@apple.com>
Qt build fix.
* platform/qt/TemporaryLinkStubs.cpp: Include CString.h.
2008-01-11 Mark Rowe <mrowe@apple.com>
Qt build fix. Add link stubs for the new FileSystem.h functions introduced
in r29399.
* platform/qt/TemporaryLinkStubs.cpp:
(WebCore::openTemporaryFile):
2008-01-11 Rodney Dawes <dobey@wayofthemonkey.com>
Reviewed by Anders Carlsson.
Bug 16779: Make the PluginStream implementation be shared across platforms
http://bugs.webkit.org/show_bug.cgi?id=16779
Add the new shared PluginStream files to the GTK+ and Win32 builds.
Add PluginStreamClient class for the streamDidFinishLoading method.
Add open/close/write methods to FileSystem for temporary file handling.
Add PluginDebug.h and npfunctions.h for shared PluginStream.
Add shared PluginStream.
Remove PluginStreamWin.
Update PluginViewWin to use shared PluginStream and PluginStreamClass.
* GNUmakefile.am:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* platform/FileSystem.h:
* platform/gtk/FileSystemGtk.cpp:
* platform/win/FileSystemWin.cpp:
* plugins/PluginDebug.h:
* plugins/PluginStream.cpp:
* plugins/PluginStream.h:
* plugins/npfunctions.h:
* plugins/win/PluginDebug: Moved to PluginDebug.h.
* plugins/win/PluginStreamWin.cpp: Moved to PluginStream.cpp.
* plugins/win/PluginStreamWin.h: Moved to PluginStream.h
* plugins/win/PluginViewWin.cpp:
* plugins/win/PluginViewWin.h:
* plugins/win/npfunctions.h: Moved to npfunctions.h
2008-01-11 Geoffrey Garen <ggaren@apple.com>
Try to fix Mac build: Edit the right .exp file.
* WebCore.base.exp:
2008-01-11 Geoffrey Garen <ggaren@apple.com>
Try to fix Qt build: don't use pthreads if they're not available.
* bindings/js/GCController.cpp:
2008-01-10 Geoffrey Garen <ggaren@apple.com>
Reviewed by John Sullivan.
Fixed some world leak reports:
* <rdar://problem/5669436> PLT complains about world leak of 1 JavaScript
Interpreter after running cvs-base suite
* <rdar://problem/5669423> PLT complains about world leak if browser
window is open when PLT starts
These were both bugs in the reporting mechanism, so I took the
opportunity to do some house cleaning there.
Stupid class, I kill you:
* bridge/JavaScriptStatistics.cpp: Removed.
* bridge/JavaScriptStatistics.h: Removed.
* bindings/js/GCController.h: Adopted the only useful features of
JavaScriptStatistics, since they were GC-related.
* bindings/js/GCController.cpp:
2008-01-10 Eric Seidel <eric@webkit.org>
Reviewed by Adele.
No functional changes, only code cleanup.
* css/MediaQueryEvaluator.cpp:
(WebCore::compareValue): renamed from cmpvalue
(WebCore::colorMediaFeatureEval):
(WebCore::device_aspect_ratioMediaFeatureEval):
(WebCore::device_pixel_ratioMediaFeatureEval):
(WebCore::gridMediaFeatureEval):
(WebCore::device_heightMediaFeatureEval):
(WebCore::device_widthMediaFeatureEval):
(WebCore::heightMediaFeatureEval):
(WebCore::widthMediaFeatureEval):
2008-01-10 Dan Bernstein <mitz@apple.com>
Reviewed by Anders Carlsson.
- fix a crash when calling alert() from a repeating timer
On non-Mac platforms, the PageGroupLoadDeferrer pauses DOM timers during
alert() and other similar functions, which deletes the actual
DOMWindowTimer objects and replaces them with new objects when resuming.
* bindings/js/kjs_window.cpp:
(KJS::Window::timerFired): Re-fetch the timer object from the map in
case it has been deleted or replaced.
2008-01-10 Maciej Stachowiak <mjs@apple.com>
Reviewed by Sam.
- remove SecurityOriginData and fold its functionality into SecurityOrigin
* GNUmakefile.am:
* WebCore.base.exp:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::postMessage):
* dom/Document.cpp:
(WebCore::Document::domain):
* page/Chrome.cpp:
(WebCore::Chrome::requestQuotaIncreaseForNewDatabase):
(WebCore::Chrome::requestQuotaIncreaseForDatabaseOperation):
* page/Chrome.h:
* page/ChromeClient.h:
* platform/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::copy):
(WebCore::SecurityOrigin::createFromIdentifier):
(WebCore::SecurityOrigin::stringIdentifier):
* platform/SecurityOrigin.h:
(WebCore::SecurityOrigin::host):
(WebCore::SecurityOrigin::protocol):
(WebCore::SecurityOrigin::port):
(WebCore::SecurityOrigin::equal):
* platform/SecurityOriginData.cpp: Removed.
* platform/SecurityOriginData.h: Removed.
* storage/Database.cpp:
(WebCore::Database::openDatabase):
(WebCore::Database::Database):
(WebCore::Database::securityOriginCopy):
* storage/Database.h:
* storage/DatabaseTracker.cpp:
(WebCore::SecurityOriginHash::hash):
(WebCore::SecurityOriginHash::equal):
(WebCore::SecurityOriginTraits::deletedValue):
(WebCore::SecurityOriginTraits::emptyValue):
(WebCore::DatabaseTracker::canEstablishDatabase):
(WebCore::DatabaseTracker::hasEntryForOrigin):
(WebCore::DatabaseTracker::hasEntryForDatabase):
(WebCore::DatabaseTracker::establishEntryForOrigin):
(WebCore::DatabaseTracker::fullPathForDatabase):
(WebCore::DatabaseTracker::populateOrigins):
(WebCore::DatabaseTracker::origins):
(WebCore::DatabaseTracker::databaseNamesForOrigin):
(WebCore::DatabaseTracker::detailsForNameAndOrigin):
(WebCore::DatabaseTracker::setDatabaseDetails):
(WebCore::DatabaseTracker::usageForDatabase):
(WebCore::DatabaseTracker::usageForOrigin):
(WebCore::DatabaseTracker::quotaForOrigin):
(WebCore::DatabaseTracker::setQuota):
(WebCore::DatabaseTracker::addDatabase):
(WebCore::DatabaseTracker::deleteAllDatabases):
(WebCore::DatabaseTracker::deleteDatabasesWithOrigin):
(WebCore::DatabaseTracker::deleteDatabase):
(WebCore::DatabaseTracker::deleteDatabaseFile):
(WebCore::notificationQueue):
(WebCore::DatabaseTracker::scheduleNotifyDatabaseChanged):
(WebCore::DatabaseTracker::notifyDatabasesChanged):
* storage/DatabaseTracker.h:
* storage/DatabaseTrackerClient.h:
* storage/SQLTransaction.cpp:
(WebCore::SQLTransaction::openTransactionAndPreflight):
(WebCore::SQLTransaction::runStatements):
(WebCore::SQLTransaction::deliverQuotaIncreaseCallback):
(WebCore::SQLTransaction::postflightAndCommit):
(WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):
* svg/graphics/SVGImageEmptyClients.h:
(WebCore::SVGEmptyChromeClient::requestQuotaIncreaseForNewDatabase):
(WebCore::SVGEmptyChromeClient::requestQuotaIncreaseForDatabaseOperation):
2008-01-10 Anders Carlsson <andersca@apple.com>
Reviewed by Sam.
Use the correct frame loader load method. Using the old method would not cause a
new window to be open if the frame navigation was not allowed.
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginViewWin::performRequest):
2008-01-10 Alp Toker <alp@atoker.com>
SVG font build fix for GTK+/autotools.
* GNUmakefile.am:
2008-01-10 Adam Barth <hk9565@gmail.com>
Reviewed by Sam Weinig and Anders Carlsson.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=16522
<rdar://problem/5657355>
This patch makes two changes:
1) Java calls FrameLoader::load in a slightly different way than
JavaScript, which previously let a malicious web site bypass the
shouldAllowNavigation check. This patch adds that check to that
code path.
2) FrameLoader now wraps calls to m_frame->tree()->find(name) with
findFrameForNavigation, which calls shouldAllowNavigation. This
treats disallowed frame navigations as if the named frame did not
exist, resulting in a popup window when appropriate.
Tests: http/tests/security/frameNavigation/xss-DENIED-plugin-navigation.html
http/tests/security/frameNavigation/xss-DENIED-targeted-link-navigation.html
* WebCore.base.exp:
* bindings/js/kjs_window.cpp:
(KJS::WindowProtoFuncOpen::callAsFunction):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::createWindow):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::post):
(WebCore::FrameLoader::findFrameForNavigation):
* loader/FrameLoader.h:
2008-01-10 John Sullivan <sullivan@apple.com>
Written by Hyatt, reviewed by me
- fixed <rdar://problem/5654297> Mail crashes occurs at WebCore::FontFallbackList::fontDataAt() when attempting to display
a <video> element that uses controls attribute
* rendering/MediaControlElements.cpp:
(WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement):
force the render style to inherit from the media element's style; Hyatt filed 5682383 to cover cleaning
up this architecture, but this one-line fix will prevent the crash in the meantime
2008-01-10 Ada Chan <adachan@apple.com>
Fix fast/forms/input-radio-checked-tab.html
Meta key is not the same as Alt key on windows.
Reviewed by Darin.
* platform/win/KeyEventWin.cpp:
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2008-01-10 Anders Carlsson <andersca@apple.com>
Reviewed by Jon.
Fix an assert that would happen when a plug-in tries to load a URL while a provisional load is going.
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginViewWin::performRequest):
Move document loader check here since we don't start loading until here and a new document load could have started in the meantime.
(WebCore::PluginViewWin::requestTimerFired):
Don't leak the plugin requests.
(WebCore::PluginViewWin::load):
2008-01-10 Anders Carlsson <andersca@apple.com>
Reviewed by John Sullivan.
<rdar://problem/5455889>
REGRESSION: BumperCar crashes when attempting to load a long invalid URL
Make sure to call FrameLoader::receivedMainResourceError before calling
FrameLoader::didFailToLoad. The call to receivedMainResourceError takes care of
clearing out the provisional document loader so that we won't call the didFail
ResourceLoadDelegate method twice. This also makes us call the FrameLoadDelegate method
didFailPrivisionalLoad before calling the ResourceLoadDelegate method, which Safari 2.0 does.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::receivedError):
2008-01-10 Antti Koivisto <antti@apple.com>
Reviewed by Adele.
Fix <rdar://problem/5658048>
After <video> has finished playing, dragging the scroller on different location of controller starts to play movie
- Move to paused state if the playback had ended and the controller is used to seek to earlier time
- Pause video playback during drag so the knob does not constantly try to escape from the mouse pointer
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::updateMediaPlayer):
(WebCore::HTMLMediaElement::setPausedInternal):
* html/HTMLMediaElement.h:
* rendering/MediaControlElements.cpp:
(WebCore::MediaControlTimelineElement::defaultEventHandler):
2008-01-10 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Adam Roben.
<rdar://problem/5667003> fast/dom/xmlhttprequest-html-response-encoding.html is failing
* xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::send): Do not disable sniffing for file://
requests, as CFNetwork doesn't perform extension to MIME type mapping then.
2008-01-10 Adam Roben <aroben@apple.com>
Fixes to allow multiple FrameViews on Windows
Reviewed by Hyatt.
* page/FrameView.cpp:
(WebCore::FrameView::FrameView): Added a new constructor that takes an
IntSize to specify the FrameView's initial size.
(WebCore::FrameView::scheduleRelayout): Added an assertion that our
Document is not in the page cache.
* page/FrameView.h:
* platform/gtk/WidgetGtk.cpp:
(WebCore::Widget::~Widget): Add a warm, fuzzy ASSERT.
* platform/qt/WidgetQt.cpp:
(WebCore::Widget::~Widget): Ditto.
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::setWidget): Make sure to remove any existing
Widget from the Widget hierarchy before deleting it. One instance
where this is needed is when setWidget is called during FrameView
creation on Windows.
2008-01-10 Alp Toker <alp@atoker.com>
Include math.h to get ceilf(). Part of the SVG font GTK+ build fix.
* svg/SVGFontFaceElement.cpp:
2008-01-10 Justin Garcia <justin.garcia@apple.com>
Reviewed by Alice Liu.
<rdar://problem/5658603> Crash in InsertNodeBefore::doUnapply() on Undo in Yahoo Mail
<rdar://problem/5658709> Crash in RenderView::setSelection on Undo in Yahoo Mail
Make sure we have an updated layout before we perform any editing work.
* editing/EditCommand.cpp:
(WebCore::EditCommand::apply):
(WebCore::EditCommand::unapply):
(WebCore::EditCommand::reapply):
2008-01-10 Luca Bruno <lethalman88@gmail.com>
Reviewed by Alp Toker.
Back out r29206 which was causing regressions in curl http job
cancellation.
* platform/network/curl/ResourceHandleManager.cpp
(ResourceHandleManager::cancel):
2008-01-10 Kevin McCullough <kmccullough@apple.com>
Reviewed by Darin, Sam, and Adam.
- <rdar://problem/5654486> REGRESSION (Safari 3.0.4-TOT): clicking on
- link in gmail message displays JavaScript alert falsely complaining
about pop-up blocking
- When trying to open a new window, we now see if the user gesture
occurred in the global dynamic object instead of the frame since that is
the only place an event can occur.
* bindings/js/kjs_window.cpp: - Check the dynamic global object instead
of the frame.
(KJS::allowPopUp):
(KJS::showModalDialog):
(KJS::WindowProtoFuncOpen::callAsFunction):
2008-01-10 David Hyatt <hyatt@apple.com>
Fix for bug 16247, visibility:hidden not honored when hit testing inline replaced elements.
Reviewed by adele
Added fast/css/visibility-hit-test.html test case.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::nodeAtPoint):
2008-01-10 Lars Knoll <lars@trolltech.com>
Reviewed by Simon.
rename QWebPageHistory to QWebHistory.
* WebCore.pro:
2008-01-10 Lars Knoll <lars@trolltech.com>
Reviewed by Simon.
fix the drawing errors that where introduced due to refactoring.
Correctly clip to the rectangle we want to draw in ScrollView::paint().
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::paint):
2008-01-10 Simon Hausmann <hausmann@webkit.org>
Reviewed by Lars.
Temporarily disable gzip decompression in qhttp due to a bug.
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
2008-01-10 Simon Hausmann <hausmann@webkit.org>
Reviewed by Lars.
http://bugs.webkit.org/show_bug.cgi?id=16588
Added a (last) Frame argument to ResourceHandle::loadResourceSynchronously.
This allows implementing the synchronous loading correctly for the Qt port where the networking
backend is bound to the page.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadResourceSynchronously):
* platform/network/ResourceHandle.h:
* platform/network/cf/ResourceHandleCFNet.cpp:
* platform/network/curl/ResourceHandleCurl.cpp:
* platform/network/mac/ResourceHandleMac.mm:
* platform/network/qt/ResourceHandleQt.cpp:
(WebCore::ResourceHandle::loadResourceSynchronously):
2008-01-10 Kevin Ollivier <kevino@theolliviers.com>
wx build fix for changes in r29328
* WebCoreSources.bkl:
2008-01-09 Maciej Stachowiak <mjs@apple.com>
Reviewed by Sam.
- refactor SecurityOrigin in preparation for merging with SecurityOriginData
* platform/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::SecurityOrigin):
(WebCore::SecurityOrigin::create):
(WebCore::SecurityOrigin::createForFrame):
* platform/SecurityOrigin.h:
2008-01-09 Ada Chan <adachan@apple.com>
Tabs with ctrl, meta, or altgraph modifier key down should not advance focus.
Reviewed by Darin.
Test: fast/forms/tabs-with-modifiers.html
* page/EventHandler.cpp:
(WebCore::EventHandler::defaultKeyboardEventHandler):
(WebCore::EventHandler::defaultTabEventHandler): bail if ctrl, meta, or altgraph key is down.
Clean up the code a bit.
* page/EventHandler.h:
* page/FocusController.cpp: Remove the advanceFocus() that takes in a KeyboardEvent. It was
only called in EventHandler::defaultTabEventHandler() but we have cleaned up the code there and
no longer needs it.
* page/FocusController.h:
2008-01-09 Antti Koivisto <antti@apple.com>
Reviewed by Mitz.
Fix http://bugs.webkit.org/show_bug.cgi?id=16376
<rdar://problem/5665206>
<video> element fails to play frames when navigating back to page (16376)
Don't make MediaPlayer visible when it is actually in page cache.
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::updatePlayer):
2008-01-09 Anders Carlsson <andersca@apple.com>
Reviewed by Darin.
<rdar://problem/5532361>
CrashTracer: 9840 crashes in Safari at com.apple.JavaScriptCore: KJS::Bindings::CInstance::~CInstance [in-charge deleting] + 35
Clear the frame's plugin root objects so that they don't outlive the plugin bundle.
* page/Frame.cpp:
(WebCore::Frame::pageDestroyed):
2008-01-09 John Sullivan <sullivan@apple.com>
Reviewed by Adam Roben and Anders Carlsson
- fixed <rdar://problem/5469398> Repro assertion failure in context menu code due to
missing-but-expected Reload item
* platform/ContextMenu.cpp:
(WebCore::ContextMenu::populate):
use isLoadingInAPISense when deciding whether to include Stop or Reload in context
menu, to match the WebKit API
2008-01-09 Mark Rowe <mrowe@apple.com>
Fix Windows debug build for opensource developers.
* WebCore.vcproj/QTMovieWin.vcproj: Use the correct library suffix.
2007-10-01 Allan Sandfeld Jensen <sandfeld@kde.org>
Reworked by Eric, Reviewed by Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=9454
Add support for :lang inheritance and xml:lang support.
Tests: fast/selectors/lang-inheritance.html
fast/selectors/lang-inheritance2.html
fast/selectors/lang-vs-xml-lang.html
fast/selectors/lang-vs-xml-lang-xhtml.xhtml
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::canShareStyleWithElement): Do not share style between elements with
different LANG-attribute.
(WebCore::CSSStyleSelector::checkOneSelector): Change :lang() to recursively check the LANG attribute
for all the elements parents and the content-language of the document.
* dom/Document.cpp:
(WebCore::Document::processHttpEquiv): Parse MIME Content-Language
* dom/Document.h:
(WebCore::Document::contentLanguage):
(WebCore::Document::setContentLanguage):
2008-01-08 Timothy Hatcher <timothy@apple.com>
Reviewed by Brady.
Bug 16678: Unreproducible crash in KJS::JSObject::inherits() after using Web Inspector
http://bugs.webkit.org/show_bug.cgi?id=16678
Add a NULL check for controller before calling JSObjectSetPrivate.
* page/InspectorController.cpp:
(WebCore::InspectorController::~InspectorController):
2008-01-08 Xan Lopez <xan@gnome.org>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=15610
[GTK] Text rendering using Pango
Use Pango to render Complex path text.
* platform/graphics/gtk/FontGtk.cpp:
(WebCore::utf16_to_utf8):
(WebCore::convertUniCharToUTF8):
(WebCore::setPangoAttributes):
(WebCore::Font::drawGlyphs):
(WebCore::Font::drawComplexText):
(WebCore::Font::floatWidthForComplexText):
(WebCore::Font::offsetForPositionForComplexText):
2008-01-08 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin Adler.
<rdar://problem/5665860> With the web inspector displayed, a crash occurs
at WebCore::Frame::document() when navigating back to previous page
This fixes the crash, but the inspector was totally broken with back/forward.
So this also fixes back/forward navigation so the right main resource shows
up in the inspector.
* page/InspectorController.cpp:
(WebCore::addSourceToFrame): Add some null checks for the frame when
getting the textEncoding. This was the crash.
(WebCore::InspectorController::addScriptResource): Create a script object
only if needed, and always add it by calling addResource.
(WebCore::InspectorController::didCommitLoad): Check if the loader is
loading from the page cache, and clear m_mainResource. If the load is
normal, then call addAndUpdateScriptResource with the main resource.
(WebCore::InspectorController::identifierForInitialRequest): If the load
is from the page cache and the resource is the main resource call
addAndUpdateScriptResource since didCommitLoad did not do it.
2008-01-08 Alp Toker <alp@atoker.com>
Back out VIDEO by default in the GTK+ qmake build. The build bot
doesn't have the necessary libraries installed.
* WebCore.pro:
2008-01-08 Alp Toker <alp@atoker.com>
Win build fix for breakage introduced in r29328.
* WebCore.vcproj/WebCore.vcproj:
2008-01-08 Alp Toker <alp@atoker.com>
Rubber-stamped by Mark Rowe.
Enable VIDEO by default in the GTK+ qmake build.
* WebCore.pro:
2008-01-08 Alp Toker <alp@atoker.com>
GTK+ VIDEO build fix for breakage introduced in r29328.
Issue noticed by Ori_B.
* GNUmakefile.am:
* WebCore.pro:
2008-01-08 Antti Koivisto <antti@apple.com>
Reviewed by Darin.
HTMLAudioElement needs generated constructor. Otherwise video instanceof HTMLAudioElement is true which is
bit strange.
Renamed custom constructor JSHTMLAudioElementConstructor to JSAudioConstructor to avoid name clashes.
Test: media/constructors.html
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSAudioConstructor.cpp: Copied from WebCore/bindings/js/JSHTMLAudioElementConstructor.cpp.
(WebCore::JSAudioConstructor::JSAudioConstructor):
(WebCore::JSAudioConstructor::implementsConstruct):
(WebCore::JSAudioConstructor::construct):
* bindings/js/JSAudioConstructor.h: Copied from WebCore/bindings/js/JSHTMLAudioElementConstructor.h.
* bindings/js/JSHTMLAudioElementConstructor.cpp: Removed.
* bindings/js/JSHTMLAudioElementConstructor.h: Removed.
* bindings/js/kjs_window.cpp:
(KJS::Window::getValueProperty):
* html/HTMLAudioElement.idl:
2008-01-08 Anders Carlsson <andersca@apple.com>
Reviewed by Mitz.
Don't add the applet widget to the view, that's done later by RenderApplet.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::createJavaAppletWidget):
2008-01-08 Antti Koivisto <antti@apple.com>
Reviewed by Weinig.
Add security check for Audio constructor.
* bindings/js/kjs_window.cpp:
(KJS::Window::getValueProperty):
2008-01-08 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam Roben.
<rdar://problem/5676515> List of scripts and images missing when opening Web Inspector from new window (16567)
InspectorController::didLoadResourceFromMemoryCache was not being called for
resources that loaded from the memory cache that the FrameLoader's client
has already been notified about. This fix always calls the InspectorController
when loading a memory cached resource. No test possible for the Web Inspector.
* loader/DocLoader.cpp:
(WebCore::DocLoader::checkCacheObjectStatus): Moved most of the logic to
FrameLoader::loadedResourceFromMemoryCache so the InspectorController can always be notified.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::didTellClientAboutLoad): Renamed from didTellBridgeAboutLoad.
(WebCore::FrameLoader::haveToldClientAboutLoad): Renamed from haveToldBridgeAboutLoad.
(WebCore::FrameLoader::loadResourceSynchronously): Call the renamed didTellClientAboutLoad.
(WebCore::FrameLoader::loadedResourceFromMemoryCache): Only takes a CachedResource now.
Always call InspectorController. If the resource's sendResourceLoadCallbacks is false or
didTellClientAboutLoad is true, do an early return. Otherwise call the client and call
didTellClientAboutLoad.
(WebCore::FrameLoader::dispatchDidLoadResourceFromMemoryCache): Removed, work now done
in FrameLoader::loadedResourceFromMemoryCache.
* loader/FrameLoader.h: Renamed {didTell,haveTold}BridgeAboutLoad to {didTell,haveTold}ClientAboutLoad.
Made loadedResourceFromMemoryCache only take a CachedResource. Renamed m_urlsBridgeKnowsAbout to
m_urlsClientKnowsAbout.
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::load): Call the renamed didTellClientAboutLoad.
2008-01-08 Dan Bernstein <mitz@apple.com>
Rubber-stamped by Sam Weinig.
- prefix all member variables in CSSStyleSelector with m_
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::CSSStyleSelector):
(WebCore::CSSStyleSelector::init):
(WebCore::CSSStyleSelector::setEncodedURL):
(WebCore::CSSStyleSelector::loadDefaultStyle):
(WebCore::CSSStyleSelector::matchRules):
(WebCore::CSSStyleSelector::matchRulesForList):
(WebCore::CSSStyleSelector::initElementAndPseudoState):
(WebCore::CSSStyleSelector::initForStyleResolve):
(WebCore::CSSStyleSelector::canShareStyleWithElement):
(WebCore::CSSStyleSelector::locateSharedStyle):
(WebCore::CSSStyleSelector::matchUARules):
(WebCore::CSSStyleSelector::styleForElement):
(WebCore::CSSStyleSelector::pseudoStyleForElement):
(WebCore::CSSStyleSelector::updateFont):
(WebCore::CSSStyleSelector::cacheBorderAndBackground):
(WebCore::CSSStyleSelector::checkSelector):
(WebCore::CSSStyleSelector::checkOneSelector):
(WebCore::CSSStyleSelector::applyProperty):
(WebCore::CSSStyleSelector::mapBackgroundImage):
(WebCore::CSSStyleSelector::mapBackgroundSize):
(WebCore::CSSStyleSelector::mapBackgroundXPosition):
(WebCore::CSSStyleSelector::mapBackgroundYPosition):
(WebCore::CSSStyleSelector::checkForTextSizeAdjust):
(WebCore::CSSStyleSelector::getColorFromPrimitiveValue):
* css/CSSStyleSelector.h:
(WebCore::CSSStyleSelector::):
(WebCore::CSSRuleData::CSSRuleData):
(WebCore::CSSRuleDataList::CSSRuleDataList):
(WebCore::CSSRuleDataList::append):
* css/SVGCSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applySVGProperty):
* rendering/RenderStyle.cpp:
(WebCore::RenderStyle::isStyleAvailable):
2008-01-08 David D. Kilzer <ddkilzer@apple.com>
Removed unnecessary files from Copy Bundle Resources build phase.
Reviewed by Sam.
* WebCore.xcodeproj/project.pbxproj: Files removed from build phase:
DOMCoreException.idl
EventException.idl
MessageEvent.idl
SVGAElement.idl
SVGAngle.idl
SVGAnimateColorElement.idl
SVGAnimateElement.idl
SVGAnimateTransformElement.idl
SVGAnimatedAngle.idl
SVGAnimatedBoolean.idl
SVGAnimatedEnumeration.idl
SVGAnimatedInteger.idl
SVGAnimatedLength.idl
SVGAnimatedLengthList.idl
SVGAnimatedNumber.idl
SVGAnimatedNumberList.idl
SVGAnimatedPathData.idl
SVGAnimatedPoints.idl
SVGAnimatedPreserveAspectRatio.idl
SVGAnimatedRect.idl
SVGAnimatedString.idl
SVGAnimatedTransformList.idl
SVGAnimationElement.idl
SVGCSSPropertyNames.in
SVGCSSValueKeywords.in
SVGCircleElement.idl
SVGClipPathElement.idl
SVGColor.idl
SVGComponentTransferFunctionElement.idl
SVGCursorElement.idl
SVGDefinitionSrcElement.idl
SVGDefsElement.idl
SVGDescElement.idl
SVGDocument.idl
SVGElement.idl
SVGElementInstance.idl
SVGElementInstanceList.idl
SVGEllipseElement.idl
SVGException.idl
SVGExternalResourcesRequired.idl
SVGFEBlendElement.idl
SVGFEColorMatrixElement.idl
SVGFEComponentTransferElement.idl
SVGFECompositeElement.idl
SVGFEDiffuseLightingElement.idl
SVGFEDisplacementMapElement.idl
SVGFEDistantLightElement.idl
SVGFEFloodElement.idl
SVGFEFuncAElement.idl
SVGFEFuncBElement.idl
SVGFEFuncGElement.idl
SVGFEFuncRElement.idl
SVGFEGaussianBlurElement.idl
SVGFEImageElement.idl
SVGFEMergeElement.idl
SVGFEMergeNodeElement.idl
SVGFEOffsetElement.idl
SVGFEPointLightElement.idl
SVGFESpecularLightingElement.idl
SVGFESpotLightElement.idl
SVGFETileElement.idl
SVGFETurbulenceElement.idl
SVGFilterElement.idl
SVGFilterPrimitiveStandardAttributes.idl
SVGFitToViewBox.idl
SVGFontElement.idl
SVGFontFaceElement.idl
SVGFontFaceFormatElement.idl
SVGFontFaceNameElement.idl
SVGFontFaceSrcElement.idl
SVGFontFaceUriElement.idl
SVGForeignObjectElement.idl
SVGGElement.idl
SVGGlyphElement.idl
SVGGradientElement.idl
SVGImageElement.idl
SVGLangSpace.idl
SVGLength.idl
SVGLengthList.idl
SVGLineElement.idl
SVGLinearGradientElement.idl
SVGLocatable.idl
SVGMarkerElement.idl
SVGMaskElement.idl
SVGMatrix.idl
SVGMetadataElement.idl
SVGMissingGlyphElement.idl
SVGNumber.idl
SVGNumberList.idl
SVGPaint.idl
SVGPathElement.idl
SVGPathSeg.idl
SVGPathSegArcAbs.idl
SVGPathSegArcRel.idl
SVGPathSegClosePath.idl
SVGPathSegCurvetoCubicAbs.idl
SVGPathSegCurvetoCubicRel.idl
SVGPathSegCurvetoCubicSmoothAbs.idl
SVGPathSegCurvetoCubicSmoothRel.idl
SVGPathSegCurvetoQuadraticAbs.idl
SVGPathSegCurvetoQuadraticRel.idl
SVGPathSegCurvetoQuadraticSmoothAbs.idl
SVGPathSegCurvetoQuadraticSmoothRel.idl
SVGPathSegLinetoAbs.idl
SVGPathSegLinetoHorizontalAbs.idl
SVGPathSegLinetoHorizontalRel.idl
SVGPathSegLinetoRel.idl
SVGPathSegLinetoVerticalAbs.idl
SVGPathSegLinetoVerticalRel.idl
SVGPathSegList.idl
SVGPathSegMovetoAbs.idl
SVGPathSegMovetoRel.idl
SVGPatternElement.idl
SVGPoint.idl
SVGPointList.idl
SVGPolygonElement.idl
SVGPolylineElement.idl
SVGPreserveAspectRatio.idl
SVGRadialGradientElement.idl
SVGRect.idl
SVGRectElement.idl
SVGRenderingIntent.idl
SVGSVGElement.idl
SVGScriptElement.idl
SVGSetElement.idl
SVGStopElement.idl
SVGStringList.idl
SVGStylable.idl
SVGStyleElement.idl
SVGSwitchElement.idl
SVGSymbolElement.idl
SVGTRefElement.idl
SVGTSpanElement.idl
SVGTests.idl
SVGTextContentElement.idl
SVGTextElement.idl
SVGTextPathElement.idl
SVGTextPositioningElement.idl
SVGTitleElement.idl
SVGTransform.idl
SVGTransformList.idl
SVGTransformable.idl
SVGURIReference.idl
SVGUnitTypes.idl
SVGUseElement.idl
SVGViewElement.idl
SVGViewSpec.idl
SVGZoomAndPan.idl
SVGZoomEvent.idl
XMLHttpRequestException.idl
XPathException.idl
character-sets.txt
mac-encodings.txt
make-charset-table.pl
svgattrs.in
svgtags.in
xlinkattrs.in
2008-01-08 Luca Bruno <lethalman88@gmail.com>
Reviewed by Alp Toker.
Support copying the selected URL to the clipboard.
* platform/gtk/PasteboardGtk.cpp:
(WebCore::Pasteboard::writeURL): implemented
2008-01-08 David D. Kilzer <ddkilzer@webkit.org>
Renamed CharacterData::m_str to m_data
Rubber-stamped by Adam again.
No test cases added since there is no change in behavior.
* dom/CDATASection.cpp:
* dom/CharacterData.cpp:
(WebCore::CharacterData::CharacterData):
(WebCore::CharacterData::setData):
(WebCore::CharacterData::substringData):
(WebCore::CharacterData::appendData):
(WebCore::CharacterData::insertData):
(WebCore::CharacterData::deleteData):
(WebCore::CharacterData::replaceData):
(WebCore::CharacterData::nodeValue):
(WebCore::CharacterData::containsOnlyWhitespace):
(WebCore::CharacterData::dispatchModifiedEvent):
(WebCore::CharacterData::checkCharDataOperation):
(WebCore::CharacterData::dump):
* dom/CharacterData.h:
* dom/Comment.cpp:
* dom/Text.cpp:
(WebCore::Text::splitText):
(WebCore::Text::createRenderer):
(WebCore::Text::recalcStyle):
2008-01-08 Steve Falkenburg <sfalken@apple.com>
Fix a couple of compiler warnings.
Reviewed by Mitz.
* platform/win/ThreadingWin.cpp:
* platform/win/UniscribeController.cpp: Remove unused function.
(WebCore::UniscribeController::advance): Fix bogus warning about un-initialized variable.
2008-01-08 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Fix for <rdar://problem/5674667> fast/forms/slider-mouse-events.html is broken by media control checkin 29257
* rendering/RenderSlider.cpp: (WebCore::HTMLSliderThumbElement::defaultEventHandler):
After fixing a bug in EventHandler to make sure events always go to the capturing node, this bug was exposed.
MouseMove and MouseUp events were going to the thumb element, but not to the slider input element.
This change makes the input element the capturing node, and then the input element forwards the mouse events to the thumb element.
I also added a missing call to setDefaultHandled for the mousemove event.
2008-01-08 Adele Peterson <adele@apple.com>
Reviewed by Adam.
* rendering/RenderThemeSafari.cpp: Use the SafariTheme version number to decide whether or not to
paint the media controls in RenderThemeSafari.
2008-01-08 Oliver Hunt <oliver@apple.com>
Reviewed by Adele and John.
Fix <rdar://problem/5652740> Crash occurs at WebCore::Widget::getView() after
dragging file into window that contains web page ( http://www.econocraft.com/flood_arch.htm )
We hit this crash if the page reloads between DragController::dragUpdated
and DragController::performDrag, meaning that m_document starts pointing to
a now viewless document. This is picked up by an assertion in performDrag
which I have now replaced with an assignment given that the assertion is
invalid -- it is possible for m_document to be changed between dragUpdated
performDrag
* page/DragController.cpp:
(WebCore::DragController::performDrag):
2008-01-08 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
<rdar://problem/5659812> CrashTracer: 462 crashes in Safari at com.apple.WebCore:
WebCore::Node::setChanged + 96
Test: fast/dom/cssTarget-crash.html
* dom/Node.cpp: (WebCore::Node::removedFromDocument):
Check to see if the node being removed is currently set as the Document's cssTarget.
If it is, clear the cssTarget to prevent a hanging reference to it.
2008-01-08 Adam Roben <aroben@apple.com>
* bindings/scripts/CodeGeneratorJS.pm: Touch this so the bindings will
rebuild on Windows now that the media elements are enabled.
2008-01-08 Adam Roben <aroben@apple.com>
* svg/svgtags.in: Touch this again for the sake of the Windows bots.
2008-01-08 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam Roben.
Use JSRetainPtr in the Web Inspector everywhere we own a JSStringRef.
Also added some #pragma marks to help find places in the file.
* page/InspectorController.cpp:
(WebCore::callSimpleFunction): Use JSRetainPtr<JSStringRef>.
And return the result of JSObjectCallAsFunction.
(WebCore::search): Use JSRetainPtr<JSStringRef>.
(WebCore::databaseTableNames): Ditto.
(WebCore::localizedStrings): Ditto.
(WebCore::InspectorController::~InspectorController): Ditto.
(WebCore::InspectorController::focusNode): Ditto.
(WebCore::InspectorController::windowScriptObjectAvailable): Ditto.
(WebCore::InspectorController::scriptObjectReady): Ditto.
(WebCore::addHeaders): Ditto.
(WebCore::InspectorController::addScriptResource): Ditto.
(WebCore::InspectorController::removeScriptResource): Ditto.
(WebCore::InspectorController::updateScriptResourceRequest): Ditto.
(WebCore::InspectorController::updateScriptResourceResponse): Ditto.
(WebCore::InspectorController::updateScriptResource): Ditto.
(WebCore::InspectorController::addDatabaseScriptResource): Ditto.
(WebCore::InspectorController::removeDatabaseScriptResource): Ditto.
(WebCore::InspectorController::addScriptConsoleMessage): Ditto.
2008-01-08 Dan Bernstein <mitz@apple.com>
Rubber-stamped by Sam Weinig.
- rename FontDataBaseClass.{cpp,h} back to FontData.{cpp,h}
* GNUmakefile.am:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* editing/Editor.cpp:
* platform/graphics/FontData.cpp: Copied from WebCore/platform/graphics/FontDataBaseClass.cpp.
* platform/graphics/FontData.h: Copied from WebCore/platform/graphics/FontDataBaseClass.h.
* platform/graphics/FontDataBaseClass.cpp: Removed.
* platform/graphics/FontDataBaseClass.h: Removed.
* platform/graphics/SegmentedFontData.h:
* platform/graphics/SimpleFontData.h:
2008-01-08 Dan Bernstein <mitz@apple.com>
Fix a Wx build error.
* platform/graphics/wx/GlyphMapWx.cpp:
(WebCore::GlyphPage::fill):
2008-01-08 Dan Bernstein <mitz@apple.com>
Fix a Qt build error.
* platform/graphics/qt/SimpleFontDataQt.cpp:
(WebCore::SimpleFontData::containsCharacters):
(WebCore::SimpleFontData::fontDataForCharacter):
(WebCore::SimpleFontData::isSegmented):
2008-01-08 Adam Roben <aroben@apple.com>
Windows build fix.
Touch config.h to force a rebuild (apparently changing preprocessor
definitions in the .vcproj doesn't force a rebuild).
* config.h:
2008-01-08 Dan Bernstein <mitz@apple.com>
Fix a Wx build failure.
* webcore-wx.bkl:
2008-01-08 Dan Bernstein <mitz@apple.com>
Fix a Qt build failure.
* WebCore.pro:
2008-01-08 John Sullivan <sullivan@apple.com>
Reviewed by Adam Roben
- fixed <rdar://problem/5671668> REGRESSION (r28711-r28730): With caret in an empty form field,
Delete menu item is enabled but shouldn't be
The enabled logic was incorrect for the Delete menu item. To fix this, I added an EditorCommandSource
parameter to the enabled functions so that they can have parallel logic to the execute functions.
* editing/EditorCommand.cpp:
added EditorCommandSource parameter to isEnabled function prototype
(WebCore::enabled):
added unused EditorCommandSource parameter to these isEnabled functions:
(WebCore::enabledAnySelection):
(WebCore::enabledAnySelectionAndMark):
(WebCore::enableCaretInEditableText):
(WebCore::enabledCopy):
(WebCore::enabledCut):
(WebCore::enabledDelete):
new function, uses logic previously used by Delete command for DOM sources; uses logic in enabledCut
for menu source
added unused EditorCommandSource parameter to these isEnabled functions:
(WebCore::enabledInEditableText):
(WebCore::enabledInRichlyEditableText):
(WebCore::enabledPaste):
(WebCore::enabledRangeInEditableText):
(WebCore::enabledRangeInRichlyEditableText):
(WebCore::enabledRedo):
(WebCore::enabledUndo):
(WebCore::CommandEntry::):
wire up new enabledDelete function as delete function for Delete command
(WebCore::Editor::Command::isEnabled):
pass EditorCommandSource parameter to isEnabled function
2008-01-08 Adam Roben <aroben@apple.com>
Visual C++ Express build fix
* WebCore.vcproj/QTMovieWin.vcproj: Explicitly link against user32.lib
and advapi32.lib. VS implicitly links against these, VC++ Express
doesn't.
2008-01-08 Dan Bernstein <mitz@apple.com>
- add bug number
* platform/graphics/mac/FontCustomPlatformData.cpp:
(WebCore::createFontCustomPlatformData):
2008-01-08 Dan Bernstein <mitz@apple.com>
Try to fix the Qt build.
* WebCore.pro:
2008-01-08 Nikolas Zimmermann <zimmermann@kde.org>
Not reviewed. Try to fix Qt builds after Timothy's inspector changes.
* page/inspector/WebKit.qrc:
2008-01-08 Maciej Stachowiak <mjs@apple.com>
Reviewed by Mark.
- remove duplicate definition of getElementById from HTMLDocument IDL (and ObjC bindings)
* bindings/objc/PublicDOMInterfaces.h:
* html/HTMLDocument.idl:
2008-01-08 David D. Kilzer <ddkilzer@webkit.org>
Renamed CharacterData::str to m_str to match coding style
Rubber-stamped by Adam.
No test cases added since there is no change in behavior.
* dom/CDATASection.cpp:
* dom/CharacterData.cpp:
(WebCore::CharacterData::CharacterData):
(WebCore::CharacterData::setData):
(WebCore::CharacterData::substringData):
(WebCore::CharacterData::appendData):
(WebCore::CharacterData::insertData):
(WebCore::CharacterData::deleteData):
(WebCore::CharacterData::replaceData):
(WebCore::CharacterData::nodeValue):
(WebCore::CharacterData::containsOnlyWhitespace):
(WebCore::CharacterData::dispatchModifiedEvent):
(WebCore::CharacterData::checkCharDataOperation):
(WebCore::CharacterData::dump):
* dom/CharacterData.h:
* dom/Comment.cpp:
* dom/Text.cpp:
(WebCore::Text::splitText):
(WebCore::Text::createRenderer):
(WebCore::Text::recalcStyle):
2008-01-08 Oliver Hunt <oliver@apple.com>
Set the ENABLE_SVG_FONTS flag in Windows build, now builds,
I'm not sure if it just caused the right files to regenerate,
or if there's some configuration weirdness in the non-SVG-fonts
build.
* WebCore.vcproj/WebCore.vcproj:
2008-01-07 Maciej Stachowiak <mjs@apple.com>
Reviewed by Brady.
- fixed <rdar://problem/5644300> Back/Forward Cache should not include pages with databases
Track whether a document has ever opened a database; if so, exclude it from b/f caching (for now)
* dom/Document.cpp:
(WebCore::Document::Document):
* dom/Document.h:
(WebCore::Document::setHasOpenDatabases):
(WebCore::Document::hasOpenDatabases):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::canCachePage):
* storage/Database.cpp:
(WebCore::Database::openDatabase):
2008-01-07 Dan Bernstein <mitz@apple.com>
Reviewed by Oliver Hunt.
- fix leaks seen on the build bot
* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::addFontFaceRule): Avoid creating a
CSSFontFaceSource for SVG font-face elements going into an
SVGCSSFontFace because it just leaks them. Avoid adding SVG font-
face elements to a CSSFontFace because it will not work as expected.
2008-01-07 Mark Rowe <mrowe@apple.com>
Tiger build fix.
* platform/graphics/mac/FontCustomPlatformData.cpp:
(WebCore::createFontCustomPlatformData): Only include this code on Leopard.
It's not needed on Tiger, and breaks the build.
2008-01-07 Antti Koivisto <antti@apple.com>
Reviewed by Steve.
Re-enable media support in Windows build.
* WebCore.vcproj/QTMovieWin.vcproj:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcproj/build-generated-files.sh:
2008-01-07 Steve Falkenburg <sfalken@apple.com>
Add version resource to QTMovieWin.dll
Reviewed by Adam.
* WebCore.vcproj/PRODUCTVERSION: Copied from ../WebKit/win/WebKit.vcproj/PRODUCTVERSION.
* WebCore.vcproj/QTMovieWin.rc: Added.
* WebCore.vcproj/QTMovieWin.vcproj:
* WebCore.vcproj/VERSION: Copied from ../WebKit/win/WebKit.vcproj/VERSION.
* WebCore.vcproj/auto-version.sh: Copied from ../WebKit/win/WebKit.vcproj/auto-version.sh.
2008-01-07 Dan Bernstein <mitz@apple.com>
Build fix.
* platform/graphics/qt/FontCustomPlatformData.cpp:
(WebCore::FontCustomPlatformData::~FontCustomPlatformData): Added.
Calls QFontDatabase::removeApplicationFont().
* platform/graphics/qt/FontCustomPlatformData.h:
* platform/graphics/qt/GlyphPageTreeNodeQt.cpp:
(WebCore::GlyphPageTreeNode::pruneTreeCustomFontData): Removed the
implementation because Qt does not use the WebCore glyph cache.
2008-01-07 Dan Bernstein <mitz@apple.com>
Reviewed by Oliver Hunt.
- fix an assertion failure in svg/W3C-SVG-1.1/fonts-elem-03-b.svg on
Tiger and multiple SVG layout test failures on Leopard.
* css/CSSSegmentedFontFace.cpp:
(WebCore::CSSSegmentedFontFace::getFontData): Avoid returning an
empty SegmentedFontData.
* platform/graphics/mac/FontCustomPlatformData.cpp:
(WebCore::createFontCustomPlatformData): Avoid creating a font that
contains no glyphs. On Leopard, ATS might create such a font given
data in an unsupported format (such as SVG).
2008-01-07 Steve Falkenburg <sfalken@apple.com>
Build fix.
* WebCore.vcproj/WebCore.sln:
* WebCore.vcproj/WebCore.submit.sln:
2008-01-07 Oliver Hunt <oliver@apple.com>
Reviewed by Niko.
Fix painting of SVG <image> when the image must be scaled to retain aspect ratio
Test: svg/custom/image-with-aspect-ratio-stretch.svg
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::adjustRectsForAspectRatio):
2008-01-07 Dan Bernstein <mitz@apple.com>
Build fix.
* platform/graphics/qt/GlyphPageTreeNodeQt.cpp:
(WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
2008-01-07 Adele Peterson <adele@apple.com>
Add missing newline.
* rendering/MediaControlElements.cpp:
2008-01-07 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Hyatt.
<rdar://problem/5673489> Safari does not render windowless plugins in an
iframe when opacity < 1.0
Plugins in transparency layers handle their own world transforms, so
only apply the horizontal/vertical transform if we are not in a
transparency layer.
* platform/graphics/GraphicsContext.h: Add a Windows-platform-only
inTransparencyLayer() function
* platform/win/GraphicsContextWin.cpp:
(WebCore::GraphicsContext::getWindowsContext): Use inTransparencyLayer()
(WebCore::GraphicsContext::inTransparencyLayer):
(WebCore::GraphicsContext::releaseWindowsContext): Use
inTransparencyLayer()
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginViewWin::paint): When retrieving the HDC, use the rect
relative to the window. Pass m_isTransparent to
get/releaseWindowsContext(). Only set the world transform if we are not
in a transparency layer.
2008-01-07 Adele Peterson <adele@apple.com>
Build fix. Need to wrap these classes in #if ENABLE(VIDEO)
* rendering/MediaControlElements.cpp:
* rendering/MediaControlElements.h:
2008-01-07 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Mark.
Enable SVG_FONTS by default.
* Configurations/WebCore.xcconfig:
* WebCore.vcproj/build-generated-files.sh:
2008-01-07 Dan Bernstein <mitz@apple.com>
Build fix.
* platform/graphics/qt/SimpleFontDataQt.cpp:
(WebCore::SimpleFontData::SimpleFontData):
(WebCore::SimpleFontData::~SimpleFontData):
2008-01-07 Adam Barth <hk9565@gmail.com>
Reviewed by Sam Weinig
Fixes: http://bugs.webkit.org/show_bug.cgi?id=16523
<rdar://problem/5657447>
When a frame is created with the URL "about:blank" or "", it should
inherit its SecurityOrigin from its opener. However, once it has
decided on that SecurityOrigin, it should not change its mind.
Prior to this patch, several events could induce the frame to change
its SecurityOrigin, permitting an attacker to inject script into an
arbitrary SecurityOrigin.
This patch makes several changes:
1) Documents refuse to change from one SecurityOrigin to another
unless explicitly instructed to do so.
2) Navigating to a JavaScript URL that produces a value
preserves the current SecurityOrigin explicitly instead of
relying on the URL to preserve the origin (which fails for
about:blank URLs and SecurityOrigins with document.domain set).
Ideally, we should not preserve the URL at all. Instead, the
frame's URL should be the JavaScript URL, as in Firefox, but this
would require changes that are too risky for this patch. I'll
file this as a separate issue.
3) Various methods of navigating to JavaScript URLs were not
properly handling JavaScript that returned a value (and should
therefore replace the current document). This patch unifies
those code paths with the path that works.
There are still a handful of bugs relating to the handling of
JavaScript URLs, but I'll file those as separate issues.
Tests: http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write.html
http/tests/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url.html
http/tests/security/aboutBlank/xss-DENIED-set-opener.html
* dom/Document.cpp:
(WebCore::Document::initSecurityOrigin):
* dom/Document.h:
(WebCore::Document::setSecurityOrigin):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::changeLocation):
(WebCore::FrameLoader::urlSelected):
(WebCore::FrameLoader::requestFrame):
(WebCore::FrameLoader::submitForm):
(WebCore::FrameLoader::executeIfJavaScriptURL):
(WebCore::FrameLoader::begin):
* loader/FrameLoader.h:
* platform/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::setForURL):
(WebCore::SecurityOrigin::createForFrame):
* platform/SecurityOrigin.h:
2008-01-07 Adele Peterson <adele@apple.com>
Forgot to check in these changes in my last checkin.
* rendering/RenderThemeSafari.cpp:
2008-01-07 Dan Bernstein <mitz@apple.com>
Build fixes.
* WebCore.pro:
* platform/graphics/qt/FontCacheQt.cpp:
(WebCore::FontCache::getCachedFontData):
2008-01-07 Timothy Hatcher <timothy@apple.com>
Reviewed by John Sullivan.
<rdar://problem/5674119> Make the Web Inspector toolbar the normal size when not docked
* page/inspector/inspector.css: Changed CSS rules to have the toolbar and buttons be
normal height when not docked, and small when docked. Also added some cursor properties
prevent showing the text cursor over areas that are not selectable.
* page/inspector/Images: A few images added and old ones removed or renamed.
2008-01-07 Alp Toker <alp@atoker.com>
Prospective GTK+ autotools/qmake VIDEO build fix for breakage
introduced in r29257.
* GNUmakefile.am:
* WebCore.pro:
2008-01-07 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Oliver.
Build fix affecting all builds - again related to the unicode-range addition.
* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::addFontFaceRule):
* css/SVGCSSFontFace.cpp:
(WebCore::SVGCSSFontFace::SVGCSSFontFace):
* css/SVGCSSFontFace.h:
* rendering/RenderSVGText.cpp:
* svg/SVGFont.cpp:
(WebCore::svgFontAndFontFaceElementForFontData):
(WebCore::floatWidthMissingGlyphCallback):
(WebCore::drawTextMissingGlyphCallback):
* svg/SVGFontFaceElement.cpp:
2008-01-07 Adele Peterson <adele@apple.com>
Reviewed by Antti, Adam, and Mitz.
WebCore part of fix for
<rdar://problem/5619073> Updated look for <video> controls
<rdar://problem/5619057> Add volume control to video controls
* WebCore.base.exp: Added symbols for WebKitSystemInterface drawing methods.
* WebCore.xcodeproj/project.pbxproj: Added MediaControlElements.h/cpp
* WebCore.vcproj/WebCore.vcproj: ditto.
* css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added cases for new appearances.
* css/CSSSelector.cpp: (WebCore::CSSSelector::extractPseudoType): Added cases for new types.
* css/CSSSelector.h: (WebCore::CSSSelector::): Added new pseudo elements.
* css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::checkOneSelector): ditto.
* css/CSSValueKeywords.in: Added keywords for new control appearance styles.
* css/html4.css: Added new styles for new controls.
* html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::canPlay): Added. Takes loading state into account.
* html/HTMLMediaElement.h:
* page/EventHandler.cpp: (WebCore::EventHandler::updateMouseEventTargetNode): Make sure the events always go to the capturing node, if there is one.
* platform/mac/WebCoreSystemInterface.h: Added drawing methods for controls.
* platform/mac/WebCoreSystemInterface.mm: ditto.
* rendering/MediaControlElements.cpp: Added.
(WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement): Moved from RenderMedia. Made this relatively positioned, instead of absolute.
(WebCore::MediaControlInputElement::MediaControlInputElement): Moved from RenderMedia. Removed call to updateFromElement,
since its too early to do this here, and causes crashes for the slider.
(WebCore::MediaControlInputElement::attachToParent): Moved from RenderMedia.
(WebCore::MediaControlInputElement::update): ditto.
(WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement): Added.
(WebCore::MediaControlMuteButtonElement::defaultEventHandler): ditto.
(WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement): Moved from RenderMedia.
(WebCore::MediaControlPlayButtonElement::defaultEventHandler): ditto.
(WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement): Added.
(WebCore::MediaControlSeekButtonElement::defaultEventHandler): ditto.
(WebCore::MediaControlSeekButtonElement::seekTimerFired): ditto.
(WebCore::MediaControlTimelineElement::MediaControlTimelineElement): Moved from RenderMedia.
(WebCore::MediaControlTimelineElement::defaultEventHandler): ditto.
(WebCore::MediaControlTimelineElement::update): ditto.
(WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement): Added.
(WebCore::MediaControlFullscreenButtonElement::defaultEventHandler): ditto.
* rendering/MediaControlElements.h: Added. Moved from RenderMedia.
(WebCore::MediaControlShadowRootElement::isShadowNode):
(WebCore::MediaControlShadowRootElement::shadowParentNode):
(WebCore::RenderMediaControlShadowRoot::RenderMediaControlShadowRoot):
(WebCore::RenderMediaControlShadowRoot::setParent):
* rendering/RenderMedia.cpp: Moved control element classes to MediaControlElements files.
(WebCore::RenderMedia::RenderMedia): No need to initialize RefPtrs.
(WebCore::RenderMedia::layout): Set the position for the controlsRenderer.
(WebCore::RenderMedia::createPanel): Added nil check for the renderer.
(WebCore::RenderMedia::createMuteButton): Added.
(WebCore::RenderMedia::createSeekBackButton): ditto.
(WebCore::RenderMedia::createSeekForwardButton): ditto.
(WebCore::RenderMedia::createTimeDisplay): Added nil check for the renderer.
(WebCore::RenderMedia::createFullscreenButton): Added.
(WebCore::RenderMedia::updateControls): Create, delete, and update new controls when appropriate.
(WebCore::RenderMedia::updateControlVisibility): Don't fade controls for audio controls.
(WebCore::RenderMedia::forwardEvent): Forward events for new controls.
* rendering/RenderMedia.h: Added new methods for creating new controls.
* rendering/RenderObject.cpp: (WebCore::RenderObject::containingBlock): Updated special case for media elements, which are replaced elements,
but also can contain children (the controls' container) that may need to look for the containing block.
* rendering/RenderSlider.cpp: (WebCore::RenderSlider::createThumbStyle): Added case for MediaSliderAppearance.
* rendering/RenderStyle.h: Added appearance constants and pseudo ids for new controls.
(WebCore::):
(WebCore::RenderStyle::):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle): Added cases for new appearances.
(WebCore::RenderTheme::paint): ditto.
* rendering/RenderTheme.h: Added new methods for painting new appearances.
(WebCore::RenderTheme::paintMediaBackground):
(WebCore::RenderTheme::paintMediaFullscreenButton):
(WebCore::RenderTheme::paintMediaPlayButton):
(WebCore::RenderTheme::paintMediaMuteButton):
(WebCore::RenderTheme::paintMediaSeekBackButton):
(WebCore::RenderTheme::paintMediaSeekForwardButton):
(WebCore::RenderTheme::paintMediaSliderThumb):
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::RenderThemeMac): Initialize m_mediaControlBackgroundImage.
(WebCore::RenderThemeMac::~RenderThemeMac): Delete m_mediaControlBackgroundImage.
(WebCore::RenderThemeMac::paintCapsLockIndicator): Use LocalCurrentGraphicsContext here too, since we use it in all other painting methods.
(WebCore::RenderThemeMac::paintSliderTrack): Added case for MediaSliderAppearance.
(WebCore::RenderThemeMac::adjustSliderThumbSize): Added case for MediaSliderThumbAppearance.
(WebCore::RenderThemeMac::paintMediaBackground): Draws the new artwork for the controls.
(WebCore::RenderThemeMac::paintMediaFullscreenButton): ditto.
(WebCore::RenderThemeMac::paintMediaMuteButton): ditto.
(WebCore::RenderThemeMac::paintMediaPlayButton): ditto.
(WebCore::RenderThemeMac::paintMediaSeekBackButton): ditto.
(WebCore::RenderThemeMac::paintMediaSeekForwardButton): ditto.
(WebCore::RenderThemeMac::paintMediaSliderThumb): ditto.
* rendering/RenderThemeSafari.cpp: Draws the new artwork on Windows.
(WebCore::RenderThemeSafari::paintSliderTrack):
(WebCore::RenderThemeSafari::adjustSliderThumbSize):
(WebCore::RenderThemeSafari::paintMediaBackground):
(WebCore::RenderThemeSafari::paintMediaFullscreenButton):
(WebCore::RenderThemeSafari::paintMediaMuteButton):
(WebCore::RenderThemeSafari::paintMediaPlayButton):
(WebCore::RenderThemeSafari::paintMediaSeekBackButton):
(WebCore::RenderThemeSafari::paintMediaSeekForwardButton):
(WebCore::RenderThemeSafari::paintMediaSliderThumb):
* rendering/RenderThemeSafari.h:
2008-01-07 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin Adler.
Fix ASSERTION FAILED: dstOffset + srcSegmentLength == static_cast<int>(data.size())
when the replacment string is a different length.
* platform/text/StringImpl.cpp:
(WebCore::StringImpl::replace): Move the parenthesis to be around only the subtraction in
the Vector size calculation, correcting the order of math operations.
2008-01-07 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Eric. Hopefully fix build with mac tiger after the unicode-range addition. NSInteger not available there.
* platform/graphics/mac/FontCacheMac.mm:
2008-01-07 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Oliver. Fix build error introduced by Dan's unicode-range support patch & enabling SVG_FONTS by default.
* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::getFontData):
2008-01-07 Nikolas Zimmermann <zimmermann@kde.org>
Not reviewed. Next try to fix wx/mac leopard build.
* css/CSSFontSelector.cpp: Need to wrap a SVG* include in ENABLE(SVG) blocks, as this port doesn't build this generated file.
* svg/SVGFontFaceElement.cpp:
(WebCore::SVGFontFaceElement::createFontData): Fix double<->float conversion issue.
* webcore-base.bkl: Undo svg/ include.
2008-01-07 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt.
- <rdar://problem/5665216> Support the unicode-range property in @font-face rules
* GNUmakefile.am:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* bindings/objc/DOM.mm:
* bridge/mac/WebCoreAXObject.mm:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSFontFace.cpp:
(WebCore::CSSFontFace::fontLoaded): Changed to call the owning segmented
font face.
(WebCore::CSSFontFace::getFontData):
* css/CSSFontFace.h:
(WebCore::CSSFontFace::CSSFontFace):
(WebCore::CSSFontFace::setSegmentedFontFace):
* css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::pruneTable): Removed the calls to
GlyphPageTreeNode::pruneTreeCustomFontData because the fonts in the
font table are not exposed in the glyph page tree. Only the segmented
font is, and that is taken care of by the segmented font face.
(WebCore::CSSFontFaceSource::getFontData):
* css/CSSFontFaceSource.h:
* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::addFontFaceRule): Changed to collect
@font-face rules with the same family and traits into a single
segmented font face, instead of just retaining the most recent one.
(WebCore::CSSFontSelector::fontLoaded):
(WebCore::CSSFontSelector::getFontData):
* css/CSSFontSelector.h:
* css/CSSGrammar.y:
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseFontFaceUnicodeRange): Added. Parses a unicode
range value.
* css/CSSParser.h:
* css/CSSPrimitiveValue.h:
(WebCore::CSSPrimitiveValue::):
* css/CSSPropertyNames.in:
* css/CSSSegmentedFontFace.cpp: Added.
(WebCore::CSSSegmentedFontFace::CSSSegmentedFontFace):
(WebCore::CSSSegmentedFontFace::~CSSSegmentedFontFace):
(WebCore::CSSSegmentedFontFace::pruneTable):
(WebCore::CSSSegmentedFontFace::isLoaded):
(WebCore::CSSSegmentedFontFace::isValid):
(WebCore::CSSSegmentedFontFace::fontLoaded):
(WebCore::CSSSegmentedFontFace::overlayRange):
(WebCore::CSSSegmentedFontFace::getFontData):
* css/CSSSegmentedFontFace.h: Added.
(WebCore::FontFaceRange::FontFaceRange):
(WebCore::FontFaceRange::from):
(WebCore::FontFaceRange::to):
(WebCore::FontFaceRange::fontFace):
(WebCore::CSSSegmentedFontFace::fontSelector):
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
* css/CSSUnicodeRangeValue.cpp: Added.
(WebCore::CSSUnicodeRangeValue::~CSSUnicodeRangeValue):
(WebCore::CSSUnicodeRangeValue::cssText):
* css/CSSUnicodeRangeValue.h: Added.
(WebCore::CSSUnicodeRangeValue::CSSUnicodeRangeValue):
(WebCore::CSSUnicodeRangeValue::from):
(WebCore::CSSUnicodeRangeValue::to):
* css/SVGCSSFontFace.cpp:
(WebCore::SVGCSSFontFace::getFontData):
* css/SVGCSSFontFace.h:
* editing/Editor.cpp:
(WebCore::Editor::fontForSelection):
* editing/Editor.h:
* page/mac/FrameMac.mm:
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge fontForSelection:]):
* platform/graphics/Font.cpp:
(WebCore::WidthIterator::advance):
(WebCore::Font::glyphDataForCharacter):
(WebCore::Font::primaryFont): Changed to return the simple font data
used for the space character.
(WebCore::Font::fontDataAt):
(WebCore::Font::fontDataForCharacters):
(WebCore::Font::drawGlyphBuffer):
* platform/graphics/Font.h:
* platform/graphics/FontCache.cpp:
(WebCore::FontCache::getCachedFontData):
(WebCore::FontCache::getFontData):
* platform/graphics/FontCache.h:
* platform/graphics/FontData.cpp: Renamed to SimpleFontData.cpp
* platform/graphics/FontData.h: Renamed to SimpleFontData.cpp.
* platform/graphics/FontDataBaseClass.cpp: Added. This will be renamed
FontData.cpp.
(WebCore::FontData::~FontData):
* platform/graphics/FontDataBaseClass.h: Added. This will be renamed
FontData.h.
* platform/graphics/FontFallbackList.cpp:
(WebCore::FontFallbackList::determinePitch):
(WebCore::FontFallbackList::fontDataAt):
(WebCore::FontFallbackList::fontDataForCharacters):
* platform/graphics/FontFallbackList.h:
(WebCore::FontFallbackList::primaryFont):
* platform/graphics/FontSelector.h:
* platform/graphics/GlyphBuffer.h:
(WebCore::GlyphBuffer::fontDataAt):
(WebCore::GlyphBuffer::swap):
(WebCore::GlyphBuffer::add):
* platform/graphics/GlyphPageTreeNode.cpp:
(WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
(WebCore::GlyphPageTreeNode::initializePage): Added code to initialize
pages for segmented font data.
(WebCore::GlyphPageTreeNode::getChild):
(WebCore::GlyphPageTreeNode::pruneCustomFontData):
* platform/graphics/GlyphPageTreeNode.h:
(WebCore::GlyphPage::setGlyphDataForCharacter):
(WebCore::GlyphPage::setGlyphDataForIndex):
(WebCore::GlyphPageTreeNode::getRootChild):
* platform/graphics/SegmentedFontData.cpp: Added.
(WebCore::SegmentedFontData::~SegmentedFontData):
(WebCore::SegmentedFontData::fontDataForCharacter):
(WebCore::SegmentedFontData::containsCharacters):
(WebCore::SegmentedFontData::isCustomFont):
(WebCore::SegmentedFontData::isLoading):
(WebCore::SegmentedFontData::isSegmented):
* platform/graphics/SegmentedFontData.h: Added.
(WebCore::FontDataRange::FontDataRange):
(WebCore::FontDataRange::from):
(WebCore::FontDataRange::to):
(WebCore::FontDataRange::fontData):
(WebCore::SegmentedFontData::appendRange):
(WebCore::SegmentedFontData::numRanges):
(WebCore::SegmentedFontData::rangeAt):
* platform/graphics/SimpleFontData.cpp: Copied from WebCore/platform/graphics/FontData.cpp.
(WebCore::SimpleFontData::SimpleFontData):
(WebCore::SimpleFontData::~SimpleFontData):
(WebCore::SimpleFontData::ascent):
(WebCore::SimpleFontData::descent):
(WebCore::SimpleFontData::widthForGlyph):
(WebCore::SimpleFontData::fontDataForCharacter):
(WebCore::SimpleFontData::isSegmented):
* platform/graphics/SimpleFontData.h: Copied from WebCore/platform/graphics/FontData.h.
(WebCore::SimpleFontData::isCustomFont):
(WebCore::SimpleFontData::isLoading):
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::setPlatformFont):
* platform/graphics/gtk/FontCacheGtk.cpp:
(WebCore::FontCache::getFontDataForCharacters):
* platform/graphics/gtk/FontDataGtk.cpp: Renamed to
SimpleFontDataGtk.cpp.
* platform/graphics/gtk/FontGtk.cpp:
(WebCore::Font::drawGlyphs):
* platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp:
(WebCore::GlyphPage::fill):
* platform/graphics/gtk/SimpleFontDataGtk.cpp: Copied from WebCore/platform/graphics/gtk/FontDataGtk.cpp.
(WebCore::SimpleFontData::platformInit):
(WebCore::SimpleFontData::platformDestroy):
(WebCore::SimpleFontData::smallCapsFontData):
(WebCore::SimpleFontData::containsCharacters):
(WebCore::SimpleFontData::determinePitch):
(WebCore::SimpleFontData::platformWidthForGlyph):
(WebCore::SimpleFontData::setFont):
* platform/graphics/mac/FontCacheMac.mm:
(WebCore::FontCache::getFontDataForCharacters):
* platform/graphics/mac/FontDataMac.mm: Renamed to SimpleFontDataMac.mm.
* platform/graphics/mac/FontMac.mm:
(WebCore::initializeATSUStyle):
(WebCore::overrideLayoutOperation):
(WebCore::ATSULayoutParameters::initialize):
(WebCore::Font::drawGlyphs):
* platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
(WebCore::GlyphPage::fill):
* platform/graphics/mac/SimpleFontDataMac.mm: Copied from WebCore/platform/graphics/mac/FontDataMac.mm.
(WebCore::initFontData):
(WebCore::SimpleFontData::platformInit):
(WebCore::SimpleFontData::platformDestroy):
(WebCore::SimpleFontData::smallCapsFontData):
(WebCore::SimpleFontData::containsCharacters):
(WebCore::SimpleFontData::determinePitch):
(WebCore::SimpleFontData::platformWidthForGlyph):
(WebCore::SimpleFontData::checkShapesArabic):
* platform/graphics/qt/FontDataQt.cpp: Renamed to SimpleFontDataQt.cpp.
* platform/graphics/qt/GlyphPageTreeNodeQt.cpp:
(WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
* platform/graphics/qt/SimpleFontDataQt.cpp: Copied from WebCore/platform/graphics/qt/FontDataQt.cpp.
* platform/graphics/win/FontCacheWin.cpp:
(WebCore::FontCache::getFontDataForCharacters):
* platform/graphics/win/FontDataWin.cpp: Renamed to
SimpleFontDataWin.cpp.
* platform/graphics/win/FontWin.cpp:
(WebCore::Font::drawGlyphs):
* platform/graphics/win/GlyphPageTreeNodeWin.cpp:
(WebCore::GlyphPage::fill):
* platform/graphics/win/SimpleFontDataWin.cpp: Copied from WebCore/platform/graphics/win/FontDataWin.cpp.
(WebCore::SimpleFontData::setShouldApplyMacAscentHack):
(WebCore::SimpleFontData::platformInit):
(WebCore::SimpleFontData::platformDestroy):
(WebCore::SimpleFontData::smallCapsFontData):
(WebCore::SimpleFontData::containsCharacters):
(WebCore::SimpleFontData::determinePitch):
(WebCore::SimpleFontData::platformWidthForGlyph):
(WebCore::SimpleFontData::scriptFontProperties):
* platform/graphics/wx/FontCacheWx.cpp:
(WebCore::FontCache::getFontDataForCharacters):
* platform/graphics/wx/FontDataWx.cpp: Renamed to SimpleFontDataWx.cpp.
* platform/graphics/wx/FontWx.cpp:
(WebCore::Font::drawGlyphs):
* platform/graphics/wx/GlyphMapWx.cpp:
(WebCore::GlyphPage::fill):
* platform/graphics/wx/SimpleFontDataWx.cpp: Copied from WebCore/platform/graphics/wx/FontDataWx.cpp.
(WebCore::SimpleFontData::platformInit):
(WebCore::SimpleFontData::platformDestroy):
(WebCore::SimpleFontData::smallCapsFontData):
(WebCore::SimpleFontData::containsCharacters):
(WebCore::SimpleFontData::determinePitch):
(WebCore::SimpleFontData::platformWidthForGlyph):
* platform/mac/FileChooserMac.mm:
* platform/mac/PopupMenuMac.mm:
* platform/mac/WebCoreTextRenderer.mm:
* platform/win/PopupMenuWin.cpp:
* platform/win/UniscribeController.cpp:
(WebCore::UniscribeController::advance):
(WebCore::UniscribeController::itemizeShapeAndPlace):
(WebCore::UniscribeController::shapeAndPlaceItem):
(WebCore::UniscribeController::shape):
* platform/win/UniscribeController.h:
* svg/SVGFont.cpp:
(WebCore::Font::drawGlyphsWithSVGFont):
* svg/SVGFontElement.cpp:
(WebCore::SVGFontElement::collectGlyphs):
* svg/SVGFontFaceElement.cpp:
(WebCore::SVGFontFaceElement::createFontData):
* svg/SVGFontFaceElement.h:
* svg/SVGGlyphElement.cpp:
2008-01-07 Nikolas Zimmermann <zimmermann@kde.org>
Not reviewed. Try to fix mac build by forcing SVGNames regeneration.
* svg/svgtags.in:
2008-01-07 Nikolas Zimmermann <zimmermann@kde.org>
Not reviewed. Proposed build fix for wx.
* webcore-base.bkl:
2008-01-07 Dan Bernstein <mitz@apple.com>
64-bit build fix
* platform/graphics/mac/FontCustomPlatformData.cpp:
(WebCore::FontCustomPlatformData::fontPlatformData): Have to use a
cast here since FMGetFontFromATSFontRef() is not available on 64-bit.
2008-01-06 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Oliver. Parts reviewed by Eric, David Hyatt & Dan & Alexey.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=15741 (REGRESSION: svg/W3C-SVG-1.1/fonts-elem-03-b.svg shows worse behavior on TOT)
Display SVG Fonts, fill svg/SVGFont.cpp with life by adding all needed code to
measure & render glyphs contained in SVG Fonts, including ligature lookup support.
Implement floatWidth/selectionRectForText for SVG Fonts, fixing text selection.
Support horiz-origin-x/y, horiz-adv-x, vert-adv-y, vert-origin-x/y & arabic-form.
Implement simple algorithm to determine the arabic forms for a string (initial, isolated, medial, terminal).
Removed drawGlyphsWithSVGFont - create a new function drawTextWithSVGFont instead.
This doesn't involve creating/using a 'GlyphBuffer' object anymore, which is not
required for SVG Fonts anyway (we already know all our offsets/advances/etc..)
Don't call it from drawSimpleText anymore, but directly in drawText - as Dan suggested.
<glyph> elements now register themselves in the SVGFontElement's glyph cache.
(insertedIntoDocument / removedFromDocument take care of this)
The cache is built once now, and is kept updated - it's not rebuild anymore
on painting (!) - which was a crude hack for testing.
W3C testcase which include SVG Fonts:
svg/W3C-SVG-1.1/animate-elem-03-t.svg (Fixed, of course not the anim itself, but it's SVG Fonts usage)
svg/W3C-SVG-1.1/animate-elem-24-t.svg (Ditto)
svg/W3C-SVG-1.1/animate-elem-36-t.svg (Ditto)
svg/W3C-SVG-1.1/animate-elem-40-t.svg (Ditto)
svg/W3C-SVG-1.1/fonts-kern-01-t.svg (missing <vkern>/<hkern> support)
svg/W3C-SVG-1.1/fonts-desc-02-t.svg (Fixed, tests CSS font matching based on font-variant attribute)
svg/W3C-SVG-1.1/fonts-elem-01-t.svg (Fixed, basic SVG font test)
svg/W3C-SVG-1.1/fonts-elem-02-t.svg (Fixed, accuracy test for embedded SVG font)
svg/W3C-SVG-1.1/fonts-elem-05-t.svg (Fixed, checks horiz-origin-x support, note: W3C reference image is wrong)
svg/W3C-SVG-1.1/fonts-elem-06-t.svg (Fixed, checks horiz-adv-x support)
svg/W3C-SVG-1.1/fonts-glyph-02-t.svg (Fixed, checks arabic-form support)
svg/W3C-SVG-1.1/fonts-glyph-03-t.svg (Fixed, checks glyph matching based on xml:lang)
svg/W3C-SVG-1.1/masking-mask-01-b.svg (Fixed, SVG Fonts & masking)
svg/W3C-SVG-1.1/pservers-grad-08-b.svg (Fixed, SVG Fonts & gradient on fill/stroke)
svg/W3C-SVG-1.1/render-elems-06-t.svg (Fixed, simple 'fill' property test)
svg/W3C-SVG-1.1/render-elems-07-t.svg (Fixed, simple 'stroke' property test - shows SVG Font interprets stroke-width in glyph coordinate system, as demanded by spec)
svg/W3C-SVG-1.1/render-elems-08-t.svg (Fixed, simple 'fill' & 'stroke' property test)
svg/W3C-SVG-1.1/render-groups-01-b.svg (missing <vkern>/<hkern> support)
svg/W3C-SVG-1.1/render-groups-03-t.svg (Ditto)
svg/W3C-SVG-1.1/text-altglyph-01-b.svg (no <altGlyph> support yet)
svg/W3C-SVG-1.1/text-text-04-t.svg (Fixed, absolute placing of characters pixel perfect now)
svg/W3C-SVG-1.1/text-text-05-t.svg (FIXME: problem with text-anchor)
svg/W3C-SVG-1.1/text-text-06-t.svg (highlights problem with ligatures & absolute positioned characters)
Questionable testcases:
svg/W3C-SVG-1.1/fonts-glyph-04-t.svg (tests that glyph selection is done in the order in the definition of the font element.)
I am not sure why this behaviour is desired, no comment given in spec - doesn't make much sense to me, ignoring it for now.
Several other batik testcases fixed, which use SVG Fonts in combination with gradients & filters.
* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::addFontFaceRule):
(WebCore::CSSFontSelector::getFontData):
* platform/graphics/Font.cpp:
(WebCore::Font::lineSpacing):
(WebCore::Font::xHeight):
(WebCore::Font::canUseGlyphCache):
(WebCore::Font::drawGlyphBuffer):
(WebCore::Font::drawText):
(WebCore::Font::floatWidth):
(WebCore::Font::selectionRectForText):
* platform/graphics/Font.h:
(WebCore::TextRun::TextRun):
(WebCore::TextRun::activePaintServer):
(WebCore::TextRun::setActivePaintServer):
* platform/graphics/FontData.cpp:
(WebCore::FontData::lineSpacing):
(WebCore::FontData::lineGap):
(WebCore::FontData::xHeight):
* platform/graphics/FontData.h:
* platform/graphics/win/FontWin.cpp:
(WebCore::Font::drawGlyphs):
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::relativeBBox):
* rendering/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::paintCharacters):
* rendering/SVGInlineTextBox.h:
* rendering/SVGRootInlineBox.cpp:
(WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
* svg/SVGFont.cpp:
(WebCore::):
(WebCore::processArabicFormDetection):
(WebCore::charactersWithArabicForm):
(WebCore::isCompatibleArabicForm):
(WebCore::isCompatibleGlyph):
(WebCore::svgFontAndFontFaceElementForFontData):
(WebCore::SVGTextRunWalker::SVGTextRunWalker):
(WebCore::SVGTextRunWalker::walk):
(WebCore::floatWidthUsingSVGFontCallback):
(WebCore::floatWidthMissingGlyphCallback):
(WebCore::floatWidthOfSubStringUsingSVGFont):
(WebCore::Font::floatWidthUsingSVGFont):
(WebCore::drawTextUsingSVGFontCallback):
(WebCore::drawTextMissingGlyphCallback):
(WebCore::Font::drawTextUsingSVGFont):
(WebCore::Font::selectionRectForTextUsingSVGFont):
* svg/SVGFontElement.cpp:
(WebCore::SVGFontElement::SVGFontElement):
(WebCore::SVGFontElement::addGlyphToCache):
(WebCore::SVGFontElement::removeGlyphFromCache):
(WebCore::SVGFontElement::firstMissingGlyphElement):
(WebCore::SVGFontElement::glyphIdentifiersForString):
* svg/SVGFontElement.h:
(WebCore::SVGFontElement::maximumHashKeyLength):
* svg/SVGFontFaceElement.cpp:
(WebCore::SVGFontFaceElement::createFontData):
(WebCore::SVGFontFaceElement::rebuildFontFace):
(WebCore::SVGFontFaceElement::associatedFontElement):
* svg/SVGFontFaceElement.h:
* svg/SVGGlyphElement.cpp:
(WebCore::SVGGlyphElement::insertedIntoDocument):
(WebCore::SVGGlyphElement::removedFromDocument):
(WebCore::parseArabicForm):
(WebCore::SVGGlyphElement::inheritUnspecifiedAttributes):
(WebCore::SVGGlyphElement::buildGlyphIdentifier):
* svg/SVGGlyphElement.h:
(WebCore::SVGGlyphIdentifier::):
(WebCore::SVGGlyphIdentifier::SVGGlyphIdentifier):
(WebCore::SVGGlyphIdentifier::inheritedValue):
(WebCore::SVGGlyphIdentifier::operator==):
(WebCore::SVGGlyphElement::~SVGGlyphElement):
2008-01-07 David Hyatt <hyatt@apple.com>
Fix for bug 13095, CSS3 multiple backgrounds don't work on table cells.
Reviewed by Dan
* rendering/RenderBox.h:
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::paintBackgroundsBehindCell):
2008-01-07 Holger Freyther <zecke@selfish.org>
Reviewed by Alp Toker.
* Fix indention
* platform/gtk/ContextMenuGtk.cpp:
(WebCore::ContextMenu::~ContextMenu):
2008-01-07 Holger Freyther <zecke@selfish.org>
Reviewed by Alp Toker.
* The ContextMenuController is going to live longer than the ContextMenu. It is
going to live as long as the WebCore::Page is around where the ContextMenu, specially
in the case of a SubMenu, is gone before we popup the menu.
* platform/gtk/ContextMenuGtk.cpp:
(WebCore::menuItemActivated):
(WebCore::ContextMenu::appendItem):
2008-01-07 Holger Freyther <zecke@selfish.org>
Reviewed by Alp Toker.
* Fix SubMenu handling
* Do not connect to the activated signal if we are a separator or submenu
* Change our type from ActionType to SubMenuType when we have a submenu
* Initialize the SubMenu
* platform/gtk/ContextMenuGtk.cpp:
(WebCore::ContextMenu::appendItem):
* platform/gtk/ContextMenuItemGtk.cpp:
(WebCore::ContextMenuItem::ContextMenuItem):
(WebCore::ContextMenuItem::createNativeMenuItem):
(WebCore::ContextMenuItem::setSubMenu):
2008-01-07 Holger Freyther <zecke@selfish.org>
Reviewed by Alp Toker.
* Qt and Gtk must know if a ContextMenuItem is checkable. Add a new ContextMenuItemType for checkable
actions.
* Use this information in the Gtk platform to create a GtkCheckMenuItem when needed.
* Update the ContextMenuController to accept CheckableActionTypes as well.
* Change ContextMenu.cpp to use the CheckableActionType. The information if a item is checkable
was extracted from ContextMenu::checkOrEnableIfNeeded.
* Update the Qt and Windows port.
* page/ContextMenuController.cpp:
* platform/ContextMenu.cpp:
(WebCore::createAndAppendFontSubMenu):
(WebCore::createAndAppendSpellingAndGrammarSubMenu):
(WebCore::createAndAppendSpellingSubMenu):
(WebCore::createAndAppendWritingDirectionSubMenu):
* platform/ContextMenuItem.h:
* platform/gtk/ContextMenuItemGtk.cpp:
(WebCore::ContextMenuItem::ContextMenuItem):
(WebCore::ContextMenuItem::createNativeMenuItem):
2008-01-07 Luca Bruno <lethalman88@gmail.com>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=16745
[GTK] Context menu doesn't feel or look native - no icons
Use GTK+ stock icons for menu items where possible.
* platform/gtk/ContextMenuItemGtk.cpp:
(WebCore::gtkStockIDFromContextMenuAction):
(WebCore::ContextMenuItem::createNativeMenuItem):
(WebCore::ContextMenuItem::setAction):
2008-01-07 Dan Bernstein <mitz@apple.com>
Reviewed by John Sullivan.
- make the ATSUI code path work with custom fonts rather than crash
* platform/graphics/mac/FontCustomPlatformData.cpp:
(WebCore::FontCustomPlatformData::fontPlatformData):
* platform/graphics/mac/FontMac.mm:
(WebCore::initializeATSUStyle):
2008-01-07 Thiago Macieira <thiago.macieira@trolltech.com>
Reviewed by Simon.
abort() now emits the signals, so disconnect them before you abort()
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::abort):
2008-01-07 Simon Hausmann <hausmann@webkit.org>
Reviewed by Lars.
Use a faster and safer way of flattening the form data.
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::start):
2008-01-07 Simon Hausmann <hausmann@webkit.org>
Reviewed by Lars.
Ported of the network backend of the Qt platform to Qt 4.4's new networking API.
* WebCore.pro:
* platform/network/ResourceHandleInternal.h:
* platform/network/qt/QNetworkReplyHandler.cpp: Added.
(WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
(WebCore::QNetworkReplyHandler::abort):
(WebCore::QNetworkReplyHandler::finish):
(WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
(WebCore::QNetworkReplyHandler::forwardData):
(WebCore::QNetworkReplyHandler::start):
* platform/network/qt/QNetworkReplyHandler.h: Added.
(WebCore::QNetworkReplyHandler::reply):
* platform/network/qt/ResourceHandleQt.cpp:
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::cancel):
(WebCore::ResourceHandle::loadResourceSynchronously):
* platform/network/qt/ResourceRequest.h:
(WebCore::ResourceRequest::ResourceRequest):
* platform/network/qt/ResourceRequestQt.cpp: Added.
(WebCore::ResourceRequest::toNetworkRequest):
* platform/qt/MIMETypeRegistryQt.cpp:
(WebCore::MIMETypeRegistry::getMIMETypeForExtension):
* platform/qt/PlugInInfoStoreQt.cpp:
(WebCore::PlugInInfoStore::createPluginInfoForPluginAtIndex):
(WebCore::PlugInInfoStore::pluginCount):
(WebCore::PlugInInfoStore::pluginNameForMIMEType):
2008-01-07 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Lars.
* Remove m_dirtyRegion as it is not used as we pass every dirty region
directly to the ChromeClient
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::paint):
2008-01-06 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Oliver.
Small CG paint server cleanups - use more GraphicsContext method where possible.
* svg/graphics/cg/CgSupport.cpp:
(WebCore::applyStrokeStyleToContext):
(WebCore::strokeBoundingBox):
* svg/graphics/cg/CgSupport.h:
* svg/graphics/cg/RenderPathCg.cpp:
(WebCore::RenderPath::strokeContains):
* svg/graphics/cg/SVGPaintServerGradientCg.cpp:
(WebCore::SVGPaintServerGradient::setup):
* svg/graphics/cg/SVGPaintServerPatternCg.cpp:
(WebCore::SVGPaintServerPattern::setup):
* svg/graphics/cg/SVGPaintServerSolidCg.cpp:
(WebCore::SVGPaintServerSolid::setup):
2008-01-06 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Dan.
Use new helper function isArabicChar() - which also calls ublock_getCode() == UBLOCK_ARABIC on mac.
* platform/graphics/mac/FontMac.mm:
(WebCore::ATSULayoutParameters::initialize):
2008-01-06 Andrew Wellington <proton@wiretapped.net>
Reviewed by Darin.
DOMRange doesn't correctly re-size when inserting items (Acid3)
http://bugs.webkit.org/show_bug.cgi?id=16764
Update the offset for the range when inserting items into the range.
Test: fast/dom/Range/range-modifycontents.html
* dom/Range.cpp:
(WebCore::Range::insertNode):
2008-01-06 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=16731
Incorrect node type for whitespace when setting innerHTML in an XHTML document
Test: fast/dom/xhtml-fragment-whitespace.xhtml
* dom/XMLTokenizer.cpp: (WebCore::parseXMLDocumentFragment):
Use balancedCharactersHandler for ignorable whitespace.
2008-01-06 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=16701
<rdar://problem/5666580> REGRESSION: URL-encoded space (%20) in livejournal url
causes page load error
Test: http/tests/misc/location-with-space.php
* platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::ResourceRequest::doUpdatePlatformRequest): Do update its URL, too.
2008-01-06 Andrew Wellington <proton@wiretapped.net>
Reviewed by Darin.
DOMRange.cloneContents does not work (Acid3 bug)
http://bugs.webkit.org/show_bug.cgi?id=16748
When cloning an empty range, return an empty DocmentFragment instead of
null or undefined.
Test: fast/dom/Range/range-clone-empty.html
* dom/Range.cpp:
(WebCore::Range::processContents):
2008-01-06 Luca Bruno <lethalman88@gmail.com>
Reviewed by Alp Toker.
Remove curl handles immediately if the timer is not running.
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::ResourceHandleManager::cancel):
2008-01-06 Alp Toker <alp@atoker.com>
Reviewed by Eric.
Cairo canvas refcounting fix. Reference the surface in the constructor
to match its destruction in the destructor.
Fixes a crash triggered by leaving this page:
http://philip.html5.org/tests/canvas/misc/globalalpha-pattern.html
* html/CanvasPattern.cpp:
(WebCore::CanvasPattern::CanvasPattern):
2008-01-06 Eric Seidel <eric@webkit.org>
Reviewed by darin.
Make attr selectors case-insensitive for certain HTML attributes
http://bugs.webkit.org/show_bug.cgi?id=15470
Test: fast/css/html-attr-case-sensitivity.html
* css/CSSStyleSelector.cpp:
(WebCore::addLocalNameToSet):
(WebCore::createHtmlCaseInsensitiveAttributesSet):
(WebCore::htmlAttributeHasCaseInsensitiveValue):
(WebCore::CSSStyleSelector::checkOneSelector):
2008-01-06 Eric Seidel <eric@webkit.org>
Reviewed by Sam.
Fix :checked matching type='text' and add test case
http://bugs.webkit.org/show_bug.cgi?id=16750
Test: fast/dom/HTMLInputElement/checked-pseudo-selector.html
* html/HTMLInputElement.h: isChecked() can only be true for RADIO or CHECKBOX
2008-01-05 Sam Weinig <sam@webkit.org>
Reviewed by Eric Seidel.
Patch for http://bugs.webkit.org/show_bug.cgi?id=16758
ASSERT when using TreeWalker methods for a current node outside of the root (Acid3)
- Ensure that returned nodes are within the root node, or return 0, in adherence with the spec.
Test: fast/dom/TreeWalker/TreeWalker-currentNode.html
* dom/TreeWalker.cpp:
(WebCore::TreeWalker::parentNode):
(WebCore::TreeWalker::firstChild):
(WebCore::TreeWalker::lastChild):
(WebCore::TreeWalker::previousSibling):
(WebCore::TreeWalker::nextSibling):
(WebCore::TreeWalker::previousNode):
(WebCore::TreeWalker::nextNode):
2008-01-04 Oliver Hunt <oliver@apple.com>
Reviewed by Beth Dakin.
Fix bounds computation bugs responsible for http://bugs.webkit.org/show_bug.cgi?id=16015
and other image repaint bugs.
We now cache the full local bounds for the <image> element, as otherwise certain
combinations of attribute changes could result in incorrect dirty rects.
Additionally we no longer use any of the integer bounds fields on RenderObject for
determining repaint bounds (this was the principle cause of bug #16015).
I also removed the outline painting code as it was both wrong, and not correctly
repainted. I feel safe doing this as no other browser or viewer supports outline
properties on svg elements.
I was unable to make a testcase for this unfortunately, despite seemingly deterministic
behaviour :(
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::layout):
(WebCore::RenderSVGImage::paint):
(WebCore::RenderSVGImage::nodeAtPoint):
(WebCore::RenderSVGImage::calculateAbsoluteBounds):
* rendering/RenderSVGImage.h:
2008-01-04 Beth Dakin <bdakin@apple.com>
Reviewed by Oliver.
Fix for http://bugs.webkit.org/show_bug.cgi?id=16704 input with
type="hidden" matches :enabled/:disabled (Acid3 bug)
Prevent :enabled and :disabled from applying to input type="hidden"
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::checkOneSelector): Rather than
allowing :enabled and :disabled to apply to all controls, only
allow it to apply to non-"hidden" controls
* dom/Element.h:
(WebCore::Element::isInputTypeHidden):
* html/HTMLInputElement.h:
(WebCore::HTMLInputElement::isInputTypeHidden):
2008-01-04 Sam Weinig <sam@webkit.org>
Reviewed by Oliver Hunt.
- Match the spec when calling getFloatValue, getStringValue, getCounterValue,
getRectValue and getRGBColorValue of CSSPrimitiveValue by throwing exceptions
if the type of the CSSPrimitiveValue is not the same as the type requested.
- Fix the intermittent assertion failure seen in svg/css/glyph-orientation-rounding-test.xhtml
Test: fast/css/CSSPrimitiveValue-exceptions.html
* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::getDoubleValue):
(WebCore::CSSPrimitiveValue::getStringValue):
(WebCore::CSSPrimitiveValue::getCounterValue):
(WebCore::CSSPrimitiveValue::getRectValue):
(WebCore::CSSPrimitiveValue::getRGBColorValue):
(WebCore::CSSPrimitiveValue::getPairValue):
* css/CSSPrimitiveValue.h:
(WebCore::CSSPrimitiveValue::getFloatValue):
(WebCore::CSSPrimitiveValue::getIntValue):
(WebCore::CSSPrimitiveValue::getCounterValue):
(WebCore::CSSPrimitiveValue::getRectValue):
(WebCore::CSSPrimitiveValue::getDashboardRegionValue):
* css/CSSPrimitiveValue.idl:
2008-01-04 Antti Koivisto <antti@apple.com>
Reviewed by Darin.
Windows part of <rdar://problem/5647034>
Media tests crash if an old version of QuickTime is installed
Check QuickTime version on Windows too.
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::isAvailable):
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
(WebCore::MediaPlayerPrivate::isAvailable):
* platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
(WebCore::MediaPlayerPrivate::isAvailable):
* platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
* platform/graphics/win/QTMovieWin.cpp:
(QTMovieWin::initializeQuickTime):
2008-01-04 Darin Adler <darin@apple.com>
Reviewed by Maciej and Alice.
- fix <rdar://problem/4404302> Borders where there should be none (canadasmountains.com)
Test: fast/images/border.html
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::parseMappedAttribute): Change the code that handles cases
where the border value is not a number to use the value "0" for the border width instead
of not setting the border width and style at all. This matches other browsers, and makes
more sense.
2008-01-04 Antti Koivisto <antti@apple.com>
Try to fix 64-bit build
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::isAvailable):
2008-01-04 Stephanie <slewis@apple.com>
Reviewed by Oliver.
WARNING: NO TEST CASES ADDED OR CHANGED
Fix another stringImpl leak.
* platform/text/StringImpl.cpp: remove an extra allocation
(WebCore::StringImpl::StringImpl):
2008-01-04 Alice Liu <alice.liu@apple.com>
Reviewed by Mitz.
* platform/graphics/win/FontCacheWin.cpp:
fix loop condition that was causing crash
2008-01-04 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam Roben.
<rdar://problem/5671059> Always show the Timeline and Console buttons in the Inspector
* page/inspector/inspector.css: Remove styles related to the toggle button
and make the area always visible.
* page/inspector/inspector.html: Remove the toggle button.
* page/inspector/inspector.js: Remove code to toggle the status area.
2008-01-04 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Adam Roben.
Temporarily restore BackwardDelete for Windows nightlies to work correctly.
* editing/EditorCommand.cpp: (WebCore::CommandEntry::):
2008-01-04 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
<rdar://problem/5611712> xsl:sort does not use a case folding sort, and the 'case-order' attribute is ignored (16077)
Enable the fix on Windows.
* xml/XSLTProcessor.cpp: (WebCore::XSLTProcessor::transformToString):
Always set a custom sort function, even if it doesn't implement proper collation on the platform.
* xml/XSLTUnicodeSort.cpp:
(WebCore::xsltUnicodeSortFunction):
* xml/XSLTUnicodeSort.h:
If the platform does not use ICU, or ICU has collation support disabled, fall back to binary comparison.
2008-01-04 Antti Koivisto <antti@apple.com>
Fix build.
* bindings/js/JSHTMLElementWrapperFactory.cpp:
2008-01-04 Antti Koivisto <antti@apple.com>
Reviewed by Darin.
Partial fix for <rdar://problem/5647034>
Media tests crash if an old version of QuickTime is installed
Disable media support if QuickTime is not current enough (>=7.3).
Windows patch coming soon.
* bindings/js/JSHTMLElementWrapperFactory.cpp:
(WebCore::createJSHTMLWrapper):
* bindings/js/kjs_window.cpp:
(KJS::Window::getValueProperty):
* html/HTMLElementFactory.cpp:
(WebCore::audioConstructor):
(WebCore::videoConstructor):
(WebCore::sourceConstructor):
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::isAvailable):
* platform/graphics/MediaPlayer.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::isAvailable):
2008-01-04 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin Adler.
<rdar://problem/5604409> JavaScript privilege escalation when Web Inspector accesses page unsafely (16011)
Check if the property is a getter before asking for the value.
If the property is a getter, we no longer show the value.
* page/inspector/PropertiesSidebarPane.js:
* page/inspector/inspector.css:
2008-01-04 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- fix synthetic bold and italic on Windows
Covered by an existing test.
* platform/graphics/win/FontPlatformDataWin.cpp:
(WebCore::FontPlatformData::FontPlatformData):
2008-01-04 Alp Toker <alp@atoker.com>
GTK+ autotools build fix. Terminate empty rules.
* GNUmakefile.am:
2008-01-04 Lars Knoll <lars@trolltech.com>
Reviewed by Simon.
Remove most dependencies of Widget/ScrollView onto native QWidgets.
This also brings the code closer in line with the Windows code. Seems
to work nicely on first try :)
* page/qt/FrameQt.cpp:
(WebCore::Frame::createScriptInstanceForWidget):
* platform/Widget.h:
* platform/qt/PlatformScreenQt.cpp:
(WebCore::screenDepth):
(WebCore::screenDepthPerComponent):
(WebCore::screenIsMonochrome):
(WebCore::screenRect):
* platform/qt/PlatformScrollBarQt.cpp:
(WebCore::PlatformScrollbar::thumbPosition):
(WebCore::PlatformScrollbar::handleMouseMoveEvent):
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
(WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
(WebCore::ScrollView::updateContents):
(WebCore::ScrollView::update):
(WebCore::ScrollView::scrollRectIntoViewRecursively):
(WebCore::ScrollView::updateScrollbars):
(WebCore::ScrollView::addChild):
(WebCore::ScrollView::removeChild):
(WebCore::ScrollView::paint):
* platform/qt/WidgetQt.cpp:
(WebCore::WidgetPrivate::WidgetPrivate):
(WebCore::WidgetPrivate::~WidgetPrivate):
(WebCore::Widget::frameGeometry):
(WebCore::Widget::setFrameGeometry):
(WebCore::Widget::setCursor):
(WebCore::Widget::show):
(WebCore::Widget::hide):
(WebCore::Widget::nativeWidget):
(WebCore::Widget::setNativeWidget):
(WebCore::Widget::suppressInvalidation):
(WebCore::Widget::setSuppressInvalidation):
(WebCore::Widget::invalidateRect):
(WebCore::Widget::topLevel):
(WebCore::Widget::containingWindow):
2008-01-04 Lars Knoll <lars@trolltech.com>
Reviewed by Simon.
make QWebPage a QObject and get things to compile.
Nothing works currently though.
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::updateContents):
(WebCore::ScrollView::update):
* platform/qt/WidgetQt.cpp:
(WebCore::Widget::qwidget):
(WebCore::Widget::invalidateRect):
2008-01-04 Alp Toker <alp@atoker.com>
Reviewed by Mark Rowe.
http://bugs.webkit.org/show_bug.cgi?id=16667
make -j is failing with the autotools based system
Support parallel code generation. Nearly every use of explicit
multiple targets was a potential concurrency bug, though in practice
the bison rules were the first to be noticed because they took longer
to complete and broke the build immediately.
* GNUmakefile.am:
2008-01-04 Alp Toker <alp@atoker.com>
Reviewed by Mark Rowe.
Re-use a single static dummy surface rather than creating and
destroying a surface for each CairoPath.
* platform/graphics/cairo/CairoPath.h:
(WebCore::CairoPath::CairoPath):
2008-01-04 Mark Rowe <mrowe@apple.com>
Tiger build fix.
* platform/Threading.h: The OSAtomic functions take non-volatile pointers on Tiger.
2008-01-03 Mark Rowe <mrowe@apple.com>
Reviewed by Maciej Stachowiak.
Use platform-provided atomic operations in place of inline assembly to
increase portability.
* platform/Threading.h:
(WebCore::atomicIncrement):
(WebCore::atomicDecrement):
2008-01-03 Oliver Hunt <oliver@apple.com>
Reviewed by Maciej.
Fix <rdar://problem/5668517> REGRESSION: Major under painting issues in SVG (carto.net dock example)
We need to cache the absolute bounds of the <image>,
as there's no reliable way to recompute the old bounding
box one we have started layout.
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::layout):
(WebCore::RenderSVGImage::calculateAbsoluteBounds):
* rendering/RenderSVGImage.h:
2008-01-03 Alp Toker <alp@atoker.com>
Reviewed by Mark Rowe.
Support building in Scratchbox, which has a version of make that fails
on wildcard syntax. Use a vpath to match IDL files instead.
* GNUmakefile.am:
2008-01-03 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Darin.
<rdar://problem/5504775> PDF page will not load first time after Adobe
Reader install, unless browser is relaunched
Refresh and re-search the plugin database if the MIME type is not
registered.
* plugins/win/PluginDatabaseWin.cpp:
(WebCore::PluginDatabaseWin::isMIMETypeRegistered):
* plugins/win/PluginDatabaseWin.h:
2008-01-03 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- fix http://bugs.webkit.org/show_bug.cgi?id=16548
<rdar://problem/5659452> REGRESSION(r28810): Font style and sizes are weird for Japanese text
* platform/graphics/win/FontCacheWin.cpp:
(WebCore::linkedFontEnumProc): Added. This callback is used to fetch
a valid LOGFONT for a given family.
(WebCore::getLinkedFonts): Added. Returns a vector of font families
linked to the given font family by the Windows registry key
HKLM\Software\...\FontLink\SystemLink. The registry values typically
differ based on the installed language version of Windows.
(WebCore::FontCache::getFontDataForCharacters): Changed to not use MLang
font mapping, which is Windows code page based, except for characters in
the range U+2000..U+200F. Instead, this function gets the font Uniscribe
would use for the character. However, that font might not actually
contain the character, in which case GDI font linking would substitute a
different font. Therefore, this function walks the linked font list
until it finds a font that actually contains the character.
2008-01-03 Darin Adler <darin@apple.com>
Reviewed by Mitz.
- fix http://bugs.webkit.org/show_bug.cgi?id=16723
tables/mozilla/bugs/bug30418.html test failing due to problems updating dynamic border rules
Test: fast/table/border-changes.html
* html/HTMLTableElement.h:
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::parseMappedAttribute): Check the border type before and after
parsing attributes, rather than doing this only for the rules attribute.
(WebCore::HTMLTableElement::cellBorders): Added.
(WebCore::HTMLTableElement::getSharedCellDecl): Changed to use cellBorders to factor out the
rule about what type of borders to use.
2008-01-02 Sam Weinig <sam@webkit.org>
Reviewed by Darin.
Pass the prototype of WebCore JS objects up the constructor chain
rather than explicitly setting using setPrototype. This removes many
redundant settings of the prototype on construction. To avoid a CG
hazard, the prototype must be constructed before calling the
constructor of the JS object.
- JS objects that inherit from DOMObject, which all bindings objects
(except Window) do, now can't implicitly have a jsNull prototype, but
must explicitly pass it up the construction chain.
* bindings/js/JSCSSRuleCustom.cpp:
(WebCore::toJS):
* bindings/js/JSCSSValueCustom.cpp:
(WebCore::toJS):
* bindings/js/JSDocumentCustom.cpp:
(WebCore::toJS):
* bindings/js/JSEventCustom.cpp:
(WebCore::toJS):
* bindings/js/JSEventTargetNode.cpp:
(WebCore::JSEventTargetNode::JSEventTargetNode):
* bindings/js/JSEventTargetNode.h:
* bindings/js/JSHTMLAllCollection.h:
(WebCore::JSHTMLAllCollection::JSHTMLAllCollection):
* bindings/js/JSHTMLAudioElementConstructor.cpp:
(WebCore::JSHTMLAudioElementConstructor::JSHTMLAudioElementConstructor):
* bindings/js/JSHTMLCollectionCustom.cpp:
(WebCore::getNamedItems):
(WebCore::toJS):
* bindings/js/JSHTMLElementWrapperFactory.cpp:
(WebCore::createJSHTMLWrapper):
* bindings/js/JSHTMLFormElementCustom.cpp:
(WebCore::JSHTMLFormElement::nameGetter):
* bindings/js/JSHTMLInputElementBase.cpp:
(WebCore::JSHTMLInputElementBase::JSHTMLInputElementBase):
* bindings/js/JSHTMLInputElementBase.h:
* bindings/js/JSHTMLOptionElementConstructor.cpp:
(WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
* bindings/js/JSLocation.cpp:
(WebCore::JSLocation::JSLocation):
* bindings/js/JSLocation.h:
* bindings/js/JSNamedNodesCollection.cpp:
(WebCore::JSNamedNodesCollection::JSNamedNodesCollection):
* bindings/js/JSNamedNodesCollection.h:
* bindings/js/JSNodeCustom.cpp:
(WebCore::toJS):
* bindings/js/JSSVGElementWrapperFactory.cpp:
(WebCore::createJSSVGWrapper):
* bindings/js/JSSVGPathSegCustom.cpp:
(WebCore::toJS):
* bindings/js/JSStyleSheetCustom.cpp:
(WebCore::toJS):
* bindings/js/JSXMLHttpRequest.cpp:
(KJS::JSXMLHttpRequestConstructorImp::JSXMLHttpRequestConstructorImp):
(KJS::JSXMLHttpRequestConstructorImp::construct):
(KJS::JSXMLHttpRequest::JSXMLHttpRequest):
* bindings/js/JSXMLHttpRequest.h:
* bindings/js/JSXSLTProcessor.cpp:
(KJS::JSXSLTProcessor::JSXSLTProcessor):
(KJS::XSLTProcessorConstructorImp::XSLTProcessorConstructorImp):
(KJS::XSLTProcessorConstructorImp::implementsConstruct):
(KJS::XSLTProcessorConstructorImp::construct):
* bindings/js/JSXSLTProcessor.h:
* bindings/js/kjs_binding.h:
(KJS::DOMObject::DOMObject):
(KJS::cacheDOMObject):
(KJS::cacheSVGDOMObject):
* bindings/js/kjs_css.cpp:
(WebCore::JSRGBColor::JSRGBColor):
(WebCore::getJSRGBColor):
* bindings/js/kjs_css.h:
* bindings/js/kjs_events.cpp:
(WebCore::JSClipboard::JSClipboard):
(WebCore::toJS):
* bindings/js/kjs_events.h:
* bindings/js/kjs_html.cpp:
(WebCore::ImageConstructorImp::ImageConstructorImp):
* bindings/js/kjs_navigator.cpp:
(KJS::Navigator::Navigator):
(KJS::PluginBase::PluginBase):
* bindings/js/kjs_navigator.h:
* bindings/js/kjs_window.cpp:
(KJS::Window::Window):
(KJS::Window::location):
(KJS::Window::getValueProperty):
* bindings/js/kjs_window.h:
* bindings/scripts/CodeGeneratorJS.pm:
2008-01-03 Holger Hans Peter Freyther <zecke@selfish.org>
Reviewed by Alp.
-This is from http://bugs.webkit.org/show_bug.cgi?id=16115
Change the Gtk ContextMenuItem code to generate the GtkMenuItem
or GtkCheckMenuItem on the fly. Currently we will create a
GtkCheckMenuItem if the ContextMenuItem has been checked. What needs
to be done is to change WebCore to tell the platform code if an item
is checkable or not.
* platform/ContextMenuItem.h:
(WebCore::PlatformMenuItemDescription::PlatformMenuItemDescription):
* platform/gtk/ContextMenuGtk.cpp:
(WebCore::ContextMenu::appendItem):
* platform/gtk/ContextMenuItemGtk.cpp:
(WebCore::ContextMenuItem::ContextMenuItem):
(WebCore::ContextMenuItem::~ContextMenuItem):
(WebCore::ContextMenuItem::createNativeMenuItem):
(WebCore::ContextMenuItem::releasePlatformDescription):
(WebCore::ContextMenuItem::type):
(WebCore::ContextMenuItem::setType):
(WebCore::ContextMenuItem::action):
(WebCore::ContextMenuItem::setAction):
(WebCore::ContextMenuItem::platformSubMenu):
(WebCore::ContextMenuItem::setSubMenu):
(WebCore::ContextMenuItem::setChecked):
2008-01-03 Dan Bernstein <mitz@apple.com>
Rubber-stamped by Adam Roben.
- update the project hierarchy to match the on-disk organization of
the platform directory.
* WebCore.vcproj/WebCore.vcproj:
2008-01-03 Adam Roben <aroben@apple.com>
Fix a buffer overrun and a leak introduced in r29098
Reviewed by Mark.
* platform/text/StringImpl.cpp:
(WebCore::StringImpl::StringImpl): Only allocate one buffer, and make
it be big enough to hold the string contents plus the null terminator.
2008-01-03 Simon Hausmann <hausmann@webkit.org>
Reviewed by Lars.
Added the first revision of QWebView and started moving functionality from QWebPave over to QWebView and QWebFrame.
* WebCore.pro:
2008-01-03 Alp Toker <alp@atoker.com>
Suggested by Mark Rowe.
Fix indentation and remove trailing whitespace.
* platform/network/curl/ResourceHandleManager.cpp:
2008-01-03 Luca Bruno <lethalman88@gmail.com>
Reviewed by Alp Toker.
Fix HTTP POST-based logins to sites like Facebook, GMail by ensuring
that the two POST methods don't conflict.
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::ResourceHandleManager::setupPOST):
2008-01-02 Darin Adler <darin@apple.com>
- touched some files to try to get the Windows buildbot building again
2008-01-02 Dan Bernstein <mitz@apple.com>
Reviewed by Sam Weinig.
- fix small caps rendering
Covered by an existing test.
* platform/graphics/win/FontDataWin.cpp:
(WebCore::FontData::smallCapsFontData):
2008-01-02 Antti Koivisto <antti@apple.com>
Reviewed by Oliver.
Calculate video position and size within the renderer box in WebCore. This
way the aspect ratio calculation is not needed in each MediaPlayer implementation.
This fixes video aspect ratio on Windows.
Covered by an existing pixel test.
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::createQTMovieView):
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::videoBox):
(WebCore::RenderVideo::paintReplaced):
(WebCore::RenderVideo::updatePlayer):
* rendering/RenderVideo.h:
2008-01-02 Ada Chan <adachan@apple.com>
Fix windows build.
* WebCore.vcproj/WebCore.vcproj:
2008-01-02 John Sullivan <sullivan@apple.com>
Reviewed by Dan Bernstein
- fixed <rdar://problem/5579010> REGRESSION: Safari inserts newlines in tab names when U+2028 is present
* loader/DocumentLoader.cpp:
(WebCore::canonicalizedTitle):
in the code that replaces control characters with white space, also replace the unicode line separator
and paragraph separator characters
2008-01-02 Darin Adler <darin@apple.com>
- fix buffer overruns seen on buildbot
* platform/text/StringImpl.cpp:
(WebCore::countCharacter): Added this.
(WebCore::StringImpl::toCoordsArray): Use countCharacter instead of incorrect find expression.
(WebCore::StringImpl::toLengthArray): Ditto.
(WebCore::StringImpl::replace): Added assertions.
2008-01-02 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=16657
Acid3 failure since table.caption and table.thead do not work for nodes added by appendChild
- fix http://bugs.webkit.org/show_bug.cgi?id=16659
Acid3 expects HTMLTableElement.rows to include a <tr> element that is an immediate child of the <table>
Tests: dom/html/level2/html/HTMLCollection07.html
dom/html/level2/html/HTMLCollection08.html
dom/html/level2/xhtml/HTMLCollection07.xhtml
dom/html/level2/xhtml/HTMLCollection08.xhtml
fast/dom/HTMLTableElement/early-acid3-65-excerpt.html
fast/dom/HTMLTableElement/early-acid3-66-excerpt.html
* GNUmakefile.am: Added HTMLTableRowsCollection.
* WebCore.pro: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* WebCoreSources.bkl: Ditto.
* dom/XMLTokenizer.cpp: Took out stray include.
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::itemAfter): Removed all the table rows code, since we now use
a separate class for that collection. Also got rid of the distinct types for custom collections
that don't need them (use Other for both).
* html/HTMLCollection.h: Also made firstItem non-virtual because it doesn't need to be virtual.
* html/HTMLFormCollection.cpp:
(WebCore::HTMLFormCollection::HTMLFormCollection): Use Other instead of FormElements
for the HTMLCollection type.
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::HTMLTableElement): Eliminated m_head, m_foot, m_firstBody, and m_caption.
(WebCore::HTMLTableElement::caption): Added non-inline version. Finds the caption rather than
keeping a pointer to it.
(WebCore::HTMLTableElement::setCaption): Rewrote.
(WebCore::HTMLTableElement::tHead): Ditto.
(WebCore::HTMLTableElement::setTHead): Ditto.
(WebCore::HTMLTableElement::tFoot): Ditto.
(WebCore::HTMLTableElement::setTFoot): Ditto.
(WebCore::HTMLTableElement::createTHead): Ditto.
(WebCore::HTMLTableElement::deleteTHead): Ditto.
(WebCore::HTMLTableElement::createTFoot): Ditto.
(WebCore::HTMLTableElement::deleteTFoot): Ditto.
(WebCore::HTMLTableElement::createCaption): Ditto.
(WebCore::HTMLTableElement::deleteCaption): Ditto.
(WebCore::HTMLTableElement::lastBody): Added.
(WebCore::HTMLTableElement::insertRow): Rewrote to use a loop based on code in HTMLTableRowsCollection.
This is different from the old code mainly in how it handles rows outside any section.
(WebCore::HTMLTableElement::deleteRow): Ditto.
(WebCore::HTMLTableElement::addChild): Removed code to set the various members. Keeping pointers to
these was a possible source of serious bugs too, including crashes with stale pointers, although I
didn't write any test cases to prove those bugs existed.
(WebCore::HTMLTableElement::parseMappedAttribute): Changed the rules code to visit all cells, not
just the cells of the first body. I believe this fixed rendering on some table tests. I think the code
visits too many cells and also the use of recursion is overkill, but I didn't try to fix that.
(WebCore::HTMLTableElement::rows): Changed to use the new HTMLTableRowsCollection.
* html/HTMLTableElement.h: Changed functions to return PassRefPtr, which can be important if strange
things like DOM mutation events take things ot of the tree before they are safely referenced by
JavaScript wrappers. Also changed functions to take PassRefPtr and added exceptions. Removed unneeded
firstTBody and setTBody functions and childrenChanged function override, as well as unused Rules and
Frame enums. Removed m_head, m_foot, m_firstBody, and m_caption, and added lastBody function. Removed
unneeded friend declaration for HTMLTableCellElement.
* html/HTMLTableElement.idl: Allow the setteres for caption, tHead, and tFoot to raise exceptions.
* html/HTMLTableRowsCollection.cpp: Added. Implements the HTML 5 rule for which rows are in the
collection in which order.
* html/HTMLTableRowsCollection.h: Added.
* loader/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryTokenizer::appendEntry): Use the standard insertRow function instead of
coming up with our own way of inserting a row. Simplifies things -- we can remove the code to
create a tbody element.
2008-01-02 Darin Adler <darin@apple.com>
Reviewed by Alice and Tim.
- try to fix GTK and Qt builds
* platform/win/ScrollViewWin.cpp:
(WebCore::ScrollView::scroll): Improve logic slightly for the case of
vertical scrolling when there's no vertical scroll bar.
* platform/gtk/ScrollViewGtk.cpp:
(WebCore::ScrollView::scroll): Copy the code from Windows. Maybe this
should be factored differently.
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::scroll): Ditto.
2008-01-02 Darin Adler <darin@apple.com>
Reviewed by Anders.
- http://bugs.webkit.org/show_bug.cgi?id=16712
change StringImpl to take and return PassRefPtr instead of raw pointers
Also eliminated use of const StringImpl. Since StringImpl is immutable there
is no distinction between a const and non-const one at the moment.
* WebCore.base.exp: Updated.
* css/CSSHelper.cpp:
(WebCore::parseURL): Make String directly, not by making a StringImpl.
* dom/Attr.cpp:
(WebCore::Attr::createTextChild): Convert AtomicString to String with domString,
not via StringImpl.
(WebCore::Attr::setValue): Remove unneed call to impl() when passing a String
to a function that takes a String.
* dom/CDATASection.cpp: Removed unused constructor.
(WebCore::CDATASection::cloneNode): Added a now-needed .get().
(WebCore::CDATASection::createNew): Changed function to take a PassRefPtr.
* dom/CDATASection.h:
* dom/CharacterData.cpp:
(WebCore::CharacterData::CharacterData): Removed unneeded initialization and
ref() now that the string is a RefPtr. Also updated to not call "new StringImpl".
(WebCore::CharacterData::~CharacterData): Removed unneeded deref() since it's
a RefPtr.
(WebCore::CharacterData::setData): More of that.
(WebCore::CharacterData::substringData): Ditto.
(WebCore::CharacterData::appendData): Ditto.
(WebCore::CharacterData::insertData): Ditto.
(WebCore::CharacterData::deleteData): Ditto.
(WebCore::CharacterData::replaceData): Ditto.
(WebCore::CharacterData::nodeValue): Ditto.
(WebCore::CharacterData::dispatchModifiedEvent): Ditto.
(WebCore::CharacterData::dump): Ditto.
* dom/CharacterData.h: Changed to use a RefPtr. I could have used a String
instead, but since String adds extra branches to handle 0, I figured it was
more conservative to just use RefPtr. Later it would be good to figure out
which is preferred style and be more consistent. Maybe we'll phase out
StringImpl, or maybe we'll go the other way and use it more since it can be
more efficient.
* dom/DOMImplementation.cpp:
(WebCore::addString): Changed set to use String rather than StringImpl.
(WebCore::isSVG10Feature): Ditto.
(WebCore::isSVG11Feature): Ditto.
(WebCore::DOMImplementation::createDocument): Replaced custom code to
find a colon with a call to String::find.
* dom/Range.cpp:
(WebCore::Range::insertNode): Updated since the result of splitText is now
a PassRefPtr.
* dom/Text.cpp:
(WebCore::Text::splitText): Updated since str is now a RefPtr. Also made the
result of this function be a PassRefPtr.
(WebCore::Text::createRenderer): Ditto.
(WebCore::Text::createNew): Made the parameter and result both be PassRefPtr.
* dom/Text.h:
* html/HTMLElement.cpp:
(WebCore::HTMLElement::nodeName): Use String::upper.
* html/HTMLInputElement.cpp:
(WebCore::numGraphemeClusters): Remove now-unneeded const.
(WebCore::numCharactersInGraphemeClusters): Ditto.
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::processToken): Updated for function name change.
* platform/text/AtomicString.cpp:
(WebCore::CStringTranslator::translate): Updated since there is no longer
a constructor that takes a string.
* platform/text/PlatformString.h: Added new constructors that take
PassRefPtr and RefPtr. Removed misleading comment.
* platform/text/String.cpp:
(WebCore::String::String): Changed to use StringImpl::create, which handles
the empty string automatically.
(WebCore::String::append): Ditto.
(WebCore::String::charactersWithNullTermination): Similar.
(WebCore::String::format): Ditto.
* platform/text/StringHash.h: Took out unneeded const.
* platform/text/StringImpl.cpp:
(WebCore::deleteUCharVector): Changed to take a const pointer since the
buffers are now const UChar buffers.
(WebCore::StringImpl::StringImpl): Removed some constructors. Got rid of the
separate init functions. The constructors are now private and used only in
the create functions and one or two other places.
(WebCore::StringImpl::containsOnlyWhitespace): Removed now-meaningless const.
(WebCore::StringImpl::substring): Ditto. Also changed return value to be a
PassRefPtr.
(WebCore::StringImpl::characterStartingAt): Ditto.
(WebCore::StringImpl::toLength): Ditto.
(WebCore::StringImpl::toCoordsArray): Ditto.
(WebCore::StringImpl::toLengthArray): Ditto.
(WebCore::StringImpl::isLower): Ditto.
(WebCore::StringImpl::lower): Ditto. Changed to use Vector and adopt so we
don't have to use new directly here. Makes empty string handling more consistent.
(WebCore::StringImpl::upper): Ditto.
(WebCore::StringImpl::secure): Ditto.
(WebCore::StringImpl::foldCase): Ditto.
(WebCore::StringImpl::stripWhiteSpace): Ditto.
(WebCore::StringImpl::simplifyWhiteSpace): Ditto.
(WebCore::StringImpl::capitalize): Ditto.
(WebCore::StringImpl::toInt): Removed now-meaningless const.
(WebCore::StringImpl::toInt64): Ditto.
(WebCore::StringImpl::toUInt64): Ditto.
(WebCore::StringImpl::toDouble): Ditto.
(WebCore::StringImpl::toFloat): Ditto.
(WebCore::StringImpl::find): Ditto.
(WebCore::StringImpl::reverseFind): Ditto.
(WebCore::StringImpl::endsWith): Ditto.
(WebCore::StringImpl::replace): Ditto.
(WebCore::equal): Ditto.
(WebCore::equalIgnoringCase): Ditto.
(WebCore::StringImpl::ascii): Ditto.
(WebCore::StringImpl::defaultWritingDirection): Ditto.
(WebCore::StringImpl::createStrippingNullCharacters): Ditto.
(WebCore::StringImpl::adopt): Added special case so this uses the shared
empty string like other functions. Also optimized the common case where the
vector happens to already have the right size so we don't do a fastRealloc
at all in those cases.
(WebCore::StringImpl::create): Added. These are now the public functions for
creating new StringImpl objects. They all implement the shared empty string.
(WebCore::StringImpl::createWithTerminatingNullCharacter):
* platform/text/StringImpl.h:
* platform/text/cf/StringCF.cpp:
(WebCore::String::String): Use StringImpl::create instead of new StringImpl.
* platform/text/cf/StringImplCF.cpp:
(WebCore::StringImpl::createCFString): Removed now-obsolete const.
* platform/text/mac/StringImplMac.mm:
(WebCore::StringImpl::operator NSString *): Ditto.
* platform/text/mac/StringMac.mm:
(WebCore::String::String): Use StringImpl::create instead of new StringImpl.
* platform/text/qt/StringQt.cpp:
(WebCore::String::String): Ditto.
* platform/text/wx/StringWx.cpp:
(WebCore::String::String): Ditto.
* rendering/RenderBR.cpp:
(WebCore::RenderBR::RenderBR): Ditto.
* rendering/RenderSVGInlineText.cpp:
(WebCore::RenderSVGInlineText::RenderSVGInlineText): Use PassRefPtr.
* rendering/RenderSVGInlineText.h:
* rendering/RenderText.cpp:
(WebCore::charactersAreAllASCII): Removed now-unneeded const.
* rendering/RenderTextFragment.cpp:
(WebCore::RenderTextFragment::originalText): Use RefPtr.
2008-01-02 Timothy Hatcher <timothy@apple.com>
Reviewed by Oliver Hunt.
<rdar://problem/5618086> WebInspector does not expand the DOM tree after being closed
Closing the Web Inspector causes the DOM tree outline to be torn down, clearing the
internal element lookup tables. The represented DOM node object still holds the identifier
it was assigned, and a later call to findTreeElement will use that original identifier
against a cleared lookup table. In that case we need to fallback on DOM ancestor lookup.
* page/inspector/treeoutline.js:
(TreeOutline.prototype.findTreeElement): If the DOM node already had a __treeElementIdentifier,
but the TreeOutline no longer has the element in the _knownTreeElements list do an ancestor lookup
instead of an early return.
2008-01-02 Alice Liu <alice.liu@apple.com>
Reviewed by Maciej.
Fixed <rdar://5283861> (problems scrolling in gmail message content area)
* platform/ScrollView.h:
* platform/win/ScrollViewWin.cpp:
(WebCore::ScrollView::scroll):
Changed return value to bool to reflect success of scroll attempt
2008-01-02 Alexey Proskuryakov <ap@webkit.org>
Fixed a typo (pointed out in review, but I somehow missed it at first).
* editing/EditorCommand.cpp: (WebCore::executeDelete):
2008-01-02 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
Resolved several FIXMEs in EditorCommand.
Made recently added commands hidden from JS again.
Removed BackwardDelete implementation, which used to be dead code, but got exposed now.
Tests: editing/execCommand/delete-no-scroll.html
editing/execCommand/forward-delete-no-scroll.html
editing/execCommand/insert-line-break-no-scroll.html
* editing/EditorCommand.cpp:
(WebCore::executeDelete):
(WebCore::executeForwardDelete):
(WebCore::executeInsertLineBreak):
(WebCore::supportedFromMenuOrKeyBinding):
(WebCore::CommandEntry::):
2008-01-02 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=14555
action=mailto + method=get - The generated mailto URI is incorrect and the hvalues are encoded twice
http://bugs.webkit.org/show_bug.cgi?id=14774
Submitted data only includes first input item
Reworked encoding of mailto URLs to match other browsers.
Moved most of related logic from FrameLoader::submitForm() to HTMLFormElement::submit().
Tests: fast/forms/mailto/advanced-get.html
fast/forms/mailto/advanced-put.html
fast/forms/mailto/get-multiple-items-text-plain.html
fast/forms/mailto/get-multiple-items-x-www-form-urlencoded.html
fast/forms/mailto/get-multiple-items.html
fast/forms/mailto/get-non-ascii.html
fast/forms/mailto/get-non-ascii-text-plain.html
fast/forms/mailto/get-overwrite-query.html
fast/forms/mailto/post-append-query.html
fast/forms/mailto/post-multiple-items-multipart-form-data.html
fast/forms/mailto/post-multiple-items-text-plain.html
fast/forms/mailto/post-multiple-items-x-www-form-urlencoded.html
fast/forms/mailto/post-multiple-items.html
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::submit):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::submitForm):
2008-01-02 Mark Rowe <mrowe@apple.com>
Autotools build fix.
* GNUmakefile.am: Remove files before generating them, not after.
2008-01-02 Mark Rowe <mrowe@apple.com>
Rubber-stamped by Alp Toker.
Add missing dependencies to some GNUmakefile.am rules.
* GNUmakefile.am:
2008-01-02 Mark Rowe <mrowe@apple.com>
Reviewed by Alp Toker.
Autotools build fix. Make can expand $@ to any of the targets for the rule,
while we always want to use the name of the .cpp file as the output file.
* GNUmakefile.am:
2008-01-02 Luca Bruno <lethalman88@gmail.com>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=16115
[GTK] ContextMenu and ContextMenuItem lacks an implementation
Add context menu support.
Based on a patch by Holger Freyther.
* platform/gtk/ContextMenuGtk.cpp:
(WebCore::menuItemActivated):
(WebCore::ContextMenu::ContextMenu):
(WebCore::ContextMenu::~ContextMenu):
(WebCore::ContextMenu::appendItem):
(WebCore::ContextMenu::setPlatformDescription):
(WebCore::ContextMenu::releasePlatformDescription):
* platform/gtk/ContextMenuItemGtk.cpp:
(WebCore::ContextMenuItem::ContextMenuItem):
(WebCore::ContextMenuItem::~ContextMenuItem):
(WebCore::ContextMenuItem::releasePlatformDescription):
(WebCore::ContextMenuItem::type):
(WebCore::ContextMenuItem::action):
(WebCore::ContextMenuItem::setAction):
(WebCore::ContextMenuItem::platformSubMenu):
(WebCore::ContextMenuItem::setSubMenu):
(WebCore::ContextMenuItem::setChecked):
(WebCore::ContextMenuItem::setEnabled):
2008-01-02 Alp Toker <alp@atoker.com>
GTK+ autotools build fix. Track changes in r29073.
* GNUmakefile.am:
2008-01-01 Darin Adler <darin@apple.com>
- fix release build
* bindings/js/kjs_binding.cpp:
(KJS::setDOMException): Initialize to avoid uninitialized variable warning.
Removed default so we get a warning if there's a missing case.
2008-01-01 David D. Kilzer <ddkilzer@webkit.org>
Scripting MIME Types application/ecmascript, application/javascript not viewable
<http://bugs.webkit.org/show_bug.cgi?id=11063>
Reviewed by Darin.
This patch consolidates the list of acceptable MIME types for JavaScript
source into the MIMETypeRegistry class, and replaces checks for these
types with a call to MIMETypeRegistry::isSupportedJavaScriptMIMEType().
No tests added since viewing JavaScript source is not testable.
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::isTextMIMEType): Use
MIMETypeRegistry::isSupportedJavaScriptMIMEType() instead of a single
hard-coded MIME type, "application/x-javascript".
* html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::shouldExecuteAsJavaScript): Moved list of
JavaScript MIME types from here to
MIMETypeRegistry::initialiseSupportedJavaScriptMIMETypes().
* platform/MIMETypeRegistry.cpp:
(WebCore::initialiseSupportedJavaScriptMIMETypes): Added. List of
MIME types came from HTMLScriptElement::shouldExecuteAsJavaScript().
(WebCore::initialiseSupportedNonImageMimeTypes): Remove single
hard-coded MIME type, "application/x-javascript", from the list.
(WebCore::initialiseMIMETypeRegistry): Initialise
supportedJavaScriptMIMETypes, then pre-populate supportedNonImageMIMETypes
with values in supportedJavaScriptMIMETypes.
(WebCore::MIMETypeRegistry::isSupportedJavaScriptMIMEType): Added.
* platform/MIMETypeRegistry.h: Added isSupportedJavaScriptMIMEType().
2008-01-01 Sam Weinig <sam@webkit.org>
Reviewed by Darin.
Patch for http://bugs.webkit.org/show_bug.cgi?id=16691
Use real JS objects for the rest of the DOMExceptions (EventException, RangeException, etc)
- Create JS objects for all the different types of exceptions, each with there own prototype and constructor.
- Abstract all the logic and storage for exception classes in to an ExceptionBase class.
- Move specialized ExceptionCodes into the exception classes. (ie. the EventExceptionCode enum is now in EventException).
Tests: fast/dom/DOMException/EventException.html
fast/dom/DOMException/RangeException.html
fast/dom/DOMException/XPathException.html
http/tests/xmlhttprequest/XMLHttpRequestException.html
svg/custom/SVGException.html
* DerivedSources.make:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* bindings/js/JSSVGMatrixCustom.cpp:
(WebCore::JSSVGMatrix::inverse):
(WebCore::JSSVGMatrix::rotateFromVector):
* bindings/js/kjs_binding.cpp:
(KJS::setDOMException):
* bindings/scripts/CodeGeneratorJS.pm: Use the constant values defined
in the IDL as the ObjC bindings do.
* bindings/scripts/CodeGeneratorObjC.pm:
* dom/DOMCoreException.cpp: Removed.
* dom/DOMCoreException.h:
(WebCore::DOMCoreException::DOMCoreException):
* dom/DOMCoreException.idl:
* dom/Event.h:
* dom/EventException.h: Copied from WebCore/dom/DOMCoreException.h.
(WebCore::EventException::EventException):
(WebCore::EventException::):
* dom/EventException.idl: Copied from WebCore/dom/DOMCoreException.idl.
* dom/EventTargetNode.cpp:
(WebCore::EventTargetNode::dispatchEvent):
* dom/ExceptionBase.cpp: Copied from WebCore/dom/DOMCoreException.cpp.
(WebCore::ExceptionBase::ExceptionBase):
(WebCore::ExceptionBase::toString):
* dom/ExceptionBase.h: Copied from WebCore/dom/DOMCoreException.h.
(WebCore::ExceptionBase::code):
* dom/ExceptionCode.cpp:
(WebCore::getExceptionCodeDescription):
* dom/ExceptionCode.h:
(WebCore::):
* dom/Range.cpp:
(WebCore::Range::insertNode):
(WebCore::Range::checkNodeWOffset):
(WebCore::Range::checkNodeBA):
(WebCore::Range::selectNode):
(WebCore::Range::selectNodeContents):
(WebCore::Range::surroundContents):
* dom/RangeException.h:
(WebCore::RangeException::RangeException):
(WebCore::RangeException::):
* dom/RangeException.idl:
* page/DOMWindow.idl:
* svg/SVGColor.cpp:
(WebCore::SVGColor::setRGBColor):
* svg/SVGException.h:
(WebCore::SVGException::SVGException):
(WebCore::SVGException::):
* svg/SVGException.idl:
* svg/SVGLocatable.cpp:
(WebCore::SVGLocatable::getTransformToElement):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::dispatchEvent):
(WebCore::XMLHttpRequest::open):
(WebCore::XMLHttpRequest::send):
* xml/XMLHttpRequest.h:
* xml/XMLHttpRequestException.h: Copied from WebCore/dom/DOMCoreException.h.
(WebCore::XMLHttpRequestException::XMLHttpRequestException):
(WebCore::XMLHttpRequestException::):
* xml/XMLHttpRequestException.idl: Copied from WebCore/dom/DOMCoreException.idl.
* xml/XPathEvaluator.h:
* xml/XPathException.h: Copied from WebCore/dom/DOMCoreException.h.
(WebCore::XPathException::XPathException):
(WebCore::XPathException::):
* xml/XPathException.idl: Copied from WebCore/dom/DOMCoreException.idl.
* xml/XPathParser.cpp:
(WebCore::XPath::Parser::parseStatement):
* xml/XPathResult.cpp:
(WebCore::XPathResult::convertTo):
(WebCore::XPathResult::numberValue):
(WebCore::XPathResult::stringValue):
(WebCore::XPathResult::booleanValue):
(WebCore::XPathResult::singleNodeValue):
(WebCore::XPathResult::snapshotLength):
(WebCore::XPathResult::iterateNext):
(WebCore::XPathResult::snapshotItem):
2008-01-01 Sam Weinig <sam@webkit.org>
Remove JSDomExceptionConstructor.lut.h from clean step
as it no longer exists.
* GNUmakefile.am:
2008-01-01 Dan Bernstein <mitz@apple.com>
- Windows build fix
* WebCore.vcproj/WebCore.vcproj:
2008-01-01 Sam Weinig <sam@webkit.org>
Try again to fix the builds
* DerivedSources.make:
2008-01-01 Sam Weinig <sam@webkit.org>
Fix non-mac builds.
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCoreSources.bkl:
2008-01-01 Eric Seidel <eric@webkit.org>
Reviewed by Alexey.
Don't replace \ with / in data: urls
http://bugs.webkit.org/show_bug.cgi?id=16692
Test: fast/loader/url-data-replace-backslash.html
* platform/KURL.cpp:
(WebCore::KURL::init):
2008-01-01 Alp Toker <alp@atoker.com>
GTK+ autotools build fix. Track changes in r29051, r29058 and pass the
correct parameter to AM_INIT_AUTOMAKE.
* GNUmakefile.am:
2007-12-31 Sam Weinig <sam@webkit.org>
Reviewed by Darin.
Patch for http://bugs.webkit.org/show_bug.cgi?id=16637
Acid3 expects ExeceptionCode constants to be defined on DOMException objects
- Make DOMException a real JS object.
Test: fast/dom/DOMException/prototype-object.html
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
This is no longer needed as the autogenerated classes now includes the
constructor.
* bindings/js/JSDOMExceptionConstructor.cpp: Removed.
* bindings/js/JSDOMExceptionConstructor.h: Removed.
Create on demand and use the new class for DOMExceptions.
* bindings/js/kjs_binding.cpp:
(KJS::setDOMException):
Remove no longer needed custom constructor getter.
* bindings/js/kjs_window.cpp:
(KJS::Window::getValueProperty):
Don't expose DOMCoreException as the name of class by special casing
the user visible class name to be DOMException.
* bindings/scripts/CodeGeneratorJS.pm:
The DOMException class/file needs to be named DOMCoreException because there is
name conflict with one of the Objective-C bindings classes. It should be renamed
to DOMException when the Objective-C bindings are moved into WebKit.
* dom/DOMCoreException.cpp: Added.
(WebCore::DOMCoreException::DOMCoreException):
(WebCore::DOMCoreException::toString):
* dom/DOMCoreException.h: Added.
(WebCore::DOMCoreException::):
(WebCore::DOMCoreException::code):
(WebCore::DOMCoreException::name):
(WebCore::DOMCoreException::message):
* dom/DOMCoreException.idl: Added.
* page/DOMWindow.idl:
2007-12-31 Sam Weinig <sam@webkit.org>
Re-enable querySelector and querySelectorAll and touch the necessary files to not
kill the windows build.
* WebCore.vcproj/build-generated-files.sh:
* bindings/scripts/CodeGeneratorCOM.pm:
* dom/Document.idl:
* dom/Element.idl:
2007-12-31 Darin Adler <darin@apple.com>
- fix Windows build
* dom/Document.idl: Temporarily disable querySelector and querySelectorAll, since they are showing
up as pure virtual functions. Sam can fix this later.
* dom/Element.idl: Ditto.
2007-12-31 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- fix http://bugs.webkit.org/show_bug.cgi?id=14134
<rdar://problem/5655160> REGRESSION (r25353): Whitespace nodes ignored between inline list items
Test: fast/dynamic/create-renderer-for-whitespace-only-text.html
* dom/Node.cpp:
(WebCore::Node::attach): Added code to check if this node's renderer
has become the "previous renderer" of any sibling text node, and if so,
ensure that that node gets a renderer if it now needs one.
(WebCore::Node::createRendererIfNeeded): Removed the assertion that the
node is not attached.
2007-12-31 Darin Adler <darin@apple.com>
Reviewed by Mitz.
- fix http://bugs.webkit.org/show_bug.cgi?id=16641
Acid3 reveals HTMLFormElement.elements fails to update when element name changes
Test: fast/dom/HTMLFormElement/elements-not-in-document.html
This was a bug specific to forms that are not in the document tree.
The fix was to change the code to increment the document version number to match
up with other document change tracking. Maybe at some point we can clean these up
so we don't have so many competing change notification systems.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::replaceChild): Removed bogus comment.
(WebCore::ContainerNode::addChild): Added an explicit incDOMTreeVersion
call here, since this code path bypasses the subtree-modified event code.
* dom/Element.cpp:
(WebCore::Element::setAttribute): Remove the inDocument() check -- not all HTML
collections are for things in the document.
(WebCore::Element::setAttributeMap): Ditto.
* dom/EventTargetNode.cpp:
(WebCore::EventTargetNode::dispatchSubtreeModifiedEvent): Added a call to
incDOMTreeVersion here; covers most cases of tree structure changes.
* dom/Node.cpp:
(WebCore::Node::attach): Remove call to incDOMTreeVersion -- creating a renderer
has nothing to do with changes to the DOM tree!
(WebCore::Node::detach): Ditto.
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::registerFormElement): Remove call to incDOMTreeVersion.
This is handled at a lower level and doesn't need to be here.
(WebCore::HTMLFormElement::removeFormElement): Ditto.
2007-12-31 Henry Mason <hmason@mac.com>
Reviewed by Darin.
Patch for http://bugs.webkit.org/show_bug.cgi?id=14994
Support for MessageEvent and cross-domain messaging
Test: http/tests/messaging/cross-domain-message-send.html
* DerivedSources.make:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::customGetOwnPropertySlot): Allow cross-domain access to the
postMessage function.
(WebCore::JSDOMWindow::postMessage):
* bindings/js/JSEventCustom.cpp:
(WebCore::toJS):
* dom/Event.cpp:
(WebCore::Event::isMessageEvent):
* dom/Event.h:
* dom/EventNames.h: New event name
* dom/MessageEvent.cpp: Added.
* dom/MessageEvent.h: Added.
* dom/MessageEvent.idl: Added.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::postMessage): Added.
* page/DOMWindow.h:
* page/DOMWindow.idl:
2007-12-31 Darin Adler <darin@apple.com>
Suggested by Antti.
- turn ENABLE_VIDEO back off for Windows until we can install QuickTime on the build bots
* WebCore.vcproj/WebCore.vcproj: Removed ENABLE_VIDEO.
* WebCore.vcproj/build-generated-files.sh: Ditto.
2007-12-30 Alp Toker <alp@atoker.com>
Reviewed by Dan Bernstein.
Silence warning.
* dom/NodeList.h:
2007-12-30 Sam Weinig <sam@webkit.org>
Reviewed by Oliver Hunt.
Fix for http://bugs.webkit.org/show_bug.cgi?id=16387
Variable names can be enumerated across domains
<rdar://problem/5640454>
Test: http/tests/security/cross-frame-access-enumeration.html
* bindings/js/kjs_window.cpp:
(KJS::Window::getPropertyNames): Override method to test same-origin policy.
* bindings/js/kjs_window.h:
2007-12-30 Sam Weinig <sam@webkit.org>
Reviewed by Oliver Hunt.
Patch for http://bugs.webkit.org/show_bug.cgi?id=10686
event instanceof MouseEvent throws exception
Add JS constructors for all the Event types.
Test: fast/events/event-instanceof.html
* WebCore.xcodeproj/project.pbxproj:
* dom/KeyboardEvent.idl:
* dom/MouseEvent.idl:
* dom/MutationEvent.idl:
* dom/OverflowEvent.idl:
* dom/ProgressEvent.idl:
* dom/TextEvent.idl:
* dom/UIEvent.idl:
* dom/WheelEvent.idl:
* page/DOMWindow.idl:
2007-12-30 David Kilzer <ddkilzer@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=15359
JPEG image not shown when height is specified as percentage inside a table
The problem occurs when a replaced element (image, canvas, etc.) with
a percent-height attribute is contained by a table cell with an auto-
or percent-height attribute. If there are no other conditions to cause
the table cell's height to expand, an available height of zero will
always be returned. In these cases, the intrinsic height of the
replaced element should be used if it is greater than the available
height of the table cell.
Tests: fast/replaced/table-percent-height.html
tables/mozilla/bugs/bug137388-1.html
tables/mozilla/bugs/bug137388-2.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::calcReplacedHeightUsing):
2007-12-30 Luca Bruno <lethalman88@gmail.com>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=16099
Crash in CURL for empty POST
We have to set POST even when the data is empty, otherwise cURL will
hang while waiting for a response.
* platform/network/curl/ResourceHandleManager.cpp
(ResourceHandleManager::setupPOST): allow empty POST
2007-12-29 Jan Michael Alonzo <jmalonzo@unpluggable.com>
Reviewed by Alp Toker.
Move all SVG related stuff inside SVG block. Don't include
SVGNames, SVGElementFactory, and XLinkNames when SVG is not
enabled
* GNUmakefile.am:
2007-12-29 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=14428
FCKEditor: Images disappear on drag/drop and copy/paste
Test: editing/pasteboard/drag-image-in-about-blank-frame.html
* editing/markup.cpp: (WebCore::createFragmentFromMarkup): Don't use "about:blank" as a
base URL, just like we don't use an empty one.
2007-12-29 Jan Michael Alonzo <jmalonzo@unpluggable.com>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=16669
autotools update and fixes
Autotools update and database/icon database inclusion guard fixes
* GNUmakefile.am:
- Update autotools config as per -r29012 changes
- Fix CSSGrammar.h/cpp generation (Seo Sanghyeon, sanxiyn)
* dom/Document.cpp:
* loader/icon/IconDatabase.h:
* page/DOMWindow.cpp:
* page/InspectorController.cpp:
* page/Settings.cpp:
* storage/Database.h:
- Remove ENABLE(DATABASE) inclusion guard. Let the includer add the guard instead.
2007-12-29 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Alexey.
Respect horiz-origin-x / horiz-origin-y / vert-origin-x / vert-origin-y properties when drawing SVG Fonts.
(Fixes fonts-elem-05-t.svg in a --svg-fonts build)
* svg/SVGFont.cpp:
(WebCore::Font::drawGlyphsWithSVGFont):
2007-12-29 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Oliver.
Further SVG Font work. Parse all <glyph> attributes, using SVGGlyphElement::buildGlyphIdentifier.
SVGFontElement::collectGlyphs() now uses this method. Per character advance values work well now.
* platform/graphics/FontData.cpp:
(WebCore::SVGFontData::convertEmUnitToPixel): Add helper function.
(WebCore::FontData::ascent):
(WebCore::FontData::descent):
* platform/graphics/FontData.h:
* svg/SVGFont.cpp:
(WebCore::isVerticalWritingMode): Add helper function.
(WebCore::Font::drawGlyphsWithSVGFont):
* svg/SVGFontElement.cpp:
(WebCore::SVGFontElement::collectGlyphs): Simplified implementation - SVGGlyphIdentifier now build by SVGGlyphElement.
* svg/SVGGlyphElement.cpp:
(WebCore::parseArabicForm): Helper function.
(WebCore::parseOrientation): Ditto.
(WebCore::parsePathData): Ditto.
(WebCore::SVGGlyphElement::buildGlyphIdentifier):
* svg/SVGGlyphElement.h:
(WebCore::SVGGlyphElement::rendererIsNeeded):
2007-12-29 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Oliver.
Refactor SVGAnimationElement::parseValues into a generic function parseDelimitedString.
SVGAnimationElement needs to parse semicolon-seperated strings, SVGGlyphElement comma-seperated.
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::parseMappedAttribute):
* svg/SVGParserUtilities.cpp:
(WebCore::parseDelimitedString):
* svg/SVGParserUtilities.h:
2007-12-29 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Maciej.
Add new helper structure SVGFontData - FontData holds this object as OwnPtr.
Store several attribute values there (horiz-adv-x, horiz-origin-x etc..)
To optimize for the common case ('FontData' used for HTML rendering) it feels
better to hold one OwnPtr in FontData, than several floats.
Parse all <font> attributes in SVGFontFaceElement::createFontData.
* platform/graphics/FontData.cpp:
(WebCore::SVGFontData::SVGFontData):
(WebCore::FontData::FontData):
(WebCore::FontData::ascent):
(WebCore::FontData::descent):
* platform/graphics/FontData.h:
(WebCore::FontData::isSVGFont):
(WebCore::FontData::svgFontData):
* svg/SVGFont.cpp:
(WebCore::Font::drawGlyphsWithSVGFont):
* svg/SVGFontElement.cpp:
* svg/SVGFontElement.h:
(WebCore::SVGFontElement::rendererIsNeeded):
* svg/SVGFontFaceElement.cpp:
(WebCore::SVGFontFaceElement::unitsPerEm):
(WebCore::SVGFontFaceElement::createFontData):
2007-12-28 Darin Adler <darin@apple.com>
- try to fix Windows and WX builds (broken by SVG Fonts check-in)
* platform/graphics/win/FontWin.cpp:
(WebCore::Font::drawGlyphs): Pass font size to FontData::ascent, now that it requires it.
I can't see how it can be right to require the font size for ascent and descent,
but not for other metrics functions in FontData.
* platform/graphics/wx/FontWx.cpp:
(WebCore::Font::drawGlyphs): Pass font size to FontData::ascent and FontData::descent.
2007-12-28 Dan Bernstein <mitz@apple.com>
Reviewed by Mark Rowe.
- fix http://bugs.webkit.org/show_bug.cgi?id=16650
<rdar://problem/5664872> REGRESSION (r28278-r28314): ATSUI uses LTR writing direction for all text runs
Covered by existing pixel tests.
* platform/graphics/mac/FontMac.mm:
(WebCore::Font::drawComplexText): Corrected to maintain the style
information in the adjusted text run when passing it to
ATSUILayoutParameters. Prior to r28298 the style was passed separately.
2007-12-29 Nikolas Zimmermann <zimmermann@kde.org>
Build fix, not reviewed.
Add wtf/OwnPtr.h include, to fix --svg-fonts build.
* css/SVGCSSFontFace.h:
2007-12-29 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Eric.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=10649 (WebKit SVG needs SVG Fonts support)
Begin implementation of SVG Fonts module. Basic documents using SVG Fonts already work.
Only local, in-document fonts who declare their glyphs using the <glyph d="..."> path syntax
are supported. (<glyph> containing arbitary SVG content as child elements, not supported yet).
Limited to single char <-> glyph mapping, no ligatures supported yet.
(ie. <glyph unicode='A'/> <glyph unicode='AB'/> - it ignores the 'AB' glyph definition for now)
Mark all SVG Font related classes & usages in ENABLE(SVG_FONTS) blocks.
No layout test changes for a --no-svg-fonts build, heavy changes if enabled. Because a lot of SVG Font
attributes are not processed yet, the rendering looks wrong - hence disabled by default.)
* DerivedSources.make: Add SVGFontElement/SVGGlyphElement/SVGMissingGlyphElement
* WebCore.pro: Updated build system.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* bindings/js/JSSVGElementWrapperFactory.cpp: Add JSSVGFontElement/JSSVGGlyphElement/JSSVGMissingGlyphElement
* bindings/objc/DOM.mm: Ditto (for DOMSVG*).
(WebCore::createElementClassMap):
* bindings/objc/DOMInternal.h: Ditto.
* bindings/objc/DOMSVG.h: Ditto.
* css/CSSFontFace.h: Mark three functions 'virtual', to be overriden by SVGCSSFontFace
* css/CSSFontFaceSrcValue.h: Add functionality to identify as SVG CSS font face source.
(WebCore::CSSFontFaceSrcValue::m_fontFaceElement): Hold a pointer to the font face which created it.
(WebCore::CSSFontFaceSrcValue::svgFontFaceElement):
(WebCore::CSSFontFaceSrcValue::setSVGFontFaceElement):
* css/CSSFontSelector.cpp: Build 'SVGCSSFontFace' objects for local, in-document SVG fonts.
(WebCore::CSSFontSelector::addFontFaceRule):
* css/SVGCSSFontFace.cpp: Added. (Simplified implementation for SVG Fonts)
(WebCore::SVGCSSFontFace::SVGCSSFontFace):
(WebCore::SVGCSSFontFace::~SVGCSSFontFace):
(WebCore::SVGCSSFontFace::isValid):
(WebCore::SVGCSSFontFace::addSource):
(WebCore::SVGCSSFontFace::getFontData):
* css/SVGCSSFontFace.h: Added.
* platform/graphics/cg/PathCG.cpp:
(WebCore::Path::closeSubpath): Silence a CG warning when calling closeSubpath() on empty path.
* platform/graphics/Font.cpp: Add some logic to call into SVG Font code when operating on SVG Fonts.
(WebCore::Font::ascent): Pass font size to FontData::ascent() call
(WebCore::Font::descent): Pass font size to FontData::descent() call
(WebCore::Font::canUseGlyphCache): Always return true for SVG fonts here.
(WebCore::Font::drawGlyphBuffer): Call drawGlyphsWithSVGFont (instead of drawGlyphs) if the primary font is a SVG font.
* platform/graphics/Font.h: Add (SVG-only!) ability to store a RenderObject pointer, to the element which invoked the drawText() call.
(WebCore::TextRun::TextRun):
(WebCore::TextRun::referencingRenderObject):
(WebCore::TextRun::setReferencingRenderObject):
* platform/graphics/FontData.cpp:
(WebCore::FontData::FontData):
(WebCore::FontData::ascent):
(WebCore::FontData::descent):
* platform/graphics/FontData.h: Store a pointer to the SVGFontFaceElement, which created this FontData object - needed for drawGlyphsWithSVGFont().
(WebCore::FontData::isSVGFont): Offer a way to determine wheter this is a FontData object, created by a SVGFontFaceElement.
(WebCore::FontData::svgFontFace):
* rendering/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::calculateGlyphWidth): Add assertion.
* rendering/SVGRootInlineBox.cpp:
(WebCore::svgTextRunForInlineTextBox): Always call 'setReferencingRenderObject(myRenderSVGText)' on the new TextRun
* svg/SVGFont.cpp: Added.
(WebCore::Font::drawGlyphsWithSVGFont): Outsourced implementation of SVG Fonts into it's own file.
* svg/SVGFontElement.cpp: Added. (Note: this holds the GlyphHashMap which associates certain <glyph> objects with unicode values)
(WebCore::SVGFontElement::SVGFontElement):
(WebCore::SVGFontElement::~SVGFontElement):
(WebCore::SVGFontElement::parseMappedAttribute):
(WebCore::SVGFontElement::collectGlyphs):
(WebCore::SVGFontElement::glyphIdentifierForGlyphCode):
* svg/SVGFontElement.h: Added.
(WebCore::GlyphHash::hash):
(WebCore::GlyphHash::equal):
(WebCore::GlyphHashTraits::deletedValue):
(WebCore::SVGFontElement::rendererIsNeeded):
(WebCore::SVGFontElement::contextElement):
* svg/SVGFontElement.idl: Added.
* svg/SVGFontFaceElement.cpp: Build SVG specific 'FontData' object
(WebCore::SVGFontFaceElement::unitsPerEm):
(WebCore::SVGFontFaceElement::fontFamily):
(WebCore::SVGFontFaceElement::createFontData): Builds SVG specified 'FontData' object with the markup specified ascent/descent values etc..
(WebCore::SVGFontFaceElement::rebuildFontFace): Construct CSSFontFaceSrc object (marked as 'isSVGFontFaceSrc') to satisfy CSSFontSelector::addFontFaceRule.
(WebCore::SVGFontFaceElement::insertedIntoDocument): Rebuild font face.
(WebCore::SVGFontFaceElement::glyphIdentifierForGlyphCode): Allows drawGlyphsWithSVGFont to access the glyph hash map living in the SVGFontElement.
* svg/SVGFontFaceElement.h: Fixed code formatting issues & wrap in ENABLE(SVG_FONTS) blocks.
* svg/SVGFontFaceElement.idl: Ditto.
* svg/SVGFontFaceFormatElement.cpp: Ditto.
* svg/SVGFontFaceFormatElement.h: Ditto.
* svg/SVGFontFaceFormatElement.idl: Ditto.
* svg/SVGFontFaceNameElement.cpp: Ditto.
* svg/SVGFontFaceNameElement.h: Ditto.
* svg/SVGFontFaceNameElement.idl: Ditto.
* svg/SVGFontFaceSrcElement.cpp: Ditto.
* svg/SVGFontFaceSrcElement.h: Ditto.
* svg/SVGFontFaceSrcElement.idl: Ditto.
* svg/SVGFontFaceUriElement.cpp: Ditto.
* svg/SVGFontFaceUriElement.h: Ditto.
* svg/SVGFontFaceUriElement.idl: Ditto.
* svg/SVGDefinitionSrcElement.cpp: Ditto.
* svg/SVGDefinitionSrcElement.h: Ditto.
* svg/SVGDefinitionSrcElement.idl: Ditto.
* svg/SVGGlyphElement.cpp: Added.
(WebCore::SVGGlyphElement::SVGGlyphElement):
(WebCore::SVGGlyphElement::parseMappedAttribute):
(WebCore::SVGGlyphElement::childrenChanged):
* svg/SVGGlyphElement.h: Added.
(WebCore::SVGGlyphElement::rendererIsNeeded):
(WebCore::SVGGlyphIdentifier::): Structure holding all data to represent a SVG glyph (origin, advance, orientation etc..)
(WebCore::SVGGlyphIdentifier::SVGGlyphIdentifier):
* svg/SVGGlyphElement.idl: Added.
* svg/SVGMissingGlyphElement.cpp: Added. (stub implementation)
(WebCore::SVGMissingGlyphElement::SVGMissingGlyphElement):
(WebCore::SVGMissingGlyphElement::parseMappedAttribute):
(WebCore::SVGMissingGlyphElement::childrenChanged):
* svg/SVGMissingGlyphElement.h: Added.
(WebCore::SVGMissingGlyphElement::rendererIsNeeded):
* svg/SVGMissingGlyphElement.idl: Added.
* svg/svgtags.in: Wrap all SVGFont* elements in ENABLE(SVG_FONTS) block - to assure --no-svg-fonts compilation works (which is the default for now!).
2007-12-27 Dan Bernstein <mitz@apple.com>
Reviewed by Alexey Proskuryakov.
- fix http://bugs.webkit.org/show_bug.cgi?id=16628
ASSERTION FAILED: m_resizeLayer (running layout tests)
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::~RenderLayer): Avoid calling
EventHandler::resizeLayerDestroyed() if the document is being destroyed.
2007-12-27 Dan Bernstein <mitz@apple.com>
Reviewed by Oliver Hunt.
- fix http://bugs.webkit.org/show_bug.cgi?id=16603
<rdar://problem/5664199> Crash when resizing text field
Test: fast/layers/resize-layer-deletion-crash.html
The event handler has only a weak reference to the layer that is
currently in resize mode, so it is the layer's responsibility to let
the event handler know if it has been destroyed while in that mode.
* page/EventHandler.cpp:
(WebCore::EventHandler::resizeLayerDestroyed): Added. Resets
m_resizeLayer to 0.
* page/EventHandler.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::~RenderLayer): Added a call to
EventHandler::resizeLayerDestroyed() if the layer is in resize mode.
2007-12-27 Collin Jackson <webkit@collinjackson.com>
Reviewed by Sam Weinig.
http://bugs.webkit.org/show_bug.cgi?id=16539
<rdar://problem/5659269>
The same-origin check was missing in the implementation of
setTimeout, setInterval, addEventListener, and removeEventListener.
Suppose <http://www.badguy.com/> contains an iframe to
<http://www.goodguy.com/>. Now www.badguy.com can steal
www.goodguy.com cookies by running this code:
setTimeout.call(frames[0], "alert(document.cookie)", 1000);
This patch changes the behavior so that setTimeout to does
nothing and returns an undefined value if the caller is not
permitted to script the window whose setTimeout method is being
called. The same applies to setInterval, addEventListener, and
removeEventListener.
Tests: http/tests/security/cross-frame-access-call.html
* bindings/js/kjs_window.cpp:
(KJS::WindowProtoFuncSetTimeout::callAsFunction)
(KJS::WindowProtoFuncSetInterval::callAsFunction)
(KJS::WindowProtoFuncAddEventListener::callAsFunction)
(KJS::WindowProtoFuncRemoveEventListener::callAsFunction)
2007-12-27 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt and Sam Weinig.
- fix <rdar://problem/5605937> Inspector: Disclosure triangle not drawn in node's properties panel until click
Test: fast/layers/add-layer-with-nested-stacking.html
Test: fast/layers/remove-layer-with-nested-stacking.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::addChild): If the new child is overflow-only
but has children of its own, dirty the stacking context's z-order lists
since the grandchildren might need to be in them.
(WebCore::RenderLayer::removeChild): Similarly for the old child.
2007-12-27 Jan Michael Alonzo <jmalonzo@unpluggable.com>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=16353
[GTK] Check for deprecated API use (G_DISABLE_DEPRECATED etc.)
Added the flags mentioned in the bug only when doing 'debug'
builds. -DGST_DISABLE_DEPRECATED only added when video is enabled.
* GNUmakefile.am:
* WebCore.pro:
2007-12-27 Dan Bernstein <mitz@apple.com>
Reviewed by Eric Seidel.
- fix http://bugs.webkit.org/show_bug.cgi?id=16490
ASSERT in ~FrameView while viewing/reloading WICD test case
Test: fast/dynamic/paused-event-dispatch.html
* page/FrameView.cpp:
(WebCore::FrameView::~FrameView):
(WebCore::FrameView::layout): Changed to always pause event dispatch and
always resume event dispatch, regardless of whether the post-layout
task timer is active. However, if it is active, assert that event
dispatch is still paused.
2007-12-27 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=14500
need to be more generous about charset declaration with meta tag
http://bugs.webkit.org/show_bug.cgi?id=12526
<rdar://problem/4867183> Safari ignores encoding description "charset=Shift_JIS" in invalid html
<rdar://problem/4892428> Unlike other browsers, WebKit ignores <meta> charset definitions outside the head
<rdar://problem/5643774> REGRESSION: Text is garbled when clicking a link inside an Arabic website
Tests: fast/encoding/ahram-org-eg.html
fast/encoding/bandai-co-jp-releases.html
fast/encoding/floraexpress-ru.html
fast/encoding/hanarei-blog32-fc2-com.html
fast/encoding/yahoo-mail.html
* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::checkForHeadCharset): Don't stop looking for <meta> until we've
seen at least 512 bytes of input.
2007-12-26 Jan Michael Alonzo <jmalonzo@unpluggable.com>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=16390
Use autotools or GNU make as the build system for the GTK port
* GNUmakefile.am: Added.
2007-12-26 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Sam Weinig.
http://bugs.webkit.org/show_bug.cgi?id=16609
Make manual-tests/xmlhttprequest-contenttype-empty.html test automatic
* manual-tests/xmlhttprequest-contenttype-empty.html: Removed (moved to LayoutTests/http).
2007-12-26 Mark Rowe <mrowe@apple.com>
Windows build fix.
* platform/Threading.h:
2007-12-25 Rob Buis <buis@kde.org>
Reviewed by Eric.
http://bugs.webkit.org/show_bug.cgi?id=15514
<clipPath> with <use> not respected
http://bugs.webkit.org/show_bug.cgi?id=16557
SVG circle elements have been clipped away completely, instead of partially.
Add toClipPath to get clip path data for the clipping paths. Implement it for <use>, thereby allowing clip paths using use.
* svg/SVGClipPathElement.cpp:
(WebCore::SVGClipPathElement::canvasResource):
* svg/SVGStyledTransformableElement.h:
(WebCore::SVGStyledTransformableElement::toClipPath):
* svg/SVGUseElement.cpp:
(WebCore::isDirectReference):
(WebCore::SVGUseElement::toClipPath):
* svg/SVGUseElement.h:
2007-12-25 Sam Weinig <sam@webkit.org>
Reviewed by Eric Seidel.
Clean up the files relating to NodeLists.
* dom/ChildNodeList.cpp:
(WebCore::ChildNodeList::ChildNodeList):
(WebCore::ChildNodeList::length):
(WebCore::ChildNodeList::item):
(WebCore::ChildNodeList::nodeMatches):
* dom/ChildNodeList.h:
* dom/DynamicNodeList.cpp:
(WebCore::DynamicNodeList::itemForwardsFromCurrent):
(WebCore::DynamicNodeList::itemBackwardsFromCurrent):
(WebCore::DynamicNodeList::itemWithName):
* dom/DynamicNodeList.h:
(WebCore::DynamicNodeList::needsNotifications):
* dom/NameNodeList.cpp:
(WebCore::NameNodeList::NameNodeList):
(WebCore::NameNodeList::rootNodeAttributeChanged):
(WebCore::NameNodeList::nodeMatches):
* dom/NameNodeList.h:
* dom/NodeList.h:
* dom/SelectorNodeList.h:
2007-12-25 Sam Weinig <sam@webkit.org>
Fix non-mac builds.
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCoreSources.bkl:
2007-12-25 Sam Weinig <sam@webkit.org>
Rubber stamped by Eric Seidel.
Move TagNodeList into its own file.
* WebCore.xcodeproj/project.pbxproj:
* dom/Node.cpp:
* dom/TagNodeList.cpp: Copied from dom/Node.cpp.
(WebCore::TagNodeList::TagNodeList):
* dom/TagNodeList.h: Copied from dom/Node.cpp.
2007-12-25 Sam Weinig <sam@webkit.org>
Reviewed by Eric Seidel.
Simplify the NodeList architecture.
- Rename recursiveItem() to item(), since it is not recursive.
- Make recursiveLength() iterative and rename to length().
- Remove now unneeded overrides of item() and length() that used
to call the recursive variants.
* dom/ClassNodeList.cpp:
* dom/ClassNodeList.h:
* dom/DynamicNodeList.cpp:
(WebCore::DynamicNodeList::length):
(WebCore::DynamicNodeList::item):
(WebCore::DynamicNodeList::rootNodeAttributeChanged): Move implementation
into the .cpp file since virtual methods can't be inlined.
* dom/DynamicNodeList.h:
* dom/NameNodeList.cpp:
* dom/NameNodeList.h:
* dom/Node.cpp:
2007-12-25 Alp Toker <alp@atoker.com>
More complete GTK+/Qt/Wx/Win build fixes for breakage introduced in
r28981.
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCoreSources.bkl:
2007-12-25 Alp Toker <alp@atoker.com>
Win build fix for breakage introduced in r28981.
* WebCore.vcproj/WebCore.vcproj:
2007-12-25 Alp Toker <alp@atoker.com>
Wx build fix for breakage introduced in r28981.
* WebCoreSources.bkl:
2007-12-25 Alp Toker <alp@atoker.com>
GTK+/Qt build fix for breakage introduced in r28981.
* WebCore.pro:
2007-12-25 David Smith <catfish.man@gmail.com> and Sam Weinig <sam@webkit.org>
Reviewed by Oliver.
- http://bugs.webkit.org/show_bug.cgi?id=16587
Implement the most useful part of the W3C Selectors API.
* WebCore.xcodeproj/project.pbxproj:
* css/CSSStyleSelector.h: Make Node a friend of CSSStyleSelector so it can use checkSelector()
* dom/ChildNodeList.cpp:
(WebCore::ChildNodeList::ChildNodeList): Change to being a DynamicNodeList
* dom/ChildNodeList.h:
* dom/ClassNodeList.cpp:
(WebCore::ClassNodeList::ClassNodeList): Change to being a DynamicNodeList
* dom/ClassNodeList.h:
* dom/Document.idl: Add the new functions
* dom/DynamicNodeList.cpp: Copied from WebCore/dom/NodeList.cpp.
(WebCore::DynamicNodeList::DynamicNodeList): Rename NodeList to DynamicNodeList, to differentiate it from the new StaticNodeList
(WebCore::DynamicNodeList::~DynamicNodeList):
(WebCore::DynamicNodeList::recursiveLength):
(WebCore::DynamicNodeList::itemForwardsFromCurrent):
(WebCore::DynamicNodeList::itemBackwardsFromCurrent):
(WebCore::DynamicNodeList::recursiveItem):
(WebCore::DynamicNodeList::itemWithName):
(WebCore::DynamicNodeList::rootNodeChildrenChanged):
(WebCore::DynamicNodeList::Caches::Caches):
(WebCore::DynamicNodeList::Caches::reset):
* dom/DynamicNodeList.h: Copied from WebCore/dom/NodeList.h.
(WebCore::DynamicNodeList::rootNodeAttributeChanged):
* dom/Element.idl: Add the new functions
* dom/NameNodeList.cpp: Change to being a DynamicNodeList
(WebCore::NameNodeList::NameNodeList):
* dom/NameNodeList.h:
(WebCore::NameNodeList::rootNodeAttributeChanged):
* dom/Node.cpp:
(WebCore::TagNodeList::TagNodeList): Change to being a DynamicNodeList
(WebCore::Node::registerDynamicNodeList):
(WebCore::Node::unregisterDynamicNodeList):
(WebCore::Node::getElementsByName):
(WebCore::Node::getElementsByClassName):
(WebCore::Node::querySelector): new
(WebCore::Node::querySelectorAll): new
* dom/Node.h:
* dom/NodeList.cpp: Removed.
* dom/NodeList.h: This is now an abstract superclass of DynamicNodeList and StaticNodeList
(WebCore::NodeList::NodeList):
(WebCore::NodeList::~NodeList):
* dom/SelectorNodeList.cpp: Added.
(WebCore::SelectorNodeList::SelectorNodeList): New StaticNodeList subclass that filters elements by CSS selector
* dom/SelectorNodeList.h: Added.
* dom/StaticNodeList.cpp: Added.
(WebCore::StaticNodeList::length):
(WebCore::StaticNodeList::item):
(WebCore::StaticNodeList::itemWithName):
* dom/StaticNodeList.h: Added.
(WebCore::StaticNodeList::StaticNodeList):
(WebCore::StaticNodeList::~StaticNodeList):
2007-12-25 Mark Rowe <mrowe@apple.com>
Reviewed by Sam Weinig.
Implement a lock-free ThreadSafeShared for i386, x86_64, ppc and ppc64.
http://bugs.webkit.org/show_bug.cgi?id=16596
This is a 1.7x as fast as the lock-based implementation on x86 for a single-threaded use
of ThreadSafeShared but is closer to 280x as fast when there is heavy concurrent multi-threaded
access to a single ThreadSafeShared object.
The atomic operations are based on those used by the Boost C++ library's shared_ptr implementation.
* platform/Threading.h:
(WebCore::atomicIncrement):
(WebCore::atomicDecrement):
(WebCore::ThreadSafeShared::ThreadSafeShared):
(WebCore::ThreadSafeShared::ref): Use lock-free operations if available.
(WebCore::ThreadSafeShared::deref): Ditto.
(WebCore::ThreadSafeShared::hasOneRef):
(WebCore::ThreadSafeShared::refCount):
(WebCore::ThreadSafeShared::isThreadSafe):
2007-12-24 Darin Adler <darin@apple.com>
* platform/text/PlatformString.h: Removed now-incorrect comment.
Added a comment about copy().
* platform/text/StringImpl.h: Added a comment about copy().
2007-12-24 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- http://bugs.webkit.org/show_bug.cgi?id=16550
make StringImpl immutable
I tried to keep the changes to a minimum. In some cases there is
room for optimization -- I didn't try to add in the "single ref count"
optimizations and there might be a tiny bit more string copying than
we had before.
* WebCore.base.exp: Updated.
* dom/CharacterData.cpp:
(WebCore::CharacterData::appendData): Changed to use String since
StringImpl doesn't have mutating functions any more.
(WebCore::CharacterData::insertData): Ditto.
(WebCore::CharacterData::deleteData): Ditto.
(WebCore::CharacterData::replaceData): Ditto.
* dom/Text.cpp:
(WebCore::Text::splitText): Changed to use substring instead of
remove since StringImpl does't have mutating functions any more.
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::deleteInsignificantText): Changed
to use String instead of StringImpl so we can use remove.
* platform/text/PlatformString.h: Removed newUninitialized.
Added append that takes a character pointer and length.
* platform/text/String.cpp:
(WebCore::String::insert): Added an implementation that does not
rely on an underlying StringImpl function.
(WebCore::String::append): Ditto.
(WebCore::String::truncate): Ditto.
(WebCore::String::remove): Ditto.
(WebCore::String::charactersWithNullTermination): Added an
implementation that uses the new StringImpl null termination feature,
which does not require modifying a string.
* platform/text/StringImpl.cpp:
(WebCore::isSpace): Fix comment.
(WebCore::StringImpl::StringImpl): Added a new constructor that makes
a string with a trailing null character.
(WebCore::StringImpl::substring): Marked const.
(WebCore::StringImpl::replace): Marked const; had to add quite a few
const_cast. Also rewrote one of these to work without modifying the
existing string.
* platform/text/StringImpl.h: Fixed a mistake where the empty string had
m_hasTerminatingNullCharacter uninitialized. Added a type and constructor
for creating strings that have a trailing null character. Added a
hasTerminatingNullCharacter function. Removed newUninitialized,
charactersWithNullTermination, append, insert, truncate, and remove.
Marked lots of other functions const.
* platform/text/TextCodecLatin1.cpp:
(WebCore::TextCodecLatin1::decode): Rewrote to use a Vector instead of
newUninitialized.
* platform/text/TextCodecUTF16.cpp:
(WebCore::TextCodecUTF16::decode): Ditto.
* platform/text/TextCodecUserDefined.cpp:
(WebCore::TextCodecUserDefined::decode): Ditto.
* rendering/RenderStyle.cpp:
(WebCore::RenderStyle::setContent): Changed to use String since
StringImpl doesn't have mutating functions any more.
2007-12-24 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Oliver.
Fix fast/events/arrow-keys-on-body.html, failing on Windows.
* platform/win/KeyEventWin.cpp:
(WebCore::isKeypadEvent):
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
Use HIWORD() macro instead of shifting the value explicitly (no change in behavior).
2007-12-23 Alexey Proskuryakov <ap@webkit.org>
Fix Debug and Release QTMovieWin bulds.
* WebCore.vcproj/QTMovieWin.vcproj:
* WebCore.vcproj/debug.vsprops:
* WebCore.vcproj/debug_internal.vsprops:
* WebCore.vcproj/release.vsprops:
Use LibraryConfigSuffix instead of WebKitConfigSuffix for pthreadVC2.
Build release import lib into \lib, not \bin.
2007-12-23 Alp Toker <alp@atoker.com>
Reviewed by Holger Freyther.
http://bugs.webkit.org/show_bug.cgi?id=15382
[CAIRO] Canvas pattern support
http://bugs.webkit.org/show_bug.cgi?id=16577
Merge Cairo enhancements from Apollo project
Add support for canvas patterns.
Make Image::nativeImageForCurrentFrame() public.
Fix some typos along the way.
The globalAlpha canvas fixes are not included in this patch as
they're slightly more intrusive and may conflict conceptually with
GraphicsContext::setAlpha().
* html/CanvasPattern.cpp:
(WebCore::CanvasPattern::CanvasPattern):
(WebCore::CanvasPattern::~CanvasPattern):
(WebCore::CanvasPattern::createPattern):
* html/CanvasPattern.h:
(WebCore::CanvasPattern::platformImage):
* html/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::setShadow):
(WebCore::CanvasRenderingContext2D::applyShadow):
(WebCore::CanvasRenderingContext2D::drawImage):
(WebCore::CanvasRenderingContext2D::createPattern):
(WebCore::CanvasRenderingContext2D::applyStrokePattern):
(WebCore::CanvasRenderingContext2D::applyFillPattern):
* platform/graphics/Image.h:
(WebCore::Image::nativeImageForCurrentFrame):
2007-12-23 Kevin Ollivier <kevino@theolliviers.com>
Reviewed by Eric Seidel.
Remove getWxBitmap as we have nativeImageForCurrentFrame now,
and don't draw a border in fillRect.
* platform/graphics/BitmapImage.h:
* platform/graphics/wx/GraphicsContextWx.cpp:
(WebCore::GraphicsContext::fillRect):
* platform/graphics/wx/ImageWx.cpp:
2007-12-23 Alp Toker <alp@atoker.com>
Reviewed by Holger Freyther.
http://bugs.webkit.org/show_bug.cgi?id=16577
Merge Cairo enhancements from Apollo project
This patch is based on initial merging work by Brent Fulgham. Adobe's
code has been modified in a few places to better suit the existing
coding style.
Implement more clipping and drawing functions.
Save and restore the fill rule manually when clipping.
Avoid image surface creation when the image buffer has height zero.
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::addInnerRoundedRectClip):
(WebCore::GraphicsContext::addPath):
(WebCore::GraphicsContext::clipOut):
(WebCore::GraphicsContext::clipOutEllipseInRect):
(WebCore::GraphicsContext::fillRoundedRect):
* platform/graphics/cairo/ImageSourceCairo.cpp:
(WebCore::ImageSource::createFrameAtIndex):
2007-12-23 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Mark.
Fix wrong placed ifdef - wrapping SVGDefsElement, instead of SVGDefinitionSrcElement in SVG_FONTS block.
* bindings/objc/DOM.mm:
(WebCore::createElementClassMap):
2007-12-22 Alp Toker <alp@atoker.com>
GTK+ build fix
GTK_TARGET_OTHER_APP is not available in older GTK+ versions. Pass
empty target flags for now.
Check GTK+, not GLib versions, since they are different.
* platform/gtk/PasteboardGtk.cpp:
(WebCore::Pasteboard::documentFragment):
2007-12-22 Luca Bruno <lethalman88@gmail.com>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=16311
[Gtk] Copy rich text to clipboard as text/plain and text/html.
Hook into the WebView to get the correct clipboard object on the
appropriate display. This is necessary because GTK+ does not have
global clipboards.
* WebCore.pro:
* platform/Pasteboard.h:
(WebCore::Pasteboard::setHelper): added for GTK
(WebCore::Pasteboard::m_helper): private added for GTK
* platform/gtk/PasteboardGtk.cpp:
(WebCore::PasteboardSelectionData): added to support GTK selection data callback
(WebCore::clipboard_get_contents_cb): added
(WebCore::clipboard_clear_contents_cb): added
(WebCore::Pasteboard::~Pasteboard):
(WebCore::Pasteboard::setHelper):
(WebCore::Pasteboard::writeSelection): copy rich text
(WebCore::Pasteboard::documentFragment):
(WebCore::Pasteboard::plainText):
* platform/gtk/PasteboardHelper.h: Added.
2007-12-22 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Oliver.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=15966 (Crash in SVGRootInlineBox::walkTextChunks() on mouse hover)
Add new isSVGRootInlineBox() function to InlineBox to be able to differentiate between RootInlineBox/SVGRootInlineBox.
SVG assumed it's root inline box (for <text> elements) is always of type SVGRootInlineBox, which is not the case
for HTML text in <foreignObject>. Text selection doesn't work so far as line box offsets are wrong - which is visible
in Web Inspector.
* rendering/InlineBox.h:
(WebCore::InlineBox::isSVGRootInlineBox):
* rendering/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::svgRootInlineBox):
(WebCore::SVGInlineTextBox::closestCharacterToPosition):
(WebCore::SVGInlineTextBox::selectionRect):
* rendering/SVGRenderTreeAsText.cpp:
(WebCore::writeSVGInlineTextBox):
* rendering/SVGRootInlineBox.h:
(WebCore::SVGRootInlineBox::isSVGRootInlineBox):
2007-12-22 Alp Toker <alp@atoker.com>
LOW_BANDWIDTH_DISPLAY build fix
Track recent KURL DeprecatedString changes.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
2007-12-22 Dan Bernstein <mitz@apple.com>
- Windows build fix
* WebCore.vcproj/WebCore.vcproj:
2007-12-22 Xan Lopez <xan@gnome.org>
Reviewed by Alp Toker.
Add missing return 0 to fix a compile warning.
* page/gtk/FrameGtk.cpp:
(WebCore::Frame::createScriptInstanceForWidget):
2007-12-21 Antti Koivisto <antti@apple.com>
Reviewed by Darin, Adam and Steve.
Add media playback support for Windows.
The implementation uses low level QuickTime API. DLL is
needed to work around CF use in both WebKit and QuickTime.
This makes Windows build depend on the QuickTime SDK
http://developer.apple.com/quicktime/download/
but not QuickTime itself.
QTMovieWinTimer contains some copy code from SharedTimerWin. It
is used in the QuickTime access DLL which can't use WebCore
SharedTimer due to dependency problems.
* WebCore.vcproj/QTMovieWin.vcproj: Added.
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcproj/build-generated-files.sh:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setSrc):
* platform/graphics/MediaPlayer.cpp:
* platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp: Added.
(WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::load):
(WebCore::MediaPlayerPrivate::play):
(WebCore::MediaPlayerPrivate::pause):
(WebCore::MediaPlayerPrivate::duration):
(WebCore::MediaPlayerPrivate::currentTime):
(WebCore::MediaPlayerPrivate::seek):
(WebCore::MediaPlayerPrivate::doSeek):
(WebCore::MediaPlayerPrivate::cancelSeek):
(WebCore::MediaPlayerPrivate::seekTimerFired):
(WebCore::MediaPlayerPrivate::setEndTime):
(WebCore::MediaPlayerPrivate::startEndPointTimerIfNeeded):
(WebCore::MediaPlayerPrivate::endPointTimerFired):
(WebCore::MediaPlayerPrivate::paused):
(WebCore::MediaPlayerPrivate::seeking):
(WebCore::MediaPlayerPrivate::naturalSize):
(WebCore::MediaPlayerPrivate::hasVideo):
(WebCore::MediaPlayerPrivate::setVolume):
(WebCore::MediaPlayerPrivate::setMuted):
(WebCore::MediaPlayerPrivate::setRate):
(WebCore::MediaPlayerPrivate::dataRate):
(WebCore::MediaPlayerPrivate::maxTimeBuffered):
(WebCore::MediaPlayerPrivate::maxTimeSeekable):
(WebCore::MediaPlayerPrivate::maxTimeLoaded):
(WebCore::MediaPlayerPrivate::bytesLoaded):
(WebCore::MediaPlayerPrivate::totalBytesKnown):
(WebCore::MediaPlayerPrivate::totalBytes):
(WebCore::MediaPlayerPrivate::cancelLoad):
(WebCore::MediaPlayerPrivate::updateStates):
(WebCore::MediaPlayerPrivate::didEnd):
(WebCore::MediaPlayerPrivate::setRect):
(WebCore::MediaPlayerPrivate::setVisible):
(WebCore::MediaPlayerPrivate::paint):
(WebCore::MediaPlayerPrivate::getSupportedTypes):
(WebCore::MediaPlayerPrivate::movieEnded):
(WebCore::MediaPlayerPrivate::movieLoadStateChanged):
(WebCore::MediaPlayerPrivate::movieTimeChanged):
(WebCore::MediaPlayerPrivate::movieNewImageAvailable):
* platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h: Added.
(WebCore::MediaPlayerPrivate::networkState):
(WebCore::MediaPlayerPrivate::readyState):
* platform/graphics/win/QTMovieWin.cpp: Added.
(updateTaskTimer):
(QTMovieWinPrivate::QTMovieWinPrivate):
(QTMovieWinPrivate::~QTMovieWinPrivate):
(taskTimerFired):
(QTMovieWinPrivate::startTask):
(QTMovieWinPrivate::endTask):
(QTMovieWinPrivate::task):
(QTMovieWinPrivate::registerDrawingCallback):
(QTMovieWinPrivate::drawingComplete):
(QTMovieWinPrivate::createGWorld):
(QTMovieWinPrivate::setSize):
(QTMovieWinPrivate::deleteGWorld):
(QTMovieWin::QTMovieWin):
(QTMovieWin::~QTMovieWin):
(QTMovieWin::play):
(QTMovieWin::pause):
(QTMovieWin::rate):
(QTMovieWin::setRate):
(QTMovieWin::duration):
(QTMovieWin::currentTime):
(QTMovieWin::setCurrentTime):
(QTMovieWin::setVolume):
(QTMovieWin::setMuted):
(QTMovieWin::dataSize):
(QTMovieWin::maxTimeLoaded):
(QTMovieWin::loadState):
(QTMovieWin::getNaturalSize):
(QTMovieWin::setSize):
(QTMovieWin::setVisible):
(QTMovieWin::paint):
(QTMovieWin::load):
(movieDrawingCompleteProc):
(initializeSupportedTypes):
(QTMovieWin::countSupportedTypes):
(QTMovieWin::getSupportedType):
(QTMovieWin::initializeQuickTime):
(DllMain):
* platform/graphics/win/QTMovieWin.h: Added.
* platform/graphics/win/QTMovieWinTimer.cpp: Added.
(TimerWindowWndProc):
(initializeOffScreenTimerWindow):
(setSharedTimerFiredFunction):
(timerFired):
(setSharedTimerFireDelay):
(stopSharedTimer):
(setSharedTimerInstanceHandle):
(systemTime):
* platform/graphics/win/QTMovieWinTimer.h: Added.
* rendering/RenderMedia.cpp:
(WebCore::MediaControlPlayButtonElement::update):
2007-12-21 Brent Fulgham <bfulgham@gmail.com>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=16558
Cairo WebCore Rendering Fails on arc drawing
Fix for bug reported (and patched) by Apollo team in which
arcs were draw in reverse (resulting in inverted images).
Review of the source found that the 'clockwise' term was
actually meant to mean 'anticlockwise' so the IDL and
supporting classes have been changed to match this.
* html/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::arc):
* html/CanvasRenderingContext2D.idl:
* platform/graphics/cairo/PathCairo.cpp:
(WebCore::Path::addArc):
(WebCore::Path::addEllipse):
* platform/graphics/Path.h:
2007-12-21 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Oliver.
<rdar://problem/5629995> Incorrect display of Danish characters on web site.
Test: http/tests/xmlhttprequest/response-encoding.html
* xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::didReceiveData):
Default to UTF-8 for HTML, too. It's unfortunate that we have to use different
rules for main content and XHR responses, but this matches both IE and Firefox.
2007-12-20 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Kevin Decker.
<rdar://problem/5655797> REGRESSION(304-306A10) Safari does not find
shockwave plugin on freshly installed OS
Look for Director plugin in its native directory.
* plugins/win/PluginDatabaseWin.cpp:
(WebCore::PluginDatabaseWin::getPluginsInPaths): The Director plugin
doesn't start with "np," so special case its filename.
(WebCore::addMacromediaPluginPaths): Add Flash and "Shockwave 10"
directories to the plugin paths.
(WebCore::PluginDatabaseWin::defaultPluginPaths):
2007-12-20 Peter Kasting <zerodpx@gmail.com>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=16508
Fix regression in GIFImageDecoder.cpp: "Haeberli hack" led to wrongly
decoded transparent areas.
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::haveDecodedRow):
* platform/image-decoders/gif/GIFImageDecoder.h:
* platform/image-decoders/gif/GIFImageReader.cpp:
(GIFImageReader::output_row):
2007-12-20 Justin Garcia <justin.garcia@apple.com>
Reviewed by Oliver Hunt.
<rdar://problem/5543472> GoogleDocs: Safari hangs when creating a list from a particular selection
Still need to fix similar issues with the other operations that iterate
over selected paragraphs, like FormatBlock, Indent and Outdent (<rdar://problem/5658933>).
* editing/IndentOutdentCommand.cpp:
(WebCore::IndentOutdentCommand::indentRegion): Added a FIXME.
* editing/IndentOutdentCommand.h: Removed an unused function.
* editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::modifyRange):
Renamed visibleStart to startOfSelection and visibleEnd to endOfSelection.
Call the new selectionForParagraphIteration, which a) prevents operations like this
one from being performed on a table that isn't fully selected (where the selection
starts just before the table and ends inside it), and b) helps prevent paragraph
iteration from going past the end of the selection.
Call the new startOfNextParagraph, instead of using endOfParagraph(v).next(),
since when v is in the last paragraph of the last cell of a table, that expression
will return the position after the table, not the start of the next paragraph.
* editing/htmlediting.cpp:
(WebCore::enclosingListChild): Don't go above a table cell, so that list operations
take effect inside the table cell where they are performed.
(WebCore::selectionForParagraphIteration): Added, see above.
(WebCore::indexForVisiblePosition): Moved from IndentOutdentCommand.cpp.
* editing/htmlediting.h:
* editing/visible_units.cpp:
(WebCore::startOfNextParagraph): Added, see above.
* editing/visible_units.h:
* editing/TextIterator.h:
(WebCore::TextIterator::exitNode): Added a FIXME.
2007-12-20 Alp Toker <alp@atoker.com>
Rubber-stamped by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=16542
[GTK] Text is missing with old Pango version
Back out commits r28880, r28876, r28865, r28864 which added Pango font
selection support. These changes caused a regression where no text was
displayed with older Pango versions.
* platform/graphics/gtk/FontCacheGtk.cpp:
(WebCore::FontCache::fontExists):
* platform/graphics/gtk/FontDataGtk.cpp:
(WebCore::FontData::platformDestroy):
(WebCore::FontData::containsCharacters):
* platform/graphics/gtk/FontPlatformData.h:
(WebCore::FontPlatformData::FontPlatformData):
(WebCore::FontPlatformData::hash):
* platform/graphics/gtk/FontPlatformDataGtk.cpp:
(WebCore::FontPlatformData::FontPlatformData):
(WebCore::FontPlatformData::init):
(WebCore::FontPlatformData::~FontPlatformData):
(WebCore::FontPlatformData::isFixedPitch):
(WebCore::FontPlatformData::operator==):
* platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp:
(WebCore::GlyphPage::fill):
2007-12-20 Timothy Hatcher <timothy@apple.com>
Reviewed by Sam Weinig.
<rdar://problem/5604897> Double-clicking on JavaScript console error
won't show the line where it occurred
Make the URLs clickable in the console, since double clicking is used for
word text selection. Makes the word "line" localizable. Messages that don't
have a URL will no longer print "undefined". Messages that have a line number
less than or equal to 0 will no longer be printed.
* English.lproj/InspectorLocalizedStrings.js: Add "%s (line %d)".
* page/inspector/ConsolePanel.js: Tweak how the DOM nodes are created
and change the click handler to look for a link with the
"console-message-url" class name.
* page/inspector/SourcePanel.js: Call setupSourceFrameIfNeeded() if a
line row is needed.
* page/inspector/inspector.css: Update the look of the URL in the console.
2007-12-20 Adam Barth <hk9565@gmail.com>
Reviewed and landed by Sam Weinig.
http://bugs.webkit.org/show_bug.cgi?id=15313
<rdar://problem/5514516>
The same-origin check was incorrect in two cases (both fixed in this
patch):
A) If both the source and the target have set their document.domain
to the same value, the protocol must also match in order for
access to be allowed. Without this requirement, the browser is
vulnerable to the following attack:
1) Suppose there is an HTTPS site (www.example.com) that sets
document.domain = "example.com".
2) A network attacker redirects the browser to http://www.example.com/
a) injects script to set document.domain = "example.com", and
b) opens a window to https://www.example.com/
3) Now the network attacker can inject script into the HTTPS page,
stealing cookies and issuing banking transactions.
B) If only one of the source and target has set document.domain, then
access should be denied. With this behavior, the browser is
vulnerable to the following attack:
1) Suppose http://foo.example.com/ opens an iframe to
http://foo.example.com/frame.html that
a) sets document.domain = "example.com", and
b) opens an iframe to http://bar.example.com/
This is a common usage of document.domain for cross-domain
communication, see for example:
http://www.collinjackson.com/research/papers/fp801-jackson.pdf
2) The inner-most iframe, which is from bar.example.com, sets
document.domain = "example.com".
3) Now the inner-most iframe can inject script into the middle
iframe (say via document.write). This bar.example.com script
now has access to the outer-most frame (from foo.example.com).
Both these changes cause WebKit to match the behavior of Firefox 2 and
IE6 in these cases. This patch includes regression tests for both
issues.
Internet Explorer 7 and Opera 9 are more strict in that they require
the port numbers to match when both pages have document.domain set.
Opera 9 allows access when only one page has set document.domain, but
this is a security vulnerability.
Tests: http/tests/security/cross-frame-access-child-explicit-domain.html
http/tests/security/cross-frame-access-parent-explicit-domain.html
* bindings/js/kjs_window.cpp:
(KJS::createWindow):
(KJS::Window::allowsAccessFrom):
* dom/Document.cpp:
(WebCore::Document::domain):
(WebCore::Document::setDomain):
(WebCore::Document::initSecurityOrigin):
* dom/Document.h:
(WebCore::Document::securityOrigin):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::begin):
(WebCore::FrameLoader::checkCallImplicitClose):
(WebCore::FrameLoader::shouldAllowNavigation):
* platform/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::setForURL):
(WebCore::SecurityOrigin::createForFrame):
(WebCore::SecurityOrigin::canAccess):
* platform/SecurityOrigin.h:
(WebCore::SecurityOrigin::domain):
* storage/Database.cpp:
(WebCore::Database::openDatabase):
(WebCore::Database::Database):
(WebCore::Database::securityOriginData):
* storage/Database.h:
(WebCore::Database::databaseDebugName):
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::canEstablishDatabase):
* storage/SQLTransaction.cpp:
(WebCore::SQLTransaction::postflightAndCommit):
(WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):
2007-12-20 Rodney Dawes <dobey@wayofthemonkey.com>
Reviewed by Darin Adler.
Define XP_UNIX when building with plugins on X11.
Use new npruntime_internal.h instead of npruntime.h.
http://bugs.webkit.org/show_bug.cgi?id=15669
* ForwardingHeaders/bindings/npruntime_internal.h
* WebCore.pro:
* html/HTMLPlugInElement.h:
2007-12-19 johnnyding.webkit <johnnyding.webkit@gmail.com>
Reviewed by Alexey. Landed by Stephanie.
- fix http://bugs.webkit.org/show_bug.cgi?id=16179 | <rdar://problem/5619399>
Any attribute name start with a unicode which like #xx00(x could be any hex number[0-9a-f]) will cause HTMLTokenizer parse error
Actually any unicode characters which great than 255 in attribute name will cause Webkit parse the attribute name wrong. So after comparing
the same scenario in IE 6/7, FireFox 2/3, Opera, we should treat those characters as part of attribute name.
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::parseEntity): Handle Unicode Entity Name by using ASCII version of findEntity.
(WebCore::HTMLTokenizer::parseTag): Let type of ptr match type of cBuffer.
* html/HTMLTokenizer.h: Change type of cBuffer from char to UChar.
2007-12-20 Eric Seidel <eric@webkit.org>
Reviewed by Nikolas Zimmermann.
WebKit claims to support SVG feature strings it shouldn't
http://bugs.webkit.org/show_bug.cgi?id=15480
* dom/DOMImplementation.cpp:
(WebCore::isSVG10Feature):
(WebCore::isSVG11Feature):
2007-12-20 John Sullivan <sullivan@apple.com>
Reviewed by Oliver and Geoff
- fix <rdar://problem/5536858> Yellow highlight for find results is sometimes shorter
than white "hole" behind it
* rendering/RenderText.cpp:
(WebCore::RenderText::addLineBoxRects):
respect useSelectionHeight in all cases; we were only respecting it in one of the two cases
2007-12-20 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- fix <rdar://problem/5656368> REGRESSION(3.0.4-ToT): Acid2 test fails to render anything
* platform/win/ScrollViewWin.cpp:
(WebCore::ScrollView::maximumScroll): Changed back to return the maximum
scroll offsets even if scrolling is not allowed, because navigation and
scrollTo should still work.
(WebCore::ScrollView::wheelEvent): Added early return if scrolling is
not allowed.
2007-12-17 Tony Chang <idealisms@gmail.com>
Reviewed by Darin.
- Fix for http://bugs.webkit.org/show_bug.cgi?id=16479
text selection does not always begin at mouse down point
Reset the m_dragSrc object on mouse down on all platforms.
Test: fast/text/reset-drag-on-mouse-down.html
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEvent):
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::mouseDown):
2007-12-19 Geoffrey Garen <ggaren@apple.com>
Reviewed by Oliver Hunt.
Build support:
* ForwardingHeaders/kjs/SymbolTable.h: Added.
* ForwardingHeaders/wtf/VectorTraits.h: Added.
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::customGetOwnPropertySlot): Replaced use of
getDirectLocation with getOwnPropertySlot. getDirectLocation is no
longer valid, since global declarations are not stored in the property
map.
(WebCore::JSDOMWindow::customPut): Replaced use of JSObject::put with
JSGlobalObject::put. JSObject::put is no longer valid, since global
declarations are not stored in the property map.
* bindings/js/kjs_window.cpp: Replaced JSObject:: calls with Base::
calls, since JSObject is not our base class. This was always a bug, but
the bug is even more apparent after some of my changes.
(KJS::Window::clear): Removed call to clearProperties because
JSGlobalObject::reset takes care of that now.
* history/CachedPage.cpp:
* history/CachedPage.h: Added support for saving a symbol table and
localStorage to the page cache, and restoring it.
2007-12-19 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler and Dave Hyatt.
- Substitute the user's preferred standard font for an unknown primary
font before falling back on the platform's last resort font
Cannot be tested in DumpRenderTree because it sets the standard font to
Times, which is also the hard-coded last resort font on Mac.
* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::getFontData): Changed the early bail out
condition to allow getting generic font families from settings even if
there are not @font-face rules. Fixed a typo that mapped fantasy to
cursive. Added a mapping from -webkit-standard to the standard family.
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::CSSStyleSelector): Changed to always create
a font selector.
(WebCore::CSSRuleSet::addRulesFromSheet):
(WebCore::CSSStyleSelector::applyProperty): Changed to always use the
font selector.
* css/CSSStyleSelector.h:
(WebCore::CSSStyleSelector::fontSelector):
* platform/graphics/FontCache.cpp:
(WebCore::FontCache::getFontData): Try the user's preferred standard
font before the platform's last resort font.
2007-12-19 Sven Herzberg <sven@imendio.com>
Reviewed by Alp Toker.
Scaled font destruction takes place in FontData::platformDestroy(). No
need to do it in FontPlatformData::~FontPlatformData().
Destroying platform data in platformDestroy() is a convention we
borrow from the Mac and Win ports.
* platform/graphics/gtk/FontPlatformDataGtk.cpp:
2007-12-19 Alice Liu <alice.liu@apple.com>
build fix (Windows)
Changed uint to unsigned int. uint caused Windows build breakage
* page/Page.cpp:
(WebCore::Page::markAllMatchesForText):
* page/Page.h:
2007-12-19 Christian Dywan <christian@twotoasts.de>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=16222
[GTK] Implement inline search and highlighting of matching strings.
Implement search and highlighting logic directly in WebCore.
* page/Page.cpp:
(WebCore::incrementFrame):
(WebCore::Page::findString):
(WebCore::Page::markAllMatchesForText):
(WebCore::Page::unmarkAllTextMatches):
* page/Page.h:
2007-12-19 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig, Dan Bernstein.
Tiger build fix: restored some graphics code still needed on Tiger.
* platform/graphics/GraphicsTypes.h:
* platform/graphics/cg/GraphicsContextCG.cpp:
* platform/graphics/mac/GraphicsContextMac.mm:
(WebCore::GraphicsContext::setCompositeOperation):
2007-12-19 Alp Toker <alp@atoker.com>
Build fix for Pango < 1.18.0 breakage introduced in r28864. Use Fc and
the Pango backend API in these cases.
* platform/graphics/gtk/FontPlatformDataGtk.cpp:
(WebCore::FontPlatformData::FontPlatformData):
(WebCore::FontPlatformData::~FontPlatformData):
2007-12-19 Alice Liu <alice.liu@apple.com>
Reviewed by Darin.
Fixed <rdar://problem/5592485> Safari crashed trying to get a motorcycle insurance quote
on Geico.com WebCore::Document::inPageCache()
Calling Node::willRemove on the focusedNode would immediately tell the document to remove
the focused node, and trigger JS events. This means that the document is mutated while
the engine is trying to tell all child nodes that it's about to removed. To avoid
crashing, we need to hold off on mutating the document until node traversal is finished.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::removeChild):
(WebCore::ContainerNode::removeChildren):
* dom/Node.cpp:
* dom/Node.h:
(WebCore::Node::willRemove):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::clear):
2007-12-19 Andre Boule <aboule@apple.com>
Reviewed by Dan Bernstein.
Test: fast/canvas/canvas-composite.html
Fix for:
<rdar://problem/5640059> GraphicsContext::setCompositeOperation should use CGContextSetBlendMode
This fix makes setCompositeOperation consistent across all platforms that use CG.
The following compositing modes don't pass however that is covered by another bug:
source-in
source-out
destination-in
destination-atop
copy
<rdar://problem/5651783> Some canvas tag compositing modes don't render correctly
* platform/graphics/GraphicsTypes.h:
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::setCompositeOperation):
* platform/graphics/mac/GraphicsContextMac.mm:
* platform/win/GraphicsContextWin.cpp:
2007-12-19 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt.
- fix <rdar://problem/5650045> REGRESSION: major layout problems in svn r28754 WebKit on Vox.com page
Test: fast/dynamic/subtree-boundary-percent-height.html
* rendering/RenderObject.cpp:
(WebCore::objectIsRelayoutBoundary): Do not allow overflows with
percent heights because sometimes they compute to 'auto'.
2007-12-19 Sam Weinig <sam@webkit.org>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=16511
Speed up ClassNodeList and NamedNodeList by using the caching mechanism employed by ChildNodeList.
- This give a ~2.15x speedup on the native test @ http://ejohn.org/apps/classname/
* dom/ChildNodeList.cpp: Use the caching NodeList constructor to turn on caching.
(WebCore::ChildNodeList::ChildNodeList):
* dom/ClassNodeList.cpp:
(WebCore::ClassNodeList::ClassNodeList):
* dom/ClassNodeList.h:
Move getElementsByName and getElementsByClassName to Node so they
can use easily employ the caching already used by ChildNodeLists. In the case of
getElementsByClassName, this reduces code duplication in Element as well
* dom/Document.cpp:
* dom/Document.h:
Move getElementsByClassName to Node.
* dom/Element.cpp:
* dom/Element.h:
* dom/NameNodeList.cpp: Use the caching NodeList constructor to turn on caching.
(WebCore::NameNodeList::NameNodeList):
(WebCore::NameNodeList::item):
* dom/NameNodeList.h:
Add maps of caches for ClassNodeLists and NameNodeList to NodeListsNodeData.
* dom/Node.cpp:
(WebCore::TagNodeList::TagNodeList):
(WebCore::Node::Node):
(WebCore::Node::~Node):
(WebCore::Node::childNodes):
(WebCore::Node::registerNodeList):
(WebCore::Node::getElementsByName):
(WebCore::Node::getElementsByClassName):
* dom/Node.h: Make m_nodeLists an OwnPtr. Moved getElementsByName and getElementsByClassName here
Allow subclasses to choose whether they want to receive the notifications using a new bit.
* dom/NodeList.cpp:
(WebCore::NodeList::NodeList):
* dom/NodeList.h:
(WebCore::NodeList::needsNotifications):
2007-12-19 Dave Hyatt <hyatt@apple.com>
Add support for GDI text rendering to WebKit.
Reviewed by mitz
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
* dom/Document.cpp:
(WebCore::Document::recalcStyle):
* page/Settings.cpp:
(WebCore::Settings::setFontRenderingMode):
(WebCore::Settings::fontRenderingMode):
* page/Settings.h:
* platform/graphics/Font.h:
(WebCore::Font::renderingMode):
* platform/graphics/FontCache.cpp:
(WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
(WebCore::FontPlatformDataCacheKey::operator==):
(WebCore::computeHash):
(WebCore::FontCache::getCachedFontPlatformData):
* platform/graphics/FontDescription.h:
(WebCore::):
(WebCore::FontDescription::FontDescription):
(WebCore::FontDescription::renderingMode):
(WebCore::FontDescription::setRenderingMode):
(WebCore::FontDescription::operator==):
* platform/graphics/GraphicsContext.h:
* platform/graphics/win/FontCacheWin.cpp:
(WebCore::FontCache::fontExists):
(WebCore::FontCache::createFontPlatformData):
* platform/graphics/win/FontDataWin.cpp:
(WebCore::FontData::platformInit):
(WebCore::FontData::smallCapsFontData):
(WebCore::FontData::containsCharacters):
(WebCore::FontData::determinePitch):
(WebCore::FontData::platformWidthForGlyph):
* platform/graphics/win/FontPlatformData.h:
(WebCore::FontPlatformData::FontPlatformData):
(WebCore::FontPlatformData::useGDI):
(WebCore::FontPlatformData::operator==):
* platform/graphics/win/FontPlatformDataWin.cpp:
(WebCore::FontPlatformData::FontPlatformData):
* platform/graphics/win/FontWin.cpp:
(WebCore::Font::drawGlyphs):
* platform/graphics/win/IconWin.cpp:
(WebCore::Icon::paint):
* platform/win/GraphicsContextWin.cpp:
(WebCore::GraphicsContext::getWindowsContext):
(WebCore::GraphicsContext::releaseWindowsContext):
* platform/win/UniscribeController.cpp:
(WebCore::UniscribeController::shapeAndPlaceItem):
* platform/win/UniscribeController.h:
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginViewWin::paint):
2007-12-19 Sven Herzberg <sven@imendio.com>
Reviewed by Alp Toker.
Replace the fontconfig/freetype based font management with a pango
based one. Fixes:
http://bugs.webkit.org/show_bug.cgi?id=15229
* platform/gtk/FontDataGtk.cpp (FontData::platformDestroy()): updated
the platform specific destroy code
(FontData::containsCharacters()): implemented font coverage with pango
* platform/gtk/FontPlatformData.h: replaced fontconfig specific
members with pango-specific ones
* platform/gtk/FontPlatformDataGtk.cpp: added static members for the
FontPlatformData class
(FontPlatformData::FontPlatformData()): implemented the font-matching
with a PangoFontDescription instead of an FcPattern; initialize the
scaled font by using the API for PangoCairoFont
(FontPlatformData::init()): initialize the PangoFontMap and set up a
hash table to translate the font family name into a font family
(FontPlatformData::isFixedPitch()): implemented by querying the
PangoFontFamily
(FontPlatformData::operator==): compare the FontPlatformData by
comparing the font pointers or the described fonts
* platform/gtk/GlyphPageTreeNodeGtk.cpp (pango_font_get_glyph()):
added a function to query a glyph from a PangoFont
(GlyphPage::fill()): implemented the fill function with Pango instead
of fontconfig/freetype
2007-12-19 Alp Toker <alp@atoker.com>
Reviewed by Holger Freyther.
Improve graphics operator approximations
These changes match Cairo's own CG approximations.
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::toCairoOperator):
2007-12-19 Alp Toker <alp@atoker.com>
Reviewed by Holger Freyther.
Check the bounding box before doing a full hit test
* platform/graphics/cairo/PathCairo.cpp:
(WebCore::Path::contains):
2007-12-18 Sam Weinig <sam@webkit.org>
Reviewed by Geoff.
Fix for <rdar://problem/5646478>
REGRESSION: fast/events/event-view-toString fails on Leopard
This fixes an issue where we were incorrectly setting the lastInPrototypeChain
for the JSDOMWindow (the global object) before a call to setPrototype overwrote
it. This fixes it by passing the prototype up the constructor chain so that it
is set before any calls can be made.
* bindings/js/kjs_window.cpp:
(KJS::Window::Window):
* bindings/js/kjs_window.h:
* bindings/scripts/CodeGeneratorJS.pm:
2007-12-18 Beth Dakin <bdakin@apple.com>
Reviewed by Oliver.
Fix for <rdar://problem/5616982> SVGs with width and height 100%
fail to render when used as <img> or CSS image (16167)
This final part of the work fixes the <img> tag.
This is the real fix.
* rendering/RenderImage.cpp:
(WebCore::RenderImage::calcReplacedWidth): Set the container size
on the image. Setting the container size only actually sticks if
the values are non-zero, so if the container size really was set,
use the imageSize that is calculated using the container size. If
it did not stick but the image does have relative width (meaning
that the container size is 0), set the width to 0 by hand. We want
to avoid setting the width before we have a container size or we
will end up incorrectly using the default size of 300x150.
(WebCore::RenderImage::calcReplacedHeight): Same as above, but for
height.
A few more pieces of information have to be exposed through cached
image to make this happen.
* loader/CachedImage.cpp:
(WebCore::CachedImage::usesImageContainerSize): As mentioned above,
when setContainerSize() is called, the container size is only
actually set if the values are non-zero. This call tells you if it
was set.
(WebCore::CachedImage::imageHasRelativeWidth):
(WebCore::CachedImage::imageHasRelativeHeight):
* loader/CachedImage.h:
* platform/graphics/Image.h:
(WebCore::Image::usesContainerSize):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::usesContainerSize):
* svg/graphics/SVGImage.h:
2007-12-18 Mark Rowe <mrowe@apple.com>
Rubber-stamped by Maciej Stachowiak.
Remove outdated and non-functioning project files for the Apollo port.
* WebCore.apolloproj: Removed.
2007-12-18 Steve Falkenburg <sfalken@apple.com>
<rdar://problem/5649911> REGRESSION (304-306A9): Typing 'p' in popup menu for type-to-select brings up Safari Help
Need to translate the char back into a key code for posting our WM_KEYDOWN.
Reviewed by Ada.
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupWndProc):
2007-12-18 Steve Falkenburg <sfalken@apple.com>
<rdar://problem/5651534> REGRESSION(r28764-r28765): GDI leak drawing text when no appropriate font is available
Our captured metafile from Uniscribe may contain multiple calls to CreateFontIndirect.
Only create a font with the last one.
Reviewed by Mitz, Darin.
* platform/graphics/win/FontCacheWin.cpp:
(WebCore::metaFileEnumProc):
(WebCore::FontCache::getFontDataForCharacters):
2007-12-17 Brent Fulgham <bfulgham@gmail.com>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=16464
Modify WebCore to use win32 thread primitives
Updates to support native windows threading primitives
rather than pthreads emulation library.
* WebCore.vcproj/WebCore.vcproj:
* config.h:
* platform/Threading.h:
* platform/win/MutexWin.cpp: Added.
(WebCore::Mutex::Mutex):
(WebCore::Mutex::~Mutex):
(WebCore::Mutex::lock):
(WebCore::Mutex::tryLock):
(WebCore::Mutex::unlock):
* platform/win/ThreadConditionWin.cpp: Added.
(WebCore::ThreadCondition::ThreadCondition):
(WebCore::ThreadCondition::~ThreadCondition):
(WebCore::ThreadCondition::wait):
(WebCore::ThreadCondition::signal):
(WebCore::ThreadCondition::broadcast):
* platform/win/ThreadingWin.cpp:
(WebCore::threadMapMutex):
(WebCore::threadMap):
(WebCore::storeThreadHandleByIdentifier):
(WebCore::identifierByThreadHandle):
(WebCore::threadHandleForIdentifier):
(WebCore::clearThreadHandleForIdentifier):
(WebCore::createThread):
(WebCore::waitForThreadCompletion):
(WebCore::detachThread):
(WebCore::currentThread):
2007-12-18 Rodney Dawes <dobey@wayofthemonkey.com>
Reviewed by Darin Adler.
Handle EINTR when set by select() and try the select() again
http://bugs.webkit.org/show_bug.cgi?id=16071
* platform/network/curl/ResourceHandleManager.cpp:
(ResourceHandleManager::downloadTimerCallback):
2007-12-18 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt.
- avoid the simplified Chinese font linking code for characters that are
not in any Windows code page
* platform/graphics/win/FontCacheWin.cpp:
(WebCore::FontCache::getFontDataForCharacters):
2007-12-18 Brady Eidson <beidson@apple.com>
Reviewed by Adele
<rdar://problem/5525770> REGRESSION: HTTP Auth protected favicon request results in a password sheet
Some http-auth protected sites have the main resource(s) unprotected, but many subresources are
protected by authentication. Occasionally one can view the main page of a site but the favicon
is behind the iron curtain - in these cases, we should *not* prompt for a username and password
solely for the favicon.
* loader/ResourceLoader.h: Make didReceiveAuthenticationChallenge virtual
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didReceiveAuthenticationChallenge): Now that this method
is virtual from ResourceLoader, SubresourceLoader can override. First call to the
SubresourceLoaderClient. If they cancel the resource load, return early. Otherwise, let
ResourceLoader work its magic (resulting in the auth sheet coming down)
* loader/SubresourceLoader.h:
* loader/SubresourceLoaderClient.h:
(WebCore::SubresourceLoaderClient::didReceiveAuthenticationChallenge):
* loader/icon/IconLoader.cpp:
(WebCore::IconLoader::didReceiveAuthenticationChallenge): Cancel the resource load, since we should
never prompt the user for credentials just for a favicon.
* loader/icon/IconLoader.h:
2007-12-18 John Sullivan <sullivan@apple.com>
Reviewed by Brady
- fixed <rdar://problem/5652380> Initial prompt shows "" for databases with no user-visible name
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::canEstablishDatabase):
pass "name" instead of "displayName" if there's no displayName
2007-12-17 Dan Bernstein <mitz@apple.com>
Reviewed by Maciej Stachowiak.
- restore ButtonFace and ThreeDFace to their previous values for non-Mac
platforms. The Mac port also uses the same values for now instead
of NSColor-based ones.
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::systemColor):
2007-12-17 Rodney Dawes <dobey@wayofthemonkey.com>
Reviewed by Maciej Stachowiak.
Define WTF_USE_NPOBJECT and WTF_USE_JAVASCRIPTCORE_BINDINGS for GTK+
Add required Frame::createScriptInstanceForWidget to FrameGtk
* config.h:
* page/gtk/FrameGtk.cpp (Frame::createScriptInstanceForWidget):
2007-12-17 Alice Liu <alice.liu@apple.com>
Reviewed by Adam.
Fixed <rdar://5566435> window with no scrollbars can be scrolled
* platform/win/ScrollViewWin.cpp:
(WebCore::ScrollView::maximumScroll):
corrected maximumScroll() to account for scrolling not allowed.
(WebCore::ScrollView::wheelEvent):
2007-12-14 Juan A. Suarez Romero <jasuarez@igalia.com>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=16042
[GTK] Eliminate webkit_init()
Move webkit initialization to WebView class init.
* WebCore.pro:
2007-12-17 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Darin.
<rdar://problem/5651291> REGRESSION: Flash content doesn't display
(www.adobe.com)
We were passing NPEvent** instead of NPEvent* to NPP_HandleEvent.
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginViewWin::dispatchNPEvent): Changed to take NPEvent&, not
NPEvent*
(WebCore::PluginViewWin::paint): Pass NPEvent, not NPEvent*
(WebCore::PluginViewWin::handleKeyboardEvent): same
(WebCore::PluginViewWin::handleMouseEvent): same
* plugins/win/PluginViewWin.h:
2007-12-17 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
Live to the promise of never making AppKit special character codes visible via DOM.
Test: fast/events/arrow-keys-on-body.html
* page/EventHandler.cpp:
(WebCore::EventHandler::keyEvent): Check for empty keypress characters after disambiguation,
to let quirks-aware code strip special charactrers.
* platform/mac/KeyEventMac.mm:
(WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent): If not in keyboard event quirks
mode, remove the text if it's a special character.
2007-12-17 Mark Rowe <mrowe@apple.com>
Reviewed by Darin Adler.
Fix incorrect array size and incorrect array index in convertNSColorToColor.
* rendering/RenderThemeMac.mm:
(WebCore::convertNSColorToColor):
2007-12-17 Darin Adler <darin@apple.com>
Reviewed by Mark Rowe.
- fix http://bugs.webkit.org/show_bug.cgi?id=16468
REGRESSION(r28781): Crash running storage/transaction_callback_exception_crash.html
* storage/DatabaseThread.cpp:
(WebCore::DatabaseThread::dispatchNextTaskIdentifier): Use a RefPtr for the database
because there's no guarantee it won't lose its last reference otherwise.
2007-12-17 Dan Bernstein <mitz@apple.com>
Reviewed by Maciej Stachowiak.
- fix <rdar://problem/5333260> Some Chinese characters in Text Encoding menu are bold, others are not
and <rdar://problem/5280188> Chinese text looks worse on Safari for Windows cf. Safari for Mac
* platform/graphics/win/FontCacheWin.cpp:
(WebCore::FontCache::getFontDataForCharacters): To ensure that font
linking gives consistent results for characters that are exclusive to
the simplified Chinese code page and characters that belong to that
code page and other code pages, always ask to map to simplified Chinese
alone first.
2007-12-17 Christian Dywan <christian@twotoasts.de>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=16378
Implement Icon for Gtk
Icon provides a GdkPixbuf containing a themed icon.
The icon theme is probed for an icon name according to the
Icon Naming Specification or conventional Gnome icon names respectively.
See http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html
* platform/graphics/Icon.h:
* platform/graphics/gtk/IconGtk.cpp:
(WebCore::Icon::~Icon):
(WebCore::lookupIconName):
(WebCore::Icon::newIconForFile):
(WebCore::Icon::paint):
2007-12-16 Sam Weinig <sam@webkit.org>
Reviewed by Mitz.
Fix for http://bugs.webkit.org/show_bug.cgi?id=16466
Move the JS Location object to its own file
- Move Location into its own file and rename it JSLocation.
* DerivedSources.make:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* bindings/js/JSDocumentCustom.cpp:
* bindings/js/JSLocation.cpp: Copied from WebCore/bindings/js/kjs_window.cpp.
(WebCore::):
(WebCore::JSLocation::JSLocation):
(WebCore::JSLocation::getValueProperty):
(WebCore::JSLocation::getOwnPropertySlot):
(WebCore::JSLocation::put):
(WebCore::JSLocationProtoFuncReplace::callAsFunction):
(WebCore::JSLocationProtoFuncReload::callAsFunction):
(WebCore::JSLocationProtoFuncAssign::callAsFunction):
(WebCore::JSLocationProtoFuncToString::callAsFunction):
* bindings/js/JSLocation.h: Copied from WebCore/bindings/js/kjs_window.h.
(WebCore::JSLocation::):
(WebCore::JSLocation::frame):
(WebCore::JSLocation::classInfo):
* bindings/js/kjs_window.cpp:
(KJS::Window::location):
* bindings/js/kjs_window.h:
* history/CachedPage.cpp:
2007-12-16 Dan Bernstein <mitz@apple.com>
Reviewed by Sam Weinig.
- make 'cursor: copy' and 'cursor: none' work.
Already covered by manual-tests/cursor.html
* rendering/RenderStyle.h: Increase the _cursor_style field to 6 bits,
needed for the 33rd and 34th cursor values.
2007-12-16 Mark Rowe <mrowe@apple.com>
Reviewed by Maciej Stachowiak.
Refactor Mac plugin stream code to use the shared NetscapePlugInStreamLoader implementation.
* WebCore.base.exp:
* WebCore.xcodeproj/project.pbxproj:
* loader/NetscapePlugInStreamLoader.h:
* loader/mac/NetscapePlugInStreamLoaderMac.mm: Removed.
* loader/mac/WebPlugInStreamLoaderDelegate.h: Moved to WebKit.
2007-12-16 Sam Weinig <sam@webkit.org>
Reviewed by Maciej.
Yet more of http://bugs.webkit.org/show_bug.cgi?id=16385
Cleanup kjs_window
- Move ScheduledAction into its own file and put it in the WebCore namespace.
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* bindings/js/PausedTimeouts.cpp:
* bindings/js/PausedTimeouts.h:
* bindings/js/ScheduledAction.cpp: Copied from bindings/js/kjs_window.cpp.
(WebCore::ScheduledAction::ScheduledAction):
(WebCore::ScheduledAction::execute):
* bindings/js/ScheduledAction.h: Copied from bindings/js/kjs_window.h.
(WebCore::ScheduledAction::ScheduledAction):
* bindings/js/kjs_window.cpp:
(KJS::DOMWindowTimer::DOMWindowTimer):
(KJS::DOMWindowTimer::action):
(KJS::DOMWindowTimer::takeAction):
(KJS::Window::installTimeout):
(KJS::Window::timerFired):
* bindings/js/kjs_window.h:
2007-12-16 Alp Toker <alp@atoker.com>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=16356
[GTK] Integrate GStreamer video with the graphics backend
Integrate the GStreamer media backend with the Cairo graphics backend.
There are still some issues: Data is copied more often than necessary,
and repaint() is not called, causing transformed video not to update
sometimes.
* WebCore.pro:
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::currentTime):
(WebCore::MediaPlayerPrivate::setEndTime):
(WebCore::MediaPlayerPrivate::seeking):
(WebCore::MediaPlayerPrivate::naturalSize):
(WebCore::MediaPlayerPrivate::setMuted):
(WebCore::MediaPlayerPrivate::setRect):
(WebCore::MediaPlayerPrivate::setVisible):
(WebCore::MediaPlayerPrivate::repaint):
(WebCore::MediaPlayerPrivate::paint):
(WebCore::MediaPlayerPrivate::createGSTPlayBin):
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
* platform/graphics/gtk/VideoSinkGStreamer.cpp: Added.
(webkit_video_sink_base_init):
(webkit_video_sink_init):
(webkit_video_sink_idle_func):
(webkit_video_sink_render):
(webkit_video_sink_set_caps):
(webkit_video_sink_dispose):
(webkit_video_sink_finalize):
(webkit_video_sink_set_property):
(webkit_video_sink_get_property):
(webkit_video_sink_stop):
(webkit_video_sink_class_init):
(webkit_video_sink_new):
(webkit_video_sink_set_surface):
(plugin_init):
* platform/graphics/gtk/VideoSinkGStreamer.h: Added.
2007-12-16 Mark Rowe <mrowe@apple.com>
Mac build fix.
* WebCore.xcodeproj/project.pbxproj: Remove NetscapePlugInStreamLoader.cpp from the WebCore target.
Mac currently has its own implementation in NetscapePlugInStreamLoaderMac.mm which conflicts with the
new shared implementation.
2007-12-16 Rodney Dawes <dobey@wayofthemonkey.com>
Reviewed by Maciej Stachowiak.
http://bugs.webkit.org/show_bug.cgi?id=16389
Bug 16389: Common Implementation of NetscapePlugInStreamLoader
* WebCore.vcproj/WebCore.vcproj: Remove NetscapePlugInStreamLoaderWin.cpp.
* loader/NetscapePlugInStreamLoader.cpp: Copy method implementations from NetscapePlugInStreamLoaderWin.cpp.
* loader/win/NetscapePlugInStreamLoaderWin.cpp: Removed.
2007-12-16 Grace Kloba <klobag@gmail.com>
Reviewed by Darin Adler.
Fix http://bugs.webkit.org/show_bug.cgi?id=16433.
Bug 16433: LOW_BANDWIDTH_DISPLAY build is broken
* dom/Document.cpp:
(WebCore::Document::Document):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::addLowBandwidthDisplayRequest):
(WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
2007-12-16 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- fix <rdar://problem/5636065> First form of SQLTransaction.executeSql() fails with TYPE_ERROR dom exception
Test: storage/execute-sql-args.html
* bindings/js/JSSQLTransactionCustom.cpp:
(WebCore::JSSQLTransaction::executeSql): Added exception handling code so that once an
exception happens, we won't try to do any more argument processing. Changed processing
of the second argument so that we allow an undefined value or null, and simply omit the
array. Changed processing of the second argument so that we don't require an actual
JavaScript array. Instead, as with the JavaScript array operations themselves, we use
the length property and corresponding numeric properties of the object, allowing other
objects to act as arrays. Changed processing of the third and fourth arguments to
allow the undefined value as well as null; we check the value of the argument rather
than looking at the size of the passed-in arguments list.
2007-12-16 Sam Weinig <sam@webkit.org>
Reviewed by Darin.
More of http://bugs.webkit.org/show_bug.cgi?id=16385
Cleanup kjs_window
- Move PausedTimeouts into its own file and put it in the WebCore namespace.
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* bindings/js/PausedTimeouts.cpp: Copied from bindings/js/kjs_window.cpp.
* bindings/js/PausedTimeouts.h: Copied from bindings/js/kjs_window.h.
* bindings/js/kjs_window.cpp:
(KJS::Window::pauseTimeouts):
* bindings/js/kjs_window.h:
* history/CachedPage.cpp:
* history/CachedPage.h:
* page/Chrome.cpp:
2007-12-16 Beth Dakin <bdakin@apple.com>
Reviewed by Geoff.
Make relative-size SVGs work in border-image.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::calculateBackgroundSize):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::paintBorderImage):
2007-12-16 Darin Adler <darin@apple.com>
- fix Tiger build (my fault it was broken)
* rendering/RenderThemeMac.mm: Define NSUInteger if on Tiger.
2007-12-16 Andrew Wellington <proton@wiretapped.net>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=6129
Incomplete implementation of CSS 2.1 system colors
Test: fast/css/css2-system-color.html
Based on original patch by Rob Buis.
System colors are retrieved from NSColor as appropriate. If the color is a pattern color
(and therefore NSColor won't let us retrieve a color from it) we draw a 1x1 image of the
color and sample that to get a solid color.
* css/CSSStyleSelector.cpp:
(WebCore::):
(WebCore::colorForCSSValue):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::systemColor):
* rendering/RenderTheme.h:
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::getSystemColor):
(WebCore::RenderThemeMac::platformColorsDidChange):
(WebCore::RenderThemeMac::systemColor):
2007-12-16 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- fix http://bugs.webkit.org/show_bug.cgi?id=16426
Divs with overflow:auto: scrollbars not correctly updated when contents change
Test: fast/overflow/scrollbar-position-update.html
* platform/mac/PlatformScrollBarMac.mm:
(WebCore::PlatformScrollbar::updateThumbProportion): Update the
NSScroller's value for the new proportions.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateScrollInfoAfterLayout): Removed unnecessary
repaint(). Scrollbars repaint themselves as needed.
2007-12-16 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=14140
<rdar://problem/5270958> REGRESSION: Complex system KeyBindings don't work properly
* dom/KeyboardEvent.h:
(WebCore::KeypressCommand::KeypressCommand):
(WebCore::KeyboardEvent::keypressCommands):
Change stored command class to preserve complete information about commands.
* editing/EditorCommand.cpp: (WebCore::CommandEntry::): Mark InsertText as a text insertion
command, which it is. Previously, we couldn't do it because WebKit didn't really treat insertText:
as a command.
* page/EventHandler.cpp: (WebCore::EventHandler::keyEvent): Copy commands saved while interpreting
a keydown event into keypress, to avoid losing state when running interpretKeyEvents: again.
2007-12-16 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=16462
REGRESSION: access keys broken on Windows
* page/EventHandler.cpp:
(WebCore::EventHandler::handleAccessKey):
(WebCore::EventHandler::keyEvent):
* page/EventHandler.h:
Make handleAccessKey a class method; rely on WebKit to call it on Windows and wxWidgets.
2007-12-16 Xan Lopez <xan@gnome.org>
Reviewed by Alexey Proskuryakov.
http://bugs.webkit.org/show_bug.cgi?id=16454
[GTK] Text input doesn't work consistently on PPC
* platform/gtk/KeyEventGtk.cpp:
(WebCore::singleCharacterString):
UChar is 2 bytes (UTF-16), so transform accordingly from
gunichar (UCS-4). Fixes keyboard input on big endian systems.
2007-12-15 Darin Adler <darin@apple.com>
Reviewed by Mark Rowe.
- better build fix for the problem affecting GTK and some other platforms
"this time for sure"
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSEventTargetBase.cpp: Move the include of the .lut.h file here.
* bindings/js/JSEventTargetBase.h: Instead of including the .lut.h file in the header,
which won't work, declare the tables that are in the .lut.h file in the header.
2007-12-12 Kevin Watters <kevin@dotsyntax.com>
Reviewed by Darin Adler.
Fixed the Wx port's FontPlatformData for use in HashTable.
- FontPlatformData(Deleted) made unequal to FontPlatformData()
* platform/graphics/wx/FontPlatformData
2007-12-15 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- fix <rdar://problem/5636090> Text in Georgia, Armenian, Inuktitut, Cree, or Cherokee (KA, HY, IU, CR, CHR) draws as all missing glyphs
* platform/graphics/win/FontCacheWin.cpp:
(WebCore::metaFileEnumProc): Added. Called during metafile record
enumeration and extracts the font from the create font record.
(WebCore::FontCache::getFontDataForCharacters): If font linking fails,
let Uniscribe draw the characters and see what font it chooses.
2007-12-15 Darin Adler <darin@apple.com>
* WebCore.pro: Roll my last change out. Was wrong and didn't fix the build.
2007-12-15 Darin Adler <darin@apple.com>
Another try at a GTK build fix.
* WebCore.pro: Add JSEventTargetBase.cpp to LUT_TABLE_FILES instead of LUT_FILES.
2007-12-15 Sam Weinig <sam@webkit.org>
Force windows to regenerate COM DOM bindings.
* WebCore.vcproj/build-generated-files.sh: Add license.
* bindings/scripts/CodeGeneratorCOM.pm: Use shared WK_ucfirst.
2007-12-15 Sam Weinig <sam@webkit.org>
Fix Windows and wx builds.
* WebCore.vcproj/WebCore.vcproj:
* WebCoreSources.bkl:
2007-12-15 Mark Rowe <mrowe@apple.com>
Gtk build fix. Add JSEventTargetBase.cpp to SOURCES.
* WebCore.pro:
2007-12-15 Sam Weinig <sam@webkit.org>
Fix wx build.
* WebCoreSources.bkl:
2007-12-15 Nikolas Zimmermann <zimmermann@kde.org>
Not reviewed. Build fix for Qt/Gtk.
* WebCore.pro: Include JSEventTargetBase.lut.h in generation
2007-12-15 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Eric.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=16445 (Refactor EventTargetNode & JSEventTargetNode for an upcoming SVG patch)
Split up JSEventTargetNode in JSEventTargetNode & JSEventTargetBase - where most functionality has been moved down
in the base class. Applied the same refactorization to EventTargetNode.
This makes it possible for the upcoming patch implementing the EventTarget interface for SVGElementInstance
to share as much code as possible with the EventTargetNode classes.
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSEventTargetBase.cpp: Added.
(WebCore::retrieveEventTargetAndCorrespondingNode):
(WebCore::eventNameForPropertyToken):
* bindings/js/JSEventTargetBase.h: Added.
(WebCore::JSEventTargetProperties::):
(WebCore::JSEventTargetPrototypeFunctionBase::JSEventTargetPrototypeFunctionBase):
(WebCore::JSEventTargetPrototypeFunction::JSEventTargetPrototypeFunction):
(WebCore::):
(WebCore::::create):
(WebCore::JSEventTargetBase::JSEventTargetBase):
(WebCore::JSEventTargetBase::getValueProperty):
(WebCore::JSEventTargetBase::putValueProperty):
(WebCore::JSEventTargetBase::getOwnPropertySlot):
(WebCore::JSEventTargetBase::put):
(WebCore::JSEventTargetPrototype::JSEventTargetPrototype):
(WebCore::JSEventTargetPrototype::self):
(WebCore::JSEventTargetPrototype::getOwnPropertySlot):
(WebCore::JSEventTargetPrototype::classInfo):
* bindings/js/JSEventTargetNode.cpp:
(WebCore::JSEventTargetNode::getOwnPropertySlot):
(WebCore::JSEventTargetNode::getValueProperty):
(WebCore::JSEventTargetNode::put):
(WebCore::JSEventTargetNode::putValueProperty):
(WebCore::JSEventTargetNode::setListener):
(WebCore::toEventTargetNode):
* bindings/js/JSEventTargetNode.h:
(WebCore::JSEventTargetPrototypeInformation::prototypeClassName):
(WebCore::JSEventTargetPrototypeInformation::prototypeIdentifier):
* dom/EventTarget.cpp:
(WebCore::EventTarget::addEventListener):
(WebCore::EventTarget::removeEventListener):
(WebCore::EventTarget::dispatchGenericEvent):
(WebCore::EventTarget::removeAllEventListeners):
(WebCore::EventTarget::insertedIntoDocument):
(WebCore::EventTarget::removedFromDocument):
(WebCore::EventTarget::handleLocalEvents):
(WebCore::EventTarget::applySVGEventTargetRules):
(WebCore::forbidEventDispatch):
(WebCore::allowEventDispatch):
(WebCore::eventDispatchForbidden):
* dom/EventTarget.h:
(WebCore::EventTarget::preDispatchEventHandler):
(WebCore::EventTarget::postDispatchEventHandler):
(WebCore::forbidEventDispatch):
(WebCore::allowEventDispatch):
* dom/EventTargetNode.cpp:
(WebCore::EventTargetNode::~EventTargetNode):
(WebCore::EventTargetNode::insertedIntoDocument):
(WebCore::EventTargetNode::removedFromDocument):
(WebCore::EventTargetNode::addEventListener):
(WebCore::EventTargetNode::removeEventListener):
(WebCore::EventTargetNode::removeAllEventListeners):
(WebCore::EventTargetNode::handleLocalEvents):
(WebCore::EventTargetNode::dispatchEvent):
(WebCore::EventTargetNode::dispatchWindowEvent):
* dom/EventTargetNode.h:
(WebCore::EventTargetNode::localEventListeners):
* svg/SVGElement.cpp:
(WebCore::SVGElement::sendSVGLoadEventIfPossible):
(WebCore::SVGElement::dispatchEvent):
2007-12-15 Eric Seidel <eric@webkit.org>
Reviewed by Oliver.
Width of SVG elements not applied to container elements
http://bugs.webkit.org/show_bug.cgi?id=16305
Added calcPrefWidths for RenderSVGRoot (copied from RenderReplaced)
This is caused by poor factoring in the render tree. RenderContainer probably should be a template.
svg/css/css-box-min-width.html
* rendering/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::calcPrefWidths): Added.
* rendering/RenderSVGRoot.h:
* css/SVGCSSStyleSelector::applySVGProperty: fixed ASSERT in debug builds
2007-12-15 David Kilzer <ddkilzer@apple.com>
Fix comment after isSafeScript() was renamed to allowsAccessFrom().
* bindings/js/kjs_window.cpp:
(KJS::createWindow):
2007-12-15 Alp Toker <alp@atoker.com>
Reviewed by Mark Rowe.
http://bugs.webkit.org/show_bug.cgi?id=16449
cairo_arc() functions hang or crash when passed inf as radius or start/end angle
Add checks. This matches a similar workaround for a CG bug in the CG
graphics backend: <rdar://problem/5189233>
Fixes:
fast/canvas/arc-crash.html
fast/canvas/canvas-with-incorrect-args.html
* platform/graphics/cairo/PathCairo.cpp:
(WebCore::Path::addArc):
2007-12-15 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=16078
Google Maps zooming via the scroll wheel (almost) always zooms IN only.
* dom/WheelEvent.cpp: (WebCore::WheelEvent::WheelEvent):
Ensure that delta is never rounded down to zero - we are getting values less than 1 from
many mice on OS X, and Google Maps code assumes scrolling up if event.wheelDelta is zero.
2007-12-14 Dan Bernstein <mitz@apple.com>
- Windows build fix
* WebCore.vcproj/WebCore.vcproj:
2007-12-14 Alp Toker <alp@atoker.com>
GTK+/Qt build fix. Track added files in r28722.
* WebCore.pro:
2007-12-14 Sam Weinig <sam@webkit.org>
Reviewed by Geoff.
Speed up getElementByClassName.
- This makes getElementByClassName 33% faster on the stress test
linked to at http://bugs.webkit.org/show_bug.cgi?id=15760.
* platform/text/StringImpl.cpp:
(WebCore::StringImpl::foldCase): Optimize the case when all the characters are ASCII.
2007-12-14 Alp Toker <alp@atoker.com>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=16432
[GTK] Update license headers
Consent has been given by the authors of these files to change license
to the LGPL as outlined in the bug report.
* platform/gtk/ClipboardGtk.cpp:
* platform/gtk/ContextMenuGtk.cpp:
* platform/gtk/ContextMenuItemGtk.cpp:
* platform/gtk/CookieJarGtk.cpp:
* platform/gtk/CursorGtk.cpp:
* platform/gtk/DragDataGtk.cpp:
* platform/gtk/DragImageGtk.cpp:
* platform/gtk/PasteboardGtk.cpp:
* platform/gtk/PlatformScreenGtk.cpp:
* platform/gtk/PlatformScrollBarGtk.cpp:
* platform/gtk/SearchPopupMenuGtk.cpp:
* platform/gtk/WidgetGtk.cpp:
2007-12-14 Darin Adler <darin@apple.com>
Reviewed by Adele.
- fix http://bugs.webkit.org/show_bug.cgi?id=16442
navigation policy delegate gets called twice for each load
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::willSendRequest): Removed call to checkNavigationPolicy.
That's handled by FrameLoader.
* loader/MainResourceLoader.h: Removed callContinueAfterNavigationPolicy
and continueAfterNavigationPolicy.
2007-12-14 Anders Carlsson <andersca@apple.com>
Reviewed by Brady.
Make document.open count as committing a document load, so that -[WebFrame dataSource:] won't
return nil in that case.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::didExplicitOpen):
2007-12-14 David Smith <catfish.man@gmail.com>
Reviewed by Mitz.
- fix http://bugs.webkit.org/show_bug.cgi?id=14955
Implement getElementsByClassName.
This patch also renames AtomicStringList to ClassNames to better reflect its actual use,
and takes advantage of admitting that it's class-specific to encapsulate class attribute
parsing so it can be shared. It also changes the class to use a Vector, rather than a linked
list to store the class names.
Tests: fast/dom/getElementsByClassName/001.html
fast/dom/getElementsByClassName/002.html
fast/dom/getElementsByClassName/003.html
fast/dom/getElementsByClassName/004.html
fast/dom/getElementsByClassName/005.html
fast/dom/getElementsByClassName/006.html
fast/dom/getElementsByClassName/007.html
fast/dom/getElementsByClassName/008.html
fast/dom/getElementsByClassName/009.html
fast/dom/getElementsByClassName/010.xml
fast/dom/getElementsByClassName/011.xml
fast/dom/getElementsByClassName/012.html
fast/dom/getElementsByClassName/013.html
fast/dom/getElementsByClassName/014.html
fast/dom/getElementsByClassName/array/001.html
fast/dom/getElementsByClassName/array/002.html
fast/dom/getElementsByClassName/array/003.html
fast/dom/getElementsByClassName/array/004.html
fast/dom/getElementsByClassName/dumpNodeList.html
* WebCore.xcodeproj/project.pbxproj:
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::matchRules):
(WebCore::CSSStyleSelector::checkOneSelector):
* dom/AtomicStringList.h: Removed.
* dom/ClassNames.cpp: Added.
(WebCore::ClassNames::contains):
(WebCore::ClassNames::parseClassAttribute):
* dom/ClassNames.h: Copied from WebCore/dom/AtomicStringList.h.
(WebCore::ClassNames::ClassNames):
(WebCore::ClassNames::size):
(WebCore::ClassNames::clear):
(WebCore::ClassNames::operator[]):
(WebCore::isClassWhitespace):
* dom/ClassNodeList.cpp: Added.
(WebCore::ClassNodeList::ClassNodeList):
(WebCore::ClassNodeList::length):
(WebCore::ClassNodeList::item):
(WebCore::ClassNodeList::nodeMatches):
* dom/ClassNodeList.h: Added.
* dom/Document.cpp:
(WebCore::Document::getElementsByName):
(WebCore::Document::getElementsByClassName):
* dom/Document.h:
* dom/Document.idl:
* dom/Element.cpp:
(WebCore::Element::getClassNames):
(WebCore::Element::getElementsByClassName):
* dom/Element.h:
* dom/Element.idl:
* dom/NameNodeList.cpp:
(WebCore::NameNodeList::NameNodeList):
(WebCore::NameNodeList::item):
(WebCore::NameNodeList::nodeMatches):
* dom/NameNodeList.h:
* dom/NamedMappedAttrMap.cpp:
(WebCore::NamedMappedAttrMap::clearAttributes):
(WebCore::NamedMappedAttrMap::parseClassAttribute):
* dom/NamedMappedAttrMap.h:
(WebCore::NamedMappedAttrMap::getClassNames):
* dom/StyledElement.cpp:
(WebCore::StyledElement::getClassNames):
* dom/StyledElement.h:
2007-12-14 Darin Adler <darin@apple.com>
Reviewed by Sam.
- fix http://bugs.webkit.org/show_bug.cgi?id=16351
FontFallbackList.h doesn't include wtf/PassRefPtr.h
* platform/graphics/FontFallbackList.h: Added include of <wtf/Forward.h>
* platform/graphics/GlyphPageTreeNode.h: Removed an unneeded include.
2007-12-14 Darin Adler <darin@apple.com>
Reviewed by Alexey.
- http://bugs.webkit.org/show_bug.cgi?id=16420
change regression tests to use document.execCommand instead of textInputController.doCommand
Add a few more operations to document.execCommand.
Finished up the transition to the new Editor::Command, including removing
the Editor::execCommand function.
* WebCore.base.exp: Added Editor::Command::isSupported.
* editing/Editor.h: Removed execCommand.
* editing/EditorCommand.cpp:
(WebCore::expandSelectionToGranularity): Added.
(WebCore::verticalScrollDistance): Added; replaces canScroll.
(WebCore::executeDeleteBackward): Added. Moved code here from WebHTMLView.
(WebCore::executeDeleteBackwardByDecomposingPreviousCharacter): Ditto.
(WebCore::executeDeleteForward): Ditto.
(WebCore::executeDeleteToBeginningOfLine): Ditto.
(WebCore::executeDeleteToBeginningOfParagraph): Ditto.
(WebCore::executeDeleteToEndOfLine): Ditto.
(WebCore::executeDeleteToEndOfParagraph): Ditto.
(WebCore::executeMovePageDown): Renamed this command to be consistent with all the other
Move commands. They all modify the caret. Reimplemented to match the Mac OS X version by
removing the explicit scrolling, and letting it be done automatically by code that makes
the caret visible. In some cases the old code would scroll twice which was harmless but
unnecessary.
(WebCore::executeMovePageDownAndModifySelection): Added. Moved code here from WebHTMLView.
(WebCore::executeMovePageUp): See MovePageDown above.
(WebCore::executeMovePageUpAndModifySelection): Added. Moved code here from WebHTMLView.
(WebCore::executeSelectLine): Ditto.
(WebCore::executeSelectParagraph): Ditto.
(WebCore::executeSelectSentence): Ditto.
(WebCore::executeSelectWord): Ditto.
(WebCore::executeSwapWithMark): Some small tweaks.
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected): Changed to use Editor::command()
instead of Editor::execCommand(). This code could be changed to use Editor::Command quite a
bit more, but I didn't do that this time.
- Removed some obsolete unused code.
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::passMouseDownEventToWidget): Removed the special case code for
NSTextView. This was left over from when we used NSTextField and NSTextView for form
elements and is no longer used at all.
* page/mac/WebCoreFrameBridge.h: Removed 20 unused methods that were still on one side
of the bridge or another. We really need to find a time to tear down the rest of the
bridge, but that's not this patch.
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge addData:]): Changed to get at the _shouldCreateRenderers field directly
instead of using a method.
(-[WebCoreFrameBridge rangeByAlteringCurrentSelection:SelectionController::direction:SelectionController::granularity:]):
Took out obsolete comment about matching enums (we use a single enum now and have for some
time).
(-[WebCoreFrameBridge selectionGranularity]): Ditto.
2007-12-14 Justin Garcia <justin.garcia@apple.com>
Reviewed by Darin Adler.
<rdar://problem/5575101> GoogleDocs: Hang in SplitElementCommand::doApply when outdenting a list item in a particular list
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::splitTreeToNode): Moved here.
* editing/CompositeEditCommand.h:
* editing/IndentOutdentCommand.cpp: Moved splitTreeToNode.
* editing/IndentOutdentCommand.h: Ditto, and removed unimplemented splitTreeTo.
* editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::doApply): Split ancestors of listChildNode between
it and listNode, if they exists, so that moving listChildNode doesn't put it out
of order. Added a test case to cover each change.
* editing/SplitElementCommand.cpp:
(WebCore::SplitElementCommand::doApply): Added an ASSERT to catch code that
tries to split a container at a bogus child, and an early return to avoid a
hang in that case.
2007-12-14 Anders Carlsson <andersca@apple.com>
Reviewed by Darin and Geoff.
<rdar://problem/5619295>
REGRESSION: 303-304: Embedded YouTube video fails to render- JS errors (16150) (Flash 9)
_NPN_CreateScriptObject doesn't take an origin root object anymore.
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::createNPObject):
* page/Frame.cpp:
(WebCore::Frame::windowScriptNPObject):
2007-12-14 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- fix <rdar://problem/5643663> text-shadow and box-shadow offsets 1px smaller than specified
which is the root cause of:
http://bugs.webkit.org/show_bug.cgi?id=12943
box-shadow: small values don't affect shadow position
http://bugs.webkit.org/show_bug.cgi?id=14736
Safari implementation of text-shadow off by 1px
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::setShadow): Slightly increase the magnitude
of the offsets passed to CGContextSetShadow* to ensure that the end
result after truncation is the desired integer offsets.
2007-12-13 Alp Toker <alp@atoker.com>
curl backend build fix for breakage introduced in r28709.
* platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
2007-12-13 Justin Garcia <justin.garcia@apple.com>
Reviewed by Oliver Hunt.
<rdar://problem/5607069> In Mail, a crash occurs at WebCore::AppendNodeCommand() after dragging image into a <FORM> element
* editing/InsertLineBreakCommand.cpp:
(WebCore::InsertLineBreakCommand::shouldUseBreakElement): Equip this function to
handle editing positions, like [input, 0];
* editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::doApply): Pass enclosingBlock a node peeled
off of a non-editing position, to fix a bug where the enclosing block of [input, 0] was
the input element itself.
Insert a <br> when a <form> element is the enclosing block instead of splitting/cloning or
nesting a <div>.
2007-12-13 Alp Toker <alp@atoker.com>
Reviewed by Oliver Hunt.
http://bugs.webkit.org/show_bug.cgi?id=16365
[cURL] Acid2 test segmentation fault
This patch makes the Acid2 test pass.
Defer the cleanup of cancelled jobs and halt further transfer as early
as possible.
Bug found by and initial patch provided by Luca Bruno.
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::writeCallback):
(WebCore::headerCallback):
(WebCore::ResourceHandleManager::downloadTimerCallback):
(WebCore::ResourceHandleManager::cancel):
2007-12-13 Sam Weinig <sam@webkit.org>
Reviewed by Mark Rowe.
Fix typos and rename InspectorController::moveByUnrestricted to InspectorController::moveWindowBy.
* page/InspectorController.cpp:
(WebCore::moveByUnrestricted):
(WebCore::InspectorController::windowScriptObjectAvailable):
(WebCore::InspectorController::moveWindowBy):
* page/InspectorController.h:
* page/inspector/inspector.js:
2007-12-13 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt.
- fix <rdar://problem/5642426> explicit cubic-bezier curves all treated as "default" for transition-timing-function
Test: fast/css/transition-timing-function.html
* css/CSSStyleSelector.cpp: Changed the HANDLE_MULTILAYER_VALUE macro to
not reject non-primitive non-list values, and instead made sure that the
mapping functions rejected them if necessary. This allows non-primitive
timing functions to be mapped.
(WebCore::CSSStyleSelector::mapBackgroundAttachment):
(WebCore::CSSStyleSelector::mapBackgroundClip):
(WebCore::CSSStyleSelector::mapBackgroundComposite):
(WebCore::CSSStyleSelector::mapBackgroundOrigin):
(WebCore::CSSStyleSelector::mapBackgroundImage):
(WebCore::CSSStyleSelector::mapBackgroundRepeat):
(WebCore::CSSStyleSelector::mapBackgroundXPosition):
(WebCore::CSSStyleSelector::mapBackgroundYPosition):
(WebCore::CSSStyleSelector::mapTransitionDuration):
(WebCore::CSSStyleSelector::mapTransitionRepeatCount):
(WebCore::CSSStyleSelector::mapTransitionTimingFunction):
(WebCore::CSSStyleSelector::mapTransitionProperty):
* css/CSSTimingFunctionValue.cpp:
(WebCore::CSSTimingFunctionValue::cssText): Implemented for use in the
regression test.
* css/CSSTimingFunctionValue.h:
(WebCore::CSSTimingFunctionValue::isTransitionTimingFunctionValue):
Added. Returns true.
* css/CSSValue.h:
(WebCore::CSSValue::isTransitionTimingFunctionValue): Added. Returns
false.
2007-12-13 Steve Falkenburg <sfalken@apple.com>
Move source file generation into its own vcproj to fix build dependencies.
Reviewed by Adam.
* WebCore.vcproj/WebCore.make:
* WebCore.vcproj/WebCore.sln:
* WebCore.vcproj/WebCore.submit.sln:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcproj/WebCoreGenerated.vcproj: Added.
2007-12-13 Justin Garcia <justin.garcia@apple.com>
Reviewed by Oliver Hunt.
<rdar://problem/4145786> Undoing a color change of text in a compose window always changes it back to black
Some of the operations performed in removeHTMLFontStyle were non-undoable.
I'm having trouble writing a layout test for this because I can't get DRT to
perform editing operations in separate Undo steps without adding unacceptably long
wait times between operations. I filed:
<rdar://problem/5646779> Can't get DRT to perform editing operations in separate Undo steps
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::removeHTMLFontStyle):
2007-12-13 Sam Weinig <sam@webkit.org>
Reviewed by Anders.
Fix for http://bugs.webkit.org/show_bug.cgi?id=16352
Toolbar dragged inspector cannot be moved beyond screen edges
* page/InspectorController.cpp:
(WebCore::moveByUnrestricted):
(WebCore::InspectorController::windowScriptObjectAvailable):
(WebCore::InspectorController::moveByUnrestricted):
* page/InspectorController.h:
* page/inspector/inspector.js:
2007-12-13 Adam Roben <aroben@apple.com>
Fix <rdar://5517707> Crash on wptv.wp.pl when "make bigger" button is clicked
Windows Media Player has a modal message loop that will deliver
messages to us at inappropriate times and we will crash if we handle
them when they are delivered. In PluginViewWin, we add a quirk for
Media Player to set a flag whenever we give the plugin a chance to
execute code, and in SharedTimerWin we check if the plugin is
executing code and repost messages if so.
Reviewed by Anders.
* platform/win/SharedTimerWin.cpp:
(WebCore::TimerWindowWndProc): Repost messages if we're calling a
plugin.
* plugins/win/PluginViewWin.cpp: Surround all calls to the plugin with
setCallingPlugin(true/false).
(WebCore::PluginViewWin::updateWindow):
(WebCore::PluginViewWin::dispatchNPEvent):
(WebCore::PluginViewWin::setNPWindowRect):
(WebCore::PluginViewWin::start):
(WebCore::PluginViewWin::stop):
(WebCore::PluginViewWin::performRequest):
(WebCore::PluginViewWin::bindingInstance):
(WebCore::PluginViewWin::determineQuirks):
(WebCore::PluginViewWin::setCallingPlugin): Added.
(WebCore::PluginViewWin::isCallingPlugin): Added.
* plugins/win/PluginViewWin.h: Added a new quirk.
2007-12-13 Alp Toker <alp@atoker.com>
Add a missing DEPENDPATH. Fixes non-clean builds following networking
header changes.
* WebCore.pro:
2007-12-13 Dan Bernstein <mitz@apple.com>
Reviewed by Anders Carlsson.
- fix regression in fast/text/international/bidi-override on Tiger
* platform/graphics/GlyphPageTreeNode.cpp:
(WebCore::GlyphPageTreeNode::initializePage): Add bidi overrides here
too. I forgot to add them when I added them to treatAsZeroWidthSpace in
an earlier patch.
2007-12-13 Justin Garcia <justin.garcia@apple.com>
Reviewed by Darin Adler.
<rdar://problem/5601583> GMail Editor: Copied link doesn't paste as a link, just colored text
The code that checks the selected Range to see if it's inside an anchor
checks ancestors of the Range's commonAncestor() but not the
commonAncestor() itself, and so we'd fail to add markup for the enclosing
anchor to the pasteboard.
Some enclosing element getters check the node passed to the getter and some
don't. There were a few places where we incorrectly assumed that enclosing
element getters check the node passed to the getter, but this is the only
case that I'm able to write a test case for at the moment.
In this patch I've:
Changed enclosingNodeWithType and enclosingNodeWithTag to take in positions,
like the newer enclosing element getters. This is important because we must
soon add code to the getters so that they understand that some editing positions
inside nodes don't actually refer to positions inside those nodes but positions
before and after them. Like [table, 0].
Changed enclosingNodeWithType and enclosingNodeWithTag to check nodes starting with
n where [n, o] is the position passed to the getter, instead of starting the the parent
of n. This makes all but a few of the enclosing element getters behave consistently.
Changed enclosingNodeWithType and enclosingNodeWithTag to not return non-editable
nodes if the input position was editable. This fixes a bug that that the above change
exposed.
Changed enclosingTableCell to simply call enclosingNodeWithType. We should do
this for the rest of the getters, or simply remove them in favor of enclosingNodeWithType
unless doing so would affect readability, like it would in the case of enclosingTableCell.
Ditto for enclosingBlock.
* editing/AppendNodeCommand.cpp:
(WebCore::AppendNodeCommand::doApply):
* editing/DeleteButtonController.cpp:
(WebCore::enclosingDeletableElement):
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::initializePositionData):
(WebCore::DeleteSelectionCommand::saveFullySelectedAnchor):
* editing/Editor.cpp:
(WebCore::Editor::selectionUnorderedListState):
(WebCore::Editor::selectionOrderedListState):
* editing/IndentOutdentCommand.cpp:
(WebCore::IndentOutdentCommand::prepareBlockquoteLevelForInsertion):
(WebCore::IndentOutdentCommand::outdentParagraph):
* editing/InsertNodeBeforeCommand.cpp:
(WebCore::InsertNodeBeforeCommand::doApply):
* editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::doApply):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::shouldMerge):
(WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds):
(WebCore::ReplaceSelectionCommand::positionAtEndOfInsertedContent):
* editing/TextIterator.cpp:
* editing/htmlediting.cpp:
(WebCore::enclosingBlock):
(WebCore::enclosingNodeWithTag):
(WebCore::enclosingNodeOfType):
(WebCore::enclosingTableCell):
(WebCore::isTableCell):
* editing/htmlediting.h:
* editing/markup.cpp:
(WebCore::appendStartMarkup):
(WebCore::createMarkup):
2007-12-13 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
Turn on keyboard event processing quirks for feed views and old applications on Mac OS X.
* WebCore.base.exp:
* dom/KeyboardEvent.cpp:
(WebCore::KeyboardEvent::charCode):
* page/EventHandler.cpp:
(WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
(WebCore::EventHandler::keyEvent):
* page/EventHandler.h:
* page/Settings.cpp:
(WebCore::Settings::Settings):
(WebCore::Settings::setNeedsKeyboardEventDisambiguationQuirks):
* page/Settings.h:
(WebCore::Settings::needsKeyboardEventDisambiguationQuirks):
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
* platform/PlatformKeyboardEvent.h:
* platform/mac/KeyEventMac.mm:
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
(WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
2007-12-13 Dan Bernstein <mitz@apple.com>
- build fix
* platform/network/cf/ResourceErrorCF.cpp:
2007-12-13 Antti Koivisto <antti@apple.com>
Reviewed by Tim Hatcher.
Fix <rdar://problem/5605674>
Make <video> display WebKit context menu instead of the QTKit one.
It doesn't really matter where the QTMovieView is.
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::createQTMovieView):
(WebCore::MediaPlayerPrivate::setRect):
2007-12-13 Dan Bernstein <mitz@apple.com>
Reviewed by Adam Roben.
- ensure that Unicode bidi control characters are rendered as zero width
spaces
Test: fast/text/international/bidi-control-chars-treated-as-ZWS.html
* platform/graphics/Font.h:
(WebCore::Font::treatAsZeroWidthSpace):
* platform/graphics/GlyphPageTreeNode.cpp:
(WebCore::GlyphPageTreeNode::initializePage):
* platform/text/CharacterNames.h:
2007-12-13 Brady Eidson <beidson@apple.com>
Build fix
* platform/wx/TemporaryLinkStubs.cpp:
2007-12-12 Brady Eidson <beidson@apple.com>
Build fix
* platform/gtk/TemporaryLinkStubs.cpp:
2007-12-12 Brady Eidson <beidson@apple.com>
Build fix
* WebCore.pro:
* history/qt/CachedPageQt.cpp: Removed. Whole purpose for this method being platform-specific has been removed
2007-12-12 Brady Eidson <beidson@apple.com>
Build fix
* platform/win/TemporaryLinkStubs.cpp:
2007-12-12 Brady Eidson <beidson@apple.com>
Reviewed by Sam Weinig
Fix for <rdar://problem/4886844> and lay groundwork for <rdar://problem/4516170> (Back/Forward Cache on Windows)
All back/forward list and page cache related items used to be in WebKit.
When they were pushed into WebCore, some sloppy compromises were made to keep the Back/Forward cache working on Mac.
Namely, a WebCore::HistoryItem had to know how to keep a WebDocumentView alive. We accomplished this via some #ifdefs
in CachedPage and having the Mac-only CachedPageMac.mm
To get rid of that nastiness and pave the way for adding Back/Forward cache on other platforms, this patch adds the
concept of "CachedPagePlatformData" which can contain anything the platform API wants.
I also took the opportunity to do other cleanup and renaming client methods to better fit their new purposes.
* WebCore.base.exp:
* WebCore.xcodeproj/project.pbxproj:
* history/CachedPage.cpp:
(WebCore::CachedPage::~CachedPage): Combined "close()" and "clear()" to just "clear()" - call it from here.
(WebCore::CachedPage::clear): Call clear() on the CachedPagePlatformData if it exists. Also delete the CachedPagePlatformData.
(WebCore::CachedPage::setCachedPagePlatformData):
(WebCore::CachedPage::cachedPagePlatformData):
* history/CachedPage.h:
* history/CachedPagePlatformData.h: Added.
(WebCore::CachedPagePlatformData::~CachedPagePlatformData): Virtual d'tor.
(WebCore::CachedPagePlatformData::clear): Virtual method for platforms that need to do cleanup at the same time as CachedPage::clear().
* history/PageCache.cpp:
(WebCore::PageCache::releaseAutoreleasedPagesNow): Call "clear()" instead of "close()"
* history/mac/CachedPageMac.mm: Removed. Functionality replaced with CachedPagePlatformData.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::transitionToCommitted): Call the new client methods. Make some work previously done by WebKitMac cross platform
(setting the cached DocumentLoader to the Frame).
(WebCore::FrameLoader::cachePageForHistoryItem): Renamed the client methods
* loader/FrameLoaderClient.h: The very Mac-centric "makeDocumentView", "setDocumentViewFromCachedPage", and "saveDocumentViewToCachedPage"
become "transitionToCommittedForNewPage", "transitionToCommittedFromCachedPage", and "savePlatformDataToCachedPage" accordingly
* svg/graphics/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::savePlatformDataToCachedPage):
(WebCore::SVGEmptyFrameLoaderClient::transitionToCommittedFromCachedPage):
(WebCore::SVGEmptyFrameLoaderClient::transitionToCommittedForNewPage):
2007-12-12 Dan Bernstein <mitz@apple.com>
Reviewed by Oliver Hunt.
- fix <rdar://problem/5074620> text with font:initial; fails to appear (causes fast/text/font-initial.html to fail)
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty): When the font property is
set to 'initial', set the font size to its initial value, 'medium',
and the font family to the standard family.
2007-12-12 Justin Garcia <justin.garcia@apple.com>
Reviewed by Darin Adler.
<rdar://problem/5433862> Mail crashes at WebCore::highestAncestor() when deleting a particular selection
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::removePreviouslySelectedEmptyTableRows):
Don't remove the table row that contained the end of the selection if it is where we are
about to place the ending selection.
Don't remove all empty rows after the row that contained the start of the selection,
they might come after the row that contained the end of the selection.
2007-12-12 Sam Weinig <sam@webkit.org>
Reviewed by Anders Carlsson.
Add button to clear the Web Inspector's console.
* English.lproj/InspectorLocalizedStrings.js:
* page/inspector/ConsolePanel.js:
* page/inspector/inspector.css:
2007-12-12 Anders Carlsson <andersca@apple.com>
Reviewed by Adam and Jon.
<rdar://problem/5349282>
popup blocking is not applied to plugins on Windows.
Implement popup blocking. If the plug-in supports the new
NPN_PushPopupsEnabledState/NPN_PopPopupsEnabledState API we just use that
to determine if a plug-in request can open new windows.
If a plug-in does not support the new API, we assume that a plug-in can open new windows
in response to either mouse click or key press events.
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginRequestWin::PluginRequestWin):
(WebCore::PluginRequestWin::shouldAllowPopups):
Add new shouldAllowPopups member.
(WebCore::PluginViewWin::popPopupsStateTimerFired):
Reset the popup state.
(WebCore::isWindowsMessageUserGesture):
New function that given a windows message id returns whether it's a user gesture or not.
(WebCore::PluginViewWin::wndProc):
Allow popups if the window message is a user gesture.
(WebCore::PluginViewWin::dispatchNPEvent):
New method that dispatches an NPEvent, turning on popups if necessary.
(WebCore::PluginViewWin::paint):
(WebCore::PluginViewWin::handleKeyboardEvent):
(WebCore::PluginViewWin::handleMouseEvent):
Call dispatchNPEvent().
(WebCore::PluginViewWin::performRequest):
(WebCore::PluginViewWin::load):
Add calls to shouldAllowPopups().
(WebCore::PluginViewWin::pushPopupsEnabledState):
(WebCore::PluginViewWin::popPopupsEnabledState):
New methods that maintain the popup state stack.
(WebCore::PluginViewWin::arePopupsAllowed):
New method that returns whether popups are allowed.
(WebCore::PluginViewWin::PluginViewWin):
* plugins/win/PluginViewWin.h:
Add new instance variables.
* plugins/win/npapi.cpp:
(NPN_PushPopupsEnabledState):
(NPN_PopPopupsEnabledState):
Implement these.
2007-12-12 Dan Bernstein <mitz@apple.com>
Reviewed by John Sullivan.
- fix a bug in debug builds only where selecting an earlier item in
a popup selects the first item
Test: fast/forms/menulist-selection-reset.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::recalcListItems): Added an argument that
tells that function whether it should update the selected state of
option elements.
(WebCore::HTMLSelectElement::checkListItems): Changed to pass false
as the above argument.
* html/HTMLSelectElement.h:
2007-12-12 Adele Peterson <adele@apple.com>
Reviewed by Geoff.
Fix for <rdar://problem/5643054> Remove cue point implementation for media elements
When the specification for cue ranges is more final, we will implement those.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::load):
* html/HTMLMediaElement.h:
* html/HTMLMediaElement.idl:
* platform/graphics/MediaPlayer.cpp:
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerTimeChanged):
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::load):
(WebCore::MediaPlayerPrivate::play):
(WebCore::MediaPlayerPrivate::pause):
(WebCore::MediaPlayerPrivate::setEndTime):
(WebCore::MediaPlayerPrivate::startEndPointTimerIfNeeded):
(WebCore::MediaPlayerPrivate::endPointTimerFired):
(WebCore::MediaPlayerPrivate::timeChanged):
(WebCore::MediaPlayerPrivate::didEnd):
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::startEndPointTimerIfNeeded):
(WebCore::MediaPlayerPrivate::endPointTimerFired):
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
2007-12-12 MorganL <morganl.webkit@yahoo.com>
Reviewed by Maciej.
Fixes:
http://bugs.webkit.org/show_bug.cgi?id=16408
When navigating back/forward to a http:// link, we should prefer to
load from cache if possible.
* loader/FrameLoader.cpp:
2007-12-12 Anders Carlsson <andersca@apple.com>
Reviewed by Sam.
<rdar://problem/5132003>
dumpResourceLoadCallbacks is not implemented in DRT on Windows.
* platform/network/cf/ResourceErrorCF.cpp:
(WebCore::ResourceError::unpackPlatformError):
Handle kCFErrorDomainWinSock.
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::willSendRequest):
Ignore willSendRequest calls where the redirect response is null, like we do in
the Mac version.
2007-12-12 Steve Falkenburg <sfalken@apple.com>
<rdar://problem/5643785> Fix iBench regression caused by mis-placed nested timer check.
Reviewed by Anders.
* platform/win/SharedTimerWin.cpp:
(WebCore::TimerWindowWndProc): Don't set high-resolution timer flag inside non-high-resolution timer proc.
2007-12-12 Beth Dakin <bdakin@apple.com>
Reviewed by Oliver.
Fix for <rdar://problem/5643770> REGRESSION: Free-standing SVGs
with width and height 100% clip to 300 x 150
Though it was correct in an earlier iteration of my patch, it is
not sufficient in the final, committed version to ask if the
relativeWidthValue() or relativeHeightValue() is greater than 0
just to determine if one has been set, for, they are now
initialized to 300 and 150 respectively! This patch instead adds a
bool to keep track of whether a container size has been set, and
only used the relative value if it has.
* rendering/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::calcViewport):
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::SVGSVGElement):
* svg/SVGSVGElement.h:
(WebCore::SVGSVGElement::setContainerSize):
(WebCore::SVGSVGElement::hasSetContainerSize):
2007-12-12 Brady Eidson <beidson@apple.com>
Reviewed by Steve Falkenburg
<rdar://problem/5012636> - WebURLProtectionSpace::realm returns the hostname rather than the authentication realm
* platform/network/ProtectionSpace.cpp:
(WebCore::ProtectionSpace::ProtectionSpace): Assign the realm to m_realm, instead of the host
2007-12-12 Alp Toker <alp@atoker.com>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=16388
[GTK] Widget::setCursor() gets called frequently
Cache the current cursor to avoid calling gdk_window_set_cursor() when
there's no change in cursor.
* platform/gtk/WidgetGtk.cpp:
(WebCore::Widget::Widget):
(WebCore::Widget::cursor):
(WebCore::Widget::setCursor):
2007-12-12 Rodney Dawes <dobey@wayofthemonkey.com>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=16342
Build Warning and Error fixes in WebCore GTK+
Use C-style casts for casting function pointers to gpointer
Use static_cast<int> to cast a float to int to fix a warning
* platform/gtk/PlatformScrollBarGtk.cpp:
(PlatformScrollbar::PlatformScrollbar):
(PlatformScrollbar::~PlatformScrollbar):
(PlatformScrollbar::gtkValueChanged):
* platform/gtk/ThreadingGtk.cpp:
(callFunctionOnMainThread):
(callOnMainThread):
2007-12-12 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- better fix for a crash when pressing a key that is not associated
with a command
* editing/EditorCommand.cpp:
(WebCore::Editor::command): Return the empty command if the command name
is empty.
2007-12-12 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=16410
Implement isKeypadEvent() on Windows
Test: platform/win/fast/events/keyLocation-numpad.html
* platform/win/KeyEventWin.cpp:
(WebCore::isKeypadEvent): Added.
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Also fixed a mistake with autorepeat.
2007-12-12 Oliver Hunt <oliver@apple.com>
Reviewed by Maciej.
<rdar://problem/5071781> window.mouseout events are not sent
to window when mouse moves out of window
Make PlatformMouseEvent recognise WM_MOUSELEAVE.
* platform/win/PlatformMouseEventWin.cpp:
(WebCore::messageToEventType):
(WebCore::PlatformMouseEvent::PlatformMouseEvent):
2007-12-12 Sam Weinig <sam@webkit.org>
Fix Mac release build.
* WebCore.base.exp:
2007-12-12 Sam Weinig <sam@webkit.org>
Build fix for Qt, Gtk, and Wx.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
* loader/win/FrameLoaderWin.cpp:
(WebCore::FrameLoader::urlSelected):
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::parseDataUrl):
(WebCore::ResourceHandleManager::startJob):
* platform/network/win/CookieJarWin.cpp:
(WebCore::setCookies):
(WebCore::cookies):
* platform/network/win/ResourceHandleWin.cpp:
(WebCore::ResourceHandle::start):
* platform/qt/PasteboardQt.cpp:
(WebCore::Pasteboard::writeURL):
2007-12-11 Dan Bernstein <mitz@apple.com>
Reviewed by Maciej Stachowiak.
- allow non-integer font sizes on Windows for small caps
* platform/graphics/win/FontDataWin.cpp:
(WebCore::FontData::smallCapsFontData):
* platform/graphics/win/FontPlatformData.h:
(WebCore::FontPlatformData::size):
(WebCore::FontPlatformData::setSize):
* platform/graphics/win/FontPlatformDataWin.cpp:
(WebCore::FontPlatformData::FontPlatformData):
2007-12-11 Sam Weinig <sam@webkit.org>
Build fix for Qt, Gtk, and Wx.
* platform/gtk/CookieJarGtk.cpp:
(WebCore::setCookies):
(WebCore::cookies):
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::writeURL):
* platform/qt/CookieJarQt.cpp:
(WebCore::setCookies):
(WebCore::cookies):
* platform/wx/PasteboardWx.cpp:
(WebCore::Pasteboard::writeURL):
2007-12-11 Sam Weinig <sam@webkit.org>
Reviewed by Darin Adler.
Scrub URL out of the tree in preparation for renaming KURL to URL.
- Renames Document::URL() -> Document::url()
- Renames DocumentLoader::URL() -> DocumentLoader::url()
- Renames KURL::url() to KURL::string() and KURL::deprecatedString()
- Remove FrameLoader::URL()
- Various variable renames.
The change from Document::URL() to Document::url() required changes
to the bindings scripts as well, because URL() is the name of a DOM
method. The code generation scripts now have code to special case URL()
to url().
* WebCore.base.exp:
* bindings/js/kjs_events.cpp:
(WebCore::JSLazyEventListener::parseCode):
* bindings/js/kjs_navigator.cpp:
(KJS::Navigator::getValueProperty):
* bindings/js/kjs_proxy.cpp:
(WebCore::KJSProxy::initScript):
* bindings/js/kjs_window.cpp:
(KJS::Window::put):
(KJS::Window::allowsAccessFrom):
(KJS::Location::put):
(KJS::LocationProtoFuncReplace::callAsFunction):
(KJS::LocationProtoFuncReload::callAsFunction):
(KJS::LocationProtoFuncAssign::callAsFunction):
* bindings/scripts/CodeGenerator.pm:
* bindings/scripts/CodeGeneratorCOM.pm:
* bindings/scripts/CodeGeneratorJS.pm:
* bindings/scripts/CodeGeneratorObjC.pm:
* css/CSSImportRule.cpp:
(WebCore::CSSImportRule::insertedIntoParent):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseContent):
(WebCore::CSSParser::parseBackgroundImage):
(WebCore::CSSParser::parseFontFaceSrc):
(WebCore::CSSParser::parseBorderImage):
(WebCore::CSSParser::createImportRule):
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::setEncodedURL):
* dom/Document.cpp:
(WebCore::Document::processHttpEquiv):
(WebCore::Document::cookie):
(WebCore::Document::setCookie):
(WebCore::Document::domain):
(WebCore::Document::setDomain):
(WebCore::Document::getImageMap):
(WebCore::Document::completeURL):
* dom/Document.h:
(WebCore::Document::url):
(WebCore::Document::baseURL):
* dom/Element.cpp:
(WebCore::Element::baseURI):
* dom/ProcessingInstruction.h:
* dom/StyledElement.cpp:
(WebCore::StyledElement::addCSSImageProperty):
* dom/StyledElement.h:
* dom/XMLTokenizer.cpp:
(WebCore::XMLTokenizer::endElementNs):
(WebCore::XMLTokenizer::end):
(WebCore::):
* dom/XMLTokenizer.h:
* editing/Editor.cpp:
(WebCore::Editor::copy):
* editing/markup.cpp:
(WebCore::completeURLs):
* history/CachedPage.h:
(WebCore::CachedPage::url):
* history/HistoryItem.cpp:
(WebCore::HistoryItem::HistoryItem):
(WebCore::HistoryItem::setURL):
(WebCore::HistoryItem::isCurrentDocument):
* html/HTMLBaseElement.cpp:
(WebCore::HTMLBaseElement::process):
* html/HTMLParser.cpp:
(WebCore::HTMLParser::reportErrorToConsole):
* html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::childrenChanged):
(WebCore::HTMLScriptElement::insertedIntoDocument):
(WebCore::HTMLScriptElement::evaluateScript):
* html/HTMLScriptElement.h:
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::scriptExecution):
* loader/Cache.cpp:
(WebCore::createResource):
(WebCore::Cache::requestResource):
* loader/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::checkNotify):
* loader/CachedResource.cpp:
(WebCore::CachedResource::CachedResource):
* loader/CachedResource.h:
(WebCore::CachedResource::):
* loader/CachedScript.h:
* loader/DocLoader.cpp:
(WebCore::DocLoader::checkForReload):
(WebCore::DocLoader::requestResource):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::url):
(WebCore::DocumentLoader::replaceRequestURLForAnchorScroll):
(WebCore::DocumentLoader::setRequest):
(WebCore::DocumentLoader::startLoadingMainResource):
* loader/DocumentLoader.h:
* loader/FrameLoader.cpp:
(WebCore::FormSubmission::FormSubmission):
(WebCore::ScheduledRedirection::ScheduledRedirection):
(WebCore::FrameLoader::changeLocation):
(WebCore::FrameLoader::urlSelected):
(WebCore::FrameLoader::requestFrame):
(WebCore::FrameLoader::loadSubframe):
(WebCore::FrameLoader::submitFormAgain):
(WebCore::FrameLoader::submitForm):
(WebCore::FrameLoader::didExplicitOpen):
(WebCore::FrameLoader::replaceContentsWithScriptResult):
(WebCore::FrameLoader::executeScript):
(WebCore::FrameLoader::receivedFirstData):
(WebCore::FrameLoader::begin):
(WebCore::FrameLoader::startIconLoader):
(WebCore::FrameLoader::commitIconURLToIconDatabase):
(WebCore::FrameLoader::scheduleRefresh):
(WebCore::FrameLoader::redirectionTimerFired):
(WebCore::FrameLoader::loadPlugin):
(WebCore::FrameLoader::didNotOpenURL):
(WebCore::FrameLoader::updatePolicyBaseURL):
(WebCore::FrameLoader::scrollToAnchor):
(WebCore::FrameLoader::startRedirectionTimer):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::canLoad):
(WebCore::FrameLoader::shouldHideReferrer):
(WebCore::FrameLoader::shouldAllowNavigation):
(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::clientRedirected):
(WebCore::FrameLoader::open):
(WebCore::FrameLoader::didTellBridgeAboutLoad):
(WebCore::FrameLoader::haveToldBridgeAboutLoad):
(WebCore::FrameLoader::post):
(WebCore::FrameLoader::loadResourceSynchronously):
(WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
(WebCore::FrameLoader::shouldTreatURLAsSameAsCurrent):
(WebCore::FrameLoader::createHistoryItem):
(WebCore::FrameLoader::addBackForwardItemClippedAtTarget):
(WebCore::FrameLoader::loadItem):
(WebCore::FrameLoader::urlsMatchItem):
(WebCore::FrameLoader::recursiveGoToItem):
(WebCore::FrameLoader::updateHistoryForStandardLoad):
(WebCore::FrameLoader::updateHistoryForRedirectWithLockedHistory):
* loader/FrameLoader.h:
(WebCore::FrameLoader::url):
* loader/ImageDocument.cpp:
(WebCore::ImageDocument::createDocumentStructure):
* loader/MainResourceLoader.cpp:
(WebCore::shouldLoadAsEmptyDocument):
(WebCore::MainResourceLoader::didFinishLoading):
* loader/NavigationAction.cpp:
(WebCore::NavigationAction::NavigationAction):
* loader/NavigationAction.h:
(WebCore::NavigationAction::url):
* loader/PluginDocument.cpp:
(WebCore::PluginTokenizer::createDocumentStructure):
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::load):
(WebCore::SubresourceLoader::create):
* loader/icon/IconLoader.cpp:
(WebCore::IconLoader::startLoading):
(WebCore::IconLoader::finishLoading):
* loader/loader.cpp:
(WebCore::Loader::servePendingRequests):
* loader/mac/LoaderNSURLExtras.m:
(urlOriginalData):
* page/Chrome.cpp:
(WebCore::Chrome::setToolTip):
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected):
* page/Frame.cpp:
(WebCore::Frame::setUserStyleSheetLocation):
* page/InspectorController.cpp:
(WebCore::InspectorResource::type):
(WebCore::addSourceToFrame):
(WebCore::InspectorController::addScriptResource):
(WebCore::InspectorController::updateScriptResourceRequest):
(WebCore::InspectorController::didCommitLoad):
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge getData:andResponse:forURL:]):
* platform/KURL.h:
(WebCore::KURL::string):
(WebCore::KURL::deprecatedString):
* platform/mac/ClipboardMac.mm:
(WebCore::ClipboardMac::getData):
* platform/mac/CookieJar.mm:
(WebCore::cookies):
(WebCore::setCookies):
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::writeURL):
(WebCore::fileWrapperForImage):
(WebCore::Pasteboard::writeImage):
(WebCore::Pasteboard::plainText):
* platform/network/ResourceHandle.cpp:
(WebCore::ResourceHandle::portAllowed):
* platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::isNull):
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::willSendRequest):
(WebCore::didReceiveResponse):
(WebCore::didReceiveData):
(WebCore::didFinishLoading):
(WebCore::didFail):
(WebCore::didReceiveChallenge):
(WebCore::ResourceHandleInternal::~ResourceHandleInternal):
(WebCore::ResourceHandle::~ResourceHandle):
(WebCore::ResourceHandle::start):
* platform/win/ClipboardUtilitiesWin.cpp:
(WebCore::createGlobalData):
(WebCore::urlToMarkup):
* platform/win/ClipboardWin.cpp:
(WebCore::writeURL):
(WebCore::writeImageToDataObject):
(WebCore::ClipboardWin::writeURL):
(WebCore::ClipboardWin::writeRange):
* platform/win/PasteboardWin.cpp:
(WebCore::Pasteboard::writeSelection):
(WebCore::Pasteboard::writeURL):
* plugins/win/PluginDatabaseWin.cpp:
(WebCore::PluginDatabaseWin::findPlugin):
* plugins/win/PluginStreamWin.cpp:
(WebCore::PluginStreamWin::startStream):
(WebCore::PluginStreamWin::destroyStream):
* plugins/win/PluginViewWin.cpp:
(WebCore::scriptStringIfJavaScriptURL):
(WebCore::PluginViewWin::performRequest):
* svg/SVGImageLoader.cpp:
(WebCore::SVGImageLoader::updateFromElement):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::getResponseXML):
(WebCore::XMLHttpRequest::urlMatchesDocumentDomain):
* xml/XSLImportRule.cpp:
(WebCore::XSLImportRule::loadSheet):
* xml/XSLTProcessor.cpp:
(WebCore::XSLTProcessor::createDocumentFromSource):
(WebCore::xsltStylesheetPointer):
(WebCore::xmlDocPtrFromNode):
2007-12-11 Beth Dakin <bdakin@apple.com>
Reviewed by Darin.
Fix for <rdar://problem/5641255> SVGs with width and height 100%
fail to render when used as background images
CachedImage now has a setImageContainerSize function. It is only
needed for SVG right now.
* loader/CachedImage.cpp:
(WebCore::CachedImage::setImageContainerSize):
* loader/CachedImage.h:
Relatively sized SVGs have no intrinsic size. Because this call is
low-level enough that we cannot pass in the container size and get
the real size of the SVG, we need to know if it has relative
dimensions, and if so, we need to get the size from scaledTileSize.
* platform/graphics/Image.cpp:
(WebCore::Image::drawTiled):
* platform/graphics/Image.h:
(WebCore::Image::setContainerSize):
(WebCore::Image::hasRelativeWidth):
(WebCore::Image::hasRelativeHeight):
Re-factored calculateBackgroundSize a bit so that it returns an
IntSize. Made it a member function so that it can send m_width and
m_height along to setImageContainerSize.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::calculateBackgroundSize):
(WebCore::RenderBox::calculateBackgroundImageGeometry):
* rendering/RenderBox.h:
Need to account for relatively sized SVGs in calcViewport()
* rendering/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::calcViewport):
Added new member variables to store the size of the SVG container.
relativeWidthValue() and relativeHeightValue() use the stored SVG
container size to correctly calculate the width and height of a
relatively sized SVG.
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::SVGSVGElement):
(WebCore::SVGSVGElement::setContainerSize):
(WebCore::SVGSVGElement::relativeWidthValue):
(WebCore::SVGSVGElement::relativeHeightValue):
* svg/SVGSVGElement.h:
(WebCore::SVGSVGElement::containerSize):
Re-factored size calculations to use the size of the container.
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::setContainerSize):
(WebCore::SVGImage::size):
(WebCore::SVGImage::hasRelativeWidth):
(WebCore::SVGImage::hasRelativeHeight):
* svg/graphics/SVGImage.h:
2007-12-11 Darin Adler <darin@apple.com>
* editing/Editor.cpp:
(WebCore::Editor::yankFromKillRing): Try to fix non-Mac builds by adding
a missing return statement.
2007-12-11 Darin Adler <darin@apple.com>
Reviewed by Geoff.
- exposed many new commands to the DOM Document executeCommand function by
merging the JSEditor and Editor executeCommand implementations
- replaced the execCommand function with a EditorCommand class
- replaced the WTF::StrHash<> class template with the WebCore::StringHash class
- replaced the WTF::CaseInsensitiveHash<> class template with the
WebCore::CaseFoldingHash class
* WebCore.base.exp: Updated.
* WebCore.pro: Added EditorCommand.cpp, removed JSEditor.cpp.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* WebCoreSources.bkl: Ditto.
* dom/Document.cpp:
(WebCore::Document::Document): Removed code to set up m_jsEditor.
(WebCore::Document::~Document): Removed code to delete m_jsEditor.
(WebCore::command): Added. Helper function that gets an Editor::Command.
(WebCore::Document::executeCommand): Changed to use Editor::Command instead of
JSEditor.
(WebCore::Document::queryCommandEnabled): Ditto.
(WebCore::Document::queryCommandIndeterm):
(WebCore::Document::queryCommandState): Ditto.
(WebCore::Document::queryCommandSupported): Ditto.
(WebCore::Document::queryCommandValue): Ditto.
* dom/Document.h: Removed JSEditor, jsEditor, m_jsEditor. Changed to
use CaseFoldingHash.
* editing/Editor.cpp:
(WebCore::Editor::selectionForCommand): Renamed from selectionForEvent and
made into a member function so it is accessible from the new EditorCommand.cpp file.
Also changed to get the selection from the passed-in frame instead of from the
page, because this should work on the targeted frame unless the event overrides it.
(WebCore::Editor::handleKeypress): Updated for selectionForCommand change.
(WebCore::Editor::handleInputMethodKeypress): Ditto.
(WebCore::imageElementFromImageDocument): Renamed and changed to return
a HTMLImageElement instead of a Node*.
(WebCore::Editor::canCopy): Updated for name change.
(WebCore::Editor::selectionUnorderedListState): Updated for TriState change.
(WebCore::Editor::selectionOrderedListState): Ditto.
(WebCore::Editor::selectionStartHasStyle): Make type of local more specific.
(WebCore::updateState): Moved here from Frame.
(WebCore::Editor::selectionHasStyle): Ditto.
(WebCore::Editor::Editor): Initialize m_shouldStartNewKillRingSequence.
(WebCore::Editor::insertTextWithoutSendingTextEvent): Updated for
selectionForCommand change.
(WebCore::Editor::copy): Updated for imageElementFromImageDocument change.
(WebCore::Editor::toggleBold): Call the ToggleBold command via the command
machinery since it's no longer in this file as a local function.
(WebCore::Editor::toggleUnderline): Call the ToggleUnderline command.
(WebCore::Editor::setBaseWritingDirection): Change type of argument and of
local variable.
(WebCore::Editor::addToKillRing): Moved here from EditorMac. Not useful
without a kill ring, but it's relatively straightforward to implement one.
(WebCore::Editor::appendToKillRing): Put default implementation here for
platforms other than Mac. We should probably put a simple kill ring
implementation here -- doesn't need to be shared with the OS oh platforms
other than Mac.
(WebCore::Editor::prependToKillRing): Ditto.
(WebCore::Editor::yankFromKillRing): Ditto.
(WebCore::Editor::startNewKillRingSequence): Ditto.
(WebCore::Editor::setKillRingToYankedState): Ditto.
* editing/Editor.h: Moved the TriState enum here instead of inside the
Frame class. Added EditorCommandSource enum. Moved selectionHasStyle
here from the Frame class. Added Editor::Command class with five functions
for the various things you can do with a command (execute it, check if it
can be used, and its state and value). Changed hte parameter of
setBaseWritingDirection to be a const String& rather than a String.
Got rid of the kill-ring-related operations, but added the kill ring
functions themselves. Made selectedRange() public. Made the
m_startNewKillRingSequence not Mac-specific and added "should" to its
name.
* editing/EditorCommand.cpp: Copied from WebCore/editing/Editor.cpp.
Retained only the editing commands.
(WebCore::targetFrame): Moved to the top of the file.
(WebCore::executeApplyStyle): Added. Helper function for commands
that need to apply styles.
(WebCore::executeToggleStyle): Added. Helper function for commands
that need to toggle styles based on the style of the start of selection.
(WebCore::executeApplyParagraphStyle): Added. Like executeApplyStyle, but
for paragraph styles.
(WebCore::executeInsertFragment): Added. Helper function for commands
that need to insert a DOM fragment.
(WebCore::executeInsertNode): Added. Helper function for commands that
need to insert a tree rooted in a single DOM node.
(WebCore::stateStyle): Added. Helper function for the state of commands
that represent style.
(WebCore::valueStyle): Added. Helper function for the value of commands
that represent style.
(WebCore::canScroll): Added. Helper functions for some move and scroll
commands that need to determine if the renderer they are in can scroll.
(WebCore::unionDOMRanges): Moved here from EditorMac.
(WebCore::executeBackColor):
(WebCore::executeBackwardDelete):
(WebCore::executeCopy):
(WebCore::executeCreateLink):
(WebCore::executeCut):
(WebCore::executeDelete):
(WebCore::executeDeleteToMark):
(WebCore::executeDeleteWordBackward):
(WebCore::executeDeleteWordForward):
(WebCore::executeFindString):
(WebCore::executeFontName):
(WebCore::executeFontSize):
(WebCore::executeFontSizeDelta):
(WebCore::executeForeColor):
(WebCore::executeFormatBlock):
(WebCore::executeForwardDelete):
(WebCore::executeIndent):
(WebCore::executeInsertBacktab):
(WebCore::executeInsertHorizontalRule):
(WebCore::executeInsertHTML):
(WebCore::executeInsertImage):
(WebCore::executeInsertLineBreak):
(WebCore::executeInsertNewline):
(WebCore::executeInsertNewlineInQuotedContent):
(WebCore::executeInsertOrderedList):
(WebCore::executeInsertParagraph):
(WebCore::executeInsertTab):
(WebCore::executeInsertText):
(WebCore::executeInsertUnorderedList):
(WebCore::executeJustifyCenter):
(WebCore::executeJustifyFull):
(WebCore::executeJustifyLeft):
(WebCore::executeJustifyRight):
(WebCore::executeMoveBackward):
(WebCore::executeMoveBackwardAndModifySelection):
(WebCore::executeMoveDown):
(WebCore::executeMoveDownAndModifySelection):
(WebCore::executeMoveDownByPageAndModifyCaret):
(WebCore::executeMoveForward):
(WebCore::executeMoveForwardAndModifySelection):
(WebCore::executeMoveLeft):
(WebCore::executeMoveLeftAndModifySelection):
(WebCore::executeMoveRight):
(WebCore::executeMoveRightAndModifySelection):
(WebCore::executeMoveToBeginningOfDocument):
(WebCore::executeMoveToBeginningOfDocumentAndModifySelection):
(WebCore::executeMoveToBeginningOfLine):
(WebCore::executeMoveToBeginningOfLineAndModifySelection):
(WebCore::executeMoveToBeginningOfParagraph):
(WebCore::executeMoveToBeginningOfParagraphAndModifySelection):
(WebCore::executeMoveToBeginningOfSentence):
(WebCore::executeMoveToBeginningOfSentenceAndModifySelection):
(WebCore::executeMoveToEndOfDocument):
(WebCore::executeMoveToEndOfDocumentAndModifySelection):
(WebCore::executeMoveToEndOfSentence):
(WebCore::executeMoveToEndOfSentenceAndModifySelection):
(WebCore::executeMoveToEndOfLine):
(WebCore::executeMoveToEndOfLineAndModifySelection):
(WebCore::executeMoveToEndOfParagraph):
(WebCore::executeMoveToEndOfParagraphAndModifySelection):
(WebCore::executeMoveParagraphBackwardAndModifySelection):
(WebCore::executeMoveParagraphForwardAndModifySelection):
(WebCore::executeMoveUp):
(WebCore::executeMoveUpAndModifySelection):
(WebCore::executeMoveUpByPageAndModifyCaret):
(WebCore::executeMoveWordBackward):
(WebCore::executeMoveWordBackwardAndModifySelection):
(WebCore::executeMoveWordForward):
(WebCore::executeMoveWordForwardAndModifySelection):
(WebCore::executeMoveWordLeft):
(WebCore::executeMoveWordLeftAndModifySelection):
(WebCore::executeMoveWordRight):
(WebCore::executeMoveWordRightAndModifySelection):
(WebCore::executeOutdent):
(WebCore::executePaste):
(WebCore::executePasteAndMatchStyle):
(WebCore::executePrint):
(WebCore::executeRedo):
(WebCore::executeRemoveFormat):
(WebCore::executeSelectAll):
(WebCore::executeSelectToMark):
(WebCore::executeSetMark):
(WebCore::executeStrikethrough):
(WebCore::executeSubscript):
(WebCore::executeSuperscript):
(WebCore::executeSwapWithMark):
(WebCore::executeToggleBold):
(WebCore::executeToggleItalic):
(WebCore::executeTranspose):
(WebCore::executeUnderline):
(WebCore::executeUndo):
(WebCore::executeUnlink):
(WebCore::executeUnscript):
(WebCore::executeUnselect):
(WebCore::executeYank):
(WebCore::executeYankAndSelect):
(WebCore::supported):
(WebCore::supportedPaste):
(WebCore::enabled):
(WebCore::enabledAnySelection):
(WebCore::enabledAnySelectionAndMark):
(WebCore::enableCaretInEditableText):
(WebCore::enabledCopy):
(WebCore::enabledCut):
(WebCore::enabledInEditableText):
(WebCore::enabledInRichlyEditableText):
(WebCore::enabledPaste):
(WebCore::enabledRangeInEditableText):
(WebCore::enabledRangeInRichlyEditableText):
(WebCore::enabledRedo):
(WebCore::enabledUndo):
(WebCore::stateNone):
(WebCore::stateBold):
(WebCore::stateItalic):
(WebCore::stateOrderedList):
(WebCore::stateStrikethrough):
(WebCore::stateSubscript):
(WebCore::stateSuperscript):
(WebCore::stateUnderline):
(WebCore::stateUnorderedList):
(WebCore::valueNull):
(WebCore::valueBackColor):
(WebCore::valueFontName):
(WebCore::valueFontSize):
(WebCore::valueFontSizeDelta):
(WebCore::valueForeColor):
(WebCore::createCommandMap): Added lots of commands, including all the commands
from JSEditor. A few commands needed different behavior based on whether they are
invoked from the DOM or a keyboard binding.
(WebCore::Editor::command): Added. Gets a command object given a name.
(WebCore::Editor::Command::Command): Added.
(WebCore::Editor::Command::execute): Added.
(WebCore::Editor::Command::isSupported): Added.
(WebCore::Editor::Command::isEnabled): Added.
(WebCore::Editor::Command::state): Added.
(WebCore::Editor::Command::value): Added.
(WebCore::Editor::execCommand): Changed to call command().execute().
* editing/JSEditor.cpp: Removed.
* editing/JSEditor.h: Removed.
* editing/mac/EditorMac.mm: Changed to provide kill ring primitives intead of
kill ring commands, so the kill ring commands can be cross-platform.
(WebCore::Editor::appendToKillRing): Added.
(WebCore::Editor::prependToKillRing): Added.
(WebCore::Editor::yankFromKillRing): Added.
(WebCore::Editor::startNewKillRingSequence): Added.
(WebCore::Editor::setKillRingToYankedState): Added.
* page/Frame.cpp: Removed selectionHasStyle, TriState, and updateState.
* page/Frame.h: Ditto.
* page/mac/WebCoreFrameBridge.mm: Removed selectionHasStyle.
* page/mac/WebCoreFrameBridge.h: Ditto.
* platform/ContextMenu.cpp:
(WebCore::ContextMenu::checkOrEnableIfNeeded): Updated for TriState change.
* platform/text/StringHash.h:
(WebCore::StringHash::hash): Merged the StrHash<> template classes into this.
(WebCore::StringHash::equal): Ditto.
(WebCore::CaseFoldingHash::hash): Merged the CaseInsensitiveHash<> template
classes into this.
(WebCore::CaseFoldingHash::equal): Ditto.
* platform/text/StringImpl.cpp:
(WebCore::equal): Changed to invoke StringHash.
(WebCore::equalIgnoringCase): Changed to invoke CaseFoldingHash.
* dom/DOMImplementation.cpp:
(WebCore::addString): Updated to use StringHash and CaseFoldingHash.
(WebCore::isSVG10Feature): Ditto.
(WebCore::isSVG11Feature): Ditto.
* loader/FrameLoader.cpp:
(WebCore::localSchemes): Ditto.
* platform/graphics/FontCache.cpp:
(WebCore::computeHash): Ditto.
* platform/network/HTTPHeaderMap.h: Ditto.
* platform/text/PlatformString.h: Ditto.
* platform/text/StringImpl.h: Ditto.
* rendering/RenderPartObject.cpp:
(WebCore::RenderPartObject::updateWidget): Ditto.
* xml/XMLHttpRequest.cpp:
(WebCore::canSetRequestHeader): Ditto.
* rendering/RenderTreeAsText.cpp: Removed stray include of JSEditor.h.
2007-12-11 Darin Adler <darin@apple.com>
* platform/wx/KeyboardEventWx.cpp:
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Another try at fixing the
WX build. Changes the code around a little bit.
2007-12-11 Darin Adler <darin@apple.com>
* platform/wx/KeyboardEventWx.cpp:
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Quick try at fixing build.
2007-12-11 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- fix <rdar://problem/5631507> Text doesn't wrap properly at Tamil version of Wikipedia
Test: fast/text/international/complex-character-based-fallback.html
* platform/graphics/Font.cpp:
(WebCore::Font::glyphDataForCharacter): Added a forceSmallCaps argument
that forces this function to use the small caps font. It is used for
combining marks that need to combine with a small cap.
* platform/graphics/Font.h:
* platform/win/UniscribeController.cpp:
(WebCore::UniscribeController::advance): Changed to split the string
into runs of characters that will be rendered using the same FontData.
This is done by calling glyphDataForCharacter() for each cahracter to
find the FontData it should be rendered with.
(WebCore::UniscribeController::itemizeShapeAndPlace): Added a fontData
argument that is passed on to shapeAndPlaceItem() instead of the
smallCaps argument.
(WebCore::UniscribeController::shapeAndPlaceItem): Added a fontData
argument and removed the font fallback logic from this function, as
it is now expected to be called with an item all of whose characters
can be rendered with the given fontData.
* platform/win/UniscribeController.h:
2007-12-07 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
<rdar://problem/5535636>
Have to press 4 times instead of 2 times to get the expected result of ^^ with german keyboard.
http://bugs.webkit.org/show_bug.cgi?id=13916
JavaScript detects Tab as a character input on a textfield validation
Test: platform/win/fast/events/double-dead-char.html
* platform/PlatformKeyboardEvent.h:
(WebCore::PlatformKeyboardEvent::):
(WebCore::PlatformKeyboardEvent::type):
(WebCore::PlatformKeyboardEvent::windowsVirtualKeyCode):
(WebCore::PlatformKeyboardEvent::setWindowsVirtualKeyCode):
(WebCore::PlatformKeyboardEvent::keyIdentifier):
(WebCore::PlatformKeyboardEvent::setIsAutoRepeat):
Added an explicit type member to differentiate different kinds of events:
RawKeyDown == keydown == WM_KEYDOWN
KeyUp == keyup == WM_KEYUP
Char == keypress == WM_CHAR
KeyDown == e.g. NSKeyDown or NSFlagsChanged, used on platforms that have a different model for
event processing, and needs to be converted to RawKeyDown (+ Char) for processing in DOM.
* platform/mac/KeyEventMac.mm:
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Updated for changed data members.
Fix Enter (numeric keypad) charCode to match Return, as we check for it from keypress default handlers.
(WebCore::windowsKeyCodeForKeyEvent):
(WebCore::isKeyUpEvent): Made it do something closer to what it claims; added a FIXME explaining
that it still fails.
(WebCore::disambiguateKeyDownEvent): Downgrade from KeyDown to RawKeyDown or Char, removing information that
should not be available in those (because it cannot be provided on Windows).
* platform/win/KeyEventWin.cpp:
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Updated for changed data members.
Used standard Windows constants for bit masks instead of our own ones.
(WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent): Should never be called on Windows.
* platform/gtk/KeyEventGtk.cpp:
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
(WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
* platform/qt/PlatformKeyboardEventQt.cpp:
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
(WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
* platform/wx/KeyboardEventWx.cpp:
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
(WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
Updated for cross-platform changes as much as it was possible without appropriate build
environments.
* WebCore.base.exp: Export PlatformKeyboardEvent::disambiguateKeyDownEvent(), used by platforms that need to
convert their fancy key events to RawKeyDown/Char pairs. Export Editor::isTextInsertionCommand().
* bridge/EditorClient.h:
Renamed handleKeypress() to handleKeyboardEvent(), as it gets both keydowns and keypresses.
Renamed handleInputMethodKeypress() to handleInputMethodKeydown(), as IMs work with raw keydowns.
* dom/Document.h:
* dom/Document.cpp:
(WebCore::Document::defaultEventHandler): Moved accesskey processing to EventHandler.
* dom/KeyboardEvent.h: Added comments describing keyCode/charCode behavior.
* dom/KeyboardEvent.cpp:
(WebCore::eventTypeForKeyboardEventType):
(WebCore::KeyboardEvent::KeyboardEvent): Conversion between platform and DOM event types is
now straightforward, so scary hacks such as using autorepeat to distinguish types are
not needed.
(WebCore::KeyboardEvent::keyCode): Added a comment describing other browsers' behavior.
(WebCore::KeyboardEvent::charCode): Added a comment describing other browsers' behavior.
Changed to a more compatible behavior: raw keydown/keyup events do not and can not have
character codes.
* editing/Editor.h:
* editing/Editor.cpp:
(WebCore::Editor::isTextInsertionCommand): Is this command actually text input in disguise?
(WebCore::Editor::handleKeyboardEvent): Updated for new function names.
(WebCore::Editor::handleInputMethodKeydown): Ditto.
* html/HTMLButtonElement.cpp:
(WebCore::HTMLButtonElement::defaultEventHandler): Perform the default action when handling an
appropriate event. Enter is processed on keypress (and thus should be checked for via charCode,
not keyIdentifier), Space is processed on keydown+keyup! We now match IE in that a button is
highlighted when Space is pressed.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::defaultEventHandler):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::menuListDefaultEventHandler):
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
Made a number of fixes to when default actions take place, similar to HTMLButtonElement ones
described above.
* page/EventHandler.cpp:
(WebCore::EventHandler::keyEvent): Unless we have a combined KeyDown, just forward the event
to the target. Call accesskey handling directly, as it doesn't seem to be part of normal event
handling in IE. Also streamlined the code in KeyDown case, thanks to handleInputMethodKeypress()
now being handleInputMethodKeydown().
(WebCore::EventHandler::handleTextInputEvent): Check that we were not called from keydown.
(WebCore::EventHandler::defaultTextInputEventHandler): Removed a call to defaultTabEventHandler,
as default tab handling happens when processing keydown.
(WebCore::handleAccessKey): Moved from Document, as access keys are processed outside normal
event handling. Fixed accesskey processing to use information that's available in a raw keydown
event.
(WebCore::EventHandler::defaultKeyboardEventHandler): Do not ignore keydown; in particular,
handle tabs during keydown processing.
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::currentKeyboardEvent): Disambiguate KeyDown as RawKeyDown, as this is
what callers want.
* platform/text/PlatformString.h:
* platform/text/String.cpp:
(WebCore::String::characterStartingAt):
* platform/text/StringImpl.cpp:
(WebCore::StringImpl::characterStartingAt):
* platform/text/StringImpl.h:
Added a UChar32 accessor.
* svg/graphics/SVGImageEmptyClients.h:
(WebCore::SVGEmptyEditorClient::handleKeyboardEvent):
(WebCore::SVGEmptyEditorClient::handleInputMethodKeydown):
Updated for new function names.
2007-12-11 John Sullivan <sullivan@apple.com>
Reviewed by Adele
Tiger build fix -- don't call QTMovieView setDelegate: directly because it's not public
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::createQTMovieView):
(WebCore::MediaPlayerPrivate::detachQTMovieView):
2007-12-11 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=16325
<rdar://problem/5632997> REGRESSION: www.xerox.ru doesn't work
Fix this on Windows, too!
Test: http/tests/misc/empty-cookie.html
* platform/network/win/CookieJarWin.cpp:
(WebCore::setCookies):
(WebCore::cookies):
Same fix as on Mac, translated into CF.
* platform/win/CookieJarWin.cpp: Removed - the real one is in platform/network/win.
2007-12-11 Christian Dywan <christian@twotoasts.de>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=16371
Implement additional mouse cursors for Gtk
Added cursor bitmaps from Mozilla:
http://lxr.mozilla.org/mozilla1.8/source/widget/src/gtk2/nsGtkCursors.h
* platform/gtk/CursorGtk.cpp:
(WebCore::customCursorNew):
(WebCore::verticalTextCursor):
(WebCore::cellCursor):
(WebCore::contextMenuCursor):
(WebCore::noDropCursor):
(WebCore::copyCursor):
(WebCore::progressCursor):
(WebCore::aliasCursor):
(WebCore::noneCursor):
(WebCore::notAllowedCursor):
(WebCore::zoomInCursor):
(WebCore::zoomOutCursor):
* platform/gtk/CursorGtk.h: Added.
2007-12-10 Oliver Hunt <oliver@apple.com>
Reviewed by Weinig, Dan, and Alexey.
Fix character set used for dynamically loaded scripts.
Fix for:
<rdar://problem/5333163> Safari can not display the mouse over pop menu on ChinaTimes News site correctly.
<rdar://problem/5530048> [Safari]? :Leopard9A576: The typed CH characters displays as garbage in Sina website after reloading the webpage.
<rdar://problem/5416588> All menus for chinese IBM site have wrong encoding
Use the same logic to determine the charset for a script loaded dynamically
as we do for a statically loaded script.
* html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::insertedIntoDocument):
2007-12-10 Justin Garcia <justin.garcia@apple.com>
Reviewed by Oliver Hunt.
<rdar://problem/5482023> GoogleDocs: After FormatBlock in an empty document, certain functions are disabled
We were trying to insert a block of the requested type before the body element.
* editing/FormatBlockCommand.cpp:
(WebCore::FormatBlockCommand::doApply):
Removed unnecessary ()s in the if condition.
Removed "|| !upstreamStart.node()->isDescendantOf(root)" from the if condition, since
a) upstreamStart will never be outside the root editable element, since in that case
there would be no block inside the editable root to Format, and b) if upstreamStart.node()
*is* the root, then refNode is the root, and we shouldn't insert before the root, we should insert
at [root, 0].
Added comments to explain the use of upstream() in the second if-clause.
Added an early return for case where there is nothing selected, in that case, there is nothing
to move.
2007-12-10 Adele Peterson <adele@apple.com>
Reviewed and partially fixed by Tim Hatcher.
Remaining part of fix for <rdar://problem/5633400>
Transformed <video> is not clipped correctly until a repaint is forced
Replace the implementation of a QTKit method to avoid repaints from the NSView system associated with the QTMovie
from clobbering the WebCore repaints.
* html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaPlayerRepaint): Added.
* html/HTMLMediaElement.h:
* platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::repaint): Added.
* platform/graphics/MediaPlayer.h: (WebCore::MediaPlayerClient::mediaPlayerRepaint): Added.
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(method_setImplementation): Added for Tiger.
(WebCore::MediaPlayerPrivate::~MediaPlayerPrivate): Call detachQTMovieView, which now does more cleanup.
(WebCore::MediaPlayerPrivate::cancelLoad): ditto.
(WebCore::MediaPlayerPrivate::setVisible): ditto.
(WebCore::MediaPlayerPrivate::detachQTMovieView): Clear the delegate as well as m_qtMovieView pointer.
(WebCore::MediaPlayerPrivate::repaint): Added. Triggers a repaint on the video renderer.
(-[WebCoreMovieObserver repaint]): ditto.
(WebCore::mainThreadSetNeedsDisplay): Added.
Does a WebCore repaint instead of going through the view repaint system for QTMovieView.
(WebCore::MediaPlayerPrivate::createQTMovieView): Replace the implementation of _mainThreadSetNeedsDisplay.
2007-12-10 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
Updated for rename in JavaScriptCore.
* bridge/mac/WebCoreScriptDebugger.mm:
(-[WebCoreScriptCallFrame scopeChain]):
(-[WebCoreScriptCallFrame functionName]):
(-[WebCoreScriptCallFrame evaluateWebScript:]):
2007-12-10 Rodney Dawes <dobey@wayofthemonkey.com>
Bug 16383: Ambiguous Window Usage in kjs_dom.cpp
<http://bugs.webkit.org/show_bug.cgi?id=16383>
Use KJS::Window not the ambiguous Window
Reviewed by ddkilzer.
* bindings/js/kjs_dom.cpp (checkNodeSecurity):
2007-12-10 Sam Weinig <sam@webkit.org>
Fix non-mac builds.
* page/WindowFeatures.cpp: #include <wtf/MathExtras.h> for isnan.
2007-12-10 Marvin Decker <marv.decker@gmail.com>
Reviewed by Darin.
Fix a divide by 0 in the progress tracker.
http://bugs.webkit.org/show_bug.cgi?id=15055
* loader/ProgressTracker.cpp:
(WebCore::ProgressTracker::incrementProgress):
2007-12-09 Sam Weinig <sam@webkit.org>
Reviewed by Darin.
More cleanup of kjs_window.
- Move WindowFeatures from bridge/ to page/
- Move functions related to WindowFeatures (boolFeature,
floatFeature, setWindowFeature, parseWindowFeatures) into the class.
- Fix up whitespace.
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/kjs_window.cpp:
(KJS::DOMWindowTimer::~DOMWindowTimer):
(KJS::createWindow):
(KJS::showModalDialog):
(KJS::Window::getOwnPropertySlot):
(KJS::Window::allowsAccessFrom):
(KJS::Window::shouldInterruptScript):
(KJS::WindowProtoFuncAToB::callAsFunction):
(KJS::WindowProtoFuncOpen::callAsFunction):
(KJS::Window::setReturnValueSlot):
(KJS::ScheduledAction::execute):
(KJS::Window::timerFired):
(KJS::Location::Location):
(KJS::Location::getValueProperty):
(KJS::Location::getOwnPropertySlot):
(KJS::Location::put):
(KJS::LocationProtoFuncReplace::callAsFunction): Use better variable names.
(KJS::LocationProtoFuncAssign::callAsFunction): Ditto.
(KJS::LocationProtoFuncToString::callAsFunction): Remove extraneous calls to
allowsAccessFrom, cleanup the function a little.
(KJS::PausedTimeouts::~PausedTimeouts):
* bridge/WindowFeatures.h: Removed.
* page/WindowFeatures.cpp: Added.
(WebCore::isSeparator):
(WebCore::WindowFeatures::WindowFeatures):
(WebCore::WindowFeatures::setWindowFeature):
(WebCore::WindowFeatures::boolFeature):
(WebCore::WindowFeatures::floatFeature):
* page/WindowFeatures.h: Copied from WebCore/bridge/WindowFeatures.h.
(WebCore::WindowFeatures::WindowFeatures):
2007-12-10 Timothy Hatcher <timothy@apple.com>
Reviewed by Mark Rowe.
<rdar://problem/5639463> Bundle versions on Tiger should be 4523.x not 523.x
* Configurations/Version.xcconfig: Some Tiger versions of Xcode don't set MAC_OS_X_VERSION_MAJOR,
so assume Tiger and use a 4 for the SYSTEM_VERSION_PREFIX.
2007-12-10 Alp Toker <alp@atoker.com>
Reviewed by Niko.
Cairo implementation of GraphicsContext::setUseAntialiasing().
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::setUseAntialiasing):
2007-12-10 Rob Buis <buis@kde.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=16182
SVG should disable antialiasing for shape-rendering="crispEdges"
Turn off anti-aliasing of shapes when shape-rendering="crispEdges".
* platform/graphics/GraphicsContext.h:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::setUseAntialiasing):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::setUseAntialiasing):
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::setUseAntialiasing):
* platform/graphics/wx/GraphicsContextWx.cpp:
(WebCore::GraphicsContext::setUseAntialiasing):
* rendering/RenderPath.cpp:
(WebCore::RenderPath::paint):
2007-12-09 Rob Buis <buis@kde.org>
Reviewed by Niko.
http://bugs.webkit.org/show_bug.cgi?id=16163
SVG crash in Node::setChanged() on Debug builds only (trashed parent)
Fix the crash by properly unregistering as client from SVGResource
when deleting a styled svg node.
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::~SVGStyledElement):
2007-12-10 Brady Eidson <beidson@apple.com>
Rubberstamped by John
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::canEstablishDatabase): If the UI Delegate returns *exactly* the estimated size
for the new quota, we should allow the database to be created
2007-12-10 David D. Kilzer <ddkilzer@webkit.org>
Bug 9683: Implement select.options.remove() method
<http://bugs.webkit.org/show_bug.cgi?id=9683>
Reviewed by Maciej.
Implement select.options.remove() by calling select.remove()
with the same arguments. This is what MSIE 7 does, although its
select.remove() method differs from WebKit's by throwing an
exception when called with no arguments or with a negative
integer argument. Note that the DOM Level 1 documentation
specifies that select.remove() does not throw an exception.
Tests: fast/js/select-options-remove-gc.html
fast/js/select-options-remove.html
* bindings/js/JSHTMLOptionsCollectionCustom.cpp:
(WebCore::JSHTMLOptionsCollection::remove): Added.
* html/HTMLOptionsCollection.cpp:
(WebCore::HTMLOptionsCollection::remove): Added.
* html/HTMLOptionsCollection.h:
* html/HTMLOptionsCollection.idl:
2007-12-09 Sam Weinig <sam@webkit.org>
Rubber stamped by Mark Rowe.
* WebCore.xcodeproj/project.pbxproj: Add missing DerivedSources files.
2007-12-09 Oliver Hunt <oliver@apple.com>
Reviewed by Niko.
Correction, 'z' and 'Z' are the only commands that cannot have an extended
list of arguments.
* svg/SVGParserUtilities.cpp:
(WebCore::SVGPathParser::parseSVG):
2007-12-09 Oliver Hunt <oliver@apple.com>
Reviewed by Niko.
Prevent unlimited iteration in the case of invalid path data.
The only path commands that can leave numbers trailing the command processing
are 'm' and 'M', in which trailing numbers are parsed as arguments to an
implicit lineto command. In any case we should just terminate as an invalid
path.
* svg/SVGParserUtilities.cpp:
(WebCore::SVGPathParser::parseSVG):
2007-12-09 Luca Bruno <lethalman88@gmail.com>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=15825
[GTK] curl - slow dns causing hangs.
Create a vector of jobs, to satisfy requests in the right order.
Set a limit to the number of simultaneous connections.
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::maxRunningJobs): added
(WebCore::ResourceHandleManager::ResourceHandleManager):
(WebCore::ResourceHandleManager::removeFromCurl):
(WebCore::ResourceHandleManager::startScheduledJobs):
* platform/network/curl/ResourceHandleManager.h:
(WebCore::ResourceHandleList): removed
(WebCore::ResourceHandleManager::m_runningJobs): added
(WebCore::ResourceHandleManager::m_resourceHandleListHead): removed
(WebCore::ResourceHandleManager::m_resourceHandleList): added
2007-12-08 Sam Weinig <sam@webkit.org>
Reviewed by Oliver.
Cleanup kjs_window.h/cpp.
* bindings/js/kjs_window.cpp:
(KJS::WindowPrivate::WindowPrivate):
(KJS::DOMWindowTimer::DOMWindowTimer):
(KJS::Window::Window):
(KJS::Window::retrieveWindow):
(KJS::Window::retrieveActive):
(KJS::Window::retrieve):
(KJS::Window::location):
(KJS::Window::mark):
(KJS::allowPopUp):
(KJS::parseModalDialogFeatures):
(KJS::floatFeature):
(KJS::canShowModalDialog):
(KJS::canShowModalDialogNow):
(KJS::showModalDialog):
(KJS::Window::getValueProperty):
(KJS::Window::getOwnPropertySlot):
(KJS::Window::globalExec):
(KJS::Window::setListener):
(KJS::Window::getListener):
(KJS::Window::findOrCreateJSEventListener):
(KJS::Window::findOrCreateJSUnprotectedEventListener):
(KJS::Window::clearHelperObjectProperties):
(KJS::Window::setCurrentEvent):
(KJS::WindowProtoFuncAToB::callAsFunction):
(KJS::WindowProtoFuncBToA::callAsFunction):
(KJS::WindowProtoFuncOpen::callAsFunction):
(KJS::WindowProtoFuncSetTimeout::callAsFunction):
(KJS::WindowProtoFuncClearTimeout::callAsFunction):
(KJS::WindowProtoFuncSetInterval::callAsFunction):
(KJS::WindowProtoFuncAddEventListener::callAsFunction):
(KJS::WindowProtoFuncRemoveEventListener::callAsFunction):
(KJS::WindowProtoFuncShowModalDialog::callAsFunction):
(KJS::WindowProtoFuncNotImplemented::callAsFunction):
* bindings/js/kjs_window.h:
(KJS::PausedTimeouts::PausedTimeouts):
(KJS::PausedTimeouts::takeTimeouts):
(KJS::ScheduledAction::ScheduledAction):
2007-12-08 Sam Weinig <sam@webkit.org>
Reviewed by Mitz.
Move window scrolling, moving and resizing methods from KJS::Window
to WebCore::DOMWindow so that there bindings can be autogenerated.
Tests: fast/dom/Window/window-resize-and-move-arguments.html
fast/dom/Window/window-scroll-arguments.html
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/kjs_window.cpp:
(KJS::Window::getValueProperty): Remove extraneous allowsAccessFrom check.
(KJS::WindowProtoFuncOpen::callAsFunction):
(KJS::WindowProtoFuncNotImplemented::callAsFunction): Remove extraneous allowsAccessFrom check.
* bindings/js/kjs_window.h:
* bindings/scripts/CodeGeneratorJS.pm: Add new extended attribute
to ensure that the no less than the declared number of attributes
is allowed.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::adjustWindowRect): Moved from kjs_window.
(WebCore::DOMWindow::scrollBy):
(WebCore::DOMWindow::scrollTo):
(WebCore::DOMWindow::moveBy):
(WebCore::DOMWindow::moveTo):
(WebCore::DOMWindow::resizeBy):
(WebCore::DOMWindow::resizeTo):
* page/DOMWindow.h:
(WebCore::DOMWindow::scroll):
* page/DOMWindow.idl:
2007-12-08 Kevin Ollivier <kevino@theolliviers.com>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=14651
[CURL] didReceiveResponse() only called for HTTP loads
http://bugs.webkit.org/show_bug.cgi?id=14583
[GDK] file:// relative CSS include URLs handled incorrectly
Make sure CURL sets the ResourceResponse URL and calls
didReceiveResponse for local files too.
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::writeCallback):
2007-12-08 Oliver Hunt <oliver@apple.com>
Reviewed by Sam W.
Split the ENABLE_SVG_EXPERIMENTAL_FEATURES flag into separate flags.
Fixes <rdar://problem/5620249> Must disable SVG animation
<rdar://problem/5612772> Disable SVG filters on Mac to match Windows behavior
In order to allow finer grained control over the set of SVG features
this patch splits ENABLE_SVG_EXPERIMENTAL_FEATURES into the following
distinct flags:
ENABLE_SVG_ANIMATION
ENABLE_SVG_FILTERS
ENABLE_SVG_FONTS
ENABLE_SVG_AS_IMAGE
ENABLE_SVG_USE
by default only ENABLE_SVG_AS_IMAGE and ENABLE_SVG_USE are set.
* Configurations/WebCore.xcconfig:
* DerivedSources.make:
Handle the increased number of build flags that may be necessary
* WebCore.SVG.Animation.exp: Added.
* WebCore.SVG.Filters.exp: Added.
* WebCore.SVG.exp:
We now may not need the animation or filter exports so
these need to be separate.
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcproj/build-generated-files.sh:
Update for new flags
Remainder of changes are to swap ENABLE(SVG_EXPERIMENTAL_FEATURES)
with the appropriate specific feature flag.
* bindings/js/JSSVGElementWrapperFactory.cpp:
(WebCore::createJSSVGWrapper):
* bindings/objc/DOM.mm:
(WebCore::createElementClassMap):
* dom/make_names.pl:
* loader/CachedImage.cpp:
(WebCore::CachedImage::createImage):
* page/DOMWindow.idl:
* rendering/RenderPath.cpp:
(WebCore::RenderPath::absoluteClippedOverflowRect):
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::absoluteClippedOverflowRect):
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::absoluteClippedOverflowRect):
* rendering/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::paint):
(WebCore::RenderSVGRoot::absoluteClippedOverflowRect):
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::absoluteClippedOverflowRect):
* rendering/SVGRenderSupport.cpp:
(WebCore::prepareToRenderSVGContent):
(WebCore::finishRenderSVGContent):
* svg/SVGAnimateElement.cpp:
* svg/SVGAnimateElement.h:
* svg/SVGAnimateElement.idl:
* svg/SVGAnimateMotionElement.cpp:
* svg/SVGAnimateMotionElement.h:
* svg/SVGAnimateTransformElement.cpp:
* svg/SVGAnimateTransformElement.h:
* svg/SVGAnimateTransformElement.idl:
* svg/SVGComponentTransferFunctionElement.cpp:
* svg/SVGComponentTransferFunctionElement.h:
* svg/SVGComponentTransferFunctionElement.idl:
* svg/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::startAnimations):
* svg/SVGFEBlendElement.cpp:
* svg/SVGFEBlendElement.h:
* svg/SVGFEBlendElement.idl:
* svg/SVGFEColorMatrixElement.cpp:
* svg/SVGFEColorMatrixElement.h:
* svg/SVGFEColorMatrixElement.idl:
* svg/SVGFEComponentTransferElement.cpp:
* svg/SVGFEComponentTransferElement.h:
* svg/SVGFEComponentTransferElement.idl:
* svg/SVGFECompositeElement.cpp:
* svg/SVGFECompositeElement.h:
* svg/SVGFECompositeElement.idl:
* svg/SVGFEDiffuseLightingElement.cpp:
* svg/SVGFEDiffuseLightingElement.h:
* svg/SVGFEDiffuseLightingElement.idl:
* svg/SVGFEDisplacementMapElement.cpp:
* svg/SVGFEDisplacementMapElement.h:
* svg/SVGFEDisplacementMapElement.idl:
* svg/SVGFEDistantLightElement.cpp:
* svg/SVGFEDistantLightElement.h:
* svg/SVGFEDistantLightElement.idl:
* svg/SVGFEFloodElement.cpp:
* svg/SVGFEFloodElement.h:
* svg/SVGFEFloodElement.idl:
* svg/SVGFEFuncAElement.cpp:
* svg/SVGFEFuncAElement.h:
* svg/SVGFEFuncAElement.idl:
* svg/SVGFEFuncBElement.cpp:
* svg/SVGFEFuncBElement.h:
* svg/SVGFEFuncBElement.idl:
* svg/SVGFEFuncGElement.cpp:
* svg/SVGFEFuncGElement.h:
* svg/SVGFEFuncGElement.idl:
* svg/SVGFEFuncRElement.cpp:
* svg/SVGFEFuncRElement.h:
* svg/SVGFEFuncRElement.idl:
* svg/SVGFEGaussianBlurElement.cpp:
* svg/SVGFEGaussianBlurElement.h:
* svg/SVGFEGaussianBlurElement.idl:
* svg/SVGFEImageElement.cpp:
* svg/SVGFEImageElement.h:
* svg/SVGFEImageElement.idl:
* svg/SVGFELightElement.cpp:
* svg/SVGFELightElement.h:
* svg/SVGFEMergeElement.cpp:
* svg/SVGFEMergeElement.h:
* svg/SVGFEMergeElement.idl:
* svg/SVGFEMergeNodeElement.cpp:
* svg/SVGFEMergeNodeElement.h:
* svg/SVGFEMergeNodeElement.idl:
* svg/SVGFEOffsetElement.cpp:
* svg/SVGFEOffsetElement.h:
* svg/SVGFEOffsetElement.idl:
* svg/SVGFEPointLightElement.cpp:
* svg/SVGFEPointLightElement.h:
* svg/SVGFEPointLightElement.idl:
* svg/SVGFESpecularLightingElement.cpp:
* svg/SVGFESpecularLightingElement.h:
* svg/SVGFESpecularLightingElement.idl:
* svg/SVGFESpotLightElement.cpp:
* svg/SVGFESpotLightElement.h:
* svg/SVGFESpotLightElement.idl:
* svg/SVGFETileElement.cpp:
* svg/SVGFETileElement.h:
* svg/SVGFETileElement.idl:
* svg/SVGFETurbulenceElement.cpp:
* svg/SVGFETurbulenceElement.h:
* svg/SVGFETurbulenceElement.idl:
* svg/SVGFilterElement.cpp:
* svg/SVGFilterElement.h:
* svg/SVGFilterElement.idl:
* svg/SVGFilterPrimitiveStandardAttributes.cpp:
* svg/SVGTimer.cpp:
(WebCore::SVGTimer::animationsByElement):
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::buildPendingResource):
(WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
* svg/SVGUseElement.h:
* svg/TimeScheduler.cpp:
(WebCore::TimeScheduler::connectIntervalTimer):
(WebCore::TimeScheduler::disconnectIntervalTimer):
* svg/graphics/SVGResourceFilter.cpp:
* svg/graphics/SVGResourceFilter.h:
* svg/graphics/cg/SVGResourceFilterCg.cpp:
* svg/graphics/cg/SVGResourceFilterCg.mm:
* svg/graphics/filters/SVGDistantLightSource.h:
* svg/graphics/filters/SVGFEBlend.cpp:
* svg/graphics/filters/SVGFEBlend.h:
* svg/graphics/filters/SVGFEColorMatrix.cpp:
* svg/graphics/filters/SVGFEColorMatrix.h:
* svg/graphics/filters/SVGFEComponentTransfer.cpp:
* svg/graphics/filters/SVGFEComponentTransfer.h:
* svg/graphics/filters/SVGFEComposite.cpp:
* svg/graphics/filters/SVGFEComposite.h:
* svg/graphics/filters/SVGFEConvolveMatrix.cpp:
* svg/graphics/filters/SVGFEConvolveMatrix.h:
* svg/graphics/filters/SVGFEDiffuseLighting.cpp:
* svg/graphics/filters/SVGFEDiffuseLighting.h:
* svg/graphics/filters/SVGFEDisplacementMap.cpp:
* svg/graphics/filters/SVGFEDisplacementMap.h:
* svg/graphics/filters/SVGFEFlood.cpp:
* svg/graphics/filters/SVGFEFlood.h:
* svg/graphics/filters/SVGFEGaussianBlur.cpp:
* svg/graphics/filters/SVGFEGaussianBlur.h:
* svg/graphics/filters/SVGFEImage.cpp:
* svg/graphics/filters/SVGFEImage.h:
* svg/graphics/filters/SVGFEMerge.cpp:
* svg/graphics/filters/SVGFEMerge.h:
* svg/graphics/filters/SVGFEMorphology.cpp:
* svg/graphics/filters/SVGFEMorphology.h:
* svg/graphics/filters/SVGFEOffset.cpp:
* svg/graphics/filters/SVGFEOffset.h:
* svg/graphics/filters/SVGFESpecularLighting.cpp:
* svg/graphics/filters/SVGFESpecularLighting.h:
* svg/graphics/filters/SVGFETile.h:
* svg/graphics/filters/SVGFETurbulence.cpp:
* svg/graphics/filters/SVGFETurbulence.h:
* svg/graphics/filters/SVGFilterEffect.cpp:
* svg/graphics/filters/SVGFilterEffect.h:
* svg/graphics/filters/SVGLightSource.cpp:
* svg/graphics/filters/SVGLightSource.h:
* svg/graphics/filters/SVGPointLightSource.h:
* svg/graphics/filters/SVGSpotLightSource.h:
* svg/graphics/filters/cg/SVGFEBlendCg.mm:
* svg/graphics/filters/cg/SVGFEColorMatrixCg.mm:
* svg/graphics/filters/cg/SVGFEComponentTransferCg.mm:
* svg/graphics/filters/cg/SVGFECompositeCg.mm:
* svg/graphics/filters/cg/SVGFEDiffuseLightingCg.mm:
* svg/graphics/filters/cg/SVGFEDisplacementMapCg.mm:
* svg/graphics/filters/cg/SVGFEFloodCg.mm:
* svg/graphics/filters/cg/SVGFEGaussianBlurCg.mm:
* svg/graphics/filters/cg/SVGFEHelpersCg.h:
* svg/graphics/filters/cg/SVGFEHelpersCg.mm:
* svg/graphics/filters/cg/SVGFEImageCg.mm:
* svg/graphics/filters/cg/SVGFEMergeCg.mm:
* svg/graphics/filters/cg/SVGFEOffsetCg.mm:
* svg/graphics/filters/cg/SVGFESpecularLightingCg.mm:
* svg/graphics/filters/cg/SVGFETileCg.mm:
* svg/graphics/filters/cg/SVGFilterEffectCg.mm:
* svg/graphics/filters/cg/WKArithmeticFilter.h:
* svg/graphics/filters/cg/WKArithmeticFilter.m:
* svg/graphics/filters/cg/WKComponentMergeFilter.h:
* svg/graphics/filters/cg/WKComponentMergeFilter.m:
* svg/graphics/filters/cg/WKDiffuseLightingFilter.h:
* svg/graphics/filters/cg/WKDiffuseLightingFilter.m:
* svg/graphics/filters/cg/WKDiscreteTransferFilter.h:
* svg/graphics/filters/cg/WKDiscreteTransferFilter.m:
* svg/graphics/filters/cg/WKDisplacementMapFilter.h:
* svg/graphics/filters/cg/WKDisplacementMapFilter.m:
* svg/graphics/filters/cg/WKDistantLightFilter.h:
* svg/graphics/filters/cg/WKDistantLightFilter.m:
* svg/graphics/filters/cg/WKGammaTransferFilter.h:
* svg/graphics/filters/cg/WKGammaTransferFilter.m:
* svg/graphics/filters/cg/WKIdentityTransferFilter.h:
* svg/graphics/filters/cg/WKIdentityTransferFilter.m:
* svg/graphics/filters/cg/WKLinearTransferFilter.h:
* svg/graphics/filters/cg/WKLinearTransferFilter.m:
* svg/graphics/filters/cg/WKNormalMapFilter.h:
* svg/graphics/filters/cg/WKNormalMapFilter.m:
* svg/graphics/filters/cg/WKPointLightFilter.h:
* svg/graphics/filters/cg/WKPointLightFilter.m:
* svg/graphics/filters/cg/WKSpecularLightingFilter.h:
* svg/graphics/filters/cg/WKSpecularLightingFilter.m:
* svg/graphics/filters/cg/WKSpotLightFilter.h:
* svg/graphics/filters/cg/WKSpotLightFilter.m:
* svg/graphics/filters/cg/WKTableTransferFilter.h:
* svg/graphics/filters/cg/WKTableTransferFilter.m:
* svg/graphics/mac/SVGResourceFilterPlatformDataMac.h:
* svg/graphics/mac/SVGResourceFilterPlatformDataMac.mm:
* svg/svgtags.in:
2007-12-08 Dan Bernstein <mitz@apple.com>
Reviewed by Adele Peterson.
- fix two bugs in parsing of stylesheets in <style> elements created by
the parser:
1. each such stylesheet is parsed twice, once when the text node is
added and again when the </style> tag is reached
2. re-inserting such a <style> element into the document fails to
re-parse and apply its stylesheet.
Test for bug #2: fast/dom/HTMLStyleElement/insert-parser-generated.html
* html/HTMLStyleElement.cpp:
(WebCore::HTMLStyleElement::finishedParsing):
* svg/SVGStyleElement.cpp:
(WebCore::SVGStyleElement::finishedParsing):
2007-12-07 Sam Weinig <sam@webkit.org>
Reviewed by Darin.
- Removes the faulty isSafeScript implementation that was only
used for plugins.
- Renames isSafeScript to allowsAccessFrom.
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::customGetOwnPropertySlot):
(WebCore::JSDOMWindow::customPut):
* bindings/js/kjs_dom.cpp:
(WebCore::checkNodeSecurity):
* bindings/js/kjs_window.cpp:
(KJS::createWindow):
(KJS::Window::getValueProperty):
(KJS::Window::namedItemGetter):
(KJS::Window::getOwnPropertySlot):
(KJS::Window::put):
(KJS::Window::allowsAccessFrom):
(KJS::Window::setListener):
(KJS::Window::getListener):
(KJS::WindowProtoFuncOpen::callAsFunction):
(KJS::WindowProtoFuncSetTimeout::callAsFunction):
(KJS::WindowProtoFuncClearTimeout::callAsFunction):
(KJS::WindowProtoFuncSetInterval::callAsFunction):
(KJS::WindowProtoFuncAddEventListener::callAsFunction):
(KJS::WindowProtoFuncRemoveEventListener::callAsFunction):
(KJS::WindowProtoFuncNotImplemented::callAsFunction):
(KJS::Location::getOwnPropertySlot):
(KJS::Location::put):
(KJS::LocationProtoFuncReplace::callAsFunction):
(KJS::LocationProtoFuncReload::callAsFunction):
(KJS::LocationProtoFuncAssign::callAsFunction):
(KJS::LocationProtoFuncToString::callAsFunction):
* bindings/js/kjs_window.h:
(KJS::Window::allowsAccessFrom):
* bindings/objc/WebScriptObject.mm:
(-[WebScriptObject _isSafeScript]): Reverse caller/argument of allowsAccessFrom to match
the new call.
* bindings/scripts/CodeGeneratorJS.pm:
2007-12-08 Rob Buis <buis@kde.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=15464
SVGLengthList allows bad values
Be more strict with svg lengths without a unit identifier.
Test: svg/custom/invalid-lengthlist.svg
* svg/SVGLength.cpp:
(WebCore::SVGLength::setValueAsString):
2007-12-08 Rob Buis <buis@kde.org>
Mac Tiger build fix.
Use the wtf prefix when including MathExtras.h.
* rendering/RenderMedia.cpp:
2007-12-08 Alp Toker <alp@atoker.com>
GTK+ build fix (for ENABLE_VIDEO builds):
Include MathExtras.h to get isfinite().
* rendering/RenderMedia.cpp:
2007-12-08 Rob Buis <buis@kde.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=15528
svg_dynamic_cast should be removed
Replace svg_dynamic_cast with a combination of
isSVGElement and static_cast.
* rendering/SVGRootInlineBox.cpp:
(WebCore::SVGRootInlineBox::buildLayoutInformation):
(WebCore::SVGRootInlineBox::buildTextChunks):
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::targetElement):
* svg/SVGElement.h:
* svg/SVGElementInstance.cpp:
(WebCore::SVGElementInstance::updateInstance):
* svg/SVGFilterElement.cpp:
(WebCore::SVGFilterElement::canvasResource):
* svg/SVGGradientElement.cpp:
(WebCore::SVGGradientElement::buildStops):
* svg/SVGLocatable.cpp:
(WebCore::SVGLocatable::getTransformToElement):
* svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::drawMaskerContent):
* svg/SVGSwitchElement.cpp:
(WebCore::SVGSwitchElement::childShouldCreateRenderer):
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::insertedIntoDocument):
(WebCore::SVGUseElement::buildPendingResource):
(WebCore::SVGUseElement::buildInstanceTree):
(WebCore::SVGUseElement::handleDeepUseReferencing):
(WebCore::SVGUseElement::buildShadowTree):
(WebCore::SVGUseElement::expandUseElementsInShadowTree):
(WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
* svg/graphics/SVGResource.cpp:
(WebCore::getResourceById):
2007-12-07 Antti Koivisto <antti@apple.com>
Reviewed by Adele.
Partial fix for <rdar://problem/5633400>
Transformed <video>, <img>, <embed> are not clipped correctly until a repaint is forced
Fix video painting when transform is applied.
Test: media/video-transformed.html
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::paint):
2007-12-07 Dan Bernstein <mitz@apple.com>
Reviewed by Sam Weinig.
- fix http://bugs.webkit.org/show_bug.cgi?id=16348
@font-face does not affect the default style
Test: fast/css/font-face-default-font.html
* dom/Document.cpp:
(WebCore::Document::recalcStyle): Pass our font selector to
Font::update() if we already have one.
2007-12-07 Darin Adler <darin@apple.com>
- fix Windows build
* bridge/win/GlobalHistoryWin.cpp:
(WebCore::historyContains): Missed a rename.
2007-12-07 Brady Eidson <beidson@apple.com>
Reviewed by Anders and Darin
When a statement bumps up against the quota and the UI Delegate grants more space, we need to
actually set the new maximum size on the SQLiteDatabase (in addition to storing the new max quota
in the DatabaseTracker, which was already done)
* storage/SQLTransaction.cpp:
(WebCore::SQLTransaction::runStatements): If a statement is being retried, set the maximum size on
the SQLiteDatabase to the new maximum size
2007-12-07 Darin Adler <darin@apple.com>
- fix Tiger build
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm: Tiger didn't even have
QTKIT_VERSION_MAX_ALLOWED, so add logic to work without that.
2007-12-07 Darin Adler <darin@apple.com>
- fix 64-bit build, hopefully without breaking Tiger build
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::updateStates):
Don't use Movies.h constants that are nonexistent in 64-bit.
Define the new QTMovie.h constants, though, when using an older QTKit.
2007-12-07 Brady Eidson <beidson@apple.com>
Reviewed by Anders
Fix <rdar://problem/5636115> - Prompted for quota increase to create database when it already existed
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::canEstablishDatabase): Check hasEntryForDatabase before doing any prompting
(WebCore::DatabaseTracker::hasEntryForDatabase): Check and see if this database already exists
* storage/DatabaseTracker.h:
2007-12-07 Darin Adler <darin@apple.com>
Reviewed by Mitz.
- http://bugs.webkit.org/show_bug.cgi?id=15981
speed up visited-link code a bit
* bridge/GlobalHistory.h: Change historyContains to take a character pointer plus length
instead of requiring a DeprecatedString.
* bridge/mac/GlobalHistoryMac.mm: (WebCore::historyContains): Updated for above change.
Also removes pointless "fast Latin-1" case that was never used.
* bridge/win/GlobalHistoryWin.cpp: (WebCore::historyContains): Ditto.
* platform/gtk/TemporaryLinkStubs.cpp: (WebCore::historyContains): Ditto.
* platform/wx/TemporaryLinkStubs.cpp: (WebCore::historyContains): Ditto.
* css/CSSStyleSelector.cpp:
(WebCore::findHash): Added. Helper for cleanpath.
(WebCore::findSlashDotDotSlash): Ditto.
(WebCore::findSlashSlash): Ditto.
(WebCore::findSlashDotSlash): Ditto.
(WebCore::cleanpath): Changed to use fast helper functions instead of slower general-purpose
DeprecatedString find function.
(WebCore::containsColonSlashSlash): Added. Helper for checkPseudoState.
(WebCore::checkPseudoState): Got rid of reference count churn by using an AtomicString*
instead of an AtomicString for the attribute value. Changed to use fast helper function
instead of slower DeprecatedString::contains function, and also made the fast case not
bother allocating a DeprecatedConstString.
- unrelated tiny cleanup
* platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
(WebCore::releaseCachedStops): Use static_cast instead of reinterpret_cast.
(WebCore::cgGradientCallback): Ditto.
2007-12-07 Darin Adler <darin@apple.com>
Fix build on Tiger (Mark Rowe told me how).
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
Include <objc/objc-runtime.h>, which existed back on Tiger,
rather than <objc/runtime.h>, which did not.
2007-12-07 Geoffrey Garen <ggaren@apple.com>
Build fix: rolling out last build fix to change #include path.
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2007-12-07 Steve Falkenburg <sfalken@apple.com>
Re-named our B&I flag from BUILDBOT to PRODUCTION.
Reviewed by Sam Weinig.
* WebCore.vcproj/WebCore.make:
2007-12-07 Geoffrey Garen <ggaren@apple.com>
Build fix: corrected #include path.
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2007-12-07 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
Added some namespace qualifications and a forwarding header, now that
KJS::Node is sometimes #included in WebCore by JavaScriptCore headers.
* ForwardingHeaders/wtf/ListRefPtr.h: Added.
* bindings/js/JSXSLTProcessor.cpp:
(KJS::JSXSLTProcessorPrototypeFunctionTransformToFragment::callAsFunction):
* bindings/js/kjs_binding.cpp:
(KJS::ScriptInterpreter::getDOMNodeForDocument):
(KJS::ScriptInterpreter::forgetDOMNodeForDocument):
(KJS::ScriptInterpreter::putDOMNodeForDocument):
(KJS::ScriptInterpreter::markDOMNodesForDocument):
(KJS::ScriptInterpreter::updateDOMNodeDocument):
2007-12-07 Adam Roben <aroben@apple.com>
Add SoftLinking.h for Windows and use it in a few places
Reviewed by Oliver.
* WebCore.vcproj/WebCore.vcproj: Added new file to project.
* platform/win/PlatformScrollBarSafari.cpp: Use SoftLinking.h.
(WebCore::PlatformScrollbar::PlatformScrollbar): Removed manual
soft-linking calls.
(WebCore::PlatformScrollbar::paintButton): Check for the presence of
the SafariTheme library now that we can't check for the presence of
paintThemePart directly.
(WebCore::PlatformScrollbar::paintTrack): Ditto.
(WebCore::PlatformScrollbar::paintThumb): Ditto.
* platform/win/SoftLinking.h: Copied from WebCore/platform/mac/SoftLinking.h.
* rendering/RenderThemeSafari.cpp: Same basic changes as to
PlatformScrollBarSafari.cpp.
(WebCore::RenderThemeSafari::RenderThemeSafari):
(WebCore::RenderThemeSafari::isControlStyled):
(WebCore::RenderThemeSafari::paintCapsLockIndicator):
* rendering/RenderThemeSafari.h: Removed m_themeDLL member.
2007-12-07 Darin Adler <darin@apple.com>
Reviewed by Adele.
- fix <rdar://problem/5608795> CrashTracer: 481 crashes in Safari
at WebCore::HTMLSelectElement::saveState const + 152
Test: fast/forms/select-set-inner.html
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::removeChildren): Added a return value, as with other
calls that change children, so we can optimize for the case where it does nothing.
(WebCore::ContainerNode::cloneChildNodes): Changed parameter type to ContainerNode.
* dom/ContainerNode.h: See above.
* html/HTMLOptGroupElement.cpp:
(WebCore::HTMLOptGroupElement::removeChildren): Override removeChildren and call
recalcSelectOptions in that case.
(WebCore::HTMLOptGroupElement::childrenChanged): Override childrenChanged instead of
addChild, for consistency with HTMLSelectElement; no need to override both.
(WebCore::HTMLOptGroupElement::groupLabelText): Made const.
* html/HTMLOptGroupElement.h: See above.
* html/HTMLSelectElement.cpp: Don't override addChild any more, because we already
override childrenChanged, and addChild calls that.
(WebCore::HTMLSelectElement::removeChildren): Override removeChildren and call
recalcSelectOptions in that case.
(WebCore::HTMLSelectElement::recalcListItems): Tightened up the code a little bit
by using a for loop and traverseNextSibling. Also added some new comments and
removed some obsolete ones.
(WebCore::HTMLSelectElement::checkListItems): Added. Debug-only check to make
sure we don't have a stale list items vector.
* html/HTMLSelectElement.h: Changed listItems() to invoke checkListItems().
This will help us catch cases where we have too few calls to setRecalcListItems.
2007-12-07 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- WebCore part of fixing <rdar://problem/5499918> REGRESSION: insertion point in input field with custom border cuts holes in focus ring interior edges
Test: fast/repaint/focus-ring.html
* editing/SelectionController.cpp:
(WebCore::SelectionController::caretRepaintRect): Changed to return just
the caret rect without any padding.
(WebCore::SelectionController::recomputeCaretRect): Changed to repaint
just the caret rect without any padding.
* platform/graphics/GraphicsContext.h: Removed setFocusRingClip() and
clearFocusRingClip().
* platform/graphics/cairo/GraphicsContextCairo.cpp: Ditto.
* platform/graphics/cg/GraphicsContextCG.cpp: Ditto.
* platform/graphics/cg/GraphicsContextPlatformPrivate.h: Removed
m_focusRingClip member.
* platform/graphics/mac/GraphicsContextMac.mm:
(WebCore::GraphicsContext::drawFocusRing): Changed to call
wkDrawFocusRing() once without setting up additional clip. On Leopard,
wkDrawFocusRing() respects the context clip now. On Tiger, a
transparency layer is used to apply clipping to the focus ring.
* platform/graphics/qt/GraphicsContextQt.cpp: Removed focus ring clip
methods and member.
* platform/graphics/wx/GraphicsContextWx.cpp: Ditto.
* platform/mac/WebCoreSystemInterface.h: Removed the clipRect argument
to wkDrawFocusRing().
* platform/mac/WebCoreSystemInterface.mm: Ditto.
* rendering/RenderLayer.cpp:
(WebCore::setClip): Removed call to set the focus ring clip.
(WebCore::restoreClip): Removed call to reset the focus ring clip.
2007-12-07 Darin Adler <darin@apple.com>
Reviewed by Antti Koivisto and Kevin Decker.
- fix <rdar://problem/5601586> QtKit should be dynamically loaded upon need, not linked at startup
Also did a lot of small tweaks to MediaPlayerPrivateQTKit.
* WebCore.xcodeproj/project.pbxproj: Don't link to QTKit.
* platform/graphics/mac/MediaPlayerPrivateQTKit.h: Omit unneeded includes and declarations.
Made a lot more functions const. Made a few more members private and a couple inline.
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm: Added soft linking machinery for all the
things we currently use in QTKit. It's a little more awkward for classes and other data objects
than it is for functions, but still relatively straightforward, with no changes needed to the
client code. Added using namespace directives. Made a cuePointTimerInterval constant and put
it at the top of the file. Use 0 consistently instead of sometimes 0 and sometimes 0.0f.
(WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Removed unneeded initialization of RetainPtr
members to nil.
(WebCore::MediaPlayerPrivate::createQTMovie): Use adoptNS instead of autorelease.
(WebCore::MediaPlayerPrivate::createQTMovieView): Ditto. Also use -[NSColor clearColor].
(WebCore::MediaPlayerPrivate::createQTTime): Remove an unneeded type cast that had no effect.
Changed to use long instead of int because that's the type for a QTTime time scale anyway.
(WebCore::MediaPlayerPrivate::duration): Use a static_cast instead of a C-style cast.
(WebCore::MediaPlayerPrivate::currentTime): Ditto. Also merged into a single expression.
(WebCore::MediaPlayerPrivate::cuePointTimerFired): Added code to make a copy of the cue
points set to avoid a potential problem with a set being modified as we iterate it.
(WebCore::MediaPlayerPrivate::bytesLoaded): Removed unneeded null check of m_qtMovie.
(WebCore::MediaPlayerPrivate::updateStates): Instead of comments explaining the numeric
values, used the constants from the headers directly.
(WebCore::MediaPlayerPrivate::getSupportedTypes): Instead of (QTMovieFileTypeOptions)0,
pass the named constant with value 0, QTIncludeCommonTypes. Skipped the intermediate type
of NSString to remove one cast. Replaced C-style cast with reinterpret_cast (arguably
no better). Used RetainPtr instead of explicit CFRelease calls.
* platform/mac/SoftLinking.h: Added macros to do soft linking for classes and for pointers.
It's not quite as automatic as the soft linking we can do for functions, since these define
functions to get the values, so you need to define macros to make what look like variable
accesses turn into function calls. See MediaPlayerPrivateQTKit for the details.
* html/HTMLMediaElement.h:
* html/TimeRanges.h:
* html/VoidCallback.h:
* platform/graphics/MediaPlayer.h:
Use angle brackets for wtf includes. Omit unneeded includes.
2007-12-07 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- fix http://bugs.webkit.org/show_bug.cgi?id=16334
<rdar://problem/5634923> REGRESSION (r28299): Homepage of any DotMac Web Gallery won't load completely
Test: fast/dynamic/subtree-no-common-root-static-y.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::markContainingBlocksForLayout): Changed the call
to setChildNeedsLayout() to not mark containing blocks and added a
separate call to markContainingBlocksForLayout() that will not schedule
a layout if we are already in the middle of scheduleRelayoutOfSubtree().
2007-12-07 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=16325
<rdar://problem/5632997> REGRESSION: www.xerox.ru doesn't work
Test: http/tests/misc/empty-cookie.html
* platform/mac/CookieJar.mm:
(WebCore::setCookies): Don't store empty cookies.
(WebCore::cookies): Filter out empty cookies if we have them, as they could have been set
with an earlier version of Leopard!
2007-12-06 Ada Chan <adachan@apple.com>
Fixed the if statement (ERROR_SUCCESS is 0 and we were actually
returning true when there's an error).
Reviewed by Steve.
* platform/win/FileSystemWin.cpp:
(WebCore::makeAllDirectories):
2007-12-06 Darin Adler <darin@apple.com>
- fix broken regression test
* bindings/js/kjs_binding.cpp:
(KJS::setDOMException): Oops, this was just supposed to be PERMISSION_DENIED.
2007-12-06 Darin Adler <darin@apple.com>
Reviewed by Sam Weinig.
- fix http://bugs.webkit.org/show_bug.cgi?id=16332
ObjC DOM exception object descriptions should include the exception name
* WebCore.pro: Added ExceptionCode.cpp.
* WebCore.vcproj/WebCore.vcproj: Added ExceptionCode.cpp.
* WebCore.xcodeproj/project.pbxproj: Added ExceptionCode.cpp.
* WebCoreSources.bkl: Added ExceptionCode.cpp.
* bindings/js/kjs_binding.cpp: (KJS::setDOMException): Moved the code to decompose an
ExceptionCode into ExceptionCode.h/cpp -- getExceptionCodeDescription. Also removed
the many unneeded includes that were here. Had to keep one special case here, for
SECURITY_ERR.
* bindings/objc/ExceptionHandlers.mm: (WebCore::raiseDOMException): Changed to use the
new getExceptionCodeDescription function so that this shares the exception name
information that was previously only available to JavaScript.
* dom/ExceptionCode.cpp: Copied from bindings/js/kjs_binding.cpp.
(WebCore::getExceptionCodeDescription): Added some assertions, and made the function
handle exception names in a slightly more robust way that is not subject to integer
overflow. (Not a real world issue since we should never receive a bad exception code.)
* dom/ExceptionCode.h: Added the ExceptionCodeDescription struct and the
getExceptionCodeDescription function.
* svg/SVGException.h: Added a missing #include and got rid of some comments. Some of
the comments were mildly helpful, but others were incorrect. This now matches the other
exception-related headers such as RangeException.h.
2007-12-06 Brady Eidson <beidson@apple.com>
Reviewed by Darin
Fixed a glaring bug that would prevent a statement from getting run a second time
* storage/SQLStatement.cpp:
(WebCore::SQLStatement::execute): Clear failure due to quota *before* we check the error
and return early
(WebCore::SQLStatement::clearFailureDueToQuota): Only clear the error if it was a quota error
2007-12-06 Timothy Hatcher <timothy@apple.com>
Reviewed by Oliver Hunt.
Use keydown instead of keypress so keyIdentifier can be used.
* page/inspector/ConsolePanel.js: Use keydown instead of keypress.
* page/inspector/DatabasePanel.js: Ditto.
* page/inspector/inspector.js: Ditto. Plus call removeEventListener
before deleting windowLoaded.
2007-12-06 Adam Roben <aroben@apple.com>
Rename FontsTable.plist to FontsList.plist
Rubberstamped by Hyatt.
* platform/graphics/win/FontDatabase.cpp:
2007-12-06 Brady Eidson <beidson@apple.com>
Reviewed by Darin
Tweaked a comment and a few assertions from my last checkin
* storage/SQLStatement.cpp:
(WebCore::SQLStatement::execute):
(WebCore::SQLStatement::clearFailureDueToQuota):
(WebCore::SQLStatement::lastExecutionFailedDueToQuota):
2007-12-06 Brady Eidson <beidson@apple.com>
Reviewed by Darin
Finished hooking up UI Delegate for databases - Database operations will now enforce a size quota and
will ask the UI Delegate for more space when that quota is met
* platform/sql/SQLiteDatabase.cpp: Add the new SQLResultFull constant
* platform/sql/SQLiteDatabase.h: Ditto
* storage/Database.cpp:
(WebCore::Database::securityOriginData): Added this accessor, copying for thread safety
(WebCore::Database::stringIdentifier): Ditto
* storage/Database.h:
* storage/SQLStatement.cpp:
(WebCore::SQLStatement::SQLStatement):
(WebCore::SQLStatement::execute): Change to return an enum that represents 3 states - success, error, and quota.
If the result is quota, this statement expects that it might be run again, presumably after the user increases
the quota
(WebCore::SQLStatement::setFailureDueToQuota): Setup a quota failure, including a flag and the error
(WebCore::SQLStatement::clearFailureDueToQuota): Clear a quota failure, for when the statement is rerun
(WebCore::SQLStatement::lastExecutionFailedDueToQuota):
* storage/SQLStatement.h:
* storage/SQLTransaction.cpp:
(WebCore::SQLTransaction::SQLTransaction):
(WebCore::SQLTransaction::performPendingCallback): Added an acceptable callback pointer
(WebCore::SQLTransaction::openTransactionAndPreflight): Setup the quota in the database that will remain for this
transaction. Note that in this patch, the quota being set is wrong - it makes sense to fix that in a follow up patch
(WebCore::SQLTransaction::runStatements): Modified to add the ability to re-run a statement based on the UI delegate
decision and whether the current statement was already run
(WebCore::SQLTransaction::runCurrentStatement): Added another result condition - the Quota result - and handle it
(WebCore::SQLTransaction::handleCurrentStatementError): Statements can now error-out from two places, so the code
that handles a statement error was moved here
(WebCore::SQLTransaction::deliverQuotaIncreaseCallback): Added - Consult the UI delegate for more quota, then
reschedule the current statement on the database thread
* storage/SQLTransaction.h:
2007-12-06 Steve Falkenburg <sfalken@apple.com>
<rdar://problem/5614257> Crash in timer / hashtable code due to uncaught exception
Don't use callback-based timers, since these cause Windows to eat Windows crashes
in code the timers call.
Windows appears to be defending against "shatter" attacks partially by setting
up a structured exception block while dispatching callback-based WM_TIMERs.
I verified this by adding a divide by zero into some timer callback code.
In the case where the timer was dispatched via a callback, the divide by zero
exception was silently handled and ignored, with execution continuing after
our call to DispatchMessage. When processed via the WNDPROC, no SEH
block was established by Windows, and our divide by zero generated a real
crash (which is what we wanted).
Windows handling our crashes for us led us to leave the timer data structures
in an invalid state so the next time a timer was set, we'd crash accessing an
invalid HashMap of timer data.
Reviewed by Hyatt.
* platform/win/SharedTimerWin.cpp:
(WebCore::TimerWindowWndProc):
(WebCore::setSharedTimerFireTime):
2007-12-06 Adam Roben <aroben@apple.com>
Fix <rdar://5108390> Feed title is too low in blue banner
Way back in r23069 we started applying the same font ascent hack that
Mac WebKit applies to Helvetica, Times, and Courier. We did this so
that those fonts would match the Mac metrics when we run the
regression tests. However, this hack was applying to Arial on Windows
when a site would specify the Helvetica font face because Windows will
alias the font names. Instead of removing the hack entirely, we
turn it off by default but provide some SPI so that DumpRenderTree can
turn it on.
Reviewed by Hyatt.
All tests pass.
* platform/graphics/FontData.h: Add a new static method to turn on the
hack on Windows only.
* platform/graphics/win/FontDataWin.cpp:
(WebCore::FontData::setShouldApplyMacAscentHack): Added.
(WebCore::FontData::platformInit): Only perform the hack if
shouldApplyMacAscentHack is true.
2007-12-06 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
Fixed http://bugs.webkit.org/show_bug.cgi?id=16328
REGRESSION (r28470): Crash expanding a GMail conversation
* page/Frame.cpp:
(WebCore::Frame::scriptProxy): Only return 0 if JS seems disabled *and*
we haven't created the proxy yet. If we've created the proxy already, a
script may be in the midst of execution, even though we've lost our
settings object. During execution, scripts assume they have free access
to the proxy.
2007-12-06 Adele Peterson <adele@apple.com>
Reviewed by Oliver.
Fix for <rdar://problem/5631356> Toggling display property on video causes controls to get lost
* html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::attach): Call updateFromElement.
* html/HTMLMediaElement.h:
2007-12-05 Antti Koivisto <antti@apple.com>
Reviewed by Oliver.
Rename
Movie -> MediaPlayer
MoviePrivate -> MediaPlayerPrivate
Movie is QuickTime terminology and clashes with its C API.
* WebCore.xcodeproj/project.pbxproj:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::initAndDispatchProgressEvent):
(WebCore::HTMLMediaElement::bufferingRate):
(WebCore::HTMLMediaElement::load):
(WebCore::HTMLMediaElement::mediaPlayerNetworkStateChanged):
(WebCore::HTMLMediaElement::mediaPlayerReadyStateChanged):
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::progressEventTimerFired):
(WebCore::HTMLMediaElement::seek):
(WebCore::HTMLMediaElement::currentTime):
(WebCore::HTMLMediaElement::duration):
(WebCore::HTMLMediaElement::playbackRate):
(WebCore::HTMLMediaElement::setPlaybackRate):
(WebCore::HTMLMediaElement::play):
(WebCore::HTMLMediaElement::pause):
(WebCore::HTMLMediaElement::setVolume):
(WebCore::HTMLMediaElement::setMuted):
(WebCore::HTMLMediaElement::pickMedia):
(WebCore::HTMLMediaElement::checkIfSeekNeeded):
(WebCore::HTMLMediaElement::mediaPlayerVolumeChanged):
(WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
(WebCore::HTMLMediaElement::mediaPlayerCuePointReached):
(WebCore::HTMLMediaElement::addCuePoint):
(WebCore::HTMLMediaElement::buffered):
(WebCore::HTMLMediaElement::seekable):
(WebCore::HTMLMediaElement::effectiveStart):
(WebCore::HTMLMediaElement::effectiveEnd):
(WebCore::HTMLMediaElement::effectiveLoopStart):
(WebCore::HTMLMediaElement::effectiveLoopEnd):
(WebCore::HTMLMediaElement::updateMediaPlayer):
(WebCore::HTMLMediaElement::willSaveToCache):
* html/HTMLMediaElement.h:
(WebCore::HTMLMediaElement::player):
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::videoWidth):
(WebCore::HTMLVideoElement::videoHeight):
* platform/MIMETypeRegistry.cpp:
(WebCore::initialiseSupportedMediaMIMETypes):
(WebCore::MIMETypeRegistry::isSupportedMediaMIMEType):
(WebCore::MIMETypeRegistry::getSupportedMediaMIMETypes):
* platform/MIMETypeRegistry.h:
* platform/graphics/MediaPlayer.cpp: Copied from WebCore/platform/graphics/Movie.cpp.
(WebCore::MediaPlayer::MediaPlayer):
(WebCore::MediaPlayer::~MediaPlayer):
(WebCore::MediaPlayer::load):
(WebCore::MediaPlayer::cancelLoad):
(WebCore::MediaPlayer::play):
(WebCore::MediaPlayer::pause):
(WebCore::MediaPlayer::duration):
(WebCore::MediaPlayer::currentTime):
(WebCore::MediaPlayer::seek):
(WebCore::MediaPlayer::paused):
(WebCore::MediaPlayer::seeking):
(WebCore::MediaPlayer::naturalSize):
(WebCore::MediaPlayer::hasVideo):
(WebCore::MediaPlayer::networkState):
(WebCore::MediaPlayer::readyState):
(WebCore::MediaPlayer::volume):
(WebCore::MediaPlayer::setVolume):
(WebCore::MediaPlayer::rate):
(WebCore::MediaPlayer::setRate):
(WebCore::MediaPlayer::muted):
(WebCore::MediaPlayer::setMuted):
(WebCore::MediaPlayer::dataRate):
(WebCore::MediaPlayer::setEndTime):
(WebCore::MediaPlayer::addCuePoint):
(WebCore::MediaPlayer::removeCuePoint):
(WebCore::MediaPlayer::clearCuePoints):
(WebCore::MediaPlayer::maxTimeBuffered):
(WebCore::MediaPlayer::maxTimeSeekable):
(WebCore::MediaPlayer::bytesLoaded):
(WebCore::MediaPlayer::totalBytesKnown):
(WebCore::MediaPlayer::totalBytes):
(WebCore::MediaPlayer::setRect):
(WebCore::MediaPlayer::visible):
(WebCore::MediaPlayer::setVisible):
(WebCore::MediaPlayer::paint):
(WebCore::MediaPlayer::getSupportedTypes):
(WebCore::MediaPlayer::networkStateChanged):
(WebCore::MediaPlayer::readyStateChanged):
(WebCore::MediaPlayer::volumeChanged):
(WebCore::MediaPlayer::timeChanged):
(WebCore::MediaPlayer::cuePointReached):
* platform/graphics/MediaPlayer.h: Copied from WebCore/platform/graphics/Movie.h.
(WebCore::MediaPlayerClient::~MediaPlayerClient):
(WebCore::MediaPlayerClient::mediaPlayerNetworkStateChanged):
(WebCore::MediaPlayerClient::mediaPlayerReadyStateChanged):
(WebCore::MediaPlayerClient::mediaPlayerVolumeChanged):
(WebCore::MediaPlayerClient::mediaPlayerTimeChanged):
(WebCore::MediaPlayerClient::mediaPlayerCuePointReached):
* platform/graphics/Movie.cpp: Removed.
* platform/graphics/Movie.h: Removed.
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp: Copied from WebCore/platform/graphics/gtk/MoviePrivateGStreamer.cpp.
(WebCore::mediaPlayerPrivateErrorCallback):
(WebCore::mediaPlayerPrivateEOSCallback):
(WebCore::mediaPlayerPrivateStateCallback):
(WebCore::mediaPlayerPrivateBufferingCallback):
(WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::load):
(WebCore::MediaPlayerPrivate::play):
(WebCore::MediaPlayerPrivate::pause):
(WebCore::MediaPlayerPrivate::duration):
(WebCore::MediaPlayerPrivate::currentTime):
(WebCore::MediaPlayerPrivate::seek):
(WebCore::MediaPlayerPrivate::setEndTime):
(WebCore::MediaPlayerPrivate::addCuePoint):
(WebCore::MediaPlayerPrivate::removeCuePoint):
(WebCore::MediaPlayerPrivate::clearCuePoints):
(WebCore::MediaPlayerPrivate::startCuePointTimerIfNeeded):
(WebCore::MediaPlayerPrivate::cancelSeek):
(WebCore::MediaPlayerPrivate::cuePointTimerFired):
(WebCore::MediaPlayerPrivate::paused):
(WebCore::MediaPlayerPrivate::seeking):
(WebCore::MediaPlayerPrivate::naturalSize):
(WebCore::MediaPlayerPrivate::hasVideo):
(WebCore::MediaPlayerPrivate::setVolume):
(WebCore::MediaPlayerPrivate::setMuted):
(WebCore::MediaPlayerPrivate::setRate):
(WebCore::MediaPlayerPrivate::dataRate):
(WebCore::MediaPlayerPrivate::networkState):
(WebCore::MediaPlayerPrivate::readyState):
(WebCore::MediaPlayerPrivate::maxTimeBuffered):
(WebCore::MediaPlayerPrivate::maxTimeSeekable):
(WebCore::MediaPlayerPrivate::maxTimeLoaded):
(WebCore::MediaPlayerPrivate::bytesLoaded):
(WebCore::MediaPlayerPrivate::totalBytesKnown):
(WebCore::MediaPlayerPrivate::totalBytes):
(WebCore::MediaPlayerPrivate::cancelLoad):
(WebCore::MediaPlayerPrivate::updateStates):
(WebCore::MediaPlayerPrivate::loadStateChanged):
(WebCore::MediaPlayerPrivate::rateChanged):
(WebCore::MediaPlayerPrivate::sizeChanged):
(WebCore::MediaPlayerPrivate::timeChanged):
(WebCore::MediaPlayerPrivate::volumeChanged):
(WebCore::MediaPlayerPrivate::didEnd):
(WebCore::MediaPlayerPrivate::loadingFailed):
(WebCore::MediaPlayerPrivate::setRect):
(WebCore::MediaPlayerPrivate::setVisible):
(WebCore::MediaPlayerPrivate::paint):
(WebCore::MediaPlayerPrivate::getSupportedTypes):
(WebCore::MediaPlayerPrivate::createGSTPlayBin):
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.h: Copied from WebCore/platform/graphics/gtk/MoviePrivateGStreamer.h.
* platform/graphics/gtk/MoviePrivateGStreamer.cpp: Removed.
* platform/graphics/gtk/MoviePrivateGStreamer.h: Removed.
* platform/graphics/mac/MediaPlayerPrivateQTKit.h: Copied from WebCore/platform/graphics/mac/MoviePrivateQTKit.h.
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm: Copied from WebCore/platform/graphics/mac/MoviePrivateQTKit.mm.
(WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::createQTMovie):
(WebCore::MediaPlayerPrivate::createQTMovieView):
(WebCore::MediaPlayerPrivate::createQTTime):
(WebCore::MediaPlayerPrivate::load):
(WebCore::MediaPlayerPrivate::play):
(WebCore::MediaPlayerPrivate::pause):
(WebCore::MediaPlayerPrivate::duration):
(WebCore::MediaPlayerPrivate::currentTime):
(WebCore::MediaPlayerPrivate::seek):
(WebCore::MediaPlayerPrivate::doSeek):
(WebCore::MediaPlayerPrivate::cancelSeek):
(WebCore::MediaPlayerPrivate::seekTimerFired):
(WebCore::MediaPlayerPrivate::setEndTime):
(WebCore::MediaPlayerPrivate::addCuePoint):
(WebCore::MediaPlayerPrivate::removeCuePoint):
(WebCore::MediaPlayerPrivate::clearCuePoints):
(WebCore::MediaPlayerPrivate::startCuePointTimerIfNeeded):
(WebCore::MediaPlayerPrivate::cuePointTimerFired):
(WebCore::MediaPlayerPrivate::paused):
(WebCore::MediaPlayerPrivate::seeking):
(WebCore::MediaPlayerPrivate::naturalSize):
(WebCore::MediaPlayerPrivate::hasVideo):
(WebCore::MediaPlayerPrivate::setVolume):
(WebCore::MediaPlayerPrivate::setMuted):
(WebCore::MediaPlayerPrivate::setRate):
(WebCore::MediaPlayerPrivate::dataRate):
(WebCore::MediaPlayerPrivate::networkState):
(WebCore::MediaPlayerPrivate::readyState):
(WebCore::MediaPlayerPrivate::maxTimeBuffered):
(WebCore::MediaPlayerPrivate::maxTimeSeekable):
(WebCore::MediaPlayerPrivate::maxTimeLoaded):
(WebCore::MediaPlayerPrivate::bytesLoaded):
(WebCore::MediaPlayerPrivate::totalBytesKnown):
(WebCore::MediaPlayerPrivate::totalBytes):
(WebCore::MediaPlayerPrivate::cancelLoad):
(WebCore::MediaPlayerPrivate::updateStates):
(WebCore::MediaPlayerPrivate::loadStateChanged):
(WebCore::MediaPlayerPrivate::rateChanged):
(WebCore::MediaPlayerPrivate::sizeChanged):
(WebCore::MediaPlayerPrivate::timeChanged):
(WebCore::MediaPlayerPrivate::volumeChanged):
(WebCore::MediaPlayerPrivate::didEnd):
(WebCore::MediaPlayerPrivate::setRect):
(WebCore::MediaPlayerPrivate::setVisible):
(WebCore::MediaPlayerPrivate::paint):
(WebCore::MediaPlayerPrivate::getSupportedTypes):
(-[WebCoreMovieObserver initWithCallback:WebCore::]):
* platform/graphics/mac/MoviePrivateQTKit.h: Removed.
* platform/graphics/mac/MoviePrivateQTKit.mm: Removed.
* rendering/RenderMedia.cpp:
(WebCore::RenderMedia::player):
* rendering/RenderMedia.h:
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::RenderVideo):
(WebCore::RenderVideo::~RenderVideo):
(WebCore::RenderVideo::videoSizeChanged):
(WebCore::RenderVideo::paintReplaced):
(WebCore::RenderVideo::layout):
(WebCore::RenderVideo::updateFromElement):
(WebCore::RenderVideo::updatePlayer):
* rendering/RenderVideo.h:
2007-12-06 Geoffrey Garen <ggaren@apple.com>
Build fix: access global object directly.
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginViewWin::bindingInstance):
2007-12-06 Mark Rowe <mrowe@apple.com>
Reviewed by Eric.
Fix bug spotted by GCC 4.2.
* bindings/js/kjs_window.cpp:
(KJS::allowPopUp): Remove extraneous semicolon that completely changed the meaning of allowPopUp.
2007-12-06 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=16173
Licensing change
Change license from BSD to LGPL.
* platform/gtk/FileSystemGtk.cpp:
2007-12-05 Rob Buis <buis@kde.org>
Reviewed by Mitz.
http://bugs.webkit.org/show_bug.cgi?id=15289
WebKit does not respect clip paths of a 0x0 rect
Make empty clip paths clip the whole referencing graphic.
* svg/SVGClipPathElement.cpp:
(WebCore::SVGClipPathElement::canvasResource):
* svg/graphics/SVGResourceClipper.h:
(WebCore::ClipDataList::isEmpty):
2007-12-05 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- fix http://bugs.webkit.org/show_bug.cgi?id=16266
<rdar://problem/5625279> REGRESSION: crash loading CNN.com at
Interpreter::createObjectsForGlobalObjectProperties()
I don't know how to reproduce this in a test.
* bindings/js/JSDocumentCustom.cpp: (WebCore::JSDocument::mark):
Call JSEventTargetNode::mark instead of DOMObject::mark. There's no difference
right now, but it's best to call your base class, not your base's base.
* bindings/js/kjs_events.h: Removed unneeded virtual from the
JSUnprotectedEventListener::mark() function; it neither derives from or is
derived from anyone else with a mark() function so there's no need for virtual.
* bindings/js/kjs_window.cpp: (KJS::Window::mark): Call JSGlobalObject::mark,
not JSObject::mark. This is the actual bug fix.
2007-12-05 Pierre-Luc Beaudoin <pierre-luc.beaudoin@collabora.co.uk>
http://bugs.webkit.org/show_bug.cgi?id=16145
[gtk] Implement media support in GTK backend
Reviewed by Alp Toker.
Remove old comments, fix variable names, match WebKit coding style.
* platform/graphics/gtk/MoviePrivateGStreamer.cpp:
(WebCore::moviePrivateEOSCallback):
(WebCore::MoviePrivate::MoviePrivate):
(WebCore::MoviePrivate::load):
(WebCore::MoviePrivate::play):
(WebCore::MoviePrivate::pause):
(WebCore::MoviePrivate::currentTime):
(WebCore::MoviePrivate::seek):
(WebCore::MoviePrivate::cancelSeek):
(WebCore::MoviePrivate::seeking):
(WebCore::MoviePrivate::naturalSize):
(WebCore::MoviePrivate::setVolume):
(WebCore::MoviePrivate::setMuted):
(WebCore::MoviePrivate::maxTimeBuffered):
(WebCore::MoviePrivate::bytesLoaded):
(WebCore::MoviePrivate::totalBytesKnown):
(WebCore::MoviePrivate::totalBytes):
(WebCore::MoviePrivate::updateStates):
(WebCore::MoviePrivate::didEnd):
(WebCore::MoviePrivate::paint):
(WebCore::MoviePrivate::createGSTPlayBin):
* platform/graphics/gtk/MoviePrivateGStreamer.h:
2007-12-05 Mark Rowe <mrowe@apple.com>
Speculative wx build fix. Add PlugInInfoStore::pluginNameForMIMEType to the temporary link stubs.
* platform/wx/TemporaryLinkStubs.cpp:
2007-12-05 Alp Toker <alp@atoker.com>
Rubber stamped by Mark Rowe.
Remove DEPENDPATH on the generated sources directory. This causes
trouble and is no longer necessary following the glib-genmarshal
generator split.
* WebCore.pro:
2007-12-04 Geoffrey Garen <ggaren@apple.com>
Reviewed by Darin Adler.
Third step in refactoring JSGlobalObject: Moved data members and data
member access from Interpreter to JSGlobalObject. Changed Interpreter
member functions to static functions. Same for the subclass,
ScriptInterpreter.
This is a big change, but it's mostly code motion and renaming.
2007-12-05 Darin Adler <darin@apple.com>
"Reviewed" by Geoff.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::checkLoadCompleteForThisFrame): Removed assertion.
(WebCore::FrameLoader::dispatchDidCommitLoad): This one too.
The assertions are firing like crazy. Not sure why yet.
2007-12-05 Darin Adler <darin@apple.com>
Reviewed by Adam Roben.
- fix http://bugs.webkit.org/show_bug.cgi?id=16306
Assertion failed in WebCore/loader/FrameLoader.cpp:4642
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::dispatchDidCommitLoad): Check m_creatingInitialEmptyDocument
and don't deliver the client call in that case.
2007-12-05 Mark Rowe <mrowe@apple.com>
Reviewed by Kevin Decker.
Fix 64-bit debug build.
* platform/text/mac/TextCodecMac.cpp:
(WebCore::TextCodecMac::decode): OSStatus is a long for 32-bit but int on 64-bit,
so we need to cast it to be able to use a single format specifier on both.
2007-12-05 Kevin Decker <kdecker@apple.com>
Reviewed by Hyatt.
<rdar://problem/5613106> Acordex: REGRESSION (Tiger-Leopard): plug-ins can no longer take over TIFF images (affects uspto.gov)
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::shouldUsePlugin): Allow plug-ins (with the exception of QuickTime) to
takeover TIFF once again.
2007-12-05 Luca Bruno <lethalman88@gmail.com>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=16290
[GTK] Pasting clipboard in rich text.
* platform/gtk/PasteboardGtk.cpp:
(Pasteboard::documentFragment): Implement rich text paste support.
2007-12-05 Adele Peterson <adele@apple.com>
Reviewed by Hyatt.
Reverting fix for <rdar://problem/5499918> REGRESSION: insertion point in input field with custom border cuts holes in focus ring interior edges
We need to just fix the underlying focus ring repaint problem.
* rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::setStyle):
2007-12-04 Kevin McCullough <kmccullough@apple.com>
Reviewed by Darin.
- <rdar://5621435>
- Security Fix. Instead of having it off by default, WebKit now must
explicitly turn off local-resource restriction when needed for backwards
compatibility reasons.
* loader/FrameLoader.cpp:
2007-12-05 Adam Roben <aroben@apple.com>
Set the menu item identifier for all menu items
This allows WebKit clients to distinguish between submenus in the
context menu.
Reviewed by Darin.
No test possible.
* platform/win/ContextMenuItemWin.cpp:
(WebCore::ContextMenuItem::ContextMenuItem):
2007-12-05 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- WebCore part of fixing <rdar://problem/5111082> Flash popup video ad doesn't close when clicked at http://www.firestonecompleteautocare.com/
* manual-tests/nested-plug-ins.html: Added.
* manual-tests/resources/nested-plug-ins-inner-frame.html: Added.
* manual-tests/resources/nested-plug-ins-outer-frame.html: Added.
* platform/ScrollView.h:
* platform/Widget.h:
(WebCore::Widget::attachToWindow): Added. Tells the widget that it is connected
via visible ScrollViews to the root ScrollView of the WebView.
(WebCore::Widget::detachFromWindow): Added. Tells the widget that it is no longer
connected via visible ScrollViews to the root ScrollView of the WebView.
* platform/win/ScrollViewWin.cpp:
(WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate): Added
m_visible and m_attachedToWindow members.
(WebCore::ScrollView::attachToWindow): Added. Attaches all children if this
view is visible.
(WebCore::ScrollView::detachFromWindow): Added. Detaches all children if this
view is visible (otherwise they would be detached already).
(WebCore::ScrollView::show): Added. Attaches all children if this view
is attached.
(WebCore::ScrollView::hide): Added. Detaches all children if this view
is attached (otherwise they would be detached already).
(WebCore::ScrollView::isAttachedToWindow): Added.
* platform/win/WidgetWin.cpp:
(WebCore::Widget::setParent): Added calls to attachToWindow() and detachFromWindow()
depending on whether the parent is set and attached or not.
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginViewWin::setFocus):
(WebCore::PluginViewWin::show): Changed to show the plug-in only if
this view is attached.
(WebCore::PluginViewWin::hide): Changed to hide the plug-in only if this
view is attached (otherwise it would be hidden already).
(WebCore::PluginViewWin::attachToWindow): Added. Shows the plug-in if this view
is visible.
(WebCore::PluginViewWin::detachFromWindow): Added. Hides the plug-in if this view
is visible (otherwise it would be hidden already).
(WebCore::PluginViewWin::PluginViewWin):
* plugins/win/PluginViewWin.h: Added m_attachedToWindow member.
2007-12-04 Alp Toker <alp@atoker.com>
Potential GTK+ build fix for the glib-genmarshal issue.
Split the glib-genmarshal qmake generator in two; one for the source
file, another for the header.
* WebCore.pro:
2007-12-04 Alp Toker <alp@atoker.com>
GTK+ build fix.
* platform/PlugInInfoStore.h:
2007-12-04 Kevin Decker <kdecker@apple.com>
Reviewed by Anders.
<rdar://problem/5629125> PluginInfoStore needs the ability to return the name of a plug-in for a given MIME type
* page/mac/WebCoreViewFactory.h: Added pluginNameForMIMEType: method.
* platform/PlugInInfoStore.h:
* platform/gtk/TemporaryLinkStubs.cpp: Added stub version of pluginNameForMIMEType.
(PlugInInfoStore::pluginNameForMIMEType):
* platform/mac/PlugInInfoStoreMac.mm:
(WebCore::PlugInInfoStore::pluginNameForMIMEType): Added.
* platform/qt/PlugInInfoStoreQt.cpp:
(WebCore::PlugInInfoStore::pluginNameForMIMEType): Added stub version of pluginNameForMIMEType.
* plugins/win/PlugInInfoStoreWin.cpp:
(WebCore::PlugInInfoStore::pluginNameForMIMEType): Added stub version of pluginNameForMIMEType.
2007-12-04 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Fix for <rdar://problem/5499918> REGRESSION: insertion point in input field with custom border cuts holes in focus ring interior edges
* rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::setStyle):
Adjust outline-offset so it doesn't extend beyond the border to interfere with typing
2007-12-04 Anders Carlsson <andersca@apple.com>
Reviewed by Jon.
Always call NPP_NewStream, NPP_DestroyStream and NPP_URLNotify for JavaScript
result streams, even if the JavaScript expression threw an exception or returned undefined.
This matches what Firefox does.
* plugins/win/PluginStreamWin.cpp:
(WebCore::PluginStreamWin::sendJavaScriptStream):
Handle the result string being null, and set the correct NPReason if it is.
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginViewWin::performRequest):
Always send the JavaScript stream, regardless of the result could be converted to a string or not.
2007-12-04 Adele Peterson <adele@apple.com>
Reviewed by Hyatt.
Fix for <rdar://problem/5622464> controls should show up for audio element
* css/html4.css: Added styles for audio controls. This will need to be refined, since we may want a different look for audio controls.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::attributeChanged): When the controls attribute changes detach and reattach if necessary.
(WebCore::HTMLMediaElement::rendererIsNeeded): Added.
(WebCore::HTMLMediaElement::createRenderer): Added. Uses RenderMedia.
* html/HTMLMediaElement.h:
* rendering/RenderMedia.cpp: (WebCore::RenderMedia::RenderMedia): Added constructor that doesn't take intrinsic size.
* rendering/RenderMedia.h:
2007-12-04 Anders Carlsson <andersca@apple.com>
Reviewed by Sam.
Add isSafeScript(const JSGlobalObject*) so we won't get the JSGlobalObject
implementation, which always returns true(!).
* bindings/js/kjs_window.cpp:
(KJS::Window::isSafeScript):
Make the static isSafeScript method take two JSGlobalObjects.
* bindings/js/kjs_window.h:
(KJS::Window::isSafeScript):
Implement isSafeScript and have it call the static method.
2007-11-27 Adam Roben <aroben@apple.com>
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.
2007-12-04 Antti Koivisto <antti@apple.com>
Reviewed by Adele.
Pass intrinsic size to the base class.
* rendering/RenderMedia.cpp:
(WebCore::RenderMedia::RenderMedia):
2007-12-04 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Fix for <rdar://problem/5578209> REGRESSION: Crash in WebCore::DeprecatedValueListImpl::Private::copyList when going back on zoomerang.com/survey
* loader/FrameLoader.cpp: (WebCore::FrameLoader::scheduleHistoryNavigation):
When the new url is exactly the same as the old url, don't treat it like a fragment navigation, since its going to cause a reload.
2007-12-04 Darin Adler <darin@apple.com>
Reviewed by Kevin Decker.
- added an assertion for a situation that leads to a Safari assertion:
a commit that is not followed by a load completion
- removed some unneeded FrameLoader stuff -- maybe some day we'll get this
class cut down to size
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameLoader): Added boolean for assertion.
(WebCore::FrameLoader::checkLoadCompleteForThisFrame): Added code to assert
that we already sent a commit before sending a complete.
(WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy): Call
client directly instead of indirecting through a function.
(WebCore::FrameLoader::loadItem): Ditto.
(WebCore::FrameLoader::goToItem): Ditto.
(WebCore::FrameLoader::addHistoryForCurrentLocation): Get the private browsing
state from Settings instead of FrameLoaderClient. Also call client directly
instead of indirecting through a function.
(WebCore::FrameLoader::updateHistoryForReload): Call client directly instead
of indirecting through a function.
(WebCore::FrameLoader::dispatchDidCommitLoad): Added code to assert
that we did not yet send a commit and set the flag that will be used to check
that we don't do this twice in a row without an intervening completion call.
* loader/FrameLoader.h: Added a boolean for the assertion. Removed six
now-unneeded functions.
* loader/FrameLoaderClient.h: Removed now-unneeded privateBrowsingEnabled function.
* loader/ResourceLoader.cpp: (WebCore::ResourceLoader::willCacheResponse): Get
the private browsing state from Settings instead of FrameLoaderClient.
* svg/graphics/SVGImageEmptyClients.h: Removed obsolete privateBrowsingEnabled.
2007-12-03 Antti Koivisto <antti@apple.com>
Reviewed by Adele.
Fix <rdar://problem/5624802>
Controller displays outside of <video> element when width and height aren't specified
- Explicitly adjust size of the controls tree root.
- Switch RenderMedia base class back to RenderReplaced. It is easier to manage the shadow tree
by hand. This also allows better code sharing with other replaced element classes.
- Move duplicated layout and painting code from subclasses up to RenderReplaced.
Test: media/video-controls-rendering.html
* rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::paintReplaced):
* rendering/RenderHTMLCanvas.h:
Share code.
* rendering/RenderImage.cpp:
(WebCore::RenderImage::paintReplaced):
(WebCore::RenderImage::minimumReplacedHeight):
* rendering/RenderImage.h:
Share code.
* rendering/RenderMedia.cpp:
(WebCore::RenderMediaControlShadowRoot::RenderMediaControlShadowRoot):
(WebCore::RenderMediaControlShadowRoot::setParent):
Add a subclass just to get through encapsulation to use setParent().
(WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement):
Move initialization to the constructor.
(WebCore::RenderMedia::RenderMedia):
(WebCore::RenderMedia::~RenderMedia):
(WebCore::RenderMedia::layout):
Resize and layout the controller root by hand.
(WebCore::RenderMedia::firstChild):
(WebCore::RenderMedia::lastChild):
(WebCore::RenderMedia::removeChild):
Support one child renderer for controls.
(WebCore::RenderMedia::createControlsShadowRoot):
* rendering/RenderMedia.h:
(WebCore::RenderMedia::isMedia):
Switch base class to RenderReplaced, delete the now unnecessary stuff.
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::layout):
(WebCore::RenderReplaced::paint):
* rendering/RenderReplaced.h:
(WebCore::RenderReplaced::minimumReplacedHeight):
(WebCore::RenderReplaced::paintReplaced):
Share code.
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::videoSizeChanged):
Simplify, just request relayout.
(WebCore::RenderVideo::paintReplaced):
(WebCore::RenderVideo::layout):
* rendering/RenderVideo.h:
Share code.
2007-12-04 Michael Natterer <mitch@imendio.com>
Reviewed by Alp Toker.
* WebCore.pro: fix build of webkit-marshal by building the
functions into a separate .cpp file instead of including them in
the header. This way we can use the marshallers from more than one
file without using bad hacks.
Add the generated sources directory to DEPENDPATH.
2007-12-04 Pierre-Luc Beaudoin <pierre-luc.beaudoin@collabora.co.uk>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=16145
[gtk] Implement media support in GTK backend
This implements the media tags of HTML5 on the GTK+ port based on the
Mac port. Media tests pass although some tests required a small modifications:
As per the HTML5 spec, the loading of the clip should start only after
all script are done. But in the case of the tests, the loading starts
before some callbacks get registered. This has been discussed with
Antti Koivisto, and the tests should be updated.
There is only one known issue: one time in 10 tries, loading a buffered
clip will never end buffering. The buffering will stall at 97% for no
apparent reasons. Reloading the page usually works around the problem.
On the GStreamer side, some codecs don't return correct values, therefore
they make the tests fail. For instance H.264 will make the video-end
test fail. This should be fixed in GStreamer 0.10.15.
This version displays video in a pop up window. A place holder is drawn
on the page where the video should appear.
By default, it is turned off in WebCore.pro until GStreamer/X
detection issues are sorted out.
* WebCore.pro:
Disable video for now
* platform/Logging.cpp:
(WebCore::):
* platform/Logging.h:
Added a logging level for Media stuff
* platform/graphics/Movie.cpp:
* platform/graphics/gtk/MoviePrivateGStreamer.cpp: Added.
(WebCore::moviePrivateErrorCallback):
(WebCore::moviePrivateEOSCallback):
(WebCore::moviePrivateStateCallback):
(WebCore::moviePrivateBufferingCallback):
(WebCore::moviePrivateWindowIDCallback):
(WebCore::MoviePrivate::MoviePrivate):
(WebCore::MoviePrivate::~MoviePrivate):
(WebCore::MoviePrivate::load):
(WebCore::MoviePrivate::play):
(WebCore::MoviePrivate::pause):
(WebCore::MoviePrivate::duration):
(WebCore::MoviePrivate::currentTime):
(WebCore::MoviePrivate::seek):
(WebCore::MoviePrivate::setEndTime):
(WebCore::MoviePrivate::addCuePoint):
(WebCore::MoviePrivate::removeCuePoint):
(WebCore::MoviePrivate::clearCuePoints):
(WebCore::MoviePrivate::startCuePointTimerIfNeeded):
(WebCore::MoviePrivate::cancelSeek):
(WebCore::MoviePrivate::cuePointTimerFired):
(WebCore::MoviePrivate::paused):
(WebCore::MoviePrivate::seeking):
(WebCore::MoviePrivate::naturalSize):
(WebCore::MoviePrivate::hasVideo):
(WebCore::MoviePrivate::setVolume):
(WebCore::MoviePrivate::setMuted):
(WebCore::MoviePrivate::setRate):
(WebCore::MoviePrivate::dataRate):
(WebCore::MoviePrivate::networkState):
(WebCore::MoviePrivate::readyState):
(WebCore::MoviePrivate::maxTimeBuffered):
(WebCore::MoviePrivate::maxTimeSeekable):
(WebCore::MoviePrivate::maxTimeLoaded):
(WebCore::MoviePrivate::bytesLoaded):
(WebCore::MoviePrivate::totalBytesKnown):
(WebCore::MoviePrivate::totalBytes):
(WebCore::MoviePrivate::cancelLoad):
(WebCore::MoviePrivate::updateStates):
(WebCore::MoviePrivate::loadStateChanged):
(WebCore::MoviePrivate::rateChanged):
(WebCore::MoviePrivate::sizeChanged):
(WebCore::MoviePrivate::timeChanged):
(WebCore::MoviePrivate::volumeChanged):
(WebCore::MoviePrivate::didEnd):
(WebCore::MoviePrivate::loadingFailed):
(WebCore::MoviePrivate::setRect):
(WebCore::MoviePrivate::setVisible):
(WebCore::MoviePrivate::paint):
(WebCore::MoviePrivate::getSupportedTypes):
(WebCore::MoviePrivate::createGSTPlayBin):
* platform/graphics/gtk/MoviePrivateGStreamer.h: Added.
2007-12-04 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Simon.
* Implement the InspectorClient for the Qt port
* It does not support highlighting of nodes yet
* Use QRC to open the internal page. The important thing is the
'/' in the URL to make WebCore::Document::completeURL behave the
way we want.
* To make the InspectorClient work we will have to mark qrc as secure.
* WebCore.pro:
* loader/FrameLoader.cpp:
(WebCore::localSchemes):
* page/inspector/WebKit.qrc: Added.
2007-12-04 Alp Toker <alp@atoker.com>
Rubber stamped by Mark Rowe.
Remove two unused variables to silence warnings.
* html/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::fill):
(WebCore::CanvasRenderingContext2D::stroke):
2007-12-03 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- fix <rdar://problem/5134044> fast/frames/frame-src-attribute.html fails on Windows
* platform/win/ScrollViewWin.cpp:
(WebCore::ScrollView::visibleWidth): Do not return negative values.
(WebCore::ScrollView::visibleHeight): Ditto.
2007-12-03 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt.
- fix <rdar://problem/5346452> Resize event doesn't fire on body element inside a frame
Test: fast/events/resize-subframe.html
* page/FrameView.cpp:
(WebCore::FrameViewPrivate::FrameViewPrivate): Added a timer used when
deferring tasks that need to be done after layout.
(WebCore::FrameViewPrivate::reset):
(WebCore::FrameView::~FrameView):
(WebCore::FrameView::layout): Moved the updating of widget positions,
loading plug-ins and sending events queued up during layout into
performPostLayoutTasks(). performPostLayoutTasks() is called after
layout unless the layout was triggered by a previous layout's post-
layout tasks. In the latter case, performPostLayoutTasks() is scheduled
to run later.
(WebCore::FrameView::performPostLayoutTasks): Performs work that needs
to be done after layout but which can result in arbitrary code
execution and therefore may re-invalidate the layout. This includes
updating widget positions, loading plug-ins, and dispatching layout-
related DOM events (scroll, overflow and resize).
(WebCore::FrameView::postLayoutTimerFired):
(WebCore::FrameView::dispatchScheduledEvents):
* page/FrameView.h:
* page/mac/WebCoreFrameBridge.h:
* page/mac/WebCoreFrameBridge.mm: Removed -sendResizeEvent since this
is handled by FrameView now.
2007-12-03 Rob Buis <buis@kde.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=15767
Text decorations do not respect "visibility" property
Only paint decorations if visibility is "visible".
* rendering/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::paintDecoration):
2007-12-03 Steve Falkenburg <sfalken@apple.com>
Fix build.
* WebCore.vcproj/WebCore.vcproj:
2007-12-03 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by David.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=15645
Don't allow selectors to interfere with the SVG shadow tree (<use> internal non-exposed tree).
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::checkSelector):
2007-12-03 Dan Bernstein <mitz@apple.com>
Reviewed by Adam Roben.
- fix <rdar://problem/5538651> REGRESSSION: domfuzz: null deref in WebCore::Document::canReplaceChild
Test: fast/dom/Document/replaceChild-null-oldChild.html
* dom/Document.cpp:
(WebCore::Document::canReplaceChild):
2007-12-03 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Simon.
* Avoid crashes by making sure everything is layouted before
we start painting. This avoids a crash in Widget::invalidateRect
because QPainter::begin would fail
* The QWebFrame::layout() methods and calls are left untouched because
this would be an API decision.
WARNING: NO TEST CASES ADDED OR CHANGED
* page/FrameView.cpp:
(WebCore::FrameView::updateControlTints):
* page/FrameView.h:
* platform/ScrollView.h:
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::children):
2007-12-03 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Simon.
* Implement GraphicsContext::fillRoundedRect similiar to the
CoreGraphics implementation only addPath is not called this
seems to be only needed for CoreGraphics.
WARNING: NO TEST CASES ADDED OR CHANGED
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::fillRoundedRect):
2007-12-03 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Simon.
* Coding Style fixes
WARNING: NO TEST CASES ADDED OR CHANGED
* platform/qt/ScrollViewQt.cpp:
(WebCore::ScrollView::addChild):
(WebCore::ScrollView::removeChild):
2007-12-03 Alp Toker <alp@atoker.com>
Reviewed by Mark Rowe.
Don't delete the decoder if it's already been created. The one we have
is fine.
Cairo image cleanups. Nothing substantial.
Notify ImageObservers where appropriate.
* platform/graphics/cairo/ImageCairo.cpp:
(WebCore::BitmapImage::draw):
(WebCore::Image::drawPattern):
* platform/graphics/cairo/ImageSourceCairo.cpp:
(WebCore::ImageSource::setData):
* platform/graphics/gtk/ImageGtk.cpp:
2007-12-03 Simon Hausmann <hausmann@webkit.org>
Reviewed by Lars.
Fixed crash when rendering form elements with Qt 4.4
QPainter::device() is not guaranteed to return a QWidget, so do the safe "cast" with the
help of QPaintDevice::devType().
Also fall back to the QApplication::style() if we don't have a widget.
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderThemeQt::paintButton):
(WebCore::RenderThemeQt::paintTextField):
(WebCore::RenderThemeQt::paintMenuList):
(WebCore::RenderThemeQt::getStylePainterAndWidgetFromPaintInfo):
2007-12-02 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Sam Weinig.
* Add FrameLoader::shouldTreatSchemeAsLocal which is similar to
shouldTreatURLAsLocal.
* Make use of FrameLoader::shouldTreatSchemeAsLocal in SecurityOrigin
and do not hardcode "file". This is needed for the WebKit/qt port to make
the Web Inspector work as it using the qrc protocol instead of file.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::shouldTreatSchemeAsLocal):
* loader/FrameLoader.h:
* platform/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::isSecureTransitionTo):
2007-12-02 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Rubber stamped by Sam Weinig.
Only add applewebdata to the localSchemes when building for the
mac. This is in preparation of adding qrc for the Qt port there
as well and http://bugs.webkit.org/show_bug.cgi?id=15938.
According to Anders applewebdata is not used on the win port.
* loader/FrameLoader.cpp:
(WebCore::localSchemes):
2007-12-02 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Rubber stamped by Sam Weinig.
Fix a typo. It is contains and not containts
* loader/FrameLoader.cpp:
2007-12-03 Alp Toker <alp@atoker.com>
Add another missing DEPENDPATH.
Noticed when fixing the build.
* WebCore.pro:
2007-12-03 Adam Roben <aroben@apple.com>
Speculative Windows build fix
* plugins/win/PluginViewWin.cpp:
(WebCore::getString):
2007-12-03 Geoffrey Garen <ggaren@apple.com>
Build fix: added symbols to the right .exp file.
* WebCore.base.exp:
2007-12-02 Geoffrey Garen <ggaren@apple.com>
Reviewed by Eric Seidel.
Updated to match the JavaScriptCore change to move virtual methods from
Interpreter to JSGlobalObject.
Moved virtual ScriptInterpreter functions to Window.
2007-12-02 Darin Adler <darin@apple.com>
Reviewed by Mitz.
- fix <rdar://problem/5601995> Hang/crash on http://ebay-uk.custhelp.com/
There were two problems here:
1) Incorrect HTMLCollection behavior led to us trying to insert a
new row inside an existing row instead of next to it. The fix for
this is to make HTMLCollection work better for table-related
collections.
2) HTMLTableRowElement::insertCell would return a bad pointer if
the insertion failed. The code should have failed, but not crashed,
so it's worth fixing that too.
While fixing the HTMLCollection issues, I did some clean-up of that
class and its derived classes.
Test: fast/dom/HTMLTableElement/rows.html
Test: fast/dom/HTMLTableElement/tBodies.html
Test: fast/dom/HTMLTableRowElement/cells.html
Test: fast/dom/HTMLTableRowElement/insertCell.html
Test: fast/dom/HTMLTableSectionElement/rows.html
* bindings/js/JSHTMLCollectionCustom.cpp:
(WebCore::toJS): Updated because collectionType() was renamed to type().
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::HTMLCollection): Updated for data member name
changes. Also added a protected constructor for use by derived classes
that pass in a CollectionInfo.
(WebCore::HTMLCollection::CollectionInfo::copyCacheMap): Moved out of
the header.
(WebCore::isTableSection): Added.
(WebCore::HTMLCollection::itemAfter): Renamed from traverseNextItem,
because the old name was grammatically incorrect and thus a bit confusing.
Changed to operate on Element* instead of Node*, and use 0 to start
rather than passing in the base node (required since the base node can be
a document, which is not an element). Generalized the code that made
NodeChildren not descend into deeper descendants so it can be used for
TRCells, TSectionRows, TableTBodies, and TableRows. Reformatted the
switch statement and got rid of the "found" boolean since we can just
return when we find something. Got rid of the default case, and instead
listed all the enum values. Also changed to use a for loop for clarity.
(WebCore::HTMLCollection::calcLength): Updated for itemAfter changes.
(WebCore::HTMLCollection::item): Ditto.
(WebCore::HTMLCollection::nextItem): Ditto.
(WebCore::HTMLCollection::checkForNameMatch): Updated to take an Element
instead of a Node pointer.
(WebCore::HTMLCollection::namedItem): More of the same.
(WebCore::HTMLCollection::updateNameCache): Ditto.
(WebCore::HTMLCollection::namedItems): Ditto.
(WebCore::HTMLCollection::nextNamedItem): Ditto.
(WebCore::HTMLCollection::tags): Ditto.
* html/HTMLCollection.h: Added a type FormElements, so that the
HTMLFormCollection would not have a type of DocImages, which is what
it previously did. Changed the base parameter to be a PassRefPtr to
make it clear we take ownership of it. Added a comment explaining
why we should change the name CollectionInfo. Made a lot more members
private instead of protected. Renamed traverseNextItem to itemAfter.
Changed most functions to take Element* instead of Node*.
* html/HTMLFormCollection.cpp:
(WebCore::HTMLFormCollection::formCollectionInfo): Added.
(WebCore::HTMLFormCollection::HTMLFormCollection): Updated to pass
collection info into the base class.
(WebCore::HTMLFormCollection::calcLength): Updated to use base() so we
don't need to get at m_base directly.
(WebCore::HTMLFormCollection::item): Same, but for info().
(WebCore::HTMLFormCollection::getNamedItem): Removed unused first
argument.
(WebCore::HTMLFormCollection::getNamedFormItem): Got rid of unneeded
checks that the base is still an element and still a form, since that's
guaranteed.
(WebCore::HTMLFormCollection::nextItem): Use info().
(WebCore::HTMLFormCollection::nextNamedItemInternal): Node instead of
Element, some name changes.
(WebCore::HTMLFormCollection::namedItem): Update for changes elsewhere.
(WebCore::HTMLFormCollection::nextNamedItem): Ditto, also rewrote loop
to be much simpler.
(WebCore::HTMLFormCollection::updateNameCache): More of the same.
* html/HTMLFormCollection.h: Changed constructor to take an
HTMLFormElement, using a PassRefPtr to communicate transfer of
ownership. Made everything private instead of protected. Removed
unneeded override of firstItem. Made getNamedItem and
nextNamedItemInternal non-virtual. Removed unused first argument of
getNamedItem. Added declaration of formCollectionInfo.
* html/HTMLNameCollection.cpp:
(WebCore::HTMLNameCollection::HTMLNameCollection): Updated to pass
collection info into the base class.
(WebCore::HTMLNameCollection::itemAfter): Reformatted a bit and
changed into a for loop.
* html/HTMLNameCollection.h: Updated for name changes. Made function
private instead of public. Used PassRefPtr in constructor.
* html/HTMLOptionsCollection.cpp:
(WebCore::HTMLOptionsCollection::HTMLOptionsCollection): Updated to
pass collection info into the base class.
(WebCore::HTMLOptionsCollection::add): Updated for public/private
changes in the base class.
(WebCore::HTMLOptionsCollection::selectedIndex): Ditto.
(WebCore::HTMLOptionsCollection::setSelectedIndex): Ditto.
(WebCore::HTMLOptionsCollection::setLength): Ditto.
* html/HTMLOptionsCollection.h: Changed constructor parameter to be a
PassRefPtr.
* html/HTMLTableRowElement.cpp:
(WebCore::HTMLTableRowElement::insertCell): Changed code to use RefPtr
and PassRefPtr since this creates a new object. This alone fixed the
crash. Also cleaned up logic a bit to be more readable.
* html/HTMLTableRowElement.h: Changed insertCell to return a PassRefPtr.
Also reordered functions a bit to make things a little more logical and
removed the unused ncols data member.
* html/HTMLTableSectionElement.cpp:
(WebCore::HTMLTableSectionElement::rows): Pass TSectionRows, not
TableRows. This mistake was harmless before because TableRows and
TSectionRows were handled identically inside HTMLCollection, but that is
no longer the case with this fix.
* bindings/scripts/CodeGeneratorJS.pm: Add an include to cope with the
fact that HTMLOptionsCollection no longer includes HTMLOptionElement.
I don't think this really should be a special case -- might be worth
returning later to see if this can be optimized.
2007-12-02 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Adam.
RenderSVGViewportContainer sets wrong width/height.
Share code with RenderSVGContainer in a central calcBounds() function.
Fixes:
- svg/custom/use-css-events.svg (http://bugs.webkit.org/show_bug.cgi?id=15403)
- svg/custom/deep-dynamic-updates.svg
- svg/custom/use-clipped-hit.svg
- svg/custom/image-clipped-hit.svg
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::layout):
(WebCore::RenderSVGContainer::calcBounds):
* rendering/RenderSVGContainer.h:
* rendering/RenderSVGViewportContainer.cpp:
(WebCore::RenderSVGViewportContainer::layout):
2007-12-02 Brady Eidson <beidson@apple.com>
Reviewed by Darin
databaseChanged notifications were being sent out on the database thread - they need to be on the main thread
like all other notifications we send out!
* platform/SecurityOriginData.cpp:
(WebCore::SecurityOriginData::copy): Add a deep copy method, for when an object thread hops
* platform/SecurityOriginData.h:
* storage/DatabaseTracker.cpp:
(WebCore::notificationMutex):
(WebCore::notificationQueue):
(WebCore::DatabaseTracker::scheduleNotifyDatabaseChanged): Add the origin/name pair to a queue
(WebCore::DatabaseTracker::scheduleForNotification): Schedule to deliver this queue of notifications
on the main thread
(WebCore::DatabaseTracker::notifyDatabasesChanged): Deliver all notifications in the queue
* storage/DatabaseTracker.h:
* storage/SQLTransaction.cpp:
(WebCore::SQLTransaction::postflightAndCommit): scheduleNotifyDatabaseChanged() instead of "notify now!"
(WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): Ditto
2007-12-02 Rob Buis <buis@kde.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=16002
Load SVG (and other) UA StyleSheets dynamically when needed
Load svg sheet when needed.
* css/CSSStyleSelector.cpp:
(WebCore::screenEval):
(WebCore::printEval):
(WebCore::CSSStyleSelector::CSSStyleSelector):
(WebCore::CSSStyleSelector::loadDefaultStyle):
(WebCore::CSSStyleSelector::styleForElement):
(WebCore::CSSRuleSet::addRulesFromSheet):
2007-12-02 Mark Rowe <mrowe@apple.com>
Try and fix the Windows build.
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginViewWin::bindingInstance):
2007-12-02 Nikolas Zimmermann <zimmermann@kde.org>
Rubber stamped by Eric.
Move platform/graphics/svg to graphics/svg as discussed on webkit-dev.
Updated all project files.
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/svg: Removed.
* platform/graphics/svg/SVGImage.cpp: Removed.
* platform/graphics/svg/SVGImage.h: Removed.
* platform/graphics/svg/SVGImageEmptyClients.h: Removed.
* platform/graphics/svg/SVGPaintServer.cpp: Removed.
* platform/graphics/svg/SVGPaintServer.h: Removed.
* platform/graphics/svg/SVGPaintServerGradient.cpp: Removed.
* platform/graphics/svg/SVGPaintServerGradient.h: Removed.
* platform/graphics/svg/SVGPaintServerLinearGradient.cpp: Removed.
* platform/graphics/svg/SVGPaintServerLinearGradient.h: Removed.
* platform/graphics/svg/SVGPaintServerPattern.cpp: Removed.
* platform/graphics/svg/SVGPaintServerPattern.h: Removed.
* platform/graphics/svg/SVGPaintServerRadialGradient.cpp: Removed.
* platform/graphics/svg/SVGPaintServerRadialGradient.h: Removed.
* platform/graphics/svg/SVGPaintServerSolid.cpp: Removed.
* platform/graphics/svg/SVGPaintServerSolid.h: Removed.
* platform/graphics/svg/SVGResource.cpp: Removed.
* platform/graphics/svg/SVGResource.h: Removed.
* platform/graphics/svg/SVGResourceClipper.cpp: Removed.
* platform/graphics/svg/SVGResourceClipper.h: Removed.
* platform/graphics/svg/SVGResourceFilter.cpp: Removed.
* platform/graphics/svg/SVGResourceFilter.h: Removed.
* platform/graphics/svg/SVGResourceListener.h: Removed.
* platform/graphics/svg/SVGResourceMarker.cpp: Removed.
* platform/graphics/svg/SVGResourceMarker.h: Removed.
* platform/graphics/svg/SVGResourceMasker.cpp: Removed.
* platform/graphics/svg/SVGResourceMasker.h: Removed.
* platform/graphics/svg/cairo: Removed.
* platform/graphics/svg/cairo/RenderPathCairo.cpp: Removed.
* platform/graphics/svg/cairo/SVGPaintServerCairo.cpp: Removed.
* platform/graphics/svg/cairo/SVGPaintServerGradientCairo.cpp: Removed.
* platform/graphics/svg/cairo/SVGPaintServerPatternCairo.cpp: Removed.
* platform/graphics/svg/cairo/SVGPaintServerSolidCairo.cpp: Removed.
* platform/graphics/svg/cairo/SVGResourceClipperCairo.cpp: Removed.
* platform/graphics/svg/cairo/SVGResourceMaskerCairo.cpp: Removed.
* platform/graphics/svg/cg: Removed.
* platform/graphics/svg/cg/CgSupport.cpp: Removed.
* platform/graphics/svg/cg/CgSupport.h: Removed.
* platform/graphics/svg/cg/RenderPathCg.cpp: Removed.
* platform/graphics/svg/cg/SVGPaintServerCg.cpp: Removed.
* platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp: Removed.
* platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp: Removed.
* platform/graphics/svg/cg/SVGPaintServerSolidCg.cpp: Removed.
* platform/graphics/svg/cg/SVGResourceClipperCg.cpp: Removed.
* platform/graphics/svg/cg/SVGResourceFilterCg.cpp: Removed.
* platform/graphics/svg/cg/SVGResourceFilterCg.mm: Removed.
* platform/graphics/svg/cg/SVGResourceMaskerCg.cpp: Removed.
* platform/graphics/svg/cg/SVGResourceMaskerCg.mm: Removed.
* platform/graphics/svg/filters: Removed.
* platform/graphics/svg/filters/SVGDistantLightSource.h: Removed.
* platform/graphics/svg/filters/SVGFEBlend.cpp: Removed.
* platform/graphics/svg/filters/SVGFEBlend.h: Removed.
* platform/graphics/svg/filters/SVGFEColorMatrix.cpp: Removed.
* platform/graphics/svg/filters/SVGFEColorMatrix.h: Removed.
* platform/graphics/svg/filters/SVGFEComponentTransfer.cpp: Removed.
* platform/graphics/svg/filters/SVGFEComponentTransfer.h: Removed.
* platform/graphics/svg/filters/SVGFEComposite.cpp: Removed.
* platform/graphics/svg/filters/SVGFEComposite.h: Removed.
* platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp: Removed.
* platform/graphics/svg/filters/SVGFEConvolveMatrix.h: Removed.
* platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp: Removed.
* platform/graphics/svg/filters/SVGFEDiffuseLighting.h: Removed.
* platform/graphics/svg/filters/SVGFEDisplacementMap.cpp: Removed.
* platform/graphics/svg/filters/SVGFEDisplacementMap.h: Removed.
* platform/graphics/svg/filters/SVGFEFlood.cpp: Removed.
* platform/graphics/svg/filters/SVGFEFlood.h: Removed.
* platform/graphics/svg/filters/SVGFEGaussianBlur.cpp: Removed.
* platform/graphics/svg/filters/SVGFEGaussianBlur.h: Removed.
* platform/graphics/svg/filters/SVGFEImage.cpp: Removed.
* platform/graphics/svg/filters/SVGFEImage.h: Removed.
* platform/graphics/svg/filters/SVGFEMerge.cpp: Removed.
* platform/graphics/svg/filters/SVGFEMerge.h: Removed.
* platform/graphics/svg/filters/SVGFEMorphology.cpp: Removed.
* platform/graphics/svg/filters/SVGFEMorphology.h: Removed.
* platform/graphics/svg/filters/SVGFEOffset.cpp: Removed.
* platform/graphics/svg/filters/SVGFEOffset.h: Removed.
* platform/graphics/svg/filters/SVGFESpecularLighting.cpp: Removed.
* platform/graphics/svg/filters/SVGFESpecularLighting.h: Removed.
* platform/graphics/svg/filters/SVGFETile.h: Removed.
* platform/graphics/svg/filters/SVGFETurbulence.cpp: Removed.
* platform/graphics/svg/filters/SVGFETurbulence.h: Removed.
* platform/graphics/svg/filters/SVGFilterEffect.cpp: Removed.
* platform/graphics/svg/filters/SVGFilterEffect.h: Removed.
* platform/graphics/svg/filters/SVGLightSource.cpp: Removed.
* platform/graphics/svg/filters/SVGLightSource.h: Removed.
* platform/graphics/svg/filters/SVGPointLightSource.h: Removed.
* platform/graphics/svg/filters/SVGSpotLightSource.h: Removed.
* platform/graphics/svg/filters/cg: Removed.
* platform/graphics/svg/filters/cg/SVGFEBlendCg.mm: Removed.
* platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm: Removed.
* platform/graphics/svg/filters/cg/SVGFEComponentTransferCg.mm: Removed.
* platform/graphics/svg/filters/cg/SVGFECompositeCg.mm: Removed.
* platform/graphics/svg/filters/cg/SVGFEDiffuseLightingCg.mm: Removed.
* platform/graphics/svg/filters/cg/SVGFEDisplacementMapCg.mm: Removed.
* platform/graphics/svg/filters/cg/SVGFEFloodCg.mm: Removed.
* platform/graphics/svg/filters/cg/SVGFEGaussianBlurCg.mm: Removed.
* platform/graphics/svg/filters/cg/SVGFEHelpersCg.h: Removed.
* platform/graphics/svg/filters/cg/SVGFEHelpersCg.mm: Removed.
* platform/graphics/svg/filters/cg/SVGFEImageCg.mm: Removed.
* platform/graphics/svg/filters/cg/SVGFEMergeCg.mm: Removed.
* platform/graphics/svg/filters/cg/SVGFEOffsetCg.mm: Removed.
* platform/graphics/svg/filters/cg/SVGFESpecularLightingCg.mm: Removed.
* platform/graphics/svg/filters/cg/SVGFETileCg.mm: Removed.
* platform/graphics/svg/filters/cg/SVGFilterEffectCg.mm: Removed.
* platform/graphics/svg/filters/cg/WKArithmeticFilter.cikernel: Removed.
* platform/graphics/svg/filters/cg/WKArithmeticFilter.h: Removed.
* platform/graphics/svg/filters/cg/WKArithmeticFilter.m: Removed.
* platform/graphics/svg/filters/cg/WKComponentMergeFilter.cikernel: Removed.
* platform/graphics/svg/filters/cg/WKComponentMergeFilter.h: Removed.
* platform/graphics/svg/filters/cg/WKComponentMergeFilter.m: Removed.
* platform/graphics/svg/filters/cg/WKDiffuseLightingFilter.cikernel: Removed.
* platform/graphics/svg/filters/cg/WKDiffuseLightingFilter.h: Removed.
* platform/graphics/svg/filters/cg/WKDiffuseLightingFilter.m: Removed.
* platform/graphics/svg/filters/cg/WKDiscreteTransferFilter.cikernel: Removed.
* platform/graphics/svg/filters/cg/WKDiscreteTransferFilter.h: Removed.
* platform/graphics/svg/filters/cg/WKDiscreteTransferFilter.m: Removed.
* platform/graphics/svg/filters/cg/WKDisplacementMapFilter.cikernel: Removed.
* platform/graphics/svg/filters/cg/WKDisplacementMapFilter.h: Removed.
* platform/graphics/svg/filters/cg/WKDisplacementMapFilter.m: Removed.
* platform/graphics/svg/filters/cg/WKDistantLightFilter.cikernel: Removed.
* platform/graphics/svg/filters/cg/WKDistantLightFilter.h: Removed.
* platform/graphics/svg/filters/cg/WKDistantLightFilter.m: Removed.
* platform/graphics/svg/filters/cg/WKGammaTransferFilter.cikernel: Removed.
* platform/graphics/svg/filters/cg/WKGammaTransferFilter.h: Removed.
* platform/graphics/svg/filters/cg/WKGammaTransferFilter.m: Removed.
* platform/graphics/svg/filters/cg/WKIdentityTransferFilter.h: Removed.
* platform/graphics/svg/filters/cg/WKIdentityTransferFilter.m: Removed.
* platform/graphics/svg/filters/cg/WKLinearTransferFilter.cikernel: Removed.
* platform/graphics/svg/filters/cg/WKLinearTransferFilter.h: Removed.
* platform/graphics/svg/filters/cg/WKLinearTransferFilter.m: Removed.
* platform/graphics/svg/filters/cg/WKNormalMapFilter.cikernel: Removed.
* platform/graphics/svg/filters/cg/WKNormalMapFilter.h: Removed.
* platform/graphics/svg/filters/cg/WKNormalMapFilter.m: Removed.
* platform/graphics/svg/filters/cg/WKPointLightFilter.cikernel: Removed.
* platform/graphics/svg/filters/cg/WKPointLightFilter.h: Removed.
* platform/graphics/svg/filters/cg/WKPointLightFilter.m: Removed.
* platform/graphics/svg/filters/cg/WKSpecularLightingFilter.cikernel: Removed.
* platform/graphics/svg/filters/cg/WKSpecularLightingFilter.h: Removed.
* platform/graphics/svg/filters/cg/WKSpecularLightingFilter.m: Removed.
* platform/graphics/svg/filters/cg/WKSpotLightFilter.cikernel: Removed.
* platform/graphics/svg/filters/cg/WKSpotLightFilter.h: Removed.
* platform/graphics/svg/filters/cg/WKSpotLightFilter.m: Removed.
* platform/graphics/svg/filters/cg/WKTableTransferFilter.cikernel: Removed.
* platform/graphics/svg/filters/cg/WKTableTransferFilter.h: Removed.
* platform/graphics/svg/filters/cg/WKTableTransferFilter.m: Removed.
* platform/graphics/svg/mac: Removed.
* platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.h: Removed.
* platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.mm: Removed.
* platform/graphics/svg/qt: Removed.
* platform/graphics/svg/qt/RenderPathQt.cpp: Removed.
* platform/graphics/svg/qt/SVGPaintServerGradientQt.cpp: Removed.
* platform/graphics/svg/qt/SVGPaintServerLinearGradientQt.cpp: Removed.
* platform/graphics/svg/qt/SVGPaintServerPatternQt.cpp: Removed.
* platform/graphics/svg/qt/SVGPaintServerQt.cpp: Removed.
* platform/graphics/svg/qt/SVGPaintServerRadialGradientQt.cpp: Removed.
* platform/graphics/svg/qt/SVGPaintServerSolidQt.cpp: Removed.
* platform/graphics/svg/qt/SVGResourceClipperQt.cpp: Removed.
* platform/graphics/svg/qt/SVGResourceFilterQt.cpp: Removed.
* platform/graphics/svg/qt/SVGResourceMaskerQt.cpp: Removed.
* svg/graphics: Copied from platform/graphics/svg.
2007-12-02 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Maciej.
Fix IDL lookup in subdirectories. Missing 'my' prefix for the 'thisDir' variable.
When entering subdirectories the 'thisDir' variable got altered - see snippet:
THISDIR: WebCore/page FOUND FILE: FrameView.h (endCondition: 0)
..
-> ENTER: WebCore/page/gtk (THIS DIR: WebCore/page)
...
<- LEAVE: WebCore/page/gtk (THIS DIR: WebCore/page/gtk)
THISDIR: WebCore/page/gtk FOUND FILE: History.cpp (endCondition: 0)
'History.cpp' is located in WebCore/page not WebCore/page/gtk.
* bindings/scripts/CodeGenerator.pm:
2007-12-01 Alp Toker <alp@atoker.com>
Reviewed by Adam Roben.
Add the newly introduced webkit.h convenience header.
* WebCore.pro:
2007-12-01 Antti Koivisto <antti@apple.com>
Reviewed by Adam.
- Fix crash when removing a loading media element from the tree.
- Follow the spec by invoking pause() when element is removed from the tree instead of unloading.
Tests: http/tests/media/remove-while-loading.html
media/remove-from-document.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::removedFromDocument):
2007-12-01 Geoffrey Garen <ggaren@apple.com>
Reviewed by Beth Dakin.
Restored the test string in this test.
* manual-tests/window-open-features-parsing.html:
2007-11-30 Geoffrey Garen <ggaren@apple.com>
Reviewed by Beth Dakin.
Modified WebCore to follow the new JSGlobalObject/Interpreter ownership
rules in JavaScriptCore.
* bindings/js/kjs_binding.cpp:
* bindings/js/kjs_binding.h: Removed stale, unused
interpreterForGlobalObject().
* bindings/js/kjs_proxy.cpp: Changed to store a global object, rather
than an interpreter.
(WebCore::KJSProxy::finishedWithEvent): Need to NULL check
m_globalObject here because we no longer unnecessarily instantiate it.
* bindings/js/kjs_window.cpp:
(KJS::ScheduledAction::execute):
* bindings/js/kjs_window.h: Removed redundant and less efficient
interpreter() function -- global objects have direct access to their
interpreters now.
Changed these functions to pass around JSGlobalObjects instead of
Interpreters:
* page/Frame.cpp:
(WebCore::Frame::bindingRootObject):
(WebCore::Frame::createRootObject):
* page/Frame.h:
* page/mac/WebCoreFrameBridge.mm:
(createRootObject):
2007-12-01 Darin Adler <darin@apple.com>
Reviewed by Mitz.
- fix problem tracked by these bugs:
http://bugs.webkit.org/show_bug.cgi?id=16097
<rdar://problem/5619305> Safari crashes during load of LexisNexis search results
<rdar://problem/5510779> CrashTracer: [USER] 25 crashes in Safari at
WebCore::DocumentLoader::isLoadingMultipartContent const
* loader/ImageDocument.cpp:
(WebCore::ImageDocument::createDocumentStructure): Create an ImageDocumentElement
instead of an HTMLImageElement.
(WebCore::ImageDocument::scale): Added a null check for m_imageElement.
(WebCore::ImageDocument::resizeImageToFit): Ditto.
(WebCore::ImageDocument::restoreImageSize): Ditto.
(WebCore::ImageDocument::imageFitsInWindow): Ditto.
(WebCore::ImageDocument::windowSizeChanged): Ditto.
(WebCore::ImageDocumentElement::~ImageDocumentElement): Call
disconnectImageElement so m_imageElement will be set to 0
if we're still connected to the document.
(WebCore::ImageDocumentElement::willMoveToNewOwnerDocument): Ditto.
* loader/ImageDocument.h: Changed image element type to be
ImageDocumentElement instead of HTMLImageElement. Also added
a disconnectImageElement function that sets m_imageElement to 0.
2007-12-01 Darin Adler <darin@apple.com>
- remove the empty directories
* ksvg2: Removed.
* ksvg2/css: Removed.
* ksvg2/events: Removed.
* ksvg2/misc: Removed.
* ksvg2/scripts: Removed.
2007-12-01 Julien Chaffraix <julien.chaffraix@gmail.com>
Bug 16189: XMLHttpRequest::setRequestHeader() should not set certain headers
Reviewed by Darin Adler.
* xml/XMLHttpRequest.cpp:
(WebCore::canSetRequestHeader):
Test: http/tests/xmlhttprequest/set-dangerous-headers.html
2007-12-01 Rahul Abrol <ra5ul@comcast.net>
Reviewed by Adam Roben.
http://bugs.webkit.org/show_bug.cgi?id=16128
Ignore resizable=no for window.open().
* bindings/js/kjs_window.cpp:
(KJS::setWindowFeature):
(KJS::parseWindowFeatures):
* manual-tests/window-open-features-parsing.html:
2007-12-01 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- fix <rdar://problem/5619240> REGRESSION (Leopard-r28069): Reproducible crash with a Mootools-based calendar picker (jump to null in FrameView::layout)
Test: fast/dynamic/subtree-common-root.html
* page/FrameView.cpp:
(WebCore::FrameView::layoutRoot): Added a parameter to let this method
return the layout root for a pending layout as well.
(WebCore::FrameView::scheduleRelayoutOfSubtree): Pass the new root
to markContainingBlocksForLayout(). Otherwise,
markContainingBlocksForLayout() could mark past the new root, if it had
previously been marked as having a normal child needing layout and then
was reached via a positioned child.
* page/FrameView.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::calcWidth):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::~RenderObject): Fixed the ASSERT so that
it would really catch deletion of the layout root.
(WebCore::RenderObject::markContainingBlocksForLayout): Added the
newRoot parameter, which tells this method where to stop marking.
* rendering/RenderObject.h:
2007-12-01 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- fold FontStyle into TextRun
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/Font.cpp:
(WebCore::WidthIterator::WidthIterator):
(WebCore::WidthIterator::advance):
(WebCore::Font::width):
(WebCore::Font::drawSimpleText):
(WebCore::Font::drawGlyphBuffer):
(WebCore::Font::drawText):
(WebCore::Font::floatWidth):
(WebCore::Font::floatWidthForSimpleText):
(WebCore::Font::selectionRectForText):
(WebCore::Font::selectionRectForSimpleText):
(WebCore::Font::offsetForPosition):
(WebCore::Font::offsetForPositionForSimpleText):
* platform/graphics/Font.h:
(WebCore::TextRun::TextRun):
(WebCore::TextRun::setText):
(WebCore::TextRun::allowTabs):
(WebCore::TextRun::xPos):
(WebCore::TextRun::padding):
(WebCore::TextRun::rtl):
(WebCore::TextRun::ltr):
(WebCore::TextRun::directionalOverride):
(WebCore::TextRun::applyRunRounding):
(WebCore::TextRun::applyWordRounding):
(WebCore::TextRun::spacingDisabled):
(WebCore::TextRun::disableSpacing):
(WebCore::TextRun::disableRoundingHacks):
(WebCore::TextRun::setRTL):
(WebCore::TextRun::setDirectionalOverride):
* platform/graphics/FontStyle.h: Removed.
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawText):
(WebCore::GraphicsContext::drawBidiText):
(WebCore::GraphicsContext::drawHighlightForText):
* platform/graphics/GraphicsContext.h:
* platform/graphics/StringTruncator.cpp:
(WebCore::stringWidth):
* platform/graphics/gtk/FontGtk.cpp:
(WebCore::Font::drawComplexText):
(WebCore::Font::floatWidthForComplexText):
(WebCore::Font::offsetForPositionForComplexText):
(WebCore::Font::selectionRectForComplexText):
* platform/graphics/mac/FontMac.mm:
(WebCore::ATSULayoutParameters::ATSULayoutParameters):
(WebCore::addDirectionalOverride):
(WebCore::overrideLayoutOperation):
(WebCore::ATSULayoutParameters::initialize):
(WebCore::Font::selectionRectForComplexText):
(WebCore::Font::drawComplexText):
(WebCore::Font::floatWidthForComplexText):
(WebCore::Font::offsetForPositionForComplexText):
* platform/graphics/qt/FontQt.cpp:
(WebCore::generateComponents):
(WebCore::Font::drawText):
(WebCore::Font::width):
(WebCore::Font::offsetForPosition):
(WebCore::cursorToX):
(WebCore::Font::selectionRectForText):
* platform/graphics/win/FontWin.cpp:
(WebCore::Font::selectionRectForComplexText):
(WebCore::Font::drawComplexText):
(WebCore::Font::floatWidthForComplexText):
(WebCore::Font::offsetForPositionForComplexText):
* platform/graphics/wx/FontWx.cpp:
(WebCore::Font::selectionRectForComplexText):
(WebCore::Font::drawComplexText):
(WebCore::Font::floatWidthForComplexText):
(WebCore::Font::offsetForPositionForComplexText):
* platform/mac/WebCoreTextRenderer.mm:
(WebCoreDrawTextAtPoint):
(WebCoreTextFloatWidth):
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenu::paint):
* platform/win/UniscribeController.cpp:
(WebCore::UniscribeController::UniscribeController):
(WebCore::UniscribeController::offsetForPosition):
(WebCore::UniscribeController::advance):
(WebCore::UniscribeController::itemizeShapeAndPlace):
(WebCore::UniscribeController::resetControlAndState):
(WebCore::UniscribeController::shapeAndPlaceItem):
* platform/win/UniscribeController.h:
* platform/win/WebCoreTextRenderer.cpp:
(WebCore::doDrawTextAtPoint):
* rendering/EllipsisBox.cpp:
(WebCore::EllipsisBox::paint):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::selectionRect):
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::paintSelection):
(WebCore::InlineTextBox::paintCompositionBackground):
(WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
(WebCore::InlineTextBox::paintTextMatchMarker):
(WebCore::InlineTextBox::offsetForPosition):
(WebCore::InlineTextBox::positionForOffset):
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::paintObject):
(WebCore::RenderFileUploadControl::calcPrefWidths):
* rendering/RenderImage.cpp:
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::updateFromElement):
(WebCore::RenderListBox::paintItemForeground):
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::updateOptionsWidth):
* rendering/RenderText.cpp:
(WebCore::RenderText::widthFromCache):
(WebCore::RenderText::calcPrefWidths):
(WebCore::RenderText::width):
* rendering/RenderText.h:
(WebCore::RenderText::allowTabs):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::calcPrefWidths):
* rendering/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::calculateGlyphWidth):
(WebCore::SVGInlineTextBox::paintCharacters):
(WebCore::SVGInlineTextBox::paintSelection):
* rendering/SVGRootInlineBox.cpp:
(WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
(WebCore::cummulatedWidthOfInlineBoxCharacterRange):
(WebCore::svgTextRunForInlineTextBox):
* rendering/SVGRootInlineBox.h:
2007-12-01 Adam Treat <treat@kde.org>
Reviewed by Simon.
* Don't hide symbols when in Debug mode
* On Linux (glibc) provide a backtrace in the test output for debugging purposes
* WebCore.pro:
2007-11-30 Alp Toker <alp@atoker.com>
Reviewed by Adam Roben.
http://bugs.webkit.org/show_bug.cgi?id=15691
[GTK] Public API does not follow GTK+ conventions
Refactor the WebKit/GTK+ public API. Changes:
WebKitPage -> WebKitWebView
WebKitFrame -> WebKitWebFrame
Public API source and header names have been updated to mirror the API
changes.
The API is now kept in WebKit/gtk/WebView to match other ports in the
same class such as Mac and Win.
* WebCore.pro:
2007-11-30 Anders Carlsson <andersca@apple.com>
Add platform/text project group.
* WebCore.vcproj/WebCore.vcproj:
2007-11-30 Anders Carlsson <andersca@apple.com>
Remove extra </Filter> tag which prevented the vcproj from being parsed correctly.
* WebCore.vcproj/WebCore.vcproj:
2007-11-30 Nikolas Zimmermann <zimmermann@kde.org>
Not reviewed. Try to fix qt/gtk build.
* WebCore.pro:
2007-11-30 Nikolas Zimmermann <zimmermann@kde.org>
Rubber stamped by Eric.
Final integration of ksvg2 in WebKit. Moving ksvg2/ to svg/ and killing all it's subdirectories,
by moving the files into approriate locations (css, rendering, ...) - as dicsussed on the
mailing list and on IRC with David/Darin & Eric.
Updated all build files - though I can't guarantee it builds on non-mac. Need buildbot to verify.
* DerivedSources.make:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSSVGLazyEventListener.cpp: Copied from ksvg2/events/JSSVGLazyEventListener.cpp.
* bindings/js/JSSVGLazyEventListener.h: Copied from ksvg2/events/JSSVGLazyEventListener.h.
* css/SVGCSSComputedStyleDeclaration.cpp: Copied from ksvg2/css/SVGCSSComputedStyleDeclaration.cpp.
* css/SVGCSSParser.cpp: Copied from ksvg2/css/SVGCSSParser.cpp.
* css/SVGCSSPropertyNames.in: Copied from ksvg2/css/SVGCSSPropertyNames.in.
* css/SVGCSSStyleSelector.cpp: Copied from ksvg2/css/SVGCSSStyleSelector.cpp.
* css/SVGCSSValueKeywords.in: Copied from ksvg2/css/SVGCSSValueKeywords.in.
* dom/make_names.pl: Copied from ksvg2/scripts/make_names.pl.
* ksvg2/css/SVGCSSComputedStyleDeclaration.cpp: Removed.
* ksvg2/css/SVGCSSParser.cpp: Removed.
* ksvg2/css/SVGCSSPropertyNames.in: Removed.
* ksvg2/css/SVGCSSStyleSelector.cpp: Removed.
* ksvg2/css/SVGCSSValueKeywords.in: Removed.
* ksvg2/css/SVGRenderStyle.cpp: Removed.
* ksvg2/css/SVGRenderStyle.h: Removed.
* ksvg2/css/SVGRenderStyleDefs.cpp: Removed.
* ksvg2/css/SVGRenderStyleDefs.h: Removed.
* ksvg2/events/JSSVGLazyEventListener.cpp: Removed.
* ksvg2/events/JSSVGLazyEventListener.h: Removed.
* ksvg2/events/SVGZoomEvent.cpp: Removed.
* ksvg2/events/SVGZoomEvent.h: Removed.
* ksvg2/events/SVGZoomEvent.idl: Removed.
* ksvg2/misc/PointerEventsHitRules.cpp: Removed.
* ksvg2/misc/PointerEventsHitRules.h: Removed.
* ksvg2/misc/SVGDocumentExtensions.cpp: Removed.
* ksvg2/misc/SVGDocumentExtensions.h: Removed.
* ksvg2/misc/SVGImageLoader.cpp: Removed.
* ksvg2/misc/SVGImageLoader.h: Removed.
* ksvg2/misc/SVGTimer.cpp: Removed.
* ksvg2/misc/SVGTimer.h: Removed.
* ksvg2/misc/TimeScheduler.cpp: Removed.
* ksvg2/misc/TimeScheduler.h: Removed.
* ksvg2/misc/xlinkattrs.in: Removed.
* ksvg2/scripts/make_names.pl: Removed.
* ksvg2/svg: Removed.
* ksvg2/svg/ColorDistance.cpp: Removed.
* ksvg2/svg/ColorDistance.h: Removed.
* ksvg2/svg/GradientAttributes.h: Removed.
* ksvg2/svg/LinearGradientAttributes.h: Removed.
* ksvg2/svg/PatternAttributes.h: Removed.
* ksvg2/svg/RadialGradientAttributes.h: Removed.
* ksvg2/svg/SVGAElement.cpp: Removed.
* ksvg2/svg/SVGAElement.h: Removed.
* ksvg2/svg/SVGAElement.idl: Removed.
* ksvg2/svg/SVGAngle.cpp: Removed.
* ksvg2/svg/SVGAngle.h: Removed.
* ksvg2/svg/SVGAngle.idl: Removed.
* ksvg2/svg/SVGAnimateColorElement.cpp: Removed.
* ksvg2/svg/SVGAnimateColorElement.h: Removed.
* ksvg2/svg/SVGAnimateColorElement.idl: Removed.
* ksvg2/svg/SVGAnimateElement.cpp: Removed.
* ksvg2/svg/SVGAnimateElement.h: Removed.
* ksvg2/svg/SVGAnimateElement.idl: Removed.
* ksvg2/svg/SVGAnimateMotionElement.cpp: Removed.
* ksvg2/svg/SVGAnimateMotionElement.h: Removed.
* ksvg2/svg/SVGAnimateTransformElement.cpp: Removed.
* ksvg2/svg/SVGAnimateTransformElement.h: Removed.
* ksvg2/svg/SVGAnimateTransformElement.idl: Removed.
* ksvg2/svg/SVGAnimatedAngle.idl: Removed.
* ksvg2/svg/SVGAnimatedBoolean.idl: Removed.
* ksvg2/svg/SVGAnimatedEnumeration.idl: Removed.
* ksvg2/svg/SVGAnimatedInteger.idl: Removed.
* ksvg2/svg/SVGAnimatedLength.idl: Removed.
* ksvg2/svg/SVGAnimatedLengthList.idl: Removed.
* ksvg2/svg/SVGAnimatedNumber.idl: Removed.
* ksvg2/svg/SVGAnimatedNumberList.idl: Removed.
* ksvg2/svg/SVGAnimatedPathData.cpp: Removed.
* ksvg2/svg/SVGAnimatedPathData.h: Removed.
* ksvg2/svg/SVGAnimatedPathData.idl: Removed.
* ksvg2/svg/SVGAnimatedPoints.cpp: Removed.
* ksvg2/svg/SVGAnimatedPoints.h: Removed.
* ksvg2/svg/SVGAnimatedPoints.idl: Removed.
* ksvg2/svg/SVGAnimatedPreserveAspectRatio.idl: Removed.
* ksvg2/svg/SVGAnimatedRect.idl: Removed.
* ksvg2/svg/SVGAnimatedString.idl: Removed.
* ksvg2/svg/SVGAnimatedTemplate.h: Removed.
* ksvg2/svg/SVGAnimatedTransformList.idl: Removed.
* ksvg2/svg/SVGAnimationElement.cpp: Removed.
* ksvg2/svg/SVGAnimationElement.h: Removed.
* ksvg2/svg/SVGAnimationElement.idl: Removed.
* ksvg2/svg/SVGCircleElement.cpp: Removed.
* ksvg2/svg/SVGCircleElement.h: Removed.
* ksvg2/svg/SVGCircleElement.idl: Removed.
* ksvg2/svg/SVGClipPathElement.cpp: Removed.
* ksvg2/svg/SVGClipPathElement.h: Removed.
* ksvg2/svg/SVGClipPathElement.idl: Removed.
* ksvg2/svg/SVGColor.cpp: Removed.
* ksvg2/svg/SVGColor.h: Removed.
* ksvg2/svg/SVGColor.idl: Removed.
* ksvg2/svg/SVGComponentTransferFunctionElement.cpp: Removed.
* ksvg2/svg/SVGComponentTransferFunctionElement.h: Removed.
* ksvg2/svg/SVGComponentTransferFunctionElement.idl: Removed.
* ksvg2/svg/SVGCursorElement.cpp: Removed.
* ksvg2/svg/SVGCursorElement.h: Removed.
* ksvg2/svg/SVGCursorElement.idl: Removed.
* ksvg2/svg/SVGDefinitionSrcElement.cpp: Removed.
* ksvg2/svg/SVGDefinitionSrcElement.h: Removed.
* ksvg2/svg/SVGDefinitionSrcElement.idl: Removed.
* ksvg2/svg/SVGDefsElement.cpp: Removed.
* ksvg2/svg/SVGDefsElement.h: Removed.
* ksvg2/svg/SVGDefsElement.idl: Removed.
* ksvg2/svg/SVGDescElement.cpp: Removed.
* ksvg2/svg/SVGDescElement.h: Removed.
* ksvg2/svg/SVGDescElement.idl: Removed.
* ksvg2/svg/SVGDocument.cpp: Removed.
* ksvg2/svg/SVGDocument.h: Removed.
* ksvg2/svg/SVGDocument.idl: Removed.
* ksvg2/svg/SVGElement.cpp: Removed.
* ksvg2/svg/SVGElement.h: Removed.
* ksvg2/svg/SVGElement.idl: Removed.
* ksvg2/svg/SVGElementInstance.cpp: Removed.
* ksvg2/svg/SVGElementInstance.h: Removed.
* ksvg2/svg/SVGElementInstance.idl: Removed.
* ksvg2/svg/SVGElementInstanceList.cpp: Removed.
* ksvg2/svg/SVGElementInstanceList.h: Removed.
* ksvg2/svg/SVGElementInstanceList.idl: Removed.
* ksvg2/svg/SVGEllipseElement.cpp: Removed.
* ksvg2/svg/SVGEllipseElement.h: Removed.
* ksvg2/svg/SVGEllipseElement.idl: Removed.
* ksvg2/svg/SVGException.h: Removed.
* ksvg2/svg/SVGException.idl: Removed.
* ksvg2/svg/SVGExternalResourcesRequired.cpp: Removed.
* ksvg2/svg/SVGExternalResourcesRequired.h: Removed.
* ksvg2/svg/SVGExternalResourcesRequired.idl: Removed.
* ksvg2/svg/SVGFEBlendElement.cpp: Removed.
* ksvg2/svg/SVGFEBlendElement.h: Removed.
* ksvg2/svg/SVGFEBlendElement.idl: Removed.
* ksvg2/svg/SVGFEColorMatrixElement.cpp: Removed.
* ksvg2/svg/SVGFEColorMatrixElement.h: Removed.
* ksvg2/svg/SVGFEColorMatrixElement.idl: Removed.
* ksvg2/svg/SVGFEComponentTransferElement.cpp: Removed.
* ksvg2/svg/SVGFEComponentTransferElement.h: Removed.
* ksvg2/svg/SVGFEComponentTransferElement.idl: Removed.
* ksvg2/svg/SVGFECompositeElement.cpp: Removed.
* ksvg2/svg/SVGFECompositeElement.h: Removed.
* ksvg2/svg/SVGFECompositeElement.idl: Removed.
* ksvg2/svg/SVGFEDiffuseLightingElement.cpp: Removed.
* ksvg2/svg/SVGFEDiffuseLightingElement.h: Removed.
* ksvg2/svg/SVGFEDiffuseLightingElement.idl: Removed.
* ksvg2/svg/SVGFEDisplacementMapElement.cpp: Removed.
* ksvg2/svg/SVGFEDisplacementMapElement.h: Removed.
* ksvg2/svg/SVGFEDisplacementMapElement.idl: Removed.
* ksvg2/svg/SVGFEDistantLightElement.cpp: Removed.
* ksvg2/svg/SVGFEDistantLightElement.h: Removed.
* ksvg2/svg/SVGFEDistantLightElement.idl: Removed.
* ksvg2/svg/SVGFEFloodElement.cpp: Removed.
* ksvg2/svg/SVGFEFloodElement.h: Removed.
* ksvg2/svg/SVGFEFloodElement.idl: Removed.
* ksvg2/svg/SVGFEFuncAElement.cpp: Removed.
* ksvg2/svg/SVGFEFuncAElement.h: Removed.
* ksvg2/svg/SVGFEFuncAElement.idl: Removed.
* ksvg2/svg/SVGFEFuncBElement.cpp: Removed.
* ksvg2/svg/SVGFEFuncBElement.h: Removed.
* ksvg2/svg/SVGFEFuncBElement.idl: Removed.
* ksvg2/svg/SVGFEFuncGElement.cpp: Removed.
* ksvg2/svg/SVGFEFuncGElement.h: Removed.
* ksvg2/svg/SVGFEFuncGElement.idl: Removed.
* ksvg2/svg/SVGFEFuncRElement.cpp: Removed.
* ksvg2/svg/SVGFEFuncRElement.h: Removed.
* ksvg2/svg/SVGFEFuncRElement.idl: Removed.
* ksvg2/svg/SVGFEGaussianBlurElement.cpp: Removed.
* ksvg2/svg/SVGFEGaussianBlurElement.h: Removed.
* ksvg2/svg/SVGFEGaussianBlurElement.idl: Removed.
* ksvg2/svg/SVGFEImageElement.cpp: Removed.
* ksvg2/svg/SVGFEImageElement.h: Removed.
* ksvg2/svg/SVGFEImageElement.idl: Removed.
* ksvg2/svg/SVGFELightElement.cpp: Removed.
* ksvg2/svg/SVGFELightElement.h: Removed.
* ksvg2/svg/SVGFEMergeElement.cpp: Removed.
* ksvg2/svg/SVGFEMergeElement.h: Removed.
* ksvg2/svg/SVGFEMergeElement.idl: Removed.
* ksvg2/svg/SVGFEMergeNodeElement.cpp: Removed.
* ksvg2/svg/SVGFEMergeNodeElement.h: Removed.
* ksvg2/svg/SVGFEMergeNodeElement.idl: Removed.
* ksvg2/svg/SVGFEOffsetElement.cpp: Removed.
* ksvg2/svg/SVGFEOffsetElement.h: Removed.
* ksvg2/svg/SVGFEOffsetElement.idl: Removed.
* ksvg2/svg/SVGFEPointLightElement.cpp: Removed.
* ksvg2/svg/SVGFEPointLightElement.h: Removed.
* ksvg2/svg/SVGFEPointLightElement.idl: Removed.
* ksvg2/svg/SVGFESpecularLightingElement.cpp: Removed.
* ksvg2/svg/SVGFESpecularLightingElement.h: Removed.
* ksvg2/svg/SVGFESpecularLightingElement.idl: Removed.
* ksvg2/svg/SVGFESpotLightElement.cpp: Removed.
* ksvg2/svg/SVGFESpotLightElement.h: Removed.
* ksvg2/svg/SVGFESpotLightElement.idl: Removed.
* ksvg2/svg/SVGFETileElement.cpp: Removed.
* ksvg2/svg/SVGFETileElement.h: Removed.
* ksvg2/svg/SVGFETileElement.idl: Removed.
* ksvg2/svg/SVGFETurbulenceElement.cpp: Removed.
* ksvg2/svg/SVGFETurbulenceElement.h: Removed.
* ksvg2/svg/SVGFETurbulenceElement.idl: Removed.
* ksvg2/svg/SVGFilterElement.cpp: Removed.
* ksvg2/svg/SVGFilterElement.h: Removed.
* ksvg2/svg/SVGFilterElement.idl: Removed.
* ksvg2/svg/SVGFilterPrimitiveStandardAttributes.cpp: Removed.
* ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h: Removed.
* ksvg2/svg/SVGFilterPrimitiveStandardAttributes.idl: Removed.
* ksvg2/svg/SVGFitToViewBox.cpp: Removed.
* ksvg2/svg/SVGFitToViewBox.h: Removed.
* ksvg2/svg/SVGFitToViewBox.idl: Removed.
* ksvg2/svg/SVGFontFaceElement.cpp: Removed.
* ksvg2/svg/SVGFontFaceElement.h: Removed.
* ksvg2/svg/SVGFontFaceElement.idl: Removed.
* ksvg2/svg/SVGFontFaceFormatElement.cpp: Removed.
* ksvg2/svg/SVGFontFaceFormatElement.h: Removed.
* ksvg2/svg/SVGFontFaceFormatElement.idl: Removed.
* ksvg2/svg/SVGFontFaceNameElement.cpp: Removed.
* ksvg2/svg/SVGFontFaceNameElement.h: Removed.
* ksvg2/svg/SVGFontFaceNameElement.idl: Removed.
* ksvg2/svg/SVGFontFaceSrcElement.cpp: Removed.
* ksvg2/svg/SVGFontFaceSrcElement.h: Removed.
* ksvg2/svg/SVGFontFaceSrcElement.idl: Removed.
* ksvg2/svg/SVGFontFaceUriElement.cpp: Removed.
* ksvg2/svg/SVGFontFaceUriElement.h: Removed.
* ksvg2/svg/SVGFontFaceUriElement.idl: Removed.
* ksvg2/svg/SVGForeignObjectElement.cpp: Removed.
* ksvg2/svg/SVGForeignObjectElement.h: Removed.
* ksvg2/svg/SVGForeignObjectElement.idl: Removed.
* ksvg2/svg/SVGGElement.cpp: Removed.
* ksvg2/svg/SVGGElement.h: Removed.
* ksvg2/svg/SVGGElement.idl: Removed.
* ksvg2/svg/SVGGradientElement.cpp: Removed.
* ksvg2/svg/SVGGradientElement.h: Removed.
* ksvg2/svg/SVGGradientElement.idl: Removed.
* ksvg2/svg/SVGImageElement.cpp: Removed.
* ksvg2/svg/SVGImageElement.h: Removed.
* ksvg2/svg/SVGImageElement.idl: Removed.
* ksvg2/svg/SVGLangSpace.cpp: Removed.
* ksvg2/svg/SVGLangSpace.h: Removed.
* ksvg2/svg/SVGLangSpace.idl: Removed.
* ksvg2/svg/SVGLength.cpp: Removed.
* ksvg2/svg/SVGLength.h: Removed.
* ksvg2/svg/SVGLength.idl: Removed.
* ksvg2/svg/SVGLengthList.cpp: Removed.
* ksvg2/svg/SVGLengthList.h: Removed.
* ksvg2/svg/SVGLengthList.idl: Removed.
* ksvg2/svg/SVGLineElement.cpp: Removed.
* ksvg2/svg/SVGLineElement.h: Removed.
* ksvg2/svg/SVGLineElement.idl: Removed.
* ksvg2/svg/SVGLinearGradientElement.cpp: Removed.
* ksvg2/svg/SVGLinearGradientElement.h: Removed.
* ksvg2/svg/SVGLinearGradientElement.idl: Removed.
* ksvg2/svg/SVGList.h: Removed.
* ksvg2/svg/SVGListTraits.h: Removed.
* ksvg2/svg/SVGLocatable.cpp: Removed.
* ksvg2/svg/SVGLocatable.h: Removed.
* ksvg2/svg/SVGLocatable.idl: Removed.
* ksvg2/svg/SVGMPathElement.cpp: Removed.
* ksvg2/svg/SVGMPathElement.h: Removed.
* ksvg2/svg/SVGMarkerElement.cpp: Removed.
* ksvg2/svg/SVGMarkerElement.h: Removed.
* ksvg2/svg/SVGMarkerElement.idl: Removed.
* ksvg2/svg/SVGMaskElement.cpp: Removed.
* ksvg2/svg/SVGMaskElement.h: Removed.
* ksvg2/svg/SVGMaskElement.idl: Removed.
* ksvg2/svg/SVGMatrix.idl: Removed.
* ksvg2/svg/SVGMetadataElement.cpp: Removed.
* ksvg2/svg/SVGMetadataElement.h: Removed.
* ksvg2/svg/SVGMetadataElement.idl: Removed.
* ksvg2/svg/SVGNumber.idl: Removed.
* ksvg2/svg/SVGNumberList.cpp: Removed.
* ksvg2/svg/SVGNumberList.h: Removed.
* ksvg2/svg/SVGNumberList.idl: Removed.
* ksvg2/svg/SVGPaint.cpp: Removed.
* ksvg2/svg/SVGPaint.h: Removed.
* ksvg2/svg/SVGPaint.idl: Removed.
* ksvg2/svg/SVGParserUtilities.cpp: Removed.
* ksvg2/svg/SVGParserUtilities.h: Removed.
* ksvg2/svg/SVGPathElement.cpp: Removed.
* ksvg2/svg/SVGPathElement.h: Removed.
* ksvg2/svg/SVGPathElement.idl: Removed.
* ksvg2/svg/SVGPathSeg.h: Removed.
* ksvg2/svg/SVGPathSeg.idl: Removed.
* ksvg2/svg/SVGPathSegArc.cpp: Removed.
* ksvg2/svg/SVGPathSegArc.h: Removed.
* ksvg2/svg/SVGPathSegArcAbs.idl: Removed.
* ksvg2/svg/SVGPathSegArcRel.idl: Removed.
* ksvg2/svg/SVGPathSegClosePath.cpp: Removed.
* ksvg2/svg/SVGPathSegClosePath.h: Removed.
* ksvg2/svg/SVGPathSegClosePath.idl: Removed.
* ksvg2/svg/SVGPathSegCurvetoCubic.cpp: Removed.
* ksvg2/svg/SVGPathSegCurvetoCubic.h: Removed.
* ksvg2/svg/SVGPathSegCurvetoCubicAbs.idl: Removed.
* ksvg2/svg/SVGPathSegCurvetoCubicRel.idl: Removed.
* ksvg2/svg/SVGPathSegCurvetoCubicSmooth.cpp: Removed.
* ksvg2/svg/SVGPathSegCurvetoCubicSmooth.h: Removed.
* ksvg2/svg/SVGPathSegCurvetoCubicSmoothAbs.idl: Removed.
* ksvg2/svg/SVGPathSegCurvetoCubicSmoothRel.idl: Removed.
* ksvg2/svg/SVGPathSegCurvetoQuadratic.cpp: Removed.
* ksvg2/svg/SVGPathSegCurvetoQuadratic.h: Removed.
* ksvg2/svg/SVGPathSegCurvetoQuadraticAbs.idl: Removed.
* ksvg2/svg/SVGPathSegCurvetoQuadraticRel.idl: Removed.
* ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.cpp: Removed.
* ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.h: Removed.
* ksvg2/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl: Removed.
* ksvg2/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl: Removed.
* ksvg2/svg/SVGPathSegLineto.cpp: Removed.
* ksvg2/svg/SVGPathSegLineto.h: Removed.
* ksvg2/svg/SVGPathSegLinetoAbs.idl: Removed.
* ksvg2/svg/SVGPathSegLinetoHorizontal.cpp: Removed.
* ksvg2/svg/SVGPathSegLinetoHorizontal.h: Removed.
* ksvg2/svg/SVGPathSegLinetoHorizontalAbs.idl: Removed.
* ksvg2/svg/SVGPathSegLinetoHorizontalRel.idl: Removed.
* ksvg2/svg/SVGPathSegLinetoRel.idl: Removed.
* ksvg2/svg/SVGPathSegLinetoVertical.cpp: Removed.
* ksvg2/svg/SVGPathSegLinetoVertical.h: Removed.
* ksvg2/svg/SVGPathSegLinetoVerticalAbs.idl: Removed.
* ksvg2/svg/SVGPathSegLinetoVerticalRel.idl: Removed.
* ksvg2/svg/SVGPathSegList.cpp: Removed.
* ksvg2/svg/SVGPathSegList.h: Removed.
* ksvg2/svg/SVGPathSegList.idl: Removed.
* ksvg2/svg/SVGPathSegMoveto.cpp: Removed.
* ksvg2/svg/SVGPathSegMoveto.h: Removed.
* ksvg2/svg/SVGPathSegMovetoAbs.idl: Removed.
* ksvg2/svg/SVGPathSegMovetoRel.idl: Removed.
* ksvg2/svg/SVGPatternElement.cpp: Removed.
* ksvg2/svg/SVGPatternElement.h: Removed.
* ksvg2/svg/SVGPatternElement.idl: Removed.
* ksvg2/svg/SVGPoint.idl: Removed.
* ksvg2/svg/SVGPointList.cpp: Removed.
* ksvg2/svg/SVGPointList.h: Removed.
* ksvg2/svg/SVGPointList.idl: Removed.
* ksvg2/svg/SVGPolyElement.cpp: Removed.
* ksvg2/svg/SVGPolyElement.h: Removed.
* ksvg2/svg/SVGPolygonElement.cpp: Removed.
* ksvg2/svg/SVGPolygonElement.h: Removed.
* ksvg2/svg/SVGPolygonElement.idl: Removed.
* ksvg2/svg/SVGPolylineElement.cpp: Removed.
* ksvg2/svg/SVGPolylineElement.h: Removed.
* ksvg2/svg/SVGPolylineElement.idl: Removed.
* ksvg2/svg/SVGPreserveAspectRatio.cpp: Removed.
* ksvg2/svg/SVGPreserveAspectRatio.h: Removed.
* ksvg2/svg/SVGPreserveAspectRatio.idl: Removed.
* ksvg2/svg/SVGRadialGradientElement.cpp: Removed.
* ksvg2/svg/SVGRadialGradientElement.h: Removed.
* ksvg2/svg/SVGRadialGradientElement.idl: Removed.
* ksvg2/svg/SVGRect.idl: Removed.
* ksvg2/svg/SVGRectElement.cpp: Removed.
* ksvg2/svg/SVGRectElement.h: Removed.
* ksvg2/svg/SVGRectElement.idl: Removed.
* ksvg2/svg/SVGRenderingIntent.h: Removed.
* ksvg2/svg/SVGRenderingIntent.idl: Removed.
* ksvg2/svg/SVGSVGElement.cpp: Removed.
* ksvg2/svg/SVGSVGElement.h: Removed.
* ksvg2/svg/SVGSVGElement.idl: Removed.
* ksvg2/svg/SVGScriptElement.cpp: Removed.
* ksvg2/svg/SVGScriptElement.h: Removed.
* ksvg2/svg/SVGScriptElement.idl: Removed.
* ksvg2/svg/SVGSetElement.cpp: Removed.
* ksvg2/svg/SVGSetElement.h: Removed.
* ksvg2/svg/SVGSetElement.idl: Removed.
* ksvg2/svg/SVGStopElement.cpp: Removed.
* ksvg2/svg/SVGStopElement.h: Removed.
* ksvg2/svg/SVGStopElement.idl: Removed.
* ksvg2/svg/SVGStringList.cpp: Removed.
* ksvg2/svg/SVGStringList.h: Removed.
* ksvg2/svg/SVGStringList.idl: Removed.
* ksvg2/svg/SVGStylable.cpp: Removed.
* ksvg2/svg/SVGStylable.h: Removed.
* ksvg2/svg/SVGStylable.idl: Removed.
* ksvg2/svg/SVGStyleElement.cpp: Removed.
* ksvg2/svg/SVGStyleElement.h: Removed.
* ksvg2/svg/SVGStyleElement.idl: Removed.
* ksvg2/svg/SVGStyledElement.cpp: Removed.
* ksvg2/svg/SVGStyledElement.h: Removed.
* ksvg2/svg/SVGStyledLocatableElement.cpp: Removed.
* ksvg2/svg/SVGStyledLocatableElement.h: Removed.
* ksvg2/svg/SVGStyledTransformableElement.cpp: Removed.
* ksvg2/svg/SVGStyledTransformableElement.h: Removed.
* ksvg2/svg/SVGSwitchElement.cpp: Removed.
* ksvg2/svg/SVGSwitchElement.h: Removed.
* ksvg2/svg/SVGSwitchElement.idl: Removed.
* ksvg2/svg/SVGSymbolElement.cpp: Removed.
* ksvg2/svg/SVGSymbolElement.h: Removed.
* ksvg2/svg/SVGSymbolElement.idl: Removed.
* ksvg2/svg/SVGTRefElement.cpp: Removed.
* ksvg2/svg/SVGTRefElement.h: Removed.
* ksvg2/svg/SVGTRefElement.idl: Removed.
* ksvg2/svg/SVGTSpanElement.cpp: Removed.
* ksvg2/svg/SVGTSpanElement.h: Removed.
* ksvg2/svg/SVGTSpanElement.idl: Removed.
* ksvg2/svg/SVGTests.cpp: Removed.
* ksvg2/svg/SVGTests.h: Removed.
* ksvg2/svg/SVGTests.idl: Removed.
* ksvg2/svg/SVGTextContentElement.cpp: Removed.
* ksvg2/svg/SVGTextContentElement.h: Removed.
* ksvg2/svg/SVGTextContentElement.idl: Removed.
* ksvg2/svg/SVGTextElement.cpp: Removed.
* ksvg2/svg/SVGTextElement.h: Removed.
* ksvg2/svg/SVGTextElement.idl: Removed.
* ksvg2/svg/SVGTextPathElement.cpp: Removed.
* ksvg2/svg/SVGTextPathElement.h: Removed.
* ksvg2/svg/SVGTextPathElement.idl: Removed.
* ksvg2/svg/SVGTextPositioningElement.cpp: Removed.
* ksvg2/svg/SVGTextPositioningElement.h: Removed.
* ksvg2/svg/SVGTextPositioningElement.idl: Removed.
* ksvg2/svg/SVGTitleElement.cpp: Removed.
* ksvg2/svg/SVGTitleElement.h: Removed.
* ksvg2/svg/SVGTitleElement.idl: Removed.
* ksvg2/svg/SVGTransform.cpp: Removed.
* ksvg2/svg/SVGTransform.h: Removed.
* ksvg2/svg/SVGTransform.idl: Removed.
* ksvg2/svg/SVGTransformDistance.cpp: Removed.
* ksvg2/svg/SVGTransformDistance.h: Removed.
* ksvg2/svg/SVGTransformList.cpp: Removed.
* ksvg2/svg/SVGTransformList.h: Removed.
* ksvg2/svg/SVGTransformList.idl: Removed.
* ksvg2/svg/SVGTransformable.cpp: Removed.
* ksvg2/svg/SVGTransformable.h: Removed.
* ksvg2/svg/SVGTransformable.idl: Removed.
* ksvg2/svg/SVGURIReference.cpp: Removed.
* ksvg2/svg/SVGURIReference.h: Removed.
* ksvg2/svg/SVGURIReference.idl: Removed.
* ksvg2/svg/SVGUnitTypes.h: Removed.
* ksvg2/svg/SVGUnitTypes.idl: Removed.
* ksvg2/svg/SVGUseElement.cpp: Removed.
* ksvg2/svg/SVGUseElement.h: Removed.
* ksvg2/svg/SVGUseElement.idl: Removed.
* ksvg2/svg/SVGViewElement.cpp: Removed.
* ksvg2/svg/SVGViewElement.h: Removed.
* ksvg2/svg/SVGViewElement.idl: Removed.
* ksvg2/svg/SVGViewSpec.cpp: Removed.
* ksvg2/svg/SVGViewSpec.h: Removed.
* ksvg2/svg/SVGViewSpec.idl: Removed.
* ksvg2/svg/SVGZoomAndPan.cpp: Removed.
* ksvg2/svg/SVGZoomAndPan.h: Removed.
* ksvg2/svg/SVGZoomAndPan.idl: Removed.
* ksvg2/svg/svgattrs.in: Removed.
* ksvg2/svg/svgtags.in: Removed.
* rendering/PointerEventsHitRules.cpp: Copied from ksvg2/misc/PointerEventsHitRules.cpp.
* rendering/PointerEventsHitRules.h: Copied from ksvg2/misc/PointerEventsHitRules.h.
* rendering/SVGRenderStyle.cpp: Copied from ksvg2/css/SVGRenderStyle.cpp.
* rendering/SVGRenderStyle.h: Copied from ksvg2/css/SVGRenderStyle.h.
* rendering/SVGRenderStyleDefs.cpp: Copied from ksvg2/css/SVGRenderStyleDefs.cpp.
* rendering/SVGRenderStyleDefs.h: Copied from ksvg2/css/SVGRenderStyleDefs.h.
* svg: Copied from ksvg2/svg.
* svg/SVGDocumentExtensions.cpp: Copied from ksvg2/misc/SVGDocumentExtensions.cpp.
* svg/SVGDocumentExtensions.h: Copied from ksvg2/misc/SVGDocumentExtensions.h.
* svg/SVGImageLoader.cpp: Copied from ksvg2/misc/SVGImageLoader.cpp.
* svg/SVGImageLoader.h: Copied from ksvg2/misc/SVGImageLoader.h.
* svg/SVGTimer.cpp: Copied from ksvg2/misc/SVGTimer.cpp.
* svg/SVGTimer.h: Copied from ksvg2/misc/SVGTimer.h.
* svg/SVGZoomEvent.cpp: Copied from ksvg2/events/SVGZoomEvent.cpp.
* svg/SVGZoomEvent.h: Copied from ksvg2/events/SVGZoomEvent.h.
* svg/SVGZoomEvent.idl: Copied from ksvg2/events/SVGZoomEvent.idl.
* svg/TimeScheduler.cpp: Copied from ksvg2/misc/TimeScheduler.cpp.
* svg/TimeScheduler.h: Copied from ksvg2/misc/TimeScheduler.h.
* svg/xlinkattrs.in: Copied from ksvg2/misc/xlinkattrs.in.
2007-11-30 Kevin Ollivier <kevino@theolliviers.com>
wx build fix. Add WebCore/platform/graphics/wx to includes.
* webcore-wx.bkl:
2007-11-30 Brady Eidson <beidson@apple.com>
Reviewed by Geoff
Further hookup of Database API
With this change, any database operation that writes to the database (UPDATE, INSERT, CREATE, etc) will
result in a didModifyDatabase notification when the transaction is successfully committed
* storage/DatabaseAuthorizer.cpp: Global rename of "m_lastActionIncreasedSize" to "m_lastActionChangedDatabase"
(WebCore::DatabaseAuthorizer::reset):
(WebCore::DatabaseAuthorizer::createTable):
(WebCore::DatabaseAuthorizer::allowAlterTable):
(WebCore::DatabaseAuthorizer::createIndex):
(WebCore::DatabaseAuthorizer::createTrigger):
(WebCore::DatabaseAuthorizer::createVTable):
(WebCore::DatabaseAuthorizer::allowInsert):
(WebCore::DatabaseAuthorizer::allowUpdate):
* storage/DatabaseAuthorizer.h:
(WebCore::DatabaseAuthorizer::lastActionChangedDatabase):
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::notifyDatabaseChanged): Added. Allow external entities (SQLTransaction) to be able
to request a didModifyDatabase notification to the delegate
* storage/DatabaseTracker.h:
* storage/SQLTransaction.cpp: Added m_modifiedDatabase flag which tracks if any statement over the course of
a transaction resulted in a change to the database.
(WebCore::SQLTransaction::SQLTransaction):
(WebCore::SQLTransaction::runCurrentStatement): Set m_modifiedDatabase to true if the authorizer reports a mutation
statement occurred
(WebCore::SQLTransaction::postflightAndCommit): If the transaction successfully commits, call DatabaseTracker::notifyDatabaseChanged
(WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): Ditto
* storage/SQLTransaction.h:
2007-11-30 Nikolas Zimmermann <zimmermann@kde.org>
Rubber stamped by David.
Next round of moves - platform reorganization.
Move text/font/glyph related files from the individual port directories
into platform/text/<port> or platform/graphics/<port>.
* DerivedSources.make:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* platform/cf/StringCF.cpp: Removed.
* platform/cf/StringImplCF.cpp: Removed.
* platform/graphics/gtk/FontCacheGtk.cpp: Copied from platform/gtk/FontCacheGtk.cpp.
* platform/graphics/gtk/FontDataGtk.cpp: Copied from platform/gtk/FontDataGtk.cpp.
* platform/graphics/gtk/FontGtk.cpp: Copied from platform/gtk/FontGtk.cpp.
* platform/graphics/gtk/FontPlatformData.h: Copied from platform/gtk/FontPlatformData.h.
* platform/graphics/gtk/FontPlatformDataGtk.cpp: Copied from platform/gtk/FontPlatformDataGtk.cpp.
* platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp: Copied from platform/gtk/GlyphPageTreeNodeGtk.cpp.
* platform/graphics/mac/FontCacheMac.mm: Copied from platform/mac/FontCacheMac.mm.
* platform/graphics/mac/FontCustomPlatformData.cpp: Copied from platform/mac/FontCustomPlatformData.cpp.
* platform/graphics/mac/FontCustomPlatformData.h: Copied from platform/mac/FontCustomPlatformData.h.
* platform/graphics/mac/FontDataMac.mm: Copied from platform/mac/FontDataMac.mm.
* platform/graphics/mac/FontMac.mm: Copied from platform/mac/FontMac.mm.
* platform/graphics/mac/FontPlatformData.h: Copied from platform/mac/FontPlatformData.h.
* platform/graphics/mac/FontPlatformDataMac.mm: Copied from platform/mac/FontPlatformDataMac.mm.
* platform/graphics/mac/GlyphPageTreeNodeMac.cpp: Copied from platform/mac/GlyphPageTreeNodeMac.cpp.
* platform/graphics/qt/FontCacheQt.cpp: Copied from platform/qt/FontCacheQt.cpp.
* platform/graphics/qt/FontCustomPlatformData.cpp: Copied from platform/qt/FontCustomPlatformData.cpp.
* platform/graphics/qt/FontCustomPlatformData.h: Copied from platform/qt/FontCustomPlatformData.h.
* platform/graphics/qt/FontDataQt.cpp: Copied from platform/qt/FontDataQt.cpp.
* platform/graphics/qt/FontPlatformData.h: Copied from platform/qt/FontPlatformData.h.
* platform/graphics/qt/FontQt.cpp: Copied from platform/qt/FontQt.cpp.
* platform/graphics/qt/GlyphPageTreeNodeQt.cpp: Copied from platform/qt/GlyphPageTreeNodeQt.cpp.
* platform/graphics/win/FontCacheWin.cpp: Copied from platform/win/FontCacheWin.cpp.
* platform/graphics/win/FontCustomPlatformData.cpp: Copied from platform/win/FontCustomPlatformData.cpp.
* platform/graphics/win/FontCustomPlatformData.h: Copied from platform/win/FontCustomPlatformData.h.
* platform/graphics/win/FontDataWin.cpp: Copied from platform/win/FontDataWin.cpp.
* platform/graphics/win/FontDatabase.cpp: Copied from platform/win/FontDatabase.cpp.
* platform/graphics/win/FontDatabase.h: Copied from platform/win/FontDatabase.h.
* platform/graphics/win/FontPlatformData.h: Copied from platform/win/FontPlatformData.h.
* platform/graphics/win/FontPlatformDataWin.cpp: Copied from platform/win/FontPlatformDataWin.cpp.
* platform/graphics/win/FontWin.cpp: Copied from platform/win/FontWin.cpp.
* platform/graphics/win/GlyphPageTreeNodeWin.cpp: Copied from platform/win/GlyphPageTreeNodeWin.cpp.
* platform/graphics/wx/FontCacheWx.cpp: Copied from platform/wx/FontCacheWx.cpp.
* platform/graphics/wx/FontDataWx.cpp: Copied from platform/wx/FontDataWx.cpp.
* platform/graphics/wx/FontPlatformData.h: Copied from platform/wx/FontPlatformData.h.
* platform/graphics/wx/FontPlatformDataWx.cpp: Copied from platform/wx/FontPlatformDataWx.cpp.
* platform/graphics/wx/FontWx.cpp: Copied from platform/wx/FontWx.cpp.
* platform/graphics/wx/GlyphMapWx.cpp: Copied from platform/wx/GlyphMapWx.cpp.
* platform/gtk/FontCacheGtk.cpp: Removed.
* platform/gtk/FontDataGtk.cpp: Removed.
* platform/gtk/FontGtk.cpp: Removed.
* platform/gtk/FontPlatformData.h: Removed.
* platform/gtk/FontPlatformDataGtk.cpp: Removed.
* platform/gtk/GlyphPageTreeNodeGtk.cpp: Removed.
* platform/gtk/TextBreakIteratorInternalICUGtk.cpp: Removed.
* platform/mac/FontCacheMac.mm: Removed.
* platform/mac/FontCustomPlatformData.cpp: Removed.
* platform/mac/FontCustomPlatformData.h: Removed.
* platform/mac/FontDataMac.mm: Removed.
* platform/mac/FontMac.mm: Removed.
* platform/mac/FontPlatformData.h: Removed.
* platform/mac/FontPlatformDataMac.mm: Removed.
* platform/mac/GlyphPageTreeNodeMac.cpp: Removed.
* platform/mac/ShapeArabic.c: Removed.
* platform/mac/ShapeArabic.h: Removed.
* platform/mac/StringImplMac.mm: Removed.
* platform/mac/StringMac.mm: Removed.
* platform/mac/TextBoundaries.mm: Removed.
* platform/mac/TextBreakIteratorInternalICUMac.mm: Removed.
* platform/mac/TextCodecMac.cpp: Removed.
* platform/mac/TextCodecMac.h: Removed.
* platform/mac/character-sets.txt: Removed.
* platform/mac/mac-encodings.txt: Removed.
* platform/mac/make-charset-table.pl: Removed.
* platform/qt/FontCacheQt.cpp: Removed.
* platform/qt/FontCustomPlatformData.cpp: Removed.
* platform/qt/FontCustomPlatformData.h: Removed.
* platform/qt/FontDataQt.cpp: Removed.
* platform/qt/FontPlatformData.h: Removed.
* platform/qt/FontQt.cpp: Removed.
* platform/qt/GlyphPageTreeNodeQt.cpp: Removed.
* platform/qt/StringQt.cpp: Removed.
* platform/qt/TextBoundaries.cpp: Removed.
* platform/qt/TextBreakIteratorQt.cpp: Removed.
* platform/qt/TextCodecQt.cpp: Removed.
* platform/qt/TextCodecQt.h: Removed.
* platform/symbian/StringImplSymbian.cpp: Removed.
* platform/symbian/StringSymbian.cpp: Removed.
* platform/text/cf: Added.
* platform/text/cf/StringCF.cpp: Copied from platform/cf/StringCF.cpp.
* platform/text/cf/StringImplCF.cpp: Copied from platform/cf/StringImplCF.cpp.
* platform/text/gtk: Added.
* platform/text/gtk/TextBreakIteratorInternalICUGtk.cpp: Copied from platform/gtk/TextBreakIteratorInternalICUGtk.cpp.
* platform/text/mac/ShapeArabic.c: Copied from platform/mac/ShapeArabic.c.
* platform/text/mac/ShapeArabic.h: Copied from platform/mac/ShapeArabic.h.
* platform/text/mac/StringImplMac.mm: Copied from platform/mac/StringImplMac.mm.
* platform/text/mac/StringMac.mm: Copied from platform/mac/StringMac.mm.
* platform/text/mac/TextBoundaries.mm: Copied from platform/mac/TextBoundaries.mm.
* platform/text/mac/TextBreakIteratorInternalICUMac.mm: Copied from platform/mac/TextBreakIteratorInternalICUMac.mm.
* platform/text/mac/TextCodecMac.cpp: Copied from platform/mac/TextCodecMac.cpp.
* platform/text/mac/TextCodecMac.h: Copied from platform/mac/TextCodecMac.h.
* platform/text/mac/character-sets.txt: Copied from platform/mac/character-sets.txt.
* platform/text/mac/mac-encodings.txt: Copied from platform/mac/mac-encodings.txt.
* platform/text/mac/make-charset-table.pl: Copied from platform/mac/make-charset-table.pl.
* platform/text/qt: Added.
* platform/text/qt/StringQt.cpp: Copied from platform/qt/StringQt.cpp.
* platform/text/qt/TextBoundaries.cpp: Copied from platform/qt/TextBoundaries.cpp.
* platform/text/qt/TextBreakIteratorQt.cpp: Copied from platform/qt/TextBreakIteratorQt.cpp.
* platform/text/qt/TextCodecQt.cpp: Copied from platform/qt/TextCodecQt.cpp.
* platform/text/qt/TextCodecQt.h: Copied from platform/qt/TextCodecQt.h.
* platform/text/symbian: Added.
* platform/text/symbian/StringImplSymbian.cpp: Copied from platform/symbian/StringImplSymbian.cpp.
* platform/text/symbian/StringSymbian.cpp: Copied from platform/symbian/StringSymbian.cpp.
* platform/text/win: Added.
* platform/text/win/TextBreakIteratorInternalICUWin.cpp: Copied from platform/win/TextBreakIteratorInternalICUWin.cpp.
* platform/text/wx: Added.
* platform/text/wx/StringWx.cpp: Copied from platform/wx/StringWx.cpp.
* platform/win/FontCacheWin.cpp: Removed.
* platform/win/FontCustomPlatformData.cpp: Removed.
* platform/win/FontCustomPlatformData.h: Removed.
* platform/win/FontDataWin.cpp: Removed.
* platform/win/FontDatabase.cpp: Removed.
* platform/win/FontDatabase.h: Removed.
* platform/win/FontPlatformData.h: Removed.
* platform/win/FontPlatformDataWin.cpp: Removed.
* platform/win/FontWin.cpp: Removed.
* platform/win/GlyphPageTreeNodeWin.cpp: Removed.
* platform/win/TextBreakIteratorInternalICUWin.cpp: Removed.
* platform/wx/FontCacheWx.cpp: Removed.
* platform/wx/FontDataWx.cpp: Removed.
* platform/wx/FontPlatformData.h: Removed.
* platform/wx/FontPlatformDataWx.cpp: Removed.
* platform/wx/FontWx.cpp: Removed.
* platform/wx/GlyphMapWx.cpp: Removed.
* platform/wx/StringWx.cpp: Removed.
* webcore-wx.bkl:
2007-11-30 Kevin Ollivier <kevino@theolliviers.com>
Build fix for wx port. Adding editing/RemoveFormatCommand.cpp
* WebCoreSources.bkl:
2007-11-30 Simon Hausmann <hausmann@webkit.org>
Reviewed by Adam Roben.
Fix the build with DATABASE=0.
* page/Settings.cpp:
(WebCore::Settings::setDefaultDatabaseOriginQuota):
(WebCore::Settings::defaultDatabaseOriginQuota):
2007-11-30 Nikolas Zimmermann <zimmermann@kde.org>
Rubber stamped by Darin.
Fix misplaced file. The name "FontStyle" is not correct though - it probably
needs yet another move - but this time inside platform/graphics - as soon
as we agree on a better name.
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/FontStyle.h: Copied from platform/text/FontStyle.h.
* platform/text/FontStyle.h: Removed.
2007-11-30 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Sam.
Rename "FontStyle FontStyle(...)" to "FontStyle fontStyle(...)".
I scripted a bit too much while doing the TextStyle -> FontStyle change.
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenu::paint):
* rendering/EllipsisBox.cpp:
(WebCore::EllipsisBox::paint):
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::paintObject):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::updateFromElement):
(WebCore::RenderListBox::paintItemForeground):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::setStyle):
(WebCore::RenderTextControl::createInnerTextStyle):
(WebCore::RenderTextControl::createSubtreeIfNeeded):
* rendering/RenderTextControl.h:
* rendering/SVGRootInlineBox.cpp:
(WebCore::svgFontStyleForInlineTextBox):
2007-11-30 Alp Toker <alp@atoker.com>
GTK+ build fix following the recent text reorganization.
* WebCore.pro:
2007-11-29 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Adam.
Part of <rdar://problem/5506522> Seed: cannot type into text box in
Facebook, don't see plugin content (Adobe Flash)
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginViewWin::handleMouseEvent): Focus the plugin's parent
frame
2007-11-30 Nikolas Zimmermann <zimmermann@kde.org>
Not reviewed. Trying to fix gtk/qt/wx build. (I expected problems because of the moves)
* WebCore.pro:
* webcore-base.bkl:
2007-11-30 Nikolas Zimmermann <zimmermann@kde.org>
Rubber stamped by Brady.
Started platform reorganization (platform/text addition).
Moving string/text/font related classes into new places - as discussed on webkit-dev.
In a follow-up commit I'll move classes out of platform/{mac,win,...} into
platform/text/{mac,win,...}, and also do the ksvg2/ -> svg/ move.
* WebCore.order:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplacementFragment::insertFragmentForTestRendering):
* platform/AtomicString.cpp: Removed.
* platform/AtomicString.h: Removed.
* platform/AtomicStringImpl.h: Removed.
* platform/Base64.cpp: Removed.
* platform/Base64.h: Removed.
* platform/BidiContext.cpp: Removed.
* platform/BidiContext.h: Removed.
* platform/BidiResolver.h: Removed.
* platform/CString.cpp: Removed.
* platform/CString.h: Removed.
* platform/CharacterNames.h: Removed.
* platform/CharsetData.h: Removed.
* platform/Font.cpp: Removed.
* platform/Font.h: Removed.
* platform/FontCache.cpp: Removed.
* platform/FontCache.h: Removed.
* platform/FontData.cpp: Removed.
* platform/FontData.h: Removed.
* platform/FontDescription.h: Removed.
* platform/FontFallbackList.cpp: Removed.
* platform/FontFallbackList.h: Removed.
* platform/FontFamily.cpp: Removed.
* platform/FontFamily.h: Removed.
* platform/FontSelector.h: Removed.
* platform/GlyphBuffer.h: Removed.
* platform/GlyphPageTreeNode.cpp: Removed.
* platform/GlyphPageTreeNode.h: Removed.
* platform/GlyphWidthMap.cpp: Removed.
* platform/GlyphWidthMap.h: Removed.
* platform/PlatformString.h: Removed.
* platform/RegularExpression.cpp: Removed.
* platform/RegularExpression.h: Removed.
* platform/SegmentedString.cpp: Removed.
* platform/SegmentedString.h: Removed.
* platform/String.cpp: Removed.
* platform/StringHash.h: Removed.
* platform/StringImpl.cpp: Removed.
* platform/StringImpl.h: Removed.
* platform/StringTruncator.cpp: Removed.
* platform/StringTruncator.h: Removed.
* platform/TextBoundaries.h: Removed.
* platform/TextBoundariesICU.cpp: Removed.
* platform/TextBreakIterator.h: Removed.
* platform/TextBreakIteratorICU.cpp: Removed.
* platform/TextBreakIteratorInternalICU.h: Removed.
* platform/TextCodec.cpp: Removed.
* platform/TextCodec.h: Removed.
* platform/TextCodecICU.cpp: Removed.
* platform/TextCodecICU.h: Removed.
* platform/TextCodecLatin1.cpp: Removed.
* platform/TextCodecLatin1.h: Removed.
* platform/TextCodecUTF16.cpp: Removed.
* platform/TextCodecUTF16.h: Removed.
* platform/TextCodecUserDefined.cpp: Removed.
* platform/TextCodecUserDefined.h: Removed.
* platform/TextDecoder.cpp: Removed.
* platform/TextDecoder.h: Removed.
* platform/TextDirection.h: Removed.
* platform/TextEncoding.cpp: Removed.
* platform/TextEncoding.h: Removed.
* platform/TextEncodingRegistry.cpp: Removed.
* platform/TextEncodingRegistry.h: Removed.
* platform/TextStream.cpp: Removed.
* platform/TextStream.h: Removed.
* platform/TextStyle.h: Removed.
* platform/UnicodeRange.cpp: Removed.
* platform/UnicodeRange.h: Removed.
* platform/graphics/Font.cpp: Copied from platform/Font.cpp.
(WebCore::WidthIterator::WidthIterator):
(WebCore::Font::width):
(WebCore::Font::drawSimpleText):
(WebCore::Font::drawGlyphBuffer):
(WebCore::Font::drawText):
(WebCore::Font::floatWidth):
(WebCore::Font::floatWidthForSimpleText):
(WebCore::Font::selectionRectForText):
(WebCore::Font::selectionRectForSimpleText):
(WebCore::Font::offsetForPosition):
(WebCore::Font::offsetForPositionForSimpleText):
* platform/graphics/Font.h: Copied from platform/Font.h.
* platform/graphics/FontCache.cpp: Copied from platform/FontCache.cpp.
* platform/graphics/FontCache.h: Copied from platform/FontCache.h.
* platform/graphics/FontData.cpp: Copied from platform/FontData.cpp.
* platform/graphics/FontData.h: Copied from platform/FontData.h.
* platform/graphics/FontDescription.h: Copied from platform/FontDescription.h.
* platform/graphics/FontFallbackList.cpp: Copied from platform/FontFallbackList.cpp.
* platform/graphics/FontFallbackList.h: Copied from platform/FontFallbackList.h.
* platform/graphics/FontFamily.cpp: Copied from platform/FontFamily.cpp.
* platform/graphics/FontFamily.h: Copied from platform/FontFamily.h.
* platform/graphics/FontSelector.h: Copied from platform/FontSelector.h.
* platform/graphics/GlyphBuffer.h: Copied from platform/GlyphBuffer.h.
* platform/graphics/GlyphPageTreeNode.cpp: Copied from platform/GlyphPageTreeNode.cpp.
* platform/graphics/GlyphPageTreeNode.h: Copied from platform/GlyphPageTreeNode.h.
* platform/graphics/GlyphWidthMap.cpp: Copied from platform/GlyphWidthMap.cpp.
* platform/graphics/GlyphWidthMap.h: Copied from platform/GlyphWidthMap.h.
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawText):
(WebCore::GraphicsContext::drawBidiText):
(WebCore::GraphicsContext::drawHighlightForText):
* platform/graphics/GraphicsContext.h:
* platform/graphics/StringTruncator.cpp: Copied from platform/StringTruncator.cpp.
(WebCore::stringWidth):
* platform/graphics/StringTruncator.h: Copied from platform/StringTruncator.h.
* platform/graphics/qt/GraphicsContextQt.cpp:
* platform/gtk/FontGtk.cpp:
(WebCore::Font::drawComplexText):
(WebCore::Font::floatWidthForComplexText):
(WebCore::Font::offsetForPositionForComplexText):
(WebCore::Font::selectionRectForComplexText):
* platform/mac/FontMac.mm:
(WebCore::ATSULayoutParameters::ATSULayoutParameters):
(WebCore::Font::selectionRectForComplexText):
(WebCore::Font::drawComplexText):
(WebCore::Font::floatWidthForComplexText):
(WebCore::Font::offsetForPositionForComplexText):
* platform/mac/WebCoreTextRenderer.mm:
(WebCoreDrawTextAtPoint):
(WebCoreTextFloatWidth):
* platform/qt/FontQt.cpp:
(WebCore::generateComponents):
(WebCore::Font::drawText):
(WebCore::Font::width):
(WebCore::Font::floatWidth):
(WebCore::Font::offsetForPosition):
(WebCore::cursorToX):
(WebCore::Font::selectionRectForText):
* platform/text: Added.
* platform/text/AtomicString.cpp: Copied from platform/AtomicString.cpp.
* platform/text/AtomicString.h: Copied from platform/AtomicString.h.
* platform/text/AtomicStringImpl.h: Copied from platform/AtomicStringImpl.h.
* platform/text/Base64.cpp: Copied from platform/Base64.cpp.
* platform/text/Base64.h: Copied from platform/Base64.h.
* platform/text/BidiContext.cpp: Copied from platform/BidiContext.cpp.
* platform/text/BidiContext.h: Copied from platform/BidiContext.h.
* platform/text/BidiResolver.h: Copied from platform/BidiResolver.h.
* platform/text/CString.cpp: Copied from platform/CString.cpp.
* platform/text/CString.h: Copied from platform/CString.h.
* platform/text/CharacterNames.h: Copied from platform/CharacterNames.h.
* platform/text/FontStyle.h: Copied from platform/TextStyle.h.
(WebCore::FontStyle::FontStyle):
* platform/text/PlatformString.h: Copied from platform/PlatformString.h.
* platform/text/RegularExpression.cpp: Copied from platform/RegularExpression.cpp.
* platform/text/RegularExpression.h: Copied from platform/RegularExpression.h.
* platform/text/SegmentedString.cpp: Copied from platform/SegmentedString.cpp.
* platform/text/SegmentedString.h: Copied from platform/SegmentedString.h.
* platform/text/String.cpp: Copied from platform/String.cpp.
* platform/text/StringHash.h: Copied from platform/StringHash.h.
* platform/text/StringImpl.cpp: Copied from platform/StringImpl.cpp.
* platform/text/StringImpl.h: Copied from platform/StringImpl.h.
* platform/text/TextBoundaries.h: Copied from platform/TextBoundaries.h.
* platform/text/TextBoundariesICU.cpp: Copied from platform/TextBoundariesICU.cpp.
(WebCore::findNextWordFromIndex):
* platform/text/TextBreakIterator.h: Copied from platform/TextBreakIterator.h.
* platform/text/TextBreakIteratorICU.cpp: Copied from platform/TextBreakIteratorICU.cpp.
* platform/text/TextBreakIteratorInternalICU.h: Copied from platform/TextBreakIteratorInternalICU.h.
* platform/text/TextCodec.cpp: Copied from platform/TextCodec.cpp.
* platform/text/TextCodec.h: Copied from platform/TextCodec.h.
* platform/text/TextCodecICU.cpp: Copied from platform/TextCodecICU.cpp.
* platform/text/TextCodecICU.h: Copied from platform/TextCodecICU.h.
* platform/text/TextCodecLatin1.cpp: Copied from platform/TextCodecLatin1.cpp.
* platform/text/TextCodecLatin1.h: Copied from platform/TextCodecLatin1.h.
* platform/text/TextCodecUTF16.cpp: Copied from platform/TextCodecUTF16.cpp.
* platform/text/TextCodecUTF16.h: Copied from platform/TextCodecUTF16.h.
* platform/text/TextCodecUserDefined.cpp: Copied from platform/TextCodecUserDefined.cpp.
* platform/text/TextCodecUserDefined.h: Copied from platform/TextCodecUserDefined.h.
* platform/text/TextDecoder.cpp: Copied from platform/TextDecoder.cpp.
* platform/text/TextDecoder.h: Copied from platform/TextDecoder.h.
* platform/text/TextDirection.h: Copied from platform/TextDirection.h.
* platform/text/TextEncoding.cpp: Copied from platform/TextEncoding.cpp.
* platform/text/TextEncoding.h: Copied from platform/TextEncoding.h.
* platform/text/TextEncodingRegistry.cpp: Copied from platform/TextEncodingRegistry.cpp.
* platform/text/TextEncodingRegistry.h: Copied from platform/TextEncodingRegistry.h.
* platform/text/TextStream.cpp: Copied from platform/TextStream.cpp.
* platform/text/TextStream.h: Copied from platform/TextStream.h.
* platform/text/UnicodeRange.cpp: Copied from platform/UnicodeRange.cpp.
* platform/text/UnicodeRange.h: Copied from platform/UnicodeRange.h.
* platform/text/mac: Added.
* platform/text/mac/CharsetData.h: Copied from platform/CharsetData.h.
* platform/win/FontWin.cpp:
(WebCore::Font::selectionRectForComplexText):
(WebCore::Font::drawComplexText):
(WebCore::Font::floatWidthForComplexText):
(WebCore::Font::offsetForPositionForComplexText):
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenu::paint):
* platform/win/UniscribeController.cpp:
(WebCore::UniscribeController::UniscribeController):
* platform/win/UniscribeController.h:
* platform/win/WebCoreTextRenderer.cpp:
(WebCore::doDrawTextAtPoint):
* platform/wx/FontWx.cpp:
(WebCore::Font::selectionRectForComplexText):
(WebCore::Font::drawComplexText):
(WebCore::Font::floatWidthForComplexText):
(WebCore::Font::offsetForPositionForComplexText):
* rendering/EllipsisBox.cpp:
(WebCore::EllipsisBox::paint):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::selectionRect):
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::paintSelection):
(WebCore::InlineTextBox::paintCompositionBackground):
(WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
(WebCore::InlineTextBox::paintTextMatchMarker):
(WebCore::InlineTextBox::offsetForPosition):
(WebCore::InlineTextBox::positionForOffset):
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::paintObject):
(WebCore::RenderFileUploadControl::calcPrefWidths):
* rendering/RenderImage.cpp:
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::updateFromElement):
(WebCore::RenderListBox::paintItemForeground):
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::updateOptionsWidth):
* rendering/RenderText.cpp:
(WebCore::RenderText::widthFromCache):
(WebCore::RenderText::calcPrefWidths):
(WebCore::RenderText::width):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::setStyle):
(WebCore::RenderTextControl::createInnerFontStyle):
(WebCore::RenderTextControl::createSubtreeIfNeeded):
(WebCore::RenderTextControl::calcPrefWidths):
* rendering/RenderTextControl.h:
* rendering/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::calculateGlyphWidth):
(WebCore::SVGInlineTextBox::paintCharacters):
(WebCore::SVGInlineTextBox::paintSelection):
* rendering/SVGRootInlineBox.cpp:
(WebCore::cummulatedWidthOfInlineBoxCharacterRange):
(WebCore::svgFontStyleForInlineTextBox):
* rendering/SVGRootInlineBox.h:
2007-11-30 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Fix for http://bugs.webkit.org/show_bug.cgi?id=16072
<rdar://problem/5463821> REGRESSION: Mousemove event isn't fired when mouse moves over scrollbar with pressed button (16072)
Test: fast/events/mousemove-after-drag-over-scrollbar.html
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseMoveEvent): If the mouse is pressed, and we've moved over a new scrollbar, then we can clear m_lastScrollbarUnderMouse.
We should only need to show the hover effect when the mouse isn't pressed.
2007-11-29 Brady Eidson <beidson@apple.com>
Reviewed by Tim
Part of <rdar://problem/5556377> - Need to accurately track and enforce database quota
SQLite has the ability to enforce the page usage for databases. This gives us bulletproof
enforcement of the database size limit with reasonable granularity (within 1023 bytes by
default on OS X with SQLite 3.4.0)
This also involved enhancing the ability to install/remove the authorizer to run the PRAGMA
statements involved
Note this patch does not actually use the new maximumSize() functionality of the
SQLiteDatabase class - that can be reviewed/landed seperately
* platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::SQLiteDatabase):
(WebCore::SQLiteDatabase::maximumSize): Return the current maximum size in bytes
(WebCore::SQLiteDatabase::setMaximumSize): Based on m_pageSize, set the maximum page count
to enforce the maximum size in bytes
(WebCore::SQLiteDatabase::pageSize): Fetch m_pageSize if it hasn't been fetched, or return
the cached value
(WebCore::SQLiteDatabase::setAuthorizer): Use enableAuthorizer for the sqlite_* level
authorizer setup
(WebCore::SQLiteDatabase::enableAuthorizer): Install or remove the sqlite authorizer handler
* platform/sql/SQLiteDatabase.h: Add the m_pageSize member so we only have to fetch it once
2007-11-29 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Maciej.
* Fix fast/events/mousedown_in_scrollbar.html
* This test used to crash in PlatformScrollbarQt::mouse*Event due parent() returning 0.
* Extend the current check that the scrollbar in the mev can be go away.
This happens if we destroy a RenderLayer as the result of a click. In the
case of Qt we can have this scrollbar in m_lastScrollbarUnderMouse. The RenderLayer
is the ScrollbarClient, m_lastScrollbarUnderMouse is a RefPtr and keeps the
last reference. When calling into this scrollbar the m_client pointer is a dangling pointer.
We extend the check to set m_lastScrollbarUnderMouse back to zero when it was the
scrollbar in the old mev and is gone in the new one.
* This happens only on the Qt port because we send more/different move events.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEvent):
2007-11-29 Antti Koivisto <antti@apple.com>
Reviewed by Mitz.
Fix aspect ratio calculation of video.
Video should always be treated as a replaced element in size calculation.
Test: media/video-aspect-ratio.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::calcWidth):
(WebCore::RenderBox::calcHeight):
* rendering/RenderBox.h:
(WebCore::RenderBox::shouldCalculateSizeAsReplaced):
* rendering/RenderMedia.h:
(WebCore::RenderMedia::shouldCalculateSizeAsReplaced):
2007-11-29 Sam Weinig <sam@webkit.org>
Reviewed by Oliver.
Additional fix for <rdar://problem/5592988> / http://bugs.webkit.org/show_bug.cgi?id=15936
- More closely match IE's policy for frame navigation.
* bindings/js/kjs_window.cpp:
(KJS::WindowProtoFuncOpen::callAsFunction):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::shouldAllowNavigation):
* page/FrameTree.cpp:
(WebCore::FrameTree::top):
* page/FrameTree.h:
2007-11-29 Dan Bernstein <mitz@apple.com>
Reviewed by Adam Roben and John Sullivan.
- make the recent searches popup extend only along the straight part of
the search field (unless it needs to be wider).
* platform/PopupMenuClient.h:
Added clientInsetLeft() and clientInsetRight() for clients to
specify desired horizontal insets for the menu.
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenu::calculatePositionAndSize):
(WebCore::PopupMenu::paint):
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::clientInsetLeft): Added. Returns 0.
(WebCore::RenderMenuList::clientInsetRight): Ditto.
* rendering/RenderMenuList.h:
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::clientInsetLeft): Added. Returns half the
control's height, which is the radius of the cap on the left.
(WebCore::RenderTextControl::clientInsetRight): Added.
* rendering/RenderTextControl.h:
2007-11-30 Alp Toker <alp@atoker.com>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=16173
Licensing change
Change license from BSD to LGPL.
This is being done to encourage vendors to contribute their fixes back
upstream.
* platform/graphics/gtk/ColorGtk.cpp:
* platform/graphics/gtk/IntPointGtk.cpp:
* platform/graphics/gtk/IntRectGtk.cpp:
* platform/graphics/svg/cairo/RenderPathCairo.cpp:
* platform/graphics/svg/cairo/SVGPaintServerCairo.cpp:
* platform/graphics/svg/cairo/SVGPaintServerGradientCairo.cpp:
* platform/graphics/svg/cairo/SVGPaintServerPatternCairo.cpp:
* platform/graphics/svg/cairo/SVGPaintServerSolidCairo.cpp:
* platform/graphics/svg/cairo/SVGResourceClipperCairo.cpp:
* platform/graphics/svg/cairo/SVGResourceMaskerCairo.cpp:
* platform/gtk/Language.cpp:
* platform/gtk/LoggingGtk.cpp:
* platform/gtk/SoundGtk.cpp:
* platform/gtk/SystemTimeGtk.cpp:
* platform/gtk/TextBreakIteratorInternalICUGtk.cpp:
2007-11-29 Darin Adler <darin@apple.com>
Reviewed by Adele.
- fix http://bugs.webkit.org/show_bug.cgi?id=16191
REGRESSION: cannot tab to radio input after setting checked to false
Test: fast/forms/input-radio-checked-tab.html
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::CheckedRadioButtons::addButton): Fix this code
so that it doesn't call setChecked(false) until after the map has been updated.
Otherwise, we can end up deallocating the map before manipulating it. As long
as I was changing the function, I decided to make it do only a single hash
table lookup.
* html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::setChecked):
Remove the button from the radio buttons set before changing the checked
state. This matches the idiom used elsewhere and fixes the problem where
setting checked to false would not remove it from the set.
2007-11-29 Justin Garcia <justin.garcia@apple.com>
Reviewed by Darin Adler.
<rdar://problem/5620093> Brief hang when Safari caches page text of XML document
* editing/TextIterator.cpp:
(WebCore::TextIterator::representNodeOffsetZero): When we haven't been emitting any
characters, shouldRepresentNodeOffsetZero() can create VisiblePositions, which is
expensive. So, we perform the inexpensive checks on m_node to see if it necessitates
emitting a character first and will early return before encountering
shouldRepresentNodeOffsetZero()s worse case behavior.
2007-11-29 Anders Carlsson <andersca@apple.com>
Reviewed by Sam.
Don't install event handlers or set the zoom cursor if auto-shrink has been disabled.
* loader/ImageDocument.cpp:
(WebCore::ImageDocument::createDocumentStructure):
(WebCore::ImageDocument::imageChanged):
2007-11-29 Beth Dakin <bdakin@apple.com>
Reviewed by Geoff.
Fix for <rdar://problem/5620151> Disable JavaScript for SVG as
image for <img> and CSS images
* platform/graphics/svg/SVGImage.cpp:
(WebCore::SVGImage::dataChanged): When we create the empty clients,
explicitly disable JavaScript in the settings.
2007-11-29 Brady Eidson <beidson@apple.com>
Reviewed by Anders
Support for <rdar://problem/5556381> and <rdar://problem/5556379>
The Database feature in the engine needs to support delegate calls for policy decisions and
also provide notifications when origins and databases change their state.
This patch also polishes off the missing features of the management API
* page/Chrome.cpp: Implement the two UIDelegate methods
(WebCore::Chrome::requestQuotaIncreaseForNewDatabase): Ask for more space to create a new database if it won't fit
(WebCore::Chrome::requestQuotaIncreaseForDatabaseOperation): Ask for more space to complete an in-progress operation
* page/Chrome.h:
* page/ChromeClient.h:
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyChromeClient::requestQuotaIncreaseForNewDatabase):
(WebCore::SVGEmptyChromeClient::requestQuotaIncreaseForDatabaseOperation):
* storage/Database.cpp:
(WebCore::Database::openDatabase): Check to see if this database can be opened - the quota must be high
enough and if it isn't, the UIDelegate should have a change to bump the quota.
Also update the UI-relevant details (display name and estimated size) upon successful opening of the database
* storage/DatabaseDetails.h: Remove the version parameter as it is a programatic detail of a
site database and is not important to API clients
(WebCore::DatabaseDetails::DatabaseDetails):
(WebCore::DatabaseDetails::isValid):
(WebCore::DatabaseDetails::name):
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::openTrackerDatabase): Tweaked the schema here - there was a horrible bug with the old schema that would
prevent you from having two databases of the same name from two different origins. Also simplify the origin-management schema
(WebCore::DatabaseTracker::canEstablishDatabase): Added. Does some estimated size vs quota checks, and asks the UI delegate for
more space if necessary
(WebCore::DatabaseTracker::hasEntryForOrigin):
(WebCore::DatabaseTracker::establishEntryForOrigin): Establishes a tracker entry for the given origin with the current default quota
Also notifies the client of the new origin
(WebCore::DatabaseTracker::setDatabaseDetails): Update the display name and estimated size for the given database
(WebCore::DatabaseTracker::fullPathForDatabase): Tweak to add the ability to get the path without creating it - for management purposes
(WebCore::DatabaseTracker::populateOrigins): Populate origins from the Origins table instead of the Databases table
(WebCore::DatabaseTracker::origins):
(WebCore::DatabaseTracker::detailsForNameAndOrigin): For API management
(WebCore::DatabaseTracker::usageForDatabase):
(WebCore::DatabaseTracker::usageForOrigin):
(WebCore::DatabaseTracker::quotaForOrigin):
(WebCore::DatabaseTracker::setQuota): Notify the client
(WebCore::DatabaseTracker::addDatabase): Notify the client
(WebCore::DatabaseTracker::deleteAllDatabases):
(WebCore::DatabaseTracker::deleteDatabasesWithOrigin):
(WebCore::DatabaseTracker::deleteDatabase):
(WebCore::DatabaseTracker::deleteDatabaseFile):
* storage/DatabaseTracker.h:
2007-11-29 Dan Bernstein <mitz@apple.com>
Reviewed by Beth Dakin and Darin Adler.
- manual test for <rdar://problem/5346394> Contextmenu event doesn't fire on body element inside frame
* manual-tests/context-click-unfocused-frame.html: Added.
2007-11-28 Antti Koivisto <antti@apple.com>
Reviewed by Geoff.
Fallback content inside media elements should not be rendered.
Test: media/fallback.html
* rendering/RenderMedia.h:
(WebCore::RenderMedia::canHaveChildren):
2007-11-28 Mark Rowe <mrowe@apple.com>
Windows build fix.
* WebCore.vcproj/WebCore.vcproj:
2007-11-28 Mark Rowe <mrowe@apple.com>
Gtk build fix.
* WebCore.pro:
2007-11-28 Antti Koivisto <antti@apple.com>
Reviewed by Oliver.
Make QTMovieView fill color transparent. This behavior matches the specification
(and allows nice alpha blended video).
* platform/graphics/mac/MoviePrivateQTKit.mm:
(WebCore::MoviePrivate::createQTMovieView):
2007-11-28 Antti Koivisto <antti@apple.com>
Reviewed by Darin.
Test: media/video-controls.html
<rdar://problem/5605668>
Implement controls attribute for video element
- Add RenderMedia and make RenderVideo its subclass. Controls code goes to RenderMedia while
video specific (painting etc) code stays in RenderVideo. For example audio controls can be implemented
later by just instantiating RenderMedia as renderer.
- Make media renderer hierarchy inherit from RenderBlock instead of RenderReplaced so it can
have child nodes (for controls).
- Controls are implemented as a shadow DOM.
- Current look is a placeholder. It is defined purely in CSS.
- Some things like volume controls are not yet implemented.
- Fade-in/out is done manually, CSS animations don't work well in shadow trees.
* WebCore.xcodeproj/project.pbxproj:
* css/html4.css:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::attributeChanged):
(WebCore::HTMLMediaElement::updateMovie):
(WebCore::HTMLMediaElement::defaultEventHandler):
* html/HTMLMediaElement.h:
* rendering/RenderMedia.cpp: Added.
(WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement):
(WebCore::MediaControlShadowRootElement::isShadowNode):
(WebCore::MediaControlShadowRootElement::shadowParentNode):
(WebCore::MediaControlInputElement::MediaControlInputElement):
(WebCore::MediaControlInputElement::attachToParent):
(WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement):
(WebCore::MediaControlPlayButtonElement::inPausedState):
(WebCore::MediaControlPlayButtonElement::defaultEventHandler):
(WebCore::MediaControlPlayButtonElement::update):
(WebCore::MediaControlTimelineElement::MediaControlTimelineElement):
(WebCore::MediaControlTimelineElement::defaultEventHandler):
(WebCore::MediaControlTimelineElement::update):
(WebCore::RenderMedia::RenderMedia):
(WebCore::RenderMedia::~RenderMedia):
(WebCore::RenderMedia::mediaElement):
(WebCore::RenderMedia::movie):
(WebCore::RenderMedia::setStyle):
(WebCore::RenderMedia::createControlsShadowRoot):
(WebCore::RenderMedia::createPanel):
(WebCore::RenderMedia::createPlayButton):
(WebCore::RenderMedia::createTimeline):
(WebCore::RenderMedia::createTimeDisplay):
(WebCore::RenderMedia::updateFromElement):
(WebCore::RenderMedia::updateControls):
(WebCore::RenderMedia::timeUpdateTimerFired):
(WebCore::RenderMedia::updateTimeDisplay):
(WebCore::RenderMedia::updateControlVisibility):
(WebCore::RenderMedia::changeOpacity):
(WebCore::RenderMedia::opacityAnimationTimerFired):
(WebCore::RenderMedia::forwardEvent):
* rendering/RenderMedia.h: Added.
(WebCore::RenderMedia::renderName):
(WebCore::RenderMedia::isMedia):
(WebCore::RenderMedia::intrinsicSize):
* rendering/RenderObject.h:
(WebCore::RenderObject::isMedia):
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::RenderVideo):
(WebCore::RenderVideo::videoSizeChanged):
(WebCore::RenderVideo::paintObject):
(WebCore::RenderVideo::layout):
(WebCore::RenderVideo::updateFromElement):
(WebCore::RenderVideo::calcAspectRatioWidth):
(WebCore::RenderVideo::calcAspectRatioHeight):
* rendering/RenderVideo.h:
2007-11-28 Justin Garcia <justin.garcia@apple.com>
Reviewed by Darin Adler.
<rdar://problem/5573879> GMail Beta: Crash in when undoing Remove Formating
In the new beta, Google has added some custom code on top of our RemoveFormat
to work around a bug where fully selected lists aren't removed. This code corrupts
the undo stack and causes crashes. This change fixes two problems with RemoveFormat
so that Google doesn't have to have any custom code. After checking this in I'll
work on bulletproofing the undo stack
* WebCore.xcodeproj/project.pbxproj:
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::insertLineBreak): Added this convenience method.
(WebCore::CompositeEditCommand::inputText): Added code to select all inserted text, not
just the last paragraph. Added code to support an input string with '\n's.
* editing/CompositeEditCommand.h:
* editing/Editor.cpp:
(WebCore::Editor::removeFormattingAndStyle): Moved code to its own EditCommand.
* editing/RemoveFormatCommand.cpp: Added. Moved code from removeFormattingAndStyle here.
(WebCore::RemoveFormatCommand::RemoveFormatCommand):
(WebCore::RemoveFormatCommand::doApply): Added code to remove fully selected lists.
* editing/RemoveFormatCommand.h: Added.
(WebCore::RemoveFormatCommand::editingAction):
2007-11-28 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt.
- fix <rdar://problem/5612459> CrashTracer: [REGRESSION] 61 crashes in Safari at com.apple.WebCore: WebCore::AutoTableLayout::layout + 2046
Test: fast/table/empty-auto-column-zero-divide.html
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::recalcColumn):
(WebCore::AutoTableLayout::fullRecalc):
(WebCore::AutoTableLayout::calcEffectiveWidth):
(WebCore::AutoTableLayout::layout): When distributing the remaining
width among columns, skip those whose effective (rather than
specified) width is auto and contain only empty cells.
2007-11-28 Peter Kasting <zerodpx@gmail.com>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=16169
GIF decoder needs to set hasAlpha() correctly on subsequent frames.
This also removes the workaround for this problem in
ImageSourceCairo.cpp.
* platform/graphics/cairo/ImageSourceCairo.cpp:
(WebCore::ImageSource::frameHasAlphaAtIndex):
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::initFrameBuffer):
2007-11-28 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler and Adam Roben.
- <rdar://problem/5057218> Reenable "recent searches" search field menu when menu is fully implemented
* platform/win/SearchPopupMenuWin.cpp:
(WebCore::SearchPopupMenu::enabled): Changed to return true.
(WebCore::autosaveKey): Added. Returns a preferences key for the
autosave name by prefixing it with "com.apple.WebKit.searchField:".
(WebCore::SearchPopupMenu::saveRecentSearches): Implemented.
(WebCore::SearchPopupMenu::loadRecentSearches): Implemented.
2007-11-28 Alp Toker <alp@atoker.com>
Reviewed by Mark Rowe.
http://bugs.webkit.org/show_bug.cgi?id=15689
[GTK] Background of loading images is always black
frameHasAlphaAtIndex() exists only to allow optimization for cases we
are certain the image can be blitted rather than composited.
Thus we need to be conservative, returning false only when we are
absolutely certain there is no need for composited copying, and true
otherwise.
CG doesn't even bother with this optimization at all and always
returns true.
Patch includes a workaround for
http://bugs.webkit.org/show_bug.cgi?id=16169
GIF ImageDecoder hasAlpha() return value incorrect
* platform/graphics/cairo/ImageSourceCairo.cpp:
(WebCore::ImageSource::frameHasAlphaAtIndex):
2007-11-27 Alp Toker <alp@atoker.com>
Reviewed by Mark Rowe.
Install the JavaScriptCore headers as part of the GTK+ port.
* WebCore.pro:
2007-11-27 Beth Dakin <bdakin@apple.com>
Reviewed by Oliver.
Fix for <rdar://problem/5616052> SVGs with width or height of 100%
hang when used as a background-image (16164)
* platform/graphics/svg/SVGImage.cpp:
(WebCore::SVGImage::size): Use valueAsPercentage() for percents
instead of valueInSpecifiedUnits(). valueInSpecifiedUnits()
returns, for example, 50 for 50%, so multiplying percentages by the
default size of 300 x 150 led to ridiculously huge dimensions for
SVG images, and the subsequent hang.
2007-11-27 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Adam.
Set haveRegisteredWindowClass when we register the window class.
* plugins/win/PluginViewWin.cpp:
(WebCore::registerPluginView):
2007-11-27 Timothy Hatcher <timothy@apple.com>
Reviewed by Sam Weinig.
Bug 16165: Dragging the inspector toolbar should move the window
http://bugs.webkit.org/show_bug.cgi?id=16165
* page/inspector/DocumentPanel.js: Call the new drag functions, and cleanup code.
* page/inspector/inspector.css: Only make the toolbar transparent in detached mode.
* page/inspector/inspector.js: Call the new drag functions, and cleanup code. Add
toolbar drag functions that move the window.
2007-11-27 Antti Koivisto <antti@apple.com>
Reviewed by Mitz.
Small changes to make RenderSlider a bit more generic so it can be used in video controls.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::defaultEventHandler): Fix coordinates with forwarded events.
* rendering/RenderSlider.cpp:
(WebCore::HTMLSliderThumbElement::defaultEventHandler): Fix coordinates with forwarded events.
(WebCore::RenderSlider::setStyle):
(WebCore::RenderSlider::createThumbStyle): Copy thumb left and top from the orginal style so position does not reset.
(WebCore::RenderSlider::mouseEventIsInThumb): Make this work with forwarded events.
* rendering/RenderSlider.h:
2007-11-27 Antti Koivisto <antti@apple.com>
Reviewed by Darin.
- Don't use hasPseudoId() optimization for pseudo styles used in shadow trees. These styles
generally exist when asked for so the optimization does not do much. This reverses the continuing
growth of the _pseudoBits bitfield in RenderStyle.
- Add some pseudo elements for media controls
* css/CSSSelector.cpp:
(WebCore::CSSSelector::extractPseudoType):
* css/CSSSelector.h:
(WebCore::CSSSelector::):
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::matchRulesForList):
(WebCore::CSSStyleSelector::checkOneSelector):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::getPseudoStyle):
* rendering/RenderStyle.cpp:
(WebCore::pseudoBit):
(WebCore::RenderStyle::hasPseudoStyle):
(WebCore::RenderStyle::setHasPseudoStyle):
* rendering/RenderStyle.h:
(WebCore::RenderStyle::):
2007-11-27 Timothy Hatcher <timothy@apple.com>
Reviewed by Kevin McCullough.
Bug 16161: window.moveBy(0, 0) moves the window by -22px vertically
http://bugs.webkit.org/show_bug.cgi?id=16161
Removed the "Adjust the window rect to be in the coordinate space of
the screen rect" step which was always adding (0,22) to the window
position (on the main screen). Instead, account for screen X and Y
in the bottom and right constrain step.
Added more test cases to: fast/dom/Window/window-resize.html
* bindings/js/kjs_window.cpp:
(KJS::adjustWindowRect):
2007-11-27 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam Roben.
* page/inspector/inspector.css: Make the text in the Network
panel legend more readable.
2007-11-27 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam Roben.
Don't call setNeedsReapplyStylesInAllFrames if the
authorAndUserStylesEnabled setting didn't change.
* page/Settings.cpp:
(WebCore::Settings::setAuthorAndUserStylesEnabled):
2007-11-27 Alp Toker <alp@atoker.com>
Fix potential broken build due to a missing DEPENDPATH.
* WebCore.pro:
2007-11-26 Timothy Hatcher <timothy@apple.com>
Reviewed by Dave Hyatt.
<rdar://problem/5569233> Add the ability to disable author and user CSS styles
* WebCore.base.exp: Add the Settings::setAuthorAndUserStylesEnabled symbol.
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::CSSStyleSelector): Add a new matchAuthorAndUserStyles parameter.
(WebCore::CSSStyleSelector::styleForElement): Check m_matchAuthorAndUserStyles before
matching user and author rules.
(WebCore::CSSStyleSelector::pseudoStyleForElement): Ditto.
(WebCore::CSSStyleSelector::styleRulesForElement): Ditto.
* css/CSSStyleSelector.h: Add m_matchAuthorAndUserStyles and new constructor parameter.
* dom/Document.cpp:
(WebCore::Document::Document): Pass Settings::authorAndUserStylesEnabled to the CSSStyleSelector.
(WebCore::Document::recalcStyleSelector): Skip collecting the author stylesheets if
Settings::authorAndUserStylesEnabled is false, and pass that to the CSSStyleSelector.
* page/Settings.cpp:
(WebCore::Settings::Settings): Initialize m_authorAndUserStylesEnabled to true.
(WebCore::Settings::setAuthorAndUserStylesEnabled): Recalc style in all the frames
when the setting changes.
* page/Settings.h: Add m_authorAndUserStylesEnabled.
(WebCore::Settings::authorAndUserStylesEnabled): Return m_authorAndUserStylesEnabled.
2007-11-27 Alp Toker <alp@atoker.com>
Reviewed by Mark Rowe.
Based on changes by Mike Emmel.
CURL HTTP backend local file fixes:
Set a MIME type for local files based on the file extension.
Remove any HTTP query part sent to a local file.
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::ResourceHandleManager::startJob):
2007-11-26 Brady Eidson <beidson@apple.com>
Reviewed by Mark Rowe
Allow setting the default storage quota per database origin
* WebCore.base.exp:
* page/Settings.cpp:
(WebCore::Settings::setDefaultDatabaseOriginQuota):
(WebCore::Settings::defaultDatabaseOriginQuota):
* page/Settings.h:
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::DatabaseTracker):
(WebCore::DatabaseTracker::setDefaultOriginQuota):
(WebCore::DatabaseTracker::defaultOriginQuota):
* storage/DatabaseTracker.h:
2007-11-26 Peter Kasting <zerodpx@gmail.com>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=15974
GIF decoding should respect frames' specified disposal methods.
* platform/image-decoders/ImageDecoder.h:
(WebCore::RGBA32Buffer::):
(WebCore::RGBA32Buffer::RGBA32Buffer):
(WebCore::RGBA32Buffer::disposalMethod):
(WebCore::RGBA32Buffer::setDisposalMethod):
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::frameBufferAtIndex):
(WebCore::GIFImageDecoder::initFrameBuffer):
(WebCore::GIFImageDecoder::prepEmptyFrameBuffer):
(WebCore::GIFImageDecoder::haveDecodedRow):
(WebCore::GIFImageDecoder::frameComplete):
* platform/image-decoders/gif/GIFImageDecoder.h:
* platform/image-decoders/gif/GIFImageReader.cpp:
(GIFImageReader::read):
* platform/image-decoders/gif/GIFImageReader.h:
(GIFFrameReader::GIFFrameReader):
2007-11-26 Adam Roben <aroben@apple.com>
Add a Color(CGColorRef) constructor
Reviewed by Darin.
* platform/graphics/Color.h:
* platform/graphics/cg/ColorCG.cpp:
(WebCore::Color::Color): Added.
2007-11-26 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Update to last change. Moved addPendingSheet call to within nil check for m_cachedSheet.
* page/Frame.cpp:
(WebCore::UserStyleSheetLoader::UserStyleSheetLoader):
2007-11-26 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Fix for <rdar://problem/5591583> CrashTracer: [USER] 157 in Mail crashes at -[WebCoreFrameBridge reapplyStylesForDeviceType:]
* page/Frame.cpp: Add nil checks since every other caller of requestCSSStyleSheet checks for nil.
(WebCore::UserStyleSheetLoader::UserStyleSheetLoader):
(WebCore::UserStyleSheetLoader::~UserStyleSheetLoader):
2007-11-26 Mark Rowe <mrowe@apple.com>
GCC 4.2 build fix.
* xml/XSLTUnicodeSort.cpp: Add another WTF_ATTRIBUTE_PRINTF.
2007-11-26 Feng Qian <ian.eng.webkit@gmail.com>
Reviewed and touched up by Sam Weinig.
Fix for http://bugs.webkit.org/show_bug.cgi?id=16073
Test: http/tests/security/xss-DENIED-invalid-domain-change.html
* dom/Document.cpp:
(WebCore::Document::setDomain): Don't set the securityOrigin policy unless
the set succeeds. Adds some early returns as well.
2007-11-26 Steve Falkenburg <sfalken@apple.com>
Build fix.
* WebCore.vcproj/WebCore.make:
* WebCore.vcproj/migrate-idls.sh:
2007-11-26 Sam Weinig <sam@webkit.org>
Fix potential null-dereference.
Reviewed by Adam Roben.
* page/FrameTree.cpp:
(WebCore::FrameTree::isDescendantOf):
2007-11-26 Sam Weinig <sam@webkit.org>
Reviewed by Darin.
Fix for <rdar://problem/5592988>
- Enforce tighter restrictions on what frames in other domains
can be navigated.
Tests: http/tests/security/frameNavigation/xss-ALLOWED-parent-navigation-change.html
http/tests/security/frameNavigation/xss-ALLOWED-targeted-subframe-navigation-change.html
* bindings/js/kjs_window.cpp:
(KJS::Window::put):
(KJS::Location::put):
(KJS::LocationProtoFuncReplace::callAsFunction):
(KJS::LocationProtoFuncAssign::callAsFunction):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::createWindow):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::shouldAllowNavigation): Move and update logic from canTarget().
* loader/FrameLoader.h:
* page/FrameTree.cpp:
(WebCore::FrameTree::isDescendantOf): Make this O(1) in the case when both frames are not
in the same page.
2007-11-26 Steve Falkenburg <sfalken@apple.com>
Build fix.
* WebCore.vcproj/migrate-idls.sh:
2007-11-26 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt.
- fix <rdar://problem/5609337> Making a float shorter does not remove it from the floating object list of a nested block it intruded into
Test: fast/dynamic/float-withdrawal-2.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlockChildren): When a float may have
been withdrawn from a child, mark all descendants if necessary and not
just the child.
2007-11-26 Steve Falkenburg <sfalken@apple.com>
Build fix.
* WebCore.vcproj/MigrateIDLAndScripts: Copied from WebCore.vcproj/MigrateIDLAndScripts.make.
* WebCore.vcproj/MigrateIDLAndScripts.make: Removed.
* WebCore.vcproj/migrate-idls.sh:
2007-11-26 Brady Eidson <beidson@apple.com>
Reviewed by Anders (and typo lovingly found by Adam)
Change Databases to be stored in a per-origin directory hierarchy - this will make
storage quotas much easier to enforce
* platform/SecurityOriginData.cpp:
(WebCore::SecurityOriginData::SecurityOriginData): Parse string based on '_' instead of ':'
(WebCore::SecurityOriginData::stringIdentifier): Change to use '_' as a separator instead of ':'.
'_' still works due to not being allowed in domain names, but also is a valid filename character '
on all filesystems we care about
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::fullPathForDatabase): Create a per-origin directory hierarchy to categorize
databases by origin
2007-11-26 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam Roben.
Bug 16137: Web Inspector window on Leopard should have a unified toolbar and window title
http://bugs.webkit.org/show_bug.cgi?id=16137
On Leopard the toolbar background will be transparent, to allow the
window background to show through the transparent WebView. The
search results divs needed to move inside the "main" div, so they
would be clipped and not show where the toolbar is.
* page/InspectorController.cpp:
(WebCore::platform): Return a string for which platform we are.
(WebCore::InspectorController::windowScriptObjectAvailable):
Define the platform function on the JavaScript class.
* page/inspector/Panel.js: Add panels to the panels div.
* page/inspector/inspector.css: On the Leopard platform make
the toolbar background transparent so the window background shows.
* page/inspector/inspector.html: Add a panels div and move search
result divs inside the main div.
* page/inspector/inspector.js: Tweak the resize code to acount for
the search results divs moving inside the main div.
2007-11-25 Rodney Dawes <dobey@wayofthemonkey.com>
Reviewed by Maciej Stachowiak.
Remove the unneeded CFNETWORK #ifdefs.
* loader/NetscapePlugInStreamLoader.h:
2007-11-24 Laszlo Gombos <laszlo.gombos@gmail.com>
Reviewed by Sam Weinig.
Add printf format attribute to several functions. Use the the new WTF_ATTRIBUTE_PRINTF define.
* dom/XMLTokenizer.cpp:
* dom/XMLTokenizer.h:
* platform/DeprecatedString.h:
* platform/PlatformString.h:
2007-11-25 Dan Bernstein <mitz@apple.com>
Reviewed by Adam Roben.
- fix off-center error images
Covered by many pixel tests with missing images
* rendering/RenderImage.cpp:
(WebCore::RenderImage::paint): Account for the 1 pixel outline when
positioning the error image.
2007-11-25 Kevin Ollivier <kevino@theolliviers.com>
wx build fix. Fix filename case for case-sensitive filesystems.
* WebCoreSources.bkl:
2007-11-22 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Adam Roben.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=15564
Fix problems with hidden glyphs. They were taken into account for quite
some operations (hit testing, length calulcations etc..) except painting.
Especially fixes boundaries of <textPath> (see using Web Inspector) if
text-anchor isn't equal to 'start'.
Added testcase:
svg/text/textPathBoundsBug.svg
Fixed testcase: (all showed text selection problems on text paths)
svg/batik/text/textGlyphOrientationHorizontal.svg
svg/batik/text/textOnPath.svg
svg/batik/text/textOnPath3.svg
svg/batik/text/verticalTextOnPath.svg
svg/text/text-align-04-b.svg
svg/W3C-SVG-1.1/text-align-04-b.svg
* rendering/SVGCharacterLayoutInfo.cpp:
(WebCore::SVGChar::isHidden):
* rendering/SVGCharacterLayoutInfo.h:
(WebCore::SVGCharOnPath::SVGCharOnPath):
* rendering/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::chunkPortionCallback):
(WebCore::SVGInlineTextBoxSelectionRectWalker::chunkPortionCallback):
* rendering/SVGRootInlineBox.cpp:
(WebCore::topLeftPositionOfCharacterRange):
(WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
(WebCore::cummulatedWidthOrHeightOfTextChunk):
(WebCore::applyTextAnchorToTextChunk):
(WebCore::applyTextLengthCorrectionToTextChunk):
(WebCore::SVGRootInlineBox::layoutInlineBoxes):
(WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
(WebCore::SVGRootInlineBox::buildTextChunks):
2007-11-25 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=15919
XSLTProcessor.transformToFragment creates an extra not defined TEXT_NODE at the end
Test: fast/xsl/extra-lf-at-end.html
* xml/XSLTProcessor.cpp:
(WebCore::writeToVector): Changed to use Vector to avoid slow String::apend().
(WebCore::saveResultToString): Remove trailing line feed if present.
2007-11-24 Mark Rowe <mrowe@apple.com>
Reviewed by Tim Hatcher.
Fix <rdar://problem/5432686> 333MB RPRVT seems to leak @ www.43folders.com (1hr plug-in stream).
http://bugs.webkit.org/show_bug.cgi?id=13705
Don't buffer the entire stream contents in memory in the ResourceLoader.
* loader/mac/NetscapePlugInStreamLoaderMac.mm:
(WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader):
(WebCore::NetscapePlugInStreamLoader::didFinishLoading):
* loader/mac/WebPlugInStreamLoaderDelegate.h:
2007-11-23 Adam Roben <aroben@apple.com>
Get rid of WebCoreSystemInterface on Windows
The one function defined in that file is now in WebKitSystemInterface.
Reviewed by Tim.
* WebCore.vcproj/WebCore.vcproj: Removed
WebCoreSystemInterface.{cpp,h}.
* platform/graphics/cg/ImageCG.cpp: Made #include of
WebCoreSystemInterface.h Mac-only.
* platform/win/GraphicsContextWin.cpp: Ditto.
* platform/win/WebCoreSystemInterface.cpp: Removed.
* platform/win/WebCoreSystemInterface.h: Removed.
2007-11-24 Adam Roben <aroben@apple.com>
Replace uses of %@ with %s in the inspector
Rubberstamped by Tim.
* English.lproj/InspectorLocalizedStrings.js: Changed %@ to %s.
* page/inspector/DatabasePanel.js: Ditto.
* page/inspector/StylesSidebarPane.js: Ditto.
* page/inspector/inspector.js: Ditto.
* page/inspector/utilities.js:
(String.vsprintf): Removed @ as a format specifier.
2007-11-24 Adam Roben <aroben@apple.com>
Windows build fix
Turn off the change made in r27984 on Windows for now.
* xml/XSLTProcessor.cpp:
(WebCore::XSLTProcessor::transformToString):
* xml/XSLTUnicodeSort.cpp:
2007-11-24 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam Roben.
Bug 16121: Web Inspector needs helper functions that pass a 'this' object to
addEventListener and setTimeout
http://bugs.webkit.org/show_bug.cgi?id=16121
Add Function.prototype.bind. This helper will return a wrapper function
that will call the original function with the supplied arguments
and using the supplied 'this' object.
* page/inspector/Database.js: Remove a use of setTimeout by
inheriting some common functions from Resource.
* page/inspector/DatabasePanel.js: Use the new bind function.
* page/inspector/ConsolePanel.js: Ditto.
* page/inspector/DocumentPanel.js: Ditto.
* page/inspector/NetworkPanel.js: Ditto.
* page/inspector/PropertiesSection.js: Ditto.
* page/inspector/Resource.js: Ditto.
* page/inspector/SidebarPane.js: Ditto.
* page/inspector/inspector.html: Moved Database.js after Resource.js,
now that Database.js uses it.
* page/inspector/inspector.js: Use the new bind function. Also
removed a setTimeout used for the localized strings code. There is
now a load event listener added to the localized strings script
element that will call WebInspector.loaded.
* page/inspector/utilities.js: Add Function.prototype.bind.
2007-11-24 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam Roben.
Bug 16112: Some Web Inspector UI elements use offsetWidth and offsetHeight before the stylesheet loads
http://bugs.webkit.org/show_bug.cgi?id=16112
In the places where we use offsetWidth and offsetHeight before
the stylesheet loads there is now a check. If the body's
offsetWidth is not greater than zero, then set a timeout
to do the updates requiring the stylesheet later.
The three places this happened:
- DOM tree selection highlight would show up at the wrong height
when using Inspect Element to open the inspector.
- DOM tree breadcrumbs would not collapse when using Inspect Element
to open the inspector.
- Network Timeline divider lines would not show when opening directly
into the timeline.
* page/inspector/DocumentPanel.js: Check if the stylesheet loaded.
* page/inspector/NetworkPanel.js: Ditto.
* page/inspector/inspector.html: Include the stylesheet before
any scripts, this will help get it loaded sooner.
2007-11-24 Kevin Ollivier <kevino@theolliviers.com>
Add wx implementation for pathGetFilename
Reviewed by David D. Kilzer.
* html/HTMLFormElement.cpp:
(WebCore::pathGetFilename):
2007-11-23 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam Roben.
Bug 16110: Clicking inside the resource headers in the network timeline collapses them
http://bugs.webkit.org/show_bug.cgi?id=16110
Toggle the resource headers only if the click happens on the
resource row, not within the headers area.
* WebCore.xcodeproj/project.pbxproj:
* page/inspector/NetworkPanel.js:
2007-11-23 Kevin Ollivier <kevino@theolliviers.com>
Win build fixes. CURL needs winsock, so don't disable it, and
include pthreads.h to get the threadsafe *_r functions.
Reviewed by Adam Roben.
* config.h:
* loader/FTPDirectoryDocument.cpp:
* loader/FTPDirectoryParser.cpp:
2007-11-23 Kevin Ollivier <kevino@theolliviers.com>
wx build fix. Move wx settings to project build settings,
remove some old settings that were masking a build problem,
and fix include ordering to ensure proper config.h and
unicode/utf8.h headers are used.
* webcore-base.bkl:
* webcore-wx.bkl:
2007-11-23 Simon Hausmann <hausmann@webkit.org>
Reviewed by George Staikos <staikos@kde.org>.
Another build fix specific to trunk (instead of the stable branch) to fix make clean (which the buildbots call).
* WebCore.pro:
2007-11-23 Alexey Proskuryakov <ap@webkit.org>
Not reviewed, trivial leak fix.
Fix xsltUnicodeSortFunction() memory leaks.
* xml/XSLTUnicodeSort.cpp:
(WebCore::xsltUnicodeSortFunction):
2007-11-23 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Maciej.
<rdar://problem/5539306> REGRESSION: redirect fails when subframe's document is opened but
not closed (affects digg.com)
Tests: fast/loader/meta-refresh-vs-open.html
fast/loader/redirect-with-open-subframe-2.html
fast/loader/redirect-with-open-subframe.html
http/tests/loading/onload-vs-immediate-refresh.pl
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::scheduleRedirection): Only check whether the load is complete for
HTTP redirects - JavaScript-initiated ones are effective immediately.
2007-11-23 Dan Bernstein <mitz@apple.com>
Reviewed by Alexey Proskuryakov.
- apply matrix transforms on the correct side of the transformation
matrix (not on the side where the vector is multiplied).
Test: fast/transforms/matrix-02.html
* rendering/RenderStyle.h:
(WebCore::MatrixTransformOperation::apply):
2007-11-23 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=16077
<rdar://problem/5609785> XSLT processor <xsl:sort> algorithm is incompatible with other
browser implementations
Test: fast/xsl/sort-unicode.xml
* xml/XSLTProcessor.cpp:
(WebCore::XSLTProcessor::transformToString): Set a custom sort function.
* xml/XSLTUnicodeSort.cpp: Added.
(init_xsltTransformError):
(xsltTransformError):
(WebCore::xsltUnicodeSortFunction):
* xml/XSLTUnicodeSort.h: Added.
ICU-based implementation of xsl:sort, using an example from libxslt distribution.
Only minimal coding style fixes to ease synchronization with upstream in the future.
* icu/unicode/ucol.h: Added.
* icu/unicode/uset.h: Added.
Taken from ICU 3.2
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
Added XSLTUnicodeSort.cpp.
2007-11-22 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=14977
Hixie's DOM Core performance test shows insert >10x slower than append
Each invocation of Element.childNodes[n] was creating and registering a new ChildNodeList,
which persisted and listened to notifications until GC.
A fix is to avoid registering child node lists for notifications - they don't need them, as
they share a common cache in Node.
* dom/Node.cpp:
(WebCore::Node::registerNodeList):
(WebCore::Node::unregisterNodeList):
(WebCore::Node::notifyLocalNodeListsAttributeChanged):
(WebCore::Node::notifyLocalNodeListsChildrenChanged):
* dom/NodeList.h:
(WebCore::NodeList::needsNotifications):
2007-11-22 Dan Bernstein <mitz@apple.com>
Reviewed by Antti Koivisto.
- fix http://bugs.webkit.org/show_bug.cgi?id=15811
WebKit plug-ins can re-enter WebKit under attach()
<rdar://problem/5577978>
Defer plug-in loading until after attach and recalcStyle using the
post-attach callback mechanism. Netscape plug-ins are still loaded only
after layout.
* dom/ContainerNode.cpp:
Made NodeCallbackQueue elements retain the Node because callbacks might
delete nodes that are in the callback queue.
(WebCore::ContainerNode::suspendPostAttachCallbacks): Added. Needed to
prevent post-attach callbacks from being dispatched under recalcStyle().
(WebCore::ContainerNode::resumePostAttachCallbacks): Ditto.
(WebCore::ContainerNode::dispatchPostAttachCallbacks): Factored out from
attach().
(WebCore::ContainerNode::attach):
* dom/ContainerNode.h:
* dom/Document.cpp:
(WebCore::Document::recalcStyle): Added calls to
suspendPostAttachCallbacks() and resumePostAttachCallbacks().
* html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::HTMLEmbedElement):
(WebCore::HTMLEmbedElement::attach): Changed to queue the widget update
for post-attach.
(WebCore::HTMLEmbedElement::updateWidget): Added. Called by the
post-attach callback.
* html/HTMLEmbedElement.h: Added an m_needWidgetUpdate member needed to
prevent a double update if another plug-in's post-attach updateWidget()
triggers a layout which updates the widget before this plug-in's
post-attach callback is invoked.
(WebCore::HTMLEmbedElement::setNeedWidgetUpdate): Added a setter for
m_needWidgetUpdate.
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::attach): Changed to queue the widget update
for post-attach.
(WebCore::HTMLObjectElement::updateWidget): Added. Called by the
post-attach callback.
* html/HTMLObjectElement.h:
(WebCore::HTMLObjectElement::setNeedWidgetUpdate): Added a setter for
m_needWidgetUpdate.
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::updateWidgetCallback): Added.
* html/HTMLPlugInElement.h:
(WebCore::HTMLPlugInElement::updateWidget):
* rendering/RenderPartObject.cpp:
(WebCore::RenderPartObject::updateWidget): Added calls to
setNeedWidgetUpdate(false) so that if this method is called from
FrameView::layout() during post-attach dispatch of another plug-in,
it will not be called again when this plug-in's post-attach callback
is dispatched.
* rendering/RenderPartObject.h:
(WebCore::RenderPartObject::updateWidget) Renamed argument to match
the method definition.
2007-11-22 Timothy Hatcher <timothy@apple.com>
Reviewed by Dan Bernstein.
Fix the Element.hasStyleClass and Element.removeStyleClass helpers
to not find and replace substrings, but whole class names at the
beginning or end of the string or surrounded by whitespace.
* page/inspector/utilities.js:
2007-11-22 Timothy Hatcher <timothy@apple.com>
Revert part of my r27935 change that made the Tip balloons
animate with CSS transitions. The balloon was only opacity 0,
so it would cause its row to highlight when hovering over
another row.
* page/inspector/NetworkPanel.js:
* page/inspector/inspector.css:
2007-11-22 Dan Bernstein <mitz@apple.com>
Reviewed by Maciej Stachowiak.
- fix http://bugs.webkit.org/show_bug.cgi?id=15943
-webkit-transform matrix does not work
Test: fast/transforms/matrix-01.html
Parse all six matrix entries as numbers.
* css/CSSParser.cpp:
(WebCore::TransformOperationInfo::TransformOperationInfo):
(WebCore::CSSParser::parseTransform):
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
* rendering/RenderStyle.cpp:
(WebCore::MatrixTransformOperation::blend):
* rendering/RenderStyle.h:
(WebCore::MatrixTransformOperation::MatrixTransformOperation):
(WebCore::MatrixTransformOperation::apply):
2007-11-22 Laszlo Gombos <laszlo.gombos@gmail.com>
Reviewed by Alp Toker.
Fix some compilation warnings. Do not reference undefined (platform) specific type (WebCore::CachedFont::m_fontData)
* loader/CachedFont.cpp:
(WebCore::CachedFont::~CachedFont):
(WebCore::CachedFont::allReferencesRemoved):
2007-11-22 Alp Toker <alp@atoker.com>
Reviewed by Mark Rowe.
GTK+ drawing fix.
Add a check to avoid crashing when the GraphicsContext is not
associated with a GdkEventExpose. This was noticed when adding
printing support but might be triggered in other situations too.
* platform/gtk/WidgetGtk.cpp:
(WebCore::Widget::paint):
2007-11-22 Julien Chaffraix <julien.chaffraix@gmail.com>
Reviewed by Alexey.
Bug 15530: XMLHttpRequest should not support certain methods
Test: http/tests/xmlhttprequest/xmlhttprequest-forbidden-methods-exception.html
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::open):
2007-11-22 Simon Hausmann <hausmann@kde.org>
Reviewed by George.
For the build inside Qt include qbase.pri and don't duplicate what qbase.pri otherwise does (install targets, etc.)
* WebCore.pro:
2007-11-22 Simon Hausmann <hausmann@kde.org>
Reviewed by George.
Don't set OBJECTS_DIR when building inside Qt
* WebCore.pro:
2007-11-22 Simon Hausmann <hausmann@kde.org>
Reviewed by George.
Use ../generated as path for the generated sources for builds inside Qt
* WebCore.pro:
2007-11-22 Simon Hausmann <hausmann@kde.org>
Reviewed by George.
Make the directory of where to put the generated sources configurable through the GENERATED_SOURCE_DIR variable
* WebCore.pro:
2007-11-22 Simon Hausmann <hausmann@kde.org>
Reviewed by George.
Centralize the setup for all the extra compilers in a addExtraCompiler function.
This allows adding a "generated_files" target that builds all generated files using "make generated_files".
For the build inside Qt we do not generate actual rules for the extra compilers but instead
do the variable substitution of compiler.output manually and add the generated sources to SOURCES.
* WebCore.pro:
2007-11-21 Timothy Hatcher <timothy@apple.com>
Reviewed by Eric Seidel.
Show Fonts as Yellow in the network timeline.
* page/inspector/NetworkPanel.js:
* page/inspector/inspector.css:
2007-11-21 Dan Bernstein <mitz@apple.com>
Reviewed by Eric Seidel.
- fix <rdar://problem/5607037> REGRESSION (r27351): Departure date does not repaint when changed on Google Maps public transit planner (16034)
Test: fast/repaint/subtree-root-skipped.html
* page/FrameView.cpp:
(WebCore::FrameViewPrivate::FrameViewPrivate): Initialize the layout
root to 0.
(WebCore::FrameView::layoutRoot): Changed to return a RenderObject
instead of a Node.
(WebCore::FrameView::layout): Changed for layout root being a renderer
rather than a DOM node. Also replaced clearing the repaint rects
set with asserting that it is empty if this is the top-level call to
layout(). If it is not, the set may contain rects from enclosing
layout() and those should not be removed.
(WebCore::FrameView::scheduleRelayout): Changed for layout root being
a renderer rather than a DOM node.
(WebCore::isObjectAncestorContainerOf): Added this helper function that
tests whether one object will be marked by calling
markContainingBlocksForLayout() on the other.
(WebCore::FrameView::scheduleRelayoutOfSubtree): Changed for layout
root being a renderer rather than a DOM node. Changed the check if new
and current layout roots are on the same path from the root to use
the subgraph of the render tree defined by container()hood instead of
the DOM tree and parenthood.
* page/FrameView.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::calcWidth): Changed for layout root being a
renderer rather than a DOM node.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::~RenderObject): Added an assertion that the
object being deleted is not currently the layout root.
(WebCore::RenderObject::scheduleRelayout): Changed for layout root being
a renderer rather than a DOM node.
2007-11-21 Mark Rowe <mrowe@apple.com>
Reviewed by Eric.
Fix WebCore to build without warnings under GCC 4.2.
* Configurations/Base.xcconfig:
* css/CSSRuleList.cpp:
(WebCore::CSSRuleList::deleteRule):
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::locateSharedStyle):
* html/HTMLParser.cpp:
(WebCore::HTMLParser::allowNestedRedundantTag):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::fillInlineSelectionGaps):
(WebCore::RenderBlock::fillBlockSelectionGaps):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::stackingContext):
(WebCore::RenderLayer::enclosingPositionedAncestor):
(WebCore::RenderLayer::transparentAncestor):
* rendering/RenderStyle.cpp:
(WebCore::BackgroundLayer::fillUnsetProperties):
(WebCore::Transition::fillUnsetProperties):
* rendering/RenderText.cpp:
(WebCore::RenderText::containsOnlyWhitespace):
* rendering/bidi.cpp:
(WebCore::RenderBlock::determineStartPosition):
2007-11-21 Alp Toker <alp@atoker.com>
Reviewed by Mark Rowe.
http://bugs.webkit.org/show_bug.cgi?id=16071
Curl backend handles EINTR incorrectly
Defer timers during select() to avoid interruption by timer signals.
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::ResourceHandleManager::downloadTimerCallback):
2007-11-21 Mark Rowe <mrowe@apple.com>
Reviewed by Tim Hatcher.
Changes due to <rdar://problem/5602936> Need to resolve new GCC 4.2 warnings
Update format strings to use format specifiers that match the argument types.
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::performURLImport):
(WebCore::IconDatabase::writeToDatabase):
* platform/mac/TextCodecMac.cpp:
(WebCore::TextCodecMac::decode):
* storage/Database.cpp:
(WebCore::Database::deliverAllPendingCallbacks):
2007-11-21 Xan Lopez <xan@gnome.org>
Reviewed by Alp Toker.
Clarify scroll event processing with a comment.
* platform/gtk/PlatformScrollBarGtk.cpp:
(gtkScrollEventCallback):
2007-11-21 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam Roben.
Bug 16085: Web Inspector's Network Timeline graph code clean up and misc. fixes
http://bugs.webkit.org/show_bug.cgi?id=16085
Changes include:
- Refactor the drawing code as nested functions instead of global functions.
- Compute the segment percentages only once per call to drawSummaryGraph.
- Account for percentages that rounded down to total less-than 100%.
- Draw the pill shadow better using the canvas shadow drawing properties.
- Removes a couple canvas context saves and restores.
* page/inspector/NetworkPanel.js:
2007-11-21 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Adam Roben.
http://bugs.webkit.org/show_bug.cgi?id=16056
Unicode not being interpreted correctly in Web Inspector source view
Cannot be tested automatically.
* loader/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::encoding):
* loader/CachedCSSStyleSheet.h:
* loader/CachedResource.h:
(WebCore::CachedResource::encoding):
* loader/CachedScript.cpp:
(WebCore::CachedScript::encoding):
* loader/CachedScript.h:
* loader/CachedXBLDocument.cpp:
(WebCore::CachedXBLDocument::encoding):
* loader/CachedXBLDocument.h:
* loader/CachedXSLStyleSheet.cpp:
(WebCore::CachedXSLStyleSheet::encoding):
* loader/CachedXSLStyleSheet.h:
Teach textual CachedResources to report their encodings.
* page/InspectorController.cpp:
(WebCore::addSourceToFrame):
(WebCore::updateResourceResponse):
Use the actual encoding - the network layer has little idea about it.
2007-11-20 Mark Rowe <mrowe@apple.com>
Reviewed by Maciej Stachowiak.
Fix <rdar://problem/5609579> (DOMParser().parseFromString() freezes Safari when parsing large nodes with XML entities)
http://bugs.webkit.org/show_bug.cgi?id=16076
XMLTokenizer was calling CharacterData::appendData twice per entity in the fragment of XML being
parsed (once for text before the entity, once for the entity itself). This triggered O(n^2) copying
of the CharacterData's string due to resizing. We now prevent this happening by buffering all the
content for a given Text node in the XMLTokenizer before sending it out to the node in a single go.
* dom/XMLTokenizer.cpp:
(WebCore::XMLTokenizer::characters): Append the characters to the buffer.
(WebCore::XMLTokenizer::endDocument): Ensure the buffer is flushed when the document has ended.
(WebCore::endDocumentHandler):
(WebCore::XMLTokenizer::enterText):
(WebCore::XMLTokenizer::exitText): Append the contents of the buffer to the node.
(WebCore::XMLTokenizer::initializeParserContext): Add the endDocument handler.
(WebCore::parseXMLDocumentFragment): Force endDocument to be called when parsing a fragment to ensure
that the buffer gets flushed to the node.
* dom/XMLTokenizer.h:
2007-11-20 Timothy Hatcher <timothy@apple.com>
Reviewed by Mark Rowe.
Animate the status area and tip balloons in the Web Inspector
with CSS animations.
* page/inspector/NetworkPanel.js:
* page/inspector/inspector.css:
* page/inspector/inspector.js:
2007-11-20 Kevin Ollivier <kevino@theolliviers.com>
wx build fix for Windows. Don't use WebCore/move-js-headers.sh as
it indiscriminately copies any headers inside JavaScriptCore,
which includes Tiger ICU headers.
* webcore-base.bkl:
Remove references to the WebCore/include dir generated by
move-js-headers.sh, and also get headers from JavaScriptCore
directly rather than from WebCore/ForwardingHeaders.
2007-11-20 Alp Toker <alp@atoker.com>
Reviewed by Mark Rowe.
Avoid pointlessly mallocing and freeing this transform matrix.
* platform/gtk/FontPlatformDataGtk.cpp:
(WebCore::FontPlatformData::FontPlatformData):
2007-11-20 Naiem Shaik <naiem.shaik@gmail.com>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=15763
[GTK] Enter key does not take to the link highlighted.
Add missing keycode cases.
* platform/gtk/KeyEventGtk.cpp:
(WebCore::keyIdentifierForGdkKeyCode):
(WebCore::windowsKeyCodeForKeyEvent):
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2007-11-20 Mark Rowe <mrowe@apple.com>
Reviewed by Sam Weinig.
Fix http://bugs.webkit.org/show_bug.cgi?id=16074
Bug 16074: execCommand("InsertHorizontalRule", false, "") results in id="" being inserted
For consistency with InsertOrderedList and InsertUnorderedList a value parameter of "" should
not result in an id being set.
* editing/JSEditor.cpp: Don't set the id attribute if value is empty.
2007-11-20 Dan Bernstein <mitz@apple.com>
Reviewed by Adam Roben.
- fix <rdar://problem/5090708> Textareas render broken-looking scrollbars when too short to show full scrollbar
* platform/win/PlatformScrollBar.h:
* platform/win/PlatformScrollBarSafari.cpp:
Added the "hit inset" constants (representing how far the track eats
into the button).
(WebCore::PlatformScrollbar::paint): Changed to paint the buttons and
the thumb only if they should be showing.
(WebCore::PlatformScrollbar::hasButtons): Added. Returns whether the
arrows should be drawn.
(WebCore::PlatformScrollbar::hasThumb): Added. Returns whether the thumb
should be drawn.
(WebCore::PlatformScrollbar::forwardButtonRect):
(WebCore::PlatformScrollbar::trackRect): Changed to return the entire
bounds of the scrollbar if the scrollbar has no buttons.
(WebCore::PlatformScrollbar::paintTrack): Changed to paint a disabled
track along the entire scrollbar if it has not buttons.
(WebCore::PlatformScrollbar::hitTest): Changed to hit test only the
parts that the scrollbar has in its current dimensions.
2007-11-20 Mark Rowe <mrowe@apple.com>
Reviewed by Alp Toker.
* config.h: Change #if to #ifdef to silence warnings on non-Apple platforms.
2007-11-20 Simon Hausmann <hausmann@kde.org>
Reviewed by Adam Treat <treat@kde.org>.
Remove static linkage of QtWebKit against the ICO image format plugin.
Instead build the support for the ICO image format as a proper standalone qt image format plugin and install it.
* WebCore.pro:
* platform/graphics/qt/ImageDecoderQt.cpp:
2007-11-20 David D. Kilzer <ddkilzer@webkit.org>
no-svg build broken after r27278
<http://bugs.webkit.org/show_bug.cgi?id=16061>
Reviewed by Eric.
* bindings/scripts/CodeGeneratorObjC.pm: Always generate DOMHTMLEmbedElementPrivate.h
and DOMHTMLObjectElementPrivate.h for no-svg build.
2007-11-20 Adam Treat <treat@kde.org>
Reviewed by Simon.
* Don't use so much heap memory.
* platform/graphics/qt/ImageDecoderQt.cpp:
* platform/graphics/qt/ImageDecoderQt.h:
* platform/graphics/qt/ImageSourceQt.cpp:
(WebCore::ImageSource::createFrameAtIndex):
2007-11-20 Lars Knoll <lars@trolltech.com>
Reviewed by Simon.
Fix text break interators.
The break iterators where trying to be smart about the input
string and caching their results. Unfortunately a pointer/string length
comparison is not good enough in all cases (since some input is stack based
temp strings). Removed the caching but at the same time started to use a more
efficient constructor of QTextBoundaryFinder that doesn't need to malloc for
most strings.
Fixes two test cases that test "text-transform: capitalize".
* platform/qt/TextBreakIteratorQt.cpp:
(WebCore::wordBreakIterator):
(WebCore::characterBreakIterator):
(WebCore::lineBreakIterator):
(WebCore::sentenceBreakIterator):
2007-11-20 Adam Treat <treat@kde.org>
Reviewed by George.
* Make gif animations work for instance.
* platform/graphics/qt/ImageDecoderQt.cpp:
(WebCore::ImageDecoderQt::reset):
(WebCore::ImageDecoderQt::setData):
(WebCore::ImageDecoderQt::frameCount):
(WebCore::ImageDecoderQt::repetitionCount):
* platform/graphics/qt/ImageDecoderQt.h:
2007-11-20 Adam Treat <treat@kde.org>
* Build in release mode
* platform/NotImplemented.h:
2007-11-20 Adam Treat <treat@kde.org>
Reviewed by Simon and George.
* Be quiet and allow suppression of NotImplemented calls at runtime.
* platform/NotImplemented.h:
2007-11-19 Doug Turner <dougt@meer.net>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=16054
Crash when GlyphPage::fill is called with more than 256 bytes of data
http://bugs.webkit.org/show_bug.cgi?id=14446
[GDK] Crash on http://www.wikipedia.org/
setGlyphDataForIndex() uses a fixed array of size 256 which we can't
exceed. We need to return failure if the buffer has Unicode
supplementary characters for now.
This strategy matches the Win port, which also doesn't support this
case yet.
Add an assertion so nobody makes this mistake again.
* platform/GlyphPageTreeNode.h:
(WebCore::GlyphPage::setGlyphDataForIndex):
* platform/gtk/GlyphPageTreeNodeGtk.cpp:
(WebCore::GlyphPage::fill):
2007-11-19 Doug Turner <dougt@meer.net>
Reviewed by Timothy Hatcher.
http://bugs.webkit.org/show_bug.cgi?id=16050
sqlite3_prepare16_v2 build bustage.
Using the correct SQLITE_VERSION_NUMBER around sqlite_prepare16_v2
to fix build bustage.
* platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::prepare):
2007-11-19 Mark Rowe <mrowe@apple.com>
Build fix. Don't over-qualify the constructor name.
* storage/DatabaseDetails.h:
2007-11-19 Brady Eidson <beidson@apple.com>
Reviewed by Maciej
Stub out the WebCore parts of the WebKit API
* WebCore.base.exp:
* WebCore.xcodeproj/project.pbxproj:
* storage/DatabaseDetails.h: Added. Simple container for vitals on a specific database
(WebCore::DatabaseDetails::DatabaseDetails::DatabaseDetails):
(WebCore::DatabaseDetails::DatabaseDetails):
(WebCore::DatabaseDetails::isValid):
(WebCore::DatabaseDetails::name):
(WebCore::DatabaseDetails::version):
(WebCore::DatabaseDetails::displayName):
(WebCore::DatabaseDetails::expectedUsage):
(WebCore::DatabaseDetails::currentUsage):
* storage/DatabaseTracker.cpp: Added various methods for API usage
(WebCore::DatabaseTracker::detailsForNameAndOrigin):
(WebCore::DatabaseTracker::usageForOrigin):
(WebCore::DatabaseTracker::quotaForOrigin):
(WebCore::DatabaseTracker::setQuota):
* storage/DatabaseTracker.h:
2007-11-19 Kevin Ollivier <kevino@theolliviers.com>
wx port build fix.
* platform/graphics/wx/AffineTransformWx.cpp:
(WebCore::AffineTransform::operator== ):
m_transform is only available when using wxGraphicsContext.
2007-11-19 Alp Toker <alp@atoker.com>
Reviewed by Mark Rowe.
GTK+ drawing fixes.
Add a check to avoid crashing when the GraphicsContext is not
associated with a GdkDrawable. This was noticed when adding printing
support but might be triggered in other situations too.
Do not render themes when painting is disabled. This is an
optimisation for cases where GraphicsContext is used to calculate page
dimensions etc. without actually rendering.
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::gdkDrawable):
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::paintMozWidget):
2007-11-13 Rahul Abrol <ra5ul@comcast.net>
Reviewed by Tim Hatcher.
http://bugs.webkit.org/show_bug.cgi?id=15977
Resizing images preference now toggles default image state.
* loader/ImageDocument.cpp:
(WebCore::ImageDocument::ImageDocument):
(WebCore::ImageDocument::createDocumentStructure):
(WebCore::ImageDocument::imageChanged):
2007-11-19 Kevin Ollivier <kevino@theolliviers.com>
Update wx port build sources with recent changes, update
wx FontPlatformData to be a class (MSVC7 gets confused
otherwise...) and implement its hash() method.
Reviewed by Adam.
* WebCoreSources.bkl:
* platform/wx/FontPlatformData.h:
(WebCore::FontPlatformData::hash):
2007-11-19 Julien Chaffraix <julien.chaffraix@gmail.com>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12194
Bug 12194: Trying to access XMLHttpRequest.responseText or responseXML when they
are not available should raise an exception
Tests: http/tests/xmlhttprequest/xmlhttprequest-responseText-exception.html
http/tests/xmlhttprequest/xmlhttprequest-responseXML-exception.html
* bindings/js/JSXMLHttpRequest.cpp:
(KJS::JSXMLHttpRequest::getValueProperty):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::getResponseText):
(WebCore::XMLHttpRequest::getResponseXML):
* xml/XMLHttpRequest.h:
2007-11-19 Peter Kasting <zerodpx@gmail.com>
Reviewed by Darin Adler.
http://bugs.webkit.org/show_bug.cgi?id=15971
The GIF decoder should not fail decoding if the caller asks it to
decode again when no new data has arrived since the last call.
* platform/image-decoders/gif/GIFImageReader.cpp:
(GIFImageReader::read):
2007-11-18 Brady Eidson <beidson@apple.com>
Reviewed by Eric
Fix a crash hashing a default SecurityOriginData object
* storage/DatabaseTracker.cpp:
(WebCore::SecurityOriginDataHash::hash): The default object has some default strings with NULL
StringImpls - don't try to hash those!
2007-11-18 Timothy Hatcher <timothy@apple.com>
Reviewed by Sam Weinig.
Bug 16043: Remove InspectorController.log now that console.log works
http://bugs.webkit.org/show_bug.cgi?id=16043
Remove the last uses of InspectorController.log. Once use was no longer needed,
checking an erro case that can't happen anymore. The other case now uses console.error.
* page/InspectorController.cpp: Remove the log function.
(WebCore::InspectorController::windowScriptObjectAvailable): Remove the log function from
InspectorController script class.
* page/inspector/DocumentPanel.js: Remove a use of InspectorController.log that isn't needed.
* page/inspector/Panel.js: Change InspectorController.log to console.log and early return.
2007-11-18 Timothy Hatcher <timothy@apple.com>
Reviewed by Brady.
Bug 16041: REGRESSION: the Database panel in the Inspector stopped showing errors
http://bugs.webkit.org/show_bug.cgi?id=16041
* page/inspector/DatabasePanel.js: Implement error callbacks to pass to executeSql()
and transaction(). Refactored some code for the success and error callbacks to use.
2007-11-18 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Maciej.
<rdar://problem/5546393> Whitespace handling doesn't match HTML5.
HTML5 definition is the same as MSIE's, with the exception that the latter strips null
characters. Firefox also treats U+0008 as whitespace, but not U+000B or U+000C.
Test: fast/parser/html-whitespace.html
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::parseSpecial):
(WebCore::HTMLTokenizer::parseTag):
Use isASCIISpace, which matches HTML5 definition of whitespace, and also what we use to
check for whitespace almost everywhere.
2007-11-17 Mark Rowe <mrowe@apple.com>
Reviewed by Darin Adler.
Fix: <rdar://problem/5607032> REGRESSION: testapi exits with assertion failure in debug build
<rdar://problem/5440659> JSGlobalContextCreate throws away globalObjectClass's prototype
http://bugs.webkit.org/show_bug.cgi?id=16033
Update for changes in Interpreter method signatures.
* bindings/js/kjs_binding.cpp:
(KJS::ScriptInterpreter::ScriptInterpreter):
* bindings/js/kjs_window.cpp:
(KJS::Window::clear):
2007-11-17 Timothy Hatcher <timothy@apple.com>
Reviewed by Mark Rowe.
Bug 13470: i18n: The Web Inspector is not localizable
http://bugs.webkit.org/show_bug.cgi?id=13470
Add support for localization to the Web Inspector. Clients need to
implement localizedStringsURL() to return the URL of the
InspectorLocalizedStrings.js that best matches the user's language.
* English.lproj: Added.
* English.lproj/InspectorLocalizedStrings.js: Added.
* WebCore.xcodeproj/project.pbxproj: Add InspectorLocalizedStrings.js.
* page/InspectorClient.h: Add localizedStringsURL.
* page/InspectorController.cpp: Add localizedStringsURL that calls
the client. Also added a version exposed to JavaScript.
* page/InspectorController.h: Add localizedStringsURL.
* page/inspector/ConsolePanel.js: Call WebInspector.UIString
for user visible strings.
* page/inspector/DatabasePanel.js: Ditto.
* page/inspector/DocumentPanel.js: Ditto.
* page/inspector/ImagePanel.js: Ditto.
* page/inspector/MetricsSidebarPane.js: Ditto.
* page/inspector/NetworkPanel.js: Ditto.
* page/inspector/Panel.js: Ditto.
* page/inspector/PropertiesSidebarPane.js: Ditto.
* page/inspector/Resource.js: Ditto.
* page/inspector/ResourceCategory.js: Ditto.
* page/inspector/SourcePanel.js: Ditto.
* page/inspector/StylesSidebarPane.js: Ditto.
* page/inspector/inspector.css: Use pre-wrap so database errors can use \n.
* page/inspector/inspector.html: Remove some user visible strings.
* page/inspector/inspector.js: Added WebInspector.UIString and call
WebInspector.UIString for user visible strings. Some code needed to be
moved to WebInspector.loaded to use UIString after the localized strings
get loaded.
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::redirectDataToPlugin): Remove WebCore:: prefix.
(WebCore::SVGEmptyInspectorClient::createPage): Ditto.
(WebCore::SVGEmptyInspectorClient::localizedStringsURL): Add empty stub.
(WebCore::SVGEmptyInspectorClient::highlight): Remove WebCore:: prefix.
(WebCore::SVGEmptyInspectorClient::inspectedURLChanged): Ditto.
2007-11-17 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam.
Reworte String.sprintf to fix many bad bugs and to not use RegExp. Also added
String.vsprintf so it can be used later for the localization function.
This version only supports argument reordering, precision for floats, and these
format characters: d, f, s and @. Any unsupported format characters are logged
and substituted like strings.
* page/inspector/utilities.js:
2007-11-17 Alexey Proskuryakov <ap@webkit.org>
Windows build fix.
* editing/Editor.h: Made canSmartCopyOrDelete public, as Windows WebView still needs it.
2007-11-17 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=15969
Eliminate Editor::deleteRange()
No change in functionality.
* editing/CompositeEditCommand.h: Removed unimplemented deleteKeyPressed().
* editing/Editor.cpp:
(WebCore::Editor::deleteWithDirection):
(WebCore::Editor::cut):
(WebCore::Editor::performDelete):
* editing/Editor.h:
Moved relevant Editor::deleteRange() functionality to its callers.
Removed deleteSelectionWithSmartDelete(void), which was more confusing than helpful
in my opinion.
* editing/mac/EditorMac.mm:
(WebCore::initializeKillRingIfNeeded):
(WebCore::Editor::addToKillRing):
(WebCore::Editor::yank):
(WebCore::Editor::yankAndSelect):
(WebCore::Editor::setMark):
(WebCore::unionDOMRanges):
(WebCore::Editor::deleteToMark):
(WebCore::Editor::selectToMark):
(WebCore::Editor::swapWithMark):
Pushed kill ring handling down from WebCore.
* page/mac/WebCoreFrameBridge.h:
* page/mac/WebCoreFrameBridge.mm:
Removed setMarkDOMRange (the corresponding getter is still needed).
* WebCore.base.exp: No longer need to export Editor::deleteRange() and Editor::insertTextWithoutSendingTextEvent().
Export the new kill ring functions.
2007-11-16 Ryan Leavengood <leavengood@gmail.com>
Reviewed by David Kilzer.
Build fix: the needed headers for POSIX file functions were not
included.
* platform/posix/FileSystemPOSIX.cpp:
2007-11-16 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- fix the common case of <http://bugs.webkit.org/show_bug.cgi?id=15994>
REGRESSION: Incomplete repaint of CSS image substitution
Test: fast/repaint/clip-with-layout-delta.html
* rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState): Account for layout delta when
pushing additional clip.
2007-11-16 Antti Koivisto <antti@apple.com>
Reviewed by Adele.
Seeking related fixes, updates to match the latest specification
- rename loopCount of HTMLMediaElement to playCount
- add explicit seeking attribute to HTMLMediaElement to get semantics right
- implement the specification behavior that currentTime must immediately return seeked position in HTMLMediaElement
instead of MoviePrivateQTKit
- fix broken behavior when seeking past end of the media, add tests
- replace Movie didEnd callback with broader timeChanged callback (which gets called in didEnd case too)
- use setDelayCallbacks: in various MoviePrivateQTKit methods to avoid bug prone synchronous callbacks from QT, make
HTMLMediaElement not depend on synchronous callbacks
- do some cleanups and simplifications in MoviePrivateQTKit, get rid of m_rateBeforeSeek and m_blockStateUpdate variables
Tests: http/tests/media/video-seekable-stall.html
media/video-seeking.html
media/video-seek-past-end-paused.html
media/video-seek-past-end-playing.html
* html/HTMLAttributeNames.in:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::load):
(WebCore::HTMLMediaElement::movieNetworkStateChanged):
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::seek):
(WebCore::HTMLMediaElement::seeking):
(WebCore::HTMLMediaElement::currentTime):
(WebCore::HTMLMediaElement::ended):
(WebCore::HTMLMediaElement::play):
(WebCore::HTMLMediaElement::pause):
(WebCore::HTMLMediaElement::playCount):
(WebCore::HTMLMediaElement::setPlayCount):
(WebCore::HTMLMediaElement::checkIfSeekNeeded):
(WebCore::HTMLMediaElement::movieTimeChanged):
(WebCore::HTMLMediaElement::endedPlayback):
(WebCore::HTMLMediaElement::updateMovie):
* html/HTMLMediaElement.h:
* html/HTMLMediaElement.idl:
* platform/graphics/Movie.cpp:
(WebCore::Movie::timeChanged):
* platform/graphics/Movie.h:
(WebCore::MovieClient::movieTimeChanged):
* platform/graphics/mac/MoviePrivateQTKit.h:
* platform/graphics/mac/MoviePrivateQTKit.mm:
(WebCore::MoviePrivate::MoviePrivate):
(WebCore::MoviePrivate::load):
(WebCore::MoviePrivate::play):
(WebCore::MoviePrivate::pause):
(WebCore::MoviePrivate::currentTime):
(WebCore::MoviePrivate::seek):
(WebCore::MoviePrivate::doSeek):
(WebCore::MoviePrivate::cancelSeek):
(WebCore::MoviePrivate::seekTimerFired):
(WebCore::MoviePrivate::startCuePointTimerIfNeeded):
(WebCore::MoviePrivate::paused):
(WebCore::MoviePrivate::updateStates):
(WebCore::MoviePrivate::timeChanged):
(WebCore::MoviePrivate::didEnd):
2007-11-16 Anders Carlsson <andersca@apple.com>
Reviewed by Adam.
<rdar://problem/5603832>
XMLHttpRequest readyState 3 & responseText buffer issues.
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::makeFinalRequest):
Add new parameter which controls whether content sniffing should be turned off.
(WebCore::ResourceHandle::loadResourceSynchronously):
Always content sniff sync loads.
* platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::ResourceRequest::doUpdatePlatformRequest):
If the ResourceRequest already has a backing CFURLRequest, make a copy of it. This preserves
any properties set on the CFURLRequest.
2007-11-16 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Ollie.
<rdar://problem/5605175> Crash closing or leaving window with ViewPoint
Media player plugin
ViewPoint plugin requires that we pass a valid NPSavedData* to
NPP_Destroy.
* plugins/win/PluginViewWin.cpp: Pass a valid NPSavedData* to
NPP_Destroy. If the plugin allocates data, discard it
2007-11-16 Mark Rowe <mrowe@apple.com>
Reviewed by Tim Hatcher.
Build WebCore as a sub-framework of WebKit in all configurations.
* Configurations/WebCore.xcconfig:
* WebCore.xcodeproj/project.pbxproj:
2007-11-16 Doug Turner <dougt@meer.net>
Reviewed by Alp.
http://bugs.webkit.org/show_bug.cgi?id=16018
build bustage when building on debian 4.0
Fix build bustage on GTK+ with older versions of Pango.
Don't cache the return value since the docs say it can change.
* platform/gtk/Language.cpp:
(WebCore::defaultLanguage):
2007-11-16 Brady Eidson <beidson@apple.com>
Build fix
* platform/SecurityOriginData.h:
(WebCore::operator!=): Whoops!
2007-11-16 Brady Eidson <beidson@apple.com>
Reviewed by Sam
Further purify DatabaseTracker to use SecurityOriginData instead of "a String"
* WebCore.base.exp:
* WebCore.xcodeproj/project.pbxproj:
* WebCore.vcproj/WebCore.vcproj
* WebCore.pro
* platform/SecurityOriginData.cpp: Added.
(WebCore::SecurityOriginData::SecurityOriginData): Add a constructor that takes a "stringIdentifier"-style string,
since that form is what will be stored in the Databases.db on disk
(WebCore::SecurityOriginData::stringIdentifier):
* platform/SecurityOriginData.h:
(WebCore::SecurityOriginData::protocol):
(WebCore::SecurityOriginData::host):
(WebCore::SecurityOriginData::port):
* storage/DatabaseTracker.cpp:
(WebCore::SecurityOriginDataHash::hash): Follow the pattern Darin set in FontCache.cpp to make a decent hash for
a SecurityOriginData object
(WebCore::SecurityOriginDataHash::equal):
(WebCore::SecurityOriginDataTraits::deletedValue): "file::1" will never exist in normal operation
(WebCore::SecurityOriginDataTraits::emptyValue): "file::2" will never exist in normal operation
(WebCore::DatabaseTracker::fullPathForDatabase):
(WebCore::DatabaseTracker::populateOrigins):
(WebCore::DatabaseTracker::origins):
(WebCore::DatabaseTracker::addDatabase):
* storage/DatabaseTracker.h:
2007-11-16 Alexey Proskuryakov <ap@webkit.org>
Windows build fix.
* WebCore.vcproj/WebCore.vcproj: Removed VoidCallback.cpp, added JSCustomVoidCallback.{h,cpp}.
2007-11-16 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Eric.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=12290
Implement all SVGTextContentElement DOM methods.
This is the last missing SVG text feature. SVG fonts is next.
Added testcase: svg/custom/text-dom-01-f.svg (tests all new methods)
* ksvg2/svg/SVGTextContentElement.cpp:
(WebCore::cummulatedCharacterRangeLength):
(WebCore::SVGInlineTextBoxQueryWalker::):
(WebCore::SVGInlineTextBoxQueryWalker::SVGInlineTextBoxQueryWalker):
(WebCore::SVGInlineTextBoxQueryWalker::chunkPortionCallback):
(WebCore::SVGInlineTextBoxQueryWalker::setQueryInputParameters):
(WebCore::SVGInlineTextBoxQueryWalker::longResult):
(WebCore::SVGInlineTextBoxQueryWalker::floatResult):
(WebCore::SVGInlineTextBoxQueryWalker::pointResult):
(WebCore::SVGInlineTextBoxQueryWalker::rectResult):
(WebCore::SVGInlineTextBoxQueryWalker::stopProcessing):
(WebCore::findInlineTextBoxInTextChunks):
(WebCore::rootInlineBoxForTextContentElement):
(WebCore::executeTextQuery):
(WebCore::SVGTextContentElement::getNumberOfChars):
(WebCore::SVGTextContentElement::getComputedTextLength):
(WebCore::SVGTextContentElement::getSubStringLength):
(WebCore::SVGTextContentElement::getStartPositionOfChar):
(WebCore::SVGTextContentElement::getEndPositionOfChar):
(WebCore::SVGTextContentElement::getExtentOfChar):
(WebCore::SVGTextContentElement::getRotationOfChar):
(WebCore::SVGTextContentElement::getCharNumAtPosition):
(WebCore::SVGTextContentElement::selectSubString):
* ksvg2/svg/SVGTextContentElement.h:
* rendering/SVGInlineTextBox.h:
2007-11-15 Adele Peterson <adele@apple.com>
Reviewed by Oliver.
Fix for <rdar://problem/5566652> CrashTracer: [USER] 3 crashes in Safari at HTMLSelectElement::menuListDefaultEventHandler (reproducible on mactc30.com)
Test: fast/forms/menulist-no-renderer-onmousedown.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::defaultEventHandler): Nil check the renderer here. None of the default behavior makes sense if there's no renderer.
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler): Moved the nil check to the main defaultEventHandler.
2007-11-15 Antti Koivisto <antti@apple.com>
Reviewed by Adele.
Fix <rdar://problem/5601598>
The movie tag should do initialization on need and not during startup.
Initialize Movie MIME type hash on demand
* platform/MIMETypeRegistry.cpp:
(WebCore::initialiseSupportedMovieMIMETypes):
(WebCore::initialiseMIMETypeRegistry):
(WebCore::MIMETypeRegistry::isSupportedMovieMIMEType):
(WebCore::MIMETypeRegistry::getSupportedMovieMIMETypes):
2007-11-15 Mark Rowe <mrowe@apple.com>
Build fix for Qt on Windows.
* xml/XPathStep.cpp:
(WebCore::XPath::Step::nodesInAxis):
2007-11-15 Timothy Hatcher <timothy@apple.com>
Reviewed by Mark Rowe.
Bug 14761: Web Inspector leaks JS objects and DOM nodes
http://bugs.webkit.org/show_bug.cgi?id=14761
* page/InspectorController.cpp:
(WebCore::InspectorController::~InspectorController):
Change the tear down order so that inspectorDestroyed() is called before
InspectorController private data is set to Zero. The inspectorDestroyed()
call ends up closing the WebView and triggering InspectorController::close()
which unprotects m_scriptObject. This didn't happen when the private data
was cleared before calling inspectorDestroyed().
2007-11-15 Mark Rowe <mrowe@apple.com>
Gtk build fix.
* WebCore.pro:
2007-11-15 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=15989
XPath queries with predicates incorrectly retains the current node across unions
Test: fast/xpath/union-context-node.xhtml
* xml/XPathPath.cpp:
(WebCore::XPath::LocationPath::evaluate): Restore context after evaluation.
* xml/XPathStep.cpp:
(WebCore::XPath::Step::evaluate): Do not backup context, as we can easily re-create it.
2007-11-15 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=15988
REGRESSION: XPath preceding-axis query misses nested elements
Test: fast/xpath/preceding-axis.xhtml
* xml/XPathStep.cpp:
(WebCore::XPath::Step::nodesInAxis): Hopefully correct this time.
2007-11-15 Timothy Hatcher <timothy@apple.com>
Reviewed by Mark Rowe and Sam.
This corrects a couple of issues in the Web Inspector where selected search results
would not have the right text color when the window is inactive or the results are focused.
* page/inspector/inspector.css:
2007-11-15 Timothy Hatcher <timothy@apple.com>
Reviewed by Sam.
Bug 16007: REGRESSION: Disclosure triangle click zone for resource categories is off by 10 pixels
http://bugs.webkit.org/show_bug.cgi?id=16007
Makes the click width an option on TreeElement and make ResourceCategoryTreeElement
a true subclass of TreeElement. The click width for ResourceCategoryTreeElement is
20 pixels, and the default is 10 pixels.
* page/inspector/ResourceCategory.js:
* page/inspector/treeoutline.js:
2007-11-15 Anders Carlsson <andersca@apple.com>
Reviewed by Brady.
Pass a VoidCallback to Database::transaction and Database::changeVersion.
This is not yet hooked up to the database machinery.
* WebCore.vcproj/WebCore.vcproj:
* bindings/js/JSDatabaseCustom.cpp:
(WebCore::JSDatabase::changeVersion):
(WebCore::JSDatabase::transaction):
* storage/Database.cpp:
(WebCore::Database::changeVersion):
(WebCore::Database::transaction):
* storage/Database.h:
2007-11-15 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam.
Bug 16005: Hovering in the breadcrumbs causes jumpy behavior
http://bugs.webkit.org/show_bug.cgi?id=16005
Hovering over cumbs no longer exposes new crumbs. Clicking on a collapsed
crumb will expose as many hidden crumbs as possible to the user. Also crumbs
that have ID attributes will compact to the ID over the tag name.
* page/inspector/DocumentPanel.js:
2007-11-15 Anders Carlsson <andersca@apple.com>
Reviewed by Sam.
Make the VoidCallback DOM interface behave more like our other DOM interfaces.
* bindings/js/JSCustomVoidCallback.h: Added.
* bindings/js/JSCustomVoidCallback.cpp: Added.
(WebCore::JSCustomVoidCallback::JSCustomVoidCallback):
(WebCore::JSCustomVoidCallback::handleEvent):
VoidCallback implementation that wraps a JS object.
(WebCore::toVoidCallback):
New method that creates a VoidCallback implementation given a JS object.
* bindings/scripts/CodeGeneratorJS.pm:
Specify that VoidCallback can fail conversion and add a custom conversion function.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::movieCuePointReached):
Call handleEvent on the callback.
(WebCore::HTMLMediaElement::removeCuePoint):
Comment out parts of this method, it has already been removed in the HTML5 spec and it relies
on overriding VoidCallback equality.
* html/VoidCallback.cpp: Removed.
* html/VoidCallback.h:
(WebCore::VoidCallback::VoidCallback):
(WebCore::VoidCallback::~VoidCallback):
Make this an abstract class with a pure virtual handleEvent method.
2007-11-15 Adam Roben <aroben@apple.com>
Fix <rdar://5485108> Type-select while a <select> menu is open doesn't work
There were two things broken here:
- WebView now requires a WM_CHAR message to be sent before it will
create a keyboard event with a charCode, but we were only sending
a WM_KEYDOWN event.
- The popup menu was not updating its focused index when the
<select> element's selectedIndex changed.
Reviewed by Adele.
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenu::updateFromElement): Update the focused index from
the client's selected index.
(WebCore::PopupWndProc): When we receive a WM_CHAR message for a
printable character, manufacture a WM_KEYDOWN message for it and post
both that and the current WM_CHAR message to the WebView.
2007-11-15 Brady Eidson <beidson@apple.com>
Build fix
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::fullPathForDatabase):
(WebCore::DatabaseTracker::databaseNamesForOrigin):
2007-11-15 Brady Eidson <beidson@apple.com>
Reviewed by John and Sam
Stubbing out everything required for a WebKit API for databases
Biggest change in WebCore is that we passed around SecurityOriginData as the representation
of a SecurityOrigin, instead of a String or a SecurityOrigin itself (which is an opaque object
that has a different purpose besides just hanging on to the data)
* WebCore.base.exp:
* WebCore.xcodeproj/project.pbxproj:
* platform/SecurityOrigin.cpp:
* platform/SecurityOrigin.h:
* platform/SecurityOriginData.h: Added. Simple object to encapsulate the 3
pieces of data in the SecurityOrigin tuple
(WebCore::SecurityOriginData::SecurityOriginData):
(WebCore::SecurityOriginData::protocol):
(WebCore::SecurityOriginData::host):
(WebCore::SecurityOriginData::port):
(WebCore::SecurityOriginData::toString): Simple concatenation of the 3 components,
colon separated
* storage/Database.cpp:
(WebCore::Database::Database): Use SecurityOriginData instead
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::fullPathForDatabase):
(WebCore::DatabaseTracker::databaseNamesForOrigin):
(WebCore::DatabaseTracker::deleteDatabasesWithOrigin):
(WebCore::DatabaseTracker::deleteDatabase):
* storage/DatabaseTracker.h:
* storage/DatabaseTrackerClient.h: Added. For dispatching notifications up to WebKit
(WebCore::DatabaseTrackerClient::~DatabaseTrackerClient):2007-11-15 Jon Honeycutt <jhoneycutt@apple.com>
2007-11-15 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Anders.
NP_ASFILEONLY streams should not buffer data in m_deliveryData.
* plugins/win/PluginStreamWin.cpp:
(WebCore::PluginStreamWin::didReceiveData):
2007-11-15 Justin Garcia <justin.garcia@apple.com>
Reviewed by Adele Peterson.
<rdar://problem/5497643> Crash at Node::isDescendantOf when switching out of Edit HTML Source mode
A textarea that contained the selection was removed but the selection wasn't cleared,
and we'd crash in code that assumed a valid, in-document selection.
* editing/SelectionController.cpp:
(WebCore::removingNodeRemovesPosition): Clear the selection if the node being removed is the
shadowAncestorNode of the node that contains the position, not just if the node being removed
contains that shadowAncestorNode.
2007-11-15 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Maciej.
Fix logic error: calculateGlyphBoundaries takes RTL text into account itself, no need to adjust offsets before.
* rendering/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::chunkPortionCallback):
(WebCore::SVGInlineTextBoxSelectionRectWalker::chunkPortionCallback):
2007-11-15 Anders Carlsson <andersca@apple.com>
Reviewed by Brady.
<rdar://problem/5562470>
openDatabase does not work when the version string is empty
If the string is empty, pass a real empty string to sqlite3_bind_text16.
* platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::bindText):
2007-11-15 Anders Carlsson <andersca@apple.com>
Reviewed by Brady.
Get rid of SQLiteStatement::bindText and rename bindText16 to bindText.
Remove the copy parameter from bindText and bindBlob and always copy passed in data instead.
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::setIconIDForPageURLInSQLDatabase):
(WebCore::IconDatabase::removePageURLFromSQLDatabase):
(WebCore::IconDatabase::getIconIDForIconURLFromSQLDatabase):
(WebCore::IconDatabase::addIconURLToSQLDatabase):
(WebCore::IconDatabase::getImageDataForIconURLFromSQLDatabase):
(WebCore::IconDatabase::writeIconSnapshotToSQLDatabase):
* platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::prepare):
* platform/sql/SQLiteStatement.h:
* storage/Database.cpp:
(WebCore::setTextValueInDatabase):
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::fullPathForDatabase):
(WebCore::DatabaseTracker::databaseNamesForOrigin):
(WebCore::DatabaseTracker::addDatabase):
2007-11-14 Brady Eidson <beidson@apple.com>
Rubberstamped by Sam
* platform/SecurityOrigin.h: Lets make this an unsigned short and *not* rule out half the possible ports?
2007-11-14 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Justin Garcia.
http://bugs.webkit.org/show_bug.cgi?id=15781
REGRESSION: Ligatures fail to form when typing in Devanagari (because WebKit can't handle
a marked range that covers half of a composed character sequence)
Test: platform/mac/editing/input/devanagari-ligature.html
This fix is somewhat of a hack, as it asks editing commands to work with invalid selections.
However, this is not entirely new for them, as Roman accents are typed in a similar manner.
In the future, we probably want to make commands work with ranges (or Positions explicitly).
* editing/Editor.cpp:
(WebCore::Editor::selectComposition): Force selection to composition range.
* editing/InsertTextCommand.cpp:
(WebCore::InsertTextCommand::input): Force ending selection to inserted text range.
2007-11-14 Beth Dakin <bdakin@apple.com>
Reviewed by Hyatt.
Fix for <rdar://problem/5540855> REGRESSION: Combination of client-
side image map and <a> tag is not working properly (15522)
* html/HTMLMapElement.cpp:
(WebCore::HTMLMapElement::checkDTD): Allow <map> to have both block
and inline children rather than just block children. This matches
Firefox.
2007-11-14 Justin Garcia <justin.garcia@apple.com>
Reviewed by Alexey Proskuryakov.
<rdar://problem/5546763> CrashTracer: [USER] 362 crashes at WebCore::DeleteSelectionCommand::mergeParagraphs
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::handleGeneralDelete):
Removed an irrelevant FIXME.
(WebCore::DeleteSelectionCommand::mergeParagraphs): If the block that contained the end of the selection
hasn't been removed but has been emptied by deletion, we would to try and fail to create a VisiblePosition
inside that block, which could lead to a crash. If that happens, there's no content in the block to move,
so just remove the block and return.
Preserve m_needPlaceholder during the call to moveParagraphs, since it may change it and since it does
its own placeholder insertion when necessary.
(WebCore::DeleteSelectionCommand::doApply): No need to check m_needPlaceholder before calling mergeParagraphs,
because it handles preserving m_needPlaceholder when it calls moveParagraphs.
2007-11-14 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam.
Bug 14380: Long DOM ancestry breadcrumb lists get cut off
http://bugs.webkit.org/show_bug.cgi?id=14380
The breadcumbs will now be compacted and collapsed if there isn't enough room
to show everything. The collapsing algorithm always affects the crumbs that
are farthest away from the selected or hovered crumb first.
* page/inspector/DocumentPanel.js:
* page/inspector/inspector.css:
2007-11-14 Anders Carlsson <andersca@apple.com>
Use the correct include path.
* platform/Cursor.h:
* plugins/win/PluginPackageWin.h:
* plugins/win/PluginStreamWin.h:
2007-11-13 Brady Eidson <beidson@apple.com>
Reviewed by Adam
http://bugs.webkit.org/show_bug.cgi?id=15976 - ASSERT/crash when SQLTransactionCallback throws an exception
* storage/SQLTransaction.cpp:
(WebCore::SQLTransaction::deliverTransactionCallback): Make a transaction error for the case where the
SQLTransactionCallback fails
(WebCore::SQLTransaction::deliverTransactionErrorCallback): Don't assert on the error callback, but null check it
and make the commit/rollback decision accordingly
2007-11-13 Oliver Hunt <oliver@apple.com>
Reviewed by Anders.
<rdar://problem/5365030> calling dataWithPDFInsideRect on an SVG with a gradient crashes (14780)
When drawing directly to PDF CG may delay the use of the gradient function until outside our
standard drawing path, which in turn could let us invalidate the caches before they were used.
To work around this we now store the cached stops in a RefCounted object, so that we can ensure
that cache exists as long as required.
* platform/graphics/svg/SVGPaintServerGradient.cpp:
(WebCore::SVGPaintServerGradient::SVGPaintServerGradient):
* platform/graphics/svg/SVGPaintServerGradient.h:
* platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
(WebCore::cgGradientCallback):
(WebCore::CGShadingRefForLinearGradient):
(WebCore::CGShadingRefForRadialGradient):
(WebCore::SVGPaintServerGradient::updateQuartzGradientStopsCache):
2007-11-13 Anders Carlsson <andersca@apple.com>
Fix Windows build.
* platform/Cursor.h:
* plugins/win/PluginPackageWin.h:
* plugins/win/PluginStreamWin.h:
2007-11-13 Geoffrey Garen <ggaren@apple.com>
Reviewed by Anders Carlsson.
Renamed Shared to RefCounted.
* ForwardingHeaders/wtf/RefCounted.h: Copied from WebCore/ForwardingHeaders/wtf/Shared.h.
* ForwardingHeaders/wtf/Shared.h: Removed.
* bindings/js/JSSVGPODTypeWrapper.h:
* css/CSSFontFace.h:
* css/CSSRuleList.h:
* css/Counter.h:
* css/Pair.h:
* css/Rect.h:
* css/StyleBase.h:
* css/StyleSheetList.h:
* dom/Attribute.h:
* dom/Clipboard.h:
* dom/DOMImplementation.h:
* dom/Event.h:
* dom/EventListener.h:
* dom/NamedNodeMap.h:
* dom/NodeFilter.h:
* dom/NodeFilterCondition.h:
* dom/NodeList.h:
* dom/QualifiedName.h:
* dom/Range.h:
* dom/RangeException.h:
* dom/RegisteredEventListener.h:
* dom/Traversal.h:
* editing/EditCommand.h:
* history/BackForwardList.h:
* history/CachedPage.h:
* history/HistoryItem.cpp:
(WebCore::HistoryItem::HistoryItem):
* history/HistoryItem.h:
* html/CanvasGradient.h:
* html/CanvasPattern.h:
* html/CanvasRenderingContext2D.h:
* html/CanvasStyle.h:
* html/HTMLCollection.h:
* html/MediaError.h:
* html/TimeRanges.h:
* html/VoidCallback.h:
* ksvg2/css/SVGRenderStyle.cpp:
(WebCore::SVGRenderStyle::SVGRenderStyle):
* ksvg2/css/SVGRenderStyle.h:
* ksvg2/css/SVGRenderStyleDefs.cpp:
(StyleFillData::StyleFillData):
(StyleStrokeData::StyleStrokeData):
(StyleStopData::StyleStopData):
(StyleTextData::StyleTextData):
(StyleClipData::StyleClipData):
(StyleMaskData::StyleMaskData):
(StyleMarkerData::StyleMarkerData):
(StyleMiscData::StyleMiscData):
* ksvg2/css/SVGRenderStyleDefs.h:
* ksvg2/svg/SVGAngle.cpp:
(WebCore::SVGAngle::SVGAngle):
* ksvg2/svg/SVGAngle.h:
* ksvg2/svg/SVGAnimatedTemplate.h:
* ksvg2/svg/SVGElementInstanceList.h:
* ksvg2/svg/SVGException.h:
* ksvg2/svg/SVGList.h:
* ksvg2/svg/SVGPathSeg.h:
* ksvg2/svg/SVGPreserveAspectRatio.cpp:
(WebCore::SVGPreserveAspectRatio::SVGPreserveAspectRatio):
* ksvg2/svg/SVGPreserveAspectRatio.h:
* ksvg2/svg/SVGRenderingIntent.h:
* ksvg2/svg/SVGTransform.h:
* ksvg2/svg/SVGUnitTypes.h:
* loader/DocumentLoader.h:
* loader/FormState.h:
* loader/ResourceLoader.h:
* loader/TextResourceDecoder.h:
* loader/icon/IconRecord.h:
* page/BarInfo.h:
* page/Console.h:
* page/DOMSelection.h:
* page/DOMWindow.h:
* page/Frame.h:
* page/History.h:
* page/InspectorController.cpp:
* page/Plugin.h:
* page/Screen.h:
* platform/ArrayImpl.h:
* platform/CString.h:
* platform/Cursor.h:
* platform/DeprecatedValueListImpl.cpp:
(WebCore::DeprecatedValueListImpl::Private::Private):
* platform/FileChooser.h:
* platform/FontFallbackList.h:
* platform/FontFamily.cpp:
(WebCore::FontFamily::FontFamily):
* platform/FontFamily.h:
* platform/FontSelector.h:
* platform/GlyphPageTreeNode.h:
* platform/PopupMenu.h:
* platform/RegularExpression.cpp:
* platform/ScrollBar.h:
* platform/SharedBuffer.h:
* platform/StringImpl.h:
* platform/graphics/Icon.h:
* platform/graphics/svg/SVGResource.h:
* platform/network/FormData.cpp:
(WebCore::FormData::FormData):
* platform/network/FormData.h:
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleClient.h:
* rendering/RenderStyle.cpp:
(WebCore::StyleSurroundData::StyleSurroundData):
(WebCore::StyleBoxData::StyleBoxData):
(WebCore::StyleVisualData::StyleVisualData):
(WebCore::StyleBackgroundData::StyleBackgroundData):
(WebCore::StyleMarqueeData::StyleMarqueeData):
(WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
(WebCore::StyleMultiColData::StyleMultiColData):
(WebCore::StyleTransformData::StyleTransformData):
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleInheritedData::StyleInheritedData):
* rendering/RenderStyle.h:
* rendering/SVGCharacterLayoutInfo.h:
(WebCore::SVGCharOnPath::SVGCharOnPath):
* storage/SQLResultSetRowList.h:
* xml/DOMParser.h:
* xml/XMLHttpRequest.h:
* xml/XMLSerializer.h:
* xml/XPathEvaluator.h:
* xml/XPathExpression.h:
* xml/XPathNSResolver.h:
* xml/XPathResult.h:
* xml/XPathValue.h:
* xml/XSLTProcessor.h:
2007-11-13 Brady Eidson <beidson@apple.com>
Reviewed by Mark Rowe
Remove errantly added files, and fix the idl (for reference's sake)
* storage/JSCustomSQLStatementCallback.h: Removed.
* storage/JSCustomSQLStatementErrorCallback.h: Removed.
* storage/JSCustomSQLTransactionCallback.h: Removed.
* storage/JSCustomSQLTransactionErrorCallback.h: Removed.
* storage/SQLStatementCallback.idl:
2007-11-13 Adam Roben <aroben@apple.com>
Fix a bug and improve upon Brady's fix
Reviewed by Anders.
* bindings/js/JSSQLTransactionCustom.cpp:
(WebCore::JSSQLTransaction::executeSql): Made the code a little
clearer and more correct.
* loader/icon/IconDatabase.cpp: Put parentheses around the expansion
of IS_ICON_SYNC_THREAD() so that ASSERT_NOT_SYNC_THREAD() does the
comparison it meant to.
2007-11-13 Sam Weinig <sam@webkit.org>
Fix Qt and Gtk builds.
* WebCore.pro: Remove non-generated idl files.
2007-11-13 Mark Rowe <mrowe@apple.com>
Remove removed file from the project.
* WebCore.pro:
2007-11-13 Brady Eidson <beidson@apple.com>
Release build fix
* bindings/js/JSSQLTransactionCustom.cpp:
(WebCore::JSSQLTransaction::executeSql):
2007-11-13 Adam Roben <aroben@apple.com>
Add WindowMessageBroadcaster
This class is used to listen in on messages sent to HWNDs. Multiple
WindowMessageListeners can be notified about messages sent to a single
HWND, and one WindowMessageListener can listen to messages from
multiple HWNDs.
Reviewed by Ada.
* WebCore.vcproj/WebCore.vcproj: Added new files to project.
* platform/win/WindowMessageBroadcaster.cpp: Added.
(WebCore::instancesMap): Static helper.
(WebCore::WindowMessageBroadcaster::addListener): Registers a listener
for a particular HWND.
(WebCore::WindowMessageBroadcaster::removeListener): Removes a
listener for a particular HWND.
(WebCore::WindowMessageBroadcaster::WindowMessageBroadcaster):
(WebCore::WindowMessageBroadcaster::~WindowMessageBroadcaster):
(WebCore::WindowMessageBroadcaster::destroy): Removes this broadcaster
from the instancesMap, removes all of its listeners, unsubclasses the
window, and deletes the broadcaster.
(WebCore::WindowMessageBroadcaster::unsubclassWindow): Unsubclasses
the window (which means that SubclassedWndProc won't be called again
for this window).
(WebCore::WindowMessageBroadcaster::SubclassedWndProc): Notifies all
the listeners about every message sent to the HWND
* platform/win/WindowMessageBroadcaster.h: Added.
(WebCore::WindowMessageBroadcaster::listeners):
(WebCore::WindowMessageBroadcaster::originalWndProc):
* platform/win/WindowMessageListener.h: Added.
2007-11-13 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
Moved Shared.h into wtf so it could be used in more places. Retained
TreeShared, but moved it to its own file, TreeShared.h.
* ForwardingHeaders/wtf/Shared.h: Added.
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSSVGPODTypeWrapper.h:
* css/CSSFontFace.h:
* css/CSSRuleList.h:
* css/Counter.h:
* css/Pair.h:
* css/Rect.h:
* css/StyleBase.h:
* css/StyleSheetList.h:
* dom/Clipboard.h:
* dom/DOMImplementation.h:
* dom/Event.h:
* dom/EventListener.h:
* dom/NamedNodeMap.h:
* dom/NodeFilterCondition.h:
* dom/NodeList.h:
* dom/Range.h:
* dom/RangeException.h:
* dom/RegisteredEventListener.h:
* dom/Traversal.h:
* history/BackForwardList.h:
* history/CachedPage.h:
* history/HistoryItem.h:
* html/CanvasGradient.h:
* html/CanvasPattern.h:
* html/HTMLCollection.h:
* html/MediaError.h:
* html/TimeRanges.h:
* html/VoidCallback.h:
* ksvg2/css/SVGRenderStyleDefs.h:
* ksvg2/svg/SVGAnimatedTemplate.h:
* ksvg2/svg/SVGElementInstanceList.h:
* ksvg2/svg/SVGList.h:
* ksvg2/svg/SVGPathSeg.h:
* ksvg2/svg/SVGPreserveAspectRatio.h:
* ksvg2/svg/SVGRenderingIntent.h:
* ksvg2/svg/SVGTransform.h:
* ksvg2/svg/SVGUnitTypes.h:
* loader/DocumentLoader.h:
* loader/FormState.h:
* loader/ResourceLoader.h:
* loader/TextResourceDecoder.h:
* loader/icon/IconRecord.h:
* page/BarInfo.h:
* page/Console.h:
* page/DOMSelection.h:
* page/DOMWindow.h:
* page/History.h:
* page/InspectorController.cpp:
* page/Plugin.h:
* page/Screen.h:
* platform/ArrayImpl.h:
* platform/CString.h:
* platform/DeprecatedValueListImpl.cpp:
* platform/FontFallbackList.h:
* platform/FontFamily.h:
* platform/FontSelector.h:
* platform/GlyphPageTreeNode.h:
* platform/PopupMenu.h:
* platform/RegularExpression.cpp:
* platform/ScrollBar.h:
* platform/Shared.h: Removed.
* platform/SharedBuffer.h:
* platform/StringImpl.h:
* platform/graphics/Icon.h:
* platform/graphics/svg/SVGResource.h:
* platform/network/FormData.h:
* platform/network/ResourceHandleClient.h:
* rendering/RenderStyle.h:
* rendering/SVGCharacterLayoutInfo.h:
* storage/SQLResultSetRowList.h:
* xml/DOMParser.h:
* xml/XMLSerializer.h:
* xml/XPathEvaluator.h:
* xml/XPathExpression.h:
* xml/XPathNSResolver.h:
* xml/XPathResult.h:
2007-11-13 Brady Eidson <beidson@apple.com>
JS bindings by Anders, reviewed by Brady
WebCore changes by Brady, reviewed by Anders and Tim
Adapt to the new iteration of the HTML5 client-side storage spec.
Based largely on implementation feedback we generated in landing our first version of this API and also
on the input of others in the community, the database spec went through a large overhaul that addresses
many concerns. Amongst other changes/improvements:
- SQLTransaction object is added and all transactions are explicit. In addition, since the API manages
transactions explicitly, transaction-related language in SQL statements is disallowed
- executeSql() is now on a transaction object instead of the database object.
- Database.changeVersion() now takes place within the context of a transaction. Therefore the version
change can be atomic along with the statements that modify the DB schema
Most of the logic now takes place during the "transaction steps," which the specification clearly lays out
as a chain of events on the SQLTransaction object where processing is handed off between being processed
asynchronously and calling back up to javascript. To accomplish this voodoo, SQLTransaction has a series of
methods that roughly match up with the "transaction steps" and it keeps a pointer to the next step.
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDatabaseCustom.cpp:
(WebCore::JSDatabase::changeVersion): Adapt to the new API
(WebCore::JSDatabase::transaction): Added
* bindings/js/JSSQLTransactionCustom.cpp: Added.
(WebCore::JSSQLTransaction::executeSql): Added
* page/DOMWindow.cpp:
(WebCore::DOMWindow::openDatabase): Add the new arguments
* page/DOMWindow.h:
* page/DOMWindow.idl:
* page/inspector/DatabasePanel.js: Use the new API
* storage/ChangeVersionWrapper.cpp: Added. Implementation of "SQLTransactionWrapper" that enforces
changing the version of the database
(WebCore::ChangeVersionWrapper::ChangeVersionWrapper):
(WebCore::ChangeVersionWrapper::performPreflight):
(WebCore::ChangeVersionWrapper::performPostflight):
* storage/ChangeVersionWrapper.h: Added.
(WebCore::ChangeVersionWrapper::sqlError):
* storage/Database.cpp: Removed the "main thread" and "background thread" sqlite handles as all sqlite operations can now
happen solely on the background thread - most of these changes result from that change
(WebCore::Database::Database): Removed an obsolete FIXME
(WebCore::Database::openAndVerifyVersion):
(WebCore::Database::getVersionFromDatabase):
(WebCore::Database::setVersionInDatabase):
(WebCore::Database::versionMatchesExpected): Atomically guarantee that the current version and expected version are the same
(WebCore::Database::performOpenAndVerify):
(WebCore::Database::performTransactionStep): Added, as a hook for the DatabaseTransactionTask on the DatabaseThread
(WebCore::Database::changeVersion): Changed for the new API from JS
(WebCore::Database::transaction): Added, for the new API from JS
(WebCore::Database::scheduleTransaction): Add a transaction to this Database's transaction queue
(WebCore::Database::scheduleTransactionStep): Schedule the current transaction to be called on the background thread
(WebCore::Database::scheduleTransactionCallback): Schedule the current transaction to perform a callback on the main thread
(WebCore::Database::performGetTableNames):
(WebCore::Database::deliverAllPendingCallbacks):
(WebCore::Database::deliverPendingCallback):
(WebCore::Database::setExpectedVersion):
* storage/Database.h:
* storage/Database.idl:
* storage/DatabaseTask.cpp: Changed DatabaseTask to create a mutex on demand, and use the existence of that mutex
to replace the m_synchronous flag
(WebCore::DatabaseTask::performTask):
(WebCore::DatabaseTask::lockForSynchronousScheduling):
(WebCore::DatabaseTask::waitForSynchronousCompletion):
(WebCore::DatabaseTransactionTask::DatabaseTransactionTask):
* storage/DatabaseTask.h:
* storage/SQLError.h: New API object
* storage/SQLResultSet.cpp:
(WebCore::SQLResultSet::SQLResultSet): Small changes to the API object
* storage/SQLResultSet.h:
* storage/SQLResultSet.idl:
* storage/SQLStatement.cpp: Added.
(WebCore::SQLStatement::SQLStatement):
(WebCore::SQLStatement::execute): Actually execute the sql statement on the SQLiteDatabase if it's still valid
(WebCore::SQLStatement::setVersionMismatchedError): Flag this statement as bad before it even starts in case
of an actual version vs. expected version mismatch
(WebCore::SQLStatement::performCallback): Call the right callback (SQLStatement or SQLStatementError) for this statement
* storage/SQLStatement.h: Added.
(WebCore::SQLStatement::hasStatementCallback):
(WebCore::SQLStatement::hasStatementErrorCallback):
(WebCore::SQLStatement::sqlError): Get the error for this statement, if any
* storage/SQLTransaction.cpp: Added.
(WebCore::SQLTransaction::SQLTransaction):
(WebCore::SQLTransaction::executeSQL): Entry point for the API from JS
(WebCore::SQLTransaction::enqueueStatement): Add a new statement onto the queue
(WebCore::SQLTransaction::performNextStep): Call the method for the next step
(WebCore::SQLTransaction::performPendingCallback): Call the method for the pending callback
(WebCore::SQLTransaction::openTransactionAndPreflight): Open a transaction to the database and preflight
using the SQLTransactionWrapper, if any
(WebCore::SQLTransaction::deliverTransactionCallback): Deliver the transaction callback to the javascript thread
(WebCore::SQLTransaction::scheduleToRunStatements): Convinience to schedule this transaction on the database thread
and make runStatements() the next step
(WebCore::SQLTransaction::runStatements): Start running the sql statements queued up for this transaction
(WebCore::SQLTransaction::getNextStatement): Bring the next statement off the queue
(WebCore::SQLTransaction::runCurrentStatement): Execute the current statement
(WebCore::SQLTransaction::deliverStatementCallback): Deliver the SQLStatementCallback for this statement
(WebCore::SQLTransaction::postflightAndCommit): Postflight the transaction using SQLTransactionWrapper and commit it
(WebCore::SQLTransaction::handleTransactionError): Make the right call for any error that occurred on the Transaction
(WebCore::SQLTransaction::deliverTransactionErrorCallback): Deliver the SQLTransactionErrorCallback
(WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): Either do a final commit or rollback to cleanup the
transaction after it error'ed out
* storage/SQLTransaction.h:
(WebCore::SQLTransactionWrapper::~SQLTransactionWrapper):
(WebCore::SQLTransaction::database):
* storage/SQLTransaction.idl:
The following were made obsolete by the new version of the API:
* bindings/js/JSCustomSQLCallback.cpp: Removed.
* bindings/js/JSCustomSQLCallback.h: Removed.
* bindings/js/JSCustomVersionChangeCallback.cpp: Removed.
* bindings/js/JSCustomVersionChangeCallback.h: Removed.
* storage/DatabaseCallback.cpp: Removed.
* storage/DatabaseCallback.h: Removed.
* storage/SQLCallback.h: Removed.
* storage/SQLCallback.idl: Removed.
* storage/VersionChangeCallback.h: Removed.
* storage/VersionChangeCallback.idl: Removed.
2007-11-13 Dan Bernstein <mitz@apple.com>
Reviewed by Beth Dakin.
- fix <rdar://problem/5551163> REGRESSION: Cursor does not change to arrow on "X" button in google maps, making it hard to click
* css/html4.css: Added a 'cursor: auto' rule for links.
* manual-tests/link-cursor-auto.html: Added.
2007-11-13 Dan Bernstein <mitz@apple.com>
Reviewed by Beth Dakin.
- fix <rdar://problem/5516272> Reproducible crash in RenderObject::setStyle involving going Back from a non-HTML document (Bookmarks view, PDF view)
The root cause for the crash is that when a non-HTML view enters the
frame, the frame's document pointer keeps pointing at the last HTML-type
document it contained. This patch does not address the root cause, but
makes changes to account for that condition.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::receivedMainResourceError): Do not change the
frame's current document's page cache state here.
(WebCore::FrameLoader::invalidateCurrentItemCachedPage): If the frame's
current document is in fact the history item being invalidated, then
set its page cache state here.
2007-11-12 Antti Koivisto <antti@apple.com>
Reviewed by Adele.
Fix that 'timeupdate' and 'waiting' events were never dispatched.
Add explicit m_paused attribute instead of trying to derive paused state from
underlying media. Call updatePlayState() to start/stop media playback
when any attribute that affects active playback state changes. This matches
specification text.
Test: http/tests/media/video-play-stall.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::paused):
(WebCore::HTMLMediaElement::play):
(WebCore::HTMLMediaElement::pause):
(WebCore::HTMLMediaElement::checkIfSeekNeeded):
(WebCore::HTMLMediaElement::movieDidEnd):
(WebCore::HTMLMediaElement::updatePlayState):
* html/HTMLMediaElement.h:
2007-11-13 John Sullivan <sullivan@apple.com>
Reviewed by Darin.
removed recently-added PreferredType concept; we found a better way to do what
ths was accomplishing
* bridge/WindowFeatures.h:
(WebCore::WindowFeatures::WindowFeatures):
removed definition of PreferredType
* page/ContextMenuController.cpp:
(WebCore::openNewWindow):
removed use of PreferredType
2007-11-12 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=15954
Move DOM Selection operations out of SelectionController
No change in functionality.
* editing/SelectionController.cpp:
(WebCore::SelectionController::setSelectedRange):
* editing/SelectionController.h:
* page/DOMSelection.cpp:
(WebCore::DOMSelection::anchorNode):
(WebCore::DOMSelection::baseNode):
(WebCore::DOMSelection::anchorOffset):
(WebCore::DOMSelection::baseOffset):
(WebCore::DOMSelection::focusNode):
(WebCore::DOMSelection::extentNode):
(WebCore::DOMSelection::focusOffset):
(WebCore::DOMSelection::extentOffset):
(WebCore::DOMSelection::isCollapsed):
(WebCore::DOMSelection::type):
(WebCore::DOMSelection::rangeCount):
(WebCore::DOMSelection::collapse):
(WebCore::DOMSelection::collapseToEnd):
(WebCore::DOMSelection::collapseToStart):
(WebCore::DOMSelection::empty):
(WebCore::DOMSelection::setBaseAndExtent):
(WebCore::DOMSelection::setPosition):
(WebCore::DOMSelection::modify):
(WebCore::DOMSelection::extend):
(WebCore::DOMSelection::getRangeAt):
(WebCore::DOMSelection::removeAllRanges):
(WebCore::DOMSelection::addRange):
(WebCore::DOMSelection::deleteFromDocument):
(WebCore::DOMSelection::containsNode):
(WebCore::DOMSelection::selectAllChildren):
(WebCore::DOMSelection::toString):
* page/DOMSelection.h:
Moved all DOM API methods to DOMSelection; changed SelectionController::setSelectedRange()
to return its result directly instead of via an ExceptionCode that no caller wanted.
* editing/Editor.cpp:
(WebCore::Editor::deleteRange):
(WebCore::Editor::removeFormattingAndStyle):
(WebCore::Editor::selectComposition):
(WebCore::Editor::setComposition):
* html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler):
Adapted for SelectionController::setSelectedRange() now returning a bool.
SelectionController::toString() is no longer avasilable, use plainText() explicitly.
* WebCore.base.exp: Changed SelectionController::setSelectedRange() signature.
2007-11-12 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- <http://bugs.webkit.org/show_bug.cgi?id=15890>
Most of www.aol.com still redraws unnecessarily when headline/photo section changes
Test: fast/repaint/invisible-objects.html
Avoid repainting invisible blocks if they are enclosed in a layer that
contains no visible objects.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::absoluteClippedOverflowRect):
2007-11-12 Timothy Hatcher <timothy@apple.com>
Reviewed by Mark Rowe.
Prevent selecting a word in the breadcrumb or the styles section when double
clicking on a DOM node in the outline tree.
* page/inspector/DocumentPanel.js: Call preventDefault() when a mousedown event
with a detail of 2 or higher comes in. This prevents the selection.
* page/inspector/inspector.css: Mark the breadcrumb as user-select: none.
2007-11-12 Oliver Hunt <oliver@apple.com>
Reviewed by John S.
<rdar://problem/5537289> REGRESSION: Dragging a link or an image from an IFrame causes the page to not respond to clicks afterwards (15460)
EventHandler needs to reset these fields when a drag terminates, otherwise
EventHandler is left in an inconsistent state when a drag is initiated on a
page with multiple frames.
* page/EventHandler.cpp:
(WebCore::EventHandler::cancelDragAndDrop):
(WebCore::EventHandler::performDragAndDrop):
(WebCore::EventHandler::clearDragState):
* page/EventHandler.h:
2007-11-12 Oliver Hunt <oliver@apple.com>
Reviewed by Darin and Antti.
Return behaviour for 0 sized pattern back to what it was prior to r27704
This change in behaviour broke two layout tests in DRT, so correcting it
corrects existing tests.
* platform/graphics/cg/ImageBufferCG.cpp:
2007-11-12 Timothy Hatcher <timothy@apple.com>
Reviewed by John.
<rdar://problem/5268311> REGRESSION (Safari 2-3): Exception thrown when calling -[WebDataSource subresources]
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge getAllResourceDatas:andResponses:]):
If the SharedBuffer is null insert an empty NSData instead of nil.
2007-11-12 Darin Adler <darin@apple.com>
Reviewed by Tim.
- http://bugs.webkit.org/show_bug.cgi?id=15947
speed up page loading a bit by inlining
* loader/FrameLoader.cpp: (WebCore::FrameLoader::isLocationChange):
Factored out the slow case of isScheduledLocationChangePending into this.
* loader/FrameLoader.h:
(WebCore::FrameLoader::isScheduledLocationChangePending): Added an
inline check of the far and away most common case, where m_scheduledRedirection
is 0; the rest is in the isLocationChange function.
2007-11-12 George Staikos <staikos@kde.org>
Reviewed by Tim.
Extract the text match marker highlight color into RenderTheme instead
of the hardcoded yellow.
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintTextMatchMarker):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::platformTextSearchHighlightColor):
* rendering/RenderTheme.h:
2007-11-12 Mark Rowe <mrowe@apple.com>
Fix deadlock on launch on the Mac.
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::open): Restore unlock that was mistakenly removed in r27717.
2007-11-12 Justin Haygood <jhaygood@reaktix.com>
Reviewed by Brady.
http://bugs.webkit.org/show_bug.cgi?id=15955
Reimplement threading functions in IconDatabase and SQLiteDatabase in terms of the threading abstractions
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::open):
(WebCore::IconDatabase::close):
* loader/icon/IconDatabase.h:
* platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::SQLiteDatabase):
(WebCore::SQLiteDatabase::open):
(WebCore::SQLiteDatabase::close):
* platform/sql/SQLiteDatabase.h:
2007-11-12 Adam Roben <aroben@apple.com>
Windows build fix
* config.h: Touch because VS apparently can't figure out which files
depend on ResourceResponse.h.
* WebCore.vcproj/WebCore.vcproj: Add ResourceResponseBase files to
project and remove old ResourceResponse files.
2007-11-12 Julien Chaffraix <julien.chaffraix@gmail.com>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=15334
Split ResourceResponse into platform specific files
* WebCore.base.exp:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* platform/network/ResourceResponse.cpp: Removed.
* platform/network/ResourceResponse.h: Removed.
* platform/network/ResourceResponseBase.cpp: Copied from platform/network/ResourceResponse.cpp.
(WebCore::ResourceResponseBase::asResourceResponse):
(WebCore::ResourceResponseBase::isHTTP):
(WebCore::ResourceResponseBase::url):
(WebCore::ResourceResponseBase::setUrl):
(WebCore::ResourceResponseBase::mimeType):
(WebCore::ResourceResponseBase::setMimeType):
(WebCore::ResourceResponseBase::expectedContentLength):
(WebCore::ResourceResponseBase::setExpectedContentLength):
(WebCore::ResourceResponseBase::textEncodingName):
(WebCore::ResourceResponseBase::setTextEncodingName):
(WebCore::ResourceResponseBase::suggestedFilename):
(WebCore::ResourceResponseBase::setSuggestedFilename):
(WebCore::ResourceResponseBase::httpStatusCode):
(WebCore::ResourceResponseBase::setHTTPStatusCode):
(WebCore::ResourceResponseBase::httpStatusText):
(WebCore::ResourceResponseBase::setHTTPStatusText):
(WebCore::ResourceResponseBase::httpHeaderField):
(WebCore::ResourceResponseBase::setHTTPHeaderField):
(WebCore::ResourceResponseBase::httpHeaderFields):
(WebCore::ResourceResponseBase::isAttachment):
(WebCore::ResourceResponseBase::setExpirationDate):
(WebCore::ResourceResponseBase::expirationDate):
(WebCore::ResourceResponseBase::setLastModifiedDate):
(WebCore::ResourceResponseBase::lastModifiedDate):
(WebCore::ResourceResponseBase::updateResourceResponse):
* platform/network/ResourceResponseBase.h: Copied from platform/network/ResourceResponse.h.
(WebCore::ResourceResponseBase::ResourceResponseBase):
* platform/network/cf/ResourceResponse.h: Added.
(WebCore::ResourceResponse::ResourceResponse):
* platform/network/curl/ResourceResponse.h: Added.
(WebCore::ResourceResponse::ResourceResponse):
(WebCore::ResourceResponse::doUpdateResourceResponse):
* platform/network/mac/ResourceResponse.h: Added.
(WebCore::ResourceResponse::ResourceResponse):
* platform/network/qt/ResourceResponse.h: Added.
(WebCore::ResourceResponse::ResourceResponse):
(WebCore::ResourceResponse::doUpdateResourceResponse):
2007-11-11 Justin Haygood <jhaygood@reaktix.com>
Reviewed by Adam Roben.
http://bugs.webkit.org/show_bug.cgi?id=15939
Adds a currentThread API for use by SQLiteDatabase, etc.
* platform/Threading.h:
* platform/ThreadingNone.cpp:
(WebCore::currentThread):
* platform/gtk/ThreadingGtk.cpp:
(WebCore::identifierByGthreadHandle):
(WebCore::):
* platform/pthreads/ThreadingPthreads.cpp:
(WebCore::identifierByPthreadHandle):
(WebCore::currentThread):
2007-11-11 Dan Bernstein <mitz@apple.com>
Reviewed by Adam Roben.
- fix http://bugs.webkit.org/show_bug.cgi?id=15942
REGRESSION: Selecting "Edit Html" tab in Blogger causes crash (Assertion failed: isRange())
Test: editing/selection/cleared-by-relayout.html
* editing/Selection.cpp:
(WebCore::Selection::toRange): Check if the selection has been cleared
by updating layout.
2007-11-11 Darin Adler <darin@apple.com>
Reviewed by Mark Rowe.
- fix line numbers that were off since my recent patch
* platform/SegmentedString.h:
(WebCore::SegmentedSubstring::SegmentedSubstring): Reversed the sense of m_excludeLineNumbers
and rename it to m_doNotExcludeLineNumbers.
(WebCore::SegmentedSubstring::excludeLineNumbers): Updated.
(WebCore::SegmentedSubstring::doNotExcludeLineNumbers): Added.
(WebCore::SegmentedSubstring::setExcludeLineNumbers): Updated.
(WebCore::SegmentedString::advance): Use doNotExcludeLineNumbers to reverse the sense and fix
the regression, but keep the speediness. I accidentally had removed a ! here.
* platform/SegmentedString.cpp:
(WebCore::SegmentedString::advanceSlowCase): Use doNotExcludeLineNumbers.
2007-11-11 Oliver Hunt <oliver@apple.com>
Reviewed by Darin.
Fix for <rdar://problem/5585334> numfuzz: integer overflows opening
malformed SVG file in WebCore::ImageBuffer::create. Add protection
against a potential overflow.
* platform/graphics/cg/ImageBufferCG.cpp:
2007-11-11 Antti Koivisto <antti@apple.com>
Reviewed by Darin.
Fix a bunch of cases where the exception code is checked by the function but is not zeroed first.
* bindings/js/kjs_binding.cpp:
(KJS::setDOMException):
* dom/Attr.cpp:
(WebCore::Attr::setPrefix):
* dom/Document.cpp:
(WebCore::Document::createElement):
* dom/Element.cpp:
(WebCore::Element::setPrefix):
* dom/Range.cpp:
(WebCore::Range::setStart):
(WebCore::Range::setEnd):
(WebCore::Range::isPointInRange):
(WebCore::Range::comparePoint):
(WebCore::Range::compareBoundaryPoints):
(WebCore::Range::deleteContents):
(WebCore::Range::processContents):
(WebCore::Range::extractContents):
(WebCore::Range::insertNode):
(WebCore::Range::setStartAfter):
(WebCore::Range::setEndBefore):
(WebCore::Range::setEndAfter):
(WebCore::Range::selectNode):
(WebCore::Range::surroundContents):
(WebCore::Range::setStartBefore):
* editing/TextIterator.cpp:
(WebCore::TextIterator::TextIterator):
* html/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::createPattern):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::play):
(WebCore::HTMLMediaElement::pause):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::add):
(WebCore::HTMLSelectElement::setOption):
* xml/XPathEvaluator.cpp:
(WebCore::XPathEvaluator::evaluate):
2007-11-11 Darin Adler <darin@apple.com>
Reviewed by Mitz.
- http://bugs.webkit.org/show_bug.cgi?id=15945
speed up GraphicsContextCG typical case by skipping roundToDevicePixels
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::restorePlatformState): Clear the flag since we no
longer know if the transform is identity or not.
(WebCore::GraphicsContext::strokeArc): Removed an extra set of redundant
CGContextSave/RestoreGState.
(WebCore::GraphicsContext::beginTransparencyLayer): Clear the flag since we no
longer know if the transform is identity or not.
(WebCore::GraphicsContext::endTransparencyLayer): Ditto.
(WebCore::GraphicsContext::scale): Ditto.
(WebCore::GraphicsContext::rotate): Ditto.
(WebCore::GraphicsContext::translate): Ditto.
(WebCore::GraphicsContext::concatCTM): Ditto.
(WebCore::GraphicsContext::roundToDevicePixels): Return quickly if the transform
is known to be identity, and record that fact when we discover it otherwise.
* platform/graphics/cg/GraphicsContextPlatformPrivate.h:
(WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
Added a m_userToDeviceTransformKnownToBeIdentity flag, initialized to false.
2007-11-11 Darin Adler <darin@apple.com>
Reviewed by Mitz.
- http://bugs.webkit.org/show_bug.cgi?id=15944
streamline SegmentedString to speed up parsing
I measured a speed-up of the page load test while developing this patch. I don't
have a precise figure, though.
* html/HTMLTokenizer.h: Removed unneeded lineNumberPtr() function. Also renamed
lineno to m_lineNumber.
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::processListing): Don't pass 0 to the advance function
since we don't want to update a line number.
(WebCore::HTMLTokenizer::parseSpecial): Ditto.
(WebCore::HTMLTokenizer::parseComment): Pass the line number data member directly
instead of lineNumberPtr() since the advance function now takes a reference.
(WebCore::HTMLTokenizer::parseServer): Ditto.
(WebCore::HTMLTokenizer::parseProcessingInstruction): Ditto.
(WebCore::HTMLTokenizer::parseText): Ditto.
(WebCore::HTMLTokenizer::parseEntity): Ditto.
(WebCore::HTMLTokenizer::parseTag): Ditto.
(WebCore::HTMLTokenizer::write): Ditto.
* loader/FTPDirectoryDocument.cpp: (WebCore::FTPDirectoryTokenizer::write):
* loader/TextDocument.cpp: (WebCore::TextTokenizer::write):
Don't pass 0 to the advance function.
* platform/SegmentedString.h: (WebCore::SegmentedString::advance): Streamlined
the most common case, and pushed less common cases into a separate function
that is not inlined. Also got rid of a branch by separating the case with a
line number from the case without one.
* platform/SegmentedString.cpp: (WebCore::SegmentedString::advanceSlowCase):
Added. The aforementioned less common cases are here.
2007-11-11 Antti Koivisto <antti@apple.com>
Forgot to do this review change (and test HTTP commit).
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::play):
2007-11-11 Antti Koivisto <antti@apple.com>
Reviewed by Darin.
- Update play() and pause() to match current HTML5 draft
- send events asynchronously
- add timeupdate event to pause
- rethrow load() exception, not others
- Use list for async events to get ordering right
Tests: media/video-pause-empty-events.html
media/video-play-empty-events.html
media/video-play-pause-events.html
media/video-play-pause-exception.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::dispatchEventAsync):
(WebCore::HTMLMediaElement::asyncEventTimerFired):
(WebCore::HTMLMediaElement::play):
(WebCore::HTMLMediaElement::pause):
* html/HTMLMediaElement.h:
2007-11-11 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Eric.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=6424 (<text>, <tspan> dominant-baseline attribute is not respected)
Add (basic) support for dominant-baseline / alignment-baseline text properties.
Note: there are no official testcases, and no-one implemented it before. Only ASV3
supported dominant-baseline, but not correct it seems.
* rendering/SVGRootInlineBox.cpp:
(WebCore::dominantBaselineToShift):
(WebCore::alignmentBaselineToShift):
(WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
2007-11-11 Adam Roben <aroben@apple.com>
Add wrappers around CoCreateInstance to COMPtr
I followed the example of the Query constructor and query method by
adding a Create constructor and create method.
Reviewed by Darin.
* platform/win/COMPtr.h:
(COMPtr::COMPtr): Added a new constructor that calls
CoCreateInstance.
(COMPtr::create): Added.
(COMPtr::createInstance): Added.
2007-11-11 Alexey Proskuryakov <ap@nypop.com>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=15896
More editing cleanup
No functionality changes.
* dom/Node.h: Moved several editing-related methods elsewhere.
* dom/Node.cpp: (WebCore::Node::maxCharacterOffset): Renamed from maxOffset()
to highlight that it is a match to offsetInCharacters(), and much different from other
offset-related methods. Added ASSERT_NOT_REACHED(), as callers are supposed to check
offsetInCharacters() before calling this.
* dom/CharacterData.cpp: (WebCore::CharacterData::maxCharacterOffset):
* dom/CharacterData.h: (WebCore::CharacterData::isCharacterDataNode):
Updated for above renamings.
* dom/Comment.{h,cpp}: Removed an override for offsetInCharacters(), which is already present in CharacterData.
* dom/Document.{h,cpp}: Folded updateSelection() into Frame::selectionLayoutChanged().
* dom/Position.h:
* dom/Position.cpp:
(WebCore::Position::uncheckedPreviousOffset): Moved from Node::previousOffset().
(WebCore::Position::uncheckedNextOffset): Moved from Node::NextOffset().
(WebCore::Position::previous): Adapted to the above move.
(WebCore::Position::next): Ditto.
(WebCore::Position::upstream): Removed an isBR() check, since a non-BR element cannot have a BR renderer (I think),
and BR elements are covered by editingIgnoresContent().
(WebCore::Position::downstream): Ditto.
(WebCore::caretMaxRenderedOffset): Moved from Node::caretMaxRenderedOffset().
(WebCore::Position::rendersInDifferentPosition): Updated for the above moves.
* dom/PositionIterator.h: Added a comment describing this class from the original check-in.
* dom/PositionIterator.cpp:
(WebCore::PositionIterator::increment): Updated for the above moves.
(WebCore::PositionIterator::decrement): Ditto.
* dom/ProcessingInstruction.h:
* dom/ProcessingInstruction.cpp: (WebCore::ProcessingInstruction::maxCharacterOffset):
ProcessingInstruction was already returning true from offsetInCharacters(), but didn't override maxCharacterOffset().
I think that implementing it has no actual effect, as PIs are not rendered, but it looks cleaner this way.
* dom/Range.cpp:
(WebCore::Range::selectNodeContents):
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
(WebCore::ApplyStyleCommand::applyInlineStyle):
(WebCore::maxRangeOffset):
(WebCore::ApplyStyleCommand::removeInlineStyle):
(WebCore::ApplyStyleCommand::splitTextAtStartIfNeeded):
(WebCore::ApplyStyleCommand::splitTextAtEndIfNeeded):
(WebCore::ApplyStyleCommand::splitTextElementAtStartIfNeeded):
(WebCore::ApplyStyleCommand::splitTextElementAtEndIfNeeded):
(WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical):
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::insertNodeAt):
(WebCore::CompositeEditCommand::positionOutsideTabSpan):
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::handleGeneralDelete):
* editing/InsertLineBreakCommand.cpp:
(WebCore::InsertLineBreakCommand::doApply):
* editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::doApply):
* editing/InsertTextCommand.cpp:
(WebCore::InsertTextCommand::insertTab):
* editing/visible_units.cpp:
(WebCore::previousLinePosition):
(WebCore::nextLinePosition):
Updated for the above moves.
* editing/Editor.cpp:
(WebCore::Editor::advanceToNextMisspelling): Added a missing rangeCompliantEquivalent() call.
* editing/TextIterator.cpp:
(WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator): Changed the condition to obviously
match a maxCharacterOffset() call made after it; hopefully, this doesn't break any border cases.
(WebCore::SimplifiedBackwardsTextIterator::advance): Updated for the above moves.
* editing/htmlediting.h:
* editing/htmlediting.cpp:
(WebCore::canHaveChildrenForEditing): Removed a bogus comment: I don't thin BRs have a special ability to accept
child nodes, other than via DOM manipulation, which is not specific to BRs.
(WebCore::rangeCompliantEquivalent): Removed a check for BR, which is already covered by editingIgnoresContent().
(WebCore::maxDeepOffset): Ditto.
(WebCore::caretMinOffset): Moved from Node. Changed some runtime checks that seemingly cannot fail into assertions.
(WebCore::caretMaxOffset): Ditto.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEventSingleClick): Pass 0 to VisiblePosition constructor instead of
caretMinOffset. I didn't want to include htmlediting.h here, and I think that VisiblePosition constructor
will take care of adjusting the offset.
* page/Frame.cpp: (WebCore::Frame::selectionLayoutChanged): Folded Document::updateSelection() here.
* page/mac/WebCoreFrameBridge.mm:
(-[WebCoreFrameBridge smartDeleteRangeForProposedRange:]): Added missing rangeCompliantEquivalent() calls.
* rendering/RenderBlock.cpp: (WebCore::RenderBlock::positionForRenderer): Changed to not round-trip via editing.
Changed some runtime checks that seemingly cannot fail into assertions.
2007-11-11 Darin Adler <darin@apple.com>
Reviewed by Sam.
- updated for JSRegExp function changes
* platform/RegularExpression.cpp:
(WebCore::RegularExpression::Private::compile):
(WebCore::RegularExpression::match):
2007-11-10 Mark Rowe <mrowe@apple.com>
Qt Linux build fix.
* platform/UnicodeRange.h:
2007-11-10 Mark Rowe <mrowe@apple.com>
Qt Windows build fix.
* platform/UnicodeRange.h:
2007-11-10 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Eric.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=15937 (Add glyph-orientation-horizontal/vertical support)
Fixes: http://bugs.webkit.org/show_bug.cgi?id=13971 (text-anchor support on vertical text seems slightly off)
Add glyph-orientation-* support for text & textPath. (90/180/270 and 'auto')
Also fix all vertical text handling - for text & textPath! (especially latin1 characters auto orientation in vertical writing modes)
* WebCore.pro: Add platform/UnicodeRange.cpp to build
* WebCore.xcodeproj/project.pbxproj: Dito.
* rendering/SVGCharacterLayoutInfo.cpp: Respect orientationShiftX/Y & angle in characterTransform()
(WebCore::SVGChar::characterTransform):
* rendering/SVGCharacterLayoutInfo.h: New variables.
(WebCore::SVGCharOnPath::SVGCharOnPath):
(WebCore::SVGChar::SVGChar):
* rendering/SVGRootInlineBox.cpp: Added glyph-orientation-* handling.
(WebCore::glyphOrientationToAngle):
(WebCore::glyphOrientationIsMultiplyOf180Degrees):
(WebCore::calculateGlyphAdvanceAndShiftRespectingOrientation):
(WebCore::cummulatedHeightOfInlineBoxCharacterRange):
(WebCore::cummulatedWidthOrHeightOfTextChunk):
(WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
2007-11-10 Timothy Hatcher <timothy@apple.com>
Reviewed by Sam Weinig.
* page/inspector/StylesSidebarPane.js: Fix the wording of a comment
and switch over to use getUniqueProperties in another place.
2007-11-10 John Sullivan <sullivan@apple.com>
Reviewed by Sam Weinig
Rest of fix for 5394877
* bindings/js/kjs_window.cpp:
(KJS::Window::isSafeScript):
Don't log unsafe JavaScript attempts in the other version of isSafeScript() if in
private browsing mode either.
2007-11-10 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Oliver.
Fix function name difference - header said 'unicodeRangeForCharacter', actually
implemented function is 'findCharUnicodeRange'. They are not compiled yet.
* platform/UnicodeRange.h:
2007-11-10 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- fix <rdar://problem/5450655> Control-clicking text in a link can surprisingly select only part of the link, should select entire link
No test because context menu events cannot be tested in DumpRenderTree.
* page/EventHandler.cpp:
(WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent): Added.
If the click occurred in an active link, selects the entire link
element. Otherwise selects the closest word.
(WebCore::EventHandler::sendContextMenuEvent): Call
selectClosestWordOrLinkFromMouseEvent().
* page/EventHandler.h:
2007-11-10 John Sullivan <sullivan@apple.com>
Reviewed by Tim Hatcher
- fixed <rdar://problem/5394877> Safari should not log unsafe JavaScript attempts when
in private browsing mode (only an issue if Log JavaScript Exceptions is turned on)
* bindings/js/kjs_window.cpp:
(KJS::Window::isSafeScript):
Don't log unsafe JavaScript attempts to console or chromeClient if in private browsing mode
2007-11-10 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=15922
Implement more of Mozilla Selection API
Tests: editing/selection/containsNode.html
editing/selection/deleteFromDocument.html
editing/selection/extend.html
editing/selection/selectAllChildren.html
* editing/SelectionController.cpp:
(WebCore::SelectionController::deleteFromDocument):
(WebCore::SelectionController::containsNode):
(WebCore::SelectionController::selectAllChildren):
(WebCore::SelectionController::extend):
* editing/SelectionController.h:
Added deleteFromDocument(), containsNode(), and selectAllChildren(). Reimplemented extend(),
which existed, but didn't match Firefox behavior and wasn't exposed via bindings.
Removed a comment mentioning removeRange(), as this method makes no sense without multiple
selection range support.
* page/DOMSelection.cpp:
(WebCore::DOMSelection::extend):
(WebCore::DOMSelection::deleteFromDocument):
(WebCore::DOMSelection::containsNode):
(WebCore::DOMSelection::selectAllChildren):
* page/DOMSelection.h:
* page/DOMSelection.idl:
Exposed the new methods.
2007-11-10 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=15892
DOM Range operations are not implemented for ProcessingInstruction nodes
Test: fast/dom/Range/range-processing-instructions.html
* dom/Range.cpp:
(WebCore::Range::processContents): Implemented ProcessingInstruction cases.
(WebCore::Range::checkNodeWOffset): Removed a FIXME - yes, I think that we are supposed
to use ProcessingInstruction.data.
2007-11-09 Timothy Hatcher <timothy@apple.com>
Reviewed by Mark Rowe.
Bug 12054: Ability to serialize an element subtree (into clipboard?) from the DOM inspector
http://bugs.webkit.org/show_bug.cgi?id=12054
- Add support code for routing copy events to the focused element.
- Implement copying the currently selected DOM node. The node
and it's subtree is copied to the clipboard. If the node has no
outerHTML, the nodeValue is copied (text nodes, etc.)
- Implement copy for the resource sidebar. The URL is copied for the
currently selected resource.
* page/inspector/DocumentPanel.js:
* page/inspector/inspector.js:
2007-11-09 Antti Koivisto <antti@apple.com>
Reviewed by Adele.
Fix occasional blank video with poster attribute.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::load):
(WebCore::HTMLMediaElement::didRestoreFromCache):
Just calling updateFromElement() does the right thing for both poster image and video.
2007-11-04 Sam Weinig <sam@webkit.org>
Reviewed by Adam Roben.
<rdar://problem/5435940>
The COM bindings for the DOM should be autogenerated like the other DOM bindings
Initial commit of the autogeneration of the COM DOM Bindings. No behavior change
is being introduced in this patch and to insure that no conflicts arise, a temporary
prefix of "GEN_" has been used for all the new classes.
The build architecture for these bindings differs slightly from the other autogenerated
bindings. Instead of building in WebCore and migrating the resuting code to WebKit (as
is done for the Objective-C bindigs currently), the IDLs and generation scripts are
migrated to WebKit and built there. This is done with a series of scripts and Makefiles.
This commit includes:
- Hand rolled root class/Interface GEN_DOMObject used to facilated object creation
and ref-counting.
- Generating all of the Core DOM and most of HTML and CSS
- Generating Event, EventTarget, and EventListener
* WebCore.vcproj/MigrateIDLAndScripts.make: Added.
* WebCore.vcproj/WebCore.vcproj:
* WebCore.vcproj/migrate-idls.sh: Added.
* bindings/scripts/CodeGenerator.pm:
* bindings/scripts/CodeGeneratorCOM.pm: Added.
* dom/EventListener.h: Make the isWindowEvent parameter default to false
to allow autogeneration based on the IDL.
2007-11-09 Tristan O'Tierney <tristan@apple.com>
Reviewed by Timothy Hatcher.
This patch is for the WebKit side of <rdar://problem/5591115>.
We need a way to tell context menu navigations, such as "Open in New Window"
to override any sort of browser preference for tab based navigation.
* bridge/WindowFeatures.h:
(WebCore::WindowFeatures::WindowFeatures):
Added a new struct member var, preferredType
and an accompanying enum type PreferredType
to send a window type recommendation up to the Chrome.
* page/ContextMenuController.cpp:
(WebCore::openNewWindow):
Set the window features to recommend a new Window for
"Open in New Window" context menu action.
2007-11-08 Adam Roben <aroben@apple.com>
Fix <rdar://5483519> Pressing Enter on selected buttons should fire onclick
We now match the behavior of Firefox and IE, which is to always just
send a click event to the focused button when the Enter key is pressed
(previously we were submitting forms directly in some cases).
Reviewed by Adele.
Test: fast/forms/enter-clicks-buttons.html
* html/HTMLButtonElement.cpp:
(WebCore::HTMLButtonElement::defaultEventHandler): Don't do anything
fancy when Enter is pressed on a <button type=button> -- just send a
click event like we do for other button types.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::defaultEventHandler): Treat type=button
the same way we treat type=submit and type=reset: just send a click
event when Enter is pressed.
2007-11-09 Dan Bernstein <mitz@apple.com>
Reviewed by Antti Koivisto.
- fix a bug in invisible layer culling: dynamically changing a
descendant of an invisible layer to be visible did not work
Test: fast/layers/layer-content-visibility-change.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::setHasVisibleContent): If we got visible content,
make sure that our stacking context rebuilds its z-order lists to
include us.
2007-11-09 David Hyatt <hyatt@apple.com>
Clean up matrix() parsing. Make sure the first four arguments can be lengths or numbers. The last two
args can be lengths or numbers or percents.
Reviewed by Beth
* WebCore.xcodeproj/project.pbxproj:
* css/CSSParser.cpp:
(WebCore::TransformOperationInfo::TransformOperationInfo):
(WebCore::CSSParser::parseTransform):
* rendering/RenderStyle.h:
(WebCore::MatrixTransformOperation::apply):
2007-11-09 Beth Dakin <bdakin@apple.com>
Reviewed by Oliver.
Fix for <rdar://problem/5586370> CSS Transform - incorrect matrix
math leads to crazy problems
Transform matrices accept the first four parameters as CSS lengths.
CSS lengths get mapped into WebCore::Lengths as percents by
WebCore::convertToLength(). Percent lengths cannot call value(). It
does not yield a correct result and it asserts on Debug builds.
* rendering/RenderStyle.h:
(WebCore::MatrixTransformOperation::apply): Instead of calling
value() on the lengths, call calcValue. This fixes the assert and
the bad rendering.
2007-11-09 Simon Hausmann <hausmann@kde.org>
build/link fix for Qt/Windows.
userIdleTime() is stubbed in win/SystemTimeWin.cpp, so don't
define it twice.
* platform/qt/TemporaryLinkStubs.cpp:
2007-11-09 Simon Hausmann <hausmann@kde.org>
Reviewed by Holger.
Fix ContextMenu allocation in the Qt port.
Store all items and submenus value based in ContextMenu and ContextMenuItem.
That fixes the crashes when the context menu was populated with sub-menus because
of the use of temporary ContextMenu objects like this:
ContextMenu subMenu(...);
subMenu.appendItem(...);
subMenu.appendItem(...);
subMenuItem.setSubMenu(&subMenu); // temporary pointer, need to _copy_ contents
* platform/ContextMenu.h:
* platform/ContextMenuItem.h:
* platform/PlatformMenuDescription.h:
* platform/qt/ContextMenuItemQt.cpp:
(WebCore::ContextMenuItem::ContextMenuItem):
(WebCore::ContextMenuItem::platformSubMenu):
* platform/qt/ContextMenuQt.cpp:
(WebCore::ContextMenu::ContextMenu):
(WebCore::ContextMenu::~ContextMenu):
(WebCore::ContextMenu::appendItem):
(WebCore::ContextMenu::itemCount):
2007-11-09 Peter Kasting <zerodpx@gmail.com>
Reviewed by Mark Rowe.
http://bugs.webkit.org/show_bug.cgi?id=15909
Malformed GIFs should not result in memory corruption.
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::haveDecodedRow):
2007-11-08 Timothy Hatcher <timothy@apple.com>
Reviewed by Sam Weinig.
Some Web Inspector CSS editing changes.
- Only delete the property if all the text is delete or the new user input correctly parses.
This prevents deleting the existing property if the new text is invalid.
- Intercept the Escape key and cancel editing, not saving any changes.
* page/inspector/StylesSidebarPane.js:
2007-11-08 Kevin Ollivier <kevino@theolliviers.com>
Bakefiles for building WebCore, needed by wx port.
Reviewed by Mark Rowe.
* WebCoreSources.bkl: Added.
* webcore-base.bkl: Added.
* webcore-wx.bkl: Added.
2007-11-08 Justin Haygood <jhaygood@reaktix.com>
Reviewed by Mark Rowe.
http://bugs.webkit.org/show_bug.cgi?id=15905
Fix builds with HTML 5 Storage support disabled.
ENABLE(DATABASE) needs to be added in a few places.
* page/InspectorController.cpp:
* storage/Database.h:
2007-11-08 Steve Falkenburg <sfalken@apple.com>
<rdar://problem/5524082> Allow images to be dragged out directly into other apps
We weren't including CF_HDROP in our image drops. This broke drag of
images out of the browser window directly into other apps (examples
include notepad, mspaint, msword).
Reviewed by Oliver, Ada.
* platform/win/ClipboardWin.cpp:
(WebCore::createGlobalImageFileContent): Removed unused variable.
(WebCore::createGlobalHDropContent): Added
(WebCore::writeFileToDataObject): Write HDROP data if available.
(WebCore::writeImageToDataObject): Write HDROP for dragged images.
(WebCore::ClipboardWin::writeURL): Don't write HDROP for dragged URLs.
2007-11-08 Xan Lopez <xan@gnome.org>
Reviewed by Alp.
http://bugs.webkit.org/show_bug.cgi?id=15908
Use g_object_ref_sink when available
* platform/gtk/PopupMenuGtk.cpp:
(WebCore::PopupMenu::show):
* platform/gtk/ScrollViewGtk.cpp:
(WebCore::ScrollView::setGtkAdjustments):
2007-11-08 Dan Bernstein <mitz@apple.com>
Reviewed by Beth Dakin.
- fix <rdar://problem/5491922> REGRESSION (Safari 2-3): Flash-based "Cash Optimizer" on etrade.com does not draw completely
Test: fast/dom/length-attribute-mapping.html
* dom/StyledElement.cpp:
(WebCore::StyledElement::addCSSLength): Changed the garbage-stripping
logic to stop after the first "%" or "*" in the string. This allows for
"100%25" to be mapped to "100%" like it is in Firefox and WinIE.
2007-11-08 Kevin McCullough <kmccullough@apple.com>
- Build fix.
* loader/FrameLoaderClient.h:
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::windowObjectCleared):
2007-11-08 Kevin McCullough <kmccullough@apple.com>
Reviewed by Sam.
- windowObjectCleared() is no longer const. It needs to setup the
script debugger and cannot be const to do so.
* loader/FrameLoaderClient.h:
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::windowObjectCleared):
2007-11-08 Adam Roben <aroben@apple.com>
Hopeful Windows build fix
* rendering/RenderObject.cpp: Touch this file to make it recompile.
2007-11-08 Sam Weinig <sam@webkit.org>
Reviewed by Darin.
Convert JavaScript internal function objects to use one class per
function. This avoids a switch statement inside what used to be
the shared function classes and will allow Shark to better analyze
the code.
To make this switch, the value property of the HashEntry was changed
to a union of an intptr_t (which is used to continue handle valueGetters)
and function pointer which points to a static constructor for the
individual new function objects.
SunSpider claims this is a 1.0% speedup.
- On the WebCore side, I updated CodeGeneratorJS.pm to generate the
new classes and hand updated the remain non-generated (groan) classes.
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::customGetOwnPropertySlot):
* bindings/js/JSEventTargetNode.cpp:
(WebCore::JSEventTargetNodePrototypeFunctionAddEventListener::callAsFunction):
(WebCore::JSEventTargetNodePrototypeFunctionRemoveEventListener::callAsFunction):
(WebCore::JSEventTargetNodePrototypeFunctionDispatchEvent::callAsFunction):
* bindings/js/JSEventTargetNode.h:
* bindings/js/JSHTMLInputElementBase.cpp:
(WebCore::JSHTMLInputElementBaseFunctionSetSelectionRange::callAsFunction):
(WebCore::JSHTMLInputElementBase::getOwnPropertySlot):
* bindings/js/JSHTMLInputElementBase.h:
(WebCore::JSHTMLInputElementBase::):
* bindings/js/JSXMLHttpRequest.cpp:
(KJS::JSXMLHttpRequestPrototypeFunctionAbort::callAsFunction):
(KJS::JSXMLHttpRequestPrototypeFunctionGetAllResponseHeaders::callAsFunction):
(KJS::JSXMLHttpRequestPrototypeFunctionGetResponseHeader::callAsFunction):
(KJS::JSXMLHttpRequestPrototypeFunctionOpen::callAsFunction):
(KJS::JSXMLHttpRequestPrototypeFunctionSend::callAsFunction):
(KJS::JSXMLHttpRequestPrototypeFunctionSetRequestHeader::callAsFunction):
(KJS::JSXMLHttpRequestPrototypeFunctionOverrideMIMEType::callAsFunction):
(KJS::JSXMLHttpRequestPrototypeFunctionAddEventListener::callAsFunction):
(KJS::JSXMLHttpRequestPrototypeFunctionRemoveEventListener::callAsFunction):
(KJS::JSXMLHttpRequestPrototypeFunctionDispatchEvent::callAsFunction):
* bindings/js/JSXMLHttpRequest.h:
(KJS::JSXMLHttpRequest::impl):
* bindings/js/JSXSLTProcessor.cpp:
(KJS::JSXSLTProcessorPrototypeFunctionImportStylesheet::callAsFunction):
(KJS::JSXSLTProcessorPrototypeFunctionTransformToFragment::callAsFunction):
(KJS::JSXSLTProcessorPrototypeFunctionTransformToDocument::callAsFunction):
(KJS::JSXSLTProcessorPrototypeFunctionSetParameter::callAsFunction):
(KJS::JSXSLTProcessorPrototypeFunctionGetParameter::callAsFunction):
(KJS::JSXSLTProcessorPrototypeFunctionRemoveParameter::callAsFunction):
(KJS::JSXSLTProcessorPrototypeFunctionClearParameters::callAsFunction):
(KJS::JSXSLTProcessorPrototypeFunctionReset::callAsFunction):
* bindings/js/JSXSLTProcessor.h:
* bindings/js/kjs_events.cpp:
(WebCore::JSClipboardPrototypeFunctionClearData::callAsFunction):
(WebCore::JSClipboardPrototypeFunctionGetData::callAsFunction):
(WebCore::JSClipboardPrototypeFunctionSetData::callAsFunction):
(WebCore::JSClipboardPrototypeFunctionSetDragImage::callAsFunction):
* bindings/js/kjs_events.h:
* bindings/js/kjs_navigator.cpp:
(KJS::Plugins::):
(KJS::Navigator::getOwnPropertySlot):
(KJS::Plugins::getOwnPropertySlot):
(KJS::PluginsFunctionRefresh::callAsFunction):
(KJS::NavigatorProtoFuncJavaEnabled::callAsFunction):
* bindings/js/kjs_navigator.h:
(KJS::Navigator::):
* bindings/js/kjs_window.cpp:
(KJS::Window::getOwnPropertySlot):
(KJS::Window::put):
(KJS::WindowProtoFuncAToB::callAsFunction):
(KJS::WindowProtoFuncBToA::callAsFunction):
(KJS::WindowProtoFuncOpen::callAsFunction):
(KJS::WindowProtoFuncScrollBy::callAsFunction):
(KJS::WindowProtoFuncScrollTo::callAsFunction):
(KJS::WindowProtoFuncMoveBy::callAsFunction):
(KJS::WindowProtoFuncMoveTo::callAsFunction):
(KJS::WindowProtoFuncResizeBy::callAsFunction):
(KJS::WindowProtoFuncResizeTo::callAsFunction):
(KJS::WindowProtoFuncSetTimeout::callAsFunction):
(KJS::WindowProtoFuncClearTimeout::callAsFunction):
(KJS::WindowProtoFuncSetInterval::callAsFunction):
(KJS::WindowProtoFuncAddEventListener::callAsFunction):
(KJS::WindowProtoFuncRemoveEventListener::callAsFunction):
(KJS::WindowProtoFuncShowModalDialog::callAsFunction):
(KJS::WindowProtoFuncNotImplemented::callAsFunction):
(KJS::Location::getOwnPropertySlot):
(KJS::Location::put):
(KJS::LocationProtoFuncReplace::callAsFunction):
(KJS::LocationProtoFuncReload::callAsFunction):
(KJS::LocationProtoFuncAssign::callAsFunction):
(KJS::LocationProtoFuncToString::callAsFunction):
* bindings/js/kjs_window.h:
(KJS::Window::):
* bindings/scripts/CodeGeneratorJS.pm:
2007-11-08 Mark Rowe <mrowe@apple.com>
Fix the Gtk, Qt and Wx builds.
* platform/gtk/TemporaryLinkStubs.cpp:
* platform/qt/TemporaryLinkStubs.cpp:
* platform/wx/TemporaryLinkStubs.cpp:
2007-11-08 Mark Rowe <mrowe@apple.com>
Not reviewed. Fix two instances of includes using the wrong case in the filename.
* platform/graphics/mac/MoviePrivateQTKit.mm:
* platform/wx/MimeTypeRegistryWx.cpp:
2007-11-08 Darin Adler <darin@apple.com>
Reviewed by Adam.
- fix <rdar://problem/5552943> accesskey does not focus <button> elements
Test: fast/forms/access-key.html
* html/HTMLButtonElement.cpp: (WebCore::HTMLButtonElement::accessKeyAction):
Added a call to focus.
2007-11-07 Darin Adler <darin@apple.com>
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.
2007-11-08 Mark Rowe <mrowe@apple.com>
Build fix for case-sensitive file systems. Fix case of file names
in #include's.
* html/HTMLMediaElement.cpp:
* platform/graphics/Movie.cpp:
2007-11-08 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Lars Knoll <lars@trolltech.com>.
Remove some warnings about not implemented methods.
* ResourceHandle::loadsBlocked and ResourceHandle::supportsBufferedData are
specific to the NS API and won't be implemented on Qt.
* ResourceHandle::bufferedData can not be reached as we return false in
ResourceHandle::supportsBufferedData.
* platform/network/qt/ResourceHandleQt.cpp:
(WebCore::ResourceHandle::supportsBufferedData):
2007-11-08 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Lars Knoll <lars@trolltech.com>.
Cleanup checking for the request method.
* Check the request method only in QWebNetworkManager::add.
* Currently HEAD, GET, POST are allowed and for everything else
QWebNetworkManager::add returns false.
* Returning false is compatible with ResourceHandle::start and it
can be used in ResourceHandle::loadResourceSynchronously to generate
a ResourceError
* platform/network/qt/ResourceHandleQt.cpp:
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::loadResourceSynchronously):
2007-11-08 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Lars Knoll <lars@trolltech.com>.
Implement WebCore::callOnMainThread
Implemented using a global QObject, that is moved to the main thread
and then sending a custom event to it.
Picked a number below QEvent::User but above any other documented value.
* platform/qt/ThreadingQt.cpp:
(WebCore::PerformFunctionEvent::PerformFunctionEvent):
(WebCore::MainThreadInvoker::MainThreadInvoker):
(WebCore::MainThreadInvoker::event):
(WebCore::callOnMainThread):
2007-11-08 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Lars Knoll <lars@trolltech.com>.
Avoid problems with calling QPainter::begin() on an already active paintdevice
* Partial pick from 6200e04c3e0a77873c3b3f3969b65bc701020326 to avoid getting
crashes on Qt/Mac 4.4 with QPainter::begin to fail because we already draw.
* If we are in a layout or need one do not paint. This can happen for the PlatformScrollBar
used by the ScrollView on a layout triggered by QWebPage::paintEvent.
* platform/qt/WidgetQt.cpp:
(WebCore::Widget::invalidateRect):
2007-11-08 Eric Seidel <eric@webkit.org>
No review.
* ksvg2/svg/SVGPathElement.h: remove old comment
2007-11-07 Antti Koivisto <antti@apple.com>
Reviewed by Ollie.
Ensure video renderer has correct size if video has already been loaded
when it is constructed.
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::RenderVideo):
2007-11-07 Antti Koivisto <antti@apple.com>
Reviewed by Ollie.
Ensure video is visible when it should be.
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::updateMovie):
2007-11-07 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- fix <rdar://problem/5523503> Safari crashes clicking scroll bar in FaceBook 'Trips'
Layers and listboxes are two kinds of ScrollBarClient that can be
removed while the scrollbar is tracking the mouse. The scrollbar is not
destroyed until later, and meanwhile it can try to call the client,
which results in a crash.
* manual-tests/stale-scrollbar-client-crash.html: Added.
* platform/ScrollBar.h:
(WebCore::Scrollbar::setClient): Added.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::destroyScrollbar): Call Scrollbar::setClient().
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::~RenderListBox): Ditto.
2007-11-07 Adam Roben <aroben@apple.com>
Fix <rdar://5569268> Crash when opening any FTP site in second tab/window
Reviewed by Sam.
No test possible.
* platform/win/SharedBufferWin.cpp:
(WebCore::SharedBuffer::createWithContentsOfFile): Bail if we get an
empty path, because _wfopen_s will crash if we pass it a null pointer.
2007-11-07 David Kilzer <ddkilzer@apple.com>
WebKit confuses width/height for Media Queries device-aspect-ratio evaluation
<http://bugs.webkit.org/show_bug.cgi?id=14893>
<rdar://problem/5380295>
Reviewed by Darin.
Tests: fast/css/device-aspect-ratio.html
fast/css/max-device-aspect-ratio.html
fast/css/min-device-aspect-ratio.html
* css/MediaQueryEvaluator.cpp:
(WebCore::parseAspectRatio): Renamed method parameters from a/b to h/v.
(WebCore::device_aspect_ratioMediaFeatureEval): Renamed local variables from
a/b to h/v. Switched first two arguments of the call to cmpvalue() to fix
the bug.
2007-11-07 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=15887
REGRESSION (r27576): Crash in RenderStyle::affectedByHoverRules clicking link on Digg
Test: fast/css/display-none-inline-style-change-crash.html
* dom/Element.cpp:
(WebCore::Element::recalcStyle): Fixed the crash by null-checking
the current style and removed other checks that are not strictly
necessary.
2007-11-07 Brady Eidson <beidson@apple.com>
Rubberstamped by Sam
Remove FrameLoaderClient methods from SVG that were pruned awhile ago
* platform/graphics/svg/SVGImageEmptyClients.h:
2007-11-07 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- fix a bug where CSS rules with :hover in the ancestor chain stopped
working after changing the inline style declaration of the ancestor
Test: fast/css/affected-by-hover-after-style-change.html
* dom/Element.cpp:
(WebCore::Element::recalcStyle): If we are not forcing style
recalculation for all descendants, preserve any "affected by
{hover|active|drag} bits that we may have acquired from them.
Also renamed _style to currentStyle.
2007-11-06 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam.
Bug 11920: Web Inspector should have Firebug-like CSS editing
http://bugs.webkit.org/show_bug.cgi?id=11920
* css/CSSComputedStyleDeclaration.h:
(WebCore::CSSComputedStyleDeclaration::isPropertyImplicit): Return false. I'm not sure why
this was true, but computed style has no concept of implicit. So false makes more sense
and makes the code simpler in the inspector. This function was added for the inspector,
so this isn't a compatibility change.
* page/inspector/PropertiesSection.js: Add a getter/setter to reset populated status.
* page/inspector/StylesSidebarPane.js: Some refactoring along with the main support for
style editing.
* page/inspector/inspector.css: Style changes for propery editing and focus correctness.
* page/inspector/inspector.js: Look for a handleKeyEvent function of the focus element before
trying to call a function based on the element's id. Call focused and blurred on the focused
element when currentFocusElement is changed. Use the new listItemElement getter instead of
the private property.
* page/inspector/treeoutline.js: No longer expand on double click if ondblclick is implemented.
Shrink the toggle zone to 10px to better match the size of the arrow. Add an onattach call
to allow generation of the title using the DOM element. Add listItemElement and
childrenListElement getters.
* page/inspector/utilities.js: Add new helper prototype methods on CSSStyleDeclaration.
* page/inspector/DocumentPanel.js: Use the new listItemElement getter instead of the private
property. Also expand the DOM node on double click now that the TreeOutline dosen't do it.
* page/inspector/Resource.js: Use the new listItemElement and childrenListElement getters
instead of the private properties.
2007-11-07 Simon Hausmann <hausmann@kde.org>
Reviewed by Alexey Proskuryakov.
Coding style fix, don't use inline explicitly.
* bridge/WindowFeatures.h:
2007-11-07 Simon Hausmann <hausmann@kde.org>
Reviewed by Maciej.
For safety provide a default constructor for WindowFeatures().
ContextMenuController.cpp: createNewWindow as well as QWebPage need to
create a default initialized WindowFeatures object on the fly.
* bridge/WindowFeatures.h:
(WebCore::WindowFeatures::WindowFeatures):
2007-11-07 Simon Hausmann <shausman@trolltech.com>
Reviewed by Lars.
Fix "nmake clean" for the Qt/Windows build by replacing tmp/ with a variable that ends with the correct type of slash/backslash depending on the choice of compiler/make tool.
* WebCore.pro:
2007-11-07 Simon Hausmann <hausmann@kde.org>
Reviewed by Lars.
Made the QWebSettings::webGraphic functions static. The implementation was using QWebSettings::global() anyway.
* platform/graphics/qt/ImageQt.cpp:
(loadResourcePixmap):
2007-11-07 Simon Hausmann <hausmann@kde.org>
Reviewed by Lars.
Moved the WebCore::Image specific function loadResourcePixmap from qwebsettings.cpp to ImageQt.cpp and made it static.
* platform/graphics/qt/ImageQt.cpp:
(loadResourcePixmap):
2007-11-07 Simon Hausmann <hausmann@kde.org>
Reviewed by Lars.
Restructure the context menu classes for the Qt port. ContextMenu and ContextMenuItem don't store
QActions/QMenus anymore but just store the action type, tag, title and optionally submenu as created
in ContextMenu::populate().
For the actual Qt context menu we traverse this structure after sendContextMenuEvent and create a QMenu
out of it. That menu is currently not functional anymore though.
* platform/ContextMenu.h:
* platform/ContextMenuItem.h:
(WebCore::PlatformMenuItemDescription::PlatformMenuItemDescription):
* platform/PlatformMenuDescription.h:
* platform/qt/ContextMenuItemQt.cpp:
(WebCore::ContextMenuItem::ContextMenuItem):
(WebCore::ContextMenuItem::type):
(WebCore::ContextMenuItem::setType):
(WebCore::ContextMenuItem::action):
(WebCore::ContextMenuItem::setAction):
(WebCore::ContextMenuItem::title):
(WebCore::ContextMenuItem::setTitle):
(WebCore::ContextMenuItem::platformSubMenu):
(WebCore::ContextMenuItem::setSubMenu):
(WebCore::ContextMenuItem::setChecked):
(WebCore::ContextMenuItem::setEnabled):
* platform/qt/ContextMenuQt.cpp:
(WebCore::ContextMenu::ContextMenu):
(WebCore::ContextMenu::~ContextMenu):
(WebCore::ContextMenu::appendItem):
(WebCore::ContextMenu::itemCount):
(WebCore::ContextMenu::insertItem):
(WebCore::ContextMenu::setPlatformDescription):
(WebCore::ContextMenu::platformDescription):
2007-11-07 Simon Hausmann <hausmann@kde.org>
Reviewed by Lars.
Changed ContextMenu::setPlatformDescription for the Qt port to not show the qmenu right away
but instead just behave as a normal setter that takes ownership of the platform menu description (the qmenu).
Instead now QWebPage::contextMenuEvent() retrieves the QMenu after calling sendContextMenuEvent and calls exec()
on it.
* platform/qt/ContextMenuQt.cpp:
2007-11-07 Simon Hausmann <hausmann@kde.org>
Reviewed by Lars.
Changed to PlatformMouseEvent constructor to allow construction from a QContextMenuEvent.
Call sendContextMenuEvent on the event handler from a QWidget::contextMenuEvent re-implementation instead of in mousePressEvent.
* platform/PlatformMouseEvent.h:
* platform/qt/PlatformMouseEventQt.cpp:
(WebCore::PlatformMouseEvent::PlatformMouseEvent):
2007-11-07 Lars Knoll <lars@trolltech.com>
Reviewed by Simon.
don't put nbsp's into the plan text paste
Fix both ClipboardQt and PasteboardQt to replace
nbsp's with spaces before putting the text onto the
native clipboard. This is consistent with Mac and Win
and fixes at least editing/pasteboard/4076267-3.html
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::writeRange):
* platform/qt/PasteboardQt.cpp:
(WebCore::Pasteboard::writeSelection):
2007-11-07 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Lars Knoll <lars@trolltech.com>.
Implement Pasteboard::writeImage()
* Pasteboard is now fully implemented. Copying of Images into the Clipboard
is now supported.
* As with URLs we only copy into the Clipboard (and not additionally to the
Selection)
* platform/qt/PasteboardQt.cpp:
(WebCore::Pasteboard::writeImage):
2007-11-07 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Lars Knoll <lars@trolltech.com>.
Apple CodingStyle fixes
* platform/qt/PasteboardQt.cpp:
(WebCore::Pasteboard::documentFragment):
2007-11-07 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Lars Knoll <lars@trolltech.com>.
Implement Pasteboard::writeURL()
* The URL currently gets written as text/plain and text/uri-list.
The win and mac port have some more types which we currently do
not support. When supporting them we can use the 'titleString'
as well.
* As with writeSelection we only copy into the Clipboard. We could
consider copying into the Selection as well.
* platform/qt/PasteboardQt.cpp:
(WebCore::Pasteboard::writeURL):
2007-11-07 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
Reviewed by Lars Knoll <lars@trolltech.com>.
Kill whitespace
* platform/qt/PasteboardQt.cpp:
(WebCore::Pasteboard::documentFragment):
2007-11-07 Lars Knoll <lars@trolltech.com>
Reviewed by Simon.
Use the correct function calls to convert a selection to
HTML or plain text.
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::setData):
(WebCore::ClipboardQt::writeRange):
* platform/qt/PasteboardQt.cpp:
(WebCore::Pasteboard::writeSelection):
2007-11-07 Lars Knoll <lars@trolltech.com>
Reviewed by Simon.
Some more clipboard fixes.
We have to set things immediately on the QClipBoard if the
Clipboard object is not for dragging.
This is due to the fact that the Clipboard object might be
rather long lived if accessed through javascript (it'll only
get deleted by JS garbage collection). We have to transfer
the data over to the QClipboard before that to make things work.
Fixes editing/execCommand/copy-without-selection.html
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::ClipboardQt):
(WebCore::ClipboardQt::~ClipboardQt):
(WebCore::ClipboardQt::clearData):
(WebCore::ClipboardQt::clearAllData):
(WebCore::ClipboardQt::getData):
(WebCore::ClipboardQt::setData):
(WebCore::ClipboardQt::declareAndWriteDragImage):
(WebCore::ClipboardQt::writeURL):
(WebCore::ClipboardQt::writeRange):
2007-11-07 Simon Hausmann <hausmann@kde.org>
Reviewed by Mark.
Fix compilation on Windows with non-cygwin perl. open FILE, "|-" is
not supported due to implicit forks, use IPC::Open2 instead.
* bindings/scripts/IDLParser.pm:
2007-11-07 Dan Bernstein <mitz@apple.com>
Reviewed by Brady Eidson.
- fix http://bugs.webkit.org/show_bug.cgi?id=15877
REGRESSION: r27486 caused a layout regression at my bank's website
Test: fast/block/float/overhanging-after-height-decrease-offsets.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock):
2007-11-06 Beth Dakin <bdakin@apple.com>
Reviewed by Sam.
<rdar://problem/5575812> REGRESSION:When using absolute positioning
with overflow:auto div, WebKit seems to add an additional 15px
* rendering/RenderBox.cpp:
(WebCore::RenderBox::containingBlockWidthForPositioned): We need to
subtract off the vertical scrollbar width too.
2007-11-06 Justin Garcia <justin.garcia@apple.com>
Reviewed by Dan Bernstein.
<rdar://problem/5583387> ASSERTION FAILED: !refChild->hasTagName(bodyTag) when pasting newline in plain text into rich text Mail
<rdar://problem/5583362> REGRESSION (5523.10.3-TOT): Newlines stripped when pasting plain text in Mail
* editing/markup.cpp:
(WebCore::createFragmentFromText): Put paragraphs of text into clones of the block
that encloses the input context, unless that block is the body, which shouldn't
be cloned. In that case, use regular divs, as we did before r27369.
2007-11-06 Christian Dywan <christian@twotoasts.de>
Reviewed by Darin.
Fix http://bugs.webkit.org/show_bug.cgi?id=15828
Bug 15828: WebKit GTK include and lib directory is installed in qt4-named directory
* WebCore.pro: Use sane default install paths for the gtk port.
2007-11-06 Justin Garcia <justin.garcia@apple.com>
Reviewed by Darin Adler.
<rdar://problem/5576619>
REGRESSION: Caret disappears after deleting the last character in inline hole (15714)
* editing/TypingCommand.cpp:
(WebCore::TypingCommand::deleteSelection): Like the other TypingCommands, including
both of the other deletion commands, call typingAddedToOpenCommand(), which takes
the command's endingSelection and sets it as selection.
2007-11-06 Dan Bernstein <mitz@apple.com>
Reviewed by Antti Koivisto and Dave Hyatt.
- fix <rdar://problem/5582961> Incorrect layout and floating object list corruption when CSS decreases a block's height
Test: fast/block/float/overhanging-after-height-decrease.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock): If after calculating the height
it turns out that there are overhanging floats that were not overhanging
before, rescan children with overhanging floats and add them.
(WebCore::RenderBlock::layoutBlockChildren): Added a parameter that
returns the lowest float bottom of any of the children.
(WebCore::RenderBlock::addOverhangingFloats): Changed to return the
lowest float bottom.
* rendering/RenderBlock.h:
2007-11-06 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Switched all uses of HTMLImageLoader to use OwnPtrs.
* html/HTMLInputElement.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::init):
(WebCore::HTMLInputElement::~HTMLInputElement):
(WebCore::HTMLInputElement::setInputType):
(WebCore::HTMLInputElement::parseMappedAttribute):
(WebCore::HTMLInputElement::attach):
* html/HTMLObjectElement.h:
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::HTMLObjectElement):
(WebCore::HTMLObjectElement::~HTMLObjectElement):
(WebCore::HTMLObjectElement::parseMappedAttribute):
(WebCore::HTMLObjectElement::attach):
* html/HTMLVideoElement.h:
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::HTMLVideoElement):
(WebCore::HTMLVideoElement::attach):
(WebCore::HTMLVideoElement::detach):
(WebCore::HTMLVideoElement::parseMappedAttribute):
2007-11-06 Antti Koivisto <antti@apple.com>
Reviewed by Darin.
Trigger media load on on src attribute changes as specified in new HTML5 draft.
Tests: media/video-src-change.html
media/video-src-remove.html
media/video-src-set.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::attributeChanged):
* html/HTMLMediaElement.h:
2007-11-06 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- fix http://bugs.webkit.org/show_bug.cgi?id=15838
Incomplete repaint toggling "How you know this person" on Facebook
Test: fast/repaint/make-children-non-inline.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::makeChildrenNonInline): Repaint the block. This
is needed because the inline children may be repositioned as they move
into new anonymous blocks, but those blocks have no knowledge of where
their children used to be, so they cannot invalidate those areas.
2007-11-06 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=15847
Some editing cleanup
No change in functionality.
* editing/TextIterator.cpp:
(WebCore::plainText):
* editing/TextIterator.h:
Made WebCore::plainText() return String instead of DeprecatedString.
* bridge/mac/WebCoreAXObject.mm:
(-[WebCoreAXObject textUnderElement]):
(-[WebCoreAXObject value]):
(-[WebCoreAXObject doAXBoundsForTextMarkerRange:]):
(-[WebCoreAXObject doAXNextSentenceEndTextMarkerForTextMarker:]):
(-[WebCoreAXObject doAXPreviousSentenceStartTextMarkerForTextMarker:]):
Updated for the above change. There is no need to explicitly convert to NSString now.
* editing/EditCommand.cpp:
(WebCore::EditCommand::EditCommand): m_startingSelection and m_endingSelection are actually
initialized in constructor body, so the work done in initializer list was wasted.
(WebCore::EditCommand::apply): Moved some stars.
(WebCore::EditCommand::unapply): Ditto.
(WebCore::EditCommand::reapply): Ditto.
(WebCore::EditCommand::setStartingSelection): The loop exit condition was evaluated twice,
removed one of the checks.
* editing/SelectionController.cpp:
(WebCore::SelectionController::toString): plainText() result type now matches what we need here.
* page/mac/WebCoreFrameBridge.h:
* page/mac/WebCoreFrameBridge.mm:
Removed unused -[WebCoreFrameBridge deleteKeyPressedWithSmartDelete:granularity:] and
-[WebCoreFrameBridge forwardDeleteKeyPressedWithSmartDelete:granularity:].
2007-11-05 Mark Rowe <mrowe@apple.com>
Mac build fix.
* bindings/js/JSHTMLDocumentCustom.cpp:
(WebCore::writeHelper):
2007-11-05 Adam Roben <aroben@apple.com>
Don't crash if SafariTheme can't be loaded
PlatformScrollBarSafari and RenderThemeSafari were not checking
whether SafariTheme was successfully loaded. All other uses of
SafariTheme already check this.
Reviewed by Steve.
* platform/win/PlatformScrollBarSafari.cpp: Don't paint if SafariTheme
couldn't be loaded.
(WebCore::PlatformScrollbar::paintButton):
(WebCore::PlatformScrollbar::paintTrack):
(WebCore::PlatformScrollbar::paintThumb):
* rendering/RenderThemeSafari.cpp:
(WebCore::RenderThemeSafari::isControlStyled): Always return true if
we couldn't load SafariTheme. This way we should never try to paint
themed controls (and we assert as such in the paint functions).
(WebCore::RenderThemeSafari::paintCheckbox):
(WebCore::RenderThemeSafari::paintRadio):
(WebCore::RenderThemeSafari::paintButton):
(WebCore::RenderThemeSafari::paintTextField):
(WebCore::RenderThemeSafari::paintCapsLockIndicator):
(WebCore::RenderThemeSafari::paintTextArea):
(WebCore::RenderThemeSafari::paintMenuList):
(WebCore::RenderThemeSafari::paintSliderThumb):
(WebCore::RenderThemeSafari::paintSearchField):
(WebCore::RenderThemeSafari::paintSearchFieldCancelButton):
(WebCore::RenderThemeSafari::paintSearchFieldResultsDecoration):
(WebCore::RenderThemeSafari::paintSearchFieldResultsButton):
2007-11-05 Kevin Ollivier <kevino@theolliviers.com>
Adding the rest of wx port's graphics impl.
Rubber-stamped by Maciej Stachowiak.
* platform/graphics/wx/AffineTransformWx.cpp: Added.
* platform/graphics/wx/GraphicsContextWx.cpp: Added.
* platform/graphics/wx/ImageBufferWx.cpp: Added.
* platform/graphics/wx/ImageSourceWx.cpp: Added.
* platform/graphics/wx/ImageWx.cpp: Added.
* platform/graphics/wx/PathWx.cpp: Added.
2007-11-05 Kevin Ollivier <kevino@theolliviers.com>
wx port bug fixes and new files to get platform/wx building on trunk.
Rubber-stamped by Maciej Stachowiak.
* platform/wx/CursorWx.cpp:
* platform/wx/FileSystemWx.cpp: Added.
* platform/wx/FontCacheWx.cpp:
* platform/wx/FontPlatformDataWx.cpp:
* platform/wx/FontWx.cpp:
* platform/wx/KeyboardEventWx.cpp:
* platform/wx/LocalizedStringsWx.cpp: Added.
* platform/wx/LoggingWx.cpp: Added.
* platform/wx/RenderThemeWx.cpp:
* platform/wx/ScrollViewWx.cpp:
* platform/wx/SharedTimerWx.cpp:
* platform/wx/StringWx.cpp:
* platform/wx/ThreadingWx.cpp: Added.
* platform/wx/WidgetWx.cpp:
2007-11-05 Adele Peterson <adele@apple.com>
Reviewed by Maciej.
Fix for <rdar://problem/5579999> Add poster attribute for video element
* html/HTMLAttributeNames.in: Added poster attribute.
* html/HTMLImageLoader.cpp: (WebCore::HTMLImageLoader::updateFromElement):
Calls imageSourceAttributeName instead of having special cases for the different kinds of elements.
* dom/Element.cpp: (WebCore::Element::imageSourceAttributeName): Added.
* dom/Element.h:
* html/HTMLObjectElement.cpp: (WebCore::HTMLObjectElement::imageSourceAttributeName): Added.
* html/HTMLObjectElement.h:
* html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::movieNetworkStateChanged):
Calls updatePosterImage when the network state is empty and when the first frame has been loaded.
* html/HTMLMediaElement.h: (WebCore::HTMLMediaElement::rendererIsNeeded): Made this inline. HTMLVideoElement now also implements this.
* html/HTMLVideoElement.idl: Added case for poster attribute.
* html/HTMLVideoElement.h: Added image loader and flag to keep track of whether or not the poster image should be shown.
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::HTMLVideoElement): Initialize m_imageLoader and m_shouldShowPosterImage.
(WebCore::HTMLVideoElement::rendererIsNeeded): Calls HTMLElement::rendererIsNeeded since HTMLMediaElements have renderer by default.
(WebCore::HTMLVideoElement::createRenderer): Create a RenderImage or RenderVideo depending on whether or not the poster image should be shown.
(WebCore::HTMLVideoElement::attach): Set up image loader and RenderImage if necessary.
(WebCore::HTMLVideoElement::detach): Delete image loader if its no longer needed.
(WebCore::HTMLVideoElement::parseMappedAttribute): Added case to process poster attribute.
(WebCore::HTMLVideoElement::poster): Added getter for poster attribute.
(WebCore::HTMLVideoElement::setPoster): Added setter for poster attribute.
(WebCore::HTMLVideoElement::isURLAttribute): Added.
(WebCore::HTMLVideoElement::imageSourceAttributeName): Added.
(WebCore::HTMLVideoElement::updatePosterImage): Added. Updates m_shouldShowPosterImage and if its changed, detaches and attaches so the renderer is correct.
2007-11-05 Adam Roben <aroben@apple.com>
Fix <rdar://5563572> SVG image support is turned off
Turned on SVG images for all platforms.
Reviewed by Eric.
* WebCore.vcproj/WebCore.vcproj: Added SVGImage.{cpp,h}
* loader/CachedImage.cpp:
(WebCore::CachedImage::createImage): Removed platform checks for
SVGImage.
2007-11-05 Antti Koivisto <antti@apple.com>
Reviewed by Darin.
QTMovieView can generate callbacks during paint. This can lead to crashes.
Delay callbacks so they get handled after painting is completed. No test case,
I don't know how to reliably reproduce this.
* platform/graphics/mac/MoviePrivateQTKit.mm:
(WebCore::MoviePrivate::MoviePrivate):
(WebCore::MoviePrivate::~MoviePrivate):
(WebCore::MoviePrivate::paint):
(-[WebCoreMovieObserver initWithCallback:WebCore::]):
(-[WebCoreMovieObserver disconnect]):
(-[WebCoreMovieObserver loadStateChanged:]):
(-[WebCoreMovieObserver rateChanged:]):
(-[WebCoreMovieObserver sizeChanged:]):
(-[WebCoreMovieObserver timeChanged:]):
(-[WebCoreMovieObserver volumeChanged:]):
(-[WebCoreMovieObserver didEnd:]):
(-[WebCoreMovieObserver setDelayCallbacks:]):
2007-11-05 Antti Koivisto <antti@apple.com>
Reviewed by Adam.
Add some missing WebCore* prefixes to ObjC classes
* platform/mac/FileChooserMac.mm:
(WebCore::FileChooser::FileChooser):
* platform/mac/SharedBufferMac.mm:
(WebCore::SharedBuffer::createNSData):
(WebCore::SharedBuffer::createCFData):
* platform/mac/SharedTimerMac.cpp:
(WebCore::setSharedTimerFireTime):
2007-11-05 Ada Chan <adachan@apple.com>
<rdar://problem/5579772> Regression: AltGr does not work
We now store the system key event info in PlatforkKeyboardEvent().
Reviewed by Oliver.
* platform/PlatformKeyboardEvent.h:
(WebCore::PlatformKeyboardEvent::isSystemKey):
* platform/win/KeyEventWin.cpp:
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2007-11-02 Tristan O'Tierney <tristan@apple.com>
Reviewed by Darin Adler.
* WebCore.xcodeproj/project.pbxproj:
Set WindowFeatures.h as a Private header.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::createWindow):
Revised to use a single createWindow function instead of
two createWindow functions and one createModalDialog function.
The logic for this is now addressed in WebKit in an effort
to make this easier to follow.
* page/Chrome.cpp:
(WebCore::Chrome::createWindow):
* page/Chrome.h:
* page/ChromeClient.h:
* page/ContextMenuController.cpp:
(WebCore::openNewWindow):
* platform/graphics/svg/SVGImageEmptyClients.h:
(WebCore::SVGEmptyChromeClient::createWindow):
Revised to take new additional windowFeatures parameter.
2007-11-04 Geoffrey Garen <ggaren@apple.com>
Reviewed by Darin Adler.
http://bugs.webkit.org/show_bug.cgi?id=15835
Small adaptations to new KJS::List class.
* bindings/js/kjs_window.cpp:
(KJS::WindowFunc::callAsFunction):
(KJS::ScheduledAction::ScheduledAction):
2007-11-05 Adam Roben <aroben@apple.com>
Allow passing a base class pointer to COMPtr::copyRefTo
Reviewed by Sam.
* platform/win/COMPtr.h:
2007-11-05 Dan Bernstein <mitz@apple.com>
Reviewed by Oliver Hunt.
- fix ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key) when a class attribute is all-whitespace
Test: fast/dom/class-all-whitespace.html
* dom/StyledElement.cpp:
(WebCore::StyledElement::parseMappedAttribute): Check if there is any
non-whitespace character in the class attribute.
2007-11-05 Brady Eidson <beidson@apple.com>
Reviewed by Sam
Add transaction blocking to the DatabaseAuthorizer in preparation for the new version
of the sql storage API
* storage/DatabaseAuthorizer.cpp:
(WebCore::DatabaseAuthorizer::allowTransaction):
* storage/DatabaseAuthorizer.h:
2007-11-05 Mark Rowe <mrowe@apple.com>
Reviewed by Alp Toker.
Have getMIMETypeForExtension return a null string when no MIME type is known
for the extension rather than returning "text/plain". This prevents plugin data
being dumped into object elements when plugins are disabled.
* platform/gtk/MIMETypeRegistryGtk.cpp:
(WebCore::MIMETypeRegistry::getMIMETypeForExtension):
2007-11-04 Sam Weinig <sam@webkit.org>
Rubber-stamped by Adam Roben.
Rename SecurityOrigin::allowsAccessFrom to SecurityOrigin::canAccess to
clear up ambiguity.
* bindings/js/kjs_window.cpp:
(KJS::Window::isSafeScript):
* platform/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::canAccess):
* platform/SecurityOrigin.h:
2007-11-04 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam.
Bug 15834: There are many subtle bugs in the Styles pane of the Web Inspector
http://bugs.webkit.org/show_bug.cgi?id=15834
- Broke up DocumentPanel and added three SidebarPane sub-classes.
- Fixed many Style pane bugs, including:
* Poor handling of duplicate properties in the same rule. Some of this can't be
fixed since we can't only get the "winning" value for duplicate properties.
So we should only show one entry per unique property name.
* Computed style does not show font shorthand sub-properties if 'font' was used.
* Property priority was broken, the wrong properties were crossed out.
* The 'border' shorthand shows null for the shorthand value.
* Shorthands didn't show their priority (e.g. !important).
* HSL and HTML hex colors didn't have preview swatch blocks.
* Code refactoring, making it easier to reuse for console.log later.
* page/inspector/DocumentPanel.js: Move sidebar pane code to three seperate
classes in new files.
* page/inspector/MetricsSidebarPane.js: Added.
* page/inspector/Panel.js: Remove an InspectorController.log() call.
* page/inspector/PropertiesSection.js: Add the section to the TreeOutline.
So TreeElements can access properties on their section.
* page/inspector/PropertiesSidebarPane.js: Added.
* page/inspector/SidebarPane.js: Remove the explicit asignment of the
onexpand and oncollapse to null. These were hiding prototypes.
* page/inspector/StylesSidebarPane.js: Added.
* page/inspector/inspector.html: Include the new script files.
* page/inspector/treeoutline.js: If a null representedObject is passed
in just use a empty object.
2007-11-04 David D. Kilzer <ddkilzer@webkit.org>
Fix build when spaces appear in the WebKit source path.
Reviewed by Mark Rowe.
* bindings/scripts/IDLParser.pm: Use safer open() method which lists
arguments individually and prevents the need to work around spaces
in the path.
2007-11-04 Alp Toker <alp@atoker.com>
Reviewed by Alexey Proskuryakov.
Fix a crash when no clipboard text is available
* platform/gtk/PasteboardGtk.cpp:
(WebCore::Pasteboard::plainText):
2007-11-03 Darin Adler <darin@apple.com>
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.
2007-11-03 Kevin Ollivier <kevino@theolliviers.com>
Update the link stubs to match the current build,
and fix coding style issues.
Reviewed by Mark Rowe.
* platform/wx/TemporaryLinkStubs.cpp:
(loadResourceIntoArray):
(findNextSentenceFromIndex):
(findSentenceBoundary):
(Frame::dashboardRegionsChanged):
(WebCore::historyContains):
(CachedPage::close):
(Editor::showStylesPanel):
(EventHandler::passSubframeEventToSubframe):
(EventHandler::passWheelEventToWidget):
(WebCore::currentTextBreakLocaleID):
2007-11-03 Kevin Ollivier <kevino@theolliviers.com>
wx <-> WebKit conversions for IntPoint, IntRect and FloatRect
Reviewed by Mark Rowe.
* platform/graphics/wx/FloatRectWx.cpp: Added.
* platform/graphics/wx/IntPointWx.cpp: Added.
* platform/graphics/wx/IntRectWx.cpp: Added.
2007-11-03 Kevin Ollivier <kevino@theolliviers.com>
wx <-> WebKit data type conversions for Pen and Color.
Reviewed by Darin Adler.
* platform/graphics/wx: Added.
* platform/graphics/wx/ColorWx.cpp: Added.
* platform/graphics/wx/PenWx.cpp: Added.
2007-11-03 Sam Weinig <sam@webkit.org>
Reviewed by Oliver.
Remove dummy variable from ClassInfo reducing the size of the struct by 1 word.
The variable had been kept around for binary compatibility, but since nothing
else is there is no point in continuing to keep it around.
* bindings/js/JSDOMExceptionConstructor.cpp:
(WebCore::):
* bindings/js/JSHTMLInputElementBase.cpp:
(WebCore::):
* bindings/js/JSNamedNodesCollection.cpp:
(WebCore::):
* bindings/js/JSXMLHttpRequest.cpp:
(KJS::):
* bindings/js/JSXSLTProcessor.cpp:
(KJS::):
* bindings/js/kjs_css.cpp:
(WebCore::):
* bindings/js/kjs_events.cpp:
(WebCore::):
* bindings/js/kjs_navigator.cpp:
(KJS::):
* bindings/js/kjs_window.cpp:
(KJS::):
* bindings/scripts/CodeGeneratorJS.pm:
2007-11-03 Kevin Ollivier <kevino@theolliviers.com>
Build fixes to get wx impls. building on trunk.
Reviewed by Mark Rowe.
* platform/wx/DragDataWx.cpp:
(WebCore::DragData::containsFiles):
(WebCore::DragData::asFilenames):
* platform/wx/DragImageWx.cpp:
(WebCore::scaleDragImage):
* platform/wx/MimeTypeRegistryWx.cpp:
(WebCore::MIMETypeRegistry::getMIMETypeForExtension):
* platform/wx/MouseEventWx.cpp:
(WebCore::PlatformMouseEvent::PlatformMouseEvent):
* platform/wx/MouseWheelEventWx.cpp:
* platform/wx/PasteboardWx.cpp:
(WebCore::Pasteboard::writeImage):
* platform/wx/WidgetWx.cpp:
(WebCore::Widget::setCursor):
2007-11-03 David D. Kilzer <ddkilzer@webkit.org>
Sort files(...); sections of Xcode project files.
Rubber-stamped by Darin.
* WebCore.xcodeproj/project.pbxproj:
* manual-tests/NPN_Invoke/NPN_Invoke.xcodeproj/project.pbxproj:
2007-11-03 Kevin Ollivier <kevino@theolliviers.com>
Coding style fixes for platform/wx files.
Reviewed by Mark Rowe.
* platform/wx/ClipboardWx.cpp:
* platform/wx/GlyphMapWx.cpp:
* platform/wx/ScreenWx.cpp:
2007-11-03 Alp Toker <alp@atoker.com>
Reviewed by Mark Rowe.
Implement platform scrollbar static width/height getters
* platform/gtk/PlatformScrollBar.h:
* platform/gtk/PlatformScrollBarGtk.cpp:
(scrollbarSize):
(PlatformScrollbar::horizontalScrollbarHeight):
2007-11-03 Alp Toker <alp@atoker.com>
Reviewed by Mark Rowe.
Cast function pointers to gpointer.
* platform/gtk/PlatformScrollBarGtk.cpp:
(PlatformScrollbar::~PlatformScrollbar):
2007-11-03 Alp Toker <alp@atoker.com>
Reviewed by Adam Roben.
RenderThemeGtk implementation based on Mozilla's GTK+ style code
There is still work needed to complete this feature.
* WebCore.pro:
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::theme):
(WebCore::RenderThemeGtk::RenderThemeGtk):
(WebCore::supportsFocus):
(WebCore::RenderThemeGtk::supportsFocusRing):
(WebCore::RenderThemeGtk::controlSupportsTints):
(WebCore::RenderThemeGtk::baselinePosition):
(WebCore::adjustMozStyle):
(WebCore::setMozState):
(WebCore::paintMozWidget):
(WebCore::setButtonPadding):
(WebCore::setToggleSize):
(WebCore::RenderThemeGtk::setCheckboxSize):
(WebCore::RenderThemeGtk::paintCheckbox):
(WebCore::RenderThemeGtk::setRadioSize):
(WebCore::RenderThemeGtk::paintRadio):
(WebCore::RenderThemeGtk::adjustButtonStyle):
(WebCore::RenderThemeGtk::paintButton):
(WebCore::RenderThemeGtk::adjustMenuListStyle):
(WebCore::RenderThemeGtk::paintMenuList):
(WebCore::RenderThemeGtk::adjustTextFieldStyle):
(WebCore::RenderThemeGtk::paintTextField):
(WebCore::RenderThemeGtk::adjustSearchFieldResultsButtonStyle):
(WebCore::RenderThemeGtk::paintSearchFieldResultsButton):
(WebCore::RenderThemeGtk::adjustSearchFieldResultsDecorationStyle):
(WebCore::RenderThemeGtk::paintSearchFieldResultsDecoration):
(WebCore::RenderThemeGtk::adjustSearchFieldCancelButtonStyle):
(WebCore::RenderThemeGtk::paintSearchFieldCancelButton):
(WebCore::RenderThemeGtk::adjustSearchFieldStyle):
(WebCore::RenderThemeGtk::paintSearchField):
(WebCore::RenderThemeGtk::platformActiveSelectionBackgroundColor):
(WebCore::RenderThemeGtk::platformInactiveSelectionBackgroundColor):
(WebCore::RenderThemeGtk::platformActiveSelectionForegroundColor):
(WebCore::RenderThemeGtk::platformInactiveSelectionForegroundColor):
(WebCore::RenderThemeGtk::activeListBoxSelectionBackgroundColor):
(WebCore::RenderThemeGtk::inactiveListBoxSelectionBackgroundColor):
(WebCore::RenderThemeGtk::activeListBoxSelectionForegroundColor):
(WebCore::RenderThemeGtk::inactiveListBoxSelectionForegroundColor):
(WebCore::RenderThemeGtk::caretBlinkFrequency):
(WebCore::RenderThemeGtk::systemFont):
(WebCore::gtkStyleSetCallback):
(WebCore::RenderThemeGtk::gtkContainer):
(WebCore::RenderThemeGtk::gtkEntry):
(WebCore::RenderThemeGtk::gtkTreeView):
* platform/gtk/RenderThemeGtk.h:
* platform/gtk/gtk2drawing.c: Added.
(moz_gtk_enable_style_props):
(ensure_window_widget):
(setup_widget_prototype):
(ensure_button_widget):
(ensure_checkbox_widget):
(ensure_radiobutton_widget):
(ensure_scrollbar_widget):
(ensure_spin_widget):
(ensure_scale_widget):
(ensure_entry_widget):
(ensure_option_menu_widget):
(ensure_arrow_widget):
(ensure_handlebox_widget):
(ensure_toolbar_widget):
(ensure_tooltip_widget):
(ensure_tab_widget):
(ensure_progress_widget):
(ensure_frame_widget):
(ensure_menu_bar_widget):
(ensure_menu_bar_item_widget):
(ensure_menu_popup_widget):
(ensure_menu_item_widget):
(ensure_check_menu_item_widget):
(ConvertGtkState):
(TSOffsetStyleGCArray):
(TSOffsetStyleGCs):
(moz_gtk_button_paint):
(moz_gtk_init):
(moz_gtk_checkbox_get_metrics):
(moz_gtk_radio_get_metrics):
(moz_gtk_checkbox_get_focus):
(moz_gtk_radio_get_focus):
(moz_gtk_button_get_focus):
(moz_gtk_option_menu_get_metrics):
(moz_gtk_toggle_paint):
(calculate_arrow_dimensions):
(moz_gtk_scrollbar_button_paint):
(moz_gtk_scrollbar_trough_paint):
(moz_gtk_scrollbar_thumb_paint):
(moz_gtk_spin_paint):
(moz_gtk_scale_paint):
(moz_gtk_scale_thumb_paint):
(moz_gtk_gripper_paint):
(moz_gtk_entry_paint):
(moz_gtk_option_menu_paint):
(moz_gtk_dropdown_arrow_paint):
(moz_gtk_container_paint):
(moz_gtk_toggle_label_paint):
(moz_gtk_toolbar_paint):
(moz_gtk_tooltip_paint):
(moz_gtk_frame_paint):
(moz_gtk_progressbar_paint):
(moz_gtk_progress_chunk_paint):
(moz_gtk_tab_paint):
(moz_gtk_tabpanels_paint):
(moz_gtk_menu_bar_paint):
(moz_gtk_menu_popup_paint):
(moz_gtk_menu_item_paint):
(moz_gtk_check_menu_item_paint):
(moz_gtk_window_paint):
(moz_gtk_get_widget_border):
(moz_gtk_get_dropdown_arrow_size):
(moz_gtk_get_scalethumb_metrics):
(moz_gtk_get_scrollbar_metrics):
(moz_gtk_widget_paint):
(moz_gtk_get_scrollbar_widget):
(moz_gtk_shutdown):
* platform/gtk/gtkdrawing.h: Added.
2007-11-03 Alp Toker <alp@atoker.com>
Reviewed by Mark Rowe.
Do not allow scrollbars to handle wheel events
We bubble the wheel event up so the parent can handle it instead.
* platform/gtk/PlatformScrollBarGtk.cpp:
(gtkScrollEventCallback):
(PlatformScrollbar::PlatformScrollbar):
(PlatformScrollbar::~PlatformScrollbar):
2007-11-03 Alp Toker <alp@atoker.com>
Reviewed by Mark Rowe.
Frame scrolling and invalidation fixes
Make upward scroll events have a positive delta to match other ports.
Fix the invalidation rect offset for frames so that scrolling works properly.
Avoid allocating negative sizes to widgets to avoid GTK+ warnings.
Allow tabbing to all widgets and links.
Fix event returns, improving the focus situation and correcting scroll wheel
behavior.
* page/gtk/EventHandlerGtk.cpp:
(WebCore::EventHandler::tabsToAllControls):
(WebCore::EventHandler::passWheelEventToWidget):
* platform/gtk/ScrollViewGtk.cpp:
(WebCore::ScrollViewScrollbar::geometryChanged):
(WebCore::ScrollView::updateContents):
(WebCore::ScrollView::update):
(WebCore::ScrollView::wheelEvent):
(WebCore::ScrollView::updateScrollbars):
* platform/gtk/WheelEventGtk.cpp:
(WebCore::PlatformWheelEvent::PlatformWheelEvent):
2007-11-03 David D. Kilzer <ddkilzer@webkit.org>
LGPL'ed files contain incorrect FSF address
<http://bugs.webkit.org/show_bug.cgi?id=14885>
* bindings/js/JSSVGTransformListCustom.cpp:
* ksvg2/svg/SVGException.idl:
* ksvg2/svg/SVGTextPathElement.cpp:
* ksvg2/svg/SVGTextPathElement.h:
* ksvg2/svg/SVGViewSpec.cpp:
* ksvg2/svg/SVGViewSpec.h:
* platform/mac/FontCustomPlatformData.cpp:
* platform/mac/FontCustomPlatformData.h:
* platform/mac/FontPlatformDataMac.mm:
* platform/win/FontCustomPlatformData.cpp:
* platform/win/FontCustomPlatformData.h:
* rendering/RenderSVGRoot.cpp:
* rendering/RenderSVGRoot.h:
* rendering/RenderSVGTextPath.cpp:
* rendering/RenderSVGTextPath.h:
* rendering/RenderSVGTransformableContainer.h:
* rendering/RenderSVGViewportContainer.cpp:
* rendering/RenderSVGViewportContainer.h:
* rendering/SVGCharacterLayoutInfo.cpp:
* rendering/SVGCharacterLayoutInfo.h:
* rendering/SVGRenderSupport.cpp:
* rendering/SVGRenderSupport.h:
2007-11-02 Antti Koivisto <antti@apple.com>
Reviewed by Adam.
Add video width/height DOM and content attributes from latest HTML5 draft.
Test: media/video-width-height.html
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::parseMappedAttribute):
(WebCore::HTMLVideoElement::width):
(WebCore::HTMLVideoElement::setWidth):
(WebCore::HTMLVideoElement::height):
(WebCore::HTMLVideoElement::setHeight):
* html/HTMLVideoElement.h:
* html/HTMLVideoElement.idl:
2007-11-02 Darin Adler <darin@apple.com>
Reviewed by Maciej.
* DerivedSources.make: Remove a few explicit filenames from some rules by using
make variables a little more.
* WebCore.LP64.exp: Fix typo, grammar.
2007-11-02 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- use the new HashMap::take function where appropriate
* bindings/js/kjs_binding.cpp:
(KJS::addWrapper): Made an inline rather than a macro; inlines good, macros bad.
(KJS::removeWrapper): Ditto.
(KJS::removeWrappers): Ditto.
(KJS::ScriptInterpreter::putDOMObject): Use the inline instead of the macro.
(KJS::ScriptInterpreter::forgetDOMObject): Ditto. This involves using take instead
of remove -- in theory ever so slightly less efficient, but I think it's fine.
(KJS::ScriptInterpreter::forgetDOMNodeForDocument): Ditto.
(KJS::ScriptInterpreter::putDOMNodeForDocument): Use the inline instead of the macro.
(KJS::ScriptInterpreter::forgetAllDOMNodesForDocument): Use take instead of find/remove.
(KJS::ScriptInterpreter::updateDOMNodeDocument): Use the inlines instead of the macros.
* bindings/js/kjs_window.cpp: (KJS::Window::clearTimeout): Use take instead of find/remove.
* bridge/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::remove): Ditto.
* page/AnimationController.cpp: (WebCore::AnimationControllerPrivate::clear): Ditto.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::~RenderBlock): Ditto.
(WebCore::RenderBlock::setDesiredColumnCountAndWidth): Ditto.
* rendering/RootInlineBox.cpp: Ditto.(WebCore::RootInlineBox::detachEllipsisBox): Ditto.
2007-11-02 Antti Koivisto <antti@apple.com>
Reviewed by Darin.
Enable video composition.
* WebCore.base.exp:
* platform/graphics/mac/MoviePrivateQTKit.mm:
(WebCore::MoviePrivate::createQTMovieView):
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
2007-11-02 Darin Adler <darin@apple.com>
Reviewed by Mitz.
- fix http://bugs.webkit.org/show_bug.cgi?id=15806
<rdar://problem/5561626> ASSERT(element->isRadioButton()) fires destroying form elements
Test: fast/forms/remove-radio-button-assert.html
* html/HTMLGenericFormElement.cpp: (WebCore::HTMLGenericFormElement::removeFromForm):
Added protected function to be used by derived classes that need to do the same sort
of removal from form that's automatically done by the base class in certain circumstances.
* html/HTMLGenericFormElement.h: Added removeFromForm.
* html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::~HTMLInputElement):
Call removeFromForm here so the element is removed before we destroy the HTMLInputElement
part of this object. By the time we get to the base class's destructor it's too late.
The problem is specific to radio buttons so we don't have to worry about other classes
derived from HTMLGenericFormElement.
2007-11-02 Darin Adler <darin@apple.com>
Reviewed by Mitz.
- speculative fix for http://bugs.webkit.org/show_bug.cgi?id=15805
<rdar://problem/5510779> crashes in isLoadingMultipartContent
* loader/DocumentLoader.cpp: (WebCore::DocumentLoader::isLoadingMultipartContent):
Instead of asserting the frame loader is non-0, return false if it is 0.
2007-11-02 Darin Adler <darin@apple.com>
Reviewed by Mitz.
- fix <rdar://problem/5530185> WebKit does not show <object> fallback content when both
URL and MIME type is omitted
Already covered by existing tests (that had incorrect results).
* loader/FrameLoader.cpp: (WebCore::FrameLoader::requestObject): Return false to indicate
failure when both URL and MIME type are empty. The old code would not attempt a load, but
it would indicate success.
* rendering/RenderPartObject.cpp: (WebCore::RenderPartObject::updateWidget): Remove
non-helpful early exit for the case where there is no URL and no type. Returning early
prevents the fallback code from running.
2007-11-02 Alp Toker <alp@atoker.com>
Reviewed by Darin.
Include Cairo headers properly
* platform/graphics/AffineTransform.h:
* platform/graphics/ImageBuffer.h:
* platform/graphics/cairo/AffineTransformCairo.cpp:
* platform/gtk/FontPlatformDataGtk.cpp:
2007-11-01 Oliver Hunt <oliver@apple.com>
Reviewed by Alexey.
Make sure we send the correct events for Capslock, Shift, Ctrl, Alt and the Windows key
* platform/win/KeyEventWin.cpp:
(WebCore::keyIdentifierForWindowsKeyCode):
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2007-11-01 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
In preparation for making List a simple stack-allocated Vector:
Removed all instances of List copying, assignment, and/or storage.
Layout tests and JS tests pass.
* bindings/js/kjs_window.cpp:
(KJS::WindowFunc::callAsFunction): Stores a Vector of protected
JSValue*'s instead of a List now. Converts to List on the fly when
calling the timer function. This is slightly less efficient, but the
common case is 0-2 arguments, so it's no biggie.
(HTML iBench shows no regression. PLT does not use JS timers.)
(KJS::ScheduledAction::execute): Uses the more efficient and non-copying
List::slice now.
(KJS::ScheduledAction::ScheduledAction): ditto
* bindings/objc/WebScriptObject.mm:
(getListFromNSArray): Takes a List out parameter now, to avoid copying.
2007-11-01 Oliver Hunt <oliver@apple.com>
Reviewed by Geoff.
Correct event behaviour on certain control keys
Make sure we send the correct keyDown and keyUp events for the
control keys CapsLock, Shift, Ctrl, Alt, and Meta/Command, and
uses Windows key codes for the event keyCode.
* WebCore.base.exp:
* page/EventHandler.cpp:
(WebCore::EventHandler::keyEvent):
* platform/PlatformKeyboardEvent.h:
* platform/gtk/KeyEventGtk.cpp:
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
* platform/mac/KeyEventMac.mm:
(WebCore::keyIdentifierForKeyEvent):
(WebCore::WindowsKeyCodeForKeyEvent):
(WebCore::isKeyUpEvent):
(WebCore::textFromEvent):
(WebCore::unmodifiedTextFromEvent):
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
* platform/win/KeyEventWin.cpp:
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
* platform/wx/KeyEventWin.cpp:
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2007-11-01 Timothy Hatcher <timothy@apple.com>
Reviewed by Sam.
* page/inspector/inspector.css: Use the white disclosure triangles
when a parent DOM element is sepected.
2007-11-01 Justin Garcia <justin.garcia@apple.com>
Reviewed by Oliver Hunt.
<rdar://problem/5195056> Huge plain text pastes are slow, time spent in ApplyStyleCommand::doApply
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::doApply): No need to match style when pasting
into a plaintext-only region, since when we build the fragment to insert from
plain text, we don't put any style information on it, so it will automatically
match style with no intervention.
* editing/markup.cpp:
(WebCore::createFragmentFromText): Place paragraphs into clones of the
block being inserted into, instead of default paragraph elements,
so that when inserted content will match the surrounding paragraph style.
This was broken before, but I haven't added a layout test yet because
there currently isn't a way to get only plain text onto the pasteboard
in a layout test.
2007-11-01 Sam Weinig <sam@webkit.org>
Reviewed by Adam Roben.
Add a releaseRef method to COMPtr which matches the behavior
of the method by the same name in PassRefPtr. This is in
preparation of adding autogenerated COM DOM bindings.
* platform/win/COMPtr.h:
(COMPtr::releaseRef):
2007-11-01 Kevin Ollivier <kevino@theolliviers.com>
wx impl. for DragController and EventHandler interfaces.
Reviewed by Adam Roben.
* page/wx: Added.
* page/wx/DragControllerWx.cpp: Added.
(WebCore::DragController::isCopyKeyDown):
(WebCore::DragController::dragOperation):
(WebCore::DragController::maxDragImageSize):
* page/wx/EventHandlerWx.cpp: Added.
(WebCore::EventHandler::passMousePressEventToSubframe):
(WebCore::EventHandler::passMouseMoveEventToSubframe):
(WebCore::EventHandler::passMouseReleaseEventToSubframe):
(WebCore::EventHandler::passMousePressEventToScrollbar):
(WebCore::EventHandler::passWidgetMouseDownEventToWidget):
(WebCore::EventHandler::focusDocumentView):
(WebCore::EventHandler::eventActivatedView):
(WebCore::EventHandler::createDraggingClipboard):
2007-11-01 Kevin Ollivier <kevino@theolliviers.com>
Adding files for wx impl. of editing interfaces.
Reviewed by Adam Roben.
* editing/wx: Added.
* editing/wx/EditorWx.cpp: Added.
(WebCore::Editor::newGeneralClipboard):
2007-11-01 Sam Weinig <sam@webkit.org>
Reviewed by Adam Roben.
Make implicit conversions from LPCSTRs and BSTRs to WebCore string
types possible in preparation of adding autogenerated COM DOM bindings.
* platform/AtomicString.cpp:
(WebCore::AtomicString::add):
* platform/AtomicString.h:
(WebCore::AtomicString::AtomicString):
* platform/PlatformString.h:
* platform/win/BString.cpp:
(WebCore::BString::BString):
* platform/win/BString.h:
2007-11-01 Brady Eidson <beidson@apple.com>
Reviewed by Anders
Renamed a flag inside of SQLiteTransaction and added an accessor (for future work)
* platform/sql/SQLiteTransaction.cpp:
(WebCore::SQLiteTransaction::SQLiteTransaction):
(WebCore::SQLiteTransaction::~SQLiteTransaction):
(WebCore::SQLiteTransaction::begin):
(WebCore::SQLiteTransaction::commit):
(WebCore::SQLiteTransaction::rollback):
* platform/sql/SQLiteTransaction.h:
(WebCore::SQLiteTransaction::inProgress):
2007-11-01 Adam Roben <aroben@apple.com>
Remove all duplicate xcopy commands from WebCore's post-build step
Also add the /d option to the copy of platform/sql.
Rubberstamped by Sam.
* WebCore.vcproj/WebCore.vcproj:
2007-11-01 Adele Peterson <adele@apple.com>
Reviewed by Maciej.
Add support for the animation of the -webkit-border-raduis properties.
* page/AnimationController.cpp:
(WebCore::blendFunc): Added for IntSize.
(WebCore::ImplicitAnimation::animate): Added cases for border radius properties.
2007-11-01 Alp Toker <alp@atoker.com>
Reviewed by Mitz Pettel.
Fix an unbalanced save/restore.
* platform/graphics/cg/ImageCG.cpp:
(WebCore::BitmapImage::draw):
2007-11-01 David Hyatt <hyatt@apple.com>
Add support for the animation of the visibility property.
Reviewed by oliver, aroben
* page/AnimationController.cpp:
(WebCore::blendFunc):
(WebCore::ImplicitAnimation::animate):
2007-11-01 Kevin McCullough <kmccullough@apple.com>
Reviewed by Adam.
- Made COMPtr be able to be used by certain other templates,
specifically HashSet.
* platform/win/COMPtr.h:
(WTF::):
2007-11-01 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=15015
<rdar://problem/5420308> Most of www.aol.com redraws unnecessarily when headline/photo section changes
Test: fast/repaint/overflow-clip-subtree-layout.html
This patch does not address the bigger issue of doing a full relayout
of inline flows containing floats, but it addresses the problem on
aol.com, where the changes that trigger layout are confined to an
overflow area inside the float.
* page/FrameView.cpp:
(WebCore::FrameView::scheduleRelayoutOfSubtree): If the new and old
layout roots are different but one descends from the other, make (or
keep) the ancestor as the layout root.
* rendering/RenderObject.cpp:
(WebCore::objectIsRelayoutBoundary): Made boxes with overflow
clipping and non-auto width and height relayout boundaries.
2007-11-01 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Mark Rowe.
Fixed line endings that got confused in this file somehow.
* platform/network/ResourceResponse.cpp:
(WebCore::ResourceResponse::isAttachment):
2007-11-01 Peter Kasting <zerodpx@gmail.com>
Reviewed by Dave Hyatt.
http://bugs.webkit.org/show_bug.cgi?id=15778
Malformed GIFs should not result in memory corruption.
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::haveDecodedRow):
* platform/image-decoders/gif/GIFImageReader.cpp:
(GIFImageReader::output_row):
(GIFImageReader::read):
2007-10-31 Adam Roben <aroben@apple.com>
Fix a crash when parsing a cubic-bezier function
Reviewed by Hyatt.
Test: fast/css/parse-timing-function-crash.html
* WebCore.vcproj/WebCore.vcproj:
* css/CSSParser.cpp:
(WebCore::CSSParser::parseTimingFunctionValue): Don't walk off the end
of the ValueList.
2007-10-31 David Hyatt <hyatt@apple.com>
Fix a merge error from when I applied my patch to ToT. A couple of lines should be part of an if.
* rendering/RenderStyle.cpp:
(WebCore::RenderStyle::adjustTransitions):
2007-10-31 Anders Carlsson <andersca@apple.com>
Reviewed by Sam.
Add new SQL callback interfaces and JS implementations of them.
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSCustomSQLStatementCallback.cpp: Added.
(WebCore::JSCustomSQLStatementCallback::JSCustomSQLStatementCallback):
(WebCore::JSCustomSQLStatementCallback::handleEvent):
* bindings/js/JSCustomSQLStatementCallback.h: Added.
* bindings/js/JSCustomSQLStatementErrorCallback.cpp: Added.
(WebCore::JSCustomSQLStatementErrorCallback::JSCustomSQLStatementErrorCallback):
(WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
* bindings/js/JSCustomSQLStatementErrorCallback.h: Added.
* bindings/js/JSCustomSQLTransactionCallback.cpp: Added.
(WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback):
(WebCore::JSCustomSQLTransactionCallback::handleEvent):
* bindings/js/JSCustomSQLTransactionCallback.h: Added.
* bindings/js/JSCustomSQLTransactionErrorCallback.cpp: Added.
(WebCore::JSCustomSQLTransactionErrorCallback::JSCustomSQLTransactionErrorCallback):
(WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
* bindings/js/JSCustomSQLTransactionErrorCallback.h: Added.
* storage/JSCustomSQLStatementCallback.h: Added.
* storage/JSCustomSQLStatementErrorCallback.h: Added.
* storage/JSCustomSQLTransactionCallback.h: Added.
* storage/JSCustomSQLTransactionErrorCallback.h: Added.
* storage/SQLStatementCallback.h: Added.
(WebCore::SQLStatementCallback::~SQLStatementCallback):
* storage/SQLStatementCallback.idl: Added.
* storage/SQLStatementErrorCallback.h: Added.
(WebCore::SQLStatementErrorCallback::~SQLStatementErrorCallback):
* storage/SQLStatementErrorCallback.idl: Added.
* storage/SQLTransaction.h: Added.
* storage/SQLTransaction.idl: Added.
* storage/SQLTransactionCallback.h: Added.
(WebCore::SQLTransactionCallback::~SQLTransactionCallback):
* storage/SQLTransactionCallback.idl: Added.
* storage/SQLTransactionErrorCallback.h: Added.
(WebCore::SQLTransactionErrorCallback::~SQLTransactionErrorCallback):
* storage/SQLTransactionErrorCallback.idl: Added.
2007-10-31 Justin Garcia <justin.garcia@apple.com>
Reviewed by Dave Harrison.
<rdar://problem/5569741> Pasting content with a line break into a list can remove the list
* editing/htmlediting.cpp:
(WebCore::enclosingEmptyListItem): A single list item can contain multiple
paragraphs, so if the incoming VisiblePosition is in an empty paragraph in a
list item, that list item isn't necessarily empty.
2007-10-31 David Hyatt <hyatt@apple.com>
Disable style sharing for animating styles.
Reviewed by mitzpettel
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::canShareStyleWithElement):
2007-10-31 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- fix intermediate length calculation
* rendering/Length.h:
(WebCore::Length::blend):
2007-10-31 Anders Carlsson <andersca@apple.com>
Reviewed by Darin.
Add new SQLError implementation.
* DerivedSources.make:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* storage/SQLError.h: Added.
(WebCore::SQLError::SQLError):
(WebCore::SQLError::code):
(WebCore::SQLError::message):
* storage/SQLError.idl: Added.
2007-10-31 David Hyatt <hyatt@apple.com>
Change the initial value of transition-property to all. Change the initial value of
transition-duration to 0.
Reviewed by antti
* rendering/RenderStyle.h:
(WebCore::RenderStyle::initialTransitionDuration):
(WebCore::RenderStyle::initialTransitionProperty):
2007-10-31 Alp Toker <alp@atoker.com>
Reviewed by Mark Rowe.
The new Color must be marked valid.
* platform/graphics/gtk/ColorGtk.cpp:
2007-10-31 Simon Hausmann <hausmann@kde.org>
Reviewed by Maciej;
Build fix for non-Qt builds.
* dom/XMLTokenizer.cpp:
(WebCore::XMLTokenizer::XMLTokenizer):
2007-10-31 Simon Hausmann <hausmann@kde.org>
Reviewed by Lars.
Fix dependency path to header files of the public API of the Qt port.
* WebCore.pro:
2007-10-31 Holger Freyther <zecke@selfish.org>
Reviewed by Simon.
* QXmlStreamNamespaceDeclaration doesn't have the constructor we
want to use for Qt4.3. Reenable the old code path which is likely
to be dead as I have not checked if m_prefixToNamespaceMap is actually
used.
* Guard the entity resolver with the QT_VERSION as well.
* Partially reverts 369506279abdaa863e15efed649ca19e062f2c30 and
d2b54d0fc1b07a2480f4f7a1417abd7a636b0107 for Qt4.3.
* dom/XMLTokenizer.cpp:
(WebCore::XMLTokenizer::XMLTokenizer):
* dom/XMLTokenizer.h:
2007-10-31 Holger Freyther <zecke@selfish.org>
Reviewed by Lars Knoll <lars@trolltech.com>.
* QMimeData::removeData will be new in Qt4.4, don't use it for Qt4.3
* Provide a bad fallback implementation to filter the format list.
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::clearData):
2007-10-31 Lars Knoll <lars@trolltech.com>
Reviewed by Simon.
add an entitiy resolver to QXmlStream.
Fixes fast/parser/entities-in-attributes.xhtml.
* dom/XMLTokenizer.cpp:
(WebCore::EntityResolver::resolveUndeclaredEntity):
(WebCore::XMLTokenizer::XMLTokenizer):
(WebCore::XMLTokenizer::~XMLTokenizer):
2007-10-31 Lars Knoll <lars@trolltech.com>
Reviewed by Simon.
Fixes in the XML tokenizer when using QXmlStream.
Use new functionality of QXmlStream in Qt 4.4 to simplify
the code (but keep the old code for now to still support Qt 4.3).
Add proper support for namespace handling when parsing into
a document fragment.
* dom/XMLTokenizer.cpp:
(WebCore::XMLTokenizer::XMLTokenizer):
(WebCore::XMLTokenizer::write):
(WebCore::XMLTokenizer::startElementNs):
(WebCore::):
* dom/XMLTokenizer.h:
2007-10-31 Lars Knoll <lars@trolltech.com>
Reviewed by Simon.
add support for dragging images.
* platform/DragImage.h:
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::clearData):
(WebCore::ClipboardQt::setDragImage):
(WebCore::ClipboardQt::setDragImageElement):
(WebCore::ClipboardQt::createDragImage):
(WebCore::getCachedImage):
(WebCore::ClipboardQt::declareAndWriteDragImage):
* platform/qt/ClipboardQt.h:
2007-10-31 Lars Knoll <lars@trolltech.com>
Reviewed by Simon.
fix most of the issues I found with Clipboard and DnD.
* editing/qt/EditorQt.cpp:
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::ClipboardQt):
(WebCore::ClipboardQt::~ClipboardQt):
(WebCore::ClipboardQt::clearData):
(WebCore::ClipboardQt::clearAllData):
(WebCore::ClipboardQt::getData):
(WebCore::ClipboardQt::setData):
(WebCore::ClipboardQt::types):
(WebCore::ClipboardQt::setDragImage):
(WebCore::ClipboardQt::setDragImageElement):
(WebCore::ClipboardQt::declareAndWriteDragImage):
(WebCore::ClipboardQt::writeURL):
(WebCore::ClipboardQt::writeRange):
(WebCore::ClipboardQt::hasData):
* platform/qt/ClipboardQt.h:
* platform/qt/DragDataQt.cpp:
(WebCore::DragData::asURL):
2007-10-30 Mark Rowe <mrowe@apple.com>
Fix the Gtk and Qt builds by stubbing out PlatformKeyboardEvent::currentCapsLockState.
* platform/gtk/KeyEventGtk.cpp:
(WebCore::PlatformKeyboardEvent::currentCapsLockState):
* platform/qt/PlatformKeyboardEventQt.cpp:
(WebCore::PlatformKeyboardEvent::currentCapsLockState):
2007-10-31 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Anders.
http://bugs.webkit.org/show_bug.cgi?id=15762
XSLStylesheet loads subresources from a wrong URL
Covered by corrected existing tests.
* xml/XSLStyleSheet.cpp:
(WebCore::XSLStyleSheet::parseString): Pass stylesheet URL, not
the document one.
2007-10-31 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=10818
String::append does 2 full copies instead of 1 (or zero!)
No change in functionality, thus no test.
* platform/String.cpp:
(WebCore::String::append): Rewrote to copy once. Also removed an ancient
FIXME that doesn't seem to make any sense. Note that append() behavior doesn't
match documented String behavior ("modifications to one instance will
also modify all others"), but there are a lot of methods that don't.
2007-10-31 Adam Roben <aroben@apple.com>
Windows build fix
* WebCore.vcproj/WebCore.vcproj: Add [JS]ProgressEvent.{cpp,h} files.
2007-10-30 Adam Roben <aroben@apple.com>
Windows build fixes
I'm not completely sure why these const issues weren't caught by GCC,
but MSVC was certainly not happy with them.
* editing/IndentOutdentCommand.cpp:
(WebCore::isIndentBlockquote):
* editing/markup.cpp:
(WebCore::styleFromMatchedRulesAndInlineDecl):
2007-10-30 David Hyatt <hyatt@apple.com>
transition-property was defaulting to all when it should default to none.
It was taking a string type. I figured out how to make it take an ident instead, so you can write:
transition-property: opacity
instead of
transition-property: "opacity"
Transition layers also weren't properly repeating patterns the way they were supposed to. I fixed that.
Finally, I fixed a bug in the code to fix up transition layers where something was misplaced that should have been inside a null check.
Reviewed by aroben
* css/CSSHelper.h:
* css/CSSParser.cpp:
(WebCore::CSSParser::parseTransitionProperty):
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::adjustRenderStyle):
* page/AnimationController.cpp:
(WebCore::ImplicitAnimation::animate):
* rendering/RenderStyle.cpp:
(WebCore::RenderStyle::adjustTransitions):
* rendering/RenderStyle.h:
(WebCore::RenderStyle::initialTransitionProperty):
2007-10-30 Antti Koivisto <antti@apple.com>
Reviewed by Geoff.
Leak fix
* platform/graphics/mac/MoviePrivateQTKit.mm:
(WebCore::MoviePrivate::getSupportedTypes):
2007-10-30 Dan Bernstein <mitz@apple.com>
Reviewed by Stephanie Lewis.
- fix <rdar://problem/5547237> REGRESSION (304-ToT): Repro font-related crash in fontdatawin.cpp Line 93 (many sites)
* platform/win/FontDataWin.cpp:
(WebCore::FontData::platformInit): Handle the case where the font has no
glyphs on page zero.
2007-10-30 David Hyatt <hyatt@apple.com>
Make sure CSS transforms can be animated using the CSS transition property.
Reviewed by Dan and Antti
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
* page/AnimationController.cpp:
(WebCore::blendFunc):
(WebCore::ImplicitAnimation::animate):
* rendering/Length.h:
(WebCore::Length::blend):
* rendering/RenderStyle.cpp:
(WebCore::StyleTransformData::operator==):
(WebCore::TransformOperations::operator==):
(WebCore::blendLengths):
(WebCore::ScaleTransformOperation::blend):
(WebCore::RotateTransformOperation::blend):
(WebCore::SkewTransformOperation::blend):
(WebCore::TranslateTransformOperation::blend):
(WebCore::MatrixTransformOperation::blend):
* rendering/RenderStyle.h:
(WebCore::TransformOperations::operator!=):
(WebCore::TransformOperations::isEmpty):
(WebCore::TransformOperations::size):
(WebCore::TransformOperations::operator[]):
(WebCore::TransformOperations::append):
(WebCore::RenderStyle::transform):
(WebCore::RenderStyle::setTransform):
(WebCore::RenderStyle::initialTransform):
2007-10-30 Antti Koivisto <antti@apple.com>
Another Qt/GTK build fix.
* bindings/js/JSHTMLElementWrapperFactory.cpp:
2007-10-30 Antti Koivisto <antti@apple.com>
Attempt to fix Qt/GTK build.
* WebCore.pro:
2007-10-30 Justin Garcia <justin.garcia@apple.com>
Reviewed by Darin Adler.
<rdar://problem/5549929> CrashTracer: [USER] 35 crashes at WebCore::CharacterData::insertData
We were trying to insert a tab into a br, after the br incorrectly ended up inside
a tab span.
* editing/DeleteButtonController.cpp:
(WebCore::isDeletableElement): Changed to take in a const Node* instead of a Node*.
* editing/DeleteSelectionCommand.cpp:
(WebCore::isTableRow): Ditto.
* editing/IndentOutdentCommand.cpp:
(WebCore::isIndentBlockquote): Ditto.
(WebCore::isListOrIndentBlockquote): Ditto.
* editing/InsertLineBreakCommand.cpp:
(WebCore::InsertLineBreakCommand::shouldUseBreakElement): Added, moved code from
doApply here.
(WebCore::InsertLineBreakCommand::doApply):
Don't upstream() the insertion position. upstream()ing it will only have an effect
when the insertion position is the first in its paragraph (since we canonicalize
VisiblePositions to the upstream() candidate). In this start of paragraph case,
upstream() can move outside inline elements like tab spans or elements that might
have a different whitespace mode (added two test cases to cover these).
Moved code to decide whether to insert a br or a '\n' to its own method.
Removed special case code for inserting at a position inside a tab span. We instead
adjust the insertion position before insertion if it is inside a tab span and
handle insertion in the appropriate if-block. This fixes a bug where we would
only insert one line break when two were needed (added a testcase).
Removed special case code for inserting before and after tables and horizontal
rules. We handle these insertions in the appropriate if-block.
* editing/InsertLineBreakCommand.h:
* editing/ReplaceSelectionCommand.cpp:
(WebCore::isMailPasteAsQuotationNode): Change to take in a const Node*.
* editing/htmlediting.cpp:
(WebCore::isContentEditable): Ditto.
(WebCore::isBlock): Ditto.
(WebCore::enclosingNodeOfType): Changed to take a function pointer to a function
that takes in a const Node*.
(WebCore::isTabSpanTextNode): Check to see that the node actually a text node,
and not, say, a br.
* editing/htmlediting.h:
* editing/markup.cpp:
(WebCore::styleFromMatchedRulesAndInlineDecl): Changed to take in a const Node*.
(WebCore::elementHasTextDecorationProperty): Ditto.
2007-10-30 Antti Koivisto <antti@apple.com>
Add missing files.
* html/VoidCallback.cpp: Added.
(VoidCallback::VoidCallback):
(VoidCallback::~VoidCallback):
(VoidCallback::handleEvent):
(VoidCallback::execute):
(VoidCallback::operator==):
(WebCore::toVoidCallback):
* html/VoidCallback.h: Added.
* html/VoidCallback.idl: Added.
2007-10-30 David Kilzer <ddkilzer@webkit.org>
Generated files missing from WebCore's Xcode project file
<http://bugs.webkit.org/show_bug.cgi?id=15406>
Reviewed by Darin.
Added the following files to the Xcode project file (note that
JSHTMLInputElementBaseTable.cpp is used as a header file):
- DOMCSSStyleSheetPrivate.h
- DOMEventPrivate.h
- DOMHTMLCollectionPrivate.h
- DOMHTMLEmbedElementPrivate.h
- DOMHTMLIFrameElementPrivate.h
- DOMHTMLObjectElementPrivate.h
- DOMHTMLSelectElementPrivate.h
- DOMTextEventInternal.h
- JSHTMLInputElementBaseTable.cpp
* DerivedSources.make: Removed DOMSVGException.h and JSSVGAnimatedPoints.h
since their generated code was not used.
* WebCore.xcodeproj/project.pbxproj: Added missing header files.
2007-10-29 Antti Koivisto <antti@apple.com>
Rubber stamped by Adele.
Initial media (<video> and <audio>) support from feature branch and
QTKit based platform implementation.
This will need to be updated to match current draft specification.
* Configurations/WebCore.xcconfig:
* DerivedSources.make:
* WebCore.base.exp:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSEventCustom.cpp:
(WebCore::toJS):
* bindings/js/JSHTMLAudioElementConstructor.cpp: Added.
(WebCore::JSHTMLAudioElementConstructor::JSHTMLAudioElementConstructor):
(WebCore::JSHTMLAudioElementConstructor::implementsConstruct):
(WebCore::JSHTMLAudioElementConstructor::construct):
* bindings/js/JSHTMLAudioElementConstructor.h: Added.
* bindings/js/JSHTMLElementWrapperFactory.cpp:
(WebCore::createJSHTMLWrapper):
* bindings/js/kjs_window.cpp:
(KJS::Window::getValueProperty):
* bindings/js/kjs_window.h:
(KJS::Window::):
* bindings/scripts/CodeGeneratorJS.pm:
* dom/Document.cpp:
(WebCore::Document::createEvent):
(WebCore::Document::willSaveToCache):
(WebCore::Document::didRestoreFromCache):
(WebCore::Document::registerForCacheCallbacks):
(WebCore::Document::unregisterForCacheCallbacks):
* dom/Document.h:
* dom/Element.cpp:
(WebCore::Element::setBooleanAttribute):
* dom/Element.h:
(WebCore::Element::willSaveToCache):
* dom/Event.cpp:
(WebCore::Event::isProgressEvent):
* dom/Event.h:
* dom/EventNames.h:
* dom/EventTargetNode.cpp:
(WebCore::EventTargetNode::dispatchProgressEvent):
* dom/EventTargetNode.h:
* dom/ProgressEvent.cpp: Added.
(WebCore::ProgressEvent::ProgressEvent):
(WebCore::ProgressEvent::initProgressEvent):
(WebCore::ProgressEvent::initProgressEventNS):
* dom/ProgressEvent.h: Added.
(WebCore::ProgressEvent::lengthComputable):
(WebCore::ProgressEvent::loaded):
(WebCore::ProgressEvent::total):
(WebCore::ProgressEvent::isProgressEvent):
* dom/ProgressEvent.idl: Added.
* history/CachedPage.cpp:
(WebCore::CachedPage::CachedPage):
* html/HTMLAttributeNames.in:
* html/HTMLAudioElement.cpp: Added.
(WebCore::HTMLAudioElement::HTMLAudioElement):
* html/HTMLAudioElement.h: Added.
(WebCore::HTMLAudioElement::tagPriority):
* html/HTMLAudioElement.idl: Added.
* html/HTMLElement.cpp:
(WebCore::inlineTagList):
* html/HTMLElementFactory.cpp:
(WebCore::audioConstructor):
(WebCore::videoConstructor):
(WebCore::sourceConstructor):
(WebCore::createFunctionMap):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::~HTMLInputElement):
(WebCore::HTMLInputElement::setInputType):
(WebCore::HTMLInputElement::willMoveToNewOwnerDocument):
(WebCore::HTMLInputElement::didMoveToNewOwnerDocument):
* html/HTMLMediaElement.cpp: Added.
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::checkDTD):
(WebCore::HTMLMediaElement::rendererIsNeeded):
(WebCore::HTMLMediaElement::createRenderer):
(WebCore::HTMLMediaElement::insertedIntoDocument):
(WebCore::HTMLMediaElement::removedFromDocument):
(WebCore::HTMLMediaElement::scheduleLoad):
(WebCore::HTMLMediaElement::initAndDispatchProgressEvent):
(WebCore::HTMLMediaElement::dispatchEventAsync):
(WebCore::HTMLMediaElement::loadTimerFired):
(WebCore::HTMLMediaElement::asyncEventTimerFired):
(WebCore::serializeTimeOffset):
(WebCore::parseTimeOffset):
(WebCore::HTMLMediaElement::getTimeOffsetAttribute):
(WebCore::HTMLMediaElement::setTimeOffsetAttribute):
(WebCore::HTMLMediaElement::error):
(WebCore::HTMLMediaElement::src):
(WebCore::HTMLMediaElement::HTMLMediaElement::setSrc):
(WebCore::HTMLMediaElement::currentSrc):
(WebCore::HTMLMediaElement::networkState):
(WebCore::HTMLMediaElement::bufferingRate):
(WebCore::HTMLMediaElement::load):
(WebCore::HTMLMediaElement::movieNetworkStateChanged):
(WebCore::HTMLMediaElement::movieReadyStateChanged):
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::progressEventTimerFired):
(WebCore::HTMLMediaElement::seek):
(WebCore::HTMLMediaElement::readyState):
(WebCore::HTMLMediaElement::seeking):
(WebCore::HTMLMediaElement::currentTime):
(WebCore::HTMLMediaElement::setCurrentTime):
(WebCore::HTMLMediaElement::duration):
(WebCore::HTMLMediaElement::paused):
(WebCore::HTMLMediaElement::defaultPlaybackRate):
(WebCore::HTMLMediaElement::setDefaultPlaybackRate):
(WebCore::HTMLMediaElement::playbackRate):
(WebCore::HTMLMediaElement::setPlaybackRate):
(WebCore::HTMLMediaElement::ended):
(WebCore::HTMLMediaElement::autoplay):
(WebCore::HTMLMediaElement::setAutoplay):
(WebCore::HTMLMediaElement::play):
(WebCore::HTMLMediaElement::pause):
(WebCore::HTMLMediaElement::loopCount):
(WebCore::HTMLMediaElement::setLoopCount):
(WebCore::HTMLMediaElement::start):
(WebCore::HTMLMediaElement::setStart):
(WebCore::HTMLMediaElement::end):
(WebCore::HTMLMediaElement::setEnd):
(WebCore::HTMLMediaElement::loopStart):
(WebCore::HTMLMediaElement::setLoopStart):
(WebCore::HTMLMediaElement::loopEnd):
(WebCore::HTMLMediaElement::setLoopEnd):
(WebCore::HTMLMediaElement::currentLoop):
(WebCore::HTMLMediaElement::setCurrentLoop):
(WebCore::HTMLMediaElement::controls):
(WebCore::HTMLMediaElement::setControls):
(WebCore::HTMLMediaElement::volume):
(WebCore::HTMLMediaElement::setVolume):
(WebCore::HTMLMediaElement::muted):
(WebCore::HTMLMediaElement::setMuted):
(WebCore::HTMLMediaElement::pickMedia):
(WebCore::HTMLMediaElement::checkIfSeekNeeded):
(WebCore::HTMLMediaElement::movieVolumeChanged):
(WebCore::HTMLMediaElement::movieDidEnd):
(WebCore::HTMLMediaElement::movieCuePointReached):
(WebCore::HTMLMediaElement::addCuePoint):
(WebCore::HTMLMediaElement::removeCuePoint):
(WebCore::HTMLMediaElement::buffered):
(WebCore::HTMLMediaElement::played):
(WebCore::HTMLMediaElement::seekable):
(WebCore::HTMLMediaElement::effectiveStart):
(WebCore::HTMLMediaElement::effectiveEnd):
(WebCore::HTMLMediaElement::effectiveLoopStart):
(WebCore::HTMLMediaElement::effectiveLoopEnd):
(WebCore::HTMLMediaElement::activelyPlaying):
(WebCore::HTMLMediaElement::endedPlayback):
(WebCore::HTMLMediaElement::willSaveToCache):
(WebCore::HTMLMediaElement::didRestoreFromCache):
* html/HTMLMediaElement.h: Added.
(WebCore::HTMLMediaElement::movie):
(WebCore::HTMLMediaElement::isVideo):
(WebCore::HTMLMediaElement::):
(WebCore::HTMLMediaElement::CallbackEntry::CallbackEntry):
* html/HTMLMediaElement.idl: Added.
* html/HTMLSourceElement.cpp: Added.
(WebCore::HTMLSourceElement::HTMLSourceElement):
(WebCore::HTMLSourceElement::~HTMLSourceElement):
(WebCore::HTMLSourceElement::insertedIntoDocument):
(WebCore::HTMLSourceElement::src):
(WebCore::HTMLSourceElement::setSrc):
(WebCore::HTMLSourceElement::media):
(WebCore::HTMLSourceElement::setMedia):
(WebCore::HTMLSourceElement::type):
(WebCore::HTMLSourceElement::setType):
* html/HTMLSourceElement.h: Added.
(WebCore::HTMLSourceElement::endTagRequirement):
(WebCore::HTMLSourceElement::tagPriority):
* html/HTMLSourceElement.idl: Added.
* html/HTMLTagNames.in:
* html/HTMLVideoElement.cpp: Added.
(WebCore::HTMLVideoElement::HTMLVideoElement):
(WebCore::HTMLVideoElement::videoWidth):
(WebCore::HTMLVideoElement::videoHeight):
* html/HTMLVideoElement.h: Added.
(WebCore::HTMLVideoElement::tagPriority):
(WebCore::HTMLVideoElement::isVideo):
* html/HTMLVideoElement.idl: Added.
* html/MediaError.h: Added.
(WebCore::MediaError::):
(WebCore::MediaError::MediaError):
(WebCore::MediaError::code):
* html/MediaError.idl: Added.
* html/TimeRanges.cpp: Added.
(TimeRanges::TimeRanges):
(TimeRanges::start):
(TimeRanges::end):
(TimeRanges::add):
(TimeRanges::contain):
* html/TimeRanges.h: Added.
(WebCore::TimeRanges::TimeRanges):
(WebCore::TimeRanges::length):
(WebCore::TimeRanges::Range::Range):
* html/TimeRanges.idl: Added.
* page/DOMWindow.idl:
* platform/MIMETypeRegistry.cpp:
(WebCore::initialiseSupportedMovieMIMETypes):
(WebCore::initialiseMIMETypeRegistry):
(WebCore::MIMETypeRegistry::isSupportedMovieMIMEType):
(WebCore::MIMETypeRegistry::getSupportedMovieMIMETypes):
* platform/MIMETypeRegistry.h:
* platform/graphics/Movie.cpp: Added.
(WebCore::Movie::Movie):
(WebCore::Movie::~Movie):
(WebCore::Movie::load):
(WebCore::Movie::cancelLoad):
(WebCore::Movie::play):
(WebCore::Movie::pause):
(WebCore::Movie::duration):
(WebCore::Movie::currentTime):
(WebCore::Movie::seek):
(WebCore::Movie::paused):
(WebCore::Movie::seeking):
(WebCore::Movie::naturalSize):
(WebCore::Movie::hasVideo):
(WebCore::Movie::networkState):
(WebCore::Movie::readyState):
(WebCore::Movie::volume):
(WebCore::Movie::setVolume):
(WebCore::Movie::rate):
(WebCore::Movie::setRate):
(WebCore::Movie::muted):
(WebCore::Movie::setMuted):
(WebCore::Movie::dataRate):
(WebCore::Movie::setEndTime):
(WebCore::Movie::addCuePoint):
(WebCore::Movie::removeCuePoint):
(WebCore::Movie::clearCuePoints):
(WebCore::Movie::maxTimeBuffered):
(WebCore::Movie::maxTimeSeekable):
(WebCore::Movie::bytesLoaded):
(WebCore::Movie::totalBytesKnown):
(WebCore::Movie::totalBytes):
(WebCore::Movie::setRect):
(WebCore::Movie::visible):
(WebCore::Movie::setVisible):
(WebCore::Movie::paint):
(WebCore::Movie::getSupportedTypes):
(WebCore::Movie::networkStateChanged):
(WebCore::Movie::readyStateChanged):
(WebCore::Movie::volumeChanged):
(WebCore::Movie::didEnd):
(WebCore::Movie::cuePointReached):
* platform/graphics/Movie.h: Added.
(WebCore::MovieClient::~MovieClient):
(WebCore::MovieClient::movieNetworkStateChanged):
(WebCore::MovieClient::movieReadyStateChanged):
(WebCore::MovieClient::movieVolumeChanged):
(WebCore::MovieClient::movieDidEnd):
(WebCore::MovieClient::movieCuePointReached):
(WebCore::Movie::parentWidget):
(WebCore::Movie::setParentWidget):
(WebCore::Movie::rect):
(WebCore::Movie::):
* platform/graphics/mac/MoviePrivateQTKit.h: Added.
* platform/graphics/mac/MoviePrivateQTKit.mm: Added.
(WebCore::MoviePrivate::MoviePrivate):
(WebCore::MoviePrivate::~MoviePrivate):
(WebCore::MoviePrivate::createQTMovie):
(WebCore::MoviePrivate::createQTMovieView):
(WebCore::MoviePrivate::createQTTime):
(WebCore::MoviePrivate::load):
(WebCore::MoviePrivate::play):
(WebCore::MoviePrivate::pause):
(WebCore::MoviePrivate::duration):
(WebCore::MoviePrivate::currentTime):
(WebCore::MoviePrivate::seek):
(WebCore::MoviePrivate::setEndTime):
(WebCore::MoviePrivate::addCuePoint):
(WebCore::MoviePrivate::removeCuePoint):
(WebCore::MoviePrivate::clearCuePoints):
(WebCore::MoviePrivate::startCuePointTimerIfNeeded):
(WebCore::MoviePrivate::cancelSeek):
(WebCore::MoviePrivate::seekTimerFired):
(WebCore::MoviePrivate::cuePointTimerFired):
(WebCore::MoviePrivate::paused):
(WebCore::MoviePrivate::seeking):
(WebCore::MoviePrivate::naturalSize):
(WebCore::MoviePrivate::hasVideo):
(WebCore::MoviePrivate::setVolume):
(WebCore::MoviePrivate::setMuted):
(WebCore::MoviePrivate::setRate):
(WebCore::MoviePrivate::dataRate):
(WebCore::MoviePrivate::networkState):
(WebCore::MoviePrivate::readyState):
(WebCore::MoviePrivate::maxTimeBuffered):
(WebCore::MoviePrivate::maxTimeSeekable):
(WebCore::MoviePrivate::maxTimeLoaded):
(WebCore::MoviePrivate::bytesLoaded):
(WebCore::MoviePrivate::totalBytesKnown):
(WebCore::MoviePrivate::totalBytes):
(WebCore::MoviePrivate::cancelLoad):
(WebCore::MoviePrivate::updateStates):
(WebCore::MoviePrivate::loadStateChanged):
(WebCore::MoviePrivate::rateChanged):
(WebCore::MoviePrivate::sizeChanged):
(WebCore::MoviePrivate::timeChanged):
(WebCore::MoviePrivate::volumeChanged):
(WebCore::MoviePrivate::didEnd):
(WebCore::MoviePrivate::setRect):
(WebCore::MoviePrivate::setVisible):
(WebCore::MoviePrivate::paint):
(WebCore::MoviePrivate::getSupportedTypes):
(-[WebCoreMovieObserver loadStateChanged:]):
(-[WebCoreMovieObserver rateChanged:]):
(-[WebCoreMovieObserver sizeChanged:]):
(-[WebCoreMovieObserver timeChanged:]):
(-[WebCoreMovieObserver volumeChanged:]):
(-[WebCoreMovieObserver didEnd:]):
(-[WebCoreMovieObserver setCallback:WebCore::]):
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::collectLayers):
* rendering/RenderVideo.cpp: Added.
(WebCore::RenderVideo::RenderVideo):
(WebCore::RenderVideo::~RenderVideo):
(WebCore::RenderVideo::movie):
(WebCore::RenderVideo::videoSizeChanged):
(WebCore::RenderVideo::paint):
(WebCore::RenderVideo::layout):
(WebCore::RenderVideo::updateFromElement):
(WebCore::RenderVideo::updateMovie):
(WebCore::RenderVideo::isWidthSpecified):
(WebCore::RenderVideo::isHeightSpecified):
(WebCore::RenderVideo::calcReplacedWidth):
(WebCore::RenderVideo::calcReplacedHeight):
(WebCore::RenderVideo::calcAspectRatioWidth):
(WebCore::RenderVideo::calcAspectRatioHeight):
(WebCore::RenderVideo::calcPrefWidths):
* rendering/RenderVideo.h: Added.
(WebCore::RenderVideo::renderName):
2007-10-30 Sam Weinig <sam@webkit.org>
Reviewed by Adam Roben.
Add Interface and Class UUIDs to the IDLs in preparation of adding
autogeneration of the COM DOM bindings.
* bindings/scripts/IDLParser.pm: Relax parsing rules to allow newlines as whitespace.
* css/CSSCharsetRule.idl:
* css/CSSFontFaceRule.idl:
* css/CSSImportRule.idl:
* css/CSSMediaRule.idl:
* css/CSSPageRule.idl:
* css/CSSPrimitiveValue.idl:
* css/CSSRule.idl:
* css/CSSRuleList.idl:
* css/CSSStyleDeclaration.idl:
* css/CSSStyleRule.idl:
* css/CSSStyleSheet.idl:
* css/CSSUnknownRule.idl:
* css/CSSValue.idl:
* css/CSSValueList.idl:
* css/Counter.idl:
* css/MediaList.idl:
* css/RGBColor.idl:
* css/Rect.idl:
* css/StyleSheet.idl:
* css/StyleSheetList.idl:
* dom/Attr.idl:
* dom/CDATASection.idl:
* dom/CharacterData.idl:
* dom/Comment.idl:
* dom/DOMImplementation.idl:
* dom/Document.idl:
* dom/DocumentFragment.idl:
* dom/DocumentType.idl:
* dom/Element.idl:
* dom/Entity.idl:
* dom/EntityReference.idl:
* dom/Event.idl:
* dom/EventListener.idl:
* dom/EventTarget.idl:
* dom/NamedNodeMap.idl:
* dom/Node.idl:
* dom/NodeList.idl:
* dom/Notation.idl:
* dom/ProcessingInstruction.idl:
* dom/Text.idl:
* html/CanvasGradient.idl:
* html/CanvasPattern.idl:
* html/CanvasRenderingContext2D.idl:
* html/HTMLAnchorElement.idl:
* html/HTMLAppletElement.idl:
* html/HTMLAreaElement.idl:
* html/HTMLBRElement.idl:
* html/HTMLBaseElement.idl:
* html/HTMLBaseFontElement.idl:
* html/HTMLBlockquoteElement.idl:
* html/HTMLBodyElement.idl:
* html/HTMLButtonElement.idl:
* html/HTMLCanvasElement.idl:
* html/HTMLCollection.idl:
* html/HTMLDListElement.idl:
* html/HTMLDirectoryElement.idl:
* html/HTMLDivElement.idl:
* html/HTMLDocument.idl:
* html/HTMLElement.idl:
* html/HTMLEmbedElement.idl:
* html/HTMLFieldSetElement.idl:
* html/HTMLFontElement.idl:
* html/HTMLFormElement.idl:
* html/HTMLFrameElement.idl:
* html/HTMLFrameSetElement.idl:
* html/HTMLHRElement.idl:
* html/HTMLHeadElement.idl:
* html/HTMLHeadingElement.idl:
* html/HTMLHtmlElement.idl:
* html/HTMLIFrameElement.idl:
* html/HTMLImageElement.idl:
* html/HTMLInputElement.idl:
* html/HTMLIsIndexElement.idl:
* html/HTMLLIElement.idl:
* html/HTMLLabelElement.idl:
* html/HTMLLegendElement.idl:
* html/HTMLLinkElement.idl:
* html/HTMLMapElement.idl:
* html/HTMLMarqueeElement.idl:
* html/HTMLMenuElement.idl:
* html/HTMLMetaElement.idl:
* html/HTMLModElement.idl:
* html/HTMLOListElement.idl:
* html/HTMLObjectElement.idl:
* html/HTMLOptGroupElement.idl:
* html/HTMLOptionElement.idl:
* html/HTMLOptionsCollection.idl:
* html/HTMLParagraphElement.idl:
* html/HTMLParamElement.idl:
* html/HTMLPreElement.idl:
* html/HTMLQuoteElement.idl:
* html/HTMLScriptElement.idl:
* html/HTMLSelectElement.idl:
* html/HTMLStyleElement.idl:
* html/HTMLTableCaptionElement.idl:
* html/HTMLTableCellElement.idl:
* html/HTMLTableColElement.idl:
* html/HTMLTableElement.idl:
* html/HTMLTableRowElement.idl:
* html/HTMLTableSectionElement.idl:
* html/HTMLTextAreaElement.idl:
* html/HTMLTitleElement.idl:
* html/HTMLUListElement.idl:
2007-10-30 Adele Peterson <adele@apple.com>
RS by Darin.
* page/AnimationController.cpp: (WebCore::blendFunc): Use lround instead of round.
2007-10-29 Timothy Hatcher <timothy@apple.com>
Reviewed by John Sullivan.
- Allow showing and closing the inspector programatically.
- Add showConsole() and showTimeline() methods.
* WebCore.base.exp: Add exports for WebKit.
* page/InspectorController.cpp:
(WebCore::callSimpleFunction): Renamed from callClearFunction().
(WebCore::unloading): Renamed to close().
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::inspect): Moved showing code to show().
(WebCore::InspectorController::setWindowVisible): Show the timeline or console if needed.
(WebCore::InspectorController::show): Code factored out of inspect().
(WebCore::InspectorController::showConsole): Call show() and the JS showConsole().
(WebCore::InspectorController::showTimeline): Call show() and the JS showTimeline().
(WebCore::InspectorController::close):
(WebCore::InspectorController::clearScriptResources): Call the new callSimpleFunction.
(WebCore::InspectorController::clearDatabaseScriptResources): Ditto.
(WebCore::InspectorController::clearScriptConsoleMessages): Ditto.
(WebCore::InspectorController::clearNetworkTimeline): Ditto.
* page/InspectorController.h: Add and rename methods.
* page/inspector/inspector.js: Add showConsole() and showTimeline().
2007-10-30 Adele Peterson <adele@apple.com>
Reviewed by Sam.
Build fix.
* page/AnimationController.cpp: (WebCore::blendFunc):
2007-10-30 Adele Peterson <adele@apple.com>
Reviewed by Darin.
WebCore part of fix for http://bugs.webkit.org/show_bug.cgi?id=10577
<rdar://problem/5103625> REGRESSION: Caps lock icon should show in password fields
Test: manual-tests/password-caps-lock.html
* WebCore.base.exp: Added symbol for capsLockStateMayHaveChanged.
* page/Frame.cpp: (WebCore::Frame::setIsActive): Calls capsLockStateMayHaveChanged.
* page/EventHandler.cpp: (WebCore::EventHandler::capsLockStateMayHaveChanged): Added. Tells the focused node's renderer that the capsLockStateMayHaveChanged.
* page/EventHandler.h:
* platform/PlatformKeyboardEvent.h:
* platform/mac/KeyEventMac.mm: (WebCore::PlatformKeyboardEvent::currentCapsLockState): Added.
* platform/win/KeyEventWin.cpp: (WebCore::PlatformKeyboardEvent::currentCapsLockState): Added.
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::RenderTextControl):
(WebCore::RenderTextControl::paint): Added. If m_shouldDrawCapsLockIndicator is true, paints the caps lock indicator after the background.
(WebCore::RenderTextControl::forwardEvent): When the control gets and loses focus, update the caps lock state.
(WebCore::RenderTextControl::capsLockStateMayHaveChanged): Added. Updates m_shouldDrawCapsLockIndicator, which is true if the field is a password field,
and the frame is active, and the element is focused, and the caps lock is on. Causes a repaint when m_shouldDrawCapsLockIndicator changes state.
* rendering/RenderTextControl.h: Added m_shouldDrawCapsLockIndicator.
* rendering/RenderObject.h: (WebCore::RenderObject::capsLockStateMayHaveChanged): Added.
* rendering/RenderTheme.h: (WebCore::RenderTheme::paintCapsLockIndicator): Added.
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::paintCapsLockIndicator): Added. Calls wkDrawCapsLockIndicator.
* rendering/RenderThemeSafari.cpp: (WebCore::RenderThemeSafari::paintCapsLockIndicator): Added. Calls paintThemePart for the CapsLockPart.
* rendering/RenderThemeSafari.h:
2007-10-30 David Hyatt <hyatt@apple.com>
Land support for implicit animation in CSS.
Reviewed by mitz, darin
* css/CSSParser.cpp:
(WebCore::CSSParser::parseTimingFunctionValue):
(WebCore::CSSParser::parseTransitionTimingFunction):
(WebCore::CSSParser::parseTransitionProperty):
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::mapTransitionDuration):
(WebCore::CSSStyleSelector::mapTransitionRepeatCount):
(WebCore::CSSStyleSelector::mapTransitionTimingFunction):
(WebCore::CSSStyleSelector::mapTransitionProperty):
* css/CSSTimingFunctionValue.h:
(WebCore::CSSTimingFunctionValue::CSSTimingFunctionValue):
(WebCore::CSSTimingFunctionValue::x1):
(WebCore::CSSTimingFunctionValue::y1):
(WebCore::CSSTimingFunctionValue::x2):
(WebCore::CSSTimingFunctionValue::y2):
* dom/Element.cpp:
(WebCore::Element::styleForRenderer):
(WebCore::Element::createRenderer):
* dom/Node.cpp:
(WebCore::Node::createRendererIfNeeded):
(WebCore::Node::setRenderStyle):
* page/AnimationController.cpp:
(WebCore::CurveData::CurveData):
(WebCore::CurveData::sampleCurveX):
(WebCore::CurveData::sampleCurveY):
(WebCore::CurveData::sampleCurveDerivativeX):
(WebCore::CurveData::solveCurveX):
(WebCore::solveEpsilon):
(WebCore::solveCubicBezierFunction):
(WebCore::ImplicitAnimation::finished):
(WebCore::CompositeImplicitAnimation::~CompositeImplicitAnimation):
(WebCore::CompositeImplicitAnimation::hasAnimationForProperty):
(WebCore::ImplicitAnimation::ImplicitAnimation):
(WebCore::ImplicitAnimation::~ImplicitAnimation):
(WebCore::ImplicitAnimation::reset):
(WebCore::ImplicitAnimation::progress):
(WebCore::blendFunc):
(WebCore::ImplicitAnimation::animate):
(WebCore::CompositeImplicitAnimation::animate):
(WebCore::CompositeImplicitAnimation::animating):
(WebCore::CompositeImplicitAnimation::reset):
(WebCore::AnimationControllerPrivate::hasImplicitAnimations):
(WebCore::AnimationControllerPrivate::AnimationControllerPrivate):
(WebCore::AnimationControllerPrivate::~AnimationControllerPrivate):
(WebCore::AnimationControllerPrivate::get):
(WebCore::AnimationControllerPrivate::clear):
(WebCore::AnimationControllerPrivate::updateTimer):
(WebCore::AnimationControllerPrivate::timerFired):
(WebCore:::m_data):
(WebCore::AnimationController::~AnimationController):
(WebCore::AnimationController::cancelImplicitAnimations):
(WebCore::AnimationController::updateImplicitAnimations):
(WebCore::AnimationController::suspendAnimations):
(WebCore::AnimationController::resumeAnimations):
* page/AnimationController.h:
* page/Frame.cpp:
(WebCore::FramePrivate::FramePrivate):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::setStyle):
(WebCore::RenderBox::destroy):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::setAnimatableStyle):
(WebCore::RenderObject::destroy):
* rendering/RenderObject.h:
* rendering/RenderStyle.h:
(WebCore::TimingFunction::TimingFunction):
(WebCore::TimingFunction::operator==):
(WebCore::TimingFunction::x1):
(WebCore::TimingFunction::y1):
(WebCore::TimingFunction::x2):
(WebCore::TimingFunction::y2):
(WebCore::TimingFunction::type):
(WebCore::Transition::transitionProperty):
(WebCore::Transition::setTransitionProperty):
(WebCore::RenderStyle::initialTransitionProperty):
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::destroy):
2007-10-29 Beth Dakin <bdakin@apple.com>
Reviewed by Hyatt.
Fix for <rdar://problem/5399614> anchor tag is not rendered without
text content, works in Firefox with CSS background-image (13237)
This patch allows empty inlines that have box decorations or width
from border/padding/margin to have line boxes.
* rendering/bidi.cpp:
(WebCore::inlineFlowAllowsLineBox): Convenience function that
defines when we allow an inline flow to have a line box.
(WebCore::requiresLineBox): Call inlineFlowAllowsLineBox.
(WebCore::shouldSkipWhitespaceAfterStartObject): New function to
merge some shared code between list markers and empty inline flows
that fall at the beginning of a line.
(WebCore::RenderBlock::findNextLineBreak): Make flows more like
list markers.
One interesting side effect of this bug appeared in our xhtml/svg
tests that generate parser error tags. The tag we generate was
actually an empty inline with box decorations. This patch causes
those inlines to draw now, and the parser errors looked strange. So
I changed it so that the parsererror tag is display:block. This
matches Firefox, and I think was the original intent of the tag
since that causes its red background and border to show up.
* dom/XMLTokenizer.cpp:
(WebCore::createXHTMLParserErrorHeader):
2007-10-29 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt.
- fix crashing tests fast/frames/inline-object-inside-frameset.html and
fast/forms/form-hides-table.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::destroy):
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::destroy):
2007-10-29 Dan Bernstein <mitz@apple.com>
Reviewed by Adam Roben.
- fix http://bugs.webkit.org/show_bug.cgi?id=15750
REGRESSION(r27173): Web Inspector freezes beneath Image::drawPattern()
Test: fast/backgrounds/size/zero.html
* platform/graphics/cg/ImageCG.cpp:
(WebCore::Image::drawPattern): Added an ASSERT and an early return
to guard against singular pattern transforms.
* rendering/RenderBox.cpp:
(WebCore::cacluateBackgroundSize): Changed to ensure a minimum tile
size of 1x1.
2007-10-29 Alp Toker <alp@atoker.com>
Reviewed by Maciej.
Add GTK+ convenience conversions for various primitives
* WebCore.pro:
* platform/graphics/Color.h:
* platform/graphics/IntPoint.h:
* platform/graphics/IntRect.h:
* platform/graphics/gtk/ColorGtk.cpp: Added.
(WebCore::Color::Color):
* platform/graphics/gtk/IntPointGtk.cpp: Added.
(WebCore::IntPoint::IntPoint):
(WebCore::IntPoint::operator GdkPoint):
* platform/graphics/gtk/IntRectGtk.cpp: Added.
(WebCore::IntRect::IntRect):
(WebCore::IntRect::operator GdkRectangle):
2007-10-29 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Anders.
Speculative fix for <rdar://5538489> Safari 3.0.4 seed hangs at
http://tgmonline.futuregamer.it/ (works fine on Safari 2.0.4 and Safari
Beta for Mac)
I cannot reproduce this hang, but it is likely due to our not limiting
WM_USER+1 messages or InvalidateRect calls for a plugin with initially-
unknown MIME type. The embed tag on the page is missing a type
attribute, so as fallback, we choose to load the Flash plugin based on
the file extension of "swf." However, we do not record this determined
MIME type, and so our quirks cannot be established.
Changed findPlugin() so that, if it fails to find a plugin for the
given MIME type, it will lookup the MIME type for the file extension -
overwriting its passed MIME type parameter - and search for a plugin
for that MIME type.
* plugins/win/PluginDatabaseWin.cpp:
(WebCore::PluginDatabaseWin::pluginForMIMEType): Added an early return
if the MIME type is empty
(WebCore::PluginDatabaseWin::MIMETypeForExtension): Added to replace
pluginForExtension. Returns a String with the MIME type for the file
extension. Also, changed to use case-insensitive compares
(WebCore::PluginDatabaseWin::findPlugin): If we fail to find a plugin
for the given extension, overwrite the incoming MIME type parameter
with the MIME type for the file extension, and search for a plugin for
that MIME type. Also, changed the way that the extension is determined
(WebCore::PluginDatabaseWin::createPluginView): Pass a mutable String
to findPlugin() so that it can be updated if necessary
* plugins/win/PluginDatabaseWin.h: Changed findPlugin() to take a non-
const String, removed definition of pluginForExtension, added
definition for MIMETypeForExtension
* plugins/win/PluginPackageWin.cpp:
(WebCore::PluginPackageWin::fetchInfo): Store the MIME type in
lowercase for easier compares
2007-10-29 Andrew Wellington <proton@wiretapped.net>
Not reviewed - build fix
Fix Mac Build.
WebKit/WebCore/xml/XSLTProcessor.cpp:79: warning: 'level' may be used uninitialized
in this function
* xml/XSLTProcessor.cpp:
(WebCore::XSLTProcessor::parseErrorFunc):
2007-10-29 Alp Toker <alp@atoker.com>
Reviewed by Adam Roben.
http://bugs.webkit.org/show_bug.cgi?id=15725
[GTK] WebCore.pro header dependencies are incorrect
Fix header dependencies in the build system
INCLUDEPATH and DEPENDPATH are now up to date.
* WebCore.pro:
2007-10-29 Beth Dakin <bdakin@apple.com>
Build fix.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseTimingFunctionValue):
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::mapTransitionTimingFunction):
2007-10-29 David Hyatt <hyatt@apple.com>
Land the back end for CSS animated property transitions. I am landing this in stages, so the AnimationController
class is deliberately left empty.
Reviewed by darin/aroben
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSPropertyNames.in:
* css/CSSTimingFunctionValue.cpp: Added.
(WebCore::CSSTimingFunctionValue::cssText):
* css/CSSTimingFunctionValue.h: Added.
(WebCore::CSSTimingFunctionValue::CSSTimingFunctionValue):
(WebCore::CSSTimingFunctionValue::firstPoint):
(WebCore::CSSTimingFunctionValue::secondPoint):
* css/CSSValueKeywords.in:
* history/CachedPage.cpp:
(WebCore::CachedPage::restore):
* page/AnimationController.cpp: Added.
(WebCore::AnimationController::AnimationController):
(WebCore::AnimationController::~AnimationController):
(WebCore::AnimationController::cancelTransitions):
(WebCore::AnimationController::updateTransitions):
(WebCore::AnimationController::suspendAnimations):
(WebCore::AnimationController::resumeAnimations):
* page/AnimationController.h: Added.
* page/Frame.cpp:
(WebCore::Frame::animationController):
(WebCore::Frame::clearTimers):
* page/Frame.h:
* page/FramePrivate.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::setStyle):
(WebCore::RenderBox::destroy):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::animationController):
* rendering/RenderObject.h:
* rendering/RenderStyle.cpp:
(WebCore::Transition::Transition):
(WebCore::Transition::~Transition):
(WebCore::Transition::operator=):
(WebCore::Transition::operator==):
(WebCore::Transition::fillUnsetProperties):
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::~StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
(WebCore::StyleRareNonInheritedData::transitionDataEquivalent):
(WebCore::RenderStyle::diff):
(WebCore::RenderStyle::adjustTransitions):
(WebCore::RenderStyle::accessTransitions):
* rendering/RenderStyle.h:
(WebCore::BackgroundLayer::next):
(WebCore::):
(WebCore::TimingFunction::TimingFunction):
(WebCore::TimingFunction::operator==):
(WebCore::Transition::next):
(WebCore::Transition::isTransitionDurationSet):
(WebCore::Transition::isTransitionRepeatCountSet):
(WebCore::Transition::isTransitionTimingFunctionSet):
(WebCore::Transition::isTransitionPropertySet):
(WebCore::Transition::isEmpty):
(WebCore::Transition::clearTransitionDuration):
(WebCore::Transition::clearTransitionRepeatCount):
(WebCore::Transition::clearTransitionTimingFunction):
(WebCore::Transition::clearTransitionProperty):
(WebCore::Transition::transitionDuration):
(WebCore::Transition::transitionRepeatCount):
(WebCore::Transition::transitionTimingFunction):
(WebCore::Transition::transitionProperty):
(WebCore::Transition::setTransitionDuration):
(WebCore::Transition::setTransitionRepeatCount):
(WebCore::Transition::setTransitionTimingFunction):
(WebCore::Transition::setTransitionProperty):
(WebCore::Transition::setNext):
(WebCore::Transition::operator!=):
(WebCore::RenderStyle::transitions):
(WebCore::RenderStyle::clearTransitions):
(WebCore::RenderStyle::inheritTransitions):
(WebCore::RenderStyle::initialTransitionDuration):
(WebCore::RenderStyle::initialTransitionRepeatCount):
(WebCore::RenderStyle::initialTransitionTimingFunction):
(WebCore::RenderStyle::initialTransitionProperty):
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::destroy):
2007-10-29 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=6040
XSLT does not report errors to the user
Made parseErrorFunc a static member function of XSLTProcessor to be reusable from XSLStylesheet.
Switched to xmlSetStructuredErrorFunc to get an error structure instead of pre-formatted console
output. Got rid of DeprecatedString in XSLTProcessor.
* dom/Document.cpp:
(WebCore::Document::applyXSLTransform):
* xml/XSLStyleSheet.cpp:
(WebCore::XSLStyleSheet::parseString):
* xml/XSLTProcessor.cpp:
(WebCore::XSLTProcessor::parseErrorFunc):
(WebCore::docLoaderFunc):
(WebCore::setXSLTLoadCallBack):
(WebCore::writeToString):
(WebCore::saveResultToString):
(WebCore::transformTextStringToXHTMLDocumentString):
(WebCore::xsltParamArrayFromParameterMap):
(WebCore::freeXsltParamArray):
(WebCore::XSLTProcessor::createDocumentFromSource):
(WebCore::createFragmentFromSource):
(WebCore::xsltStylesheetPointer):
(WebCore::xmlDocPtrFromNode):
(WebCore::resultMIMEType):
(WebCore::XSLTProcessor::transformToString):
(WebCore::XSLTProcessor::transformToDocument):
(WebCore::XSLTProcessor::transformToFragment):
* xml/XSLTProcessor.h:
(WebCore::XSLTProcessor::setXSLStylesheet):
(WebCore::XSLTProcessor::importStylesheet):
(WebCore::XSLTProcessor::xslStylesheet):
2007-10-29 Dan Bernstein <mitz@apple.com>
Reviewed by John Sullivan.
- fix <rdar://problem/5424455> REGRESSION (r21168-r21193, Tiger only): Safari scrollbar is clipped at top when loading particular RSS page
Test: fast/repaint/layout-state-only-positioned.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutOnlyPositionedObjects): Pop layout state
before updating scroll info, which possibly repaints us.
2007-10-29 David Kilzer <ddkilzer@webkit.org>
REGRESSION (r17701): Favicons should be viewable as image documents
<http://bugs.webkit.org/show_bug.cgi?id=15640>
Reviewed by Darin.
On Tiger and Leopard, the image/x-icon MIME type is not returned from
CGImageSourceCopyTypeIdentifiers(), so opening a URL to a favicon caused
the icon to be downloaded instead being displayed in an image document.
Test: fast/images/favicon-as-image.html
* platform/MIMETypeRegistry.cpp:
(WebCore::initialiseSupportedImageMIMETypes): Manually add image/x-icon to
supportedImageMIMETypes and supportedImageResourceMIMETypes. Also fixed
comment about the image/bmp MIME type since it applies to both Tiger and
Leopard.
2007-10-29 Maciej Stachowiak <mjs@apple.com>
Reviewed by Mark.
- fixed assertion failures detected by the new assertions
* bindings/objc/DOMRGBColor.mm:
(-[DOMRGBColor dealloc]): Clear _internal before calling [super dealloc]
because it's not a pointer and shouldn't be in the normal wrapper cache.
* dom/Document.cpp:
(WebCore::Document::addImageMap): Don't access hashmap if name is null.
(WebCore::Document::removeImageMap): ditto
* dom/StyledElement.cpp:
(WebCore::StyledElement::parseMappedAttribute): Don't claim we have a class
when the class attribute is empty.
* platform/TextCodecICU.cpp:
(WebCore::gbkCallbackEscape): Don't look up 0 code points.
2007-10-28 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=10734
Made HTMLOptionElement.index read-only, matching IE and DOM standard.
Test: fast/dom/HTMLOptionElement/set-option-index-text.html
* html/HTMLOptionElement.idl: Marked index as readonly.
* html/HTMLOptionElement.cpp:
* html/HTMLOptionElement.h:
Removed setIndex().
2007-10-28 Eric Seidel <eric@webkit.org>
Reviewed by darin.
Fix leaks on TOT and prevent Path code from logging to console so frequently
* platform/graphics/svg/SVGResourceFilter.h:
(WebCore::SVGResourceFilterPlatformData::SVGResourceFilterPlatformData):
(WebCore::SVGResourceFilterPlatformData::~SVGResourceFilterPlatformData):
* platform/graphics/svg/cg/CgSupport.cpp:
(WebCore::strokeBoundingBox):
* platform/graphics/svg/cg/SVGResourceFilterCg.mm:
* platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.h:
2007-10-28 Mark Rowe <mrowe@apple.com>
Reviewed by Maciej.
Replace uses of isNaN and isInf with isnan and isinf.
* bindings/js/JSHTMLOptionsCollectionCustom.cpp:
(WebCore::JSHTMLOptionsCollection::setLength):
2007-10-28 Maciej Stachowiak <mjs@apple.com>
Reviewed by Mark.
- fixed REGRESSION(r27176): Reproducible crash while trying to order dinner makes bdash sad
http://bugs.webkit.org/show_bug.cgi?id=15731
* bindings/js/kjs_window.cpp:
(KJS::Window::installTimeout): Avoid putting in or accessing empty or deleted keys.
(KJS::Window::clearTimeout): ditto
* manual-tests/bad-clearTimeout-crash.html: Added. Automated test not possible.
2007-10-28 Kevin Ollivier <kevino@theolliviers.com>
wx port defines for graphics and network layers.
Reviewed by Darin Adler.
* platform/graphics/AffineTransform.h:
* platform/graphics/BitmapImage.h:
* platform/graphics/Color.h:
* platform/graphics/FloatRect.h:
* platform/graphics/GraphicsContext.h:
* platform/graphics/ImageSource.h:
* platform/graphics/IntPoint.h:
* platform/graphics/IntRect.h:
* platform/graphics/Path.h:
* platform/graphics/Pen.h:
* platform/network/ResourceHandle.h:
2007-10-28 Alp Toker <alp@atoker.com>
Reviewed by Anders Carlsson.
http://bugs.webkit.org/show_bug.cgi?id=14124
[CURL] Support data URLs
Add data URL support (both Base64 and percent-encoded formats).
Inspired by code from the Qt port.
* platform/Base64.cpp:
(WebCore::base64Decode):
* platform/Base64.h:
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::ResourceHandleManager::startScheduledJobs):
(WebCore::parseDataUrl):
2007-10-28 Alp Toker <alp@atoker.com>
Reviewed by Adam Roben.
http://bugs.webkit.org/show_bug.cgi?id=15701
The curl http backend does not deal properly with redirects
Implement http redirect support.
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::headerCallback):
2007-10-28 Kevin Ollivier <kevino@theolliviers.com>
Define types and accessors needed for wx implementation
of platform classes. Also, turn off DisallowCTypes.h because
disallowed methods appear in wx headers.
Reviewed by Adam Roben.
* config.h:
* platform/ContextMenuItem.h:
* platform/Cursor.h:
* platform/DeprecatedString.h:
* platform/DragData.h:
* platform/DragImage.h:
* platform/FontData.h:
(WebCore::FontData::getWxFont):
* platform/GlyphBuffer.h:
(WebCore::GlyphBuffer::glyphAt):
(WebCore::GlyphBuffer::advanceAt):
(WebCore::GlyphBuffer::add):
* platform/PlatformKeyboardEvent.h:
(WebCore::PlatformKeyboardEvent::isWxCharEvent):
* platform/PlatformMenuDescription.h:
* platform/PlatformMouseEvent.h:
* platform/PlatformString.h:
* platform/PlatformWheelEvent.h:
* platform/ScrollView.h:
* platform/Widget.h:
* platform/image-decoders/bmp/BMPImageDecoder.cpp:
* platform/image-decoders/gif/GIFImageDecoder.cpp:
* platform/image-decoders/gif/GIFImageReader.cpp:
* platform/image-decoders/ico/ICOImageDecoder.cpp:
* platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
* platform/image-decoders/png/PNGImageDecoder.cpp:
* platform/image-decoders/xbm/XBMImageDecoder.cpp:
2007-10-28 Mark Rowe <mrowe@apple.com>
We don't include "config.h" in headers.
* dom/XMLTokenizer.h:
* platform/graphics/svg/SVGResourceFilter.h:
* platform/image-decoders/ImageDecoder.h:
* platform/wx/FontPlatformData.h:
2007-10-28 Darin Adler <darin@apple.com>
* platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.h:
We don't include "config.h" in headers. Hope this desn't break
the non-SVG build again.
2007-10-28 Eric Seidel <eric@webkit.org>
Build fix for non-SVG build, no review.
* platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.h:
* platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.mm:
2007-10-28 Eric Seidel <eric@webkit.org>
Reviewed by Oliver.
Push SVGResourceFilter platform specific data down into m_platformData
in preparation for implementing a non-mac filter solution.
Also update a very old email address in copyright headers
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/FloatPoint3D.cpp:
(WebCore::FloatPoint3D::FloatPoint3D):
* platform/graphics/FloatPoint3D.h:
* platform/graphics/svg/SVGResourceFilter.cpp:
(WebCore::SVGResourceFilter::SVGResourceFilter):
* platform/graphics/svg/SVGResourceFilter.h:
(WebCore::SVGResourceFilter::platformData):
(WebCore::SVGResourceFilter::effects):
* platform/graphics/svg/cg/SVGResourceFilterCg.mm:
(WebCore::SVGResourceFilter::createPlatformData):l
(WebCore::SVGResourceFilter::prepareFilter):
(WebCore::SVGResourceFilter::applyFilter):
* platform/graphics/svg/filters/SVGDistantLightSource.h:
* platform/graphics/svg/filters/SVGFEBlend.cpp:
* platform/graphics/svg/filters/SVGFEBlend.h:
* platform/graphics/svg/filters/SVGFEColorMatrix.cpp:
* platform/graphics/svg/filters/SVGFEColorMatrix.h:
* platform/graphics/svg/filters/SVGFEComponentTransfer.cpp:
* platform/graphics/svg/filters/SVGFEComponentTransfer.h:
* platform/graphics/svg/filters/SVGFEComposite.cpp:
* platform/graphics/svg/filters/SVGFEComposite.h:
* platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp:
* platform/graphics/svg/filters/SVGFEConvolveMatrix.h:
* platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp:
* platform/graphics/svg/filters/SVGFEDiffuseLighting.h:
* platform/graphics/svg/filters/SVGFEDisplacementMap.cpp:
* platform/graphics/svg/filters/SVGFEDisplacementMap.h:
* platform/graphics/svg/filters/SVGFEFlood.cpp:
* platform/graphics/svg/filters/SVGFEFlood.h:
* platform/graphics/svg/filters/SVGFEGaussianBlur.cpp:
* platform/graphics/svg/filters/SVGFEGaussianBlur.h:
* platform/graphics/svg/filters/SVGFEImage.cpp:
* platform/graphics/svg/filters/SVGFEImage.h:
* platform/graphics/svg/filters/SVGFEMerge.cpp:
* platform/graphics/svg/filters/SVGFEMerge.h:
* platform/graphics/svg/filters/SVGFEMorphology.cpp:
* platform/graphics/svg/filters/SVGFEMorphology.h:
* platform/graphics/svg/filters/SVGFEOffset.cpp:
* platform/graphics/svg/filters/SVGFEOffset.h:
* platform/graphics/svg/filters/SVGFESpecularLighting.cpp:
* platform/graphics/svg/filters/SVGFESpecularLighting.h:
* platform/graphics/svg/filters/SVGFETile.h:
* platform/graphics/svg/filters/SVGFETurbulence.cpp:
* platform/graphics/svg/filters/SVGFETurbulence.h:
* platform/graphics/svg/filters/SVGFilterEffect.cpp:
* platform/graphics/svg/filters/SVGFilterEffect.h:
* platform/graphics/svg/filters/SVGLightSource.cpp:
* platform/graphics/svg/filters/SVGLightSource.h:
* platform/graphics/svg/filters/SVGPointLightSource.h:
* platform/graphics/svg/filters/SVGSpotLightSource.h:
* platform/graphics/svg/filters/cg/SVGFEBlendCg.mm:
(WebCore::SVGFEBlend::getCIFilter):
* platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm:
(WebCore::SVGFEColorMatrix::getCIFilter):
* platform/graphics/svg/filters/cg/SVGFEComponentTransferCg.mm:
(WebCore::SVGFEComponentTransfer::getCIFilter):
* platform/graphics/svg/filters/cg/SVGFECompositeCg.mm:
(WebCore::SVGFEComposite::getCIFilter):
* platform/graphics/svg/filters/cg/SVGFEDiffuseLightingCg.mm:
(WebCore::SVGFEDiffuseLighting::getCIFilter):
* platform/graphics/svg/filters/cg/SVGFEDisplacementMapCg.mm:
(WebCore::SVGFEDisplacementMap::getCIFilter):
* platform/graphics/svg/filters/cg/SVGFEFloodCg.mm:
(WebCore::SVGFEFlood::getCIFilter):
* platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
* platform/graphics/svg/filters/cg/SVGFEImageCg.mm:
(WebCore::SVGFEImage::getCIFilter):
* platform/graphics/svg/filters/cg/SVGFEMergeCg.mm:
(WebCore::SVGFEMerge::getCIFilter):
* platform/graphics/svg/filters/cg/SVGFESpecularLightingCg.mm:
(WebCore::SVGFESpecularLighting::getCIFilter):
* platform/graphics/svg/mac: Added.
* platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.h: Added.
* platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.mm: Added.
(WebCore::SVGResourceFilterPlatformDataMac::SVGResourceFilterPlatformDataMac):
(WebCore::SVGResourceFilterPlatformDataMac::~SVGResourceFilterPlatformDataMac):
(WebCore::SVGResourceFilterPlatformDataMac::getCIFilterStack):
(WebCore::alphaImageForImage):
(WebCore::SVGResourceFilterPlatformDataMac::imageForName):
(WebCore::SVGResourceFilterPlatformDataMac::setImageForName):
(WebCore::SVGResourceFilterPlatformDataMac::setOutputImage):
(WebCore::SVGResourceFilterPlatformDataMac::inputImage):
2007-10-28 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Adam Roben.
http://bugs.webkit.org/show_bug.cgi?id=15217
Plugin complains that xpcom_core.dll missing
* plugins/win/PluginDatabaseWin.cpp:
(WebCore::PluginDatabaseWin::isPluginBlacklisted): Blacklist npmozax.dll.
2007-10-28 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam.
Pass the Document's domain to InspectorController:didOpenDatabase. This matches
what the Inspector shows for other resources.
* storage/Database.cpp:
(WebCore::Database::openDatabase):
* dom/Document.h: Remove KURL.h, no longer needed.
2007-10-28 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam.
Bug 15728: Selected Resource background image gradient has banding
http://bugs.webkit.org/show_bug.cgi?id=15728
- Reduced images to 1px wide that are tiled horizontally in CSS.
- Corrected the -webkit-background-size usage to specify auto for the width.
* page/inspector/Images/attachedShadow.png:
* page/inspector/Images/bottomShadow.png:
* page/inspector/Images/darkShadow.png:
* page/inspector/Images/gradient.png:
* page/inspector/Images/gradientHighlight.png:
* page/inspector/Images/gradientHighlightBottom.png:
* page/inspector/Images/sidebarSelection.png:
* page/inspector/Images/sidebarSelectionBlurred.png:
* page/inspector/Images/sidebarSelectionBlurredTall.png:
* page/inspector/Images/sidebarSelectionGray.png:
* page/inspector/Images/sidebarSelectionGrayTall.png:
* page/inspector/Images/sidebarSelectionTall.png:
* page/inspector/inspector.css:
2007-10-27 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam.
Bug 15727: Resizing the resource sidebar doesn't scale the font preview or network timeline
http://bugs.webkit.org/show_bug.cgi?id=15727
Add one window resize listener and call the new resize function on the currentPanel.
Also call the currentPanel's resize function when resizing the sidebar.
* page/inspector/DocumentPanel.js: Implement resize and call updateTreeSelection() when
the panel is shown and when resizing the DOM sidebar.
* page/inspector/FontPanel.js: Implement resize.
* page/inspector/NetworkPanel.js: Ditto.
* page/inspector/inspector.js: Add a window resize listener.
2007-10-27 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
- update for HashTable changes
* bindings/js/JSSVGPODTypeWrapper.h:
* dom/Document.h:
* dom/QualifiedName.cpp:
* dom/StyledElement.cpp:
* ksvg2/svg/SVGAnimatedTemplate.h:
* platform/FontCache.cpp:
* platform/StringHash.h:
(WTF::):
* platform/TextEncodingRegistry.cpp:
* platform/graphics/IntSizeHash.h:
(WTF::):
* plugins/win/PluginPackageWin.h:
2007-10-28 Alp Toker <alp@atoker.com>
Reviewed by Adam Roben.
http://bugs.webkit.org/show_bug.cgi?id=15646
[GTK] caretBlinkFrequency is hard-coded in Frame.cpp
Abstract caretBlinkFrequency to RenderTheme.
* page/Frame.cpp:
(WebCore::Frame::selectionLayoutChanged):
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::caretShouldBlink):
(WebCore::RenderThemeGtk::caretBlinkFrequency):
* platform/gtk/RenderThemeGtk.h:
* rendering/RenderTheme.h:
2007-10-27 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam.
Don't print the line number in the Inspector Console if it is Zero.
* page/inspector/ConsolePanel.js:
2007-10-27 Sam Weinig <sam@webkit.org>
Reviewed by Adam Roben.
Fix http://bugs.webkit.org/show_bug.cgi?id=14953
Implement window.console in WebCore
- Adds a window.console object that has 4 methods (log, info, warn, and error)
that send messages to the Chrome. This moves functionality that was in the
app down into WebCore.
* DerivedSources.make:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/scripts/CodeGeneratorJS.pm: Add extended attribute
to mark attributes as [Replacable] which indicates they can
overridden when set.
* page/Chrome.cpp:
(WebCore::Chrome::addMessageToConsole): Allow all messages to go
up to the ChromeClient.
* page/Console.cpp: Added.
(WebCore::Console::Console):
(WebCore::Console::disconnectFrame):
(WebCore::Console::error):
(WebCore::Console::info):
(WebCore::Console::log):
(WebCore::Console::warn):
* page/Console.h: Added.
* page/Console.idl: Added.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::clear):
(WebCore::DOMWindow::console):
* page/DOMWindow.h:
* page/DOMWindow.idl:
2007-10-27 Eric Seidel <eric@webkit.org>
Reviewed by aroben.
Remove legacy createFilterEffect function (causing extra filter tests to fail on windows)
No functional changes, thus no tests.
* ksvg2/svg/SVGFEBlendElement.cpp:
(WebCore::SVGFEBlendElement::filterEffect):
* ksvg2/svg/SVGFEColorMatrixElement.cpp:
(WebCore::SVGFEColorMatrixElement::filterEffect):
* ksvg2/svg/SVGFEComponentTransferElement.cpp:
(WebCore::SVGFEComponentTransferElement::filterEffect):
* ksvg2/svg/SVGFECompositeElement.cpp:
(WebCore::SVGFECompositeElement::filterEffect):
* ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
(WebCore::SVGFEDiffuseLightingElement::filterEffect):
* ksvg2/svg/SVGFEDisplacementMapElement.cpp:
(WebCore::SVGFEDisplacementMapElement::filterEffect):
* ksvg2/svg/SVGFEFloodElement.cpp:
(WebCore::SVGFEFloodElement::filterEffect):
* ksvg2/svg/SVGFEGaussianBlurElement.cpp:
(WebCore::SVGFEGaussianBlurElement::filterEffect):
* ksvg2/svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::filterEffect):
* ksvg2/svg/SVGFEMergeElement.cpp:
(WebCore::SVGFEMergeElement::filterEffect):
* ksvg2/svg/SVGFEOffsetElement.cpp:
(WebCore::SVGFEOffsetElement::filterEffect):
* ksvg2/svg/SVGFESpecularLightingElement.cpp:
(WebCore::SVGFESpecularLightingElement::filterEffect):
* ksvg2/svg/SVGFETileElement.cpp:
(WebCore::SVGFETileElement::filterEffect):
* ksvg2/svg/SVGFETurbulenceElement.cpp:
(WebCore::SVGFETurbulenceElement::filterEffect):
* platform/graphics/svg/SVGResourceFilter.h:
* platform/graphics/svg/cg/SVGResourceFilterCg.cpp:
* platform/graphics/svg/cg/SVGResourceFilterCg.mm:
* platform/graphics/svg/qt/SVGResourceFilterQt.cpp:
2007-10-27 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- fix a crash when opening Zenoss server history view
<rdar://problem/5530657>
Test: fast/table/colgroup-relative.html
* rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState): Added a hasLayer() check before
accessing layer().
2007-10-27 Julien <julien.chaffraix@gmail.com>
Reviewed by Alexey.
http://bugs.webkit.org/show_bug.cgi?id=13141
XMLHttpRequest should set readyState to 0 after abort()
Test: http/tests/xmlhttprequest/xmlhttprequest-abort-readyState.html
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::open):
(WebCore::XMLHttpRequest::abort):
2007-10-27 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt.
- fix rotated border images by using a temporary subimage containing
only the part we want to tile
Test: fast/borders/border-image-rotate-transform.html
* platform/graphics/cg/ImageCG.cpp:
(WebCore::Image::drawPatternCallback):
(WebCore::Image::drawPattern):
2007-10-27 Jan Michael Alonzo <jmalonzo@unpluggable.com>
Reviewed by Alp.
http://bugs.webkit.org/show_bug.cgi?id=15722
[GTK] Refactor gtk/RenderThemeGtk and implement a few more methods
Refactor/enhance GTK RenderTheme
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::supportsFocus): added TextArea, Menulist, Radio, and Checkbox Appearances
(WebCore::RenderThemeGtk::supportsFocusRing): call supportsFocus() to check if focus on appearance is supported
(WebCore::RenderThemeGtk::controlSupportsTints): copied from Qt and Safari ports
(WebCore::RenderThemeGtk::baselinePosition): copied from Qt and Safari ports
(WebCore::RenderThemeGtk::paintCheckbox): moved painting in paintButton
(WebCore::RenderThemeGtk::paintRadio): moved painting in paintButton
(WebCore::RenderThemeGtk::paintButton): paint the different buttons here, checking for the right appearance before doing so
(WebCore::RenderThemeGtk::paintMenuList): use 0 instead of NULLs
(WebCore::RenderThemeGtk::adjustTextFieldStyle):
(WebCore::RenderThemeGtk::getThemeData):
* platform/gtk/RenderThemeGtk.h:
(WebCore::RenderThemeGtk::supportsControlTints):
2007-10-27 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=15555
XMLHttpRequest does not support charset "x-user-defined", which can
facilitate loading of binary data
Test: http/tests/xmlhttprequest/binary-x-user-defined.html
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* platform/TextCodecUserDefined.cpp: Added.
(WebCore::TextCodecUserDefined::registerEncodingNames):
(WebCore::newStreamingTextDecoderUserDefined):
(WebCore::TextCodecUserDefined::registerCodecs):
(WebCore::TextCodecUserDefined::decode):
(WebCore::encodeComplexUserDefined):
(WebCore::TextCodecUserDefined::encode):
* platform/TextCodecUserDefined.h: Added.
* platform/TextEncodingRegistry.cpp:
(WebCore::buildBaseTextCodecMaps):
2007-10-27 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=15467
Setting innerHTML to blank string in application/xhtml+xml mode
throws DOM Exception 7
Test: fast/dom/blank-innerHTML.xhtml
* dom/XMLTokenizer.cpp:
(WebCore::parseXMLDocumentFragment): Bail out early if the input string is empty.
2007-10-26 Sam Weinig <sam@webkit.org>
Enable dragging the left sidebar using the separator.
Reviewed by Anders (unless Mitz says otherwise).
* page/inspector/DocumentPanel.js:
* page/inspector/inspector.css:
* page/inspector/inspector.html:
* page/inspector/inspector.js:
2007-10-26 Sam Weinig <sam@webkit.org>
Fix an off by one error when resizing the Inspector find window.
Reviewed by Hyatt.
* page/inspector/inspector.js:
2007-10-26 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Adam.
Fix fallout from r26072, which leads to all plugin streams for local
resources being cancelled
* loader/win/NetscapePlugInStreamLoaderWin.cpp:
(WebCore::NetscapePlugInStreamLoader::didReceiveResponse): Ensure this
is an HTTP response before checking the HTTP response code
2007-10-26 David Hyatt <hyatt@apple.com>
Fix for http://bugs.webkit.org/show_bug.cgi?id=15719, transformed box doesn't repaint properly
when only translation changes.
Move the updating of the transform to in between the old repaint and the new repaint.
Reviewed by mitz
fast/repaint/transform-translate.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositions):
2007-10-26 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Darin.
<rdar://5557379> Crash in Silverlight when opening microsoft.com
The crash is within Silverlight, and the latest version of the plugin
does not exhibit this crash, so just avoid loading this version of the
plugin.
* plugins/win/PluginDatabaseWin.cpp: Added isPluginBlacklisted() and
constants silverlightPluginMinRequiredVersionMSDWORD and
silverlightPluginMinRequiredVersionLSDWORD. Their values are taken from
the version info of Silverlight 1.0.20926.0, which is a version known
not to exhibit this crash
(WebCore::PluginDatabaseWin::isPluginBlacklisted): Determine whether
this plugin is blacklisted
* plugins/win/PluginDatabaseWin.h:
* plugins/win/PluginPackageWin.cpp:
(WebCore::PluginPackageWin::PluginPackageWin): Initialize m_fileVersion*
(WebCore::PluginPackageWin::getFileVersion):
(WebCore::PluginPackageWin::storeFileVersion): Read version info for
the plugin, and store the file version
(WebCore::PluginPackageWin::fetchInfo): After determining the name,
description, and file version, determine whether this plug-in is
blacklisted. If so, return false so this plug-in isn't loaded
* plugins/win/PluginPackageWin.h:
2007-10-26 Sam Weinig <sam@webkit.org>
Reviewed by Adele Peterson.
Fix for <rdar://problem/5421754>
m_frameName member variable in HTMLPlugInElement unnecessary
- Refactor the willRemove() method down into HTMLFrameOwnerElement now that
we no longer need to use the m_frameName variable.
* html/HTMLFrameElementBase.cpp:
* html/HTMLFrameElementBase.h:
* html/HTMLFrameOwnerElement.cpp:
(WebCore::HTMLFrameOwnerElement::willRemove):
* html/HTMLFrameOwnerElement.h:
* html/HTMLPlugInElement.cpp:
* html/HTMLPlugInElement.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::requestObject):
2007-10-26 Adele Peterson <adele@apple.com>
Export _wkDrawCapsLockIndicator.
* WebCore.base.exp:
2007-10-26 Adele Peterson <adele@apple.com>
Reviewed by Oliver.
Adding WebKitSystemInterface support for the caps lock indicator
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
2007-10-26 Tristan O'Tierney <tristan@apple.com>
Reviewed by Darin Adler.
<rdar://problem/5555053> REGRESSION:9A581: Window disappears when opening http://research.microsoft.com/users/darkok/
The problem was caused by checkin r24654. This change moved explicit bounds checking into adjustWindowRect
but failed to account for bounds checking (instead replaced with bounds clipping). This caused issues
when NaN was used. This patch goes one step further and does NaN checking to prevent the possibility of
setting window bounds to NaN before an update occurs.
Test: fast/dom/Window/window-resize-nan.html
* bindings/js/kjs_window.cpp:
(KJS::adjustWindowRect):
Added a new parameter, pendingChanges, which takes pending changes to the window
rect, and if they are valid (not NaN) sets them on window.
(KJS::WindowFunc::callAsFunction):
Adjusted uses of adjustWindowRect to take new update parameter.
2007-10-26 Sam Weinig <sam@webkit.org>
Reviewed by Tim Hatcher.
Fix for http://bugs.webkit.org/show_bug.cgi?id=15175
Cannot copy text of errors from Web Inspector from Console view
* page/inspector/inspector.css: add -webkit-user-select: text for console messages.
2007-10-26 Sam Weinig <sam@webkit.org>
Reviewed by Tim Hatcher.
Fix for http://bugs.webkit.org/show_bug.cgi?id=15446
Web Inspector find window is not resizable
- Adds ability to resize the find window.
- Fixes bug that messed up the find window when resizing the left sidebar.
* page/inspector/inspector.css:
* page/inspector/inspector.html:
* page/inspector/inspector.js:
2007-10-26 Ada Chan <adachan@apple.com>
Update m_current index after we've removed an item:
- if item removed is before m_current, decrement m_current
- if the current item is removed, make sure m_current is within bounds.
Reviewed by Darin.
* history/BackForwardList.cpp:
(WebCore::BackForwardList::removeItem):
2007-10-26 Mark Rowe <mrowe@apple.com>
Debug build fix.
* bindings/js/kjs_proxy.cpp:
(WebCore::KJSProxy::~KJSProxy):
2007-10-26 Maciej Stachowiak <mjs@apple.com>
No review, build fix.
* bindings/objc/WebScriptObject.mm:
(+[WebScriptObject throwException:]):
(-[WebScriptObject setException:]):
2007-10-26 Maciej Stachowiak <mjs@apple.com>
Rubber Stamped by Mark.
- fix build
* bridge/mac/WebCoreScriptDebugger.mm:
(-[WebCoreScriptCallFrame scopeChain]):
(-[WebCoreScriptCallFrame functionName]):
(-[WebCoreScriptCallFrame evaluateWebScript:]):
2007-10-26 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver.
- update for JavaScriptCore header changes
* bindings/objc/WebScriptObject.mm:
* bridge/mac/WebCoreScriptDebugger.mm:
2007-10-26 Alp Toker <alp@atoker.com>
Reviewed by Mark Rowe.
http://bugs.webkit.org/show_bug.cgi?id=15693
[GTK] Paging does not work when widget is added to a GtkScrolledWindow
Eliminate MagicGtkScrollConstant in favour of the same calculations as
GtkTextView for step and page increments. This also makes paging work,
as the page increment was previously always 0.
* platform/gtk/ScrollViewGtk.cpp:
(WebCore::ScrollView::updateScrollbars):
2007-10-25 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt and Sam Weinig.
Build fix
* platform/graphics/cg/ImageCG.cpp:
(WebCore::Image::drawPattern):
2007-10-23 Jan Michael Alonzo <jmalonzo@unpluggable.com>
Reviewed by Alp.
http://bugs.webkit.org/show_bug.cgi?id=15656
[GTK] Implement WebCore::Widget::isEnabled/setEnabled
* platform/gtk/WidgetGtk.cpp:
(WebCore::Widget::isEnabled):
(WebCore::Widget::setEnabled): Implemented.
2007-10-25 David Hyatt <hyatt@apple.com>
Fix for bug 15672, background images don't tile properly inside transforms. This patch fixes background
tiling to work in the presence of transforms and fixes bugs in both SVG and CSS transforms.
Reviewed by aroben and mitz
* WebCore.base.exp:
* platform/graphics/Image.cpp:
(WebCore::Image::setData):
* platform/graphics/cg/ImageCG.cpp:
(WebCore::ImageInfo::ImageInfo):
(WebCore::Image::drawPatternCallback):
(WebCore::Image::drawPattern):
* platform/graphics/mac/GraphicsContextMac.mm:
(WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
2007-10-25 Brady Eidson <beidson@apple.com>
Blind build fix attempt
* WebCore.pro:
2007-10-25 Brady Eidson <beidson@apple.com>
Reviewed by Anders and Sam
Bulk rename of platform/sql/SQL* to platform/sql/SQLite*
This is more accurate in that there is no realistic "SQL" abstraction, the classes are obviously
tied extremely close to SQLite, and is necessitated by the introduction of "SQLTransaction" in
the HTML5 database API which we are adopting.
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::iconDatabaseSyncThread):
(WebCore::databaseVersionNumber):
(WebCore::isValidDatabase):
(WebCore::createDatabaseTables):
(WebCore::IconDatabase::performOpenInitialization):
(WebCore::IconDatabase::checkIntegrity):
(WebCore::IconDatabase::performURLImport):
(WebCore::IconDatabase::writeToDatabase):
(WebCore::IconDatabase::pruneUnretainedIcons):
(WebCore::IconDatabase::checkForDanglingPageURLs):
(WebCore::IconDatabase::imported):
(WebCore::IconDatabase::setImported):
(WebCore::readySQLiteStatement):
(WebCore::IconDatabase::setIconIDForPageURLInSQLDatabase):
(WebCore::IconDatabase::removePageURLFromSQLDatabase):
(WebCore::IconDatabase::getIconIDForIconURLFromSQLDatabase):
(WebCore::IconDatabase::addIconURLToSQLDatabase):
(WebCore::IconDatabase::getImageDataForIconURLFromSQLDatabase):
(WebCore::IconDatabase::removeIconFromSQLDatabase):
(WebCore::IconDatabase::writeIconSnapshotToSQLDatabase):
* loader/icon/IconDatabase.h:
* loader/icon/IconRecord.cpp:
* platform/sql/SQLAuthorizer.cpp: Removed.
* platform/sql/SQLAuthorizer.h: Removed.
* platform/sql/SQLDatabase.cpp: Removed.
* platform/sql/SQLDatabase.h: Removed.
* platform/sql/SQLStatement.cpp: Removed.
* platform/sql/SQLStatement.h: Removed.
* platform/sql/SQLTransaction.cpp: Removed.
* platform/sql/SQLTransaction.h: Removed.
* platform/sql/SQLiteAuthorizer.cpp: Copied from platform/sql/SQLAuthorizer.cpp.
* platform/sql/SQLiteAuthorizer.h: Copied from platform/sql/SQLAuthorizer.h.
(WebCore::SQLiteAuthorizer::~SQLiteAuthorizer):
* platform/sql/SQLiteDatabase.cpp: Copied from platform/sql/SQLDatabase.cpp.
(WebCore::SQLiteDatabase::SQLiteDatabase):
(WebCore::SQLiteDatabase::~SQLiteDatabase):
(WebCore::SQLiteDatabase::open):
(WebCore::SQLiteDatabase::close):
(WebCore::SQLiteDatabase::setFullsync):
(WebCore::SQLiteDatabase::setSynchronous):
(WebCore::SQLiteDatabase::setBusyTimeout):
(WebCore::SQLiteDatabase::setBusyHandler):
(WebCore::SQLiteDatabase::executeCommand):
(WebCore::SQLiteDatabase::returnsAtLeastOneResult):
(WebCore::SQLiteDatabase::tableExists):
(WebCore::SQLiteDatabase::clearAllTables):
(WebCore::SQLiteDatabase::runVacuumCommand):
(WebCore::SQLiteDatabase::lastInsertRowID):
(WebCore::SQLiteDatabase::lastChanges):
(WebCore::SQLiteDatabase::lastError):
(WebCore::SQLiteDatabase::lastErrorMsg):
(WebCore::SQLiteDatabase::authorizerFunction):
(WebCore::SQLiteDatabase::setAuthorizer):
(WebCore::SQLiteDatabase::lock):
(WebCore::SQLiteDatabase::unlock):
* platform/sql/SQLiteDatabase.h: Copied from platform/sql/SQLDatabase.h.
* platform/sql/SQLiteStatement.cpp: Copied from platform/sql/SQLStatement.cpp.
(WebCore::SQLiteStatement::SQLiteStatement):
(WebCore::SQLiteStatement::~SQLiteStatement):
(WebCore::SQLiteStatement::prepare):
* platform/sql/SQLiteStatement.h: Copied from platform/sql/SQLStatement.h.
(WebCore::SQLiteStatement::database):
* platform/sql/SQLiteTransaction.cpp: Copied from platform/sql/SQLTransaction.cpp.
(WebCore::SQLiteTransaction::SQLiteTransaction):
(WebCore::SQLiteTransaction::~SQLiteTransaction):
(WebCore::SQLiteTransaction::begin):
(WebCore::SQLiteTransaction::commit):
(WebCore::SQLiteTransaction::rollback):
* platform/sql/SQLiteTransaction.h: Copied from platform/sql/SQLTransaction.h.
* storage/Database.cpp:
(WebCore::retrieveTextResultFromDatabase):
(WebCore::setTextValueInDatabase):
(WebCore::Database::performExecuteSql):
(WebCore::Database::performGetTableNames):
(WebCore::Database::executeSql):
* storage/Database.h:
* storage/DatabaseAuthorizer.h:
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::fullPathForDatabase):
(WebCore::DatabaseTracker::populateOrigins):
(WebCore::DatabaseTracker::databaseNamesForOrigin):
(WebCore::DatabaseTracker::addDatabase):
* storage/DatabaseTracker.h:
2007-10-25 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=15650
XML attribute nodes are not importable
Tests: fast/dom/import-attribute-node.html
fast/dom/import-document-fragment.html
* dom/Document.cpp:
(WebCore::Document::importNode): Implemented for Attribute and DocumentFragment nodes.
2007-10-25 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=15362
<rdar://problem/5558715> Safari Crashes when opening a JS TreeGrid widget
Test: fast/dynamic/insert-before-table-part-in-continuation.html
* rendering/RenderFlow.cpp:
(WebCore::RenderFlow::addChildWithContinuation): If beforeChild's
parent is an anonymous table part, let the table figure out where to
insert the new child.
2007-10-25 Alp Toker <alp@atoker.com>
Reviewed by Brady.
http://bugs.webkit.org/show_bug.cgi?id=15686
GtkLauncher aborts on launch due to uninitialized threading subsystem
Re-enable database support in the GTK+ port, with a fix.
* WebCore.pro:
2007-10-25 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Steve.
<rdar://5548217>: [NTS] Java 6 update 3 crashes Safari when loading a
java page
Previous patch erroneously compared a path and a
path-including-filename. This corrects that. It also caches the result
of safariPluginsPath() and uses shell API funcs for determining filename
and parent directory from a full path.
* plugins/win/PluginDatabaseWin.cpp:
(WebCore::safariPluginsPath): Cache return value. Use API functions to
build the path
(WebCore::PluginDatabaseWin::pluginForMIMEType): Compare again plugin's
parent directory, not full path
(WebCore::PluginDatabaseWin::pluginForExtension): Same
* plugins/win/PluginPackageWin.cpp:
(WebCore::PluginPackageWin::PluginPackageWin): Store parent directory
* plugins/win/PluginPackageWin.h:
(WebCore::PluginPackageWin::parentDirectory):
* plugins/win/PluginStreamWin.cpp:
(WebCore::PluginStreamWin::didReceiveData):
2007-10-25 Alp Toker <alp@atoker.com>
Unreviewed fix to make the GTK+ port run.
http://bugs.webkit.org/show_bug.cgi?id=15686
GtkLauncher aborts on launch due to uninitialized threading subsystem
Disable database support until #15686 is fixed.
* WebCore.pro:
2007-10-25 Simon Hausmann <hausmann@kde.org>
Reviewed by Lars.
Fixed a crash in the Qt 4.4 based text iterators when they're called with a null string.
* platform/qt/TextBreakIteratorQt.cpp:
(WebCore::wordBreakIterator):
(WebCore::characterBreakIterator):
(WebCore::lineBreakIterator):
(WebCore::sentenceBreakIterator):
2007-10-25 Holger Freyther <zecke@selfish.org>
Reviewed by Simon Hausmann <hausmann@kde.org>.
* We need to set a != 0 status code for the fast/loader/xmlhttprequest-missing-file-exception.html
* libxml2 has the semantic that when writing an empty string and finishing it will report an error. For QXmlStreamReader this is valid.
* This is causing some regressions...
* dom/XMLTokenizer.cpp:
(WebCore::XMLTokenizer::XMLTokenizer):
(WebCore::XMLTokenizer::write):
(WebCore::XMLTokenizer::end):
* dom/XMLTokenizer.h:
2007-10-25 Holger Freyther <zecke@selfish.org>
Reviewed by Simon Hausmann <hausmann@kde.org>.
* fast/dom/onerror-img.html regressed due checking the JobStates because in case of error (e.g. not being able to connect) the job will no be started.
* Use the error message from Qt. It might or might not be translated.
* platform/network/qt/ResourceHandleQt.cpp:
(WebCore::WebCoreSynchronousLoader::didFail):
2007-10-25 Holger Freyther <zecke@selfish.org>
Reviewed by Simon Hausmann <hausmann@kde.org>.
* Implement our own queuing of network jobs to allow special handling of synchronous jobs. This makes us pass the fast/dom/xmlhttprequest-html-response-encoding.html test without a crash. Sync jobs will get a special treatment over the normals ones and in theory more than one sync job is supported.
* This should be thread-safe besides QWebNetworkJob::{ref,deref}
* platform/network/qt/ResourceHandleQt.cpp:
(WebCore::ResourceHandle::loadResourceSynchronously):
2007-10-25 Alp Toker <alp@atoker.com>
Reviewed by Mark Rowe.
Add support for list box theme colors and styled menu list buttons.
Remove obsolete FIXMEs.
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::RenderThemeGtk):
(WebCore::RenderThemeGtk::paintCheckbox):
(WebCore::RenderThemeGtk::paintRadio):
(WebCore::RenderThemeGtk::paintButton):
(WebCore::RenderThemeGtk::adjustMenuListStyle):
(WebCore::RenderThemeGtk::paintMenuList):
(WebCore::RenderThemeGtk::activeListBoxSelectionBackgroundColor):
(WebCore::RenderThemeGtk::inactiveListBoxSelectionBackgroundColor):
(WebCore::RenderThemeGtk::activeListBoxSelectionForegroundColor):
(WebCore::RenderThemeGtk::inactiveListBoxSelectionForegroundColor):
(WebCore::RenderThemeGtk::gtkTreeView):
* platform/gtk/RenderThemeGtk.h:
2007-10-25 Eric Seidel <eric@webkit.org>
Reviewed by Geoff.
* bindings/js/kjs_window.h: fix bogus comment, s/DOMNode/DOMObject/
2007-10-24 Eric Seidel <eric@webkit.org>
Reviewed by Maciej.
Make Window subclass from JSGlobalObject (for a .5% win in Sunspider)
http://bugs.webkit.org/show_bug.cgi?id=15681
No test cases necessary, no functional changes.
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/kjs_binding.cpp:
(KJS::ScriptInterpreter::ScriptInterpreter):
* bindings/js/kjs_binding.h:
* bindings/js/kjs_proxy.cpp:
(WebCore::KJSProxy::initScriptIfNeeded):
* bindings/js/kjs_window.cpp:
(KJS::Window::Window):
* bindings/js/kjs_window.h:
* bindings/objc/WebScriptObject.mm:
(_didExecute):
* bridge/mac/WebCoreScriptDebugger.mm:
2007-10-24 Adam Roben <aroben@apple.com>
Add font database initialization code to WebCore
Reviewed by Ada.
* WebCore.vcproj/WebCore.vcproj: Added FontDatabase.{cpp,h}.
* platform/win/FontDatabase.cpp: Added.
(WebCore::systemFontsDirectory):
(WebCore::fontsPlistPath):
(WebCore::systemHasFontsNewerThanFontsPlist):
(WebCore::readFontPlist):
(WebCore::populateFontDatabaseFromPlist):
(WebCore::populateFontDatabaseFromFileSystem):
(WebCore::writeFontDatabaseToPlist):
(WebCore::populateFontDatabase): This is the only function callable
from outside this file. It populates the font database once, either
from the fonts plist, or from the filesystem (and then saves a new
fonts plist).
* platform/win/FontDatabase.h: Added.
2007-10-24 Justin Garcia <justin.garcia@apple.com>
Reviewed by Darin Adler.
Correcting the fix for:
<rdar://problem/5544856>
REGRESSION: After typing 2-byte text, undo only undoes one keystroke at a time
Made removal of the previous composition part of the current Undo step in the
case where the new composition is the empty string, too.
* editing/Editor.cpp:
(WebCore::Editor::confirmComposition): Call the new TypingCommand::deleteSelection,
which either has the currently open typing command delete the current selection, or
opens a new typing command (of type DeleteSelection) if one is not already open.
(WebCore::Editor::setComposition): Ditto.
* editing/TypingCommand.cpp:
(WebCore::TypingCommand::deleteSelection): Added.
(WebCore::TypingCommand::doApply): Handle DeleteSelection.
(WebCore::TypingCommand::deleteKeyPressed): Clarified which deleteSelection
is called.
(WebCore::TypingCommand::forwardDeleteKeyPressed): Ditto.
(WebCore::TypingCommand::preservesTypingStyle): Handle DeleteSelection.
* editing/TypingCommand.h:
2007-10-24 Sam Weinig <sam@webkit.org>
Build fix.
* WebCore.vcproj/WebCore.vcproj:
2007-10-24 Alice Liu <alice.liu@apple.com>
Reviewed by Oliver.
Fix <rdar://5410959> editing/selection/drag-to-contenteditable-iframe.html fails on Windows
* page/win/EventHandlerWin.cpp:
(WebCore::EventHandler::passMouseMoveEventToSubframe):
Some mouse move events are actually drags, which on mac return early from this function.
Adding the same logic to its Windows equivalent.
2007-10-24 Brady Eidson <beidson@apple.com>
Reviewed by Anders
<rdar://5554130> DatabaseTracker.o has a global initializer
Since DatabaseTracker is a singleton, it makes much more sense to keep the database path as a member variable.
Now constructing the shared DatabaseTracker no longer implicitly opens it - It is only opened when the databases
path is set.
* WebCore.vcproj/WebCore.vcproj: Copy WebCore/storage headers for WebKit build
* storage/Database.cpp:
(WebCore::Database::~Database): Remove bogus assertion
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::DatabaseTracker): Does nothing now! Move this code to openTrackerDatabase
(WebCore::DatabaseTracker::setDatabasePath): Set the member variable, also closing/opening the database if needed
(WebCore::DatabaseTracker::databasePath):
(WebCore::DatabaseTracker::openTrackerDatabase): To open and validate the Databases db, moved from the c'tor
(WebCore::DatabaseTracker::fullPathForDatabase): Return the member variable
* storage/DatabaseTracker.h:
2007-10-24 David Hyatt <hyatt@apple.com>
Don't try to gap fill transformed selections. Fix the invalidation of selection to use the clip to visible content
code path so that it works with multi-column layouts and transforms.
Reviewed by aroben
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::isSelectionRoot):
(WebCore::RenderBlock::fillSelectionGaps):
* rendering/RenderView.cpp:
(WebCore::RenderView::setSelection):
2007-10-24 Eric Seidel <eric@webkit.org>
No review, I want to tickle the CIA bot to test changes,
and took this as an opportunity to clean up some old change logs.
* ChangeLog-2005-08-23: update email address
* ChangeLog-2006-12-31: fix spelling mistakes
2007-10-24 Dan Bernstein <mitz@apple.com>
Reviewed by Oliver Hunt.
- add "(anonymous)" to the renderName of anonymous table cells, rows and sections
* rendering/RenderTableCell.h:
(WebCore::RenderTableCell::renderName):
* rendering/RenderTableRow.h:
(WebCore::RenderTableRow::renderName):
* rendering/RenderTableSection.h:
(WebCore::RenderTableSection::renderName):
2007-10-24 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam.
Bug 15476: DOM tree fully expands some elements when arrowing up
http://bugs.webkit.org/show_bug.cgi?id=15476
Add a new expandTreeElementsWhenArrowing option to TreeOutline. This option
is used only for the sidebar and search results.
* page/inspector/inspector.js: Opt-in for the sidebar and search results.
* page/inspector/treeoutline.js: Add expandTreeElementsWhenArrowing and pass
this option to traverseNextTreeElement and traversePreviousTreeElement.
2007-10-24 Anders Carlsson <andersca@apple.com>
Reviewed by Geoff and Mitz.
<rdar://problem/5493833>
REGRESSION: ~5MB of image data leaked @ cuteoverload.com (often seen while browsing other sites, too)
* bindings/js/kjs_binding.cpp:
(KJS::ScriptInterpreter::markDOMNodesForDocument):
If an image element that is currently loading an image is not in the document,
it should still be marked.
* bindings/js/kjs_html.cpp:
(WebCore::ImageConstructorImp::construct):
Force the document wrapper to be created.
* html/HTMLImageElement.h:
(WebCore::HTMLImageElement::haveFiredLoadEvent):
New method which calls down to the image loader.
* html/HTMLImageLoader.cpp:
(WebCore::HTMLImageLoader::HTMLImageLoader):
(WebCore::HTMLImageLoader::~HTMLImageLoader):
(WebCore::HTMLImageLoader::setLoadingImage):
(WebCore::HTMLImageLoader::dispatchLoadEvent):
Remove code that's not needed anymore.
* html/HTMLImageLoader.h:
(WebCore::HTMLImageLoader::haveFiredLoadEvent):
Make this public.
2007-10-23 Adam Roben <aroben@apple.com>
Move Windows safe file creation code into WebCore from WebPreferences
Reviewed by Brady.
* platform/FileSystem.h:
* platform/win/FileSystemWin.cpp:
(WebCore::safeCreateFile): Moved here from WebKit/win/WebPreferences.cpp.
2007-10-23 Adam Roben <aroben@apple.com>
Add methods to FileSystemWin to get some user profile directories
These directories are used to hold things like preferences, caches,
etc.
Reviewed by Brady.
* platform/FileSystem.h: Added new method declarations for Windows
only.
* platform/win/FileSystemWin.cpp:
(WebCore::bundleName): Added.
(WebCore::storageDirectory): Added.
(WebCore::cachedStorageDirectory): Added.
(WebCore::localUserSpecificStorageDirectory): Added. Returns the
directory where WebKit should store any user-specific data that should
stay local to the current machine (i.e., shouldn't be stored in a
roaming profile).
(WebCore::roamingUserSpecificStorageDirectory): Added. Returns the
directory where WebKit should store any user-specific data that should
move with the user from machine to machine (i.e., should be stored in
a roaming profile).
2007-10-24 Alp Toker <alp@atoker.com>
Reviewed by Mark Rowe.
http://bugs.webkit.org/show_bug.cgi?id=15659
InlineTextBox does not setStrokeStyle() as needed
GraphicsContextCairo workaround to support a GraphicsContextCG quirk:
Save and restore the StrokeStyle manually.
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::drawLineForText):
2007-10-24 Julien Chaffraix <julien.chaffraix@gmail.com>
Reviewed by Darin.
Patch for http://bugs.webkit.org/show_bug.cgi?id=15356
Bug 15356: getResponseHeader and getAllResponseHeaders do not throw exceptions
- getAllResponseHeaders and getResponseHeader throws INVALID_STATE_ERR exception as specified in the specification
- Add the check to field-name production in getResponseHeader (call to isValidToken) and returns an empty string if the header is not valid (Opera and IE behaviour)
- Updated XMLHttpRequest::responseMIMEType() to keep its behaviour
Tests: http/tests/xmlhttprequest/xmlhttprequest-InvalidStateException-getAllRequestHeaders.html
http/tests/xmlhttprequest/xmlhttprequest-InvalidStateException-getRequestHeader.html
http/tests/xmlhttprequest/xmlhttprequest-invalidHeader-getRequestHeader.html
* bindings/js/JSXMLHttpRequest.cpp:
(KJS::JSXMLHttpRequestPrototypeFunction::callAsFunction):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::getAllResponseHeaders):
(WebCore::XMLHttpRequest::getResponseHeader):
(WebCore::XMLHttpRequest::responseMIMEType):
* xml/XMLHttpRequest.h:
2007-10-24 Lars Knoll <lars@trolltech.com>
Reviewed by Simon.
implement most of DragData.
* platform/qt/DragDataQt.cpp:
(WebCore::DragData::containsColor):
(WebCore::DragData::containsFiles):
(WebCore::DragData::asFilenames):
(WebCore::DragData::containsPlainText):
(WebCore::DragData::asPlainText):
(WebCore::DragData::asColor):
(WebCore::DragData::containsCompatibleContent):
(WebCore::DragData::containsURL):
2007-10-24 Lars Knoll <lars@trolltech.com>
Reviewed by Simon.
remove a stupid notImplemented() warning and implement PasteBoad::clear().
* platform/qt/PasteboardQt.cpp:
2007-10-24 Lars Knoll <lars@trolltech.com>
Reviewed by Simon.
implement Pasteboard::documentFragment(), and fix a mem leak.
* platform/qt/PasteboardQt.cpp:
(WebCore::Pasteboard::generalPasteboard):
(WebCore::Pasteboard::documentFragment):
2007-10-24 Lars Knoll <lars@trolltech.com>
Reviewed by Simon.
Simplify the PlatformKeyEvent constructor. No need to have an extra boolean for isKeyUp in there, as the QKeyEvent has the information.
* platform/PlatformKeyboardEvent.h:
* platform/qt/PlatformKeyboardEventQt.cpp:
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2007-10-24 Lars Knoll <lars@trolltech.com>
Reviewed by Simon.
use the new QTextBoundaryFinder class in Qt.
* platform/qt/TextBoundaries.cpp:
(WebCore::findNextWordFromIndex):
(WebCore::findWordBoundary):
* platform/qt/TextBreakIteratorQt.cpp:
(WebCore::wordBreakIterator):
(WebCore::characterBreakIterator):
(WebCore::lineBreakIterator):
(WebCore::sentenceBreakIterator):
(WebCore::textBreakFirst):
(WebCore::textBreakNext):
(WebCore::textBreakPreceding):
(WebCore::textBreakFollowing):
(WebCore::textBreakCurrent):
(WebCore::isTextBreak):
2007-10-24 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- http://bugs.webkit.org/show_bug.cgi?id=15657
change static hash tables to use powers of two for speed
* bindings/scripts/CodeGeneratorJS.pm: Updated to generate new format.
2007-10-24 Simon Hausmann <hausmann@kde.org>
Reviewed by Lars.
Make the implementation of pathByAppendingComponent use QDir.
* platform/qt/FileSystemQt.cpp:
2007-10-24 David Hyatt <hyatt@apple.com>
Make repainting work with transforms.
Reviewed by John Sullivan
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeAbsoluteRepaintRect):
2007-10-23 Alp Toker <alp@atoker.com>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=14412
[GDK] Clipboard support
Initial clipboard implementation for the GTK+ port.
* platform/gtk/ClipboardGtk.cpp:
(WebCore::Editor::newGeneralClipboard):
* platform/gtk/PasteboardGtk.cpp:
(WebCore::Pasteboard::generalPasteboard):
(WebCore::Pasteboard::Pasteboard):
(WebCore::Pasteboard::~Pasteboard):
(WebCore::Pasteboard::writeSelection):
(WebCore::Pasteboard::writeImage):
(WebCore::Pasteboard::clear):
(WebCore::Pasteboard::plainText):
* platform/gtk/TemporaryLinkStubs.cpp:
2007-10-23 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam.
Fixes the Network panel so that it refreshes as needed.
* page/inspector/ConsolePanel.js: Call the base class show() and hide() first.
* page/inspector/NetworkPanel.js: Add refreshNeeded and refreshIfNeeded back. Ditto.
2007-10-23 Justin Garcia <justin.garcia@apple.com>
Reviewed by Oliver Hunt.
<rdar://problem/5544856>
REGRESSION: After typing 2-byte text, undo only undoes one keystroke at a time
No layout test for now because I'm having trouble getting Undo during a layout
test to only undo the last Undo step, and I want to write a test that fails
without the code change.
* editing/Editor.cpp:
(WebCore::Editor::confirmComposition): When we replace the previous composition,
delete it with a sub-command of the command used to insert the new composition,
instead of with a separate command. No new code was added because insertText
already deletes the current selection.
(WebCore::Editor::setComposition): Ditto.
2007-10-23 Adam Roben <aroben@apple.com>
Fix the behavior of pathByAppendingComponent when path is empty
We now use the Windows Shell API function PathAppendW instead of
rolling our own broken implementation.
Reviewed by Anders.
* platform/win/FileSystemWin.cpp:
(WebCore::pathByAppendingComponent):
2007-10-23 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Fix for <rdar://problem/5543228> CrashTracer: [USER] 2 crashes in Safari at com.apple.WebCore: WebCore::HTMLInputElement::defaultEventHandler + 872
Test: fast/forms/textfield-onchange-deletion.html
* html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler):
Refetch the renderer since arbitrary JS code run during onchange can do anything, including destroying it.
2007-10-23 Timothy Hatcher <timothy@apple.com>
Reviewed by Sam Weinig.
- Made seperate files for the various classes in ResourcePanel.js.
- Broke up ResourcePanel.js and created seperate panel classes for different resource types.
- Moved View code down to the Panel base-class.
- Reduced code duplication in DatabasePanel.js by sub-classing from the new ResourcePanel.
* page/inspector/DatabasePanel.js:
* page/inspector/DocumentPanel.js: Added.
* page/inspector/FontPanel.js: Added.
* page/inspector/ImagePanel.js: Added.
* page/inspector/Panel.js: Added.
* page/inspector/PropertiesSection.js: Added.
* page/inspector/Resource.js:
* page/inspector/ResourcePanel.js:
* page/inspector/SidebarPane.js: Added.
* page/inspector/SourcePanel.js: Added.
* page/inspector/inspector.css:
* page/inspector/inspector.html:
* page/inspector/inspector.js:
2007-10-23 Anders Carlsson <andersca@apple.com>
Correct the version #if check.
* platform/sql/SQLDatabase.cpp:
(WebCore::SQLDatabase::authorizerFunction):
2007-10-23 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Anders.
<rdar://5548217>: [NTS] Java 6 update 3 crashes Safari when loading a
java page
It is possible to load Mozilla's Java plugin instead of our own, which
can lead to a crash. The fix is to prefer plugins in our own Plugins
directory when searching for a plugin.
* plugins/win/PluginDatabaseWin.cpp:
(WebCore::safariPluginsPath): Return the path to our own Plugins
directory
(WebCore::PluginDatabaseWin::defaultPluginPaths): Use new method
safariPluginsPath()
(WebCore::PluginDatabaseWin::pluginForMIMEType): If the plugin's path is
our Plugins path, return this plugin. Otherwise, continue scanning the
list of plugins
(WebCore::PluginDatabaseWin::pluginForExtension): Same
* plugins/win/PluginPackageWin.h:
(WebCore::PluginPackageWin::path): Return this plugin's path
2007-10-23 Jasper Bryant-Greene <m@ni.ac.nz>
Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=15058
Precedence fault in KeyEventGdk causes shift, control, alt etc to work incorrectly
Corrected precendence fault which was causing Shift, Alt, Control and
Meta to behave incorrectly on GTK.
Coding style fix by Alp.
* platform/gtk/KeyEventGtk.cpp:
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2007-10-23 Sam Weinig <sam@webkit.org>
Reviewed by Tim Hatcher.
Add resizing of the DOM view right sidebar. This allows us to actually see the values now.
* page/inspector/ResourcePanel.js:
* page/inspector/inspector.css:
* page/inspector/inspector.js:
* page/inspector/utilities.js:
2007-10-23 David Hyatt <hyatt@apple.com>
Get basic hit testing right for transforms.
Reviewed by ollliej
* platform/graphics/AffineTransform.cpp:
(WebCore::AffineTransform::mapPoint):
* platform/graphics/AffineTransform.h:
* rendering/InlineBox.cpp:
(WebCore::InlineBox::nodeAtPoint):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::nodeAtPoint):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::hitTest):
(WebCore::RenderLayer::hitTestLayer):
* rendering/RenderLayer.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::hitTest):
* rendering/RenderObject.h:
2007-10-23 Eric Seidel <eric@webkit.org>
Reviewed by Mark Rowe.
Fix leaks seen on TOT from new font-face code.
* ksvg2/svg/SVGFontFaceElement.cpp:
(WebCore::SVGFontFaceElement::rebuildFontFace): use a stack allocated CSSProperty instead of mallocing
2007-10-23 Eric Seidel <eric@webkit.org>
Build fix only, no review.
Sacrifice three virgin hours upon the altar of the heathen XCode gods
and pray that our build troubles are finally over. :(
* DerivedSources.make: add DOMSVGException.h
* WebCore.xcodeproj/project.pbxproj: Remove DOMSVG*Interal.h files from "Copy Generated Headers" phase. Why? Who knows.
2007-10-22 Steve Falkenburg <sfalken@apple.com>
Fix build.
* plugins/win/PluginViewWin.cpp:
2007-10-22 Eric Seidel <eric@webkit.org>
Build fix only, no review.
* WebCore.xcodeproj/project.pbxproj: re-add all DOMSVG headers to copy-files phase to make sure.
2007-10-22 Eric Seidel <eric@webkit.org>
Build fix only, no review.
* WebCore.xcodeproj/project.pbxproj: make sure DOMSVGAnimateElement.h is copied into headers.
2007-10-22 Eric Seidel <eric@webkit.org>
Reviewed by Maciej.
Fix build by properly exposing SVG font-face dom bindings.
* DerivedSources.make:
* WebCore.vcproj/WebCore.vcproj: add font-face files to build
* WebCore.xcodeproj/project.pbxproj: add missing DOM bindings files
* bindings/js/JSSVGElementWrapperFactory.cpp:
* bindings/objc/DOM.mm:
(WebCore::createElementClassMap):
* bindings/objc/DOMSVG.h:
* ksvg2/svg/SVGDefinitionSrcElement.idl: inherit from SVGElement
2007-10-22 Mark Rowe <mrowe@apple.com>
Gtk build fix.
* WebCore.pro:
2007-10-22 Darin Adler <darin@apple.com>
- a first cut at fixing the Qt and GTK builds
* WebCore.pro: Add new .idl and .cpp files.
* DerivedSources.make: Re-sorted.
2007-10-22 Eric Seidel <eric@webkit.org>
Reviewed by hyatt.
Implement <font-face> and friends for SVG.
http://bugs.webkit.org/show_bug.cgi?id=10652
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSSVGElementWrapperFactory.cpp:
* dom/Document.cpp:
(WebCore::Document::mappedElementSheet):
(WebCore::Document::recalcStyleSelector):
* dom/Document.h:
* ksvg2/scripts/make_names.pl:
* ksvg2/svg/SVGDefinitionSrcElement.cpp: Added.
(WebCore::SVGDefinitionSrcElement::SVGDefinitionSrcElement):
(WebCore::SVGDefinitionSrcElement::~SVGDefinitionSrcElement):
(WebCore::SVGDefinitionSrcElement::childrenChanged):
* ksvg2/svg/SVGDefinitionSrcElement.h: Added.
* ksvg2/svg/SVGDefinitionSrcElement.idl: Added.
* ksvg2/svg/SVGFontFaceElement.cpp: Added.
(WebCore::SVGFontFaceElement::SVGFontFaceElement):
(WebCore::SVGFontFaceElement::~SVGFontFaceElement):
(WebCore::cssPropertyIdForName):
(WebCore::mapAttributeToCSSProperty):
(WebCore::cssPropertyIdForSVGAttributeName):
(WebCore::SVGFontFaceElement::parseMappedAttribute):
(WebCore::SVGFontFaceElement::rebuildFontFace):
(WebCore::SVGFontFaceElement::childrenChanged):
* ksvg2/svg/SVGFontFaceElement.h: Added.
* ksvg2/svg/SVGFontFaceElement.idl: Added.
* ksvg2/svg/SVGFontFaceFormatElement.cpp: Added.
(WebCore::SVGFontFaceFormatElement::SVGFontFaceFormatElement):
(WebCore::SVGFontFaceFormatElement::~SVGFontFaceFormatElement):
(WebCore::SVGFontFaceFormatElement::childrenChanged):
* ksvg2/svg/SVGFontFaceFormatElement.h: Added.
* ksvg2/svg/SVGFontFaceFormatElement.idl: Added.
* ksvg2/svg/SVGFontFaceNameElement.cpp: Added.
(WebCore::SVGFontFaceNameElement::SVGFontFaceNameElement):
(WebCore::SVGFontFaceNameElement::~SVGFontFaceNameElement):
(WebCore::SVGFontFaceNameElement::srcValue):
* ksvg2/svg/SVGFontFaceNameElement.h: Added.
* ksvg2/svg/SVGFontFaceNameElement.idl: Added.
* ksvg2/svg/SVGFontFaceSrcElement.cpp: Added.
(WebCore::SVGFontFaceSrcElement::SVGFontFaceSrcElement):
(WebCore::SVGFontFaceSrcElement::~SVGFontFaceSrcElement):
(WebCore::SVGFontFaceSrcElement::srcValue):
(WebCore::SVGFontFaceSrcElement::childrenChanged):
* ksvg2/svg/SVGFontFaceSrcElement.h: Added.
* ksvg2/svg/SVGFontFaceSrcElement.idl: Added.
* ksvg2/svg/SVGFontFaceUriElement.cpp: Added.
(WebCore::SVGFontFaceUriElement::SVGFontFaceUriElement):
(WebCore::SVGFontFaceUriElement::~SVGFontFaceUriElement):
(WebCore::SVGFontFaceUriElement::srcValue):
(WebCore::SVGFontFaceUriElement::childrenChanged):
* ksvg2/svg/SVGFontFaceUriElement.h: Added.
* ksvg2/svg/SVGFontFaceUriElement.idl: Added.
* ksvg2/svg/svgtags.in:
2007-10-22 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Anders.
<rdar://5548217>: [NTS] Java 6 update 3 crashes Safari when loading a
java page
We purposefully do not destroy our Java VM when its reference count
reaches 0, but we were unloading our JavaPlugin.dll when its reference
count reached 0, which lost the reference to the VM. This led to our
process trying to create a new VM the next time a page using Java was
loaded, and the JNI spec states that a single process is not allowed to
create more than one VM. The fix is to avoid unloading the Java plugin
via our PluginQuirkDontUnloadPlugin.
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginViewWin::determineQuirks):
2007-10-22 David Hyatt <hyatt@apple.com>
Fix for bug 15624, make transforms work properly with opacity.
Make sure a unitless 0 is allowed as an angle argument to rotation/skew.
Reviewed by Mitz Pettel
fast/transforms/transforms-with-opacity.html
fast/transforms/skew-with-unitless-zero.html
* css/CSSParser.cpp:
(WebCore::CSSParser::validUnit):
* rendering/RenderLayer.cpp:
(WebCore::transparencyClipBox):
(WebCore::RenderLayer::beginTransparencyLayers):
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderLayer.h:
(WebCore::RenderLayer::transform):
2007-10-22 Adam Roben <aroben@apple.com>
Windows build fix
* WebCore.vcproj/WebCore.vcproj: Copy header files from platform/sql.
* page/Page.cpp: Touched to force the header files to be copied.
2007-10-22 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Simon.
Move textPath related SVGChar data in it's own structure SVGCharOnPath.
Store a pointer to that datastructure inside SVGChar, instead of 4 floats & one bool.
Saves space for the common case. And allows me to add more data (another float) to support
glyph-orientation-* on textPath later on...
* rendering/SVGCharacterLayoutInfo.cpp:
(WebCore::SVGChar::characterTransform):
* rendering/SVGCharacterLayoutInfo.h:
* rendering/SVGRootInlineBox.cpp:
(WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
(WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
2007-10-22 Alp Toker <alp@atoker.com>
Reviewed by Nikolas Zimmermann.
Implement more GraphicsContextCairo stubs.
Remove a hack "to work around no current point bug" that was breaking
canvas tests.
Fix warnings.
* platform/graphics/cairo/CairoPath.h:
(WebCore::CairoPath::CairoPath):
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::addInnerRoundedRectClip):
(WebCore::GraphicsContext::strokeRect):
* platform/graphics/cairo/PathCairo.cpp:
(WebCore::Path::isEmpty):
* platform/graphics/svg/cairo/SVGPaintServerGradientCairo.cpp:
(WebCore::SVGPaintServerGradient::setup):
* platform/graphics/svg/cairo/SVGPaintServerSolidCairo.cpp:
(WebCore::SVGPaintServerSolid::setup):
2007-10-22 Simon Hausmann <hausmann@kde.org>
Reviewed by Nikolas.
Fix compilation from a clean build with the database feature disabled.
JSCustomVersionChangeCallback.cpp doesn't actually need the SQL header file, just ScriptInterpreter.
* bindings/js/JSCustomVersionChangeCallback.cpp:
* page/InspectorController.cpp:
2007-10-22 Andrew Wellington <proton@wiretapped.net>
Reviewed by Mark Rowe.
Fix for local database support after r26879
Ensure that ENABLE_DATABASE and ENABLE_ICONDATABASE are correctly set
* Configurations/WebCore.xcconfig:
* WebCore.pro:
* WebCore.vcproj/build-generated-files.sh:
2007-10-22 Simon Hausmann <hausmann@kde.org>
Reviewed by Lars.
Disable the Database feature for the qmake build for now.
* WebCore.pro:
2007-10-22 Simon Hausmann <hausmann@kde.org>
Reviewed by Lars.
Make disabling the database feature (ENABLE_DATABASE=0) work by
placing various #ifdefs into the code and making the compilation of
some files optional.
* WebCore.pro:
* dom/Document.cpp:
(WebCore::Document::~Document):
(WebCore::Document::defaultEventHandler):
* dom/Document.h:
* page/DOMWindow.cpp:
* page/DOMWindow.h:
* page/DOMWindow.idl:
* page/InspectorController.cpp:
(WebCore::InspectorController::windowScriptObjectAvailable):
(WebCore::InspectorController::populateScriptResources):
(WebCore::InspectorController::clearDatabaseScriptResources):
(WebCore::InspectorController::didCommitLoad):
* page/InspectorController.h:
2007-10-22 Alp Toker <alp@atoker.com>
Reviewed by Mark Rowe.
http://bugs.webkit.org/show_bug.cgi?id=15611
[GTK] Text selection behaviour different in Debug and Release builds
http://bugs.webkit.org/show_bug.cgi?id=15578
[GTK] Text editor caret does not blink
Never allow control to reach the end of non-void functions.
Return more sensible values, or in some cases, nulls.
* page/gtk/EventHandlerGtk.cpp:
(WebCore::isKeyboardOptionTab):
(WebCore::EventHandler::tabsToAllControls):
(WebCore::EventHandler::eventActivatedView):
2007-10-22 Holger Freyther <zecke@selfish.org>
Reviewed by Simon Hausmann <hausmann@kde.org>.
Implement ResourceHandle::loadResourceSynchronously using ResourceHandle and a special ResourceHandleClient. This approach has the possible danger of reentrancy.
* platform/network/qt/ResourceHandleQt.cpp:
(WebCore::WebCoreSynchronousLoader::resourceResponse):
(WebCore::WebCoreSynchronousLoader::resourceError):
(WebCore::WebCoreSynchronousLoader::data):
(WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader):
(WebCore::WebCoreSynchronousLoader::didReceiveResponse):
(WebCore::WebCoreSynchronousLoader::didReceiveData):
(WebCore::WebCoreSynchronousLoader::didFinishLoading):
(WebCore::WebCoreSynchronousLoader::didFail):
(WebCore::WebCoreSynchronousLoader::waitForCompletion):
(WebCore::ResourceHandle::loadResourceSynchronously):
2007-10-22 Holger Hans Peter Freyther <zecke@selfish.org>
Reviewed by Lars Knoll <lars@trolltech.com>.
Style fix. It is allowed to attempt to delete 0.
* platform/qt/ClipboardQt.cpp:
2007-10-22 Holger Hans Peter Freyther <zecke@selfish.org>
Reviewed by Lars Knoll <lars@trolltech.com>.
Make it actually localizable....
* platform/qt/Localizations.cpp:
(WebCore::submitButtonDefaultLabel):
(WebCore::inputElementAltText):
(WebCore::searchableIndexIntroduction):
(WebCore::fileButtonChooseFileLabel):
(WebCore::fileButtonNoFileSelectedLabel):
(WebCore::contextMenuItemTagOpenLinkInNewWindow):
(WebCore::contextMenuItemTagDownloadLinkToDisk):
(WebCore::contextMenuItemTagCopyLinkToClipboard):
(WebCore::contextMenuItemTagOpenImageInNewWindow):
(WebCore::contextMenuItemTagDownloadImageToDisk):
(WebCore::contextMenuItemTagCopyImageToClipboard):
(WebCore::contextMenuItemTagOpenFrameInNewWindow):
(WebCore::contextMenuItemTagCopy):
(WebCore::contextMenuItemTagGoBack):
(WebCore::contextMenuItemTagGoForward):
(WebCore::contextMenuItemTagStop):
(WebCore::contextMenuItemTagReload):
(WebCore::contextMenuItemTagCut):
(WebCore::contextMenuItemTagPaste):
(WebCore::contextMenuItemTagNoGuessesFound):
(WebCore::contextMenuItemTagIgnoreSpelling):
(WebCore::contextMenuItemTagLearnSpelling):
(WebCore::contextMenuItemTagSearchWeb):
(WebCore::contextMenuItemTagLookUpInDictionary):
(WebCore::contextMenuItemTagOpenLink):
(WebCore::contextMenuItemTagIgnoreGrammar):
(WebCore::contextMenuItemTagSpellingMenu):
(WebCore::contextMenuItemTagShowSpellingPanel):
(WebCore::contextMenuItemTagCheckSpelling):
(WebCore::contextMenuItemTagCheckSpellingWhileTyping):
(WebCore::contextMenuItemTagCheckGrammarWithSpelling):
(WebCore::contextMenuItemTagFontMenu):
(WebCore::contextMenuItemTagBold):
(WebCore::contextMenuItemTagItalic):
(WebCore::contextMenuItemTagUnderline):
(WebCore::contextMenuItemTagOutline):
(WebCore::contextMenuItemTagWritingDirectionMenu):
(WebCore::contextMenuItemTagDefaultDirection):
(WebCore::contextMenuItemTagLeftToRight):
(WebCore::contextMenuItemTagRightToLeft):
(WebCore::contextMenuItemTagInspectElement):
(WebCore::searchMenuNoRecentSearchesText):
(WebCore::searchMenuRecentSearchesText):
2007-10-22 Holger Hans Peter Freyther <zecke@selfish.org>
Reviewed by Lars Knoll <lars@trolltech.com>.
Adjust the code to obey the Coding Style.
* platform/qt/Localizations.cpp:
(WebCore::submitButtonDefaultLabel):
(WebCore::inputElementAltText):
(WebCore::resetButtonDefaultLabel):
(WebCore::defaultLanguage):
(WebCore::searchableIndexIntroduction):
(WebCore::fileButtonChooseFileLabel):
(WebCore::fileButtonNoFileSelectedLabel):
(WebCore::contextMenuItemTagOpenLinkInNewWindow):
(WebCore::contextMenuItemTagDownloadLinkToDisk):
(WebCore::contextMenuItemTagCopyLinkToClipboard):
(WebCore::contextMenuItemTagOpenImageInNewWindow):
(WebCore::contextMenuItemTagDownloadImageToDisk):
(WebCore::contextMenuItemTagCopyImageToClipboard):
(WebCore::contextMenuItemTagOpenFrameInNewWindow):
(WebCore::contextMenuItemTagCopy):
(WebCore::contextMenuItemTagGoBack):
(WebCore::contextMenuItemTagGoForward):
(WebCore::contextMenuItemTagStop):
(WebCore::contextMenuItemTagReload):
(WebCore::contextMenuItemTagCut):
(WebCore::contextMenuItemTagPaste):
(WebCore::contextMenuItemTagNoGuessesFound):
(WebCore::contextMenuItemTagIgnoreSpelling):
(WebCore::contextMenuItemTagLearnSpelling):
(WebCore::contextMenuItemTagSearchWeb):
(WebCore::contextMenuItemTagLookUpInDictionary):
(WebCore::contextMenuItemTagOpenLink):
(WebCore::contextMenuItemTagIgnoreGrammar):
(WebCore::contextMenuItemTagSpellingMenu):
(WebCore::contextMenuItemTagShowSpellingPanel):
(WebCore::contextMenuItemTagCheckSpelling):
(WebCore::contextMenuItemTagCheckSpellingWhileTyping):
(WebCore::contextMenuItemTagCheckGrammarWithSpelling):
(WebCore::contextMenuItemTagFontMenu):
(WebCore::contextMenuItemTagBold):
(WebCore::contextMenuItemTagItalic):
(WebCore::contextMenuItemTagUnderline):
(WebCore::contextMenuItemTagOutline):
(WebCore::contextMenuItemTagWritingDirectionMenu):
(WebCore::contextMenuItemTagDefaultDirection):
(WebCore::contextMenuItemTagLeftToRight):
(WebCore::contextMenuItemTagRightToLeft):
(WebCore::contextMenuItemTagInspectElement):
(WebCore::searchMenuNoRecentSearchesText):
(WebCore::searchMenuRecentSearchesText):
(WebCore::searchMenuClearRecentSearchesText):
(WebCore::AXWebAreaText):
(WebCore::AXLinkText):
(WebCore::AXListMarkerText):
(WebCore::AXImageMapText):
(WebCore::AXHeadingText):
(WebCore::unknownFileSizeText):
2007-10-22 Holger Hans Peter Freyther <zecke@selfish.org>
Reviewed by Lars Knoll <lars@trolltech.com>.
Return a non empty string in more functions.
* platform/qt/Localizations.cpp:
(WebCore::contextMenuItemTagShowSpellingPanel):
2007-10-22 Holger Hans Peter Freyther <zecke@selfish.org>
Reviewed by Lars Knoll <lars@trolltech.com>.
Shrink the TemporaryLinkStubs and move the
Frame::setNeedsReapplyStyles stub to FrameQt.cpp
* page/qt/FrameQt.cpp:
(WebCore::Frame::setNeedsReapplyStyles):
* platform/qt/TemporaryLinkStubs.cpp:
2007-10-22 Holger Freyther <zecke@selfish.org>
Reviewed by Lars Knoll <lars@trolltech.com>.
Implement the WebCore::fileSize function. The
implementation assumes that QFileInfo will cache
the result of the stat so that info.size() and
info.exists() use the same stat result.
* platform/qt/FileSystemQt.cpp:
(WebCore::deleteFile):
* platform/qt/TemporaryLinkStubs.cpp:
2007-10-21 Alp Toker <alp@atoker.com>
Reviewed by Mark Rowe.
Use the portable GLib time function.
Use event timestamps rather than the current time where available.
Rename SharedTimerLinux.cpp since it isn't Linux-specific.
* WebCore.pro:
* platform/gtk/MouseEventGtk.cpp:
(WebCore::PlatformMouseEvent::PlatformMouseEvent):
* platform/gtk/SystemTimeGtk.cpp: Added.
(WebCore::currentTime):
* platform/gtk/SharedTimerGtk.cpp: Copied from platform/gtk/SharedTimerLinux.cpp.
* platform/gtk/SharedTimerLinux.cpp: Removed.
2007-10-22 David Hyatt <hyatt@apple.com>
Fix for 15596, regression from my transform changes. Preserve null checks on the clip rects calls for parent(),
since the method is called on orphaned layers. This is not very well understood.
Reviewed by eric
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects):
(WebCore::RenderLayer::calculateRects):
2007-10-21 Mark Rowe <mrowe@apple.com>
Reviewed by Alp.
http://bugs.webkit.org/show_bug.cgi?id=15575
Bug 15575: [GTK] Implement threading using GThread
* WebCore.pro: Remove ThreadingPthreads.cpp from the Gtk build and link against libgthreads.
* loader/icon/IconDatabase.cpp: Initialize threading before the mutex is created to be compatible with gthreads.
(WebCore::iconDatabase):
(WebCore::IconDatabase::open):
* platform/Threading.h:
* platform/gtk/ThreadingGtk.cpp: Threading implementation in terms of GThread, based heavily on the pthreads implementation.
(WebCore::initializeThreading):
(WebCore::threadMapMutex):
(WebCore::threadMap):
(WebCore::establishIdentifierForThread):
(WebCore::threadForIdentifier):
(WebCore::clearThreadForIdentifier):
(WebCore::createThread):
(WebCore::waitForThreadCompletion):
(WebCore::detachThread):
(WebCore::Mutex::Mutex):
(WebCore::Mutex::~Mutex):
(WebCore::Mutex::lock):
(WebCore::Mutex::tryLock):
(WebCore::Mutex::unlock):
(WebCore::ThreadCondition::ThreadCondition):
(WebCore::ThreadCondition::~ThreadCondition):
(WebCore::ThreadCondition::wait):
(WebCore::ThreadCondition::signal):
(WebCore::ThreadCondition::broadcast):
* storage/Database.cpp:
(WebCore::Database::Database): Initialize threading when Database is used so that it will be initialized even
if the icon database is compiled out
2007-10-21 Mark Rowe <mrowe@apple.com>
Build fix.
* ksvg2/css/SVGCSSStyleSelector.cpp: Use fabsf when dealing with a float to prevent the
implicit conversion warning.
2007-10-21 Alp Toker <alp@atoker.com>
Reviewed by Mark Rowe.
Implement spelling and grammar mistake underlining with Pango/Cairo.
This change does not add any actual support for spelling or grammar
checking to any port.
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
2007-10-21 Alp Toker <alp@atoker.com>
Reviewed by Mark Rowe.
Cairo canvas fixes:
Fix a refcounting issue leading to leaks and crashes on canvas
content.
Delegate memory management of canvas images to Cairo.
Mark unhandled conditions with notImplemented() instead of silently
ignoring them.
* html/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawImage):
* html/CanvasStyle.cpp:
(WebCore::CanvasStyle::applyStrokeColor):
* html/CanvasStyle.h:
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::HTMLCanvasElement):
(WebCore::HTMLCanvasElement::~HTMLCanvasElement):
(WebCore::HTMLCanvasElement::reset):
(WebCore::HTMLCanvasElement::paint):
(WebCore::HTMLCanvasElement::createDrawingContext):
(WebCore::HTMLCanvasElement::createPlatformImage):
2007-10-21 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Eric.
Handle glyph-orientation-vertical / glyph-orientation-horizontal SVG CSS properties.
The SVG layouting code itself doesn't handle these properties yet,
it's just about recognizing them in the SVG CSS engine.
* ksvg2/css/SVGCSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
* ksvg2/css/SVGCSSParser.cpp:
(WebCore::CSSParser::parseSVGValue):
* ksvg2/css/SVGCSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applySVGProperty):
* ksvg2/css/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::InheritedFlags::operator==):
(WebCore::SVGRenderStyle::InheritedFlags::operator!=):
(WebCore::SVGRenderStyle::setBitDefaults):
* ksvg2/css/SVGRenderStyleDefs.h:
2007-10-21 Christian Dywan <christian@twotoasts.de>
Reviewed by Alp.
http://bugs.webkit.org/show_bug.cgi?id=15589
Use glib's path separator on gtk
* platform/gtk/FileSystemGtk.cpp:
(WebCore::pathByAppendingComponent):
2007-10-21 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=15259
<rdar://problem/5499902> REGRESSION: Text overflows when using word spacing and centering (affects myspace.com music videos page)
Test: fast/text/word-space.html
* rendering/RenderBlock.cpp:
(WebCore::stripTrailingSpace): Added word-spacing to the width of the
space being stripped out.
* rendering/RenderText.cpp:
(WebCore::RenderText::trimmedPrefWidths): Changed handling of
leading space. Since Font::width includes leading space width but not
leading word spacing, this method needs to either remove the width of a
space character or add word spacing,
depending on stripFrontSpaces.
(WebCore::RenderText::calcPrefWidths): Corrected the check for adding
trailing word spacing so that it would work in the case where the last
space is ignored.
* rendering/bidi.cpp:
(WebCore::RenderBlock::computeHorizontalPositionsForLine): Changed to
actually add word spacing to the total width.
2007-10-20 David Hyatt <hyatt@apple.com>
Land support for the transform CSS property. Basic painting now works properly. There are many open issues
that will have to be covered by individual bugs.
Reviewed by olliej
* css/CSSParser.cpp:
(WebCore::CSSParser::validUnit):
(WebCore::CSSParser::parseTransform):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::~RenderLayer):
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::updateTransform):
(WebCore::transparencyClipBox):
(WebCore::RenderLayer::beginTransparencyLayers):
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::calculateClipRects):
(WebCore::RenderLayer::calculateRects):
(WebCore::RenderLayer::childrenClipRect):
(WebCore::RenderLayer::selfClipRect):
(WebCore::RenderLayer::intersectsDamageRect):
(WebCore::RenderLayer::boundingBox):
* rendering/RenderLayer.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::containingBlock):
(WebCore::RenderObject::container):
* rendering/RenderStyle.cpp:
(WebCore::RenderStyle::applyTransform):
* rendering/RenderStyle.h:
(WebCore::TransformOperation::isScaleOperation):
(WebCore::TransformOperation::isRotateOperation):
(WebCore::TransformOperation::isSkewOperation):
(WebCore::TransformOperation::isTranslateOperation):
(WebCore::TransformOperation::isMatrixOperation):
(WebCore::ScaleTransformOperation::isScaleOperation):
(WebCore::RotateTransformOperation::isRotateOperation):
(WebCore::SkewTransformOperation::isSkewOperation):
(WebCore::TranslateTransformOperation::isTranslateOperation):
(WebCore::MatrixTransformOperation::isMatrixOperation):
* rendering/RenderTableRow.h:
(WebCore::RenderTableRow::requiresLayer):
* rendering/RenderTreeAsText.cpp:
(WebCore::writeLayers):
2007-10-20 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam.
Add basic @font-face to the Web Inspector.
* page/InspectorController.cpp:
(WebCore::InspectorResource::type): Check for CachedResource::FontResource.
* page/inspector/Resource.js: Add support for Font types and font preview in the icon.
* page/inspector/ResourcePanel.js: Show a font preview for font resources.
* page/inspector/inspector.css: Style for the font preview and font icon.
* page/inspector/inspector.js: Add font mime types.
2007-10-20 Sam Weinig <sam@webkit.org>
Reviewed by Mark Rowe.
Fixes:
- http://bugs.webkit.org/show_bug.cgi?id=14393
Column on the left side of the Web Inspector should have a smaller minimum width for resizing
- http://bugs.webkit.org/show_bug.cgi?id=14394
Left pane of the Web Inspector "shakes" when resizing it to maximum width
* page/inspector/inspector.js: Change the constraint logic to only enforce a 100px min-width
and window.innerWidth - 100 max-width for the sidebar. The change also makes the viewbuttons
move with the sidebar.
2007-10-20 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=15208
display:table causes the collapsed text to show at a different position when expanded
Test: fast/table/insert-before-anonymous-ancestors.html
* rendering/RenderTable.cpp:
(WebCore::RenderTable::addChild): Rolled out r11579. I think whatever
that change was supposed to accomplish has since been done in other
places in the code.
2007-10-20 Mark Rowe <mrowe@apple.com>
Reviewed by Dave Hyatt.
Fix http://bugs.webkit.org/show_bug.cgi?id=15584
Bug 15584: REGRESSION(r26696): GtkLauncher segfaults on WebCore::WidthIterator::advance
* platform/Font.cpp:
(WebCore::Font::glyphDataForCharacter): If the fallback page exists but does not have a
glyph for the character, fall back to the missing glyph data rather than returning an
invalid GlyphData.
2007-10-20 Jasper Bryant-Greene <m@ni.ac.nz>
Reviewed by Maciej.
Changed the hard-coded scroll delta in WheelEventGtk from 120 to 0.25,
as suggested by George Wright in #15108 (which this patch will
resolve).
This gives a more sane scrolling behaviour, rather than the
jumping to the end or start of the document as occurred previously.
* platform/gtk/WheelEventGtk.cpp:
(WebCore::PlatformWheelEvent::PlatformWheelEvent):
2007-10-20 Alp Toker <alp@atoker.com>
Reviewed by Eric.
Support text boundary detection.
Move TextBoundariesWin.cpp to platform/ since it's portable and useful.
Split out and implement some TemporaryLinkStubs.
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* platform/TextBoundariesICU.cpp: Copied from WebCore/platform/win/TextBoundariesWin.cpp.
* platform/gtk/Language.cpp: Added.
(WebCore::defaultLanguage):
* platform/gtk/TemporaryLinkStubs.cpp:
* platform/gtk/TextBreakIteratorInternalICUGtk.cpp: Added.
(WebCore::currentTextBreakLocaleID):
* platform/win/TextBoundariesWin.cpp: Removed.
2007-10-20 Mark Rowe <mrowe@apple.com>
Reviewed by Tim Hatcher.
Workaround for http://bugs.webkit.org/show_bug.cgi?id=15574
Bug 15574: Web Inspector doesn't work with the new Database feature
The executeSql callback is executed in the security domain of the web page that owns the database,
while the inspector's window object is in the callback functions scope chain. This is leading to a
security violation when the callback attempts to access "document". We can work around this by
ensuring that "document" can be found in the scope chain before the window object.
* page/inspector/DatabasePanel.js:
2007-10-20 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- http://bugs.webkit.org/show_bug.cgi?id=15567
speed up hashing const char* by removing call to strlen
This includes one other fix as well. Both were from a day where I did some
profiling to find hot spots when running the page load test.
* platform/StringImpl.cpp:
(WebCore::StringImpl::computeHash): Compute the hash without calling strlen.
Also change the argument names to not confusingly use m_ prefixes.
(WebCore::StringImpl::createStrippingNull): Added a faster case for strings that
don't have null.
2007-10-20 Mark Rowe <mrowe@apple.com>
Reviewed by Alp.
Gtk changes needed to enable HTML 5 client-side database storage.
* WebCore.pro: Have Gtk use ThreadingPthreads.cpp.
* platform/pthreads/ThreadingPthreads.cpp: Include errno so that EDEADLK and EBUSY are available.
2007-10-20 Mark Rowe <mrowe@apple.com>
Reviewed by Alp.
Implement callOnMainThread for Gtk+ via a one-shot zero-delay timer that will be dispatched
from the main event loop.
* WebCore.pro:
* platform/gtk/TemporaryLinkStubs.cpp:
* platform/gtk/ThreadingGtk.cpp: Added.
(WebCore::callFunctionOnMainThread):
(WebCore::callOnMainThread):
2007-10-20 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Eric.
Fix non-functional display="inline" / display="none" for SVG text.
Fixes: svg/W3C-SVG-1.1/animate-elem-39-t.svg (display="inline" support)
Fixes: svg/batik/text/textProperties2.svg (display="inline/none" support)
Fixes: svg/carto.net/tabgroup.svg (display="none" support, stray content before layouting)
* css/svg.css: Remove "important" flag on text/foreignObject display: block property
* rendering/RenderSVGBlock.cpp:
(WebCore::RenderSVGBlock::setStyle):
2007-10-20 Mark Rowe <mrowe@apple.com>
Reviewed by Alp.
Replace #ifdef'd code with the appropriate use of a forwarding header.
* ForwardingHeaders/kjs/array_instance.h: Added.
* bindings/js/JSDatabaseCustom.cpp:
2007-10-20 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Oliver.
Add support for 'kerning' property in SVG text layout code.
Support all textLength/lengthAdjust modes on normal text & textPaths.
Support letter & word spacing on textPath.
Fix text selection when any spacing (letter/word/kerning) is involved.
Fixes: http://bugs.webkit.org/show_bug.cgi?id=15571
Fixes: svg/batik/text/textOnPathSpaces.svg (spacing)
svg/batik/text/textLayout.svg (kerning support)
svg/text/text-spacing-01-b.svg (text selection)
* platform/Font.cpp:
(WebCore::WidthIterator::advance):
* platform/TextStyle.h:
(WebCore::TextStyle::TextStyle):
(WebCore::TextStyle::spacingDisabled):
(WebCore::TextStyle::disableSpacing):
* rendering/SVGCharacterLayoutInfo.cpp:
(WebCore::SVGCharacterLayoutInfo::SVGCharacterLayoutInfo):
(WebCore::SVGCharacterLayoutInfo::nextPathLayoutPointAndAngle):
(WebCore::SVGCharacterLayoutInfo::setInPathLayout):
(WebCore::SVGCharacterLayoutInfo::addLayoutInformation):
(WebCore::SVGChar::characterTransform):
* rendering/SVGCharacterLayoutInfo.h:
(WebCore::SVGTextChunkLayoutInfo::SVGTextChunkLayoutInfo):
* rendering/SVGRootInlineBox.cpp:
(WebCore::closeTextChunk):
(WebCore::calculateKerning):
(WebCore::SVGRootInlineBox::placeBoxesHorizontally):
(WebCore::svgTextStyleForInlineTextBox):
(WebCore::calculateTextAnchorShiftForTextChunk):
(WebCore::applyTextAnchorToTextChunk):
(WebCore::calculateTextLengthCorrectionForTextChunk):
(WebCore::applyTextLengthCorrectionToTextChunk):
(WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation):
(WebCore::SVGRootInlineBox::buildLayoutInformation):
(WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
(WebCore::SVGRootInlineBox::buildTextChunks):
(WebCore::SVGRootInlineBox::layoutTextChunks):
* rendering/SVGRootInlineBox.h:
2007-10-20 Rodney Dawes <dobey@wayofthemonkey.com>
Reviewd by Darin.
http://bugs.webkit.org/show_bug.cgi?id=15563
Fix conflict with X11 Window type in WebCore
* WebCore/bindings/js/JSDocumentCustom.cpp:
* WebCore/bindings/js/JSHTMLDocumentCustom.cpp:
* WebCore/bindings/js/JSHTMLFrameSetElementCustom.cpp:
* WebCore/bindings/js/kjs_dom.cpp:
* WebCore/bindings/js/kjs_events.cpp:
* WebCore/bindings/js/kjs_proxy.cpp:
* WebCore/history/CachedPage.cpp:
* WebCore/page/Chrome.cpp:
* WebCore/page/Frame.cpp:
2007-10-20 Simon Hausmann <hausmann@kde.org>
Build fix, not reviewed.
Fix the Qt build by adding the two missing FileSystem functions.
* platform/qt/FileSystemQt.cpp:
(WebCore::makeAllDirectories):
(WebCore::pathByAppendingComponent):
2007-10-19 Alp Toker <alp@atoker.com>
Reviewed by Oliver.
GTK+ build fix enabling the new local database storage feature.
There is also a prospective Qt build fix.
* WebCore.pro:
* bindings/js/JSDatabaseCustom.cpp:
* platform/gtk/FileSystemGtk.cpp:
(WebCore::pathByAppendingComponent):
(WebCore::makeAllDirectories):
2007-10-19 Andrew Wellington <proton@wiretapped.net>
Reviewed by Brady Eidson.
Mac build fix.
* WebCore.xcodeproj/project.pbxproj:
2007-10-19 Alp Toker <alp@atoker.com>
Reviewed by Oliver.
Use platform colors for text selection.
Update the cache when the GTK style is changed.
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::platformActiveSelectionBackgroundColor):
(WebCore::RenderThemeGtk::platformInactiveSelectionBackgroundColor):
(WebCore::RenderThemeGtk::platformActiveSelectionForegroundColor):
(WebCore::RenderThemeGtk::platformInactiveSelectionForegroundColor):
(WebCore::RenderThemeGtk::gtkStyleSet):
(WebCore::RenderThemeGtk::gtkEntry):
* platform/gtk/RenderThemeGtk.h:
2007-10-19 Adele Peterson <adele@apple.com>
Reviewed by Beth.
Fix for: <rdar://problem/5518461> REGRESSION (2.0.4-3): Popup arrows are missing in small popups at homedepot.com
Test: fast/forms/menulist-no-overflow.html
* rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::setStyle): Don't allow overflow on menu lists.
2007-10-19 Anders Carlsson <andersca@apple.com>
Reviewed by Brady.
Move some SQL-related classes to platform/sql.
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* loader/icon/SQLDatabase.cpp: Removed.
* loader/icon/SQLDatabase.h: Removed.
* loader/icon/SQLStatement.cpp: Removed.
* loader/icon/SQLStatement.h: Removed.
* loader/icon/SQLTransaction.cpp: Removed.
* loader/icon/SQLTransaction.h: Removed.
* platform/sql/SQLDatabase.cpp: Copied from loader/icon/SQLDatabase.cpp.
* platform/sql/SQLDatabase.h: Copied from loader/icon/SQLDatabase.h.
* platform/sql/SQLStatement.cpp: Copied from loader/icon/SQLStatement.cpp.
* platform/sql/SQLStatement.h: Copied from loader/icon/SQLStatement.h.
* platform/sql/SQLTransaction.cpp: Copied from loader/icon/SQLTransaction.cpp.
* platform/sql/SQLTransaction.h: Copied from loader/icon/SQLTransaction.h.
2007-10-19 Anders Carlsson <andersca@apple.com>
Reviewed by Adam.
Update to match the latest version of the spec. Now, executeSQL takes an array
of SQL parameters instead of them being passed as arguments.
* bindings/js/JSDatabaseCustom.cpp:
(WebCore::JSDatabase::executeSql):
* page/inspector/DatabasePanel.js:
* storage/Database.idl:
2007-10-19 Brady Eidson <beidson@apple.com>
Reviewed by Tim
Tiger's SQLite doesn't support CREATE TABLE IF NOT EXISTS :(
* storage/Database.cpp:
(WebCore::Database::performOpenAndVerify):
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::DatabaseTracker):
2007-10-19 Anders Carlsson <andersca@apple.com>
Release build fix.
* WebCore.vcproj/WebCore.vcproj:
2007-10-19 Brady Eidson <beidson@apple.com>
Remove stray printfs
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::~Document):
2007-10-19 Anders Carlsson <andersca@apple.com>
Reviewed by Brady.
Apparently the Win32 pthreads impl we use does not allow unlocking a mutex that has not
already been locked, so lock the mutex first.
* storage/DatabaseThread.cpp:
(WebCore::DatabaseThread::databaseThread):
2007-10-19 Brady Eidson <beidson@apple.com>
Better build fix
* loader/icon/SQLDatabase.cpp:
(WebCore::SQLDatabase::authorizerFunction): Definite works by 3.3.13
2007-10-19 Brady Eidson <beidson@apple.com>
Build fix
* loader/icon/SQLDatabase.cpp:
(WebCore::SQLDatabase::authorizerFunction): I don't know *when* these constants were
added to SQLite, but I know they were by 3.4.0
2007-10-19 Brady Eidson <beidson@apple.com>
Reviewed by Anders
Windows specific changes, as well as renaming Queue -> Deque
* ForwardingHeaders/wtf/Deque.h: Added.
* ForwardingHeaders/wtf/Queue.h: Removed.
* platform/win/FileSystemWin.cpp:
(WebCore::fileSize):
(WebCore::fileExists):
(WebCore::deleteFile):
(WebCore::pathByAppendingComponent):
(WebCore::fileSystemRepresentation):
(WebCore::makeAllDirectories):
(WebCore::homeDirectoryPath):
* storage/Database.h:
* storage/DatabaseThread.cpp:
(WebCore::DatabaseThread::documentGoingAway):
(WebCore::DatabaseThread::databaseGoingAway):
(WebCore::DatabaseThread::dispatchNextTaskIdentifier):
(WebCore::DatabaseThread::scheduleTask):
(WebCore::DatabaseThread::scheduleImmediateTask):
* storage/DatabaseThread.h:
2007-10-19 Brady Eidson <beidson@apple.com>
Reviewed by Tim and Anders
Preliminary support for HTML5 local database storage (http://www.whatwg.org/specs/web-apps/current-work/)
The specification is still in flux but the fundamentals are pretty solid and we can start using and testing
this implementation even while filing bugs to track changes in the spec as it becomes more final
There are some implementation details in this patch that seem unused or useless, but they remain in place
while the spec is in flux and might go one way or another.
* platform/Logging.cpp: Add StorageAPI logging channel
* platform/Logging.h:
* storage/Database.cpp: Added.
(WebCore::Database::databaseInfoTableName):
(WebCore::databaseVersionKey):
(WebCore::Database::openDatabase): C++ version of the window.openDatabase() javascript API
(WebCore::Database::Database):
(WebCore::Database::~Database):
(WebCore::Database::openAndVerifyVersion):
(WebCore::retrieveTextResultFromDatabase):
(WebCore::Database::getVersionFromDatabase):
(WebCore::setTextValueInDatabase):
(WebCore::Database::setVersionInDatabase):
(WebCore::Database::databaseThreadGoingAway): May be removed in the future
(WebCore::Database::disableAuthorizer): For internal (WebInspector) use to get around the authorizer's restrictions
(WebCore::Database::enableAuthorizer):
(WebCore::Database::guidForOriginAndName): Candidate for refactoring and/or moving to the database tracker.
The GUID for each database identifier is currently for tracking the database version, but might be rescoped in the future
(WebCore::Database::resetAuthorizer):
(WebCore::Database::performPolicyChecks): Currently, the only post-executeSql policy check planned is the origin size usage
(WebCore::Database::scheduleDatabaseCallback):
(WebCore::Database::performOpenAndVerify):
(WebCore::Database::performChangeVersion):
(WebCore::Database::performExecuteSql):
(WebCore::Database::performCloseTransaction):
(WebCore::Database::performGetTableNames):
(WebCore::Database::version): C++ version of the javascript API
(WebCore::Database::changeVersion): Ditto
(WebCore::Database::executeSql): Ditto
(WebCore::Database::closeTransaction): Ditto
(WebCore::Database::tableNames): For internal (WebInspector) use
(WebCore::Database::deliverAllPendingCallbacks):
(WebCore::Database::deliverPendingCallbacks):
* storage/Database.h: Added.
(WebCore::Database::databaseDebugName): For debug logging purposes
* storage/Database.idl: Added.
* storage/DatabaseAuthorizer.cpp: Added.
The DatabaseAuthorizer is used to both prevent the script from doing "illegal" things in sql as well as
tracking when effects certain sql statements might have (such as increasing the size of the database)
(WebCore::DatabaseAuthorizer::DatabaseAuthorizer):
(WebCore::DatabaseAuthorizer::reset):
(WebCore::DatabaseAuthorizer::createTable):
(WebCore::DatabaseAuthorizer::createTempTable):
(WebCore::DatabaseAuthorizer::dropTable):
(WebCore::DatabaseAuthorizer::dropTempTable):
(WebCore::DatabaseAuthorizer::allowAlterTable):
(WebCore::DatabaseAuthorizer::createIndex):
(WebCore::DatabaseAuthorizer::createTempIndex):
(WebCore::DatabaseAuthorizer::dropIndex):
(WebCore::DatabaseAuthorizer::dropTempIndex):
(WebCore::DatabaseAuthorizer::createTrigger):
(WebCore::DatabaseAuthorizer::createTempTrigger):
(WebCore::DatabaseAuthorizer::dropTrigger):
(WebCore::DatabaseAuthorizer::dropTempTrigger):
(WebCore::DatabaseAuthorizer::createVTable):
(WebCore::DatabaseAuthorizer::dropVTable):
(WebCore::DatabaseAuthorizer::allowDelete):
(WebCore::DatabaseAuthorizer::allowInsert):
(WebCore::DatabaseAuthorizer::allowUpdate):
(WebCore::DatabaseAuthorizer::allowRead):
(WebCore::DatabaseAuthorizer::allowAnalyze):
(WebCore::DatabaseAuthorizer::allowPragma):
(WebCore::DatabaseAuthorizer::allowAttach):
(WebCore::DatabaseAuthorizer::allowDetach):
(WebCore::DatabaseAuthorizer::allowFunction):
(WebCore::DatabaseAuthorizer::disable):
(WebCore::DatabaseAuthorizer::enable):
(WebCore::DatabaseAuthorizer::denyBasedOnTableName): Don't allow access to the __WebKit meta info table as
it should be invisible to scripts
* storage/DatabaseAuthorizer.h: Added.
(WebCore::DatabaseAuthorizer::lastActionWasInsert):
(WebCore::DatabaseAuthorizer::lastActionIncreasedSize):
* storage/DatabaseCallback.cpp: Added.
Generic item to queue up for callbacks on the main thread for database activities that take place on
a secondary thread
(WebCore::DatabaseChangeVersionCallback::DatabaseChangeVersionCallback):
(WebCore::DatabaseChangeVersionCallback::performCallback):
(WebCore::DatabaseExecuteSqlCallback::DatabaseExecuteSqlCallback):
(WebCore::DatabaseExecuteSqlCallback::performCallback):
* storage/DatabaseCallback.h: Added.
(WebCore::DatabaseCallback::~DatabaseCallback):
(WebCore::DatabaseChangeVersionCallback::~DatabaseChangeVersionCallback):
(WebCore::DatabaseExecuteSqlCallback::~DatabaseExecuteSqlCallback):
* storage/DatabaseTask.h: Added.
Generic work-item to be queued up on the background database thread
(WebCore::DatabaseTask::isComplete):
(WebCore::DatabaseOpenTask::exceptionCode):
(WebCore::DatabaseOpenTask::openSuccessful):
(WebCore::DatabaseTableNamesTask::tableNames):
* storage/DatabaseTask.cpp: Added.
(WebCore::DatabaseTask::DatabaseTask):
(WebCore::DatabaseTask::~DatabaseTask):
(WebCore::DatabaseTask::performTask):
(WebCore::DatabaseTask::lockForSynchronousScheduling): Used when the main thread needs this task accomplished
synchronously
(WebCore::DatabaseTask::waitForSynchronousCompletion):
(WebCore::DatabaseOpenTask::DatabaseOpenTask):
(WebCore::DatabaseOpenTask::doPerformTask):
(WebCore::DatabaseExecuteSqlTask::DatabaseExecuteSqlTask):
(WebCore::DatabaseExecuteSqlTask::doPerformTask):
(WebCore::DatabaseChangeVersionTask::DatabaseChangeVersionTask):
(WebCore::DatabaseChangeVersionTask::doPerformTask):
(WebCore::DatabaseTableNamesTask::DatabaseTableNamesTask):
(WebCore::DatabaseTableNamesTask::doPerformTask):
* storage/DatabaseThread.cpp: Added.
The current design is that each Document will have its own DatabaseThread. This makes scripts on each
individual document more response at the cost of adding more threads and potentially creating concurrency
issues when the same database is open twice from two different documents
(WebCore::DatabaseThread::DatabaseThread):
(WebCore::DatabaseThread::~DatabaseThread):
(WebCore::DatabaseThread::start):
(WebCore::DatabaseThread::documentGoingAway): Called to shut the thread down when the document is destroyed
(WebCore::DatabaseThread::databaseGoingAway): Remove all pending tasks for this database
(WebCore::DatabaseThread::databaseThreadStart):
(WebCore::DatabaseThread::databaseThread):
(WebCore::DatabaseThread::dispatchNextTaskIdentifier):
(WebCore::DatabaseThread::scheduleTask):
(WebCore::DatabaseThread::scheduleImmediateTask): Schedule a task that gets to "cut to the front of the line" when
the main thread requires a task be performed synchronously
(WebCore::DatabaseThread::wakeWorkThread):
* storage/DatabaseThread.h: Added.
* storage/DatabaseTracker.cpp: Added.
The DatabaseTracker is the master management of all databases. It will keep track of the filename for a given
unique database, keep track of the total disk usage per-origin, and policys per database/origin
(WebCore::DatabaseTracker::setDatabasePath):
(WebCore::DatabaseTracker::databasePath):
(WebCore::DatabaseTracker::tracker):
(WebCore::DatabaseTracker::DatabaseTracker):
(WebCore::DatabaseTracker::fullPathForDatabase):
(WebCore::DatabaseTracker::populateOrigins):
(WebCore::DatabaseTracker::origins):
(WebCore::DatabaseTracker::databaseNamesForOrigin):
(WebCore::DatabaseTracker::addDatabase):
(WebCore::DatabaseTracker::deleteAllDatabases):
(WebCore::DatabaseTracker::deleteAllDatabasesForOrigin):
* storage/DatabaseTracker.h: Added.
* storage/SQLCallback.h: Added. C++ version of the javascript executeSql() callback
(WebCore::SQLCallback::~SQLCallback):
* storage/SQLCallback.idl: Added.
* storage/SQLResultSet.cpp: Added. C++ version of the javascript SQLResultSet object
(WebCore::SQLResultSet::SQLResultSet):
(WebCore::SQLResultSet::insertId):
(WebCore::SQLResultSet::rowsAffected):
(WebCore::SQLResultSet::errorCode):
(WebCore::SQLResultSet::error):
(WebCore::SQLResultSet::rows):
(WebCore::SQLResultSet::setInsertId):
(WebCore::SQLResultSet::setRowsAffected):
(WebCore::SQLResultSet::setErrorCode):
(WebCore::SQLResultSet::setErrorMessage):
* storage/SQLResultSet.h: Added.
* storage/SQLResultSet.idl: Added.
* storage/SQLResultSetRowList.cpp: Added. C++ version of the javascript SQLResultSetRowList object
(WebCore::SQLResultSetRowList::length):
* storage/SQLResultSetRowList.h: Added.
(WebCore::SQLResultSetRowList::columnNames):
(WebCore::SQLResultSetRowList::values):
(WebCore::SQLResultSetRowList::addColumn):
(WebCore::SQLResultSetRowList::addResult):
* storage/SQLResultSetRowList.idl: Added.
* storage/VersionChangeCallback.h: Added. C++ version of the javascript changeVersion() callback
(WebCore::VersionChangeCallback::~VersionChangeCallback):
* storage/VersionChangeCallback.idl: Added.
2007-10-19 Brady Eidson <beidson@apple.com>
Reviewed by Oliver + Same
Forwarding header for the new wtf/Queue.h
* ForwardingHeaders/wtf/Queue.h: Added.
2007-10-19 Anders Carlsson <beidson@apple.com>
Reviewed by Sam Weinig
Most of the Javascript binding support for the Storage API
* bindings/js/JSCustomSQLCallback.cpp: Added.
(WebCore::JSCustomSQLCallback::JSCustomSQLCallback):
(WebCore::JSCustomSQLCallback::handleEvent):
* bindings/js/JSCustomSQLCallback.h: Added.
Add JSCustomSQLCallback which is an SQLCallback implementation that dispatches
handleEvent to a JS function or a JS object with a handleEvent function.
* bindings/js/JSCustomVersionChangeCallback.cpp: Added.
(WebCore::JSCustomVersionChangeCallback::JSCustomVersionChangeCallback):
(WebCore::JSCustomVersionChangeCallback::handleEvent):
* bindings/js/JSCustomVersionChangeCallback.h: Added.
Add JSCustomSQLCallback which is an SQLCallback implementation that dispatches
handleEvent to a JS function or a JS object with a handleEvent function.
* bindings/js/JSDatabaseCustom.cpp: Added.
(WebCore::JSDatabase::executeSql):
Custom implementation of executeSql that takes an array of parameters.
(WebCore::JSDatabase::changeVersion):
Custom implementation of changeVersion.
* bindings/js/JSSQLResultSetRowListCustom.cpp: Added.
(WebCore::JSSQLResultSetRowList::item):
Custom method that returns a JS object that corresponds to a given row in the database.
* bindings/scripts/CodeGeneratorJS.pm:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::openDatabase):
* page/DOMWindow.h:
* page/DOMWindow.idl:
Add openDatabase implementation.
2007-10-19 Brady Eidson <beidson@apple.com>
Reviewed by Oliver
Added tons of utility to the FileSystem abstractions, including moving
some stuff over from IconDatabase
* platform/FileSystem.h:
* platform/cf/FileSystemCF.cpp: Added.
(WebCore::fileSystemRepresentation):
* platform/mac/FileSystemMac.mm:
* platform/posix/FileSystemPOSIX.cpp: Added.
(WebCore::fileExists):
(WebCore::deleteFile):
(WebCore::fileSize):
(WebCore::pathByAppendingComponent):
(WebCore::makeAllDirectories):
2007-10-19 Timothy Hatcher <timothy@apple.com>
Reviewed by Adam Roben
Preliminary Web Inspector support for the Storage API
(This patch does not include the support artwork)
* page/InspectorController.cpp:
(WebCore::InspectorDatabaseResource::InspectorDatabaseResource):
(WebCore::InspectorDatabaseResource::setScriptObject):
(WebCore::databaseTableNames): Return the table names for a Database object.
(WebCore::InspectorController::setWindowVisible):
(WebCore::InspectorController::windowScriptObjectAvailable):
(WebCore::InspectorController::populateScriptResources):
(WebCore::InspectorController::addDatabaseScriptResource): Add the script object for the database.
(WebCore::InspectorController::removeDatabaseScriptResource): Remove the script object for the database.
(WebCore::InspectorController::clearDatabaseScriptResources): Remove all the database resources.
(WebCore::InspectorController::didCommitLoad): Call clearDatabaseScriptResources().
(WebCore::InspectorController::didOpenDatabase): Make a new InspectorDatabaseResource and add it to m_databaseResources.
* page/InspectorController.h:
* page/inspector/Database.js: Added.
* page/inspector/DatabasePanel.js: Added.
* page/inspector/ResourceCategory.js: Make resource categories assume less about the resource.
* page/inspector/inspector.css: Add styles for the database panel.
* page/inspector/inspector.html: Include DatabasePanel.js
* page/inspector/inspector.js: Support for adding and removing Database resources.
2007-10-19 Brady Eidson <beidson@apple.com>
Reviewed by Tim Hatcher
Added support for Chrome prompts required by the Storage API
* page/Chrome.cpp:
(WebCore::Chrome::runDatabaseSizeLimitPrompt):
* page/Chrome.h:
* page/ChromeClient.h:
* platform/graphics/svg/SVGImageEmptyClients.h:
2007-10-19 Brady Eidson <beidson@apple.com>
Contributions and Review by Anders
Various SQLite tweaks in preparation for the storage API
* loader/icon/SQLDatabase.cpp:
(WebCore::SQLDatabase::~SQLDatabase):
(WebCore::SQLDatabase::authorizerFunction): Static callback from sqlite for authorizer functions
(WebCore::SQLDatabase::setAuthorizer):
(WebCore::SQLDatabase::lock):
(WebCore::SQLDatabase::unlock):
* loader/icon/SQLDatabase.h:
* loader/icon/SQLStatement.cpp:
(WebCore::SQLStatement::prepare): Switch to prepare16_v2
(WebCore::SQLStatement::bindDouble): Added
(WebCore::SQLStatement::bindValue): Bind a wrapped SQLValue object (described later)
(WebCore::SQLStatement::bindParameterCount): Accessor to the sqlite3 API for validating statements
* loader/icon/SQLStatement.h:
(WebCore::SQLStatement::isPrepared):
* platform/sql/SQLAuthorizer.cpp: Added. Fully virtual interface to implement your own SQLite authorizer
* platform/sql/SQLAuthorizer.h: Added.
(WebCore::SQLAuthorizer::~SQLAuthorizer):
(WebCore::SQLAuthorizer::createTable):
(WebCore::SQLAuthorizer::createTempTable):
(WebCore::SQLAuthorizer::dropTable):
(WebCore::SQLAuthorizer::dropTempTable):
(WebCore::SQLAuthorizer::allowAlterTable):
(WebCore::SQLAuthorizer::createIndex):
(WebCore::SQLAuthorizer::createTempIndex):
(WebCore::SQLAuthorizer::dropIndex):
(WebCore::SQLAuthorizer::dropTempIndex):
(WebCore::SQLAuthorizer::createTrigger):
(WebCore::SQLAuthorizer::createTempTrigger):
(WebCore::SQLAuthorizer::dropTrigger):
(WebCore::SQLAuthorizer::dropTempTrigger):
(WebCore::SQLAuthorizer::createView):
(WebCore::SQLAuthorizer::createTempView):
(WebCore::SQLAuthorizer::dropView):
(WebCore::SQLAuthorizer::dropTempView):
(WebCore::SQLAuthorizer::createVTable):
(WebCore::SQLAuthorizer::dropVTable):
(WebCore::SQLAuthorizer::allowDelete):
(WebCore::SQLAuthorizer::allowInsert):
(WebCore::SQLAuthorizer::allowUpdate):
(WebCore::SQLAuthorizer::allowTransaction):
(WebCore::SQLAuthorizer::allowSelect):
(WebCore::SQLAuthorizer::allowRead):
(WebCore::SQLAuthorizer::allowAttach):
(WebCore::SQLAuthorizer::allowDetach):
(WebCore::SQLAuthorizer::allowReindex):
(WebCore::SQLAuthorizer::allowAnalyze):
(WebCore::SQLAuthorizer::allowFunction):
* platform/sql/SQLValue.cpp: Added. Contains a value for a SQLite database that can be one of a few types.
For now, just a String or a double
(WebCore::SQLValue::SQLValue):
(WebCore::SQLValue::string):
(WebCore::SQLValue::number):
* platform/sql/SQLValue.h: Added.
(WebCore::SQLValue::):
(WebCore::SQLValue::SQLValue):
(WebCore::SQLValue::type):
2007-10-19 Brady Eidson <beidson@apple.com>
Reviewed by Maciej
Changed IconDatabase over to use new FileSystem apis
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::open):
2007-10-19 David Hyatt <hyatt@apple.com>
Fix for ebay parser crash.
Reviewed by Beth
fast/invalid/table-residual-style-crash.html added as a test
* html/HTMLParser.cpp:
(WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks):
2007-10-19 Sam Weinig <sam@webkit.org>
Fix Windows, Qt and GTK builds.
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
2007-10-19 Sam Weinig <sam@webkit.org>
Reviewed by Darin.
Encapsulate the same origin check into the new SecurityOrigin class.
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/kjs_window.cpp:
(KJS::Window::isSafeScript):
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::defaultEventHandler):
* dom/Document.h:
(WebCore::Document::securityOrigin):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::begin):
(WebCore::FrameLoader::setOpener):
* loader/FrameLoader.h:
* platform/SecurityOrigin.cpp: Added.
(WebCore::SecurityOrigin::SecurityOrigin):
(WebCore::SecurityOrigin::clear):
(WebCore::SecurityOrigin::isEmpty):
(WebCore::SecurityOrigin::setForFrame):
(WebCore::SecurityOrigin::setDomainFromDOM):
(WebCore::SecurityOrigin::allowsAccessFrom):
(WebCore::SecurityOrigin::isSecureTransitionTo):
* platform/SecurityOrigin.h: Added.
2007-10-19 Simon Hausmann <hausmann@kde.org>
Fix the Qt/Windows build: Added missing FontSelector.h include.
* platform/qt/FontQt.cpp:
2007-10-19 Simon Hausmann <hausmann@kde.org>
Reviewed by Lars.
Qt/Windows build fix: Threading.h uses int32_t but doesn't include stdint.h.
* platform/Threading.h:
2007-10-19 Simon Hausmann <hausmann@kde.org>
Reviewed by Lars.
Fix the Qt/Windows build, don't use cat but use the perl print trick
instead.
* WebCore.pro:
2007-10-18 Justin Garcia <justin.garcia@apple.com>
Reviewed by Kevin McCullough.
<rdar://problem/5483526>
GoogleDocs: A hang occurs when applying list styling to a selection containing a table and line breaks
* editing/TextIterator.cpp:
(WebCore::TextIterator::exitNode): For selection preservation, we must emit a character
between every VisiblePosition. We weren't emitting a space after some tables, because
we won't try to emit a space if shouldEmitNewlineAFterNode is true, even if no newline
was emitted.
2007-10-18 Dan Bernstein <mitz@apple.com>
Reviewed by Adam Roben.
- fix <rdar://problem/5313523>
REGRESSION(Leopard): http/tests/incremental/slow-utf8-text.pl fails on Leopard
* platform/network/mac/ResourceResponseMac.mm:
(WebCore::ResourceResponse::doUpdateResourceResponse): Work around
<rdar://problem/5321972> by testing for the case of a response
with a MIME type of application/octet-stream and a Content-Type header
starting with text/plain and setting the MIME type to text/plain in
that case.
2007-10-18 Mark Rowe <mrowe@apple.com>
Fix the no-SVG build.
* css/CSSPrimitiveValueMappings.h: Move the CSSPrimitiveValue implementations for
LineCap, LineJoin and WindRule inside #if ENABLE(SVG).
2007-10-18 Darin Adler <darin@apple.com>
Reviewed by Anders.
- some small tweaks to the threading implementation
I had trouble building on Windows. Either the problem went away by itself
or one of these changes fixed it.
* platform/Threading.h: Eliminated the use of friend, and shared a single
declaration for the initializeThreading function.
* platform/pthreads/ThreadingPthreads.cpp: (WebCore::ThreadCondition::wait):
Call impl() here.
* platform/win/ThreadingWin.cpp: Got rid of two globals here with static
constructors. Also added a typedef for the type of the function queue.
(WebCore::functionQueueMutex): Added function.
(WebCore::functionQueue): Ditto.
(WebCore::callFunctionsOnMainThread): Use functions instead of using the
globals directly.
(WebCore::callOnMainThread): Ditto.
* css/CSSParser.cpp: Had to touch this file to make things build.
2007-10-18 Adam Roben <aroben@apple.com>
Fix <rdar://5547462> Need to copy Inspector resources in Production builds
I also added an excludes file for the xcopy command to avoid copying
.svn folders.
Reviewed by Geoff.
* WebCore.vcproj/WebCore.make: Make sure we copy the Inspector
resources.
* WebCore.vcproj/WebCore.vcproj: Pass /exclude:xcopy.excludes to
xcopy.
* WebCore.vcproj/xcopy.excludes: Added.
2007-10-18 Darin Adler <darin@apple.com>
Reviewed by Sam.
- fix http://bugs.webkit.org/show_bug.cgi?id=15541
REGRESSION (r26616): prompt with one argument uses the literal "undefined" as default reply
* page/DOMWindow.idl: Add ConvertUndefinedOrNullToNullString back for defaultValue.
2007-10-18 Nikolas Zimmermann <zimmermann@kde.org>
Build fix. Not reviewed.
Hopefully fix win build by including wtf/MathExtras.h.
* platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
2007-10-18 Dan Bernstein <mitz@apple.com>
Reviewed by Nikolas Zimmermann.
- fix http://bugs.webkit.org/show_bug.cgi?id=15367
Assertion failure inspecting a document including soft hyphen code (0xad)
Test: fast/text/word-break-soft-hyphen.html
* rendering/RenderText.cpp:
(WebCore::RenderText::calcPrefWidths): Changed to treat soft hyphens as
word boundaries. This fixes the bug and is consistent with the fact that
run rounding does occur at soft hyphens.
2007-10-18 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Anders.
Fix last layout test failure seen on buildbot "trunk-mac-ppc-release".
Problem: "svg/custom/mask-excessive-malloc.svg -> crashed"
Clamp any ImageBuffer allocation within SVG to the RenderView's visibleSize
to avoid excessive mallocs (in the testcase above 1000000x1000000)
* ksvg2/svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::drawMaskerContent):
* ksvg2/svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::buildPattern):
* platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
(WebCore::SVGPaintServerGradient::teardown):
(WebCore::SVGPaintServerGradient::setup):
* platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
(WebCore::SVGResourceMasker::applyMask):
* rendering/SVGRenderSupport.cpp:
(WebCore::clampImageBufferSizeToViewport):
* rendering/SVGRenderSupport.h:
2007-10-18 Alexey Proskuryakov <ap@webkit.org>
Windows build fix.
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty): Add braces around cases that have local variables now.
2007-10-18 Alexey Proskuryakov <ap@webkit.org>
Release build fix.
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
2007-10-18 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin.
Split most of CSSPrimitiveValue enum mapping out of CSSComputedStyleDeclaration::getPropertyCSSValue()
and CSSStyleSelector::applyProperty() (and their SVG counterparts). This should make the code more readable.
* WebCore.xcodeproj/project.pbxproj:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::getPositionOffsetValue):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::init):
* css/CSSPrimitiveValue.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
* css/CSSPrimitiveValueMappings.h: Added.
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator EBorderStyle):
(WebCore::CSSPrimitiveValue::operator CompositeOperator):
(WebCore::CSSPrimitiveValue::operator EAppearance):
(WebCore::CSSPrimitiveValue::operator EBackgroundBox):
(WebCore::CSSPrimitiveValue::operator EBackgroundRepeat):
(WebCore::CSSPrimitiveValue::operator EBoxAlignment):
(WebCore::CSSPrimitiveValue::operator EBoxDirection):
(WebCore::CSSPrimitiveValue::operator EBoxLines):
(WebCore::CSSPrimitiveValue::operator EBoxOrient):
(WebCore::CSSPrimitiveValue::operator ECaptionSide):
(WebCore::CSSPrimitiveValue::operator EClear):
(WebCore::CSSPrimitiveValue::operator ECursor):
(WebCore::CSSPrimitiveValue::operator EDisplay):
(WebCore::CSSPrimitiveValue::operator EEmptyCell):
(WebCore::CSSPrimitiveValue::operator EFloat):
(WebCore::CSSPrimitiveValue::operator EKHTMLLineBreak):
(WebCore::CSSPrimitiveValue::operator EListStylePosition):
(WebCore::CSSPrimitiveValue::operator EListStyleType):
(WebCore::CSSPrimitiveValue::operator EMarginCollapse):
(WebCore::CSSPrimitiveValue::operator EMarqueeBehavior):
(WebCore::CSSPrimitiveValue::operator EMarqueeDirection):
(WebCore::CSSPrimitiveValue::operator EMatchNearestMailBlockquoteColor):
(WebCore::CSSPrimitiveValue::operator ENBSPMode):
(WebCore::CSSPrimitiveValue::operator EOverflow):
(WebCore::CSSPrimitiveValue::operator EPageBreak):
(WebCore::CSSPrimitiveValue::operator EPosition):
(WebCore::CSSPrimitiveValue::operator EResize):
(WebCore::CSSPrimitiveValue::operator ETableLayout):
(WebCore::CSSPrimitiveValue::operator ETextAlign):
(WebCore::CSSPrimitiveValue::operator ETextSecurity):
(WebCore::CSSPrimitiveValue::operator ETextTransform):
(WebCore::CSSPrimitiveValue::operator EUnicodeBidi):
(WebCore::CSSPrimitiveValue::operator EUserDrag):
(WebCore::CSSPrimitiveValue::operator EUserModify):
(WebCore::CSSPrimitiveValue::operator EUserSelect):
(WebCore::CSSPrimitiveValue::operator EVisibility):
(WebCore::CSSPrimitiveValue::operator EWhiteSpace):
(WebCore::CSSPrimitiveValue::operator EWordBreak):
(WebCore::CSSPrimitiveValue::operator EWordWrap):
(WebCore::CSSPrimitiveValue::operator LineCap):
(WebCore::CSSPrimitiveValue::operator LineJoin):
(WebCore::CSSPrimitiveValue::operator TextDirection):
(WebCore::CSSPrimitiveValue::operator WindRule):
(WebCore::CSSPrimitiveValue::operator EAlignmentBaseline):
(WebCore::CSSPrimitiveValue::operator EColorInterpolation):
(WebCore::CSSPrimitiveValue::operator EColorRendering):
(WebCore::CSSPrimitiveValue::operator EDominantBaseline):
(WebCore::CSSPrimitiveValue::operator EImageRendering):
(WebCore::CSSPrimitiveValue::operator EPointerEvents):
(WebCore::CSSPrimitiveValue::operator EShapeRendering):
(WebCore::CSSPrimitiveValue::operator ETextAnchor):
(WebCore::CSSPrimitiveValue::operator ETextRendering):
(WebCore::CSSPrimitiveValue::operator EWritingMode):
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::checkSelector):
(WebCore::CSSStyleSelector::checkOneSelector):
(WebCore::CSSRuleSet::addRulesFromSheet):
(WebCore::convertToLength):
(WebCore::CSSStyleSelector::applyDeclarations):
(WebCore::CSSStyleSelector::applyProperty):
(WebCore::CSSStyleSelector::mapBackgroundAttachment):
(WebCore::CSSStyleSelector::mapBackgroundClip):
(WebCore::CSSStyleSelector::mapBackgroundComposite):
(WebCore::CSSStyleSelector::mapBackgroundOrigin):
(WebCore::CSSStyleSelector::mapBackgroundRepeat):
(WebCore::CSSStyleSelector::mapBackgroundXPosition):
(WebCore::CSSStyleSelector::mapBackgroundYPosition):
* ksvg2/css/SVGCSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
* ksvg2/css/SVGCSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applySVGProperty):
2007-10-18 Eric Seidel <eric@webkit.org>
Reviewed by Maciej.
Fix crashers in SVGViewSpec::parseViewSpec
http://bugs.webkit.org/show_bug.cgi?id=15504
Test is blocked by bug 15503, landed as:
* svg/dom/viewspec-parser.html-disabled
* bindings/scripts/CodeGeneratorObjC.pm: support classes where all parents are interfaces
* ksvg2/svg/SVGViewSpec.cpp:
(WebCore::SVGViewSpec::parseViewSpec):
* ksvg2/svg/SVGViewSpec.idl: Added.
2007-10-17 Rob Buis <buis@kde.org>
Reviewed by Darin, Adam, and Maciej.
http://bugs.webkit.org/show_bug.cgi?id=12988
First element (in document order) is not returned when other duplicate ID-ed elements were created first
Reset the element id cache when an id is added and there is a duplicate for that id.
* dom/Document.cpp:
(WebCore::Document::addElementById):
2007-10-17 Mark Rowe <mrowe@apple.com>
Mac build fix.
* Configurations/WebCore.xcconfig: Make it possible to include CoreGraphics header files.
2007-10-17 Adam Roben <aroben@apple.com>
Fix an ASSERT on launch on Windows
Fix dictated to me by Brady.
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::syncThreadMainLoop): Make sure we hold
m_syncLock before going into the loop.
2007-10-17 Adam Roben <aroben@apple.com>
Windows build fix
* platform/graphics/AffineTransform.h: Don't #include
ApplicationServices.h.
* platform/graphics/cg/GraphicsContextCG.cpp: Add an #include that's
needed now that we're not #including ApplicationServices.h.
2007-10-17 Mark Rowe <mrowe@apple.com>
Gtk build fix. Move non-pthread stubs from Threading.h to ThreadingNone.cpp to prevent
multiple-definition link errors.
* WebCore.pro:
* platform/Threading.h:
* platform/ThreadingNone.cpp: Added.
(WebCore::createThread):
(WebCore::waitForThreadCompletion):
(WebCore::detachThread):
(WebCore::Mutex::Mutex):
(WebCore::Mutex::~Mutex):
(WebCore::Mutex::lock):
(WebCore::Mutex::tryLock):
(WebCore::Mutex::unlock):
(WebCore::ThreadCondition::ThreadCondition):
2007-10-17 Anders Carlsson <andersca@apple.com>
Reviewed by Oliver.
* WebCore.xcodeproj/project.pbxproj:
* WebCore.vcproj/WebCore.vcproj:
* config.h:
#define USE_PTHREADS on Windows.
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::getOrCreateIconRecord):
(WebCore::IconDatabase::getOrCreatePageURLRecord):
Update for mutex changes.
* platform/Threading.h:
(WebCore::):
(WebCore::ThreadSafeShared::ThreadSafeShared):
(WebCore::ThreadSafeShared::ref):
(WebCore::ThreadSafeShared::deref):
(WebCore::ThreadSafeShared::hasOneRef):
(WebCore::ThreadSafeShared::refCount):
(WebCore::ThreadSafeShared::isThreadSafe):
Add a new Shared base class that uses a mutex to manage its refcount.
(WebCore::createThread):
(WebCore::waitForThreadCompletion):
(WebCore::detachThread):
New functions for thread creation.
(WebCore::Mutex::Mutex):
(WebCore::Mutex::~Mutex):
(WebCore::Mutex::lock):
(WebCore::Mutex::tryLock):
(WebCore::Mutex::unlock):
Move the definitions to ThreadingPthreads.cpp
(WebCore::ThreadCondition::ThreadCondition):
(WebCore::ThreadCondition::~ThreadCondition):
(WebCore::ThreadCondition::wait):
(WebCore::ThreadCondition::signal):
(WebCore::ThreadCondition::broadcast):
Move the definitions to ThreadingPthreads.cpp
* platform/pthreads: Added.
* platform/pthreads/ThreadingPthreads.cpp: Added.
Add pthread specific implementation of the thread creation functions, Mutex and ThreadCondition.
2007-10-17 David Hyatt <hyatt@apple.com>
Add support for creating a layer when a transform is in effect. Add support to RenderStyle for
handing back a computed AffineTransform.
Reviewed by Mitz Pettel
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::adjustRenderStyle):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::setStyle):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::RenderObject):
(WebCore::RenderObject::requiresLayer):
(WebCore::RenderObject::setStyle):
* rendering/RenderObject.h:
(WebCore::RenderObject::hasTransform):
(WebCore::RenderObject::setHasTransform):
* rendering/RenderStyle.cpp:
(WebCore::RenderStyle::applyTransform):
* rendering/RenderStyle.h:
(WebCore::RenderStyle::hasTransform):
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::requiresLayer):
* rendering/RenderTableRow.h:
(WebCore::RenderTableRow::requiresLayer):
2007-10-17 David Hyatt <hyatt@apple.com>
Add support for mapping of the transform CSS property into RenderStyles. Everything is now ready for the front
end to use.
Reviewed by Mitz Pettel
* WebCore.xcodeproj/project.pbxproj:
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
* css/CSSTransformValue.h:
(WebCore::CSSTransformValue::type):
(WebCore::CSSTransformValue::values):
* platform/graphics/AffineTransform.cpp:
(WebCore::AffineTransform::skew):
* platform/graphics/AffineTransform.h:
* rendering/RenderStyle.cpp:
(WebCore::StyleTransformData::StyleTransformData):
(WebCore::StyleTransformData::operator==):
(WebCore::StyleTransformData::transformDataEquivalent):
* rendering/RenderStyle.h:
(WebCore::TransformOperation::~TransformOperation):
(WebCore::TransformOperation::operator!=):
(WebCore::TransformOperation::isScaleOperation):
(WebCore::TransformOperation::isRotateOperation):
(WebCore::TransformOperation::isSkewOperation):
(WebCore::TransformOperation::isTranslateOperation):
(WebCore::TransformOperation::isMatrixOperation):
(WebCore::ScaleTransformOperation::ScaleTransformOperation):
(WebCore::ScaleTransformOperation::isScaleOperation):
(WebCore::ScaleTransformOperation::operator==):
(WebCore::ScaleTransformOperation::apply):
(WebCore::RotateTransformOperation::RotateTransformOperation):
(WebCore::RotateTransformOperation::isRotateOperation):
(WebCore::RotateTransformOperation::operator==):
(WebCore::RotateTransformOperation::apply):
(WebCore::SkewTransformOperation::SkewTransformOperation):
(WebCore::SkewTransformOperation::isSkewOperation):
(WebCore::SkewTransformOperation::operator==):
(WebCore::SkewTransformOperation::apply):
(WebCore::TranslateTransformOperation::TranslateTransformOperation):
(WebCore::TranslateTransformOperation::isTranslateOperation):
(WebCore::TranslateTransformOperation::operator==):
(WebCore::TranslateTransformOperation::apply):
(WebCore::MatrixTransformOperation::MatrixTransformOperation):
(WebCore::MatrixTransformOperation::isMatrixOperation):
(WebCore::MatrixTransformOperation::operator==):
(WebCore::MatrixTransformOperation::apply):
(WebCore::StyleTransformData::operator!=):
(WebCore::RenderStyle::transform):
(WebCore::RenderStyle::setTransform):
(WebCore::RenderStyle::initialTransform):
2007-10-17 Adam Roben <aroben@apple.com>
* page/Frame.cpp: I had to touch this file when fixing the Windows
build. Checking it in in case it helps others, too.
2007-10-17 Eric Seidel <eric@webkit.org>
Reviewed by Mark Rowe.
Remove a couple more uses of svg_dynamic_cast.
No functional changes, no tests.
* ksvg2/svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::buildPattern):
2007-10-17 Mark Rowe <mrowe@apple.com>
Reviewed by Eric and Geoff.
<rdar://problem/5453743> Repro ASSERT in CachedResource::setEncodedSize() loading image in background tab
http://bugs.webkit.org/show_bug.cgi?id=15191
* loader/DocLoader.cpp:
(WebCore::DocLoader::setAutoLoadImages): Don't start a load if the CachedImage is already loading.
2007-10-17 Justin Garcia <justin.garcia@apple.com>
Reviewed by Harrison.
<rdar://problem/5481523>
GoogleDocs: Safari hangs when indenting a particular table twice
Fixed by fixing problems with the selection preservation done by IndentOutdentCommand.
It is now more difficult to create selections that cause hangs. Those are covered by:
<rdar://problem/5543472>
* editing/IndentOutdentCommand.cpp:
(WebCore::indexForVisiblePosition): Compute indices from the first VisiblePosition
in the document, instead of the first Position.
Use rangeCompliantEquivalents when creating the Range that we pass to rangeLength.
Tell TextIterator::rangeLength that we're doing selection preservation, so that it
will emit characters between all VisiblePositions.
(WebCore::IndentOutdentCommand::indentRegion): Fixed a bug where the range and location
passed to rangeFromLocationAndLength were reversed.
Tell rangeFromLocationAndLength that we're doing doing selection preservation, as
above.
* editing/TextIterator.cpp:
(WebCore::CharacterIterator::CharacterIterator):
(WebCore::TextIterator::rangeLength): Rename emitSpacesForReplacedElements
to forSelectionPreservation, to match the name of the boolean inside TextIterator and
to match its meaning after r25522.
(WebCore::TextIterator::rangeFromLocationAndLength): Ditto.
2007-10-16 Darin Adler <darin@apple.com>
Reviewed by Mitz.
- fix http://bugs.webkit.org/show_bug.cgi?id=15536
need to cache missing glyph so we're not slow on pages that show missing glyphs
- <rdar://problem/5404359> UI thread stall (>60sec) in MLANG running stress test
(related to font data caching)
* platform/Font.cpp: (WebCore::Font::glyphDataForCharacter): Check for a null value
for fontData rather than for glyph to detect non-cached entries in the glyph data.
* platform/gtk/GlyphPageTreeNodeGtk.cpp: (WebCore::GlyphPage::fill):
* platform/mac/GlyphPageTreeNodeMac.cpp: (WebCore::GlyphPage::fill):
* platform/win/GlyphPageTreeNodeWin.cpp: (WebCore::GlyphPage::fill):
Set fontData to 0 for missing glyph entries. Also fixed the Windows and GTK versions
to return the proper value for haveGlyphs.
2007-10-16 Mark Rowe <mrowe@apple.com>
Gtk build fix. Replace use of assert with ASSERT_NOT_REACHED.
* platform/gtk/FontCacheGtk.cpp:
(WebCore::FontCache::platformInit):
2007-10-16 Darin Adler <darin@apple.com>
Reviewed by Adam.
- fix http://bugs.webkit.org/show_bug.cgi?id=15534
WebScriptObject.h has some formatting and editorial mistakes
* bindings/objc/WebScriptObject.h: Fix wording and formatting.
2007-10-16 Darin Adler <darin@apple.com>
- try to fix the Qt build
* config.h: Don't use DisallowCType.h, since it's incompatible with some C++ headers
that are used in some Qt-specific source files.
2007-10-16 Darin Adler <darin@apple.com>
Reviewed by Adele.
- fix http://bugs.webkit.org/show_bug.cgi?id=15525
transpose (control-T) should do the last two characters on a line if at end of line
- remove unused CommandByName class
- move transpose command implementation here from Mac OS X WebKit
* editing/Editor.h:
* editing/Editor.cpp:
(WebCore::execTranspose): Added.
(WebCore::Editor::transpose): Added. This has the transpose implementation from
WebCoreFrameBridge and WebHTMLView, translated into WebCore-style C++ and with
a special case for the end of a paragraph.
* page/Frame.h: Removed unused command() function member.
* page/FramePrivate.h: Removed unused m_command data member.
* page/Frame.cpp: Ditto.
* page/mac/WebCoreFrameBridge.h: Removed rangeOfCharactersAroundCaret method.
* page/mac/WebCoreFrameBridge.mm: Ditto.
* WebCore.pro: Removed CommandByName.h/cpp.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* editing/CommandByName.cpp: Removed.
* editing/CommandByName.h: Removed.
2007-10-16 Darin Adler <darin@apple.com>
Reviewed by Maciej and Geoff (and looked over by Eric).
- http://bugs.webkit.org/show_bug.cgi?id=15519
eliminate use of <ctype.h> for processing ASCII
* ForwardingHeaders/wtf/ASCIICType.h: Added.
* ForwardingHeaders/wtf/DisallowCType.h: Added.
* WebCorePrefix.h: Get rid of inclusion of <ctype.h>.
* config.h: Include DisallowCType.h.
* css/CSSParser.cpp:
(WebCore::ParseString::lower):
* css/CSSPrimitiveValue.cpp:
(WebCore::isCSSTokenizerIdentifier):
* css/CSSStyleDeclaration.cpp:
(WebCore::propertyID):
* html/HTMLSelectElement.cpp:
(WebCore::stripLeadingWhiteSpace):
* html/HTMLTokenizer.cpp:
(WebCore::tagMatch):
* loader/FTPDirectoryParser.cpp:
(WebCore::parseOneFTPLine):
* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::checkForHeadCharset):
* platform/DeprecatedCString.cpp:
(WebCore::DeprecatedCString::lower):
(WebCore::DeprecatedCString::upper):
(WebCore::DeprecatedCString::find):
(WebCore::DeprecatedCString::contains):
* platform/DeprecatedString.cpp:
(WebCore::equalCaseInsensitive):
(WebCore::isCharacterAllowedInBase):
(WebCore::DeprecatedString::find):
(WebCore::DeprecatedString::contains):
(WebCore::toIntegralType):
* platform/DeprecatedString.h:
(WebCore::DeprecatedChar::isSpace):
(WebCore::DeprecatedChar::lower):
(WebCore::DeprecatedChar::upper):
* platform/KURL.cpp:
(WebCore::KURL::parse):
* platform/StringImpl.cpp:
(WebCore::isSpace):
(WebCore::StringImpl::containsOnlyWhitespace):
(WebCore::StringImpl::isLower):
(WebCore::StringImpl::lower):
(WebCore::StringImpl::find):
(WebCore::StringImpl::reverseFind):
(WebCore::equalIgnoringCase):
* platform/TextEncodingRegistry.cpp:
(WebCore::TextEncodingNameHash::equal):
(WebCore::TextEncodingNameHash::hash):
(WebCore::atomicCanonicalTextEncodingName):
* platform/mac/KeyEventMac.mm:
(WebCore::keyIdentifierForKeyEvent):
* platform/win/KeyEventWin.cpp:
(WebCore::keyIdentifierForWindowsKeyCode):
* platform/win/PopupMenuWin.cpp:
(WebCore::isASCIIPrintable):
(WebCore::PopupWndProc):
* plugins/win/PluginViewWin.cpp:
(WebCore::capitalizeRFC822HeaderFieldName):
* rendering/RenderText.cpp:
(WebCore::RenderText::widthFromCache):
Use ASCIICType.h functions instead of ctype.h ones.
2007-10-16 Mitz Pettel <mitz@webkit.org>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=15296
REGRESSION (r19716-r19719): width not specified for <marquee> tag is causing the alignment issue.
Test: fast/block/float/marquee-shrink-to-avoid-floats.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::shrinkToAvoidFloats): Changed to return 'true' for <marquee>s with auto width.
2007-10-16 Beth Dakin <bdakin@apple.com>
Reviewed by Darin.
Fix for <rdar://problem/5517118> REGRESSION: 9A570 - Safari renders
Amazon seller page way too small
The font size at Amazon was way too small because the calls to
getComputedStyle and getPropertyValue did not cause the div to
attach because there was a pending stylesheet. The fix is to call
updateLayoutIgnorePendingStylesheets() instead of just
updateLayout().
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2007-10-16 David Hyatt <hyatt@apple.com>
Get transform-origin(x/y) mapped into the front end RenderStyle. Adds a new StyleTransformData struct that
holds transform-origin (and that will also eventually hold the parsed transform operations as well).
Reviewed by Beth
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
* rendering/RenderStyle.cpp:
(WebCore::StyleTransformData::StyleTransformData):
(WebCore::StyleTransformData::operator==):
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
(WebCore::RenderStyle::RenderStyle):
(WebCore::RenderStyle::diff):
* rendering/RenderStyle.h:
(WebCore::StyleTransformData::operator!=):
(WebCore::RenderStyle::transformOriginX):
(WebCore::RenderStyle::transformOriginY):
(WebCore::RenderStyle::setTransformOriginX):
(WebCore::RenderStyle::setTransformOriginY):
(WebCore::RenderStyle::initialTransformOriginX):
(WebCore::RenderStyle::initialTransformOriginY):
2007-10-16 Adele Peterson <adele@apple.com>
Reviewed by Alice.
Fix for <rdar://problem/5538793> REGRESSION: Failing layout test: fast/forms/select-change-listbox-to-popup.html (due to landing feature branch)
* html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::parseMappedAttribute): When switching between types of select elements, call setRecalcListItems
since recalcListItems updates the default selection in different ways for the different controls.
2007-10-16 Alice Liu <alice.liu@apple.com>
rubber-stamped by Darin.
flipping my previous fix around so that mac is special-cased instead of win.
* dom/Document.cpp:
(WebCore::Document::defaultEventHandler):
2007-10-16 David Hyatt <hyatt@apple.com>
Clean up transform parsing. Fix a crash, ditch the extra parse context class, and use RefPtr/PassRefPtr more
to simplify the code.
Reviewed by aroben
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseTransform):
* css/CSSParser.h:
2007-10-16 Alice Liu <alice.liu@apple.com>
Reviewed by Adele.
fixed <rdar://5085596> Accesskeys don't work
* dom/Document.cpp:
(WebCore::Document::defaultEventHandler):
accesskey modifier is platform-depedent.
2007-10-15 Mark Rowe <mrowe@apple.com>
Reviewed by John.
<rdar://problem/5494040> Reproducible assertion failure in WebCore::IconDatabase::iconForPageURL
A race condition between icon database import and Safari asking for an icon for the empty URL
was resulting in a PageURLRecord being created for a URL that can never be retained. By enforcing
that PageURLRecord's cannot be created for the empty URL we can prevent the assertion from failing.
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::iconForPageURL):
(WebCore::IconDatabase::getOrCreatePageURLRecord): Bail out early if the URL is empty.
(WebCore::IconDatabase::performURLImport): Don't create the PageURLRecord if the URL is empty.
2007-10-15 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Ollie.
Use OwnPtr for m_deliveryData, and fix a bug where we were memmove()ing
over m_deliveryData instead of its data buffer
* plugins/win/PluginStreamWin.cpp:
(WebCore::PluginStreamWin::~PluginStreamWin): Don't delete
m_deliveryData
(WebCore::PluginStreamWin::deliverData): Fix memmove() call
(WebCore::PluginStreamWin::didReceiveData): Assign using OwnPtr::set()
* plugins/win/PluginStreamWin.h: Use OwnPtr
2007-10-15 Steve Falkenburg <sfalken@apple.com>
Reviewed by Oliver.
Add missing null check.
* platform/network/cf/AuthenticationCF.cpp:
(WebCore::core):
2007-10-15 Mark Rowe <mrowe@apple.com>
Fix the no-SVG build again. Add new transform CSS properties to the switch statements.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
2007-10-15 Darin Adler <darin@apple.com>
Reviewed by Mitz.
- http://bugs.webkit.org/show_bug.cgi?id=15518
Remove the unused attemptFontSubstitution feature and do some
cleanup of glyphDataForCharacter.
* platform/Font.h:
* platform/Font.cpp:
(WebCore::WidthIterator::advance): Eliminated uneeded attemptFontSubstitution
and cluster parameters to the glyphDataForCharacter function.
(WebCore::Font::glyphDataForCharacter): Removed the cluster parameter and
attemptFontSubstitution parameter. Removed the isUpper check before calling
toUpper in the small caps code path. Split up the inner loop into separate
copies for non-small-caps and small caps. Broke out the system fallback
page handling so it's not inside the loop. Changed system fallback so it uses
the character and breaks it up into UTF-16 as needed, instead of using a
passed-in "character cluster".
* platform/TextStyle.h:
(WebCore::TextStyle::TextStyle): Removed attemptFontSubstitution.
(WebCore::TextStyle::applyWordRounding): Ditto.
2007-10-15 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Ollie.
Remove an operator precedence warning on Windows
* editing/markup.cpp:
(WebCore::escapeContentText): Use (a) | (b)
(WebCore::appendEscapedContent): Use (a) | (b)
2007-10-15 Kevin McCullough <kmccullough@apple.com>
Reviewed by Darin.
- <rdar://problem/5238818> window.resizeTo doesn't restrict the resized window to the size of the screen
- Now we take the doc into account when resizing.
- Also I found an issue where we would resize to outside the window, because
the resize would be smaller than the window size but the location of the
window would make the resize go off-screen. Now we move the window back into the screen.
* bindings/js/kjs_window.cpp:
(KJS::adjustWindowRect):
(KJS::WindowFunc::callAsFunction):
2007-10-15 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Anders.
<rdar://5510700> Repro crash loading embedded Windows Media Player
content
Anders noticed that the older Windows Media Player plugin (npdsplay.dll)
will crash if it receives its resource requests out of order, whereas we
were immediately fulfilling untargeted, non-JavaScript requests and
scheduling targeted or JavaScript resource requests. Implement his
suggested fix, which is to schedule PluginRequests for all resource
requests
* plugins/win/PluginViewWin.cpp:
(WebCore::getString):
(WebCore::PluginViewWin::performRequest): If this non-JavaScript request
has no target, create a stream for it
(WebCore::PluginViewWin::load): Schedule PluginRequests for all resource
requests
2007-10-15 Mark Rowe <mrowe@apple.com>
Gtk and Qt build fix. Add new .cpp file to project.
* WebCore.pro:
2007-10-15 John Sullivan <sullivan@apple.com>
* platform/mac/FontDataMac.mm:
D'oh! Added missing #import to fix build
2007-10-15 John Sullivan <sullivan@apple.com>
Reviewed by Geoff
* platform/mac/FontDataMac.mm:
(WebCore::FontData::smallCapsFontData):
replace NS_DURING/NS_HANDLER with WebCore-style BEGIN/END_BLOCK_OBJC_EXCEPTIONS
2007-10-15 David Hyatt <hyatt@apple.com>
The CSS WG has been discussing the concept of rotation. In the latest draft specification, two properties
have been introduced: rotation and rotation-point. I believe these properties should be generalized to
allow for arbitrary transformations (e.g., translation, skew, rotate, scale).
This patch adds support for the back-end parsing of two new CSS properties: transform and transform-origin.
They are directly analogous to the properties specified by the CSS WG, except that they are designed to allow
for arbitrary affine transforms rather than just rotation.
Reviewed by Beth Dakin
* WebCore.xcodeproj/project.pbxproj:
* WebCore.vcproj/WebCore.vcproj:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::TransformParseContext:::m_list):
(WebCore::TransformParseContext::list):
(WebCore::TransformParseContext::failed):
(WebCore::TransformParseContext::addValue):
(WebCore::TransformOperationInfo::TransformOperationInfo):
(WebCore::TransformOperationInfo::type):
(WebCore::TransformOperationInfo::argCount):
(WebCore::TransformOperationInfo::unit):
(WebCore::TransformOperationInfo::unknown):
(WebCore::TransformOperationInfo::hasCorrectArgCount):
(WebCore::CSSParser::parseTransform):
(WebCore::CSSParser::parseTransformOrigin):
* css/CSSParser.h:
* css/CSSPropertyNames.in:
* css/CSSTransformValue.cpp: Added.
(WebCore::CSSTransformValue::CSSTransformValue):
(WebCore::CSSTransformValue::~CSSTransformValue):
(WebCore::CSSTransformValue::addValue):
(WebCore::CSSTransformValue::cssText):
* css/CSSTransformValue.h: Added.
(WebCore::CSSTransformValue::):
2007-10-15 Mark Rowe <mrowe@apple.com>
Reviewed by Oliver.
Fix the no-SVG build.
* DerivedSources.make: Use the correct file as input to generate CSSPropertyNames.h.
* rendering/RenderObject.cpp:
(WebCore::objectIsRelayoutBoundary):
2007-10-15 Darin Adler <darin@apple.com>
Reviewed by Sam.
- fix http://bugs.webkit.org/show_bug.cgi?id=15520
alert(undefined) should say "undefined" in the alert
Test: fast/dom/Window/alert-undefined.html
* page/DOMWindow.idl: Remove ConvertUndefinedOrNullToNullString from alert, confirm, and prompt.
It turns out that the default behavior is what the other browsers do (browsers tested: IE 7,
Firefox 2).
2007-10-15 Adele Peterson <adele@apple.com>
Reviewed by Darin.
Fix for http://bugs.webkit.org/show_bug.cgi?id=15252
<rdar://problem/5498184> REGRESSION: <select multiple> doesn't scroll to top when old options are removed and new ones are added, leaving listbox empty-looking
* rendering/RenderListBox.cpp: (WebCore::RenderListBox::calcHeight): If the scrollbar is disabled, make sure the scroll offset gets reset to 0. In general,
we don't want to unnecessarily adjust the scroll offset, but in this case, there won't be an obvious way for the user to adjust the scroller position once it's disabled.
2007-10-15 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Maciej.
Return a more appropriate error from NPN_RequestRange, which is
currently unimplemented
* plugins/win/npapi.cpp: return NPERR_STREAM_NOT_SEEKABLE
(NPN_RequestRead):
2007-10-15 Jon Honeycutt <jhoneycutt@apple.com>
Reviewed by Maciej.
Add a missing function pointer to the m_browserFuncs structure
* plugins/win/PluginPackageWin.cpp:
(WebCore::PluginPackageWin::load):
2007-10-15 Simon Hausmann <hausmann@kde.org>
Reviewed by Lars.
Fix the compilation of the Font code in the Qt port by adding the necessary stubs to support downloadable fonts through the @font-face rules.
* WebCore.pro:
* loader/CachedFont.cpp:
* platform/qt/FontCacheQt.cpp: Removed.
* platform/qt/FontCustomPlatformData.cpp: Removed.
* platform/qt/FontCustomPlatformData.h: Removed.
* platform/qt/FontDataQt.cpp: Removed.
* platform/qt/FontPlatformData.h: Removed.
* platform/qt/FontQt.cpp:
* platform/qt/GlyphPageTreeNodeQt.cpp: Removed.
2007-10-15 Simon Hausmann <hausmann@kde.org>
Reviewed by Lars.
Adapt to the latest API changes in the SVG API/Code.
* platform/graphics/svg/qt/RenderPathQt.cpp:
(WebCore::RenderPath::strokeContains):
(WebCore::getPathStroke):
* platform/graphics/svg/qt/SVGPaintServerQt.cpp:
(WebCore::SVGPaintServer::setPenProperties):
* platform/graphics/svg/qt/SVGResourceMaskerQt.cpp:
2007-10-14 Nikolas Zimmermann <zimmermann@kde.org>
Reviewed by Eric.
Fix bad abstraction in ImageBuffer class.
While the class itself is platform-aware and thus it's location in platform/graphics
is fine, it contains the "renderSubtreeToImage" method which operates on RenderObject.
As it's SVG specific I decided to move this method into SVGRenderSupport, to avoid
implicit platform/ <-> rendering/ dependencies.
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* ksvg2/svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::drawMaskerContent):
* ksvg2/svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::buildPattern):
* platform/graphics/ImageBuffer.cpp: Removed.
* platform/graphics/ImageBuffer.h:
(WebCore::ImageBuffer::size):
* platform/graphics/svg/SVGImage.cpp:
(WebCore::SVGImage::nativeImageForCurrentFrame):
* rendering/SVGRenderSupport.cpp:
(WebCore::renderSubtreeToImage):
* rendering/SVGRenderSupport.h:
2007-10-14 Peter Kasting <zerodpx@gmail.com>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=15210
Draw the image outline even for broken images.
* rendering/RenderImage.cpp:
(WebCore::RenderImage::paint):
2007-10-14 Kevin Ollivier <kevino@theolliviers.com>
Reviewed by Adam.
Add support for MSVC7, and fix cases where PLATFORM(WIN) should
be PLATFORM(WIN_OS) for other ports building on Windows.
* dom/XMLTokenizer.cpp:
* page/FrameTree.cpp:
* platform/StaticConstructors.h:
* platform/String.cpp:
2007-10-14 Maxime Britto <mbritto@pleyo.com>
Reviewed by Mitz.
Fix an error in the goBackOrForward() function : confusion between forwardListCount and backListCount.
http://bugs.webkit.org/show_bug.cgi?id=15212
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::goBackOrForward):
2007-10-14 Mitz Pettel <mitz@webkit.org>
Reviewed by Darin.
- fix http://bugs.webkit.org/show_bug.cgi?id=15181
text-transform: uppercase not working in input (submit, reset, button) elements
<rdar://problem/5474647>
Test: fast/forms/button-text-transform.html
Text transformations require access to the original text. The button's inner
text was an anonymous RenderText, meaning it did not have a node to retrieve
the original text from. The patch fixes this by changing the inner text into a
RenderTextFragment, which stores its own original text.
* rendering/RenderButton.cpp:
(WebCore::RenderButton::setText):
* rendering/RenderButton.h:
2007-10-14 Eric Seidel <eric@webkit.org>
Reviewed by Maciej.
REGRESSION: Javascript bug in getElementsByName
http://bugs.webkit.org/show_bug.cgi?id=15274
Test: fast/dom/getelementbyname-invalidation.html
* dom/NameNodeList.h: remove empty rootNodeChildrenChanged override
2007-10-14 Mitz Pettel <mitz@webkit.org>
Reviewed by Maciej.
- http://bugs.webkit.org/show_bug.cgi?id=15303
Remove now-redundant code to restore dialog arguments after clear
This patch reverts the kjs_window.* parts of r25576 because following
r25783, window properties, including dialog arguments, are not cleared
when the newly created modal dialog transitions to the document.
* bindings/js/kjs_window.cpp:
(KJS::WindowPrivate::WindowPrivate):
(KJS::createWindow):
(KJS::showModalDialog):
(KJS::Window::clear):
(KJS::WindowFunc::callAsFunction):
(KJS::Window::setReturnValueSlot):
* bindings/js/kjs_window.h:
2007-10-14 Mitz Pettel <mitz@webkit.org>
Reviewed by Dave Hyatt.
- fix http://bugs.webkit.org/show_bug.cgi?id=15309
<rdar://problem/5512020> Crash due to infinite recursion in RenderTable::addChild
Test: fast/table/generated-caption.html
* rendering/RenderTable.cpp:
(WebCore::RenderTable::addChild): Changed to make sure that the child is
not added into generated after content. Also made adding a child before
a table caption work correctly instead of adding the child after the caption.
2007-10-14 Peter Kasting <zerodpx@gmail.com>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=15141
Feed GIF reader data from the point in the stream it expects. Also,
mirror the reader's failure state up to the wrapping decoder.
* platform/image-decoders/gif/GIFImageReader.cpp:
(GIFImageReader::read):
2007-10-14 Peter Kasting <zerodpx@gmail.com>
Reviewed by Maciej.
http://bugs.webkit.org/show_bug.cgi?id=15142
Return correct frame count in GIFImageDecoder::frameBufferAtIndex(),
even if more data has arrived since the last decoding pass.
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::frameBufferAtIndex):
== Rolled over to ChangeLog-2007-10-14 ==