blob: 4e33514519f74a5f0b7cf4a4b57a8371c71ec423 [file] [log] [blame]
2010-02-10 Mark Rowe <mrowe@apple.com>
MSAA: selected, selectable, extended selectable, and multiple
selectable states are not reported
https://bugs.webkit.org/show_bug.cgi?id=33574
<rdar://problem/7536826>
Follow-up fix to account for the fact that different function names
are used on the branch.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::isMultiSelectable):
* accessibility/AccessibilityRenderObject.h:
2010-02-10 Mark Rowe <mrowe@apple.com>
Merge r54615.
2010-02-10 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt.
Complete the fix for <rdar://problem/7577604> Drag and Drop: background elements are bleeding through
https://bugs.webkit.org/show_bug.cgi?id=34546
* manual-tests/drag-image-table-part-decorations.html:
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::paint): Don’t paint collapsed borders if this object shouldn’t
paint within the current painting root.
2010-02-03 Mark Rowe <mrowe@apple.com>
Merge r54311.
2010-02-03 Dan Bernstein <mitz@apple.com>
Reviewed by Simon Fraser.
<rdar://problem/7577604> Drag and Drop: background elements are bleeding through
https://bugs.webkit.org/show_bug.cgi?id=34546
* manual-tests/drag-image-table-part-decorations.html: Added.
* rendering/RenderFieldset.cpp:
(WebCore::RenderFieldset::paintBoxDecorations): Bail out if this object shouldn’t
paint within the current painting root.
* rendering/RenderTable.cpp:
(WebCore::RenderTable::paintBoxDecorations): Ditto.
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::paintBackgroundsBehindCell): Ditto.
(WebCore::RenderTableCell::paintBoxDecorations): Ditto.
2010-02-03 Mark Rowe <mrowe@apple.com>
Merge r54083.
2010-01-29 Brian Weinstein <bweinstein@apple.com>
Reviewed by Adam Roben.
Drag and Drop: Windows uses "stop" sign as cursor when dragging
https://bugs.webkit.org/show_bug.cgi?id=34305
<rdar://problem/7589672>
Add a FIXME for the code that needs to be changed to support full
custom cursors.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleDrag):
2010-02-03 Mark Rowe <mrowe@apple.com>
Merge r48879.
2009-09-28 Alexey Proskuryakov <ap@apple.com>
Reviewed by Brady Eidson.
<rdar://problem/7259965> REGRESSION: http/tests/xmlhttprequest/cross-origin-authorization.html
is failing/crashing intermittently
https://bugs.webkit.org/show_bug.cgi?id=29322
This was caused by CStringBuffer::encodeBase64() returning a buffer that wasn't zero terminated.
The code had other issues as well, so I removed it altogether:
- it claimed to avoid some buffer copies, but it didn't;
- and I don't think that base64 encoding should be part of CString interface.
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::encodeBasicAuthorization): Encode username and password using Base64.h directly.
(WebCore::ResourceHandle::start): Use encodeBasicAuthorization().
(+[WebCoreSynchronousLoader loadRequest:allowStoredCredentials:returningResponse:error:]): Ditto.
(-[WebCoreSynchronousLoader connection:willSendRequest:redirectResponse:]): Extended logging
to synchronous case.
(-[WebCoreSynchronousLoader connectionShouldUseCredentialStorage:]): Ditto.
(-[WebCoreSynchronousLoader connection:didReceiveAuthenticationChallenge:]): Ditto.
(-[WebCoreSynchronousLoader connection:didReceiveResponse:]): Ditto.
(-[WebCoreSynchronousLoader connection:didReceiveData:]): Ditto.
(-[WebCoreSynchronousLoader connectionDidFinishLoading:]): Ditto.
(-[WebCoreSynchronousLoader connection:didFailWithError:]): Ditto.
* platform/network/cf/ResourceHandleCFNet.cpp: Matched Mac changes.
* platform/text/CString.cpp:
* platform/text/CString.h:
(WebCore::CStringBuffer::create):
(WebCore::CStringBuffer::CStringBuffer):
Removed code that was added for Base64 in r48363.
2010-02-03 Mark Rowe <mrowe@apple.com>
Merge r48374.
2009-09-14 Brady Eidson <beidson@apple.com>
Not reviewed, maybe should've been:
Cleaning up more Windows-specific fallout from the fix for:
<rdar://problem/7174050> and https://bugs.webkit.org/show_bug.cgi?id=29160
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::WebCoreSynchronousLoader::load): Don't allow empty CFStrings as the stored credentials,
as related checks all look at nullity when they really mean to be looking for emptiness.
2010-02-03 Mark Rowe <mrowe@apple.com>
Merge r48364.
2009-09-14 Brady Eidson <beidson@apple.com>
Windows build fix.
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
(WebCore::ResourceHandle::receivedCredential):
(WebCore::WebCoreSynchronousLoader::didReceiveChallenge):
(WebCore::WebCoreSynchronousLoader::load):
2010-02-03 Mark Rowe <mrowe@apple.com>
Merge r48363.
2009-09-14 Brady Eidson <beidson@apple.com>
Reviewed by Alexey Proskuryakov.
Safari 4 cannot be used to update firmware on Linksys routers.
<rdar://problem/7174050> and https://bugs.webkit.org/show_bug.cgi?id=29160
In http://trac.webkit.org/changeset/42483, we disabled CFNetwork's session credential storage and
implemented our own in WebCore.
One feature we lost is that CFNetwork would automatically send previously authenticated credentials
with new connections when the paths match, as allowed by RFC 2617 for HTTP Basic and Digest Authentication.
Even though it's optional for User Agents to do this, (some?) Linksys routers rely on this behavior for
HTTP Basic Authentication. So now WebCore's CredentialStorage will track URL paths for Basic credentials.
We're not making this enhancement for Digest at this time, since we don't know of anything that broke
due to the change in Digest behavior.
Test: http/tests/loading/basic-credentials-sent-automatically.html
http/tests/loading/basic-auth-resend-wrong-credentials.html
* WebCore.base.exp:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* platform/network/Credential.cpp:
(WebCore::Credential::isEmpty):
* platform/network/Credential.h:
Add a slightly more full featured CredentialStore that will track URL paths a credential belongs to:
* platform/network/CredentialStorage.cpp: Added.
(WebCore::protectionSpaceToCredentialMap):
(WebCore::originToDefaultCredentialMap):
(WebCore::originStringFromURL):
(WebCore::CredentialStorage::set):
(WebCore::CredentialStorage::get):
(WebCore::CredentialStorage::getDefaultAuthenticationCredential):
* platform/network/CredentialStorage.h: Added.
Allow ProtectionSpace to be a hash key:
* platform/network/ProtectionSpace.cpp:
(WebCore::ProtectionSpace::ProtectionSpace):
* platform/network/ProtectionSpace.h:
(WebCore::ProtectionSpace::ProtectionSpace):
(WebCore::ProtectionSpace::isHashTableDeletedValue):
* platform/network/ProtectionSpaceHash.h: Added.
(WebCore::ProtectionSpaceHash::hash):
(WebCore::ProtectionSpaceHash::equal):
Allow ResourceHandles to remember the initial credential they used:
* platform/network/ResourceHandleInternal.h:
Allow mutable ResourceRequests to update their platform object if HTTP header fields change:
* platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::addHTTPHeaderField):
Remove WebCoreCredentialStorage:
* platform/network/cf/AuthenticationCF.cpp:
* platform/network/cf/AuthenticationCF.h:
* platform/network/mac/AuthenticationMac.h:
* platform/network/mac/AuthenticationMac.mm:
Change ResourceHandleCFNet to try to use stored credentials on new connections, if appropriate:
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Only try the ProtectionSpace key'ed
Credential if it does not match the initially used Credential.
(WebCore::ResourceHandle::receivedCredential):
(WebCore::WebCoreSynchronousLoader::didReceiveChallenge): Only try the ProtectionSpace key'ed
Credential if it does not match the initially used Credential.
(WebCore::WebCoreSynchronousLoader::load):
Change ResourceHandleMac to try to use stored credentials on new connections, if appropriate:
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Only try the ProtectionSpace key'ed
Credential if it does not match the initially used Credential.
(WebCore::ResourceHandle::receivedCredential):
(-[WebCoreSynchronousLoader connection:didReceiveAuthenticationChallenge:]): Only try the
ProtectionSpace key'ed Credential if it does not match the initially used Credential.
(+[WebCoreSynchronousLoader loadRequest:allowStoredCredentials:returningResponse:error:]):
Add base64-ability to CString:
* platform/text/CString.cpp:
(WebCore::CStringBuffer::base64Encode):
(WebCore::CString::base64Encode):
* platform/text/CString.h:
(WebCore::CStringBuffer::create):
(WebCore::CStringBuffer::CStringBuffer):
2010-02-02 Mark Rowe <mrowe@apple.com>
Merge r54242.
2010-02-02 Alexey Proskuryakov <ap@apple.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=34076
<rdar://problem/7594601> Crash in mangleme in WebCore::Element::getAttribute
Test: fast/forms/misplaced-img-form-registration.html
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::registerImgElement): Assert that the same image isn't added
to vector again.
(WebCore::HTMLFormElement::removeImgElement): Similarly, assert that we're removing something
that's actually registered.
* html/HTMLImageElement.cpp: (WebCore::HTMLImageElement::~HTMLImageElement): If parser fails
to insert the image element, then there will be no removed from tree notification either,
need to unregister right away.
2010-02-01 Mark Rowe <mrowe@apple.com>
Merge r53114.
2010-01-11 Darin Adler <darin@apple.com>
Reviewed by Dan Bernstein.
Fix handling of unusual kana sequences in search
https://bugs.webkit.org/show_bug.cgi?id=33506
* editing/TextIterator.cpp:
(WebCore::composedVoicedSoundMark): Removed unnnecessary case for a
non-kana-letter character. This function only works for kana letters.
(WebCore::SearchBuffer::isBadMatch): Fixed voiced sound mark code to
properly handle cases where one character has a shorter list of
combining voiced sound marks than the other.
2010-02-01 Mark Rowe <mrowe@apple.com>
Merge r53078.
2010-01-10 Darin Adler <darin@apple.com>
Reviewed by Alexey Proskuryakov.
REGRESSION: Japanese text search ignores small vs. large and voicing mark differences
https://bugs.webkit.org/show_bug.cgi?id=30437
rdar://problem/7214058
Test: fast/text/find-kana.html
* editing/TextIterator.cpp:
(WebCore::isKanaLetter): Added.
(WebCore::isSmallKanaLetter): Added.
(WebCore::composedVoicedSoundMark): Added.
(WebCore::isCombiningVoicedSoundMark): Added.
(WebCore::containsKanaLetters): Added.
(WebCore::normalizeCharacters): Added.
(WebCore::SearchBuffer::SearchBuffer): Initialize the data members
m_targetRequiresKanaWorkaround and m_normalizedTarget.
(WebCore::SearchBuffer::isBadMatch): Added. Checks for matches that
ICU's default collation considers correct, but we consider incorrect.
(WebCore::SearchBuffer::search): Added code to call isBadMatch and
move to the next match with usearch_next if the result is true.
2010-02-01 Mark Rowe <mrowe@apple.com>
Merge r51704.
2009-12-04 Enrica Casucci <enrica@apple.com>
Reviewed by John Sullivan.
Mail.app crashes when indenting table pasted from Numbers.app.
<rdar://problem/7209507>
https://bugs.webkit.org/show_bug.cgi?id=32166
Test: LayoutTests/editing/execCommand/indent-partial-table.html
* editing/IndentOutdentCommand.cpp:
(WebCore::IndentOutdentCommand::indentRegion): Added test to verify that the end of the paragraph
after the selection has not been moved.
2010-02-01 Mark Rowe <mrowe@apple.com>
Merge r51962.
2009-12-10 Oliver Hunt <oliver@apple.com>
Reviewed by Alexey Proskuryakov.
Crash in XMLTokenizer::popCurrentNode if window.close() is called during parsing
https://bugs.webkit.org/show_bug.cgi?id=31576
Add a RefCounted wrapper object around xmlParserCtxtPtr so we can
maintain it's lifetime more effectively.
Test: fast/parser/xhtml-close-while-parsing.xhtml
* dom/XMLTokenizer.cpp:
(WebCore::XMLTokenizer::popCurrentNode):
* dom/XMLTokenizer.h:
(WebCore::XMLParserContext::context):
(WebCore::XMLParserContext::XMLParserContext):
(WebCore::XMLTokenizer::context):
* dom/XMLTokenizerLibxml2.cpp:
(WebCore::XMLParserContext::createStringParser):
(WebCore::XMLParserContext::createMemoryParser):
(WebCore::XMLParserContext::~XMLParserContext):
(WebCore::XMLTokenizer::~XMLTokenizer):
(WebCore::XMLTokenizer::doWrite):
(WebCore::XMLTokenizer::initializeParserContext):
(WebCore::XMLTokenizer::doEnd):
(WebCore::XMLTokenizer::lineNumber):
(WebCore::XMLTokenizer::columnNumber):
(WebCore::XMLTokenizer::stopParsing):
(WebCore::parseXMLDocumentFragment):
(WebCore::parseAttributes):
2010-02-01 Mark Rowe <mrowe@apple.com>
Merge r50110.
2009-10-26 Alexey Proskuryakov <ap@apple.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=30049
<rdar://problem/7286002> Manipulating DOM from a script while parsing XHTML can cause a crash
Tests: fast/parser/remove-current-node-parent-x-2.xhtml
fast/parser/remove-current-node-parent-x.xhtml
* dom/XMLTokenizer.h: Store the whole stack of parent nodes - element.parentNode() is
unreliable after DOM manipulation.
* dom/XMLTokenizer.cpp:
(WebCore::XMLTokenizer::pushCurrentNode): Push the new node onto stack.
(WebCore::XMLTokenizer::popCurrentNode): This is now called instead of setCurrentNode when
exiting a node.
(WebCore::XMLTokenizer::clearCurrentNodeStack): We're aborting; or just done parsing. This
replaces setCurrentNode(0).
(WebCore::XMLTokenizer::enterText): Call pushCurrentNode().
(WebCore::XMLTokenizer::exitText): Call popCurrentNode(), removing a long-standing FIXME
(not sure if it was ever practical though - how can a parent become null while adding text?)
* dom/XMLTokenizerLibxml2.cpp:
(WebCore::XMLTokenizer::~XMLTokenizer): Call clearCurrentNodeStack().
(WebCore::XMLTokenizer::startElementNs): Call pushCurrentNode().
(WebCore::XMLTokenizer::endElementNs): Call popCurrentNode() to safely get to a parent. Also
added a check fo script element still being in document - Firefox parses those that aren't,
but doesn't execute them.
* dom/XMLTokenizerQt.cpp:
(WebCore::XMLTokenizer::~XMLTokenizer):
(WebCore::XMLTokenizer::parseStartElement):
(WebCore::XMLTokenizer::parseEndElement):
Match libxml2 version changes.
2010-02-01 Mark Rowe <mrowe@apple.com>
Merge r50017.
2009-10-23 Alexey Proskuryakov <ap@apple.com>
Reviewed by Sam Weinig.
https://bugs.webkit.org/show_bug.cgi?id=30734
Remove XMLTokenizer::m_currentNodeIsReferenced
No change in behavior, no tests.
* dom/XMLTokenizer.cpp:
(WebCore::XMLTokenizer::setCurrentNode):
* dom/XMLTokenizer.h:
Don't store a boolean for the current node being the document - we can always check for that.
* dom/XMLTokenizerLibxml2.cpp:
(WebCore::XMLTokenizer::XMLTokenizer):
* dom/XMLTokenizerQt.cpp:
(WebCore::XMLTokenizer::XMLTokenizer):
A fragment passed to XMLTokenizer is never null - in fact, the first thing we do is dereference
it unconditionally, and then begin checking it for null, as if it could help.
2010-02-01 Mark Rowe <mrowe@apple.com>
Merge r52784.
2010-01-04 Chris Evans <cevans@chromium.org>
Reviewed by Adam Barth.
Adopt a more conservative approach for loading CSS cross-origin. When
loading CSS cross-origin, it must be start with valid CSS if the MIME
type is broken.
https://bugs.webkit.org/show_bug.cgi?id=29820
Test: http/tests/security/cross-origin-css.html
Test: http/tests/security/cross-origin-css-in-xml.xml
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::setCSSStyleSheet): Enforce stricter load
requirements for cross-origin loads.
* css/CSSImportRule.cpp:
(WebCore::CSSImportRule::setCSSStyleSheet): Enforce stricter load
requirements for cross-origin loads.
* css/CSSStyleSheet.h:
* css/CSSStyleSheet.cpp:
* css/CSSParser.cpp:
* css/CSSGrammar.y:
* css/CSSParser.h:
Add ability to tell whether the CSS parse started with a syntactically
valid CSS rule.
* loader/CachedCSSStyleSheet.h:
* loader/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::sheetText): Add ability to return
whether the MIME type was acceptable for CSS.
(WebCore::CachedCSSStyleSheet::canUseSheet): If requested, return
whether the MIME type was valid or not.
* dom/ProcessingInstruction.cpp
(WebCore::ProcessingInstruction::setCSSStyleSheet): Make use of strict
mode explicit and add comment.
2010-02-01 Mark Rowe <mrowe@apple.com>
Merge r51645.
2009-12-03 Enrica Casucci <enrica@apple.com>
Reviewed by Adele Peterson.
Multiple Undos removes the last posted comment and/or the ones before it.
<rdar://problem/6557066>
https://bugs.webkit.org/show_bug.cgi?id=32079
The fix consists in preventing Undos and Redos to be applied to elements that
are no longer editable. We do not attempt to remove the commands from the queue.
It is a relatively simple fix that comes with a little extra overhead for the apply
and unapply methods where we are now performing the editability check.
Test: editing/undo/undo-indent-noneditable.html
* editing/AppendNodeCommand.cpp:
(WebCore::AppendNodeCommand::doApply):
(WebCore::AppendNodeCommand::doUnapply):
* editing/DeleteFromTextNodeCommand.cpp:
(WebCore::DeleteFromTextNodeCommand::doApply):
(WebCore::DeleteFromTextNodeCommand::doUnapply):
* editing/InsertIntoTextNodeCommand.cpp:
(WebCore::InsertIntoTextNodeCommand::doApply):
(WebCore::InsertIntoTextNodeCommand::doUnapply):
* editing/InsertNodeBeforeCommand.cpp:
(WebCore::InsertNodeBeforeCommand::doApply):
(WebCore::InsertNodeBeforeCommand::doUnapply):
* editing/JoinTextNodesCommand.cpp:
(WebCore::JoinTextNodesCommand::doApply):
(WebCore::JoinTextNodesCommand::doUnapply):
* editing/MergeIdenticalElementsCommand.cpp:
(WebCore::MergeIdenticalElementsCommand::doApply):
(WebCore::MergeIdenticalElementsCommand::doUnapply):
* editing/RemoveNodeCommand.cpp:
(WebCore::RemoveNodeCommand::doApply):
(WebCore::RemoveNodeCommand::doUnapply):
* editing/SplitElementCommand.cpp:
(WebCore::SplitElementCommand::executeApply):
(WebCore::SplitElementCommand::doUnapply):
* editing/SplitTextNodeCommand.cpp:
(WebCore::SplitTextNodeCommand::doApply):
(WebCore::SplitTextNodeCommand::doUnapply):
* editing/WrapContentsInDummySpanCommand.cpp:
(WebCore::WrapContentsInDummySpanCommand::doUnapply):
(WebCore::WrapContentsInDummySpanCommand::doReapply):
2010-02-01 Mark Rowe <mrowe@apple.com>
Merge r50310.
2009-10-29 Enrica Casucci <enrica@apple.com>
Reviewed by Darin Adler.
REGRESSION(3.2.3 - 4.0.2): Message composing: when I undo a color change to text in Mail, undo/redo behaves strangely
<rdar://problem/7067033>
https://bugs.webkit.org/show_bug.cgi?id=30892
This problem shows in any scenario where it is necessary to split a text
node to apply a style. SplitElementCommand and WrapContentsInDummySpanCommand both
have member variables initialized in the constructor to keep reference to elements
they need to operate upon. These reference are not updated when reapplying the command.
For this reason it is necessary to guarantee that unapply doesn not delete the references
and that these commands implement doReapply to correctly reuse the existing
elements.
Test: editing/undo/redo-style.html
* editing/SplitElementCommand.cpp:
(WebCore::SplitElementCommand::executeApply): Added.
(WebCore::SplitElementCommand::doApply): Modified to call executeApply.
(WebCore::SplitElementCommand::doUnapply): Doesn't release m_element1.
(WebCore::SplitElementCommand::doReapply): Added.
* editing/SplitElementCommand.h: Added doReapply and executeApply.
* editing/WrapContentsInDummySpanCommand.cpp:
(WebCore::WrapContentsInDummySpanCommand::executeApply): Added.
(WebCore::WrapContentsInDummySpanCommand::doApply): Modified to call executeApply.
(WebCore::WrapContentsInDummySpanCommand::doUnapply): Doesn't release m_dummySpan.
(WebCore::WrapContentsInDummySpanCommand::doReapply): Added.
* editing/WrapContentsInDummySpanCommand.h: Added doReapply and executeApply.
2010-02-01 Mark Rowe <mrowe@apple.com>
Merge r47726.
2009-08-24 Dan Bernstein <mitz@apple.com>
Reviewed by Simon Fraser.
<rdar://problem/5743105> Long freezing during loading and selecting text
of a large table
https://bugs.webkit.org/show_bug.cgi?id=14918
* rendering/RenderView.cpp:
(WebCore::RenderView::setSelection): Added calls to
beginDeferredRepaints() and endDeferredRepaints() around the
invalidation of the selection, in order to better coalesce multiple
invalid rectangles.
2010-02-01 Mark Rowe <mrowe@apple.com>
Merge r51659.
2009-12-03 Enrica Casucci <enrica@apple.com>
Reviewed by John Sullivan.
SpinTracer: 349 spins in Mail at WebCore::Editor::advanceToNextMisspelling(bool)
<rdar://problem/7198592>
https://bugs.webkit.org/show_bug.cgi?id=32129
Fixed the way the next paragraph is calculated.
I've added a repro case in Safari and attached it to the Bugzilla bug.
* editing/Editor.cpp:
(WebCore::findFirstMisspellingOrBadGrammarInRange): Changed the way we move to the
next paragraph in the loop.
2010-02-01 Mark Rowe <mrowe@apple.com>
Merge r53813.
2010-01-25 Alexey Proskuryakov <ap@apple.com>
Rubber-stamped by Geoffrey Garen.
https://bugs.webkit.org/show_bug.cgi?id=34076
An image remains accessible via form.property syntax after being removed from document.
Fix crashing regression tests (tables/mozilla/bugs/bug4527.html et al.)
* html/HTMLImageElement.cpp: (WebCore::HTMLImageElement::insertedIntoTree): Remove incorrect
assertions added in the previous patch - it's mot true that m_for is always a parent; table
parsing can reparent the image element, but m_form still needs to be set.
2010-02-01 Mark Rowe <mrowe@apple.com>
Merge r53812.
2010-01-25 Alexey Proskuryakov <ap@apple.com>
Reviewed by Geoffrey Garen.
https://bugs.webkit.org/show_bug.cgi?id=34076
An image remains accessible via form.property syntax after being removed from document.
Tests: fast/forms/removed-image-as-property.html
fast/forms/reparented-image-as-property.html
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::~HTMLImageElement): This is called during GC - not a good time
to make observable changes to DOM.
(WebCore::HTMLImageElement::insertedIntoTree): This is the right place to do any work that
depends on connectedness to some ancestor. We still allow for m_form to be set via constructor,
which happens during parsing.
(WebCore::HTMLImageElement::removedFromTree): Ditto.
* html/HTMLImageElement.h: Added removedFromTree/insertedIntoTree, moved removedFromDocument
and insertedIntoDocument to private section, as they shouldn't be called directly.
2010-02-01 Mark Rowe <mrowe@apple.com>
Merge r50466.
2009-11-02 Darin Adler <darin@apple.com>
Reviewed by Dan Bernstein.
Crash due to double-destroy related to CSS run-in property
https://bugs.webkit.org/show_bug.cgi?id=31034
rdar://problem/7328458
Test: fast/css/run-in-crash.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::destroy): Reorder destruction so the
continuation is destroyed after anonymous children. See comment
in the code for more details of why this is right.
* rendering/RenderInline.cpp:
(WebCore::RenderInline::destroy): Ditto.
2010-02-01 Mark Rowe <mrowe@apple.com>
Merge r50470.
2009-11-03 Dan Bernstein <mitz@apple.com>
Reviewed by Anders Carlsson and Beth Dakin.
https://bugs.webkit.org/show_bug.cgi?id=31070
Fix <rdar://problem/7194735> Crashes at RenderText::RenderText()
Fix <rdar://problem/6937089> Crashes at RenderWidget::destroy()
Tests: plugins/attach-during-destroy.html
plugins/destroy-reentry.html
These crashes were caused by plug-in code running during detach(),
causing re-entry into RenderWidget::destroy() in one case and a call
into attach() in the other. The fix is to prevent plug-in code from
being called at certain unsafe times (during attach(), detach(), and
recalcStyle()) by deferring changes to the widget hierarchy.
* dom/Document.cpp:
(WebCore::Document::recalcStyle): Suspend widget hierarchy updates
during style recalculation.
* dom/Element.cpp:
(WebCore::Element::attach): Suspend widget hierarchy updates during
attach().
(WebCore::Element::detach): Suspend widget hierarchy updates during
detach().
* rendering/RenderWidget.cpp:
(WebCore::widgetNewParentMap): Returns a static map of pending changes
to the widget hierarchy.
(WebCore::RenderWidget::suspendWidgetHierarchyUpdates): Increments the
suspend count.
(WebCore::RenderWidget::resumeWidgetHierarchyUpdates): Decrements the
suspend count. If the count is going to be zero, updates the widget
hierarchy by executing the pending changes stored in the map.
(WebCore::moveWidgetToParentSoon): Updates the widget hierarchy
immediately or makes or updates an entry in the map, depending on
whether updates are suspended.
(WebCore::RenderWidget::destroy): Removed earlier bandaid fix for
<rdar://problem/6937089>.
(WebCore::RenderWidget::setWidgetGeometry): Assert that widget updates
are not suspended, because this function updates the widget’s
bounds, which can result in arbitrary native and JavaScript code
execution. I think this assertion is true thanks to some deferred-
update mechanisms that have already been deployed in other places
in the code.
(WebCore::RenderWidget::setWidget): Call moveWidgetToParentSoon instead
of changing the widget hierarchy directly.
* rendering/RenderWidget.h: Declared suspendWidgetHierarchyUpdates()
and resumeWidgetHierarchyUpdates().
2010-02-01 Mark Rowe <mrowe@apple.com>
Merge r50435.
2009-11-02 Dan Bernstein <mitz@apple.com>
Reviewed by Anders Carlsson.
Minor RenderWidget clean-up in preparation for deferring widget tree
mutation when it is not safe.
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::RenderWidget): Initialize m_refCount to 1
instead of calling ref().
(WebCore::RenderWidget::destroy): Call setWidget(0) instead of
repeating what it does.
(WebCore::RenderWidget::setWidgetGeometry): Now returns a boolean
indicating whether the bounds have changed.
(WebCore::RenderWidget::setWidget): Replaced all-encompassing if
statement with an early return.
(WebCore::RenderWidget::updateWidgetPosition): Call setWidgetGeometry().
* rendering/RenderWidget.h:
2010-02-01 Mark Rowe <mrowe@apple.com>
Merge r50083.
2009-10-26 Rahul Kuchhal <kuchhal@chromium.org>
Reviewed by Eric Seidel.
Prevent crash when optgroup element is empty by adding a NULL check.
https://bugs.webkit.org/show_bug.cgi?id=30365
Test: fast/forms/select-empty-optgroup.html
* dom/SelectElement.cpp:
(WebCore::SelectElement::appendFormData):
2010-01-27 Mark Rowe <mrowe@apple.com>
Merge r53567.
2010-01-20 Jon Honeycutt <jhoneycutt@apple.com>
MSAA: accSelect() is not implemented
https://bugs.webkit.org/show_bug.cgi?id=33918
<rdar://problem/7436861>
Reviewed by Darin Adler.
Test: platform/win/accessibility/selection-and-focus.html
* accessibility/AccessibilityMenuListOption.cpp:
(WebCore::AccessibilityMenuListOption::setSelected):
Return early if the object is not selectable.
2010-01-27 Mark Rowe <mrowe@apple.com>
Merge r53512.
2010-01-17 Jon Honeycutt <jhoneycutt@apple.com>
MSAA: The child <option> elements of a non-multiple <select> are not
exposed
https://bugs.webkit.org/show_bug.cgi?id=33773
<rdar://problem/7550556>
Reviewed by Alice Liu.
This exposes the child <option> elements in a format similar to
Firefox's: the <select> element has one child, a hidden list object,
and this list has as its children the <option> elements.
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
Add new files to project.
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::getOrCreate):
If the element is a RenderMenuList, create an AccessibilityMenuList.
(WebCore::AXObjectCache::getOrCreate):
Add new types to create by role value.
* accessibility/AccessibilityMenuList.cpp: Added.
(WebCore::AccessibilityMenuList::AccessibilityMenuList):
Call the base class constructor. Assert that the RenderObject passed
is a RenderMenuList.
(WebCore::AccessibilityMenuList::press):
Show or hide the popup menu.
(WebCore::AccessibilityMenuList::addChildren):
Create an AccessibilityMenuListPopup. If the platform ignores its
accessibility, remove it from the object cache and return early.
Otherwise, set its parent object to this object, add it to our list of
children, and tell it to add its children.
(WebCore::AccessibilityMenuList::childrenChanged):
Tell our child hidden list that its children changed.
(WebCore::AccessibilityMenuList::isCollapsed):
Return whether the popup menu is visible.
* accessibility/AccessibilityMenuList.h: Added.
(WebCore::AccessibilityMenuList::create):
Adopt and return a new RenderMenuList.
(WebCore::AccessibilityMenuList::isMenuList):
(WebCore::AccessibilityMenuList::roleValue):
(WebCore::AccessibilityMenuList::accessibilityIsIgnored):
(WebCore::AccessibilityMenuList::canSetFocusAttribute):
* accessibility/AccessibilityMenuListOption.cpp: Added.
(WebCore::AccessibilityMenuListOption::AccessibilityMenuListOption):
Initialize the pointer to our parent popup menu.
(WebCore::AccessibilityMenuListOption::setElement):
Assert that the element is an <option> element.
(WebCore::AccessibilityMenuListOption::actionElement):
Return our element.
(WebCore::AccessibilityMenuListOption::parentObject):
Return our parent popup menu.
(WebCore::AccessibilityMenuListOption::isEnabled):
Return true if the element itself is enabled.
(WebCore::AccessibilityMenuListOption::isVisible):
Return true if the popup is visible, or return true if the popup is
collapsed but the element is selected.
(WebCore::AccessibilityMenuListOption::isOffScreen):
Return true if the object is invisible.
(WebCore::AccessibilityMenuListOption::isSelected):
(WebCore::AccessibilityMenuListOption::setSelected):
(WebCore::AccessibilityMenuListOption::nameForMSAA):
Return the <option> element's text.
(WebCore::AccessibilityMenuListOption::canSetSelectedAttribute):
Return true if enabled.
(WebCore::AccessibilityMenuListOption::elementRect):
Return the AccessibilityMenuList's rect.
* accessibility/AccessibilityMenuListOption.h: Added.
(WebCore::AccessibilityMenuListOption::create):
Adopt and return a new AccessibilityMenuListOption.
(WebCore::AccessibilityMenuListOption::setParent):
(WebCore::AccessibilityMenuListOption::isMenuListOption):
(WebCore::AccessibilityMenuListOption::roleValue):
(WebCore::AccessibilityMenuListOption::canHaveChildren):
(WebCore::AccessibilityMenuListOption::size):
* accessibility/AccessibilityMenuListPopup.cpp: Added.
(WebCore::AccessibilityMenuListPopup::AccessibilityMenuListPopup):
Initialize the pointer to our parent list.
(WebCore::AccessibilityMenuListPopup::isVisible):
Return false; we're never considered visible.
(WebCore::AccessibilityMenuListPopup::isOffScreen):
Return true if the popup is collapsed.
(WebCore::AccessibilityMenuListPopup::parentObject):
Return our parent AccessibilityMenuList.
(WebCore::AccessibilityMenuListPopup::isEnabled):
Return true if our parent is enabled.
(WebCore::AccessibilityMenuListPopup::menuListOptionAccessibilityObject):
If the element is an <option> element, create a list item for it, and
set the object's element to this element.
(WebCore::AccessibilityMenuListPopup::press):
Call our parent's press() function to show or hide the popup menu.
(WebCore::AccessibilityMenuListPopup::addChildren):
Walk the select element's children, and create list items for them. Add
them to our list of children.
(WebCore::AccessibilityMenuListPopup::childrenChanged):
If any of our children have been detached from the document, remove
them from the AXObjectCache and from our child list.
(WebCore::AccessibilityMenuListPopup::setMenuList):
* accessibility/AccessibilityMenuListPopup.h: Added.
(WebCore::AccessibilityMenuListPopup::create):
Adopt and return an AccessibilityMenuListPopup.
(WebCore::AccessibilityMenuListPopup::isMenuListPopup):
(WebCore::AccessibilityMenuListPopup::elementRect):
(WebCore::AccessibilityMenuListPopup::size):
(WebCore::AccessibilityMenuListPopup::roleValue):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::actionVerb):
Add the menuListAction and menuListPopupAction verbs.
* accessibility/AccessibilityObject.h:
(WebCore::):
Add new roles.
(WebCore::AccessibilityObject::isMenuList):
Stubbed.
(WebCore::AccessibilityObject::isMenuListHiddenList):
Stubbed.
(WebCore::AccessibilityObject::isMenuListOption):
Stubbed.
(WebCore::AccessibilityObject::isVisible):
Stubbed.
* accessibility/chromium/AccessibilityObjectChromium.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
Ignore the new object type.
* accessibility/gtk/AccessibilityObjectAtk.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
Ditto.
* accessibility/mac/AccessibilityObjectMac.mm:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
Ditto.
* accessibility/qt/AccessibilityObjectQt.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
Ditto.
* accessibility/win/AccessibilityObjectWin.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
Allow the new object types.
* accessibility/wx/AccessibilityObjectWx.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
Ignore the new object type.
* accessibility/win/AccessibilityObjectWin.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
If the object is an AccessibilityMenuListHiddenList or
AccessibilityMenuListOption, include it.
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::disabled):
Call ownElementDisabled().
* html/HTMLOptionElement.h:
(WebCore::HTMLOptionElement::ownElementDisabled):
Return the base class implementation of disabled, which returns
whether this <option> itself is disabled.
* platform/LocalizedStrings.h:
Declare new localized string functions.
* platform/gtk/LocalizedStringsGtk.cpp:
(WebCore::AXMenuListPopupActionVerb):
Stubbed.
(WebCore::AXMenuListActionVerb):
Stubbed.
* platform/haiku/LocalizedStringsHaiku.cpp:
(WebCore::AXMenuListPopupActionVerb):
Stubbed.
(WebCore::AXMenuListActionVerb):
Stubbed.
* platform/mac/LocalizedStringsMac.mm:
(WebCore::AXMenuListPopupActionVerb):
Call the view factory's method.
(WebCore::AXMenuListActionVerb):
Ditto.
* platform/qt/Localizations.cpp:
(WebCore::AXMenuListPopupActionVerb):
Stubbed.
(WebCore::AXMenuListActionVerb):
Stubbed.
* platform/wx/LocalizedStringsWx.cpp:
(WebCore::AXMenuListPopupActionVerb):
Stubbed.
(WebCore::AXMenuListActionVerb):
Stubbed.
2010-01-27 Mark Rowe <mrowe@apple.com>
Merge r53220.
2010-01-12 Jon Honeycutt <jhoneycutt@apple.com>
MSAA: selected, selectable, extended selectable, and multiple
selectable states are not reported
https://bugs.webkit.org/show_bug.cgi?id=33574
<rdar://problem/7536826>
Reviewed by Darin Adler.
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isMultiSelectable):
Use the correct function name - the function name overriden by
and used in AccessiblityRenderObject.
* accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
(setAtkStateSetFromCoreObject):
Update for function rename.
(webkit_accessible_selection_select_all_selection):
Ditto.
2010-01-27 Mark Rowe <mrowe@apple.com>
Merge r52351.
2009-12-17 Jon Honeycutt <jhoneycutt@apple.com>
MSAA: Accessibility role of list items is wrong
https://bugs.webkit.org/show_bug.cgi?id=32688
Reviewed by Adam Roben.
Test: platform/win/accessibility/list-item-role.html
* accessibility/AccessibilityObject.h:
(WebCore::):
Add a ListItemRole to the enum.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::msaaRoleForRenderer):
Return the role for the RenderObject, or UnknownRole if unknown.
(WebCore::AccessibilityRenderObject::roleValueForMSAA):
Call msaaRoleForRenderer() to get the role. If it is UnknownRole, fall
back to m_role.
2010-01-27 Mark Rowe <mrowe@apple.com>
Merge r52773.
2010-01-04 Jon Honeycutt <jhoneycutt@apple.com>
MSAA: <select> elements should broadcast value change events
https://bugs.webkit.org/show_bug.cgi?id=33088
<rdar://problem/7332364>
Reviewed by Darin Adler.
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::postNotification):
If the post type is async, follow the old code path; otherwise, call
postPlatformNotification().
* accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::):
Added a new accessibility notification, AXMenuListValueChanged. Added
a new parameter to postNotification() to specify whether the post should
be synchronous or asynchronous.
* accessibility/win/AXObjectCacheWin.cpp:
(WebCore::AXObjectCache::postPlatformNotification):
If the WebCore notification is AXMenuListValueChanged, broadcast an
EVENT_OBJECT_VALUECHANGE event.
* dom/SelectElement.cpp:
(WebCore::SelectElement::setSelectedIndex):
When the selected index of a RenderMenuList is changed, call
RenderMenuList::didSetSelectedIndex().
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::RenderMenuList):
Initialize new member
(WebCore::RenderMenuList::didSetSelectedIndex):
If the selected index has changed, post AXMenuListValueChanged to the
object synchronously.
* rendering/RenderMenuList.h:
Declare didSetSelectedIndex(), and add a member to hold the last
selected index.
2010-01-27 Mark Rowe <mrowe@apple.com>
Merge r52352.
2009-12-18 Jon Honeycutt <jhoneycutt@apple.com>
REGRESSION(r52233): MSAA: Accessibility role of lists is wrong
https://bugs.webkit.org/show_bug.cgi?id=32736
Reviewed by Adam Roben.
Test: platform/win/accessibility/list-role.html
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::roleValueForMSAA):
Return roleValue(), rather than m_role, as subclasses may override it.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::roleValueForMSAA):
Fallback to roleValue(), rather than m_role, as it may be overriden.
2010-01-27 Mark Rowe <mrowe@apple.com>
Merge r52233.
2009-12-16 Jon Honeycutt <jhoneycutt@apple.com>
MSAA: Accessibility role of text nodes is wrong
https://bugs.webkit.org/show_bug.cgi?id=32631
<rdar://problem/7369084>
Reviewed by Alice Liu.
Test: platform/win/accessibility/text-role.html
* accessibility/AccessibilityObject.h:
(WebCore::):
Add a new role to the enum.
(WebCore::AccessibilityObject::roleValueForMSAA):
Declare a function to return the accessibility role for MSAA; the base
implementation returns the old role value.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
Initialize m_roleForMSAA.
(WebCore::AccessibilityRenderObject::roleValueForMSAA):
If m_roleForMSAA has been set, return it. If the renderer is a
RenderText, set the role to EditableTextRole to match IE and Firefox.
Otherwise, set the role for MSAA to the old role value.
* accessibility/AccessibilityRenderObject.h:
Add a member to hold the role for MSAA, and declare an override of
roleValueForMSAA().
2010-01-27 Mark Rowe <mrowe@apple.com>
Merge r50196.
2009-10-27 Chris Fleizach <cfleizach@apple.com>
Reviewed by Adele Peterson.
WAI-ARIA: add support for 'presentation' role
https://bugs.webkit.org/show_bug.cgi?id=30806
Test: accessibility/aria-presentational-role.html
* accessibility/AccessibilityObject.h:
(WebCore::):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
(WebCore::RoleEntry::):
2010-01-27 Mark Rowe <mrowe@apple.com>
Merge r53867.
2010-01-26 Brian Weinstein <bweinstein@apple.com>
Reviewed by Jon Honeycutt.
Crash in WebKit!WebCore::RenderMenuList::itemStyle
https://bugs.webkit.org/show_bug.cgi?id=34182
<rdar://7087757>
Added bounds checks in RenderMenuList to make sure we are
not making an out of bounds check in a vector once an option
element has been deleted. If we are out of bounds, we fall back to
a default value and return early, and in the case of itemStyle, we use a
previous option's style, if it is available.
* manual-tests/select-delete-item.html: Added.
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::itemText): If out of bounds check, return early.
(WebCore::RenderMenuList::itemToolTip): Ditto.
(WebCore::RenderMenuList::itemIsEnabled): Ditto.
(WebCore::RenderMenuList::itemStyle): If out of bounds check, try using the 0th index
option style, then fall back to the select's style if that option doesn't exist.
(WebCore::RenderMenuList::itemBackgroundColor): If out of bounds check, return early.
(WebCore::RenderMenuList::itemIsSeparator): Ditto.
(WebCore::RenderMenuList::itemIsLabel): Ditto.
(WebCore::RenderMenuList::itemIsSelected): Ditto.
2010-01-25 Mark Rowe <mrowe@apple.com>
Merge r52527.
2009-12-23 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
<rdar://problem/7487164> First line of text cannot be selected
https://bugs.webkit.org/show_bug.cgi?id=32749
Test: fast/text/remove-zero-length-run.html
* rendering/RenderText.cpp:
(WebCore::RenderText::positionLineBox): Changed code that assumed that if a box was being
removed, it was the only box in the RenderText. Instead, correctly preserve the list of
text boxes.
(WebCore::RenderText::checkConsistency): Updated for earlier rename.
2010-01-25 Mark Rowe <mrowe@apple.com>
Merge r53581.
2010-01-20 Jon Honeycutt <jhoneycutt@apple.com>
<rdar://problem/7086565> Crash in WebCore::PlugInView::dispatchNPEvent
Reviewed by Sam Weinig.
* plugins/PluginView.cpp:
(WebCore::PluginView::handleEvent):
Ref the PluginView to protect it from deletion while calling into the
plug-in.
2010-01-25 Mark Rowe <mrowe@apple.com>
Merge r46792.
2009-08-04 Eric Seidel <eric@webkit.org>
Reviewed by Simon Fraser.
REGRESSION (r45064): Drop caret remains in text control after the mouse exits
https://bugs.webkit.org/show_bug.cgi?id=26787
Add back missing dragController()->clear() call.
* manual-tests/drag-caret.html: Added.
* page/DragController.cpp:
(WebCore::DragController::tryDocumentDrag):
2010-01-25 Mark Rowe <mrowe@apple.com>
Merge r50698.
2009-11-09 Anders Carlsson <andersca@apple.com>
Reviewed by Darin Adler and Dan Bernstein.
<rdar://problem/7328395>
https://bugs.webkit.org/show_bug.cgi?id=31277
When an object tag's style changes (for example when child nodes are added/removed),
reuse its Frame (if it has one) instead of creating multiple Frames.
Test: fast/dom/HTMLObjectElement/children-changed.html
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::requestObject):
2010-01-25 Mark Rowe <mrowe@apple.com>
Merge r52073.
2009-12-13 Dan Bernstein <mitz@apple.com>
Reviewed by Simon Fraser.
<rdar://problem/7341364> Crash at HTMLParser::popOneBlockCommon() after
handling misnested residual style tags
Test: fast/parser/residual-style-close-ref-clone.html
* html/HTMLParser.cpp:
(WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks): Gave the
block stack a strong reference to the cloned residual style element.
2010-01-25 Mark Rowe <mrowe@apple.com>
Merge r48810.
2009-09-28 Charles Wei <charles.wei@torchmobile.com.cn>
Reviewed by Nikolas Zimmermann.
Fix the crash of SVG that crashes when use a non-exist symbol
https://bugs.webkit.org/show_bug.cgi?id=27693
Test: svg/custom/use-non-existing-symbol-crash.svg
* svg/SVGUseElement.cpp:
(WebCore::shadowTreeContainsChangedNodes):
2010-01-25 Mark Rowe <mrowe@apple.com>
Merge r51877.
2009-12-08 Brady Eidson <beidson@apple.com>
Reviewed by Darin Adler.
Navigating to a cached page can result in accessing a destroyed HTMLInputElement.
<rdar://problem/6856662> and https://webkit.org/b/32293
Test: fast/loader/input-element-page-cache-crash.html
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseMappedAttribute): Make sure to unregister for the activation
callback after the new m_autocomplete setting has been stored so the unregistration actually
takes place.
2010-01-25 Mark Rowe <mrowe@apple.com>
Merge r51727.
2009-12-05 Adam Langley <agl@google.com>
Reviewed by Adam Barth.
Check that a CSS format() argument is of a valid type.
https://bugs.webkit.org/show_bug.cgi?id=31815
http://code.google.com/p/chromium/issues/detail?id=28582
Test: fast/css/url-format-non-string.html
* css/CSSParser.cpp:
(WebCore::CSSParser::parseFontFaceSrc):
2010-01-25 Mark Rowe <mrowe@apple.com>
Merge r51881.
2009-12-08 Steve Falkenburg <sfalken@apple.com>
Reviewed by Adam Roben.
WebCore source level debugging on Windows not reliable in some cases
https://bugs.webkit.org/show_bug.cgi?id=32297
Customized pdb file name/location for WebCore static library.
* WebCore.vcproj/WebCoreCommon.vsprops: Add ProgramDataBaseFileName.
2010-01-25 Mark Rowe <mrowe@apple.com>
Merge r51205.
2009-11-19 Oliver Hunt <oliver@apple.com>
Reviewed by Dave Hyatt.
-webkit-user-drag: element Drag images include overflow decorations from incorrect nodes
https://bugs.webkit.org/show_bug.cgi?id=31656
Make sure we're a child of the painting root before drawing overflow features.
* manual-tests/user-drag-with-decorations.html: Added.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paint):
2010-01-25 Mark Rowe <mrowe@apple.com>
Merge r52749.
2010-01-04 Dan Bernstein <mitz@apple.com>
Reviewed by Ada Chan and Mark Rowe.
Updated copyright string
* Info.plist:
* WebCore.vcproj/QTMovieWin.rc:
2010-01-14 Steve Falkenburg <sfalken@apple.com>
Merge r53273.
2010-01-14 Steve Falkenburg <sfalken@apple.com>
Windows build fixes.
Add forward declarations and additional includes of windows.h.
* platform/Cursor.h: Add forward declaration of HCURSOR. Move destructor implementation into cpp.
* platform/graphics/transforms/TransformationMatrix.h: Add forward declaration of XFORM. Remove windows.h include.
* platform/graphics/win/TransformationMatrixWin.cpp: Add include of windows.h.
* platform/win/CursorWin.cpp: Moved destructor of SharedCursor here.
(WebCore::SharedCursor::~SharedCursor): Moved here.
* platform/win/EventLoopWin.cpp: Add include of windows.h.
* platform/win/SystemInfo.cpp: Add include of windows.h.
2010-01-08 Mark Rowe <mrowe@apple.com>
Merge r52141.
2009-12-15 Dan Bernstein <mitz@apple.com>
Reviewed by Adam Roben.
WebCore part of <rdar://problem/7173515> Use LOGFONT support in Core
Graphics when available
When using a version of Core Graphics with LOGFONT support, this fixes
<rdar://problem/5764844> First-time launch is painfully slow due to font
plist creation
and <rdar://problem/6576281> 12px synthetic-italics Tahoma text is less
readable in Safari than in Firefox/IE due to poorly-spaced letters
* platform/graphics/win/FontCGWin.cpp:
(WebCore::Font::drawGlyphs): No longer call drawGDIGlyphs for stroked
text.
* platform/graphics/win/FontCacheWin.cpp:
(WebCore::createGDIFont): Added a synthesizeItalic parameter. When set
to true, if italics are desired but the best match lacks italics,
creates and returns a synthetic italics font.
(WebCore::FontCache::createFontPlatformData): Ask to synthesize italics
if needed.
* platform/graphics/win/FontCustomPlatformData.cpp:
(WebCore::FontCustomPlatformData::fontPlatformData): Updated an
assertion, and changed to create the CGFont from the LOGFONT.
(WebCore::createFontCustomPlatformData): Changed cgFont to be a
RetainPtr. Do not create a CGFont from the font data if it can be
created from the LOGFONT in fontPlatformData().
* platform/graphics/win/FontDatabase.cpp:
(WebCore::populateFontDatabase): Avoid font database work if fonts are
not going to be looked up by name.
* platform/graphics/win/FontPlatformDataCGWin.cpp:
(WebCore::FontPlatformData::platformDataInit): Create the CGFont from
a LOGFONT based on the HFONT.
2009-10-30 Jon Honeycutt <jhoneycutt@apple.com>
Fix the build.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::positionalDescriptionForMSAA):
2009-10-30 Mark Rowe <mrowe@apple.com>
Merge r50354.
2009-10-29 Jon Honeycutt <jhoneycutt@apple.com>
MSAA: Accessibility of headings is not correct
https://bugs.webkit.org/show_bug.cgi?id=30937
Reviewed by Alice Liu.
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::stringRoleForMSAA):
(WebCore::AccessibilityObject::descriptionForMSAA):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::shouldReturnTagNameAsRoleForMSAA):
If the element's tag name is one of h1, h2, h3, h4, h5, h6, return
true.
(WebCore::AccessibilityRenderObject::stringRoleForMSAA):
If the element should return its tag name as the role, return the tag
name.
(WebCore::AccessibilityRenderObject::positionalDescriptionForMSAA):
If the object is a heading, return the string "L" followed by the
heading level.
(WebCore::AccessibilityRenderObject::descriptionForMSAA):
If the object has a positional description, return it. Otherwise, get
the accessibility description, and prefix it with "Description" so that
MSAA clients know that it's not a positional description.
* accessibility/AccessibilityRenderObject.h:
2009-10-30 Mark Rowe <mrowe@apple.com>
Merge r50353.
2009-10-29 Jon Honeycutt <jhoneycutt@apple.com>
MSAA: Accessibility of links is wrong
https://bugs.webkit.org/show_bug.cgi?id=30928
Reviewed by Darin Adler.
* accessibility/AccessibilityImageMapLink.cpp:
(WebCore::AccessibilityImageMapLink::stringValueForMSAA):
Return the URL.
(WebCore::AccessibilityImageMapLink::nameForMSAA):
Return the alt text.
* accessibility/AccessibilityImageMapLink.h:
(WebCore::AccessibilityImageMapLink::isLinked):
Return true.
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isLinked):
(WebCore::AccessibilityObject::stringValueForMSAA):
(WebCore::AccessibilityObject::nameForMSAA):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::isLinkable):
Return true if the element is considered "linkable" with respect to
accessibility.
(WebCore::AccessibilityRenderObject::stringValueForMSAA):
If the element is linkable, check whether it has a parent anchor
element. If so, return the anchor element's href.
(WebCore::AccessibilityRenderObject::isLinked):
Return true if the element is linkable and if it's parent anchor tag's
href is non-empty.
(WebCore::AccessibilityRenderObject::nameForMSAA):
For text nodes, return the text.
* accessibility/AccessibilityRenderObject.h:
2009-10-27 Mark Rowe <mrowe@apple.com>
Merge r50165.
2009-10-27 Enrica Casucci <enrica@apple.com>
Reviewed by Adele Peterson.
REGRESSION (Safari 4.0.3-ToT): After pressing Shift-PageDown, pressing Shift-Up
extends the top of the selection upwards (but should shrink the selection instead)
<rdar://problem/7269075>
https://bugs.webkit.org/show_bug.cgi?id=29981
* editing/SelectionController.cpp:
(WebCore::SelectionController::modify): Added setting m_lastChangeWasHorizontalExtension.
2009-10-23 Mark Rowe <mrowe@apple.com>
Merge r47534.
2009-08-19 Simon Fraser <simon.fraser@apple.com>
Reviewed by Darin Adler.
Images flash as you hover them on http://www.atebits.com/scribbles/
<rdar://problem/7143958>
Tag images with the device colorspace with the colorspace of the main display, rather than
GenericRGB, so that composited images color-match those rendered via Core Graphics.
Covered by LayoutTests/compositing/color-matching/image-color-matching.html
* platform/graphics/mac/GraphicsLayerCA.mm:
(WebCore::GraphicsLayerCA::setContentsToImage):
2009-10-16 Mark Rowe <mrowe@apple.com>
Merge r48971.
2009-09-30 Timothy Hatcher <timothy@apple.com>
Fix list box scrolling by correctly overriding the scroll()
function on RenderBox.
<rdar://problem/7255440> REGRESSION (r48683): Mousewheel scrolling
of listboxes is broken (29756)
Reviewed by Dan Bernstein.
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::scroll):
* rendering/RenderListBox.h:
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::scroll):
* rendering/RenderTextControlSingleLine.h:
2009-10-16 Mark Rowe <mrowe@apple.com>
Merge r48683.
2009-09-22 Timothy Hatcher <timothy@apple.com>
Prevent scrolling multiple elements during latched wheel events.
Reviewed by Anders Carlsson.
* page/EventHandler.cpp:
(WebCore::scrollAndAcceptEvent):
(WebCore::EventHandler::clear):
(WebCore::EventHandler::handleWheelEvent):
* page/EventHandler.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::scroll):
* rendering/RenderBox.h:
2009-10-14 Mark Rowe <mrowe@apple.com>
Merge r48531.
2009-09-18 Anders Carlsson <andersca@apple.com>
Fix windows build.
* platform/win/PopupMenuWin.cpp:
2009-10-14 Mark Rowe <mrowe@apple.com>
Merge r48529.
2009-09-18 Anders Carlsson <andersca@apple.com>
Reviewed by Sam Weinig.
https://bugs.webkit.org/show_bug.cgi?id=29332
<rdar://problem/7231652>
REGRESSION (r48446): While a <select> popup menu is open, the
rest of the WebView doesn't respond to mouse move events.
* platform/win/PopupMenuWin.cpp:
(WebCore::translatePoint):
New helper function that translates a point between HWND coordinates.
(WebCore::PopupMenu::show):
Protect the PopupMenu if someone removes the <select> in response to a mouse
event. Handle WM_HOST_WINDOW_MOUSEMOVE events.
(WebCore::PopupMenu::wndProc):
in the WM_MOUSEMOVE handler, if the mouse is not over the popup, post a
WM_HOST_WINDOW_MOUSEMOVE event so that the host window (the WebView) gets the
mouse move event.
2009-10-14 Mark Rowe <mrowe@apple.com>
Merge r48446.
2009-09-16 Anders Carlsson <andersca@apple.com>
Reviewed by Adam Roben.
<rdar://problem/7155710>
HTML selects on windows cause containing window to become inactive when opened
Redo the way we handle events when a popup menu is shown, based on
http://blogs.msdn.com/oldnewthing/archive/2004/08/20/217684.aspx
Since a non-active window can't capture the mouse, we use the owning window
(the WebView) as the capture window. We then run a recursive message pump that
forwards all mouse and keyboard events to the popup menu.
* platform/PopupMenu.h:
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenu::PopupMenu):
(WebCore::PopupMenu::show):
(WebCore::PopupMenu::hide):
(WebCore::PopupMenu::wndProc):
2009-10-14 Mark Rowe <mrowe@apple.com>
Merge r48396.
2009-09-15 Anders Carlsson <andersca@apple.com>
Reviewed by Adam Roben.
Pass the PopupMenu pointer to CreateWindowEx and then get it from the LPCREATESTRUCT in
the WM_CREATE handler. This way we don't have to first create an zero size window and then size it.
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenu::show):
(WebCore::PopupMenu::PopupMenuWndProc):
2009-10-14 Mark Rowe <mrowe@apple.com>
Merge r48375.
2009-09-14 Anders Carlsson <andersca@apple.com>
Reviewed by Jon Honeycutt.
More PopupMenu cleanup.
* platform/PopupMenu.h:
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenu::show):
Call registerClass.
(WebCore::PopupMenu::registerClass):
Make this a private static member function so it can refer to PopupMenuWndProc.
(WebCore::PopupMenu::PopupMenuWndProc):
Try to get the PopupMenu and call its wndProc member function.
(WebCore::PopupMenu::wndProc):
Make this a member function.
2009-10-14 Mark Rowe <mrowe@apple.com>
Merge r48370.
2009-09-14 Anders Carlsson <andersca@apple.com>
Reviewed by Adam Roben.
https://bugs.webkit.org/show_bug.cgi?id=29138
Simplify popup menu handling.
* platform/PopupMenuClient.h:
Rename hidePopup to popupDidHide.
* platform/chromium/PopupMenuChromium.cpp:
(WebCore::PopupListBox::handleKeyEvent):
(WebCore::PopupListBox::abandon):
(WebCore::PopupListBox::acceptIndex):
Call popupDidHide instead of hidePopup.
* platform/gtk/PopupMenuGtk.cpp:
(WebCore::PopupMenu::menuUnmapped):
Ditto.
* platform/mac/PopupMenuMac.mm:
(WebCore::PopupMenu::show):
Ditto.
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenu::hide):
Call popupDidHide.
(WebCore::PopupWndProc):
Call PopupMenu::hide.
* platform/wx/PopupMenuWx.cpp:
(WebCore::PopupMenu::OnMenuItemSelected):
Call popupDidHide.
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::hidePopup):
(WebCore::RenderMenuList::popupDidHide):
* rendering/RenderMenuList.h:
Set the "popup is visible" flag in popupDidHide.
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::hidePopup):
(WebCore::RenderTextControlSingleLine::popupDidHide):
* rendering/RenderTextControlSingleLine.h:
Ditto.
2009-10-13 Mark Rowe <mrowe@apple.com>
Merge r48308.
2009-09-11 Steve Falkenburg <sfalken@apple.com>
Reviewed by Darin Adler.
Allow WebKit clients to opt out of high resolution timers on Windows.
https://bugs.webkit.org/show_bug.cgi?id=29192
* page/Settings.cpp:
(WebCore::Settings::setShouldUseHighResolutionTimers): Added.
* page/Settings.h: Added getter/setter for shouldUseHighResolutionTimers.
(WebCore::Settings::shouldUseHighResolutionTimers): Added.
* platform/win/SharedTimerWin.cpp:
(WebCore::setSharedTimerFireTime): Don't run high resolution timer code if it is disabled.
2009-10-13 Mark Rowe <mrowe@apple.com>
Merge r46645.
2009-07-31 Simon Fraser <simon.fraser@apple.com>
Reviewed by Anders Carlsson.
Accelerated animations stutter on pages with lots of animations and 3d transforms
https://bugs.webkit.org/show_bug.cgi?id=27884
This patch changes the strategy for synchronizing painting view the view,
and compositing layer updates. Previously the strategy was to disable screen
updates between the time we updated the layer tree, and painted the view. That
left screen updates disabled for too long (hundreds of milliseconds) in some
cases, causing animation stutter.
The new strategy is to batch up changes to the CA layer tree, and commit them
all at once just before painting happens (referred to as a "sync" in the code).
GraphicsLayerCA now keeps a bitmask of changed properties, and then migrates
the values stored in GraphicsLayer into the CA layer tree at commit time.
Compositing layers are then synced in FrameView::paintContents(). However, not
all style/layout changes will result in painting; to deal with style changes that
touch only compositing properties, we set up a runloop observer that takes care
of comitting layer changes when no painting happens.
* WebCore.base.exp: Export FrameView::syncCompositingStateRecursive()
* loader/EmptyClients.h: scheduleViewUpdate() renamed to syncCompositingStateRecursive()
* page/ChromeClient.h: scheduleViewUpdate() renamed to syncCompositingStateRecursive()
* page/FrameView.h:
* page/FrameView.cpp:
(WebCore::FrameView::syncCompositingStateRecursive): syncCompositingState() on the
view and all subviews. Like layoutIfNeededRecursive(). If layout is pending, does not
sync and returns false, since we only want to sync when layout is done.
(WebCore::FrameView::paintContents): syncCompositingState() before painting.
* page/animation/KeyframeAnimation.cpp:
(WebCore::KeyframeAnimation::endAnimation):
Call animationPaused() to notify the graphics layers about animation pausing.
* platform/graphics/FloatPoint3D.h:
(WebCore::operator==):
(WebCore::operator!=):
Add missing comparison operators.
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::setOpacity):
(WebCore::GraphicsLayer::setBackgroundColor): Simple setters no longer care about animation info.
(WebCore::GraphicsLayer::paintGraphicsLayerContents): Null-check client.
* platform/graphics/GraphicsLayer.h:
(WebCore::AnimationValue:):
(WebCore::TransformAnimationValue:):
(WebCore::KeyframeValueList:):
(WebCore::KeyframeValueList::insert):
Cleaned up versions of FloatValue and TransformValue, used to store information
about keyframes values.
(WebCore::GraphicsLayer::contentsRect):
(WebCore::GraphicsLayer::setContentsRect):
ContentsRect is now a simple setter.
(WebCore::GraphicsLayer::addAnimation):
(WebCore::GraphicsLayer::removeAnimationsForProperty):
(WebCore::GraphicsLayer::removeAnimationsForKeyframes):
(WebCore::GraphicsLayer::pauseAnimation):
Simplified animation api.
(WebCore::GraphicsLayer::setGeometryOrientation):
(WebCore::GraphicsLayer::geometryOrientation):
setGeometryOrientation is now just a normal member variable.
(WebCore::GraphicsLayer::contentsOrientation): add a getter.
(WebCore::GraphicsLayer::syncCompositingState): Entry into the layer sync code.
* platform/graphics/GraphicsLayerClient.h: scheduleViewUpdate() renamed to syncCompositingStateRecursive)
* platform/graphics/mac/GraphicsLayerCA.h:
* platform/graphics/mac/GraphicsLayerCA.mm:
Lots of cleanup and refactoring. Main points:
- Layer changes are all batched, and only committed to the CA layer on syncCompositingState().
- Bitmask is used to store which properties have changed. More efficient than before.
- Simpler animation interface; simple setters are no longer confounded with animations.
- Refactored code that creates CA animations, and stores which animations are running.
* platform/graphics/transforms/TransformOperations.h:
(WebCore::TransformOperations::size):
(WebCore::TransformOperations::at): Useful accessors for size and indexed access.
* rendering/RenderLayerBacking.h:
* rendering/RenderLayerBacking.cpp:
Renamed 'contentsLayer' to 'foregroundLayer' to avoid confusion with GraphicsLayer's
contentsLayer.
Adapt to GraphicsLayer's simpler animation API.
Pass animation pausing through to the graphics layers.
contentsBox() is no longer a callback via GraphicsLayerClient.
* rendering/RenderLayerCompositor.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::setCompositingLayersNeedRebuild):
(WebCore::RenderLayerCompositor::scheduleSync):
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
scheduleViewUpdate() is no longer required. Instead, we plumb through "compositingLayerSync"
notifications, which travel up to WebKit and set up a runloop observer.
2009-10-13 Mark Rowe <mrowe@apple.com>
Merge r49111.
2009-10-02 Chris Marrin <cmarrin@apple.com>
Reviewed by Adele Peterson.
Add functionality to pause/throttle CSS transitions/animations in a WebView
https://bugs.webkit.org/show_bug.cgi?id=29942
Exporting call from AnimationController
* WebCore.base.exp:
2009-10-13 Mark Rowe <mrowe@apple.com>
Merge r47534.
2009-08-19 Simon Fraser <simon.fraser@apple.com>
Reviewed by Darin Adler.
Images flash as you hover them on http://www.atebits.com/scribbles/
<rdar://problem/7143958>
Tag images with the device colorspace with the colorspace of the main display, rather than
GenericRGB, so that composited images color-match those rendered via Core Graphics.
Covered by LayoutTests/compositing/color-matching/image-color-matching.html
* platform/graphics/mac/GraphicsLayerCA.mm:
(WebCore::GraphicsLayerCA::setContentsToImage):
2009-10-13 Mark Rowe <mrowe@apple.com>
Merge r48492.
2009-09-17 Anders Carlsson <andersca@apple.com>
Reviewed by Oliver Hunt.
<rdar://problem/7007541>
CrashTracer: 4800+ crashes in Safari at com.apple.WebKit • WTF::HashTableIterator...
Make RuntimeObjectImp more robust against m_instance being a null (which can happen if an OOP plug-in
crashes while we're calling into it).
* bridge/runtime_object.cpp:
(JSC::RuntimeObjectImp::RuntimeObjectImp):
(JSC::RuntimeObjectImp::~RuntimeObjectImp):
(JSC::RuntimeObjectImp::invalidate):
(JSC::RuntimeObjectImp::fallbackObjectGetter):
(JSC::RuntimeObjectImp::fieldGetter):
(JSC::RuntimeObjectImp::methodGetter):
(JSC::RuntimeObjectImp::getOwnPropertySlot):
(JSC::RuntimeObjectImp::getOwnPropertyDescriptor):
(JSC::RuntimeObjectImp::put):
(JSC::RuntimeObjectImp::defaultValue):
(JSC::RuntimeObjectImp::getCallData):
(JSC::RuntimeObjectImp::getConstructData):
(JSC::RuntimeObjectImp::getPropertyNames):
* bridge/runtime_object.h:
(JSC::RuntimeObjectImp::getInternalInstance):
2009-10-13 Mark Rowe <mrowe@apple.com>
Merge r49026.
2009-10-02 Steve Falkenburg <sfalken@apple.com>
Reviewed by Mark Rowe.
<https://bugs.webkit.org/show_bug.cgi?id=29989>
Safari version number shouldn't be exposed in WebKit code
For a WebKit version of 532.3.4:
Product version is: 5.32.3.4 (was 4.0.3.0)
File version is: 5.32.3.4 (was 4.532.3.4)
* WebCore.vcproj/QTMovieWin.rc:
2009-10-13 Mark Rowe <mrowe@apple.com>
Merge r47494.
2009-08-18 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Maciej Stachowiak.
https://bugs.webkit.org/show_bug.cgi?id=28446
Custom request headers shouldn't be sent with cross-origin preflight request
Tests: http/tests/xmlhttprequest/access-control-preflight-headers-async.html
http/tests/xmlhttprequest/access-control-preflight-headers-sync.html
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequestWithPreflight):
Don't copy headers to OPTIONS request. The spec is vague about this, but the intention was
that they shouldn't be sent, and Firefox doesn't send them.
2009-10-12 Mark Rowe <mrowe@apple.com>
Merge r49218.
2009-10-06 Sam Weinig <sam@webkit.org>
Reviewed by Brady Eidson.
Fix for <rdar://problem/7271202>
Dispatch resource load delegate functions for the media element.
Since we don't get the required callbacks from the media engine,
just fake the parameters to the delegate functions as best as possible.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::loadResource):
(WebCore::HTMLMediaElement::isSafeToLoadURL):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::willLoadMediaElementURL):
* loader/FrameLoader.h:
2009-10-12 Mark Rowe <mrowe@apple.com>
Merge r47883.
2009-08-29 Adele Peterson <adele@apple.com>
Reviewed by Dan Bernstein.
Fix for https://bugs.webkit.org/show_bug.cgi?id=28829
Crash in AccessibilityRenderObject::activeDescendant when trying to set aria-activedescendant to something without a renderer
Test: accessibility/aria-activedescendant-crash.html
* accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::activeDescendant): Nil check.
2009-10-12 Mark Rowe <mrowe@apple.com>
Merge r48787.
2009-09-25 Dan Bernstein <mitz@apple.com>
Reviewed by Sam Weinig.
REGRESSION (r48775) FontList.plist written by TOT WebKit causes Safari 4
to crash on launch
https://bugs.webkit.org/show_bug.cgi?id=29759
* platform/graphics/win/FontDatabase.cpp:
(WebCore::writeFontDatabaseToPlist): Reverted to saving the CG font DB
property list at the root of FontList.plist, but with an additional
key for the last value of the Fonts registry key.
(WebCore::populateFontDatabase): Pass the FontList.plist in its entirety
to populatFontDatabaseFromPlist.
2009-10-12 Mark Rowe <mrowe@apple.com>
Merge r48775.
2009-09-25 Dan Bernstein <mitz@apple.com>
Reviewed by Jon Honeycutt.
WebCore part of
<rdar://problem/7211635> 2 byte characters are displayed as garbaged
<rdar://problem/7212626> garbled/gibberish text (off-by-one)
When the Windows Fonts directory contains more than one font file for a
given font name, which of the fonts gets assigned to the name in the
Core Graphics font database was determined arbitrarily and did not
always match the font GDI used for the same font name. The mismatch
caused character-to-glyph mapping to use one font and glyph rendering to
use another.
The fix is to update the Core Graphics font database from the registry
entries (that reflect the name-to-font mapping that GDI uses) after
populating it with the result of scanning the Fonts directory. As a
consequence, the directory needs to be scanned at startup every time the
registry key changes, so the last value of the registry key is kept
in the property list on disk so that it could be compared to the current
value on startup.
* platform/graphics/win/FontDatabase.cpp:
(WebCore::populateFontDatabaseFromPlist): Now takes a property list as
a parameter and avoids round-tripping through XML by calling
wkAddFontsFromPlist() instead of wkAddFontsFromPlistRepresentation().
(WebCore::fontFilenamesFromRegistryKey):
(WebCore::cgFontDBKey):
(WebCore::writeFontDatabaseToPlist): Now takes the CG font DB property
list and a property list with the font filenames from the registry and
writes a dictionary with those property lists as values.
(WebCore::fontFilenamesFromRegistry): Added. Returns an array with the
values in the HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
registry key.
(WebCore::populateFontDatabase): Changed to read the contents of the
Fonts registry key and compare it with the last-saved value from the
property list, and to call wkAddFontsFromRegistry() after populating the
CG font DB from the file system. Uses wkCreateFontsPlist() instead of
wkCreateFontsPlistRepresentation() to avoid round-tripping through XML.
2009-10-12 Mark Rowe <mrowe@apple.com>
Merge r48572.
2009-09-20 Adam Barth <abarth@webkit.org>
Reviewed by Maciej Stachowiak.
Crash when clicking link in unload handler
https://bugs.webkit.org/show_bug.cgi?id=29525
Test that the first navigation always wins when the page tries to start
a new navigation in an unload handler.
Tests: fast/loader/unload-form-about-blank.html
fast/loader/unload-form-post-about-blank.html
fast/loader/unload-form-post.html
fast/loader/unload-form.html
fast/loader/unload-hyperlink.html
fast/loader/unload-javascript-url.html
fast/loader/unload-reload.html
fast/loader/unload-window-location.html
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadWithDocumentLoader):
2009-10-12 Mark Rowe <mrowe@apple.com>
Merge r47801.
2009-08-26 Eric Carlson <eric.carlson@apple.com>
Reviewed by Simon Fraser.
HTMLMediaElement sometimes loses events
https://bugs.webkit.org/show_bug.cgi?id=28762
<rdar://problem/7172437>
        A media element triggers the resource selection algorithm if 
        play() is called when the networkState attribute is NETWORK_EMPTY, but
        it also immediately queues 'play' and either 'waiting' or 'playing' events.
        One of the steps in preparing to load is to flush pending events, so those 
        events were lost if the load timer fired quickly enough. Fixed by deleting
        pending events before scheduling the load timer.
Test: media/audio-play-event.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::scheduleLoad):
Do nothing if the load timer is already scheduled. Call prepareForLoad so queue of
pending events is flushed immediately.
(WebCore::HTMLMediaElement::scheduleNextSourceChild):
New, start the load timer without flushing pending events.
(WebCore::HTMLMediaElement::load):
Call prepareForLoad();
(WebCore::HTMLMediaElement::prepareForLoad):
New, load setup code moved from loadInternal.
(WebCore::HTMLMediaElement::loadInternal):
Moved some setup code to prepareForLoad so it can be invoked immediately before
arming the load timer.
(WebCore::HTMLMediaElement::setNetworkState):
Call scheduleNextSourceChild instead of scheduleLoad as the later now clears
pending events.
* html/HTMLMediaElement.h:
Declare scheduleNextSourceChild.
2009-10-12 Mark Rowe <mrowe@apple.com>
Merge r47771.
2009-08-25 Eric Carlson <eric.carlson@apple.com>
Reviewed by Simon Fraser.
Setting the volume of a media element has no effect if called too early
https://bugs.webkit.org/show_bug.cgi?id=28731
* manual-tests/audio-volume.html:
Added.
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::setVolume):
(WebCore::MediaPlayerPrivate::setRate):
Don't bail if metadata hasn't been loaded, it is fine to set rate and/or
volume as soon as the movie has been created.
2009-10-12 Mark Rowe <mrowe@apple.com>
Merge r48848.
2009-09-28 Dan Bernstein <mitz@apple.com>
Reviewed by Sam Weinig.
<rdar://problem/7157288> Crash in RenderStyle::computedLineHeight()
when Times New Roman is not installed
* platform/graphics/win/FontCacheWin.cpp:
(WebCore::FontCache::getLastResortFallbackFont): If Times New Roman is
not available, use the Windows default GUI font.
2009-10-12 Mark Rowe <mrowe@apple.com>
Merge r48547.
2009-09-18 Simon Fraser <simon.fraser@apple.com>
Fix stylistic issue raised in code review for previous commit.
* rendering/RenderLayerBacking.cpp:
(WebCore::hasNonZeroTransformOrigin):
2009-10-12 Mark Rowe <mrowe@apple.com>
Merge r48546.
2009-09-18 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
Element is misplaced during opacity transition with certain configuration of transform-origin and clipping
https://bugs.webkit.org/show_bug.cgi?id=29495
If an element has zero size, but has a transform origin with absolute values,
then the transform origin would not be applied because it is implemented via
anchorPoint, which is expressed as a fraction of the layer size.
Work around this by artificially inflating the size of the backing store when we need to.
Test: compositing/geometry/transfrom-origin-on-zero-size-layer.html
* rendering/RenderLayerBacking.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::RenderLayerBacking):
Init m_artificiallyInflatedBounds to false.
(WebCore::hasNonZeroTransformOrigin):
Utility function that describes whether the transform-origin contains non-percentage
x or y offsets.
(WebCore::RenderLayerBacking::updateCompositedBounds):
New wrapper method around setCompositedBounds() that applies the size inflation
when necessary, setting the m_artificiallyInflatedBounds as appropriate.
(WebCore::RenderLayerBacking::updateAfterLayout): Call updateCompositedBounds().
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Ditto
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): Ditto
(WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry): Ditto
2009-10-12 Mark Rowe <mrowe@apple.com>
Merge r47900.
Merge r48743.
2009-09-24 Dan Bernstein <mitz@apple.com>
Reviewed by Sam Weinig.
Fix <rdar://problem/7162000> Crash while trying to
calculate the horizontal position of image
Test: fast/inline-block/relative-positioned-rtl-crash.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::calcAbsoluteHorizontalReplaced): Corrected an
isInline() test to isRenderInline(). This is similar to r41259.
2009-10-12 Mark Rowe <mrowe@apple.com>
Merge r46136.
2009-07-20 Dan Bernstein <mitz@apple.com>
Reviewed by Anders Carlsson.
When loading a custom view into a frame, the old document is still
around
<rdar://problem/5145841>
Safari fires onload before PDF is loaded into the browser
<rdar://problem/6618869>
Test: fast/loader/non-html-load-event.html
* GNUmakefile.am: Added PlaceholderDocument.{cpp,h}
* WebCore.gypi: Ditto.
* WebCore.pro: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* WebCoreSources.bkl: Ditto.
* dom/Document.h:
(WebCore::Document::setStyleSelector): Added this protected accessor for
PlaceholderDocument to use.
* dom/Element.cpp:
(WebCore::Element::clientWidth): Check whether the document has a
renderer.
(WebCore::Element::clientHeight): Ditto.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::begin): Create a PlaceholderDocument for frames
that do not use an HTML view. Do not nullify the content size in
that case.
(WebCore::FrameLoader::transitionToCommitted): For frames that do not
use an HTML view, call receivedFirstData(), which sets up the
frame with a new PlaceHolderDocument.
* loader/PlaceholderDocument.cpp: Added.
(WebCore::PlaceholderDocument::attach): Sets up the style selector but
does not create a RenderView.
* loader/PlaceholderDocument.h: Added.
(WebCore::PlaceholderDocument::create):
(WebCore::PlaceholderDocument::PlaceholderDocument):
2009-10-12 Mark Rowe <mrowe@apple.com>
Merge r47509.
2009-08-19 Brady Eidson <beidson@apple.com>
Reviewed by Kevin Decker.
<rdar://problem/7042555> Loading certain pages on Tiger will start a spurious download
Get rid of method swizzling entirely. This created problems when lower level
Foundation code would call into our own swizzled method.
* platform/network/mac/ResourceHandleMac.mm:
(-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
* platform/network/mac/WebCoreURLResponse.h:
* platform/network/mac/WebCoreURLResponse.mm:
(-[NSURLResponse adjustMIMETypeIfNecessary]):
2009-10-12 Mark Rowe <mrowe@apple.com>
Merge r48647.
2009-09-22 Beth Dakin <bdakin@apple.com>
Reviewed by Dave Hyatt.
Fix for <rdar://problem/6925121> SAP: Wrong width calculation in
table with fixed layout
-and corresponding-
https://bugs.webkit.org/show_bug.cgi?id=29501
New Tests:
* fast/table/fixed-table-with-percent-inside-percent-table.html: Added.
* fast/table/fixed-table-with-percent-width-inside-auto-table.html: Added.
* fast/table/fixed-table-with-percent-width-inside-div.html: Added.
* fast/table/fixed-table-with-percent-width-inside-extra-large-div.html: Added.
* fast/table/fixed-table-with-percent-width-inside-fixed-width-table.html: Added.
* fast/table/fixed-table-with-small-percent-width.html: Added.
This new quirk is very similar to an existing one that was
implemented in revision 4316.
* rendering/FixedTableLayout.cpp:
(WebCore::FixedTableLayout::calcPrefWidths):
2009-10-12 Mark Rowe <mrowe@apple.com>
Merge r46521.
2009-07-28 Jon Honeycutt <jhoneycutt@apple.com>
Speculative fix for <rdar://problem/7005077> WER: Crash in
WebCore::PluginStream::destroyStream+279 (1310510882)
Reviewed by Oliver Hunt.
* plugins/PluginStream.cpp:
(WebCore::PluginStream::destroyStream):
Move the "protector" RefPtr out of the block that dispatches
Reviewed by Dan Bernstein.
Fix positioning error when a compositing, absolutely-positioned element has an ancestor with opacity.
https://bugs.webkit.org/show_bug.cgi?id=28754
For absolutely-positioned layers, convertToLayerCoords() jumps to the positioned
ancestor, since the layer x and y are relative to that ancestor. However, this could
skip over the ancestorLayer, thus giving the wrong result.
Fix by duplicating the enclosingPositionedAncestor() logic in convertToLayerCoords(),
and checking for ancestorLayer along the way. If found, compute offset of both to
the enclosingPositionedAncestor() and subtract.
This also fixes a positioning bug with abs. positioned elements in reflections,
so there is a new reflection test with a pixel result.
Tests: compositing/geometry/abs-position-inside-opacity.html
fast/reflections/abs-position-in-reflection.html
* rendering/RenderLayer.cpp:
(WebCore::isPositionedContainer):
(WebCore::RenderLayer::enclosingPositionedAncestor):
(WebCore::RenderLayer::enclosingTransformedAncestor):
(WebCore::RenderLayer::convertToLayerCoords):
2009-08-28 Simon Fraser <simon.fraser@apple.com>
notifications and into the function level; if NPN_DestroyStream were
called from NPP_NewStream as the comment warns, we would be deleted at
the end of the block.
2009-10-12 Mark Rowe <mrowe@apple.com>
Merge r48957.
2009-09-30 Maciej Stachowiak <mjs@apple.com>
Build fix, not reviewed.
More Windows build fixes for https://bugs.webkit.org/show_bug.cgi?id=29943
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::willSendRequest):
2009-10-12 Mark Rowe <mrowe@apple.com>
Merge r48956.
2009-09-30 Maciej Stachowiak <mjs@apple.com>
Build fix, not reviewed.
Fix windows build for fix for https://bugs.webkit.org/show_bug.cgi?id=29943
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::willSendRequest):
2009-10-12 Mark Rowe <mrowe@apple.com>
Merge r48953.
2009-09-30 Maciej Stachowiak <mjs@apple.com>
Reviewed by Brady Eidson.
307 redirects should pass along http body and Content-Type header
https://bugs.webkit.org/show_bug.cgi?id=29943
Follow-up fix for:
<rdar://problem/3802660> SAP: 307 (Temporary Redirect) responses should use POST, not GET
Test: http/tests/loading/resources/redirect-methods-result.php
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::willSendRequest): Pass along http body and Content-Type header.
* platform/network/mac/ResourceHandleMac.mm:
(-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]): ditto
2009-10-12 Mark Rowe <mrowe@apple.com>
Merge r46548.
2009-07-29 Brady Eidson <beidson@apple.com>
Reviewed by Sam Weinig.
https://bugs.webkit.org/show_bug.cgi?id=27791
307 redirects of POSTs should use POST, not GET
Test: http/tests/loading/redirect-methods.html
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::willSendRequest):
* platform/network/mac/ResourceHandleMac.mm:
(-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
2009-10-12 Mark Rowe <mrowe@apple.com>
Merge r48369.
2009-09-14 Anders Carlsson <andersca@apple.com>
Reviewed by David Hyatt.
- Fix <rdar://problem/7182275>.
Make sure that the newly created scrollbar's style is up to date.
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenu::~PopupMenu):
Call setParent so that the scrollbar's parts are torn down correctly.
(WebCore::PopupMenu::show):
Call styleChanged.
2009-10-12 Mark Rowe <mrowe@apple.com>
Merge r46058.
2009-07-17 Alexey Proskuryakov <ap@webkit.org>
Reviewed by David Levin.
https://bugs.webkit.org/show_bug.cgi?id=27384
Random crashes in appcache/update-cache.html test
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::didReceiveResponse): Reorder code to avoid using a handle
after canceling it.
2009-10-12 Mark Rowe <mrowe@apple.com>
Merge r45945.
2009-07-15 Darin Adler <darin@apple.com>
Reviewed by John Sullivan.
After double-clicking a word, using Shift-arrow to select behaves unpredictably
https://bugs.webkit.org/show_bug.cgi?id=27177
rdar://problem/7034324
Test: editing/selection/extend-selection-after-double-click.html
The bug was due to the m_lastChangeWasHorizontalExtension flag, which was not
being cleared in many cases where it should have been.
* editing/SelectionController.cpp:
(WebCore::SelectionController::setSelection): Set m_lastChangeWasHorizontalExtension
to false. This catches all sorts of cases that don't flow through the modify function.
Before, the flag would reflect the last call to the modify function, which was not
necessarily the last selection change.
(WebCore::SelectionController::willBeModified): Rearrange function for clarity.
Remove code that sets m_lastChangeWasHorizontalExtension; that is now handled elsewhere.
(WebCore::SelectionController::modify): Call setLastChangeWasHorizontalExtension after
setSelection when setting up a trial selection controller, since setSelection now
clears that flag. Also changed both trial selection controller cases to set the flag,
although it's not strictly necessary in both cases. Added code to set
m_lastChangeWasHorizontalExtension when extending the selection, which used to be
handled in willBeModified. Now we need to do it after the selection change.
2009-10-12 Mark Rowe <mrowe@apple.com>
Merge r48725.
2009-09-24 Brady Eidson <beidson@apple.com>
Reviewed by Sam Weinig.
Merge changes from Mozilla's FTP directory parser.
<rdar://problem/7227620> and https://bugs.webkit.org/show_bug.cgi?id=29294
FTP layout tests not possible at this time.
https://bugs.webkit.org/show_bug.cgi?id=29719 tracks making them possible.
* loader/FTPDirectoryParser.cpp:
(WebCore::ParsingFailed):
(WebCore::parseOneFTPLine):
2009-10-08 Mark Rowe <mrowe@apple.com>
Merge r48521.
2009-09-18 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
Fix <rdar://problem/7050773> REGRESSION (r40098) Crash at
WebCore::RenderBlock::layoutBlock()
https://bugs.webkit.org/show_bug.cgi?id=29498
Test: accessibility/nested-layout-crash.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::updateBackingStore): Changed to
call Document::updateLayoutIgnorePendingStylesheets() instead of
calling RenderObject::layoutIfNeeded(). The latter requires that
there be no pending style recalc, which allows methods that call
Document::updateLayout() to be called during layout without risking
re-entry into layout.
* accessibility/mac/AccessibilityObjectWrapper.mm:
(-[AccessibilityObjectWrapper accessibilityActionNames]): Null-check
m_object after calling updateBackingStore(), since style recalc may
destroy the renderer, which destroys the accessibility object and
detaches it from the wrapper.
(-[AccessibilityObjectWrapper accessibilityAttributeNames]): Ditto.
(-[AccessibilityObjectWrapper accessibilityAttributeValue:]): Ditto.
(-[AccessibilityObjectWrapper accessibilityFocusedUIElement]): Ditto.
(-[AccessibilityObjectWrapper accessibilityHitTest:]): Ditto.
(-[AccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
Ditto.
(-[AccessibilityObjectWrapper accessibilityIsIgnored]): Ditto.
(-[AccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
Ditto.
(-[AccessibilityObjectWrapper accessibilityPerformPressAction]): Ditto.
(-[AccessibilityObjectWrapper accessibilityPerformIncrementAction]):
Ditto.
(-[AccessibilityObjectWrapper accessibilityPerformDecrementAction]):
Ditto.
(-[AccessibilityObjectWrapper accessibilityPerformAction:]): Ditto.
(-[AccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
Ditto.
(-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
Ditto.
(-[AccessibilityObjectWrapper accessibilityIndexOfChild:]): Ditto.
(-[AccessibilityObjectWrapper accessibilityArrayAttributeCount:]):
Ditto.
(-[AccessibilityObjectWrapper accessibilityArrayAttributeValues:index:maxCount:]):
Ditto.
2009-10-08 Mark Rowe <mrowe@apple.com>
Merge r48960.
2009-09-30 Oliver Hunt <oliver@apple.com>
Reviewed by Maciej Stachowiak.
reproducible freeze and crash on closing form popup at bosch-home.nl
https://bugs.webkit.org/show_bug.cgi?id=28948
showModalDialog calls getDirect on what is actually a window shell,
so ends up not getting a value (since no value can ever be placed
directly on the shell), which leads to incorrect behaviour.
We use a manual test rather than automatic as it was not
possible to get a modal run loop to work inside DRT.
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::showModalDialog):
* manual-tests/showModalDialog-returnValue.html: manual testcase.
2009-10-08 Mark Rowe <mrowe@apple.com>
Merge r46604.
2009-07-30 Chris Fleizach <cfleizach@apple.com>
Reviewed by Darin Adler.
Bug 27854 - crash at WebCore::AXObjectCache::notificationPostTimerFired
https://bugs.webkit.org/show_bug.cgi?id=27854
AccessibilityObjects need to be retained while waiting to fire their notifications, otherwise
they can disappear and then lead to crashes.
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::notificationPostTimerFired):
(WebCore::AXObjectCache::postNotification):
* accessibility/AXObjectCache.h:
2009-10-08 Mark Rowe <mrowe@apple.com>
Merge r48443.
2009-09-16 Dan Bernstein <mitz@apple.com>
Reviewed by Ada Chan.
Speculative fix for
<rdar://problem/6937089> Crashes at RenderWidget::destroy()
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::destroy): Avoid calling renderArena() if node()
is null. Add two assertions that can help determine how this crash
happens (in particular, whether node() becomes null during destroy() or
it is null before destroy() is called).
2009-10-08 Mark Rowe <mrowe@apple.com>
Merge r48359.
2009-09-12 Mark Rowe <mrowe@apple.com>
Reviewed by Dan Bernstein.
Fix <rdar://problem/6954546> Crashes in WebCore::RenderPart::setWidget below FrameLoader::loadPlugin.
The calls to FrameLoader::requestObject within RenderPartObject::updateWidget can result in a plug-in
being initialized. This can run cause arbitrary JavaScript to run and may result in the RenderPartObject
being detached from the render tree and destroyed, causing a crash like <rdar://problem/6954546>.
No test is possible until <rdar://problem/7090444> is fixed.
* rendering/RenderPartObject.cpp:
(WebCore::RenderPartObject::updateWidget): Ensure that we stay alive for the duration of plug-in initialization.
2009-10-08 Mark Rowe <mrowe@apple.com>
Merge r48358.
2009-09-12 Mark Rowe <mrowe@apple.com>
Reviewed by Dan Bernstein.
Add RenderWidgetProtector to simplify protecting a RenderWidget from destruction for the
duration of a function. Deploy it within RenderWidget.
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::setWidgetGeometry):
(WebCore::RenderWidget::updateWidgetPosition): Use a RefPtr rather than explicitly
ref'ing and deref'ing the node.
* rendering/RenderWidget.h:
* rendering/RenderWidgetProtector.h:
(WebCore::RenderWidgetProtector::RenderWidgetProtector):
(WebCore::RenderWidgetProtector::~RenderWidgetProtector):
2009-10-08 Mark Rowe <mrowe@apple.com>
Merge r46598.
=== End merge of nitro-extreme branch 2009-07-30 ===
2009-05-11 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig.
Make WebCore compile with the new JS number representation.
* ForwardingHeaders/runtime/JSAPIValueWrapper.h: Added.
* ForwardingHeaders/runtime/JSNumberCell.h: Removed.
* bindings/js/ScriptEventListener.cpp:
* bindings/scripts/CodeGeneratorJS.pm:
* bridge/c/c_instance.cpp:
=== Start merge of nitro-extreme branch 2009-07-30 ===
2009-09-14 Mark Rowe <mrowe@apple.com>
Merge r48367.
2009-09-11 Jon Honeycutt <jhoneycutt@apple.com>
<rdar://problem/7197644> WebKit should broadcast an MSAA event when
jumping to a named anchor
https://bugs.webkit.org/show_bug.cgi?id=28899
Reviewed by Adam Roben.
* accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::):
Added declaration for handleScrolledToAnchor(). Added a new entry to
the enum of accessibility notifications.
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::firstAccessibleObjectFromNode):
Code moved from AccessibilityRenderObject::internalLinkElement() and
refactored slightly; walks the tree until it finds a Node (with a
renderer) whose accessibility is not ignored.
* accessibility/AccessibilityObject.h:
Added a declaration for firstAccessibleObjectFromNode().
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::internalLinkElement):
Code moved to AccessibilityObject::firstAccessibleObjectFromNode().
* accessibility/chromium/AXObjectCacheChromium.cpp:
(WebCore::AXObjectCache::handleScrolledToAnchor):
Stubbed.
* accessibility/gtk/AXObjectCacheAtk.cpp:
(WebCore::AXObjectCache::handleScrolledToAnchor):
Stubbed.
* accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::postPlatformNotification):
Add a default case that returns early for notifications that Mac
doesn't handle.
(WebCore::AXObjectCache::handleScrolledToAnchor):
Stubbed.
* accessibility/win/AXObjectCacheWin.cpp:
(WebCore::AXObjectCache::handleScrolledToAnchor):
Post an AXScrolledToAnchor notification for the first accessible from
the anchor Node.
(WebCore::AXObjectCache::postPlatformNotification):
If the notification is AXFocusedUIElementChanged, fire an
EVENT_OBJECT_FOCUS. If the notification is AXScrolledToAnchor, fire
EVENT_SYSTEM_SCROLLINGSTART, matching Firefox.
(WebCore::AXObjectCache::handleFocusedUIElementChanged):
Code moved to postPlatformNotification().
* page/FrameView.cpp:
(WebCore::FrameView::scrollToAnchor):
Call AXObjectCache::handleScrolledToAnchor().
2009-09-04 Mark Rowe <mrowe@apple.com>
Merge r48085.
2009-09-04 Anders Carlsson <andersca@apple.com>
Reviewed by Adele Peterson.
<rdar://problem/7201063>
Detach any custom scrollbars before detaching the document.
* page/Frame.cpp:
(WebCore::Frame::setView):
2009-09-04 Mark Rowe <mrowe@apple.com>
Merge r48070.
2009-09-04 Anders Carlsson <andersca@apple.com>
Reviewed by David Hyatt and Adele Peterson.
(Based on a patch from Adele).
Fix <rdar://problem/7185875>.
* page/Frame.cpp:
(WebCore::Frame::setView):
Detach any custom scroll bars from the old view.
* page/FrameView.cpp:
(WebCore::FrameView::detachCustomScrollbars):
Simplify the check (and make it work when body is null) by just checking that the scroll bar owner is
not a RenderPart object.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::destroy):
ASSERT that frame() is not null here and also add a null check so that release builds won't crash.
2009-09-04 Anders Carlsson <andersca@apple.com>
Reviewed by Adele Petersen.
- Fix <rdar://problem/7192902>
Never throw away the first frame in an animation.
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::destroyDecodedData):
2009-09-04 Mark Rowe <mrowe@apple.com>
Merge r48062.
2009-09-04 Anders Carlsson <andersca@apple.com>
Reviewed by Darin Adler and Steve Falkenburg.
Fix <rdar://problem/7192902>.
Add the necessary plumbing for having QTMovieWin use WebCore timers.
* platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
(WebCore::TaskTimer::initialize):
Create the timer and call QTMovieWin::setTaskTimerFuncs.
(WebCore::TaskTimer::setTaskTimerDelay):
Start the timer.
(WebCore::TaskTimer::stopTaskTimer):
Stop the timer.
(WebCore::TaskTimer::fired):
Call QTMovieWin::taskTimerFired().
(WebCore::MediaPlayerPrivate::load):
Initialize the Task timer.
* platform/graphics/win/QTMovieWin.cpp:
(updateTaskTimer):
Call the global stopTaskTimer function and setTaskTimerDelay.
(QTMovieWin::taskTimerFired):
Make this a member function.
(QTMovieWin::setTaskTimerFuncs):
Set the global function pointers.
(QTMovieWin::initializeQuickTime):
(DllMain):
No need to use the QT shared timer.
* platform/graphics/win/QTMovieWin.h:
2009-08-22 Mark Rowe <mrowe@apple.com>
Merge r47679.
2009-08-22 Adele Peterson <adele@apple.com>
Reviewed by Anders Carlsson.
Fix for <rdar://problem/7161656> Crash in RenderObject::destroy when using custom scrollbars
Custom scrollbars normally get detached when a document gets detached. In this case, a crash was happening when the document had gone into the page cache
and then was getting destroyed without proper scrollbar teardown. This change makes custom scrollbars get detached when the document enters the cache.
I couldn't figure out a way to reliably cause this to happen in DRT, since the reproducible case relies on the cache being purged at a particular time.
* history/CachedFrame.cpp: (WebCore::CachedFrame::CachedFrame): Detach custom scrollbars when the CachedFrame is created.
They'll get reattached when the document comes out of the page cache.
* page/FrameView.cpp: (WebCore::FrameView::~FrameView): Added some asserts to catch this problem earlier in debug builds.
2009-08-22 Mark Rowe <mrowe@apple.com>
Merge r47663.
2009-08-21 Adele Peterson <adele@apple.com>
Reviewed by Mark Rowe.
<rdar://problem/7162322> Custom style sheet ignored if UAC is enabled
* platform/win/SharedBufferWin.cpp: (WebCore::SharedBuffer::createWithContentsOfFile):
No need to open the file with write access. Only read access is needed.
2009-08-20 Mark Rowe <mrowe@apple.com>
Merge r47606.
2009-08-20 Anders Carlsson <andersca@apple.com>
Reviewed by Dan Bernstein.
<rdar://problem/7159016> Popup menus don't disappear when you click outside the window.
Revert r47535 which introduced this.
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenu::show):
(WebCore::PopupWndProc):
2009-08-19 Mark Rowe <mrowe@apple.com>
Merge r47535.
2009-08-19 Anders Carlsson <andersca@apple.com>
Reviewed by Darin Adler.
- Fix <rdar://problem/7155710>
HTML selects on windows cause containing window to become inactive when opened.
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenu::show):
Pass SWP_NOACTIVATE to SetWindowPos, remove AW_ACTIVATE from AnimateWindow and pass
SW_SHOWNOACTIVATE to ShowWindow.
(WebCore::PopupWndProc):
Prevent mouse activation from activating the window.
2009-08-19 Mark Rowe <mrowe@apple.com>
Merge r47531.
2009-08-19 Anders Carlsson <andersca@apple.com>
Reviewed by David Hyatt and Dan Bernstein.
- Fix <rdar://problem/7152589> Stylable scrollbar corners aren't working.
* page/FrameView.cpp:
(WebCore::FrameView::FrameView):
Initialize m_scrollCorner.
(WebCore::FrameView::~FrameView):
Assert that m_scrollCorner is null.
(WebCore::FrameView::detachCustomScrollbars):
Destroy m_scrollCorner.
(WebCore::FrameView::invalidateScrollCorner):
Invalidate the scroll corner.
(WebCore::FrameView::updateScrollCorner):
Create/destroy the scroll corner.
(WebCore::FrameView::paintScrollCorner):
Paint the scroll corner.
* page/FrameView.h:
(WebCore::FrameView::isFrameViewScrollCorner):
Return whether a RenderScrollbarPart is the frame view scroll corner.
* platform/ScrollView.cpp:
(WebCore::ScrollView::updateScrollbars):
Go ahead and update the scroll corner.
(WebCore::ScrollView::setScrollbarsSuppressed):
Pass the scroll corner rect to invalidateRect.
(WebCore::ScrollView::scrollCornerRect):
Return the scroll corner rect.
* platform/ScrollView.h:
* rendering/RenderScrollbarPart.cpp:
(WebCore::RenderScrollbarPart::imageChanged):
If this scrollbar part is the frame view scroll corner, invalidate it.
2009-08-18 Mark Rowe <mrowe@apple.com>
Merge r47482.
2009-08-18 Anders Carlsson <andersca@apple.com>
Reviewed by Adele Peterson, David Hyatt and Dan Bernstein.
- Fix <rdar://problem/7152727>
If a page has custom scroll bars, they will not update correctly when the window is activated/deactivated.
* page/FrameView.cpp:
(WebCore::FrameView::hasCustomScrollbars):
Check if the frame view or any of its subviews have custom scroll bars.
(WebCore::FrameView::updateControlTints):
Go ahead and update control tints if the frame view has custom scroll bars.
* page/FrameView.h:
2009-08-18 Steve Falkenburg <sfalken@apple.com>
Merge r47438.
2009-08-18 Anders Carlsson <andersca@apple.com>
Reviewed by John Sullivan and David Hyatt.
Fix <rdar://problem/7147996>
* platform/ScrollView.cpp:
(WebCore::ScrollView::setHasHorizontalScrollbar):
(WebCore::ScrollView::setHasVerticalScrollbar):
Update the style of the scroll bars.
* rendering/RenderScrollbar.cpp:
(WebCore::RenderScrollbar::RenderScrollbar):
Calculate the size of the scrollbar and set it as the frame size.
2009-08-17 Steve Falkenburg <sfalken@apple.com>
Merge r47311.
2009-08-13 Jon Honeycutt <jhoneycutt@apple.com>
Part of <rdar://problem/6218721> No MSAA focus events fired for Webkit
nightly (20866)
https://bugs.webkit.org/show_bug.cgi?id=20866
Reviewed by Oliver Hunt.
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::AXObjectCache):
Changed to take a pointer to its owner document. This is used by
AXObjectCache::handleFocusedUIElementChanged().
(WebCore::AXObjectCache::focusedUIElementForPage):
Code moved from AccessibilityRenderObject::focusedUIElement(). Modified
to be a static function and to take a pointer to a Page.
(WebCore::AXObjectCache::platformGenerateAXID):
Moved the code to generate the next AXID from getAXID() to here. Added
a #if to make this non-WIN only, because Windows has its own
implementation.
(WebCore::AXObjectCache::getAXID):
Ensure that we generate a positive AXID, ranging from 1 to LONG_MAX.
* accessibility/AXObjectCache.h:
Add a declaration for Document and Page. Removed the declaration of
AccessibilityObject, because we include the header. Reordered the
declaration of Node alphabetically. Moved the typedef for AXID to
AccessibilityObject. Removed some trailing whitespace. Added a member
variable to hold a pointer to the owner Document.
(WebCore::AXObjectCache::AXObjectCache):
Changed to take a pointer to its owner Document.
(WebCore::AXObjectCache::focusedUIElementForPage):
Added; code moved from AccessiblityRenderObject::focusedUIElement().
Returns the focused element with respect to accessibility.
(WebCore::AXObjectCache::platformGenerateAXID):
Declare a function to generate an AXID.
(WebCore::AXObjectCache::objectFromAXID):
Return the AccessibilityObject with the given AXID.
* accessibility/AccessibilityObject.h:
Moved the typedef for AXID from AXObjectCache to here. Made the m_id
member use the typedef.
(WebCore::AccessibilityObject::axObjectID):
Changed the return type to use the typedef.
(WebCore::AccessibilityObject::setAXObjectID):
Changed the argument type to use the typedef.
* accessibility/AccessibilityRenderObject.cpp:
Removed some unneeded #includes.
(WebCore::AccessibilityRenderObject::focusedUIElement):
Moved the code to AXObjectCache::focusedUIElementForPage(), which we now
call.
* accessibility/win/AXObjectCacheWin.cpp:
(WebCore::AXObjectCache::platformGenerateAXID):
Ensure that we generate an AXID that is in the range 1 to LONG_MAX.
(WebCore::AXObjectCache::handleFocusedUIElementChanged):
If the Document has no Page, return. If the Page has not focused
element (respecting accessibility), return. Assert that the
accessibility of the focused element is not ignored, and that the
object's AXID will be negative and fit into a LONG when negated.
Broadcast a focus event for the object.
* dom/Document.cpp:
(WebCore::Document::axObjectCache):
Pass this when creating the AXObjectCache.
(WebCore::Document::setFocusedNode):
Call AXObjectCache::handleFocusedUIElementChanged() on Windows.
2009-07-27 Mark Rowe <mrowe@apple.com>
Merge r46449.
Reviewed by Darin Adler.
<rdar://problem/7091036> REGRESSION: Microsoft Messenger crashes during file send/receive due to use of WebKit on non-main thread
Add a method for detecting if we're being used within Microsoft Messenger.
* WebCore.base.exp: Export applicationIsMicrosoftMessenger and sort existing entries.
* platform/mac/RuntimeApplicationChecks.h:
* platform/mac/RuntimeApplicationChecks.mm:
(WebCore::applicationIsMicrosoftMessenger):
2009-07-23 Mark Rowe <mrowe@apple.com>
Merge r46246.
2009-07-22 Oliver Hunt <oliver@apple.com>
Reviewed by Adele Peterson.
Null deref in JSObject::mark due to null xhr wrapper
https://bugs.webkit.org/show_bug.cgi?id=27565
Make event target binding for appcache and xhr behave in the same way as
it does for all other events.
No test as I couldn't make a testcase which was remotely reliable.
* bindings/js/JSEventTarget.cpp:
(WebCore::toJS):
2009-07-20 Mark Rowe <mrowe@apple.com>
Merge r46039.
2009-07-17 Brady Eidson <beidson@apple.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=26496
Let WebCore always enforce the connection-per-host limit itself.
* loader/loader.cpp:
(WebCore::Loader::Host::servePendingRequests):
2009-07-16 Mark Rowe <mrowe@apple.com>
Merge r45979.
2009-07-16 Brady Eidson <beidson@apple.com>
Reviewed by Antti Koivisto.
Patch by Brady Eidson and Alexey Proskuryakov.
https://bugs.webkit.org/show_bug.cgi?id=26496
<rdar://problem/7065391> Microsoft Outlook Web Access fails because XHR stream connection blocks script loading/revalidation
After refreshing a page and when all CachedResources on that page are in validation mode, they got an exemption
from the connection-per-host limit. Removing that exemption makes the test case load smoothly after reloads.
* loader/loader.cpp:
(WebCore::Loader::Host::servePendingRequests): Remove the resourceIsCacheValidator exemption to the connection-per-host limit.
2009-07-15 Steve Falkenburg <sfalken@apple.com>
Merge r45892.
2009-07-14 Steve Falkenburg <sfalken@apple.com>
Reorganize JavaScriptCore headers into:
API: include/JavaScriptCore/
Private: include/private/JavaScriptCore/
Reviewed by Darin Adler.
* WebCore.vcproj/QTMovieWin.vcproj:
* WebCore.vcproj/WebCoreCommon.vsprops:
* WebCore.vcproj/build-generated-files.sh:
2009-07-14 Mark Rowe <mrowe@apple.com>
Merge r45850.
2009-07-13 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
Image rendered as layer contents looks different from image rendered via CG.
<rdar://problem/7048830>
Fix a visible color profile difference between between images rendered via Core Graphics
and those rendered via a compositing layer, by assigning the GenericRGB profile to
untagged images (which come through as having the DeviceRGB profile) when they are set
as layer contents.
Test: compositing/color-matching/image-color-matching.html
* platform/graphics/mac/GraphicsLayerCA.mm:
(WebCore::GraphicsLayerCA::setContentsToImage):
2009-07-14 Mark Rowe <mrowe@apple.com>
Merge r45836.
2009-07-13 Sam Weinig <sam@webkit.org>
Reviewed by Darin Adler.
Fix for https://bugs.webkit.org/show_bug.cgi?id=27234
<rdar://problem/7054356>
Add null page check in HTMLDocument::hasFocus.
Test: fast/dom/HTMLDocument/hasFocus-frameless-crash.html
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::hasFocus): Add page null check.
(WebCore::HTMLDocument::createTokenizer): Cleanup page null check.
2009-07-14 Mark Rowe <mrowe@apple.com>
Merge r45832.
2009-07-13 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
spellcheck="false" is ignored
<rdar://problem/7054177>
* editing/Editor.cpp:
(WebCore::markMisspellingsOrBadGrammar): Moved code to check the
spellcheck attribute from here...
(WebCore::Editor::spellCheckingEnabledInFocusedNode): ...to here.
(WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): Bail out
if spell chcking is disabled by the spellcheck attribute.
* editing/Editor.h:
2009-07-12 Mark Rowe <mrowe@apple.com>
Merge r45758.
2009-07-11 Eric Carlson <eric.carlson@apple.com>
Reviewed by Antti Koivisto.
HTMLMediaElement.canPlayType "maybe" and "probably" reversed
https://bugs.webkit.org/show_bug.cgi?id=27186
* platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivate::supportsType):
Return "probably" if type has codecs parameter.
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::supportsType):
Ditto.
* platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
(WebCore::MediaPlayerPrivate::supportsType):
Ditto.
2009-07-12 Mark Rowe <mrowe@apple.com>
Merge r45755.
2009-07-11 Brady Eidson <beidson@apple.com>
Reviewed by Mark Rowe.
A worker-thread inspired follow-up for:
https://bugs.webkit.org/show_bug.cgi?id=26496 and <rdar://problem/7046520>
REGRESSION: XHR stream connection blocks iFrame loading and resource downloading
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::loadRequestAsynchronously): Don't perform the XHR compensation when the XHR
is running on a worker thread. Accessing the global Cache data structures from a non-main thread is
not currently supported.
2009-07-12 Mark Rowe <mrowe@apple.com>
Merge r45744.
2009-07-10 Eric Carlson <eric.carlson@apple.com>
Reviewed by Simon Fraser.
<rdar://problem/7049066>.
Update SnowLeopard media controller layout.
* css/mediaControlsQT.css:
Update for new layout.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::movieLoadType):
Added to replace isStreaming.
* html/HTMLMediaElement.h:
Declare movieLoadType, remove isStreaming.
* rendering/MediaControlElements.cpp:
(WebCore::MediaControlStatusDisplayElement::update):
Use movieLoadType instead of isStreaming.
(WebCore::MediaControlTimelineContainerElement::rendererIsNeeded):
MediaControlElement is the base class, not HTMLInputElement.
(WebCore::MediaControlStatusDisplayElement::rendererIsNeeded):
Ditto.
(WebCore::MediaControlRewindButtonElement::rendererIsNeeded):
Don't display rewind button for live streams.
(WebCore::MediaControlReturnToRealtimeButtonElement::rendererIsNeeded):
MediaControlInputElement is the base class, not HTMLInputElement.
* rendering/MediaControlElements.h:
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::getMediaUIPartStateFlags):
New, return wkDrawMediaUIPart flags.
(WebCore::RenderThemeMac::paintMediaFullscreenButton):
(WebCore::RenderThemeMac::paintMediaMuteButton):
(WebCore::RenderThemeMac::paintMediaPlayButton):
(WebCore::RenderThemeMac::paintMediaSeekBackButton):
(WebCore::RenderThemeMac::paintMediaSeekForwardButton):
(WebCore::RenderThemeMac::paintMediaSliderTrack):
(WebCore::RenderThemeMac::paintMediaSliderThumb):
(WebCore::RenderThemeMac::paintMediaRewindButton):
(WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
(WebCore::RenderThemeMac::paintMediaControlsBackground):
(WebCore::RenderThemeMac::paintMediaCurrentTime):
(WebCore::RenderThemeMac::paintMediaTimeRemaining):
Use getMediaUIPartStateFlags.
2009-07-12 Mark Rowe <mrowe@apple.com>
Merge r45734.
2009-07-10 Brady Eidson <beidson@apple.com>
Style cleanup over my last patch.
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::~XMLHttpRequest):
2009-07-12 Mark Rowe <mrowe@apple.com>
Merge r45733.
2009-07-10 Kevin McCullough <kmccullough@apple.com>
Reviewed by Geoffrey Garen.
* inspector/JavaScriptCallFrame.cpp:
(WebCore::JavaScriptCallFrame::dynamicGlobalObject):
* inspector/JavaScriptCallFrame.h: New helper method, used below.
* inspector/JavaScriptDebugServer.cpp:
(WebCore::JavaScriptDebugServer::detach): In the special case
where we detach from a window currently executing JavaScript,
manually tear down our representation of the JavaScript
call stack, since we won't get any more callbacks from JavaScriptCore
to automatically tear it down. It's too bad that WebCore is
responsible for this kind of tracking -- in the future, it would
be nice if more of the breakpoint handling was inside of JavaScriptCore.
2009-07-12 Mark Rowe <mrowe@apple.com>
Merge r45732.
2009-07-10 Brady Eidson <beidson@apple.com>
Reviewed by Antti Koivisto.
https://bugs.webkit.org/show_bug.cgi?id=26496 and <rdar://problem/7046520>
REGRESSION: XHR stream connection blocks iFrame loading and resource downloading
With this test we ended up going over the maximum-connections-per-host limit that CFNetwork expected.
When that happened, the first request that was over the limit ended up in a bizarre state where it
wasn't fully serviced until after the long running XHR was complete.
Loader and Loader::Host work together to try to not exceed the max-connection limit but non-cache
resources - such as XHR - could still end up causing this limit to be exceeded.
This fix adds a workaround specifically for XHR while we hash out a more thorough solution that will
handle this at the resource handle level.
* loader/loader.cpp:
(WebCore::Loader::nonCacheRequestInFlight):
(WebCore::Loader::nonCacheRequestComplete):
(WebCore::Loader::Host::Host):
(WebCore::Loader::Host::nonCacheRequestInFlight):
(WebCore::Loader::Host::nonCacheRequestComplete):
(WebCore::Loader::Host::servePendingRequests): Take nonCacheRequestsInFlight into account.
* loader/loader.h:
(WebCore::Loader::Host::processingResource): Take nonCacheRequestsInFlight into account.
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::XMLHttpRequest):
(WebCore::XMLHttpRequest::~XMLHttpRequest):
(WebCore::XMLHttpRequest::loadRequestAsynchronously): Bump the nonCacheRequestInFlight count.
(WebCore::XMLHttpRequest::didFail): Decrement that count if the Loader was notified.
(WebCore::XMLHttpRequest::didFinishLoading): Ditto.
2009-07-12 Mark Rowe <mrowe@apple.com>
Merge r45728.
2009-07-10 Beth Dakin <bdakin@apple.com>
Reviewed by Anders Carlsson.
The rest of the fix for <rdar://problem/7038831> REGRESSION (TOT):
In Mail, a crash occurs at WebCore::Widget::afterMouseDown() after
clicking To Do's close box
Make the Widget* in passMouseDownEventToWidget() a RefPtr.
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::passMouseDownEventToWidget):
2009-07-12 Mark Rowe <mrowe@apple.com>
Merge r45721.
2009-07-10 Steve Falkenburg <sfalken@apple.com>
<rdar://problem/7048741> REGRESSION: Error about missing SwMenuX.dll opening pages with Shockwave
Use altered search path while loading plug-ins. This modifies the DLL search order
to look in the directory containing the plug-in even if a call to SetDllDirectory
was previously made. Use of SetDllDirectory removes the current directory from the search path,
breaking the previous strategy for locating any dependent DLLs of the plug-in.
Reviewed by Jon Honeycutt.
* plugins/win/PluginPackageWin.cpp:
(WebCore::PluginPackage::load): Use LoadLibraryEx with LOAD_WITH_ALTERED_SEARCH_PATH
2009-07-12 Mark Rowe <mrowe@apple.com>
Merge r45715.
2009-07-10 Simon Fraser <simon.fraser@apple.com>
Reviewed by John Sullivan.
Fix crash when changing the zoom level in http://iphone.akamai.com/
<rdar://problem/7029077>
RenderLayerBacking's paintIntoLayer() method called updateLayerListsIfNeeded(),
which could potentially destroy that compositing layer, causing a crash.
Prevent this from happening by not doing a compositing update from paintIntoLayer().
The existing updateLayerListsIfNeeded() was renamed to updateCompositingAndLayerListsIfNeeded(),
and still does the compositing update. The new updateLayerListsIfNeeded() does not touch
compositing layers, and is still called from paintIntoLayer().
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::hitTestLayer):
(WebCore::RenderLayer::updateLayerListsIfNeeded):
(WebCore::RenderLayer::updateCompositingAndLayerListsIfNeeded):
* rendering/RenderLayer.h:
2009-07-12 Mark Rowe <mrowe@apple.com>
Merge r45710.
2009-07-10 Dan Bernstein <mitz@apple.com>
Reviewed by Simon Fraser.
- fix https://bugs.webkit.org/show_bug.cgi?id=27137
<rdar://problem/7043124> REGRESSION (r44311): Reproducible crash due
to infinite recursion into FrameLoader::gotoAnchor() ->
FrameView::layout()
Test: fast/loader/goto-anchor-infinite-layout.html
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::gotoAnchor): Moved the code to update layout,
find the renderer to scroll to, and scroll from here to methods on
FrameView, and replaced it with a call to
FrameView::maintainScrollPositionAtAnchor().
(WebCore::FrameLoader::completed): Call maintainScrollPositionAtAnchor()
instead of setLockedToAnchor().
* page/FrameView.cpp:
(WebCore::FrameView::FrameView): Removed initialization of
m_lockedToAnchor.
(WebCore::FrameView::reset): Reset m_maintainScrollPositionAnchor instead
of m_lockedToAnchor.
(WebCore::FrameView::layout): Removed the code related to scrolling to
the anchor from here, because scrolling can trigger events which
invalidate the layout, and as such, belongs with the post-layout tasks.
(WebCore::FrameView::maintainScrollPositionAtAnchor): Added. When called
with a node scrolls the view to the top of that node and maintains it
scrolled to the top of the node during subsequent layouts, until
this function is called with 0 or other things trigger scrolling.
(WebCore::FrameView::scrollRectIntoViewRecursively): Reset
m_maintainScrollPositionAnchor.
(WebCore::FrameView::setScrollPosition): Ditto.
(WebCore::FrameView::scrollToAnchor): Added. Scrolls to the top of
m_maintainScrollPositionAnchor, if it is set.
(WebCore::FrameView::performPostLayoutTasks): Call scrollToAnchor().
(WebCore::FrameView::setWasScrolledByUser): Reset
m_maintainScrollPositionAnchor.
* page/FrameView.h: Removed lockedToAnchor(), setLockedToAnchor(),
and m_lockedToAnchor. Added maintainScrollPositionAtAnchor() and
m_maintainScrollPositionAnchor.
2009-07-10 Beth Dakin <bdakin@apple.com>
<rdar://problem/7045243> Roll text metrics change out
* css/html.css:
* platform/graphics/SimpleFontData.cpp:
(WebCore::SimpleFontData::SimpleFontData):
* platform/graphics/SimpleFontData.h:
* platform/graphics/mac/SimpleFontDataMac.mm:
* platform/graphics/win/SimpleFontDataCGWin.cpp:
* platform/graphics/win/SimpleFontDataWin.cpp:
(WebCore::SimpleFontData::initGDIFont):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::calcPrefWidths):
* rendering/RenderTextControlMultiLine.cpp:
(WebCore::RenderTextControlMultiLine::createInnerTextStyle):
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::preferredContentWidth):
2009-07-11 Mark Rowe <mrowe@apple.com>
<rdar://problem/7047403> Disable channel messaging
* Configurations/FeatureDefines.xcconfig:
* WebCore.vcproj/WebCoreCommon.vsprops:
* WebCore.vcproj/build-generated-files.sh:
2009-07-11 Mark Rowe <mrowe@apple.com>
<rdar://problem/7048551> Disable datagrid
* Configurations/FeatureDefines.xcconfig:
* WebCore.vcproj/WebCoreCommon.vsprops:
* WebCore.vcproj/build-generated-files.sh:
2009-07-10 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Holger Freyther.
Enable HTML 5 Messaging to fix message channel Qt DRT failures in
fast/events.
* WebCore.pro:
2009-07-09 Roland Steiner <rolandsteiner@google.com>
Reviewed by Maciej Stachowiak.
added InlineBox::isLeaf()
firstLeafChild()/lastLeafChild() not virtual and not callable on InlineBox anymore.
firstLeafChild()/lastLeafChild() will no longer return a node outside of the given subtree.
Removed firstLeafChildAfterBox()/lastLeafChildBeforeBox()
Removed potentially quadratic behavior if all nodes before/after a given box are empty InlineFlowBoxes
Currently, these methods are called on RootInlineBox objects only, so above changes should not have
any observable effect (only the removal of the square performance behavior could apply,
but the conditions for that are probably of a rather theoretical nature).
* rendering/InlineBox.cpp:
(WebCore::InlineBox::nextLeafChild):
(WebCore::InlineBox::prevLeafChild):
* rendering/InlineBox.h:
(WebCore::InlineBox::isLeaf):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::firstLeafChild):
(WebCore::InlineFlowBox::lastLeafChild):
* rendering/InlineFlowBox.h:
(WebCore::InlineFlowBox::firstChild):
(WebCore::InlineFlowBox::lastChild):
(WebCore::InlineFlowBox::isLeaf):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::closestLeafChildForXPos):
2009-07-09 Roland Steiner <rolandsteiner@google.com>
Reviewed by Maciej Stachowiak.
Added InlineBox::baselinePosition() and lineHeight() methods
(adapted remaining code accordingly to use those methods)
No change in functionality.
* rendering/InlineBox.h:
(WebCore::InlineBox::baselinePosition):
(WebCore::InlineBox::lineHeight):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::adjustMaxAscentAndDescent):
(WebCore::InlineFlowBox::computeLogicalBoxHeights):
(WebCore::InlineFlowBox::placeBoxesVertically):
2009-07-09 Oliver Hunt <oliver@apple.com>
Reviewed by Maciej Stachowiak.
Bug 27142 - canPlayType() should return empty string for unsupported content
<https://bugs.webkit.org/show_bug.cgi?id=27142>
Return "" instead of "no" for unsupport media types.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::canPlayType):
2009-07-09 Roland Steiner <rolandsteiner@google.com>
Reviewed by Maciej Stachowiak.
Implement the part of HTML5 spec that deals with parsing of <rp> and <rt> tags
in that their end tags are optional if followed by <rp>/<rt>.
Also specify a new accessibility role "annotation" for <rp> and <rt>.
Affected code parts are not enclosed in #IF ENABLE(RUBY), since the parsing
is not affected by whether ruby is rendered properly or not (in fact, it may
be more profound without ruby layouting, since the contents of <rp> are not hidden).
Test: fast/ruby/parse-rp.html
* accessibility/AccessibilityObject.h:
(WebCore::):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::roleValue):
* html/HTMLElement.cpp:
(WebCore::HTMLElement::endTagRequirement):
(WebCore::HTMLElement::tagPriority):
(WebCore::inlineTagList):
* html/HTMLParser.cpp:
(WebCore::HTMLParser::rpCreateErrorCheck):
(WebCore::HTMLParser::rtCreateErrorCheck):
(WebCore::HTMLParser::getNode):
* html/HTMLParser.h:
* html/HTMLTagNames.in:
2009-07-09 Dmitry Titov <dimich@chromium.org>
Not reviewed, fix for previous commit.
The change http://trac.webkit.org/changeset/45695 did not correctly
enabled GTL and QT build flags. This caused layout tests failure.
This is speculative fix for those failures.
* GNUmakefile.am: added ENABLE_CHANNEL_MESSAGING flag.
* WebCore.pro: ditto.
* page/DOMWindow.idl: touched to cause recompile.
* workers/WorkerContext.idl: ditto.
2009-07-09 Drew Wilson <atwilson@google.com>
Reviewed by Alexey Proskuryakov.
https://bugs.webkit.org/show_bug.cgi?id=26903
Turned on CHANNEL_MESSAGING by default because the MessageChannel API
is now implemented for Web Workers and is reasonably stable.
Tests: fast/events/message-channel-gc-2.html
fast/events/message-channel-gc-3.html
fast/events/message-channel-gc-4.html
fast/events/message-channel-gc.html
fast/events/message-channel-listener-circular-ownership.html
fast/events/message-port-clone.html
fast/events/message-port-constructor-for-deleted-document.html
fast/events/message-port-deleted-document.html
fast/events/message-port-deleted-frame.html
fast/events/message-port-inactive-document.html
fast/events/message-port-no-wrapper.html
fast/events/message-port.html
fast/workers/worker-cloneport.html
fast/workers/worker-messageport-gc.html
fast/workers/worker-messageport.html
* Configurations/FeatureDefines.xcconfig: Turned on ENABLE_CHANNEL_MESSAGING.
* WebCore/WebCore.vcproj/WebCoreCommon.vsprops: ditto.
* WebCore/WebCore.vcproj/build-generated-files.sh: ditto.
* WebCore/page/DOMWindow.idl: touch the file to cause re-generation of headers.
* WebCore/workers/WorkerContext.idl: ditto.
2009-07-09 Pierre d'Herbemont <pdherbemont@apple.com>
Reviewed by Simon Fraser.
Full page zoom breaks remaining and elapsed time display in the <video> controller.
https://bugs.webkit.org/show_bug.cgi?id=27123
We are changing the size of the time remaining and time elapsed field, to
automatically hide them, when the controller is too short.
Because we toggle the size between 0 and the previous value of the
controller, we miss any width change that may occur during full page zoom,
and we fail to restore a correct width.
This change fixes that problem by using a cloned style on which we
set the width to 0, and restoring the previous style when going back to
the normal width.
We take care about properly using the cloned style or the pseudo style,
by overriding styleForElement().
* rendering/MediaControlElements.cpp:
(WebCore::MediaControlElement::styleForElement):
(WebCore::MediaControlElement::attach):
(WebCore::MediaControlElement::updateStyle):
(WebCore::MediaControlInputElement::styleForElement):
(WebCore::MediaControlInputElement::attach):
(WebCore::MediaControlInputElement::updateStyle):
(WebCore::MediaControlTimeDisplayElement::MediaControlTimeDisplayElement):
(WebCore::MediaControlTimeDisplayElement::styleForElement):
(WebCore::MediaControlTimeDisplayElement::setVisible):
* rendering/MediaControlElements.h:
* rendering/RenderMedia.cpp:
(WebCore::RenderMedia::shouldShowTimeDisplayControls): Make sure
we take in account the zoom level when deciding if we should hide the
ellapsed and remaining time.
2009-07-09 Michael Nordman <michaeln@google.com>
Reviewed by Darin Adler.
Fix chromium build bustage due to Widget being a RefCounted class.
https://bugs.webkit.org/show_bug.cgi?id=27139
* platform/chromium/PopupMenuChromium.cpp:
* platform/chromium/PopupMenuChromium.h:
2009-07-09 Chris Fleizach <cfleizach@apple.com>
Reviewed by Darin Adler.
Bug 27130 - Need to implement ARIA role="toolbar"
https://bugs.webkit.org/show_bug.cgi?id=27130
Test: platform/mac/accessibility/aria-toolbar.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::RoleEntry::):
* accessibility/mac/AccessibilityObjectWrapper.mm:
(-[AccessibilityObjectWrapper roleDescription]):
2009-07-09 Dimitri Glazkov <dglazkov@chromium.org>
Reviewed by Darin Fisher.
[Chromium] Upstream WebCore.gypi, the project file for Chromium build.
https://bugs.webkit.org/show_bug.cgi?id=27135
* WebCore.gypi: Added.
2009-07-09 Jon Honeycutt <jhoneycutt@apple.com>
A more robust fix for <rdar://problem/6930280> Reproducible crash at
USA Today photo gallery
Reviewed by Steve Falkenburg.
* plugins/win/PluginMessageThrottlerWin.cpp:
(WebCore::PluginMessageThrottlerWin::messageThrottleTimerFired):
Protect the PluginView from destruction before calling its window proc.
2009-07-09 Jon Honeycutt <jhoneycutt@apple.com>
<rdar://problem/6978804> WER #16: Repro Access Violation in
WebCore::PluginView::bindingInstance (1310178023)
Reviewed by Darin Adler.
* plugins/PluginView.cpp:
(WebCore::PluginView::bindingInstance):
Protect the PluginView from destruction before calling NPN_GetValue. If
the renderer for the PluginView was destroyed during the call, and the
PluginView's ref count is now 1, return null.
2009-07-09 Jon Honeycutt <jhoneycutt@apple.com>
Speculative fix for <rdar://problem/6991251> WER #13: Crash in
WebKit!WebCore::PluginView::performRequest+203 (1311461169)
Reviewed by Darin Adler.
* plugins/PluginView.cpp:
(WebCore::PluginView::performRequest):
Protect the PluginView from destruction before performing a load.
Removed some trailing whitespace.
2009-07-09 Jon Honeycutt <jhoneycutt@apple.com>
Build fix.
* inspector/JavaScriptDebugServer.cpp:
(WebCore::JavaScriptDebugServer::setJavaScriptPaused):
2009-07-09 Beth Dakin and Jon Honeycutt <bdakin@apple.com>
Reviewed by Dave Hyatt.
Make Widget RefCounted to fix or make fixable:
<rdar://problem/7038831> REGRESSION (TOT): In Mail, a crash occurs
at WebCore::Widget::afterMouseDown() after clicking To Do's close
box
<rdar://problem/6978804> WER #16: Repro Access Violation in
WebCore::PluginView::bindingInstance (1310178023)
-and-
<rdar://problem/6991251> WER #13: Crash in WebKit!
WebCore::PluginView::performRequest+203 (1311461169)
* loader/EmptyClients.h:
(WebCore::EmptyFrameLoaderClient::createPlugin):
Changed to return PassRefPtr
(WebCore::EmptyFrameLoaderClient::createJavaAppletWidget):
Ditto.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadSubframe):
(WebCore::FrameLoader::loadPlugin):
Make the widget variable a RefPtr. Use .get() when passing it to
RenderPart::setWidget().
(WebCore::FrameLoader::createJavaAppletWidget):
Make the widget variable a RefPtr.
* loader/FrameLoader.h:
Changed the return type of createJavaAppletWidget().
* loader/FrameLoaderClient.h:
Change the return types of createPlugin() and
createJavaAppletWidget().
* page/Frame.cpp:
(WebCore::Frame::createView):
No need to call .get() since setWidget() takes a RefPtr.
* page/FrameView.cpp:
(WebCore::FrameView::layoutIfNeededRecursive):
children() now returns a HashSet of RefPtrs.
* page/FrameView.h:
Remove inheritance from RefCounted; we pick this up from ScrollView
through Widget.
* platform/ScrollView.cpp:
(WebCore::ScrollView::addChild):
addChild() now takes a PassRefPtr and m_children now keeps a
HashSet of RefPtrs.
* platform/ScrollView.h:
ScrollView constructor is now protected.
(WebCore::ScrollView::children):
m_children is now a HashSet of RefPtrs.
* platform/Scrollbar.h:
Remove inheritance from RefCounted; we pick this up from ScrollView
through Widget.
* platform/Widget.h:
Inherit from RefCounted. Cleaned up some whitespace. Make m_widget
a RefPtr.
* plugins/PluginView.cpp:
(WebCore::PluginView::create):
Adopt the PluginView when returning it.
* plugins/PluginView.h:
Changed create() to return a PassRefPtr.
* rendering/RenderApplet.cpp:
Receive result in a RefPtr when calling createJavaAppletWidget().
* rendering/RenderPart.cpp:
(WebCore::RenderPart::setWidget):
setWidget() now takes a PassRefPtr. Also removed the manual ref of
FrameViews. This is handled by having m_widget be a RefPtr. Removed
deleteWidget().
* rendering/RenderPart.h:
Removed override of deleteWidget().
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::destroy):
(WebCore::RenderWidget::setWidget):
(WebCore::RenderWidget::paint):
(WebCore::RenderWidget::setOverlapTestResult):
(WebCore::RenderWidget::updateWidgetPosition):
Use .get().
(WebCore::RenderWidget::clearWidget):
Don't call deleteWidget(). It was removed.
* rendering/RenderWidget.h:
Removed deleteWidget(). Made m_widget a RefPtr.
(WebCore::RenderWidget::widget):
Use .get().
2009-07-09 Chris Fleizach <cfleizach@apple.com>
Reviewed by Darin Adler.
Bug 27129 - AX: possible assertion for a non-native image in accessibility
https://bugs.webkit.org/show_bug.cgi?id=27129
It's possible for an image that is not really an image to assert, because its renderer
is turned into a RenderImage.
Test: accessibility/non-native-image-crash.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
(WebCore::RoleEntry::):
* accessibility/mac/AccessibilityObjectWrapper.mm:
(-[AccessibilityObjectWrapper roleDescription]):
2009-07-09 Simon Fraser <simon.fraser@apple.com>
Build fix for SnowLeopard.
Avoid using the contentsTransform methods if not on Leopard, because
we don't need to call them.
* platform/graphics/mac/GraphicsLayerCA.mm:
(WebCore::GraphicsLayerCA::updateContentsTransform):
* platform/graphics/mac/WebLayer.mm:
(-[WebLayer setNeedsDisplayInRect:]):
* platform/graphics/mac/WebTiledLayer.mm:
(-[WebTiledLayer setNeedsDisplayInRect:]):
2009-07-09 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dave Hyatt
Improve the appearance of text in compositing layers when -[CALayer geometryFlipped]
is not available.
<rdar://problem/6120614>
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::setContentsOrientation):
(WebCore::GraphicsLayer::contentsOrientation):
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::GraphicsLayer):
Add a m_contentsOrientation member and getter/setter to control whether
the contents of this layer have a transform applied to them before display.
* platform/graphics/mac/GraphicsLayerCA.h:
New method to return the default contents orientation.
* platform/graphics/mac/GraphicsLayerCA.mm:
(WebCore::flipTransform):
Convenience method to return a transform with a Y flip.
(WebCore::GraphicsLayerCA::GraphicsLayerCA):
(WebCore::GraphicsLayerCA::setSize):
After the size changes we have to update the contentsTransform.
(WebCore::GraphicsLayerCA::setGeometryOrientation):
(WebCore::GraphicsLayerCA::geometryOrientation):
If -setGeometryFlipped: is not available, use a children transform.
(WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
Tiled layers have issues with flipped contentsTransform, so just use
top-down drawing for them. Call updateContentsTransform() to set the
new contents transform after swapping layers.
(WebCore::GraphicsLayerCA::defaultContentsOrientation):
Use bottom-up when -geometryFlipped is not available, otherwise top-down.
(WebCore::GraphicsLayerCA::updateContentsTransform):
Set the layer contents transform based on contentsOrientation().
(WebCore::GraphicsLayerCA::setContentsLayer):
We have to manually flip contents layers if we're not using -geometryFlipped.
* platform/graphics/mac/WebLayer.h:
* platform/graphics/mac/WebLayer.mm:
Do early return if layerContents is nil. Flip the CTM if the layer has
bottom-up coordinates, so that CG sees a CTM with no flip.
Do the CGContextRestoreGState() after drawing the debug indicator.
(-[WebLayer setNeedsDisplayInRect:]):
* platform/graphics/mac/WebTiledLayer.mm:
(-[WebTiledLayer setNeedsDisplayInRect:]):
Need to map the dirty rect through the contentsTransform.
2009-07-09 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Geoff Garen.
<rdar://problem/6921671> Visit counter shouldn't be incremented by redirects.
Can't test this functionality with layout tests.
* WebCore.base.exp:
* history/HistoryItem.cpp:
(WebCore::HistoryItem::recordVisitAtTime):
(WebCore::HistoryItem::visited):
* history/HistoryItem.h:
Only increase visit count if explicitly told to. Now, some visits change last access time,
but do not increase visit count.
2009-07-09 Eric Carlson <eric.carlson@apple.com>
Reviewed by Simon Fraser.
<rdar://problem/7046098> MediaControllerThemeQT requires QuickTime 7.6.3
Require QuickTime 7.6.3 or higher to enable the new media controller UI.
* rendering/RenderThemeMac.mm:
(WebCore::mediaControllerTheme):
2009-07-09 Sam Weinig <sam@webkit.org>
Reviewed by Beth Dakin.
Remove incorrect comment.
* page/MouseEventWithHitTestResults.h:
2009-07-09 Mads Ager <ager@chromium.org>
Reviewed by Dimitri Glazkov.
Update the V8 bindings codegenerator to use the RGBColor::create
method to handle refcounts for RGBColor objects correctly.
* bindings/scripts/CodeGeneratorV8.pm: Use RGBColor::create to create RGBColor objects.
2009-07-09 Eric Carlson <eric.carlson@apple.com>
Reviewed by Adele Peterson.
Crash in RenderMedia::styleDidChange.
<rdar://problem/7044313> CrashTracer: quicklook crashed generating thumbnail for page with
media element (RenderMedia::styleDidChange + 115)
Speculative fix for crash in styleDidChange. Null check controller elements before tell
them to update style.
* rendering/RenderMedia.cpp:
(WebCore::RenderMedia::styleDidChange):
2009-07-09 Adam Barth <abarth@webkit.org>
Reviewed by Dimitri Glazkov.
[V8] Move V8DOMWrapper to its own file
https://bugs.webkit.org/show_bug.cgi?id=27121
* bindings/v8/V8DOMWrapper.cpp: Added.
(WebCore::GetToStringName):
(WebCore::ConstructorToString):
(WebCore::V8DOMWrapper::convertSVGElementInstanceToV8Object):
(WebCore::V8DOMWrapper::convertSVGObjectWithContextToV8Object):
(WebCore::V8DOMWrapper::domObjectHasJSWrapper):
(WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
(WebCore::V8DOMWrapper::setJSWrapperForActiveDOMObject):
(WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
(WebCore::V8DOMWrapper::getTemplate):
(WebCore::V8DOMWrapper::convertToV8Object):
(WebCore::V8DOMWrapper::setHiddenWindowReference):
(WebCore::V8DOMWrapper::domWrapperType):
(WebCore::V8DOMWrapper::convertToNativeObjectImpl):
(WebCore::V8DOMWrapper::convertToSVGPODTypeImpl):
(WebCore::V8DOMWrapper::lookupDOMWrapper):
(WebCore::V8DOMWrapper::convertDOMWrapperToNodeHelper):
(WebCore::V8DOMWrapper::wrapNativeNodeFilter):
(WebCore::V8DOMWrapper::instantiateV8Object):
(WebCore::V8DOMWrapper::setDOMWrapper):
(WebCore::V8DOMWrapper::maybeDOMWrapper):
(WebCore::V8DOMWrapper::isDOMEventWrapper):
(WebCore::V8DOMWrapper::isWrapperOfType):
(WebCore::V8DOMWrapper::htmlElementType):
(WebCore::V8DOMWrapper::svgElementType):
(WebCore::V8DOMWrapper::convertEventToV8Object):
(WebCore::):
(WebCore::V8DOMWrapper::convertNodeToV8Object):
(WebCore::V8DOMWrapper::convertEventTargetToV8Object):
(WebCore::V8DOMWrapper::convertEventListenerToV8Object):
(WebCore::V8DOMWrapper::convertDOMImplementationToV8Object):
(WebCore::V8DOMWrapper::convertStyleSheetToV8Object):
(WebCore::V8DOMWrapper::convertCSSValueToV8Object):
(WebCore::V8DOMWrapper::convertCSSRuleToV8Object):
(WebCore::V8DOMWrapper::convertWindowToV8Object):
* bindings/v8/V8DOMWrapper.h: Added.
(WebCore::V8DOMWrapper::convertDOMWrapperToNative):
(WebCore::V8DOMWrapper::wrapCPointer):
(WebCore::V8DOMWrapper::extractCPointer):
(WebCore::V8DOMWrapper::convertDOMWrapperToNode):
(WebCore::V8DOMWrapper::convertToV8Object):
(WebCore::V8DOMWrapper::convertToNativeObject):
(WebCore::V8DOMWrapper::convertToNativeEvent):
(WebCore::V8DOMWrapper::extractCPointerImpl):
(WebCore::V8DOMWrapper::instantiateV8Object):
* bindings/v8/V8Proxy.cpp:
* bindings/v8/V8Proxy.h:
2009-07-09 David Hyatt <hyatt@apple.com>
Reviewed by Adele Peterson.
Crash in setFocusedFrame.
<rdar://7032869> Crashing in setFocusedFrame on blogger.com.
Speculative fix for crasher in setFocusedFrame. Make sure to ref both frames and fire
the events only after the local member has been updated.
* page/FocusController.cpp:
(WebCore::FocusController::setFocusedFrame):
2009-07-09 Eric Carlson <eric.carlson@apple.com>
Reviewed by Adele Peterson.
Possible crashes when mouse clicks not dispatched because range input destroyed while
thumb is being dragged (e.g. scrub to end of movie)
<rdar://problem/7037494>
https://bugs.webkit.org/show_bug.cgi?id=27101
Some shadow nodes "capture" all mouse events from mouseDown to mouseUp so they continue to
get mouse events even when the mouse is moved outside of the node. This is done by putting
EventHandler into a mode where it sends all mouse events to the node regardless of the
actual mouse position. The mode is set on mouseDown and cleared on mouseUp but if the
node is deleted while in this mode, the mouseUp is never sent and EventHandler continues
to try to send events to the deleted node. This sometimes results in a crash, and sometimes
in a page that doesn't respond to click events.
Tests: fast/forms/search-delete-while-cancel-button-clicked.html
fast/forms/slider-delete-while-dragging-thumb.html
media/audio-delete-while-slider-thumb-clicked.html
media/audio-delete-while-step-button-clicked.html
* rendering/MediaControlElements.cpp:
(WebCore::MediaControlSeekButtonElement::detach):
New, call setCapturingMouseEventsNode if capturing mouse events.
* rendering/MediaControlElements.h:
Declare detach().
* rendering/RenderSlider.cpp:
(WebCore::SliderThumbElement::detach):
New, call setCapturingMouseEventsNode if capturing mouse events.
* rendering/TextControlInnerElements.cpp:
(WebCore::SearchFieldCancelButtonElement::detach):
New, call setCapturingMouseEventsNode if capturing mouse events.
* rendering/TextControlInnerElements.h:
Declare detach().
2009-07-09 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Dimitri Glazkov.
Enter the Frame's context before creating new objects in setContextDebugId.
https://bugs.webkit.org/show_bug.cgi?id=27112
* bindings/v8/V8Proxy.cpp:
(WebCore::V8Proxy::setContextDebugId):
2009-07-09 Simon Hausmann <hausmann@webkit.org>
Fix the Qt build.
* WebCore.pro: Add new storage impl files to the build.
2009-07-08 Adam Barth <abarth@webkit.org>
Rubber stamped by Eric Seidel.
[V8] Move DOM wrapper functions in V8Proxy to V8DOMWrapper
https://bugs.webkit.org/show_bug.cgi?id=27107
This patch is just renaming. Code motion will occur next.
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::processingUserGesture):
(WebCore::createScriptObject):
(WebCore::ScriptController::createScriptObjectForPluginElement):
* bindings/v8/ScriptObject.cpp:
(WebCore::ScriptGlobalObject::set):
* bindings/v8/ScriptObjectQuarantine.cpp:
(WebCore::getQuarantinedScriptObject):
* bindings/v8/V8AbstractEventListener.cpp:
(WebCore::V8AbstractEventListener::handleEvent):
(WebCore::V8AbstractEventListener::getReceiverObject):
* bindings/v8/V8Collection.cpp:
(WebCore::toOptionsCollectionSetter):
* bindings/v8/V8Collection.h:
(WebCore::getV8Object):
(WebCore::getNamedPropertyOfCollection):
(WebCore::nodeCollectionNamedPropertyGetter):
(WebCore::getIndexedPropertyOfCollection):
(WebCore::nodeCollectionIndexedPropertyGetter):
(WebCore::nodeCollectionIndexedPropertyEnumerator):
(WebCore::collectionIndexedPropertyEnumerator):
(WebCore::collectionStringOrNullIndexedPropertyGetter):
* bindings/v8/V8DOMMap.cpp:
(WebCore::DOMData::handleWeakObject):
(WebCore::DOMData::removeObjectsFromWrapperMap):
* bindings/v8/V8GCController.cpp:
(WebCore::enumerateDOMObjectMap):
(WebCore::DOMObjectVisitor::visitDOMWrapper):
(WebCore::GCPrologueVisitor::visitDOMWrapper):
(WebCore::GCEpilogueVisitor::visitDOMWrapper):
* bindings/v8/V8Helpers.cpp:
(WebCore::wrapNPObject):
* bindings/v8/V8NodeFilterCondition.cpp:
(WebCore::V8NodeFilterCondition::acceptNode):
* bindings/v8/V8Proxy.cpp:
(WebCore::V8DOMWrapper::convertSVGElementInstanceToV8Object):
(WebCore::V8DOMWrapper::convertSVGObjectWithContextToV8Object):
(WebCore::V8DOMWrapper::domObjectHasJSWrapper):
(WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
(WebCore::V8DOMWrapper::setJSWrapperForActiveDOMObject):
(WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
(WebCore::V8Proxy::evaluateInNewContext):
(WebCore::V8Proxy::getConstructor):
(WebCore::V8DOMWrapper::getTemplate):
(WebCore::V8Proxy::retrieveWindow):
(WebCore::V8Proxy::updateDocumentWrapperCache):
(WebCore::V8Proxy::clearForNavigation):
(WebCore::V8Proxy::installDOMWindow):
(WebCore::setDOMExceptionHelper):
(WebCore::V8DOMWrapper::convertToV8Object):
(WebCore::V8DOMWrapper::setHiddenWindowReference):
(WebCore::V8DOMWrapper::domWrapperType):
(WebCore::V8DOMWrapper::convertToNativeObjectImpl):
(WebCore::V8DOMWrapper::convertToSVGPODTypeImpl):
(WebCore::V8DOMWrapper::lookupDOMWrapper):
(WebCore::V8DOMWrapper::convertDOMWrapperToNodeHelper):
(WebCore::V8DOMWrapper::wrapNativeNodeFilter):
(WebCore::V8DOMWrapper::instantiateV8Object):
(WebCore::V8DOMWrapper::setDOMWrapper):
(WebCore::V8DOMWrapper::maybeDOMWrapper):
(WebCore::V8DOMWrapper::isDOMEventWrapper):
(WebCore::V8DOMWrapper::isWrapperOfType):
(WebCore::V8DOMWrapper::htmlElementType):
(WebCore::V8DOMWrapper::svgElementType):
(WebCore::V8DOMWrapper::convertEventToV8Object):
(WebCore::V8DOMWrapper::convertNodeToV8Object):
(WebCore::V8DOMWrapper::convertEventTargetToV8Object):
(WebCore::V8DOMWrapper::convertEventListenerToV8Object):
(WebCore::V8DOMWrapper::convertDOMImplementationToV8Object):
(WebCore::V8DOMWrapper::convertStyleSheetToV8Object):
(WebCore::V8DOMWrapper::convertCSSValueToV8Object):
(WebCore::V8DOMWrapper::convertCSSRuleToV8Object):
(WebCore::V8DOMWrapper::convertWindowToV8Object):
(WebCore::V8Proxy::bindJsObjectToWindow):
* bindings/v8/V8Proxy.h:
(WebCore::V8DOMWrapper::convertDOMWrapperToNative):
(WebCore::V8DOMWrapper::wrapCPointer):
(WebCore::V8DOMWrapper::extractCPointer):
(WebCore::V8DOMWrapper::convertDOMWrapperToNode):
(WebCore::V8DOMWrapper::convertToV8Object):
(WebCore::V8DOMWrapper::convertToNativeObject):
(WebCore::V8DOMWrapper::convertToNativeEvent):
(WebCore::V8DOMWrapper::extractCPointerImpl):
(WebCore::V8DOMWrapper::instantiateV8Object):
(WebCore::V8Proxy::constructDOMObject):
(WebCore::toV8):
* bindings/v8/V8SVGPODTypeWrapper.h:
(WebCore::V8SVGPODTypeUtil::toSVGPODType):
* bindings/v8/WorkerContextExecutionProxy.cpp:
(WebCore::WorkerContextExecutionProxy::retrieve):
(WebCore::WorkerContextExecutionProxy::initContextIfNeeded):
(WebCore::WorkerContextExecutionProxy::GetConstructor):
(WebCore::WorkerContextExecutionProxy::ToV8Object):
(WebCore::WorkerContextExecutionProxy::EventToV8Object):
(WebCore::WorkerContextExecutionProxy::toV8):
* bindings/v8/custom/V8AttrCustom.cpp:
(WebCore::ACCESSOR_SETTER):
* bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
(WebCore::NAMED_PROPERTY_GETTER):
(WebCore::NAMED_PROPERTY_SETTER):
* bindings/v8/custom/V8CanvasPixelArrayCustom.cpp:
(WebCore::INDEXED_PROPERTY_GETTER):
(WebCore::INDEXED_PROPERTY_SETTER):
* bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
(WebCore::toV8):
(WebCore::toCanvasStyle):
(WebCore::ACCESSOR_GETTER):
(WebCore::ACCESSOR_SETTER):
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8ClientRectListCustom.cpp:
(WebCore::INDEXED_PROPERTY_GETTER):
* bindings/v8/custom/V8ClipboardCustom.cpp:
(WebCore::ACCESSOR_GETTER):
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8CustomBinding.cpp:
(WebCore::ACCESSOR_GETTER):
(WebCore::INDEXED_ACCESS_CHECK):
(WebCore::NAMED_ACCESS_CHECK):
(WebCore::V8Custom::GetTargetFrame):
* bindings/v8/custom/V8CustomSQLStatementCallback.cpp:
(WebCore::V8CustomSQLStatementCallback::handleEvent):
* bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
(WebCore::V8CustomSQLStatementErrorCallback::handleEvent):
* bindings/v8/custom/V8CustomSQLTransactionCallback.cpp:
(WebCore::V8CustomSQLTransactionCallback::handleEvent):
* bindings/v8/custom/V8CustomSQLTransactionErrorCallback.cpp:
(WebCore::V8CustomSQLTransactionErrorCallback::handleEvent):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8Custom::WindowSetTimeoutImpl):
(WebCore::ACCESSOR_SETTER):
(WebCore::CALLBACK_FUNC_DECL):
(WebCore::ACCESSOR_GETTER):
(WebCore::INDEXED_PROPERTY_GETTER):
(WebCore::NAMED_PROPERTY_GETTER):
(WebCore::V8Custom::ClearTimeoutImpl):
(WebCore::NAMED_ACCESS_CHECK):
(WebCore::INDEXED_ACCESS_CHECK):
* bindings/v8/custom/V8DatabaseCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8DocumentCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8DocumentLocationCustom.cpp:
(WebCore::ACCESSOR_GETTER):
(WebCore::ACCESSOR_SETTER):
* bindings/v8/custom/V8ElementCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
(WebCore::ACCESSOR_SETTER):
(WebCore::ACCESSOR_GETTER):
* bindings/v8/custom/V8EventCustom.cpp:
(WebCore::ACCESSOR_SETTER):
(WebCore::ACCESSOR_GETTER):
* bindings/v8/custom/V8HTMLAudioElementConstructor.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8HTMLCollectionCustom.cpp:
(WebCore::getNamedItems):
(WebCore::getItem):
(WebCore::NAMED_PROPERTY_GETTER):
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
(WebCore::NAMED_PROPERTY_GETTER):
(WebCore::CALLBACK_FUNC_DECL):
(WebCore::ACCESSOR_GETTER):
* bindings/v8/custom/V8HTMLFormElementCustom.cpp:
(WebCore::INDEXED_PROPERTY_GETTER):
(WebCore::NAMED_PROPERTY_GETTER):
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8HTMLFrameElementCustom.cpp:
(WebCore::ACCESSOR_SETTER):
* bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp:
(WebCore::NAMED_PROPERTY_GETTER):
* bindings/v8/custom/V8HTMLIFrameElementCustom.cpp:
(WebCore::ACCESSOR_SETTER):
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8HTMLInputElementCustom.cpp:
(WebCore::ACCESSOR_GETTER):
(WebCore::ACCESSOR_SETTER):
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8HTMLOptionElementConstructor.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
(WebCore::ACCESSOR_GETTER):
(WebCore::ACCESSOR_SETTER):
(WebCore::INDEXED_PROPERTY_GETTER):
(WebCore::INDEXED_PROPERTY_SETTER):
* bindings/v8/custom/V8HTMLPlugInElementCustom.cpp:
(WebCore::NAMED_PROPERTY_GETTER):
(WebCore::NAMED_PROPERTY_SETTER):
(WebCore::INDEXED_PROPERTY_GETTER):
(WebCore::INDEXED_PROPERTY_SETTER):
* bindings/v8/custom/V8HTMLSelectElementCollectionCustom.cpp:
(WebCore::NAMED_PROPERTY_GETTER):
(WebCore::INDEXED_PROPERTY_SETTER):
* bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
(WebCore::removeElement):
* bindings/v8/custom/V8InspectorControllerCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8LocationCustom.cpp:
(WebCore::ACCESSOR_SETTER):
(WebCore::ACCESSOR_GETTER):
(WebCore::CALLBACK_FUNC_DECL):
(WebCore::INDEXED_ACCESS_CHECK):
(WebCore::NAMED_ACCESS_CHECK):
* bindings/v8/custom/V8MessageChannelConstructor.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8MessagePortCustom.cpp:
(WebCore::ACCESSOR_GETTER):
(WebCore::ACCESSOR_SETTER):
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8NamedNodeMapCustom.cpp:
(WebCore::INDEXED_PROPERTY_GETTER):
(WebCore::NAMED_PROPERTY_GETTER):
* bindings/v8/custom/V8NavigatorCustom.cpp:
(WebCore::ACCESSOR_GETTER):
* bindings/v8/custom/V8NodeCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8NodeIteratorCustom.cpp:
(WebCore::toV8):
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8NodeListCustom.cpp:
(WebCore::NAMED_PROPERTY_GETTER):
* bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8SQLTransactionCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8SVGElementInstanceCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8SVGLengthCustom.cpp:
(WebCore::ACCESSOR_GETTER):
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8SVGMatrixCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8StorageCustom.cpp:
(WebCore::V8Custom::v8StorageNamedPropertyEnumerator):
(WebCore::storageGetter):
(WebCore::storageSetter):
(WebCore::storageDeleter):
* bindings/v8/custom/V8StyleSheetListCustom.cpp:
(WebCore::NAMED_PROPERTY_GETTER):
* bindings/v8/custom/V8TreeWalkerCustom.cpp:
(WebCore::toV8):
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8WebKitCSSMatrixConstructor.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8WorkerContextCustom.cpp:
(WebCore::ACCESSOR_GETTER):
(WebCore::ACCESSOR_SETTER):
(WebCore::SetTimeoutOrInterval):
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8WorkerCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
(WebCore::ACCESSOR_GETTER):
(WebCore::ACCESSOR_SETTER):
* bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
(WebCore::ACCESSOR_GETTER):
(WebCore::ACCESSOR_SETTER):
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8XMLHttpRequestUploadCustom.cpp:
(WebCore::ACCESSOR_GETTER):
(WebCore::ACCESSOR_SETTER):
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8XSLTProcessorCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
2009-07-08 Pierre d'Herbemont <pdherbemont@apple.com>
Reviewed by Simon Fraser.
Make sure we can click outside the slider thumb and start dragging.
https://bugs.webkit.org/show_bug.cgi?id=26229
Previously we were assuming that if the thumb hasn't been clicked, we
wouldn't issue any value change upon dragging.
We need to handle the two different cases:
- Clicked in the thumb, we need to make sure the cursor is always pointing
the same slider thumb point.
- Clicked outside, the cursor should always be pointing to the center of
the thumb.
For simplicity, we don't remember the original point of the mouse down,
but a vector between that point and the thumb.
* rendering/RenderSlider.cpp:
(WebCore::SliderThumbElement::SliderThumbElement):
(WebCore::SliderThumbElement::defaultEventHandler):
(WebCore::RenderSlider::mouseEventVectorToThumb): Utility function.
* rendering/RenderSlider.h:
2009-07-08 Pierre d'Herbemont <pdherbemont@apple.com>
Reviewed by Simon Fraser.
https://bugs.webkit.org/show_bug.cgi?id=27100
<rdar://problem/7042621>
Don't display "loading" in the <video> controller when
there is no src specified.
* rendering/MediaControlElements.cpp:
(WebCore::MediaControlStatusDisplayElement::update): The only
way to find out if we have an element is currentSrc(). networkState()
will always report LOADING according to the spec.
2009-07-08 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
[V8] Move V8GCController functions to their own file
https://bugs.webkit.org/show_bug.cgi?id=27102
* bindings/v8/V8GCController.cpp: Added.
* bindings/v8/V8GCController.h: Added.
* bindings/v8/V8Proxy.cpp:
* bindings/v8/V8Proxy.h:
2009-07-08 Jeremy Orlow <jorlow@chromium.org>
Reviewed by Darin Fisher.
Split StorageArea and StorageNamespace into an interface and implementation.
https://bugs.webkit.org/show_bug.cgi?id=27072
I need to split StorageNamespace and StorageArea into an interface and
implementation. In a later patch, I'll implement a proxy interface
that'll run inside the Chromium renderer process.
Additionally, fix the alphabetical ordering of files I recently added
in the project files.
This is a continuation of other refactoring work:
https://bugs.webkit.org/show_bug.cgi?id=25376
* GNUmakefile.am:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* storage/StorageArea.cpp:
(WebCore::StorageArea::create):
* storage/StorageArea.h:
(WebCore::StorageArea::~StorageArea):
* storage/StorageAreaImpl.cpp: Copied from WebCore/storage/StorageArea.cpp.
(WebCore::StorageAreaImpl::create):
(WebCore::StorageAreaImpl::~StorageAreaImpl):
(WebCore::StorageAreaImpl::StorageAreaImpl):
(WebCore::StorageAreaImpl::copy):
(WebCore::StorageAreaImpl::length):
(WebCore::StorageAreaImpl::key):
(WebCore::StorageAreaImpl::getItem):
(WebCore::StorageAreaImpl::setItem):
(WebCore::StorageAreaImpl::removeItem):
(WebCore::StorageAreaImpl::clear):
(WebCore::StorageAreaImpl::contains):
(WebCore::StorageAreaImpl::importItem):
(WebCore::StorageAreaImpl::securityOrigin):
(WebCore::StorageAreaImpl::close):
(WebCore::StorageAreaImpl::blockUntilImportComplete):
(WebCore::StorageAreaImpl::dispatchStorageEvent):
* storage/StorageAreaImpl.h: Copied from WebCore/storage/StorageArea.h.
* storage/StorageAreaSync.h:
* storage/StorageNamespace.cpp:
(WebCore::StorageNamespace::localStorageNamespace):
(WebCore::StorageNamespace::sessionStorageNamespace):
* storage/StorageNamespace.h:
(WebCore::StorageNamespace::~StorageNamespace):
* storage/StorageNamespaceImpl.cpp: Copied from WebCore/storage/StorageNamespace.cpp.
(WebCore::StorageNamespaceImpl::localStorageNamespace):
(WebCore::StorageNamespaceImpl::sessionStorageNamespace):
(WebCore::StorageNamespaceImpl::StorageNamespaceImpl):
(WebCore::StorageNamespaceImpl::~StorageNamespaceImpl):
(WebCore::StorageNamespaceImpl::copy):
(WebCore::StorageNamespaceImpl::storageArea):
(WebCore::StorageNamespaceImpl::close):
* storage/StorageNamespaceImpl.h: Copied from WebCore/storage/StorageNamespace.h.
2009-07-08 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
[V8] Move garbage collector related functions from V8Proxy to V8GCController
https://bugs.webkit.org/show_bug.cgi?id=26967
This patch just moves the functions around in V8Proxy. We'll actually
move them to a separate file in another patch.
* bindings/v8/NPV8Object.cpp:
(freeV8NPObject):
* bindings/v8/ScheduledAction.cpp:
(WebCore::ScheduledAction::ScheduledAction):
(WebCore::ScheduledAction::~ScheduledAction):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::gcProtectJSWrapper):
(WebCore::ScriptController::gcUnprotectJSWrapper):
* bindings/v8/ScriptInstance.cpp:
(WebCore::V8ScriptInstance::clear):
(WebCore::V8ScriptInstance::set):
* bindings/v8/ScriptValue.h:
(WebCore::ScriptValue::ScriptValue):
(WebCore::ScriptValue::operator=):
(WebCore::ScriptValue::clear):
* bindings/v8/V8AbstractEventListener.cpp:
(WebCore::V8AbstractEventListener::disposeListenerObject):
* bindings/v8/V8LazyEventListener.cpp:
(WebCore::V8LazyEventListener::~V8LazyEventListener):
(WebCore::V8LazyEventListener::getListenerFunction):
(WebCore::V8LazyEventListener::getWrappedListenerFunction):
* bindings/v8/V8NodeFilterCondition.cpp:
(WebCore::V8NodeFilterCondition::V8NodeFilterCondition):
(WebCore::V8NodeFilterCondition::~V8NodeFilterCondition):
* bindings/v8/V8Proxy.cpp:
(WebCore::V8GCController::registerGlobalHandle):
(WebCore::V8GCController::unregisterGlobalHandle):
(WebCore::V8GCController::gcProtect):
(WebCore::V8GCController::gcUnprotect):
(WebCore::V8Proxy::destroyGlobal):
(WebCore::V8Proxy::updateDocumentWrapper):
(WebCore::V8Proxy::clearDocumentWrapper):
(WebCore::V8Proxy::disposeContextHandles):
(WebCore::V8Proxy::initContextIfNeeded):
* bindings/v8/V8Proxy.h:
(WebCore::):
(WebCore::GlobalHandleInfo::GlobalHandleInfo):
* bindings/v8/custom/V8CustomEventListener.cpp:
(WebCore::V8EventListener::V8EventListener):
2009-07-08 Daniel Bates <dbates@intudata.com>
Reviewed by Adam Barth.
https://bugs.webkit.org/show_bug.cgi?id=26918
Prevents injection of HTML Base tag.
Tests: http/tests/security/xssAuditor/base-href-control-char.html
http/tests/security/xssAuditor/base-href-null-char.html
http/tests/security/xssAuditor/base-href-safe.html
http/tests/security/xssAuditor/base-href-safe2.html
http/tests/security/xssAuditor/base-href-scheme-relative.html
http/tests/security/xssAuditor/base-href.html
* html/HTMLBaseElement.cpp:
(WebCore::HTMLBaseElement::parseMappedAttribute):
(WebCore::HTMLBaseElement::process): Modified to call XSSAuditor::canSetBaseElementURL
to determine if it is safe to use base element URL.
* html/HTMLBaseElement.h: Added field m_hrefAttrValue to store unparsed base element URL.
* page/XSSAuditor.cpp:
(WebCore::XSSAuditor::canSetBaseElementURL):
* page/XSSAuditor.h:
2009-07-08 Nate Chapin <japhet@chromium.org>
Reviewed by Dimitri Glazkov.
Upstream V8 npruntime bindings.
https://bugs.webkit.org/show_bug.cgi?id=27094
* bindings/v8/npruntime.cpp: Upstreamed from src.chromium.org.
(StringKey::operator==):
(StringKey::StringKeyHash::hash):
(StringKey::StringKeyHash::equal):
(StringKeyHashTraits::constructDeletedValue):
(StringKeyHashTraits::isDeletedValue):
(getStringIdentifierMap):
(getIntIdentifierMap):
* bindings/v8/npruntime_impl.h: Upstreamed from src.chromium.org.
* bindings/v8/npruntime_internal.h: Upstreamed from src.chromium.org.
* bindings/v8/npruntime_priv.h: Upstreamed from src.chromium.org.
2009-07-08 Dumitru Daniliuc <dumi@chromium.org>
Reviewed by Darin Fisher.
Extending the PlatformFileHandle definition from PLATFORM(WIN) to
PLATFORM(WIN_OS)
https://bugs.webkit.org/show_bug.cgi?id=27013
* platform/FileSystem.h:
2009-07-08 Daniel Bates <dbates@intudata.com>
Reviewed by Adam Barth.
https://bugs.webkit.org/show_bug.cgi?id=27071
Resolves issue when HTTP parameters contain null- and non-null-control- characters.
Tests: http/tests/security/xssAuditor/anchor-url-dom-write-location-inline-event-null-char.html
http/tests/security/xssAuditor/embed-tag-control-char.html
http/tests/security/xssAuditor/embed-tag-null-char.html
http/tests/security/xssAuditor/embed-tag.html
http/tests/security/xssAuditor/link-onclick-control-char.html
http/tests/security/xssAuditor/link-onclick-null-char.html
http/tests/security/xssAuditor/object-embed-tag-control-char.html
http/tests/security/xssAuditor/object-embed-tag-null-char.html
http/tests/security/xssAuditor/object-embed-tag.html
http/tests/security/xssAuditor/object-tag.html
http/tests/security/xssAuditor/script-tag-post-control-char.html
http/tests/security/xssAuditor/script-tag-post-null-char.html
http/tests/security/xssAuditor/script-tag-with-source-control-char.html
http/tests/security/xssAuditor/script-tag-with-source-null-char.html
* page/XSSAuditor.cpp:
(WebCore::isNonNullControlCharacter): Called by XSSAuditor::decodeURL.
(WebCore::XSSAuditor::canEvaluate):
(WebCore::XSSAuditor::canCreateInlineEventListener):
(WebCore::XSSAuditor::canLoadObject):
(WebCore::XSSAuditor::decodeURL): Added parameters matchNullCharacters,
and matchNonNullControlCharacters.
(WebCore::XSSAuditor::findInRequest): Added parameters matchNullCharacters,
and matchNonNullControlCharacters.
* page/XSSAuditor.h:
2009-07-08 Marc-Antoine Ruel <maruel@chromium.org>
Reviewed by Dimitri Glazkov.
Add DerivesSourcesAllInOne.cpp to help with release windows compilation.
https://bugs.webkit.org/show_bug.cgi?id=27093
This is specific for v8, no change in behavior.
* bindings/v8/DerivedSourcesAllInOne.cpp: Added.
2009-07-08 Pierre d'Herbemont <pdherbemont@apple.com>
Reviewed by Simon Fraser.
https://bugs.webkit.org/show_bug.cgi?id=27086
Make sure the Media controller doesn't fade in for no reason.
This is happening because a update() call to the controller
panel may reset the opacity to 1.0, given that it reloads the
style.
We also add a different fade in and fade out time to soften
the fade out effect.
No test case because this depends on how the movie is loaded.
* rendering/RenderMedia.cpp:
(WebCore::RenderMedia::RenderMedia):
(WebCore::RenderMedia::updateControls):
(WebCore::RenderMedia::updateControlVisibility): Simplify
, and make sure we stop the timer if there is no animation
to do.
(WebCore::RenderMedia::opacityAnimationTimerFired):
* rendering/RenderMedia.h:
2009-07-08 David Kilzer <ddkilzer@apple.com>
Bug 27081: Wrap RunLoopTimerCF.cpp in PLATFORM(MAC) && HAVE(RUNLOOP_TIMER)
<https://bugs.webkit.org/show_bug.cgi?id=27081>
Reviewed by Timothy Hatcher.
* platform/cf/RunLoopTimerCF.cpp: This code is only used on
Mac OS X when HAVE(RUNLOOP_TIMER) is enabled, so wrap the code
in that macro as well.
2009-07-08 Greg Bolsinga <bolsinga@apple.com>
Reviewed by Darin Adler.
Add -[WebView _isProcessingUserGesture]
https://bugs.webkit.org/show_bug.cgi?id=27084
Rename FrameLoader::userGestureHint() to FrameLoader::isProcessingUserGesture()
for clarity.
* WebCore.base.exp: Add WebCore::FrameLoader::isProcessingUserGesture()
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::processingUserGesture):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::requestFrame):
(WebCore::FrameLoader::isProcessingUserGesture):
* loader/FrameLoader.h:
2009-07-08 Alexey Proskuryakov <ap@webkit.org>
Reviewed (an earlier version) by Geoff Garen.
https://bugs.webkit.org/show_bug.cgi?id=27090
Remove lockBackForwardList argument from HTMLFormElement::submit()
No change in behavior, so no tests.
* bindings/js/JSHTMLFormElementCustom.cpp:
(WebCore::JSHTMLFormElement::submit):
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::submit):
* html/HTMLFormElement.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::submitForm):
(WebCore::FrameLoader::scheduleFormSubmission):
* loader/FrameLoader.h:
Don't pass lockBackForwardList around when it's known to be false.
2009-07-08 Marc-Antoine Ruel <maruel@chromium.org>
Reviewed by Adam Barth.
Fix V8 idl codegen to use unique constant names
<https://bugs.webkit.org/show_bug.cgi?id=27089>
Embed the interface name in the global constant names so coagulating all
the .cc files into one compile unit works with V8 bindings.
Nothing added; Still compiles and pass tests.
* bindings/scripts/CodeGeneratorV8.pm:
2009-07-08 Brent Fulgham <bfulgham@webkit.org>
Build fix: Add missing #includes for Windows (cURL) build.
The <winsock2.h> and <windows.h> headers were not being
included in Windows cURL builds.
* platform/network/ResourceHandleInternal.h:
* platform/network/curl/ResourceHandleManager.h:
2009-07-08 Shinichiro Hamaji <hamaji@chromium.org>
Reviewed by David Kilzer.
WebKit needs a style linting tool
https://bugs.webkit.org/show_bug.cgi?id=25884
Fix bunch of style issues in WebCore/rendering.
This patch is created to demonstrate cpplint.py.
No testcase because it's just a style fixes.
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::recalcColumn):
(WebCore::AutoTableLayout::layout):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::placeEllipsisBox):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintTextMatchMarker):
* rendering/MediaControlElements.cpp:
(WebCore::MediaControlTimelineElement::defaultEventHandler):
* rendering/MediaControlElements.h:
* rendering/RenderArena.cpp:
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::startDelayUpdateScrollInfo):
(WebCore::RenderBlock::finishDelayUpdateScrollInfo):
(WebCore::RenderBlock::updateScrollInfoAfterLayout):
(WebCore::RenderBlock::positionNewFloats):
(WebCore::RenderBlock::newLine):
(WebCore::RenderBlock::floatBottom):
(WebCore::RenderBlock::leftBottom):
(WebCore::RenderBlock::rightBottom):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::calcReplacedWidthUsing):
* rendering/RenderFieldset.cpp:
(WebCore::RenderFieldset::layoutLegend):
* rendering/RenderFlexibleBox.cpp:
(WebCore::FlexBoxIterator::FlexBoxIterator):
(WebCore::FlexBoxIterator::reset):
(WebCore::FlexBoxIterator::first):
(WebCore::FlexBoxIterator::next):
(WebCore::RenderFlexibleBox::layoutVerticalBox):
* rendering/RenderFrameSet.cpp:
(WebCore::borderStartEdgeColor):
* rendering/RenderFrameSet.h:
* rendering/RenderImage.cpp:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateVisibilityStatus):
(WebCore::RenderLayer::calculateClipRects):
(WebCore::RenderLayer::calculateRects):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::panScroll):
* rendering/RenderMarquee.cpp:
(WebCore::RenderMarquee::updateMarqueeStyle):
* rendering/RenderMedia.cpp:
(WebCore::RenderMedia::updateControls):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::drawLineForBoxSide):
(WebCore::RenderObject::localCaretRect):
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::adjustRectsForAspectRatio):
* rendering/RenderSlider.h:
* rendering/RenderTable.cpp:
(WebCore::RenderTable::outerBorderBottom):
* rendering/RenderTableCol.h:
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::itemIsSeparator):
* rendering/RenderThemeChromiumSkia.cpp:
(WebCore::RenderThemeChromiumSkia::supportsHover):
* rendering/RenderThemeChromiumWin.cpp:
(WebCore::RenderThemeChromiumWin::supportsFocusRing):
* rendering/SVGCharacterLayoutInfo.cpp:
(WebCore::SVGCharacterLayoutInfo::addStackContent):
* rendering/SVGCharacterLayoutInfo.h:
* rendering/TextControlInnerElements.h:
* rendering/bidi.cpp:
(WebCore::RenderBlock::computeHorizontalPositionsForLine):
2009-07-07 Oliver Hunt <oliver@apple.com>
Reviewed by Maciej Stachowiak.
Reduce complexity of lifetime management in DynamicNodeList caches
<https://bugs.webkit.org/show_bug.cgi?id=27068>
Switch the Cache object used by DynamicNodeList into a normal
refcounted object rather than having a weird flag controlled
refcounting system, where positive refcount did not automatically
imply the cache object would actually still be live.
* dom/DynamicNodeList.cpp:
(WebCore::DynamicNodeList::DynamicNodeList):
(WebCore::DynamicNodeList::~DynamicNodeList):
(WebCore::DynamicNodeList::Caches::Caches):
(WebCore::DynamicNodeList::Caches::create):
* dom/DynamicNodeList.h:
* dom/Node.cpp:
(WebCore::Node::childNodes):
(WebCore::Node::getElementsByTagNameNS):
(WebCore::Node::getElementsByName):
(WebCore::Node::getElementsByClassName):
(WebCore::NodeListsNodeData::invalidateCaches):
(WebCore::NodeListsNodeData::isEmpty):
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::NodeListsNodeData):
2009-07-07 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
-webkit-perspective should be a Length
https://bugs.webkit.org/show_bug.cgi?id=27066
-webkit-perspective should not take a magic valueless number, but should
be a normal Length value which responds to zooming. Treat valueless numbers
as pixels for backward compatibility.
Test: transforms/3d/general/perspective-units.html
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
2009-07-07 Pierre d'Herbemont <pdherbemont@apple.com>
Reviewed by Simon Fraser.
https://bugs.webkit.org/show_bug.cgi?id=27047
We need to make sure that when we reattach, we also reattach
the children in every MediaControlElement. Else we may end up
having no remaining or elapsed time.
We have to handle that, because we are using a special shadow
tree in the DOM, and that we are ourselves handling
attaching/detaching the renderer.
The strategy here is to try to implement ::attach(), and try
to reuse as much code as we can from the super class, including
children attachement.
Test: media/controls-after-reload.html
* rendering/MediaControlElements.cpp:
(WebCore::MediaControlElement::styleForElement): Code factoring.
(WebCore::MediaControlElement::rendererIsNeeded): Code factoring.
(WebCore::MediaControlElement::attach): Implement attach
and call super class so that children are also attached.
(WebCore::MediaControlElement::updateStyle): Use attach()
(WebCore::MediaControlInputElement::styleForElement): Code factoring.
(WebCore::MediaControlInputElement::rendererIsNeeded): Code factoring.
(WebCore::MediaControlInputElement::attach): See above.
(WebCore::MediaControlInputElement::updateStyle): Use attach()
* rendering/MediaControlElements.h:
* rendering/RenderMedia.cpp:
(WebCore::RenderMedia::updateControls): Directly run attach() on
the m_panel, which is a root node for our shadow tree.
2009-07-07 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
Repaint issue after layer drops out of composited mode.
<https://bugs.webkit.org/show_bug.cgi?id=27022>
RenderLayers cache repaint rects in the form of m_repaintRect and m_outlineBox,
and expect these to stay valid from one style change to the next. These rects
are relative to the repaint container, so if a layer stops being composited,
we need to recompute them.
Test: compositing/repaint/layer-repaint-rects.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::computeRepaintRects):
* rendering/RenderLayer.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateBacking):
2009-07-07 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt and Darin Adler.
- fix https://bugs.webkit.org/show_bug.cgi?id=26963
<rdar://problem/7030998> Reproducible crash at
FontCache::getFontData() when a custom font is used in a pseudo-style
Test: fast/css/pseudo-cache-stale.html
* dom/Element.cpp:
(WebCore::Element::pseudoStyleCacheIsInvalid): Added. Given the old
style and the new style, goes over cached pseudo-styles in the old
style and re-resolves the same style types off the new style. If any of
the new pseudo-styles is different from the currently cached
corresponding style, returns true. Otherwise, returns false.
(WebCore::Element::recalcStyle): Validate the pseudo-style cache before
deciding to keep the existing style.
* dom/Element.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::uncachedFirstLineStyle): Added this version that
returns an uncached first-line style based off the given style.
(WebCore::RenderObject::getUncachedPseudoStyle): Added the 'ownStyle'
parameter.
* rendering/RenderObject.h:
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::getPseudoStyleCache): Added. Returns the cached
pseudo-styles in the passed-in vector.
* rendering/style/RenderStyle.h:
2009-07-07 Dan Bernstein <mitz@apple.com>
Reviewed by Simon Fraser.
- fix https://bugs.webkit.org/show_bug.cgi?id=27042
<rdar://problem/7010981> Incomplete painting of newly created floats
Tests: fast/repaint/float-in-new-block-with-layout-delta.html
fast/repaint/float-new-in-block.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlockChildren): If the child has never been
laid out before, paint its overhanging floats in addition to itself.
* rendering/RenderBlock.h:
(WebCore::RenderBlock::FloatWithRect::FloatWithRect): Added and
initialized a boolean everHadLayout member.
* rendering/bidi.cpp:
(WebCore::RenderBlock::layoutInlineChildren): Paint floats that have
never been laid out before and did not move from (0, 0).
2009-07-07 Brady Eidson <beidson@apple.com>
Contributions from both Darin Adler and Brady Eidson.
Reviewed by Darin Adler.
<rdar://problem/7024039> REGRESSION (r42158): Back-forward navigation does not work correctly on nytimes.com
In r42158 we lost some exclusions to making back/forward items for subframe navigations when a main frame
navigation was still in progress.
This patch makes things even better than it used to be by:
- Locking back/forward history at the time the navigation is scheduled, not after the load has committed.
- Locking back/forward history if *any* ancestor frame is still loading instead of just the main frame.
Test: fast/loader/subframe-navigate-during-main-frame-load.html
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::submitForm): Move out the history locking logic into a standalone function so it can be
used from multiple sites.
(WebCore::mustLockBackForwardList): Returns true if any ancestor frame is still loading.
(WebCore::FrameLoader::scheduleLocationChange): Respect mustLockBackForwardList() in addition to the passed in
lockBackForwardList flag.
(WebCore::FrameLoader::scheduleFormSubmission): Ditto.
2009-07-07 Nate Chapin <japhet@chromium.org>
Reviewed by Darin Fisher.
Upstream DOMObjectsInclude.h from src.chromium.org.
https://bugs.webkit.org/show_bug.cgi?id=27035
* bindings/v8/DOMObjectsInclude.h: Added.
2009-07-07 Nate Chapin <japhet@chromium.org>
Reviewed by David Levin.
Relanding r45559, which was rolled back at r45574.
https://bugs.webkit.org/show_bug.cgi?id=26857
* bindings/scripts/CodeGeneratorV8.pm: Updated a function name in auto-generated bindings.
* bindings/v8/V8Binding.cpp: Moved from src.chromium.org.
* bindings/v8/V8Binding.h: Contents moved from src.chromium.org.
* bindings/v8/V8LazyEventListener.cpp:
(WebCore::V8LazyEventListener::getListenerFunction):
* bindings/v8/V8Proxy.cpp:
(WebCore::handleConsoleMessage):
(WebCore::V8Proxy::compileScript):
(WebCore::V8Proxy::sourceName):
* bindings/v8/WorkerContextExecutionProxy.cpp:
(WebCore::handleConsoleMessage):
* bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
(WebCore::NAMED_PROPERTY_SETTER):
* bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8CustomXPathNSResolver.cpp:
(WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8HTMLIFrameElementCustom.cpp:
(WebCore::ACCESSOR_SETTER):
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
(WebCore::removeElement):
* bindings/v8/custom/V8SQLTransactionCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8WorkerContextCustom.cpp:
(WebCore::SetTimeoutOrInterval):
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
2009-07-07 Gregory Hughes <gfhughesVO+webkit@gmail.com>
Reviewed by Darin Adler.
AX: Some webpages do not send AXLoadComplete
https://bugs.webkit.org/show_bug.cgi?id=26995
When sending the AXLayoutComplete notification it is possible
that the AXObjectCache was cleared, resulting in no valid
object to send the notification to. This fix ensures that an
AX object is created and cached if one does not already exist.
Not able to add a test because notifications get sent after the layout test is completed.
* dom/Document.cpp:
(WebCore::Document::implicitClose):
2009-07-06 Pierre d'Herbemont <pdherbemont@apple.com>
Reviewed by Simon Fraser.
https://bugs.webkit.org/show_bug.cgi?id=27015
Make sure that the CSS properties letter-spacing, word-spacing,
line-height, text-transform, text-indent, text-shadow,
text-decoration and color do not affect the media element controls,
that display text.
Controls that display text are only present in when the theme
MediaControllerThemeQT is being used.
Test: media/controls-styling.html
* css/mediaControlsQT.css:
* rendering/MediaControlElements.cpp:
(WebCore::MediaControlElement::updateStyle): Special case for
text-decoration. text-decoration can't be overriden from CSS, because
text-decoration is additive for historical reasons.
2009-07-07 Albert Wong <ajwong@chromium.org>
Not reviewed, Chromium build fix.
Add in missing header + fix syntax issue that crept into last patch.
https://bugs.webkit.org/show_bug.cgi?id=27027
* rendering/RenderThemeChromiumMac.mm:
(WebCore::RenderThemeChromiumMac::paintMediaFullscreenButton):
2009-07-07 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dave Hyatt.
Make use of geometry information to decide which layers become composited.
<rdar://problem/7011947>
<https://bugs.webkit.org/show_bug.cgi?id=27021>
In addition to looking at painting order, also, optionally, take layer
overlap into account when deciding which RenderLayers need to be composited.
No testcase because DRT doesn't dump which layers are composited.
* page/FrameView.h:
* page/FrameView.cpp:
(WebCore::FrameView::updateCompositingLayers):
Removed the unused CompositingUpdate parameter, and just do an early return
when there is no view.
* rendering/RenderLayer.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::rendererContentChanged):
(WebCore::RenderLayer::dirtyZOrderLists):
(WebCore::RenderLayer::dirtyNormalFlowList):
(WebCore::RenderLayer::styleChanged):
(WebCore::RenderLayer::mustOverlapCompositedLayers):
(WebCore::RenderLayer::setMustOverlapCompositedLayers):
Change "overlay" to "overlap" for consistency with the use of "overlap"
elsewhere.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateAfterLayout):
compositingLayersNeedUpdate() renamed to compositingLayersNeedRebuild().
(WebCore::RenderLayerBacking::startAnimation):
(WebCore::RenderLayerBacking::startTransition):
Tell the compositor that we started an accelerated animation or transition.
* rendering/RenderLayerCompositor.h:
(WebCore::RenderLayerCompositor::compositingLayersNeedRebuild):
Renamed, since it's explicitly about changes in hierarchy now.
(WebCore::RenderLayerCompositor::setCompositingConsultsOverlap):
(WebCore::RenderLayerCompositor::compositingConsultsOverlap):
New getter and setter for whether compositing should take overlap into account.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::RenderLayerCompositor):
Add m_compositingConsultsOverlap, re-order some member variables.
(WebCore::RenderLayerCompositor::cacheAcceleratedCompositingEnabledFlag):
Whitespace cleanup and method rename.
(WebCore::RenderLayerCompositor::setCompositingLayersNeedRebuild):
Method and variable renaming.
(WebCore::RenderLayerCompositor::updateCompositingLayers):
Now we have to run through the layer hierarchy every time if looking
at overlap, because changes in layout can now alter compositing behavior.
We minimize work by tracking whether we actually need to change the layer
hierarchy via needLayerRebuild.
(WebCore::RenderLayerCompositor::updateBacking):
3D transforms turn off overlap mode.
(WebCore::RenderLayerCompositor::layerWasAdded):
(WebCore::RenderLayerCompositor::layerWillBeRemoved):
Method rename.
(WebCore::RenderLayerCompositor::addToOverlapMap):
(WebCore::RenderLayerCompositor::overlapsCompositedLayers):
Utility methods to add a layer to the overlapMap (computing the absolute
bounding box only if we haven't already done so), and testing the map
entries.
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
If a layer would composite only because it comes after other compositing
layers in the painting order, then consult the overlap map to determine whether
it overlaps, and thus actually needs to composite.
Add layers to the map when they must be composited.
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
Only do re-parenting work if the updateHierarchy flag is set.
(WebCore::RenderLayerCompositor::didStartAcceleratedAnimation):
When we start an accelerated transition or animation, we stop looking at
overlap because we can no longer guarantee correct front-to-back ordering while the
accelerated animation is running.
(WebCore::RenderLayerCompositor::needsToBeComposited):
Method renames.
* rendering/RenderView.cpp:
(WebCore::RenderView::setMaximalOutlineSize):
Add comment indicating that this could be optimized.
2009-07-07 Anton Muhin <antonm@chromium.org>
Reviewed by Darin Fisher.
Speed up creation of V8 wrappers for DOM nodes.
https://bugs.webkit.org/show_bug.cgi?id=26882
This patch doesn't require new tests as it a set of refactorings
to speed up wrapper creation.
* bindings/v8/V8Proxy.cpp:
* bindings/v8/V8Proxy.h:
2009-07-07 Jan Michael Alonzo <jmalonzo@webkit.org>
Reviewed by Gustavo Noronha.
[GTK] textarea height property works only if other property are defined
https://bugs.webkit.org/show_bug.cgi?id=18984
Let WebCore handle textarea's metrics instead of readjusting it RenderthemeGtk.
Test: fast/forms/textarea-metrics.html
* platform/gtk/RenderThemeGtk.cpp:
* platform/gtk/RenderThemeGtk.h:
2009-07-07 Ben Murdoch <benm@google.com>
Reviewed by Antti Koivisto.
HTML5 Database becomes locked if a transaction is in progress when the page is refreshed.
https://bugs.webkit.org/show_bug.cgi?id=25711
Fix for https://bugs.webkit.org/show_bug.cgi?id=25711 where web
storage databases could become locked until the browser is shut
down if the page is refreshed whilst a transaction is in progress.
Test: storage/database-lock-after-reload.html
* storage/Database.cpp:
(WebCore::Database::Database):
(WebCore::Database::close): add code to inform the database thread we've closed the database.
(WebCore::Database::performOpenAndVerify): add code to inform the database thread we've opened a database.
* storage/Database.h:
(WebCore::Database::opened): return true iff the underlying sqlite database has been opened but not closed.
* storage/DatabaseThread.cpp:
(WebCore::DatabaseThread::databaseThread): Before the database thread terminates, close any databases that ran transactions in this thread.
(WebCore::DatabaseThread::recordDatabaseOpen): Records a database that executed a transaction in this thread.
(WebCore::DatabaseThread::recordDatabaseClosed): Removes a database from the set of open databases.
* storage/DatabaseThread.h:
(WebCore::DatabaseThread::getThreadID): return the thread id for the database thread.
2009-07-07 Jiahua Huang <jhuangjiahua@gmail.com>
Reviewed by Jan Alonzo.
[Gtk] Paste of rich text from firefox results garbled markup
https://bugs.webkit.org/show_bug.cgi?id=26791
Fix problem with UTF-16 clipboard pasted.
* manual-tests/gtk/paste-richtext-from-firefox.html: Added.
* platform/gtk/PasteboardGtk.cpp:
(WebCore::Pasteboard::documentFragment):
2009-07-07 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Timothy Hatcher.
Change 'Continue debug' shortcut from F5 to F8 for consistency with Firebug.
https://bugs.webkit.org/show_bug.cgi?id=23849
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel):
2009-07-06 Albert J. Wong <ajwong@chromium.org>
Reviewed by Maciej Stachowiak.
Update RenderThemeChromiumMac for wkDrawMediaUIPart and wkDrawMediaSlider API
change.
Fix compile RenderThemeChromiumMac.mm due to API changes from r45572
https://bugs.webkit.org/show_bug.cgi?id=27018
This is mainly an API change update to fix the chromium compile. It
also has a small fix of a typo in RenderThemeMac.mm.
Compilation against the head of chromium trunk passed. Since this is
a compile fix, that should be sufficient.
* rendering/RenderThemeChromiumMac.mm:
(WebCore::):
(WebCore::RenderThemeChromiumMac::paintMediaFullscreenButton):
(WebCore::RenderThemeChromiumMac::paintMediaMuteButton):
(WebCore::RenderThemeChromiumMac::paintMediaPlayButton):
(WebCore::RenderThemeChromiumMac::paintMediaSeekBackButton):
(WebCore::RenderThemeChromiumMac::paintMediaSeekForwardButton):
(WebCore::RenderThemeChromiumMac::paintMediaSliderTrack):
(WebCore::RenderThemeChromiumMac::paintMediaSliderThumb):
* rendering/RenderThemeMac.mm:
(WebCore::):
2009-07-06 David Kilzer <ddkilzer@apple.com>
Bug 27002: Build fix when DASHBOARD_SUPPORT is disabled with -Wunused-parameter
<https://bugs.webkit.org/show_bug.cgi?id=27002>
Reviewed by Geoff Garen.
* html/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::prepareGradientForDashboard):
Mark gradient as an unused parameter when DASHBOARD_SUPPORT is
disabled.
2009-07-06 David Kilzer <ddkilzer@apple.com>
Bug 27001: Fix improper use of PassRefPtr<Node> to RefPtr<Node>
<https://bugs.webkit.org/show_bug.cgi?id=27001>
Reviewed by Geoff Garen.
PassRefPtr<> should only be used for arguments to functions that
take ownership of the object, or as return values from functions
that relinquish ownership of the object.
* editing/Editor.cpp:
(WebCore::Editor::increaseSelectionListLevelOrdered): Changed
stack-allocated PassRefPtr<Node> to RefPtr<Node> and call
release() on returned object.
(WebCore::Editor::increaseSelectionListLevelUnordered): Ditto.
2009-07-06 Eric Carlson <eric.carlson@apple.com>
Reviewed by Simon Fraser.
<rdar://problem/7035474> Make new media controller UI default on SnowLeopard
* rendering/RenderThemeMac.mm:
(WebCore::mediaControllerTheme):
New media controller UI is enabled by default on SnowLeopard.
2009-07-06 Nate Chapin <japhet@chromium.org>
Unreviewed, build fix.
Roll out r45559 to fix Chromium canary.
https://bugs.webkit.org/show_bug.cgi?id=26857
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/v8/V8Binding.cpp: Removed.
* bindings/v8/V8Binding.h:
(WebCore::toInt32):
(WebCore::toWebCoreString):
(WebCore::fromWebCoreString):
(WebCore::toWebCoreStringWithNullCheck):
(WebCore::isUndefinedOrNull):
(WebCore::v8Boolean):
* bindings/v8/V8LazyEventListener.cpp:
(WebCore::V8LazyEventListener::getListenerFunction):
* bindings/v8/V8Proxy.cpp:
(WebCore::handleConsoleMessage):
(WebCore::V8Proxy::compileScript):
(WebCore::V8Proxy::sourceName):
* bindings/v8/WorkerContextExecutionProxy.cpp:
(WebCore::handleConsoleMessage):
* bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
(WebCore::NAMED_PROPERTY_SETTER):
* bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8CustomXPathNSResolver.cpp:
(WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8HTMLIFrameElementCustom.cpp:
(WebCore::ACCESSOR_SETTER):
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
(WebCore::removeElement):
* bindings/v8/custom/V8SQLTransactionCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8WorkerContextCustom.cpp:
(WebCore::SetTimeoutOrInterval):
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
2009-07-06 Eric Carlson <eric.carlson@apple.com>
Reviewed by Darin Adler.
<rdar://problem/7008093> Media controller can’t be used to scrub when movie is
narrow — track is too narrow
Do not show media controller time display elements when the a movie is too narrow.
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
The 'state' parameter to wkDrawMediaUIPart is now an unsigned bitfield.
* rendering/MediaControlElements.cpp:
(WebCore::MediaControlTimeDisplayElement::MediaControlTimeDisplayElement):
Give current time and time remaining controls a common base class.
(WebCore::MediaControlTimeDisplayElement::setVisible):
New method, hide and show the element.
* rendering/MediaControlElements.h:
* rendering/RenderMedia.cpp:
(WebCore::RenderMedia::RenderMedia):
Initialize m_previousVisible.
(WebCore::RenderMedia::layout):
Show/hide the time display elements as the movie width changes.
(WebCore::RenderMedia::createCurrentTimeDisplay):
(WebCore::RenderMedia::createTimeRemainingDisplay):
Base class is now MediaControlTimeDisplayElement, not MediaControlElement.
(WebCore::RenderMedia::shouldShowTimeDisplayControls):
New, decide if time display elements should be visible or not.
* rendering/RenderMedia.h:
* rendering/RenderThemeMac.mm:
(WebCore::):
(WebCore::RenderThemeMac::paintMediaFullscreenButton):
(WebCore::RenderThemeMac::paintMediaMuteButton):
(WebCore::RenderThemeMac::paintMediaPlayButton):
(WebCore::RenderThemeMac::paintMediaSeekBackButton):
(WebCore::RenderThemeMac::paintMediaSeekForwardButton):
(WebCore::RenderThemeMac::paintMediaSliderTrack):
(WebCore::RenderThemeMac::paintMediaSliderThumb):
(WebCore::RenderThemeMac::paintMediaRewindButton):
(WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
(WebCore::RenderThemeMac::paintMediaControlsBackground):
(WebCore::RenderThemeMac::paintMediaCurrentTime):
(WebCore::RenderThemeMac::paintMediaTimeRemaining):
The 'state' parameter to wkDrawMediaUIPart is now an unsigned bitfield.
2009-07-06 David Kilzer <ddkilzer@apple.com>
Bug 27000: Minor clean up to runtime_root.{cpp|h}
<https://bugs.webkit.org/show_bug.cgi?id=27000>
Reviewed by Geoff Garen.
* bridge/runtime_root.cpp: Added blank line between license and
the first #include statement.
* bridge/runtime_root.h: Added comment to #endif.
2009-07-06 Roland Steiner <rolandsteiner@google.com>
Reviewed by Maciej Stachowiak.
generalize the special height treatment for SVG (to be re-used for ruby):
renamed InlineBox::m_isSVG to m_hasVirtualHeight
renamed InlineBox::isSVG() to hasVirtualHeight()
renamed InlineBox::setIsSVG() to setHasVirtualHeight()
* rendering/InlineBox.cpp:
(WebCore::InlineBox::height):
* rendering/InlineBox.h:
(WebCore::InlineBox::InlineBox):
(WebCore::InlineBox::isText):
(WebCore::InlineBox::setIsText):
(WebCore::InlineBox::isSVGRootInlineBox):
(WebCore::InlineBox::hasVirtualHeight):
(WebCore::InlineBox::setHasVirtualHeight):
(WebCore::InlineBox::virtualHeight):
* rendering/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::createFlowBox):
* rendering/RenderSVGInlineText.cpp:
(WebCore::RenderSVGInlineText::createTextBox):
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::createRootBox):
* rendering/SVGInlineFlowBox.h:
(WebCore::SVGInlineFlowBox::virtualHeight):
* rendering/SVGInlineTextBox.h:
(WebCore::SVGInlineTextBox::virtualHeight):
* rendering/SVGRootInlineBox.h:
(WebCore::SVGRootInlineBox::virtualHeight):
2009-07-06 Alice Liu <alice.liu@apple.com>
Reviewed by Darin Adler.
REGRESSION(r45285): focus rings are black on windows safari
https://bugs.webkit.org/show_bug.cgi?id=26821
<rdar://problem/7018252>
Add a mechanism for setting a custom focus ring color, and relocate the
determination of focus ring color to base class RenderTheme.
No new tests. Already-existing tests run in pixel mode would have caught this regression
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::getColorFromPrimitiveValue): Move the responsibility
of determining focus color to base class RenderTheme.
* rendering/RenderTheme.cpp:
(WebCore::customFocusRingColor): Added static local.
(WebCore::RenderTheme::setCustomFocusRingColor): Added
(WebCore::RenderTheme::focusRingColor): Use custom color over platform color.
* rendering/RenderTheme.h:
(WebCore::RenderTheme::platformFocusRingColor): default implementation, black color
* rendering/RenderThemeSafari.cpp:
(WebCore::RenderTheme::themeForPage): Circumstances that lead to returning the RenderThemeWin
are the same under which we want to use the focus ring color from SafariTheme.
(WebCore::RenderThemeSafari::platformFocusRingColor): Renamed from focusRingColor
* rendering/RenderThemeSafari.h:
Renaming focusRingColor to platformFocusRingColor in these files:
* rendering/RenderThemeChromiumMac.h:
* rendering/RenderThemeChromiumMac.mm:
(WebCore::RenderThemeChromiumMac::platformFocusRingColor):
* rendering/RenderThemeChromiumSkia.cpp:
(WebCore::RenderThemeChromiumSkia::platformFocusRingColor):
* rendering/RenderThemeChromiumSkia.h:
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::platformFocusRingColor):
Cleanup leftover from removal of WebCore::Color in r45285 in these files:
* WebCore.order:
* platform/graphics/Color.h:
2009-07-06 Shinichiro Hamaji <hamaji@chromium.org>
Reviewed by David Hyatt.
Bug 15135: REGRESSION (r19843-r19850): Changing a flexbox's
contents makes its container scroll to the top
https://bugs.webkit.org/show_bug.cgi?id=15135
Delay updateing scroll bar of descendants of flexbox until their
positions are determined. In this way we can prevent descendants
of flexible boxes from changing positions of their scrollbars
using tentative positions.
Test: fast/flexbox/repaint-scrollbar.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::startDelayUpdateScrollInfo):
(WebCore::RenderBlock::finishDelayUpdateScrollInfo):
(WebCore::RenderBlock::updateScrollInfoAfterLayout):
(WebCore::RenderBlock::layoutBlock):
(WebCore::RenderBlock::layoutOnlyPositionedObjects):
* rendering/RenderBlock.h:
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutHorizontalBox):
(WebCore::RenderFlexibleBox::layoutVerticalBox):
2009-07-06 Hironori Bono <hbono@chromium.org>
Reviewed by Maciej Stachowiak.
Make unconfirmed IME text affect textarea's value.
This matches input and contentEditable elements as well
IE and Firefox.
This fixes https://bugs.webkit.org/show_bug.cgi?id=25061.
Input elements would go down this code path because it
would always get a null compositionNode from frame->editor().
Special casing compositionNodes is wrong because we explicitly
want unconfirmed IME input in the textarea's value (assuming we
want to match IE and Firefox here).
This change is originally created by Ojan Vafai <ojan@chromium.org> and
I just changed its manual tests with an automated test on his behalf.
Test: platform/mac/editing/input/text-control-ime-input.html
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::text):
(WebCore::RenderTextControl::textWithHardLineBreaks):
2009-07-06 Anders Carlsson <andersca@apple.com>
Reviewed by Adele Peterson.
Add the ability for wheel events to latch to a node.
* WebCore.base.exp:
* page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler):
(WebCore::EventHandler::clear):
(WebCore::EventHandler::handleWheelEvent):
* page/EventHandler.h:
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::wheelEvent):
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
2009-07-06 Nate Chapin <japhet@chromium.org>
Reviewed by Dimitri Glazkov.
Fix a bunch of layout test crahses in Chromium caused by a bad usage of DEFINE_STATIC_LOCAL.
https://bugs.webkit.org/show_bug.cgi?id=26997
* bindings/v8/V8Binding.cpp:
(WebCore::v8ValueToWebCoreString): Use a regular static declaration instead of DEFINE_STATIC_LOCAL.
2009-07-06 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
WebInspector: suggest global properties based on async evaluation.
https://bugs.webkit.org/show_bug.cgi?id=26976
Before this change, empty string was evaluated to the global object
(or scope chain object) synchronously. This is now fixed and global
object is evaluated using the same control flow.
* inspector/front-end/Console.js:
(WebInspector.Console.prototype.completions):
(WebInspector.Console.prototype._evalInInspectedWindow):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._variablesInScope):
2009-07-06 Ojan Vafai <ojan@chromium.org>
Reviewed by Eric Seidel.
Fix crash when indenting in an empty table cell.
https://bugs.webkit.org/show_bug.cgi?id=26872
The crash is that we would call splitTreeToNode where the node
and the nodeToSplitTo were the same node.
Test: editing/execCommand/indent-empty-table-cell.html
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::splitTreeToNode):
Added an assert in that node and nodeToSplitTo
are different nodes to make this assumption explicit.
* editing/IndentOutdentCommand.cpp:
(WebCore::IndentOutdentCommand::isAtUnsplittableElement):
(WebCore::IndentOutdentCommand::indentRegion):
* editing/IndentOutdentCommand.h:
2009-07-06 Nate Chapin <japhet@chromium.org>
Reviewed by David Levin.
Upstream V8Binding and update some function names.
https://bugs.webkit.org/show_bug.cgi?id=26857
* bindings/scripts/CodeGeneratorV8.pm: Update function names in auto-generated files.
* bindings/v8/V8Binding.cpp: Upstreamed from src.chromium.org.
* bindings/v8/V8Binding.h: Upstreamed from src.chromium.org.
* bindings/v8/V8LazyEventListener.cpp:
(WebCore::V8LazyEventListener::getListenerFunction):
* bindings/v8/V8Proxy.cpp:
(WebCore::handleConsoleMessage):
(WebCore::V8Proxy::compileScript):
(WebCore::V8Proxy::sourceName):
* bindings/v8/WorkerContextExecutionProxy.cpp:
(WebCore::handleConsoleMessage):
* bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
(WebCore::NAMED_PROPERTY_SETTER):
* bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8CustomXPathNSResolver.cpp:
(WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8HTMLIFrameElementCustom.cpp:
(WebCore::ACCESSOR_SETTER):
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
(WebCore::removeElement):
* bindings/v8/custom/V8SQLTransactionCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8WorkerContextCustom.cpp:
(WebCore::SetTimeoutOrInterval):
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
2009-07-06 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
Reviewed by Jan Alonzo.
Use soup's content sniffing
https://bugs.webkit.org/show_bug.cgi?id=26982
Drop our hackish content sniffing code, and use the new libsoup
feature to do that job for us.
Testing this is in a cross-platform way is not obvious or possible
while we are using platform-specific code for sniffing.
* platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::gotHeadersCallback):
(WebCore::contentSniffedCallback):
(WebCore::gotChunkCallback):
(WebCore::ResourceHandle::startHttp):
2009-07-05 Antonio Gomes <antonio.gomes@openbossa.org>
Reviewed by Darin Adler.
REGRESSION (r40499): fast/dom/cssTarget-crash.html fails
https://bugs.webkit.org/show_bug.cgi?id=20342
Re-added code removed by commit r40499.
Without this, both Qt and Mac were crashing while running the test.
Note that this does not entirely fix the bug. It fixes the WebCore
crash, but the test no longer seems to work due to loader changes.
So this patch does not reenable the test. The test probably has to
be rewritten.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::removedFromDocument): Re-added code to
set the CSS target of the document to 0.
2009-07-05 Chris Marrin <cmarrin@apple.com>
Reviewed by Simon Fraser.
https://bugs.webkit.org/show_bug.cgi?id=26943
When one transition finishes slightly before another the longer
one will fire a second time. This is because the second
ImplicitAnmation object is culled too early, before its final
RenderStyle is in place. This is done by cleanupFinishedAnimations()
so I got rid of that method completely and now cleanup each
transition or animation at the point where I am setting the final
style, or when I detect that the transition or animation has been
terminated early (which happens when you remove it from the style).
Test: transitions/extra-transition.html
* page/animation/AnimationController.cpp:
(WebCore::AnimationControllerPrivate::updateStyleIfNeededDispatcherFired):
* page/animation/CompositeAnimation.cpp:
(WebCore::CompositeAnimation::updateTransitions):
(WebCore::CompositeAnimation::updateKeyframeAnimations):
(WebCore::CompositeAnimation::animate):
* page/animation/CompositeAnimation.h:
* page/animation/AnimationBase.cpp:
(WebCore::AnimationBase::getTimeToNextEvent):
Avoid a divide by zero if m_animation->duration() is zero, which can happen
if the duration is changed to zero while the animation is running.
2009-07-05 Simon Fraser <simon.fraser@apple.com>
Revert the previous commit because it broke the
animations/transition-and-animation-1.html
testcase.
* page/animation/AnimationBase.cpp:
(WebCore::AnimationBase::getTimeToNextEvent):
* page/animation/AnimationController.cpp:
(WebCore::AnimationControllerPrivate::updateStyleIfNeededDispatcherFired):
* page/animation/CompositeAnimation.cpp:
(WebCore::CompositeAnimation::updateTransitions):
(WebCore::CompositeAnimation::updateKeyframeAnimations):
(WebCore::CompositeAnimation::animate):
(WebCore::CompositeAnimation::cleanupFinishedAnimations):
* page/animation/CompositeAnimation.h:
2009-07-05 Chris Marrin <cmarrin@apple.com>
Reviewed by Simon Fraser.
https://bugs.webkit.org/show_bug.cgi?id=26943
When one transition finishes slightly before another the longer
one will fire a second time. This is because the second
ImplicitAnmation object is culled too early, before its final
RenderStyle is in place. This is done by cleanupFinishedAnimations()
so I got rid of that method completely and now cleanup each
transition or animation at the point where I am setting the final
style, or when I detect that the transition or animation has been
terminated early (which happens when you remove it from the style).
Test: transitions/extra-transition.html
* page/animation/AnimationController.cpp:
(WebCore::AnimationControllerPrivate::updateStyleIfNeededDispatcherFired):
* page/animation/CompositeAnimation.cpp:
(WebCore::CompositeAnimation::updateTransitions):
(WebCore::CompositeAnimation::updateKeyframeAnimations):
(WebCore::CompositeAnimation::animate):
* page/animation/CompositeAnimation.h:
* page/animation/AnimationBase.cpp:
(WebCore::AnimationBase::getTimeToNextEvent):
Avoid a divide by zero if m_animation->duration() is zero, which can happen
if the duration is changed to zero while the animation is running.
2009-07-05 Lars Knoll <lars.knoll@nokia.com>
Reviewed by Maciej Stachowiak.
https://bugs.webkit.org/show_bug.cgi?id=26843
Fix run-time crashes in JavaScriptCore with the Metrowerks compiler on Symbian.
The Metrowerks compiler on the Symbian platform moves the globally
defined Hashtables into read-only memory, despite one of the members
being mutable. This causes crashes at run-time due to write access to
read-only memory.
Avoid the use of const with this compiler by introducing the
JSC_CONST_HASHTABLE macro.
Based on idea by Norbert Leser.
* bindings/scripts/CodeGeneratorJS.pm: Use JSC_CONST_HASHTABLE for hash tables
define in the bindings.
2009-07-05 Rob Buis <rwlbuis@gmail.com>
Reviewed by Maciej Stachowiak.
Bug 26897 - Dynamic SVG images do not display correctly
https://bugs.webkit.org/show_bug.cgi?id=26897
Use repaint() to fix a rendering problem with a SVG image embedded in xhtml.
Test: svg/custom/createImageElement2.xhtml
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::imageChanged):
2009-07-05 Xan Lopez <xlopez@igalia.com>
Reviewed by Jan Alonzo.
https://bugs.webkit.org/show_bug.cgi?id=26960
[Gtk] caret offset not updated when selecting text
Report the caret offset from the end of the selection so it works
correctly for multi-char selections too (ie, anything that is not
the zero width caret).
* accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
(webkit_accessible_text_get_caret_offset):
2009-07-05 Holger Hans Peter Freyther <zecke@selfish.org>
Unreviewed link fix for Qt.
Fix Qt link error by adding two new localized strings
In r45474 two new strings got added to LocalizedStrings.h add
the definition of them to Qt.
* platform/qt/Localizations.cpp:
(WebCore::mediaElementLoadingStateText):
(WebCore::mediaElementLiveBroadcastStateText):
2009-07-03 Darin Adler <darin@apple.com>
Reviewed by Adele Peterson.
REGRESSION (r44670-r44680): Typing is suprisingly slow in password field on reddit.com
https://bugs.webkit.org/show_bug.cgi?id=26959
rdar://problem/7029882
The code to handle iteration boundaries was malfunctioning when the boundary was
at the edge of a shadow tree. This happens all the time with <input> elements.
It's not immediately obvious how to make a regression test for this since the
symptom was a performance problem, not incorrect behavior. I'll add a test if I
figure out a way to make one.
* editing/TextIterator.cpp:
(WebCore::parentCrossingShadowBoundaries): Renamed from parentOrShadowParent.
(WebCore::depthCrossingShadowBoundaries): Updated for name change.
(WebCore::nextInPreOrderCrossingShadowBoundaries): Added.
(WebCore::previousInPostOrderCrossingShadowBoundaries): Added.
(WebCore::setUpFullyClippedStack): Updated for name change.
(WebCore::TextIterator::TextIterator): Updated for name change. Use
nextInPreOrderCrossingShadowBoundaries instead of Range::pastLastNode to fix the bug.
(WebCore::TextIterator::advance): Updated for name change.
(WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
Tweaked formatting.
(WebCore::SimplifiedBackwardsTextIterator::advance): Ditto. Changed code that
initializes m_pastStartNode to use previousInPostOrderCrossingShadowBoundaries.
(WebCore::SimplifiedBackwardsTextIterator::handleNonTextNode): Tweaked formatting.
(WebCore::SimplifiedBackwardsTextIterator::exitNode): Ditto.
2009-07-03 Simon Fraser <simon.fraser@apple.com>
Reviewed by Sam Weinig.
Background audio stops playing when JS GC runs
https://bugs.webkit.org/show_bug.cgi?id=26956
Ensure we keep the Audio object around while it is playing, so that it
doesn't get collected.
Not testable because there's no way to know whether the audio keeps
playing without holding a reference to it.
* bindings/js/JSDOMBinding.cpp:
(WebCore::isObservableThroughDOM):
2009-07-02 Xan Lopez <xlopez@igalia.com>
Reviewed by Jan Alonzo.
https://bugs.webkit.org/show_bug.cgi?id=26814
[Gtk] Caret-moved events are not issued for the correct offset
when text is selected forward
Report the caret offset from the end of the selection, otherwise
we'll report the same offset when moving the caret while
modififying the selection (eg, with Shift + Right).
* editing/gtk/SelectionControllerGtk.cpp:
(WebCore::SelectionController::notifyAccessibilityForSelectionChange):
2009-07-02 Xan Lopez <xlopez@igalia.com>
Reviewed by Jan Alonzo.
https://bugs.webkit.org/show_bug.cgi?id=26815
[Gtk] text-selection-changed events are not issued for the correct
object when the selection spans multiple objects
Get the focused node from the end of the selection, not the start,
so we can detect when we cross object boundaries.
* editing/gtk/SelectionControllerGtk.cpp:
(WebCore::SelectionController::notifyAccessibilityForSelectionChange):
2009-07-02 Pierre d'Herbemont <pdherbemont@apple.com>
Reviewed by Simon Fraser.
https://bugs.webkit.org/show_bug.cgi?id=26947
Fix the media controls hit tests. They may lose click events.
Test cases already covered in the video-controls-zoomed tests.
Don't trust wkHitTestMediaUIPart for the tests. We are accurate enough.
* rendering/RenderThemeMac.h: Remove hitTestMediaControlPart.
* rendering/RenderThemeMac.mm: Remove hitTestMediaControlPart.
2009-07-02 Roland Steiner <rolandsteiner@google.com>
Reviewed by Eric Seidel.
RenderBlock and RenderInline have confusingly named object creation methods:
RenderBlock::createRootBox/createRootInlineBox
RenderInline::createFlowBox/createInlineFlowBox
where the 2nd method in both cases just calls the first and then appends the created object.
I therefore renamed those methods to something IMHO more informative:
createRootBox() -> createRootInlineBox()
createRootInlineBox() -> createAndAppendRootInlineBox();
createFlowBox() -> createInlineFlowBox();
createInlineFlowBox() -> createAndAppendInlineFlowBox();
https://bugs.webkit.org/show_bug.cgi?id=26828
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::createRootInlineBox):
(WebCore::RenderBlock::createAndAppendRootInlineBox):
* rendering/RenderBlock.h:
* rendering/RenderInline.cpp:
(WebCore::RenderInline::createInlineFlowBox):
(WebCore::RenderInline::createAndAppendInlineFlowBox):
* rendering/RenderInline.h:
* rendering/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::createInlineFlowBox):
* rendering/RenderSVGInline.h:
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::createRootInlineBox):
* rendering/RenderSVGText.h:
* rendering/bidi.cpp:
(WebCore::createInlineBoxForRenderer):
2009-07-02 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
WebInspector: Fix typo in the resource panel enabler caption.
https://bugs.webkit.org/show_bug.cgi?id=26753
* English.lproj/localizedStrings.js:
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel):
2009-07-02 Erik Arvidsson <arv@chromium.org>
Reviewed by Adam Roben.
[Win] HTML5 Drag and drop, dragend is not fired when pressing Esc
https://bugs.webkit.org/show_bug.cgi?id=26699
* manual-tests/drag-escape.html: Added.
* page/EventHandler.cpp:
(WebCore::EventHandler::dragSourceEndedAt):
2009-07-02 Pierre d'Herbemont <pdherbemont@apple.com>
Reviewed by Simon Fraser.
https://bugs.webkit.org/show_bug.cgi?id=26944
Make sure we support full page zoom in video controls.
This is tracked by a the video-controls-zoom test case.
* css/mediaControlsQT.css: Make sure we don't have any inherited margin.
* rendering/MediaControlElements.cpp:
(WebCore::MediaControlElement::updateStyle): Propagate the style to the innertext.
* rendering/RenderThemeMac.mm: Adjust the painting rect.
(WebCore::getUnzoomedRectAndAdjustCurrentContext):
(WebCore::RenderThemeMac::paintMediaSliderTrack):
(WebCore::RenderThemeMac::paintMediaCurrentTime):
(WebCore::RenderThemeMac::paintMediaTimeRemaining):
2009-07-02 Pierre d'Herbemont <pdherbemont@apple.com>
Fix the Gtk build after r45474. The localized strings should
have been added there.
* platform/gtk/LocalizedStringsGtk.cpp:
(WebCore::mediaElementLoadingStateText):
(WebCore::mediaElementLiveBroadcastStateText):
2009-07-02 Pierre d'Herbemont <pdherbemont@apple.com>
Reviewed by Simon Fraser.
https://bugs.webkit.org/show_bug.cgi?id=26939
Media controller is rendered badly at http://www.mozilla.com/en-US/firefox/video/firefox-3.5.html
We fix two things:
- We use px instead of em, because px is used everywhere else
and because 0.09em hit the font size limit.
- We use -webkit-box instead of inline-block because in strict mode
inline-block has a different behavior.
Test: media/controls-strict.html
* css/mediaControlsQT.css:
2009-07-02 David Hyatt <hyatt@apple.com>
Reviewed by Dan Bernstein.
TextIterator should use hasOverflowClip when checking for overflow instead of looking at the style.
https://bugs.webkit.org/show_bug.cgi?id=26942
* editing/TextIterator.cpp:
(WebCore::fullyClipsContents):
2009-07-02 Sam Weinig <sam@webkit.org>
Reviewed by Dave Hyatt.
Fix for <rdar://problem/5230700>
Remove local .xhtml file workaround
* platform/network/mac/ResourceResponseMac.mm:
(WebCore::ResourceResponse::platformLazyInit): Work around is no longer necessary.
2009-07-02 Anders Carlsson <andersca@apple.com>
Reviewed by Dan Bernstein.
Sort, add functions used by WebKit.
* WebCore.base.exp:
2009-07-02 Brady Eidson <beidson@apple.com>
Rubberstamped by Sam Weinig.
More of <rdar://problem/6969425> Safari 4.0 doesn't recognize text/plain files if their extension is unknown.
* platform/network/mac/WebCoreURLResponse.mm:
(webNSURLResponseMIMEType): Give Tiger a chance to query the UTI machinery.
2009-07-02 Adam Langley <agl@google.com>
Reviewed by Eric Seidel.
Chromium Linux: fix complex text rendering with line break characters.
https://bugs.webkit.org/show_bug.cgi?id=26935
If the CSS white-space property is inhibiting line breaking, we might
find end-of-line characters rendered via the complex text path. Fonts
don't provide glyphs for these code points so, if we find one, we
simulate the space glyph being interposed in this case. Because the
input is variable-length per code point, we walk the input in step
with the output.
Covered by:
LayoutTests/fast/text/international/bidi-linebreak-002.html
LayoutTests/fast/text/international/bidi-linebreak-003.html
LayoutTests/fast/text/international/hindi-whitespace.html
* platform/graphics/chromium/HarfbuzzSkia.cpp:
(WebCore::stringToGlyphs):
2009-07-02 Victor Wang <victorw@chromium.org>
Reviewed by Darin Fisher.
https://bugs.webkit.org/show_bug.cgi?id=26521
Expose file size to chromium.
Implement getFileSize() for Chromium.
* platform/chromium/ChromiumBridge.h:
* platform/chromium/FileSystemChromium.cpp:
(WebCore::getFileSize):
2009-07-02 Nate Chapin <japhet@chromium.org>
Unreviewed, build fix.
* bindings/v8/V8SVGPODTypeWrapper.h: Lost a space in nested template argument list.
2009-07-02 Simon Fraser <simon.fraser@apple.com>
Build fix: add missing #include.
* platform/mac/ThemeMac.mm:
2009-07-02 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dave Hyatt.
<rdar://problem/7028682> ThemeMac::paintRadio() throws Obj-C exceptions when zoomed
Add BEGIN_BLOCK_OBJC_EXCEPTIONS/END_BLOCK_OBJC_EXCEPTIONS guards around code
that can possibly throw Objective-C exceptions when drawing Mac form controls.
* platform/mac/ThemeMac.mm:
(WebCore::paintCheckbox):
(WebCore::paintRadio):
(WebCore::paintButton):
(WebCore::ThemeMac::inflateControlPaintRect):
2009-07-02 Nate Chapin <japhet@chromium.org>
Reviewed by David Levin.
Upstream V8SVGPODTypeWrapper.
https://bugs.webkit.org/show_bug.cgi?id=26907
* bindings/scripts/CodeGeneratorV8.pm: Update function being renamed in V8SVGPODTypeWrapper.h.
* bindings/v8/V8SVGPODTypeWrapper.h: Upstreamed from src.chromium.org.
2009-07-02 Dumitru Daniliuc <dumi@chromium.org>
Reviewed by Dimitri Glazkov.
Adds an abstraction layer between the DB classes and the file
system, which allows us to add our own logic for storing, opening,
deleting, etc. databases.
The patch was tested using the tests in WebCore/storage.
https://bugs.webkit.org/show_bug.cgi?id=26054
* GNUmakefile.am:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::open): Delegating the job of opening DB files to SQLiteFileSystem to allow use of custom VFSs.
* platform/sql/SQLiteFileSystem.cpp: Added.
* platform/sql/SQLiteFileSystem.h: Added.
* platform/win/FileSystemWin.cpp:
(WebCore::directoryName): Implemented.
* storage/Database.cpp:
(WebCore::Database::databaseSize): The code that returns the size of a DB file moved to SQLiteFileSystem.
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::DatabaseTracker): Added the ability to register a custom SQLite VFS.
(WebCore::DatabaseTracker::trackerDatabasePath): DB file-related operations moved to SQLiteFileSystem.
(WebCore::DatabaseTracker::openTrackerDatabase): DB file-related operations moved to SQLiteFileSystem.
(WebCore::DatabaseTracker::originPath): DB file-related operations moved to SQLiteFileSystem.
(WebCore::DatabaseTracker::fullPathForDatabase): DB file-related operations moved to SQLiteFileSystem.
(WebCore::DatabaseTracker::usageForDatabase): DB file-related operations moved to SQLiteFileSystem.
(WebCore::DatabaseTracker::deleteOrigin): DB file-related operations moved to SQLiteFileSystem.
(WebCore::DatabaseTracker::deleteDatabaseFile): DB file-related operations moved to SQLiteFileSystem.
* storage/OriginUsageRecord.cpp:
(WebCore::OriginUsageRecord::diskUsage): DB file-related operations moved to SQLiteFileSystem.
2009-07-02 David Hyatt <hyatt@apple.com>
Reviewed by Simon Fraser.
Always clip replaced elements to border radii.
https://bugs.webkit.org/show_bug.cgi?id=26933
Make sure to always clip replaced elements to border radii, even when overflow is visible.
Stop defaulting those elements to overflow:hidden in the UA sheet, since it is now no longer
necessary.
Covered by existing tests (since the UA default changing keeps the behavior exactly the same).
* css/html.css:
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::paint):
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::paint):
2009-07-02 Jeremy Orlow <jorlow@chromium.org>
Reviewed by Simon Fraser.
convertFromScrollbarToContainingView and friends should be in ScrollView
https://bugs.webkit.org/show_bug.cgi?id=26929
This is breaking Chromium's build because PopupMenuChromium inherits
from ScrollView, but these functions are pure virtual in it. I could
put it directly in PopupMenuChromium, but that seems a bit silly since
the functions are fairly generic.
Passes existing layout tests.
* page/FrameView.cpp: Remove the 4 functions Hyatt just added
(IntRect WebCore::FrameView::convertFromScrollbarToContainingView):
(IntRect WebCore::FrameView::convertFromContainingViewToScrollBar):
(IntPoint WebCore::FrameView::convertFromScrollbarToContainingView):
(IntPoint WebCore::FrameView::convertFromContainingViewToScrollBar):
* page/FrameView.h: ditto
* platform/ScrollView.cpp: Move the 4 functions from FrameView here
(IntRect WebCore::ScrollView::convertFromScrollbarToContainingView):
(IntRect WebCore::ScrollView::convertFromContainingViewToScrollBar):
(IntPoint WebCore::ScrollView::convertFromScrollbarToContainingView):
(IntPoint WebCore::ScrollView::convertFromContainingViewToScrollBar):
* platform/ScrollView.h: ditto
2009-07-02 Dirk Pranke <dpranke@chromium.org>
Reviewed by Darin Fisher.
Fix https://bugs.webkit.org/show_bug.cgi?id=26088 - TransparencyWin
doesn't handle errors well at all; revise it to fail silently
(drawing nothing), and bulletproof FontChromiumWin to handle the
failure accordingly.
Tests: fast/text/text-large-negative-letter-spacing-with-opacity.html
fast/text/text-letter-spacing.html
* platform/graphics/chromium/FontChromiumWin.cpp:
(WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::initializeForGDI):
(WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::~TransparencyAwareFontPainter):
(WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::TransparencyAwareGlyphPainter):
(WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::~TransparencyAwareGlyphPainter):
(WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::drawGlyphs):
(WebCore::Font::drawGlyphs):
(WebCore::Font::drawComplexText):
* platform/graphics/chromium/TransparencyWin.cpp:
(WebCore::TransparencyWin::TransparencyWin):
(WebCore::TransparencyWin::setupLayerForNoLayer):
(WebCore::TransparencyWin::setupLayerForOpaqueCompositeLayer):
(WebCore::TransparencyWin::setupLayerForWhiteLayer):
(WebCore::TransparencyWin::setupTransformForKeepTransform):
(WebCore::TransparencyWin::setupTransformForScaleTransform):
(WebCore::TransparencyWin::initializeNewContext):
(WebCore::TransparencyWin::compositeOpaqueComposite):
(WebCore::TransparencyWin::compositeTextComposite):
(WebCore::TransparencyWin::makeLayerOpaque):
* platform/graphics/chromium/TransparencyWin.h:
(WebCore::TransparencyWin::platformContext):
2009-07-02 Eric Carlson <eric.carlson@apple.com>
Change #import to #include to fix non-ObjC builds.
* rendering/MediaControlElements.cpp:
2009-07-02 Anders Carlsson <andersca@apple.com>
Build fix.
* platform/network/mac/WebCoreURLResponse.mm:
(mimeTypeFromUTITree):
2009-07-02 David Hyatt <hyatt@apple.com>
Reviewed by Simon Fraser.
Fix for bug 22119, clicks in the scrollbars of transformed content don't work. Add new
conversion methods for going across parent/child widget boundaries that can be implemented
by the FrameView and ScrollbarClient to be transform-aware.
Test cases added in platform/mac/fast/forms and platform/mac/fast/overflow.
* WebCore.base.exp:
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseMoveEvent):
* page/FrameView.cpp:
(WebCore::FrameView::convertFromScrollbarToContainingView):
(WebCore::FrameView::convertFromContainingViewToScrollbar):
(WebCore::FrameView::convertFromRenderer):
(WebCore::FrameView::convertToRenderer):
(WebCore::FrameView::convertToContainingView):
(WebCore::FrameView::convertFromContainingView):
* page/FrameView.h:
* platform/ScrollView.h:
* platform/Scrollbar.cpp:
(WebCore::Scrollbar::convertToContainingView):
(WebCore::Scrollbar::convertFromContainingView):
* platform/Scrollbar.h:
* platform/ScrollbarClient.h:
(WebCore::ScrollbarClient::convertFromScrollbarToContainingView):
(WebCore::ScrollbarClient::convertFromContainingViewToScrollbar):
* platform/Widget.cpp:
(WebCore::Widget::convertFromContainingWindow):
(WebCore::Widget::convertToContainingWindow):
(WebCore::Widget::convertFromRootToContainingWindow):
(WebCore::Widget::convertFromContainingWindowToRoot):
(WebCore::Widget::convertToContainingView):
(WebCore::Widget::convertFromContainingView):
* platform/Widget.h:
* platform/graphics/IntPoint.h:
(WebCore::IntPoint::move):
* platform/mac/WidgetMac.mm:
(WebCore::Widget::convertFromRootToContainingWindow):
(WebCore::Widget::convertFromContainingWindowToRoot):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::isPointInOverflowControl):
* rendering/RenderDataGrid.cpp:
(WebCore::RenderDataGrid::convertFromScrollbarToContainingView):
(WebCore::RenderDataGrid::convertFromContainingViewToScrollbar):
* rendering/RenderDataGrid.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::convertFromScrollbarToContainingView):
(WebCore::RenderLayer::convertFromContainingViewToScrollbar):
(WebCore::RenderLayer::scrollbarOffset):
(WebCore::RenderLayer::hitTestOverflowControls):
* rendering/RenderLayer.h:
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::isPointInOverflowControl):
(WebCore::RenderListBox::convertFromScrollbarToContainingView):
(WebCore::RenderListBox::convertFromContainingViewToScrollbar):
* rendering/RenderListBox.h:
2009-07-02 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt and Simon Fraser.
- fix <rdar://problem/6933052> SPOD playing video in a div with a box
shadow
Test: fast/box-shadow/transform-fringing.html
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintBoxShadow): Clip out the
box even if it has an opaque background, but in that case, inset the
clip path by 1 pixel, to avoid antialiasing artifacts.
Do not inset the clip rect by 1 pixel if the CTM is purely a
translation.
Move the shadow-casting path away in the non-rounded-rect case (it
was already being done in the rounded-rect case), to avoid a black
fringe when the CTM is not purely a translation.
2009-07-02 Brady Eidson <beidson@apple.com>
Reviewed by Sam Weinig.
<rdar://problem/6969425> Safari 4.0 doesn't recognize text/plain files if their extension is unknown.
Walk the CoreTypes UTI tree for extensions with unknown MIME types, using the first MIME type found.
For many types of text files (such as source code files) this ends up being text/plain.
* platform/network/mac/ResourceHandleMac.mm:
(-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]): Tweak the logging output.
* platform/network/mac/WebCoreURLResponse.h:
* platform/network/mac/WebCoreURLResponse.mm:
(mimeTypeFromUTITree):
(webNSURLResponseMIMEType): Use mimeTypeFromUTITree() to find a UTI-based MIME type for this file's extension.
(-[NSURLResponse _webcore_reportedMIMEType]): Return the actual MIME type that CFNetwork gave us.
2009-07-02 Pierre d'Herbemont <pdherbemont@apple.com>
Reviewed by Simon Fraser.
<rdar://problem/6518119>
Add a rewind button and hide the timeline for live broadcasts when
in MediaUI mode.
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Add the new pseudo element.
* css/CSSSelector.cpp:
(WebCore::CSSSelector::extractPseudoType): Ditto.
* css/CSSSelector.h:
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): Ditto.
* css/CSSValueKeywords.in: Ditto.
* css/mediaControls.css: Ditto.
* css/mediaControlsQT.css: Ditto.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::rewind): New.
(WebCore::HTMLMediaElement::returnToRealTime): New.
(WebCore::HTMLMediaElement::isStreaming): New.
* html/HTMLMediaElement.h:
* page/mac/WebCoreViewFactory.h: Declare mediaElementLoadingStateText and mediaElementLiveBroadcastStateText.
* platform/LocalizedStrings.h: Add localized media state messages.
* platform/ThemeTypes.h: Add the new pseudo element.
* platform/mac/LocalizedStringsMac.mm:
(WebCore::mediaElementLoadingStateText): Add localized media state.
(WebCore::mediaElementLiveBroadcastStateText): Ditto.
* platform/mac/WebCoreSystemInterface.h: Change BOOL param wkDrawMediaUIPart to an int to support
multiple states.
* platform/mac/WebCoreSystemInterface.mm: Ditto.
* rendering/MediaControlElements.cpp:
(WebCore::MediaControlElement::MediaControlElement): Deal with new elements.
(WebCore::MediaControlElement::attachToParent): Ditto.
(WebCore::MediaControlElement::update): Ditto.
(WebCore::MediaControlElement::updateStyle): Ditto.
(WebCore::MediaControlTimelineContainerElement::MediaControlTimelineContainerElement): Ditto.
(WebCore::MediaControlTimelineContainerElement::rendererIsNeeded): Ditto.
(WebCore::MediaControlStatusDisplayElement::MediaControlStatusDisplayElement): Ditto.
(WebCore::MediaControlStatusDisplayElement::update): Ditto.
(WebCore::MediaControlStatusDisplayElement::rendererIsNeeded): Ditto.
(WebCore::MediaControlInputElement::MediaControlInputElement): Ditto.
(WebCore::MediaControlInputElement::attachToParent): Ditto.
(WebCore::MediaControlInputElement::updateStyle): Ditto.
(WebCore::MediaControlRewindButtonElement::MediaControlRewindButtonElement): Ditto.
(WebCore::MediaControlRewindButtonElement::defaultEventHandler): Ditto.
(WebCore::MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement): Ditto.
(WebCore::MediaControlReturnToRealtimeButtonElement::defaultEventHandler): Ditto.
(WebCore::MediaControlReturnToRealtimeButtonElement::rendererIsNeeded): Ditto.
(WebCore::MediaControlTimelineElement::defaultEventHandler): Ditto.
(WebCore::MediaControlTimelineElement::update): Ditto.
(WebCore::MediaControlFullscreenButtonElement::rendererIsNeeded): Ditto.
* rendering/MediaControlElements.h: Ditto.
* rendering/RenderMedia.cpp:
(WebCore::RenderMedia::styleDidChange): Deal with the new elements.
(WebCore::RenderMedia::createPanel): Ditto.
(WebCore::RenderMedia::createRewindButton): Ditto.
(WebCore::RenderMedia::createReturnToRealtimeButton): Ditto.
(WebCore::RenderMedia::createStatusDisplay): Ditto.
(WebCore::RenderMedia::createTimelineContainer): Ditto.
(WebCore::RenderMedia::createCurrentTimeDisplay): Ditto.
(WebCore::RenderMedia::createTimeRemainingDisplay): Ditto.
(WebCore::RenderMedia::updateControls): Ditto.
(WebCore::RenderMedia::forwardEvent): Ditto.
* rendering/RenderMedia.h:
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::paint): Deal with the new elements.
* rendering/RenderTheme.h:
(WebCore::RenderTheme::paintMediaRewindButton): Deal with the new elements.
(WebCore::RenderTheme::paintMediaReturnToRealtimeButton): Ditto.
(WebCore::RenderTheme::paintMediaControlsBackground): Ditto.
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintMediaRewindButton): Deal with the new elements.
(WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton): Ditto.
(WebCore::RenderThemeMac::paintMediaControlsBackground): Ditto.
* rendering/style/RenderStyleConstants.h: Add constants for the new elements.
2009-07-01 John Abd-El-Malek <jam@chromium.org>
Reviewed by Darin Fisher.
Small refactoring of MessagePortChannel so that PlatformMessagePortChannel
may be defined at the WebKit layer.
https://bugs.webkit.org/show_bug.cgi?id=26905
* dom/MessageChannel.cpp:
(WebCore::MessageChannel::MessageChannel):
* dom/MessagePortChannel.cpp:
* dom/MessagePortChannel.h:
* dom/default/PlatformMessagePortChannel.cpp:
(WebCore::MessagePortChannel::createChannel):
(WebCore::MessagePortChannel::create):
(WebCore::MessagePortChannel::MessagePortChannel):
(WebCore::MessagePortChannel::~MessagePortChannel):
2009-07-01 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
<video> fails to show on http://camendesign.com/code/video_for_everybody
<rdar://problem/7026010>
https://bugs.webkit.org/show_bug.cgi?id=26919
Fix an issue introduced in r44961. In that revision we changed to only update
compositing layer geometry when all siblings had been laid out (i.e. we pushed
the updates one level down). However, that left out the root layer, so this
fix ensures that the root layer geometry gets updated at the end.
Test: compositing/geometry/root-layer-update.html
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateAfterLayout):
2009-07-01 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein
<rdar://problem/7026010> <video> fails to show on http://camendesign.com/code/video_for_everybody
First part of fix: when outline width changes, don't to a synchronous
layer update right away, but just set the flag to say that compositing
layers need updating. The synchronous layer update left the layer geometries
out of whack when it happened in the middle of layout (e.g. when inside ::first-letter).
Test: compositing/geometry/outline-change.html
* rendering/RenderView.cpp:
(WebCore::RenderView::setMaximalOutlineSize):
2009-07-01 Kwang Yul Seo <skyul@company100.net>
Reviewed by Eric Seidel.
https://bugs.webkit.org/show_bug.cgi?id=26842
Build fix when ENABLE_DATABASE is off
Move Database.h into ENABLE(DATABASE) guard so toggling ENABLE_DATABASE
off does not break builds.
* bindings/js/ScriptObjectQuarantine.cpp:
2009-07-01 Daniel Bates <dbates@intudata.com>
Reviewed by Adam Barth.
https://bugs.webkit.org/show_bug.cgi?id=26899
Modified XSSAuditor::decodeURL to only remove null characters so that
it is consistent with the behavior of HTMLTokenizer and prevents
injected scripts that contain control characters.
Tests: http/tests/security/xssAuditor/script-tag-control-char.html
http/tests/security/xssAuditor/script-tag-null-char.html
* page/XSSAuditor.cpp:
(WebCore::XSSAuditor::decodeURL): Modified to only remove null characters.
* page/XSSAuditor.h: Reverted naming of third argument of method XSSAuditor::decodeURL
from allowControlCharacters back to allowNullCharacters.
* platform/network/ResourceResponseBase.cpp: Reverted back to rev #45003.
(WebCore::isControlCharacter):
* platform/network/ResourceResponseBase.h: Reverted back to rev #45003.
2009-07-01 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Timothy Hatcher.
- supported keyboard shortcuts compatible with Firebug in Scripts Debugger:
F5, Ctrl+/ (win,lin), Command+/ (mac) - continue
F10, Ctrl+' (win, lin), Command+' (mac) - step over
F11, Ctrl+; (win, lin), Command+; (mac) - step into
Shift+F11, Ctrl+Shift+; (win, lin), Command+Shift+; (mac) - step out
- added call stack navigation shortcuts:
Ctrl+. - next call frame
Ctrl+, - previouse call frame
https://bugs.webkit.org/show_bug.cgi?id=23849
* inspector/front-end/CallStackSidebarPane.js:
(WebInspector.CallStackSidebarPane):
(WebInspector.CallStackSidebarPane.prototype.handleKeyEvent):
(WebInspector.CallStackSidebarPane.prototype._selectNextCallFrameOnStack):
(WebInspector.CallStackSidebarPane.prototype._selectPreviousCallFrameOnStack):
(WebInspector.CallStackSidebarPane.prototype._selectedPlacardByIndex):
(WebInspector.CallStackSidebarPane.prototype._selectedCallFrameIndex):
* inspector/front-end/KeyboardShortcut.js: Added.
(WebInspector.KeyboardShortcut):
(WebInspector.KeyboardShortcut.makeKey):
(WebInspector.KeyboardShortcut.makeKeyFromEvent):
(WebInspector.KeyboardShortcut.makeKeyFromCodeAndModifiers_):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel):
(WebInspector.ScriptsPanel.prototype.handleKeyEvent):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
2009-07-01 Daniel Erat <derat@google.com>
Reviewed by David Levin.
Chromium Linux: Move the scrollbar thumb on middle-click.
https://bugs.webkit.org/show_bug.cgi?id=26910
http://code.google.com/p/chromium/issues/detail?id=11976
Tested by building Chrome and checking that the scrollbar moves as expected.
* platform/chromium/ScrollbarThemeChromium.cpp:
* platform/chromium/ScrollbarThemeChromium.h:
* platform/chromium/ScrollbarThemeChromiumLinux.cpp:
* platform/chromium/ScrollbarThemeChromiumLinux.h:
* platform/chromium/ScrollbarThemeChromiumWin.cpp:
* platform/chromium/ScrollbarThemeChromiumWin.h:
2009-07-01 Brady Eidson <beidson@apple.com>
Reviewed by Sam Weinig.
Add a preference/setting to toggle whether content sniffing is enabled for file URLs.
* WebCore.base.exp:
* page/Settings.cpp:
(WebCore::Settings::setLocalFileContentSniffingEnabled):
* page/Settings.h:
(WebCore::Settings::localFileContentSniffingEnabled):
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::start):
(-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
2009-07-01 Chris Fleizach <cfleizach@apple.com>
Reviewed by Oliver Hunt.
Bug 26909: aria-label needs to be supported
https://bugs.webkit.org/show_bug.cgi?id=26909
Test: accessibility/aria-label.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::accessibilityDescription):
* html/HTMLAttributeNames.in:
2009-07-01 David Hyatt <hyatt@apple.com>
Reviewed by Oliver Hunt.
More datagrid columns work. Make sure columns cache both a style for the column header as well
as a style for the column background (behind the cells).
Hook up to CSSStyleSelector methods for obtaining the pseudo styles for columns (stubbed out and
unimplemented).
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::pseudoStyleForDataGridColumn):
(WebCore::CSSStyleSelector::pseudoStyleForDataGridColumnHeader):
* css/CSSStyleSelector.h:
* html/DataGridColumn.h:
(WebCore::DataGridColumn::setColumnList):
(WebCore::DataGridColumn::columnStyle):
(WebCore::DataGridColumn::setColumnStyle):
(WebCore::DataGridColumn::headerStyle):
(WebCore::DataGridColumn::setHeaderStyle):
* rendering/RenderDataGrid.cpp:
(WebCore::RenderDataGrid::recalcStyleForColumn):
(WebCore::RenderDataGrid::columnStyle):
(WebCore::RenderDataGrid::headerStyle):
(WebCore::RenderDataGrid::paintColumnHeaders):
* rendering/RenderDataGrid.h:
2009-07-01 Eric Carlson <eric.carlson@apple.com>
Reviewed by Oliver Hunt.
<rdar://problem/7009870> After <audio> movie finishes playing, Pause button fails to change
back to Play button
Grab onto the current time when QTKit "ended" notification fires and use it as
duration from that point on as QuickTime sometimes refuses to play all the way to
the time it reports for duration and buffered. HTMLMediaElement assumes that there
more to play in this situation and tries to restart playback, endlessly.
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
Rename m_duration to m_reportedDuration. Declare m_cachedDuration.
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
Rename m_duration to m_reportedDuration. Initialize m_cachedDuration.
(WebCore::MediaPlayerPrivate::duration):
Return m_cachedDuration once it has been set.
(WebCore::MediaPlayerPrivate::updateStates):
Rename m_duration to m_reportedDuration.
(WebCore::MediaPlayerPrivate::didEnd):
Set m_cachedDuration to currentTime().
2009-07-01 Chris Fleizach <cfleizach@apple.com>
Reviewed by Beth Dakin.
Bug 26900: AX: Manual spell check with Command-; does not bring up suggestions
https://bugs.webkit.org/show_bug.cgi?id=26900
Editable web areas should have a clickpoint that uses where the selection is.
Test: accessibility/editable-webarea-context-menu-point.html
* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::clickPoint):
* accessibility/AccessibilityRenderObject.h:
* accessibility/mac/AccessibilityObjectWrapper.mm:
(-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
2009-07-01 David Levin <levin@chromium.org>
Reviewed by Eric Seidel.
Remove unused code in SVGTransformList and SVGTransformDistance
<https://bugs.webkit.org/show_bug.cgi?id=26891>
* svg/SVGTransformDistance.cpp:
(WebCore::SVGTransformDistance::SVGTransformDistance):
* svg/SVGTransformList.cpp:
* svg/SVGTransformList.h:
2009-07-01 David Hyatt <hyatt@apple.com>
Reviewed by Anders Carlsson.
Begin stubbing out functions for layout, painting and style/geometry caching on columns. Not enough
is implemented for this to do much of anything yet, but it should help keep patch sizes down. :)
* html/DataGridColumn.cpp:
(WebCore::DataGridColumn::columnChanged):
* html/DataGridColumn.h:
(WebCore::DataGridColumn::setId):
(WebCore::DataGridColumn::setLabel):
(WebCore::DataGridColumn::setType):
(WebCore::DataGridColumn::setSortable):
(WebCore::DataGridColumn::setSortDirection):
(WebCore::DataGridColumn::setColumnList):
(WebCore::DataGridColumn::style):
(WebCore::DataGridColumn::setStyle):
(WebCore::DataGridColumn::rect):
(WebCore::DataGridColumn::setRect):
* html/DataGridColumnList.cpp:
(WebCore::DataGridColumnList::DataGridColumnList):
(WebCore::DataGridColumnList::setDataGridNeedsLayout):
(WebCore::DataGridColumnList::add):
(WebCore::DataGridColumnList::remove):
(WebCore::DataGridColumnList::move):
(WebCore::DataGridColumnList::clear):
(WebCore::DataGridColumnList::primaryColumnChanged):
* html/DataGridColumnList.h:
(WebCore::DataGridColumnList::create):
(WebCore::DataGridColumnList::dataGrid):
(WebCore::DataGridColumnList::clearDataGrid):
* html/HTMLDataGridColElement.cpp:
(WebCore::HTMLDataGridColElement::HTMLDataGridColElement):
(WebCore::HTMLDataGridColElement::findDataGridAncestor):
(WebCore::HTMLDataGridColElement::insertedIntoTree):
(WebCore::HTMLDataGridColElement::removedFromTree):
* html/HTMLDataGridColElement.h:
(WebCore::HTMLDataGridColElement::dataGrid):
* html/HTMLDataGridElement.cpp:
(WebCore::HTMLDataGridElement::HTMLDataGridElement):
(WebCore::HTMLDataGridElement::~HTMLDataGridElement):
* rendering/RenderDataGrid.cpp:
(WebCore::RenderDataGrid::styleDidChange):
(WebCore::RenderDataGrid::recalcStyleForColumns):
(WebCore::RenderDataGrid::recalcStyleForColumn):
(WebCore::RenderDataGrid::styleForColumn):
(WebCore::RenderDataGrid::layout):
(WebCore::RenderDataGrid::layoutColumns):
(WebCore::RenderDataGrid::paintColumnHeaders):
(WebCore::RenderDataGrid::paintColumnHeader):
* rendering/RenderDataGrid.h:
(WebCore::RenderDataGrid::renderName):
(WebCore::RenderDataGrid::canHaveChildren):
2009-07-01 Daniel Bates <dbates@intudata.com>
Reviewed by Adam Barth.
https://bugs.webkit.org/show_bug.cgi?id=26807
Fixes this address by checking whether frame->document()->decoder() is null.
* page/XSSAuditor.cpp:
(WebCore::XSSAuditor::findInRequest):
2009-07-01 Nikolas Zimmermann <nikolas.zimmermann@torchmobile.com>
Reviewed by George Staikos.
Fixes: https://bugs.webkit.org/show_bug.cgi?id=26885
Correctly reset history length to '0', not '1'. Old relict from early WML days.
Add some new WML testcases covering the use of history length (by onenterforward event handling)
Tests: wml/onenterforward-event.html
wml/onenterforward-inline-event.html
wml/ontimer-event.html
* wml/WMLPageState.cpp:
(WebCore::WMLPageState::reset):
2009-07-01 David Hyatt <hyatt@apple.com>
Reviewed by Simon Fraser.
Make sure setting attributes on dcol elements properly updates the corresponding DataGridColumn object.
Added new test in fast/dom/HTMLDataGridElement.
* html/HTMLDataGridColElement.cpp:
(WebCore::HTMLDataGridColElement::parseMappedAttribute):
* html/HTMLDataGridColElement.h:
2009-07-01 David Hyatt <hyatt@apple.com>
Reviewed by Tim Hatcher.
<rdar://problem/6998524> REGRESSION (r44474): Form text field has focus ring, looks focused,
even though the field is not actually focused for keyboard input
Add the concept of whether or not the Page is focused by adding a boolean to the focusController. This allows the
focused frame and focused node to both be cached and changed programmatically even when the Page itself doesn't
actually happen to have focus at that time.
* WebCore.base.exp:
* page/FocusController.cpp:
(WebCore::FocusController::FocusController):
(WebCore::FocusController::setFocusedFrame):
(WebCore::FocusController::setFocused):
(WebCore::FocusController::setActive):
* page/FocusController.h:
(WebCore::FocusController::isFocused):
2009-07-01 Jakub Wieczorek <faw217@gmail.com>
Reviewed by Simon Hausmann.
[Qt] Move some API headers from WebCore.pro to headers.pri so that they
get installed when running make install from the build directory.
* WebCore.pro:
2009-07-01 Simon Hausmann <simon.hausmann@nokia.com>
Rubber-stamped by Ariya Hidayat.
Ran WebKitTools/Scripts/generate-qt-inspector-resource to update the
qrc file with new png files from the web inspector.
* inspector/front-end/WebKit.qrc:
2009-06-30 Mark Rowe <mrowe@apple.com>
Land some code that has a hope of compiling.
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::imageSourceOptions):
2009-06-30 Stephanie Lewis <slewis@apple.com>
Reviewed by Simon Fraser.
Flip back on block caching. Throwing away block data, while
a perceived memory win, is a performance hit in cases where we
are repainting large images (i.e. backgrounds) frequently
(i.e. a flash video playing on top).
<rdar://problem/6933515> REGRESSION(L-SL): Large JPEG images are
decoded on drawing, slowing down painting of sites that frequently
repaint e.g. because of Flash (pandora.com, Starcraft 2)
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::imageSourceOptions):
2009-06-30 Maciej Stachowiak <mjs@apple.com>
Reviewed by Sam Weinig.
- Rename html4.css to html.css, since we target HTML5 now
https://bugs.webkit.org/show_bug.cgi?id=26873
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSStyleSelector.cpp:
(WebCore::loadFullDefaultStyle):
* css/html.css: Copied from css/html4.css.
* css/html4.css: Removed.
* css/themeWin.css:
* platform/Theme.h:
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderThemeQt::adjustMenuListButtonStyle):
* rendering/RenderTheme.h:
2009-06-30 Zan Dobersek <zandobersek@gmail.com>
Reviewed by Gustavo Noronha.
[GTK] Drag and drop support
https://bugs.webkit.org/show_bug.cgi?id=23642
Define DragImageRef as GdkPixbuf and implement essential
functions which manipulate drag images.
* platform/DragImage.h:
* platform/gtk/DragImageGtk.cpp:
(WebCore::dragImageSize):
(WebCore::deleteDragImage):
(WebCore::scaleDragImage):
(WebCore::createDragImageFromImage):
2009-06-30 Maxime Simon <simon.maxime@gmail.com>
Reviewed by Eric Seidel.
StorageNamespace.cpp build issue
https://bugs.webkit.org/show_bug.cgi?id=26859
Moved #endif //ENABLE(DOM_STORAGE) position
so that the build doesn't fail.
The namespace WebCore was started after the #if ENABLE(DOM_STORAGE)
but closed after the #endif.
* storage/StorageNamespace.cpp:
2009-06-30 Eric Carlson <eric.carlson@apple.com>
Reviewed by Oliver Hunt.
<rdar://problem/7020825> HTMLMediaElement should not assume seeking is only possible in
buffered time ranges
* html/HTMLMediaElement.cpp:
Don't ASSERT if the network state goes to Idle when when the ready state is
HaveEnoughData or higher, it is perfectly legal.
(WebCore::HTMLMediaElement::setReadyState):
Don't clear m_seeking after posting a 'seeking' event.
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::seek):
Do nothing when asked to seek to the same time we are already seeking to. Check requested
seek time against maxTimeSeekable, not maxTimeLoaded.
(WebCore::MediaPlayerPrivate::doSeek):
Don't bother stopping a movie that isn't playing. Minor cleanup to make the code more readable.
(WebCore::MediaPlayerPrivate::seekTimerFired):
Check requested seek time against maxTimeSeekable, not maxTimeLoaded.
(WebCore::MediaPlayerPrivate::updateStates):
A streaming movie has as much data as it needs once it reaches "playable", so
set the ready state to HaveFutureData. A movie with metadata doesn't drop back
to "have nothing" when seeking. A streaming movie doesn't use the network when paused.
(WebCore::MediaPlayerPrivate::timeChanged):
It may not be possible to seek to a specific time in a streamed movie but when seeking
in a streaming movie QuickTime sets the time to closest time possible and posts a
timechanged notification, so update m_seekTo so we can detect when the seek completes.
2009-06-30 Steve Falkenburg <sfalken@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=26860
Reviewed by Sam Weinig.
Blacklist Yahoo Application State plug-in for versions prior to 1.0.0.6.
Earlier versions cause corruption crashes.
* plugins/win/PluginPackageWin.cpp:
(WebCore::PluginPackage::isPluginBlacklisted):
2009-06-30 Dean Jackson <dino@apple.com>
Reviewed by Simon Fraser.
<rdar://problem/7005207> <video> in canvas broken with ACCEL_COMPOSITING
Fix drawImage of video in CanvasRenderingContext2D when
accelerated compositing is enabled. This is done by
adding a new paint method to HTMLVideoElement that
is only called from canvas, which will create the software
renderer if necessary, but otherwise calls the regular
paint method. Meanwhile, add logic to the software video
renderer so that it can be created without calling repaint
every time it sees a new frame.
* html/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawImage):
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::paintCurrentFrameInContext):
* html/HTMLVideoElement.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::paintCurrentFrameInContext):
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::paintCurrentFrameInContext):
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::createQTMovie):
(WebCore::MediaPlayerPrivate::createQTVideoRenderer):
(WebCore::MediaPlayerPrivate::currentRenderingMode):
(WebCore::MediaPlayerPrivate::setUpVideoRendering):
(WebCore::MediaPlayerPrivate::tearDownVideoRendering):
(WebCore::MediaPlayerPrivate::paintCurrentFrameInContext):
2009-06-30 David Hyatt <hyatt@apple.com>
Reviewed by Beth Dakin.
https://bugs.webkit.org/show_bug.cgi?id=26858
Get <dcol> elements reflected into the datagrid's column list. Make sure columns get added/removed
properly. (Attribute changes are still not caught. That is coming in a separate patch.)
Added fast/dom/HTMLDataGridElement/DataGridColumns-dom.html
* html/DataGridColumn.h:
(WebCore::DataGridColumn::create):
(WebCore::DataGridColumn::setColumnList):
(WebCore::DataGridColumn::DataGridColumn):
* html/DataGridColumnList.cpp:
(WebCore::DataGridColumnList::add):
(WebCore::DataGridColumnList::remove):
(WebCore::DataGridColumnList::clear):
* html/DataGridColumnList.h:
* html/HTMLDataGridColElement.cpp:
(WebCore::HTMLDataGridColElement::HTMLDataGridColElement):
(WebCore::HTMLDataGridColElement::findDatagridAncestor):
(WebCore::HTMLDataGridColElement::ensureColumn):
(WebCore::HTMLDataGridColElement::insertedIntoTree):
(WebCore::HTMLDataGridColElement::removedFromTree):
(WebCore::HTMLDataGridColElement::sortable):
(WebCore::HTMLDataGridColElement::setSortable):
* html/HTMLDataGridColElement.h:
(WebCore::HTMLDataGridColElement::column):
(WebCore::HTMLDataGridColElement::setColumn):
(WebCore::HTMLDataGridColElement::datagrid):
* html/HTMLDataGridElement.cpp:
(WebCore::HTMLDataGridElement::setDataSource):
(WebCore::HTMLDataGridElement::dataSource):
2009-06-30 Jeremy Orlow (jorlow@chromium.org)
Reviewed by David Levin.
https://bugs.webkit.org/show_bug.cgi?id=26852
Fix some minor build issues in the v8 bindings.
* bindings/v8/custom/V8StorageCustom.cpp:
(WebCore::V8Custom::v8StorageNamedPropertyEnumerator):
(WebCore::storageGetter):
(WebCore::storageSetter):
(WebCore::storageDeleter):
* storage/StorageArea.cpp:
2009-06-30 Adam Langley <agl@google.com>
Reviewed by Eric Seidel.
Chromium Linux: use different fonts for each script run.
https://bugs.webkit.org/show_bug.cgi?id=26853
Previously, when rendering complex text, we picked a single font which
could render all the glyphs needed for the run. However, this meant
that sometimes lines were rendered with, for example, [LATIN, THAI,
LATIN] and we could end up with a different font for the Latin parts
than for lines without Thai in them.
With this patch, we pick a font for each script run.
This change is covered by existing layout tests.
* platform/graphics/chromium/FontLinux.cpp:
(WebCore::Font::drawGlyphs):
(WebCore::TextRunWalker::TextRunWalker):
(WebCore::TextRunWalker::~TextRunWalker):
(WebCore::TextRunWalker::nextScriptRun):
(WebCore::TextRunWalker::fontPlatformDataForScriptRun):
(WebCore::TextRunWalker::setupFontForScriptRun):
(WebCore::TextRunWalker::allocHarfbuzzFont):
(WebCore::setupForTextPainting):
(WebCore::Font::drawComplexText):
(WebCore::Font::floatWidthForComplexText):
(WebCore::Font::offsetForPositionForComplexText):
(WebCore::Font::selectionRectForComplexText):
* platform/graphics/chromium/FontPlatformDataLinux.cpp:
(WebCore::FontPlatformData::setupPaint):
2009-06-30 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dave Hyatt, Dan Bernstein.
<rdar://problem/6191676> Redraw issues scrolling overflow:scroll div with compositing
There are two parts to this fix. First, if a compositing layer has overflow clipping
or a mask, then the compositing layer does not need to be sized to encompass all
non-composited children.
Second, when scrolling, we have to back up to the compositing ancestor and have
it reposition descendant compositing layers, because overflow doesn't follow
the z-order tree.
Test: compositing/overflow/overflow-scroll.html
* page/FrameView.cpp:
(WebCore::FrameView::layout):
Pass the UpdateCompositingLayers flag when updating layers after layout, so that
we can reposition compositing layers if we're not about to do a layer rebuild.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositions):
Only update compositing layers if the flag is set.
(WebCore::RenderLayer::scrollToOffset):
Do compositing layer updates from the compositing ancestor in one fell swoop.
* rendering/RenderLayer.h:
Replace the unused FullUpdate flag with one that allows us to specify whether
compositing layers should be updated.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateAfterLayout):
* rendering/RenderLayerBacking.h:
New param that we can pass to updateCompositingDescendantGeometry to control
whether the update goes deep.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::calculateCompositedBounds):
We can return earlier if this is not a self-painting layer.
If the layer has overflow clip or a mask, then the composited bounds are just the
local bounds, excluding descendants.
(WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry):
* rendering/RenderLayerCompositor.h:
Renamed from updateCompositingChildrenGeometry, and added a flag that allows
us to do a deep update.
2009-06-30 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Dan Bernstein.
https://bugs.webkit.org/show_bug.cgi?id=26764
Uncaught NOT_FOUND_ERR: DOMException 8 loading empty text file
Test: fast/parser/empty-text-resource.html
* loader/TextDocument.cpp: (WebCore::TextTokenizer::finish): Create document tree if it
hasn't been created yet.
2009-06-30 Brian Weinstein <bweinstein@apple.com>
Reviewed by Adam Roben.
Renamed scrollbarUnderPoint to scrollbarAtPoint.
* page/EventHandler.cpp:
(WebCore::EventHandler::hitTestResultAtPoint):
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseMoveEvent):
* platform/ScrollView.cpp:
(WebCore::ScrollView::scrollbarAtPoint):
* platform/ScrollView.h:
* platform/chromium/PopupMenuChromium.cpp:
(WebCore::PopupListBox::handleMouseDownEvent):
(WebCore::PopupListBox::handleMouseMoveEvent):
2009-06-30 Oliver Hunt <oliver@apple.com>
Reviewed by Geoff Garen.
<rdar://problem/6960286> CrashTracer: [REGRESSION] 1120 crashes in Safari at com.apple.WebCore WebCore::JSLazyEventListener::parseCode const + 62
<select> elements and other elements the produce popups can keep their popups
live across a page load. If this occurs and the <select> element has an
onchange handler it is possible to get into a state where we try to execute
JS on a page that no longer has an execution context.
* bindings/js/JSLazyEventListener.cpp:
(WebCore::JSLazyEventListener::parseCode):
Be paranoid and add a null check, but assert as well because we shouldn't
actually get to this point.
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::valueChanged):
2009-06-30 Drew Wilson <atwilson@google.com>
Reviewed by David Levin.
<https://bugs.webkit.org/show_bug.cgi?id=25435>
Added support for sending MessagePorts to/from Workers via postMessage().
* bindings/js/JSWorkerContextCustom.cpp:
(WebCore::JSWorkerContext::messageChannel):
Exposes MessageChannel constructor WorkerContext.
* bindings/js/JSWorkerCustom.cpp:
* bindings/v8/custom/V8MessageChannelConstructor.cpp:
(WebCore::CALLBACK_FUNC_DECL):
Now correctly handles being instantiated from within a Worker.
* platform/CrossThreadCopier.h:
(WebCore::GenericWorkerTaskTraits<PassOwnPtr>):
Added support for passing PassOwnPtr as argument to GenericWorkerTask
* workers/GenericWorkerTask.h:
(WebCore::):
* workers/Worker.cpp:
(WebCore::Worker::postMessage):
Now handles disentangling/entangling MessagePorts sent to/from via postMessage.
(WebCore::Worker::dispatchMessage):
* workers/Worker.h:
* workers/Worker.idl:
Added an optional MessagePort argument to postMessage()
* workers/WorkerContext.cpp:
(WebCore::WorkerContext::hasPendingActivity):
Workers now report pending activity whenever there are remotely entangled ports.
(WebCore::WorkerContext::postMessage):
Now handles disentangling/entangling MessagePorts sent to/from via postMessage.
(WebCore::WorkerContext::dispatchMessage):
* workers/WorkerContext.h:
* workers/WorkerContext.idl:
Added an optional MessagePort argument to postMessage()
* workers/WorkerContextProxy.h:
* workers/WorkerMessagingProxy.cpp:
Updated messaging infrastructure to transport an optional MessagePort/MessagePortChannel.
(WebCore::MessageWorkerContextTask::create):
(WebCore::MessageWorkerContextTask::MessageWorkerContextTask):
(WebCore::MessageWorkerContextTask::performTask):
(WebCore::MessageWorkerTask::create):
(WebCore::MessageWorkerTask::MessageWorkerTask):
(WebCore::MessageWorkerTask::performTask):
(WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
(WebCore::WorkerMessagingProxy::postMessageToWorkerContext):
* workers/WorkerMessagingProxy.h:
Added additional postMessage() API that accepts a MessagePort
* workers/WorkerObjectProxy.h:
Added additional postMessage() API that accepts a MessagePort
2009-06-30 Adam Langley <agl@google.com>
Reviewed by Eric Seidel.
Chromium: Add complex text support on Linux.
https://bugs.webkit.org/show_bug.cgi?id=25068
This patch adds complex text support on Linux using Harfbuzz. It's not
the fastest code possible: some caching of font tables will certainly
be required. However, it's probably the simplest code that works.
This will require checking in new baselines in the Chromium tree for
those layout tests which now pass.
* platform/graphics/chromium/FontLinux.cpp:
(WebCore::Font::drawGlyphs):
(WebCore::truncateFixedPointToInteger):
(WebCore::TextRunWalker::TextRunWalker):
(WebCore::TextRunWalker::~TextRunWalker):
(WebCore::TextRunWalker::reset):
(WebCore::TextRunWalker::setXOffsetToZero):
(WebCore::TextRunWalker::rtl):
(WebCore::TextRunWalker::setBackwardsIteration):
(WebCore::TextRunWalker::nextScriptRun):
(WebCore::TextRunWalker::glyphs):
(WebCore::TextRunWalker::length):
(WebCore::TextRunWalker::xPositions):
(WebCore::TextRunWalker::advances):
(WebCore::TextRunWalker::width):
(WebCore::TextRunWalker::logClusters):
(WebCore::TextRunWalker::numCodePoints):
(WebCore::TextRunWalker::widthOfFullRun):
(WebCore::TextRunWalker::allocHarfbuzzFont):
(WebCore::TextRunWalker::deleteGlyphArrays):
(WebCore::TextRunWalker::createGlyphArrays):
(WebCore::TextRunWalker::expandGlyphArrays):
(WebCore::TextRunWalker::shapeGlyphs):
(WebCore::TextRunWalker::setGlyphXPositions):
(WebCore::setupForTextPainting):
(WebCore::fontPlatformDataForTextRun):
(WebCore::Font::drawComplexText):
(WebCore::Font::floatWidthForComplexText):
(WebCore::glyphIndexForXPositionInScriptRun):
(WebCore::Font::offsetForPositionForComplexText):
(WebCore::Font::selectionRectForComplexText):
* platform/graphics/chromium/HarfbuzzSkia.cpp: Added.
(WebCore::SkiaScalarToHarfbuzzFixed):
(WebCore::stringToGlyphs):
(WebCore::glyphsToAdvances):
(WebCore::canRender):
(WebCore::getOutlinePoint):
(WebCore::getGlyphMetrics):
(WebCore::getFontMetric):
(WebCore::harfbuzzSkiaGetTable):
2009-06-30 Eric Carlson <eric.carlson@apple.com>
Reviewed by Simon Fraser.
<rdar://problem/7019799> Slow loading MediaDocument can fall back to plug-in unnecessarily
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::updateStates):
Always fall back to a plug-in if m_hasUnsupportedTracks is set.
(WebCore::MediaPlayerPrivate::disableUnsupportedTracks):
Set m_hasUnsupportedTracks if we disable a track.
2009-06-30 Nate Chapin <japhet@chromium.org>
Reviewed by Dimitri Glazkov.
Fix inverted if/else that's causing a layout test in src.chromium.org to fail.
https://bugs.webkit.org/show_bug.cgi?id=26820
* bindings/v8/V8Proxy.cpp:
(WebCore::GCPrologueVisitor::visitDOMWrapper): if (port2), not if (!port2).
2009-06-30 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt.
- fix <rdar://problem/6946611> REGRESSION (r30673): Shade10:" D_Snap
to Grid" window is clipping
Added an app-specific quirk to revert the behavior of <link> elements
to the way it was before r30673, namely that if the rel attribute
is not "stylesheet" but the type attribute contains "text/css", the
link behaves as a stylesheet link.
* WebCore.base.exp: Exported setTreatsAnyTextCSSLinkAsStylesheet().
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::process): Check
Settings::treatsAnyTextCSSLinkAsStylesheet() and if true, allow a
style sheet link if the type contains "text/css".
* page/Settings.cpp:
(WebCore::Settings::Settings):
Initialize m_treatsAnyTextCSSLinkAsStylesheet.
(WebCore::Settings::setTreatsAnyTextCSSLinkAsStylesheet): Added.
* page/Settings.h:
(WebCore::Settings::treatsAnyTextCSSLinkAsStylesheet): Added.
2009-06-30 Adrien Nader <camaradetux@gmail.com>
Reviewed by Xan Lopez.
Fix typo in GNUMakefile.am: it reads WebCOre instead of WebCore.
* GNUmakefile.am:
2009-06-30 Jan Michael Alonzo <jmalonzo@webkit.org>
Reviewed by Xan Lopez.
[Gtk] Turn on ENABLE_DATAGRID so we can run the layout tests.
* GNUmakefile.am:
2009-06-30 Raju Kunnath <raju.kunnath@nokia.com>
Reviewed by Simon Hausmann.
<https://bugs.webkit.org/show_bug.cgi?id=26752>
[Qt] Windows release build issue with Qt4.5 due to -GL flag on msvc2005 and msvc2008.
* WebCore.pro: Removed -GL compiler option for win32-msvc2005|win32-msvc2008.
2009-06-30 Xan Lopez <xlopez@igalia.com>
Reviewed by Jan Alonzo.
Initialize member variables in the right order. Fixes compiler
warning.
* platform/image-decoders/bmp/BMPImageReader.cpp:
(WebCore::BMPImageReader::BMPImageReader):
2009-06-29 Xan Lopez <xlopez@igalia.com>
Reviewed by David Levin.
https://bugs.webkit.org/show_bug.cgi?id=26831
Fix compiler warning in WorkerLoaderProxy.h
Forward declaration of a class within a class is not allowed,
since the compiler can't know if the declaration is legal at that
point. This gives the following compiler warning:
../../WebCore/workers/WorkerLoaderProxy.h:40: warning: declaration
"class WebCore::ScriptExecutionContext::Task" does not declare
anything
Include the full ScriptExecutionHeader header instead.
* workers/WorkerLoaderProxy.h:
2009-06-29 Xan Lopez <xlopez@igalia.com>
Reviewed by Jan Alonzo.
Remove unused function.
* plugins/gtk/PluginPackageGtk.cpp:
2009-06-29 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
Change RenderLayer::updateLayerPositions() to use a bitmask instead of two
boolean arguments. FullUpdate is unused at present, but will be used soon.
* page/FrameView.cpp:
(WebCore::FrameView::layout):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::scrollToOffset):
* rendering/RenderLayer.h:
(WebCore::RenderLayer::):
2009-06-29 Nate Chapin <japhet@chromium.org>
Reviewed by Dimitri Glazkov.
Fix one more bad merge in V8Proxy.
https://bugs.webkit.org/show_bug.cgi?id=26819
* bindings/v8/V8Proxy.cpp:
(WebCore::V8Proxy::setDOMException): setDOMExceptionHelper() instead of convertToV8Object().
2009-06-29 Sam Weinig <sam@webkit.org>
Reviewed by Mark Rowe.
Remove more unused scons support.
* SConstruct: Removed.
2009-06-29 Sam Weinig <sam@webkit.org>
Reviewed by Dave Hyatt.
Fix some incorrect create functions.
* html/DataGridColumn.h:
(WebCore::DataGridColumn::create):
* html/DataGridColumnList.h:
(WebCore::DataGridColumnList::create):
2009-06-29 Sam Weinig <sam@webkit.org>
Reviewed by Dave Hyatt.
Remove initialize method from DataGridDataSource and add
DOMDataGridDataSource.
* GNUmakefile.am:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* bindings/js/JSDataGridDataSource.cpp:
* bindings/js/JSDataGridDataSource.h:
* bindings/js/JSHTMLDataGridElementCustom.cpp:
(WebCore::JSHTMLDataGridElement::setDataSource):
* html/DOMDataGridDataSource.cpp: Added.
(WebCore::DOMDataGridDataSource::DOMDataGridDataSource):
(WebCore::DOMDataGridDataSource::~DOMDataGridDataSource):
* html/DOMDataGridDataSource.h: Added.
(WebCore::DOMDataGridDataSource::create):
(WebCore::DOMDataGridDataSource::isDOMDataGridDataSource):
(WebCore::asDOMDataGridDataSource):
* html/DataGridDataSource.h:
(WebCore::DataGridDataSource::isDOMDataGridDataSource):
(WebCore::DataGridDataSource::isJSDataGridDataSource):
* html/HTMLDataGridElement.cpp:
(WebCore::HTMLDataGridElement::HTMLDataGridElement):
(WebCore::HTMLDataGridElement::setDataSource):
(WebCore::HTMLDataGridElement::dataSource):
* html/HTMLDataGridElement.h:
2009-06-29 Nate Chapin <japhet@chromium.org>
Reviewed by Dimitri Glazkov.
Fix a couple of bad merge items from my previous V8Proxy patch.
https://bugs.webkit.org/show_bug.cgi?id=26813
* bindings/v8/V8Collection.h:
(WebCore::nodeCollectionNamedPropertyGetter): Fix a bad function name that slipped through.
* bindings/v8/V8Proxy.cpp:
(WebCore::V8Proxy::setDOMException): Fix a bad merge that caused a couple of lines of extraneous, breaking code to get in.
2009-06-29 Chris Marrin <cmarrin@apple.com>
Reviewed by Simon Fraser <simon.fraser@apple.com>.
https://bugs.webkit.org/show_bug.cgi?id=26706
Fixed crash due to dereference of m_toStyle
* page/animation/ImplicitAnimation.cpp:
(WebCore::ImplicitAnimation::isTargetPropertyEqual):
2009-06-29 Eric Carlson <eric.carlson@apple.com>
Reviewed by Simon Fraser.
<rdar://problem/7014813> Ask media engine if a movie is streamed or downloaded.
* WebCore.base.exp:
Export _wkQTMovieGetType
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::hasSingleSecurityOrigin):
Move to keep with other non-callback functions.
(WebCore::MediaPlayer::movieLoadType):
New, returns the movie type.
* platform/graphics/MediaPlayer.h:
Declare MovieLoadType enum and movieLoadType method.
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::movieLoadType):
Default implementation of movieLoadType
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::createQTMovie):
Don't base m_isStreaming on protocol, there are other types of streaming movies.
(WebCore::MediaPlayerPrivate::maxTimeBuffered):
Don't assume all streams are unbuffered.
(WebCore::MediaPlayerPrivate::updateStates):
Update m_isStreaming once we have metadata.
(WebCore::MediaPlayerPrivate::disableUnsupportedTracks):
Tracks that are disabled to begin with shouldn't be included in m_enabledTrackCount.
(WebCore::MediaPlayerPrivate::movieLoadType):
New, return movie type.
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
Add wkQTMovieGetType.
2009-06-29 Alice Liu <alice.liu@apple.com>
Fixed <rdar://problem/6930280> Reproducible crash at USA Today photo gallery
Reviewed by Anders Carlsson.
No test added because the crash requires a flash plugin
* plugins/win/PluginMessageThrottlerWin.cpp:
Rely on the hWnd of the plugin to tell us whether the PluginView has
been deleted during execution of its wndProc.
(WebCore::PluginMessageThrottlerWin::messageThrottleTimerFired):
2009-06-29 Dmitry Titov <dimich@chromium.org>
Reviewed by David Levin.
https://bugs.webkit.org/show_bug.cgi?id=26811
[Chromium] Remove a flag and functions used to enable workers in runtime.
* bindings/v8/WorkerContextExecutionProxy.cpp:
* bindings/v8/WorkerContextExecutionProxy.h:
2009-06-29 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dave Hyatt.
<rdar://problem/6976712> Text antialiasing problems when rendering into compositing layers.
Improve the appearance of text in compositing layers by making use of
CA's layer geometry flipping, rather that doing it ourselves with a flip
transform. This allows CG to use font autohinting in the layer text.
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::setGeometryOrientation):
(WebCore::GraphicsLayer::geometryOrientation):
New methods to set whether this layer uses flipped geometry.
* platform/graphics/mac/GraphicsLayerCA.h:
* platform/graphics/mac/GraphicsLayerCA.mm:
(WebCore::GraphicsLayerCA::setGeometryOrientation):
(WebCore::GraphicsLayerCA::geometryOrientation):
Subclass in order to call into CA
(WebCore::GraphicsLayerCA::setContentsLayer):
Now that CA is doing the geometry flipping, we no longer need to flip the content
layers for image and video manually
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::ensureRootPlatformLayer):
Turn on flipping on the root layer.
2009-06-29 Nikolas Zimmermann <nikolas.zimmermann@torchmobile.com>
Reviewed by Adam Treat.
Fixes: https://bugs.webkit.org/show_bug.cgi?id=26246
Implement most WML specific <select> element features.
Add 'iname' / 'ivalue' support and support variable references.
Add two tests covering most select/variable related functionality.
Needs more tests when adding full 'iname' / 'ivalue' support (used in conjuction with onpick).
Tests: http/tests/wml/post-data-to-server.html
wml/select-element-variables.html
* dom/SelectElement.cpp:
(WebCore::SelectElement::optionCount): Refactored from HTMLSelectElement::length() for use within HTML & WML.
* dom/SelectElement.h:
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::length): Use new SelectElement::optionCount() function. (no functional changes for HTML).
* wml/WMLCardElement.cpp:
(WebCore::WMLCardElement::handleIntrinsicEventIfNeeded): Activated commented code taking care of WMLSelectElement initialization.
* wml/WMLSelectElement.cpp: Add a bunch of new code handling WML specific feature processing.
(WebCore::WMLSelectElement::title):
(WebCore::WMLSelectElement::formControlName):
(WebCore::WMLSelectElement::defaultEventHandler):
(WebCore::WMLSelectElement::selectInitialOptions):
(WebCore::WMLSelectElement::calculateDefaultOptionIndices):
(WebCore::WMLSelectElement::selectDefaultOptions):
(WebCore::WMLSelectElement::initializeVariables):
(WebCore::WMLSelectElement::updateVariables):
(WebCore::WMLSelectElement::parseIndexValueString):
(WebCore::WMLSelectElement::valueStringToOptionIndices):
(WebCore::WMLSelectElement::optionIndicesToValueString):
(WebCore::WMLSelectElement::optionIndicesToString):
(WebCore::WMLSelectElement::name):
(WebCore::WMLSelectElement::value):
(WebCore::WMLSelectElement::iname):
(WebCore::WMLSelectElement::ivalue):
* wml/WMLSelectElement.h:
2009-06-29 David Hyatt <hyatt@apple.com>
Reviewed by Adam Roben.
Put <datagrid> behind an ifdef.
* Configurations/FeatureDefines.xcconfig:
* bindings/js/JSDataGridColumnListCustom.cpp:
* bindings/js/JSDataGridDataSource.cpp:
* bindings/js/JSDataGridDataSource.h:
* bindings/js/JSHTMLDataGridElementCustom.cpp:
* html/DataGridColumn.cpp:
* html/DataGridColumn.h:
* html/DataGridColumn.idl:
* html/DataGridColumnList.cpp:
* html/DataGridColumnList.h:
* html/DataGridColumnList.idl:
* html/DataGridDataSource.h:
* html/HTMLDataGridCellElement.cpp:
* html/HTMLDataGridCellElement.h:
* html/HTMLDataGridCellElement.idl:
* html/HTMLDataGridColElement.cpp:
* html/HTMLDataGridColElement.h:
* html/HTMLDataGridColElement.idl:
* html/HTMLDataGridElement.cpp:
* html/HTMLDataGridElement.h:
* html/HTMLDataGridElement.idl:
* html/HTMLDataGridRowElement.cpp:
* html/HTMLDataGridRowElement.h:
* html/HTMLDataGridRowElement.idl:
* html/HTMLTagNames.in:
* page/DOMWindow.idl:
* rendering/RenderDataGrid.cpp:
* rendering/RenderDataGrid.h:
2009-06-29 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Ariya Hidayat and Adam Roben.
Fix compilation with MINGW. Ported MSVC inline assembly to
GNU inline assembly. Also fixed casting errors where gcc
refused to cast a pointer-to-function to a pointer-to-object,
without an intermediate cast to a non-pointer type.
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginView::hookedBeginPaint):
(WebCore::PluginView::hookedEndPaint):
(WebCore::hook):
(WebCore::setUpOffscreenPaintingHooks):
2009-06-26 John Sullivan <sullivan@apple.com>
Added Speech submenu to context menu on Mac when there's a non-editable selection
(it was already present when there's an editable selection).
Also added support for disabling "Stop Speaking" when there is no speaking to stop.
Reviewed by Tim Hatcher.
* loader/EmptyClients.h:
(WebCore::EmptyContextMenuClient::isSpeaking):
implemented this new virtual function to return false
* page/ContextMenuClient.h:
declared this new pure virtual function
* platform/ContextMenu.cpp:
(WebCore::ContextMenu::populate):
insert Speech item (after a separator) on Mac when there's selected non-editable text
(WebCore::ContextMenu::checkOrEnableIfNeeded):
enable Stop Speaking item only if the context menu client returns true for isSpeaking()
2009-06-28 Dan Bernstein <mitz@apple.com>
Reviewed by Simon Fraser.
- fix https://bugs.webkit.org/show_bug.cgi?id=26783
<rdar://problem/7014543> REGRESSION (r45296): Subfolders not displayed
in MobileMe iDisk Web App
Test: added a case to fast/dom/Element/scrollWidth.html
Ensure that scroll{Width, Height} is greater or equal to
client{Width, Height}.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::scrollWidth):
(WebCore::RenderBox::scrollHeight):
2009-06-27 Simon Fraser <simon.fraser@apple.com>
Reviewed by Eric Seidel.
https://bugs.webkit.org/show_bug.cgi?id=26780
Do not make compositing layers for non-self-painting RenderLayers,
since these exist only to push a clip onto the clipping stack. If such
a layer gets compositied for some other reason, it should not paint.
Also ensure that we update composited layer positions correctly
inside overflow:scroll layers. We can't assume that the contents
are child layers, so we have to go up to the compositing ancestor,
and tell it to update all its child layer positions as we do
after layout.
Tests: compositing/layers-inside-overflow-scroll.html
compositing/self-painting-layers.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollToOffset):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::paintIntoLayer):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::calculateCompositedBounds):
(WebCore::RenderLayerCompositor::needsToBeComposited):
2009-06-28 Luke Kenneth Casson Leighton <lkcl@lkcl.net>
Reviewed by Eric Seidel.
PurgeableBuffer #defines leave out functions on gtk MacOSX 10.4 build
https://bugs.webkit.org/show_bug.cgi?id=23057
Define these functions for Gtk as well.
* platform/PurgeableBuffer.h:
2009-06-28 Nate Chapin <japhet@chromium.org>
Reviewed by Dimitri Glazkov.
Update CodeGeneratorV8.pm to match the new api for V8Proxy.
https://bugs.webkit.org/show_bug.cgi?id=26765
* bindings/scripts/CodeGeneratorV8.pm: Match the current version of V8Proxy.
2009-06-28 Nicolas Sylvain <nsylvain@chromium.org>
Reviewed by Dimitri Glazkov.
If loading a font fails because of the sandbox, we ask the browser process to
try to load it by calling ensureFontLoaded. If it still fails after
ensureFontLoaded, we hit a ASSERT_NOT_REACHED.
This case happens once in a while during browser shutdown. The browser will
queue a message to the renderer to shutdown, and will then stop answering sync
messages from the renderer. If the renderer is still loading a page during this
time, it might try to call the browser process to ask to load a font. The
browser process will ignore the request, and the font will fail to load, even
after the second try.
This is unfortunate, but there is no real risk here, since the renderer will be
going away as soon as it processes another message.
This can't be layout tested as it depends on the sandbox.
https://bugs.webkit.org/show_bug.cgi?id=26743
* platform/graphics/chromium/FontChromiumWin.cpp:
* platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
* platform/graphics/chromium/GlyphPageTreeNodeChromiumWin.cpp:
* platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
2009-06-28 John Abd-El-Malek <jam@chromium.org>
Reviewed by Eric Seidel.
https://bugs.webkit.org/show_bug.cgi?id=15457
Test: plugins/netscape-plugin-map-data-to-src.html
Fix problems with Real or WMP plugins not displaying because "data" was set
on the OBJECT tag instead of "src". This is based on what Firefox does, see
http://mxr.mozilla.org/mozilla-central/source/layout/generic/nsObjectFrame.cpp#3045
* rendering/RenderPartObject.cpp:
(WebCore::mapDataParamToSrc):
(WebCore::RenderPartObject::updateWidget):
2009-06-27 Laszlo Gombos <laszlo.1.gombos@nokia.com>
Reviewed by Jan Alonzo.
[Qt] Build fix after r45290
https://bugs.webkit.org/show_bug.cgi?id=26769
* WebCore.pro:
2009-06-27 Emilio Pozuelo Monfort <pochu27@gmail.com>
Reviewed by Jan Alonzo.
[GTK] Don't use deprecated GTK+ symbols.
https://bugs.webkit.org/show_bug.cgi?id=26583
* plugins/gtk/gtk2xtbin.c:
(gtk_xtbin_class_init):
(gtk_xtbin_new):
(gtk_xtbin_destroy):
2009-06-27 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
https://bugs.webkit.org/show_bug.cgi?id=26780
Fix up previous change. When computeCompositingRequirements() determines
that the current layer is composited, it needs to inform its parent
by setting compositingState.m_subtreeIsCompositing() to true. That didn't
always happen after the previous patch. Clarified the logic here.
* rendering/RenderLayerCompositor.cpp:
(WebCore::CompositingState::CompositingState):
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
2009-06-27 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
https://bugs.webkit.org/show_bug.cgi?id=26780
First part: fix the RenderLayer::hasCompositingDescendant() flag to be set
correctly.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
Do not unconditionally set compositingState.m_subtreeIsCompositing, because
that can clobber the value from an earlier sibling. Add some more comments.
Remove a final use of Vector iterators.
(WebCore::RenderLayerCompositor::recursiveRepaintLayerRect):
Move the normalFlowList() processing outside the test for isStackingContext().
2009-06-27 Dan Bernstein <mitz@apple.com>
Reviewed by Simon Fraser and Antti Koivisto.
- make paintFillLayerExtended() non-virtual and remove its clipY and
clipH parameters
These parameters were computed and passed along to
paintFillLayerExtended in order to vertically constrain the rect fill to
the damage rect, because Qt cannot paint tall rectangles (see
<http://websvn.kde.org/?view=rev&revision=42721>). Since the damage rect
is passed along in the PaintInfo, the extra parameters are redundant,
and the intersection can just take place in paintFillLayerExtended().
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::paintFillLayers):
(WebCore::InlineFlowBox::paintFillLayer):
(WebCore::InlineFlowBox::paintBoxDecorations):
(WebCore::InlineFlowBox::paintMask):
* rendering/InlineFlowBox.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintRootBoxDecorations):
(WebCore::RenderBox::paintBoxDecorations):
(WebCore::RenderBox::paintMask):
(WebCore::RenderBox::paintMaskImages):
(WebCore::RenderBox::paintFillLayers):
(WebCore::RenderBox::paintFillLayer):
* rendering/RenderBox.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
* rendering/RenderBoxModelObject.h:
* rendering/RenderFieldset.cpp:
(WebCore::RenderFieldset::paintBoxDecorations):
(WebCore::RenderFieldset::paintMask):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::paintBoxDecorations):
(WebCore::RenderTable::paintMask):
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::paintBackgroundsBehindCell):
(WebCore::RenderTableCell::paintMask):
2009-06-27 Ryosuke Niwa <rniwa@google.com>
Reviewed by Eric Seidel.
https://bugs.webkit.org/show_bug.cgi?id=26762
Clean up for IndentOutdentCommand::indentRegion, and solved most of problems related to the bug 21712.
https://bugs.webkit.org/show_bug.cgi?id=21712
Added few utility functions to htmlediting.h/cpp
isVisibilyAdjacent checks whether the first position is visibly next to the second position.
i.e. there is no visible node between the first and second positions
canMergeLists checks whether two lists can be merged.
It checks the type of list, the editing boundary, and adjacency of the lists.
Tests: editing/execCommand/indent-nested-lists-1.html
editing/execCommand/indent-nested-lists-2.html
editing/execCommand/indent-nested-lists-3.html
editing/execCommand/indent-nested-lists-4.html
editing/execCommand/indent-nested-lists-5.html
editing/execCommand/indent-nested-lists-6.html
editing/execCommand/indent-nested-lists-7.html
editing/execCommand/outdent-nested-lists-1.html
editing/execCommand/outdent-nested-lists-2.html
editing/execCommand/outdent-nested-lists-3.html
editing/execCommand/outdent-nested-lists-4.html
* editing/IndentOutdentCommand.cpp:
(WebCore::IndentOutdentCommand::prepareBlockquoteLevelForInsertion):
(WebCore::IndentOutdentCommand::tryIndentingAsListItem):
(WebCore::IndentOutdentCommand::indentIntoBlockquote):
(WebCore::IndentOutdentCommand::indentRegion):
* editing/IndentOutdentCommand.h:
* editing/htmlediting.cpp:
(WebCore::enclosingListChild):
(WebCore::canMergeLists):
(WebCore::isVisibilyAdjacent):
* editing/htmlediting.h:
2009-06-27 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
WebInspector: Fix completion when iterating options using Tab.
https://bugs.webkit.org/show_bug.cgi?id=26722
* inspector/front-end/TextPrompt.js:
(WebInspector.TextPrompt.prototype._completionsReady):
2009-06-27 Gustavo Noronha Silva <gns@gnome.org>
Reviewed by Holger Freyther.
https://bugs.webkit.org/show_bug.cgi?id=25889
[GTK] scrollbar policy for main frame is not implementable
Override visibleContentRect to handle GTK+'s case, in which
scrollbars or equivalent decoration are painted by the parent
widget.
* platform/ScrollView.cpp:
* platform/gtk/ScrollViewGtk.cpp:
(WebCore::ScrollView::visibleContentRect):
2009-06-27 Daniel Bates <dbates@intudata.com>
Reviewed by Adam Barth.
https://bugs.webkit.org/show_bug.cgi?id=26708
Fix addresses false negatives with respect to scheme relative paths, iFrame JavaScript URLs,
and UTF-7 encoded payloads.
Tests: http/tests/security/xssAuditor/http-equiv-utf-7-encoded.html
http/tests/security/xssAuditor/iframe-javascript-url.html
http/tests/security/xssAuditor/script-tag-utf-7-encoded.html
http/tests/security/xssAuditor/script-tag-with-source-relative-scheme.html
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::scriptHandler): Moved XSSAuditor check to HTMLTokenizer::parseTag.
(WebCore::HTMLTokenizer::parseTag):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadSubframe): Modified to inform XSSAuditor of parent frame so
as to compare against iFrame javascript URL.
* page/XSSAuditor.cpp: Removed method XSSAuditor::isControlCharacter. Instead, exposed method
isControlCharacter in ResourceResponseBase.cpp.
(WebCore::XSSAuditor::XSSAuditor):
(WebCore::XSSAuditor::decodeURL): Modified to decode string using specified encoder.
(WebCore::XSSAuditor::findInRequest): Generalized to arbitrary frame so as to prevent execution
of iFrame javascript URL.
* page/XSSAuditor.h: Added field m_parentFrame.
* platform/network/ResourceResponseBase.cpp:
(WebCore::isControlCharacter):
* platform/network/ResourceResponseBase.h:
2009-06-27 Oliver Hunt <oliver@apple.com>
Reviewed by Maciej Stachowiak.
Bug 26771: Canvas is incorrectly tainted when drawing from a video element that uses <source> elements
The drawImage(<video>) logic naively assumes that it just needs
to check the src attribute of the video element when in fact it
needs to look at the url that is being played instead. Failure
to do this means that video provided through source elements
taints the canvas.
Test: media/video-canvas-source.html
* html/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::checkOrigin):
(WebCore::CanvasRenderingContext2D::drawImage):
* html/CanvasRenderingContext2D.h:
2009-06-26 Brian Weinstein <bweinstein@apple.com>
Reviewed by Simon Fraser.
https://bugs.webkit.org/show_bug.cgi?id=26695
Added the ability to do scrollbar hit testing in EventHandler, changed the
signature of a PlatformWheelEvent constructor, and changed scrollbarUnderMouse
to scrollbarUnderPoint, and updated all calls to that function.
* page/EventHandler.cpp:
(WebCore::EventHandler::hitTestResultAtPoint):
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseMoveEvent):
* page/EventHandler.h:
(WebCore::):
* platform/PlatformWheelEvent.h:
* platform/ScrollView.cpp:
(WebCore::ScrollView::scrollbarUnderPoint):
* platform/ScrollView.h:
* platform/chromium/PopupMenuChromium.cpp:
(WebCore::PopupListBox::handleMouseDownEvent):
(WebCore::PopupListBox::handleMouseMoveEvent):
* platform/win/WheelEventWin.cpp:
(WebCore::PlatformWheelEvent::PlatformWheelEvent):
2009-06-26 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
<rdar://problem/7011924> Opacity transitions should not trigger hardware compositing mode
Don't go into compositing mode just for opacity transitions, but they will be
hardware acclerated if we're already compositing.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingLayer):
(WebCore::RenderLayerCompositor::requiresCompositingForTransform):
(WebCore::RenderLayerCompositor::requiresCompositingForAnimation):
* rendering/RenderLayerCompositor.h:
2009-06-26 Simon Fraser <simon.fraser@apple.com>
Rubber-stamped by Dave Levin
Rename ioCompState to compositingState to better match WebCore coding style.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
2009-06-26 Dan Bernstein <mitz@apple.com>
Reviewed by Mark Rowe.
- revert unintentional project changes from r45277
* WebCore.xcodeproj/project.pbxproj:
2009-06-26 Mark Rowe <mrowe@apple.com>
Fix the Windows build.
* WebCore.vcproj/WebCore.vcproj: Remove ColorSafari.cpp as
the file was deleted from SVN.
2009-06-26 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
https://bugs.webkit.org/show_bug.cgi?id=26766
Change to use array indexing rather than Vector enumerators; the former
are preferred style.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::hasNonCompositingContent):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::calculateCompositedBounds):
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
(WebCore::RenderLayerCompositor::updateCompositingChildrenGeometry):
(WebCore::RenderLayerCompositor::recursiveRepaintLayerRect):
(WebCore::RenderLayerCompositor::layerHas3DContent):
2009-06-26 Dan Bernstein <mitz@apple.com>
Reviewed by Oliver Hunt.
- fix <rdar://problem/6961476> REGRESSION (r42043): scrollWidth reported
as 1 px
Test: fast/dom/Element/scrollWidth.html
Changed scrollWidth and scrollHeight to use the same logic for
visible overflow boxes that is used for clipped overflow boxes. In
particular, borders are not included and
{leftmost,rightmost,lowest}Position() are used. This logic matches IE8.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::scrollWidth):
(WebCore::RenderBox::scrollHeight):
2009-06-26 Chris Fleizach <cfleizach@apple.com>
Reviewed by Oliver Hunt.
Bug 26725: aria-hidden, aria-disabled, aria-readonly need to be implemented
https://bugs.webkit.org/show_bug.cgi?id=26725
Tests: accessibility/aria-disabled.html
accessibility/aria-hidden.html
accessibility/aria-readonly.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::ariaIsHidden):
(WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
(WebCore::AccessibilityRenderObject::isEnabled):
(WebCore::AccessibilityRenderObject::canSetValueAttribute):
* accessibility/AccessibilityRenderObject.h:
* html/HTMLAttributeNames.in:
2009-06-26 Brett Wilson <brettw@chromium.org>
Reviewed by David Levin.
https://bugs.webkit.org/show_bug.cgi?id=26759
GIFImageDecoder is broken.
Make the GIFImageDecoder.repetitionCount function const to match the
base class. The mismatched definitions were causing the function to not
get called.
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::repetitionCount):
* platform/image-decoders/gif/GIFImageDecoder.h:
2009-06-26 Chris Marrin <cmarrin@apple.com>
Reviewed by Simon Fraser <simon.fraser@apple.com>.
Additional fix for https://bugs.webkit.org/show_bug.cgi?id=26651
The flag should always default to true to avoid it getting set
to false in a build with accelerated compositing turned off
and then disabling accelerated compositing when subsequently
running a build with it turned on.
* page/Settings.cpp:
(WebCore::Settings::Settings):
2009-06-26 Brady Eidson <beidson@apple.com>
Reviewed by Sam Weinig.
Followup for the fix for <rdar://problem/6961578> REGRESSION (r43511): Opening .fdf files from Acrobat Professional fails
Now that other MIME type correction stuff is in our swizzled method, Tiger needs it too!
* platform/network/mac/ResourceHandleMac.mm:
(-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
* platform/network/mac/WebCoreURLResponse.h:
2009-06-26 Jeremy Orlow <jorlow@chromium.org>
Reviewed by Darin Fisher.
https://bugs.webkit.org/show_bug.cgi?id=26732
For the final step of https://bugs.webkit.org/show_bug.cgi?id=25376,
combine LocalStorage and SessionStorage into StorageNamespace. The
synching code (for LocalStorage) has already been removed, so these
classes are now very similar. All they do is essentially contain a
logical grouping of origins that are attached to specific contexts
(be it PageGroups for LocalStorage and Page for SessionStorage).
* GNUmakefile.am:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* page/Chrome.cpp:
(WebCore::Chrome::createWindow):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::localStorage):
* page/DOMWindow.h:
* page/Page.cpp:
(WebCore::Page::sessionStorage):
(WebCore::Page::setSessionStorage):
* page/Page.h:
* page/PageGroup.cpp:
(WebCore::PageGroup::localStorage):
* page/PageGroup.h:
* storage/LocalStorage.cpp: Removed.
* storage/LocalStorage.h: Removed.
* storage/LocalStorageTask.cpp:
* storage/LocalStorageThread.cpp:
* storage/SessionStorage.cpp: Removed.
* storage/SessionStorage.h: Removed.
* storage/StorageArea.cpp:
(WebCore::StorageArea::create):
(WebCore::StorageArea::StorageArea):
(WebCore::StorageArea::copy):
(WebCore::StorageArea::length):
(WebCore::StorageArea::key):
(WebCore::StorageArea::getItem):
(WebCore::StorageArea::setItem):
(WebCore::StorageArea::removeItem):
(WebCore::StorageArea::clear):
(WebCore::StorageArea::contains):
(WebCore::StorageArea::importItem):
(WebCore::StorageArea::close):
(WebCore::StorageArea::dispatchStorageEvent):
* storage/StorageArea.h:
(WebCore::):
* storage/StorageAreaSync.cpp:
(WebCore::StorageAreaSync::scheduleFinalSync):
* storage/StorageNamespace.cpp: Copied from WebCore/storage/LocalStorage.cpp.
(WebCore::localStorageNamespaceMap):
(WebCore::StorageNamespace::localStorageNamespace):
(WebCore::StorageNamespace::sessionStorageNamespace):
(WebCore::StorageNamespace::StorageNamespace):
(WebCore::StorageNamespace::~StorageNamespace):
(WebCore::StorageNamespace::copy):
(WebCore::StorageNamespace::storageArea):
(WebCore::StorageNamespace::close):
* storage/StorageNamespace.h: Copied from WebCore/storage/LocalStorage.h.
2009-06-26 Nate Chapin <japhet@chromium.org>
Reviewed by David Levin.
Upstream V8Proxy. This involved updating a lot of function and variable names to match WebKit style, hence the large size.
https://bugs.webkit.org/show_bug.cgi?id=26623
* bindings/v8/ScheduledAction.cpp:
(WebCore::ScheduledAction::ScheduledAction):
(WebCore::ScheduledAction::~ScheduledAction):
(WebCore::ScheduledAction::execute):
* bindings/v8/ScriptCallStack.cpp:
(WebCore::ScriptCallStack::ScriptCallStack):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::isSafeScript):
(WebCore::ScriptController::gcProtectJSWrapper):
(WebCore::ScriptController::gcUnprotectJSWrapper):
(WebCore::ScriptController::processingUserGesture):
(WebCore::ScriptController::evaluate):
(WebCore::ScriptController::setEventHandlerLineNumber):
(WebCore::ScriptController::bindToWindowObject):
(WebCore::ScriptController::collectGarbage):
(WebCore::ScriptController::haveInterpreter):
(WebCore::createScriptObject):
(WebCore::ScriptController::createScriptObjectForPluginElement):
* bindings/v8/ScriptInstance.cpp:
(WebCore::V8ScriptInstance::clear):
(WebCore::V8ScriptInstance::set):
* bindings/v8/ScriptObject.cpp:
(WebCore::ScriptGlobalObject::set):
* bindings/v8/ScriptObjectQuarantine.cpp:
(WebCore::getQuarantinedScriptObject):
* bindings/v8/ScriptScope.cpp:
(WebCore::ScriptScope::ScriptScope):
* bindings/v8/ScriptValue.h:
(WebCore::ScriptValue::ScriptValue):
(WebCore::ScriptValue::operator=):
(WebCore::ScriptValue::clear):
* bindings/v8/V8AbstractEventListener.cpp:
(WebCore::V8AbstractEventListener::invokeEventHandler):
(WebCore::V8AbstractEventListener::handleEvent):
(WebCore::V8AbstractEventListener::disposeListenerObject):
(WebCore::V8AbstractEventListener::getReceiverObject):
* bindings/v8/V8Collection.cpp:
(WebCore::toOptionsCollectionSetter):
* bindings/v8/V8Collection.h:
(WebCore::getV8Object):
(WebCore::getNamedPropertyOfCollection):
(WebCore::nodeCollectionNamedPropertyGetter):
(WebCore::getIndexedPropertyOfCollection):
(WebCore::nodeCollectionIndexedPropertyGetter):
(WebCore::nodeCollectionIndexedPropertyEnumerator):
(WebCore::collectionIndexedPropertyEnumerator):
(WebCore::collectionStringOrNullIndexedPropertyGetter):
* bindings/v8/V8DOMMap.cpp:
(WebCore::weakDOMObjectCallback):
(WebCore::DOMData::removeObjectsFromWrapperMap):
* bindings/v8/V8Helpers.cpp:
(WebCore::wrapNPObject):
(WebCore::toV8Context):
* bindings/v8/V8LazyEventListener.cpp:
(WebCore::V8LazyEventListener::~V8LazyEventListener):
(WebCore::V8LazyEventListener::getListenerFunction):
(WebCore::V8LazyEventListener::callListenerFunction):
(WebCore::V8LazyEventListener::getWrappedListenerFunction):
* bindings/v8/V8NodeFilterCondition.cpp:
(WebCore::V8NodeFilterCondition::V8NodeFilterCondition):
(WebCore::V8NodeFilterCondition::~V8NodeFilterCondition):
(WebCore::V8NodeFilterCondition::acceptNode):
* bindings/v8/V8ObjectEventListener.cpp:
(WebCore::weakObjectEventListenerCallback):
(WebCore::V8ObjectEventListener::~V8ObjectEventListener):
* bindings/v8/V8Proxy.cpp: Added.
* bindings/v8/V8Proxy.h:
(WebCore::):
(WebCore::GlobalHandleInfo::GlobalHandleInfo):
(WebCore::V8Proxy::):
(WebCore::V8Proxy::V8Proxy):
(WebCore::V8Proxy::frame):
(WebCore::V8Proxy::inlineCode):
(WebCore::V8Proxy::setInlineCode):
(WebCore::V8Proxy::timerCallback):
(WebCore::V8Proxy::setTimerCallback):
(WebCore::V8Proxy::setEventHandlerLineNumber):
(WebCore::V8Proxy::finishedWithEvent):
(WebCore::V8Proxy::wrapCPointer):
(WebCore::V8Proxy::extractCPointer):
(WebCore::V8Proxy::convertDOMWrapperToNative):
(WebCore::V8Proxy::convertDOMWrapperToNode):
(WebCore::V8Proxy::convertToV8Object):
(WebCore::V8Proxy::convertToNativeObject):
(WebCore::V8Proxy::convertToNativeEvent):
(WebCore::V8Proxy::context):
(WebCore::V8Proxy::extractCPointerImpl):
(WebCore::V8Proxy::utilityContext):
(WebCore::V8Proxy::constructDOMObject):
(WebCore::throwError):
(WebCore::toV8):
* bindings/v8/V8Utilities.h:
* bindings/v8/WorkerContextExecutionProxy.cpp:
(WebCore::WorkerContextExecutionProxy::retrieve):
(WebCore::WorkerContextExecutionProxy::initContextIfNeeded):
(WebCore::WorkerContextExecutionProxy::GetConstructor):
(WebCore::WorkerContextExecutionProxy::ToV8Object):
(WebCore::WorkerContextExecutionProxy::EventToV8Object):
(WebCore::WorkerContextExecutionProxy::toV8):
(WebCore::WorkerContextExecutionProxy::forgetV8EventObject):
(WebCore::WorkerContextExecutionProxy::evaluate):
(WebCore::WorkerContextExecutionProxy::runScript):
* bindings/v8/custom/V8AttrCustom.cpp:
(WebCore::ACCESSOR_SETTER):
* bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
(WebCore::NAMED_PROPERTY_GETTER):
(WebCore::NAMED_PROPERTY_SETTER):
* bindings/v8/custom/V8CanvasPixelArrayCustom.cpp:
(WebCore::INDEXED_PROPERTY_GETTER):
(WebCore::INDEXED_PROPERTY_SETTER):
* bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
(WebCore::toV8):
(WebCore::toCanvasStyle):
(WebCore::ACCESSOR_GETTER):
(WebCore::ACCESSOR_SETTER):
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8ClientRectListCustom.cpp:
(WebCore::INDEXED_PROPERTY_GETTER):
* bindings/v8/custom/V8ClipboardCustom.cpp:
(WebCore::ACCESSOR_GETTER):
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8CustomBinding.cpp:
(WebCore::allowSettingFrameSrcToJavascriptUrl):
(WebCore::ACCESSOR_GETTER):
(WebCore::INDEXED_ACCESS_CHECK):
(WebCore::NAMED_ACCESS_CHECK):
(WebCore::V8Custom::GetTargetFrame):
* bindings/v8/custom/V8CustomEventListener.cpp:
(WebCore::V8EventListener::V8EventListener):
(WebCore::V8EventListener::~V8EventListener):
(WebCore::V8EventListener::callListenerFunction):
* bindings/v8/custom/V8CustomSQLStatementCallback.cpp:
(WebCore::V8CustomSQLStatementCallback::handleEvent):
* bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
(WebCore::V8CustomSQLStatementErrorCallback::handleEvent):
* bindings/v8/custom/V8CustomSQLTransactionCallback.cpp:
(WebCore::V8CustomSQLTransactionCallback::handleEvent):
* bindings/v8/custom/V8CustomSQLTransactionErrorCallback.cpp:
(WebCore::V8CustomSQLTransactionErrorCallback::handleEvent):
* bindings/v8/custom/V8CustomVoidCallback.cpp:
(WebCore::V8CustomVoidCallback::handleEvent):
(WebCore::invokeCallback):
* bindings/v8/custom/V8CustomXPathNSResolver.cpp:
(WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
* bindings/v8/custom/V8DOMParserConstructor.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8Custom::WindowSetTimeoutImpl):
(WebCore::convertBase64):
(WebCore::ACCESSOR_SETTER):
(WebCore::CALLBACK_FUNC_DECL):
(WebCore::ACCESSOR_GETTER):
(WebCore::createWindow):
(WebCore::INDEXED_PROPERTY_GETTER):
(WebCore::NAMED_PROPERTY_GETTER):
(WebCore::V8Custom::ClearTimeoutImpl):
(WebCore::NAMED_ACCESS_CHECK):
(WebCore::INDEXED_ACCESS_CHECK):
* bindings/v8/custom/V8DatabaseCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8DocumentCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8DocumentLocationCustom.cpp:
(WebCore::ACCESSOR_GETTER):
(WebCore::ACCESSOR_SETTER):
* bindings/v8/custom/V8ElementCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
(WebCore::ACCESSOR_SETTER):
(WebCore::ACCESSOR_GETTER):
* bindings/v8/custom/V8EventCustom.cpp:
(WebCore::ACCESSOR_SETTER):
(WebCore::ACCESSOR_GETTER):
* bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8HTMLCollectionCustom.cpp:
(WebCore::getNamedItems):
(WebCore::getItem):
(WebCore::NAMED_PROPERTY_GETTER):
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
(WebCore::NAMED_PROPERTY_GETTER):
(WebCore::CALLBACK_FUNC_DECL):
(WebCore::ACCESSOR_GETTER):
* bindings/v8/custom/V8HTMLFormElementCustom.cpp:
(WebCore::INDEXED_PROPERTY_GETTER):
(WebCore::NAMED_PROPERTY_GETTER):
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8HTMLFrameElementCustom.cpp:
(WebCore::ACCESSOR_SETTER):
* bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp:
(WebCore::NAMED_PROPERTY_GETTER):
* bindings/v8/custom/V8HTMLIFrameElementCustom.cpp:
(WebCore::ACCESSOR_SETTER):
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8HTMLInputElementCustom.cpp:
(WebCore::ACCESSOR_GETTER):
(WebCore::ACCESSOR_SETTER):
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8HTMLOptionElementConstructor.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
(WebCore::ACCESSOR_GETTER):
(WebCore::ACCESSOR_SETTER):
(WebCore::INDEXED_PROPERTY_GETTER):
(WebCore::INDEXED_PROPERTY_SETTER):
* bindings/v8/custom/V8HTMLPlugInElementCustom.cpp:
(WebCore::NAMED_PROPERTY_GETTER):
(WebCore::NAMED_PROPERTY_SETTER):
(WebCore::INDEXED_PROPERTY_GETTER):
(WebCore::INDEXED_PROPERTY_SETTER):
* bindings/v8/custom/V8HTMLSelectElementCollectionCustom.cpp:
(WebCore::NAMED_PROPERTY_GETTER):
(WebCore::INDEXED_PROPERTY_SETTER):
* bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
(WebCore::removeElement):
* bindings/v8/custom/V8InspectorControllerCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8LocationCustom.cpp:
(WebCore::ACCESSOR_SETTER):
(WebCore::ACCESSOR_GETTER):
(WebCore::CALLBACK_FUNC_DECL):
(WebCore::INDEXED_ACCESS_CHECK):
(WebCore::NAMED_ACCESS_CHECK):
* bindings/v8/custom/V8MessageChannelConstructor.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8MessagePortCustom.cpp:
(WebCore::ACCESSOR_GETTER):
(WebCore::ACCESSOR_SETTER):
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8NamedNodeMapCustom.cpp:
(WebCore::INDEXED_PROPERTY_GETTER):
(WebCore::NAMED_PROPERTY_GETTER):
* bindings/v8/custom/V8NavigatorCustom.cpp:
(WebCore::ACCESSOR_GETTER):
* bindings/v8/custom/V8NodeCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8NodeIteratorCustom.cpp:
(WebCore::toV8):
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8NodeListCustom.cpp:
(WebCore::NAMED_PROPERTY_GETTER):
* bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8SQLTransactionCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8SVGElementInstanceCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8SVGLengthCustom.cpp:
(WebCore::ACCESSOR_GETTER):
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8SVGMatrixCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8StyleSheetListCustom.cpp:
(WebCore::NAMED_PROPERTY_GETTER):
* bindings/v8/custom/V8TreeWalkerCustom.cpp:
(WebCore::toV8):
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8WebKitCSSMatrixConstructor.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8WebKitPointConstructor.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8WorkerContextCustom.cpp:
(WebCore::ACCESSOR_GETTER):
(WebCore::ACCESSOR_SETTER):
(WebCore::SetTimeoutOrInterval):
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8WorkerCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
(WebCore::getEventListener):
(WebCore::ACCESSOR_GETTER):
(WebCore::ACCESSOR_SETTER):
* bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
(WebCore::getEventListener):
(WebCore::ACCESSOR_GETTER):
(WebCore::ACCESSOR_SETTER):
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8XMLHttpRequestUploadCustom.cpp:
(WebCore::ACCESSOR_GETTER):
(WebCore::ACCESSOR_SETTER):
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8XMLSerializerConstructor.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8XPathEvaluatorConstructor.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8XSLTProcessorCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
2009-06-26 Kevin McCullough <kmccullough@apple.com>
Reviewed by Tim Hatcher.
<rdar://problem/7011047> Profiler shows the record button 'on' even
though it's finished
I consolidated the creation of the user initiated profile name into
its own function and then called it from console::profile instead of
calling startUserInitiatedProfiling(). This way we don't call
toggleRecordButton() which turns on the record button.
* inspector/InspectorController.cpp:
(WebCore::InspectorController::didCommitLoad):
(WebCore::InspectorController::getCurrentUserInitiatedProfileName):
(WebCore::InspectorController::startUserInitiatedProfiling):
(WebCore::InspectorController::stopUserInitiatedProfiling):
* inspector/InspectorController.h:
* page/Console.cpp:
(WebCore::Console::profile):
(WebCore::Console::profileEnd):
2009-06-26 Jeremy Moskovich <jeremy@chromium.org>
Reviewed by Eric Seidel.
https://bugs.webkit.org/show_bug.cgi?id=26691
Cleanup: Move focusRingColor to RenderTheme.
Most of this CL involves deleting files and removing dead code.
focusRingColor() is now defined in RenderTheme rather than in
misc. places on each port. The default color is specified as
black in renderTheme and ports can override it in their own
custom renderThemes.
Behavior should be identical except for the following cases,
this lists platform and what the focus ring color used to be
before this cl and the file where it used to be defined:
Android - red
WebCore/platform/android/TemporaryLinkStubs.cpp
Cairo - aqua focus ring color - 0xFF7DADD9
WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp
wx - red
WebCore/platform/wx/TemporaryLinkStubs.cpp
QT - black
WebCore/platform/graphics/qt/GraphicsContextQt.cpp
Manual test: manual-tests/focusringcolor-change-on-theme-change.html
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::getColorFromPrimitiveValue):
* manual-tests/focusringcolor-change-on-theme-change.html: Added.
* platform/android/TemporaryLinkStubs.cpp:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
* platform/graphics/chromium/ColorChromium.cpp: Removed.
* platform/graphics/chromium/ColorChromiumMac.mm: Removed.
* platform/graphics/mac/ColorMac.h:
* platform/graphics/mac/ColorMac.mm:
(WebCore::oldAquaFocusRingColor):
(WebCore::setUsesTestModeFocusRingColor):
(WebCore::usesTestModeFocusRingColor):
* platform/graphics/qt/GraphicsContextQt.cpp:
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::drawFocusRing):
* platform/graphics/win/ColorSafari.cpp: Removed.
* platform/wx/TemporaryLinkStubs.cpp:
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::focusRingColor):
* rendering/RenderTheme.h:
* rendering/RenderThemeChromiumMac.h:
* rendering/RenderThemeChromiumMac.mm:
(WebCore::RenderThemeChromiumMac::focusRingColor):
(WebCore::RenderThemeChromiumMac::systemColor):
* rendering/RenderThemeChromiumSkia.cpp:
(WebCore::RenderThemeChromiumSkia::focusRingColor):
* rendering/RenderThemeChromiumSkia.h:
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::focusRingColor):
(WebCore::RenderThemeMac::systemColor):
* rendering/RenderThemeSafari.cpp:
(WebCore::makeRGBAFromCGColor):
(WebCore::RenderThemeSafari::focusRingColor):
* rendering/RenderThemeSafari.h:
2009-06-26 Dmitry Titov <dimich@chromium.org>
Reviewed by David Levin.
https://bugs.webkit.org/show_bug.cgi?id=26761
[Chromium] Enable Dedicated Workers in Chromium.
* bindings/v8/custom/V8WorkerCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
Remove the check that prevented workers from being created w/o a command-line switch.
The flag itself and methods will be removed in a subsequent patch, after
corresponding change in Chromium.
2009-06-26 Jessie Berlin <jberlin@apple.com>
Reviewed by Mark Rowe.
Fix: https://bugs.webkit.org/show_bug.cgi?id=26723
Where the m_mouseDown event was never being set on windows, so the
client X and Y coordinates were always being reported as zero in a
dragstart handler.
Test: editing/selection/drag-start-event-client-x-y.html
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEvent):
Set the m_mouseDown event when the mouse press is handled.
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::mouseDown):
Removed now redundant setting of m_mouseDown.
2009-06-26 Brady Eidson <beidson@apple.com>
Tiger build fix
* WebCore.xcodeproj/project.pbxproj:
* platform/network/mac/WebCoreURLResponse.mm:
(swizzleMIMETypeMethodIfNecessary):
2009-06-26 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Sam Weinig.
https://bugs.webkit.org/show_bug.cgi?id=26681
Problem updating applicationCache when server returns 304
Improve the fix, make the test pass on Tiger.
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::didReceiveResponse): Fix another code path to remove the
current item from list.
* platform/network/mac/ResourceHandleMac.mm: (WebCore::ResourceHandle::start): On Tiger,
conditional requests that cannot be cached by network layer cause errors with default cache
policy.
2009-06-26 Brady Eidson <beidson@apple.com>
Reviewed by Sam Weinig
<rdar://problem/6961578> REGRESSION (r43511): Opening .fdf files from Acrobat Professional fails
When we disabled content sniffing for file urls we lost knowledge of many file extensions that we
didn't intend to lose. Turns out the CoreTypes UTI database doesn't know about every extension Gatekeeper
knew about.
By comparing CoreTypes' database to Gatekeepers, this patch adds a hardcoded list of file extension to MIME
type mappings that are missing in CoreType's database.
Test: platform/mac/fast/loader/file-url-mimetypes.html
* platform/network/mac/ResourceHandleMac.mm:
(-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]): Move the MIME Type swizzling code to
WebCoreURLResponse.
* platform/network/mac/ResourceResponseMac.mm:
(WebCore::ResourceResponse::platformLazyInit): _webcore_MIMEType -> MIMEType, as we now have only one place
where we do all MIMEType correction.
* platform/network/mac/WebCoreURLResponse.h: Remove _webcore_MIMEType, as it is now folded into the swizzled
implementation of MIMEType.
* platform/network/mac/WebCoreURLResponse.mm:
(createBinaryExtensionsSet):
(createExtensionToMIMETypeMap):
(swizzleMIMETypeMethodIfNecessary):
(webNSURLResponseMIMEType): If it's a file URL and there's no MIME type, see if the extension exists in the
extension -> MIME type map before turning to the default MIME type. Also roll in what was previously
implemented in _webcore_MIMEType.
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::~SVGImage): Tweak this ASSERT - SVGImages might get destroyed without ever having a client.
2009-06-25 Pierre d'Herbemont <pdherbemont@apple.com>
Reviewed by Simon Fraser.
Show the fullscreen button only if the backend has support for it.
https://bugs.webkit.org/show_bug.cgi?id=26661
No test since this is not reachable via the DOM.
* html/HTMLMediaElement.h:
(WebCore::HTMLMediaElement::supportsFullscreen): new
* html/HTMLVideoElement.h:
(WebCore::HTMLVideoElement::supportsFullscreen): new
* platform/graphics/MediaPlayer.cpp:
(WebCore::NullMediaPlayerPrivate::supportsFullscreen): new
(WebCore::MediaPlayer::supportsFullscreen): new
* platform/graphics/MediaPlayer.h: new
* platform/graphics/MediaPlayerPrivate.h: new
(WebCore::MediaPlayerPrivateInterface::supportsFullscreen): new
* rendering/MediaControlElements.cpp:
(WebCore::MediaControlFullscreenButtonElement::rendererIsNeeded): new
* rendering/MediaControlElements.h:
2009-06-25 Pierre d'Herbemont <pdherbemont@apple.com>
Reviewed by Simon Fraser.
<rdar://problem/7007776> Controller doesn't automatically update counters when file
is playing ( http://www.jazzguitar.be/mp3/Michael%20Lewis%20-%20SSSJ.mp3 )
Update the time display when the movie time changes.
* rendering/RenderMedia.cpp:
(WebCore::RenderMedia::updateControls):
2009-06-25 Pierre d'Herbemont <pdherbemont@apple.com>
Reviewed by Simon Fraser.
https://bugs.webkit.org/show_bug.cgi?id=26659
Support hidding a control bar element from the Media element controller.
Update layout tests since the fullscreen button no longer has a renderer.
* rendering/MediaControlElements.cpp:
(WebCore::MediaTextDisplayElement::update): call updateStyle() so everything
is updated properly.
(WebCore::MediaControlInputElement::MediaControlInputElement):
(WebCore::MediaControlInputElement::update): call updateStyle()
(WebCore::MediaControlInputElement::updateStyle): create the renderer properly
or not depending on what rendererIsNeeded() return.
* rendering/MediaControlElements.h:
2009-06-26 Kevin McCullough <kmccullough@apple.com>
Reviewed by Oliver Hunt.
<rdar://problem/6968137> Profiler title numbers increment even after a
reload.
- Now the numbers are reset when the profiles are.
* inspector/InspectorController.cpp:
(WebCore::InspectorController::didCommitLoad):
2009-06-26 Adele Peterson <adele@apple.com>
Reviewed by Darin Adler.
Fix for <rdar://problem/7000796>
REGRESSION(34681): Breaking up quoted text makes new, unquoted text blue after certain steps; repros with some messages
Test: editing/inserting/break-blockquote-after-delete.html
Keep track of whether the typing style should be preserved after the TypingCommand is applied. When adding onto an open
typing command, keep that flag up to date.
In this case, an InsertParagraphSeparatorInQuotedContent command, which should not preserve typing style,
was following an open Delete command, which does preserve the typing style. So we were applying the original
typing style (from before the delete, so blue text) to the cursor in the unquoted area after breaking up the blockquote.
* editing/TypingCommand.cpp:
(WebCore::TypingCommand::TypingCommand):
(WebCore::TypingCommand::typingAddedToOpenCommand):
(WebCore::TypingCommand::insertTextRunWithoutNewlines):
(WebCore::TypingCommand::insertLineBreak):
(WebCore::TypingCommand::insertParagraphSeparator):
(WebCore::TypingCommand::insertParagraphSeparatorInQuotedContent):
(WebCore::TypingCommand::deleteKeyPressed):
(WebCore::TypingCommand::forwardDeleteKeyPressed):
(WebCore::TypingCommand::deleteSelection):
(WebCore::TypingCommand::updatePreservesTypingStyle):
* editing/TypingCommand.h: (WebCore::TypingCommand::preservesTypingStyle):
2009-06-26 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed by Simon Hausmann.
Add support for saving and loading of QWebHistory to and from a QByteArray.
This includes streaming operators for QWebHistory. for convenience.
New autotests that test QWebHistory and QWebHistoryItem serialization.
* WebCore.pro:
* history/HistoryItem.h:
(WebCore::HistoryItem::dailyVisitCounts):
(WebCore::HistoryItem::weeklyVisitCounts):
* history/qt/HistoryItemQt.cpp: Added.
(WebCore::HistoryItem::restoreState):
(WebCore::HistoryItem::saveState):
2009-06-26 Jedrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed by Simon Hausmann.
Add support for QDataStream operators to String and IntPoint.
* platform/graphics/IntPoint.h:
(WebCore::operator<<):
(WebCore::operator>>):
* platform/text/PlatformString.h:
* platform/text/qt/StringQt.cpp:
(WebCore::operator<<):
(WebCore::operator>>):
2009-06-26 Ben Murdoch <benm@google.com>
Reviewed by Darin Fisher.
Add #if ENABLE(DOM_STORAGE) to the V8 custom bindings for local/session storage.
https://bugs.webkit.org/show_bug.cgi?id=26757
* bindings/v8/custom/V8StorageCustom.cpp
2009-06-26 Yongjun Zhang <yongjun.zhang@nokia.com>
Reviewed by Eric Seidel.
Test: platform/qt/fast/events/event-sender-keydown-frame.html
Bug 20303: [Qt] Key events are not working in frames.
Merge scrolling handling code in qt and win port, move it to
EventHandler.
* page/EventHandler.cpp:
(WebCore::EventHandler::scrollRecursively):
* page/EventHandler.h:
2009-06-26 Rob Buis <rwlbuis@gmail.com>
Reviewed by Eric Seidel.
https://bugs.webkit.org/show_bug.cgi?id=26682
Bug 26682: It should be possible to add image to SVG DOM programmatically (using JavaScript)
Make sure the xlink:href animated property setting syncs the corresponding attribute with the right namespace.
Test: svg/custom/createImageElement.svg
* svg/SVGAnimatedProperty.h:
(WebCore::synchronizeProperty):
2009-06-26 Takeshi Yoshino <tyoshino@google.com>
Reviewed by Timothy Hatcher.
Bug 26156: In view-source mode, always render the contents using HTMLViewSourceDocument
https://bugs.webkit.org/show_bug.cgi?id=26156
When in view-source mode, render the contents using HTMLViewSourceDocument
regardless it's applicable for any plugin or not.
Chromium tells WebCore to render the contents of specified URL when
view-source: prefix is added to the URL. But currently, DOMImplementation
ignores inViewSourceMode() when the MIME type is indicating that the contents
are neither texts nor HTML family documents.
For example, we can check the contents of asf file without launching media
player. Rendering contents for view-source:-specified input is not what user
expects.
http://code.google.com/p/chromium/issues/detail?id=10545
I want to fix this issue by this patch. IMHO, regardless of this Chromium
specific issue, I think we should force use of HTMLViewSourceDocument when
inViewSourceMode() is specified.
Test: fast/frames/viewsource-on-image-file.html
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument):
* html/HTMLViewSourceDocument.cpp:
(WebCore::HTMLViewSourceDocument::createTokenizer):
* html/HTMLViewSourceDocument.h:
2009-06-26 Xan Lopez <xlopez@igalia.com>
Reviewed by Jan Alonzo.
https://bugs.webkit.org/show_bug.cgi?id=25529
[Gtk] Expected states not exposed to assistive technologies
Add support for VISIBLE, EDITABLE and SENSITIVE states.
* accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
(setAtkStateSetFromCoreObject):
2009-06-26 Laszlo Gombos <laszlo.1.gombos@nokia.com>
Reviewed by Darin Adler.
"Pointer to incomplete class type is not allowed" error with RVCT
https://bugs.webkit.org/show_bug.cgi?id=26721
Based on Norbert Leser's work.
* dom/Document.cpp:
(WebCore::Document::setFocusedNode):
* dom/Node.cpp:
(WebCore::Node::dispatchMouseEvent):
* dom/Node.h: Remove the default value for PassRefPtr<Event> args,
to eliminate dependency on the Event class definition
2009-06-26 Laszlo Gombos <laszlo.1.gombos@nokia.com>
Reviewed by Maciej Stachowiak.
[Qt] Build fix after r45183
https://bugs.webkit.org/show_bug.cgi?id=26748
* WebCore.pro:
2009-06-25 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=26681
<rdar://problem/7003461> Problem updating applicationCache when server returns 304
Test: http/tests/appcache/update-cache.html
* loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::didReceiveResponse):
We're already done with the resource, don't try to load it again.
2009-06-25 Simon Fraser <simon.fraser@apple.com>
Reviewed by Oliver Hunt.
<rdar://problem/6990481>
Handle perspective computation on non-layer objects.
Test: transforms/3d/general/perspective-non-layer.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::getTransformFromContainer):
2009-06-25 Pierre d'Herbemont <pdherbemont@apple.com>
Reviewed by Eric Seidel.
https://bugs.webkit.org/show_bug.cgi?id=26653
Use flex box in the mediaControls.css style, to nicely scale if a button gets
dynamically added or removed.
Media tests results are affected by this changes.
* css/mediaControls.css:
* css/mediaControlsQT.css:
2009-06-25 Albert J. Wong <ajwong@chromium.org>
Reviewed by Darin Fisher.
https://bugs.webkit.org/show_bug.cgi?id=26724
Move relavent part of setDefaultFontSize from RenderThemeChromiumWin
up into RenderThemeChromiumSkia.
* rendering/RenderThemeChromiumSkia.cpp:
(WebCore::RenderThemeChromiumSkia::setDefaultFontSize):
* rendering/RenderThemeChromiumSkia.h:
* rendering/RenderThemeChromiumWin.cpp:
(WebCore::RenderThemeChromiumWin::setDefaultFontSize):
* rendering/RenderThemeChromiumWin.h:
2009-06-25 Matt Perry <mpcomplete@chromium.org>
Reviewed by Darin Fisher.
https://bugs.webkit.org/show_bug.cgi?id=26733
Add V8-only methods to FrameLoaderClient that V8 can use to send
out notifications when it creates/destroys a script context.
* loader/EmptyClients.h:
(WebCore::EmptyFrameLoaderClient::didCreateScriptContext):
(WebCore::EmptyFrameLoaderClient::didDestroyScriptContext):
* loader/FrameLoaderClient.h:
(WebCore::FrameLoaderClient::didCreateScriptContext):
(WebCore::FrameLoaderClient::didDestroyScriptContext):
2009-06-25 Dimitri Glazkov <dglazkov@chromium.org>
Reviewed by David Levin.
Correct a few typos that snuck in when I was reformatting CodeGeneratorV8.pm
to match WebKit style.
* bindings/scripts/CodeGeneratorV8.pm: Corrected lots of typos.
2009-06-25 Adam Langley <agl@google.com>
TBRed: fix for Chromium tree.
Add missing include for r45199.
https://bugs.webkit.org/show_bug.cgi?id=26736
r45199 added a reference to throwError without including V8Proxy.h
* bindings/v8/WorkerScriptController.cpp:
2009-06-25 Adam Langley <agl@google.com>
TBRed: fix for Chromium tree.
https://bugs.webkit.org/show_bug.cgi?id=26735
Fix V8IsolatedWorld to point to the correct include file.
The deprecated v8_index.h was removed from the Chromium tree in r19291
and upstreamed into WebKit with r45193. However V8IsolatedWorld
slipped in between the cracks and broke the build.
* bindings/v8/V8IsolatedWorld.h: update with new header location.
2009-06-25 Chris Marrin <cmarrin@apple.com>
Reviewed by Simon Fraser <simon.fraser@apple.com>.
https://bugs.webkit.org/show_bug.cgi?id=26651
Preference is named "WebKitAcceleratedCompositingEnabled"
and is a boolean value. When false, prevents compositing layers from
being created, which prevents hardware animation from running.
Also forces video to do software rendering. Added a cache for
the flag in RenderLayerCompositing and made it all work
on-the-fly when the flag is changed while a page is loaded.
* WebCore.base.exp:
* page/FrameView.cpp:
(WebCore::FrameView::updateCompositingLayers):
* page/Settings.cpp:
(WebCore::setNeedsReapplyStylesInAllFrames):
(WebCore::Settings::Settings):
(WebCore::Settings::setAcceleratedCompositingEnabled):
* page/Settings.h:
(WebCore::Settings::acceleratedCompositingEnabled):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::hasAcceleratedCompositing):
(WebCore::RenderLayer::updateTransform):
(WebCore::RenderLayer::currentTransform):
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateLayerTransform):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::RenderLayerCompositor):
(WebCore::RenderLayerCompositor::enableCompositingMode):
(WebCore::RenderLayerCompositor::cacheAcceleratedCompositingEnabledFlag):
(WebCore::RenderLayerCompositor::updateCompositingLayers):
(WebCore::RenderLayerCompositor::canAccelerateVideoRendering):
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
(WebCore::RenderLayerCompositor::needsToBeComposited):
(WebCore::RenderLayerCompositor::destroyRootPlatformLayer):
* rendering/RenderLayerCompositor.h:
(WebCore::RenderLayerCompositor::hasAcceleratedCompositing):
* rendering/RenderObject.h:
(WebCore::makeMatrixRenderable):
2009-06-25 Jian Li <jianli@chromium.org>
Reviewed by Dimitri Glazkov.
Bug 26701: Implement the missing code for "FIXME: Need to return an
exception" in WorkerScriptController::evaluate for v8 bindings.
https://bugs.webkit.org/show_bug.cgi?id=26701
* bindings/v8/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::evaluate):
2009-06-25 Nate Chapin <japhet@chromium.org>
Reviewed by Dimitri Glazkov.
Upstream V8Index.
https://bugs.webkit.org/show_bug.cgi?id=26495
* bindings/v8/V8Index.cpp: Added.
(WebCore::V8ClassIndex::GetFactory): Moved from src.chromium.org.
(WebCore::V8ClassIndex::GetCache): Moved from src.chromium.org.
* bindings/v8/V8Index.h:
(WebCore::V8ClassIndex::): Moved from src.chromium.org.
(WebCore::V8ClassIndex::ToInt): Moved from src.chromium.org.
(WebCore::V8ClassIndex::FromInt): Moved from src.chromium.org.
2009-06-25 Adam Langley <agl@google.com>
Reviewed by Darin Fisher.
https://bugs.webkit.org/show_bug.cgi?id=26529
This is hopefully the last step before our renderers can run
cleanly in a chroot.
WebKit needs to be able to ask for the correct font to use in
the case that the current font doesn't include glyphs for
certain code points. Currently we make a fontconfig call in our
WebKit port to handle this.
This patch changes this so that the call is sent our via
ChromiumBridge.
http://codereview.chromium.org/132007
This should not affect any layout tests.
* platform/chromium/ChromiumBridge.h:
* platform/graphics/chromium/FontCacheLinux.cpp:
(WebCore::FontCache::getFontDataForCharacters):
2009-06-25 Albert J. Wong <ajwong@chromium.org>
Reviewed by David Levin.
https://bugs.webkit.org/show_bug.cgi?id=26566
Upstream these files from the chromium v8 code. No tests were
affected because this is essentially a code move.
* bindings/v8/NPV8Object.cpp: Added.
(allocV8NPObject):
(freeV8NPObject):
(listFromVariantArgs):
(npIdentifierToV8Identifier):
(npCreateV8ScriptObject):
(NPN_Invoke):
(NPN_InvokeDefault):
(NPN_Evaluate):
(NPN_EvaluateHelper):
(NPN_GetProperty):
(NPN_SetProperty):
(NPN_RemoveProperty):
(NPN_HasProperty):
(NPN_HasMethod):
(NPN_SetException):
(NPN_Enumerate):
(NPN_Construct):
* bindings/v8/NPV8Object.h: Added.
(PrivateIdentifier::):
* bindings/v8/V8NPUtils.cpp: Added.
(convertV8ObjectToNPVariant):
(convertNPVariantToV8Object):
(getStringIdentifier):
* bindings/v8/V8NPUtils.h: Added.
2009-06-25 Shinichiro Hamaji <hamaji@chromium.org>
Reviewed by Dimitri Glazkov.
https://bugs.webkit.org/show_bug.cgi?id=26436
Windows Chromium bug fix: save context of destination canvas in
TransparencyWin::compositeTextComposite() before the function
modifies the context.
Test: fast/canvas/translate-text.html
* platform/graphics/chromium/TransparencyWin.cpp:
(WebCore::TransparencyWin::compositeTextComposite):
2009-06-25 Patrick Mueller <Patrick_Mueller@us.ibm.com>
Reviewed by Timothy Hatcher.
Show the filename and first line for "(program)" in the Profiler/Debugger
https://bugs.webkit.org/show_bug.cgi?id=25475
Add support to associate a sourceURL with an eval()'d string
via a @sourceURL comment. Currently the sourceURL is only available
in the script debugger, not in the console or profiler, but it's
most needed in the script debugger.
* English.lproj/localizedStrings.js: added new "(program): %s" string
* inspector/front-end/Script.js:
(WebInspector.Script): if no sourceURL is available for the Script,
search for a comment of the form //@ sourceURL=(url) to use
as the sourceURL instead.
* manual-tests/inspector/named-evals.html: Added.
2009-06-25 John Gregg <johnnyg@google.com>
Reviewed by Sam Weinig.
Bug 23721: Changing dropdown's selectedIndex within onchange handler fires another onchange
https://bugs.webkit.org/show_bug.cgi?id=23721
onchange events fire when a SELECT element has
focus and the selectedIndex is updated by script in some way--either
during another onchange, onkeypress, onfocus, or timer--and then
focus is lost.
Fixed by making a separate method for user-driven selectedIndex
changes, leaving scripts to use one which doesn't cause onchange to
be queued.
Test: fast/forms/select-script-onchange.html
* dom/SelectElement.cpp: check if the pending change is user driven
before calling onchange
(WebCore::SelectElement::menuListOnChange):
(WebCore::SelectElement::setSelectedIndex):
* dom/SelectElement.h: store whether the pending change is user driven
(WebCore::SelectElementData::userDrivenChange):
(WebCore::SelectElementData::setUserDrivenChange):
* html/HTMLSelectElement.cpp: split into two methods -- script version
[non-user-driven] corresponds to IDL defined property name
(WebCore::HTMLSelectElement::setSelectedIndex):
(WebCore::HTMLSelectElement::setSelectedIndexByUser):
* html/HTMLSelectElement.h:
* rendering/RenderMenuList.cpp: use ByUser method when coming through
the renderer
(WebCore::RenderMenuList::valueChanged):
2009-06-25 Jeremy Orlow <jorlow@chromium.org>
Reviewed by Darin Fisher.
https://bugs.webkit.org/show_bug.cgi?id=26698
Combined LocalStorageArea and SessionStorageArea into StorageArea since
(after my other refactorings) there are no longer substantial
differences between the two.
* GNUmakefile.am:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* storage/LocalStorage.cpp:
(WebCore::LocalStorage::storageArea):
* storage/LocalStorage.h:
* storage/LocalStorageArea.cpp: Removed.
* storage/LocalStorageArea.h: Removed.
* storage/SessionStorage.cpp:
(WebCore::SessionStorage::copy):
(WebCore::SessionStorage::storageArea):
* storage/SessionStorage.h:
* storage/SessionStorageArea.cpp: Removed.
* storage/SessionStorageArea.h: Removed.
* storage/StorageArea.cpp:
(WebCore::StorageArea::createLocalStorage):
(WebCore::StorageArea::StorageArea):
(WebCore::StorageArea::createSessionStorage):
(WebCore::StorageArea::copy):
(WebCore::StorageArea::setItem):
(WebCore::StorageArea::removeItem):
(WebCore::StorageArea::clear):
(WebCore::StorageArea::scheduleFinalSync):
(WebCore::StorageArea::blockUntilImportComplete):
(WebCore::StorageArea::dispatchStorageEvent):
* storage/StorageArea.h:
* storage/StorageAreaSync.cpp:
(WebCore::StorageAreaSync::StorageAreaSync):
(WebCore::StorageAreaSync::scheduleFinalSync):
(WebCore::StorageAreaSync::syncTimerFired):
(WebCore::StorageAreaSync::performImport):
* storage/StorageAreaSync.h:
* storage/StorageSyncManager.h:
2009-06-25 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- fix https://bugs.webkit.org/show_bug.cgi?id=26671
<rdar://problem/7001880> Safari 4.0 crashes in
WebCore::DOMTimer::fired()
Test: fast/dom/style-sheet-candidate-remove-unrendered-document.html
When a "style sheet candidate" element is removed from a document,
call Document::removeStyleSheetCandidateNode() regardless of whether
the document is rendered. Otherwise, the document's style sheet
candidate set can end up containing stale references.
* dom/ProcessingInstruction.cpp:
(WebCore::ProcessingInstruction::removedFromDocument):
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::removedFromDocument):
* html/HTMLStyleElement.cpp:
(WebCore::HTMLStyleElement::removedFromDocument):
2009-06-25 Dimitri Glazkov <dglazkov@chromium.org>
Reviewed by Darin Fisher.
Update CodeGeneratorV8.pm to sync up with the changes downstream.
* bindings/scripts/CodeGeneratorV8.pm: Added HTMLFrameSetElement check,
FileList as a ref-counted type, and DataGridColumn as typeCanFailConversion.
2009-06-25 Dimitri Glazkov <dglazkov@chromium.org>
Unreviewed, build fix.
Add FileList.h include to fix Chromium build.
* platform/chromium/ClipboardChromium.cpp: Added FileList.h include.
2009-06-25 Joseph Pecoraro <joepeck02@gmail.com>
Reviewed by Jan Alonzo.
Bug 26489: Web Inspector: Typo in DatabaseQuery Error Message
https://bugs.webkit.org/show_bug.cgi?id=26489
Fixed a Typo in a Web Inspector error message.
* English.lproj/localizedStrings.js:
* inspector/front-end/DatabaseQueryView.js:
(WebInspector.DatabaseQueryView.prototype._queryError):
2009-06-25 Simon Hausmann <simon.hausmann@nokia.com>
Fix the Qt build, add missing StorageAreaSync files to the build.
* WebCore.pro:
2009-06-25 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by and done with Tor Arne Vestbø.
Fix shortcut keyboard handling with plugins on the Qt/Mac build.
When we receive shortcut events like Ctrl+V then the text in the QKeyEvent is
empty. If we're asked to disambiguate the event into a Char keyboard event,
we try to detect this situation and still set the text, to ensure that the
general event handling sends a key press event after this disambiguation.
* platform/qt/PlatformKeyboardEventQt.cpp:
(WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
2009-06-25 Eric Seidel <eric@webkit.org>
Build fix only, no review.
Add FileList.h and NotImplemented.h includes in an attempt to fix bots.
* platform/gtk/ClipboardGtk.cpp:
* platform/qt/ClipboardQt.cpp:
* platform/win/ClipboardWin.cpp:
* platform/wx/ClipboardWx.cpp:
2009-05-21 Eric Seidel <eric@webkit.org>
Reviewed by Maciej Stachowiak.
Expose files in the clipboard in ondrop events
https://bugs.webkit.org/show_bug.cgi?id=25916
Make it possible for applications like gmail to implement
drag and drop of attachments onto email messages.
This patch exposes an event.dataTransfer.files accessor
on the drop event. No information is exposed during dragover.
This follows the HTML 5 drag and drop security model:
http://www.w3.org/TR/html5/editing.html#security-risks-in-the-drag-and-drop-model
The test http/tests/security/clipboard/clipboard-file-access.html
verifies this behavior.
Internet Explorer shows historical documentation of supporting
getData('File') as a way of exposing files on the pasteboard. The current version of their docs:
http://msdn.microsoft.com/en-us/library/ms537658(VS.85).aspx
has removed this reference (as far as I can tell IE never implemented it)
I have a printed copy of that URL from 2008 on my desk describing getData('File') in IE.
IE does not follow the HTML5 clipboard security model and always allows access to the full clipboard, even on dragover.
I choose not to use IE's getData('File') and instead added .files
so that the accessor could have a type, matching WebKit's existing
.files accessor on HTMLInputElement.
Mozilla has equivalent file access:
event.dataTransfer.mozGetDataAt("application/x-moz-file", 0);
which also does not return a typed value.
https://developer.mozilla.org/En/DragDrop/Recommended_Drag_Types#Dragging_Files
This is only implemented for Mac WebKit. All other platforms (including Apple's Win WebKit)
have incomplete Clipboard implementations and will require experts from those platforms
to add this functionality. Right now they all have Clipboard*::files() methods which call notImplemented();
Test: http/tests/security/clipboard/clipboard-file-access.html
* dom/Clipboard.h:
* dom/Clipboard.idl:
* platform/chromium/ClipboardChromium.cpp:
(WebCore::ClipboardChromium::files):
* platform/chromium/ClipboardChromium.h:
* platform/gtk/ClipboardGtk.cpp:
(WebCore::ClipboardGtk::files):
* platform/gtk/ClipboardGtk.h:
* platform/mac/ClipboardMac.h:
* platform/mac/ClipboardMac.mm:
(WebCore::absoluteURLsFromPasteboardFilenames):
(WebCore::absoluteURLsFromPasteboard):
(WebCore::ClipboardMac::files):
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::files):
* platform/qt/ClipboardQt.h:
* platform/win/ClipboardWin.cpp:
(WebCore::ClipboardWin::files):
* platform/win/ClipboardWin.h:
* platform/wx/ClipboardWx.cpp:
(WebCore::ClipboardWx::files):
* platform/wx/ClipboardWx.h:
2009-06-25 Eric Seidel <eric@webkit.org>
No review, only completing revert of r45144.
Add back files deleted by r45144.
* storage/LocalStorageArea.cpp: Added.
(WebCore::LocalStorageArea::create):
(WebCore::LocalStorageArea::LocalStorageArea):
(WebCore::LocalStorageArea::scheduleFinalSync):
(WebCore::LocalStorageArea::itemChanged):
(WebCore::LocalStorageArea::itemRemoved):
(WebCore::LocalStorageArea::areaCleared):
(WebCore::LocalStorageArea::blockUntilImportComplete):
(WebCore::LocalStorageArea::dispatchStorageEvent):
* storage/LocalStorageArea.h: Added.
* storage/SessionStorageArea.cpp: Added.
(WebCore::SessionStorageArea::copy):
(WebCore::SessionStorageArea::SessionStorageArea):
(WebCore::SessionStorageArea::itemChanged):
(WebCore::SessionStorageArea::itemRemoved):
(WebCore::SessionStorageArea::areaCleared):
(WebCore::SessionStorageArea::blockUntilImportComplete):
(WebCore::SessionStorageArea::dispatchStorageEvent):
* storage/SessionStorageArea.h: Added.
(WebCore::SessionStorageArea::create):
2009-06-25 Eric Seidel <eric@webkit.org>
No review, reverting r45144 only.
Roll out r45144 after 18 test failures appeared on the bots.
https://bugs.webkit.org/show_bug.cgi?id=26698
* GNUmakefile.am:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* storage/LocalStorage.cpp:
(WebCore::LocalStorage::storageArea):
* storage/LocalStorage.h:
* storage/SessionStorage.cpp:
(WebCore::SessionStorage::copy):
(WebCore::SessionStorage::storageArea):
* storage/SessionStorage.h:
* storage/StorageArea.cpp:
(WebCore::StorageArea::StorageArea):
(WebCore::StorageArea::~StorageArea):
(WebCore::StorageArea::setItem):
(WebCore::StorageArea::removeItem):
(WebCore::StorageArea::clear):
* storage/StorageArea.h:
* storage/StorageAreaSync.cpp:
(WebCore::StorageAreaSync::StorageAreaSync):
(WebCore::StorageAreaSync::scheduleFinalSync):
(WebCore::StorageAreaSync::syncTimerFired):
(WebCore::StorageAreaSync::performImport):
* storage/StorageAreaSync.h:
* storage/StorageSyncManager.h:
2009-06-24 Jeremy Orlow <jorlow@chromium.org>
Reviewed by Darin Fisher.
https://bugs.webkit.org/show_bug.cgi?id=26698
Combined LocalStorageArea and SessionStorageArea into StorageArea since
(after my other refactorings) there are no longer substantial
differences between the two.
* GNUmakefile.am:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* storage/LocalStorage.cpp:
(WebCore::LocalStorage::storageArea):
* storage/LocalStorage.h:
* storage/LocalStorageArea.cpp: Removed.
* storage/LocalStorageArea.h: Removed.
* storage/SessionStorage.cpp:
(WebCore::SessionStorage::copy):
(WebCore::SessionStorage::storageArea):
* storage/SessionStorage.h:
* storage/SessionStorageArea.cpp: Removed.
* storage/SessionStorageArea.h: Removed.
* storage/StorageArea.cpp:
(WebCore::StorageArea::createLocalStorage):
(WebCore::StorageArea::StorageArea):
(WebCore::StorageArea::createSessionStorage):
(WebCore::StorageArea::copy):
(WebCore::StorageArea::setItem):
(WebCore::StorageArea::removeItem):
(WebCore::StorageArea::clear):
(WebCore::StorageArea::scheduleFinalSync):
(WebCore::StorageArea::blockUntilImportComplete):
(WebCore::StorageArea::dispatchStorageEvent):
* storage/StorageArea.h:
* storage/StorageAreaSync.cpp:
(WebCore::StorageAreaSync::StorageAreaSync):
(WebCore::StorageAreaSync::scheduleFinalSync):
(WebCore::StorageAreaSync::syncTimerFired):
(WebCore::StorageAreaSync::performImport):
* storage/StorageAreaSync.h:
* storage/StorageSyncManager.h:
2009-06-24 Dan Bernstein <mitz@apple.com>
Reviewed by Simon Fraser.
- fix <rdar://problem/7001817> REGRESSION (r41902): Base position track
at UCSC Genome Browser doesn't work because image map prevents img
from hit-testing
Test: fast/replaced/image-map-2.html
* rendering/RenderImage.cpp:
(WebCore::RenderImage::nodeAtPoint): Do not reset 'inside' to false if
the image map failed the hit test.
2009-06-22 Adam Barth <abarth@webkit.org>
Reviewed by Dimitri Glazkov.
https://bugs.webkit.org/show_bug.cgi?id=26366
Refactor V8DOMMap to support isolated worlds.
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::evaluateInNewWorld):
* bindings/v8/ScriptController.h:
* bindings/v8/V8DOMMap.cpp:
(WebCore::DOMDataStore::InternalDOMWrapperMap::InternalDOMWrapperMap):
(WebCore::DOMDataStore::allStores):
(WebCore::DOMDataStore::allStoresMutex):
(WebCore::DOMDataStore::domData):
(WebCore::ScopedDOMDataStore::ScopedDOMDataStore):
(WebCore::ScopedDOMDataStore::~ScopedDOMDataStore):
(WebCore::StaticDOMDataStore::StaticDOMDataStore):
(WebCore::):
(WebCore::MainThreadDOMData::MainThreadDOMData):
(WebCore::MainThreadDOMData::getStore):
(WebCore::ChildThreadDOMData::ChildThreadDOMData):
(WebCore::ChildThreadDOMData::getStore):
(WebCore::DOMDataStore::DOMDataStore):
(WebCore::DOMDataStore::~DOMDataStore):
(WebCore::DOMDataStoreHandle::DOMDataStoreHandle):
(WebCore::DOMDataStoreHandle::~DOMDataStoreHandle):
(WebCore::::forget):
(WebCore::getDOMNodeMap):
(WebCore::getDOMObjectMap):
(WebCore::getActiveDOMObjectMap):
(WebCore::getDOMSVGElementInstanceMap):
(WebCore::getDOMSVGObjectWithContextMap):
(WebCore::DOMData::getCurrent):
(WebCore::DOMData::handleWeakObject):
(WebCore::DOMData::ensureDeref):
(WebCore::weakDOMObjectCallback):
(WebCore::weakActiveDOMObjectCallback):
(WebCore::weakNodeCallback):
(WebCore::weakSVGElementInstanceCallback):
(WebCore::weakSVGObjectWithContextCallback):
(WebCore::DOMData::derefObject):
(WebCore::DOMData::derefDelayedObjects):
(WebCore::DOMData::derefDelayedObjectsInCurrentThread):
(WebCore::DOMData::removeObjectsFromWrapperMap):
(WebCore::removeAllDOMObjectsInCurrentThreadHelper):
(WebCore::visitDOMNodesInCurrentThread):
(WebCore::visitDOMObjectsInCurrentThread):
(WebCore::visitActiveDOMObjectsInCurrentThread):
(WebCore::visitDOMSVGElementInstancesInCurrentThread):
(WebCore::visitSVGObjectsInCurrentThread):
* bindings/v8/V8DOMMap.h:
(WebCore::DOMDataStoreHandle::getStore):
* bindings/v8/V8IsolatedWorld.cpp: Added.
(WebCore::getIsolatedWorldKey):
(WebCore::contextWeakReferenceCallback):
(WebCore::V8IsolatedWorld::evaluate):
(WebCore::V8IsolatedWorld::V8IsolatedWorld):
(WebCore::V8IsolatedWorld::~V8IsolatedWorld):
(WebCore::V8IsolatedWorld::getEntered):
* bindings/v8/V8IsolatedWorld.h: Added.
(WebCore::V8IsolatedWorld::getDOMDataStore):
2009-06-24 Mikhail Naganov <mnaganov@chromium.org>
Reviewed by Timothy Hatcher.
Bug 26604: Search doesn't work in Web Inspector Profiler
https://bugs.webkit.org/show_bug.cgi?id=26604
Seems like search was damaged in revision 42808.
* inspector/front-end/ProfileView.js:
(WebInspector.ProfileView.prototype.refresh):
Here and in other functions: nodes we're searching in are profile data grid
nodes, so there is no more need for '_dataGridNode' references.
(WebInspector.ProfileView.prototype.searchCanceled):
(WebInspector.ProfileView.prototype.performSearch.matchesQuery):
Fixed accidental semicolon that caused 'matchesQuery' always return true.
(WebInspector.ProfileView.prototype.performSearch):
To perform search correctly in the case of bottom up tree, we need to populate
the tree, because there's no 1-to-1 correspondence between profile nodes and
data grid nodes in this case.
(WebInspector.ProfileView.prototype._jumpToSearchResult):
2009-06-24 Simon Fraser <simon.fraser@apple.com>
Reviewed by Darin Adler.
<rdar://problem/6450239&6574516>
Fix flashing issues caused by compositing layers rendering content before
a deferred layout has happened. Because the -viewWillDraw machinery doesn't
work for composited layers, we need to use scheduleViewUpdate() to queue
up a layout via the run loop observer in WebKit, whenever we know we
are going to be painting soon.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::setContentsNeedDisplay):
(WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
2009-06-24 David Levin <levin@chromium.org>
Fix all builds.
* ForwardingHeaders/wtf/FastAllocBase.h: Added.
2009-06-24 Jeremy Orlow <jorlow@chromium.org>
Reviewed by Darin Fisher.
https://bugs.webkit.org/show_bug.cgi?id=26658
Split the syncing portions of LocalStorageArea into StorageAreaSync.
This name will make more sense in the next patch (in this set) when
LocalStorageArea and SessionStorageArea are merged to become simply
StorageArea. (Thus the synching portion of StorageArea is in
StorageAreaSync.)
This looks like a big patch, but really all it's doing is splitting
code and patching split-related things up.
* GNUmakefile.am:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* storage/LocalStorageArea.cpp:
(WebCore::LocalStorageArea::create):
(WebCore::LocalStorageArea::LocalStorageArea):
(WebCore::LocalStorageArea::scheduleFinalSync):
(WebCore::LocalStorageArea::itemChanged):
(WebCore::LocalStorageArea::itemRemoved):
(WebCore::LocalStorageArea::areaCleared):
(WebCore::LocalStorageArea::blockUntilImportComplete):
* storage/LocalStorageArea.h:
* storage/LocalStorageTask.cpp:
(WebCore::LocalStorageTask::LocalStorageTask):
* storage/LocalStorageTask.h:
(WebCore::LocalStorageTask::createImport):
(WebCore::LocalStorageTask::createSync):
* storage/LocalStorageThread.cpp:
(WebCore::LocalStorageThread::scheduleImport):
(WebCore::LocalStorageThread::scheduleSync):
* storage/LocalStorageThread.h:
* storage/SessionStorageArea.cpp:
(WebCore::SessionStorageArea::blockUntilImportComplete):
* storage/SessionStorageArea.h:
* storage/StorageArea.h:
* storage/StorageAreaSync.cpp: Copied from WebCore/storage/LocalStorageArea.cpp.
* storage/StorageAreaSync.h: Copied from WebCore/storage/LocalStorageArea.h.
* storage/StorageSyncManager.cpp:
(WebCore::StorageSyncManager::scheduleImport):
(WebCore::StorageSyncManager::scheduleSync):
* storage/StorageSyncManager.h:
2009-06-24 Adam Treat <adam.treat@torchmobile.com>
Fix Qt build.
* WebCore.pro:
2009-06-24 David Levin <levin@chromium.org>
Reviewed by David Hyatt.
Bug 26696: Member functions in DataGridColumnList should return pointers instead of PassRefPtr.
https://bugs.webkit.org/show_bug.cgi?id=26696
* html/DataGridColumnList.cpp:
(WebCore::DataGridColumnList::itemWithName):
(WebCore::DataGridColumnList::add):
* html/DataGridColumnList.h:
(WebCore::DataGridColumnList::item):
(WebCore::DataGridColumnList::primaryColumn):
(WebCore::DataGridColumnList::sortColumn):
2009-06-24 Sam Weinig <sam@webkit.org>
Reviewed by Dave "Messy" Hyatt.
Little bit of style cleanup.
* html/DataGridColumn.cpp:
* html/DataGridColumn.h:
* html/DataGridColumn.idl:
* html/DataGridColumnList.cpp:
* html/DataGridColumnList.h:
* html/DataGridColumnList.idl:
* html/HTMLDataGridCellElement.cpp:
* html/HTMLDataGridCellElement.h:
* html/HTMLDataGridCellElement.idl:
* html/HTMLDataGridColElement.cpp:
* html/HTMLDataGridColElement.h:
* html/HTMLDataGridColElement.idl:
* html/HTMLDataGridElement.h:
* html/HTMLDataGridElement.idl:
* html/HTMLDataGridRowElement.cpp:
* html/HTMLDataGridRowElement.h:
* html/HTMLDataGridRowElement.idl:
2009-06-24 Chris Fleizach <cfleizach@apple.com>
Reviewed by Oliver Hunt.
Bug 26668: AX: need a way to retrieve the language for an element
Provides a way to retrieve the language associated with a specific accessibility element.
Test: accessibility/language-attribute.html
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::language):
* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::language):
* accessibility/AccessibilityRenderObject.h:
* accessibility/mac/AccessibilityObjectWrapper.mm:
(-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
2009-06-24 Brady Eidson <beidson@apple.com>
Reviewed by Dan Bernstein.
<rdar://problem/6893811> Instead of downloading files linked from Google Earth, file contents displayed in browser window as text.
* platform/network/mac/WebCoreURLResponse.mm:
(createBinaryExtensionsSet): Add '.kmz' to the list of known-to-be-binary extensions.
2009-06-24 Nicolas Weber <thakis@chromium.org>
Reviewed by Eric Seidel.
https://bugs.webkit.org/show_bug.cgi?id=26685
Accomodate for backwards-incompatible skia api changes.
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::clearRect):
(WebCore::GraphicsContext::setCompositeOperation):
* platform/graphics/skia/ImageBufferSkia.cpp:
(WebCore::ImageBuffer::ImageBuffer):
* platform/graphics/skia/ImageSkia.cpp:
(WebCore::paintSkBitmap):
(WebCore::Image::drawPattern):
* platform/graphics/skia/PlatformContextSkia.cpp:
(PlatformContextSkia::State::State):
(PlatformContextSkia::setupPaintCommon):
(PlatformContextSkia::setXfermodeMode):
(PlatformContextSkia::applyClipFromImage):
* platform/graphics/skia/PlatformContextSkia.h:
* platform/graphics/skia/SkiaUtils.cpp:
(WebCore::):
(WebCore::WebCoreCompositeToSkiaComposite):
* platform/graphics/skia/SkiaUtils.h:
2009-06-24 Jan Michael Alonzo <jmalonzo@webkit.org>
Gtk build fix. Add files that were added in r45093 and r45096
* GNUmakefile.am:
2009-06-24 Brady Eidson <beidson@apple.com>
Fix 64-bit SnowLeopard build.
* html/DataGridColumnList.cpp:
(WebCore::DataGridColumnList::remove):
(WebCore::DataGridColumnList::move):
2009-06-24 Rob Buis <rwlbuis@gmail.com>
Reviewed by Eric Seidel.
https://bugs.webkit.org/show_bug.cgi?id=26392
Bug 26392: In html, modification of xlink:href of an newly inserted svg image does not work.
https://bugs.webkit.org/show_bug.cgi?id=26328
Bug 26328: changing href attribute of svg images does not work when changing display attribute as well
React to href updates even when there is no renderer, i.e. display=none.
Tests: svg/custom/js-update-image-and-display.svg
svg/custom/js-update-image-and-display2.svg
svg/custom/js-update-image-and-display3.svg
* svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::svgAttributeChanged):
2009-06-24 David Hyatt <hyatt@apple.com>
Reviewed by Sam Weinig.
https://bugs.webkit.org/show_bug.cgi?id=26687
Add basic back-end column support to datagrid.
Added fast/dom/HTMLDataGridElement/ column tests.
* DerivedSources.cpp:
* DerivedSources.make:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* html/DataGridColumn.cpp: Added.
(WebCore::DataGridColumn::setPrimary):
* html/DataGridColumn.h: Added.
(WebCore::DataGridColumn::create):
(WebCore::DataGridColumn::id):
(WebCore::DataGridColumn::setId):
(WebCore::DataGridColumn::label):
(WebCore::DataGridColumn::setLabel):
(WebCore::DataGridColumn::type):
(WebCore::DataGridColumn::setType):
(WebCore::DataGridColumn::sortable):
(WebCore::DataGridColumn::setSortable):
(WebCore::DataGridColumn::sortDirection):
(WebCore::DataGridColumn::setSortDirection):
(WebCore::DataGridColumn::primary):
(WebCore::DataGridColumn::detachFromColumnList):
(WebCore::DataGridColumn::DataGridColumn):
* html/DataGridColumn.idl: Added.
* html/DataGridColumnList.cpp: Added.
(WebCore::DataGridColumnList::~DataGridColumnList):
(WebCore::DataGridColumnList::itemWithName):
(WebCore::DataGridColumnList::add):
(WebCore::DataGridColumnList::remove):
(WebCore::DataGridColumnList::move):
(WebCore::DataGridColumnList::clear):
(WebCore::DataGridColumnList::primaryColumnChanged):
* html/DataGridColumnList.h: Added.
(WebCore::DataGridColumnList::create):
(WebCore::DataGridColumnList::length):
(WebCore::DataGridColumnList::item):
(WebCore::DataGridColumnList::primaryColumn):
(WebCore::DataGridColumnList::sortColumn):
* html/DataGridColumnList.idl: Added.
* html/HTMLDataGridColElement.cpp:
(WebCore::HTMLDataGridColElement::sortable):
(WebCore::HTMLDataGridColElement::setSortable):
(WebCore::HTMLDataGridColElement::sortDirection):
(WebCore::HTMLDataGridColElement::setSortDirection):
* html/HTMLDataGridColElement.h:
* html/HTMLDataGridColElement.idl:
* html/HTMLDataGridElement.cpp:
(WebCore::HTMLDataGridElement::HTMLDataGridElement):
* html/HTMLDataGridElement.h:
(WebCore::HTMLDataGridElement::columns):
* html/HTMLDataGridElement.idl:
* rendering/RenderDataGrid.cpp:
(WebCore::RenderDataGrid::paintObject):
(WebCore::RenderDataGrid::paintColumnHeaders):
(WebCore::RenderDataGrid::rebuildColumns):
* rendering/RenderDataGrid.h:
(WebCore::RenderDataGrid::gridElement):
2009-06-24 Jessie Berlin <jberlin@apple.com>
Reviewed by Adam Roben.
Partially fixes: https://bugs.webkit.org/show_bug.cgi?id=24735
(<rdar://problem/5015942>)
Where on windows it was not possible to set an element as the drag
image using setDragImage on the dataTransfer object.
Does not "fix" the case of dragging a link where the default link image
is still used, even when the -webkit-user-drag is set to "element". This
is the same behavior as is found on OS X.
Added a manual test because it is not possible to check that what is
contained in the image snapshot is indeed the requested element.
* dom/Clipboard.h:
(WebCore::Clipboard::dragImageElement):
Made getting the raw pointer from the RefPtr a const operation.
* manual-tests/drag-with-div-or-image-as-data-image.html: Added.
* platform/win/ClipboardWin.cpp:
(WebCore::ClipboardWin::createDragImage):
Get an image of the rendered element and its subtree.
2009-06-24 Darin Fisher <darin@chromium.org>
Reviewed by David Levin.
https://bugs.webkit.org/show_bug.cgi?id=26683
Fix Chromium build bustage: Add custom binding for HTMLDataGridElement.dataSource
This change just adds a stub implementation for now to help fix the build.
* bindings/v8/custom/V8CustomBinding.h:
* bindings/v8/custom/V8HTMLDataGridElementCustom.cpp: Added.
2009-06-24 David Kilzer <ddkilzer@apple.com>
Build fixes for ENABLE(PLUGIN_PROXY_FOR_VIDEO)
Reviewed by Adam Roben.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::deliverNotification): Removed
ExceptionCode parameter from togglePlayState().
(WebCore::HTMLMediaElement::initialURL): Don't convert a KURL
object to a String when assigning to a KURL variable.
2009-06-24 Nikolas Zimmermann <nikolas.zimmermann@torchmobile.com>
Reviewed by Adam Treat.
Save memory by not storing attribute values in member variables, if not absolutely needed.
Also fixes bugs where we're substituting variables too early (noticeable with the upcoming <select> element).
* wml/WMLDoElement.cpp:
(WebCore::WMLDoElement::parseMappedAttribute):
(WebCore::WMLDoElement::label):
* wml/WMLDoElement.h:
* wml/WMLFieldSetElement.cpp:
(WebCore::WMLFieldSetElement::insertedIntoDocument):
* wml/WMLFieldSetElement.h:
* wml/WMLOptGroupElement.cpp:
(WebCore::WMLOptGroupElement::title):
(WebCore::WMLOptGroupElement::parseMappedAttribute):
(WebCore::WMLOptGroupElement::groupLabelText):
* wml/WMLOptGroupElement.h:
* wml/WMLPostfieldElement.cpp:
(WebCore::WMLPostfieldElement::name):
(WebCore::WMLPostfieldElement::value):
(WebCore::WMLPostfieldElement::encodeData):
* wml/WMLPostfieldElement.h:
* wml/WMLSetvarElement.cpp:
(WebCore::WMLSetvarElement::parseMappedAttribute):
(WebCore::WMLSetvarElement::name):
(WebCore::WMLSetvarElement::value):
* wml/WMLSetvarElement.h:
* wml/WMLTimerElement.cpp:
(WebCore::WMLTimerElement::parseMappedAttribute):
(WebCore::WMLTimerElement::insertedIntoDocument):
(WebCore::WMLTimerElement::timerFired):
(WebCore::WMLTimerElement::start):
(WebCore::WMLTimerElement::value):
* wml/WMLTimerElement.h:
2009-06-24 Nikolas Zimmermann <nikolas.zimmermann@torchmobile.com>
Reviewed by Adam Roben.
Forgot to initialize m_task member variable. Results in crashes sometimes.
* wml/WMLAnchorElement.cpp:
(WebCore::WMLAnchorElement::WMLAnchorElement):
2009-06-24 Nikolas Zimmermann <nikolas.zimmermann@torchmobile.com>
Not reviewed. Forgot to include within last patch.
* manual-tests/wml/card-title-attr.wml: Added.
2009-06-24 Wajahat Siddiqui <wajahatmeister@gmail.com>
Reviewed by Nikolas Zimmermann.
Fixes: https://bugs.webkit.org/show_bug.cgi?id=26474
Adding WML <card> title attribute handling.
* wml/WMLElement.h: marking parseValueSubstitutingVariableReferences and parseValueForbiddingVariableReferences as const
* wml/WMLElement.cpp:
* wml/WMLCardElement.h:
(WebCore::WMLCardElement::title):
* wml/WMLCardElement.cpp:
* wml/manual-test/card-title-attr.wml: Manual test
2009-06-24 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Tor Arne Vestbø.
Fix the build without ENABLE_VIDEO.
* html/CanvasRenderingContext2D.cpp: Add #if ENABLE guards.
* html/CanvasRenderingContext2D.h: Ditto.
2009-06-24 Siddhartha Chattopadhyay <sidchat@google.com>
Reviewed by Eric Seidel.
Fix for https://bugs.webkit.org/show_bug.cgi?id=26200 which I introduced earlier. I had
the smartReplace set TRUE initially, which was wrong since the purpose of this call is
to just replace the selection, and place the caret at the end of the selection it replaced.
* editing/Editor.cpp:
(WebCore::Editor::markMisspellingsAfterTypingToPosition):
* manual-tests/textarea-caret-position-after-auto-spell-correct.html: Added.
2009-06-24 Kevin Watters <kevinwatters@gmail.com>
Reviewed by Kevin Ollivier.
Don't use an unsigned int for intervalInMS because we sometimes initialize
it with a negative value.
* platform/wx/SharedTimerWx.cpp:
(WebCore::setSharedTimerFireTime):
2009-06-24 Eric Seidel <eric@webkit.org>
No review, build fix only.
The previous checkin had an improper merge. This fixes the build.
* page/DragController.cpp:
(WebCore::DragController::tryDocumentDrag):
2009-06-05 Eric Seidel <eric@webkit.org>
Reviewed by Oliver Hunt.
https://bugs.webkit.org/show_bug.cgi?id=25922
JS setting dropEffect = "none" causes tryDHTMLDrag
to return DragOperationNone. Which is also the value
tryDHTMLDrag previously used to indicate JS did not
want to handle the drag.
Make it possible for the DragController::try* methods
to return a bool to indicate if javascript accepted
or rejected the drag event, separate from the DragOperation.
Tests:
- fast/events/drag-to-navigate.html
- fast/events/prevent-drag-to-navigate.html
* page/DragController.cpp:
(WebCore::DragController::dragEnteredOrUpdated):
(WebCore::DragController::tryDocumentDrag):
(WebCore::defaultOperationForDrag):
(WebCore::DragController::tryDHTMLDrag):
* page/DragController.h:
2009-06-23 Oliver Hunt <oliver@apple.com> and Eric Carlson <eric.carlson@apple.com>
Reviewed by Sam Weinig and Dave Hyatt.
<rdar://problem/6164797> Add Canvas API to allow drawing of <video> frames
<https://bugs.webkit.org/show_bug.cgi?id=25920>
Add support for drawing the contents of the video element to the canvas
in accordance with the current HTML5 draft.
Test: media/video-canvas.html
* bindings/js/JSCanvasRenderingContext2DCustom.cpp:
(WebCore::JSCanvasRenderingContext2D::drawImage):
Standard custom bindings stuff we need to do for all canvas methods.
* html/CanvasRenderingContext2D.cpp:
(WebCore::size): Helper function for finding the size of a video element
(WebCore::CanvasRenderingContext2D::checkOrigin): moved up in the file.
(WebCore::CanvasRenderingContext2D::drawImage): The various overloads of HTML5's drawImage(<video>)
* html/CanvasRenderingContext2D.h:
* html/HTMLMediaElement.h:
(WebCore::HTMLMediaElement::hasSingleSecurityOrigin):
hasSingleSecurityOrigin is needed for security, currently all implementations are trivial
as we force QT to maintain a single origin.
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::paint):
Paint routine on video so we don't have to look at MediaPlayer directly
* html/HTMLVideoElement.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::NullMediaPlayerPrivate::hasSingleSecurityOrigin):
(WebCore::MediaPlayer::hasSingleSecurityOrigin):
Default implementations of hasSingleSecurityOrigin
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::setUpVideoRendering):
A video may need a player now even if it is not visible.
(WebCore::MediaPlayerPrivate::hasSingleSecurityOrigin):
Always return true due to restrictions we've placed on QT.
* platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
(WebCore::MediaPlayerPrivate::paint):
Jump through some hoops to allow windows QT to draw to an intermediate buffer.
In the long term we'd like to cache the HDC, but this will do for now.
(WebCore::MediaPlayerPrivate::hasSingleSecurityOrigin):
* platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
As for Mac we force QT to only allow same origin loads.
2009-06-23 Adam Langley <agl@google.com>
Reviewed by Eric Seidel.
Chromium: Fix crash with inherited font-size in <option>
https://bugs.webkit.org/show_bug.cgi?id=26656
http://code.google.com/p/chromium/issues/detail?id=14853
In r42597 (https://bugs.webkit.org/show_bug.cgi?id=25244), I changed
the <select> handing for Chromium to fix a rendering bug. However,
although the font-size is correctly ignored, getRowHeight wasn't
updated and so was calculating the height of the rows in an
inconsistent manner. This can lead to a crash.
* manual-tests/optgroup-empty-and-nested.html: adding test case for crash
* platform/chromium/PopupMenuChromium.cpp:
(WebCore::PopupListBox::getRowHeight):
2009-06-23 Brady Eidson <beidson@apple.com>
Patch by Antti Koivisto.
Reviewed by Brady Eidson.
<rdar://problem/6988010> Failed resources not reloaded when built against Tiger SDK
A latent bug that cache revalidation uncovered. When a CachedResource failed to load,
it should always be revalidated upon reload.
* loader/CachedResource.cpp:
(WebCore::CachedResource::canUseCacheValidator):
(WebCore::CachedResource::mustRevalidate):
2009-06-23 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- fix <rdar://problem/6634228> Crash in [NSScroller mouseDown:] beneath
EventHandler::passMouseDownEventToWidget()
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::passMouseDownEventToWidget): Surround the
-mouseDown: call with calls to Widget::beforeMouseDown() and
Widget::afterMouseDown(), which prevent the widget's view hierarchy from
being removed from its parent view while the scroller is tracking the
mouse.
2009-06-23 Sam Weinig <sam@webkit.org>
Reviewed by Dave Hyatt.
Fix for https://bugs.webkit.org/show_bug.cgi?id=26516
Add initial implementation of DataGridDataSource
- Initial implementation only supports the initialize callback function.
Test: fast/dom/HTMLDataGridElement/DataGridDataSource-basic.html
* WebCore.xcodeproj/project.pbxproj:
* GNUmakefile.am:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* bindings/js/JSDataGridDataSource.cpp: Added.
(WebCore::JSDataGridDataSource::JSDataGridDataSource):
(WebCore::JSDataGridDataSource::~JSDataGridDataSource):
(WebCore::JSDataGridDataSource::initialize):
* bindings/js/JSDataGridDataSource.h: Added.
(WebCore::JSDataGridDataSource::create):
(WebCore::JSDataGridDataSource::isJSDataGridDataSource):
(WebCore::JSDataGridDataSource::jsDataSource):
(WebCore::asJSDataGridDataSource):
* bindings/js/JSHTMLDataGridElementCustom.cpp: Added.
(WebCore::JSHTMLDataGridElement::listener):
(WebCore::JSHTMLDataGridElement::setListener):
* html/DataGridDataSource.h: Added.
(WebCore::DataGridDataSource::~DataGridDataSource):
(WebCore::DataGridDataSource::isJSDataGridDataSource):
* html/HTMLDataGridElement.cpp:
(WebCore::HTMLDataGridElement::HTMLDataGridElement):
(WebCore::HTMLDataGridElement::setDataSource):
(WebCore::HTMLDataGridElement::initializationTimerFired):
* html/HTMLDataGridElement.h:
(WebCore::HTMLDataGridElement::dataSource):
* html/HTMLDataGridElement.idl:
2009-06-23 Ryosuke Niwa <rniwa@google.com>
Reviewed by Justin Garcia.
Undo the changeset 21212 to fix the regression bug 14062.
The changeset 21212 attempted to fix rdar://problem/5002441.
The changeset 21212 modified InsertTextCommand::input so as to convert
all spaces in text to non-breaking spaces for rdar://problem/5002441.
However, the bug was originally caused by rebalanceWhitespaceAt
and this workaround introduced a regression bug 14062.
Because rebalanceWhitespaceAt appears to behave correctly now,
the workaround introduced in 21212 is no longer needed.
Test: editing/inserting/space-after-removeformat.html
* editing/InsertTextCommand.cpp:
(WebCore::InsertTextCommand::input):
2009-06-23 Beth Dakin <bdakin@apple.com>
Reviewed by Dave Hyatt.
Fix for https://bugs.webkit.org/show_bug.cgi?id=26523 <col>
elements width can't be changed with javascript
This patch both fixes setting the width attribute directly in
JavaScript, and setting the width on the style attribute.
* html/HTMLTableColElement.cpp:
(WebCore::HTMLTableColElement::parseMappedAttribute): If we have a
new width, call setNeedsLayoutAndPrefWidthsRecalc()
Call calcPrefWidths() on the table cols.
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::recalcColumn):
* rendering/FixedTableLayout.cpp:
(WebCore::FixedTableLayout::calcWidthArray):
Call layoutIfNeeded on the table cols.
* rendering/RenderTable.cpp:
(WebCore::RenderTable::layout):
* rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::clippedOverflowRectForRepaint): Use new
table() convenience function.
(WebCore::RenderTableCol::calcPrefWidths): Just call
setPrefWidthsDirty(false) on ourself and our children.
(WebCore::RenderTableCol::table):
* rendering/RenderTableCol.h:
2009-06-23 Ojan Vafai <ojan@chromium.org>
Reviewed by Dan Bernstein.
Add logic to CSSStyleDeclaration::diff to deal with font-sizes that are
keyword values. When diff is called on a CSSStyleDeclaration, we check
the keywordSize to see if font-size matches a keyword value.
This ensures that when we diff a CSSMutableStyleDeclaration returned from
copyInheritableProperties on a CSSComputedStyleDeclaration that we
correctly identify matching font-sizes.
https://bugs.webkit.org/show_bug.cgi?id=26279
Test: editing/inserting/font-size-clears-from-typing-style.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::cssPropertyMatches):
* css/CSSComputedStyleDeclaration.h:
* css/CSSStyleDeclaration.cpp:
(WebCore::CSSStyleDeclaration::cssPropertyMatches):
(WebCore::CSSStyleDeclaration::diff):
* css/CSSStyleDeclaration.h:
2009-06-23 Kevin McCullough <kmccullough@apple.com>
Reviewed by Darin Adler.
<rdar://problem/6994790> CrashTracer: [USER] 8 crashes in Mail trying to
add a blank line to pasted Facebook content (under
CompositeEditCommand::positionAvoidingSpecialElementBoundary)
- Just added null checks and I will create a new bug to prevent the
bad behavior.
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
2009-06-23 Simon Fraser <simon.fraser@apple.com>
Build fix.
Wrap shouldDoSoftwarePaint() in #if USE(ACCELERATED_COMPOSITING) to avoid warning when
ACCELERATED_COMPOSITING is not defined.
* rendering/RenderLayer.cpp:
2009-06-23 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dave Hyatt.
https://bugs.webkit.org/show_bug.cgi?id=24863
Fix reflection painting on elements with compositing layers.
Test: compositing/reflections/reflection-on-composited.html
* rendering/RenderLayer.h:
Add a new PaintLayerPaintingReflection flag which is set while painting inside
reflections.
(WebCore::RenderLayer::setPaintingInsideReflection):
Add a setter so that RenderLayerBacking can call it.
* rendering/RenderLayer.cpp:
(WebCore::shouldDoSoftwarePaint):
Utility to clarify the logic of when a composited layer should do a software paint.
(WebCore::RenderLayer::paintLayer):
Use shouldDoSoftwarePaint() to determine when to software-paint a reflected layer.
Remove transform-related tests from the reflection-painting if test because they appear
to be unnecessary.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::paintIntoLayer):
Add the code to paint reflections to the composited layer painting method.
* rendering/RenderReplica.cpp:
(WebCore::RenderReplica::paint):
Set the PaintLayerPaintingReflection flag.
2009-06-23 Antti Koivisto <antti@apple.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=26643
Memory cache should respect Cache-Control: no-store
Make resources with Cache-Control: no-store uncacheable in the memory cache.
They get evicted immediately when all clients are gone and are always
reloaded from the server.
Conforms to RFC2616 14.9.2 and seems also match Firefox behavior.
* loader/CachedResource.cpp:
(WebCore::CachedResource::removeClient):
(WebCore::CachedResource::canUseCacheValidator):
(WebCore::CachedResource::mustRevalidate):
* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::ResourceResponseBase):
(WebCore::ResourceResponseBase::parseCacheControlDirectives):
(WebCore::ResourceResponseBase::cacheControlContainsNoStore):
* platform/network/ResourceResponseBase.h:
2009-06-23 Brady Eidson <beidson@apple.com>
Windows build fix.
* platform/graphics/win/QTMovieWin.cpp:
(QTMovieWin::play):
(QTMovieWin::pause):
(QTMovieWin::setRate):
(QTMovieWin::setCurrentTime):
2009-06-23 Kevin McCullough <kmccullough@apple.com>
Reviewed by Adele Peterson.
<rdar://problem/6902203> REGRESSION: 'Return' insertion point incorrect
after manually quoting blank line then hitting return
If the insertion point is both the begining and ending visible position
then we need to insert at the end instead of the begining, which is what
would normally happen if the insertion point was as the begining.
* editing/BreakBlockquoteCommand.cpp:
(WebCore::BreakBlockquoteCommand::doApply):
2009-06-23 Brady Eidson <beidson@apple.com>
Reviewed by Sam Weinig, and looked over by Eric Carlson.
<rdar://problem/6980466> Media elements should provide option for changing pitch correction
Introduce a new boolean property to HTMLMediaElement called webkitPreservesPitch for script to control this.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): Currently the platforms that have a flexible pitch preservation
property (Quicktime on Mac and Win) have had it on by default, so continue that default for now.
(WebCore::HTMLMediaElement::loadResource):
(WebCore::HTMLMediaElement::webkitPreservesPitch):
(WebCore::HTMLMediaElement::setWebkitPreservesPitch):
* html/HTMLMediaElement.h:
* html/HTMLMediaElement.idl:
* platform/graphics/MediaPlayer.cpp:
(WebCore::NullMediaPlayerPrivate::setPreservesPitch):
(WebCore::MediaPlayer::MediaPlayer):
(WebCore::MediaPlayer::preservesPitch):
(WebCore::MediaPlayer::setPreservesPitch):
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::setPreservesPitch):
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::createQTMovie): Rework to allow recreation of the movie with almost the
exact same attributes as before, with pitch preservation being the difference.
(WebCore::MediaPlayerPrivate::setPreservesPitch): Recreate the QTMovie if the flag actually changes.
(WebCore::MediaPlayerPrivate::updateStates): Restore current time and rate if this is a recreated movie.
(WebCore::MediaPlayerPrivate::timeChanged): Clear the time-to-be-restored, as this callback means it
has been effectively overwritten.
* platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
(WebCore::MediaPlayerPrivate::load):
(WebCore::MediaPlayerPrivate::setPreservesPitch):
* platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
* platform/graphics/win/QTMovieWin.cpp:
(QTMovieWinPrivate::QTMovieWinPrivate):
(QTMovieWinPrivate::~QTMovieWinPrivate):
(QTMovieWinPrivate::task): Restore current time and rate if this is a re-created movie.
(QTMovieWin::play): Clear the time-to-be-restored, as this effectively overwrites it.
(QTMovieWin::pause): Ditto.
(QTMovieWin::setRate): Ditto.
(QTMovieWin::setCurrentTime): Ditto.
(QTMovieWin::setPreservesPitch): Recreate the Movie if the flag actually changes.
(QTMovieWin::load): Rework to allow recreation of the Movie with similar state as the movie before it,
but changing the pitch preservation flag.
* platform/graphics/win/QTMovieWin.h:
2009-06-23 Eric Carlson <eric.carlson@apple.com>
Reviewed by Simon Fraser.
<rdar://problem/6998286> Crash after leaving page with <video>
Don't try to post events after going into the page cache.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::documentWillBecomeInactive): Cancel pending events and stop
event timers so we won't try to post events after going into the cache.
2009-06-23 Jeremy Orlow <jorlow@chromium.org>
Reviewed by Brady Eidson.
Simplify the interaction between LocalStorageArea/SessionStorageArea
and StorageArea by creating a "blockUntilImportComplete()" function
rather than bouncing back and forth between the child and parent
classes in a somewhat unintuitive manner.
This patch also paves the way for LocalStorageArea and
SessionStorageArea being merged into one. It's part of several in a
set which are separating syncing (to disk) code from the rest of the
implementation so that local storage and session storage's code can be
unified.
https://bugs.webkit.org/show_bug.cgi?id=25376
* storage/LocalStorageArea.cpp:
(WebCore::LocalStorageArea::blockUntilImportComplete):
* storage/LocalStorageArea.h:
* storage/StorageArea.cpp:
(WebCore::StorageArea::length):
(WebCore::StorageArea::key):
(WebCore::StorageArea::getItem):
(WebCore::StorageArea::setItem):
(WebCore::StorageArea::removeItem):
(WebCore::StorageArea::clear):
(WebCore::StorageArea::contains):
* storage/StorageArea.h:
(WebCore::StorageArea::blockUntilImportComplete):
2009-06-23 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dave Hyatt
First part of https://bugs.webkit.org/show_bug.cgi?id=26652
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paint):
(WebCore::RenderLayer::paintLayer):
* rendering/RenderLayer.h:
(WebCore::RenderLayer::):
* rendering/RenderReplica.cpp:
(WebCore::RenderReplica::paint):
Replace the 3 boolean params to RenderLayer::paintLayer() with a bit mask for readability.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::paintIntoLayer):
(WebCore::RenderLayerBacking::paintContents):
* rendering/RenderLayerBacking.h:
Remove the unused 'haveTransparency' param to paintIntoLayer().
2009-06-23 Simon Fraser <simon.fraser@apple.com>
Reviewed by Darin Adler.
<rdar://problem/6997929> Assertion at WebCore::RenderLayer::updateClipRects with hardware acceleration
The updatingControlTints() painting pass goes through compositing layer boundaries,
so we need to ensure we don't cache clip rects computed with the wrong root by
setting temporaryClipRects to true.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayer):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::contentOffsetInCompostingLayer):
Remove a printf that I left in by mistake.
2009-06-23 Anders Carlsson <andersca@apple.com>
Reviewed by Darin Adler.
WebCore side of <rdar://problem/6946094>.
* platform/win/ClipboardWin.cpp:
(WebCore::ClipboardWin::setExternalDataObject):
* platform/win/ClipboardWin.h:
2009-06-23 Darin Fisher <darin@chromium.org>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=26650
Add setFormContentType and setFormData since it is awkward for Chromium
to use setFormInfoFromRequest to set the underlying members. Also, add
a clearChildren method that Chromium needs. These methods are used as
part of the Chromium code that serializes a HistoryItem for storing in
the browser's session history.
* history/HistoryItem.cpp:
* history/HistoryItem.h:
2009-06-23 Eric Carlson <eric.carlson@apple.com>
Reviewed by Darin Adler.
<rdar://problem/6978938> Need HTML 5 event attributes for media elements
Test: media/event-attributes.html
* html/HTMLAttributeNames.in: Add media event attribute names.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseMappedAttribute): Handle media event attributes.
2009-06-23 Thiago Macieira <thiago.macieira@nokia.com>
Reviewed by Simon Hausmann.
Fix Qt build with Phonon.
The #include <phonon> header no longer exists. And the <Phonon> or
<Phonon/Phonon> headers have never existed (neither for us nor for the
Phonon sources). You have to select each and every header that you do
want now.
* platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
2009-06-23 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
Reviewed by Simon Hausmann.
Remove duplicated code in Qt & GTK logging initialization
We now share the getChannelFromName() function in Logging.cpp
* platform/gtk/LoggingGtk.cpp:
* platform/qt/LoggingQt.cpp:
2009-06-23 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
Reviewed by Simon Hausmann.
Rename the plugin logging channel to plural form 'Plugins'
This matches both the other logging channel names, as well as the
WebKit logging channel used by Safari/Mac for plugins.
* platform/Logging.cpp:
* platform/Logging.h:
* platform/gtk/LoggingGtk.cpp:
* platform/mac/LoggingMac.mm:
* platform/qt/LoggingQt.cpp:
* platform/win/LoggingWin.cpp:
* plugins/PluginDebug.h:
* plugins/gtk/PluginPackageGtk.cpp:
* plugins/mac/PluginPackageMac.cpp:
* plugins/mac/PluginViewMac.cpp:
* plugins/qt/PluginPackageQt.cpp:
2009-06-23 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
Reviewed by Simon Hausmann.
Fix NPAPI mouse translation issues on Mac
The WindowRef we pass to the plugin refers to the the top level window,
so the x and y positions have to be relative to this position, but we
have to manually compensate for title bar decorations and other parents
of the QWebView since contentsToWindow() only traverses to the QWebView.
Previously we did this compensation when passing on mouse coordinates to
the plugin, which caused various issues with translations such as not
being able to close the Flash settings dialog, or the hand cursor not
appearing over links.
We now do the compensation as part of the call to NPP_SetWindow, and
then pass mouse coordinates in global context without any compensation,
similar to how both Safari and Mozilla does it.
* plugins/mac/PluginViewMac.cpp:
(WebCore::PluginView::updatePluginWidget):
(WebCore::PluginView::globalMousePosForPlugin):
2009-06-23 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
Rubber-stamped by Simon Hausmann.
[Qt] Resolve absolute path to library install_name manually
Since our target.path is set to the Qt directory (to be able
to do 'make install') the 'absolute_library_soname' option
to QMake did not do the right thing.
We now compute the absolute path manually using DESTDIR.
* WebCore.pro:
2009-06-22 Simon Fraser <simon.fraser@apple.com>
Reviewed by Oliver Hunt.
<rdar://problem/6991146> Scrollbars in hardware layers don't change to the
inactive look in background windows
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayer):
Don't short-circuit the "painting" pass that is used to udpate control tints.
2009-06-22 Dimitri Glazkov <dglazkov@chromium.org>
Reviewed by Sam Weinig.
https://bugs.webkit.org/show_bug.cgi?id=26567
Upstream V8 bindings code generator. With this change, also added interface ancestor
traversal to IDL parser, which is necessary for V8 bindings. The traversal is used
to determine whether an interface is a Node to facilitate proper casting and storage
in V8DOMMap.
* bindings/scripts/CodeGenerator.pm: Added parent traversal sub, needed
by V8 bindings.
* bindings/scripts/CodeGeneratorV8.pm: Added.
* bindings/scripts/IDLParser.pm: Modified to allow limited parsing for
parent traversal cases.
2009-06-22 Sam Weinig <sam@webkit.org>
Reviewed by Gavin Barraclough.
Add event handler attribute getter/setters to HTMLFrameSetElement
as specified in HTML 5. These match the ones on HTMLBodyElement.
* dom/Node.h:
* html/HTMLFrameSetElement.cpp:
(WebCore::HTMLFrameSetElement::parseMappedAttribute):
(WebCore::HTMLFrameSetElement::onblur):
(WebCore::HTMLFrameSetElement::setOnblur):
(WebCore::HTMLFrameSetElement::onerror):
(WebCore::HTMLFrameSetElement::setOnerror):
(WebCore::HTMLFrameSetElement::onfocus):
(WebCore::HTMLFrameSetElement::setOnfocus):
(WebCore::HTMLFrameSetElement::onload):
(WebCore::HTMLFrameSetElement::setOnload):
(WebCore::HTMLFrameSetElement::onbeforeunload):
(WebCore::HTMLFrameSetElement::setOnbeforeunload):
(WebCore::HTMLFrameSetElement::onmessage):
(WebCore::HTMLFrameSetElement::setOnmessage):
(WebCore::HTMLFrameSetElement::onoffline):
(WebCore::HTMLFrameSetElement::setOnoffline):
(WebCore::HTMLFrameSetElement::ononline):
(WebCore::HTMLFrameSetElement::setOnonline):
(WebCore::HTMLFrameSetElement::onresize):
(WebCore::HTMLFrameSetElement::setOnresize):
(WebCore::HTMLFrameSetElement::onstorage):
(WebCore::HTMLFrameSetElement::setOnstorage):
(WebCore::HTMLFrameSetElement::onunload):
(WebCore::HTMLFrameSetElement::setOnunload):
* html/HTMLFrameSetElement.h:
* html/HTMLFrameSetElement.idl:
2009-06-22 Darin Adler <darin@apple.com>
Reviewed by Sam Weinig.
Bug 25425: DOM attribute getter/setter functions should use const AtomicString& type
https://bugs.webkit.org/show_bug.cgi?id=25425
* bindings/scripts/CodeGeneratorJS.pm: Added handling for ReflectURL.
* bindings/scripts/CodeGeneratorObjC.pm: Ditto.
* dom/Element.cpp:
(WebCore::Element::getURLAttribute): Added. For use implementing getters
for ReflectURL.
* dom/Element.h: Added getURLAttribute.
* html/HTMLImageElement.idl: Use Reflect and ReflectURL.
2009-06-22 Jian Li <jianli@chromium.org>
Reviewed by Dimitri Glazkov.
Bug 26626: Make WorkerContextExecutionProxy::toV8Object handle exception
objects.
https://bugs.webkit.org/show_bug.cgi?id=26626
* bindings/v8/WorkerContextExecutionProxy.cpp:
(WebCore::WorkerContextExecutionProxy::ToV8Object):
2009-06-22 David Hyatt <hyatt@apple.com>
Reviewed by Sam Weinig.
Add RenderDataGrid to the build. Give it some basic default styling (that more or less matches a listbox). It has a default size
of 300x150.
* GNUmakefile.am:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* css/html4.css:
* html/HTMLDataGridElement.cpp:
(WebCore::HTMLDataGridElement::createRenderer):
* html/HTMLDataGridElement.h:
* html/HTMLDataGridElement.idl:
* rendering/RenderDataGrid.cpp: Added.
(WebCore::RenderDataGrid::RenderDataGrid):
(WebCore::RenderDataGrid::~RenderDataGrid):
(WebCore::RenderDataGrid::calcPrefWidths):
(WebCore::RenderDataGrid::paintObject):
(WebCore::RenderDataGrid::valueChanged):
(WebCore::RenderDataGrid::invalidateScrollbarRect):
(WebCore::RenderDataGrid::isActive):
* rendering/RenderDataGrid.h: Added.
(WebCore::RenderDataGrid::renderName):
(WebCore::RenderDataGrid::canHaveChildren):
(WebCore::RenderDataGrid::scrollbarCornerPresent):
2009-06-22 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dave Hyatt.
https://bugs.webkit.org/show_bug.cgi?id=26430
<rdar://problem/6944442> Elements jump around when they become composited (WWDC checkers demo)
<rdar://problem/6989006> Lots of time spent in RenderLayerCompositor::calculateCompositedBounds()
during window resize when using hardware layers
Fix an ordering dependency which caused the compositing position of a layer
to be affected by some later sibling, which affected the compositing ancestor's
composited bounds.
The fix is to only update the compositing positions of layers in some subtree
when updateAfterLayout() has been called on all the layers in that subtree,
from the ancestor down.
Also cache the composited bounds of a RenderLayerBacking, now that we can
guarantee that those bounds are accurate.
Test: compositing/sibling-positioning.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::hitTestLayer):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::RenderLayerBacking):
(WebCore::RenderLayerBacking::updateAfterLayout):
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
(WebCore::RenderLayerBacking::contentOffsetInCompostingLayer):
(WebCore::RenderLayerBacking::paintContents):
(WebCore::RenderLayerBacking::compositedBounds):
(WebCore::RenderLayerBacking::setCompositedBounds):
* rendering/RenderLayerBacking.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateBacking):
(WebCore::RenderLayerCompositor::updateLayerCompositingState):
(WebCore::RenderLayerCompositor::calculateCompositedBounds):
(WebCore::RenderLayerCompositor::layerWillBeRemoved):
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
(WebCore::RenderLayerCompositor::updateCompositingChildrenGeometry):
* rendering/RenderLayerCompositor.h:
2009-06-22 Jeremy Orlow <jorlow@chromium.org>
Reviewed by Darin Fisher.
First step in https://bugs.webkit.org/show_bug.cgi?id=25376
Add StorageSyncManager.cpp/h
* GNUmakefile.am:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
In preparation for combining SessionStorage and LocalStorage into a
single StorageManager, move the syncing bits out of LocalStorage and
into its own class.
The next step is to combine LocalStorageArea and SessionStorageArea
into one. Then SessionStorage and LocalStorage can be combined.
Note that combining them will cut down on code paths that must be
proxied, eliminate virtual dispatch, and allow Chromium to (eventually)
write historical sessionStorage to disk when memory is getting tight.
Also remove a couple bits of cruft including code for quotas which is
unnecessary (since a meta-data db is unnecessary since you can just
count bytes as you read the local storage databases into memory).
* storage/LocalStorage.cpp:
(WebCore::LocalStorage::LocalStorage):
(WebCore::LocalStorage::storageArea):
(WebCore::LocalStorage::close):
* storage/LocalStorage.h:
* storage/LocalStorageArea.cpp:
(WebCore::LocalStorageArea::LocalStorageArea):
(WebCore::LocalStorageArea::scheduleFinalSync):
(WebCore::LocalStorageArea::syncTimerFired):
(WebCore::LocalStorageArea::performImport):
* storage/LocalStorageArea.h:
(WebCore::LocalStorageArea::create):
* storage/LocalStorageTask.cpp:
(WebCore::LocalStorageTask::performTask):
* storage/LocalStorageTask.h:
(WebCore::LocalStorageTask::):
(WebCore::LocalStorageTask::createImport):
* storage/LocalStorageThread.cpp:
* storage/LocalStorageThread.h:
* storage/SessionStorage.h:
* storage/StorageSyncManager.cpp: Copied from WebCore/storage/LocalStorage.cpp.
(WebCore::StorageSyncManager::create):
(WebCore::StorageSyncManager::StorageSyncManager):
(WebCore::StorageSyncManager::fullDatabaseFilename):
(WebCore::StorageSyncManager::close):
(WebCore::StorageSyncManager::scheduleImport):
(WebCore::StorageSyncManager::scheduleSync):
* storage/StorageSyncManager.h: Copied from WebCore/storage/LocalStorage.h.
(WebCore::):
2009-06-22 Darin Fisher <darin@chromium.org>
Reviewed by Dimitri Glazkov.
https://bugs.webkit.org/show_bug.cgi?id=26622
Add ChromiumDataObject::copy()
* platform/chromium/ChromiumDataObject.cpp:
* platform/chromium/ChromiumDataObject.h:
2009-06-22 Timothy Hatcher <timothy@apple.com>
Add a silhouette image for the enable view of the Resource panel.
Reviewed by Kevin McCullough.
* inspector/front-end/Images/resourcesSilhouette.png: Added.
* inspector/front-end/inspector.css:
2009-06-22 Kyle Prete <kylep@chromium.org>
Reviewed by Dimitri Glazkov.
https://bugs.webkit.org/show_bug.cgi?id=26552
Add V8 JS bindings for Audio Constructor.
* bindings/v8/custom/V8CustomBinding.h:
Added a callback declaration for audio ctor to macro.
* bindings/v8/custom/V8HTMLAudioElementConstructor.cpp:
Added the whole file.
2009-06-22 Alexey Proskuryakov <ap@webkit.org>
Reviewed by David Levin.
https://bugs.webkit.org/show_bug.cgi?id=26600
StringImpl::copy() no longer copies empty string correctly
* platform/text/StringImpl.cpp:
(WebCore::StringImpl::ustring): Changed method calling syntax to look less like calling a
static method.
(WebCore::StringImpl::copy): Reverted part of r41917 that caused the problem.
2009-06-22 Xiaomei Ji <xji@chromium.org>
Reviewed by Eric Seidel
Not auto-testable since it involves sending a keyboard event to
the popup, which is not possible (eventSender sends the key
events through webview, we want to go through the webwidget).
This patch is one part of the fix for issue "keyboard selection in
Hebrew select element does not work in Windows". The other part of the
fix is in chromium's webkit/glue layer.
https://bugs.webkit.org/show_bug.cgi?id=25899
* manual-tests/keyboard_select_non_english.html: Added.
* platform/chromium/PopupMenuChromium.cpp:
(WebCore::isCharacterTypeEvent): Added. Check whether the event is a
character type event. "Char" in Windows or "KeyDown" in Mac is character
type event.
(WebCore::PopupListBox::typeAheadFind): Since m_lastCharTime is used to
indicate whether user types multiple characters continuely as a search
prefix or not, it should be only assigned when the event is character
type event.
2009-06-22 Kevin McCullough <kmccullough@apple.com>
Reviewed by Darin Adler.
<rdar://problem/6115819> Notify of profile start in console
Put a message in the console that announces that a profile has started,
similar to how a console message announces that a profile has finished.
* inspector/InspectorController.cpp:
(WebCore::InspectorController::addProfile): Use renamed function.
(WebCore::InspectorController::addProfileFinishedMessageToConsole):
Renamed.
(WebCore::InspectorController::addStartProfilingMessageToConsole):
New function that logs the message about the profile starting.
(WebCore::InspectorController::startUserInitiatedProfiling): Ditto
* inspector/InspectorController.h:
* inspector/front-end/ProfilesPanel.js: Print the "run" of the profile's
title if there are multiple profiles, and take into account the fact
that titles are displayed twice as much now.
(WebInspector.ProfilesPanel.prototype.displayTitleForProfileLink):
* page/Console.cpp:
(WebCore::Console::profile): Call new function.
2009-06-22 David Hyatt <hyatt@apple.com>
Reviewed by Sam Weinig.
https://bugs.webkit.org/show_bug.cgi?id=26615
Add IDL interface for datagrid cell elements. Add a few more properties to the datagrid itself that
correspond to ones you find on <select> elements.
Add an expanded property to row elements.
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* html/HTMLAttributeNames.in:
* html/HTMLDataGridCellElement.cpp: Added.
(WebCore::HTMLDataGridCellElement::HTMLDataGridCellElement):
(WebCore::HTMLDataGridCellElement::label):
(WebCore::HTMLDataGridCellElement::setLabel):
(WebCore::HTMLDataGridCellElement::focused):
(WebCore::HTMLDataGridCellElement::setFocused):
(WebCore::HTMLDataGridCellElement::checked):
(WebCore::HTMLDataGridCellElement::setChecked):
(WebCore::HTMLDataGridCellElement::indeterminate):
(WebCore::HTMLDataGridCellElement::setIndeterminate):
(WebCore::HTMLDataGridCellElement::progress):
(WebCore::HTMLDataGridCellElement::setProgress):
* html/HTMLDataGridCellElement.h: Added.
(WebCore::HTMLDataGridCellElement::endTagRequirement):
(WebCore::HTMLDataGridCellElement::tagPriority):
* html/HTMLDataGridCellElement.idl: Added.
* html/HTMLDataGridElement.cpp:
(WebCore::HTMLDataGridElement::autofocus):
(WebCore::HTMLDataGridElement::setAutofocus):
(WebCore::HTMLDataGridElement::disabled):
(WebCore::HTMLDataGridElement::setDisabled):
(WebCore::HTMLDataGridElement::size):
(WebCore::HTMLDataGridElement::setSize):
* html/HTMLDataGridElement.h:
* html/HTMLDataGridElement.idl:
* html/HTMLDataGridRowElement.cpp:
(WebCore::HTMLDataGridRowElement::checkDTD):
(WebCore::HTMLDataGridRowElement::expanded):
(WebCore::HTMLDataGridRowElement::setExpanded):
* html/HTMLDataGridRowElement.h:
* html/HTMLDataGridRowElement.idl:
* html/HTMLElementsAllInOne.cpp:
* html/HTMLTagNames.in:
2009-06-22 Sam Weinig <sam@webkit.org>
Reviewed by Mark Rowe.
Add event handler attribute getter/setters to HTMLBodyElement
as specified in HTML 5.
- Removes erroneous inclusion of the onresize and onunload event
handler attributes in Element and Document.
* dom/Document.cpp:
(WebCore::Document::getWindowAttributeEventListener):
* dom/Document.h:
* dom/Document.idl:
* dom/Element.idl:
* dom/Node.cpp:
* dom/Node.h: onblur, onerror, onfocus, and onload all need to be declared
virtual, since their behavior for HTMLBodyElement differs from the base
implementation.
* html/HTMLBodyElement.cpp:
(WebCore::HTMLBodyElement::onblur):
(WebCore::HTMLBodyElement::setOnblur):
(WebCore::HTMLBodyElement::onerror):
(WebCore::HTMLBodyElement::setOnerror):
(WebCore::HTMLBodyElement::onfocus):
(WebCore::HTMLBodyElement::setOnfocus):
(WebCore::HTMLBodyElement::onload):
(WebCore::HTMLBodyElement::setOnload):
(WebCore::HTMLBodyElement::onbeforeunload):
(WebCore::HTMLBodyElement::setOnbeforeunload):
(WebCore::HTMLBodyElement::onmessage):
(WebCore::HTMLBodyElement::setOnmessage):
(WebCore::HTMLBodyElement::onoffline):
(WebCore::HTMLBodyElement::setOnoffline):
(WebCore::HTMLBodyElement::ononline):
(WebCore::HTMLBodyElement::setOnonline):
(WebCore::HTMLBodyElement::onresize):
(WebCore::HTMLBodyElement::setOnresize):
(WebCore::HTMLBodyElement::onstorage):
(WebCore::HTMLBodyElement::setOnstorage):
(WebCore::HTMLBodyElement::onunload):
(WebCore::HTMLBodyElement::setOnunload):
* html/HTMLBodyElement.h:
* html/HTMLBodyElement.idl:
2009-06-22 Alexey Proskuryakov <ap@webkit.org>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=26601
Remove disabled code for appcache dynamic entries
This also removes code for DOM 3 Core DOMStringList, which we don't use for anything else yet.
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* bindings/js/JSDOMStringListCustom.cpp: Removed.
* bindings/v8/custom/V8CustomBinding.h:
* bindings/v8/custom/V8DOMStringListCustom.cpp: Removed.
* dom/DOMStringList.cpp: Removed.
* dom/DOMStringList.h: Removed.
* dom/DOMStringList.idl: Removed.
* dom/StaticStringList.cpp: Removed.
* dom/StaticStringList.h: Removed.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::shouldLoadResourceFromApplicationCache):
* loader/appcache/ApplicationCache.cpp:
(WebCore::ApplicationCache::addResource):
* loader/appcache/ApplicationCache.h:
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
(WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
* loader/appcache/ApplicationCacheResource.cpp:
(WebCore::ApplicationCacheResource::dumpType):
* loader/appcache/ApplicationCacheResource.h:
(WebCore::ApplicationCacheResource::):
* loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::storeUpdatedType):
* loader/appcache/DOMApplicationCache.cpp:
* loader/appcache/DOMApplicationCache.h:
* loader/appcache/DOMApplicationCache.idl:
* page/DOMWindow.idl:
2009-06-22 Steve Falkenburg <sfalken@apple.com>
Windows build fix.
* DerivedSources.cpp:
* html/HTMLElementsAllInOne.cpp:
2009-06-22 Alexey Proskuryakov <ap@webkit.org>
Reviewed by John Sullivan.
<rdar://problem/6956606> REGRESSION (S4Beta -> Final): After the password is input,
Japanese can't be input.
WebKit uses a per-frame input context for most editable fields, and application's global
context for password fields, manually controlling secure input state and the list of available
input sources.
We were setting TSMDocument property to disable non-Roman input methods after focus changed
to a password field, but before selection was updated. This resulted in the property being
applied to a wrong TSMDocument in some cases, because TSMGetActiveDocument() uses input
context cached by +[NSApplication updateWindows], we change context based on selection,
not on focus.
* page/mac/FrameMac.mm: (WebCore::Frame::setUseSecureKeyboardEntry): Since there is only one
context that we use for password fields - the global one - there is no need to get the active
one.
2009-06-22 David Levin <levin@chromium.org>
Reviewed by David Hyatt and Eric Seidel.
REGRESSION: When the main page (ScrollView) has a custom scrollbar, it crashes on destruction.
https://bugs.webkit.org/show_bug.cgi?id=26326
Test: scrollbars/scrollbar-crash-on-refresh.html
* dom/Document.cpp:
(WebCore::Document::detach):
Gives the FrameView a change to do any necessary cleanup on
Document::detach() which is where the renderArena gets detroyed.
* page/FrameView.cpp:
(WebCore::FrameView::detachCustomScrollbars):
Gets rid of any custom scrollbars (if the docment supplied them).
* page/FrameView.h:
* platform/Scrollbar.h:
(WebCore::Scrollbar::isCustomScrollbar):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::destroy):
Removed the check for document()->frame(). If frame() is 0 in this code,
then the call to animation() is also incorrect (since it does document()->frame()->animation()).
* rendering/RenderScrollbar.h:
(WebCore::RenderScrollbar::isCustomScrollbar):
2009-06-22 Dan Bernstein <mitz@apple.com>
Reviewed by Simon Fraser.
- fix https://bugs.webkit.org/show_bug.cgi?id=23606
<rdar://problem/6537777> CSS gradient not repainted when image load
completes
Test: fast/repaint/background-generated.html
* rendering/RenderObject.cpp:
(WebCore::mustRepaintFillLayers): Return true if the layer does not
specify a size and the image uses the container size.
2009-06-22 David Hyatt <hyatt@apple.com>
Reviewed by Sam Weinig.
https://bugs.webkit.org/show_bug.cgi?id=26607
Add IDL for HTMLDataGridRowElement.
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* html/HTMLAttributeNames.in:
* html/HTMLDataGridColElement.cpp:
(WebCore::HTMLDataGridColElement::primary):
(WebCore::HTMLDataGridColElement::setPrimary):
* html/HTMLDataGridColElement.h:
* html/HTMLDataGridColElement.idl:
* html/HTMLDataGridElement.cpp:
(WebCore::HTMLDataGridElement::checkDTD):
(WebCore::HTMLDataGridElement::multiple):
(WebCore::HTMLDataGridElement::setMultiple):
* html/HTMLDataGridElement.h:
* html/HTMLDataGridElement.idl:
* html/HTMLDataGridRowElement.cpp: Added.
(WebCore::HTMLDataGridRowElement::HTMLDataGridRowElement):
(WebCore::HTMLDataGridRowElement::selected):
(WebCore::HTMLDataGridRowElement::setSelected):
(WebCore::HTMLDataGridRowElement::focused):
(WebCore::HTMLDataGridRowElement::setFocused):
* html/HTMLDataGridRowElement.h: Added.
(WebCore::HTMLDataGridRowElement::tagPriority):
* html/HTMLDataGridRowElement.idl: Added.
* html/HTMLTagNames.in:
2009-06-19 Yael Aharon <yael.aharon@nokia.com>
Reviewed by Holger Freyther.
https://bugs.webkit.org/show_bug.cgi?id=26556
Fix a crash in case that the QNetworkReply::readReady signal is
"stuck" in deferred mode due to JavaScript alert, and in the meantime,
QNetworkreply::finished signal is received and processed before
QNetworkReply::readReady is processed.
* manual-tests/qt/unload-alert.html: Added.
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::setLoadMode):
(WebCore::QNetworkReplyHandler::finish):
(WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
(WebCore::QNetworkReplyHandler::forwardData):
(WebCore::QNetworkReplyHandler::start):
(WebCore::QNetworkReplyHandler::sendQueuedItems):
* platform/network/qt/QNetworkReplyHandler.h:
(WebCore::QNetworkReplyHandler::):
2009-06-22 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
Fix the Qt build.
* WebCore.pro:
2009-06-21 Darin Adler <darin@apple.com>
Reviewed by Sam Weinig.
Bug 25425: DOM attribute getter/setter functions should use const AtomicString& type
https://bugs.webkit.org/show_bug.cgi?id=25425
* bindings/scripts/CodeGeneratorJS.pm: Tweaked mechanism for includes to be a bit
more consistent and to make SVGElement.h be included in the header rather than in
every implementation file that includes the header. Added code to use getAttribute
and setAttribute directly when the [Reflect] extended attribute is used.
* bindings/scripts/CodeGeneratorObjC.pm: Ditto.
* html/HTMLElement.idl: Used [Reflect] for all the attributes in this class that
reflect content attributes. Restricting this to one class for now to keep the
patch small and start out slowly.
2009-06-21 Sam Weinig <sam@webkit.org>
Reviewed by Oliver Hunt.
Fix for https://bugs.webkit.org/show_bug.cgi?id=26596
Only expose event handler attributes to elements and documents.
Test: fast/dom/event-attribute-availability.html
* dom/Document.idl:
* dom/Element.idl:
* dom/Node.cpp:
* dom/Node.h:
* dom/Node.idl:
2009-06-21 Daniel Bates <dbates@intudata.com>
Reviewed by Adam Barth.
https://bugs.webkit.org/show_bug.cgi?id=26580
Fix to enable XSSAuditor on child windows.
Test: http/tests/security/xssAuditor/link-opens-new-window.html
* page/XSSAuditor.cpp:
(WebCore::XSSAuditor::XSSAuditor):
(WebCore::XSSAuditor::isEnabled):
(WebCore::XSSAuditor::canEvaluate):
(WebCore::XSSAuditor::canCreateInlineEventListener):
(WebCore::XSSAuditor::canLoadExternalScriptFromSrc):
(WebCore::XSSAuditor::canLoadObject):
* page/XSSAuditor.h: Removed method setXSSAuditorEnabled, and field m_isEnabled.
Moved implementation of isEnabled to XSSAuditor.cpp and changed implementation
to query Settings.
2009-06-21 David Levin <levin@chromium.org>
Reviewed by NOBODY.
Speculative windows build fix (idea by Mark Rowe).
* WebCore.vcproj/WebCore.vcproj:
2009-06-21 David Levin <levin@chromium.org>
Reviewed by NOBODY (Speculative gtk build fix).
* GNUmakefile.am:
2009-06-21 David Levin <levin@chromium.org>
Reviewed by NOBODY.
Speculative tiger build fix and a windows build fix.
More fixes may still be in order.
* WebCore.vcproj/WebCoreCommon.vsprops:
* dom/default/PlatformMessagePortChannel.h:
(WebCore::PlatformMessagePortChannel::MessagePortQueue::tryGetMessage):
2009-06-21 David Levin <levin@chromium.org>
Reviewed by NOBODY (Speculative tiger build fix).
* dom/default/PlatformMessagePortChannel.h:
(WebCore::PlatformMessagePortChannel::MessagePortQueue::~MessagePortQueue):
2009-06-21 Drew Wilson <atwilson@google.com>
Reviewed by David Levin.
<https://bugs.webkit.org/show_bug.cgi?id=26448>
Added optimized GC for MessagePorts when the entangled port is run by the same thread.
Fixed bug in isProxyFor() that was not properly throwing an exception when trying to clone the entangled port.
* bindings/js/JSDOMBinding.cpp:
(WebCore::markActiveObjectsForContext):
Now marks remotely entangled ports as in-use, in addition to those with pending activity.
* bindings/js/JSMessagePortCustom.cpp:
(WebCore::JSMessagePort::mark):
Now checks if the entangled port is local (run by same thread) and if so mark()s it.
* dom/MessagePort.cpp:
(WebCore::MessagePort::postMessage):
(WebCore::MessagePort::disentangle):
Removes cloned ports from the ScriptExecutionContext - this allows cloned ports to be GC'd as otherwise they look like remotely entangled ports.
(WebCore::MessagePort::start):
(WebCore::MessagePort::locallyEntangledPort):
Added API for fetching the entangled port if it is run by the same thread
* dom/MessagePort.h:
* dom/MessagePortProxyWrapper.h:
* dom/default/MessagePortProxy.cpp:
(WebCore::MessagePortProxyWrapper::locallyEntangledPort):
Added API for fetching the entangled port if it is run by the same thread
(WebCore::MessagePortProxy::hasPendingActivity):
Changed definition of hasPendingActivity() to be stricter - only returns true if there are pending messages.
(WebCore::MessagePortProxy::locallyEntangledPort):
* dom/default/MessagePortProxy.h:
2009-06-21 Drew Wilson <atwilson@google.com>
Reviewed by David Levin.
<https://bugs.webkit.org/show_bug.cgi?id=25043>
Removed obsolete MessagePort.startConversation(), active and onclose APIs.
Refactored MessagePortProxy into MessagePortChannel and a platform-dependent PlatformMessagePortChannel
implementation. Modified APIs to simplify cross-process implementations by moving the messaging code
entirely into the platform-dependent proxy.
Created a thread-safe default PlatformMessagePortChannel implementation.
Changed DOMWindow messaging to create the MessageEvent in the target ScriptExecutionContext to match how
cross-thread MessagePorts work.
* GNUMakefile.am:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
Added MessagePortChannel/PlatformMessagePortChannel files.
* bindings/js/JSMessagePortCustom.cpp:
(WebCore::JSMessagePort::mark):
Changed ports to not mark their entangled pair as reachable, per the spec.
* bindings/v8/custom/V8MessagePortCustom.cpp:
* dom/MessageChannel.cpp:
(WebCore::MessageChannel::MessageChannel):
Updated to use PlatformMessagePortChannel::createChannel() to entangle the ports.
* dom/MessagePort.cpp:
(WebCore::MessagePort::MessagePort):
(WebCore::MessagePort::~MessagePort):
(WebCore::MessagePort::postMessage):
(WebCore::MessagePort::disentangle):
(WebCore::MessagePort::messageAvailable):
(WebCore::MessagePort::start):
(WebCore::MessagePort::close):
(WebCore::MessagePort::entangle):
(WebCore::MessagePort::contextDestroyed):
(WebCore::MessagePort::dispatchMessages):
(WebCore::MessagePort::setOnmessage):
(WebCore::MessagePort::hasPendingActivity):
Changed these APIs to delegate to new PlatformMessagePortChannel APIs.
* dom/MessagePort.h:
Renamed isQueueOpen() to started().
* dom/MessagePort.idl:
Removed startConversation and onclose.
* dom/MessagePortProxy.h: Removed.
* dom/MessagePortChannel.cpp: Added.
(WebCore::MessagePortChannel::EventData::create):
(WebCore::MessagePortChannel::EventData::EventData):
(WebCore::MessagePortChannel::~MessagePortChannel):
* dom/MessagePortChannel.h: Added.
(WebCore::MessagePortChannel::EventData::message):
(WebCore::MessagePortChannel::EventData::channel):
Changed EventData to hold a reference to a MessagePortChannel object instead of a MessagePort to enable cross-thread messaging.
(WebCore::MessagePortChannel::MessagePortChannel):
(WebCore::MessagePortChannel::create):
* dom/ScriptExecutionContext.cpp:
(WebCore:ScriptExecutionContext::dispatchMessagePortEvents):
Renamed isQueueOpen() to started().
* dom/default/PlatformMessagePortChannel.cpp: Added.
(WebCore::MessagePortChannel::entangleIfOpen):
(WebCore::MessagePortChannel::disentangle):
(WebCore::MessagePortChannel::postMessageToRemote):
(WebCore::MessagePortChannel::tryGetMessageFromRemote):
(WebCore::MessagePortChannel::close):
(WebCore::MessagePortChannel::isConnectedTo):
(WebCore::MessagePortChannel::hasPendingActivity):
(WebCore::PlatformMessagePortChannel::PlatformMessagePortChannel):
(WebCore::PlatformMessagePortChannel::~PlatformMessagePortChannel):
(WebCore::PlatformMessagePortChannel::createChannel):
(WebCore::PlatformMessagePortChannel::entangleIfOpen):
(WebCore::PlatformMessagePortChannel::disentangle):
(WebCore::PlatformMessagePortChannel::setRemotePort):
(WebCore::PlatformMessagePortChannel::remotePort):
(WebCore::PlatformMessagePortChannel::entangledChannel):
(WebCore::PlatformMessagePortChannel::setEntangledChannel):
(WebCore::PlatformMessagePortChannel::postMessageToRemote):
(WebCore::PlatformMessagePortChannel::tryGetMessageFromRemote):
(WebCore::PlatformMessagePortChannel::isConnectedTo):
(WebCore::PlatformMessagePortChannel::close):
(WebCore::PlatformMessagePortChannel::closeInternal):
(WebCore::PlatformMessagePortChannel::hasPendingActivity):
* dom/default/PlatformMessagePortChannel.h: Added.
(WebCore::PlatformMessagePortChannel::MessagePortQueue::create):
(WebCore::PlatformMessagePortChannel::MessagePortQueue::tryGetMessage):
(WebCore::PlatformMessagePortChannel::MessagePortQueue::appendAndCheckEmpty):
(WebCore::PlatformMessagePortChannel::MessagePortQueue::isEmpty):
(WebCore::PlatformMessagePortChannel::MessagePortQueue::MessagePortQueue):
* page/DOMWindow.cpp:
(WebCore::PostMessageTimer::PostMessageTimer):
Changed DOMWindow messaging to create the MessageEvent in the target ScriptExecutionContext to match how cross-thread MessagePorts work.
(WebCore::PostMessageTimer::event):
(WebCore::DOMWindow::postMessage):
(WebCore::DOMWindow::postMessageTimerFired):
2009-06-21 Dan Bernstein <mitz@apple.com>
Reviewed by Sam Weinig.
- fix https://bugs.webkit.org/show_bug.cgi?id=15383
<rdar://problem/5682745> resize: vertical does not restrict to vertical
resize
Test: fast/css/resize-single-axis.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::resize): Ignore movement along the non-resizing
axis.
2009-06-21 Sam Weinig <sam@webkit.org>
Reviewed by Eric Seidel
Fix for https://bugs.webkit.org/show_bug.cgi?id=26578
event.currentTarget for listener registered on window should point to the window object like in Firefox
Test: fast/events/event-trace.html
* dom/Node.cpp:
(WebCore::Node::dispatchGenericEvent): Make the DOMWindow the currentTarget when events are dispatched
to it. We previously used the document because DOMWindow was not yet an EventTarget.
2009-06-21 Dan Bernstein <mitz@apple.com>
Reviewed by Sam Weinig.
- fix https://bugs.webkit.org/show_bug.cgi?id=9694
resize value not compared
Test: fast/css/resize-value-compared.html
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::operator==): Compare the resize
member.
2009-06-19 Alice Liu <alice.liu@apple.com>
Fix https://bugs.webkit.org/show_bug.cgi?id=26568
Repro crash animating GIF if previously used in a closed window's back/forward list
Also filed as <rdar://problem/6978362>
Reviewed by Maciej Stachowiak.
Can't test this bug with an automated layout test since it requires b/f caching
* manual-tests/animated-gif-bfcache-crash.html: Added.
* manual-tests/resources/containsAnimatedGif.html: Added.
Adding checks for hostWindow() since there is no guarantee that the Page is alive
* platform/ScrollView.cpp:
(WebCore::ScrollView::scrollRectIntoViewRecursively):
(WebCore::ScrollView::contentsToScreen):
(WebCore::ScrollView::screenToContents):
(WebCore::ScrollView::wheelEvent):
2009-06-20 Sam Weinig <sam@webkit.org>
Reviewed by Adam Barth.
Fix for https://bugs.webkit.org/show_bug.cgi?id=26554
Shadowing of top and parent
* page/DOMWindow.idl:
2009-06-20 Mark Rowe <mrowe@apple.com>
Reviewed by Dan Bernstein.
Fix <https://bugs.webkit.org/show_bug.cgi?id=15106>.
Bug 15106: REGRESSION: Can't drag text as element when user-select is set to none
We allow selections to begin within an element that has -webkit-user-select: none set,
unless the element is draggable as dragging should take priority over starting a selection.
Test: editing/selection/user-drag-element-and-user-select-none.html
* dom/Node.cpp:
(WebCore::Node::canStartSelection):
2009-06-20 Darin Adler <darin@apple.com>
Reviewed by Dan Bernstein.
Bug 26528: REGRESSION (r44674): Assertion in TextIterator::pushFullyClippedState while counting matches for "a" on apple.com
https://bugs.webkit.org/show_bug.cgi?id=26528
rdar://problem/6985329
* editing/TextIterator.cpp:
(WebCore::TextIterator::handleReplacedElement): When entering a text control,
start at the top of the shadow tree (by calling shadowTreeRootNode). Also
remove assumption that innerTextElement will never be 0 since RenderTextControl
doesn't really guarantee this.
2009-06-20 Jan Michael Alonzo <jmalonzo@webkit.org>
Reviewed by NOBODY.
Speculative Qt build fix - add HTMLDataGridColElement to the build script.
* WebCore.pro:
2009-06-19 Adam Barth <abarth@webkit.org>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=26561
Remove a memcpy by retrieving the already existing copy of a string
instead of making a new one.
* bindings/js/ScriptSourceCode.h:
(WebCore::ScriptSourceCode::ScriptSourceCode):
(WebCore::ScriptSourceCode::source):
* bindings/js/StringSourceProvider.h:
(WebCore::StringSourceProvider::source):
2009-06-19 Brian Weinstein <bweinstein@apple.com>
Reviewed by Steve Falkenburg.
https://bugs.webkit.org/show_bug.cgi?id=26488
No Support for Single Finger or Two Finger Panning in Windows 7
The code in WebCore allows us to interpret a Pan gesture as
a mousewheel event, and we are able to reuse the scrolling code.
Another constructor was created in WheelEventWin which takes data
better suited to the pan guesture than what was currently there.
Unable to add tests to simulate touch behavior/gestures.
* platform/PlatformWheelEvent.h:
* platform/win/WheelEventWin.cpp:
2009-06-19 Chris Marrin <cmarrin@apple.com>
Fixed a build error, which only shows up in the i386 compile
* platform/graphics/mac/GraphicsLayerCA.mm:
(WebCore::GraphicsLayerCA::animateTransform):
2009-06-19 Simon Fraser <simon.fraser@apple.com>
Reviewed by Oliver Hunt.
<rdar://problem/6988385> REGRESSION: In full page video player, movie's
video track becomes detached from its controller.
When in the media document, the MediaPlayer should not report that it
is capable of hardware acceleration, because it renders via a QTMovieView
which is already accelerated.
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::supportsAcceleratedRendering):
2009-06-19 Kevin Ollivier <kevino@theolliviers.com>
Adding XSSAuditor.cpp to the wx build.
* WebCoreSources.bkl:
2009-06-19 Chris Marrin <cmarrin@apple.com>
Reviewed by Simon Fraser <simon.fraser@apple.com>.
https://bugs.webkit.org/show_bug.cgi?id=26544
If I am doing a Matrix hardware animation and any matrix is singular, I revert to software.
This is not really testable, since we can't see what the hardware animation is doing.
* platform/graphics/mac/GraphicsLayerCA.mm:
(WebCore::GraphicsLayerCA::animateTransform):
2009-06-19 Geoffrey Garen <ggaren@apple.com>
Reviewed by Maciej Stachowiak.
An additional fix for Bug 26532: Native functions do not correctly unlink
from optimised callsites when they're collected
<https://bugs.webkit.org/show_bug.cgi?id=26532> | <rdar://problem/6625385>
Use "NativeFunctionWrapper" instead of "PrototypeFunction" in cross-frame
accessors, so the type of object you get to wrap a function is the same,
regardless of whether the access to the function is cross-frame.
This is faster and more idiomatic than what we had before. It also would
have avoided Bug 26532 because it would have prevented a conflicting
PrototypeFunction from being allocated to wrap postMessage, where a
NativeFunctionWrapper had been allocated previously.
* bindings/js/JSDOMBinding.cpp:
(WebCore::objectToStringFunctionGetter):
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::nonCachingStaticFunctionGetter):
* bindings/js/JSHistoryCustom.cpp:
(WebCore::nonCachingStaticBackFunctionGetter):
(WebCore::nonCachingStaticForwardFunctionGetter):
(WebCore::nonCachingStaticGoFunctionGetter):
* bindings/js/JSLocationCustom.cpp:
(WebCore::nonCachingStaticReplaceFunctionGetter):
(WebCore::nonCachingStaticReloadFunctionGetter):
(WebCore::nonCachingStaticAssignFunctionGetter):
2009-06-19 Simon Fraser <simon.fraser@apple.com>
Reviewed by John Sullivan
<rdar://problem/6953673> Crash in RenderLayerCompositor::setCompositingParent
Fix a crash that could occur in complex content due to timing issues
when doing a partial layer tree rebuild which is required when painting;
setCompositingParent() could be called with a parent which has not been made
compositing yet.
2009-06-19 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
Build fix. Adding missing HTMLDataGrid* files to the build.
* GNUmakefile.am:
2009-06-19 Peter Kasting <pkasting@google.com>
Reviewed by Eric Seidel.
https://bugs.webkit.org/show_bug.cgi?id=26460 part three
Make BMPImageReader a standalone class that is used by ICOImageDecoder
and BMPImageDecoder to decode individual BMPs within a file. These
decoders now inherit directly from ImageDecoder.
This also makes these decoders decode on-demand in isSizeAvailable() and
frameBufferAtIndex(), like the other decoders, instead of when setData()
is called, like before. This should provide a speedup on pages
containing BMPs that aren't immediately onscreen.
* platform/image-decoders/bmp/BMPImageDecoder.cpp:
(WebCore::BMPImageDecoder::BMPImageDecoder):
(WebCore::BMPImageDecoder::setData):
(WebCore::BMPImageDecoder::isSizeAvailable):
(WebCore::BMPImageDecoder::frameBufferAtIndex):
(WebCore::BMPImageDecoder::decodeWithCheckForDataEnded):
(WebCore::BMPImageDecoder::decode):
(WebCore::BMPImageDecoder::processFileHeader):
* platform/image-decoders/bmp/BMPImageDecoder.h:
(WebCore::BMPImageDecoder::readUint32):
* platform/image-decoders/bmp/BMPImageReader.cpp:
(WebCore::BMPImageReader::BMPImageReader):
(WebCore::BMPImageReader::decodeBMP):
(WebCore::BMPImageReader::readInfoHeaderSize):
(WebCore::BMPImageReader::processInfoHeader):
(WebCore::BMPImageReader::readInfoHeader):
(WebCore::BMPImageReader::processBitmasks):
(WebCore::BMPImageReader::processColorTable):
(WebCore::BMPImageReader::processRLEData):
(WebCore::BMPImageReader::processNonRLEData):
(WebCore::BMPImageReader::setFailed):
* platform/image-decoders/bmp/BMPImageReader.h:
(WebCore::BMPImageReader::readUint16):
(WebCore::BMPImageReader::readUint32):
(WebCore::BMPImageReader::setBuffer):
(WebCore::BMPImageReader::setData):
(WebCore::BMPImageReader::):
(WebCore::BMPImageReader::pastEndOfImage):
(WebCore::BMPImageReader::readCurrentPixel):
(WebCore::BMPImageReader::setRGBA):
* platform/image-decoders/ico/ICOImageDecoder.cpp:
(WebCore::ICOImageDecoder::ICOImageDecoder):
(WebCore::ICOImageDecoder::setData):
(WebCore::ICOImageDecoder::isSizeAvailable):
(WebCore::ICOImageDecoder::size):
(WebCore::ICOImageDecoder::frameBufferAtIndex):
(WebCore::ICOImageDecoder::decodeWithCheckForDataEnded):
(WebCore::ICOImageDecoder::decode):
(WebCore::ICOImageDecoder::processDirectory):
(WebCore::ICOImageDecoder::processDirectoryEntries):
(WebCore::ICOImageDecoder::readDirectoryEntry):
(WebCore::ICOImageDecoder::processImageType):
* platform/image-decoders/ico/ICOImageDecoder.h:
(WebCore::ICOImageDecoder::readUint16):
(WebCore::ICOImageDecoder::readUint32):
2009-06-19 Adam Barth <abarth@webkit.org>
Reviewed by Dimitri Glazkov.
https://bugs.webkit.org/show_bug.cgi?id=26555
Fix the Chromium canary bot. Turns out ScriptSourceCode doesn't have
the same API in V8 and JSC.
* WebCore/bindings/js/ScriptController.cpp:
* WebCore/bindings/js/ScriptSourceCode.h:
* WebCore/bindings/v8/ScriptController.cpp:
* WebCore/page/XSSAuditor.cpp:
* WebCore/page/XSSAuditor.h:
2009-06-19 David Hyatt <hyatt@apple.com>
Reviewed by Anders Carlsson.
https://bugs.webkit.org/show_bug.cgi?id=26547
Implement the IDL interface for HTMLDataGridColElement.
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* html/HTMLAttributeNames.in:
* html/HTMLDataGridColElement.cpp: Added.
(WebCore::HTMLDataGridColElement::HTMLDataGridColElement):
(WebCore::HTMLDataGridColElement::label):
(WebCore::HTMLDataGridColElement::setLabel):
(WebCore::HTMLDataGridColElement::type):
(WebCore::HTMLDataGridColElement::setType):
(WebCore::HTMLDataGridColElement::sortable):
(WebCore::HTMLDataGridColElement::setSortable):
(WebCore::HTMLDataGridColElement::sortDirection):
(WebCore::HTMLDataGridColElement::setSortDirection):
(WebCore::HTMLDataGridColElement::selected):
(WebCore::HTMLDataGridColElement::setSelected):
* html/HTMLDataGridColElement.h: Added.
(WebCore::HTMLDataGridColElement::endTagRequirement):
(WebCore::HTMLDataGridColElement::tagPriority):
* html/HTMLDataGridColElement.idl: Added.
* html/HTMLDataGridElement.h:
* html/HTMLElementsAllInOne.cpp:
* html/HTMLTagNames.in:
* page/DOMWindow.idl:
2009-06-19 Chris Evans <scarybeasts@gmail.com>
Reviewed by Eric Seidel.
There is no new test because this cannot be tested deterministically.
I've not been able to cause a crash at all in the test framework, but
I have verified that this is happening in the wild and that the patch
fixes the likely cause in the debugger.
* loader/TextResourceDecoder.cpp: careful not to iterate off the end
of our input buffer looking for the end of the comment.
2009-06-19 Adam Barth <abarth@webkit.org>
Reviewed by Dimitri Glazkov.
https://bugs.webkit.org/show_bug.cgi?id=26536
Fix external-script-URL-location.html and
write-external-script-open.html LayoutTests.
implicitOpen is called from several places. We need to setXSSAuditor
each time, so I moved the call inside implicitOpen.
* dom/Document.cpp:
(WebCore::Document::open):
(WebCore::Document::implicitOpen):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::begin):
2009-06-19 Kent Tamura <tkent@chromium.org>
Reviewed by David Levin.
Use WebCore::multipleFileUploadText() in Chromium to fix a problem
that Chromium shows only the first filename even if a user selects
multiple files for <input type=file multiple>.
<https://bugs.webkit.org/show_bug.cgi?id=26502>
* platform/chromium/FileChooserChromium.cpp:
(WebCore::FileChooser::basenameForWidth):
2009-06-19 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt.
- fix <rdar://problem/6967596> Safari hung using 100% CPU when I tried
to look up a word in Dictionary using command-control-d
Test: editing/selection/move-by-line-005.html
The root cause of this bug was searchAheadForBetterMatch() continuing
past the first rendered text object after the given object. While we
want to skip non-rendered text and empty containers, when we encounter
rendered text object, we must return a text box for that object.
* dom/Position.cpp:
(WebCore::searchAheadForBetterMatch):
2009-06-19 Jungshik Shin <jshin@chromium.org>
Reviewed by David Levin
https://bugs.webkit.org/show_bug.cgi?id=25657
Chromium Linux port does not handle non-BMP characters properly.
It's fixed with a 'UTF-16 iterator macro' to extract Unicode
codepoints out of a UTF-16 input string.
A manual test is added for non-BMP character rendering,
which we can use until a small freely-distributable font
covering non-BMP is added to the Webkit source tree.
* platform/graphics/chromium/FontCacheLinux.cpp:
(WebCore::FontCache::getFontDataForCharacters):
* manual-tests/non-bmp.html: Added.
2009-06-19 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Dimitri Glazkov.
V8 Bindings: return proper state from the script stack.
https://bugs.webkit.org/show_bug.cgi?id=26512
* bindings/v8/ScriptCallStack.cpp:
(WebCore::ScriptCallStack::ScriptCallStack):
* bindings/v8/ScriptCallStack.h:
(WebCore::ScriptCallStack::state):
2009-06-19 Jessie Berlin <jberlin@apple.com>
Reviewed by Simon Fraser.
Windows build fix.
* platform/graphics/cg/PatternCG.cpp:
(WebCore::Pattern::createPlatformPattern):
2009-06-19 Yael Aharon <yael.aharon@nokia.com>
Reviewed by Simon Hausmann.
Build fix after 44825.
* platform/graphics/qt/ImageDecoderQt.cpp:
(WebCore::ImageDecoderQt::isSizeAvailable):
* platform/graphics/qt/ImageDecoderQt.h:
2009-06-18 Shinichiro Hamaji <hamaji@chromium.org>
Reviewed by Oliver Hunt.
Bug 26426: Canvas: rotation of 'no-repeat' pattern is weird
<https://bugs.webkit.org/show_bug.cgi?id=26426>
Use 1<<23-1 as steps of no-repeat patterns instead of 100000000.0f.
The original number cannot be represented by mantissa of float
(23bit) so that it caused some error.
Test: fast/canvas/image-object-in-canvas.html:
* platform/graphics/cg/PatternCG.cpp:
(WebCore::Pattern::createPlatformPattern):
2009-06-19 Adam Barth <abarth@webkit.org>
Unreviewed attempt to fix the Chromium build.
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::ScriptController):
(WebCore::ScriptController::evaluate):
* bindings/v8/ScriptController.h:
(WebCore::ScriptController::xssAuditor):
* bindings/v8/ScriptEventListener.cpp:
(WebCore::createAttributeEventListener):
2009-06-18 Adam Barth <abarth@webkit.org>
Reviewed by Sam Weinig.
https://bugs.webkit.org/show_bug.cgi?id=26199
Added an experimental reflective XSS filter. The filter is disabled by
default.
Test: http/tests/security/xssAuditor/script-tag.html
* GNUmakefile.am:
* WebCore.base.exp:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::ScriptController):
(WebCore::ScriptController::evaluate):
* bindings/js/ScriptController.h:
(WebCore::ScriptController::xssAuditor):
* bindings/js/ScriptEventListener.cpp:
(WebCore::createAttributeEventListener):
* dom/Tokenizer.h:
(WebCore::Tokenizer::xssAuditor):
(WebCore::Tokenizer::setXSSAuditor):
(WebCore::Tokenizer::Tokenizer):
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::scriptHandler):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::begin):
(WebCore::FrameLoader::requestObject):
* page/Settings.cpp:
(WebCore::Settings::Settings):
(WebCore::Settings::setXSSAuditorEnabled):
* page/Settings.h:
(WebCore::Settings::xssAuditorEnabled):
* page/XSSAuditor.cpp: Added.
(WebCore::isControlCharacter):
(WebCore::XSSAuditor::XSSAuditor):
(WebCore::XSSAuditor::~XSSAuditor):
(WebCore::XSSAuditor::canEvaluate):
(WebCore::XSSAuditor::canCreateInlineEventListener):
(WebCore::XSSAuditor::canLoadExternalScriptFromSrc):
(WebCore::XSSAuditor::canLoadObject):
(WebCore::XSSAuditor::decodeURL):
(WebCore::XSSAuditor::findInRequest):
* page/XSSAuditor.h: Added.
(WebCore::XSSAuditor::isEnabled):
(WebCore::XSSAuditor::setXSSAuditorEnabled):
2009-06-18 Dirk Schulze <krit@webkit.org>
Reviewed by Oliver Hunt.
feOffset and objectBoundingBox
[https://bugs.webkit.org/show_bug.cgi?id=26441]
If we use objectBoundingBox for primitiveUnits, the fractions given
to dx or dy of feOffset must be multiplied with the referenced objects
objectBoundingBox size.
Test: svg/filters/feOffset.svg
* svg/graphics/filters/SVGFEOffset.cpp:
(WebCore::FEOffset::apply):
2009-06-18 Dirk Schulze <krit@webkit.org>
Reviewed by Oliver Hunt.
feTile implementation missing
[https://bugs.webkit.org/show_bug.cgi?id=26419]
Implementation of feTile, a pattern effect for SVG filters. It was
necessary to modify FilterEffect since source inputs need a secial
logic and we have to identify if an effect is a source input.
Tests: svg/batik/filters/feTile.svg
svg/filters/feTile.svg
* platform/graphics/filters/FilterEffect.h:
(WebCore::FilterEffect::isSourceInput):
* platform/graphics/filters/SourceAlpha.h:
(WebCore::SourceAlpha::isSourceInput):
* platform/graphics/filters/SourceGraphic.h:
(WebCore::SourceGraphic::isSourceInput):
* svg/graphics/filters/SVGFETile.cpp:
(WebCore::FETile::apply):
2009-06-18 Dirk Schulze <krit@webkit.org>
Reviewed by Oliver Hunt.
feMerge implementation
[https://bugs.webkit.org/show_bug.cgi?id=26480]
Added feMerge to the SVG Filter system.
Test: svg/filters/feMerge.svg
* svg/graphics/filters/SVGFEMerge.cpp:
(WebCore::FEMerge::uniteChildEffectSubregions):
(WebCore::FEMerge::apply):
* svg/graphics/filters/SVGFEMerge.h:
2009-06-18 Mark Rowe <mrowe@apple.com>
Speculative Windows build fix.
* page/win/FrameCGWin.cpp: Add missing #include.
2009-06-17 Brent Fulgham <bfulgham@webkit.org>
Reviewed by Dave Levin.
https://bugs.webkit.org/show_bug.cgi?id=26425
Final refactorings, picking up a few places where BitmapInfo
could be used.
* page/win/FrameCGWin.cpp:
(WebCore::imageFromRect):
* platform/win/CursorWin.cpp:
(WebCore::Cursor::Cursor):
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenu::paint):
2009-06-18 Chris Fleizach <cfleizach@apple.com>
Reviewed by Darin Adler.
Bug 26522: In DOM mode, VoiceOver reads some mouseover text on web sites strangely
https://bugs.webkit.org/show_bug.cgi?id=26522
Test: accessibility/non-data-table-cell-title-ui-element.html
* accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::titleUIElement):
2009-06-18 Kevin Ollivier <kevino@theolliviers.com>
wx build fix after recent RenderTheme changes.
* platform/wx/RenderThemeWx.cpp:
(WebCore::RenderThemeWx::~RenderThemeWx):
(WebCore::RenderTheme::themeForPage):
2009-06-18 Peter Kasting <pkasting@google.com>
Reviewed by Eric Seidel.
https://bugs.webkit.org/show_bug.cgi?id=26460 part two
Attempt to minimize diff of following functional change by first landing
non-functional change to:
* Make readUintX() public and static (since they will need to be once
BMPImageReader is included in *ImageDecoder via composition rather
than inheritance). Add wrappers in each class so callers can be
simpler. In the next patch, these wrappers will be beefed up slightly
and the callers will get even simpler.
* Change direct setting of m_failed to use setFailed(), since in the
next patch much of this code won't even have direct access to m_failed
* Add a helper function in ICOImageDecoder to determine the image type
instead of simply doing it inline
* Rewrap lines that used to be <=80 cols and slipped over it during the
original landing of these decoders
* Other misc. changes, e.g. adding constructor definitions, reordering
functions, changing RGBA32Buffer& to RGBA32Buffer*, etc. that have no
functional effect but minimize the subsequent diff for readability
* platform/image-decoders/bmp/BMPImageDecoder.cpp:
(WebCore::BMPImageDecoder::BMPImageDecoder):
(WebCore::BMPImageDecoder::processFileHeader):
* platform/image-decoders/bmp/BMPImageDecoder.h:
(WebCore::BMPImageDecoder::readUint32):
* platform/image-decoders/bmp/BMPImageReader.cpp:
(WebCore::BMPImageReader::decodeBMP):
(WebCore::BMPImageReader::getInfoHeaderSize):
(WebCore::BMPImageReader::processInfoHeader):
(WebCore::BMPImageReader::readInfoHeader):
(WebCore::BMPImageReader::processBitmasks):
(WebCore::BMPImageReader::processColorTable):
(WebCore::BMPImageReader::processRLEData):
(WebCore::BMPImageReader::processNonRLEData):
* platform/image-decoders/bmp/BMPImageReader.h:
(WebCore::BMPImageReader::readUint16Helper):
(WebCore::BMPImageReader::readUint32Helper):
(WebCore::BMPImageReader::):
(WebCore::BMPImageReader::readUint16):
(WebCore::BMPImageReader::readUint32):
(WebCore::BMPImageReader::readCurrentPixel):
(WebCore::BMPImageReader::getComponent):
(WebCore::BMPImageReader::setI):
(WebCore::BMPImageReader::setRGBA):
(WebCore::BMPImageReader::fillRGBA):
* platform/image-decoders/ico/ICOImageDecoder.cpp:
(WebCore::ICOImageDecoder::ICOImageDecoder):
(WebCore::ICOImageDecoder::isSizeAvailable):
(WebCore::ICOImageDecoder::size):
(WebCore::ICOImageDecoder::decodeImage):
(WebCore::ICOImageDecoder::processDirectory):
(WebCore::ICOImageDecoder::processDirectoryEntries):
(WebCore::ICOImageDecoder::isBetterEntry):
(WebCore::ICOImageDecoder::processImageType):
* platform/image-decoders/ico/ICOImageDecoder.h:
(WebCore::ICOImageDecoder::readUint16):
(WebCore::ICOImageDecoder::readUint32):
2009-06-18 Peter Kasting <pkasting@google.com>
Fix build bustage.
* platform/image-decoders/gif/GIFImageDecoder.h:
2009-06-18 Kevin McCullough <kmccullough@apple.com>
Reviewed by Oliver Hunt.
<rdar://problem/6940880> REGRESSION: Breakpoints don't break in 64-bit
Convert intptr_t to Strings so that we don't loose bits in the
conversion to JS. Previously they were being put into 32bit ints.
* inspector/InspectorController.cpp: Convert the String back to an
intptr_t.
(WebCore::InspectorController::addBreakpoint):
(WebCore::InspectorController::removeBreakpoint):
* inspector/InspectorController.h:
* inspector/InspectorController.idl: Use strings in JS to avoid 32bit
truncation.
* inspector/InspectorFrontend.cpp: Make the intptr_t into a String.
(WebCore::InspectorFrontend::parsedScriptSource):
* platform/text/PlatformString.h: Implemented the necessary conversion
functions to be able to convert to and from an intptr_t.
* platform/text/String.cpp: Ditto.
(WebCore::String::toIntPtrStrict):
(WebCore::String::toIntPtr):
(WebCore::charactersToIntPtrStrict):
(WebCore::charactersToIntPtr):
* platform/text/StringImpl.cpp: Ditto.
(WebCore::StringImpl::toIntPtrStrict):
(WebCore::StringImpl::toIntPtr):
* platform/text/StringImpl.h: Ditto.
2009-06-17 Brent Fulgham <bfulgham@webkit.org>
Reviewed by Eric Seidel.
Final cleanups in this refactoring:
(1) Move WindowsBitmap implementation from CG-specific file to
the platform-common GraphicsContextWin.cpp, since it is
equally useful on both platforms.
(2) Revise the TransformationMatrix logic as suggested by
Adam Roben in his review comments to Part #2 of this
refactoring.
* platform/graphics/win/GraphicsContextCGWin.cpp:
* platform/graphics/win/GraphicsContextWin.cpp:
(WebCore::GraphicsContext::WindowsBitmap::WindowsBitmap):
(WebCore::GraphicsContext::WindowsBitmap::~WindowsBitmap):
(WebCore::GraphicsContext::createWindowsBitmap):
(WebCore::GraphicsContext::getWindowsContext):
(WebCore::GraphicsContextPlatformPrivate::scale):
(WebCore::GraphicsContextPlatformPrivate::rotate):
(WebCore::GraphicsContextPlatformPrivate::translate):
(WebCore::GraphicsContextPlatformPrivate::concatCTM):
2009-06-18 Peter Kasting <pkasting@google.com>
Reviewed by Eric Seidel.
https://bugs.webkit.org/show_bug.cgi?id=26460 part one
Make isSizeAvailable non-const, since it's not logically const (it
triggers lazy decoding), and simplify all the implementations (without
changing behavior; just make less verbose). Remove some other
inappropriate consts, which enables the removal of all the mutable
declarations in the decoders.
* platform/image-decoders/ImageDecoder.h:
(WebCore::ImageDecoder::isSizeAvailable):
(WebCore::ImageDecoder::setSize): Make public to avoid needing a friend declaration in the JPEG decoder, and because the ICO/BMP decoders will soon need this.
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::isSizeAvailable):
(WebCore::GIFImageDecoder::repetitionCount):
(WebCore::GIFImageDecoder::decode):
* platform/image-decoders/gif/GIFImageDecoder.h:
* platform/image-decoders/ico/ICOImageDecoder.cpp:
(WebCore::ICOImageDecoder::isSizeAvailable):
* platform/image-decoders/ico/ICOImageDecoder.h:
* platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
(WebCore::JPEGImageDecoder::isSizeAvailable):
(WebCore::JPEGImageDecoder::decode):
* platform/image-decoders/jpeg/JPEGImageDecoder.h:
* platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::PNGImageDecoder::isSizeAvailable):
(WebCore::PNGImageDecoder::decode):
* platform/image-decoders/png/PNGImageDecoder.h:
* platform/image-decoders/xbm/XBMImageDecoder.cpp:
(WebCore::XBMImageDecoder::isSizeAvailable):
(WebCore::XBMImageDecoder::frameBufferAtIndex):
(WebCore::XBMImageDecoder::decode):
* platform/image-decoders/xbm/XBMImageDecoder.h: Rename decodeXBM() to decode() for consistency with the JPEG/PNG decoders, and in the future the ICO/BMP decoders.
2009-06-17 Brent Fulgham <bfulgham@webkit.org>
Reviewed by Eric Seidel.
Move some common functions out of platform files and into
the common implementation.
https://bugs.webkit.org/show_bug.cgi?id=26425.
Add a new platform context method (flush) so that the
getWindowsContext method can be consolidated into the common
GraphicsContextWin.cpp file.
* platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
(WebCore::GraphicsContextPlatformPrivate::flush):
* platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
(WebCore::GraphicsContextPlatformPrivate::flush):
* platform/graphics/win/GraphicsContextCGWin.cpp: Remove
getWindowContext method.
* platform/graphics/win/GraphicsContextCairoWin.cpp: Remove
getWindowContext method and fillWithClearColor methods.
* platform/graphics/win/GraphicsContextWin.cpp:
(WebCore::fillWithClearColor): Moved from *CairoWin.cpp
(WebCore::GraphicsContext::getWindowsContext): Moved
from *CairoWin.cpp
2009-06-18 Ojan Vafai <ojan@chromium.org>
Reviewed by Oliver Hunt.
Remove code that I accidentally committed in r44811.
* editing/markup.cpp:
(WebCore::createMarkup):
2009-06-18 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
<rdar://problem/6983207> Non-layer content is not re-rendered when transition
starts sometimes (with hardware acceleration).
When deciding which RenderLayers should be composited, when a layer goes into
compositing mode we repaint the old location. However, we did that before
we'd looked at all the factors that may force a layer to composite, so missed
some cases. Fix by doing the repaint once we really know whether it's going
to composite.
Test: compositing/repaint/become-overlay-composited-layer.html
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
2009-06-18 Simon Fraser <simon.fraser@apple.com>
Fix the Leopard build where USE(ACCELERATED_COMPOSITING) is not defined, and
the Tiger build where QTMovieLayer does not exist.
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::createQTMovieLayer):
(WebCore::MediaPlayerPrivate::destroyQTMovieLayer):
(WebCore::MediaPlayerPrivate::currentRenderingMode):
(WebCore::MediaPlayerPrivate::setUpVideoRendering):
(WebCore::MediaPlayerPrivate::tearDownVideoRendering):
(WebCore::MediaPlayerPrivate::hasSetUpVideoRendering):
2009-06-18 Simon Fraser <simon.fraser@apple.com>
Fix the Leopard build where USE(ACCELERATED_COMPOSITING) is not defined.
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::currentRenderingMode):
(WebCore::MediaPlayerPrivate::setUpVideoRendering):
(WebCore::MediaPlayerPrivate::tearDownVideoRendering):
2009-06-17 Erik Arvidsson <arv@chromium.org>
Reviewed by Adele Peterson.
https://bugs.webkit.org/show_bug.cgi?id=15189
Adds the HTML5 input event support for textarea.
Also, moves the oninput attribute parse handling to HTMLElement so that
it can be set on any HTML element so that bubbling events can be handled
using HTML attribute handlers.
Test: fast/forms/textarea-input-event.html
* html/HTMLElement.cpp:
(WebCore::HTMLElement::parseMappedAttribute):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseMappedAttribute):
* rendering/RenderTextControlMultiLine.cpp:
(WebCore::RenderTextControlMultiLine::subtreeHasChanged):
2009-06-18 Dirk Schulze <krit@webkit.org>
Reviewed by Oliver Hunt.
Share code between filterEffects
[https://bugs.webkit.org/show_bug.cgi?id=26479]
Share more code of filter effects. The imageBuffer creation can move to
FilterEffect ant every effect asks for the GraphicsContext. Move the
drawingRect calculation to FilterEffect.
* platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::calculateDrawingRect):
(WebCore::FilterEffect::getEffectContext):
* platform/graphics/filters/FilterEffect.h:
* platform/graphics/filters/SourceGraphic.cpp:
(WebCore::SourceGraphic::apply):
* svg/graphics/filters/SVGFEFlood.cpp:
(WebCore::FEFlood::apply):
* svg/graphics/filters/SVGFEOffset.cpp:
(WebCore::FEOffset::apply):
2009-06-18 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dave Hyatt.
https://bugs.webkit.org/show_bug.cgi?id=26499
Support hardware-accelerationed rendering of video elements.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerSawUnsupportedTracks):
(WebCore::HTMLMediaElement::mediaPlayerRepaint):
Just move these methods to group the render-related methods together.
(WebCore::HTMLMediaElement::mediaPlayerRenderingCanBeAccelerated):
Call out method to ask the RenderLayerCompositor if presentation of this video
can be acclerated. It might say no, if, for example, the video has a reflection.
(WebCore::HTMLMediaElement::mediaPlayerGraphicsLayer):
Fetch the GraphicsLayer from the RenderVideo that will host the movie layer.
* html/HTMLMediaElement.h:
Reordered the rendering-related methods, and added two methods related to video
acceleration.
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::acceleratedRenderingStateChanged):
Called by the rendering system when it determines that the video must go into, or
fall off of the hardware-accelerated path.
(WebCore::MediaPlayer::supportsAcceleratedRendering):
Method to say whether the media engine supports accelerated rendering.
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerRepaint):
(WebCore::MediaPlayerClient::mediaPlayerSizeChanged):
Moved.
(WebCore::MediaPlayerClient::mediaPlayerRenderingCanBeAccelerated):
(WebCore::MediaPlayerClient::mediaPlayerGraphicsLayer):
New methods to ask the client if the rendering system can support accelerated
rendering, and to get a GraphicsLayer to plug the movie layer into.
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::supportsAcceleratedRendering):
(WebCore::MediaPlayerPrivateInterface::acceleratedRenderingStateChanged):
Forwarding methods from MediaPlayer.
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
Some new methods related to using a QTMovieLayer, and to simplify the rendering mode logic.
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::createQTMovieLayer):
(WebCore::MediaPlayerPrivate::destroyQTMovieLayer):
Methods to create and destroy the QTMovieLayer.
(WebCore::MediaPlayerPrivate::currentRenderingMode):
(WebCore::MediaPlayerPrivate::preferredRenderingMode):
Methods to clarify the code that decides which of the 3 rendering modes to use.
(WebCore::MediaPlayerPrivate::setUpVideoRendering):
Changed to use the new rendering mode methods.
(WebCore::MediaPlayerPrivate::tearDownVideoRendering):
Destroy the layer if we have one.
(WebCore::MediaPlayerPrivate::hasSetUpVideoRendering):
Small utility method.
(WebCore::MediaPlayerPrivate::updateStates):
Move the call to setUpVideoRendering() to before we send out the state notifications,
so that we will have created the rendering objects already.
(WebCore::MediaPlayerPrivate::supportsAcceleratedRendering):
Return true if we have QTMovieLayer.
(WebCore::MediaPlayerPrivate::acceleratedRenderingStateChanged):
We've been told that we went into or out of accelerated mode; maybe reset
the renderer, and set the layer if we have to.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::rendererContentChanged):
We may need to udpate compositing layers if the video went into accelerated mode.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::canUseDirectCompositing):
Add smarts to deal with video, which allows us to avoid extra backing store.
(WebCore::RenderLayerBacking::contentsBox):
Use the videoBox to use the content layer for video layers.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateLayerCompositingState):
Poke the RenderVideo if the state changed.
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
Handle an edge case when the video element itself is a stacking context
because of opacity or transform.
(WebCore::RenderLayerCompositor::canAccelerateVideoRendering):
(WebCore::RenderLayerCompositor::requiresCompositingLayer):
(WebCore::RenderLayerCompositor::requiresCompositingForVideo):
Allow video to throw us into compositing mode if the media engine supports it.
* rendering/RenderLayerCompositor.h:
New methods related to video.
* rendering/RenderVideo.h:
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::updatePlayer):
Call rendererContentChanged() to give the compositor a change to throw the video into
compositing mode.
(WebCore::RenderVideo::supportsAcceleratedRendering):
(WebCore::RenderVideo::acceleratedRenderingStateChanged):
(WebCore::RenderVideo::videoGraphicsLayer):
Methods to allow the MediaPlayer to do rendering-related stuff via the media element.
2009-06-18 Rob Buis <rwlbuis@gmail.com>
Reviewed by Niko.
https://bugs.webkit.org/show_bug.cgi?id=26385
Root SVG element is not checked on requiredFeatures, requiredExtension like other elements
Also do the isValid check for outer <svg>.
Test: svg/custom/outer-svg-unknown-feature.svg
* svg/SVGDocument.cpp:
(WebCore::SVGDocument::childShouldCreateRenderer):
* svg/SVGDocument.h:
2009-06-18 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
- fix <rdar://problem/6913221> REGRESSION (Safari 3-4): Search field on
apple.com cuts entered text
Test: fast/forms/search-vertical-alignment.html
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::layout): Vertically center the
the search field's inner block.
2009-06-18 Janne Koskinen <janne.p.koskinen@digia.com>
Reviewed by Simon Hausmann.
Fix compilation with Symbian WINSCW compiler, which produced
multiple definitions of the CSSPrimitiveValue conversion operators.
It turns out that they are defined inline but not declared inline.
Adding the inline keyword to the declaration fixes the build.
* css/CSSPrimitiveValue.h:
2009-06-18 Markus Goetz <Markus.Goetz@nokia.com>
Reviewed by Simon Hausman.
Clarify in docs how to compile with debug information.
* WebCore.pro:
2009-06-18 Jakub Wieczorek <faw217@gmail.com>
Reviewed by Simon Hausmann.
[Qt] When writing an URL to the clipboard, save the corresponding title
in the mime data as well.
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::writeURL):
2009-06-18 Jakub Wieczorek <faw217@gmail.com>
[Qt] Fix build. Add HTMLDataGridElement.
* WebCore.pro:
2009-06-18 Jan Michael Alonzo <jmalonzo@webkit.org>
Gtk build fix.
Add HTMLDataGridElement header and IDL to the build script.
* GNUmakefile.am:
2009-06-18 Chris Evans <scarybeasts@gmail.com>
Reviewed by Adam Barth.
Fix 8-digit long hex entities. Fixes bug 26454
https://bugs.webkit.org/show_bug.cgi?id=26454
Test: fast/parser/eightdigithexentity.html
* html/HTMLTokenizer.cpp: fix off-by-ones.
2009-06-18 David Levin <levin@chromium.org>
Fix chromium linux build.
Fixes a mistake that happened during the complicated merge for
landing r44775, r44776, r44777.
* rendering/RenderThemeChromiumLinux.cpp:
(WebCore::RenderThemeChromiumLinux::create):
2009-06-17 Simon Fraser <simon.fraser@apple.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=26499
First step to making video rendering be hardware-accelerated:
make <video> elements get self-painting RenderLayers, and add
an isVideo() virtual method to RenderObject.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::mediaPlayerDurationChanged):
(WebCore::HTMLMediaElement::mediaPlayerSizeChanged):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::shouldBeNormalFlowOnly):
(WebCore::RenderLayer::isSelfPaintingLayer):
* rendering/RenderObject.h:
(WebCore::RenderObject::isVideo):
* rendering/RenderVideo.h:
(WebCore::RenderVideo::requiresLayer):
(WebCore::RenderVideo::isVideo):
2009-06-17 Brent Fulgham <bfulgham@webkit.org>
Reviewed by Adam Roben.
Refactor a few common routines in the various Windows ports
and reduce some duplicated code.
(1) Create TransformationMatrix XFORM casting operator, and
switch various XFORM structure uses to utilize it.
(2) Push concatCTM call to GraphicsContextWin now that the
TransformationMatrix can directly create XFORM (rather
than converting to CGAffineTransform/cairo_matrix_t first.)
* WebCore.vcproj/WebCore.vcproj: Add new BitmapInfo structure.
* platform/graphics/transforms/TransformationMatrix.h:
* platform/graphics/win/GraphicsContextCGWin.cpp:
* platform/graphics/win/GraphicsContextCairoWin.cpp:
* platform/graphics/win/GraphicsContextWin.cpp:
(WebCore::GraphicsContextPlatformPrivate::scale):
(WebCore::GraphicsContextPlatformPrivate::rotate):
(WebCore::GraphicsContextPlatformPrivate::translate):
(WebCore::GraphicsContextPlatformPrivate::concatCTM):
* platform/graphics/win/TransformationMatrixWin.cpp: Added.
(WebCore::TransformationMatrix::operator XFORM): New operator
2009-06-17 Brent Fulgham <bfulgham@webkit.org>
Non-CG Windows build fix after @r44758.
* rendering/RenderThemeWin.cpp:
(WebCore::RenderTheme::themeForPage):
2009-06-17 Brent Fulgham <bfulgham@webkit.org>
Reviewed by Adam Roben.
Refactor a few common routines in the various Windows ports
and reduce some duplicated code.
https://bugs.webkit.org/show_bug.cgi?id=26425.
Refactor use of BITMAPINFO for the new BitmapInfo structure.
* WebCore.vcproj/WebCore.vcproj:
* platform/win/BitmapInfo.cpp: Added.
(WebCore::bitmapInfoForSize):
(WebCore::BitmapInfo::create):
(WebCore::BitmapInfo::createBottomUp):
* platform/win/BitmapInfo.h: Added.
* platform/graphics/win/GraphicsContextCairoWin.cpp:
* platform/graphics/win/GraphicsContextCGWin.cpp:
* platform/graphics/win/TransformationMatrixWin.cpp: Added.
(WebCore::TransformationMatrix::operator XFORM): New operator
* platform/win/DragImageCGWin.cpp:
(WebCore::allocImage):
* platform/win/DragImageCairoWin.cpp:
(WebCore::allocImage):
* platform/win/PasteboardWin.cpp:
(WebCore::Pasteboard::writeImage):
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenu::paint):
2009-06-17 Adam Roben <aroben@apple.com>
Remove unnecessary 6th parameter from SOFT_LINK_OPTIONAL
Reviewed by Mark Rowe.
* platform/graphics/win/ColorSafari.cpp: Removed the 6th parameter and
an unnecessary parameter name.
* platform/win/SoftLinking.h: Removed the unused 6th parameter.
2009-06-17 Adam Roben <aroben@apple.com>
Make Settings::shouldPaintNativeControls default to true
This matches the default up in WebKit (that was changed in r43318).
Fixes Bug 26493: REGRESSION (r44758): First tab always uses Mac-style
form controls
<https://bugs.webkit.org/show_bug.cgi?id=26493>
Reviewed by Darin Adler and Dave Hyatt.
No test possible since DRT always uses Mac-style form controls.
* page/Settings.cpp: Changed the initial value of
gShouldPaintNativeControls to true.
* rendering/RenderThemeSafari.cpp:
(WebCore::RenderTheme::themeForPage): Added a FIXME about the design
flaw here involving querying Settings before it's been initialized.
2009-06-17 David Levin <levin@chromium.org>
Fix chromium windows build.
A mistake that happened during the complicated merge for
landing r44775, r44776, r44777.
* rendering/RenderThemeChromiumWin.h:
(WebCore::RenderThemeChromiumWin::RenderThemeChromiumWin):
(WebCore::RenderThemeChromiumWin::~RenderThemeChromiumWin):
2009-06-17 Eric Carlson <eric.carlson@apple.com>
Reviewed by Simon Fraser.
<rdar://problem/6981193> Crash in MediaControlInputElement::attachToParent
* rendering/MediaControlElements.cpp:
(WebCore::MediaTextDisplayElement::attachToParent): NULL check element renderer or parent renderer.
(WebCore::MediaControlInputElement::attachToParent): Ditto.
2009-06-17 David Hyatt <hyatt@apple.com>
Fix Windows build. There's no HTMLDataGridElement.cpp file yet.
* html/HTMLElementsAllInOne.cpp:
2009-06-17 David Hyatt <hyatt@apple.com>
Reviewed by Adam Roben and Anders Carlsson.
Stub out the HTMLDataGridElement.
* DerivedSources.make:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::adjustRenderStyle):
* editing/htmlediting.cpp:
(WebCore::canHaveChildrenForEditing):
* html/HTMLDataGridElement.h: Added.
(WebCore::HTMLDataGridElement::HTMLDataGridElement):
(WebCore::HTMLDataGridElement::tagPriority):
* html/HTMLDataGridElement.idl: Added.
* html/HTMLElement.cpp:
(WebCore::inlineTagList):
* html/HTMLParser.cpp:
(WebCore::HTMLParser::isAffectedByResidualStyle):
* html/HTMLTagNames.in:
2009-06-17 David Levin <levin@chromium.org>
Reviewed by NOBODY (chromium build fix).
Fix typo in previous changes.
* rendering/RenderThemeChromiumSkia.cpp:
(WebCore::RenderThemeChromiumSkia::defaultGUIFont):
2009-06-17 Albert J. Wong <ajwong@chromium.org>
Reviewed by Eric Seidel.
https://bugs.webkit.org/show_bug.cgi?id=26148
Remove common code from RenderThemeChromiumWin that is shared with
RenderThemeChromiumSkia.
Also move supportsControlTints to RenderThemeChromiumLinux since it
is linux specific.
There are no tests changed because this just removes functions with
duplicate implementations between the base and derived classes.
* rendering/RenderThemeChromiumLinux.cpp:
(WebCore::RenderThemeChromiumLinux::supportsControlTints):
* rendering/RenderThemeChromiumLinux.h:
* rendering/RenderThemeChromiumSkia.cpp:
* rendering/RenderThemeChromiumSkia.h:
* rendering/RenderThemeChromiumWin.cpp:
(WebCore::):
(WebCore::getNonClientMetrics):
(WebCore::RenderThemeChromiumWin::RenderThemeChromiumWin):
(WebCore::RenderThemeChromiumWin::~RenderThemeChromiumWin):
(WebCore::RenderThemeChromiumWin::systemFont):
(WebCore::RenderThemeChromiumWin::paintCheckbox):
(WebCore::RenderThemeChromiumWin::paintRadio):
(WebCore::RenderThemeChromiumWin::paintSliderThumb):
(WebCore::RenderThemeChromiumWin::caretBlinkIntervalInternal):
* rendering/RenderThemeChromiumWin.h:
2009-06-17 Albert J. Wong <ajwong@chromium.org>
Reviewed by Eric Seidel.
https://bugs.webkit.org/show_bug.cgi?id=26148
Move RenderThemeChromiumSkia into its own file. This is purely a code move.
* rendering/RenderThemeChromiumLinux.cpp:
* rendering/RenderThemeChromiumLinux.h:
* rendering/RenderThemeChromiumSkia.cpp:
(WebCore::):
(WebCore::setSizeIfAuto):
(WebCore::mediaElementParent):
(WebCore::RenderThemeChromiumSkia::defaultGUIFont):
(WebCore::RenderThemeChromiumSkia::RenderThemeChromiumSkia):
(WebCore::RenderThemeChromiumSkia::~RenderThemeChromiumSkia):
(WebCore::RenderThemeChromiumSkia::extraDefaultStyleSheet):
(WebCore::RenderThemeChromiumSkia::extraQuirksStyleSheet):
(WebCore::RenderThemeChromiumSkia::extraMediaControlsStyleSheet):
(WebCore::RenderThemeChromiumSkia::supportsHover):
(WebCore::RenderThemeChromiumSkia::supportsFocusRing):
(WebCore::RenderThemeChromiumSkia::platformActiveSelectionBackgroundColor):
(WebCore::RenderThemeChromiumSkia::platformInactiveSelectionBackgroundColor):
(WebCore::RenderThemeChromiumSkia::platformActiveSelectionForegroundColor):
(WebCore::RenderThemeChromiumSkia::platformInactiveSelectionForegroundColor):
(WebCore::RenderThemeChromiumSkia::platformTextSearchHighlightColor):
(WebCore::RenderThemeChromiumSkia::caretBlinkInterval):
(WebCore::RenderThemeChromiumSkia::systemFont):
(WebCore::RenderThemeChromiumSkia::minimumMenuListSize):
(WebCore::RenderThemeChromiumSkia::paintCheckbox):
(WebCore::RenderThemeChromiumSkia::setCheckboxSize):
(WebCore::RenderThemeChromiumSkia::paintRadio):
(WebCore::RenderThemeChromiumSkia::setRadioSize):
(WebCore::brightenColor):
(WebCore::paintButtonLike):
(WebCore::RenderThemeChromiumSkia::paintButton):
(WebCore::RenderThemeChromiumSkia::paintTextField):
(WebCore::RenderThemeChromiumSkia::paintTextArea):
(WebCore::RenderThemeChromiumSkia::paintSearchField):
(WebCore::RenderThemeChromiumSkia::adjustSearchFieldCancelButtonStyle):
(WebCore::RenderThemeChromiumSkia::paintSearchFieldCancelButton):
(WebCore::RenderThemeChromiumSkia::adjustSearchFieldDecorationStyle):
(WebCore::RenderThemeChromiumSkia::adjustSearchFieldResultsDecorationStyle):
(WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsDecoration):
(WebCore::RenderThemeChromiumSkia::adjustSearchFieldResultsButtonStyle):
(WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsButton):
(WebCore::RenderThemeChromiumSkia::paintMediaButtonInternal):
(WebCore::RenderThemeChromiumSkia::paintMediaPlayButton):
(WebCore::RenderThemeChromiumSkia::paintMediaMuteButton):
(WebCore::RenderThemeChromiumSkia::adjustMenuListStyle):
(WebCore::RenderThemeChromiumSkia::paintMenuList):
(WebCore::RenderThemeChromiumSkia::adjustMenuListButtonStyle):
(WebCore::RenderThemeChromiumSkia::paintMenuListButton):
(WebCore::RenderThemeChromiumSkia::popupInternalPaddingLeft):
(WebCore::RenderThemeChromiumSkia::popupInternalPaddingRight):
(WebCore::RenderThemeChromiumSkia::popupInternalPaddingTop):
(WebCore::RenderThemeChromiumSkia::popupInternalPaddingBottom):
(WebCore::RenderThemeChromiumSkia::buttonInternalPaddingLeft):
(WebCore::RenderThemeChromiumSkia::buttonInternalPaddingRight):
(WebCore::RenderThemeChromiumSkia::buttonInternalPaddingTop):
(WebCore::RenderThemeChromiumSkia::buttonInternalPaddingBottom):
(WebCore::RenderThemeChromiumSkia::caretBlinkIntervalInternal):
(WebCore::RenderThemeChromiumSkia::menuListInternalPadding):
* rendering/RenderThemeChromiumSkia.h:
(WebCore::RenderThemeChromiumSkia::supportsControlTints):
2009-06-17 Albert J. Wong <ajwong@chromium.org>
Reviewed by Eric Seidel.
https://bugs.webkit.org/show_bug.cgi?id=26148
Extract RenderThemeChromiumSkia out of RenderThemeChromiumLinux. This
is mostly a code shuffle. The non-suffle changes are:
1) Creation of a caretBlinkIntervalInternal.
2) Moving of some inline functions into the implementation files.
3) Changing of defaultGUIFont into a static class constant from a
static function. Also the type is changed to String.
4) Changing of defaultFontSize into a static class constant from a
static variable in the file scope.
5) The static supportsFocus function was collapsed into
supportsFocusRing.
6) Split the extraDefaultStyleSheet into Skia and Linux versions.
* rendering/RenderThemeChromiumLinux.cpp:
(WebCore::RenderThemeChromiumSkia::defaultGUIFont):
(WebCore::RenderThemeChromiumSkia::RenderThemeChromiumSkia):
(WebCore::RenderThemeChromiumSkia::~RenderThemeChromiumSkia):
(WebCore::RenderThemeChromiumSkia::extraDefaultStyleSheet):
(WebCore::RenderThemeChromiumSkia::extraQuirksStyleSheet):
(WebCore::RenderThemeChromiumSkia::extraMediaControlsStyleSheet):
(WebCore::RenderThemeChromiumSkia::supportsHover):
(WebCore::RenderThemeChromiumSkia::supportsFocusRing):
(WebCore::RenderThemeChromiumSkia::platformActiveSelectionBackgroundColor):
(WebCore::RenderThemeChromiumSkia::platformInactiveSelectionBackgroundColor):
(WebCore::RenderThemeChromiumSkia::platformActiveSelectionForegroundColor):
(WebCore::RenderThemeChromiumSkia::platformInactiveSelectionForegroundColor):
(WebCore::RenderThemeChromiumSkia::platformTextSearchHighlightColor):
(WebCore::RenderThemeChromiumSkia::caretBlinkInterval):
(WebCore::RenderThemeChromiumSkia::systemFont):
(WebCore::RenderThemeChromiumSkia::minimumMenuListSize):
(WebCore::RenderThemeChromiumSkia::paintCheckbox):
(WebCore::RenderThemeChromiumSkia::setCheckboxSize):
(WebCore::RenderThemeChromiumSkia::paintRadio):
(WebCore::RenderThemeChromiumSkia::setRadioSize):
(WebCore::RenderThemeChromiumSkia::paintButton):
(WebCore::RenderThemeChromiumSkia::paintTextField):
(WebCore::RenderThemeChromiumSkia::paintTextArea):
(WebCore::RenderThemeChromiumSkia::paintSearchField):
(WebCore::RenderThemeChromiumSkia::adjustSearchFieldCancelButtonStyle):
(WebCore::RenderThemeChromiumSkia::paintSearchFieldCancelButton):
(WebCore::RenderThemeChromiumSkia::adjustSearchFieldDecorationStyle):
(WebCore::RenderThemeChromiumSkia::adjustSearchFieldResultsDecorationStyle):
(WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsDecoration):
(WebCore::RenderThemeChromiumSkia::adjustSearchFieldResultsButtonStyle):
(WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsButton):
(WebCore::RenderThemeChromiumSkia::paintMediaButtonInternal):
(WebCore::RenderThemeChromiumSkia::paintMediaPlayButton):
(WebCore::RenderThemeChromiumSkia::paintMediaMuteButton):
(WebCore::RenderThemeChromiumSkia::adjustMenuListStyle):
(WebCore::RenderThemeChromiumSkia::paintMenuList):
(WebCore::RenderThemeChromiumSkia::adjustMenuListButtonStyle):
(WebCore::RenderThemeChromiumSkia::paintMenuListButton):
(WebCore::RenderThemeChromiumSkia::popupInternalPaddingLeft):
(WebCore::RenderThemeChromiumSkia::popupInternalPaddingRight):
(WebCore::RenderThemeChromiumSkia::popupInternalPaddingTop):
(WebCore::RenderThemeChromiumSkia::popupInternalPaddingBottom):
(WebCore::RenderThemeChromiumSkia::buttonInternalPaddingLeft):
(WebCore::RenderThemeChromiumSkia::buttonInternalPaddingRight):
(WebCore::RenderThemeChromiumSkia::buttonInternalPaddingTop):
(WebCore::RenderThemeChromiumSkia::buttonInternalPaddingBottom):
(WebCore::RenderThemeChromiumSkia::caretBlinkIntervalInternal):
(WebCore::RenderThemeChromiumLinux::RenderThemeChromiumLinux):
(WebCore::RenderThemeChromiumLinux::~RenderThemeChromiumLinux):
(WebCore::RenderThemeChromiumLinux::systemColor):
(WebCore::RenderThemeChromiumLinux::extraDefaultStyleSheet):
(WebCore::RenderThemeChromiumSkia::menuListInternalPadding):
* rendering/RenderThemeChromiumLinux.h:
2009-06-17 Adam Roben <aroben@apple.com>
Add a SOFT_LINK_OPTIONAL macro
This macro is useful when soft-linking functions that are present in
only some versions of a particular library (e.g., APIs added in
Windows Vista that aren't available on Windows XP).
Reviewed by Ada Chan.
* platform/graphics/win/ColorSafari.cpp:
(WebCore::focusRingColor):
Use the SoftLinking.h macros instead of doing the soft-link ourselves.
Also removed an unused call to focusRingColor.isValid().
* platform/win/SoftLinking.h: Added SOFT_LINK_OPTIONAL.
2009-06-17 Brent Fulgham <bfulgham@webkit.org>
Reviewed by Gustavo Noronha.
Fixes: https://bugs.webkit.org/show_bug.cgi?id=26470.
The use of zero-width or zero-height rectangles in generating
gradients caused Windows Cairo to crash, and webkitgtk to
produce invalid images.
We now test for NaN in the phase argument, which is calculated
using fmodf and can blow up when the width/height values passed
are zero.
Test: fast/gradients/border-image-gradient-sides-and-corners.html
* platform/graphics/cairo/ImageCairo.cpp:
(WebCore::Image::drawPattern):
2009-06-17 Ojan Vafai <ojan@chromium.org>
Reviewed by Dimitri Glazkov.
If loading a font fails because of the sandbox, we ask the browser process to
try to load it by calling ensureFontLoaded. If it still fails after
ensureFontLoaded, we hit a ASSERT_NOT_REACHED.
This case happens once in a while during browser shutdown. The browser will
queue a message to the renderer to shutdown, and will then stop answering sync
messages from the renderer. If the renderer is still loading a page during this
time, it might try to call the browser process to ask to load a font. The
browser process will ignore the request, and the font will fail to load, even
after the second try.
This is unfortunate, but there is no real risk here, since the renderer will be
going away as soon as it processes another message.
This can't be layout tested as it depends on the sandbox.
https://bugs.webkit.org/show_bug.cgi?id=26484
* platform/graphics/chromium/FontCacheChromiumWin.cpp:
(WebCore::fontContainsCharacter):
2009-06-17 Eric Carlson <eric.carlson@apple.com>
Reviewed by Dan Bernstein.
https://bugs.webkit.org/show_bug.cgi?id=26482
<rdar://problem/6978590> When setting playback rate to 0, the audio element stops
playing (doesn't resume later)
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::setRate): Always set the rate, even when "paused".
* platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
(WebCore::MediaPlayerPrivate::setRate): Ditto.
2009-06-17 Adam Roben <aroben@apple.com>
Add all the generated JS*.cpp files back to WebCore.vcproj
They are not compiled by the vcproj directly. Instead they are
compiled as part of DerivedSources.cpp. Having them listed in the
vcproj makes them be included in Project Find, etc.
Rubber-stamped in advance by Steve Falkenburg.
* WebCore.vcproj/WebCore.vcproj:
2009-06-17 Kent Tamura <tkent@chromium.org>
Reviewed by Darin Fisher.
Don't fire redundant 'change' events for a file upload form.
https://bugs.webkit.org/show_bug.cgi?id=26471
* platform/FileChooser.cpp:
(WebCore::FileChooser::chooseFiles): Suppress change event if the
existing selected files and the incoming selected files are equal.
(WebCore::FileChooser::chooseIcon): Returns 0 if there is no selected
files.
2009-06-17 Adam Treat <adam.treat@torchmobile.com>
Reviewed by George Staikos.
https://bugs.webkit.org/show_bug.cgi?id=23155
Move WIN_CE -> WINCE as previously discussed with Qt WINCE folks.
* platform/KeyboardCodes.h:
2009-06-17 George Staikos <george.staikos@torchmobile.com>
Reviewed by Adam Treat.
https://bugs.webkit.org/show_bug.cgi?id=23155
Move WIN_CE -> WINCE as previously discussed with Qt WINCE folks.
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::getWindowsContext):
* platform/win/SystemTimeWin.cpp:
(WebCore::userIdleTime):
2009-06-17 Adam Roben <aroben@apple.com>
Speculative Mac build fix
* page/Page.h: Forward-declare RenderTheme instead of including
RenderTheme.h so that we don't need to make RenderTheme.h a private
header for WebKit's benefit.
* editing/SelectionController.cpp:
* rendering/InlineTextBox.cpp:
* rendering/RenderObject.cpp:
Added #includes of RenderTheme.h.
2009-06-17 Adam Roben <aroben@apple.com>
Speculative Mac build fix
* rendering/RenderThemeMac.mm:
(WebCore::RenderTheme::create): Added.
2009-06-17 Adam Roben <aroben@apple.com>
Speculative Mac build fix
* rendering/RenderThemeMac.mm:
(WebCore::RenderTheme::themeForPage): Remove the name of an unused
parameter.
2009-06-17 Adam Roben <aroben@apple.com>
Speculative Mac build fix
* page/Page.cpp:
(WebCore::Page::Page): Change the initializer order to match the
declaration order.
2009-06-16 Kenneth Rohde Christiansen <kenneth.christiansen@openbossa.org>
Reviewed by Simon Hausmann.
Follow up to bug https://bugs.webkit.org/show_bug.cgi?id=26278
Patch that make WebCore have a RenderTheme per page
Make the Qt implementation of RenderTheme create a theme per page,
and use the QStyle associated with the view of each page, in order
to make the QWidget setStyle() method work as advertised.
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderThemeQt::RenderThemeQt):
(WebCore::RenderThemeQt::qStyle):
(WebCore::findFrameLineWidth):
(WebCore::inflateButtonRect):
(WebCore::RenderThemeQt::adjustRepaintRect):
(WebCore::RenderThemeQt::isControlStyled):
(WebCore::RenderThemeQt::computeSizeBasedOnStyle):
(WebCore::RenderThemeQt::setButtonPadding):
(WebCore::RenderThemeQt::paintButton):
(WebCore::RenderThemeQt::paintTextField):
(WebCore::RenderThemeQt::setPopupPadding):
* platform/qt/RenderThemeQt.h:
2009-06-16 Kenneth Rohde Christiansen <kenneth.christiansen@openbossa.org>
Reviewed by Dave Hyatt and Adam Roben.
https://bugs.webkit.org/show_bug.cgi?id=26278
Patch that make WebCore have a RenderTheme per page
Create a different RenderTheme per page, so that RenderTheme has
access to page specific theming. This is needed for the Qt port, as Qt
supports setting the theme (style) per widget.
This change was suggested and discussed with Dave Hyatt.
More detailed:
1) Create a theme per page or one global one, depending on the needs
of the platform.
2) Add an accesser to the theme from RenderObject.
3) Change all uses of the theming to access the theme through
RenderObject, using the global default theme as fallback, when the
document of RenderObject has no page.
When we don't have access to a RenderObject, use the default theme.
4) Modify all RenderTheme platform implementations to work with the
above changes, still creating only one global theme.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::boundingBoxRect):
* css/CSSStyleSelector.cpp:
(WebCore::loadFullDefaultStyle):
(WebCore::CSSStyleSelector::styleForElement):
(WebCore::CSSStyleSelector::adjustRenderStyle):
(WebCore::CSSStyleSelector::applyProperty):
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::setActive):
(WebCore::ContainerNode::setHovered):
* editing/SelectionController.cpp:
(WebCore::SelectionController::focusedOrActiveStateChanged):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::parseMappedAttribute):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setChecked):
(WebCore::HTMLInputElement::setIndeterminate):
* page/Frame.cpp:
(WebCore::Frame::selectionLayoutChanged):
* page/FrameView.cpp:
(WebCore::FrameView::updateControlTints):
* page/Page.cpp:
(WebCore::Page::Page):
* page/Page.h:
(WebCore::Page::theme):
* platform/chromium/PopupMenuChromium.cpp:
(WebCore::PopupListBox::paintRow):
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::create):
(WebCore::RenderTheme::themeForPage):
(WebCore::RenderThemeGtk::RenderThemeGtk):
(WebCore::RenderThemeGtk::~RenderThemeGtk):
(WebCore::RenderThemeGtk::gtkEntry):
(WebCore::RenderThemeGtk::gtkTreeView):
* platform/gtk/RenderThemeGtk.h:
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderThemeQt::create):
(WebCore::RenderTheme::themeForPage):
* platform/qt/RenderThemeQt.h:
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenu::paint):
* rendering/RenderMediaControls.cpp:
(WebCore::determineState):
* platform/wx/RenderThemeWx.cpp:
(WebCore::RenderThemeWx::create):
(WebCore::RenderTheme::themeForPage):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintTextMatchMarker):
* rendering/MediaControlElements.cpp:
(WebCore::MediaControlInputElement::hitTest):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::theme):
* rendering/RenderObject.h:
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):
* rendering/RenderTheme.h:
(WebCore::RenderTheme::defaultTheme):
* rendering/RenderThemeChromiumLinux.cpp:
(WebCore::RenderThemeChromiumLinux::create):
(WebCore::RenderTheme::themeForPage):
* rendering/RenderThemeChromiumLinux.h:
(WebCore::RenderThemeChromiumLinux::~RenderThemeChromiumLinux):
* rendering/RenderThemeChromiumMac.h:
* rendering/RenderThemeChromiumMac.mm:
(WebCore::RenderThemeChromiumMac::create):
(WebCore::RenderTheme::themeForPage):
* rendering/RenderThemeChromiumWin.cpp:
(WebCore::RenderThemeChromiumWin::create):
(WebCore::RenderTheme::themeForPage):
* rendering/RenderThemeChromiumWin.h:
(WebCore::RenderThemeChromiumWin::RenderThemeChromiumWin):
(WebCore::RenderThemeChromiumWin::~RenderThemeChromiumWin):
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderTheme::themeForPage):
* rendering/RenderThemeSafari.cpp:
(WebCore::RenderThemeSafari::create):
(WebCore::RenderTheme::themeForPage):
* rendering/RenderThemeSafari.h:
* rendering/RenderThemeWin.cpp:
(WebCore::RenderThemeWin::create):
(WebCore::RenderTheme::themeForPage):
* rendering/RenderThemeWin.h:
2009-06-17 Gavin Barraclough <barraclough@apple.com>
Reviewed by Oliver Hunt.
<rdar://problem/6974175> ASSERT in JITStubs.cpp at appsaccess.apple.com
JSDOMWindowCustom was using PropertySlot::putValue, however this interface
appears to be fundaementally incorrect - PropertySlots are only used to get
values, all puts use PutPropertySlot. However PutPropertySlot cannot be
used in the fashion desired here - it only reports the caching type of a
write that has been performed.
(This caused a bug where the put should have triggered a transition, and
failed to do so.)
Removing the faulty case from the optimization leads to a ~0.5% progression
on in-browser SunSpider (presumably the very first case was not being hit
often, and the simplification here is beneficial).
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::put):
2009-06-17 David Levin <levin@chromium.org>
Reviewed by NOBODY, layout tests fix.
https://bugs.webkit.org/show_bug.cgi?id=26326
This reverts commit r44751.
Once that change was checked scrollbars/scrollbar-orientation.html started
crashing on Windows.
* dom/Document.cpp:
(WebCore::Document::detach):
* page/FrameView.cpp:
* page/FrameView.h:
* platform/Scrollbar.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::destroy):
* rendering/RenderScrollbar.h:
2009-06-16 Kevin Watters <kevinwatters@gmail.com>
Reviewed by Kevin Ollivier.
In ImageSource::setData, delete the old m_encoder before replacing it with a new one.
https://bugs.webkit.org/show_bug.cgi?id=26458
* platform/graphics/wx/ImageSourceWx.cpp:
(WebCore::ImageSource::setData):
2009-06-16 David Levin <levin@chromium.org>
Reviewed by David Hyatt.
REGRESSION: When the main page (ScrollView) has a custom scrollbar, it crashes on destruction.
https://bugs.webkit.org/show_bug.cgi?id=26326
Test: scrollbars/scrollbar-crash-on-refresh.html
* dom/Document.cpp:
(WebCore::Document::detach):
Gives the FrameView a change to do any necessary cleanup on
Document::detach() which is where the renderArena gets detroyed.
* page/FrameView.cpp:
(WebCore::FrameView::detachCustomScrollbars):
Gets rid of any custom scrollbars (if the docment supplied them).
* page/FrameView.h:
* platform/Scrollbar.h:
(WebCore::Scrollbar::isCustomScrollbar):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::destroy):
Removed the check for document()->frame(). If frame() is 0 in this code,
then the call to animation() is also incorrect (since it does document()->frame()->animation()).
* rendering/RenderScrollbar.h:
(WebCore::RenderScrollbar::isCustomScrollbar):
2009-06-16 Brian Weinstein <bweinstein@apple.com>
Reviewed by Adele Peterson.
Fix of <rdar://6967547> Ctrl-C copies null value erasing text in clipboard in Safari.
This patch kept the way events were firing as they were before, and Windows events are
consistent with Mac.
* editing/Editor.cpp:
(WebCore::Editor::tryDHTMLCopy): Added check for canCopy() before clearing PasteBoard
(WebCore::Editor::tryDHTMLCut): Added check for canCut() before clearing PasteBoard
2009-06-16 Antti Koivisto <antti@apple.com>
Reviewed by Brady Eidson.
<rdar://problem/6660037> CrashTracer: [USER] 46 crashes in Safari at com.apple.WebCore • WebCore::CachedCSSStyleSheet::addClient + 53
When revalidating a resource, calling addClient() on one client might cause another to get removed.
- made CachedResource::addClient() non-virtual and added virtual didAddClient()
- in CachedResource::switchClientsToRevalidatedResource() add all clients to the client set of the revalidated resource first
- check if the client is still in the set before invoking didAddClient() for it
No test case, I didn't manage to construct one. You need some combination of 304 revalidation, stylesheets that
reference each other via @imports and reloading.
* WebCore.base.exp:
* loader/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::didAddClient):
* loader/CachedCSSStyleSheet.h:
* loader/CachedFont.cpp:
(WebCore::CachedFont::didAddClient):
* loader/CachedFont.h:
* loader/CachedImage.cpp:
(WebCore::CachedImage::didAddClient):
* loader/CachedImage.h:
* loader/CachedResource.cpp:
(WebCore::CachedResource::addClient):
(WebCore::CachedResource::addClientToSet):
(WebCore::CachedResource::switchClientsToRevalidatedResource):
* loader/CachedResource.h:
* loader/CachedScript.cpp:
(WebCore::CachedScript::didAddClient):
* loader/CachedScript.h:
* loader/CachedXSLStyleSheet.cpp:
(WebCore::CachedXSLStyleSheet::didAddClient):
* loader/CachedXSLStyleSheet.h:
2009-06-16 Simon Fraser <simon.fraser@apple.com>
No Review
Fix code inside an #ifdef that draws the video framerate.
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::paint):
2009-06-16 Jian Li <jianli@chromium.org>
Reviewed by Dimitri Glazkov.
Bug 26456: Hook up V8 bindings for Worker's importScripts functionality.
https://bugs.webkit.org/show_bug.cgi?id=26456
* bindings/v8/custom/V8WorkerContextCustom.cpp:
(WebCore::CALLBACK_FUNC_DECL):
* bindings/v8/custom/V8WorkerCustom.cpp: Fixed missing exception code
handling in Worker constructor for V8 bindings.
(WebCore::CALLBACK_FUNC_DECL):
2009-06-16 Brent Fulgham <bfulgham@webkit.org>
Reviewed by Maciej Stachowiak.
Update of https://bugs.webkit.org/show_bug.cgi?id=26353.
Provide an assignment operator to avoid improper reference
counts on the Cairo font objects. This brings the Windows
Cairo port in line with the GTK+ port.
* platform/graphics/win/FontPlatformData.h:
* platform/graphics/win/FontPlatformDataCairoWin.cpp:
(WebCore::FontPlatformData::FontPlatformData):
(WebCore::FontPlatformData::operator=):
2009-06-16 Eric Carlson <eric.carlson@apple.com>
Reviewed by Simon Fraser.
Fix for <rdar://problem/6890126> Theme code should fetch the MediaControlElementType from
the MediaControlInputElement, rather than computing it again
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::percentLoaded): New, utility function for controller implementation.
* html/HTMLMediaElement.h:
* rendering/MediaControlElements.h:
(WebCore::MediaControlInputElement::displayType): New, return m_displayType.
* rendering/RenderMediaControls.cpp:
(WebCore::RenderMediaControls::paintMediaControlsPart): Stop using MediaPlayer object, get button
state from the button itself and get movie state from HTMLMediaElement.
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintMediaMuteButton): Get state from button instead of MediaPlayer.
(WebCore::RenderThemeMac::paintMediaPlayButton): Ditto.
2009-06-16 Jian Li <jianli@chromium.org>
Reviewed by David Levin.
Bug 26450: Rename values of enum RedirectOriginCheck to make them
clearer.
https://bugs.webkit.org/show_bug.cgi?id=26450
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::create):
(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
(WebCore::DocumentThreadableLoader::willSendRequest):
* loader/DocumentThreadableLoader.h:
* loader/ThreadableLoader.cpp:
(WebCore::ThreadableLoader::create):
(WebCore::ThreadableLoader::loadResourceSynchronously):
* loader/ThreadableLoader.h:
* workers/Worker.cpp:
(WebCore::Worker::Worker):
* workers/WorkerContext.cpp:
(WebCore::WorkerContext::importScripts):
* loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::WorkerThreadableLoader):
(WebCore::WorkerThreadableLoader::loadResourceSynchronously):
(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
(WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader):
* loader/WorkerThreadableLoader.h:
(WebCore::WorkerThreadableLoader::create):
* workers/WorkerScriptLoader.cpp:
(WebCore::WorkerScriptLoader::loadSynchronously):
(WebCore::WorkerScriptLoader::loadAsynchronously):
* workers/WorkerScriptLoader.h:
(WebCore::WorkerContext::importScripts):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::loadRequestAsynchronously):
2009-06-16 Tony Chang <tony@chromium.org>
Reviewed by Darin Fisher.
Fix a UMR in WebCore::BitStack by initializing new memory to 0.
https://bugs.webkit.org/show_bug.cgi?id=26449
No new tests, covered by purify.
* editing/TextIterator.cpp:
(WebCore::BitStack::push):
2009-06-16 Brent Fulgham <bfulgham@webkit.org>
Reviewed by Xan Lopez.
Test: fast/multicol/columns-shorthand-parsing.html
Fixes https://bugs.webkit.org/show_bug.cgi?id=26453.
Null Cairo contextwill crash Windows Cairo build.
* platform/graphics/win/GraphicsContextCairoWin.cpp:
(WebCore::GraphicsContextPlatformPrivate::syncContext):
Add a check for null context before attempting to
retrieve the Cairo surface.
2009-06-16 Peter Kasting <pkasting@google.com>
Reviewed by Xan Lopez.
https://bugs.webkit.org/show_bug.cgi?id=26447
Fix animated GIF breakage in Cairo/wx ports.
* platform/image-decoders/cairo/ImageDecoderCairo.cpp:
(WebCore::RGBA32Buffer::copyBitmapData):
(WebCore::RGBA32Buffer::operator=):
* platform/image-decoders/wx/ImageDecoderWx.cpp:
(WebCore::RGBA32Buffer::copyBitmapData):
(WebCore::RGBA32Buffer::operator=):
2009-06-16 Pierre d'Herbemont <pdherbemont@apple.com>
Reviewed by John Sullivan
<rdar://problem/6937882>
Tweak "time remaining" and "time elapsed" fields in the overlay video controller.
* css/mediaControlsQT.css:
2009-06-16 Jian Li <jianli@chromium.org>
Reviewed by Adam Barth and David Levin.
Bug 26146: Change to use ThreadableLoader to load the worker script
in order to check URL origin for redirection.
https://bugs.webkit.org/show_bug.cgi?id=26146
Test: http/tests/workers/worker-redirect.html
* GNUmakefile.am:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* workers/Worker.cpp:
(WebCore::Worker::Worker):
(WebCore::Worker::notifyFinished):
* workers/Worker.h:
* workers/WorkerContext.cpp:
(WebCore::WorkerContext::importScripts):
* workers/WorkerImportScriptsClient.cpp: Removed.
* workers/WorkerImportScriptsClient.h: Removed.
* workers/WorkerScriptLoader.cpp: Renamed from workers/WorkerImportScriptsClient.cpp.
This to make it more generic so worker script loading could use it.
(WebCore::WorkerScriptLoader::loadSynchronously):
(WebCore::WorkerScriptLoader::loadAsynchronously):
(WebCore::WorkerScriptLoader::didFinishLoading):
(WebCore::WorkerScriptLoader::didFail):
(WebCore::WorkerScriptLoader::didFailRedirectCheck):
(WebCore::WorkerScriptLoader::didReceiveAuthenticationCancellation):
(WebCore::WorkerScriptLoader::notifyFinished):
* workers/WorkerScriptLoader.h: Renamed from workers/WorkerImportScriptsClient.h.
This to make it more generic so worker script loading could use it.
* workers/WorkerScriptLoaderClient.h: Added.
2009-06-16 Brent Fulgham <bfulgham@gmail.com>
Reviewed by Darin Adler.
Use consistent GUID comparison functions.
https://bugs.webkit.org/show_bug.cgi?id=26427
* platform/win/WCDataObject.cpp:
(WebCore::WCDataObject::QueryInterface):
2009-06-16 Xan Lopez <xlopez@igalia.com>
Reviewed by Gustavo Noronha.
Fix compiler warning.
* accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
(webkit_accessible_class_init):
2009-06-16 Xan Lopez <xlopez@igalia.com>
Reviewed by Gustavo Noronha.
Remove dummy AtkStreamableContent implementation.
It's completely empty, we'll add it back (and conditionally
instead of unconditionally) when it does something.
* accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
(GetAtkInterfaceTypeFromWAIType):
(getInterfaceMaskFromObject):
== Rolled over to ChangeLog-2009-06-16 ==