blob: b54851408625fba1319ca150d35a4e3af9197498 [file] [log] [blame]
2010-12-09 Brian Weinstein <bweinstein@apple.com>
Reviewed by Adam Roben.
Prep for WebKit2: Context menu support on Windows
https://bugs.webkit.org/show_bug.cgi?id=50514
Before this patch ContextMenu on Windows were backed by HMENUs, and ContextMenuItems
were backed by MENUITEMINFOs. This meant they couldn't be copied, and they needed to
be to work in WebKit2.
This patch adds a new USE flag - CROSS_PLATFORM_CONTEXT_MENUS that are for a cross-platform
representation of context menus. This patch also has Windows adopt them.
Cross-platform context menus change the API of context menus and the ContextMenuClient. There
is no more idea of a PlatformMenuDescription or a PlatformMenuItemDescription. Menus are backed
by a Vector of ContextMenuItems, and menu items are backed by the variables they need (enabled, checked
title, action, type, and submenu).
This patch also refactors the ContextMenuClient interface to use a variation on the getCustomMenuFromDefaultItems
function to allow for customization of the context menu.
For other ports to use CROSS_PLATFORM_CONTEXT_MENUS, all they need to do is write conversion functions from
a ContextMenu <-> native menu type, and ContextMenuItem <-> native menu item type. For Windows, this is done
in ContextMenuWin.cpp and ContextMenuItemWin.cpp.
No new tests, no change in behavior.
* WebCore.vcproj/WebCore.vcproj: Add new files (only needed on Windows for now).
* loader/EmptyClients.h:
(WebCore::EmptyContextMenuClient::customizeMenu): Define this function if CROSS_PLATFORM_CONTEXT_MENUS
is on.
* page/ContextMenuClient.h: Ditto.
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::showContextMenu): Call customizeMenu instead of
getCustomMenuFromDefaultItems if CROSS_PLATFORM_CONTEXT_MENUS is on.
* platform/ContextMenu.cpp: Added.
(WebCore::ContextMenu::ContextMenu): Empty constructor.
(WebCore::ContextMenu::setItems): Sets the items in the menu.
(WebCore::ContextMenu::items): Returns the items in the menu.
(WebCore::ContextMenu::itemAtIndex):
(WebCore::itemWithActionInMenu): Returns the item with the correct action, recursively descending
into submenus.
(WebCore::ContextMenu::itemWithAction): Calls through to itemWithActionInMenu.
* platform/ContextMenu.h: Added a new set of functions and member variables that are defined for
CROSS_PLATFORM_CONTEXT_MENUS.
(WebCore::ContextMenu::appendItem): Appends an item to the menu.
* platform/ContextMenuItem.cpp: Added.
(WebCore::ContextMenuItem::ContextMenuItem):
(WebCore::ContextMenuItem::~ContextMenuItem):
(WebCore::ContextMenuItem::setSubMenu):
* platform/ContextMenuItem.h:
(WebCore::ContextMenuItem::type): Returns the type.
(WebCore::ContextMenuItem::setType): Sets the type.
(WebCore::ContextMenuItem::action): Returns the action.
(WebCore::ContextMenuItem::setAction): Sets the action.
(WebCore::ContextMenuItem::title): Returns the title.
(WebCore::ContextMenuItem::setTitle): Sets the title.
(WebCore::ContextMenuItem::checked): Returns whether or not the menu item is checked.
(WebCore::ContextMenuItem::setChecked): Sets whether ot not the menu item is checked.
(WebCore::ContextMenuItem::enabled): Returns whether or not the menu item is enabled.
(WebCore::ContextMenuItem::setEnabled): Sets whether or not the menu item is enabled.
(WebCore::ContextMenuItem::submenu): Returns the submenu.
* platform/PlatformMenuDescription.h: Remove the idea if a PlatformMenuDescription if
CROSS_PLATFORM_CONTEXT_MENUS is on.
* platform/win/ContextMenuItemWin.cpp:
(WebCore::ContextMenuItem::ContextMenuItem): Creates a ContextMenuItem from a MENUITEMINFO.
(WebCore::ContextMenuItem::nativeMenuItem): Creates and returns a MENUITEMINFO.
* platform/win/ContextMenuWin.cpp:
(WebCore::ContextMenu::ContextMenu): Creates a ContextMenu from an HMENU.
(WebCore::ContextMenu::nativeMenu): Creates and returns an HMENU.
2010-12-10 Emil Eklund <eae@chromium.org>
Reviewed by Adam Barth.
Fix crash in ReplaceSelectionCommand::doApply when selection is modified
during execution.
https://bugs.webkit.org/show_bug.cgi?id=50840
Test: editing/execCommand/insertHTML-mutation-crash.html
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::copyStyleToChildren):
Replaced raw node pointer with RefPtr.
(WebCore::ReplaceSelectionCommand::doApply):
Replaced raw node pointer with RefPtr and added null check.
2010-12-10 Emil Eklund <eae@chromium.org>
Reviewed by Adam Barth.
Fix crash in Range::processContents when modified during mutation event.
https://bugs.webkit.org/show_bug.cgi?id=50710
Test: fast/dom/Range/range-extractContents.html
* dom/Range.cpp:
(WebCore::Range::processContents):
Replace raw pointers with RefPtrs and add checks.
2010-12-09 Enrica Casucci <enrica@apple.com>
Reviewed by Alexey Proskuryakov.
Implement IME support for Mac.
<rdar://problem/7660589> WebKit2: Implement IME support for Mac.
https://bugs.webkit.org/show_bug.cgi?id=50788
* dom/KeyboardEvent.h:
(WebCore::KeypressCommand::KeypressCommand): Removed ASSERT in constructor,
since it is now used for more than one command.
2010-12-10 Jessie Berlin <jberlin@apple.com>
Windows build fix. Unreviewed.
* WebCore.vcproj/WebCore.vcproj:
Remove duplicate </File> tag.
2010-12-09 Jenn Braithwaite <jennb@chromium.org>
Reviewed by Adam Barth.
TextResourceDecoder::checkForHeadCharset can look way past the limit.
https://bugs.webkit.org/show_bug.cgi?id=47397
Replaced charset detection algorithm with real parser.
Added tests for parser bugs mentioned in the thread for this bug report.
Converted hixie's encoding parsing tests to a layout test.
Tests: fast/encoding/bracket-in-script.html
fast/encoding/bracket-in-tag.html
fast/encoding/escaped-bracket.html
fast/encoding/meta-in-body.html
fast/encoding/meta-in-script.html
fast/encoding/meta-in-title.html
fast/encoding/mismatched-end-tag.html
fast/encoding/namespace-meta.html
fast/encoding/not-http-equiv-content.html
fast/encoding/parser-tests.html
fast/encoding/quotes-in-title.html
fast/encoding/tag-name-digit.html
http/tests/misc/charset-sniffer-end-sniffing.html
* Android.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* html/parser/HTMLMetaCharsetParser.cpp: Added.
(WebCore::HTMLMetaCharsetParser::HTMLMetaCharsetParser):
(WebCore::HTMLMetaCharsetParser::~HTMLMetaCharsetParser):
(WebCore::HTMLMetaCharsetParser::extractCharset):
(WebCore::HTMLMetaCharsetParser::processMeta):
(WebCore::HTMLMetaCharsetParser::checkForMetaCharset):
* html/parser/HTMLMetaCharsetParser.h: Added.
(WebCore::HTMLMetaCharsetParser::create):
(WebCore::HTMLMetaCharsetParser::encoding):
* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::checkForHeadCharset):
(WebCore::TextResourceDecoder::checkForMetaCharset):
* loader/TextResourceDecoder.h:
2010-12-10 Nate Chapin <japhet@chromium.org>
Reviewed by Antti Koivisto.
Merge Loader and Request. Currently, Loader is a singleton attached
to MemoryCache. Our goal is to remove knowledge of the loading process
from MemoryCache, so we should attach Loader to CachedResourceLoader instead.
Once Loader is moved off of MemoryCache, there's no reason it needs to be a singleton,
which removes the main reason for Request existing as a separate class (to store per-request
state that Loader couldn't).
Loader will be given a more descriptive name in a later patch.
https://bugs.webkit.org/show_bug.cgi?id=49837
Refactor only, no new tests.
* Android.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* loader/FrameLoader.cpp:
* loader/Request.cpp:
* loader/Request.h:
* loader/cache/CachedFont.cpp:
* loader/cache/CachedImage.cpp:
* loader/cache/CachedResource.cpp:
* loader/cache/CachedResource.h:
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::CachedResourceLoader):
(WebCore::CachedResourceLoader::~CachedResourceLoader):
(WebCore::CachedResourceLoader::requestImage):
(WebCore::CachedResourceLoader::setAutoLoadImages):
(WebCore::CachedResourceLoader::load):
(WebCore::CachedResourceLoader::loadDone): Was setLoadInProgress(false),
plus other CachedResourceLoader cleanup that had been handled in Loader.
(WebCore::CachedResourceLoader::cancelRequests): Moved from Loader.
(WebCore::CachedResourceLoader::requestCount):
* loader/cache/CachedResourceLoader.h:
(WebCore::CachedResourceLoader::loadFinishing): Was setLoadInProgress(true)
* loader/cache/MemoryCache.h:
* loader/loader.cpp:
(WebCore::Loader::Loader):
(WebCore::Loader::~Loader):
(WebCore::Loader::load):
(WebCore::Loader::willSendRequest):
(WebCore::Loader::didFinishLoading):
(WebCore::Loader::didFail):
(WebCore::Loader::didReceiveResponse):
(WebCore::Loader::didReceiveData):
(WebCore::Loader::didReceiveCachedMetadata):
* loader/loader.h:
(WebCore::Loader::cachedResourceLoader):
2010-12-10 Martin Robinson <mrobinson@igalia.com>
Unreviewed, rolling out r73703.
http://trac.webkit.org/changeset/73703
https://bugs.webkit.org/show_bug.cgi?id=49658
This patch is causing crashes on the GTK+ bots.
* platform/ContextMenuItem.h:
(WebCore::PlatformMenuItemDescription::PlatformMenuItemDescription):
* platform/gtk/ContextMenuGtk.cpp:
(WebCore::ContextMenu::appendItem):
* platform/gtk/ContextMenuItemGtk.cpp:
(WebCore::ContextMenuItem::ContextMenuItem):
(WebCore::ContextMenuItem::~ContextMenuItem):
(WebCore::ContextMenuItem::createNativeMenuItem):
(WebCore::ContextMenuItem::releasePlatformDescription):
(WebCore::ContextMenuItem::type):
(WebCore::ContextMenuItem::setType):
(WebCore::ContextMenuItem::action):
(WebCore::ContextMenuItem::setAction):
(WebCore::ContextMenuItem::title):
(WebCore::ContextMenuItem::setTitle):
(WebCore::ContextMenuItem::platformSubMenu):
(WebCore::ContextMenuItem::setSubMenu):
(WebCore::ContextMenuItem::setChecked):
(WebCore::ContextMenuItem::setEnabled):
2010-12-08 Mihai Parparita <mihaip@chromium.org>
Reviewed by Darin Adler.
fast/canvas/canvas-getImageData-negative-source.html fails on Mac
https://bugs.webkit.org/show_bug.cgi?id=47901
Test: fast/canvas/canvas-getImageData-rounding.html
static_cast<unsigned> is generally not what we want in
convertLogicalToDevice. It produces inconsistent results when compiling
for 32-bit vs. 64-bit, and in any case we weren't getting correct
rounding behavior for source rectangles (e.g. we should get a source rect
of width 2 if the source X is 0.9 and the source width is 0.2, but we
were getting only one of width 1).
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::convertLogicalToDevice):
(WebCore::HTMLCanvasElement::convertToValidDeviceSize):
* html/HTMLCanvasElement.h:
2010-12-10 Hironori Bono <hbono@chromium.org>
Reviewed by Ojan Vafai.
[Chromium] Use libjpeg-turbo instead of libjpeg
https://bugs.webkit.org/show_bug.cgi?id=50054
This change replaces the hard-coded path to the GYP files of the JPEG
library with a 'libjpeg_gyp_path' variable, which is added by Chromium
r68453. (When building WebKit Chromium, this change sets its value to
'<(chromium_src_dir)/third_party/libjpeg/libjpeg.gyp' to avoid changing
the current behavior.)
No new tests since this does not change the code at all.
* WebCore.gyp/WebCore.gyp:
2010-12-10 Chris Marrin <cmarrin@apple.com>
Reviewed by Simon Fraser.
Share code between Mac (CA) and Windows (CACF) GraphicsLayer implementations
https://bugs.webkit.org/show_bug.cgi?id=49388
Got rid of the NonZeroBeginTimeFlag. Functionality is now hidden inside
the implementation.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setAnimationOnLayer):
* platform/graphics/ca/PlatformCAAnimation.h:
* platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
(hasNonZeroBeginTimeFlag):
(setNonZeroBeginTimeFlag):
(PlatformCAAnimation::PlatformCAAnimation):
(PlatformCAAnimation::setBeginTime):
2010-12-10 Pavel Podivilov <podivilov@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: eliminate SourceFrameDelegate by passing scripts to SourceFrame constructor.
https://bugs.webkit.org/show_bug.cgi?id=50679
* inspector/front-end/Script.js:
* inspector/front-end/ScriptView.js:
(WebInspector.ScriptView):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype.reset):
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame):
(WebInspector.SourceFrame.prototype._createViewerIfNeeded):
(WebInspector.SourceFrame.prototype._breakpointAdded):
(WebInspector.SourceFrame.prototype._doEditLine):
(WebInspector.SourceFrame.prototype._commitEditLine):
(WebInspector.SourceFrame.prototype._breakpoints):
(WebInspector.SourceFrame.prototype._sourceIDForLine):
* inspector/front-end/SourceView.js:
(WebInspector.SourceView):
2010-12-10 Andreas Kling <kling@webkit.org>
Reviewed by Eric Seidel.
Don't do GraphicsContext save/restore just to preserve the CompositeOperator
https://bugs.webkit.org/show_bug.cgi?id=50070
Add GraphicsContext::compositeOperation() so we don't have to do a full
save/restore if the only context-tainting call is setCompositeOperation().
GraphicsContext::setCompositeOperation() now stores the op in its state
and calls a port-specific setPlatformCompositeOperation().
No new tests, this is an optimization.
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::setCompositeOperation):
(WebCore::GraphicsContext::compositeOperation):
* platform/graphics/GraphicsContext.h:
* platform/graphics/GraphicsContextPrivate.h:
(WebCore::GraphicsContextState::GraphicsContextState):
* platform/graphics/Image.cpp:
(WebCore::Image::fillWithSolidColor):
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::setPlatformCompositeOperation):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::setPlatformCompositeOperation):
* platform/graphics/haiku/GraphicsContextHaiku.cpp:
(WebCore::GraphicsContext::setPlatformCompositeOperation):
* platform/graphics/mac/GraphicsContextMac.mm:
(WebCore::GraphicsContext::setPlatformCompositeOperation):
* platform/graphics/openvg/GraphicsContextOpenVG.cpp:
(WebCore::GraphicsContext::setPlatformCompositeOperation):
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::setPlatformCompositeOperation):
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::setPlatformCompositeOperation):
* platform/graphics/skia/SkiaUtils.cpp:
(WebCore::WebCoreCompositeToSkiaComposite):
* platform/graphics/wince/GraphicsContextWinCE.cpp:
(WebCore::GraphicsContext::setPlatformCompositeOperation):
* platform/graphics/wx/GraphicsContextWx.cpp:
(WebCore::GraphicsContext::setPlatformCompositeOperation):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
* rendering/RenderView.cpp:
(WebCore::RenderView::paintBoxDecorations):
2010-12-10 Renata Hodovan <reni@webkit.org>
Reviewed by Andreas Kling.
GraphicsContext: Merge m_common and m_data
https://bugs.webkit.org/show_bug.cgi?id=49914
Move data members from GraphicsContextPrivate into GraphicsContext. So GraphicsContextPlatform.h
and m_common became unnecessary. They are removed.
Add two methods to GraphicsContext: platformInit() and platformDestroy(), which
make the constructor of GraphicsContext clearer.
Besides add a getter to the private GraphicsContext::m_state member, because some inline
functions in cairo need it.
No new test is needed, because this is a refactoring.
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::GraphicsContext):
(WebCore::GraphicsContext::~GraphicsContext):
(WebCore::GraphicsContext::save):
(WebCore::GraphicsContext::restore):
(WebCore::GraphicsContext::setStrokeThickness):
(WebCore::GraphicsContext::setStrokeStyle):
(WebCore::GraphicsContext::setStrokeColor):
(WebCore::GraphicsContext::setShadow):
(WebCore::GraphicsContext::clearShadow):
(WebCore::GraphicsContext::getShadow):
(WebCore::GraphicsContext::strokeThickness):
(WebCore::GraphicsContext::strokeStyle):
(WebCore::GraphicsContext::strokeColor):
(WebCore::GraphicsContext::strokeColorSpace):
(WebCore::GraphicsContext::fillRule):
(WebCore::GraphicsContext::setFillRule):
(WebCore::GraphicsContext::setFillColor):
(WebCore::GraphicsContext::fillColor):
(WebCore::GraphicsContext::fillColorSpace):
(WebCore::GraphicsContext::setShouldAntialias):
(WebCore::GraphicsContext::shouldAntialias):
(WebCore::GraphicsContext::state):
(WebCore::GraphicsContext::setStrokePattern):
(WebCore::GraphicsContext::setFillPattern):
(WebCore::GraphicsContext::setStrokeGradient):
(WebCore::GraphicsContext::setFillGradient):
(WebCore::GraphicsContext::fillGradient):
(WebCore::GraphicsContext::strokeGradient):
(WebCore::GraphicsContext::fillPattern):
(WebCore::GraphicsContext::strokePattern):
(WebCore::GraphicsContext::setShadowsIgnoreTransforms):
(WebCore::GraphicsContext::updatingControlTints):
(WebCore::GraphicsContext::setUpdatingControlTints):
(WebCore::GraphicsContext::setPaintingDisabled):
(WebCore::GraphicsContext::paintingDisabled):
(WebCore::GraphicsContext::textDrawingMode):
(WebCore::GraphicsContext::setTextDrawingMode):
* platform/graphics/GraphicsContext.h:
(WebCore::GraphicsContextState::GraphicsContextState):
* platform/graphics/GraphicsContextPrivate.h: Removed.
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::setPlatformFill):
(WebCore::setPlatformStroke):
(WebCore::drawPathShadow):
(WebCore::fillCurrentCairoPath):
(WebCore::strokeCurrentCairoPath):
(WebCore::GraphicsContext::platformInit):
(WebCore::GraphicsContext::platformDestroy):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::setPlatformShadow):
(WebCore::GraphicsContext::strokeRect):
(WebCore::GraphicsContext::setAlpha):
(WebCore::GraphicsContext::getAlpha):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::platformInit):
(WebCore::GraphicsContext::platformDestroy):
(WebCore::GraphicsContext::applyStrokePattern):
(WebCore::GraphicsContext::applyFillPattern):
(WebCore::GraphicsContext::drawPath):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::setPlatformShadow):
(WebCore::GraphicsContext::strokeRect):
* platform/graphics/haiku/GraphicsContextHaiku.cpp:
(WebCore::GraphicsContext::platformInit):
(WebCore::GraphicsContext::platformDestroy):
* platform/graphics/openvg/GraphicsContextOpenVG.cpp:
(WebCore::GraphicsContext::platformInit):
(WebCore::GraphicsContext::platformDestroy):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::clipOut):
(WebCore::GraphicsContext::addInnerRoundedRectClip):
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::platformInit):
(WebCore::GraphicsContext::platformDestroy):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::setPlatformShadow):
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::platformInit):
(WebCore::GraphicsContext::platformDestroy):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::setPlatformShadow):
* platform/graphics/win/GraphicsContextCGWin.cpp:
(WebCore::GraphicsContext::GraphicsContext):
(WebCore::GraphicsContext::platformInit):
* platform/graphics/win/GraphicsContextCairoWin.cpp:
(WebCore::GraphicsContext::GraphicsContext):
(WebCore::GraphicsContext::platformInit):
* platform/graphics/wince/GraphicsContextWinCE.cpp:
(WebCore::GraphicsContext::platformInit):
(WebCore::GraphicsContext::platformDestroy):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::fillRect):
* platform/graphics/wx/GraphicsContextWx.cpp:
(WebCore::GraphicsContext::platformInit):
(WebCore::GraphicsContext::platformDestroy):
2010-12-10 Pavel Podivilov <podivilov@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: introduce a pair of set/remove methods for each breakpoint type.
https://bugs.webkit.org/show_bug.cgi?id=50809
* inspector/Inspector.idl:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::setEventListenerBreakpoint):
(WebCore::InspectorController::removeEventListenerBreakpoint):
(WebCore::InspectorController::hasEventListenerBreakpoint):
(WebCore::InspectorController::setXHRBreakpoint):
(WebCore::InspectorController::removeXHRBreakpoint):
(WebCore::InspectorController::hasXHRBreakpoint):
(WebCore::InspectorController::clearNativeBreakpoints):
* inspector/InspectorController.h:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::setDOMBreakpoint):
(WebCore::InspectorDOMAgent::removeDOMBreakpoint):
(WebCore::InspectorDOMAgent::shouldBreakOnNodeInsertion):
(WebCore::InspectorDOMAgent::shouldBreakOnNodeRemoval):
(WebCore::InspectorDOMAgent::shouldBreakOnAttributeModification):
(WebCore::InspectorDOMAgent::descriptionForDOMEvent):
(WebCore::InspectorDOMAgent::didRemoveDOMNode):
* inspector/InspectorDOMAgent.h:
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::willInsertDOMNodeImpl):
(WebCore::InspectorInstrumentation::willRemoveDOMNodeImpl):
(WebCore::InspectorInstrumentation::willModifyDOMAttrImpl):
(WebCore::InspectorInstrumentation::willSendXMLHttpRequestImpl):
(WebCore::InspectorInstrumentation::pauseOnNativeEventIfNeeded):
* inspector/front-end/BreakpointManager.js:
(WebInspector.BreakpointManager):
(WebInspector.NativeBreakpoint):
(WebInspector.DOMBreakpoint):
(WebInspector.EventListenerBreakpoint):
(WebInspector.XHRBreakpoint):
* inspector/front-end/CallStackSidebarPane.js:
(WebInspector.CallStackSidebarPane):
(WebInspector.CallStackSidebarPane.prototype._nativeBreakpointHit):
* inspector/front-end/DebuggerModel.js:
(WebInspector.DebuggerModel.prototype.debuggerPaused):
2010-12-10 Adam Roben <aroben@apple.com>
Windows production build fix after r72555
* WebCore.vcproj/WebCoreGeneratedCommon.vsprops: Use
"$(WebKitVSPropsRedirectionDir)..\..\WebKitLibraries\win" to find the
.vsprops files, rather than $(WebKitLibrariesDir).
2010-12-10 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
Reviewed by nobody, build fix.
[Qt] Second attempt to fix the build with Qt 4.6 broken in 73710.
* platform/network/qt/QtNAMThreadSafeProxy.cpp:
(WebCore::QtNetworkReplyThreadSafeProxy::QtNetworkReplyThreadSafeProxy):
(WebCore::QtNetworkReplyThreadSafeProxy::localCustomRequest):
* platform/network/qt/QtNAMThreadSafeProxy.h:
2010-12-10 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
Reviewed by nobody, build fix.
[Qt] Fix the build with Qt 4.6 broken in 73710.
* platform/network/qt/QtNAMThreadSafeProxy.cpp:
(WebCore::QtNetworkReplyThreadSafeProxy::QtNetworkReplyThreadSafeProxy):
* platform/network/qt/QtNAMThreadSafeProxy.h:
2010-12-10 Emil Eklund <eae@chromium.org>
Reviewed by Eric Seidel.
Change EventHandler::dispatchMouseEvent code to use DOM traversal instead of render tree traversal
https://bugs.webkit.org/show_bug.cgi?id=49982
* page/EventHandler.cpp:
(WebCore::EventHandler::dispatchMouseEvent):
Walk up DOM/hosted tree rather than render tree.
2010-12-10 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Support a QNetworkAccessManager affined to a different thread.
https://bugs.webkit.org/show_bug.cgi?id=50080
This patch introduce thread safe proxy classes for QNetworkAccessManager
and QNetworkReply.
If run in the same thread, these objects will forward the calls with
Qt::DirectConnection bindings, while in the other case they will use
Qt::QueuedConnection to carry requests accross threads.
This patch basically:
- Makes sure that all access goes through these objects
- Reorders signal connections to make sure we are connected when the
signal comes
- Makes sure that no QObject in the WebCore thread is a child of the
reply which might be in a different thread.
- Forward the data directly in QByteArrays in signals instead of collecting
the data when the signal is handled.
New test: tst_QWebPage::networkAccessManagerOnDifferentThread
* WebCore.pro:
* platform/graphics/qt/MediaPlayerPrivateQt.cpp:
(WebCore::MediaPlayerPrivateQt::commitLoad):
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::FormDataIODevice::FormDataIODevice):
(WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
(WebCore::QNetworkReplyHandler::~QNetworkReplyHandler):
(WebCore::QNetworkReplyHandler::setLoadMode):
(WebCore::QNetworkReplyHandler::abort):
(WebCore::QNetworkReplyHandler::release):
(WebCore::ignoreHttpError):
(WebCore::QNetworkReplyHandler::finish):
(WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
(WebCore::QNetworkReplyHandler::forwardData):
(WebCore::QNetworkReplyHandler::start):
(WebCore::QNetworkReplyHandler::sendQueuedItems):
* platform/network/qt/QNetworkReplyHandler.h:
* platform/network/qt/QtNAMThreadSafeProxy.cpp: Added.
* platform/network/qt/QtNAMThreadSafeProxy.h: Added.
* platform/network/qt/ResourceHandleQt.cpp:
(WebCore::ResourceHandle::willLoadFromCache):
* platform/qt/CookieJarQt.cpp:
(WebCore::networkAccessManager):
(WebCore::setCookies):
(WebCore::cookies):
(WebCore::cookieRequestHeaderFieldValue):
(WebCore::cookiesEnabled):
2010-12-09 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Refactor QNetworkReplyHandler::finish() to prevent crashes.
https://bugs.webkit.org/show_bug.cgi?id=50761
This patch change the order to check if m_reply is null instead,
explicitly deleting the reply before calling start() for a redirect,
or after calling didFinishLoading()/didFail() in other cases.
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::finish):
2010-12-09 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Make sure we send the response before any data.
https://bugs.webkit.org/show_bug.cgi?id=50760
This patch make sure the data available flag is set before
we call sendResponseIfNeeded.
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
(WebCore::QNetworkReplyHandler::finish):
(WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
(WebCore::QNetworkReplyHandler::forwardData):
(WebCore::QNetworkReplyHandler::resetState):
* platform/network/qt/QNetworkReplyHandler.h:
2010-12-10 Koan-Sin Tan <koansin.tan@gmail.com>
Reviewed by Dan Bernstein.
Bopomofo should be part of CJK Ideographs in WebCore/platform/graphics/Font.cpp
https://bugs.webkit.org/show_bug.cgi?id=50668
No new tests. Note that, as said in the bug report discussion,
I did have a test case for the bug. However, to show the test
case you need some "broken" Microsoft copyrighted fonts, such
as DFKai-SB.
* platform/graphics/Font.cpp:
(WebCore::Font::isCJKIdeograph):
2010-12-10 Carlos Garcia Campos <cgarcia@igalia.com>
Reviewed by Martin Robinson.
[GTK] Simplify context-menu handling code
https://bugs.webkit.org/show_bug.cgi?id=49658
* platform/ContextMenuItem.h:
* platform/gtk/ContextMenuGtk.cpp:
(WebCore::ContextMenu::appendItem):
* platform/gtk/ContextMenuItemGtk.cpp:
(WebCore::ContextMenuItem::ContextMenuItem):
(WebCore::ContextMenuItem::~ContextMenuItem):
(WebCore::ContextMenuItem::releasePlatformDescription):
(WebCore::ContextMenuItem::type):
(WebCore::ContextMenuItem::setType):
(WebCore::ContextMenuItem::action):
(WebCore::ContextMenuItem::setAction):
(WebCore::ContextMenuItem::title):
(WebCore::ContextMenuItem::setTitle):
(WebCore::ContextMenuItem::platformSubMenu):
(WebCore::ContextMenuItem::setSubMenu):
(WebCore::ContextMenuItem::setChecked):
(WebCore::ContextMenuItem::setEnabled):
2010-12-10 Philippe Normand <pnormand@igalia.com>
Reviewed by Gustavo Noronha Silva.
[GStreamer] un-needed methods
https://bugs.webkit.org/show_bug.cgi?id=50805
No new tests, code cleanup only.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
2010-12-10 Philippe Normand <pnormand@igalia.com>
Reviewed by Gustavo Noronha Silva.
[GStreamer] data: source could also support non-base64 encoded URIs
https://bugs.webkit.org/show_bug.cgi?id=30007
Removed our ancient implementation of dataurisrc. We should now
use the one in gst-plugins-bad which is more mature.
* GNUmakefile.am:
* platform/graphics/gstreamer/DataSourceGStreamer.cpp: Removed.
* platform/graphics/gstreamer/DataSourceGStreamer.h: Removed.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::doGstInit):
2010-12-10 Zoltan Herczeg <zherczeg@webkit.org>
Reviewed by Eric Seidel.
[Qt] Fix crashes in debug mode
https://bugs.webkit.org/show_bug.cgi?id=49976
The m_methods hashmap of QtInstance contains InternalFunctions
whose depend on the current RuntimeObject. When we recreate the
RuntimeObject, we should also reset this hashmap.
* bridge/qt/qt_instance.cpp:
(JSC::Bindings::QtInstance::newRuntimeObject):
2010-12-10 François Sausset <sausset@gmail.com>
Reviewed by Eric Seidel.
MathML: update baselinePosition() call in RenderMathMLBlock.cpp
https://bugs.webkit.org/show_bug.cgi?id=50540
The call of baselinePosition() is outdated: new arguments added.
* mathml/RenderMathMLBlock.cpp:
(WebCore::RenderMathMLBlock::paint):
2010-12-10 Hans Wennborg <hans@chromium.org>
Reviewed by Jeremy Orlow.
IndexedDB: Numeric keys are floats.
https://bugs.webkit.org/show_bug.cgi?id=50674
Use floating point to represent numeric keys,
add version meta data to the SQLite db,
and migrate object stores that use integers.
* bindings/v8/IDBBindingUtilities.cpp:
(WebCore::createIDBKeyFromValue):
* bindings/v8/custom/V8IDBKeyCustom.cpp:
(WebCore::toV8):
* storage/IDBFactoryBackendImpl.cpp:
(WebCore::createTables):
(WebCore::migrateDatabase):
(WebCore::IDBFactoryBackendImpl::open):
* storage/IDBKey.cpp:
(WebCore::IDBKey::IDBKey):
(WebCore::IDBKey::fromQuery):
(WebCore::IDBKey::bind):
(WebCore::IDBKey::bindWithNulls):
* storage/IDBKey.h:
(WebCore::IDBKey::create):
(WebCore::IDBKey::number):
2010-12-10 Martin Robinson <mrobinson@igalia.com>
Reviewed by Xan Lopez.
[Gtk] style="font-family: courier" makes text disappear
https://bugs.webkit.org/show_bug.cgi?id=47452
Don't ever use fonts that do not have any of the three charmaps that
Fontconfig supports (Unicode, Apple Roman and Symbol). If we select
a font that doesn't have one of these charmaps, use the next font in
the list.
Test: platform/gtk/fonts/font-with-no-valid-encoding.html
* platform/graphics/freetype/FontCacheFreeType.cpp:
(WebCore::FontCache::createFontPlatformData): Check whether the
font we selected has a valid Fontconfig charmap.
* platform/graphics/freetype/FontPlatformData.h: Added new method definition.
* platform/graphics/freetype/FontPlatformDataFreeType.cpp:
(WebCore::FontPlatformData::hasCompatibleCharmap): Added this method which
verifies that a font has a valid Fontconfig charmap.
2010-12-09 Ryosuke Niwa <rniwa@webkit.org>
Reviewed by Ojan Vafai.
Make DOM Mutation Events Asynchronous
https://bugs.webkit.org/show_bug.cgi?id=46936
Implemented DOM mutations events as scoped events. A scoped event is an event whose
dispatch is done via ScopedEventQueue. The behavior of the queue is controlled by
EventQueueScope objects (RAII idiom), which increments and decrements the scoping level
on its constructor and destructor respectively.
When the scoping level is 0 (initial level), scoped events are dispatched as soon as
they are enqueued and act like synchronous events. When the scoping level is greater than 0,
however, events are queued in ScopedEventQueue and their dispatches are delayed until
the scoping level goes back to 0 (by the destruction of EventQueueScope).
DOMSubtreeModified, DOMNodeInserted, DOMNodeRemoved, DOMNodeRemovedFromDocument,
DOMNodeInsertedIntoDocument, DOMFocusIn, DOMFocusOut, focusin, and focusout are treated as
scoped events, and a scope object is instantiated in EditCommand::apply to delay dispatches
of the events until the completion of each call of EditCommand::doApply.
Test: fast/events/mutation/execCommands.html
* Android.mk: Added ScopedEventQueue.cpp.
* CMakeLists.txt: Ditto.
* WebCore.pro: Ditto.
* GNUmakefile.am: Added ScopedEventQueue.cpp and ScopedEventQueue.h.
* WebCore.gypi: Ditto.
* WebCore.vcproj/project.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* dom/ContainerNode.cpp:
(WebCore::dispatchChildInsertionEvents): Calls dispatchScopedEvent.
(WebCore::dispatchChildRemovalEvents): Ditto.
* dom/DOMAllInOne.cpp: Added ScopedEventQueue.cpp.
* dom/Element.cpp:
(WebCore::Element::dispatchAttrRemovalEvent): Ditto.
(WebCore::Element::dispatchAttrAdditionEvent): Ditto.
* dom/Node.cpp:
(WebCore::Node::dispatchScopedEvent): Added.
(WebCore::Node::dispatchSubtreeModifiedEvent): Calls dispatchScopedEvent.
* dom/Node.h:
* dom/ScopedEventQueue.cpp: Added.
(WebCore::ScopedEventQueue::initialize): Added.
(WebCore::ScopedEventQueue::enqueueEvent): Added.
(WebCore::ScopedEventQueue::dispatchAllEvents): Added.
(WebCore::ScopedEventQueue::dispatchEvent): Added.
(WebCore::ScopedEventQueue::instance): Added.
(WebCore::ScopedEventQueue::incrementScopingLevel): Added.
(WebCore::ScopedEventQueue::decrementScopingLevel): Added.
* dom/ScopedEventQueue.h: Added.
(WebCore::ScopedEventQueue::~ScopedEventQueue): Added.
(WebCore::ScopedEventQueue::ScopedEventQueue): Added.
(WebCore::EventQueueScope::EventQueueScope): Added.
(WebCore::EventQueueScope::~EventQueueScope): Added.
* editing/EditCommand.cpp:
(WebCore::EditCommand::apply): Instantiates EventQueueScope.
2010-12-09 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r73684.
http://trac.webkit.org/changeset/73684
https://bugs.webkit.org/show_bug.cgi?id=50801
"missing bug number" (Requested by rniwa on #webkit).
* Android.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/ContainerNode.cpp:
(WebCore::dispatchChildInsertionEvents):
(WebCore::dispatchChildRemovalEvents):
* dom/DOMAllInOne.cpp:
* dom/Element.cpp:
(WebCore::Element::dispatchAttrRemovalEvent):
(WebCore::Element::dispatchAttrAdditionEvent):
* dom/Node.cpp:
(WebCore::Node::dispatchSubtreeModifiedEvent):
(WebCore::Node::dispatchUIEvent):
* dom/Node.h:
* dom/ScopedEventQueue.cpp: Removed.
* dom/ScopedEventQueue.h: Removed.
* editing/EditCommand.cpp:
(WebCore::EditCommand::apply):
2010-12-09 Qi Zhang <qi.2.zhang@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] enable orientation flag when QtMobility available
https://bugs.webkit.org/show_bug.cgi?id=50781
When QtMobility available, enable orientation flag by default.
* features.pri:
2010-12-09 Kenichi Ishibashi <bashi@google.com>
Reviewed by Kent Tamura.
Improve validation API support of <object> and <keygen>
https://bugs.webkit.org/show_bug.cgi?id=50663
Adds validation API to HTMLObjectElement class.
Makes HTMLKeygenElement::willValidate() return false.
Test: fast/forms/setCustomValidity-existence.html
* html/HTMLKeygenElement.h:
(WebCore::HTMLKeygenElement::willValidate): Added.
* html/HTMLObjectElement.h:
(WebCore::HTMLObjectElement::validationMessage): Added.
(WebCore::HTMLObjectElement::checkValidity): Added.
(WebCore::HTMLObjectElement::setCustomValidity): Added.
* html/HTMLObjectElement.idl: Added validation API properties.
2010-12-09 Sadrul Habib Chowdhury <sadrul@chromium.org>
Reviewed by Kent Tamura.
Make sure a non-zero value is used for tile-width to avoid a crash
https://bugs.webkit.org/show_bug.cgi?id=50341
The scaled tile width can be very small at times (e.g. with 'style: font 1
required'). So use a minimum width of 1 instead of using 0 (which leads to a
crash).
Tests: fast/dom/HTMLProgressElement/progress-element-with-style-crash.html
* rendering/RenderThemeChromiumSkia.cpp:
(WebCore::RenderThemeChromiumSkia::paintProgressBar):
2010-12-09 Ryosuke Niwa <rniwa@webkit.org>
Reviewed by Ojan Vafai.
Implemented DOM mutations events as scoped events. A scoped event is an event whose
dispatch is done via ScopedEventQueue. The behavior of the queue is controlled by
EventQueueScope objects (RAII idiom), which increments and decrements the scoping level
on its constructor and destructor respectively.
When the scoping level is 0 (initial level), scoped events are dispatched as soon as
they are enqueued and act like synchronous events. When the scoping level is greater than 0,
however, events are queued in ScopedEventQueue and their dispatches are delayed until
the scoping level goes back to 0 (by the destruction of EventQueueScope).
DOMSubtreeModified, DOMNodeInserted, DOMNodeRemoved, DOMNodeRemovedFromDocument,
DOMNodeInsertedIntoDocument, DOMFocusIn, DOMFocusOut, focusin, and focusout are treated as
scoped events, and a scope object is instantiated in EditCommand::apply to delay dispatches
of the events until the completion of each call of EditCommand::doApply.
Test: fast/events/mutation/execCommands.html
* Android.mk: Added ScopedEventQueue.cpp.
* CMakeLists.txt: Ditto.
* WebCore.pro: Ditto.
* GNUmakefile.am: Added ScopedEventQueue.cpp and ScopedEventQueue.h.
* WebCore.gypi: Ditto.
* WebCore.vcproj/project.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* dom/ContainerNode.cpp:
(WebCore::dispatchChildInsertionEvents): Calls dispatchScopedEvent.
(WebCore::dispatchChildRemovalEvents): Ditto.
* dom/DOMAllInOne.cpp: Added ScopedEventQueue.cpp.
* dom/Element.cpp:
(WebCore::Element::dispatchAttrRemovalEvent): Ditto.
(WebCore::Element::dispatchAttrAdditionEvent): Ditto.
* dom/Node.cpp:
(WebCore::Node::dispatchScopedEvent): Added.
(WebCore::Node::dispatchSubtreeModifiedEvent): Calls dispatchScopedEvent.
* dom/Node.h:
* dom/ScopedEventQueue.cpp: Added.
(WebCore::ScopedEventQueue::initialize): Added.
(WebCore::ScopedEventQueue::enqueueEvent): Added.
(WebCore::ScopedEventQueue::dispatchAllEvents): Added.
(WebCore::ScopedEventQueue::dispatchEvent): Added.
(WebCore::ScopedEventQueue::instance): Added.
(WebCore::ScopedEventQueue::incrementScopingLevel): Added.
(WebCore::ScopedEventQueue::decrementScopingLevel): Added.
* dom/ScopedEventQueue.h: Added.
(WebCore::ScopedEventQueue::~ScopedEventQueue): Added.
(WebCore::ScopedEventQueue::ScopedEventQueue): Added.
(WebCore::EventQueueScope::EventQueueScope): Added.
(WebCore::EventQueueScope::~EventQueueScope): Added.
* editing/EditCommand.cpp:
(WebCore::EditCommand::apply): Instantiates EventQueueScope.
2010-12-09 Sam Weinig <sam@webkit.org>
Reviewed by Gavin Barraclough.
Fix scrolling with mouse wheel in WebKit2 views. Once
we coalesce wheel events, we can re-enable this.
* platform/mac/ScrollAnimatorMac.mm:
(WebCore::ScrollAnimatorMac::scroll):
2010-12-09 Abhishek Arya <inferno@chromium.org>
Reviewed by James Robinson.
For details element, ensure that if we ended up being inline that we set out replaced
flag so that we are treated like an inline block.
https://bugs.webkit.org/show_bug.cgi?id=50671
Test: fast/html/details-element-render-inline-crash.html
* rendering/RenderDetails.cpp:
(WebCore::RenderDetails::styleDidChange): setReplaced to true if we are set as inline.
* rendering/RenderDetails.h: function definition.
2010-12-09 Jasmin Lapalme <jlapalme@druide.com>
Reviewed by Alexey Proskuryakov.
Fix a faulty conversion from UTF-8 to UTF-16 in WebCore during an XSLT transformation.
https://bugs.webkit.org/show_bug.cgi?id=50708
Test: fast/xsl/utf8-chunks.xml
* xml/XSLTProcessorLibxslt.cpp:
(WebCore::writeToVector): now converts and returns the correct byte count when the end of the chunk is in the middle of a multibyte UTF-8 character.
2010-12-09 Vincent Scheib <scheib@chromium.org>
Reviewed by James Robinson.
Clip update rectangle for Texture::updateSubRect to texture size
https://bugs.webkit.org/show_bug.cgi?id=49929
Test: fast/canvas/canvas-largedraws.html
* platform/graphics/gpu/Texture.cpp:
(WebCore::Texture::updateSubRect):
2010-12-09 Kenneth Russell <kbr@google.com>
Unreviewed. Another speculative Gtk build fix after r73669. Add
needed derived sources to GNUmakefile.am.
* GNUmakefile.am:
2010-12-09 Kenneth Russell <kbr@google.com>
Unreviewed. Speculative Gtk build fix after
https://bugs.webkit.org/show_bug.cgi?id=36512 / r73669. Process
all of the WebGL classes' IDL files.
* CMakeLists.txt:
2010-12-09 Zhenyao Mo <zmo@google.com>
Reviewed by Kenneth Russell.
Expose constructor functions for instanceof checks of WebGL objects
https://bugs.webkit.org/show_bug.cgi?id=36512
Test: fast/canvas/webgl/instanceof-test.html
* bindings/generic/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::webGLActiveInfoEnabled):
(WebCore::RuntimeEnabledFeatures::webGLBufferEnabled):
(WebCore::RuntimeEnabledFeatures::webGLFramebufferEnabled):
(WebCore::RuntimeEnabledFeatures::webGLProgramEnabled):
(WebCore::RuntimeEnabledFeatures::webGLRenderbufferEnabled):
(WebCore::RuntimeEnabledFeatures::webGLShaderEnabled):
(WebCore::RuntimeEnabledFeatures::webGLTextureEnabled):
(WebCore::RuntimeEnabledFeatures::webGLUniformLocationEnabled):
* html/canvas/WebGLActiveInfo.idl: Remove OmitConstructor.
* html/canvas/WebGLBuffer.idl: Ditto.
* html/canvas/WebGLFramebuffer.idl: Ditto.
* html/canvas/WebGLProgram.idl: Ditto.
* html/canvas/WebGLRenderbuffer.idl: Ditto.
* html/canvas/WebGLShader.idl: Ditto.
* html/canvas/WebGLTexture.idl: Ditto.
* html/canvas/WebGLUniformLocation.idl: Ditto.
* page/DOMWindow.idl: Expose constructors for WebGL objects in DOMWindow.
2010-12-09 Timothy Hatcher <timothy@apple.com>
Export Color::white and Color::transparent.
Reviewed by Anders Carlsson.
* WebCore.exp.in:
2010-12-09 Sam Weinig <sam@webkit.org>
Fix failing Mac tests.
* platform/mac/ScrollAnimatorMac.mm:
(WebCore::ScrollAnimatorMac::scroll): Don't smooth scroll if the default
AppleScrollAnimationEnabled is false.
2010-12-09 James Robinson <jamesr@chromium.org>
Reviewed by Kenneth Russell.
[chromium] Compositor needs to manage its VRAM use
https://bugs.webkit.org/show_bug.cgi?id=49629
This adds a basic texture manager to the Chromium compositor to limit the amount of VRAM
used by compositor textures and switches ContentLayerChromium, ImageLayerChromium, and
RenderSurfaceChromium to use managed LayerTexture. The other *LayerChromium classes (Canvas,
Video, and WebGL) and the root layer are still unmanaged.
The TextureManager works by providing tokens to callers that want to use a managed texture.
The token can be used to request a texture, see if the previously requested texture is still
available, and to protect/unprotect textures when they cannot be collected. Whenever a
texture is created the manager attempts to free up the least recently used textures until the
total memory use is below the provided threshhold. If the manager cannot satisfy the memory
limit it will not return any new textures until some old textures are released.
A LayerTexture wraps a TextureManager token, size, and format. A LayerChromium can check if a
previously requested texture is still available for use and reserve the LayerTexture's underlying
storage between the updateContentsIfDirty() and the draw() call.
Also changes LayerChromium from having separate contentsDirty()/updateContents() calls to a single
updateContentsIfDirty().
Tests: platform/chromium/compositing/lots-of-img-layers-with-opacity.html
platform/chromium/compositing/lots-of-img-layers.html
* WebCore.gypi:
* platform/graphics/chromium/Canvas2DLayerChromium.cpp:
(WebCore::Canvas2DLayerChromium::updateContentsIfDirty):
* platform/graphics/chromium/Canvas2DLayerChromium.h:
* platform/graphics/chromium/ContentLayerChromium.cpp:
(WebCore::ContentLayerChromium::cleanupResources):
(WebCore::ContentLayerChromium::updateContentsIfDirty):
(WebCore::ContentLayerChromium::updateTextureRect):
(WebCore::ContentLayerChromium::draw):
* platform/graphics/chromium/ContentLayerChromium.h:
* platform/graphics/chromium/ImageLayerChromium.cpp:
(WebCore::ImageLayerChromium::updateContentsIfDirty):
* platform/graphics/chromium/ImageLayerChromium.h:
* platform/graphics/chromium/LayerChromium.h:
(WebCore::LayerChromium::updateContentsIfDirty):
(WebCore::LayerChromium::draw):
* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::LayerRendererChromium::LayerRendererChromium):
(WebCore::LayerRendererChromium::useShader):
(WebCore::LayerRendererChromium::prepareToDrawLayers):
(WebCore::LayerRendererChromium::updateRootLayerTextureRect):
(WebCore::LayerRendererChromium::drawLayers):
(WebCore::LayerRendererChromium::getFramebufferPixels):
(WebCore::LayerRendererChromium::createLayerTexture):
(WebCore::LayerRendererChromium::deleteLayerTexture):
(WebCore::LayerRendererChromium::updateLayersRecursive):
(WebCore::LayerRendererChromium::useRenderSurface):
(WebCore::LayerRendererChromium::drawLayer):
(WebCore::LayerRendererChromium::setScissorToRect):
(WebCore::LayerRendererChromium::setDrawViewportRect):
(WebCore::LayerRendererChromium::initializeSharedObjects):
(WebCore::LayerRendererChromium::cleanupSharedObjects):
* platform/graphics/chromium/LayerRendererChromium.h:
(WebCore::LayerRendererChromium::renderSurfaceSharedValues):
(WebCore::LayerRendererChromium::textureManager):
* platform/graphics/chromium/LayerTexture.cpp: Added.
(WebCore::LayerTexture::LayerTexture):
(WebCore::LayerTexture::~LayerTexture):
(WebCore::LayerTexture::isValid):
(WebCore::LayerTexture::reserve):
(WebCore::LayerTexture::unreserve):
(WebCore::LayerTexture::bindTexture):
(WebCore::LayerTexture::framebufferTexture2D):
* platform/graphics/chromium/LayerTexture.h: Added.
(WebCore::LayerTexture::create):
* platform/graphics/chromium/PluginLayerChromium.cpp:
(WebCore::PluginLayerChromium::updateContentsIfDirty):
* platform/graphics/chromium/PluginLayerChromium.h:
* platform/graphics/chromium/RenderSurfaceChromium.cpp:
(WebCore::RenderSurfaceChromium::SharedValues::SharedValues):
(WebCore::RenderSurfaceChromium::SharedValues::~SharedValues):
(WebCore::RenderSurfaceChromium::RenderSurfaceChromium):
(WebCore::RenderSurfaceChromium::cleanupResources):
(WebCore::RenderSurfaceChromium::prepareContentsTexture):
(WebCore::RenderSurfaceChromium::draw):
* platform/graphics/chromium/RenderSurfaceChromium.h:
(WebCore::RenderSurfaceChromium::SharedValues::shaderProgram):
(WebCore::RenderSurfaceChromium::SharedValues::shaderSamplerLocation):
(WebCore::RenderSurfaceChromium::SharedValues::shaderMatrixLocation):
(WebCore::RenderSurfaceChromium::SharedValues::shaderAlphaLocation):
(WebCore::RenderSurfaceChromium::SharedValues::initialized):
* platform/graphics/chromium/TextureManager.cpp: Added.
(WebCore::memoryUseBytes):
(WebCore::TextureManager::TextureManager):
(WebCore::TextureManager::getToken):
(WebCore::TextureManager::releaseToken):
(WebCore::TextureManager::hasTexture):
(WebCore::TextureManager::protectTexture):
(WebCore::TextureManager::unprotectTexture):
(WebCore::TextureManager::reduceMemoryToLimit):
(WebCore::TextureManager::addTexture):
(WebCore::TextureManager::removeTexture):
(WebCore::TextureManager::requestTexture):
* platform/graphics/chromium/TextureManager.h: Added.
(WebCore::TextureManager::create):
* platform/graphics/chromium/VideoLayerChromium.cpp:
(WebCore::VideoLayerChromium::updateContentsIfDirty):
* platform/graphics/chromium/VideoLayerChromium.h:
* platform/graphics/chromium/WebGLLayerChromium.cpp:
(WebCore::WebGLLayerChromium::updateContentsIfDirty):
* platform/graphics/chromium/WebGLLayerChromium.h:
2010-12-09 Darin Adler <darin@apple.com>
Reviewed by Sam Weinig.
Rework my recent setLocation refactoring to use DOMWindow instead of Frame.
It's difficult to make correct security decisions based on Frame since a
Frame can navigate to a new document.
Fixes some test failures that I somehow missed before the last check-in.
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::crossDomainAccessErrorMessage): Call to the
shell DOMWindow; not sure this one matters, but it's closer to the old
code before my last patch. Also pass the DOMWindow rather than the
frame to crossDomainAccessErrorMessage.
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::setLocation): Pass DOMWindow rather than Frame
to the DOMWindow::setLocation function.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::setLocation): Take DOMWindow rather than Frame.
(WebCore::DOMWindow::crossDomainAccessErrorMessage): Ditto.
* page/DOMWindow.h: Update new functions to take DOMWindow rather
than Frame.
2010-12-09 Sam Weinig <sam@webkit.org>
Try and fix the mac build.
* WebCore.exp.in:
2010-12-09 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt.
Removed an unused variable.
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::computeLogicalBoxHeights): Removed parentLineHeight.
2010-12-09 Darin Adler <darin@apple.com>
Reviewed by Geoffrey Garen.
Move DOMWindow::setLocation logic into DOMWindow class and out of JavaScript binding
https://bugs.webkit.org/show_bug.cgi?id=50640
* bindings/js/JSDOMBinding.cpp:
(WebCore::printErrorMessageForFrame): Removed body; just call through to
DOMWindow::printErrorMessage.
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::crossDomainAccessErrorMessage): Removed body;
just call through to DOMWindow::crossDomainAccessErrorMessage.
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::setLocation): Changed terminology to use activeFrame and
firstFrame, rather than the older lexicalFrame and dynamicFrame. Removed most
of the body and moved it into DOMWindow::setLocation.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::setLocation): Added. Does all the same work that
JSDOMWindow::setLocation used to do, but in a way that's not specific
to JavaScript.
(WebCore::DOMWindow::printErrorMessage): Added.
(WebCore::DOMWindow::crossDomainAccessErrorMessage): Added.
* page/DOMWindow.h: Added setLocation, printErrorMessage, and
crossDomainAccessErrorMessage.
2010-12-09 Sam Weinig <sam@webkit.org>
Reviewed by Dan Bernstein.
WebKit2 needs smooth scrolling support on the mac
<rdar://problem/8219402>
* WebCore.xcodeproj/project.pbxproj: Change ScrollAnimatorMac.cpp to ScrollAnimatorMac.mm.
* platform/mac/ScrollAnimatorMac.cpp: Removed.
* platform/mac/ScrollAnimatorMac.h:
* platform/mac/ScrollAnimatorMac.mm: Copied from platform/mac/ScrollAnimatorMac.cpp.
(-[ScrollAnimationHelperDelegate initWithScrollAnimator:WebCore::]):
(-[ScrollAnimationHelperDelegate bounds]):
(-[ScrollAnimationHelperDelegate _immediateScrollToPoint:]):
(-[ScrollAnimationHelperDelegate convertSizeToBase:]):
(-[ScrollAnimationHelperDelegate convertSizeFromBase:]):
(-[ScrollAnimationHelperDelegate superview]):
(-[ScrollAnimationHelperDelegate documentView]):
(-[ScrollAnimationHelperDelegate window]):
(-[ScrollAnimationHelperDelegate _recursiveRecomputeToolTips]):
(WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
(WebCore::ScrollAnimatorMac::scroll):
(WebCore::ScrollAnimatorMac::setScrollPositionAndStopAnimation):
(WebCore::ScrollAnimatorMac::currentPosition):
(WebCore::ScrollAnimatorMac::immediateScrollToPoint):
Add implementation of ScrollAnimator for the Mac.
2010-12-09 Brady Eidson <beidson@apple.com>
Reviewed by Anders Carlsson.
<rdar://problem/8613779> and https://bugs.webkit.org/show_bug.cgi?id=50777
WebKit2 ContextMenuClient support
Export some symbols and headers needed by WebKit2 Mac:
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
2010-12-09 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r73635.
http://trac.webkit.org/changeset/73635
https://bugs.webkit.org/show_bug.cgi?id=50778
'Side-effects on 3 css tests needs closer review' (Requested
by mwenge on #webkit).
* platform/graphics/qt/ImageQt.cpp:
(loadResourcePixmap):
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderThemeQt::computeSizeBasedOnStyle):
(WebCore::RenderThemeQt::paintSearchField):
(WebCore::RenderThemeQt::adjustSearchFieldStyle):
(WebCore::RenderThemeQt::adjustSearchFieldCancelButtonStyle):
(WebCore::RenderThemeQt::paintSearchFieldCancelButton):
* platform/qt/RenderThemeQt.h:
2010-12-09 Robert Hogan <robert@webkit.org>
Reviewed by Andreas Kling.
[Qt] Search input field doesn't have cancel button
Add a cancel button to the search field and make it customizable
by the client. For now, use the close dialog button associated
with the application's style as the default.
https://bugs.webkit.org/show_bug.cgi?id=42887
* platform/graphics/qt/ImageQt.cpp:
(loadResourcePixmap):
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderThemeQt::computeSizeBasedOnStyle):
(WebCore::RenderThemeQt::paintSearchField):
(WebCore::RenderThemeQt::adjustSearchFieldStyle):
(WebCore::RenderThemeQt::adjustSearchFieldCancelButtonStyle):
(WebCore::RenderThemeQt::convertToPaintingRect):
(WebCore::RenderThemeQt::paintSearchFieldCancelButton):
* platform/qt/RenderThemeQt.h:
2010-12-09 Yael Aharon <yael.aharon@nokia.com>
Reviewed by Antonio Gomes.
Spatial Navigation: Crash when handling iframe of size 0.
https://bugs.webkit.org/show_bug.cgi?id=50730
if we have a frame of size 0, we would get into infinite loop and eventually crash. The reason is
that when the algorithm sees a starting rect of size 0, it assumes that there is no focused node,
thus restarts itself. The solution is to avoid considering iframes with size 0 for the spatial
navigation algorithm.
Test: fast/spatial-navigation/snav-hidden-iframe-zero-size.html
* page/FocusController.cpp:
(WebCore::updateFocusCandidateIfNeeded):
2010-12-09 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r73616.
http://trac.webkit.org/changeset/73616
https://bugs.webkit.org/show_bug.cgi?id=50772
Breaks chromium win build (Requested by hwennborg on #webkit).
* bindings/v8/IDBBindingUtilities.cpp:
(WebCore::createIDBKeyFromValue):
* bindings/v8/custom/V8IDBKeyCustom.cpp:
(WebCore::toV8):
* storage/IDBFactoryBackendImpl.cpp:
(WebCore::createTables):
(WebCore::IDBFactoryBackendImpl::open):
* storage/IDBKey.cpp:
(WebCore::IDBKey::IDBKey):
(WebCore::IDBKey::fromQuery):
(WebCore::IDBKey::bind):
(WebCore::IDBKey::bindWithNulls):
* storage/IDBKey.h:
(WebCore::IDBKey::create):
(WebCore::IDBKey::number):
2010-12-09 Antonio Gomes <agomes@rim.com>
Rubber stamped by by Gustavo Noronha Silva.
Buildfix for GTK+ with building with -no-video.
paintStockIcon static function was implemented under the ENABLE(VIDEO) guard
but used from outside the guard. See RenderThemeGtk::paintSearchFieldResultsDecoration()
and RenderThemeGtk::paintSearchFieldCancelButton() methods.
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::getMediaElementFromRenderObject):
2010-12-07 Antonio Gomes <agomes@rim.com>
Reviewed by Daniel Bates.
Spatial Navigation: code clean up
https://bugs.webkit.org/show_bug.cgi?id=50666
Patch unifies two FocusCandidate constructors, making caller sites
simpler. Now the special handling HTMLAreaElement gets is done within
the non default constructor (i.e. FocusCanditate(Node*, FocusDirection)).
No new tests needed.
* page/FocusController.cpp:
(WebCore::FocusController::findFocusCandidateInContainer):
* page/SpatialNavigation.cpp:
(WebCore::FocusCandidate::FocusCandidate):
2010-12-09 Philippe Normand <pnormand@igalia.com>
Reviewed by Eric Carlson.
[GStreamer] disable fullscreen on MacOS Tiger and Leopard
https://bugs.webkit.org/show_bug.cgi?id=50748
Don't support fullscreen video on Tiger and Leopard, just like the
QTKit player.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::supportsFullscreen):
2010-12-06 Philippe Normand <pnormand@igalia.com>
Reviewed by Martin Robinson.
[GTK] Support the Mozilla-style Fullscreen Javascript API
https://bugs.webkit.org/show_bug.cgi?id=50572
* GNUmakefile.am: enable the Javascript Fullscreen API feature if
it's been requested at configure time.
2010-12-09 Yong Li <yoli@rim.com>
Reviewed by Darin Adler.
Check the return value of ImageBuffer::create()
to avoid crash when ImageBuffer::create() fails.
https://bugs.webkit.org/show_bug.cgi?id=50631
No new test because it relies on the platform implementation
of ImageBuffer. It is hard to make ImageBuffer::create() fail
in most ports.
* platform/graphics/GeneratedImage.cpp:
(WebCore::GeneratedImage::drawPattern):
2010-12-09 Maciej Stachowiak <mjs@apple.com>
Reviewed by Dan Bernstein.
Implement "Use Selection for Find" in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=50737
<rdar://problem/8564881>
Implement a TakeFindStringFromSelection editor command. This is
used solely to implement the "Use Selection for Find" menu command
on Mac, and is not made available to script. On WebKit2, it is
very convenient to reuse the editing machinery since this command
is very similar to Copy.
* editing/Editor.h:
* editing/EditorCommand.cpp:
(WebCore::executeTakeFindStringFromSelection): Call to a mac-only Editor function.
(WebCore::enabledTakeFindStringFromSelection): Check using Editor::canCopyExcludingStandaloneImage
(WebCore::createCommandMap): Add "TakeFindStringFromSelection" command.
* editing/mac/EditorMac.mm:
(WebCore::Editor::canCopyExcludingStandaloneImages): Helper function; we can't use Editor::canCopy
since it would make no sense to enable "Use Selection for Find" when viewing a standalone image
document.
(WebCore::Editor::takeFindStringFromSelection): Implement by copying the selected text
to the special Find pasteboard.
2010-12-09 Abhishek Arya <inferno@chromium.org>
Reviewed by Dimitri Glazkov.
As part of r73559, I added the referenceNode check to validate whether the root
node of the iterator matches the node which is getting moved to other document.
referenceNode is initialized to root, however can get moved using previousNode
and nextNode methods, so it is required to use root directly.
https://bugs.webkit.org/show_bug.cgi?id=50764
Test: fast/dom/node-iterator-reference-node-moved-crash.html
* dom/Document.cpp:
(WebCore::Document::moveNodeIteratorsToNewDocument): change referenceNode to root.
2010-12-08 Dimitri Glazkov <dglazkov@chromium.org>
Reviewed by Darin Adler.
Provide a generic way to store shadowParent on a Node.
https://bugs.webkit.org/show_bug.cgi?id=50184
This patch makes TreeShared::m_parent act as either parentNode() or
shadowHost() for Node. The distinction is controlled by IsShadowRootFlag.
Refactoring, so no new tests. See performance result testing in bug.
* dom/Element.cpp:
(WebCore::Element::recalcStyle): Changed to use parentOrHostNode().
* dom/Node.cpp:
(WebCore::Node::shadowHost): Added.
(WebCore::Node::setShadowHost): Added.
(WebCore::Node::isContentEditable): Changed to use parentOrHostNode().
(WebCore::Node::isContentRichlyEditable): Ditto.
(WebCore::Node::nextRenderer): Ditto.
(WebCore::Node::virtualComputedStyle): Ditto.
(WebCore::Node::canStartSelection): Ditto.
(WebCore::Node::shadowTreeRootNode): Changed to use parentNodeGuaranteedHostFree().
(WebCore::Node::getEventAncestors): Ditto.
(WebCore::Node::defaultEventHandler): Changed to use parentOrHostNode().
* dom/Node.h: Added an extra flag and adjusted bit counts.
(WebCore::Node::isShadowNode): Made non-virtual, switched to use flag.
(WebCore::Node::parentNode): Made to recognize flag.
(WebCore::Node::parentOrHostNode): Changed to use straight parent() and made const.
(WebCore::Node::parentNodeGuaranteedHostFree): Added.
(WebCore::Node::shadowParentNode): Made non-virtual and const.
* editing/TextIterator.cpp:
(WebCore::depthCrossingShadowBoundaries): Changed to use parentOrHostNode();
(WebCore::nextInPreOrderCrossingShadowBoundaries): Ditto.
(WebCore::previousInPostOrderCrossingShadowBoundaries): Ditto.
(WebCore::setUpFullyClippedStack): Ditto.
(WebCore::TextIterator::advance): Ditto.
(WebCore::SimplifiedBackwardsTextIterator::advance): Ditto.
* page/DOMSelection.cpp:
(WebCore::DOMSelection::anchorNode): Changed to use parentNodeGuaranteedHostFree().
(WebCore::DOMSelection::focusNode): Ditto.
(WebCore::DOMSelection::baseNode): Ditto.
(WebCore::DOMSelection::extentNode): Ditto.
(WebCore::DOMSelection::getRangeAt): Ditto.
* rendering/MediaControlElements.cpp:
(WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement):
Changed to setShadowHost().
(WebCore::MediaControlShadowRootElement::updateStyle): Changed to use shadowHost().
(WebCore::MediaControlShadowRootElement::detach): Added an override to
explicitly set shadowHost to 0. Otherwise, the element will leak.
* rendering/MediaControlElements.h: Added detach def, removed members that are
no longer needed.
* rendering/RenderSVGShadowTreeRootContainer.cpp:
(WebCore::RenderSVGShadowTreeRootContainer::~RenderSVGShadowTreeRootContainer):
Added explicit clearing of shadowHost to avoid leaking and crashes,
because SVG shadow DOM can be dynamically attached/detached, producing
stale nodes in over/out event handling.
* rendering/RenderSlider.cpp:
(WebCore::SliderThumbElement::defaultEventHandler): Changed to use shadowHost().
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::~RenderTextControlSingleLine):
Added explicit clearing of shadowHost and explicit destruction to
avoid out-of-order removal of children.
* rendering/RenderTreeAsText.cpp:
(WebCore::nodePosition): Simplified code.
* rendering/SVGShadowTreeElements.cpp:
(WebCore::SVGShadowTreeRootElement::SVGShadowTreeRootElement): Added
setting of shadowHost.
(WebCore::SVGShadowTreeRootElement::attachElement): Changed to use shadowHost().
(WebCore::SVGShadowTreeRootElement::clearShadowHost): Added.
* rendering/SVGShadowTreeElements.h: Added def, removed members that are
no longer needed.
* rendering/ShadowElement.cpp:
(WebCore::ShadowBlockElement::initAsPart): Changed to use shadowHost().
* rendering/ShadowElement.h: Removed members that are no longer needed.
(WebCore::ShadowElement::ShadowElement): Added setting of shadowHost.
(WebCore::ShadowElement::detach): Added.
* rendering/TextControlInnerElements.cpp:
(WebCore::TextControlInnerElement::TextControlInnerElement): Added setting
of shadowHost.
(WebCore::TextControlInnerElement::attachInnerElement): Changed to use
isShadowNode().
(WebCore::TextControlInnerElement::detach): Added.
* rendering/TextControlInnerElements.h: Removed members that are no
longer needed.
* svg/SVGElement.cpp:
(WebCore::SVGElement::ownerSVGElement): Simplified code.
(WebCore::SVGElement::viewportElement): Ditto.
* svg/SVGLocatable.cpp:
(WebCore::SVGLocatable::computeCTM): Ditto.
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::title): Ditto.
* svg/SVGUseElement.cpp:
(WebCore::ShadowTreeUpdateBlocker::while): Ditto.
2010-12-09 Brady Eidson <beidson@apple.com>
Reviewed by Maciej Stachowiak.
<rdar://problem/7660733> and https://bugs.webkit.org/show_bug.cgi?id=50191
WebKit2 Authentication Support
* WebCore.exp.in:
2010-12-09 Peter Beverloo <peter@lvp-media.com>
Reviewed by Maciej Stachowiak.
Default CSS definitions for the figure and figcaption elements.
Tests: fast/html/figcaption-element.html
fast/html/figure-element.html
* css/html.css:
(figure): The default figure-style equals a blockquote
(figcaption): A non-sectioning block-level element
2010-12-09 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: Console records for failed XHRs should contain call stack and request method
https://bugs.webkit.org/show_bug.cgi?id=50390
When inspector front-end is open we capture call stack at the place where request is sent and
pass the stack along with other request data. There is a new type of console messages which
is NetworkErrorMessageType, all messages of that type will have requestId field initialized
with the corresponding network request identifier so that later on when we need to display
that message in the front-end we could pull request data from the Network panel using
this identifier. If there are no data for given requestId message formatting falls back to
the old implementation which lacks such things as call stack, request method and exact
source location.
* inspector/ConsoleMessage.cpp:
(WebCore::ConsoleMessage::ConsoleMessage):
(WebCore::ConsoleMessage::addToFrontend):
(WebCore::ConsoleMessage::isEqual):
* inspector/ConsoleMessage.h:
* inspector/Inspector.idl:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::didReceiveResponse):
(WebCore::InspectorController::didFailLoading):
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::identifierForInitialRequest):
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.prototype.updateMessageRepeatCount):
(WebInspector.ConsoleMessage):
(WebInspector.ConsoleMessage.prototype._formatMessage):
(WebInspector.ConsoleMessage.prototype.toMessageElement):
(WebInspector.ConsoleMessage.prototype.toString):
(WebInspector.ConsoleMessage.prototype.isEqual):
* inspector/front-end/ResourceManager.js:
(WebInspector.ResourceManager.prototype.identifierForInitialRequest):
* inspector/front-end/inspector.js:
(WebInspector.addConsoleMessage):
* page/Console.h:
2010-12-09 Dai Mikurube <dmikurube@google.com>
Reviewed by Kent Tamura.
Implement "required" attribute for select tags
https://bugs.webkit.org/show_bug.cgi?id=50380
Test: fast/forms/select-live-pseudo-selectors.html
platform/mac/fast/objc/dom-html-select-live-pseudo-selectors.html
* dom/SelectElement.cpp:
(WebCore::SelectElement::updateValidity): Added. It's a pure virtual function which is prepared so that HTMLSelectElement::updateValidity() calls HTMLSelectElement::setNeedsValidityCheck().
(WebCore::SelectElement::parseMultipleAttribute): Added calling updateValidity().
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::deselectItems): Added calling setNeedsValidityCheck() to enable validity check after changing. No tests for this change since this function is not exposed to JavaScript or any web interface.
(WebCore::HTMLSelectElement::setSelectedIndex): Added calling setNeedsValidityCheck().
(WebCore::HTMLSelectElement::setSelectedIndexByUser): Added calling setNeedsValidityCheck().
(WebCore::HTMLSelectElement::valueMissing): Added valueMissing() to check if selecting an invalid or placeholder label option when a valid required attribute is specified.
(WebCore::HTMLSelectElement::listBoxSelectItem): Added calling setNeedsValidityCheck(). No tests for this change since it is not called yet. Look at the bug 36177 and the changeset 56180.
(WebCore::HTMLSelectElement::add): Added calling setNeedsValidityCheck().
(WebCore::HTMLSelectElement::remove): Added calling setNeedsValidityCheck().
(WebCore::HTMLSelectElement::restoreFormControlState): Added calling setNeedsValidityCheck().
(WebCore::HTMLSelectElement::parseMappedAttribute): Added calling setNeedsValidityCheck().
(WebCore::HTMLSelectElement::selectAll): Added calling setNeedsValidityCheck().
(WebCore::HTMLSelectElement::reset): Added calling setNeedsValidityCheck().
(WebCore::HTMLSelectElement::updateListBoxSelection): Added calling setNeedsValidityCheck(). Skipped adding tests for this change as too complicated..
(WebCore::HTMLSelectElement::setLength): Added calling setNeedsValidityCheck().
(WebCore::HTMLSelectElement::isRequiredFormControl): Check if required or not.
(WebCore::HTMLSelectElement::hasPlaceholderLabelOption): Added.
(WebCore::HTMLSelectElement::updateValidity): Added. It calls setNeedsValidityCheck().
* html/HTMLSelectElement.h:
(WebCore::HTMLSelectElement::isOptionalFormControl): Check if not required.
* html/HTMLSelectElement.idl: Added a required attribute to select elements..
* html/ValidityState.cpp:
(WebCore::ValidityState::valueMissing): Added valueMissing check for select elements into the global checker, ValidityState::valueMissing().
* wml/WMLSelectElement.h:
(WebCore::WMLSelectElement::updateValidity): Added. It does nothing.
2010-12-07 Jeremy Orlow <jorlow@chromium.org>
Reviewed by Steve Block.
IndexedDB returns the wrong exceptions
https://bugs.webkit.org/show_bug.cgi?id=50632
IndexedDB exceptions need to have an offset so they can
be distinguished from DOM exceptions. We also need to
add strings for the various exceptions. Lastly, make
IDBDatabaseException use the common exception base class.
* bindings/js/JSDOMBinding.cpp:
(WebCore::setDOMException):
* bindings/v8/V8Proxy.cpp:
(WebCore::V8Proxy::setDOMException):
* dom/ExceptionCode.cpp:
(WebCore::getExceptionCodeDescription):
* dom/ExceptionCode.h:
* storage/IDBDatabaseError.h:
(WebCore::IDBDatabaseError::code):
* storage/IDBDatabaseException.h:
(WebCore::IDBDatabaseException::create):
(WebCore::IDBDatabaseException::ErrorCodeToExceptionCode):
(WebCore::IDBDatabaseException::IDBDatabaseException):
* storage/IDBDatabaseException.idl:
2010-12-09 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
Build fix for GTK+3. Use functions added for GTK+ 2.24 to get the
GDK window size.
* plugins/gtk/gtk2xtbin.c:
(gtk_xtbin_realize):
2010-12-09 Siddharth Mathur <siddharth.mathur@nokia.com>
Reviewed by Laszlo Gombos.
Use BUILDING_WEBKIT like other ports
https://bugs.webkit.org/show_bug.cgi?id=50713
* WebCore.pro: Change BUILD_WEBKIT to BUILDING_WEBKIT
2010-12-08 Erik Arvidsson <arv@chromium.org>
Reviewed by Darin Adler.
Replace getAttribute().isNull() with fastHasAttribute()
https://bugs.webkit.org/show_bug.cgi?id=50719
Covered by existing tests.
* dom/SelectElement.cpp:
(WebCore::SelectElement::reset):
* html/HTMLAppletElement.cpp:
(WebCore::HTMLAppletElement::rendererIsNeeded):
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::itemAfter):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::formNoValidate):
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::noValidate):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::defaultChecked):
(WebCore::HTMLInputElement::multiple):
(WebCore::HTMLInputElement::webkitdirectory):
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::defaultSelected):
* html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::asyncAttributeValue):
(WebCore::HTMLScriptElement::deferAttributeValue):
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::allowsMultipleFiles):
(WebCore::RenderFileUploadControl::allowsDirectoryUpload):
2010-12-08 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Reviewed by Martin Robinson.
Full page size flash plugins do not show in all situations
https://bugs.webkit.org/show_bug.cgi?id=47742
This patch moves the plugin widget size allocation after the
NPP_SetWindow is called with the effect that the resize of Flash
content no longer result in grey flash. This seems logical since the
widget tree cannot be fully constructed before the plugin receives
the new container window.
Test: manual-tests/plugins/gtk-windowed-grey-glitch.html
* plugins/gtk/PluginViewGtk.cpp:
(WebCore::PluginView::setNPWindowIfNeeded):
2010-12-08 David Hyatt <hyatt@apple.com>
Reviewed by Simon Fraser.
Fix regression from xji's wheel scroll patch. The vertical case is looking at the horizontal
maximum position and not the vertical position.
* platform/ScrollView.cpp:
(WebCore::ScrollView::wheelEvent):
2010-12-08 Sam Weinig <sam@webkit.org>
Reviewed by Darin Adler.
Need a way to get a WKBundleFrameRef from JS HTMLIFrameElement
https://bugs.webkit.org/show_bug.cgi?id=50726
* WebCore.xcodeproj/project.pbxproj: Expose HTMLIFrameElement.h.
2010-12-08 Matthew Delaney <mdelaney@apple.com>
Reviewed by Simon Fraser.
Add getter and setters for acceleratesRendering flag on layers
https://bugs.webkit.org/show_bug.cgi?id=50717
* platform/graphics/GraphicsLayer.cpp:
* platform/graphics/ca/GraphicsLayerCA.cpp:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
Plumbed through acceleratedRendering flag.
2010-12-07 Zhenyao Mo <zmo@google.com>
Reviewed by Kenneth Russell.
WebGLUniformLocation objects must be invalidated during linkProgram
https://bugs.webkit.org/show_bug.cgi?id=37118
* html/canvas/WebGLProgram.cpp:
(WebCore::WebGLProgram::WebGLProgram): Initialize link count to 0.
(WebCore::WebGLProgram::cacheActiveAttribLocations): Don't check link status through gl call; use the cached status instead.
* html/canvas/WebGLProgram.h:
(WebCore::WebGLProgram::getLinkCount): Get link count.
(WebCore::WebGLProgram::increaseLinkCount): Increase link count by 1.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getUniform): Fix a bug where wrong error is generated.
(WebCore::WebGLRenderingContext::linkProgram): call increaseLinkCount after linkProgram.
* html/canvas/WebGLUniformLocation.cpp:
(WebCore::WebGLUniformLocation::WebGLUniformLocation): Set program's link count upon creation.
(WebCore::WebGLUniformLocation::program): Return null if count doesn't match the program's.
(WebCore::WebGLUniformLocation::location): Return -1 if count doesn't match the program's.
* html/canvas/WebGLUniformLocation.h:
2010-12-08 Adele Peterson <adele@apple.com>
Reviewed by Darin Adler.
Fix for https://bugs.webkit.org/show_bug.cgi?id=50725
<rdar://problem/8694972> REGRESSION (r72052): "Search" placeholder in MobileMe mail is positioned too high
Test: fast/forms/placeholder-position.html
Since we center the inner text element for single line text controls,
we should ask the subclass to give us the y offset instead of trying to calculate it in the RenderTextControl class.
* rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::paintPlaceholder):
* rendering/RenderTextControl.h:
* rendering/RenderTextControlMultiLine.cpp: (WebCore::RenderTextControlMultiLine::textBlockInsetTop):
* rendering/RenderTextControlMultiLine.h:
* rendering/RenderTextControlSingleLine.cpp: (WebCore::RenderTextControlSingleLine::textBlockInsetTop):
* rendering/RenderTextControlSingleLine.h:
2010-12-08 Chris Rogers <crogers@google.com>
Reviewed by Kenneth Russell.
Add web audio files to mac port Xcode projects
https://bugs.webkit.org/show_bug.cgi?id=50721
No new tests since audio API is not yet implemented.
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::webkitAudioContext):
2010-12-08 Kent Tamura <tkent@chromium.org>
Reviewed by Alexey Proskuryakov.
Yensign hack should work with Shift_JIS and ISO-2022-JP encodings.
https://bugs.webkit.org/show_bug.cgi?id=49714
IE chooses a font which shows a yensign for 0x5c code point for a page
encoded in x-mac-japanese, ISO-2022-JP, EUC-JP, Shift_JIS, Shift_JIS_X0213-2000,
x-sjis, and Windows-31J.
We have emulated this behavior by replacing 0x5c with 0xa5 for EUC-JP and
Shift_JIS_X0213-2000. This change adds other encodings above.
Also, we move the HashSet initialization for isJapanese() and
backslashAsCurrencySymbol() to TextEncodingRegistry.cpp because of
ease of making them multi-thread safe.
* platform/text/TextEncoding.cpp:
(WebCore::TextEncoding::isJapanese): Just calls isJapaneseEncoding().
(WebCore::TextEncoding::backslashAsCurrencySymbol): Uses shouldShowBackslashAsCurrencySymbolIn().
* platform/text/TextEncodingRegistry.cpp:
(WebCore::addEncodingName): Moved from TextEncoding.cpp, and stop using atomicCanonicalTextEncodingName().
(WebCore::buildQuirksSets): Added. Initializes HashSets for isJapaneseEncoding() and shouldShowBackslashAsCurrencySymbolIn().
(WebCore::isJapaneseEncoding):
(WebCore::shouldShowBackslashAsCurrencySymbolIn):
(WebCore::extendTextCodecMaps): Add a call to buildQuirksSets().
* platform/text/TextEncodingRegistry.h:
2010-12-08 Andy Estes <aestes@apple.com>
Reviewed by Darin Adler.
Reflected unsigned attributes should be in the range [0, 2^31).
https://bugs.webkit.org/show_bug.cgi?id=50472
HTML5 says that unsigned reflected attributes should be in the range
[0, 2^31). When a value isn't in this range, a default value (or 0)
should be returned instead. Update the JS bindings code generator to
ensure 0 is returned when a content attribute value falls outside of
this range.
Tests: bindings/scripts/test/TestObj.idl
fast/html/marquee-element.html
* bindings/scripts/CodeGeneratorJS.pm: Return the maximum of 0 and the
content attribute as a 32-bit signed int when converting a native value
to an unsigned JS value.
* bindings/scripts/test/TestObj.idl: Add a reflected unsigned attribute
to test code generation.
* bindings/scripts/test/CPP/WebDOMTestObj.cpp: Update test results.
* bindings/scripts/test/CPP/WebDOMTestObj.h: Ditto.
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: Ditto.
* bindings/scripts/test/GObject/WebKitDOMTestObj.h: Ditto.
* bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
* bindings/scripts/test/JS/JSTestObj.h: Ditto.
* bindings/scripts/test/ObjC/DOMTestObj.h: Ditto.
* bindings/scripts/test/ObjC/DOMTestObj.mm: Ditto.
* bindings/scripts/test/V8/V8TestObj.cpp: Ditto.
2010-12-08 Carlos Garcia Campos <cgarcia@igalia.com>
Reviewed by Martin Robinson.
[GTK] Use gtk_icon_set_render_icon() to render icons in RenderThemeGtk
https://bugs.webkit.org/show_bug.cgi?id=50623
We don't need to cache the icons since the will be cached by GTK+,
and they will be rendered using the state and text direction.
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::paintStockIcon):
(WebCore::getMediaButtonIconSize):
(WebCore::RenderThemeGtk::initMediaColors):
(WebCore::RenderThemeGtk::initMediaButtons):
(WebCore::RenderThemeGtk::RenderThemeGtk):
(WebCore::RenderThemeGtk::~RenderThemeGtk):
(WebCore::RenderThemeGtk::gtkIconState):
(WebCore::RenderThemeGtk::adjustSearchFieldResultsDecorationStyle):
(WebCore::centerRectVerticallyInParentInputElement):
(WebCore::RenderThemeGtk::paintSearchFieldResultsDecoration):
(WebCore::RenderThemeGtk::adjustSearchFieldCancelButtonStyle):
(WebCore::RenderThemeGtk::paintSearchFieldCancelButton):
(WebCore::RenderThemeGtk::platformColorsDidChange):
(WebCore::RenderThemeGtk::paintMediaButton):
(WebCore::RenderThemeGtk::paintMediaFullscreenButton):
(WebCore::RenderThemeGtk::paintMediaMuteButton):
(WebCore::RenderThemeGtk::paintMediaPlayButton):
(WebCore::RenderThemeGtk::paintMediaSeekBackButton):
(WebCore::RenderThemeGtk::paintMediaSeekForwardButton):
* platform/gtk/RenderThemeGtk.h:
2010-12-08 Abhishek Arya <inferno@chromium.org>
Reviewed by Dimitri Glazkov.
Detach node iterator and move to new document when node gets moved.
https://bugs.webkit.org/show_bug.cgi?id=50697
Test: fast/dom/node-iterator-document-moved-crash.html
* dom/Document.cpp: Method that takes a node and new document as argument.
It detaches the node iterators belonging to the current document and attaches
them to the new document.
(WebCore::Document::moveNodeIteratorsToNewDocument):
* dom/Document.h: Function definition.
* dom/Node.cpp: When node is moved to another document, call the function to move
the iterators appropriately.
(WebCore::Node::setDocument):
2010-12-08 James Robinson <jamesr@chromium.org>
Reviewed by Kenneth Russell.
[chromium] Text is blurry on a large composited layer with an odd center x/y coordinate
https://bugs.webkit.org/show_bug.cgi?id=50702
Compute the center of a large layer using floats instead of ints to avoid roundoff errors.
Test: compositing/text-on-large-layer.html
* platform/graphics/chromium/ContentLayerChromium.cpp:
(WebCore::ContentLayerChromium::draw):
2010-12-08 Ryosuke Niwa <rniwa@webkit.org>
Reviewed by Dan Bernstein.
REGRESSION: LayoutTests/editing/selection/caret-rtl-2.html fails
https://bugs.webkit.org/show_bug.cgi?id=33503
The bug was caused by Font::offsetForPosition's not taking into account the containing block's text direction.
When RTL text appears in a LTR block, the offset at the beginning of RTL text is on the left of RTL text,
and the offset at the end of RTL text is on the right of RTL text. For example, if we had RTL text CBA,
then the correspondance between letters and offsets in logical order are: A -> 0, B -> 1, and C -> 2.
Case 1. CBA appears in a RTL block:
In this case, clicking on the visual left of CBA puts the caret naturally at Position("CBA", 2).
Clicking on the visual right of CBA puts the caret at Position("CBA", 0) as expected.
Case 2. CBA appears in a LTR block:
Because the containing block flows from left to right, by convention, Position("CBA", 2") corresponds
to the visual right of CBA, and Position("CBA", 0) corresponds to the visual left of CBA.
Therefore, clicking on the visual left of CBA should put the caret at Position("CBA", 0),
and clicking on the visual right should put it at Position("CBA", 2).
The bug was caused by WebKit's not considering case 2. The same bug also exist for LTR text in a RTL block.
Fixed the bug by taking care of the case 2 in InlineTextBox::offsetForPosition.
Tests: editing/selection/caret-ltr-2-left.html
editing/selection/caret-ltr-2.html
editing/selection/caret-ltr-right.html
editing/selection/caret-ltr.html
editing/selection/caret-rtl-2-left.html
editing/selection/caret-rtl-right.html
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::offsetForPosition):
2010-12-08 Anders Carlsson <andersca@apple.com>
Reviewed by Darin Adler.
Fix some clang++ warnings (one of which was an actual bug)
https://bugs.webkit.org/show_bug.cgi?id=50700
* page/mac/DragControllerMac.mm:
(WebCore::DragController::dragOperation):
Add parentheses to silent a clang warning.
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
Fix || vs && precedence bug uncovered by clang.
* platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
(WebCore::GraphicsContext3D::reshape):
Use an early return to avoid a warning.
2010-12-08 Chris Marrin <cmarrin@apple.com>
Reviewed by Simon Fraser.
Share code between Mac (CA) and Windows (CACF) GraphicsLayer implementations
https://bugs.webkit.org/show_bug.cgi?id=49388
Added copy constructors and casting operators to go between
TransformationMatrix and CATransform3D. Also added a copy
constructor to go from CGAffineTransform to TransformationMatrix.
Used these new methods to clean up platform CA code. This will
make it easier to port to Windows.
I also fixed a couple of build issues found when trying out a
Windows build.
This is a resubmission of changesets r73477 and r73483 with a
fix for the SL build. The failure was because TransformationMatrix
included QuartzCore/CATransform3D.h which brought in some system
libraries, including Quickdraw, which has a definition for
'Cursor' which clashed with WebCore's 'Cursor' class. So I had
to qualify its use in WebChromeClient.cpp in WebKit2.
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateContentsTransform):
(WebCore::GraphicsLayerCA::ensureCloneLayers):
(WebCore::GraphicsLayerCA::fetchCloneLayers):
* platform/graphics/ca/TransformationMatrixCA.cpp: Copied from WebCore/platform/graphics/ca/TransformationMatrixCA.cpp.
* platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
(PlatformCAAnimation::setFromValue):
(PlatformCAAnimation::setToValue):
(PlatformCAAnimation::setValues):
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayer::transform):
(PlatformCALayer::setTransform):
(PlatformCALayer::sublayerTransform):
(PlatformCALayer::setSublayerTransform):
(PlatformCALayer::contentsTransform):
(PlatformCALayer::setContentsTransform):
* platform/graphics/cg/TransformationMatrixCG.cpp:
(WebCore::TransformationMatrix::TransformationMatrix):
* platform/graphics/transforms/TransformationMatrix.h:
2010-12-07 Brian Weinstein <bweinstein@apple.com>
Reviewed by John Sullivan.
Layering Violation in ContextMenu - member variable of type HitTestResult
https://bugs.webkit.org/show_bug.cgi?id=50586
ContextMenu had a layering violation by having a member variable of type HitTestResult, because
classes in WebCore/platform can't know about classes in WebCore.
This patch moves the HitTestResult and all functions that use it out of ContextMenu into ContextMenuController.
All of the functions that dealt with populating the ContextMenu are now in ContextMenuController, and this
allowed us to delete the ContextMenu file, putting all of the cross-platform code that used to be it
in ContextMenuController, and the rest of the code is in the platform-specific files.
No change in behavior, no new tests.
* Android.mk: Removed ContextMenu.cpp.
* CMakeLists.txt: Ditto.
* GNUmakefile.am: Ditto.
* WebCore.gypi: Ditto.
* WebCore.pro: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::ContextMenuController): Initialized m_hitTestResult to an empty HitTestResult.
(WebCore::ContextMenuController::handleContextMenuEvent): Call populate on the ContextMenuController instead
of the ContextMenu.
(WebCore::ContextMenuController::createContextMenu): Fix some indination, and store the HitTestResult in a member
variable.
(WebCore::ContextMenuController::showContextMenu): Call addInspectElementItem on the ContextMenuController.
(WebCore::ContextMenuController::contextMenuItemSelected): Use m_hitTestResult whenever we need a HitTestResult.
(WebCore::ContextMenuController::appendItem): Validates the item for its state, and then appends it to the parent menu.
This allowed us to move checkOrEnableIfNeeded from ContextMenu.
These functions were all moved from ContextMenu, and changed slightly to fit in ContextMenuController.
All calls to ContextMenu::appendItem were changed to ContextMenuController::appendItem, which takes care
of validating the menu.
(WebCore::separatorItem): Moved from ContextMenu.
(WebCore::ContextMenuController::createAndAppendFontSubMenu): Ditto.
(WebCore::ContextMenuController::createAndAppendSpellingAndGrammarSubMenu): Ditto.
(WebCore::ContextMenuController::createAndAppendSpeechSubMenu): Ditto.
(WebCore::ContextMenuController::createAndAppendWritingDirectionSubMenu): Ditto.
(WebCore::ContextMenuController::createAndAppendTextDirectionSubMenu): Ditto.
(WebCore::ContextMenuController::createAndAppendSubstitutionsSubMenu): Ditto.
(WebCore::ContextMenuController::createAndAppendTransformationsSubMenu): Ditto.
(WebCore::selectionContainsPossibleWord): Ditto.
(WebCore::ContextMenuController::populate): Ditto.
(WebCore::ContextMenuController::addInspectElementItem): Ditto.
(WebCore::ContextMenuController::checkOrEnableIfNeeded): Ditto.
* page/ContextMenuController.h:
(WebCore::ContextMenuController::hitTestResult): Returns the HitTestResult of the current ContextMenu.
* platform/ContextMenu.cpp: Removed.
* platform/ContextMenu.h:
* platform/efl/ContextMenuEfl.cpp:
(WebCore::ContextMenu::ContextMenu): Removed m_hitTestResult from the constructor.
(WebCore::ContextMenu::appendItem): Removed the call to checkOrEnableIfNeeded.
* platform/gtk/ContextMenuGtk.cpp:
(WebCore::ContextMenu::ContextMenu): Removed m_hitTestResult from the constructor.
(WebCore::ContextMenu::appendItem): Ditto.
* platform/haiku/ContextMenuHaiku.cpp:
(WebCore::ContextMenu::ContextMenu): Removed m_hitTestResult from the constructor.
(WebCore::ContextMenu::appendItem): Ditto.
(WebCore::ContextMenu::insertItem): Ditto.
* platform/mac/ContextMenuMac.mm:
(-[WebCoreMenuTarget validateMenuItem:]): Calls checkOrEnableIfNeeded on the controller instead of
the context menu.
(WebCore::ContextMenu::ContextMenu): Removed m_hitTestResult from the constructor.
(WebCore::ContextMenu::appendItem): Removed the call to checkOrEnableIfNeeded.
(WebCore::ContextMenu::insertItem): Ditto.
* platform/win/ContextMenuWin.cpp:
(WebCore::ContextMenu::ContextMenu): Removed m_hitTestResult from the constructor.
(WebCore::ContextMenu::insertItem): Removed the call to checkOrEnableIfNeeded.
* platform/wx/ContextMenuWx.cpp:
(WebCore::ContextMenu::ContextMenu): Removed m_hitTestResult from the constructor.
(ContextMenu::appendItem): Ditto.
2010-12-08 Martin Robinson <mrobinson@igalia.com>
Reviewed by John Sullivan.
[GTK] Layering violation in ContextMenuGtk.cpp
https://bugs.webkit.org/show_bug.cgi?id=50676
ContextMenuGtk accesses the page's ContextMenuController, which is a layering
violation. This was fixed for Mac with change r73469. We make a similar fix here
by moving the "activated" signal connection to the WebKit layer.
* platform/gtk/ContextMenuGtk.cpp:
(WebCore::ContextMenu::appendItem): Remove access of ContextMenuController. This
is a layering violation.
2010-12-08 Jessie Berlin <jberlin@apple.com>
Reviewed by Adam Roben.
WebKit2: Implement WebChromeClient::exceededDatabaseQuota
https://bugs.webkit.org/show_bug.cgi?id=50656
* WebCore.exp.in:
Export the symbol for SecurityOrigin::databaseIdentifier.
2010-12-08 Csaba Osztrogonác <ossy@webkit.org>
Unreviewed, rolling out r73521.
http://trac.webkit.org/changeset/73521
https://bugs.webkit.org/show_bug.cgi?id=50640
It broke 90 layout tests
* bindings/js/JSDOMBinding.cpp:
(WebCore::printErrorMessageForFrame):
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::crossDomainAccessErrorMessage):
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::setLocation):
* page/DOMWindow.cpp:
* page/DOMWindow.h:
2010-12-08 David Hyatt <hyatt@apple.com>
Reviewed by Anders Carlsson.
https://bugs.webkit.org/show_bug.cgi?id=50576
REGRESSION in position of autocomplete popup on RTL page.
RTL static position computation did not subtract out the width of the enclosing box if the
immediate parent was a RenderInline. This bug was exposed by properly changing the RenderView
to be RTL when the document was RTL.
Added three new tests in fast/block/positioning.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computePositionedLogicalWidth):
2010-12-08 Xiaomei Ji <xji@chromium.org>
Reviewed by David Hyatt.
Fix backward mouse wheeling not working when scroll position is below 0.
https://bugs.webkit.org/show_bug.cgi?id=50370
Tests: fast/events/wheelevent-in-horizontal-scrollbar-in-rtl.html
fast/events/wheelevent-in-vertical-scrollbar-in-rtl.html
* platform/ScrollView.cpp:
(WebCore::ScrollView::wheelEvent):
2010-12-08 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
Fix pauseAnimation API to work with shorthand properties
https://bugs.webkit.org/show_bug.cgi?id=50639
The pause API is always called with a long-hand property, but that
property may be animating via a shorthand. Detect this, and pause
such shorthand animations.
* page/animation/AnimationBase.cpp:
(WebCore::ShorthandPropertyWrapper::propertyWrappers): Expose the vector
of wrappers used by a shorthand wrapper.
(WebCore::gatherEnclosingShorthandProperties): Utility function that walks
through the shorthand wrappers, keeping track of which can affect the given
property.
(WebCore::AnimationBase::animatableShorthandsAffectingProperty): Return a set
of shorthand properties that can affect the given property.
* page/animation/AnimationBase.h: New method.
* page/animation/CompositeAnimation.cpp:
(WebCore::CompositeAnimation::pauseTransitionAtTime): If we don't find the
property itself, check whether it's being animated via shorthands.
2010-12-08 David Hyatt <hyatt@apple.com>
Reviewed by Beth Dakin.
<rdar://problem/8740920> Gestures: Frame::scalePage() broken by r73885
Make sure the transform applied to the RenderView for page scaling is incorporated into the
docTop/Bottom/Left/Right accessors.
* rendering/RenderView.cpp:
(WebCore::RenderView::docTop):
(WebCore::RenderView::docBottom):
(WebCore::RenderView::docLeft):
(WebCore::RenderView::docRight):
2010-12-08 Ilya Tikhonovsky <loislo@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: Protocol cleanup task. Remove WebInspector wrappers
for TimelineAgent functions.
https://bugs.webkit.org/show_bug.cgi?id=50690
* inspector/Inspector.idl:
* inspector/front-end/TimelineAgent.js:
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel):
(WebInspector.TimelinePanel.prototype.timelineProfilerWasStarted):
(WebInspector.TimelinePanel.prototype.timelineProfilerWasStopped):
2010-12-08 Philippe Normand <pnormand@igalia.com>
Reviewed by Gustavo Noronha Silva.
[GTK] media/fullscreen* failing on 64-bits Debug
https://bugs.webkit.org/show_bug.cgi?id=50394
Avoid emiting durationchanged in the case where the previous
duration was 0 because that case is already handled by the
HTMLMediaElement.
Test: media/media-fullscreen*.html
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::durationChanged):
2010-12-07 Darin Adler <darin@apple.com>
Reviewed by Geoffrey Garen.
Move DOMWindow::setLocation logic into DOMWindow class and out of JavaScript binding
https://bugs.webkit.org/show_bug.cgi?id=50640
* bindings/js/JSDOMBinding.cpp:
(WebCore::printErrorMessageForFrame): Removed body; just call through to
DOMWindow::printErrorMessage.
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::crossDomainAccessErrorMessage): Removed body;
just call through to DOMWindow::crossDomainAccessErrorMessage.
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::setLocation): Changed terminology to use activeFrame and
firstFrame, rather than the older lexicalFrame and dynamicFrame. Removed most
of the body and moved it into DOMWindow::setLocation.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::setLocation): Added. Does all the same work that
JSDOMWindow::setLocation used to do, but in a way that's not specific
to JavaScript.
(WebCore::DOMWindow::printErrorMessage): Added.
(WebCore::DOMWindow::crossDomainAccessErrorMessage): Added.
* page/DOMWindow.h: Added setLocation, printErrorMessage, and
crossDomainAccessErrorMessage.
2010-12-08 Alejandro G. Castro <alex@igalia.com>
Unreviewed, rolling out r73494.
http://trac.webkit.org/changeset/73494
https://bugs.webkit.org/show_bug.cgi?id=50380
The tests added are crashing in the debug bots (macn and gtk)
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::deselectItems):
(WebCore::HTMLSelectElement::setSelectedIndex):
(WebCore::HTMLSelectElement::setSelectedIndexByUser):
(WebCore::HTMLSelectElement::listBoxSelectItem):
(WebCore::HTMLSelectElement::add):
(WebCore::HTMLSelectElement::remove):
(WebCore::HTMLSelectElement::restoreFormControlState):
(WebCore::HTMLSelectElement::parseMappedAttribute):
(WebCore::HTMLSelectElement::selectAll):
(WebCore::HTMLSelectElement::reset):
(WebCore::HTMLSelectElement::updateListBoxSelection):
(WebCore::HTMLSelectElement::setLength):
* html/HTMLSelectElement.h:
(WebCore::HTMLSelectElement::isOptionalFormControl):
* html/HTMLSelectElement.idl:
* html/ValidityState.cpp:
(WebCore::ValidityState::valueMissing):
2010-12-07 Ilya Tikhonovsky <loislo@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: Inspector protocol cleanup task. Remove
WebInspector wrappers for DOMAgent functions.
There were a lot of wrappers in WebInspector namespace
for different WebInspector agents functions. As far as we have a
generic mechanic for such functions we can remove these
wrappers and register domAgent instance as a handler for
DOM domain notifications.
https://bugs.webkit.org/show_bug.cgi?id=50626
* inspector/Inspector.idl:
* inspector/front-end/DOMAgent.js:
(WebInspector.DOMNode):
(WebInspector.DOMAgent):
(WebInspector.DOMAgent.prototype.attributesUpdated):
(WebInspector.DOMAgent.prototype.characterDataModified):
(WebInspector.DOMAgent.prototype.setDocument):
(WebInspector.DOMAgent.prototype.setDetachedRoot):
(WebInspector.DOMAgent.prototype.setChildNodes):
(WebInspector.DOMAgent.prototype.childNodeCountUpdated):
(WebInspector.DOMAgent.prototype.childNodeInserted):
(WebInspector.DOMAgent.prototype.childNodeRemoved):
(WebInspector.EventListeners.getEventListenersForNodeAsync):
* inspector/front-end/inspector.js:
(WebInspector.didCommitLoad):
2010-12-08 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: remove groupLevel counter from console messages
https://bugs.webkit.org/show_bug.cgi?id=50672
* inspector/ConsoleMessage.cpp:
(WebCore::ConsoleMessage::ConsoleMessage):
(WebCore::ConsoleMessage::addToFrontend):
(WebCore::ConsoleMessage::isEqual):
* inspector/ConsoleMessage.h:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::addMessageToConsole):
(WebCore::InspectorController::clearConsoleMessages):
(WebCore::InspectorController::startGroup):
(WebCore::InspectorController::endGroup):
* inspector/InspectorController.h:
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.createFilterElement):
(WebInspector.ConsoleView):
(WebInspector.ConsoleView.prototype.filter):
(WebInspector.ConsoleView.prototype.afterShow):
(WebInspector.ConsoleView.prototype.addMessage):
(WebInspector.ConsoleView.prototype.updateMessageRepeatCount):
(WebInspector.ConsoleView.prototype.clearMessages):
(WebInspector.ConsoleMessage):
(WebInspector.ConsoleMessage.createTextMessage):
(WebInspector.ConsoleMessage.prototype.toMessageElement):
(WebInspector.ConsoleMessage.prototype._addMessageHeader):
(WebInspector.ConsoleMessage.prototype._updateRepeatCount):
(WebInspector.ConsoleMessage.prototype.toString):
(WebInspector.ConsoleMessage.prototype.isEqual):
(WebInspector.ConsoleGroup):
* inspector/front-end/Resource.js:
(WebInspector.Resource.prototype._checkWarning):
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame.prototype._addMessageToSource):
* inspector/front-end/inspector.js:
(WebInspector.addConsoleMessage):
(WebInspector.log.logMessage):
(WebInspector.log):
2010-12-07 Pavel Podivilov <podivilov@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: introduce DebuggerModel class representing InspectorDebuggerAgent state.
https://bugs.webkit.org/show_bug.cgi?id=50567
Moved debugging-related code from BreakpointManager to DebuggerModel. Moved Breakpoint class to a separate file.
* English.lproj/localizedStrings.js:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/front-end/Breakpoint.js: Added.
(WebInspector.Breakpoint): Moved from BreakpointManager.js.
* inspector/front-end/BreakpointManager.js:
(WebInspector.BreakpointManager): Remove debugger-related methods.
* inspector/front-end/CallStackSidebarPane.js:
(WebInspector.CallStackSidebarPane):
(WebInspector.CallStackSidebarPane.prototype._nativeBreakpointHit):
(WebInspector.CallStackSidebarPane.prototype._scriptBreakpointHit):
* inspector/front-end/DebuggerModel.js: Added.
(WebInspector.DebuggerModel): Moved debugger-related methods from BreakpointManager.
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel):
(WebInspector.ScriptsPanel.prototype.continueToLine):
(WebInspector.ScriptsPanel.prototype.editScriptSource.mycallback):
(WebInspector.ScriptsPanel.prototype.editScriptSource):
(WebInspector.ScriptsPanel.prototype._debuggerPaused):
(WebInspector.ScriptsPanel.prototype._debuggerResumed):
(WebInspector.ScriptsPanel.prototype.reset):
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame.prototype._createViewerIfNeeded):
(WebInspector.SourceFrameDelegate.prototype.addBreakpoint):
(WebInspector.SourceFrameDelegate.prototype.breakpoints):
(WebInspector.SourceFrameDelegate.prototype.findBreakpoint):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
* inspector/front-end/inspector.js:
(WebInspector.createJSBreakpointsSidebarPane):
(WebInspector.restoredBreakpoint):
(WebInspector.pausedScript):
(WebInspector.resumedScript):
(WebInspector.reset):
2010-12-08 Pavel Podivilov <podivilov@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: SourceFrame refactoring.
https://bugs.webkit.org/show_bug.cgi?id=50223
SourceFrame should ask BreakpointManager about existing breakpoints instead of maintaining
it's own storages. Move common code from ScriptView and SourceView to SourceFrame.
* inspector/front-end/BreakpointManager.js:
(WebInspector.BreakpointManager.prototype.findBreakpoints):
(WebInspector.BreakpointManager.prototype.findBreakpoint):
* inspector/front-end/Script.js:
(WebInspector.Script):
(WebInspector.Script.prototype.get linesCount):
(WebInspector.Script.prototype.get source):
(WebInspector.Script.prototype.set source):
* inspector/front-end/ScriptView.js:
(WebInspector.ScriptView):
(WebInspector.ScriptView.prototype._scriptSourceChanged):
(WebInspector.ScriptFrameDelegateImpl):
(WebInspector.ScriptFrameDelegateImpl.prototype.canEditScripts):
(WebInspector.ScriptFrameDelegateImpl.prototype.editLineComplete):
(WebInspector.ScriptFrameDelegateImpl.prototype.scripts):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel):
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame): Add common methods of ScriptView and SourceView.
(WebInspector.SourceFrameDelegate):
(WebInspector.SourceFrameDelegate.prototype.canEditScripts):
(WebInspector.SourceFrameDelegate.prototype.editLineComplete):
(WebInspector.SourceFrameDelegate.prototype.scripts):
* inspector/front-end/SourceView.js:
(WebInspector.SourceView):
(WebInspector.SourceView.prototype._contentLoaded):
(WebInspector.ResourceFrameDelegateImpl):
(WebInspector.ResourceFrameDelegateImpl.prototype.canEditScripts):
(WebInspector.ResourceFrameDelegateImpl.prototype.editLineComplete):
(WebInspector.ResourceFrameDelegateImpl.prototype.scripts):
2010-12-08 Yuta Kitamura <yutak@chromium.org>
Unreviewed, rolling out r73492.
http://trac.webkit.org/changeset/73492
https://bugs.webkit.org/show_bug.cgi?id=49914
Caused a lot of pixel test failures and broke Windows build.
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::createGraphicsContextPrivate):
(WebCore::GraphicsContext::destroyGraphicsContextPrivate):
(WebCore::GraphicsContext::save):
(WebCore::GraphicsContext::restore):
(WebCore::GraphicsContext::setStrokeThickness):
(WebCore::GraphicsContext::setStrokeStyle):
(WebCore::GraphicsContext::setStrokeColor):
(WebCore::GraphicsContext::setShadow):
(WebCore::GraphicsContext::clearShadow):
(WebCore::GraphicsContext::getShadow):
(WebCore::GraphicsContext::strokeThickness):
(WebCore::GraphicsContext::strokeStyle):
(WebCore::GraphicsContext::strokeColor):
(WebCore::GraphicsContext::strokeColorSpace):
(WebCore::GraphicsContext::fillRule):
(WebCore::GraphicsContext::setFillRule):
(WebCore::GraphicsContext::setFillColor):
(WebCore::GraphicsContext::fillColor):
(WebCore::GraphicsContext::fillColorSpace):
(WebCore::GraphicsContext::setShouldAntialias):
(WebCore::GraphicsContext::shouldAntialias):
(WebCore::GraphicsContext::setStrokePattern):
(WebCore::GraphicsContext::setFillPattern):
(WebCore::GraphicsContext::setStrokeGradient):
(WebCore::GraphicsContext::setFillGradient):
(WebCore::GraphicsContext::fillGradient):
(WebCore::GraphicsContext::strokeGradient):
(WebCore::GraphicsContext::fillPattern):
(WebCore::GraphicsContext::strokePattern):
(WebCore::GraphicsContext::setShadowsIgnoreTransforms):
(WebCore::GraphicsContext::updatingControlTints):
(WebCore::GraphicsContext::setUpdatingControlTints):
(WebCore::GraphicsContext::setPaintingDisabled):
(WebCore::GraphicsContext::paintingDisabled):
(WebCore::GraphicsContext::textDrawingMode):
(WebCore::GraphicsContext::setTextDrawingMode):
* platform/graphics/GraphicsContext.h:
* platform/graphics/GraphicsContextPrivate.h: Added.
(WebCore::GraphicsContextState::GraphicsContextState):
(WebCore::GraphicsContextPrivate::GraphicsContextPrivate):
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::setPlatformFill):
(WebCore::setPlatformStroke):
(WebCore::drawPathShadow):
(WebCore::fillCurrentCairoPath):
(WebCore::strokeCurrentCairoPath):
(WebCore::GraphicsContext::GraphicsContext):
(WebCore::GraphicsContext::~GraphicsContext):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::setPlatformShadow):
(WebCore::GraphicsContext::strokeRect):
(WebCore::GraphicsContext::setAlpha):
(WebCore::GraphicsContext::getAlpha):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::GraphicsContext):
(WebCore::GraphicsContext::~GraphicsContext):
(WebCore::GraphicsContext::applyStrokePattern):
(WebCore::GraphicsContext::applyFillPattern):
(WebCore::GraphicsContext::drawPath):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::setPlatformShadow):
(WebCore::GraphicsContext::strokeRect):
* platform/graphics/haiku/GraphicsContextHaiku.cpp:
(WebCore::GraphicsContext::GraphicsContext):
(WebCore::GraphicsContext::~GraphicsContext):
* platform/graphics/openvg/GraphicsContextOpenVG.cpp:
(WebCore::GraphicsContext::GraphicsContext):
(WebCore::GraphicsContext::~GraphicsContext):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::clipOut):
(WebCore::GraphicsContext::addInnerRoundedRectClip):
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::GraphicsContext):
(WebCore::GraphicsContext::~GraphicsContext):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::setPlatformShadow):
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::GraphicsContext):
(WebCore::GraphicsContext::~GraphicsContext):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::setPlatformShadow):
* platform/graphics/win/GraphicsContextCGWin.cpp:
(WebCore::GraphicsContext::GraphicsContext):
* platform/graphics/win/GraphicsContextCairoWin.cpp:
(WebCore::GraphicsContext::GraphicsContext):
* platform/graphics/wince/GraphicsContextWinCE.cpp:
(WebCore::GraphicsContext::GraphicsContext):
(WebCore::GraphicsContext::~GraphicsContext):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::fillRect):
* platform/graphics/wx/GraphicsContextWx.cpp:
(WebCore::GraphicsContext::GraphicsContext):
(WebCore::GraphicsContext::~GraphicsContext):
2010-12-08 Dai Mikurube <dmikurube@google.com>
Reviewed by Kent Tamura.
Implement "required" attribute for select tags
https://bugs.webkit.org/show_bug.cgi?id=50380
Test: fast/forms/select-live-pseudo-selectors.html
platform/mac/fast/objc/dom-html-select-live-pseudo-selectors.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::deselectItems): Added calling setNeedsValidityCheck() to enable validity check after changing. No tests for this change since this function is not exposed to JavaScript or any web interface.
(WebCore::HTMLSelectElement::setSelectedIndex): Added calling setNeedsValidityCheck().
(WebCore::HTMLSelectElement::setSelectedIndexByUser): Added calling setNeedsValidityCheck().
(WebCore::HTMLSelectElement::valueMissing): Added valueMissing() to check if selecting an invalid or placeholder label option when a valid required attribute is specified.
(WebCore::HTMLSelectElement::listBoxSelectItem): Added calling setNeedsValidityCheck(). No tests for this change since it is not called yet. Look at the bug 36177 and the changeset 56180.
(WebCore::HTMLSelectElement::add): Added calling setNeedsValidityCheck().
(WebCore::HTMLSelectElement::remove): Added calling setNeedsValidityCheck().
(WebCore::HTMLSelectElement::restoreFormControlState): Added calling setNeedsValidityCheck().
(WebCore::HTMLSelectElement::parseMappedAttribute): Added calling setNeedsValidityCheck().
(WebCore::HTMLSelectElement::selectAll): Added calling setNeedsValidityCheck().
(WebCore::HTMLSelectElement::reset): Added calling setNeedsValidityCheck().
(WebCore::HTMLSelectElement::updateListBoxSelection): Added calling setNeedsValidityCheck(). Skipped adding tests for this change as too complicated..
(WebCore::HTMLSelectElement::setLength): Added calling setNeedsValidityCheck().
(WebCore::HTMLSelectElement::isRequiredFormControl): Check if required or not.
(WebCore::HTMLSelectElement::hasPlaceholderLabelOption): Added.
* html/HTMLSelectElement.h:
(WebCore::HTMLSelectElement::isOptionalFormControl): Check if not required.
* html/HTMLSelectElement.idl: Added a required attribute to select elements..
* html/ValidityState.cpp:
(WebCore::ValidityState::valueMissing): Added valueMissing check for select elements into the global checker, ValidityState::valueMissing().
2010-12-08 Renata Hodovan <reni@webkit.org>
Reviewed by Andreas Kling.
GraphicsContext: Merge m_common and m_data
https://bugs.webkit.org/show_bug.cgi?id=49914
Move data members from GraphicsContextPrivate into GraphicsContext. So GraphicsContextPlatform.h
and m_common became unnecessary. They are removed.
Add two methods to GraphicsContext: platformInit() and platformDestroy(), which
make the constructor of GraphicsContext clearer.
Besides add a getter to the private GraphicsContext::m_state member, because some inline
functions in cairo need it.
No new test is needed, because this is a refactoring.
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::GraphicsContext):
(WebCore::GraphicsContext::~GraphicsContext):
(WebCore::GraphicsContext::save):
(WebCore::GraphicsContext::restore):
(WebCore::GraphicsContext::setStrokeThickness):
(WebCore::GraphicsContext::setStrokeStyle):
(WebCore::GraphicsContext::setStrokeColor):
(WebCore::GraphicsContext::setShadow):
(WebCore::GraphicsContext::clearShadow):
(WebCore::GraphicsContext::getShadow):
(WebCore::GraphicsContext::strokeThickness):
(WebCore::GraphicsContext::strokeStyle):
(WebCore::GraphicsContext::strokeColor):
(WebCore::GraphicsContext::strokeColorSpace):
(WebCore::GraphicsContext::fillRule):
(WebCore::GraphicsContext::setFillRule):
(WebCore::GraphicsContext::setFillColor):
(WebCore::GraphicsContext::fillColor):
(WebCore::GraphicsContext::fillColorSpace):
(WebCore::GraphicsContext::setShouldAntialias):
(WebCore::GraphicsContext::shouldAntialias):
(WebCore::GraphicsContext::state):
(WebCore::GraphicsContext::setStrokePattern):
(WebCore::GraphicsContext::setFillPattern):
(WebCore::GraphicsContext::setStrokeGradient):
(WebCore::GraphicsContext::setFillGradient):
(WebCore::GraphicsContext::fillGradient):
(WebCore::GraphicsContext::strokeGradient):
(WebCore::GraphicsContext::fillPattern):
(WebCore::GraphicsContext::strokePattern):
(WebCore::GraphicsContext::setShadowsIgnoreTransforms):
(WebCore::GraphicsContext::updatingControlTints):
(WebCore::GraphicsContext::setUpdatingControlTints):
(WebCore::GraphicsContext::setPaintingDisabled):
(WebCore::GraphicsContext::paintingDisabled):
(WebCore::GraphicsContext::textDrawingMode):
(WebCore::GraphicsContext::setTextDrawingMode):
* platform/graphics/GraphicsContext.h:
(WebCore::GraphicsContextState::GraphicsContextState):
* platform/graphics/GraphicsContextPrivate.h: Removed.
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::setPlatformFill):
(WebCore::setPlatformStroke):
(WebCore::drawPathShadow):
(WebCore::fillCurrentCairoPath):
(WebCore::strokeCurrentCairoPath):
(WebCore::GraphicsContext::platformInit):
(WebCore::GraphicsContext::platformDestroy):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::setPlatformShadow):
(WebCore::GraphicsContext::strokeRect):
(WebCore::GraphicsContext::setAlpha):
(WebCore::GraphicsContext::getAlpha):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::platformInit):
(WebCore::GraphicsContext::platformDestroy):
(WebCore::GraphicsContext::applyStrokePattern):
(WebCore::GraphicsContext::applyFillPattern):
(WebCore::GraphicsContext::drawPath):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::setPlatformShadow):
(WebCore::GraphicsContext::strokeRect):
* platform/graphics/haiku/GraphicsContextHaiku.cpp:
(WebCore::GraphicsContext::platformInit):
(WebCore::GraphicsContext::platformDestroy):
* platform/graphics/openvg/GraphicsContextOpenVG.cpp:
(WebCore::GraphicsContext::platformInit):
(WebCore::GraphicsContext::platformDestroy):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::clipOut):
(WebCore::GraphicsContext::addInnerRoundedRectClip):
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::platformInit):
(WebCore::GraphicsContext::platformDestroy):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::setPlatformShadow):
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::platformInit):
(WebCore::GraphicsContext::platformDestroy):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::setPlatformShadow):
* platform/graphics/win/GraphicsContextCGWin.cpp:
(WebCore::GraphicsContext::platformInit):
* platform/graphics/win/GraphicsContextCairoWin.cpp:
(WebCore::GraphicsContext::platformInit):
* platform/graphics/wince/GraphicsContextWinCE.cpp:
(WebCore::GraphicsContext::platformInit):
(WebCore::GraphicsContext::platformDestroy):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::fillRect):
* platform/graphics/wx/GraphicsContextWx.cpp:
(WebCore::GraphicsContext::platformInit):
(WebCore::GraphicsContext::platformDestroy):
2010-12-07 Anton Muhin <antonm@chromium.org>
Reviewed by Nate Chapin.
Port http://trac.webkit.org/changeset/72819/ to v8-backed ports.
https://bugs.webkit.org/show_bug.cgi?id=50246
* bindings/v8/V8DOMMap.h:
(WebCore::AbstractWeakReferenceMap::Visitor::startMap):
(WebCore::AbstractWeakReferenceMap::Visitor::endMap):
(WebCore::WeakReferenceMap::visit):
* bindings/v8/V8GCController.cpp:
(WebCore::GrouperItem::GrouperItem):
(WebCore::GrouperItem::groupId):
(WebCore::makeV8ObjectGroups):
(WebCore::NodeGrouperVisitor::NodeGrouperVisitor):
(WebCore::NodeGrouperVisitor::visitDOMWrapper):
(WebCore::NodeGrouperVisitor::applyGrouping):
(WebCore::DOMObjectGrouperVisitor::ObjectGrouperVisitor):
(WebCore::DOMObjectGrouperVisitor::startMap):
(WebCore::DOMObjectGrouperVisitor::endMap):
(WebCore::DOMObjectGrouperVisitor::visitDOMWrapper):
(WebCore::V8GCController::gcPrologue):
2010-12-07 Daniel Bates <dbates@rim.com>
Reviewed by Martin Robinson.
Implement focus ring support for image maps
https://bugs.webkit.org/show_bug.cgi?id=50371
Implement GraphicsContext::drawFocusRing(const Path&, ...) so as to support
drawing a focus ring for image maps.
Tests: fast/images/imagemap-circle-focus-ring.html
fast/images/imagemap-polygon-focus-ring.html
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::adjustFocusRingColor): Added.
(WebCore::adjustFocusRingLineWidth): Added.
(WebCore::focusRingStrokeStyle): Added.
(WebCore::GraphicsContext::drawFocusRing): Moved code for determining focus ring- color,
line width and stroke style into functions adjustFocusRingColor(), adjustFocusRingLineWidth(),
and focusRingStrokeStyle(), respectively. Implemented GraphicsContext::drawFocusRing(const Path&, ...).
2010-12-07 Sergio Villar Senin <svillar@igalia.com>
Reviewed by Xan Lopez.
[GTK] WebKitSoupCache fails to load resources when cache contents are externally removed
https://bugs.webkit.org/show_bug.cgi?id=50577
Try to download cached resources again if they are no longer
accesible by the cache.
* platform/network/soup/cache/soup-request-http.c:
(send_async_cb):
(webkit_soup_request_http_send_async):
2010-12-06 MORITA Hajime <morrita@google.com>
Reviewed by Dimitri Glazkov.
RenderIndicator subclasses should not change the render tree during layout.
https://bugs.webkit.org/show_bug.cgi?id=50026
The old code created shadow elements during a layout computation,
that makes the layout state inconsisntent and cause an assertion failure.
This change created shadow elements before the layout to avoid
state inconsistencies.
Instead of creating shadows on demand, RenderMeter and
RenderProgress now create all necessary shadows before layouts,
and change its visibilities during the layout: Changing
visibilities doesn't trigger relayout and keep the state
consistent.
RenderMeter uses new HidablePartElement for shadow elements,
which can toggle visibiliby between hidden and original value.
Test: fast/dom/HTMLMeterElement/meter-element-crash.html
* html/HTMLMeterElement.cpp:
(WebCore::HTMLMeterElement::attach): Calling updateFromElement()
* html/HTMLMeterElement.h:
* html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::attach): Calling updateFromElement()
* html/HTMLProgressElement.h:
* rendering/RenderIndicator.cpp:
* rendering/RenderIndicator.h:
* rendering/RenderMeter.cpp:
(WebCore::MeterPartElement::MeterPartElement): Added to hold a restorable visibility.
(WebCore::MeterPartElement::createForPart):
(WebCore::MeterPartElement::hide):
(WebCore::MeterPartElement::restoreVisibility):
(WebCore::MeterPartElement::updateStyleForPart):
(WebCore::MeterPartElement::saveVisibility):
(WebCore::RenderMeter::~RenderMeter):
(WebCore::RenderMeter::createPart): Extracted
(WebCore::RenderMeter::updateFromElement): Had a shadow generation.
(WebCore::RenderMeter::layoutParts): Removed shadow generation code.
(WebCore::RenderMeter::shouldHaveParts):
(WebCore::RenderMeter::valuePartRect): Adopted orientation.
(WebCore::RenderMeter::orientation): Morphed from isHorizontal()
(WebCore::RenderMeter::valuePseudoId): Adoptedn orientation
(WebCore::RenderMeter::barPseudoId): Adopted orientation.
* rendering/RenderMeter.h:
(WebCore::RenderMeter::shadowAttached):
* rendering/RenderProgress.cpp:
(WebCore::RenderProgress::updateFromElement): Had a shadow generation.
(WebCore::RenderProgress::layoutParts):
* rendering/RenderProgress.h:
* rendering/ShadowElement.cpp:
(WebCore::ShadowBlockElement::createForPart): Extracted initAsPart().
(WebCore::ShadowBlockElement::initAsPart): Extracted from createForPart().
* rendering/ShadowElement.h:
2010-11-29 Mihai Parparita <mihaip@chromium.org>
Reviewed by Adam Barth.
returning to a POST result within a frame does a GET instead of a POST
https://bugs.webkit.org/show_bug.cgi?id=10199
FrameLoader::loadURLIntoChildFrame had a check for whether a frame
had a HistoryItem, and if so used that item's URL. However, that did
not handle the case where the HistoryItem had FormData and thus was the
result of a POST request. FrameLoader::navigateToDifferentDocument (now
renamed to loadDifferentDocumentItem) does all that, so just switch to
using it instead.
Besides the bug fix, the only difference in behavior is that we use the
HistoryItem's URL instead of original URL when restoring it in a child
frame. This seems desirable too (for consistency with other browsers, and
so that we can avoid form double-submits for forms that that do
POST-then-redirect), and is tested by
fast/history/history-back-initial-vs-final-url.html.
Tests: fast/history/history-back-initial-vs-final-url.html
http/tests/navigation/post-frames-goback1.html
http/tests/navigation/postredirect-frames-goback1.html
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadURLIntoChildFrame): Switch to using
loadDifferentDocumentItem. Also cleaned up ordering slightly (if
on the archive path, there's no need to do any of the other checks).
(WebCore::FrameLoader::loadDifferentDocumentItem): Renamed from
navigateToDifferentDocument so that calling it from loadItem and
loadURLIntoChildFrame flows more easily.
(WebCore::FrameLoader::loadSameDocumentItem): Similarly, renamed from
navigateWithinDocument.
(WebCore::FrameLoader::loadItem): Update callsites to the above methods.
* loader/FrameLoader.h:
2010-12-07 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
Made tables repaint correctly in all writing modes
Part of: Make tables work with vertical text
https://bugs.webkit.org/show_bug.cgi?id=46417
Tests: fast/repaint/table-writing-modes-h.html
fast/repaint/table-writing-modes-v.html
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::paintObject): Compute the ranges of rows and
columns to repaint based on the logical extent of the repaint rect.
2010-12-07 Alexey Marinichev <amarinichev@chromium.org>
Reviewed by James Robinson.
[chromium] compositor lost context recovery fix
https://bugs.webkit.org/show_bug.cgi?id=50614
To test, load a page that triggers the compositor, kill the GPU
process and hover over a link to redraw and thus restart the GPU
process. Without this patch it will assert in
ContentLayerChromium::updateTextureRect; with this patch it will not.
* platform/graphics/chromium/LayerChromium.cpp:
(WebCore::LayerChromium::setNeedsDisplay):
2010-12-07 Anders Carlsson <andersca@apple.com>
Fix the last clang++ build error.
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayer::animationForKey):
Cast the returned animation to the correct type.
2010-12-07 Anders Carlsson <andersca@apple.com>
Fix some clang++ build errors.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
Remove unused variable.
* platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
Fix constness of pointers.
2010-12-07 Simon Fraser <simon.fraser@apple.com>
Reviewed by Chris Marrin.
Fix the Color -> CGColorRef conversions for the debug colors
used for compositing layers.
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayer::setBackgroundColor):
(PlatformCALayer::setBorderColor):
2010-12-07 Brian Weinstein <bweinstein@apple.com>
Reviewed by John Sullivan.
Part of Layering Violation in ContextMenu
https://bugs.webkit.org/show_bug.cgi?id=50586
ContextMenuMac.mm had a WebCoreMenuTarget class, which was responsible for wrapping
a ContextMenuItem, and calling through to the ContextMenuController to validate it
and call a function when it was selected.
It was a layering violation to have this class here, because ContextMenu can't know
about ContextMenuController.
This patch moves the class that wraps the ContextMenuItems to WebKit/mac/WebHTMLView.mm,
and sets up the menu targets there.
No change in behavior, no new tests.
* WebCore.exp.in: Added function that needs to be exported.
* platform/mac/ContextMenuMac.mm:
(WebCore::ContextMenu::ContextMenu): Don't set the sharedMenuTarget anymore.
(WebCore::ContextMenu::appendItem): Don't call setMenuItemTarget (this is done in WebKit now).
(WebCore::ContextMenu::insertItem): Ditto.
2010-12-07 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
-webkit-transition Fails on Multiple text-shadow Shadows
https://bugs.webkit.org/show_bug.cgi?id=42281
When transitioning multiple shadows, the blend function for
ShadowData dropped all but the first and last shadow because
of a failure to append to the end of the list. Fixed.
Test: transitions/multiple-text-shadow-transition.html
* page/animation/AnimationBase.cpp:
(WebCore::PropertyWrapperShadow::blend):
2010-12-07 Simon Fraser <simon.fraser@apple.com>
Reviewed by Beth Dakin.
CSS animation doesn't work for border-radius
https://bugs.webkit.org/show_bug.cgi?id=48340
Include CSSPropertyBorderRadius in the list of shorthand
properties, so that the individual border-radius properties
get animated.
Test: transitions/border-radius-transition.html
* page/animation/AnimationBase.cpp:
(WebCore::addShorthandProperties):
2010-12-07 Maciej Stachowiak <mjs@apple.com>
Reviewed by Kent Tamura.
Implement HTML5 hidden attribute
https://bugs.webkit.org/show_bug.cgi?id=40511
Test: fast/html/hidden-attr.html
* html/HTMLElement.cpp:
(WebCore::HTMLElement::mapToEntry): Pick up hidden as a global mapped attribute.
(WebCore::HTMLElement::parseMappedAttribute): Map hidden attribute to display: none.
2010-12-07 Kenneth Russell <kbr@google.com>
Reviewed by David Levin.
Fix compilation of core web audio files on Windows
https://bugs.webkit.org/show_bug.cgi?id=50603
Changed a few constructs using C99 features of math.h to use
wtf/MathExtras.h instead. Changed inline definitions of a couple of
const static doubles in classes to out-of-line. Built Chrome with
web audio enabled on Windows and Mac OS X to test these changes.
No new tests since audio API is not yet implemented.
* WebCore.gypi:
* platform/audio/AudioResampler.cpp:
* platform/audio/Biquad.cpp:
(WebCore::Biquad::setLowpassParams):
(WebCore::Biquad::setHighpassParams):
(WebCore::Biquad::setLowShelfParams):
* platform/audio/Cone.cpp:
(WebCore::ConeEffect::gain):
* platform/audio/EqualPowerPanner.cpp:
(WebCore::EqualPowerPanner::pan):
* platform/audio/FFTFrame.cpp:
(WebCore::FFTFrame::interpolateFrequencyComponents):
(WebCore::FFTFrame::extractAverageGroupDelay):
(WebCore::FFTFrame::addConstantGroupDelay):
* platform/audio/HRTFKernel.cpp:
* platform/audio/HRTFPanner.cpp:
* webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::readFromBufferWithGrainEnvelope):
* webaudio/AudioPannerNode.cpp:
(WebCore::AudioPannerNode::getAzimuthElevation):
* webaudio/AudioParam.cpp: Added.
(AudioParam::setValue):
(AudioParam::smooth):
* webaudio/AudioParam.h:
* webaudio/RealtimeAnalyser.cpp:
2010-11-25 Philippe Normand <pnormand@igalia.com>
Reviewed by Martin Robinson.
[GStreamer] faster elements linking
https://bugs.webkit.org/show_bug.cgi?id=50067
Perform less checks during GStreamer elements linking if building
against GStreamer >= 0.10.30.
* platform/graphics/gstreamer/GStreamerGWorld.cpp:
(WebCore::GStreamerGWorld::enterFullscreen):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
2010-12-07 Philippe Normand <pnormand@igalia.com>
Reviewed by Gustavo Noronha Silva.
[GStreamer] ::buffered() should return multiple ranges in some cases
https://bugs.webkit.org/show_bug.cgi?id=45101
Improved the ::buffered() method thanks to the new buffering query
support that landed in GStreamer 0.10.31. The method now
queries the media buffered-ranges on the pipeline and queue2
handles it if it's buffering the media to disk.
The webkitwebsrc element also gained BYTES duration query
support. This is needed in the rare cases where uridecodebin
configures its queue before the HTTP server returns the media
Content-Length.
Test: http/tests/media/video-buffered.html
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::buffered):
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webkit_web_src_init):
(webKitWebSrcQuery): Make webkitwebsrc handle the duration queries
if it's aware of the media content-length.
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::paintMediaSliderTrack): Fix position of
the second and next buffered ranges.
2010-12-07 Yael Aharon <yael.aharon@nokia.com>
Reviewed by Antonio Gomes.
Spatial navigation not Working for Map and Area Tags
https://bugs.webkit.org/show_bug.cgi?id=47142
Give area elements special treatment in spatial navigation algorithm by getting the
rect of the area from the associated image. Since area elements are likely to overlap
if they are not rects, or if authors are not careful, we flatten the rect of area elements.
Tests: fast/spatial-navigation/snav-imagemap-area-not-focusable.html
fast/spatial-navigation/snav-imagemap-area-without-image.html
fast/spatial-navigation/snav-imagemap-overlapped-areas.html
fast/spatial-navigation/snav-imagemap-simple.html
* page/FocusController.cpp:
(WebCore::FocusController::findFocusCandidateInContainer):
(WebCore::FocusController::advanceFocusDirectionallyInContainer):
(WebCore::FocusController::advanceFocusDirectionally):
* page/SpatialNavigation.cpp:
(WebCore::FocusCandidate::FocusCandidate):
(WebCore::virtualRectForDirection):
(WebCore::virtualRectForAreaElementAndDirection):
* page/SpatialNavigation.h:
(WebCore::FocusCandidate::FocusCandidate):
2010-12-07 Darin Adler <darin@apple.com>
Try to fix V8 build.
* bindings/generic/BindingDOMWindow.h:
(WebCore::BindingDOMWindow::createWindow): Pass security origin.
2010-12-07 Darin Adler <darin@apple.com>
Another build fix.
* loader/CrossOriginAccessControl.cpp: Added a missing include.
2010-12-07 Darin Adler <darin@apple.com>
Try to fix build.
* plugins/PluginView.cpp:
(WebCore::PluginView::start): Pass security origin.
(WebCore::PluginView::getURLNotify): Ditto.
(WebCore::PluginView::getURL): Ditto.
(WebCore::PluginView::handlePost): Ditto.
2010-12-06 Darin Adler <darin@apple.com>
Reviewed by Sam Weinig.
Pass security origin to make local file decision correctly
https://bugs.webkit.org/show_bug.cgi?id=48603
* bindings/generic/BindingDOMWindow.h:
(WebCore::BindingDOMWindow::createWindow): Pass security origin.
(WebCore::BindingDOMWindow::open): Ditto.
* bindings/generic/BindingFrame.h:
(WebCore::BindingFrame::navigateIfAllowed): Ditto.
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::setLocation): Pass security origin.
(WebCore::createWindow): Ditto.
(WebCore::JSDOMWindow::open): Ditto.
* bindings/js/JSDocumentCustom.cpp:
(WebCore::JSDocument::setLocation): Pass security origin.
* dom/Document.cpp:
(WebCore::Document::processHttpEquiv): Pass security origin.
* inspector/InspectorController.cpp:
(WebCore::InspectorController::openInInspectedWindow):
Pass security origin.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::changeLocation): Added a security origin
argument, passed through to urlSelected.
(WebCore::FrameLoader::urlSelected): Replaced the resource request
and frame name arguments with a frame load request arguments in one
overload, and changed the other overload to pass in the current
frame's document for the security origin.
(WebCore::FrameLoader::loadFrameRequest): Moved the canDisplay
check before the referrer computation because it no longer needs
to look at the referrer. Replaced the call to canDisplay that
used the target frame's security origin and the call to
deprecatedCanDisplay with a single call to canDisplay that uses
the requester security origin.
* loader/FrameLoader.h: Updated for argument changes above.
* loader/NavigationScheduler.cpp:
(WebCore::ScheduledURLNavigation::ScheduledURLNavigation): Added
a security origin.
(WebCore::ScheduledURLNavigation::fire): Pass the security origin
in to FrameLoader::changeLocation.
(WebCore::ScheduledURLNavigation::securityOrigin): Added.
(WebCore::ScheduledRedirect::ScheduledRedirect): Added a security
origin argument.
(WebCore::ScheduledLocationChange::ScheduledLocationChange): Ditto.
(WebCore::ScheduledRefresh::ScheduledRefresh): Ditto.
(WebCore::ScheduledRefresh::fire): Pass the security origin in to
FrameLoader::changeLocation.
(WebCore::ScheduledFormSubmission::fire): Include the security
origin when constructing form submission.
(WebCore::NavigationScheduler::scheduleRedirect): Include the security
origin when creating the scheduled navigation object.
(WebCore::NavigationScheduler::scheduleLocationChange): Ditto.
(WebCore::NavigationScheduler::scheduleRefresh): Ditto.
* loader/NavigationScheduler.h: Added the security origin argument
to scheduleLocationChange.
* loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::loadOrRedirectSubframe): Pass in the security
origin when calling scheduleLocationChange.
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::selectCache): Ditto.
* page/ContextMenuController.cpp:
(WebCore::openNewWindow): Pass in the security origin.
(WebCore::ContextMenuController::contextMenuItemSelected): Ditto.
* page/FrameLoadRequest.h: Added a security origin called the requester
to all FrameLoadRequest objects.
* page/XSSAuditor.cpp:
(WebCore::XSSAuditor::findInRequest): Added the security origin.
2010-12-07 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: avoid initializing Context on when creating attaching listener to ScriptDebugServer
https://bugs.webkit.org/show_bug.cgi?id=50627
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::addListener): don't try to collect already parsed scripts if context has
not been initialized yet.
2010-12-07 Csaba Osztrogonác <ossy@webkit.org>
Unreviewed. Rolling out r73421, because it made transitions/color-transition-all.html flakey.
* page/animation/AnimationBase.cpp:
(WebCore::addShorthandProperties):
2010-12-07 Martin Robinson <mrobinson@igalia.com>
Unreviewed, rolling out r73392.
http://trac.webkit.org/changeset/73392
https://bugs.webkit.org/show_bug.cgi?id=50489
This commit caused crashes on the GTK+ bots
* bindings/ScriptControllerBase.cpp:
(WebCore::ScriptController::executeIfJavaScriptURL):
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::close):
(WebCore::Document::lastModified):
(WebCore::Document::finishedParsing):
(WebCore::Document::initSecurityContext):
(WebCore::Document::updateURLForPushOrReplaceState):
* dom/Document.h:
* dom/ProcessingInstruction.cpp:
(WebCore::ProcessingInstruction::checkStyleSheet):
* dom/ScriptElement.cpp:
(WebCore::ScriptElement::scriptCharset):
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::process):
* html/MediaDocument.cpp:
(WebCore::MediaDocument::replaceMediaElementTimerFired):
* html/PluginDocument.cpp:
(WebCore::PluginDocumentParser::createDocumentStructure):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::finishedLoading):
(WebCore::DocumentLoader::commitData):
(WebCore::DocumentLoader::setupForReplaceByMIMEType):
(WebCore::DocumentLoader::setFrame):
* loader/DocumentLoader.h:
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::begin):
* loader/DocumentWriter.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameLoader):
(WebCore::FrameLoader::init):
(WebCore::FrameLoader::clear):
(WebCore::FrameLoader::receivedFirstData):
(WebCore::FrameLoader::transitionToCommitted):
(WebCore::FrameLoader::open):
(WebCore::FrameLoader::finishedLoadingDocument):
(WebCore::FrameLoader::addExtraFieldsToRequest):
* loader/FrameLoader.h:
(WebCore::FrameLoader::writer):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestPreload):
* platform/network/FormDataBuilder.cpp:
(WebCore::FormDataBuilder::encodingFromAcceptCharset):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::dataChanged):
2010-12-07 Patrick Gansterer <paroga@webkit.org>
Reviewed by Andreas Kling.
[CMake] Remove WebKitGenerators
https://bugs.webkit.org/show_bug.cgi?id=50445
Move remaining logic into main CMakeLists.txt.
* CMakeLists.txt:
2010-12-07 Justin Schuh <jschuh@chromium.org>
Reviewed by Nikolas Zimmermann.
Clear old SVG cursor entry before adding a new one
https://bugs.webkit.org/show_bug.cgi?id=50549
Test: svg/css/cursor-replace.svg
* css/CSSCursorImageValue.cpp:
(WebCore::CSSCursorImageValue::~CSSCursorImageValue):
* svg/SVGCursorElement.cpp:
(WebCore::SVGCursorElement::~SVGCursorElement):
(WebCore::SVGCursorElement::removeClient):
(WebCore::SVGCursorElement::removeReferencedElement):
* svg/SVGCursorElement.h:
* svg/SVGElement.cpp:
(WebCore::SVGElement::setCursorElement):
(WebCore::SVGElement::cursorElementRemoved):
(WebCore::SVGElement::setCursorImageValue):
(WebCore::SVGElement::cursorImageElementRemoved):
* svg/SVGElement.h:
2010-12-07 Kenichi Ishibashi <bashi@google.com>
Reviewed by Kent Tamura.
Let HTMLObjectElement be a form associated element
https://bugs.webkit.org/show_bug.cgi?id=48821
Introduces FormAssociatedElement class which would be a super class
of form assocated elements. Some of member functions and variables of
HTMLFormControlElement are migrated into this class.
Following the HTML5 spec, HTMLFormControlElement class and
HTMLObjectElement class are subclasses of it for now.
Test: fast/forms/form-collection-elements-order.html
* Android.mk: Added FormAssociatedElement.cpp
* CMakeLists.txt: Ditto.
* GNUmakefile.am: Added FormAssociatedElement.{cpp,h}
* WebCore.exp.in: Added the symbol for toHTMLElement(FormAssociatedElement*)
* WebCore.gypi: Added FormAssociatedElement.{cpp,h}
* WebCore.pro: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* dom/CheckedRadioButtons.h: Fixed class forward declaration order.
* dom/Document.cpp:
(WebCore::Document::registerFormElementWithFormAttribute): Modified to
use FormAssociatedElement instead of HTMLFormControlElement
(WebCore::Document::unregisterFormElementWithFormAttribute): Ditto.
(WebCore::Document::resetFormElementsOwner):
* dom/Document.h: Ditto.
* html/DOMFormData.cpp: Ditto.
(WebCore::DOMFormData::DOMFormData):
* html/FormAssociatedElement.cpp: Copied and renamed from WebCore/html/HTMLFormControlElement.cpp.
(WebCore::FormAssociatedElement::FormAssociatedElement):
(WebCore::FormAssociatedElement::~FormAssociatedElement):
(WebCore::FormAssociatedElement::validity):
(WebCore::FormAssociatedElement::insertedIntoTree):
(WebCore::FormAssociatedElement::removedFromTree):
(WebCore::FormAssociatedElement::removeFromForm):
(WebCore::FormAssociatedElement::resetFormOwner):
(WebCore::FormAssociatedElement::formAttributeChanged):
(WebCore::toHTMLElement):
* html/FormAssociatedElement.h: Ditto.
(WebCore::FormAssociatedElement::ref):
(WebCore::FormAssociatedElement::deref):
(WebCore::FormAssociatedElement::formDestroyed):
(WebCore::FormAssociatedElement::setForm):
* html/HTMLElement.h: Changed the access level of findFormAncestor().
* html/HTMLFormCollection.cpp:
(WebCore::HTMLFormCollection::item): Modified to use FormAssociatedElement
instead of HTMLFormControlElement.
(WebCore::HTMLFormCollection::getNamedFormItem): Ditto.
(WebCore::HTMLFormCollection::updateNameCache): Ditto.
* html/HTMLFormControlElement.cpp: Modified regarding with the change of class
hierarchy.
(WebCore::HTMLFormControlElement::HTMLFormControlElement):
(WebCore::HTMLFormControlElement::~HTMLFormControlElement):
(WebCore::HTMLFormControlElement::insertedIntoTree):
(WebCore::HTMLFormControlElement::removedFromTree):
(WebCore::HTMLFormControlElement::supportsFocus):
(WebCore::HTMLFormControlElement::checkValidity):
(WebCore::HTMLFormControlElement::virtualForm):
(WebCore::HTMLFormControlElement::isDefaultButtonForForm):
(WebCore::HTMLFormControlElement::attributeChanged):
* html/HTMLFormControlElement.h: Ditto.
(WebCore::HTMLFormControlElement::form):
(WebCore::HTMLFormControlElement::disabled):
(WebCore::HTMLFormControlElement::type):
(WebCore::HTMLFormControlElement::refFormAssociatedElement):
(WebCore::HTMLFormControlElement::derefFormAssociatedElement):
* html/HTMLFormElement.cpp: Modified to use FormAssociatedElement
instead of HTMLFormControlElement.
(WebCore::HTMLFormElement::submitImplicitly):
(WebCore::HTMLFormElement::validateInteractively):
(WebCore::HTMLFormElement::submit):
(WebCore::HTMLFormElement::reset):
(WebCore::HTMLFormElement::formElementIndexWithFormAttribute):
(WebCore::HTMLFormElement::formElementIndex):
(WebCore::HTMLFormElement::registerFormElement):
(WebCore::HTMLFormElement::removeFormElement):
(WebCore::HTMLFormElement::defaultButton):
(WebCore::HTMLFormElement::checkValidity):
(WebCore::HTMLFormElement::collectUnhandledInvalidControls):
(WebCore::HTMLFormElement::documentDidBecomeActive):
* html/HTMLFormElement.h: Ditto.
(WebCore::HTMLFormElement::associatedElements):
* html/HTMLInputElement.cpp: Ditto.
(WebCore::HTMLInputElement::updateCheckedRadioButtons):
* html/HTMLObjectElement.cpp: Modified regarding with the change of class
hierarchy.
(WebCore::HTMLObjectElement::HTMLObjectElement):
(WebCore::HTMLObjectElement::~HTMLObjectElement):
(WebCore::HTMLObjectElement::create):
(WebCore::HTMLObjectElement::attributeChanged):
(WebCore::HTMLObjectElement::insertedIntoTree):
(WebCore::HTMLObjectElement::removedFromTree):
(WebCore::HTMLObjectElement::appendFormData):
(WebCore::HTMLObjectElement::formControlName):
* html/HTMLObjectElement.h: Ditto.
(WebCore::HTMLObjectElement::form):
(WebCore::HTMLObjectElement::isFormControlElement):
(WebCore::HTMLObjectElement::isEnumeratable):
(WebCore::HTMLObjectElement::refFormAssociatedElement):
(WebCore::HTMLObjectElement::derefFormAssociatedElement):
* html/HTMLTagNames.in: Added constructorNeedsFormElement to object tag.
* html/ValidationMessage.cpp: Modified to use FormAssociatedElement
instead of HTMLFormControlElement.
(WebCore::ValidationMessage::ValidationMessage):
(WebCore::ValidationMessage::create):
* html/ValidationMessage.h: Ditto.
* html/ValidityState.cpp: Ditto.
(WebCore::ValidityState::validationMessage):
(WebCore::ValidityState::setCustomErrorMessage):
(WebCore::ValidityState::valueMissing):
(WebCore::ValidityState::typeMismatch):
(WebCore::ValidityState::patternMismatch):
(WebCore::ValidityState::tooLong):
(WebCore::ValidityState::rangeUnderflow):
(WebCore::ValidityState::rangeOverflow):
(WebCore::ValidityState::stepMismatch):
* html/ValidityState.h: Ditto.
(WebCore::ValidityState::create):
(WebCore::ValidityState::ValidityState):
* loader/FormSubmission.cpp: Ditto.
(WebCore::FormSubmission::create):
2010-12-06 Pavel Feldman <pfeldman@chromium.org>
Not reviewed. Rolling out r72988 for breaking iframes.
* css/CSSImportRule.cpp:
(WebCore::CSSImportRule::insertedIntoParent):
2010-12-06 Hironori Bono <hbono@chromium.org>
Reviewed by David Levin.
[Chromium] Refactor FontCacheChromiumWin.cpp
https://bugs.webkit.org/show_bug.cgi?id=50611
This change just moved the helper functions for the WebCore::FontCache class to the beginning of ths file.
No new tests are added since this is a refactoring.
* platform/graphics/chromium/FontCacheChromiumWin.cpp:
(WebCore::fontDataFromDescriptionAndLogFont): Moved to the beginning of the file.
(WebCore::toGDIFontWeight): Moved to the beginning of the file.
(WebCore::FillLogFont): Moved to the beginning of the file.
(WebCore::TraitsInFamilyProcData::TraitsInFamilyProcData): Moved to the beginning of the file.
(WebCore::traitsInFamilyEnumProc): Moved to the beginning of the file.
(WebCore::FontCache::platformInit): Moved after the static functions.
2010-12-06 Alexey Marinichev <amarinichev@chromium.org>
Reviewed by Kenneth Russell.
Throw webglcontextlost and webglcontextrestored events when a WebGL context is lost and restored.
https://bugs.webkit.org/show_bug.cgi?id=50364
No new tests since there is currently no way to force a context lost event.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::WebGLRenderingContextRestoreTimer::fired):
(WebCore::WebGLRenderingContext::create):
(WebCore::WebGLRenderingContext::WebGLRenderingContext):
(WebCore::WebGLRenderingContext::isContextLost):
(WebCore::WebGLRenderingContext::loseContext):
(WebCore::WebGLRenderingContext::restoreContext):
* html/canvas/WebGLRenderingContext.h:
(WebCore::WebGLRenderingContext::WebGLRenderingContextRestoreTimer::WebGLRenderingContextRestoreTimer):
2010-12-06 David Hyatt <hyatt@apple.com>
Reviewed by Simon Fraser.
https://bugs.webkit.org/show_bug.cgi?id=50593
Fix background canvas painting for documents with left/top overflow. The math from the original RTL patch was incorrect.
Just use the RenderView's document dimensions always.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintRootBoxDecorations):
2010-12-06 Simon Fraser <simon.fraser@apple.com>
Reviewed by Beth Dakin.
CSS animation doesn't work for border-radius
https://bugs.webkit.org/show_bug.cgi?id=48340
Include CSSPropertyBorderRadius in the list of shorthand
properties, so that the individual border-radius properties
get animated.
Test: transitions/border-radius-transition.html
* page/animation/AnimationBase.cpp:
(WebCore::addShorthandProperties):
2010-12-06 Ryosuke Niwa <rniwa@webkit.org>
Reviewed by Tony Chang.
ApplyStyleCommand should take EditingStyle instead of CSSStyleDeclaration
https://bugs.webkit.org/show_bug.cgi?id=49938
Modified ApplyStyleCommand::ApplyStyleCommand and ApplyStyleCommand::create to take EditingStyle*
instead of CSSStyleDeclaration*. Also replaced much of code in Editor::computeAndSetTypingStyle
by calls to EditingStyle's member functions and extracted EditingStyle::overrideWith and
EditingStyle::extractAndRemoveBlockProperties.
No new tests are added since this is a refactoring.
* WebCore.exp.in: Added SelectionController::copyTypingStyle and EditingStyle::~EditingStyle.
* css/CSSMutableStyleDeclaration.cpp: Made CSSMutableStyleDeclaration* in the argument list const.
(WebCore::CSSMutableStyleDeclaration::merge):
* css/CSSMutableStyleDeclaration.h:
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::ApplyStyleCommand): Takes EditingStyle* instead of CSSStyleDeclaration*.
(WebCore::ApplyStyleCommand::doApply): Uses EditingStyle.
* editing/ApplyStyleCommand.h: m_style is now a ref-pointer to EditingStyle instead of CSSMutableStyleDeclaration.
(WebCore::ApplyStyleCommand::create): Takes EditingStyle* instead of CSSStyleDeclaration*.
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::applyStyle): Ditto.
(WebCore::CompositeEditCommand::moveParagraphs): Calls applyStyle.
(WebCore::CompositeEditCommand::breakOutOfEmptyListItem): Ditto.
* editing/CompositeEditCommand.h:
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::calculateTypingStyleAfterDelete): Ditto.
* editing/EditCommand.cpp:
* editing/EditCommand.h:
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::~EditingStyle): Added.
(WebCore::EditingStyle::overrideWithStyle): Extracted from Editor::calculateTypingStyleAfterDelete.
(WebCore::EditingStyle::copy): Added.
(WebCore::EditingStyle::extractAndRemoveBlockProperties): Extracted from Editor::calculateTypingStyleAfterDelete.
* editing/EditingStyle.h:
* editing/Editor.cpp:
(WebCore::Editor::applyStyle): Calls ApplyStyleCommand::create.
(WebCore::Editor::applyParagraphStyle): Ditto.
(WebCore::Editor::computeAndSetTypingStyle): Ditto.
* editing/InsertLineBreakCommand.cpp:
(WebCore::InsertLineBreakCommand::doApply): Calls applyStyle.
* editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::applyStyleAfterInsertion): Ditto.
* editing/InsertTextCommand.cpp:
(WebCore::InsertTextCommand::input): Ditto.
* editing/RemoveFormatCommand.cpp:
(WebCore::RemoveFormatCommand::doApply): Calls ApplyStyleCommand::create.
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::completeHTMLReplacement): Calls applyStyle.
* editing/SelectionController.cpp:
(WebCore::SelectionController::copyTypingStyle): Moved from SelectionController.h
* editing/SelectionController.h:
2010-12-05 Ryosuke Niwa <rniwa@webkit.org>
Reviewed by Tony Chang.
Executing FormatBlock on multiple paragraphs inside pre does not remove the outer pre
https://bugs.webkit.org/show_bug.cgi?id=47300
The bug was caused by FormatBlockCommand::formatRange's not removing refNode when the refNode
contains more than one paragraphs even when the refNode is fully selected.
Fixed the bug by modifying FormatBlockCommand::formatRange to correctly remove the node in
such a situation.
Also fixed a bug in ApplyBlockElementCommand::formatSelection that the end of selection
is not properly updated when the end of selection resides in the node split by
rangeForParagraphSplittingTextNodesIfNeeded or endOfNextParagrahSplittingTextNodesIfNeeded.
Test: editing/execCommand/format-block-multiple-paragraphs-in-pre.html
* editing/ApplyBlockElementCommand.cpp:
(WebCore::ApplyBlockElementCommand::formatSelection): Calls formatRange with m_endOfLastParagraph.
(WebCore::ApplyBlockElementCommand::rangeForParagraphSplittingTextNodesIfNeeded): Updates
m_endOfLastParagraph when the position points to the node split by this function.
(WebCore::ApplyBlockElementCommand::endOfNextParagrahSplittingTextNodesIfNeeded): Ditto.
* editing/ApplyBlockElementCommand.h: Added m_endOfLastParagraph as a member variable.
* editing/FormatBlockCommand.cpp:
(WebCore::FormatBlockCommand::formatRange): See above.
* editing/FormatBlockCommand.h:
* editing/IndentOutdentCommand.cpp:
(WebCore::IndentOutdentCommand::formatRange): Ignores the end of selection.
* editing/IndentOutdentCommand.h:
2010-12-03 Zhenyao Mo <zmo@google.com>
Reviewed by Kenneth Russell.
Postpone gl delete* calls until shaders/programs are no longer attached
https://bugs.webkit.org/show_bug.cgi?id=50501
* html/canvas/WebGLBuffer.cpp:
(WebCore::WebGLBuffer::deleteObjectImpl): Simply delete GL resource.
* html/canvas/WebGLFramebuffer.cpp:
(WebCore::WebGLFramebuffer::deleteObjectImpl): Ditto.
* html/canvas/WebGLObject.cpp:
(WebCore::WebGLObject::deleteObject): Tracking whether deleteObjectImpl should be called or not.
* html/canvas/WebGLObject.h:
(WebCore::WebGLObject::detachContext): Set attachmentCount to 0 to ensure OpenGL resource deletion.
(WebCore::WebGLObject::onDetached): No need to track attachmentCount here as we track it in deleteObject.
(WebCore::WebGLObject::isDeleted): Make this public.
* html/canvas/WebGLProgram.cpp:
(WebCore::WebGLProgram::deleteObjectImpl): Simply delete GL resource.
* html/canvas/WebGLRenderbuffer.cpp:
(WebCore::WebGLRenderbuffer::deleteObjectImpl): Ditto.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getProgramParameter): intercept DELETE_STATUS.
(WebCore::WebGLRenderingContext::getShaderParameter): Ditto.
* html/canvas/WebGLShader.cpp:
(WebCore::WebGLShader::deleteObjectImpl): Simply delete GL resource.
* html/canvas/WebGLTexture.cpp:
(WebCore::WebGLTexture::deleteObjectImpl): Simply delete GL resource.
2010-12-06 Ryosuke Niwa <rniwa@webkit.org>
Yet unreviewed another Leopard build fix for r73380.
* platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
(PlatformCAAnimation::setKeyTimes):
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayer::platformCALayer):
2010-12-06 Andy Estes <aestes@apple.com>
Reviewed by Darin Adler.
Marquee elements do not stop animating when scrollAmount is set to 0.
https://bugs.webkit.org/show_bug.cgi?id=50434
Test: fast/html/marquee-scrollamount.html
* rendering/RenderMarquee.cpp:
(WebCore::RenderMarquee::timerFired): Allow increment to be 0.
2010-12-06 Ryosuke Niwa <rniwa@webkit.org>
Unreviewed Leopard buildfix for r73380.
* platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
(PlatformCAAnimation::setTimingFunctions):
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayer::PlatformCALayer):
2010-12-06 Philippe Normand <pnormand@igalia.com>
Reviewed by Martin Robinson.
[GStreamer] use ResourceHandle::setDefersLoading in WebKitWebSourceGStreamer
https://bugs.webkit.org/show_bug.cgi?id=44157
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webKitWebSrcNeedDataMainCb):
(webKitWebSrcEnoughDataMainCb): Replaced platform-specific code
with cross-platform ResourceHandle::setDefersLoading calls.
2010-12-06 Ryosuke Niwa <rniwa@webkit.org>
Unreviewed Leopard build fix for r73388.
* accessibility/AccessibilitySlider.cpp:
(WebCore::AccessibilitySlider::maxValueForRange):
(WebCore::AccessibilitySlider::minValueForRange):
2010-12-06 Ryosuke Niwa <rniwa@webkit.org>
Unreviewed build fix for Leopard after r73379.
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::setAllowsFontSmoothing):
2010-12-06 Nate Chapin <japhet@chromium.org>
Reviewed by Adam Barth.
Make DocumentWriter a member of DocumentLoader
instead of FrameLoader.
https://bugs.webkit.org/show_bug.cgi?id=50489
Refactor, no new tests.
* bindings/ScriptControllerBase.cpp:
(WebCore::ScriptController::executeIfJavaScriptURL):
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::close):
(WebCore::Document::lastModified):
(WebCore::Document::finishedParsing):
(WebCore::Document::initSecurityContext):
(WebCore::Document::updateURLForPushOrReplaceState):
* dom/Document.h:
(WebCore::Document::setDocumentLoader):
(WebCore::Document::loader):
* dom/ProcessingInstruction.cpp:
(WebCore::ProcessingInstruction::checkStyleSheet):
* dom/ScriptElement.cpp:
(WebCore::ScriptElement::scriptCharset):
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::process):
* html/MediaDocument.cpp:
(WebCore::MediaDocument::replaceMediaElementTimerFired):
* html/PluginDocument.cpp:
(WebCore::PluginDocumentParser::createDocumentStructure):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::finishedLoading):
(WebCore::DocumentLoader::commitData):
(WebCore::DocumentLoader::setupForReplaceByMIMEType):
(WebCore::DocumentLoader::setFrame):
* loader/DocumentLoader.h:
(WebCore::DocumentLoader::writer):
* loader/DocumentWriter.h:
(WebCore::DocumentWriter::setFrame):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameLoader):
(WebCore::FrameLoader::init):
(WebCore::FrameLoader::clear):
(WebCore::FrameLoader::receivedFirstData):
(WebCore::FrameLoader::transitionToCommitted):
(WebCore::FrameLoader::open):
(WebCore::FrameLoader::finishedLoadingDocument):
(WebCore::FrameLoader::addExtraFieldsToRequest):
* loader/FrameLoader.h:
(WebCore::FrameLoader::notifier):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestPreload):
* platform/network/FormDataBuilder.cpp:
(WebCore::FormDataBuilder::encodingFromAcceptCharset):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::dataChanged):
2010-12-06 Mark Rowe <mrowe@apple.com>
Build fix.
* WebCore.xcodeproj/project.pbxproj: Don't force WebCore to build against the 10.5 SDK.
That's just plain wrong.
2010-12-06 Chris Fleizach <cfleizach@apple.com>
Reviewed by Darin Adler.
HTML5 Slider does not work correctly with VoiceOver
https://bugs.webkit.org/show_bug.cgi?id=50505
Address a few problems with the Mac implementation for the accessibility slider.
1) The value indicator is not hit testable.
2) The value indicator does not return an AXValue.
3) In the slider, the min/max values are not correct when min/max attributes are not present.
4) When you change the value with the keyboard, it doesn't send out the right notification.
5) Sliders were returning AXValue and AXTopLevelUIElement attributes twice in their list of attributes.
Test: platform/mac/accessibility/html-slider-indicator.html
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::getAttribute):
Use fastGetAttribute on Element, instead of getAttribute.
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isInputSlider):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
* accessibility/AccessibilitySlider.cpp:
(WebCore::AccessibilitySlider::doAccessibilityHitTest):
(WebCore::AccessibilitySlider::maxValueForRange):
(WebCore::AccessibilitySlider::minValueForRange):
* accessibility/AccessibilitySlider.h:
(WebCore::AccessibilitySlider::isInputSlider):
* accessibility/mac/AccessibilityObjectWrapper.mm:
(-[AccessibilityObjectWrapper accessibilityAttributeNames]):
(-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::applyStep):
2010-12-06 David Hyatt <hyatt@apple.com>
Reviewed by Simon Fraser.
Fix for https://bugs.webkit.org/show_bug.cgi?id=49220 <<rdar://problem/8644849>, REGRESSION: transforms now
O(n^3) from pathological behavior in lowestPosition, rightmostPosition, leftmostPosition and topmostPosition.
This patch throws out the lowest/rightmost/leftmost/topmostPosition functions and re-architects layout overflow
in the engine to cache all the information required to properly handle scrolling.
In the old code, there were two types of overflow: layout overflow and visual overflow. The former could
affect scrolling and the latter could not. The distinction was largely meaningless, since layout overflow
wasn't actually used to determine scroll width or scroll height. It didn't propagate across self-painting layer
boundaries either. In the old code, the term visible overflow meant the union of the layout overflow and
visual overflow rects.
In the new code, the two types of overflow remain, but the distinction between the two is now clear. Visual overflow
is used purely for painting and hit testing checks and layout overflow is used specifically for scrolling. It has
been expanded to propagate across self-painting layers, to factor in relative positioning and transforms, and to
work with writing modes.
In order to minimize layout test changes, layers no longer incorporate right/bottom overflow into their width/height members.
Doing so uncovered two bugs where left/top overflow was ignored (proof that even having layer dimensions is harmful).
A render tree dump hack has been put into the code to keep this overflow dumping for the RenderView's layer, since otherwise
a huge number of tests would change.
Added fast/overflow/overflow-rtl-vertical.html to test vertical writing-mode overflow. Existing tests cover the rest.
* page/FrameView.cpp:
(WebCore::FrameView::adjustViewSize):
(WebCore::FrameView::forceLayoutForPagination):
Changed to use RenderView's docTop/Left/Width/Height accessors, which simply grab the overflow and properly flip it
to account for writing modes.
* platform/graphics/IntRect.h:
(WebCore::IntRect::shiftLeftEdgeTo):
(WebCore::IntRect::shiftRightEdgeTo):
(WebCore::IntRect::shiftTopEdgeTo):
(WebCore::IntRect::shiftBottomEdgeTo):
New helper functions for sliding the edge of a rectangle without moving any of the other three edges.
* rendering/InlineBox.h:
(WebCore::InlineBox::frameRect):
frameRect is a helper for obtaining the x, y, width, height of an InlineBox as an IntRect.
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::placeBoxesInInlineDirection):
All of the overflow setting in the inline direction has been removed from this function. All line overflow is computed
at once now in a single function: computeOverflow.
(WebCore::InlineFlowBox::addBoxShadowVisualOverflow):
(WebCore::InlineFlowBox::addTextBoxVisualOverflow):
(WebCore::InlineFlowBox::addReplacedChildOverflow):
Helper for propagating overflow from specific types of children that occur on a line into the InlineFlowBox's overflow.
(WebCore::InlineFlowBox::computeOverflow):
The new function that computes both horizontal and vertical overflow for a line box.
(WebCore::InlineFlowBox::setLayoutOverflow):
(WebCore::InlineFlowBox::setVisualOverflow):
(WebCore::InlineFlowBox::setOverflowFromLogicalRects):
New functions that set the overflow computed by computeOverflow. These replace setBlockDirectionOverflowPositions
and setInlineDirectionOverflowPositions. They essentially do the same thing, but they operate on rectangles.
(WebCore::InlineFlowBox::nodeAtPoint):
(WebCore::InlineFlowBox::paint):
Changed to use visual overflow instead of visible overflow. (Visible overflow as a union of layout and visual
overflow is no longer necessary, since visual overflow is now equivalent to the old visible overflow concept.)
* rendering/InlineFlowBox.h:
(WebCore::InlineFlowBox::logicalLayoutOverflowRect):
(WebCore::InlineFlowBox::logicalVisualOverflowRect):
Helpers for obtaining logical overflow rectangles, since lines compute their overflow in logical terms before
converting to block coordinates at the end.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock):
(WebCore::RenderBlock::addOverflowFromChildren):
(WebCore::RenderBlock::computeOverflow):
(WebCore::RenderBlock::addOverflowFromFloats):
(WebCore::RenderBlock::addOverflowFromPositionedObjects):
Blocks now have a computeOverflow function called at the end of layout that adds in all the types of overflow. The addOverflowFromChildren
method is virtual so that RenderListItem and RenderTable can subclass it. RenderListItem has to position its list marker and
propagate marker overflow up, and RenderTable adds in overflow from its sections.
(WebCore::RenderBlock::layoutOnlyPositionedObjects):
(WebCore::RenderBlock::layoutPositionedObjects):
When only positioned objects lay out, overflow must still be recomputed. The refactoring of overflow computation into a single
callable method: computeOverflow, makes it possible for this to be done easily.
(WebCore::RenderBlock::paint):
visible -> visual.
(WebCore::RenderBlock::addOverhangingFloats):
The propagation of float overflow has changed substantially. The basic rules are:
(1) The float must be in our floating objects list to contribute to overflow.
(2) The float must be a descendant to contribute to overflow.
(3) The block must have the outermost list that contains the float, or it has a self-painting layer and
so the float needs to be included in its overflow.
(WebCore::RenderBlock::nodeAtPoint):
visible -> visual.
(WebCore::RenderBlock::layoutColumns):
Remove column overflow computation from layoutColumns and move it to computeOverflow.
(WebCore::RenderBlock::adjustLinePositionForPagination):
visible -> visual.
* rendering/RenderBlock.h:
(WebCore::RenderBlock::scrollbarsChanged):
Added a new virtual method used by table cells when scrollbars in an overflow:auto/scroll table cell come and go.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutInlineChildren):
(WebCore::RenderBlock::determineStartPosition):
(WebCore::RenderBlock::matchedEndLine):
(WebCore::RenderBlock::addOverflowFromInlineChildren):
(WebCore::RenderBlock::beforeSideVisualOverflowForLine):
(WebCore::RenderBlock::afterSideVisualOverflowForLine):
visible -> visual.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::scrollWidth):
(WebCore::RenderBox::scrollHeight):
Patched to use layoutOverflow functions instead of the old rightmost/leftmostPosition functions.
(WebCore::RenderBox::paintRootBoxDecorations):
Use docLeft and docTop here, so that writing modes are handled.
(WebCore::RenderBox::clippedOverflowRectForRepaint):
visible -> visual.
(WebCore::RenderBox::addOverflowFromChild):
(WebCore::RenderBox::addLayoutOverflow):
(WebCore::RenderBox::addVisualOverflow):
(WebCore::RenderBox::logicalVisualOverflowRectForPropagation):
(WebCore::RenderBox::visualOverflowRectForPropagation):
(WebCore::RenderBox::logicalLayoutOverflowRectForPropagation):
(WebCore::RenderBox::layoutOverflowRectForPropagation):
* rendering/RenderBox.h:
The new overflow system for boxes. Layout overflow now crosses self-painting layer boundaries and adjusts child boxes
for transforms, relative positioning and writing mode differences.
(WebCore::RenderBox::layoutOverflowRect):
(WebCore::RenderBox::topLayoutOverflow):
(WebCore::RenderBox::bottomLayoutOverflow):
(WebCore::RenderBox::leftLayoutOverflow):
(WebCore::RenderBox::rightLayoutOverflow):
Changed the default rectangle for layout overflow to be the client box to match the scrollable areas of overflow regions.
(WebCore::RenderBox::clientLogicalBottom):
New helper for obtaining the logical bottom of the client box.
(WebCore::RenderBox::clientBoxRect):
New helper for obtaining the clientLeft/Top/Width/Height box.
* rendering/RenderBoxModelObject.h:
(WebCore::RenderBoxModelObject::relativePositionLogicalOffset):
Helper for obtaining the relative position offset transposed for vertical writing modes. Used by line overflow.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
Changed flexible boxes to just call the base class computeOverflow method.
* rendering/RenderInline.cpp:
(WebCore::RenderInline::linesVisualOverflowBoundingBox):
(WebCore::RenderInline::clippedOverflowRectForRepaint):
visible -> visual.
* rendering/RenderInline.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPosition):
Changed layers to no longer incorporate right/bottom overflow into width/height. This is the reason many layout
tests change. (Not doing this makes the layout test changes far worse, since overflow propagates across self-painting
layers now.)
(WebCore::RenderLayer::overflowTop):
(WebCore::RenderLayer::overflowBottom):
(WebCore::RenderLayer::overflowLeft):
(WebCore::RenderLayer::overflowRight):
overflowTop/Bottom/Left/Right return overflow that accounts for writing modes, i.e., purely physical overflow that can be used
to set up the scroll area.
(WebCore::RenderLayer::computeScrollDimensions):
Drastically simplified this method now that overflowTop/Bottom/Left/Right just do the right thing regarding unreachable overflow.
(WebCore::RenderLayer::updateScrollInfoAfterLayout):
Make sure to explicitly set the vertical scrollbar's position just as we did with horizontal scrollbars, so that clamping to the
bottom works.
(WebCore::performOverlapTests):
(WebCore::RenderLayer::paintLayer):
Fix a bug in performOverlapTests. It incorrectly used the layer's bounds, and so it didn't account for left/top overflow out
of the layer (see why I hate layers even having dimensions?). Changed it to use the bounding box of the layer instead.
(WebCore::RenderLayer::hitTest):
Fix a bug in hit testing. It incorrectly used the root layer's bounds as the limit of the hit test, and so it didn't account
for left/top overflow in a ScrollView (hate hate hate layers having dimensions). I changed it to use the hit test rect instead,
so that the damage rect never stops the point from being tested (unless the hit test request says not to ignore clipping).
(WebCore::RenderLayer::localBoundingBox):
visible -> visual.
* rendering/RenderLayer.h:
Added the new overflowTop/Left/Right/Bottom accessors.
* rendering/RenderLineBoxList.cpp:
(WebCore::RenderLineBoxList::anyLineIntersectsRect):
(WebCore::RenderLineBoxList::lineIntersectsDirtyRect):
(WebCore::RenderLineBoxList::paint):
(WebCore::RenderLineBoxList::hitTest):
visible -> visual.
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::addOverflowFromChildren):
(WebCore::RenderListItem::positionListMarker):
* rendering/RenderListItem.h:
RenderListItem now positions the list marker when computing its overflow, since the marker propagates overflow back up to the list item.
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::paint):
visible -> visual.
* rendering/RenderMarquee.cpp:
(WebCore::RenderMarquee::computePosition):
Changed to use overflow functions instead of rightmost/lowestPosition.
* rendering/RenderMedia.cpp:
* rendering/RenderMedia.h:
Removed the lowest/topmost/rightmost/leftmostPosition functions, since control overflow is handled properly already.
* rendering/RenderOverflow.h:
(WebCore::RenderOverflow::RenderOverflow):
(WebCore::RenderOverflow::setLayoutOverflow):
(WebCore::RenderOverflow::setVisualOverflow):
Add new setters for layout and visual overflow as rects.
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::shouldPaint):
(WebCore::RenderReplaced::clippedOverflowRectForRepaint):
visible -> visual.
* rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::layout):
Call computeOverflow to recompute our overflow information after we adjust the ruby.
* rendering/RenderTable.cpp:
(WebCore::RenderTable::layout):
(WebCore::RenderTable::addOverflowFromChildren):
(WebCore::RenderTable::paint):
* rendering/RenderTable.h:
Move section overflow propagation into addOverflowFromChildren, and change RenderTable to just call computeOverflow.
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::clippedOverflowRectForRepaint):
visible -> visual.
(WebCore::RenderTableCell::scrollbarsChanged):
Adding unreachable overflow support (something that in the old code only existed for positioned objects in the root view) exposed
a bug in table layout. If scrollbars are added during the layout that occurs after intrinsic padding was incorporated into the
cell, then the cell won't lay out properly the second time (after the scrollbars have been added). We have to adjust the intrinsic
padding accounting for the presence of the new scrollbar so the second layout will get the right dimensions.
* rendering/RenderTableCell.h:
(WebCore::RenderTableCell::hasVisualOverflow):
visible -> visual.
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::layoutRows):
* rendering/RenderTableSection.h:
visible -> visual. Removed the leftmost/rightmost/topmost/bottommostPosition functions.
* rendering/RenderTreeAsText.cpp:
(WebCore::writeLayers):
Added a hack to render tree dumping to include right/bottom overflow for the root layer only. This keeps a zillion layout tests
from failing.
* rendering/RenderView.cpp:
(WebCore::RenderView::layout):
(WebCore::RenderView::docTop):
(WebCore::RenderView::docBottom):
(WebCore::RenderView::docLeft):
(WebCore::RenderView::docRight):
* rendering/RenderView.h:
(WebCore::RenderView::docHeight):
(WebCore::RenderView::docWidth):
RenderView now uses docLeft/Top/Height/Width functions, which are just overflow queries that account for writing modes. These methods
are now the preferred way to query for the physical dimensions of a document.
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::addHighlightOverflow):
Changed to call setOverflowFromLogicalRects instead of the block/inline position functions.
(WebCore::RootInlineBox::alignBoxesInBlockDirection):
Remove the computation of block direction overflow, since it now all happens at once after the line is built.
(WebCore::RootInlineBox::paddedLayoutOverflowRect):
* rendering/RootInlineBox.h:
Added a new helper function for incorporating the end padding into a line. This end padding also includes the single pixel for a caret
in LTR if needed.
2010-12-06 Chris Marrin <cmarrin@apple.com>
Reviewed by Simon Fraser.
Share code between Mac (CA) and Windows (CACF) GraphicsLayer implementations
https://bugs.webkit.org/show_bug.cgi?id=49388
Replaced GraphicsLayerMac with GraphicsLayerCA. GraphicsLayerCA is essentially
identical to GraphicsLayerMac, but replaces all the CoreAnimation specific calls
with calls to PlatformCALayer and PlatformCAAnimation. This makes GraphicsLayerCA
platform neutral as long as implementations of those two classes are available.
Added implementations in PlatformCALayerMac and PlatformCAAnimationMac. Also got
rid of GraphicsLayer::nativeLayer() and replaced it with GraphicsLayer::platformLayer()
to avoid confusion since both names were used to refer to the same thing.
This patch is only for Mac. Windows implementation has not changed.
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/GraphicsLayer.h:
* platform/graphics/ca/GraphicsLayerCA.cpp: Copied from WebCore/platform/graphics/ca/GraphicsLayerCA.cpp.
* platform/graphics/ca/GraphicsLayerCA.h: Copied from WebCore/platform/graphics/ca/GraphicsLayerCA.h.
* platform/graphics/ca/PlatformCAAnimation.h: Copied from WebCore/platform/graphics/ca/PlatformCAAnimation.h.
* platform/graphics/ca/PlatformCALayer.h: Copied from WebCore/platform/graphics/ca/PlatformCALayer.h.
* platform/graphics/ca/mac/PlatformCAAnimationMac.mm: Copied from WebCore/platform/graphics/ca/mac/PlatformCAAnimationMac.mm.
(toCAMediaTimingFunction):
* platform/graphics/ca/mac/PlatformCALayerMac.mm: Copied from WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm.
(PlatformCALayer::PlatformCALayer):
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
* platform/graphics/chromium/GraphicsLayerChromium.h:
* platform/graphics/mac/GraphicsLayerMac.h: Removed.
* platform/graphics/mac/GraphicsLayerMac.mm: Removed.
* platform/graphics/mac/WebLayer.h:
* platform/graphics/mac/WebLayer.mm:
(-[WebLayer setNeedsDisplay]):
(-[WebLayer setNeedsDisplayInRect:]):
(-[WebLayer display]):
(-[WebLayer drawInContext:]):
* platform/graphics/mac/WebTiledLayer.h:
* platform/graphics/mac/WebTiledLayer.mm:
(-[WebTiledLayer setNeedsDisplay]):
(-[WebTiledLayer setNeedsDisplayInRect:]):
(-[WebTiledLayer display]):
(-[WebTiledLayer drawInContext:]):
* platform/graphics/qt/GraphicsLayerQt.cpp:
(WebCore::GraphicsLayerQtImpl::flushChanges):
* platform/graphics/qt/GraphicsLayerQt.h:
* platform/graphics/win/GraphicsLayerCACF.cpp:
* platform/graphics/win/GraphicsLayerCACF.h:
2010-12-06 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
Font antialiasing (smoothing) changes when elements are rendered into compositing layers
https://bugs.webkit.org/show_bug.cgi?id=23364
Text rendered by Core Graphics over a transparent background looks bad because of
font smoothing, so turn off smoothing when rendering text into compositing layers.
* platform/graphics/GraphicsContext.h:
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::setAllowsFontSmoothing):
* platform/graphics/mac/WebLayer.mm:
(drawLayerContents):
2010-12-06 Patrick Gansterer <paroga@webkit.org>
Reviewed by Andreas Kling.
[WINCE] Add build system
https://bugs.webkit.org/show_bug.cgi?id=50522
* CMakeListsWinCE.txt: Added.
2010-12-06 Chris Fleizach <cfleizach@apple.com>
Reviewed by Oliver Hunt.
AX does not support HTML5 "required"
https://bugs.webkit.org/show_bug.cgi?id=50507
Test: platform/mac/accessibility/html5-required-attribute.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::isRequired):
2010-12-06 Alejandro G. Castro <alex@igalia.com>
Reviewed by Martin Robinson.
[GTK] using shadows leaks memory
https://bugs.webkit.org/show_bug.cgi?id=50541
Fixed leaks in the shadow code.
* platform/graphics/cairo/CairoUtilities.cpp:
(WebCore::drawPatternToCairoContext): adoptRef instead of just
getting a new reference.
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::drawPathShadow): handle cairo_path_t with smart
pointers.
2010-12-06 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
[v8] Web Inspector: remove duplicate code for capturing stack trace
https://bugs.webkit.org/show_bug.cgi?id=50461
No new tests. Covered with existing inspector tests.
* bindings/js/ScriptCallStackFactory.cpp:
(WebCore::createScriptCallStack):
* bindings/js/ScriptCallStackFactory.h:
* bindings/v8/ScriptCallStackFactory.cpp:
(WebCore::toScriptCallFrame):
(WebCore::toScriptCallFramesVector):
(WebCore::createScriptCallStack):
* bindings/v8/ScriptCallStackFactory.h:
* bindings/v8/V8ConsoleMessage.cpp:
(WebCore::V8ConsoleMessage::handler):
* inspector/ScriptCallFrame.cpp:
(WebCore::ScriptCallFrame::ScriptCallFrame):
(WebCore::ScriptCallFrame::isEqual):
(WebCore::ScriptCallFrame::buildInspectorObject):
* inspector/ScriptCallFrame.h:
(WebCore::ScriptCallFrame::sourceURL):
* inspector/ScriptCallStack.h:
* inspector/TimelineRecordFactory.cpp:
(WebCore::TimelineRecordFactory::createGenericRecord):
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleMessage.prototype._populateStackTraceTreeElement):
== Rolled over to ChangeLog-2010-12-06 ==