blob: 2aaa728d13fac8cd9e84278e946ff68977f4d30f [file] [log] [blame] [edit]
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>