ChangeLog-2011-10-19 [plain text]
2011-10-19 Adam Barth <abarth@webkit.org>
Another attempted build fix. I managed to screw up every line of this file.
* CodeGenerators.pri:
2011-10-19 Adam Barth <abarth@webkit.org>
Attempt to fix the Qt build.
* CodeGenerators.pri:
2011-10-19 Adam Barth <abarth@webkit.org>
Document.cpp shouldn't need to know about every event for every feature
https://bugs.webkit.org/show_bug.cgi?id=70469
Reviewed by Eric Seidel.
make_event_factory.pl generates the implementation of EventFactory
based on a simple ".in" file.
* CodeGenerators.pri:
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.gyp/WebCore.gyp:
* WebCore.gyp/scripts/action_makenames.py:
* WebCore.xcodeproj/project.pbxproj:
* dom/Document.cpp:
(WebCore::Document::createEvent):
* dom/EventFactory.h: Added.
* dom/EventFactory.in: Added.
* dom/make_event_factory.pl: Added.
(defaultEventPropertyHash):
(eventHandler):
(parametersHandler):
(readNames):
(readEvents):
(interfaceForEvent):
(printCppFile):
(printLicenseHeader):
2011-10-19 Kentaro Hara <haraken@chromium.org>
Added a ConstructorMode check to all existing custom V8 constructors.
https://bugs.webkit.org/show_bug.cgi?id=70464
Reviewed by Adam Barth.
This patch adds the following two lines to all existing custom V8 constructors:
if (ConstructorMode::current() == ConstructorMode::WrapExistingObject)
return args.Holder();
This checks whether a programmer is trying to allocate an object via "new X",
or C++ is trying to allocate an object via the function template and wrap the
object with a JS flavor. (See here for more details: bug 70015) In the latter case,
a constructor callback should not be executed (i.e. should return immediately).
No new tests. No change in behavior.
* bindings/v8/custom/V8ArrayBufferCustom.cpp: Added the ConstructorMode check.
(WebCore::V8ArrayBuffer::constructorCallback):
* bindings/v8/custom/V8ArrayBufferViewCustom.h: Ditto.
(WebCore::constructWebGLArray):
* bindings/v8/custom/V8AudioContextCustom.cpp: Ditto.
(WebCore::V8AudioContext::constructorCallback):
* bindings/v8/custom/V8DOMFormDataCustom.cpp: Ditto.
(WebCore::V8DOMFormData::constructorCallback):
* bindings/v8/custom/V8DataViewCustom.cpp: Ditto.
(WebCore::V8DataView::constructorCallback):
* bindings/v8/custom/V8HTMLAudioElementConstructor.cpp: Ditto.
(WebCore::v8HTMLAudioElementConstructorCallback):
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp: Ditto.
(WebCore::v8HTMLImageElementConstructorCallback):
* bindings/v8/custom/V8HTMLOptionElementConstructor.cpp: Ditto.
(WebCore::v8HTMLOptionElementConstructorCallback):
* bindings/v8/custom/V8MessageChannelConstructor.cpp: Ditto.
(WebCore::V8MessageChannel::constructorCallback):
* bindings/v8/custom/V8WebKitMutationObserverCustom.cpp: Ditto.
(WebCore::V8WebKitMutationObserver::constructorCallback):
* bindings/v8/custom/V8WebKitPointConstructor.cpp: Ditto.
(WebCore::V8WebKitPoint::constructorCallback):
* bindings/v8/custom/V8WebSocketCustom.cpp: Ditto.
(WebCore::V8WebSocket::constructorCallback):
* bindings/v8/custom/V8XMLHttpRequestConstructor.cpp: Ditto.
(WebCore::V8XMLHttpRequest::constructorCallback):
2011-10-19 Carol Szabo <carol@webkit.org>
CSS Counters have wrong values
https://bugs.webkit.org/show_bug.cgi?id=69605
Reviewed by Darin Adler.
Test: fast/css/counters/after-continuation.html
Added a new method for getting the renderer of the "after"
pseudo-element that handles continuations.
Hooked up the new method with the CSS counter code.
* rendering/RenderCounter.cpp:
(WebCore::rendererOfAfterPseudoElement):
(WebCore::previousInPreOrder):
(WebCore::nextInPreOrder):
* rendering/RenderObject.h:
2011-10-19 Anna Cavender <annacc@chromium.org>
Adding some IDL files for <track>.
https://bugs.webkit.org/show_bug.cgi?id=62887
Reviewed by Adam Barth.
Tests:
MutableTextTrack.idl and addTrack() in HTMLMediaElement.idl are tested by:
media/track/track-mutable.html
TextTrack.idl is tested by:
media/track/track-text-track.html
TextTrackCue.idl is tested by:
media/track/track-webvtt-tc006-cue-identifiers.html
media/track/track-webvtt-tc007-cue-no-id.html
media/track/track-webvtt-tc008-timings-no-hours.html
media/track/track-webvtt-tc009-timings-hour.html
media/track/track-webvtt-tc013-settings.html
media/track/track-webvtt-tc023-markup.html
TextTrackCueList.idl is tested by:
media/track/track-text-track-cue-list.html
* CMakeLists.txt: Adding files to build systems.
* CodeGenerators.pri: Adding files to build systems.
* DerivedSources.cpp: Adding files to build systems.
* DerivedSources.make: Adding files to build systems.
* GNUmakefile.list.am: Adding files to build systems.
* WebCore.gypi: Adding files to build systems.
* WebCore.pro: Adding files to build systems.
* WebCore.xcodeproj/project.pbxproj: Adding files to build systems.
* bindings/gobject/GNUmakefile.am: Adding files to build systems.
* bindings/gobject/WebKitHTMLElementWrapperFactory.cpp: Adding files to build systems.
* bindings/js/JSBindingsAllInOne.cpp: Adding files to build systems.
* bindings/js/JSTextTrackCustom.cpp: Added.
(WebCore::toJS):
* bindings/scripts/CodeGeneratorV8.pm:
(HasCustomToV8Implementation): Special check for TextTrack since V8 can auto-generate
it, but JS cannot yet.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::addTrack): creates and returns a new MutableTextTrack.
* html/HTMLMediaElement.h: Adding addTrack() function.
* html/HTMLMediaElement.idl: Adding addTrack() function.
* html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::track): Adding track getter.
* html/HTMLTrackElement.h: Adding track getter.
* html/HTMLTrackElement.idl: Adding track getter.
* html/MutableTextTrack.idl: Added.
* html/TextTrack.idl: Added.
* html/TextTrackCue.idl: Added.
* html/TextTrackCueList.cpp:
(WebCore::TextTrackCueList::length):
(WebCore::TextTrackCueList::item): Used for [] operator.
* html/TextTrackCueList.h: Added item() for [] operator.
* html/TextTrackCueList.idl: Added.
* page/DOMWindow.idl: Adding TextTrackCue new operator.
2011-10-19 Shawn Singh <shawnsingh@chromium.org>
[chromium] Fix webkit style on a few files.
https://bugs.webkit.org/show_bug.cgi?id=70441
Reviewed by James Robinson.
Tested with existing layout and unit tests.
* platform/graphics/chromium/LayerChromium.cpp:
* platform/graphics/chromium/LayerChromium.h:
(WebCore::LayerChromium::setIsMask):
* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::LayerRendererChromium::initialize):
* platform/graphics/chromium/LayerRendererChromium.h:
2011-10-19 Nat Duca <nduca@chromium.org>
[chromium] Route requestAnimationFrame through CCProxy in threaded mode
https://bugs.webkit.org/show_bug.cgi?id=70160
Reviewed by James Robinson.
* platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
(WebCore::CCLayerTreeHost::setNeedsAnimate):
* platform/graphics/chromium/cc/CCLayerTreeHost.h:
* platform/graphics/chromium/cc/CCProxy.h:
* platform/graphics/chromium/cc/CCScheduler.cpp:
(WebCore::CCScheduler::requestAnimate):
* platform/graphics/chromium/cc/CCScheduler.h:
* platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
(WebCore::CCSingleThreadProxy::setNeedsAnimate):
* platform/graphics/chromium/cc/CCSingleThreadProxy.h:
* platform/graphics/chromium/cc/CCThreadProxy.cpp:
(WebCore::CCThreadProxy::setNeedsAnimate):
(WebCore::CCThreadProxy::setNeedsAnimateOnCCThread):
* platform/graphics/chromium/cc/CCThreadProxy.h:
2011-10-19 Kent Tamura <tkent@chromium.org>
Reject invalid MIME type strings for a file selection dialog parameter
https://bugs.webkit.org/show_bug.cgi?id=70095
Reviewed by Darin Fisher and Darin Adler.
No new tests. This affect only a value passed to WebKit layer.
* html/HTMLInputElement.cpp:
(WebCore::isRFC2616TokenCharacter): Added.
(WebCore::HTMLInputElement::acceptMIMETypes):
Validate a MIME type string, and don't add invalid strings to the output Vector.
2011-10-19 Darin Adler <darin@apple.com>
Remove OptionElement (first half)
https://bugs.webkit.org/show_bug.cgi?id=70276
Reviewed by Kent Tamura.
Refactoring that does not require new tests.
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOneSelector): Use hasTagName
and toHTMLOptionElement instead of toOptionElement.
* dom/OptionElement.cpp: Deleted contents. Remove file later.
* dom/OptionElement.h: Ditto.
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::HTMLOptionElement): Initialize m_isSelected.
(WebCore::HTMLOptionElement::createForJSConstructor): Initialize the
selected attribute rather than calling setDefaultSelected.
(WebCore::HTMLOptionElement::text): Moved the code here from
OptionElement::collectOptionLabelOrText.
(WebCore::HTMLOptionElement::index): Moved the code here from
OptionElement::optionIndex.
(WebCore::HTMLOptionElement::parseMappedAttribute): Removed unneeded
code to call setValue and setLabel. Changed the code that called
setSelected to instead set m_isSelected and added a FIXME about why
that's probably wrong, but same behavior as before.
(WebCore::HTMLOptionElement::value): Moved the code here from
OptionElement::collectOptionValue. Added a FIXME about incorrect
whitespace stripping.
(WebCore::HTMLOptionElement::selected): Use m_isSelected.
(WebCore::HTMLOptionElement::setSelected): Use m_isSelected and
call setSelectedState instead of OptionElement::setSelectedState.
(WebCore::HTMLOptionElement::setSelectedState): Moved the code
here from OptionElement::setSelectedState.
(WebCore::HTMLOptionElement::label): Streamlined the code.
(WebCore::HTMLOptionElement::textIndentedToRespectGroupLabel):
Moved the code here from OptionElement::collectOptionTextRespectingGroupLabel.
(WebCore::HTMLOptionElement::insertedIntoTree): Use m_isSelected
and rewrote comment for clarity.
(WebCore::HTMLOptionElement::collectOptionInnerText): Moved this
here from OptionElement, and changed to use StringBuilder.
(WebCore::toHTMLOptionElement): Added.
* html/HTMLOptionElement.h: Removed OptionElement.h include.
Removed OptionElement base class. Removed unneeded friend declarations.
Made value and selected functions non-virtual. Removed unneeded
defaultSelected and setDefaultSelected functions. Made the
textIndentedToRespectGroupLabel and setSelectedState functions
be non-virtual and public. Added a collectOptionInnerText function.
Replaced m_data with m_value, m_label, and m_selected.
* html/HTMLSelectElement.cpp:
(WebCore::toOptionElement): Added. Helper to keep existing code
close to the same.
(WebCore::HTMLSelectElement::nextValidIndex): Use hasTagName
instead of isOptionElement.
(WebCore::HTMLSelectElement::saveLastSelection): Use HTMLOptionElement
type instead of OptionElement.
(WebCore::HTMLSelectElement::setActiveSelectionAnchorIndex): Ditto.
(WebCore::HTMLSelectElement::updateListBoxSelection): Ditto.
(WebCore::HTMLSelectElement::listBoxOnChange): Ditto.
(WebCore::HTMLSelectElement::recalcListItems): Ditto.
(WebCore::HTMLSelectElement::selectedIndex): Ditto.
(WebCore::HTMLSelectElement::setSelectedIndex): Ditto.
(WebCore::HTMLSelectElement::optionToListIndex): Ditto.
(WebCore::HTMLSelectElement::listToOptionIndex): Ditto.
(WebCore::HTMLSelectElement::deselectItemsWithoutValidation): Ditto.
(WebCore::HTMLSelectElement::saveFormControlState): Ditto.
(WebCore::HTMLSelectElement::restoreFormControlState): Ditto.
(WebCore::HTMLSelectElement::appendFormData): Ditto.
(WebCore::HTMLSelectElement::reset): Ditto.
(WebCore::HTMLSelectElement::updateSelectedState): Ditto.
(WebCore::HTMLSelectElement::lastSelectedListIndex): Ditto.
(WebCore::HTMLSelectElement::typeAheadFind): Ditto.
(WebCore::HTMLSelectElement::accessKeySetSelectedIndex): Ditto.
(WebCore::HTMLSelectElement::length): Ditto.
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::updateFromElement): Use HTMLOptionElement,
hasTagName, and toHTMLOptionElement.
(WebCore::RenderListBox::addFocusRingRects): Ditto.
(WebCore::RenderListBox::paintItemForeground): Ditto.
(WebCore::RenderListBox::paintItemBackground): Ditto.
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::updateOptionsWidth): Ditto.
(WebCore::RenderMenuList::setTextFromOption): Ditto.
(WebCore::RenderMenuList::itemText): Ditto.
(WebCore::RenderMenuList::itemIsSelected): Ditto.
2011-10-19 Raymond Toy <rtoy@google.com>
Flush denormals to zero on Windows.
https://bugs.webkit.org/show_bug.cgi?id=70140
Reviewed by Kenneth Russell.
* platform/audio/AudioBus.cpp:
(WebCore::AudioBus::processWithGainFromMonoStereo):
Flush any denormals to zero before saving the result. Change
double gain to float gain to match existing float operations.
* platform/audio/DenormalDisabler.h:
(WebCore::DenormalDisabler::flushDenormalFloatToZero):
New function to flush the given float to zero, if it is a denormal
number.
2011-10-19 Raphael Kubo da Costa <kubo@profusion.mobi>
[EFL] Remove the empty paint() implementation in ScrollbarEfl.
https://bugs.webkit.org/show_bug.cgi?id=70428
Reviewed by Antonio Gomes.
Remove the empty reimplementation of Scrollbar::paint(), as this would
cause ScrollView::paintScrollbars() to paint nothing at all.
If we have mock scrollbars enabled, this will paint them; otherwise,
the code path will end up in WidgetEfl::paint(), which also does
nothing, so the behavior should not change.
No new tests, this is machinery needed to run the current ones.
* platform/efl/ScrollbarEfl.cpp:
(ScrollbarEfl::frameRectsChanged):
* platform/efl/ScrollbarEfl.h:
2011-10-19 Raphael Kubo da Costa <kubo@profusion.mobi>
[EFL] Do not always consider a ScrollView will have an Evas/Evas_Object.
https://bugs.webkit.org/show_bug.cgi?id=70426
Reviewed by Antonio Gomes.
After r95234 turned on a new code path for the port (we erroneously used
ENABLE_AS_IMAGE instead of ENABLE_SVG_AS_IMAGE before), some tests, such
as compositing/image/direct-svg-image.html or
fast/writing-mode/block-level-images.html started writing stderr
messages about the parent passed to ScrollbarEfl::setParent not having
an Evas.
It turns out that a FrameView can be created in places other than
ewk_frame_view_create_for_view, in which case the view will not have an
Evas or an Evas_Object. This is not an error condition, so we can just
return earlier.
No new tests, this was detected by existing ones.
* platform/efl/ScrollbarEfl.cpp:
(ScrollbarEfl::setParent):
2011-10-19 Julien Chaffraix <jchaffraix@webkit.org>
Multiple crashes in RenderTable during layout
https://bugs.webkit.org/show_bug.cgi?id=70392
Reviewed by Simon Fraser.
Tests: fast/table/crash-anonymous-table-computeLogicalWidth.html
fast/table/crash-anonymous-table-layout.html
r97555 forgot to take into account anonymous tables during layout
where RenderObject::node() is NULL.
* rendering/RenderTable.cpp:
(WebCore::RenderTable::computeLogicalWidth):
(WebCore::RenderTable::layout):
Added a check for node() before calling Node::hasTagName.
2011-10-19 Adam Bergkvist <adam.bergkvist@ericsson.com>
Update MediaStream to use WebCore platform interfaces
https://bugs.webkit.org/show_bug.cgi?id=68464
Reviewed by Adam Barth.
This is one in a series of patches that update the MediaStream feature
to use WebCore platform interfaces.
Tests will be provided by http://webkit.org/b/56587
* dom/LocalMediaStream.cpp:
(WebCore::LocalMediaStream::create):
(WebCore::LocalMediaStream::LocalMediaStream):
(WebCore::LocalMediaStream::stop):
(WebCore::LocalMediaStream::stopTimerFired):
(WebCore::LocalMediaStream::~LocalMediaStream):
(WebCore::LocalMediaStream::toLocalMediaStream):
* dom/LocalMediaStream.h:
* dom/LocalMediaStream.idl:
* dom/MediaStream.cpp:
(WebCore::MediaStream::create):
(WebCore::MediaStream::MediaStream):
(WebCore::MediaStream::~MediaStream):
(WebCore::MediaStream::readyState):
(WebCore::MediaStream::streamEnded):
(WebCore::MediaStream::scriptExecutionContext):
* dom/MediaStream.h:
(WebCore::MediaStream::label):
(WebCore::MediaStream::tracks):
(WebCore::MediaStream::descriptor):
* dom/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::create):
(WebCore::MediaStreamTrack::MediaStreamTrack):
(WebCore::MediaStreamTrack::kind):
(WebCore::MediaStreamTrack::label):
(WebCore::MediaStreamTrack::enabled):
(WebCore::MediaStreamTrack::setEnabled):
* dom/MediaStreamTrack.h:
* dom/MediaStreamTrack.idl:
* dom/MediaStreamTrackList.cpp:
(WebCore::MediaStreamTrackList::create):
(WebCore::MediaStreamTrackList::MediaStreamTrackList):
(WebCore::MediaStreamTrackList::length):
(WebCore::MediaStreamTrackList::item):
* dom/MediaStreamTrackList.h:
* p2p/PeerConnection.cpp:
(WebCore::PeerConnection::addStream):
(WebCore::PeerConnection::removeStream):
(WebCore::PeerConnection::remoteStreamAdded):
* page/MediaStreamClient.h:
* page/MediaStreamController.cpp:
(WebCore::MediaStreamController::unregisterFrameController):
(WebCore::MediaStreamController::streamGenerated):
* page/MediaStreamController.h:
* page/MediaStreamFrameController.cpp:
(WebCore::MediaStreamFrameController::enterDetachedState):
(WebCore::MediaStreamFrameController::disconnectFrame):
(WebCore::MediaStreamFrameController::streamGenerated):
* page/MediaStreamFrameController.h:
2011-10-19 W. James MacLean <wjmaclean@chromium.org>
[chromium] Shorten animation time for ZoomAnimator.
https://bugs.webkit.org/show_bug.cgi?id=70419
Reviewed by Kenneth Russell.
Shorten animation time for ZoomAnimator.
Existing test coverage sufficient.
* platform/ScrollAnimatorNone.cpp:
(WebCore::ScrollAnimatorNone::zoom):
2011-10-19 Zhenyao Mo <zmo@google.com>
Implement WEBGL_debug_shaders and WEBGL_debug_renderer_info extensions
https://bugs.webkit.org/show_bug.cgi?id=70077
Reviewed by Kenneth Russell.
* WebCore.gypi: added new extension class files.
* WebCore.xcodeproj/project.pbxproj: ditto.
* WebCore.pro: ditto.
* CMakeLists.txt: ditto.
* GNUmakefile.list.am: ditto.
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::toJS): Handles two new extensions.
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::toV8Object): Ditto.
* html/canvas/WebGLDebugRendererInfo.cpp: Added.
(WebCore::WebGLDebugRendererInfo::WebGLDebugRendererInfo):
(WebCore::WebGLDebugRendererInfo::~WebGLDebugRendererInfo):
(WebCore::WebGLDebugRendererInfo::getName):
(WebCore::WebGLDebugRendererInfo::create):
* html/canvas/WebGLDebugRendererInfo.h: Added.
* html/canvas/WebGLDebugRendererInfo.idl: Added.
* html/canvas/WebGLDebugShaders.cpp: Added.
(WebCore::WebGLDebugShaders::WebGLDebugShaders):
(WebCore::WebGLDebugShaders::~WebGLDebugShaders):
(WebCore::WebGLDebugShaders::getName):
(WebCore::WebGLDebugShaders::create):
(WebCore::WebGLDebugShaders::getTranslatedShaderSource):
* html/canvas/WebGLDebugShaders.h: Added.
* html/canvas/WebGLDebugShaders.idl: Added.
* html/canvas/WebGLExtension.h:
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::allowPrivilegedExtensions): To be implemented - deciding whether the two extensions should be allowed or not.
(WebCore::WebGLRenderingContext::getExtension): Handles two new extensions.
(WebCore::WebGLRenderingContext::getParameter): Handles UNMASKED_VENDOR_WEBGL / UNMASKED_RENDERER_WEBGL
(WebCore::WebGLRenderingContext::getSupportedExtensions): Handles two new extensions.
* html/canvas/WebGLRenderingContext.h:
* platform/graphics/Extensions3D.h: Ditto.
* platform/graphics/GraphicsTypes3D.h: Add GC3Dchar.
* platform/graphics/chromium/Extensions3DChromium.h: Handles two new extensions.
* platform/graphics/opengl/Extensions3DOpenGL.cpp: Ditto.
(WebCore::getTranslatedShaderSourceANGLE):
* platform/graphics/opengl/Extensions3DOpenGL.h: Ditto.
* platform/graphics/qt/Extensions3DQt.cpp: Ditto.
(WebCore::Extensions3DQt::getTranslatedShaderSourceANGLE):
* platform/graphics/qt/Extensions3DQt.h: Ditto.
2011-10-19 Geoffrey Garen <ggaren@apple.com>
Removed StringImplBase, fusing it into StringImpl
https://bugs.webkit.org/show_bug.cgi?id=70443
Reviewed by Gavin Barraclough.
* ForwardingHeaders/runtime/RopeImpl.h: Removed.
* ForwardingHeaders/wtf/text/StringImplBase.h: Removed.
2011-10-19 Shinya Kawanaka <shinyak@google.com>
ArrayBuffer should have slice method.
https://bugs.webkit.org/show_bug.cgi?id=66646
Reviewed by Kenneth Russell.
* html/canvas/ArrayBuffer.cpp:
(WebCore::clampValue):
(WebCore::ArrayBuffer::slice):
(WebCore::ArrayBuffer::sliceImpl):
(WebCore::ArrayBuffer::clampIndex):
* html/canvas/ArrayBuffer.h: Added declaration.
* html/canvas/ArrayBuffer.idl: Added interface.
2011-10-19 Mark Hahnenberg <mhahnenberg@apple.com>
Add getConstructData to the MethodTable
https://bugs.webkit.org/show_bug.cgi?id=70163
Reviewed by Geoffrey Garen.
No new tests.
Adding getConstructData to the MethodTable in order to be able to
remove all calls to getConstructDataVirtual soon. Part of the process
of de-virtualizing JSCell.
* WebCore.exp.in:
2011-10-19 Dan Bernstein <mitz@apple.com>
Incorrect pagination in flipped-blocks writing modes with border/padding before
https://bugs.webkit.org/show_bug.cgi?id=70444
Reviewed by Darin Adler.
Test: fast/multicol/flipped-blocks-border-after.html
* rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState): Account for flipped blocks when adjusting the page offset.
2011-10-19 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=70396
Focus rings are too thin in HiDPI in WebKit2
-and corresponding-
<rdar://problem/10086876>
Reviewed by Dan Bernstein.
Rename wkSetPatternBaseCTM to wkSetBaseCTM
* WebCore.exp.in:
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
New CG-only function calls into wkSetBaseCTM.
* platform/graphics/GraphicsContext.h:
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::setBaseCTM):
Call GraphicsContext::setBaseCTM() rather than calling into WebKitSystemInterface
directly.
* platform/graphics/cg/ImageCG.cpp:
(WebCore::Image::drawPattern):
2011-10-19 Anna Cavender <annacc@chromium.org>
Update WebVTTParser to require at least one space between timestamps and arrows, e.g.:
00:04:01.000 --> 00:03:00.500 is OK
00:04:01.000-->00:03:00.500 is not OK
https://bugs.webkit.org/show_bug.cgi?id=70274
Reviewed by Eric Carlson.
Existing tests:
media/track/track-webvtt-tc008-timings-no-hours.html
(see media/track/captions-webvtt/tc008-timings-no-hour-errors.vtt #6)
media/track/track-webvtt-tc009-timings-hour.html
(see media/track/captions-webvtt/tc009-timings-hour-error.vtt #6)
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::collectTimingsAndSettings): Check that the
character before and after the '-->' is a space character
2011-10-19 Daniel Cheng <dcheng@chromium.org>
Don't always select images during an image drag.
https://bugs.webkit.org/show_bug.cgi?id=62998
Reviewed by Tony Chang.
Only select an image being dragged if it is contenteditable.
Test: fast/events/drag-selects-image.html
* dom/Node.cpp:
(WebCore::Node::isContentRichlyEditable):
* dom/Node.h:
* page/DragController.cpp:
(WebCore::prepareClipboardForImageDrag):
2011-10-19 Andreas Kling <kling@webkit.org>
HTMLBodyElement: Simplify link/alink/vlink attribute parsing.
https://bugs.webkit.org/show_bug.cgi?id=70429
Reviewed by Antonio Gomes.
Instead of carrying around a CSSMutableStyleDeclaration with the body element,
just use CSSParser::parseColor() to parse the three link color attributes.
* html/HTMLBodyElement.h:
* html/HTMLBodyElement.cpp:
(WebCore::HTMLBodyElement::~HTMLBodyElement):
Remove HTMLBodyElement::m_linkDecl and all the voodoo that went along with it.
(WebCore::HTMLBodyElement::parseMappedAttribute):
Use CSSParser directly to parse the color values for {link,alink,vlink}Attr.
2011-10-18 Oliver Hunt <oliver@apple.com>
Support CanvasPixelArray in the DFG
https://bugs.webkit.org/show_bug.cgi?id=70384
Reviewed by Filip Pizlo.
Make CanvasPixelArray inherit from ByteArray's ClassInfo so
can identify it more sensibly.
* bindings/js/JSImageDataCustom.cpp:
(WebCore::toJS):
2011-10-19 Chang Shu <cshu@webkit.org>
[Qt] Disable fullscreen api on Qt by default
https://bugs.webkit.org/show_bug.cgi?id=70413
Reviewed by Noam Rosenthal.
As the WebKit side of implementation for fullscreen api feature has not been done yet,
we'd better turn off the feature on the WebCore side by default.
* features.pri:
2011-10-19 Dirk Schulze <krit@webkit.org>
Unreviewed, rolling out r97863.
http://trac.webkit.org/changeset/97863
https://bugs.webkit.org/show_bug.cgi?id=65769
Rollout
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* platform/graphics/FloatRect.cpp:
* platform/graphics/FloatRect.h:
(WebCore::FloatRect::contains):
* rendering/RenderObject.h:
(WebCore::RenderObject::isSVGPath):
* rendering/RenderTreeAsText.cpp:
(WebCore::write):
* rendering/svg/RenderSVGAllInOne.cpp:
* rendering/svg/RenderSVGModelObject.cpp:
(WebCore::isGraphicsElement):
* rendering/svg/RenderSVGPath.cpp:
(WebCore::BoundingRectStrokeStyleApplier::BoundingRectStrokeStyleApplier):
(WebCore::BoundingRectStrokeStyleApplier::strokeStyle):
(WebCore::RenderSVGPath::RenderSVGPath):
(WebCore::RenderSVGPath::fillContains):
(WebCore::RenderSVGPath::strokeContains):
(WebCore::RenderSVGPath::layout):
(WebCore::RenderSVGPath::shouldStrokeZeroLengthSubpath):
(WebCore::RenderSVGPath::zeroLengthSubpathRect):
(WebCore::RenderSVGPath::setupSquareCapPath):
(WebCore::RenderSVGPath::setupNonScalingStrokePath):
(WebCore::RenderSVGPath::fillAndStrokePath):
(WebCore::RenderSVGPath::paint):
(WebCore::RenderSVGPath::addFocusRingRects):
(WebCore::RenderSVGPath::nodeAtFloatPoint):
(WebCore::RenderSVGPath::calculateMarkerBoundsIfNeeded):
(WebCore::RenderSVGPath::updateCachedBoundaries):
* rendering/svg/RenderSVGPath.h:
(WebCore::RenderSVGPath::path):
(WebCore::RenderSVGPath::setNeedsPathUpdate):
(WebCore::RenderSVGPath::setNeedsBoundariesUpdate):
(WebCore::RenderSVGPath::setNeedsTransformUpdate):
(WebCore::RenderSVGPath::objectBoundingBox):
(WebCore::RenderSVGPath::strokeBoundingBox):
(WebCore::RenderSVGPath::repaintRectInLocalCoordinates):
(WebCore::RenderSVGPath::localToParentTransform):
(WebCore::RenderSVGPath::localTransform):
(WebCore::toRenderSVGPath):
* rendering/svg/RenderSVGRect.cpp: Removed.
* rendering/svg/RenderSVGRect.h: Removed.
* rendering/svg/RenderSVGResource.h:
(WebCore::RenderSVGResource::postApplyResource):
* rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
(WebCore::RenderSVGResourceClipper::calculateClipContentRepaintRect):
(WebCore::RenderSVGResourceClipper::hitTestClipContent):
* rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::transformOnNonScalingStroke):
* rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::postApplyResource):
* rendering/svg/RenderSVGResourceFilter.h:
* rendering/svg/RenderSVGResourceGradient.cpp:
(WebCore::RenderSVGResourceGradient::applyResource):
* rendering/svg/RenderSVGResourceGradient.h:
* rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::postApplyResource):
* rendering/svg/RenderSVGResourcePattern.h:
* rendering/svg/RenderSVGResourceSolidColor.cpp:
(WebCore::RenderSVGResourceSolidColor::postApplyResource):
* rendering/svg/RenderSVGResourceSolidColor.h:
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::paint):
* rendering/svg/RenderSVGShape.cpp: Removed.
* rendering/svg/RenderSVGShape.h: Removed.
* rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::releasePaintingResource):
* rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::prepareToRenderSVGContent):
(WebCore::SVGRenderSupport::finishRenderSVGContent):
(WebCore::SVGRenderSupport::layoutChildren):
* rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::writeStyle):
(WebCore::operator<<):
(WebCore::write):
* rendering/svg/SVGRenderTreeAsText.h:
* rendering/svg/SVGTextRunRenderingContext.cpp:
(WebCore::SVGTextRunRenderingContext::drawSVGGlyphs):
* svg/SVGCircleElement.cpp:
(WebCore::SVGCircleElement::svgAttributeChanged):
* svg/SVGEllipseElement.cpp:
(WebCore::SVGEllipseElement::svgAttributeChanged):
* svg/SVGLineElement.cpp:
(WebCore::SVGLineElement::svgAttributeChanged):
* svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::svgAttributeChanged):
(WebCore::SVGPathElement::pathSegListChanged):
* svg/SVGPathElement.h:
* svg/SVGPolyElement.cpp:
(WebCore::SVGPolyElement::svgAttributeChanged):
* svg/SVGRectElement.cpp:
(WebCore::SVGRectElement::svgAttributeChanged):
* svg/SVGRectElement.h:
2011-10-19 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: worker inspector title should contain worker URL
https://bugs.webkit.org/show_bug.cgi?id=70424
Worker inspector title is now evaluated when the front-end starts.
Reviewed by Pavel Feldman.
* inspector/front-end/WorkerManager.js:
(WebInspector.WorkerManager.loaded):
(WebInspector.WorkerManager._calculateWorkerInspectorTitle):
2011-10-19 Martin Robinson <mrobinson@igalia.com>
[GTK] Avoid unecessarily calling gtk_widget_size_allocate on plugin widgets
https://bugs.webkit.org/show_bug.cgi?id=70190
Reviewed by Xan Lopez.
Instead of always calling gtk_widget_size_allocate on every single plugin
widget during scrolling, only call it on widgets that are both in the view
and that have moved.
No new tests. It's difficult to test scrolling performance in an
automated way.
* plugins/gtk/PluginViewGtk.cpp:
(WebCore::PluginView::setNPWindowIfNeeded): Reverse the if statement detecting a
clipped out plugin. It was incorrect.
(WebCore::PluginView::updateWidgetAllocationAndClip): If the current allocation of
the plugin widget has not changed or if the widget remains scrolled out, do not call
gtk_widget_size_allocate.
2011-10-19 Renata Hodovan <reni@webkit.org>
Add new renderer for SVGRectElement.
https://bugs.webkit.org/show_bug.cgi?id=65769
Reviewed by Dirk Schulze.
This patch introduces a new common base class called RenderSVGShape which
replaces the RenderSVGPath. This new base class has the same purpose
as the replaced class and has specialized descendants for common
shapes (like Rectangles and Circles), which allows faster painting
of these shapes when certain conditions are fulfilled. On some
benchmark programs we have seen 5% speedup.
The biggest motivation of this refactor is taking advantage
of faster primitive drawing in the most common and frequent
cases. However in some rare cases, like painting rounded
rects, we need to fallback to the original code path, which
is fully kept in the RenderSVGShape base class. Some other
cases, like dashed strokes, can be painted but mouse pointer
events cannot be handled by the descendant classes. A different
fallback mechanism is used in such cases which redirects
only the pointer event handling to the base class.
Tests: svg/custom/pointer-events-on-rounded-rect.xhtml
svg/custom/pointer-events-with-linecaps-and-miterlimits.xhtml
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* platform/graphics/FloatRect.cpp:
(WebCore::FloatRect::contains):
* platform/graphics/FloatRect.h:
(WebCore::FloatRect::contains):
* rendering/RenderObject.h:
(WebCore::RenderObject::isSVGRect):
(WebCore::RenderObject::isSVGShape):
* rendering/RenderTreeAsText.cpp:
(WebCore::write):
* rendering/svg/RenderSVGAllInOne.cpp:
* rendering/svg/RenderSVGModelObject.cpp:
(WebCore::isGraphicsElement):
* rendering/svg/RenderSVGPath.cpp:
(WebCore::RenderSVGPath::RenderSVGPath):
(WebCore::RenderSVGPath::inflateWithMarkerBounds): Unite the markerBounds with strokeBoundingBox.
* rendering/svg/RenderSVGPath.h:
* rendering/svg/RenderSVGRect.cpp: Added.
(WebCore::RenderSVGRect::RenderSVGRect):
(WebCore::RenderSVGRect::~RenderSVGRect):
(WebCore::RenderSVGRect::createShape):
(WebCore::RenderSVGRect::objectBoundingBox):
(WebCore::RenderSVGRect::strokeBoundingBox):
(WebCore::RenderSVGRect::fillShape):
(WebCore::RenderSVGRect::strokeShape):
(WebCore::RenderSVGRect::shapeDependentStrokeContains):
(WebCore::RenderSVGRect::shapeDependentFillContains):
* rendering/svg/RenderSVGRect.h: Added.
(WebCore::RenderSVGRect::isSVGRect):
(WebCore::RenderSVGRect::renderName):
(WebCore::RenderSVGRect::isEmpty):
* rendering/svg/RenderSVGResource.h:
(WebCore::RenderSVGResource::postApplyResource): A new shape argument was added to allow shape specific faster painting.
* rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
(WebCore::RenderSVGResourceClipper::calculateClipContentRepaintRect):
(WebCore::RenderSVGResourceClipper::hitTestClipContent):
* rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::transformOnNonScalingStroke):
* rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::postApplyResource):
* rendering/svg/RenderSVGResourceFilter.h:
* rendering/svg/RenderSVGResourceGradient.cpp:
(WebCore::RenderSVGResourceGradient::applyResource):
* rendering/svg/RenderSVGResourceGradient.h:
* rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::postApplyResource):
* rendering/svg/RenderSVGResourcePattern.h:
* rendering/svg/RenderSVGResourceSolidColor.cpp:
(WebCore::RenderSVGResourceSolidColor::postApplyResource):
* rendering/svg/RenderSVGResourceSolidColor.h:
* rendering/svg/RenderSVGShape.cpp: Copied from Source/WebCore/rendering/svg/RenderSVGPath.cpp.
(WebCore::RenderSVGShape::RenderSVGShape):
(WebCore::RenderSVGShape::~RenderSVGShape):
(WebCore::RenderSVGShape::createShape):
(WebCore::RenderSVGShape::isEmpty):
(WebCore::RenderSVGShape::fillShape):
(WebCore::RenderSVGShape::objectBoundingBox):
(WebCore::RenderSVGShape::strokeBoundingBox):
(WebCore::RenderSVGShape::strokeShape):
(WebCore::RenderSVGShape::shapeDependentStrokeContains):
The purpose of this virtual function allows decendants to use their own fast checks.
(WebCore::RenderSVGShape::shapeDependentFillContains):
The purpose of this virtual function allows decendants to use their own fast checks.
(WebCore::RenderSVGShape::fillContains):
(WebCore::RenderSVGShape::strokeContains):
(WebCore::RenderSVGShape::layout):
(WebCore::RenderSVGShape::shouldStrokeZeroLengthSubpath):
(WebCore::RenderSVGShape::zeroLengthSubpathRect):
(WebCore::RenderSVGShape::setupSquareCapPath):
(WebCore::RenderSVGShape::setupNonScalingStrokePath):
(WebCore::RenderSVGShape::fillAndStrokePath):
(WebCore::RenderSVGShape::paint):
(WebCore::RenderSVGShape::addFocusRingRects):
(WebCore::RenderSVGShape::nodeAtFloatPoint):
(WebCore::RenderSVGShape::calculateMarkerBoundsIfNeeded):
(WebCore::RenderSVGShape::updateCachedBoundaries):
(WebCore::RenderSVGShape::strokeWidth):
* rendering/svg/RenderSVGShape.h: Copied from Source/WebCore/rendering/svg/RenderSVGPath.h.
(WebCore::BoundingRectStrokeStyleApplier::BoundingRectStrokeStyleApplier):
(WebCore::BoundingRectStrokeStyleApplier::strokeStyle):
(WebCore::RenderSVGShape::setNeedsShapeUpdate):
(WebCore::RenderSVGShape::setNeedsBoundariesUpdate):
(WebCore::RenderSVGShape::setNeedsTransformUpdate):
(WebCore::RenderSVGShape::isPaintingFallback):
(WebCore::RenderSVGShape::path):
(WebCore::RenderSVGShape::setIsPaintingFallback):
(WebCore::RenderSVGShape::setStrokeAndMarkerBoundingBox):
(WebCore::RenderSVGShape::hasPath):
(WebCore::RenderSVGShape::repaintRectInLocalCoordinates):
(WebCore::RenderSVGShape::localToParentTransform):
(WebCore::RenderSVGShape::localTransform):
(WebCore::RenderSVGShape::isSVGShape):
(WebCore::RenderSVGShape::renderName):
(WebCore::RenderSVGShape::isRoundedRect):
(WebCore::RenderSVGShape::inflateWithMarkerBounds):
(WebCore::toRenderSVGShape):
* rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::releasePaintingResource):
* rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::finishRenderSVGContent):
(WebCore::SVGRenderSupport::layoutChildren):
* rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::writeStyle):
(WebCore::operator<<):
(WebCore::write):
* rendering/svg/SVGRenderTreeAsText.h:
* rendering/svg/SVGTextRunRenderingContext.cpp:
(WebCore::SVGTextRunRenderingContext::drawSVGGlyphs):
* svg/SVGCircleElement.cpp:
(WebCore::SVGCircleElement::svgAttributeChanged):
* svg/SVGEllipseElement.cpp:
(WebCore::SVGEllipseElement::svgAttributeChanged):
* svg/SVGLineElement.cpp:
(WebCore::SVGLineElement::svgAttributeChanged):
* svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::svgAttributeChanged):
(WebCore::SVGPathElement::pathSegListChanged):
(WebCore::SVGPathElement::createRenderer):
* svg/SVGPathElement.h:
* svg/SVGPolyElement.cpp:
(WebCore::SVGPolyElement::svgAttributeChanged):
* svg/SVGRectElement.cpp:
(WebCore::SVGRectElement::svgAttributeChanged):
(WebCore::SVGRectElement::createRenderer):
* svg/SVGRectElement.h:
2011-10-19 Chris Fleizach <cfleizach@apple.com>
AX: buttons of number type <input> controls are not fully accessible
https://bugs.webkit.org/show_bug.cgi?id=70241
Unreviewed. Fix missing </File> tag in Windows WebCore project file.
* WebCore.vcproj/WebCore.vcproj:
2011-10-19 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: [Chromium] Add an ability to show the objects that were allocated between snapshot N-2 and snapshot N-1 and still alive in snapshot N.
https://bugs.webkit.org/show_bug.cgi?id=61178
This ability will help us to see only the leaked objects.
Scenario:
1) do an action on inspected page which leaks javascript data;
2) make snapshot;
3) repeat first two steps three or more times;
4) select the last snapshot and select the filter 'Objects allocated between Snapshot 1 and Snapshot2' instead of 'All objects'.
The view shows the object that were allocated between snapshot N-2 and snapshot N-1 and still alive in snapshot N
Reviewed by Pavel Feldman.
* English.lproj/localizedStrings.js:
* inspector/front-end/DetailedHeapshotGridNodes.js:
(WebInspector.HeapSnapshotConstructorNode):
(WebInspector.HeapSnapshotConstructorNode.prototype._createNodesProvider):
* inspector/front-end/DetailedHeapshotView.js:
(WebInspector.HeapSnapshotConstructorsDataGrid):
(WebInspector.HeapSnapshotConstructorsDataGrid.prototype.setDataSource):
(WebInspector.HeapSnapshotConstructorsDataGrid.prototype.populateChildren):
(WebInspector.HeapSnapshotConstructorsDataGrid.prototype._filterSelectIndexChanged.firstSnapshotLoaded):
(WebInspector.HeapSnapshotConstructorsDataGrid.prototype._filterSelectIndexChanged.secondSnapshotLoaded):
(WebInspector.HeapSnapshotConstructorsDataGrid.prototype._filterSelectIndexChanged):
(WebInspector.HeapSnapshotDiffDataGrid.prototype._baseProfileIndexChanged):
(WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren):
(WebInspector.DetailedHeapshotView.profileCallback):
(WebInspector.DetailedHeapshotView):
(WebInspector.DetailedHeapshotView.prototype.get statusBarItems):
(WebInspector.DetailedHeapshotView.prototype._changeBase):
(WebInspector.DetailedHeapshotView.prototype._changeFilter):
(WebInspector.DetailedHeapshotView.prototype._loadProfileByIndex):
(WebInspector.DetailedHeapshotView.prototype._changeView):
(WebInspector.DetailedHeapshotView.prototype._updateFilterOptions):
* inspector/front-end/HeapSnapshot.js:
(WebInspector.HeapSnapshot.prototype.dispose):
(WebInspector.HeapSnapshot.prototype.get maxNodeId):
(WebInspector.HeapSnapshot.prototype.aggregates):
(WebInspector.HeapSnapshot.prototype._buildAggregates):
(WebInspector.HeapSnapshot.prototype._sortAggregateIndexes):
(WebInspector.HeapSnapshot.prototype.createNodesProviderForClass):
(WebInspector.HeapSnapshot.prototype.updateStaticData):
* inspector/front-end/HeapSnapshotProxy.js:
(WebInspector.HeapSnapshotWorker):
(WebInspector.HeapSnapshotProxy.prototype.aggregates):
(WebInspector.HeapSnapshotProxy.prototype.createNodesProviderForClass):
(WebInspector.HeapSnapshotProxy.prototype.get maxNodeId):
(WebInspector.HeapSnapshotProxy.prototype.startLoading):
2011-10-19 Alexander Pavlov <apavlov@chromium.org>
Strip trailing whitespace in the WebCore/css C++ code.
https://bugs.webkit.org/show_bug.cgi?id=70410
Reviewed by Dirk Schulze.
Only affected file names retained below for brevity.
Multiline boolean expression were fixed where necessary to avoid patch style violations.
* css/CSSBorderImageSliceValue.cpp:
* css/CSSBorderImageSliceValue.h:
* css/CSSBorderImageValue.cpp:
* css/CSSCanvasValue.cpp:
* css/CSSCanvasValue.h:
* css/CSSComputedStyleDeclaration.cpp:
* css/CSSCursorImageValue.cpp:
* css/CSSFontFace.cpp:
* css/CSSFontFace.h:
* css/CSSFontFaceSource.cpp:
* css/CSSFontFaceSource.h:
* css/CSSFontFaceSrcValue.cpp:
* css/CSSFontFaceSrcValue.h:
* css/CSSFontSelector.cpp:
* css/CSSFontSelector.h:
* css/CSSFunctionValue.cpp:
* css/CSSFunctionValue.h:
* css/CSSGradientValue.cpp:
* css/CSSGradientValue.h:
* css/CSSImageGeneratorValue.cpp:
* css/CSSImageGeneratorValue.h:
* css/CSSImageValue.cpp:
* css/CSSImageValue.h:
* css/CSSImportRule.cpp:
* css/CSSInitialValue.cpp:
* css/CSSInitialValue.h:
* css/CSSMutableStyleDeclaration.cpp:
* css/CSSMutableStyleDeclaration.h:
* css/CSSParser.cpp:
* css/CSSParser.h:
* css/CSSParserValues.cpp:
* css/CSSParserValues.h:
* css/CSSPrimitiveValue.cpp:
* css/CSSPrimitiveValue.h:
* css/CSSPrimitiveValueCache.cpp:
* css/CSSPrimitiveValueCache.h:
* css/CSSPrimitiveValueMappings.h:
* css/CSSProperty.cpp:
* css/CSSProperty.h:
* css/CSSPropertyLonghand.cpp:
* css/CSSReflectValue.cpp:
* css/CSSReflectValue.h:
* css/CSSReflectionDirection.h:
* css/CSSSegmentedFontFace.cpp:
* css/CSSSegmentedFontFace.h:
* css/CSSSelector.cpp:
* css/CSSSelector.h:
* css/CSSSelectorList.cpp:
* css/CSSSelectorList.h:
* css/CSSStyleApplyProperty.cpp:
* css/CSSStyleDeclaration.h:
* css/CSSStyleSelector.cpp:
* css/CSSStyleSelector.h:
* css/CSSStyleSheet.cpp:
* css/CSSTimingFunctionValue.cpp:
* css/CSSTimingFunctionValue.h:
* css/CSSUnicodeRangeValue.cpp:
* css/CSSUnicodeRangeValue.h:
* css/CSSValueList.cpp:
* css/CSSWrapShapes.cpp:
* css/CSSWrapShapes.h:
* css/FontValue.cpp:
* css/MediaList.cpp:
* css/MediaQuery.cpp:
* css/MediaQuery.h:
* css/MediaQueryEvaluator.h:
* css/MediaQueryExp.cpp:
* css/MediaQueryExp.h:
* css/Pair.h:
* css/SVGCSSComputedStyleDeclaration.cpp:
* css/SVGCSSParser.cpp:
* css/SVGCSSStyleSelector.cpp:
* css/SelectorChecker.cpp:
* css/SelectorChecker.h:
* css/StyleBase.cpp:
* css/StyleMedia.cpp:
* css/StyleMedia.h:
* css/StyleSheetList.cpp:
* css/StyleSheetList.h:
* css/WebKitCSSFilterValue.cpp:
* css/WebKitCSSFilterValue.h:
* css/WebKitCSSKeyframeRule.cpp:
* css/WebKitCSSKeyframeRule.h:
* css/WebKitCSSKeyframesRule.cpp:
* css/WebKitCSSKeyframesRule.h:
* css/WebKitCSSMatrix.cpp:
* css/WebKitCSSMatrix.h:
* css/WebKitCSSTransformValue.cpp:
* css/WebKitCSSTransformValue.h:
2011-10-19 Dirk Schulze <krit@webkit.org>
Make FilterEffect::apply() independent of image data management
https://bugs.webkit.org/show_bug.cgi?id=70350
Reviewed by Zoltan Herczeg.
FilterEffect::apply() needs to be independent from the image data management in FilterEffect.
This allows implementing effective hardware accelerated alternatives, like OpenGL, CI or OpenCL
based filters, to the software rendering. The software rendering code will be used as fallback
and moves to platformApplySoftware().
The patch does not change the behavior of SVG filters. Did not add new test cases.
* platform/graphics/filters/FEBlend.cpp: Renamed apply() to platformApplyGeneric()
and removed validity checks that are done by FilterEffect::apply(). This is a
recurring pattern for all following effects.
(WebCore::FEBlend::platformApplySoftware):
* platform/graphics/filters/FEBlend.h:
* platform/graphics/filters/FEColorMatrix.cpp:
(WebCore::FEColorMatrix::platformApplySoftware):
* platform/graphics/filters/FEColorMatrix.h:
* platform/graphics/filters/FEComponentTransfer.cpp:
(WebCore::FEComponentTransfer::platformApplySoftware):
* platform/graphics/filters/FEComponentTransfer.h:
* platform/graphics/filters/FEComposite.cpp:
(WebCore::FEComposite::platformApplySoftware):
* platform/graphics/filters/FEComposite.h:
* platform/graphics/filters/FEConvolveMatrix.cpp:
(WebCore::FEConvolveMatrix::platformApplySoftware):
* platform/graphics/filters/FEConvolveMatrix.h:
* platform/graphics/filters/FEDisplacementMap.cpp:
(WebCore::FEDisplacementMap::platformApplySoftware):
* platform/graphics/filters/FEDisplacementMap.h:
* platform/graphics/filters/FEDropShadow.cpp:
(WebCore::FEDropShadow::platformApplySoftware):
* platform/graphics/filters/FEDropShadow.h:
* platform/graphics/filters/FEFlood.cpp:
(WebCore::FEFlood::platformApplySoftware):
* platform/graphics/filters/FEFlood.h:
* platform/graphics/filters/FEGaussianBlur.cpp:
(WebCore::FEGaussianBlur::platformApplySoftware):
* platform/graphics/filters/FEGaussianBlur.h:
* platform/graphics/filters/FELighting.cpp:
(WebCore::FELighting::platformApplySoftware):
* platform/graphics/filters/FELighting.h:
* platform/graphics/filters/FEMerge.cpp:
(WebCore::FEMerge::platformApplySoftware):
* platform/graphics/filters/FEMerge.h:
* platform/graphics/filters/FEMorphology.cpp:
(WebCore::FEMorphology::platformApplySoftware):
* platform/graphics/filters/FEMorphology.h:
* platform/graphics/filters/FEOffset.cpp:
(WebCore::FEOffset::platformApplySoftware):
* platform/graphics/filters/FEOffset.h:
* platform/graphics/filters/FETile.cpp:
(WebCore::FETile::platformApplySoftware):
* platform/graphics/filters/FETile.h:
* platform/graphics/filters/FETurbulence.cpp:
(WebCore::FETurbulence::platformApplySoftware):
* platform/graphics/filters/FETurbulence.h:
* platform/graphics/filters/FilterEffect.cpp: Added non-virtual apply() function. This will call the platform specific apply functions,
which need to be virtual now.
(WebCore::FilterEffect::hasResult): Added a comment for new implementations. This function needs to be updated for every new port.
(WebCore::FilterEffect::apply):
(WebCore::FilterEffect::createImageBufferResult): Removed determineAbsolutePaintRect() call. This is done in apply() now.
(WebCore::FilterEffect::createUnmultipliedImageResult): Ditto.
(WebCore::FilterEffect::createPremultipliedImageResult): Ditto.
* platform/graphics/filters/FilterEffect.h:
* platform/graphics/filters/SourceAlpha.cpp:
(WebCore::SourceAlpha::platformApplySoftware):
* platform/graphics/filters/SourceAlpha.h:
* platform/graphics/filters/SourceGraphic.cpp:
(WebCore::SourceGraphic::platformApplySoftware):
* platform/graphics/filters/SourceGraphic.h:
* svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::platformApplySoftware):
* svg/graphics/filters/SVGFEImage.h:
2011-10-19 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Enable caseSensitive search / Regex support in advanced search.
https://bugs.webkit.org/show_bug.cgi?id=70335
Reviewed by Pavel Feldman.
* inspector/ContentSearchUtils.cpp:
(WebCore::ContentSearchUtils::createSearchRegex):
(WebCore::ContentSearchUtils::searchInTextByLines):
* inspector/ContentSearchUtils.h:
* inspector/Inspector.json:
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::searchInContent):
* inspector/InspectorDebuggerAgent.h:
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::searchInResource):
* inspector/InspectorPageAgent.h:
* inspector/front-end/AdvancedSearchController.js:
(WebInspector.SearchView):
(WebInspector.SearchView.prototype.get searchConfig):
(WebInspector.FileBasedSearchResultsPane.prototype._createSearchRegex):
(WebInspector.FileBasedSearchResultsPane.prototype.addSearchResult):
(WebInspector.FileBasedSearchResultsPane.SearchResult):
* inspector/front-end/ConsolePanel.js:
(WebInspector.ConsolePanel.prototype.performSearch):
* inspector/front-end/ContentProviders.js:
(WebInspector.ScriptContentProvider.prototype.searchInContent):
(WebInspector.ConcatenatedScriptsContentProvider.prototype.searchInContent.searchCallback):
(WebInspector.ConcatenatedScriptsContentProvider.prototype.searchInContent):
(WebInspector.ResourceContentProvider.prototype.searchInContent):
(WebInspector.CompilerSourceMappingContentProvider.prototype.searchInContent):
(WebInspector.StaticContentProvider.prototype.searchInContent):
* inspector/front-end/ElementsTreeOutline.js:
():
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkLogView.prototype.performSearch):
* inspector/front-end/Resource.js:
(WebInspector.Resource.prototype.searchInContent):
* inspector/front-end/Script.js:
(WebInspector.Script.prototype.searchInContent):
* inspector/front-end/ScriptsSearchScope.js:
(WebInspector.ScriptsSearchScope.prototype.performSearch.searchCallbackWrapper):
(WebInspector.ScriptsSearchScope.prototype.performSearch):
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame.createSearchRegex):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode.prototype.searchInContent):
(WebInspector.ContentProvider.prototype.searchInContent):
* inspector/front-end/inspector.css:
(.search-view .search-panel input[type="search"].search-config-search):
(.search-view .search-panel label.search-config-label):
(.search-view .search-panel input[type="checkbox"].search-config-checkbox):
* inspector/front-end/utilities.js:
():
2011-10-19 Andreas Kling <kling@webkit.org>
MediaList: Remove inheritance from StyleBase.
https://bugs.webkit.org/show_bug.cgi?id=70203
Reviewed by Darin Adler.
* css/MediaList.h:
(WebCore::MediaList::parentStyleSheet):
(WebCore::MediaList::setParentStyleSheet):
* css/MediaList.cpp:
(WebCore::MediaList::MediaList):
(WebCore::MediaList::notifyChanged):
Change MediaList to no longer inherit from StyleBase. The parent()/setParent()
mechanism was replaced by explicit parentStyleSheet()/setParentStyleSheet().
* css/CSSImportRule.cpp:
(WebCore::CSSImportRule::CSSImportRule):
(WebCore::CSSImportRule::~CSSImportRule):
* css/CSSMediaRule.cpp:
(WebCore::CSSMediaRule::CSSMediaRule):
(WebCore::CSSMediaRule::~CSSMediaRule):
Change StyleBase::setParent() calls to MediaList::setParentStyleSheet().
CSSRules are never moved between stylesheets, so the parent style sheet pointer
is valid for the MediaList's lifetime.
* css/StyleSheet.cpp:
(WebCore::StyleSheet::~StyleSheet):
Change StyleBase::setParent() calls to MediaList::setParentStyleSheet().
(WebCore::StyleSheet::setMedia):
Change StyleBase::setParent() calls to MediaList::setParentStyleSheet().
Assert that the parent sheet is either null, or this, as MediaLists should never
be reparented to other sheets.
Assert that the StyleSheet is indeed a CSSStyleSheet. XSLStyleSheet inherits from
StyleSheet, but it shouldn't be using the MediaList.
* bindings/js/JSDOMBinding.h:
(WebCore::root):
Add MediaList* specific overload for root() since it can't fall back
to root(StyleBase*) anymore.
* WebCore.xcodeproj/project.pbxproj:
Add some PrivateHeaders to accomodate the JSDOMBinding.h changes.
* css/CSSMediaRule.h:
Remove unnecessary forward-declaration of MediaList.
2011-10-19 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Console messages for XHR logging should show call stack if available.
https://bugs.webkit.org/show_bug.cgi?id=70324
Reviewed by Pavel Feldman.
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessageImpl.prototype._formatMessage):
2011-10-13 Pavel Podivilov <podivilov@chromium.org>
Web Inspector: move JS specific popover handling to JavaScriptSourceFrame.
https://bugs.webkit.org/show_bug.cgi?id=70033
Reviewed by Pavel Feldman.
* inspector/front-end/DebuggerPresentationModel.js:
(WebInspector.DebuggerPresentationModel.prototype.uiSourceCodes):
(WebInspector.DebuggerPresentationModel.prototype.get paused):
* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame):
(WebInspector.JavaScriptSourceFrame.prototype.shouldShowPopover):
(WebInspector.JavaScriptSourceFrame.prototype.onShowPopover.showObjectPopover):
(WebInspector.JavaScriptSourceFrame.prototype.onShowPopover):
(WebInspector.JavaScriptSourceFrame.prototype.onHidePopover):
(WebInspector.JavaScriptSourceFrame.prototype._highlightExpression):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._createSourceFrame):
(WebInspector.SourceFrameDelegateForScriptsPanel):
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame):
(WebInspector.SourceFrame.prototype.willHide):
(WebInspector.SourceFrame.prototype._initializeTextViewer):
(WebInspector.SourceFrame.prototype._getPopoverAnchor):
(WebInspector.SourceFrame.prototype.get readOnly):
(WebInspector.SourceFrame.prototype._setReadOnly):
(WebInspector.SourceFrame.prototype.contentChanged):
(WebInspector.SourceFrame.prototype.shouldShowPopover):
(WebInspector.SourceFrame.prototype.onShowPopover):
(WebInspector.SourceFrame.prototype.onHidePopover):
2011-10-19 Tomasz Morawski <t.morawski@samsung.com>
[EFL][WK2] Added missing files to build WebKit2 EFL
https://bugs.webkit.org/show_bug.cgi?id=70312
Reviewed by Ryosuke Niwa.
Added missing files to WebCore/CMakeListEfl.txt script:
- platform/network/soup/CredentialStorageSoup.cpp
- platform/network/soup/ProxyServerSoup.cpp
Fixes few linking time errors.
* CMakeListsEfl.txt:
2011-10-19 Kentaro Hara <haraken@chromium.org>
Rename AllowAllocation to ConstructorMode
https://bugs.webkit.org/show_bug.cgi?id=70397
Reviewed by Adam Barth.
The name 'AllowAllocation' is confusing (See discussion here: bug 70015).
This patch renames 'AllowAllocation' to 'ConstructorMode' to clarify that
this class is for distinguishing the following two situations:
1. A programmer allocates an object via "new X"; X is a function with a C++ constructCallback.
2. C++ allocates an object via the function template and tries to wrap the object with a JS flavor.
Tests: fast/events/constructors/*
* bindings/scripts/CodeGeneratorV8.pm: Renamed AllowAllocation to ConstructorMode.
(GenerateConstructorCallback):
* bindings/scripts/test/V8/V8TestInterface.cpp: Updated a run-binding-tests result.
(WebCore::V8TestInterface::constructorCallback):
* bindings/v8/V8Binding.cpp: Renamed AllowAllocation to ConstructorMode.
(WebCore::V8BindingPerIsolateData::V8BindingPerIsolateData):
* bindings/v8/V8Binding.h: Ditto.
(WebCore::ConstructorMode::ConstructorMode):
(WebCore::ConstructorMode::~ConstructorMode):
(WebCore::ConstructorMode::current):
(WebCore::SafeAllocation::newInstance):
* bindings/v8/V8Proxy.cpp: Ditto.
(WebCore::V8Proxy::checkNewLegal):
* bindings/v8/custom/V8EventConstructors.cpp: Ditto.
(WebCore::constructV8Event):
2011-10-19 Tomasz Morawski <t.morawski@samsung.com>
[EFL] Added missing dummy platformDescription function
https://bugs.webkit.org/show_bug.cgi?id=70310
Reviewed by Ryosuke Niwa.
Added dummy platformDescription function needed to compile WK2.
* platform/efl/ContextMenuEfl.cpp:
(WebCore::ContextMenu::platformDescription):
2011-10-18 Kentaro Hara <haraken@chromium.org>
Generate a SharedWorker constructor of V8 using [Constructor] IDL
https://bugs.webkit.org/show_bug.cgi?id=67879
Reviewed by Hajime Morita.
Spec: http://dev.w3.org/html5/workers/#shared-workers-and-the-sharedworker-interface
This patch changed SharedWorker::create(..., context, ec) to
SharedWorker::create(context, ..., ec), since a parameter specified by [CallWith]
should come at the beginning (c.f. bug 69799).
Test: ui_tests:WorkerTest.FLAKY_SharedWorkerFastConstructor
ui_tests:WorkerTest.FLAKY_SharedWorkerFastName
* WebCore.gypi: Removed bindings/v8/custom/V8SharedWorkerCustom.cpp
* WebCore.pro: Ditto.
* bindings/js/JSSharedWorkerCustom.cpp: Moved ScriptExecutionContext parameter to the beginning.
(WebCore::JSSharedWorkerConstructor::constructJSSharedWorker):
* bindings/v8/custom/V8SharedWorkerCustom.cpp: Removed.
* workers/SharedWorker.cpp: Moved ScriptExecutionContext parameter to the beginning.
(WebCore::SharedWorker::create): Ditto.
* workers/SharedWorker.h: Ditto.
* workers/SharedWorker.idl: Added [Constructor] IDL.
2011-10-18 Johnny Ding <jnd@chromium.org>
Implement NSProcessInfo::systemUptime on Mac Leopard.
https://bugs.webkit.org/show_bug.cgi?id=66577
Reviewed by Tony Chang.
* WebCore.gyp/WebCore.gyp:
* platform/chromium/ScrollAnimatorChromiumMac.mm:
(-[NSProcessInfo systemUptime]):
2011-10-18 Sam Weinig <sam@webkit.org>
Try to jostle the windows build back to life.
* rendering/HitTestResult.h:
2011-10-18 Anders Carlsson <andersca@apple.com>
Assertion failure when going back in page with navigated subframes
https://bugs.webkit.org/show_bug.cgi?id=70389
<rdar://problem/8988444>
Reviewed by Darin Adler.
Test: fast/history/history-back-twice-with-subframes-assert.html
If a single navigation ends up loading multiple frame, the first committed frame will
end up calling recursiveUpdateForCommit on the main frame which will null out the provisional item
for all frames on the page. This means that it can null out the provisional item for any frames
that are still yet to be committed which causes the aforementioned assertion failure.
Fix this by only nulling out the provisional history item (and saving/restoring the scroll position and
some other things) for frames that already contain the URL that the item requested. If a frame is being loaded,
it will null out its provisional history item when it's committed.
* loader/HistoryController.cpp:
(WebCore::HistoryController::recursiveUpdateForCommit):
2011-10-18 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r97765.
http://trac.webkit.org/changeset/97765
https://bugs.webkit.org/show_bug.cgi?id=70388
"broke webkit_unit_tests, http/tests/xmlhttprequest
/xmlhttprequest-test-send-flag.html on linux debug" (Requested
by dpranke on #webkit).
* WebCore.gypi:
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::create):
(WebCore::DocumentThreadableLoader::~DocumentThreadableLoader):
(WebCore::DocumentThreadableLoader::cancel):
(WebCore::DocumentThreadableLoader::setDefersLoading):
(WebCore::DocumentThreadableLoader::willSendRequest):
(WebCore::DocumentThreadableLoader::didSendData):
(WebCore::DocumentThreadableLoader::didReceiveResponse):
(WebCore::DocumentThreadableLoader::didReceiveData):
(WebCore::DocumentThreadableLoader::didReceiveCachedMetadata):
(WebCore::DocumentThreadableLoader::didFinishLoading):
(WebCore::DocumentThreadableLoader::didFail):
(WebCore::DocumentThreadableLoader::preflightSuccess):
(WebCore::DocumentThreadableLoader::loadRequest):
* loader/DocumentThreadableLoader.h:
* loader/cache/CachedRawResource.cpp:
(WebCore::CachedRawResource::CachedRawResource):
(WebCore::CachedRawResource::data):
* loader/cache/CachedRawResource.h:
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::CachedResource):
* loader/cache/CachedResource.h:
(WebCore::CachedResource::setRequestedFromNetworkingLayer):
* loader/cache/CachedResourceClient.h:
* loader/cache/CachedResourceRequest.cpp:
(WebCore::CachedResourceRequest::~CachedResourceRequest):
(WebCore::CachedResourceRequest::willSendRequest):
(WebCore::CachedResourceRequest::didFinishLoading):
(WebCore::CachedResourceRequest::didReceiveResponse):
(WebCore::CachedResourceRequest::didReceiveData):
* loader/cache/CachedResourceRequest.h:
* loader/chromium/CachedRawResourceChromium.cpp: Removed.
* loader/chromium/CachedResourceRequestChromium.cpp: Removed.
* loader/chromium/DocumentThreadableLoaderChromium.cpp:
(WebCore::DocumentThreadableLoader::didDownloadData):
* loader/icon/IconLoader.h:
* platform/network/BlobResourceHandle.cpp:
(WebCore::BlobResourceHandle::notifyResponse):
2011-10-18 Mark Hahnenberg <mhahnenberg@apple.com>
Rename static put to putByIndex
https://bugs.webkit.org/show_bug.cgi?id=70281
Reviewed by Geoffrey Garen.
No new tests.
Renaming versions of deleteProperty that use an unsigned as the property
name to "deletePropertyByIndex" in preparation for adding them to the
MethodTable, which requires unique names for each method.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
* bridge/runtime_array.cpp:
(JSC::RuntimeArray::putVirtual):
(JSC::RuntimeArray::putByIndex):
* bridge/runtime_array.h:
2011-10-18 Sam Weinig <sam@webkit.org>
Fix the build.
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::absolutePDFURL):
Fix typo.
2011-10-18 Alexis Menard <alexis.menard@openbossa.org>
Unreviewed warning fix after https://bugs.webkit.org/show_bug.cgi?id=70269
* WebCore.pro:
2011-10-18 Alexey Proskuryakov <ap@apple.com>
Expose PDF information in hit test result
https://bugs.webkit.org/show_bug.cgi?id=70353
Reviewed by Sam Weinig.
* WebCore.exp.in:
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::absolutePDFURL):
* rendering/HitTestResult.h:
Added HitTestResult::absolutePDFURL(). It will contain a URL when over a PDF object or embed;
not sure if we want this for PDFImageDocuments.
2011-10-18 Adrienne Walker <enne@google.com>
[chromium] Preserve offscreen tiles instead of immediately recycling them
https://bugs.webkit.org/show_bug.cgi?id=70352
Reviewed by James Robinson.
Tested by existing layout tests.
Prior to having a TextureManager class, tiled layers recycled their
textures internally to avoid reallocation. Unfortunately, it recycled
these tiles as soon as they went offscreen, even if they were still
valid. Instead, keep tiles around forever, letting the TextureManager
decide (via LRU) when to reclaim the underlying textures. This will
improve scrolling performance due to not needing to repaint tiles.
This change does lead to more texture reallocation for any textures
that get reclaimed, but the command buffer implementation already
pools and reuses texture ids, so it should not introduce additional
flush syncs. If there's any performance penalty, it'll be at the
driver level, but I'd prefer to measure that there's a problem before
prematurely optimizing and adding complexity to the TextureManager.
* platform/graphics/chromium/TiledLayerChromium.cpp:
(WebCore::TiledLayerChromium::cleanupResources):
(WebCore::TiledLayerChromium::createTile):
(WebCore::TiledLayerChromium::prepareToUpdate):
* platform/graphics/chromium/TiledLayerChromium.h:
2011-10-18 Adam Klein <adamk@chromium.org>
[MutationObservers] Implement WebKitMutationObserver.observe for characterData changes
https://bugs.webkit.org/show_bug.cgi?id=68957
Reviewed by Ryosuke Niwa.
Test: fast/mutation/observe-characterdata.html
* dom/CharacterData.cpp:
(WebCore::CharacterData::dispatchModifiedEvent):
2011-10-18 Scott Byer <scottbyer@chromium.org>
Scroll animator tracing
https://bugs.webkit.org/show_bug.cgi?id=70280
Reviewed by James Robinson.
No functional difference, no test needed.
* platform/ScrollAnimatorNone.cpp:
(WebCore::ScrollAnimatorNone::scroll):
(WebCore::ScrollAnimatorNone::animationTimerFired):
2011-10-18 James Robinson <jamesr@chromium.org>
[chromium] Remove USE(THREADED_COMPOSITING) from the tree, this is controlled by a runtime setting
https://bugs.webkit.org/show_bug.cgi?id=70356
Reviewed by Kenneth Russell.
* platform/graphics/chromium/cc/CCLayerTreeHost.h:
2011-10-18 Ojan Vafai <ojan@chromium.org>
cleanup some FIXMEs in RenderFlexibleBox
https://bugs.webkit.org/show_bug.cgi?id=70374
Reviewed by Darin Adler.
No new tests. Existing tests cover all changes.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
(WebCore::RenderFlexibleBox::flowAwareBorderAndPaddingLogicalHeight):
(WebCore::RenderFlexibleBox::flowAwareMarginLogicalHeightForChild):
* rendering/RenderFlexibleBox.h:
Removed the FIXME to implement computePreferredLogicalWidths. It doesn't
seem to be necessary, at least not with the current test cases.
2011-10-18 Joseph Pecoraro <joepeck@webkit.org>
Web Inspector: Some localizedStrings.js Updates
https://bugs.webkit.org/show_bug.cgi?id=70365
Reviewed by Darin Adler.
Fixed syntax issue, added missing strings, and removed a duplicate.
* English.lproj/localizedStrings.js:
2011-10-18 Tony Chang <tony@chromium.org>
fix unused-but-set-variable warnings in WebCore
https://bugs.webkit.org/show_bug.cgi?id=70344
Reviewed by Adam Barth.
This is a new compiler warning in gcc 4.6.
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::isWrapperOfType):
* platform/graphics/chromium/ComplexTextControllerLinux.cpp:
(WebCore::ComplexTextController::normalizeSpacesAndMirrorChars):
2011-10-18 Dan Bernstein <mitz@apple.com>
Certain column-rule styles render incorrectly in vertical writing modes
https://bugs.webkit.org/show_bug.cgi?id=70362
Reviewed by Darin Adler.
Test: fast/multicol/vertical-rl/rule-style.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintColumnRules): Use the correct border sides for vertical writing modes.
2011-10-18 Anna Cavender <annacc@chromium.org>
Fix broken binding tests by changing G_MAXUSHORT to G_MAXUINT in WebKitDOMTestObj.cpp.
https://bugs.webkit.org/show_bug.cgi?id=70267
Reviewed by Daniel Bates.
Tests: fixing WebKitDOMTestObj.cpp
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(webkit_dom_test_obj_class_init): Change G_MAXUSHORT to G_MAXUINT
2011-10-18 Julien Chaffraix <jchaffraix@webkit.org>
Crash in RenderDeprecatedFlexibleBox::layoutHorizontalBox
https://bugs.webkit.org/show_bug.cgi?id=70183
Reviewed by David Hyatt.
Test: fast/flexbox/layoutHorizontal-crash.html
The deferred scroll information update logic was not updated when an object was destroy'ed.
The fix is very simple. As the deferred logic was only used with deprecated flexbox, it is a
pretty uncommon cases so let's optimize the new code for the common case.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::willBeDestroyed):
2011-10-18 Adam Klein <adamk@chromium.org>
[MutationObservers] Clean up MutationObserver code in Node
https://bugs.webkit.org/show_bug.cgi?id=70349
Reviewed by Ryosuke Niwa.
Three small cleanups.
No new tests, no behavior change.
* dom/Node.cpp:
(WebCore::Node::clearRareData): Use indices instead of iterator in for loop; fix typo.
(WebCore::Node::registerMutationObserver): Inline single call to Node::ensureMutationObserverEntries.
* dom/Node.h: Make mutationObserverEntries private.
2011-10-18 James Robinson <jamesr@chromium.org>
[chromium] Fix shutdown race when posting main thread task to CCThreadProxy and enable tests
https://bugs.webkit.org/show_bug.cgi?id=70161
Reviewed by David Levin.
Adds a weak pointer mechanism to cancel main thread tasks posted to CCThreadProxy instances from the compositor
thread. Previously there was a race condition where main thread tasks could run even after the CCThreadProxy was
destroyed.
This race does not exist in the other direction because when tearing down a CCThreadProxy we first post a quit
task to the compositor thread and then suspend execution of the main thread until all compositor tasks for the
CCThreadProxy have been drained.
Covered by the now-enabled CCLayerTreeHostTest* unit tests.
* WebCore.gypi:
* platform/graphics/chromium/cc/CCScopedMainThreadProxy.h: Added.
(WebCore::CCScopedMainThreadProxy::create):
(WebCore::CCScopedMainThreadProxy::postTask):
(WebCore::CCScopedMainThreadProxy::shutdown):
(WebCore::CCScopedMainThreadProxy::CCScopedMainThreadProxy):
(WebCore::CCScopedMainThreadProxy::runTaskIfNotShutdown):
* platform/graphics/chromium/cc/CCThreadProxy.cpp:
(WebCore::CCThreadProxy::CCThreadProxy):
(WebCore::CCThreadProxy::~CCThreadProxy):
(WebCore::CCThreadProxy::createBeginFrameAndCommitTaskOnCCThread):
* platform/graphics/chromium/cc/CCThreadProxy.h:
2011-10-13 Ojan Vafai <ojan@chromium.org>
implement flex-flow:column
https://bugs.webkit.org/show_bug.cgi?id=70082
Reviewed by David Hyatt.
There's still a bug with a FIXME where we don't compute the right
size for the container of the flexbox in the presence of
orthogonal flows. That's the cause of all the failing cases
in the tests.
Tests: css3/flexbox/flex-flow-border.html
css3/flexbox/flex-flow-margins.html
css3/flexbox/flex-flow-orientations.html
css3/flexbox/flex-flow-overflow.html
css3/flexbox/flex-flow-padding.html
css3/flexbox/flex-flow.html
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
(WebCore::RenderFlexibleBox::hasOrthogonalFlow):
(WebCore::RenderFlexibleBox::isColumnFlow):
(WebCore::RenderFlexibleBox::isHorizontalFlow):
(WebCore::RenderFlexibleBox::isLeftToRightFlow):
Use isHorizontalFlow and isLeftToRightFlow so that methods like
flowAwareBorderStart look exactly like borderStart with
isHorizontalWritingMode and isLeftToRightDirection replaced.
(WebCore::RenderFlexibleBox::setFlowAwareLogicalHeight):
(WebCore::RenderFlexibleBox::flowAwareLogicalHeightForChild):
(WebCore::RenderFlexibleBox::flowAwareLogicalWidthForChild):
(WebCore::RenderFlexibleBox::flowAwareLogicalHeight):
(WebCore::RenderFlexibleBox::flowAwareLogicalWidth):
(WebCore::RenderFlexibleBox::flowAwareContentLogicalHeight):
(WebCore::RenderFlexibleBox::flowAwareContentLogicalWidth):
(WebCore::RenderFlexibleBox::transformedWritingMode):
Transform the writing-mode based of the flex-flow and direction
values. That methods like flowAwareBorderBefore look exactly like
borderBefore, except it switches over a different value.
(WebCore::RenderFlexibleBox::flowAwareBorderStart):
(WebCore::RenderFlexibleBox::flowAwareBorderBefore):
(WebCore::RenderFlexibleBox::flowAwareBorderAfter):
(WebCore::RenderFlexibleBox::flowAwarePaddingStart):
(WebCore::RenderFlexibleBox::flowAwarePaddingBefore):
(WebCore::RenderFlexibleBox::flowAwarePaddingAfter):
(WebCore::RenderFlexibleBox::flowAwareMarginStartForChild):
(WebCore::RenderFlexibleBox::flowAwareMarginEndForChild):
(WebCore::RenderFlexibleBox::flowAwareMarginBeforeForChild):
(WebCore::RenderFlexibleBox::flowAwareMarginAfterForChild):
(WebCore::RenderFlexibleBox::setFlowAwareMarginStartForChild):
(WebCore::RenderFlexibleBox::setFlowAwareMarginEndForChild):
(WebCore::RenderFlexibleBox::layoutAndPlaceChildrenInlineDirection):
(WebCore::RenderFlexibleBox::alignChildrenBlockDirection):
* rendering/RenderFlexibleBox.h:
2011-10-18 Shawn Singh <shawnsingh@chromium.org>
[chromium] Tracking update rects in LayerChromium and CCLayerImpl.
https://bugs.webkit.org/show_bug.cgi?id=69441
Reviewed by James Robinson.
This patch does not do much on its own, but is just part 1 of a
string of other patches which will use these rects for
visualization and scissoring. The appropriate testing will be
associated with those patches.
* platform/graphics/chromium/Canvas2DLayerChromium.cpp:
(WebCore::Canvas2DLayerChromium::updateCompositorResources):
* platform/graphics/chromium/LayerChromium.cpp:
(WebCore::LayerChromium::pushPropertiesTo):
* platform/graphics/chromium/LayerChromium.h:
* platform/graphics/chromium/TiledLayerChromium.cpp:
(WebCore::TiledLayerChromium::cleanupResources):
(WebCore::TiledLayerChromium::updateCompositorResources):
(WebCore::TiledLayerChromium::pushPropertiesTo):
(WebCore::TiledLayerChromium::prepareToUpdate):
* platform/graphics/chromium/TiledLayerChromium.h:
* platform/graphics/chromium/VideoLayerChromium.cpp:
(WebCore::VideoLayerChromium::updateCompositorResources):
* platform/graphics/chromium/WebGLLayerChromium.cpp:
(WebCore::WebGLLayerChromium::updateCompositorResources):
* platform/graphics/chromium/cc/CCLayerImpl.h:
(WebCore::CCLayerImpl::updateRect):
(WebCore::CCLayerImpl::setUpdateRect):
2011-10-18 Anna Cavender <annacc@chromium.org>
Change CodeGeneratorGObject.pm to use g_value_get_uint() instead of g_value_get_ushort()
for IDL attributes of type unsigned short.
https://bugs.webkit.org/show_bug.cgi?id=70267
Reviewed by Xan Lopez.
Tests: small change to WebKitDOMTestObj.cpp
* bindings/scripts/CodeGeneratorGObject.pm:
(GetGValueTypeName): convert unsigned short to uint instead of ushort
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(webkit_dom_test_obj_set_property): expect g_value_get_uint instead of g_value_get_ushort
(webkit_dom_test_obj_class_init): expect G_MAXUSHORT instead of G_MAXUINT16
2011-10-18 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: ScriptsPanel's should use similar logic to decide whether it could show an anchor location and actually showing it.
https://bugs.webkit.org/show_bug.cgi?id=70322
Reviewed by Pavel Feldman.
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype.canShowAnchorLocation):
(WebInspector.ScriptsPanel.prototype._showSourceLine):
2011-10-18 Eric Carlson <eric.carlson@apple.com>
Use the new cached cue loader
https://bugs.webkit.org/show_bug.cgi?id=70269
Reviewed by Antti Koivisto.
No new tests, no functionality changed.
* CMakeLists.txt: Remove CueParser.cpp/h and CueParserPrivate.h.
* GNUmakefile.list.am: Ditto.
* WebCore.gypi: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::loadTextTracks):
(WebCore::HTMLMediaElement::textTrackReadyStateChanged): New, not implemented yet.
(WebCore::HTMLMediaElement::textTrackModeChanged): Ditto.
(WebCore::HTMLMediaElement::textTrackCreated): Ditto.
(WebCore::HTMLMediaElement::textTrackAddCues): Ditto.
(WebCore::HTMLMediaElement::textTrackRemoveCues): Ditto.
(WebCore::HTMLMediaElement::textTrackAddCue): Ditto.
(WebCore::HTMLMediaElement::textTrackRemoveCue): Ditto.
* html/HTMLMediaElement.h:
* html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::load): Update for interface change
(WebCore::HTMLTrackElement::textTrackLoadingCompleted): New, dispatch 'load' or 'error' event.
* html/HTMLTrackElement.h:
* html/LoadableTextTrack.cpp:
(WebCore::LoadableTextTrack::LoadableTextTrack): Add TextTrackClient and TextTrackLoadingClient
parameters.
(WebCore::LoadableTextTrack::load): Make url parameter KURL instead of String. Create the
cue loader, trigger the load.
(WebCore::LoadableTextTrack::newCuesAvailable): New callback from the loader. Not implemented yet.
(WebCore::LoadableTextTrack::cueLoadingStarted): Ditto.
(WebCore::LoadableTextTrack::cueLoadingCompleted): Ditto.
* html/LoadableTextTrack.h:
* html/MutableTextTrack.cpp:
(WebCore::MutableTextTrack::MutableTextTrack): Add TextTrackClient parameter.
* html/MutableTextTrack.h:
(WebCore::MutableTextTrack::create):
* html/TextTrack.cpp:
(WebCore::TextTrack::TextTrack): Add TextTrackClient parameter.
(WebCore::TextTrack::~TextTrack): Tell the client to remove all cues, forget the client.
(WebCore::TextTrack::setReadyState): Tell client about ready state change.
(WebCore::TextTrack::setMode): Tell client about mode change.
* html/TextTrack.h:
(WebCore::TextTrackClient::textTrackAddCues): New client interface.
(WebCore::TextTrackClient::textTrackRemoveCues): Ditto.
(WebCore::TextTrackClient::textTrackAddCue): Ditto.
(WebCore::TextTrackClient::textTrackRemoveCue): Ditto.
(WebCore::TextTrack::create):
(WebCore::TextTrack::trackType): New.
(WebCore::TextTrack::client): Ditto.
(WebCore::TextTrack::setClient): Ditto.
* html/track/CueParser.cpp: Removed.
* html/track/CueParser.h: Removed.
* html/track/CueParserPrivate.h: Removed.
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::fileIdentifierMaximumLength): New, return length of WebVTT file
magic number.
(WebCore::WebVTTParser::hasRequiredFileIdentifier): Update to use constants instead of hard
coded lengths.
(WebCore::WebVTTParser::WebVTTParser): Initialize "m_client" in the initilization list
instead of setting it in the constructor.
(WebCore::WebVTTParser::getNewCues): Renamed from fetchParsedCues.
* html/track/WebVTTParser.h:
(WebCore::WebVTTParser::create): Take a WebVTTParserClient* instead of a CueParserPrivateClient*.
* loader/CueLoader.cpp:
(WebCore::CueLoader::CueLoader):
(WebCore::CueLoader::~CueLoader): Remove client.
(WebCore::CueLoader::cueLoadTimerFired): Tell client about new clues and/or that the load
has finished.
(WebCore::CueLoader::processNewCueData): Process newly loaded data.
(WebCore::CueLoader::didReceiveData): Ditto.
(WebCore::CueLoader::notifyFinished): Do final processing as necessary, prime the timer
to call client.
(WebCore::CueLoader::load): Create resource loader, initiate loading.
(WebCore::CueLoader::newCuesParsed): Prime timer to tell client about newly parsed cues.
(WebCore::CueLoader::getNewCues): Get new cues from parser.
* loader/CueLoader.h:
(WebCore::CueLoader::create):
2011-10-18 Adam Barth <abarth@webkit.org>
Always enable ENABLE(XPATH)
https://bugs.webkit.org/show_bug.cgi?id=70217
Reviewed by Eric Seidel.
As discussed on webkit-dev, we're reducing the complexity of WebKit by
removing unneeded configuration options. ENABLE(XPATH) is enabled on
every port, so we are removing the ability to disable the feature.
* CMakeLists.txt:
* Configurations/FeatureDefines.xcconfig:
* GNUmakefile.am:
* GNUmakefile.list.am:
* UseJSC.cmake:
* WebCore.pro:
* bindings/js/JSCustomXPathNSResolver.cpp:
* bindings/js/JSCustomXPathNSResolver.h:
* bindings/js/JSDOMBinding.cpp:
(WebCore::setDOMException):
* bindings/js/JSExceptionBase.cpp:
(WebCore::toExceptionBase):
* bindings/js/JSXPathResultCustom.cpp:
* bindings/objc/DOMCustomXPathNSResolver.h:
* bindings/objc/DOMCustomXPathNSResolver.mm:
* bindings/objc/DOMInternal.h:
* bindings/objc/DOMUtility.mm:
(JSC::createDOMWrapper):
* bindings/objc/DOMXPath.mm:
(kit):
* bindings/objc/PublicDOMInterfaces.h:
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::getXPathNSResolver):
* bindings/v8/V8DOMWrapper.h:
* bindings/v8/V8Proxy.cpp:
(WebCore::V8Proxy::setDOMException):
* bindings/v8/V8Proxy.h:
* bindings/v8/custom/V8CustomXPathNSResolver.cpp:
* bindings/v8/custom/V8CustomXPathNSResolver.h:
* bindings/v8/custom/V8DocumentCustom.cpp:
(WebCore::V8Document::evaluateCallback):
* dom/Document.cpp:
* dom/Document.h:
* dom/Document.idl:
* dom/ExceptionCode.cpp:
(WebCore::getExceptionCodeDescription):
* dom/ExceptionCode.h:
* features.pri:
* inspector/InspectorDOMAgent.cpp:
* page/DOMWindow.idl:
* xml/NativeXPathNSResolver.cpp:
* xml/NativeXPathNSResolver.h:
* xml/XPathEvaluator.cpp:
* xml/XPathEvaluator.h:
* xml/XPathEvaluator.idl:
* xml/XPathException.h:
* xml/XPathException.idl:
* xml/XPathExpression.cpp:
* xml/XPathExpression.h:
* xml/XPathExpression.idl:
* xml/XPathExpressionNode.cpp:
* xml/XPathExpressionNode.h:
* xml/XPathFunctions.cpp:
* xml/XPathFunctions.h:
* xml/XPathGrammar.y:
* xml/XPathNSResolver.cpp:
* xml/XPathNSResolver.h:
* xml/XPathNSResolver.idl:
* xml/XPathNodeSet.cpp:
* xml/XPathNodeSet.h:
* xml/XPathParser.cpp:
* xml/XPathParser.h:
* xml/XPathPath.cpp:
* xml/XPathPath.h:
* xml/XPathPredicate.cpp:
* xml/XPathPredicate.h:
* xml/XPathResult.cpp:
* xml/XPathResult.h:
* xml/XPathResult.idl:
* xml/XPathStep.cpp:
* xml/XPathStep.h:
* xml/XPathUtil.cpp:
* xml/XPathUtil.h:
* xml/XPathValue.cpp:
* xml/XPathValue.h:
* xml/XPathVariableReference.cpp:
* xml/XPathVariableReference.h:
2011-10-18 Chris Fleizach <cfleizach@apple.com>
AX: buttons of number type <input> controls are not fully accessible
https://bugs.webkit.org/show_bug.cgi?id=70241
Staged commit, part 6.
Reviewed by Darin Adler.
Test: platform/mac/accessibility/html5-input-number.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::addImageMapChildren):
(WebCore::AccessibilityRenderObject::addTextFieldChildren):
(WebCore::AccessibilityRenderObject::addChildren):
* accessibility/AccessibilityRenderObject.h:
2011-10-18 Nate Chapin <japhet@chromium.org>
Make DocumentThreadableLoader a CachedResourceClient.
This will allow us to cache ThreadableLoaderClients as
appropriate in a later patch.
https://bugs.webkit.org/show_bug.cgi?id=61225
Reviewed by Antti Koivisto.
No new tests, no functionality change intended.
* WebCore.gypi:
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::notifyFinished): CachedResourceClients don't send separate callbacks
for didFail() and didFinishLoading(), so we need to differentiate here.
(WebCore::DocumentThreadableLoader::loadRequest): Call CachedResourceLoader::requestRawResource()
instead of ResourceLoadScheduler::scheduleSubresourceLoad().
* loader/DocumentThreadableLoader.h:
* loader/cache/CachedRawResource.cpp:
(WebCore::CachedRawResource::data): Handle the complexity of some ThreadableLoaderClients setting
DoNotBufferData in ResoureLoaderOptions. If the DataBufferingPolicy is BufferData, then the
'data' input parameter will contain all data received so far, and we need to determine the
incremental data to forward to the clients. If the policy is DoNotBufferData, 'data' is just
the incremental data.
* loader/cache/CachedRawResource.h:
* loader/cache/CachedResource.cpp:
* loader/cache/CachedResource.h:
(WebCore::CachedResource::preloadResult):
(WebCore::CachedResource::didSendData):
(WebCore::CachedResource::didDownloadData):
(WebCore::CachedResource::setLoadFinishTime):
(WebCore::CachedResource::loadFinishTime):
* loader/cache/CachedResourceClient.h: Add several new callbacks needed by DocumentThreadableLoader.
* loader/cache/CachedResourceRequest.cpp:
(WebCore::CachedResourceRequest::didReceiveResponse): CachedResource::setResponse() can now cancel
the request, so protect appropriately.
* loader/cache/CachedResourceRequest.h:
* loader/chromium/CachedRawResourceChromium.cpp: Added (plumb didDownloadData() to DocumentThreadableLoader).
* loader/chromium/CachedResourceRequestChromium.cpp: Added (plumb didDownloadData() to DocumentThreadableLoader).
* loader/chromium/DocumentThreadableLoaderChromium.cpp:
* platform/network/BlobResourceHandle.cpp:
(WebCore::BlobResourceHandle::notifyResponse): Protect before setting response, since it might kill us.
2011-10-18 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r97752.
http://trac.webkit.org/changeset/97752
https://bugs.webkit.org/show_bug.cgi?id=70332
Caused assertion failures in MediaList::setParentStyleSheet()
on the apple bots. (Requested by kling on #webkit).
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDOMBinding.h:
* css/CSSImportRule.cpp:
(WebCore::CSSImportRule::CSSImportRule):
(WebCore::CSSImportRule::~CSSImportRule):
* css/CSSMediaRule.cpp:
(WebCore::CSSMediaRule::CSSMediaRule):
(WebCore::CSSMediaRule::~CSSMediaRule):
* css/CSSMediaRule.h:
* css/MediaList.cpp:
(WebCore::MediaList::MediaList):
(WebCore::MediaList::notifyChanged):
* css/MediaList.h:
* css/StyleSheet.cpp:
(WebCore::StyleSheet::~StyleSheet):
(WebCore::StyleSheet::setMedia):
2011-10-18 Anna Cavender <annacc@chromium.org>
Change TextTrack to use the word DISABLED instead of OFF for mode
https://bugs.webkit.org/show_bug.cgi?id=70268
Reviewed by Daniel Bates.
No new tests. No new functionality.
* html/TextTrack.cpp:
(WebCore::TextTrack::setMode): use Disabled instead of Off
* html/TextTrack.h: update Mode enum to use Disabled instead of Off
2011-10-18 Chris Fleizach <cfleizach@apple.com>
AX: buttons of number type <input> controls are not fully accessible
https://bugs.webkit.org/show_bug.cgi?id=70241
Staged commit, part 5.
Reviewed by Darin Adler.
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::getOrCreate):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::boundingBoxRect):
2011-10-18 Antti Koivisto <antti@apple.com>
Move default stylesheet loading to a separate function
https://bugs.webkit.org/show_bug.cgi?id=70331
Reviewed by Andreas Kling.
- Move default stylesheet loading out from CSSStyleSelector::styleForElement()
- Rename e -> element
- Remove pointless reffing of the placeholder style.
* css/CSSStyleSelector.cpp:
(WebCore::ensureDefaultStyleSheetsForElement):
(WebCore::isAtShadowBoundary):
(WebCore::CSSStyleSelector::styleForElement):
2011-10-18 Chris Fleizach <cfleizach@apple.com>
AX: buttons of number type <input> controls are not fully accessible
https://bugs.webkit.org/show_bug.cgi?id=70241
Staged commit part 4.
Reviewed by Darin Adler.
* accessibility/AccessibilityMockObject.h:
(WebCore::AccessibilityMockObject::isMockObject):
(WebCore::AccessibilityMockObject::detachFromParent):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::elementAccessibilityHitTest):
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(-[WebAccessibilityObjectWrapper accessibilityActionNames]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapper subrole]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
2011-10-18 Chris Fleizach <cfleizach@apple.com>
AX: buttons of number type <input> controls are not fully accessible
https://bugs.webkit.org/show_bug.cgi?id=70241
Staged commit part 3. Committing the new spin button classes.
Reviewed by Darin Adler.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* accessibility/AccessibilitySpinButton.cpp: Added.
(WebCore::AccessibilitySpinButton::create):
(WebCore::AccessibilitySpinButton::AccessibilitySpinButton):
(WebCore::AccessibilitySpinButton::~AccessibilitySpinButton):
(WebCore::AccessibilitySpinButton::incrementButton):
(WebCore::AccessibilitySpinButton::decrementButton):
(WebCore::AccessibilitySpinButton::elementRect):
(WebCore::AccessibilitySpinButton::addChildren):
(WebCore::AccessibilitySpinButton::step):
(WebCore::AccessibilitySpinButtonPart::AccessibilitySpinButtonPart):
(WebCore::AccessibilitySpinButtonPart::create):
(WebCore::AccessibilitySpinButtonPart::elementRect):
(WebCore::AccessibilitySpinButtonPart::press):
* accessibility/AccessibilitySpinButton.h: Added.
(WebCore::AccessibilitySpinButton::setSpinButtonElement):
(WebCore::AccessibilitySpinButton::roleValue):
(WebCore::AccessibilitySpinButton::accessibilityIsIgnored):
(WebCore::AccessibilitySpinButton::isSpinButton):
(WebCore::AccessibilitySpinButtonPart::~AccessibilitySpinButtonPart):
(WebCore::AccessibilitySpinButtonPart::isIncrementor):
(WebCore::AccessibilitySpinButtonPart::setIsIncrementor):
(WebCore::AccessibilitySpinButtonPart::roleValue):
(WebCore::AccessibilitySpinButtonPart::isSpinButtonPart):
(WebCore::AccessibilitySpinButtonPart::accessibilityIsIgnored):
(WebCore::toAccessibilitySpinButton):
(WebCore::toAccessibilitySpinButtonPart):
2011-10-18 Chris Fleizach <cfleizach@apple.com>
AX: buttons of number type <input> controls are not fully accessible
https://bugs.webkit.org/show_bug.cgi?id=70241
Phase 2 of the staged commit.
Reviewed by Darin Adler.
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::boundingBoxForQuads):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isSpinButton):
(WebCore::AccessibilityObject::isSpinButtonPart):
(WebCore::AccessibilityObject::isMockObject):
2011-10-18 Chris Fleizach <cfleizach@apple.com>
AX: buttons of number type <input> controls are not fully accessible
https://bugs.webkit.org/show_bug.cgi?id=70241
Expose the spin button object to the AX hierarchy. Since there is no distinct
render object that backs this object, a mock object needs to be created for the entire
spin button and the actual increment and decrement buttons inside.
This will be a staged commit since the first time around Windows layout tests started crashing for an undeterminable reason.
Reviewed by Darin Adler.
* html/shadow/TextControlInnerElements.cpp:
(WebCore::SpinButtonElement::step):
(WebCore::SpinButtonElement::repeatingTimerFired):
* html/shadow/TextControlInnerElements.h:
2011-10-18 Andreas Kling <kling@webkit.org>
MediaList: Remove inheritance from StyleBase.
https://bugs.webkit.org/show_bug.cgi?id=70203
Reviewed by Darin Adler.
* css/MediaList.h:
(WebCore::MediaList::parentStyleSheet):
(WebCore::MediaList::setParentStyleSheet):
* css/MediaList.cpp:
(WebCore::MediaList::MediaList):
(WebCore::MediaList::notifyChanged):
Change MediaList to no longer inherit from StyleBase. The parent()/setParent()
mechanism was replaced by explicit parentStyleSheet()/setParentStyleSheet().
* css/CSSImportRule.cpp:
(WebCore::CSSImportRule::CSSImportRule):
(WebCore::CSSImportRule::~CSSImportRule):
* css/CSSMediaRule.cpp:
(WebCore::CSSMediaRule::CSSMediaRule):
(WebCore::CSSMediaRule::~CSSMediaRule):
Change StyleBase::setParent() calls to MediaList::setParentStyleSheet().
CSSRules are never moved between stylesheets, so the parent style sheet pointer
is valid for the MediaList's lifetime.
* css/StyleSheet.cpp:
(WebCore::StyleSheet::~StyleSheet):
Change StyleBase::setParent() calls to MediaList::setParentStyleSheet().
(WebCore::StyleSheet::setMedia):
Change StyleBase::setParent() calls to MediaList::setParentStyleSheet().
Assert that the parent sheet is either null, or this, as MediaLists should never
be reparented to other sheets.
Assert that the StyleSheet is indeed a CSSStyleSheet. XSLStyleSheet inherits from
StyleSheet, but it shouldn't be using the MediaList.
* bindings/js/JSDOMBinding.h:
(WebCore::root):
Add MediaList* specific overload for root() since it can't fall back
to root(StyleBase*) anymore.
* WebCore.xcodeproj/project.pbxproj:
Add some PrivateHeaders to accomodate the JSDOMBinding.h changes.
* css/CSSMediaRule.h:
Remove unnecessary forward-declaration of MediaList.
2011-10-18 Andreas Kling <kling@webkit.org>
XSLStyleSheet only needs to manage XSLImportRule children.
https://bugs.webkit.org/show_bug.cgi?id=70326
Reviewed by Antti Koivisto.
* css/StyleBase.h:
* xml/XSLImportRule.h:
* css/CSSRule.h:
(WebCore::CSSRule::isImportRule):
Move StyleBase::isImportRule() down to CSSRule. Since XSLImportRule no longer
implements it, it's now specific to CSSImportRule.
* xml/XSLStyleSheet.h:
Change m_children to be a vector of XSLImportRules. Also remove length(),
item() and append() since they were only used internally to modify m_children.
* xml/XSLStyleSheetQt.cpp:
(WebCore::XSLStyleSheet::~XSLStyleSheet):
* xml/XSLStyleSheetLibxslt.cpp:
(WebCore::XSLStyleSheet::~XSLStyleSheet):
(WebCore::XSLStyleSheet::isLoading):
(WebCore::XSLStyleSheet::clearDocuments):
(WebCore::XSLStyleSheet::loadChildSheet):
(WebCore::XSLStyleSheet::locateStylesheetSubResource):
Remove now-unnecessary isImportRule() checks and tidy up the code a bit.
2011-10-18 Zan Dobersek <zandobersek@gmail.com>
[Gtk] Support for client-based geolocation
https://bugs.webkit.org/show_bug.cgi?id=64970
Reviewed by Martin Robinson.
Add feature defines for client-based geolocation when geolocation is enabled,
since this is the providing method that is now used by default. Remove
service-based providing method completely as it is not needed anymore.
* GNUmakefile.am: Add feature defines for client-based geolocation.
* GNUmakefile.list.am: Remove GeolocationServiceGtk.* files from compilation.
* platform/gtk/GeolocationServiceGtk.cpp: Removed.
* platform/gtk/GeolocationServiceGtk.h: Removed.
2011-10-18 Antti Koivisto <antti@apple.com>
REGRESSION(r97248): :visited as descendant selector broken
https://bugs.webkit.org/show_bug.cgi?id=70122
Reviewed by Nikolas Zimmerman.
Make ":visited foo" and similar selectors work correctly again. They can affect
the visited style of an element inside a visited link.
Test: fast/selectors/visited-descendant.html
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyDeclarations):
Apply visited style to children of visited links too.
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkSelector):
Don't disable visited matching until we run into first ancestor link or use combinator other than child/descendant.
(WebCore::SelectorChecker::determineLinkMatchType):
Look into child/descendant component selectors too to determine the link match type.
2011-10-18 Andreas Kling <kling@webkit.org>
Move CSSRule specific virtuals from StyleBase down into CSSRule.
https://bugs.webkit.org/show_bug.cgi?id=70240
Reviewed by Darin Adler.
Move all the isFooRule() virtuals except isImportRule() to CSSRule
since they only make sense for its subclasses. isRule() remains in
StyleBase since we still need it for the parent chain traversal.
isImportRule() remains because XSLImportRule implements it.
Also moved insertedIntoParent() and removed its usage in
XSLStyleSheet since it is only reimplemented by CSSImportRule.
* css/CSSRule.h:
(WebCore::CSSRule::isCharsetRule):
(WebCore::CSSRule::isFontFaceRule):
(WebCore::CSSRule::isKeyframeRule):
(WebCore::CSSRule::isKeyframesRule):
(WebCore::CSSRule::isMediaRule):
(WebCore::CSSRule::isPageRule):
(WebCore::CSSRule::isStyleRule):
(WebCore::CSSRule::isRegionStyleRule):
(WebCore::CSSRule::insertedIntoParent):
* css/StyleBase.h:
(WebCore::StyleBase::isImportRule):
(WebCore::StyleBase::isCSSStyleSheet):
* xml/XSLStyleSheet.h:
(WebCore::XSLStyleSheet::append):
2011-10-18 Sachin Puranik <jcqt43@motorola.com>
Option.value should trim extra internal html spaces
https://bugs.webkit.org/show_bug.cgi?id=69455
Reviewed by Kent Tamura.
Currently option.value does not trim the internal white space as suggested by spec. This patch implements the same.
Test: fast/forms/option-value-trim-html-spaces.html
* dom/OptionElement.cpp: Removed a function as this implementation is moved to the HTMLOptionElement.cpp file.
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::value): Implementation of .value function which will now trim the html white spaces.
2011-10-18 Mihnea Ovidenie <mihnea@adobe.com>
[CSS Regions]Parse @-webkit-region rule
https://bugs.webkit.org/show_bug.cgi?id=70021
Reviewed by David Hyatt.
Test: fast/regions/parsing-region-style-rule.html
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/objc/DOMCSS.mm:
(kitClass):
* bindings/v8/custom/V8CSSRuleCustom.cpp:
(WebCore::toV8):
* css/CSSGrammar.y:
* css/CSSMediaRule.cpp:
(WebCore::CSSMediaRule::cssText):
* css/CSSParser.cpp:
(WebCore::CSSParser::setReusableRegionSelectorVector):
(WebCore::CSSParser::createRegionStylingRule):
* css/CSSParser.h:
(WebCore::CSSParser::reusableRegionSelectorVector):
* css/CSSRegionStyleRule.cpp: Added.
(WebCore::CSSRegionStyleRule::CSSRegionStyleRule):
(WebCore::CSSRegionStyleRule::~CSSRegionStyleRule):
(WebCore::CSSRegionStyleRule::cssText):
* css/CSSRegionStyleRule.h: Added.
* css/CSSRule.h:
* css/CSSRule.idl:
* css/CSSRuleList.cpp:
(WebCore::CSSRuleList::item):
(WebCore::CSSRuleList::rulesText):
* css/CSSRuleList.h:
* css/CSSSelectorList.cpp:
(WebCore::CSSSelectorList::selectorsText):
* css/CSSSelectorList.h:
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::addRegionStyleRule):
(WebCore::RuleSet::addRulesFromSheet):
* css/CSSStyleSelector.h:
* css/StyleBase.h:
(WebCore::StyleBase::isRegionStyleRule):
* css/tokenizer.flex:
2011-10-11 Pavel Podivilov <podivilov@chromium.org>
Web Inspector: support displaying multiple sources per single script in ScriptsPanel.
https://bugs.webkit.org/show_bug.cgi?id=69847
Reviewed by Pavel Feldman.
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._removeSourceFrame):
(WebInspector.ScriptsPanel.prototype._uiSourceCodeReplaced):
2011-10-18 Nikolas Zimmermann <nzimmermann@rim.com>
Prepare SVGImage intrinsic size negotiation: Add intrinsic size & ratio calculation functionality to Image
https://bugs.webkit.org/show_bug.cgi?id=70314
Reviewed by Antti Koivisto.
Add a "void computeIntrinsicDimension(Length& intrinsicWidth, Lengt& intrinsicHeight, FloatSize& intrinsicRatio)" helper method
to Image/GeneratedImage/SVGImage and make it accessible through StyleImage.
For a regular Image the intrinsicWidth/Height contains just a Length(size().width(), Fixed). In contrary SVGImages pass on the
style()->width()/height() values from the render style of the RenderSVGRoot renderer. These information are needed to implement
the size negotiation between embedded SVG images and the embedder.
No new tests, as this new functionality is not yet used.
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::computeIntrinsicDimensions):
* loader/cache/CachedImage.h:
* platform/graphics/GeneratedImage.cpp:
(WebCore::GeneratedImage::computeIntrinsicDimensions):
* platform/graphics/GeneratedImage.h:
* platform/graphics/Image.cpp:
(WebCore::Image::computeIntrinsicDimensions):
* platform/graphics/Image.h:
* platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::computeIntrinsicDimensions):
* platform/graphics/cg/PDFDocumentImage.h:
* rendering/style/StyleCachedImage.cpp:
(WebCore::StyleCachedImage::computeIntrinsicDimensions):
* rendering/style/StyleCachedImage.h:
* rendering/style/StyleGeneratedImage.cpp:
(WebCore::StyleGeneratedImage::computeIntrinsicDimensions):
* rendering/style/StyleGeneratedImage.h:
* rendering/style/StyleImage.h:
* rendering/style/StylePendingImage.h:
(WebCore::StylePendingImage::computeIntrinsicDimensions):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::computeIntrinsicDimensions):
* svg/graphics/SVGImage.h:
2011-10-17 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: [Chromium] Different dimensions are reported for elements onscreen and in the Metrics pane
https://bugs.webkit.org/show_bug.cgi?id=70242
Reviewed by Pavel Feldman.
* inspector/DOMNodeHighlighter.cpp:
2011-10-18 Kentaro Hara <haraken@chromium.org>
Unreviewed, rolling out r97697.
http://trac.webkit.org/changeset/97697
https://bugs.webkit.org/show_bug.cgi?id=68978
some tests are broken
* bindings/js/JSMessageEventCustom.cpp:
(WebCore::JSMessageEvent::data):
* bindings/v8/custom/V8MessageEventCustom.cpp:
(WebCore::V8MessageEvent::dataAccessorGetter):
(WebCore::V8MessageEvent::portsAccessorGetter):
(WebCore::V8MessageEvent::initMessageEventCallback):
* dom/MessageEvent.cpp:
(WebCore::MessageEventInit::MessageEventInit):
(WebCore::MessageEvent::MessageEvent):
(WebCore::MessageEvent::isMessageEvent):
* dom/MessageEvent.h:
(WebCore::MessageEvent::create):
(WebCore::MessageEvent::dataAsSerializedScriptValue):
(WebCore::MessageEvent::dataAsString):
(WebCore::MessageEvent::dataAsBlob):
(WebCore::MessageEvent::dataAsArrayBuffer):
* dom/MessageEvent.idl:
2011-10-17 Antti Koivisto <antti@apple.com>
r97638 caused 3 printing crashes
https://bugs.webkit.org/show_bug.cgi?id=70284
Reviewed by Kent Tamura.
Null check element.
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyDeclarations):
2011-10-17 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r97669.
http://trac.webkit.org/changeset/97669
https://bugs.webkit.org/show_bug.cgi?id=70305
Broke accessibility tests on Windows (Requested by rniwa on
#webkit).
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::getOrCreate):
* accessibility/AccessibilityMockObject.h:
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::elementAccessibilityHitTest):
* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::boundingBoxRect):
(WebCore::AccessibilityRenderObject::clearChildren):
(WebCore::AccessibilityRenderObject::updateChildrenIfNecessary):
(WebCore::AccessibilityRenderObject::addChildren):
* accessibility/AccessibilityRenderObject.h:
* accessibility/AccessibilitySpinButton.cpp: Removed.
* accessibility/AccessibilitySpinButton.h: Removed.
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(-[WebAccessibilityObjectWrapper accessibilityActionNames]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapper subrole]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
* html/shadow/TextControlInnerElements.cpp:
(WebCore::SpinButtonElement::repeatingTimerFired):
* html/shadow/TextControlInnerElements.h:
2011-10-17 Kent Tamura <tkent@chromium.org>
Remove OptionGroupElement
https://bugs.webkit.org/show_bug.cgi?id=70220
Reviewed by Darin Adler.
No new tests, just a refactoring.
* CMakeLists.txt: Remove OptionGroupElement.cpp and/or OptionGroupElement.h.
* GNUMakefile.am.list: ditto.
* WebCore.gypi: ditto.
* WebCore.pro: ditto.
* WebCore.vcproj/WebCore.vcproj: ditto.
* WebCore.xcodeproj/project.pbxproj: ditto.
* dom/DOMAllInOne.cpp: ditto.
* dom/OptionElement.cpp:
(WebCore::OptionElement::collectOptionTextRespectingGroupLabel):
Use hasTagName(optgroupTag) and static_cast<> instead of toOptionGroupElement().
* dom/OptionGroupElement.cpp: Removed.
* dom/OptionGroupElement.h: Removed.
* html/HTMLOptGroupElement.cpp:
(WebCore::isHTMLOptGroupElement): Added.
* html/HTMLOptGroupElement.h:
- Don't inherit OptionGroupElement.
- Make groupLabelText() non-virtual.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::recalcListItems):
Use Use hasTagName(optgroupTag) instead of isOptionGroupElement().
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::updateFromElement):
Use hasTagName(optgroupTag) and static_cast<> instead of toOptionGroupElement().
(WebCore::RenderListBox::paintItemForeground):
Use hasTagName(optgroupTag) instead of isOptionGroupElement().
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::itemText):
Use hasTagName(optgroupTag) and static_cast<> instead of toOptionGroupElement().
(WebCore::RenderMenuList::itemIsEnabled):
Use Use hasTagName(optgroupTag) instead of isOptionGroupElement().
(WebCore::RenderMenuList::itemIsLabel): ditto.
2011-10-17 Huang Dongsung <luxtella@company100.net>
[TexMap][QT] TexMapGL renders a strange one-pixel border of BitmapTexture.
https://bugs.webkit.org/show_bug.cgi?id=70293
TextureMapperGL renders the strange border in
http://www.webkit.org/blog-files/leaves/index.html
Bug occurs because BitmapTexture is larger than the content due to rounding to
NPOT, and its pixel data is never initialized.
Reviewed by Noam Rosenthal.
* platform/graphics/opengl/TextureMapperGL.cpp:
(WebCore::texImage2DResourceSafe):
(WebCore::BitmapTextureGL::reset):
2011-10-17 Jochen Eisinger <jochen@chromium.org>
Make NavigationAction wrap a ResourceRequest instead of a KURL.
https://bugs.webkit.org/show_bug.cgi?id=68803
With this, FrameLoaderClient::dispatchCreatePage knows about the
request that will be used for the initial navigaion of the to be
created page.
Reviewed by Nate Chapin.
Test: platform/chromium/fast/loader/create-view-target-blank.html
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::reload):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
(WebCore::FrameLoader::loadDifferentDocumentItem):
(WebCore::createWindow):
* loader/NavigationAction.cpp:
(WebCore::NavigationAction::NavigationAction):
* loader/NavigationAction.h:
(WebCore::NavigationAction::isEmpty):
(WebCore::NavigationAction::url):
(WebCore::NavigationAction::resourceRequest):
* loader/PolicyChecker.cpp:
(WebCore::PolicyChecker::checkNavigationPolicy):
* page/ContextMenuController.cpp:
(WebCore::openNewWindow):
* WebCore.exp: updated
2011-10-17 Tom Sepez <tsepez@chromium.org>
XSSAuditor bypass with remote script ending in ? character
https://bugs.webkit.org/show_bug.cgi?id=70255
Reviewed by Daniel Bates.
Fix XSSAuditor bypass where unterminated src="" attribute could pick up
text from page causing failed XSS detection. Constrain match to domain
portions of src attribute only.
Test: http/tests/security/xssAuditor/script-tag-with-source-unterminated.html
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::filterScriptToken):
(WebCore::XSSAuditor::filterObjectToken):
(WebCore::XSSAuditor::filterParamToken):
(WebCore::XSSAuditor::filterEmbedToken):
(WebCore::XSSAuditor::filterAppletToken):
(WebCore::XSSAuditor::filterIframeToken):
(WebCore::XSSAuditor::eraseAttributeIfInjected):
(WebCore::XSSAuditor::decodedSnippetForAttribute):
* html/parser/XSSAuditor.h:
2011-10-17 Adam Klein <adamk@chromium.org>
Parse MutationObserverOptions directly into a bitfield
https://bugs.webkit.org/show_bug.cgi?id=70287
Reviewed by Ryosuke Niwa.
Replaces the MutationObserverOptions class with a typedef,
used to pass a bitfield composed of enums defined in
WebKitMutationObserver.h.
No new tests because no behavior should change.
* GNUmakefile.list.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDictionary.h: Removed now-unused method.
* bindings/js/JSWebKitMutationObserverCustom.cpp:
(WebCore::JSWebKitMutationObserver::observe):
* bindings/v8/custom/V8WebKitMutationObserverCustom.cpp:
(WebCore::V8WebKitMutationObserver::observeCallback):
* dom/MutationObserverOptions.h: Removed.
* dom/Node.cpp:
(WebCore::Node::registerMutationObserver):
* dom/Node.h:
* dom/NodeRareData.h:
(WebCore::MutationObserverEntry::MutationObserverEntry):
(WebCore::MutationObserverEntry::matches):
* dom/WebKitMutationObserver.cpp:
(WebCore::WebKitMutationObserver::observe):
* dom/WebKitMutationObserver.h:
2011-10-17 Luke Macpherson <macpherson@chromium.org>
Add compile-time asserts for RenderStyle::(Non)InheritedFlags size.
https://bugs.webkit.org/show_bug.cgi?id=69803
Reviewed by Darin Adler.
No new tests.
Adds COMPILE_ASSERTs for the size of RenderStyle::InheritedFlags and
RenderStyle::NonInheritedFlags to ensure that they are not accidentally
grown in future changes.
Change types of unsigned bitfields to unsigned char to ensure that the
above assertions remain true when building on windows.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle):
Adds assertions to ensure struct sizes do not change.
* rendering/style/RenderStyle.h:
Changes unsigned to unsigned char as outlined above.
2011-10-17 Ojan Vafai <ojan@chromium.org>
Unreviewed, rolling out r97662.
http://trac.webkit.org/changeset/97662
https://bugs.webkit.org/show_bug.cgi?id=68497
Was not the cause of the test failures.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::sizesToIntrinsicLogicalWidth):
2011-10-17 Ryosuke Niwa <rniwa@webkit.org>
Rename deregister* to unregister*
https://bugs.webkit.org/show_bug.cgi?id=70272
Reviewed by Darin Adler.
Renamed deregisterHandler to unregisterHandler.
* inspector/front-end/ExtensionAPI.js:
(injectedExtensionAPI.ExtensionServerClient.prototype.unregisterHandler):
* inspector/front-end/ExtensionServer.js:
(WebInspector.ExtensionServer.prototype._onSetOpenResourceHandler):
* inspector/front-end/HandlerRegistry.js:
(get WebInspector.HandlerRegistry.prototype.unregisterHandler):
2011-10-17 Huang Dongsung <luxtella@company100.net>
[TexMap][QT] The BGRA32PremultimpliedBuffer should not inherit the RefCounted class.
https://bugs.webkit.org/show_bug.cgi?id=70098
The BitmapTexture has a BGRA32PremultimpliedBuffer object using OwnPtr, not RefPtr.
It causes following assertion fail, RefCountedBase::m_deletionHasBegun.
It is better that the BGRA32PremultimpliedBuffer does not inherit the RefCounted
because the BitmapTexture only has and uses a BGRA32PremultimpliedBuffer object.
Reviewed by Noam Rosenthal.
* platform/graphics/opengl/TextureMapperGL.h:
2011-10-17 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Search in resource crashes when there is no resource with given url.
https://bugs.webkit.org/show_bug.cgi?id=69767
Reviewed by Pavel Feldman.
Test: http/tests/inspector/search/search-in-non-existing-resource.html
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::searchInResource):
2011-10-17 Mihnea Ovidenie <mihnea@adobe.com>
[CSS Regions]Change content:-webkit-from-flow to -webkit-flow-from
https://bugs.webkit.org/show_bug.cgi?id=70104
Reviewed by David Hyatt.
1. -webkit-flow-from is now a property instead of being an addition to content property.
2. -webkit-flow-from takes an identifier instead of string.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseContent):
(WebCore::CSSParser::parseRegionThread):
* css/CSSParser.h:
* css/CSSPrimitiveValue.cpp:
(WebCore::isValidCSSUnitTypeForDoubleConversion):
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::getStringValue):
(WebCore::CSSPrimitiveValue::cssText):
* css/CSSPrimitiveValue.h:
* css/CSSPropertyNames.in:
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
2011-10-17 Kentaro Hara <haraken@chromium.org>
MessageEvent.data can be stored as ScriptValue.
https://bugs.webkit.org/show_bug.cgi?id=68978
Reviewed by Hajime Morita.
Currently, the following test cases fail or crash:
- shouldBe("new MessageEvent('eventType', { data: test_object }).data", "test_object") -> FAIL
- new MessageEvent('eventType', { data: document }).data -> CRASH
This is because MessageEvent.data is implemented just as SerializedScriptValue
and it cannot keep ScriptValue passed by JavaScript. This patch makes the following changes:
- If MessageEvent is constructed with ScriptValue, it is stored as ScriptValue internally.
When MessageEvent.data is called, the ScriptValue is returned.
- If MessageEvent is constructed with SerializedScriptValue, it is stored as
SerializedScriptValue internally (since we cannot deserialize it into ScriptValue
at this point because of lack of ExecState). When MessageEvent.data is called,
the SerializedScriptValue is deserialized into the corresponding ScriptValue,
and the ScriptValue is returned.
This patch does not make a fix for ObjC bindings code, since we need to first fix
the bug 28774, as commented in dom/MessageEvent.h and dom/MessageEvent.cpp.
Test: fast/events/constructors/message-event-constructor.html
* bindings/js/JSMessageEventCustom.cpp:
(WebCore::JSMessageEvent::data): Custom getter for MessageEvent.data. Supported ScriptValue.
(WebCore::JSMessageEvent::initMessageEvent): Changed SerializedScriptValue to ScriptValue.
* bindings/v8/custom/V8MessageEventCustom.cpp:
(WebCore::V8MessageEvent::dataAccessorGetter): Custom getter for MessageEvent.data. Supported ScriptValue.
(WebCore::V8MessageEvent::portsAccessorGetter): Removed extra spaces.
(WebCore::V8MessageEvent::initMessageEventCallback): Changed SerializedScriptValue to ScriptValue.
* dom/MessageEvent.cpp:
(WebCore::MessageEvent::MessageEvent): Supported ScriptValue.
(WebCore::MessageEvent::initMessageEvent): Supported ScriptValue.
(WebCore::MessageEvent::isMessageEvent): Removed extra spaces.
* dom/MessageEvent.h: Added DataType::DataTypeScriptValue.
(WebCore::MessageEvent::create): Supported ScriptValue.
(WebCore::MessageEvent::dataAsScriptValue): Getter for data. Insert ASSERT() to guarantee that this accessor is not called for unintended type of data.
(WebCore::MessageEvent::dataAsSerializedScriptValue): Ditto.
(WebCore::MessageEvent::dataAsString): Ditto.
(WebCore::MessageEvent::dataAsBlob): Ditto.
(WebCore::MessageEvent::dataAsArrayBuffer): Ditto.
* dom/MessageEvent.idl: Changed SerializedScriptValue to DOMObject (i.e. ScriptValue). This patch does not touch an ObjC part.
2011-10-17 Shinya Kawanaka <shinyak@google.com>
Unified spell-checking and legacy spell checking should be easy to switch
https://bugs.webkit.org/show_bug.cgi?id=69242
Reviewed by Hajime Morita.
WebCore has two different code paths for spell-checking:
1) checkTextOfParagraph() for Snow Leopard or later
2) checkSpellingOfString() for checkGrammarOfString() for other platforms.
This patch introduces a flag to change code paths dynamically.
This patch also includes build fix for QT, GTK, and Windows platforms.
No new tests because this patch does not change a behavior.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::hasMisspelling):
Changed static if-USE(UNIFIED_TEXT_CHECKING) statement to dynamic
condition branch to achieve easy code path change.
* accessibility/mac/WebAccessibilityObjectWrapper.mm: ditto.
(AXAttributeStringSetSpelling):
* editing/EditingAllInOne.cpp:
* editing/Editor.cpp:
(WebCore::Editor::advanceToNextMisspelling): ditto.
(WebCore::Editor::guessesForMisspelledOrUngrammaticalSelection): ditto.
(WebCore::Editor::markMisspellingsAfterTypingToWord): ditto.
(WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): ditto.
(WebCore::Editor::changeBackToReplacedString): ditto.
(WebCore::Editor::markMisspellingsAndBadGrammar): ditto.
(WebCore::Editor::unifiedTextCheckerEnabled):
Utility method to check using unified text checking or not.
* editing/Editor.h:
* editing/TextCheckingHelper.cpp:
(WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar):
Same as WebCore::AccessibilityObject::hasMisspelling.
(WebCore::TextCheckingHelper::guessesForMisspelledOrUngrammaticalRange): ditto.
(WebCore::TextCheckingHelper::unifiedTextCheckerEnabled):
Utility method to check using unified text checking or not.
(WebCore::unifiedTextCheckerEnabled): ditto.
* editing/TextCheckingHelper.h:
* page/Settings.cpp:
(WebCore::Settings::Settings):
Includes a flag to change the code path.
* page/Settings.h:
(WebCore::Settings::setUnifiedTextCheckerEnabled):
Sets a flag to change the code path.
(WebCore::Settings::unifiedTextCheckerEnabled):
A flag to change the code path.
2011-10-17 Julien Chaffraix <jchaffraix@webkit.org>
Unreviewed build fix after 97691.
* html/HTMLTableCellElement.h:
(WebCore::toHTMLTableCellElement): Avoid declaring the same function twice.
2011-10-12 Ojan Vafai <ojan@chromium.org>
Unreviewed, rolling out r97661.
http://trac.webkit.org/changeset/97661
Confirmed this patch was not the cause of the test failures.
display:inline-block elements don't correctly handle orthogonal writing-modes
https://bugs.webkit.org/show_bug.cgi?id=69957
Reading min/maxPreferredLogicalWidth from a child uses the child's writing-mode.
Instead, we need to grab the result based on the parent's writing-mode.
In the case of orthogonal writing-modes, we need the child's logical height.
Tests: fast/writing-mode/borders-expected.html
fast/writing-mode/borders.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeBlockPreferredLogicalWidths):
2011-10-17 James Robinson <jamesr@chromium.org>
Unreviewed, rolling out r97690.
http://trac.webkit.org/changeset/97690
https://bugs.webkit.org/show_bug.cgi?id=70161
Hits assertion in CCLayerTreeHostTests
* WebCore.gypi:
* platform/graphics/chromium/cc/CCMainThread.h:
* platform/graphics/chromium/cc/CCMainThreadTask.h:
(WebCore::createMainThreadTask):
* platform/graphics/chromium/cc/CCScopedMainThreadProxy.h: Removed.
* platform/graphics/chromium/cc/CCThreadProxy.cpp:
(WebCore::CCThreadProxySchedulerClient::scheduleBeginFrameAndCommit):
(WebCore::CCThreadProxy::CCThreadProxy):
(WebCore::CCThreadProxy::stop):
* platform/graphics/chromium/cc/CCThreadProxy.h:
2011-10-17 Julien Chaffraix <jchaffraix@webkit.org>
Remove colSpan / rowSpan caching from RenderTableCell
https://bugs.webkit.org/show_bug.cgi?id=69569
Reviewed by Darin Adler.
Memory optimization, no change in behavior expected.
This change removes m_colSpan & m_rowSpan from RenderTableCell (inspired by
kling's memory shaving effort).
This makes us save 8 bytes per RenderTableCell on my machine (x86-64). No slowdown
on PageCycler Alexa-US.
This change refactored the way we handle updates from the DOM side to simplify
the code using the following: colspan / rowspan updates always go through
parseMappedAttribute where we already check for the renderer type. Thus removed the
generic updateFromElement and replaced it with colSpanOrRowSpanChanged. This removes
a virtual dispatch.
As there is no way to know if an attribute has changed in the parseMappedAttribute code,
we now unconditionally call colSpanOrRowSpanChanged. Looking at Chromium's page data,
colSpan and rowSpan are never changed outside the HTML markup thus such a change should
have a limited impact.
* html/HTMLTableCellElement.cpp:
(WebCore::HTMLTableCellElement::parseMappedAttribute): Updated after updateFromElement
removal.
* html/HTMLTableCellElement.h:
(WebCore::toHTMLTableCellElement): Added the usual conversion functions.
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::RenderTableCell): Added a boolean to know if we have
the right type of associated DOM node to avoid the cost of checking that every
time.
(WebCore::RenderTableCell::colSpan):
(WebCore::RenderTableCell::rowSpan):
Forwarded the calls to our object if we have the right type (normal case).
(WebCore::RenderTableCell::colSpanOrRowSpanChanged): Handles the
updateFromElement calls but in a more streamlined way.
* rendering/RenderTableCell.h:
2011-10-17 James Robinson <jamesr@chromium.org>
[chromium] Fix shutdown race when posting main thread task to CCThreadProxy and enable tests
https://bugs.webkit.org/show_bug.cgi?id=70161
Reviewed by David Levin.
Adds a weak pointer mechanism to cancel main thread tasks posted to CCThreadProxy instances from the compositor
thread. Previously there was a race condition where main thread tasks could run even after the CCThreadProxy was
destroyed.
This race does not exist in the other direction because when tearing down a CCThreadProxy we first post a quit
task to the compositor thread and then suspend execution of the main thread until all compositor tasks for the
CCThreadProxy have been drained.
Covered by the now-enabled CCLayerTreeHostTest* unit tests.
* WebCore.gypi:
* platform/graphics/chromium/cc/CCScopedMainThreadProxy.h: Added.
(WebCore::CCScopedMainThreadProxy::create):
(WebCore::CCScopedMainThreadProxy::postTask):
(WebCore::CCScopedMainThreadProxy::shutdown):
(WebCore::CCScopedMainThreadProxy::CCScopedMainThreadProxy):
(WebCore::CCScopedMainThreadProxy::runTaskIfNotShutdown):
* platform/graphics/chromium/cc/CCThreadProxy.cpp:
(WebCore::CCThreadProxy::CCThreadProxy):
(WebCore::CCThreadProxy::~CCThreadProxy):
(WebCore::CCThreadProxy::createBeginFrameAndCommitTaskOnCCThread):
* platform/graphics/chromium/cc/CCThreadProxy.h:
2011-10-17 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r97641.
http://trac.webkit.org/changeset/97641
https://bugs.webkit.org/show_bug.cgi?id=70288
"This change may have broken mouse/hit-test coordinate tests."
(Requested by jeffm7 on #webkit).
* platform/Widget.cpp:
(WebCore::Widget::convertFromContainingWindow):
(WebCore::Widget::convertToContainingWindow):
2011-10-17 Andreas Kling <kling@webkit.org>
CSSParser: Remove unused variable 'propertyComponents'
https://bugs.webkit.org/show_bug.cgi?id=70230
Reviewed by Darin Adler.
(WebCore::CSSParser::markPropertyEnd):
2011-10-17 Shawn Singh <shawnsingh@chromium.org>
[chromium] Update comments about transform hierarchy in CCLayerTreeHostCommon
https://bugs.webkit.org/show_bug.cgi?id=69765
Reviewed by James Robinson.
Only comments changed, no tests needed.
* platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
(WebCore::calculateDrawTransformsAndVisibilityInternal):
2011-10-17 Dan Bernstein <mitz@apple.com>
Remove unnecessary calls to columnRectAt()
https://bugs.webkit.org/show_bug.cgi?id=70283
Reviewed by Darin Adler.
These call sites only needed one of the column dimensions, which are independent of the column
index, and can be retrieved directly from the ColumnInfo.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintColumnRules):
(WebCore::RenderBlock::hitTestColumns):
2011-10-17 Andreas Kling <kling@webkit.org>
Protect against incorrect Element::fast*Attribute() usage.
https://bugs.webkit.org/show_bug.cgi?id=67612
Reviewed by Darin Adler.
Add debug-only checks in Element's fastHasAttribute() and fastGetAttribute() to verify
that we aren't looking up the "style" attribute or any of the SVG animatable attributes.
No new tests, erroneous behavior is covered by assertions.
* WebCore.exp.in: Export Element::fastAttributeLookupAllowed() for debug builds
since it's used by the inline fast*Attribute() calls.
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::canShareStyleWithElement): Use getAttribute() for class.
* css/SelectorChecker.cpp:
(WebCore::linkAttribute): Use getAttribute() for xlink:href.
* dom/Element.cpp:
(WebCore::Element::getAttribute): Manually inline fastGetAttribute() in ideal case.
(WebCore::Element::fastAttributeLookupAllowed): Checks if an attribute can be used
with the fast lookup functions.
* dom/Element.h:
(WebCore::Element::fastHasAttribute): Add assertion.
(WebCore::Element::fastGetAttribute): Ditto.
* editing/ApplyStyleCommand.cpp:
(WebCore::hasNoAttributeOrOnlyStyleAttribute): Use getAttribute() for class.
* editing/ReplaceSelectionCommand.cpp:
(WebCore::isInlineNodeWithStyle): Ditto.
* html/ClassList.cpp:
(WebCore::ClassList::ClassList): Ditto.
(WebCore::ClassList::addInternal): Ditto.
(WebCore::ClassList::removeInternal): Ditto.
(WebCore::ClassList::toString): Ditto.
* svg/SVGAltGlyphElement.cpp:
(WebCore::SVGAltGlyphElement::hasValidGlyphElements): Use getAttribute() for xlink:href.
* svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::rotateMode): Use getAttribute() for rotate.
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::animationMode): Use getAttribute() for values.
* svg/SVGElement.cpp:
(WebCore::SVGElement::isAnimatableAttribute): Added, returns true if the given
QualifiedName represents an animatable attribute.
* svg/SVGElement.h:
* svg/SVGFontFaceUriElement.cpp:
(WebCore::SVGFontFaceUriElement::srcValue): Use getAttribute() for xlink:href.
(WebCore::SVGFontFaceUriElement::loadFont): Ditto.
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::xlinkHref): Ditto.
* svg/SVGGlyphRefElement.cpp:
(WebCore::SVGGlyphRefElement::hasValidGlyphElement): Ditto.
* svg/SVGStyleElement.cpp:
(WebCore::SVGStyleElement::type): Use getAttribute() for type.
2011-10-17 Chris Fleizach <cfleizach@apple.com>
AX: buttons of number type <input> controls are not fully accessible
https://bugs.webkit.org/show_bug.cgi?id=70241
Expose the spin button object to the AX hierarchy. Since there is no distinct
render object that backs this object, a mock object needs to be created for the entire
spin button and the actual increment and decrement buttons inside.
Reviewed by Darin Adler.
Test: platform/mac/accessibility/html5-input-number.html
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::getOrCreate):
* accessibility/AccessibilityMockObject.cpp:
(WebCore::AccessibilityMockObject::AccessibilityMockObject):
* accessibility/AccessibilityMockObject.h:
(WebCore::AccessibilityMockObject::isMockObject):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::boundingBoxForQuads):
(WebCore::AccessibilityObject::elementAccessibilityHitTest):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isSpinButton):
(WebCore::AccessibilityObject::isSpinButtonPart):
(WebCore::AccessibilityObject::isMockObject):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::boundingBoxRect):
(WebCore::AccessibilityRenderObject::addImageMapChildren):
(WebCore::AccessibilityRenderObject::addTextFieldChildren):
(WebCore::AccessibilityRenderObject::addChildren):
* accessibility/AccessibilityRenderObject.h:
* accessibility/AccessibilitySpinButton.cpp: Added.
(WebCore::AccessibilitySpinButton::create):
(WebCore::AccessibilitySpinButton::AccessibilitySpinButton):
(WebCore::AccessibilitySpinButton::~AccessibilitySpinButton):
(WebCore::AccessibilitySpinButton::incrementButton):
(WebCore::AccessibilitySpinButton::decrementButton):
(WebCore::AccessibilitySpinButton::elementRect):
(WebCore::AccessibilitySpinButton::addChildren):
(WebCore::AccessibilitySpinButton::step):
(WebCore::AccessibilitySpinButtonPart::AccessibilitySpinButtonPart):
(WebCore::AccessibilitySpinButtonPart::create):
(WebCore::AccessibilitySpinButtonPart::elementRect):
(WebCore::AccessibilitySpinButtonPart::press):
* accessibility/AccessibilitySpinButton.h: Added.
(WebCore::AccessibilitySpinButton::setSpinButtonElement):
(WebCore::AccessibilitySpinButton::roleValue):
(WebCore::AccessibilitySpinButton::accessibilityIsIgnored):
(WebCore::AccessibilitySpinButton::isSpinButton):
(WebCore::AccessibilitySpinButtonPart::~AccessibilitySpinButtonPart):
(WebCore::AccessibilitySpinButtonPart::isIncrementor):
(WebCore::AccessibilitySpinButtonPart::setIsIncrementor):
(WebCore::AccessibilitySpinButtonPart::roleValue):
(WebCore::AccessibilitySpinButtonPart::isSpinButtonPart):
(WebCore::AccessibilitySpinButtonPart::accessibilityIsIgnored):
(WebCore::toAccessibilitySpinButton):
(WebCore::toAccessibilitySpinButtonPart):
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(-[WebAccessibilityObjectWrapper accessibilityActionNames]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapper subrole]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
* html/shadow/TextControlInnerElements.cpp:
(WebCore::SpinButtonElement::step):
(WebCore::SpinButtonElement::repeatingTimerFired):
* html/shadow/TextControlInnerElements.h:
2011-10-17 Dmitry Titov <dimich@chromium.org>
Re-landing: window.webkitNotifications uses deallocated NotificationPresenter after live Iframe transfer.
https://bugs.webkit.org/show_bug.cgi?id=70147
Reviewed by David Levin.
I only found a way to test this manually, since Chromium TestShell uses static instance
of NotificationPresenter instead of per-page one so the issue does not reproduce.
Adding manual test that works in full build of Chromium.
* manual-tests/iframe_notifications/iframe-reparenting-close-window-child.html: Added.
* manual-tests/iframe_notifications/iframe-reparenting-close-window-iframe.html: Added.
* manual-tests/iframe_notifications/iframe-reparenting-close-window.html: Added.
* notifications/NotificationCenter.cpp:
(WebCore::NotificationCenter::disconnectFrame):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::resetNotifications):
* page/DOMWindow.h:
* page/Frame.cpp:
(WebCore::Frame::transferChildFrameToNewDocument): reset webkitNotifications object.
2011-10-17 Arno Renevier <arno@renevier.net>
quote "attributes" keyword in CodeGeneratorGObject.pm
https://bugs.webkit.org/show_bug.cgi?id=64348
Reviewed by Darin Adler.
No change of functionality. No new tests.
* bindings/scripts/CodeGeneratorGObject.pm:
2011-10-17 Ojan Vafai <ojan@chromium.org>
Unreviewed, rolling out r97654.
http://trac.webkit.org/changeset/97654
https://bugs.webkit.org/show_bug.cgi?id=68497
Caused a number of Chromium failures.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::sizesToIntrinsicLogicalWidth):
2011-10-17 Ojan Vafai <ojan@chromium.org>
Unreviewed, rolling out r97653.
http://trac.webkit.org/changeset/97653
https://bugs.webkit.org/show_bug.cgi?id=69957
Caused a number of Chromium failures.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeBlockPreferredLogicalWidths):
2011-10-17 Rafael Weinstein <rafaelw@chromium.org>
[MutationObservers] Implement WebKitMutationObserver.observe for attributes
https://bugs.webkit.org/show_bug.cgi?id=68956
Reviewed by Ryosuke Niwa.
Test: fast/mutation/observe-attributes.html
This adds an initial implementation for registering mutation observers on nodes,
delivering mutation records at the end of the outer-most script invokation and
observing mutations to element attributes.
Note that the outer-most script invokation only works in V8.
Note also that support for observing changes to the style attribute when updated
via the style property is not implemented here.
* bindings/v8/V8Proxy.cpp:
(WebCore::V8Proxy::didLeaveScriptContext):
* dom/Element.cpp:
(WebCore::enqueueAttributesMutationRecord):
(WebCore::Element::setAttribute):
* dom/MutationRecord.cpp:
(WebCore::MutationRecord::createAttributes):
* dom/MutationRecord.h:
* dom/MutationRecord.idl:
* dom/Node.cpp:
(WebCore::Node::clearRareData):
(WebCore::Node::mutationObserverData):
(WebCore::Node::ensureMutationObserverData):
(WebCore::Node::registeredMutationObserversOfType):
(WebCore::Node::registerMutationObserver):
(WebCore::Node::deregisterMutationObserver):
* dom/Node.h:
* dom/NodeRareData.h:
(WebCore::MutationObserverRegistration::MutationObserverRegistration):
(WebCore::MutationObserverRegistration::operator==):
(WebCore::MutationObserverData::MutationObserverData):
(WebCore::MutationObserverData::~MutationObserverData):
(WebCore::NodeRareData::mutationObserverData):
(WebCore::NodeRareData::ensureMutationObserverData):
* dom/WebKitMutationObserver.cpp:
(WebCore::WebKitMutationObserver::observe):
(WebCore::WebKitMutationObserver::disconnect):
(WebCore::WebKitMutationObserver::wasDeregistered):
(WebCore::activeMutationObservers):
(WebCore::WebKitMutationObserver::enqueueMutationRecord):
(WebCore::WebKitMutationObserver::deliverAllMutations):
(WebCore::WebKitMutationObserver::deliver):
* dom/WebKitMutationObserver.h:
2011-10-17 Andreas Kling <kling@webkit.org>
HTMLKeygenElement: Don't cache keytype and challenge attributes.
https://bugs.webkit.org/show_bug.cgi?id=68365
Reviewed by Darin Adler.
* html/HTMLKeygenElement.cpp:
(WebCore::HTMLKeygenElement::parseMappedAttribute):
(WebCore::HTMLKeygenElement::appendFormData):
* html/HTMLKeygenElement.h:
2011-09-22 Ojan Vafai <ojan@chromium.org>
incorrect height with height:auto and writing-mode:vertical-rl
https://bugs.webkit.org/show_bug.cgi?id=68497
Reviewed by David Hyatt.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::sizesToIntrinsicLogicalWidth):
2011-10-12 Ojan Vafai <ojan@chromium.org>
display:inline-block elements don't correctly handle orthogonal writing-modes
https://bugs.webkit.org/show_bug.cgi?id=69957
Reviewed by David Hyatt.
Reading min/maxPreferredLogicalWidth from a child uses the child's writing-mode.
Instead, we need to grab the result based on the parent's writing-mode.
In the case of orthogonal writing-modes, we need the child's logical height.
Tests: fast/writing-mode/borders-expected.html
fast/writing-mode/borders.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeBlockPreferredLogicalWidths):
2011-10-17 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r97643.
http://trac.webkit.org/changeset/97643
https://bugs.webkit.org/show_bug.cgi?id=70270
Broke iframe reparenting tests (Requested by dimich on
#webkit).
* manual-tests/iframe_notifications/iframe-reparenting-close-window-child.html: Removed.
* manual-tests/iframe_notifications/iframe-reparenting-close-window-iframe.html: Removed.
* manual-tests/iframe_notifications/iframe-reparenting-close-window.html: Removed.
* notifications/NotificationCenter.cpp:
(WebCore::NotificationCenter::disconnectFrame):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::webkitNotifications):
* page/DOMWindow.h:
* page/Frame.cpp:
(WebCore::Frame::transferChildFrameToNewDocument):
2011-10-17 Dmitry Titov <dimich@chromium.org>
window.webkitNotifications uses deallocated NotificationPresenter after live Iframe transfer.
https://bugs.webkit.org/show_bug.cgi?id=70147
Reviewed by David Levin.
I only found a way to test this manually, since Chromium TestShell uses static instance
of NotificationPresenter instead of per-page one so the issue does not reproduce.
Adding manual test that works in full build of Chromium.
* manual-tests/iframe_notifications/iframe-reparenting-close-window-child.html: Added.
* manual-tests/iframe_notifications/iframe-reparenting-close-window-iframe.html: Added.
* manual-tests/iframe_notifications/iframe-reparenting-close-window.html: Added.
* notifications/NotificationCenter.cpp:
(WebCore::NotificationCenter::disconnectFrame):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::resetNotifications):
* page/DOMWindow.h:
* page/Frame.cpp:
(WebCore::Frame::transferChildFrameToNewDocument): reset webkitNotifications object.
2011-10-17 Jeff Miller <jeffm@apple.com>
Widget window coordinate functions should use root view coordinate functions
https://bugs.webkit.org/show_bug.cgi?id=70152
Reviewed by Darin Adler.
No new tests, no changes to functionality.
* platform/Widget.cpp:
(WebCore::Widget::convertFromContainingWindow): Use convertFromRootView().
(WebCore::Widget::convertToContainingWindow): Use convertToRootView().
2011-10-14 Chris Marrin <cmarrin@apple.com>
Throttle rate of requestAnimationFrame when page is not visible
https://bugs.webkit.org/show_bug.cgi?id=67873
Reviewed by Anders Carlsson.
Add logic to suspend and resume scripted animations when page is hidden,
minimized or the tab is not visible. The hide/minimize notification comes
in from WebKit/WebKit2 to a new set of functions.
* WebCore.exp.in:
* page/Page.cpp:
(WebCore::Page::didMoveOnscreen):
(WebCore::Page::willMoveOffscreen):
(WebCore::Page::suspendScriptedAnimations):
(WebCore::Page::resumeScriptedAnimations):
* page/Page.h:
2011-10-17 Antti Koivisto <antti@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=69966
Eliminate separate RenderStyle for visited link style
Reviewed by Dave Hyatt and Nikolas Zimmermann.
There are only a few properties that can apply to visited links and they can
be part of the regular style. Many things will get simpler when the separate
RenderStyle for visited links is eliminated.
- Add valid visited link properties as separate fields to RenderStyle. The
visitedLinkColor goes to inherited, everything else goes to rare data structures.
- Make RenderStyle::visitedDependentColor() get the visited style from the new fields.
- As VISITED_LINK pseudo style doesn't exists anymore, remove all code dealing with it.
- Make CSSStyleSelector and ApplyPropertyColor apply the visited link style to the
newly added fields instead of a separate RenderStyle.
- Same thing with SVGRenderStyle, SVGCSSStyleSelector.
- Fixup the SVG visited link style code to use the new fields.
This is ~15% progression in styleForElement performance over the HTML5 spec load.
* css/CSSStyleApplyProperty.cpp:
(WebCore::ApplyPropertyColor::ApplyPropertyColor):
(WebCore::ApplyPropertyColor::applyInheritValue):
(WebCore::ApplyPropertyColor::applyInitialValue):
(WebCore::ApplyPropertyColor::applyValue):
(WebCore::ApplyPropertyColor::applyColorValue):
(WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::CSSStyleSelector):
(WebCore::CSSStyleSelector::styleForElement):
(WebCore::CSSStyleSelector::pseudoStyleForElement):
(WebCore::CSSStyleSelector::updateFont):
(WebCore::CSSStyleSelector::applyDeclaration):
(WebCore::CSSStyleSelector::applyDeclarations):
(WebCore::CSSStyleSelector::applyProperty):
(WebCore::CSSStyleSelector::getColorFromPrimitiveValue):
* css/CSSStyleSelector.h:
(WebCore::CSSStyleSelector::applyPropertyToRegularStyle):
(WebCore::CSSStyleSelector::applyPropertyToVisitedLinkStyle):
* css/SVGCSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applySVGProperty):
* dom/Element.cpp:
(WebCore::Element::pseudoStyleCacheIsInvalid):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::getCachedPseudoStyle):
(WebCore::RenderStyle::colorIncludingFallback):
(WebCore::RenderStyle::visitedDependentColor):
* rendering/style/RenderStyle.h:
(WebCore::InheritedFlags::setVisitedLinkColor):
(WebCore::InheritedFlags::setVisitedLinkBackgroundColor):
(WebCore::InheritedFlags::setVisitedLinkBorderLeftColor):
(WebCore::InheritedFlags::setVisitedLinkBorderRightColor):
(WebCore::InheritedFlags::setVisitedLinkBorderBottomColor):
(WebCore::InheritedFlags::setVisitedLinkBorderTopColor):
(WebCore::InheritedFlags::setVisitedLinkOutlineColor):
(WebCore::InheritedFlags::setVisitedLinkColumnRuleColor):
(WebCore::InheritedFlags::setVisitedLinkTextEmphasisColor):
(WebCore::InheritedFlags::setVisitedLinkTextFillColor):
(WebCore::InheritedFlags::setVisitedLinkTextStrokeColor):
* rendering/style/RenderStyleConstants.h:
* rendering/style/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::setVisitedLinkFillPaint):
(WebCore::SVGRenderStyle::setVisitedLinkStrokePaint):
(WebCore::SVGRenderStyle::visitedLinkFillPaintType):
(WebCore::SVGRenderStyle::visitedLinkFillPaintColor):
(WebCore::SVGRenderStyle::visitedLinkStrokePaintType):
(WebCore::SVGRenderStyle::visitedLinkStrokePaintColor):
* rendering/style/SVGRenderStyleDefs.cpp:
(WebCore::StyleFillData::StyleFillData):
(WebCore::StyleFillData::operator==):
(WebCore::StyleStrokeData::StyleStrokeData):
(WebCore::StyleStrokeData::operator==):
* rendering/style/SVGRenderStyleDefs.h:
* rendering/style/StyleInheritedData.cpp:
(WebCore::StyleInheritedData::StyleInheritedData):
(WebCore::StyleInheritedData::operator==):
* rendering/style/StyleInheritedData.h:
* rendering/style/StyleMultiColData.cpp:
(WebCore::StyleMultiColData::StyleMultiColData):
(WebCore::StyleMultiColData::operator==):
* rendering/style/StyleMultiColData.h:
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator==):
* rendering/style/StyleRareInheritedData.h:
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
* rendering/style/StyleRareNonInheritedData.h:
* rendering/svg/RenderSVGResource.cpp:
(WebCore::requestPaintingResource):
2011-10-17 Eric Carlson <eric.carlson@apple.com>
Cues should be loaded by the cached resource loader
https://bugs.webkit.org/show_bug.cgi?id=70134
Reviewed by Darin Adler.
No new tests, changes covered by existing tests.
* CMakeLists.txt: Add CachedCues.cpp/h.
* GNUmakefile.list.am: Ditto.
* WebCore.gypi: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* loader/cache/CachedCues.cpp: Added.
(WebCore::CachedCues::CachedCues):
(WebCore::CachedCues::~CachedCues):
(WebCore::CachedCues::data): Called when new data has been loaded, pass it to all registered
clients.
* loader/cache/CachedCues.h: Added.
* loader/cache/CachedResource.cpp:
(WebCore::defaultPriorityForResourceType): Cues have low loader priority.
* loader/cache/CachedResource.h:
* loader/cache/CachedResourceClient.h:
(WebCore::CachedResourceClient::didReceiveData): New client interface.
* loader/cache/CachedResourceLoader.cpp:
(WebCore::createResource): Create and return a new cue loader.
(WebCore::CachedResourceLoader::requestCues):
(WebCore::CachedResourceLoader::checkInsecureContent): Cues aren't mentioned in the CPS spec
yet, but they only work with a media element so use the mdia policy.
(WebCore::CachedResourceLoader::canRequest): Allow cues to be loaded from any origin like media.
* loader/cache/CachedResourceLoader.h:
* loader/cache/CachedResourceRequest.cpp:
(WebCore::cachedResourceTypeToTargetType):
* platform/network/chromium/ResourceRequest.h:
2011-10-17 Dan Bernstein <mitz@apple.com>
<rdar://problem/10293929> REGRESSION (r97525): iChat transcript has horizontal scroll bar when the conversation includes a wide image
https://bugs.webkit.org/show_bug.cgi?id=70204
Reviewed by Darin Adler.
Reverted r97525, which was supposed to fix <http://webkit.org/b/29447>.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeReplacedLogicalWidthUsing):
(WebCore::RenderBox::computeReplacedLogicalHeightUsing):
* rendering/RenderBox.h:
2011-10-17 Ada Chan <adachan@apple.com>
Export KURL::baseAsString() so it can be called in WebProcessProxy::assumeReadAccessToBaseURL() in WebKit2.
https://bugs.webkit.org/show_bug.cgi?id=70168
Reviewed by Alexey Proskuryakov.
No new tests. There is no change in functionality.
* WebCore.exp.in: Export KURL::baseAsString().
2011-10-17 Ryosuke Niwa <rniwa@webkit.org>
Touch Internals.cpp to make 64-bit GTK+ build happy.
* testing/Internals.cpp:
2011-10-17 Chris Fleizach <cfleizach@apple.com>
AX: children() method should be consolidated in AccessibilityObject
https://bugs.webkit.org/show_bug.cgi?id=70243
Code cleanup, no new tests.
Reviewed by Darin Adler.
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::children):
* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::updateChildrenIfNecessary):
* accessibility/AccessibilityRenderObject.h:
* accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::updateChildrenIfNecessary):
(WebCore::AccessibilityScrollView::updateScrollbars):
(WebCore::AccessibilityScrollView::addChildren):
* accessibility/AccessibilityScrollView.h:
* accessibility/AccessibilitySlider.cpp:
* accessibility/AccessibilitySlider.h:
* accessibility/AccessibilityTableColumn.cpp:
* accessibility/AccessibilityTableColumn.h:
* accessibility/AccessibilityTableHeaderContainer.cpp:
* accessibility/AccessibilityTableHeaderContainer.h:
2011-10-17 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Search matches highlighting in text does not work correctly.
https://bugs.webkit.org/show_bug.cgi?id=70244
Reviewed by Pavel Feldman.
Test: inspector/utilities-highlight-results.html
* inspector/front-end/utilities.js:
():
2011-10-17 Chris Fleizach <cfleizach@apple.com>
AX: webkit won't always send live region notifications
https://bugs.webkit.org/show_bug.cgi?id=70030
Webkit purposefully does not send live region notifications if some AT client has not accessed the AX tree in between
the last live region update (ostensibly to improve performance).
However, this is problematic if a screen reader misses one notification... it has no idea what happened and the only
recourse is to rescan the page for changes. The correct thing to do is to always send notifications.
Reviewed by Darin Adler.
Test: platform/mac/accessibility/aria-liveregions-notifications-always-sent.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::childrenChanged):
2011-10-12 Pavel Podivilov <podivilov@chromium.org>
Web Inspector: fix handling of source mapping entries with no mapping.
https://bugs.webkit.org/show_bug.cgi?id=69941
Reviewed by Pavel Feldman.
* inspector/front-end/CompilerSourceMapping.js:
(WebInspector.ClosureCompilerSourceMapping.prototype._parseMappings):
2011-10-17 Mikhail Naganov <mnaganov@chromium.org>
Web Inspector: [Chromium] Add an ability to look up and explore an object from a heap profile.
https://bugs.webkit.org/show_bug.cgi?id=61179
This is exteremely helpful when dealing with DOM wrappers, as
their properties are mostly implemented with getters and thus not
stored in heap snapshots.
Reviewed by Pavel Feldman.
* English.lproj/localizedStrings.js:
* bindings/js/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::objectByHeapObjectId):
* bindings/js/ScriptProfiler.h:
* bindings/v8/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::objectByHeapObjectId):
* bindings/v8/ScriptProfiler.h:
* inspector/Inspector.json:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::create):
(WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
(WebCore::InspectorProfilerAgent::getObjectByHeapObjectId):
* inspector/InspectorProfilerAgent.h:
* inspector/front-end/DetailedHeapshotGridNodes.js:
(WebInspector.HeapSnapshotGridNode.prototype.hasHoverMessage.false.queryObjectContent):
(WebInspector.HeapSnapshotGenericObjectNode):
(WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
(WebInspector.HeapSnapshotGenericObjectNode.prototype.queryObjectContent.else.formatResult):
(WebInspector.HeapSnapshotGenericObjectNode.prototype.queryObjectContent):
(WebInspector.HeapSnapshotGenericObjectNode.prototype.shortenWindowURL):
* inspector/front-end/DetailedHeapshotView.js:
(WebInspector.DetailedHeapshotView.prototype._showObjectPopover):
* inspector/front-end/HeapSnapshot.js:
(WebInspector.HeapSnapshotNode.prototype.get canBeQueried):
(WebInspector.HeapSnapshotNode.prototype.get flags):
(WebInspector.HeapSnapshotNode.prototype.get isDOMWindow):
(WebInspector.HeapSnapshot.prototype._init):
(WebInspector.HeapSnapshot.prototype.dispose):
(WebInspector.HeapSnapshot.prototype._flagsOfNode):
(WebInspector.HeapSnapshot.prototype._calculateFlags):
(WebInspector.HeapSnapshot.prototype.updateStaticData):
(WebInspector.HeapSnapshotNodesProvider.prototype._serialize):
* inspector/front-end/HeapSnapshotProxy.js:
(WebInspector.HeapSnapshotProxy.prototype.get nodeFlags):
* inspector/front-end/RemoteObject.js:
(WebInspector.RemoteObject.fromError):
* inspector/front-end/heapProfiler.css:
(.detailed-heapshot-view tr:not(.selected) td.object-column span.highlight):
2011-10-17 Alexander Pavlov <apavlov@chromium.org>
Web Inspector: Editing CSS selector doesn't fire onResourceContentCommitted
https://bugs.webkit.org/show_bug.cgi?id=70018
Reviewed by Yury Semikhatsky.
Test: inspector/styles/commit-selector.html
* inspector/front-end/CSSStyleModel.js:
(WebInspector.CSSStyleModel.prototype.setRuleSelector.callback):
(WebInspector.CSSStyleModel.prototype.setRuleSelector):
2011-10-17 Andreas Kling <kling@webkit.org>
CSS/XSLStyleSheet: Remove insert() and remove().
https://bugs.webkit.org/show_bug.cgi?id=70226
Reviewed by Antti Koivisto.
Remove insert() and remove() from XSLStyleSheet. CSSStyleSheet retains remove()
since it's used by InspectorStyleSheet as well as SVGFontFaceElement.
* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::remove):
Remove range check. This method is internal to WebKit and the call sites
already take care of it.
(WebCore::CSSStyleSheet::insertRule):
(WebCore::CSSStyleSheet::deleteRule):
* css/CSSStyleSheet.h:
* xml/XSLStyleSheet.h:
2011-10-17 Rosen Dash <rosen.dash@motorola.com>
when CSS pseudo selectors are applied (:before and :after) the *-of-line keyboard navigation does not work
https://bugs.webkit.org/show_bug.cgi?id=10123
Reviewed by Ryosuke Niwa.
This patch addresses folllowing two issues:
1. When CSS pseudo elements are before or after is used with content attribute containing single character
at the start/end of text and we try to move cursor by right navigation key, the page freezes falling
into an infinite loop.
2. When these elements try to insert some text between a text line, navigation by right/left arrow key is prohibited.
Tests: editing/selection/css-pseudo-element-hang.html
editing/selection/css-pseudo-element.html
* editing/VisiblePosition.cpp:
(WebCore::VisiblePosition::leftVisuallyDistinctCandidate):
(WebCore::VisiblePosition::rightVisuallyDistinctCandidate):
2011-10-15 Antti Koivisto <antti@apple.com>
Test :visited pseudo class
https://bugs.webkit.org/show_bug.cgi?id=70219
Reviewed by Andreas Kling.
Currently DRT doesn't support :visited. All tests where it should match have wrong checked in results.
- Make <a href=""> to match :visited in DRT. It already does on browsers. A number of existing tests
for :visited use it already, the rest can be modified to use it.
- Make render tree dumps correctly dump the visited state dependent color.
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::determineLinkStateSlowCase):
* rendering/RenderTreeAsText.cpp:
(WebCore::RenderTreeAsText::writeRenderObject):
2011-10-17 Satish Sampath <satish@chromium.org>
Avoid leaking document when leaving google.com due to geolocation
permission request.
https://bugs.webkit.org/show_bug.cgi?id=58027
Reviewed by Kenneth Rohde Christiansen.
* page/Geolocation.cpp:
(WebCore::Geolocation::Watchers::find): added
(WebCore::Geolocation::reset): cleared all pending notifiers.
(WebCore::Geolocation::clearWatch): removed from pending notifier set.
* page/Geolocation.h:
(WebCore::Geolocation::Watchers::find): added
2011-10-17 Andrei Lavreniyuk <andy.lavr@gmail.com>
Fix clang WebKitGTK+ build.
Reviewed by Martin Robinson.
* plugins/gtk/PluginViewGtk.cpp:
2011-10-16 Adam Barth <abarth@webkit.org>
Always disable ENABLE(ON_FIRST_TEXTAREA_FOCUS_SELECT_ALL) and delete associated code
https://bugs.webkit.org/show_bug.cgi?id=70216
Reviewed by Eric Seidel.
No port enables this feature. It was added for the previous Android
port (and should have been an editing behavior in any case).
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::updateFocusAppearance):
2011-10-16 Ryosuke Niwa <rniwa@webkit.org>
Expose rangeFromLocationAndLength and locationAndLengthFromRange via internals object
https://bugs.webkit.org/show_bug.cgi?id=68330
Reviewed by Hajime Morita.
Add rangeFromLocationAndLength, locationFromRange, and lengthFromRange to window.internals.
Test: editing/text-iterator/range-to-from-location-and-length.html
* WebCore.exp.in:
* testing/Internals.cpp:
(WebCore::Internals::scrollElementToRect):
(WebCore::Internals::rangeFromLocationAndLength):
(WebCore::Internals::locationFromRange):
(WebCore::Internals::lengthFromRange):
* testing/Internals.h:
* testing/Internals.idl:
2011-10-16 Kentaro Hara <haraken@chromium.org>
Generate MessageChannel constructor by [Constructor] IDL
https://bugs.webkit.org/show_bug.cgi?id=70214
Reviewed by Adam Barth.
This patch generates an MessageChannel constructor for JSC by [Constructor] IDL,
but V8 is still using a custom constructor since the V8 constructor requires special logic.
Tests: fast/dom/global-constructors.html
fast/events/message-port.html
fast/events/message-port-no-wrapper.html
fast/dom/Window/window-postmessage-args.html
* bindings/js/JSMessageChannelCustom.cpp: Removed the MessageChannel constructor.
* dom/MessageChannel.idl: Generates the MessageChannel constructor for JSC.
2011-10-16 Ryosuke Niwa <rniwa@webkit.org>
[Mac] fontForSelection and styleForSelectionStart should be moved to EditorMac
https://bugs.webkit.org/show_bug.cgi?id=70114
Reviewed by Hajime Morita.
Moved fontForSelection and styleForSelectionStart from Editor to EditorMac
and made styleForSelectionStart static local.
* editing/Editor.cpp:
* editing/Editor.h:
* editing/mac/EditorMac.mm:
(WebCore::styleForSelectionStart):
(WebCore::Editor::fontForSelection):
(WebCore::Editor::fontAttributesForSelectionStart):
2011-10-16 Kentaro Hara <haraken@chromium.org>
Generate EventSource constructor for JSC by [Constructor] IDL
https://bugs.webkit.org/show_bug.cgi?id=70212
Reviewed by Adam Barth.
Removed JSEventSourceCustom.cpp.
Tests: fast/dom/global-constructors.html
fast/eventsource/eventsource-constructor.html
fast/eventsource/eventsource-attribute-listeners.html
* GNUmakefile.list.am: Removed JSEventSourceCustom.cpp.
* UseJSC.cmake: Ditto.
* WebCore.gypi: Ditto.
* WebCore.pro: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* bindings/js/JSBindingsAllInOne.cpp: Ditto.
* bindings/js/JSEventSourceCustom.cpp: Removed this file.
* page/EventSource.idl: Removed 'JSCustomConstructor' IDL.
2011-10-16 David Barr <davidbarr@chromium.org>
Inline CSSPrimitiveValue::isQuirkValue() as non-virtual function
https://bugs.webkit.org/show_bug.cgi?id=64865
Reviewed by Darin Adler.
Based on profiling and patch from:
Tamas Czene <Czene.Tamas@stud.u-szeged.hu>
This is expected to produce a small performance progression.
Additional memory overhead is avoided by using spare bits.
CSSQuirkPrimitiveValue is removed as it becomes just a factory.
* GNUmakefile.list.am:
* WebCore.gypi:
* WebCore.order:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValidPrimitive):
* css/CSSParserValues.cpp:
(WebCore::CSSParserValue::createCSSValue):
* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
* css/CSSPrimitiveValue.h:
(WebCore::CSSPrimitiveValue::createAllowingMarginQuirk):
Moved from CSSQuirkPrimitiveValue::create.
(WebCore::CSSPrimitiveValue::isQuirkValue):
* css/CSSQuirkPrimitiveValue.h: Removed.
* css/SVGCSSParser.cpp:
(WebCore::CSSParser::parseSVGValue):
2011-10-16 Kentaro Hara <haraken@chromium.org>
Generate XMLHttpRequest constructor for JSC by [Constructor] IDL
https://bugs.webkit.org/show_bug.cgi?id=70208
Reviewed by Adam Barth.
This patch generates an XMLHttpRequest constructor for JSC by [Constructor] IDL,
but V8 is still using a custom constructor since the V8 constructor requires a special logic.
Tests: fast/dom/global-constructors.html
fast/dom/XMLHttpRequest-constants.html
fast/dom/xmlhttprequest-constructor-in-detached-document.html
http/tests/security/cookies/xmlhttprequest.html
* bindings/js/JSXMLHttpRequestCustom.cpp: Removed an XMLHttpRequest custom constructor.
* bindings/scripts/CodeGeneratorV8.pm: Currently, CodeGeneratorV8.pm generates constructor code whenever [Constructor] is specified, even if [V8CustomConstructor] is specified. This is wrong. This patch fixes the condition where the constructor code is generated.
* bindings/scripts/test/V8/V8TestObj.cpp: Updated a run-binding-tests result.
* xml/XMLHttpRequest.h: Added a necessary header.
* xml/XMLHttpRequest.idl: V8 is still using a custom constructor.
2011-10-16 Kentaro Hara <haraken@chromium.org>
Generate XSLTProcessor constructor for JSC by [Constructor] IDL.
https://bugs.webkit.org/show_bug.cgi?id=70206
Reviewed by Adam Barth.
Tests: fast/xsl/xslt-processor.html
fast/xsl/default-html.html
fast/dom/global-constructors.html
* bindings/js/JSXSLTProcessorCustom.cpp: Removed a custom constructor.
* xml/XSLTProcessor.idl: Removed 'JSCustomConstructor'.
2011-10-16 Kentaro Hara <haraken@chromium.org>
Support [Constructor] IDL for JSC.
https://bugs.webkit.org/show_bug.cgi?id=70101
Reviewed by Adam Barth.
The spec for [Constructor] IDL is here: http://www.w3.org/TR/WebIDL/#Constructor
This patch introduced [Constructor] IDL for JSC. This patch also added
[ConstructorRaisesException] for JSC. If [ConstructorRaisesException] is specified,
a placeholder for ExceptionCode is passed to XXX::create(), like XXX::create(..., ec).
Notes:
- We do not yet support constructor overloading.
- We do not yet support [Optional] without CallWithDefaultValue for constructor arguments.
Tests: Source/WebCore/bindings/scripts/test/TestInterface.idl
Source/WebCore/bindings/scripts/test/TestObj.idl
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader): Generates constructor declaration code to a header file, if a given DOM object has constructor.
(GenerateImplementation): Uses GenerateArgumentsCountCheck() and GenerateParametersCheck().
(GenerateArgumentsCountCheck): Splits out of GenerateImplementation() for reuse.
(GenerateParametersCheck): Splits out of GenerateImplementation() for reuse.
(GenerateConstructorDefinition): Generates constructor definition code.
* bindings/scripts/test/JS/JSTestInterface.cpp: Updated the run-binding-tests results.
(WebCore::JSTestInterfaceConstructor::constructJSTestInterface):
* bindings/scripts/test/JS/JSTestInterface.h: Ditto.
(WebCore::JSTestInterfaceConstructor::create):
(WebCore::JSTestInterfaceConstructor::createStructure):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp: Ditto.
(WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.h: Ditto.
(WebCore::JSTestMediaQueryListListenerConstructor::create):
(WebCore::JSTestMediaQueryListListenerConstructor::createStructure):
* bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
(WebCore::jsTestObjPrototypeFunctionVoidMethod):
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionIntMethod):
(WebCore::jsTestObjPrototypeFunctionIntMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionObjMethod):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgs):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
(WebCore::jsTestObjPrototypeFunctionSerializedValue):
(WebCore::jsTestObjPrototypeFunctionIdbKey):
(WebCore::jsTestObjPrototypeFunctionOptionsObject):
(WebCore::jsTestObjPrototypeFunctionMethodWithException):
(WebCore::jsTestObjPrototypeFunctionCustomArgsAndException):
(WebCore::jsTestObjPrototypeFunctionAddEventListener):
(WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
(WebCore::jsTestObjPrototypeFunctionWithDynamicFrame):
(WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndArg):
(WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndOptionalArg):
(WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndUserGesture):
(WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndUserGestureASAD):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateVoid):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateObj):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateVoidException):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateObjException):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContext):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg):
(WebCore::jsTestObjPrototypeFunctionConditionalMethod1):
(WebCore::jsTestObjPrototypeFunctionConditionalMethod2):
(WebCore::jsTestObjPrototypeFunctionConditionalMethod3):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
(WebCore::jsTestObjPrototypeFunctionClassMethod):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithOptional):
* bindings/scripts/test/JS/JSTestObj.h: Ditto.
(WebCore::JSTestObjConstructor::create):
(WebCore::JSTestObjConstructor::createStructure):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: Ditto.
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h: Ditto.
(WebCore::JSTestSerializedScriptValueInterfaceConstructor::create):
(WebCore::JSTestSerializedScriptValueInterfaceConstructor::createStructure):
2011-10-16 Dmitry Lomov <dslomov@google.com>
https://bugs.webkit.org/show_bug.cgi?id=70186
Pass MessagePortArray to JSC's SerializedScriptValue::serialize/deserialize.
Reviewed by Oliver Hunt.
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::handlePostMessage):
(WebCore::JSDOMWindow::postMessage):
(WebCore::JSDOMWindow::webkitPostMessage):
* bindings/js/JSDictionary.cpp:
(WebCore::JSDictionary::convertValue):
* bindings/js/JSHistoryCustom.cpp:
(WebCore::JSHistory::pushState):
(WebCore::JSHistory::replaceState):
* bindings/js/JSMessageEventCustom.cpp:
(WebCore::JSMessageEvent::data):
(WebCore::handleInitMessageEvent):
(WebCore::JSMessageEvent::initMessageEvent):
(WebCore::JSMessageEvent::webkitInitMessageEvent):
* bindings/js/JSMessagePortCustom.h:
(WebCore::handlePostMessage):
* bindings/js/JSPopStateEventCustom.cpp:
(WebCore::JSPopStateEvent::state):
* bindings/js/ScriptValue.cpp:
(WebCore::ScriptValue::serialize):
(WebCore::ScriptValue::deserialize):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::deserialize):
* bindings/js/SerializedScriptValue.h:
2011-10-16 Dan Bernstein <mitz@apple.com>
REGRESSION (r96620): Float-avoiding block positioned incorrectly in right-to-left block
https://bugs.webkit.org/show_bug.cgi?id=70197
Reviewed by Dave Kilzer.
Test: fast/block/float/avoidance-rtl.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeStartPositionDeltaForChildAvoidingFloats): Changed
logicalLeftOffsetForContent() to startOffsetForContent() to get the right value in the
right-to-left case.
2011-10-16 Adam Barth <abarth@webkit.org>
Always enable ENABLE(DOM_STORAGE)
https://bugs.webkit.org/show_bug.cgi?id=70189
Reviewed by Eric Seidel.
As discussed on webkit-dev, we are reducing the complexity of WebKit by
removing unnecessary configuration options. DOMStorage is not a core
part of the web platform. It should always be enabled.
* CMakeLists.txt:
* Configurations/FeatureDefines.xcconfig:
* GNUmakefile.am:
* GNUmakefile.list.am:
* UseJSC.cmake:
* WebCore.exp.in:
* WebCore.pro:
* bindings/js/JSEventCustom.cpp:
* bindings/js/JSInjectedScriptHostCustom.cpp:
* bindings/js/JSStorageCustom.cpp:
* bindings/v8/custom/V8EventCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
(WebCore::V8InjectedScriptHost::storageIdCallback):
* bindings/v8/custom/V8StorageCustom.cpp:
* dom/Document.cpp:
(WebCore::Document::createEvent):
* dom/Event.cpp:
(WebCore::Event::isStorageEvent):
* dom/Event.h:
* dom/Node.cpp:
* features.pri:
* inspector/InjectedScriptHost.cpp:
(WebCore::InjectedScriptHost::InjectedScriptHost):
(WebCore::InjectedScriptHost::disconnect):
(WebCore::InjectedScriptHost::storageIdImpl):
* inspector/InjectedScriptHost.h:
(WebCore::InjectedScriptHost::init):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::connectFrontend):
(WebCore::InspectorController::disconnectFrontend):
(WebCore::InspectorController::restoreInspectorStateFromCookie):
* inspector/InspectorController.h:
* inspector/InspectorDOMStorageAgent.cpp:
* inspector/InspectorDOMStorageResource.cpp:
* inspector/InspectorDOMStorageResource.h:
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
(WebCore::InspectorInstrumentation::didUseDOMStorageImpl):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::didUseDOMStorage):
* inspector/InstrumentingAgents.h:
(WebCore::InstrumentingAgents::InstrumentingAgents):
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
(WebCore::WorkerInspectorController::connectFrontend):
* inspector/generate-inspector-idl:
* page/Chrome.cpp:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::~DOMWindow):
(WebCore::DOMWindow::clear):
(WebCore::DOMWindow::localStorage):
* page/DOMWindow.h:
* page/DOMWindow.idl:
* page/Navigator.cpp:
(WebCore::Navigator::getStorageUpdates):
* page/Navigator.h:
* page/Navigator.idl:
* page/Page.cpp:
* page/Page.h:
* page/PageGroup.cpp:
(WebCore::PageGroup::closeLocalStorage):
* page/PageGroup.h:
* page/Settings.cpp:
(WebCore::Settings::Settings):
(WebCore::Settings::setSessionStorageQuota):
* page/Settings.h:
(WebCore::Settings::sessionStorageQuota):
* storage/LocalStorageTask.cpp:
* storage/LocalStorageTask.h:
* storage/LocalStorageThread.cpp:
* storage/LocalStorageThread.h:
* storage/Storage.cpp:
* storage/Storage.h:
* storage/Storage.idl:
* storage/StorageArea.h:
* storage/StorageAreaImpl.cpp:
* storage/StorageAreaImpl.h:
* storage/StorageAreaSync.cpp:
(WebCore::StorageAreaSync::scheduleSync):
* storage/StorageAreaSync.h:
* storage/StorageEvent.cpp:
* storage/StorageEvent.h:
* storage/StorageEvent.idl:
* storage/StorageEventDispatcher.cpp:
* storage/StorageEventDispatcher.h:
* storage/StorageMap.cpp:
* storage/StorageMap.h:
* storage/StorageNamespace.cpp:
* storage/StorageNamespace.h:
* storage/StorageNamespaceImpl.cpp:
* storage/StorageNamespaceImpl.h:
* storage/StorageSyncManager.cpp:
(WebCore::StorageSyncManager::scheduleDeleteEmptyDatabase):
* storage/StorageSyncManager.h:
* storage/StorageTracker.cpp:
* storage/StorageTracker.h:
2011-10-15 Adam Barth <abarth@webkit.org>
Rename ENABLE(SKIA_TEXT) to USE(SKIA_TEXT)
https://bugs.webkit.org/show_bug.cgi?id=70191
Reviewed by Daniel Bates.
SKIA_TEXT is not a WebKit feature. It's a macro that determines
whether we use a feature of the underly library (Skia).
* platform/graphics/chromium/FontChromiumWin.cpp:
(WebCore::Font::drawComplexText):
* platform/graphics/chromium/UniscribeHelper.cpp:
(WebCore::UniscribeHelper::draw):
* platform/graphics/skia/PlatformContextSkia.cpp:
(WebCore::PlatformContextSkia::isNativeFontRenderingAllowed):
* platform/graphics/skia/PlatformContextSkia.h:
* platform/graphics/skia/SkiaFontWin.cpp:
* platform/graphics/skia/SkiaFontWin.h:
2011-10-15 Eric Carlson <eric.carlson@apple.com>
Make VIDEO_TRACK compile with warnings as errors enabled
https://bugs.webkit.org/show_bug.cgi?id=70188
Reviewed by Filip Pizlo.
No new tests, no functionality changed.
* html/TextTrackCueList.h: Fix an include.
* html/track/CueParser.cpp:
(WebCore::CueParser::supportsType): Remove unused param.
* html/track/CueParser.h:
(WebCore::CueParserClient::~CueParserClient): Add virtual destructor.
* html/track/CueParserPrivate.h:
(WebCore::CueParserPrivateClient::~CueParserPrivateClient): Ditto.
* loader/CueLoader.h:
(WebCore::CueLoaderClient::~CueLoaderClient): Ditto.
(WebCore::CueLoader::~CueLoader): Ditto.
2011-10-15 Adam Barth <abarth@webkit.org>
Rename ENABLE(TILED_BACKING_STORE) to USE(TILED_BACKING_STORE)
https://bugs.webkit.org/show_bug.cgi?id=70194
Reviewed by Daniel Bates.
TILED_BACKING_STORE isn't a web platform feature. It's an
implementation strategy for WebKit that's used by some ports
and not by others.
* features.pri:
* loader/EmptyClients.h:
* page/Chrome.cpp:
* page/Chrome.h:
* page/ChromeClient.h:
* page/Frame.cpp:
(WebCore::Frame::Frame):
(WebCore::Frame::setView):
* page/Frame.h:
* page/FrameView.cpp:
(WebCore::FrameView::repaintContentRectangle):
(WebCore::FrameView::doDeferredRepaints):
* page/Settings.cpp:
(WebCore::Settings::setTiledBackingStoreEnabled):
* platform/HostWindow.h:
* platform/ScrollView.cpp:
(WebCore::ScrollView::setScrollPosition):
* platform/graphics/Tile.h:
* platform/graphics/TiledBackingStore.cpp:
* platform/graphics/TiledBackingStore.h:
* platform/graphics/TiledBackingStoreBackend.h:
* platform/graphics/TiledBackingStoreClient.h:
* platform/graphics/qt/GraphicsLayerQt.cpp:
(WebCore::GraphicsLayerQtImpl::GraphicsLayerQtImpl):
(WebCore::GraphicsLayerQtImpl::~GraphicsLayerQtImpl):
(WebCore::GraphicsLayerQtImpl::recache):
(WebCore::GraphicsLayerQtImpl::paint):
* platform/graphics/qt/TileQt.cpp:
* platform/graphics/qt/TileQt.h:
* platform/graphics/texmap/TextureMapperNode.cpp:
(WebCore::TextureMapperNode::computeTiles):
(WebCore::TextureMapperNode::renderContent):
(WebCore::TextureMapperNode::paintSelf):
(WebCore::TextureMapperNode::syncCompositingStateSelf):
* platform/graphics/texmap/TextureMapperNode.h:
(WebCore::TextureMapperNode::State::State):
2011-10-15 Adam Barth <abarth@webkit.org>
Remove the last remnant of WBXML
https://bugs.webkit.org/show_bug.cgi?id=70187
Reviewed by Daniel Bates.
The bulk of the WBXML code was removed in 2009, but we missed one block.
* platform/wince/MIMETypeRegistryWinCE.cpp:
(WebCore::initMIMETypeEntensionMap):
2011-10-15 Darin Adler <darin@apple.com>
REGRESSION(r97533): fast/forms/select-script-onchange.html failed after
https://bugs.webkit.org/show_bug.cgi?id=70173
Reviewed by Ryosuke Niwa.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::setValue): Removed unneeded boolean argument
[true for deselect].
(WebCore::HTMLSelectElement::menuListDefaultEventHandler): Added explicit
boolean arguments for all calls to setSelectedIndex to restore pre-r97533
behavior.
(WebCore::HTMLSelectElement::typeAheadFind): Ditto.
(WebCore::HTMLSelectElement::accessKeySetSelectedIndex): Ditto.
* html/HTMLSelectElement.h:
Removed default of true for userDrivenChange. Each caller should pass it
explicitly. Longer term we should use an enum instead of a boolean or find
some other way of avoiding the argument.
(WebCore::HTMLSelectElement::setSelectedIndex):
Pass false for userDrivenChange as the old code did pre-r97533.
2011-10-15 Laszlo Gombos <laszlo.1.gombos@nokia.com>
[Qt] [Symbian] Remove support for the Symbian platform for the QtWebKit port
https://bugs.webkit.org/show_bug.cgi?id=69920
Reviewed by Kenneth Rohde Christiansen.
No new tests as there is no new functionality.
* WebCore.gypi:
* WebCore.pri:
* WebCore.pro:
* bindings/v8/V8GCController.cpp:
(WebCore::V8GCController::checkMemoryUsage):
* config.h:
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::operator int):
* features.pri:
* page/NavigatorBase.cpp:
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
* platform/network/qt/ResourceRequestQt.cpp:
(WebCore::initializeMaximumHTTPConnectionCountPerHost):
* platform/text/qt/TextCodecQt.cpp:
(WebCore::TextCodecQt::decode):
* plugins/PluginDatabase.cpp:
* plugins/PluginPackage.cpp:
(WebCore::PluginPackage::unload):
* plugins/PluginPackage.h:
(WebCore::PluginPackage::version):
* plugins/PluginView.cpp:
(WebCore::PluginView::setFrameRect):
* plugins/PluginView.h:
* plugins/npapi.h:
* plugins/symbian: Removed.
* plugins/symbian/PluginContainerSymbian.cpp: Removed.
* plugins/symbian/PluginContainerSymbian.h: Removed.
* plugins/symbian/PluginDatabaseSymbian.cpp: Removed.
* plugins/symbian/PluginPackageSymbian.cpp: Removed.
* plugins/symbian/PluginViewSymbian.cpp: Removed.
* plugins/symbian/npinterface.h: Removed.
2011-10-08 Robert Hogan <robert@webkit.org>
CSS 2.1 failure: height-width-table-001.htm
https://bugs.webkit.org/show_bug.cgi?id=69709
Reviewed by Simon Fraser.
CSS 2.1 expects CSS table elements to treat fixed height/width as
excluding table borders, but HTML table elements to treat fixed height/width as
including them.
See http://lists.w3.org/Archives/Public/www-style/2011Jan/0178.html
http://lists.w3.org/Archives/Public/public-css-testsuite/2011Oct/0005.html
It looks like some clarification is pending in the specs, but the new behaviour
lets WebKit pass the following tests in the suite CSS and also match FF:
height-width-table-001.htm
height-width-inline-table-001.htm
abspos-containing-block-initial-004d.htm
* rendering/RenderTable.cpp:
(WebCore::RenderTable::computeLogicalWidth):
(WebCore::RenderTable::layout):
2011-10-15 Darin Adler <darin@apple.com>
Make toHTMLElement fail to compile if you try to use it on an HTMLElement*
https://bugs.webkit.org/show_bug.cgi?id=70164
Reviewed by Adam Barth.
Refactoring covered by existing tests.
* bindings/js/JSHTMLFrameSetElementCustom.cpp:
(WebCore::JSHTMLFrameSetElement::nameGetter): Removed unneeded casts and
some unneeded local variables as well. Changed the name of the local variable
for the HTMLFrameElement to frameElement to avoid confusion with the Frame.
* dom/Document.cpp:
(WebCore::Document::openSearchDescriptionURL): Removed unneeded HTMLElement
check; we can call hasTagName directly on a Node and that takes care of
checking both that it's an HTMLElement and checking the tag name.
* dom/MicroDataItemList.cpp:
(WebCore::MicroDataItemList::nodeMatches): Use toHTMLElement instead of
a cast. Also changed hasAttribute calls to fastHasAttribute and getAttribute
calls to fastGetAttribute since these are neither style attributes nor SVG
animatables.
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyInlineStyleToPushDown): Use toHTMLElement.
(WebCore::ApplyStyleCommand::addInlineStyleIfNeeded): Ditto.
* editing/DeleteButtonController.cpp:
(WebCore::DeleteButtonController::show): Removed unneeded toHTMLElement call.
* html/HTMLElement.cpp:
(WebCore::HTMLElement::setOuterHTML): Use toHTMLElement.
* html/HTMLElement.h: Added toHTMLElement overload to catch calls when the
pointer is already HTMLElement* or a pointer to a class derived from it.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::recalcListItems): Use toHTMLElement.
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::innerTextElement): Use toHTMLElement.
2011-10-15 Antoine Labour <piman@chromium.org>
Add WebAcceleratedContentLayer backed by a texture to support accelerated content hosting
https://bugs.webkit.org/show_bug.cgi?id=70084
Reviewed by James Robinson.
Covered by existing compositing/ tests
* platform/graphics/chromium/LayerChromium.h:
* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::LayerRendererChromium::pluginLayerProgramFlip):
(WebCore::LayerRendererChromium::cleanupSharedObjects):
* platform/graphics/chromium/LayerRendererChromium.h:
* platform/graphics/chromium/PluginLayerChromium.cpp:
(WebCore::PluginLayerChromium::PluginLayerChromium):
(WebCore::PluginLayerChromium::setTextureId):
(WebCore::PluginLayerChromium::setFlipped):
(WebCore::PluginLayerChromium::pushPropertiesTo):
* platform/graphics/chromium/PluginLayerChromium.h:
(WebCore::PluginLayerChromium::flipped):
* platform/graphics/chromium/cc/CCPluginLayerImpl.cpp:
(WebCore::CCPluginLayerImpl::CCPluginLayerImpl):
(WebCore::CCPluginLayerImpl::draw):
* platform/graphics/chromium/cc/CCPluginLayerImpl.h:
(WebCore::CCPluginLayerImpl::setFlipped):
2011-10-15 Michael Nordman <michaeln@google.com>
[Chromium] Some WebSQLDatabase in worker bug fixes.
https://bugs.webkit.org/show_bug.cgi?id=70071
- Test for a NULL webView WebWorkerClientImpl.
- Avoid altering Database instance lifetimes during WorkerThread::stop().
Existing tests coverage applies.
Reviewed by David Levin.
* storage/chromium/DatabaseTrackerChromium.cpp:
(WebCore::DatabaseTracker::interruptAllDatabasesForContext):
2011-10-14 Adam Barth <abarth@webkit.org>
Update expected results.
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjInternal::serializedValueCallback):
2011-10-14 Ryosuke Niwa <rniwa@webkit.org>
GTK build fix after r97533.
* accessibility/gtk/AXObjectCacheAtk.cpp:
(WebCore::notifyChildrenSelectionChange):
* accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
(optionFromSelection):
(webkit_accessible_selection_get_selection_count):
2011-10-14 David Kilzer <ddkilzer@apple.com>
<http://webkit.org/b/70158> Fix clang compiler warnings
Reviewed by Darin Adler.
* dom/ViewportArguments.cpp:
(WebCore::computeViewportAttributes): Use std::max<float>()
instead of std::max().
2011-10-14 Mark Hahnenberg <mhahnenberg@apple.com>
Rename getOwnPropertySlot to getOwnPropertySlotVirtual
https://bugs.webkit.org/show_bug.cgi?id=69810
Reviewed by Geoffrey Garen.
No new tests.
Renamed the virtual version of getOwnPropertySlot to getOwnPropertySlotVirtual
in preparation for when we add the static getOwnPropertySlot to the MethodTable
in ClassInfo.
Also added a few static getOwnPropertySlot functions where they had been overlooked
before (especially in CodeGeneratorJS.pm).
* WebCore.exp.in:
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::getOwnPropertySlotVirtual):
(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::DialogHandler::returnValue):
* bindings/js/JSDOMWindowShell.cpp:
(WebCore::JSDOMWindowShell::getOwnPropertySlotVirtual):
(WebCore::JSDOMWindowShell::getOwnPropertySlot):
* bindings/js/JSDOMWindowShell.h:
* bindings/js/JSWorkerContextCustom.cpp:
(WebCore::JSWorkerContext::getOwnPropertySlotDelegate):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::getSparseIndex):
(WebCore::CloneSerializer::getProperty):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateGetOwnPropertySlotBody):
(GenerateHeader):
(GenerateImplementation):
(GenerateConstructorDeclaration):
(GenerateConstructorDefinition):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfaceConstructor::getOwnPropertySlotVirtual):
(WebCore::JSTestInterfaceConstructor::getOwnPropertySlot):
(WebCore::JSTestInterface::getOwnPropertySlotVirtual):
(WebCore::JSTestInterface::getOwnPropertySlot):
* bindings/scripts/test/JS/JSTestInterface.h:
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::JSTestMediaQueryListListenerConstructor::getOwnPropertySlotVirtual):
(WebCore::JSTestMediaQueryListListenerConstructor::getOwnPropertySlot):
(WebCore::JSTestMediaQueryListListenerPrototype::getOwnPropertySlotVirtual):
(WebCore::JSTestMediaQueryListListenerPrototype::getOwnPropertySlot):
(WebCore::JSTestMediaQueryListListener::getOwnPropertySlotVirtual):
(WebCore::JSTestMediaQueryListListener::getOwnPropertySlot):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjConstructor::getOwnPropertySlotVirtual):
(WebCore::JSTestObjConstructor::getOwnPropertySlot):
(WebCore::JSTestObjPrototype::getOwnPropertySlotVirtual):
(WebCore::JSTestObjPrototype::getOwnPropertySlot):
(WebCore::JSTestObj::getOwnPropertySlotVirtual):
(WebCore::JSTestObj::getOwnPropertySlot):
* bindings/scripts/test/JS/JSTestObj.h:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::JSTestSerializedScriptValueInterfaceConstructor::getOwnPropertySlotVirtual):
(WebCore::JSTestSerializedScriptValueInterfaceConstructor::getOwnPropertySlot):
(WebCore::JSTestSerializedScriptValueInterface::getOwnPropertySlotVirtual):
(WebCore::JSTestSerializedScriptValueInterface::getOwnPropertySlot):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
* bridge/objc/objc_runtime.h:
* bridge/objc/objc_runtime.mm:
(JSC::Bindings::ObjcFallbackObjectImp::getOwnPropertySlotVirtual):
* bridge/qt/qt_instance.cpp:
(JSC::Bindings::QtInstance::getOwnPropertySlot):
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::QtRuntimeMetaMethod::getOwnPropertySlotVirtual):
(JSC::Bindings::QtRuntimeConnectionMethod::getOwnPropertySlotVirtual):
* bridge/qt/qt_runtime.h:
* bridge/runtime_array.cpp:
(JSC::RuntimeArray::getOwnPropertySlotVirtual):
* bridge/runtime_array.h:
* bridge/runtime_method.cpp:
(JSC::RuntimeMethod::getOwnPropertySlotVirtual):
* bridge/runtime_method.h:
* bridge/runtime_object.cpp:
(JSC::Bindings::RuntimeObject::getOwnPropertySlotVirtual):
* bridge/runtime_object.h:
2011-10-14 Ryosuke Niwa <rniwa@webkit.org>
Windows build fix attempt after r97533.
* html/HTMLSelectElementWin.cpp:
(WebCore::HTMLSelectElement::platformHandleKeydownEvent):
2011-10-14 Darin Adler <darin@apple.com>
Follow up the recent HTMLSelectElement improvements with a little bit more
https://bugs.webkit.org/show_bug.cgi?id=70139
Reviewed by Ryosuke Niwa.
Refactoring, covered by existing tests.
Mostly, this adds a toHTMLSelectElement and uses it wherever possible.
* accessibility/AccessibilityListBox.cpp:
(WebCore::AccessibilityListBox::canSetSelectedChildrenAttribute): Use toHTMLSelectElement.
(WebCore::AccessibilityListBox::addChildren): Ditto. Also removed unneeded toHTMLElement.
* accessibility/AccessibilityMenuListPopup.cpp:
(WebCore::AccessibilityMenuListPopup::addChildren): Ditto.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::isMultiSelectable): Ditto.
(WebCore::AccessibilityRenderObject::stringValue): Removed checks on the type of the
underlying node, since other code already assumes that a menu list renderer is only
created for a select element. Streamlined the code a bit and removed some unneeded
local variables.
* bindings/js/JSHTMLOptionsCollectionCustom.cpp:
(WebCore::JSHTMLOptionsCollection::indexSetter): Use toHTMLSelectElement.
* bindings/js/JSHTMLSelectElementCustom.cpp:
(WebCore::JSHTMLSelectElement::remove): Ditto.
(WebCore::JSHTMLSelectElement::indexSetter): Ditto.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::selectAll): Ditto.
* html/HTMLKeygenElement.cpp:
(WebCore::HTMLKeygenElement::shadowSelect): Ditto.
* html/HTMLOptGroupElement.cpp:
(WebCore::HTMLOptGroupElement::recalcSelectOptions): Ditto.
(WebCore::HTMLOptGroupElement::ownerSelectElement): Ditto.
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::selected): Changed code to call renamed
updateListItemSelectedStates rather than the confusing old name
recalcListItemsIfNeeded.
(WebCore::HTMLOptionElement::childrenChanged): Changed to call
optionElementChildrenChanged rather than calling childrenChanged,
because the children of the select element did not change!
(WebCore::HTMLOptionElement::ownerSelectElement): Use toHTMLSelectElement.
* html/HTMLOptionsCollection.cpp:
(WebCore::HTMLOptionsCollection::add): Use toHTMLSelectElement.
(WebCore::HTMLOptionsCollection::remove): Use toHTMLSelectElement.
(WebCore::HTMLOptionsCollection::selectedIndex): Use toHTMLSelectElement.
(WebCore::HTMLOptionsCollection::setSelectedIndex): Use toHTMLSelectElement.
(WebCore::HTMLOptionsCollection::setLength): Use toHTMLSelectElement.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::setSelectedIndexByUser): Call setSelectedIndex
without the now-unneeded internal suffix.
(WebCore::HTMLSelectElement::parseMappedAttribute): When the code says that
we should "determine selectedness of the items", call updateListItemSelectedStates
rather than the confusingly named recalcListItemsIfNeeded.
(WebCore::HTMLSelectElement::updateListItemSelectedStates): Renamed
recalcListItemsIfNeeded to this, since that's what this function is for.
(WebCore::HTMLSelectElement::optionElementChildrenChanged): Added. Does
the same work as childrenChanged, although it does not call up to the
base class childrenChanged function. Later we might find we can remove
some of the work here, for example it's not clear we should call the
accessibility childrenChanged function.
(WebCore::HTMLSelectElement::nextValidIndex): Changed this to a member function
and made it get the list items itself rather than requiring they be passed in.
(WebCore::HTMLSelectElement::nextSelectableListIndex): Updated for change to
nextValidIndex.
(WebCore::HTMLSelectElement::previousSelectableListIndex): Ditto.
(WebCore::HTMLSelectElement::firstSelectableListIndex): Ditto.
(WebCore::HTMLSelectElement::lastSelectableListIndex): Ditto.
(WebCore::HTMLSelectElement::nextSelectableListIndexPageAway): Ditto.
(WebCore::HTMLSelectElement::listItems): Removed unneeded const_cast, since
recalcListItems is now a const member function. Call recalcListItems by that
name instead of recalcListItemsInternal.
(WebCore::HTMLSelectElement::recalcListItems): Renamed from recalcListItemsInternal
and made this a const member function. The data members that this needs to modify
are now mutable.
(WebCore::HTMLSelectElement::setSelectedIndex): Renamed from setSelectedIndexInternal.
Changed call to updateValidity to instead call setNeedsValidityCheck, since both
do the same thing.
(WebCore::HTMLSelectElement::parseMultipleAttribute): Ditto.
(WebCore::HTMLSelectElement::menuListDefaultEventHandler): Updated for change to
nextValidIndex, removed unneeded comparison with zero that's already handled by
casting to an unsigned type, and use setSelectedIndex instead of using
setSelectedIndexInternal since they are both the same thing.
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler): Removed another unneeded
comparision with zero that's handled by casting to an unsigned type.
(WebCore::HTMLSelectElement::lastSelectedListIndex): Use size_t instead of unsigned
for a vector index.
(WebCore::HTMLSelectElement::typeAheadFind): Use setSelectedIndex instead of
setSelectedIndexInternal.
(WebCore::HTMLSelectElement::insertedIntoTree): Removed unneeded explicit boolean
when calling a function that already has a default value of true.
(WebCore::HTMLSelectElement::accessKeySetSelectedIndex): Use setSelectedIndex
instead of setSelectedIndexInternal.
* html/HTMLSelectElement.h: Made childrenChanged private. Added
optionElementChildrenChanged. Renamed recalcListItemsIfNeeded to the clearer
updateListItemSelectedStates. Removed unused listBoxSelectItem. Removed
updateValidity after changing all callers to instead call setNeedsValidityCheck.
Made canSelectAll and selectAll non-virtual. Removed recalcListItemsInternal
since it's the same thing as recalcListItems now. Renamed setSelectedIndexInternal
to setSelectedIndex since it's the same function, just with a few arguments we
don't want to allow outside callers to pass. Changed nextValidIndex into a
non-static member function. Made m_listItems and m_shouldRecalcListItems mutable.
Added a toHTMLSelectElement function, modeled on the toElement function.
* html/ValidityState.cpp:
(WebCore::ValidityState::valueMissing): Use toHTMLSelectElement.
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::updateFromElement): Ditto.
(WebCore::RenderListBox::scrollToRevealSelection): Ditto.
(WebCore::RenderListBox::size): Ditto.
(WebCore::RenderListBox::numItems): Ditto.
(WebCore::RenderListBox::addFocusRingRects): Ditto.
(WebCore::RenderListBox::paintItemForeground): Ditto.
(WebCore::RenderListBox::paintItemBackground): Ditto.
(WebCore::RenderListBox::panScroll): Ditto.
(WebCore::RenderListBox::autoscroll): Ditto.
(WebCore::RenderListBox::stopAutoscroll): Ditto.
(WebCore::RenderListBox::valueChanged): Ditto.
(WebCore::RenderListBox::nodeAtPoint): Ditto.
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::updateOptionsWidth): Ditto.
(WebCore::RenderMenuList::updateFromElement): Ditto.
(WebCore::RenderMenuList::setTextFromOption): Ditto.
(WebCore::RenderMenuList::showPopup): Ditto.
(WebCore::RenderMenuList::valueChanged): Ditto.
(WebCore::RenderMenuList::listBoxSelectItem): Ditto.
(WebCore::RenderMenuList::multiple): Ditto.
(WebCore::RenderMenuList::didSetSelectedIndex): Ditto.
(WebCore::RenderMenuList::didUpdateActiveOption): Ditto.
(WebCore::RenderMenuList::itemText): Ditto.
(WebCore::RenderMenuList::itemAccessibilityText): Ditto.
(WebCore::RenderMenuList::itemToolTip): Ditto.
(WebCore::RenderMenuList::itemIsEnabled): Ditto. Also use the
disabled function instead of the virtual isEnabledFormControl
function to check if the optgroup is enabled.
(WebCore::RenderMenuList::itemStyle): Ditto.
(WebCore::RenderMenuList::itemBackgroundColor): Ditto.
(WebCore::RenderMenuList::listSize): Ditto.
(WebCore::RenderMenuList::selectedIndex): Ditto.
(WebCore::RenderMenuList::itemIsSeparator): Ditto.
(WebCore::RenderMenuList::itemIsLabel): Ditto.
(WebCore::RenderMenuList::itemIsSelected): Ditto.
(WebCore::RenderMenuList::setTextFromItem): Ditto.
2011-10-14 Mark Hahnenberg <mhahnenberg@apple.com>
Rename virtual put to putVirtual
https://bugs.webkit.org/show_bug.cgi?id=69851
Reviewed by Darin Adler.
No new tests.
Renamed virtual versions of put to putVirtual in prepration for
adding the static put to the MethodTable in ClassInfo since the
compiler gets mad if the virtual and static versions have the same
name.
* WebCore.exp.in:
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::putVirtual):
* bindings/js/JSDOMWindowShell.cpp:
(WebCore::JSDOMWindowShell::putVirtual):
* bindings/js/JSDOMWindowShell.h:
* bindings/js/JSLocationCustom.cpp:
(WebCore::JSLocation::putDelegate):
* bindings/js/JSPluginElementFunctions.cpp:
(WebCore::runtimeObjectCustomPut):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneDeserializer::putProperty):
* bindings/objc/WebScriptObject.mm:
(-[WebScriptObject setValue:forKey:]):
(-[WebScriptObject setWebScriptValueAtIndex:value:]):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObj::putVirtual):
* bindings/scripts/test/JS/JSTestObj.h:
* bridge/NP_jsobject.cpp:
(_NPN_SetProperty):
* bridge/jni/jni_jsobject.mm:
(JavaJSObject::setMember):
(JavaJSObject::setSlot):
* bridge/objc/objc_runtime.h:
* bridge/objc/objc_runtime.mm:
(JSC::Bindings::ObjcFallbackObjectImp::putVirtual):
* bridge/qt/qt_instance.cpp:
(JSC::Bindings::QtInstance::put):
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::convertQVariantToValue):
* bridge/runtime_array.cpp:
(JSC::RuntimeArray::putVirtual):
* bridge/runtime_array.h:
* bridge/runtime_object.cpp:
(JSC::Bindings::RuntimeObject::putVirtual):
* bridge/runtime_object.h:
* bridge/testqtbindings.cpp:
(main):
2011-10-14 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r97519.
http://trac.webkit.org/changeset/97519
https://bugs.webkit.org/show_bug.cgi?id=70156
Broke 79+ tests on bots (Requested by dglazkov on #webkit).
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::getFocusRingOutset):
(WebCore::GraphicsContext::drawFocusRing):
2011-09-28 Robert Hogan <robert@webkit.org>
Replaced elements squeezed when width is specified as percentage inside a table with Auto layout
https://bugs.webkit.org/show_bug.cgi?id=29447
If inserting a 'replaced' element (e.g. image, plugin) in a table cell that is not descendant from
a block with fixed layout then do not squeeze the element, let it use its intrinsic width and height.
Reviewed by David Hyatt.
Test: fast/replaced/table-percent-width.html
* rendering/RenderBox.cpp:
(WebCore::shouldExpandToIntrinsicDimension):
(WebCore::RenderBox::containingBlockReplacedLogicalWidthForContent):
(WebCore::RenderBox::computeReplacedLogicalWidthUsing):
(WebCore::RenderBox::computeReplacedLogicalHeightUsing):
* rendering/RenderBox.h:
2011-10-14 Cary Clark <caryclark@google.com>
[Chromium Skia on Mac] Improve focus ring
https://bugs.webkit.org/show_bug.cgi?id=70124
Reviewed by Eric Seidel.
The focus ring code formerly outset the bounds of
the component rectangles by fractional amounts. Because
the rectangles are SkIRect (integer based), the fractional
outset had no effect.
The equivalent code in GraphicsContextMac.mm computes
the curve radius and rectangle outset with integers, so
the use of floats in Skia's case, besides not working,
is unnecessary.
The Skia code also failed to take the offset into account.
In LayoutTests, the focus rings either have an offset of
0 or 2. The CoreGraphics code increases the ring's rectangles
by the offset, then passes the result to wkDrawFocusRing.
I did not find any documentation about how wkDrawFocusRing
further inflates the focus ring, but empirically I determined
that adding 2 to the offset generated rings with identical
outer diameters.
With these adjustments, the layout tests generate focus rings
in the Skia on Mac case that match the coverage of the
Chromium CG-based platform, in particular, matching:
editing/inserting/editable-inline-element.html
editing/selection/3690703-2.html
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::getFocusRingOutset):
(WebCore::GraphicsContext::drawFocusRing):
2011-10-14 Chang Shu <cshu@webkit.org>
[Qt] Enable fullscreen api on Qt
https://bugs.webkit.org/show_bug.cgi?id=70131
As a result, we have 3 passed tests.
Reviewed by Noam Rosenthal.
* features.pri:
2011-10-14 Beth Dakin <bdakin@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=70148
Should switch to CoreUI version of CorrectionDot, GrammarDot, and SpellingDot
-and corresponding-
<rdar://problem/10208281>
Reviewed by Anders Carlsson.
Use NS*Dot whenever it's available, and fallback to *Dot only when it is not.
* platform/graphics/mac/GraphicsContextMac.mm:
(WebCore::createPatternColor):
(WebCore::GraphicsContext::drawLineForTextChecking):
2011-10-14 Dmitry Lomov <dslomov@google.com>
https://bugs.webkit.org/show_bug.cgi?id=70120
[Chromium] Pass MessagePortArray to SerializedScriptValue::serialize/deserialize.
This patch augments SerializedScriptValue with MessagePortArray* parameter to implement MessagePort
transfer within the message in the future.
Reviewed by David Levin.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateParametersCheck):
* bindings/v8/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::SerializedScriptValue):
(WebCore::SerializedScriptValue::deserialize):
* bindings/v8/SerializedScriptValue.h:
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::handlePostMessageCallback):
(WebCore::V8DOMWindow::postMessageCallback):
(WebCore::V8DOMWindow::webkitPostMessageCallback):
* bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
(WebCore::handlePostMessageCallback):
(WebCore::V8DedicatedWorkerContext::postMessageCallback):
(WebCore::V8DedicatedWorkerContext::webkitPostMessageCallback):
* bindings/v8/custom/V8HistoryCustom.cpp:
(WebCore::V8History::pushStateCallback):
(WebCore::V8History::replaceStateCallback):
* bindings/v8/custom/V8MessageEventCustom.cpp:
(WebCore::V8MessageEvent::dataAccessorGetter):
* bindings/v8/custom/V8MessagePortCustom.cpp:
(WebCore::handlePostMessageCallback):
(WebCore::V8MessagePort::postMessageCallback):
(WebCore::V8MessagePort::webkitPostMessageCallback):
* bindings/v8/custom/V8WorkerCustom.cpp:
(WebCore::handlePostMessageCallback):
(WebCore::V8Worker::postMessageCallback):
(WebCore::V8Worker::webkitPostMessageCallback):
* workers/Worker.idl:
2011-10-14 Jeff Miller <jeffm@apple.com>
InjectedBundleHitTestResult::imageRect() should return rect in WKView coordinates
https://bugs.webkit.org/show_bug.cgi?id=69963
Add infrastructure to convert from any frame view's coordinate system to the
root view's coordinate system.
Reviewed by Simon Fraser.
No new tests (yet), this is covered by <https://bugs.webkit.org/show_bug.cgi?id=70136>.
* WebCore.exp.in: Exported WebCore::ScrollView::contentsToRootView(), used by InjectedBundleHitTestResult.cpp.
* platform/ScrollView.cpp:
(WebCore::ScrollView::rootViewToContents): Added (both point and rect versions).
(WebCore::ScrollView::contentsToRootView): Ditto.
* platform/ScrollView.h: Added member functions to convert to/from root view coordinates.
* platform/Widget.cpp:
(WebCore::Widget::convertFromRootView): Added (both point and rect versions).
(WebCore::Widget::convertToRootView): Ditto.
* platform/Widget.h: Added member functions to convert to/from root view coordinates.
2011-10-14 Andreas Kling <kling@webkit.org>
CSSParser: Remove StyleBase usage.
https://bugs.webkit.org/show_bug.cgi?id=70150
Reviewed by Darin Adler.
Split CSSParser::m_parsedStyleObjects into two vectors of
CSSRules and MediaLists.
* css/CSSParser.cpp:
(WebCore::CSSParser::createMediaList):
(WebCore::CSSParser::createCharsetRule):
(WebCore::CSSParser::createImportRule):
(WebCore::CSSParser::createMediaRule):
(WebCore::CSSParser::createKeyframesRule):
(WebCore::CSSParser::createStyleRule):
(WebCore::CSSParser::createFontFaceRule):
(WebCore::CSSParser::createPageRule):
(WebCore::CSSParser::createKeyframeRule):
* css/CSSParser.h:
2011-10-14 Adam Barth <abarth@webkit.org>
canvas getImageData should explain why it throws SECURITY_ERR
https://bugs.webkit.org/show_bug.cgi?id=70088
Reviewed by Darin Adler.
Log as message to the console when getImageData fails because the
canvas is tainted.
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::getImageData):
2011-10-14 Andreas Kling <kling@webkit.org>
Inspector: Remove StyleBase usage.
https://bugs.webkit.org/show_bug.cgi?id=70138
Reviewed by Antti Koivisto.
Be fully specific about whether we're operating on a CSSRule or
a CSSStyleSheet.
No behavior change expected, this merely is a cleanup.
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::parentStyleSheet):
(WebCore::InspectorCSSAgent::asCSSStyleRule):
* inspector/InspectorCSSAgent.h:
* inspector/InspectorStyleSheet.cpp:
(WebCore::asCSSRuleList):
2011-10-14 Mark Hahnenberg <mhahnenberg@apple.com>
Rename virtual deleteProperty to deletePropertyVirtual
https://bugs.webkit.org/show_bug.cgi?id=69884
Reviewed by Darin Adler.
No new tests.
Renamed virtual versions of deleteProperty to deletePropertyVirtual in prepration for
adding the static deleteProperty to the MethodTable in ClassInfo since the
compiler gets mad if the virtual and static versions have the same name.
* WebCore.exp.in:
* bindings/js/JSDOMStringMapCustom.cpp:
(WebCore::JSDOMStringMap::deletePropertyVirtual):
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::deletePropertyVirtual):
* bindings/js/JSDOMWindowShell.cpp:
(WebCore::JSDOMWindowShell::deletePropertyVirtual):
* bindings/js/JSDOMWindowShell.h:
* bindings/js/JSHistoryCustom.cpp:
(WebCore::JSHistory::deletePropertyVirtual):
* bindings/js/JSLocationCustom.cpp:
(WebCore::JSLocation::deletePropertyVirtual):
* bindings/js/JSStorageCustom.cpp:
(WebCore::JSStorage::deletePropertyVirtual):
* bindings/js/ScriptObject.cpp:
(WebCore::ScriptGlobalObject::remove):
* bindings/objc/WebScriptObject.mm:
(-[WebScriptObject removeWebScriptKey:]):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
* bridge/NP_jsobject.cpp:
(_NPN_RemoveProperty):
* bridge/jni/jni_jsobject.mm:
(JavaJSObject::removeMember):
* bridge/objc/objc_runtime.h:
* bridge/objc/objc_runtime.mm:
(JSC::Bindings::ObjcFallbackObjectImp::deletePropertyVirtual):
* bridge/runtime_array.cpp:
(JSC::RuntimeArray::deletePropertyVirtual):
* bridge/runtime_array.h:
* bridge/runtime_object.cpp:
(JSC::Bindings::RuntimeObject::deletePropertyVirtual):
* bridge/runtime_object.h:
2011-10-14 Simon Fraser <simon.fraser@apple.com>
Web Inspector: WebProcess crashes hard when inspecting elements with border-images applied
https://bugs.webkit.org/show_bug.cgi?id=70105
Reviewed by Dave Hyatt.
Fix three different crashes related to getting computed style for border-image.
In both valueForNinePieceImageSlice() and valueForNinePieceImageQuad(),
assign 'right' to 'left' because we've computed a value for 'right' already.
Otherwise this would leave 'right' as null, causing later crashes in cssText().
In mapNinePieceImage(), borderImage->imageValue() can be null for a border-image
shorthand that is missing the image value.
Test: fast/css/getComputedStyle/computed-style-border-image.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForNinePieceImageSlice):
(WebCore::valueForNinePieceImageQuad):
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::mapNinePieceImage):
2011-10-14 Ryosuke Niwa <rniwa@webkit.org>
Mac build fix after r97497.
* editing/markup.cpp:
(WebCore::isNonTableCellHTMLBlockElement):
2011-10-14 Daniel Cheng <dcheng@chromium.org>
Context-aware HTML paste for Chromium
https://bugs.webkit.org/show_bug.cgi?id=62112
Reviewed by Ryosuke Niwa.
Add createFragmentFromMarkupWithContext which understands enough about DOM structure to
retain necessary elements to preserve structure and appearance when extracting a subset of
a DOM tree.
Covered by existing layout tests.
* editing/MarkupAccumulator.h:
* editing/markup.cpp:
(WebCore::isNonTableCellHTMLBlockElement):
(WebCore::isHTMLBlockElement):
(WebCore::ancestorToRetainStructureAndAppearanceForBlock):
(WebCore::ancestorToRetainStructureAndAppearance):
(WebCore::ancestorToRetainStructureAndAppearanceWithNoRenderer):
(WebCore::findNodesSurroundingContext):
(WebCore::trimFragment):
(WebCore::createFragmentFromMarkupWithContext):
* editing/markup.h:
* platform/chromium/ChromiumDataObject.cpp:
(WebCore::ChromiumDataObject::getData):
* platform/chromium/DataTransferItemChromium.cpp:
(WebCore::DataTransferItemChromium::getAsString):
* platform/chromium/PasteboardChromium.cpp:
(WebCore::Pasteboard::documentFragment):
* platform/chromium/PlatformSupport.h:
2011-10-14 Peter Beverloo <peter@chromium.org>
[Chromium] Inherit settings from Chromium's envsetup.sh, address a NDK todo
https://bugs.webkit.org/show_bug.cgi?id=70028
Reviewed by Adam Barth.
* WebCore.gyp/WebCore.gyp:
2011-10-14 Nate Chapin <japhet@chromium.org>
Check CachedResourceClient types with ASSERTs rather
than if statements.
https://bugs.webkit.org/show_bug.cgi?id=70113
Reviewed by Adam Barth.
No new tests, no functionality change.
* loader/cache/CachedCSSStyleSheet.cpp:
* loader/cache/CachedFont.cpp:
* loader/cache/CachedImage.cpp:
* loader/cache/CachedResourceClientWalker.h:
* loader/cache/CachedXSLStyleSheet.cpp:
2011-10-14 Andreas Kling <kling@webkit.org>
Don't assert that CSSRules are CSSRules.
Rubber-stamped by Antti Koivisto.
* css/CSSRule.h:
(WebCore::CSSRule::isRule):
* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::append):
(WebCore::CSSStyleSheet::insert):
2011-10-14 Beth Dakin <bdakin@apple.com>
Attempted Leopard build fix.
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::createCompatibleBuffer):
2011-10-14 Andreas Kling <kling@webkit.org>
CSSStyleSheet should only ever contain CSSRules.
https://bugs.webkit.org/show_bug.cgi?id=70116
Reviewed by Antti Koivisto.
Move child management from the StyleSheet class down into
CSSStyleSheet and XSLStyleSheet. XSLStyleSheet continues to
manage StyleBase objects, while CSSStyleSheet now only contains
CSSRule.
This is enforced at both compile time and runtime with explicit
types and assertions.
* css/CSSRule.h:
(WebCore::CSSRule::isRule):
Promoted to a public method so we can use it in assertions.
* css/CSSRuleList.h:
(WebCore::CSSRuleList::create):
(WebCore::CSSRuleList::styleSheet):
* css/CSSRuleList.cpp:
(WebCore::CSSRuleList::CSSRuleList):
* bindings/js/JSCSSRuleListCustom.cpp:
(WebCore::JSCSSRuleListOwner::isReachableFromOpaqueRoots):
Change backing to a CSSStyleSheet instead of a StyleSheet.
* css/CSSRuleList.cpp:
(WebCore::CSSRuleList::item):
Remove redundant assertions.
* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::isLoading):
(WebCore::CSSStyleSheet::addSubresourceStyleURLs):
* css/CSSStyleSelector.cpp:
(WebCore::RuleSet::addRulesFromSheet):
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::collectStyleSheets):
* page/PageSerializer.cpp:
(WebCore::PageSerializer::serializeCSSStyleSheet):
Use more specific CSSRule* since that's what we get from
CSSStyleSheet::item() now.
* css/StyleSheet.cpp:
(WebCore::StyleSheet::~StyleSheet):
* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::~CSSStyleSheet):
* xml/XSLStyleSheetLibxslt.cpp:
(WebCore::XSLStyleSheet::~XSLStyleSheet):
* xml/XSLStyleSheetQt.cpp:
(WebCore::XSLStyleSheet::~XSLStyleSheet):
Orphaning logic from ~StyleSheet() moved to subclass dtors.
* css/StyleSheet.h:
* css/CSSStyleSheet.h:
(WebCore::CSSStyleSheet::length):
(WebCore::CSSStyleSheet::item):
* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::append):
(WebCore::CSSStyleSheet::insert):
(WebCore::CSSStyleSheet::remove):
Moved from StyleSheet and changed to only accept CSSRules.
* css/StyleSheet.h:
* xml/XSLStyleSheet.h:
(WebCore::XSLStyleSheet::length):
(WebCore::XSLStyleSheet::item):
(WebCore::XSLStyleSheet::append):
(WebCore::XSLStyleSheet::insert):
(WebCore::XSLStyleSheet::remove):
Moved from StyleSheet though still uses StyleBase.
2011-10-14 Yuji Sanachan <sanachan.y@gmail.com>
Include dom/ExceptionCode.h instead of Filesystem APIs headers
to fix compile error when ENABLE_WORKERS=1 and ENABLE_FILE_SYSTEM=0
https://bugs.webkit.org/show_bug.cgi?id=70036
Reviewed by Darin Adler.
* workers/WorkerContext.cpp:
(WebCore::WorkerContext::importScript):
2011-10-14 Darin Adler <darin@apple.com>
Text drawn via -webkit-background-clip:text should be non-blurry with all scaling
techniques
https://bugs.webkit.org/show_bug.cgi?id=68641
Reviewed by Simon Fraser. Committed by Beth Dakin.
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::createCompatibleBuffer): Allocate a buffer based on the
scale
factor of the context.
* platform/graphics/GraphicsContext.h: Added createCompatibleBuffer.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended): Use
createCompatibleBuffer.
2011-10-14 Ryosuke Niwa <rniwa@webkit.org>
Move selectionStartStyle and selectionHasStyle to EditingStyle
https://bugs.webkit.org/show_bug.cgi?id=69882
Reviewed by Enrica Casucci.
Moved selectionHasStyle and selectionStartStyle from Editor to EditingStyle.
Also moved much of code in Editor::selectionStartCSSPropertyValue to method of EditingStyle.
In addition, moved Range::editingStartPosition to htmlediting where it belongs
and renamed it to adjustedSelectionStartForStyleComputation.
* dom/Range.cpp:
* dom/Range.h:
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::triStateOfStyle): Extracted from selectionHasStyle.
(WebCore::EditingStyle::legacyFontSize): Extracted from selectionStartCSSPropertyValue.
(WebCore::EditingStyle::styleAtSelectionStart): Moved from Editor::selectionStartStyle.
* editing/EditingStyle.h:
* editing/Editor.cpp:
(WebCore::Editor::fontForSelection):
(WebCore::Editor::selectionStartHasStyle):
(WebCore::Editor::selectionHasStyle):
(WebCore::Editor::selectionStartCSSPropertyValue):
* editing/Editor.h:
* editing/EditorCommand.cpp:
(WebCore::executeToggleStyleInList):
* editing/htmlediting.cpp:
(WebCore::adjustedSelectionStartForStyleComputation): Moved from Range::editingStartPosition.
* editing/htmlediting.h:
2011-10-14 Ryosuke Niwa <rniwa@webkit.org>
Redundant comparison in AccessibilityObject.cpp updateAXLineStartForVisiblePosition
https://bugs.webkit.org/show_bug.cgi?id=70074
Reviewed by Chris Fleizach.
Removed redundant code.
* accessibility/AccessibilityObject.cpp:
(WebCore::updateAXLineStartForVisiblePosition):
2011-10-12 Ryosuke Niwa <rniwa@webkit.org>
Make the interface of locationAndLengthFromRange and rangeFromLocationAndLength consistent
https://bugs.webkit.org/show_bug.cgi?id=69964
Reviewed by Enrica Casucci.
Extracted the logic to determine the scope element as FrameSelection::rootEditableElementOrDocumentElement
and deployed it in WebKit layer. Made locationAndLengthFromRange take a scope element and renamed it to
getLocationAndLengthFromRange.
* WebCore.exp.in:
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::rootEditableElementOrDocumentElement):
* editing/FrameSelection.h:
* editing/TextIterator.cpp:
(WebCore::TextIterator::getLocationAndLengthFromRange):
* editing/TextIterator.h:
2011-10-13 Arko Saha <arko@motorola.com>
Microdata: Basic implementation of document.getItems() method.
https://bugs.webkit.org/show_bug.cgi?id=68610
Reviewed by Ryosuke Niwa.
Added ENABLE(MICRODATA) feature flag. Implement document.getItems() DOM API.
Spec: http://www.whatwg.org/specs/web-apps/current-work/complete/microdata.html
Tests: fast/dom/MicroData/001.html
fast/dom/MicroData/002.html
fast/dom/MicroData/003.html
fast/dom/MicroData/004.html
fast/dom/MicroData/005.html
fast/dom/MicroData/006.html
fast/dom/MicroData/007.html
fast/dom/MicroData/008.html
fast/dom/MicroData/009.html
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.am:
* GNUmakefile.list.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* dom/Document.cpp:
(WebCore::Document::getItems): Returns NodeList of the element in the Document that
create items, that are not part of other items, and that are of one of the types
given in the argument. If no tokens specified/undefined in the argument, then
return a NodeList containing all top level microdata items.
(WebCore::Document::removeCachedMicroDataItemList): Remove Microdata item node list
from cache.
* dom/Document.h:
* dom/Document.idl: Added getItems() microdata DOM API.
* dom/MicroDataItemList.cpp: Added.
(WebCore::MicroDataItemList::MicroDataItemList):
(WebCore::MicroDataItemList::~MicroDataItemList):
(WebCore::MicroDataItemList::nodeMatches):
* dom/MicroDataItemList.h: Added.
(WebCore::MicroDataItemList::create):
* dom/Node.cpp:
(WebCore::Node::itemTypeAttributeChanged): It is responsible to invalidate the Microdata
item node cache when itemType attribute changes.
(WebCore::NodeListsNodeData::invalidateCachesThatDependOnAttributes):
(WebCore::NodeListsNodeData::invalidateMicrodataItemListCaches): Invalidate Microdata item
list cache.
(WebCore::NodeListsNodeData::isEmpty):
* dom/Node.h:
* dom/NodeRareData.h:
* features.pri:
* html/HTMLAttributeNames.in: Added itemid, itemprop, itemscope, itemtype attributes.
* html/HTMLElement.cpp:
(WebCore::HTMLElement::parseMappedAttribute): Handle itemtype attribute change.
* html/HTMLElement.idl: Added itemid, itemprop, itemscope, itemtypes microdata attributes.
2011-10-14 Andreas Kling <kling@webkit.org>
Stricter management of WebKitCSSKeyframeRules.
https://bugs.webkit.org/show_bug.cgi?id=70109
Reviewed by Antti Koivisto.
Covered by existing tests.
* css/CSSParser.h:
* css/CSSParser.cpp:
(WebCore::CSSParser::parseKeyframeRule):
Return a WebKitCSSKeyframeRule instead of a CSSRule.
* css/CSSRuleList.cpp:
(WebCore::CSSRuleList::deleteRule):
* css/WebKitCSSKeyframesRule.cpp:
(WebCore::WebKitCSSKeyframesRule::deleteRule):
Moved style sheet orphaning logic for @-webkit-keyframe
from CSSRuleList into WebKitCSSKeyframesRule::deleteRule()
since that's the only caller operating on those rules.
* css/WebKitCSSKeyframesRule.cpp:
(WebCore::WebKitCSSKeyframesRule::~WebKitCSSKeyframesRule):
(WebCore::WebKitCSSKeyframesRule::length):
(WebCore::WebKitCSSKeyframesRule::item):
(WebCore::WebKitCSSKeyframesRule::insertRule):
Change isKeyframeRule() checks to assertions since we know
our rules are always WebKitCSSKeyframeRules. Also tidied up.
2011-10-14 Andreas Kling <kling@webkit.org>
Unreviewed, actually remove StyleList.* after r97640.
* css/StyleList.cpp: Removed.
* css/StyleList.h: Removed.
2011-10-14 Andreas Kling <kling@webkit.org>
Merge StyleList into StyleSheet.
https://bugs.webkit.org/show_bug.cgi?id=70100
Reviewed by Antti "printf" Koivisto.
Merge all functionality from StyleList into StyleSheet,
since StyleSheet was the only subclass of StyleList anyway.
Also removed FIXME's about throwing exceptions in CSSRuleList
since they were incorrect. The call sites already handle the
relevant cases.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSCSSRuleListCustom.cpp:
(WebCore::JSCSSRuleListOwner::isReachableFromOpaqueRoots):
* css/CSSRuleList.cpp:
(WebCore::CSSRuleList::CSSRuleList):
(WebCore::CSSRuleList::length):
(WebCore::CSSRuleList::item):
(WebCore::CSSRuleList::deleteRule):
(WebCore::CSSRuleList::append):
(WebCore::CSSRuleList::insertRule):
* css/CSSRuleList.h:
(WebCore::CSSRuleList::create):
(WebCore::CSSRuleList::styleSheet):
* css/StyleList.cpp: Removed.
* css/StyleList.h: Removed.
* css/StyleSheet.cpp:
(WebCore::StyleSheet::StyleSheet):
(WebCore::StyleSheet::append):
(WebCore::StyleSheet::insert):
(WebCore::StyleSheet::remove):
* css/StyleSheet.h:
(WebCore::StyleSheet::length):
(WebCore::StyleSheet::item):
2011-10-14 Mihnea Ovidenie <mihnea@adobe.com>
[CSS Regions] Change -webkit-flow to -webkit-flow-into
https://bugs.webkit.org/show_bug.cgi?id=70014
Reviewed by David Hyatt.
1. -webkit-flow is renamed to -webkit-flow-into
2. -webkit-flow-into takes <ident> instead of strings
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::validFlowName):
(WebCore::CSSParser::parseFlowThread):
* css/CSSPropertyNames.in:
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
2011-10-12 Hans Wennborg <hans@chromium.org>
IndexedDB: Remove SQLite backing store
https://bugs.webkit.org/show_bug.cgi?id=69620
Reviewed by Darin Fisher.
Remove the SQLite backing store implementation; it is not used anymore.
Also remove the maximumSize parameter, it is not used either.
No new functionality, so no new tests.
* GNUmakefile.list.am:
* WebCore.gypi:
* storage/IDBBackingStore.h:
* storage/IDBFactory.cpp:
(WebCore::IDBFactory::getDatabaseNames):
(WebCore::IDBFactory::open):
* storage/IDBFactoryBackendImpl.cpp:
(WebCore::computeFileIdentifier):
(WebCore::computeUniqueIdentifier):
(WebCore::IDBFactoryBackendImpl::getDatabaseNames):
(WebCore::IDBFactoryBackendImpl::open):
(WebCore::IDBFactoryBackendImpl::openBackingStore):
* storage/IDBFactoryBackendImpl.h:
* storage/IDBFactoryBackendInterface.h:
* storage/IDBLevelDBBackingStore.cpp:
(WebCore::IDBLevelDBBackingStore::open):
* storage/IDBLevelDBBackingStore.h:
* storage/IDBSQLiteBackingStore.cpp: Removed.
* storage/IDBSQLiteBackingStore.h: Removed.
2011-10-14 Nikolas Zimmermann <nzimmermann@rim.com>
Not reviewed. Fix mac builds. r97448 broke them.
* WebCore.xcodeproj/project.pbxproj: Set ImageBySizeCache.h role to private.
2011-10-14 Justin Schuh <jschuh@chromium.org>
Clear WebMediaPlayerClientImpl back pointer on destruction
https://bugs.webkit.org/show_bug.cgi?id=69973
Reviewed by James Robinson.
Clear the backpointer and remove the unused m_currentFrame
* platform/graphics/chromium/VideoLayerChromium.cpp:
(WebCore::VideoLayerChromium::VideoLayerChromium):
(WebCore::VideoLayerChromium::cleanupResources):
(WebCore::VideoLayerChromium::updateCompositorResources):
(WebCore::VideoLayerChromium::releaseProvider):
* platform/graphics/chromium/VideoLayerChromium.h:
2011-10-13 Hans Wennborg <hans@chromium.org>
IndexedDB: Make IDBCursor.value() return an IDBAny object
https://bugs.webkit.org/show_bug.cgi?id=70024
Reviewed by Tony Chang.
This is to work around the fact that the V8 bindings mechanism does
eager deserialization of SerializedScriptValue attributes. This means
that the value is fetched from the back-end only once, when the
IDBCursor is first wrapped. When the cursor's value changes, this is
not reflected.
We work around this by making IDBCursor.value() return the
SerializedScriptValue wrapped in an IDBAny object.
* storage/IDBCursor.cpp:
(WebCore::IDBCursor::value):
* storage/IDBCursor.h:
* storage/IDBCursorWithValue.idl:
2011-10-14 Rémi Duraffort <remi.duraffort@st.com>
Fix compilation when the JS Debugger is disabled.
https://bugs.webkit.org/show_bug.cgi?id=70007
Reviewed by Antti Koivisto.
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
* inspector/InspectorRuntimeAgent.cpp:
* inspector/InspectorRuntimeAgent.h:
* inspector/WorkerInspectorController.cpp:
* inspector/WorkerInspectorController.h:
* workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::disconnectFromInspector):
(WebCore::WorkerMessagingProxy::sendMessageToInspector):
2011-10-13 Nikolas Zimmermann <nzimmermann@rim.com>
Prepare SVGImage intrinsic size negotiation: Introduce an IntSize <-> SVGImage cache in CachedImage
https://bugs.webkit.org/show_bug.cgi?id=69416
Reviewed by Antti Koivisto.
Refactor ImageBySizeCache out of CSSImageGeneratorValue as CachedImage wants to use the same type of cache for its purposes.
When introducing the SVGImage intrinsic size negotiation the container size of an SVGImage is dependant on the place where
it gets embedded (eg width/height attributes of host documents <img> force a certain size).
Currently CachedImage only contains a single RefPtr<Image>, which it constructs out of the decoded data.
Multiple RenderObjects share the same CachedImages, when embedding eg. a SVG document in a <html:img> or using it in a background-image for a <div>.
Consider the case where two RenderObjects use the same CachedImage, each with a different container size (200x100 vs 100x200) and the embedded
document contains a viewBox and some arbitary preserveAspectRatio settings. To honour these we have to relayout the document with the desired
size (percentual unit resolving etc, all depend on the RenderSVGRoots size).
With the current design this is hard to realize, w/o requring to relayout the embedded document for each embedder that uses an SVGImage.
This patch introduces a cache right within CachedImage, which manages a map of images to certain sizes, by utilizing the new ImageBySizeCache.
CachedImage::imageForRenderer() takes a RenderObject* parameter, which it uses to look up the last set image container size for a renderer.
Using that size it queries the cache whether it already has an SVGImage for that size, if not it gets created, by creating a whole
new instance of SVGImage, filling it with the already decoded data, and passing on a fixed image container size, which overrides the
size that RenderSVGRoot reports, when computeReplacedLogicalWidth/Height is called and thus laying out the document at the desired size.
This image is then put in the cache for further reusability.
Likewise CachedImage::setContainerSizeForRenderer() now takes a RenderObject* parameter and stores that in the cache with an associated container size.
It requires to touch several files which use CachedImage throughout WebCore/WebKit/WebKit2.
The actual cache is not yet turned on yet, so this is not a functional change so far, as it needs some other changes to SVGImage,
which will come with the master patch in bug 47156.
No new tests yet, as the new cache isn't turned on yet.
* CMakeLists.txt: Add rendering/ImageBySizeCache.* to build.
* GNUmakefile.list.am: Ditto.
* WebCore.gypi: Ditto.
* WebCore.pro: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::accessibilityIsIgnored): Use new CachedImage::imageSizeForRenderer(RenderObject*) method.
* bindings/objc/DOM.mm: Ditto (for CachedImage::image()).
(-[DOMElement image]):
(-[DOMElement _imageTIFFRepresentation]):
* bridge/qt/qt_pixmapruntime.cpp:
(JSC::Bindings::QtPixmapInstance::variantFromObject): Ditto (for CachedImage::image()).
* css/CSSCanvasValue.cpp: s/m_clients/clients()/, which now live in the ImageBySizeCache instead of CSSImageGeneratorValue.
(WebCore::CSSCanvasValue::canvasChanged):
(WebCore::CSSCanvasValue::canvasResized):
(WebCore::CSSCanvasValue::image):
* css/CSSGradientValue.cpp: Ditto.
(WebCore::CSSGradientValue::image):
* css/CSSImageGeneratorValue.cpp: Move the sizes/clients/images cache into a new ImageBySizeCache class, to make it usable for CachedImage as well.
(WebCore::CSSImageGeneratorValue::addClient): Adapt to move.
(WebCore::CSSImageGeneratorValue::removeClient): Ditto.
(WebCore::CSSImageGeneratorValue::getImage): Ditto.
(WebCore::CSSImageGeneratorValue::putImage): Ditto.
* css/CSSImageGeneratorValue.h:
(WebCore::CSSImageGeneratorValue::clients): Forwarded to the ImageBySizeCache.
* editing/DeleteButtonController.cpp:
(WebCore::isDeletableElement): CachedImage::canRender() now takes a RenderObject* parameter.
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::width): Use new CachedImage::imageSizeForRenderer(RenderObject*) method.
(WebCore::HTMLImageElement::height): Ditto.
(WebCore::HTMLImageElement::naturalWidth): Ditto.
(WebCore::HTMLImageElement::naturalHeight): Ditto.
* html/ImageDocument.cpp:
(WebCore::ImageDocumentParser::finish): Ditto.
(WebCore::ImageDocument::scale): Ditto.
(WebCore::ImageDocument::resizeImageToFit): Ditto.
(WebCore::ImageDocument::imageUpdated): Ditto.
(WebCore::ImageDocument::restoreImageSize): Ditto.
(WebCore::ImageDocument::imageFitsInWindow): Ditto.
* html/canvas/CanvasRenderingContext.cpp:
(WebCore::CanvasRenderingContext::wouldTaintOrigin): Use new CachedImage::imageForRenderer(RenderObject*) method.
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::isOriginClean): Ditto.
(WebCore::size): Ditto (for CachedImage::imageSizeForRenderer()).
(WebCore::CanvasRenderingContext2D::drawImage): Ditto.
(WebCore::CanvasRenderingContext2D::createPattern): Ditto.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::texImage2D): Ditto.
(WebCore::WebGLRenderingContext::texSubImage2D): Ditto.
* loader/cache/CachedImage.cpp: Add currently _disabled_ cache for SVGImages. The intrinsic size negotiation will need to use multiple SVGImages
for each requested size (equal to the size of the embedding place for the image) - make it possible to cache these SVGImages, and maintain a cache
for them. The hash code is a 1:1 refactoring from the already present code in CSSImageGeneratorValue, now named 'ImageBySizeCache'.
(WebCore::CachedImage::lookupImageForSize): Looks up an Image from the cache for a given IntSize. Currently turned off.
(WebCore::CachedImage::lookupImageForRenderer): Looks up an Image from the cache for a given renderer. Currently turned off.
(WebCore::CachedImage::lookupOrCreateImageForRenderer): Looks up an Image from the cache or creates a new SVGImage for a given size and caches it, if possible. Currently turned off.
All following changes share this: Don't operate on m_image directly, instead always look up one from the cache for a given size or renderer - if that's not present fallback to m_image.
When an SVGImage is first created by CachedImage::createImage() and stored in m_image, the cache remains empty.
If eg. <img width="30" height="70" src="foo.svg"> is used which implies a container size of 30x70 a new SVGImage is created with the additional information of a 30x70 container size
which is immediately passed to the SVGImage after its creation. This SVGImage is put in the ImageBySizeCache associated with a container size of 30x70.
We now have two SVGImage objects present, one living in CachedImage::m_image, created by createImage() during data decoding, and one living in the ImageBySizeCache
created by lookupOrCreateImageForRenderer() associated with the 30x70 container. The first SVGImage::size() will return a value as defined in the referenced foo.svg,
whereas the SVGImage::size() call of the new SVGImage living in the cache reports 30x70 and renders according to that.
Whenever any method of CachedImage is called with a RenderObject* or IntSize, we can't just operate on m_image anymore but instead have to lookup the right
images for a certain renderer/size from the cache and operate on these. When calling eg. CachedImage::image() with a null renderer, m_image is returned.
When passing with a valid renderer only cache lookups are done if the m_image is actually a SVGImage, otherwhise lookupImageForSize/Renderer will just return the m_image.
There is no logical change induced for non-SVGImage derived images.
CachedImage::image() of course needs a RenderObject* parameter now, to identify which of the images from the cache to use, if the underlying image is a SVGImage.
Luckily these information are already present in StyleCachedImage/StyleImage & friends and only need to be added for some additional methods.
(WebCore::CachedImage::image): FIXME
(WebCore::CachedImage::imageForRenderer): Call lookupOrCreateImageForRenderer() instead of returning m_image, if it's not null. Its a no-op for non SVGImage derived objects.
(WebCore::CachedImage::setContainerSizeForRenderer): For non-SVGImages, just pass on the size to the m_image. For SVGImages, associate the passed in renderer with the IntSize in the cache.
This does NOT create the SVGImage yet, this is delayed until imageForRenderer() is called for a given renderer that wants this size.
(WebCore::CachedImage::imageSize): Don't operate on m_image, ask lookupImageForRenderer() with the incoming renderer.
(WebCore::CachedImage::imageRect): Ditto.
(WebCore::CachedImage::clear): Force clearing the m_svgImageCache.
(WebCore::CachedImage::data): Call m_image->size() instead of imageSize(), to avoid having to pass a null renderer to imageSize() as here no renderer is available yet.
(WebCore::CachedImage::destroyDecodedData): Don't destroy decoded data for SVG images, as m_data needs to be accessable at any time to construct a cloned SVGImage.
In future we don't need this anymore if we make sure multiple SVGImages share the same trees, but that's for a follow-up patch.
(WebCore::CachedImage::decodedSizeChanged): Don't operate on m_image, ask lookupImageForRenderer() with the incoming renderer.
(WebCore::CachedImage::didDraw): Ditto.
(WebCore::CachedImage::shouldPauseAnimation): Ditto.
(WebCore::CachedImage::animationAdvanced): Ditto.
(WebCore::CachedImage::changedInRect): Ditto. (eg. when leaving out this change animated SVG images wouldn't update anymore, as the animation didn't happen on m_image!)
* loader/cache/CachedImage.h: imageForRenderer/canRender/setContainerSizeForRenderer/imageSizeForRenderer now all take a RenderObject* parameter to identifiy the current user of the image.
(WebCore::CachedImage::canRender): Pass on the incoming renderer to imageSizeForRenderer().
* page/DragController.cpp:
(WebCore::getImage): Use new CachedImage::imageForRenderer(RenderObject*) method.
* page/EventHandler.cpp:
(WebCore::EventHandler::selectCursor): Ditto.
* page/PageSerializer.cpp:
(WebCore::PageSerializer::serializeFrame): Ditto.
(WebCore::PageSerializer::addImageToResources): Ditto.
(WebCore::PageSerializer::retrieveResourcesForCSSDeclaration): Ditto.
* page/PageSerializer.h:
* platform/chromium/ClipboardChromium.cpp:
(WebCore::writeImageToDataObject): Ditto.
* platform/chromium/PasteboardChromium.cpp:
(WebCore::Pasteboard::writeImage): Ditto.
* platform/graphics/Image.h:
(WebCore::Image::isSVGImage): Add boolean helper to identify SVGImages, just like isBitmapImage().
* platform/gtk/ClipboardGtk.cpp:
(WebCore::ClipboardGtk::declareAndWriteDragImage): Use new CachedImage::imageForRenderer(RenderObject*) method.
* platform/gtk/PasteboardGtk.cpp:
(WebCore::Pasteboard::writeImage): Ditto.
* platform/mac/HTMLConverter.mm:
(fileWrapperForElement): Ditto.
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::writeImage): Ditto.
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::declareAndWriteDragImage): Ditto.
* platform/qt/PasteboardQt.cpp:
(WebCore::Pasteboard::writeImage): Ditto.
* platform/win/ClipboardWin.cpp:
(WebCore::writeImageToDataObject): Ditto.
* platform/win/PasteboardWin.cpp:
(WebCore::Pasteboard::writeImage): Ditto.
* platform/wince/PasteboardWinCE.cpp:
(WebCore::Pasteboard::writeImage): Ditto.
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::image): Ditto.
* rendering/ImageBySizeCache.cpp: Copied from WebCore/css/CSSImageGeneratorValue.cpp, to preserve history for the original cache code.
(WebCore::ImageBySizeCache::ImageBySizeCache): Straight copy from CSSImageGeneratorValue, renamed to ImageBySizeCache, removing all but the cache relevant code.
(WebCore::ImageBySizeCache::addClient): Ditto.
(WebCore::ImageBySizeCache::removeClient): Ditto.
(WebCore::ImageBySizeCache::getImage): Ditto.
(WebCore::ImageBySizeCache::putImage): Ditto.
(WebCore::ImageBySizeCache::clear): New function, that clears the cache, introduced for the needs of CachedImage.
(WebCore::ImageBySizeCache::imageForSize): New function to query an Image* for a given IntSize, introduced for the needs of CachedImage.
(WebCore::ImageBySizeCache::sizeForClient): New function to query an IntSize for a given renderer.
* rendering/ImageBySizeCache.h: Copied from WebCore/css/CSSImageGeneratorValue.h.
(WebCore::ImageBySizeCache::clients):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::paintFillLayer): CachedImage::canRender() now takes a RenderObject* parameter.
(WebCore::InlineFlowBox::paintBoxDecorations): Ditto.
(WebCore::InlineFlowBox::paintMask): Ditto.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintMaskImages): Ditto.
(WebCore::RenderBox::repaintLayerRectsForImage): Ditto.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended): Ditto.
(WebCore::RenderBoxModelObject::calculateFillTileSize): Ditto (for CachedImage::setContainerSizeForRenderer()).
(WebCore::RenderBoxModelObject::paintNinePieceImage): Ditto.
* rendering/RenderImage.cpp:
(WebCore::RenderImage::imageSizeForError): Use new CachedImage::imageForRenderer(RenderObject*) method.
(WebCore::RenderImage::setImageSizeForAltText): Ditto.
(WebCore::RenderImage::computeReplacedLogicalWidth): FIXME
* rendering/RenderImageResource.cpp:
(WebCore::RenderImageResource::setContainerSizeForRenderer): Pass on m_renderer to CachedImage::setContainerSizeForRenderer().
* rendering/RenderImageResource.h: Remove constness from setContainerSizeForRenderer.
(WebCore::RenderImageResource::image): Pass on m_renderer to CachedImage::image().
(WebCore::RenderImageResource::imageSize): Pass on m_renderer to CachedImage::imageSizeForRenderer().
* rendering/RenderImageResourceStyleImage.h:
(WebCore::RenderImageResourceStyleImage::setContainerSizeForRenderer): Remove constness, pass on m_renderer to StyleImage::setContainerSizeForRenderer().
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::isDirectlyCompositedImage): Use new CachedImage::imageForRenderer(RenderObject*) method.
(WebCore::RenderLayerBacking::updateImageContents): Ditto.
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::computePreferredLogicalWidths): CachedImage::setContainerSizeForRenderer() now takes a RenderObject* parameter.
* rendering/RenderObject.cpp:
(WebCore::mustRepaintFillLayers): CachedImage::canRender() now takes a RenderObject* parameter.
(WebCore::RenderObject::borderImageIsLoadedAndCanBeRendered): Ditto.
* rendering/style/StyleCachedImage.cpp:
(WebCore::StyleCachedImage::canRender): Pass on incoming renderer to CachedImage::canRender().
(WebCore::StyleCachedImage::imageSize): Pass on incoming renderer to CachedImage::imageSizeForRenderer().
(WebCore::StyleCachedImage::setContainerSizeForRenderer): Pass on incoming renderer to CachedImage::setContainerSizeForRenderer().
(WebCore::StyleCachedImage::addClient): Remove unneeded return statment in void method.
(WebCore::StyleCachedImage::removeClient): Ditto.
(WebCore::StyleCachedImage::image): Pass on incoming renderer to CachedImage::image().
* rendering/style/StyleCachedImage.h: Add RenderObject* parameter to canRender()/setContainerSizeForRenderer(). image() already has one, that was unused so far.
* rendering/style/StyleGeneratedImage.cpp: Inlined setContainerSizeForRenderer.
* rendering/style/StyleGeneratedImage.h:
(WebCore::StyleGeneratedImage::setContainerSizeForRenderer): Add RenderObject* parameter.
* rendering/style/StyleImage.h:
(WebCore::StyleImage::canRender): Ditto.
* rendering/style/StylePendingImage.h:
(WebCore::StylePendingImage::setContainerSizeForRenderer): Ditto.
* svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::build): Use new CachedImage::imageForRenderer(RenderObject*) method.
* svg/graphics/SVGImage.cpp: Cleanup file, the include hack seems not needed anymore.
(WebCore::SVGImage::setContainerSize): s/LayoutSize/IntSize/ to match the code in platform/.
* svg/graphics/SVGImage.h: Ditto.
(WebCore::SVGImage::isSVGImage): Return true.
2011-10-13 Kenichi Ishibashi <bashi@chromium.org>
[Chromium] Uninitialized read in WebCore::*Font* / HB_GSUB_Select_Feature
https://bugs.webkit.org/show_bug.cgi?id=70087
Reviewed by Kent Tamura.
Initialize local variables in ComplexTextControllerLinux::setupfontFeatures.
No new tests because there is no behavior change. Manually tested with valgrind.
* platform/graphics/chromium/ComplexTextControllerLinux.cpp:
(WebCore::setupFontFeatures):
2011-10-13 Csaba Osztrogonác <ossy@webkit.org>
[Qt][Win] Unreviewed buildfix after r97433.
* platform/MemoryPressureHandler.h: Add a missing include.
2011-10-13 Adam Barth <abarth@webkit.org>
Spelling error in v8WebSocket::constructorCallback error
https://bugs.webkit.org/show_bug.cgi?id=63943
Reviewed by Kent Tamura.
Fix typo.
* bindings/v8/custom/V8WebSocketCustom.cpp:
(WebCore::V8WebSocket::constructorCallback):
2011-10-13 Mark Hahnenberg <mhahnenberg@apple.com>
Rename virtual getConstructData to getConstructDataVirtual
https://bugs.webkit.org/show_bug.cgi?id=69872
Reviewed by Geoffrey Garen.
No new tests.
Renamed virtual getConstructData functions to getConstructDataVirtual to
avoid conflicts when we add static getConstructData to the MethodTable.
* WebCore.exp.in:
* bindings/js/JSAudioConstructor.cpp:
(WebCore::JSAudioConstructor::getConstructDataVirtual):
* bindings/js/JSAudioConstructor.h:
* bindings/js/JSImageConstructor.cpp:
(WebCore::JSImageConstructor::getConstructDataVirtual):
* bindings/js/JSImageConstructor.h:
* bindings/js/JSOptionConstructor.cpp:
(WebCore::JSOptionConstructor::getConstructDataVirtual):
* bindings/js/JSOptionConstructor.h:
* bindings/js/ScriptFunctionCall.cpp:
(WebCore::ScriptFunctionCall::construct):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateConstructorDeclaration):
(GenerateConstructorDefinition):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfaceConstructor::getConstructDataVirtual):
* bridge/runtime_object.cpp:
(JSC::Bindings::RuntimeObject::getConstructDataVirtual):
* bridge/runtime_object.h:
2011-10-13 Simon Fraser <simon.fraser@apple.com>
Remove #include of <QuartzCore/QuartzCore.h> in a widely-used header.
Reviewed by Sam Weinig.
* platform/PlatformScreen.h: Typedef PlatformDisplayID to a uint32_t.
* platform/graphics/DisplayRefreshMonitor.h: Typedef CVDisplayLinkRef as
an opaque type to avoid bringing in QuartzCore.h, and move displayLinkCallback
to the .cpp file since it uses Core Video types.
* platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
(WebCore::displayLinkCallback): Make this a local static function, that
calls a member fuction on the object.
(WebCore::DisplayRefreshMonitor::requestRefreshCallback):
(WebCore::DisplayRefreshMonitor::displayLinkFired):
2011-10-13 Michael Saboff <msaboff@apple.com>
REGRESSION: High frequency memory warnings cause Safari to hog the CPU doing useless garbage collection
https://bugs.webkit.org/show_bug.cgi?id=69774
Throttle the processing of memory pressure events to no more often than once every 5 seconds.
Reviewed by Geoffrey Garen.
No new tests.
* platform/MemoryPressureHandler.cpp:
(WebCore::MemoryPressureHandler::MemoryPressureHandler):
* platform/MemoryPressureHandler.h:
* platform/mac/MemoryPressureHandlerMac.mm:
(WebCore::MemoryPressureHandler::respondToMemoryPressure):
2011-10-13 Kentaro Hara <haraken@chromium.org>
Implement an OverflowEvent constructor for V8
https://bugs.webkit.org/show_bug.cgi?id=70017
Reviewed by Adam Barth.
Test: fast/events/constructors/overflow-event-constructor.html
* bindings/v8/custom/V8EventConstructors.cpp: Added an OverflowEvent constructor.
* dom/OverflowEvent.idl: Replaced 'JSCustomConstructor' with 'CustomConstructor'.
2011-10-13 Anantanarayanan G Iyengar <ananta@chromium.org>
https://bugs.webkit.org/show_bug.cgi?id=70064
The NPObjectWrapper class used by V8 bindings in Chromium to wrap the window
script object was allocating an instance of itself in the NPAllocate
implementation and returning this pointer. It should be returning a pointer
to the wrapped NPObject structure (NPProxyObject). The member function
getUnderlyingNPObject should return 0 if we fail to find the underlying NPObject
for the call. It was incorrectly returning a pointer to the same NPObject in
this case which could cause recursion.
Reviewed by Nate Chapin.
No new tests as there is no change in functionality.
* bindings/v8/NPObjectWrapper.cpp:
(WebCore::NPObjectWrapper::getObjectForCall):
(WebCore::NPObjectWrapper::NPAllocate):
* bindings/v8/NPObjectWrapper.h:
2011-10-13 Arthur Hsu <arthurhsu@chromium.org>
Ensure font loaded before calling Skia to drawPosText in Chrome sandbox
https://bugs.webkit.org/show_bug.cgi?id=69370
Reviewed by James Robinson.
* platform/graphics/chromium/FontChromiumWin.cpp:
(WebCore::Font::drawGlyphs):
2011-10-13 Kentaro Hara <haraken@chromium.org>
Regarding constructor, replace [ConstructorWith=...] IDL with [CallWith=...] IDL
https://bugs.webkit.org/show_bug.cgi?id=69801
As for constructors, [ConstructorWith=...] has the same meaning as [CallWith=...].
We should deprecate [ConstructorWith=...]. This is a clean-up bug for the bug 65839.
Reviewed by Adam Barth.
No new tests, since no change in behavior.
* bindings/scripts/CodeGeneratorV8.pm: Replaced [ConstructorWith=...] IDL with [CallWith=...] IDL.
(GenerateConstructorCallback):
* bindings/scripts/test/TestInterface.idl: Ditto.
* fileapi/FileReader.idl: Ditto.
* p2p/PeerConnection.idl: Ditto.
* page/EventSource.idl: Ditto.
* workers/Worker.idl: Ditto.
2011-10-13 Kentaro Hara <haraken@chromium.org>
Constructor should not be called if the object is being constructed inside WebCore
https://bugs.webkit.org/show_bug.cgi?id=70015
Reviewed by Adam Barth.
Summary: A DOM object can be created from the JS context and from the WebCore context.
Constructor should be called if the object is created from the JS context,
but should not be called if the object is created from the WebCore context.
Details:
- Expected behavior when the object is created from the JS context (e.g. "new Event()"):
(1) V8XXXX::constructorCallback() is called.
(2) V8XXXX::constructorCallback() calls XXXX::create().
(3) XXXX::create() creates a C++ object.
(4) V8XXXX::constructorCallback() calls toV8() for the C++ object.
(5) toV8() wraps the C++ object and returns the wrapped JS object.
- Actual behavior when the object is created from the JS context (e.g. "new Event()"):
As described above (1) - (5). That's fine!!
- Expected behavior when the object is created from the WebCore context.
(e.g. "window.addEventListener("load", function (event) { ... });". In this case,
the Event object is created inside the WebCore context):
(1) WebCore calls XXXX::create().
(2) XXXX::create() creates a C++ object.
(3) WebCore calls toV8() for the C++ object.
(4) toV8() wraps the C++ object and returns the wrapped JS object.
- Actual behavior when the object is created from the WebCore context.
(e.g. "window.addEventListener("load", function (event) { ... });"):
(1) WebCore calls XXXX::create().
(2) XXXX::create() creates a C++ object.
(3) WebCore calls toV8() for the C++ object.
(4) toV8() can call XXXX::constructorCallback(). (Whether or not toV8() calls
XXXX::constructorCallback() depends on the implementation of toV8().)
(5) V8XXXX::constructorCallback() calls XXXX::create().
(6) XXXX::create() creates __another__ C++ object.
(7) V8XXXX::constructorCallback() calls toV8() for the C++ object.
(8) toV8() wraps the C++ object and returns the wrapped JS object.
This actual behavior definitely causes the following problems:
- Problem1: The object returned to JS is not the object created in (2)
but the object created in (6). However, I do not yet know a test case that causes
some visible bug because of this problem.
- Problem2: In (4), XXXX::constructorCallback() can be called with no argument.
If XXXX::constructorCallback() expects at least one argument, XXXX::constructorCallback()
throws TypeError, resulting in crash. For example, Event caused this problem
when I implemented constructor for Event. Based on the discussion with Dominicc,
we solved this problem by adding the following two lines of code to Event::constructorCallback()
(See here: http://codesearch.google.com/codesearch#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/bindings/v8/custom/V8EventConstructors.cpp&exact_package=chromium&q=allowallocation&type=cs):
XXXX::constructorCallback(...) {
...;
if (AllowAllocation::current())
return args.Holder();
...;
}
This if check means "XXXX::constructorCallback() returns immediately if it is called
from the WebCore context".
With these observations, we think that all constructorCallback() should have the above
if check. This patch adds the if check to CodeGeneratorV8.pm. After this patch is landed,
I would like to add the if check to all existing custom V8 constructors.
No new tests, since we could not find a test case that causes some visible bug without the if check.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateConstructorCallback): Generates a constructor so that it returns immediately without doing anything if the constructor is called from the WebCore context.
* bindings/scripts/test/V8/V8TestInterface.cpp: Updated the result.
(WebCore::V8TestInterface::constructorCallback):
* bindings/scripts/test/V8/V8TestObj.cpp: Ditto.
(WebCore::V8TestObj::constructorCallback):
2011-10-13 Kentaro Hara <haraken@chromium.org>
Implement a BeforeLoadEvent constructor for V8
https://bugs.webkit.org/show_bug.cgi?id=69980
Reviewed by Adam Barth.
Test: fast/events/constructors/before-load-event-constructor.html
* bindings/v8/custom/V8EventConstructors.cpp: Added a BeforeLoadEvent constructor.
* dom/BeforeLoadEvent.idl: Replaced 'JSCustomConstructor' with 'CustomConstructor'.
2011-10-13 Joshua Bell <jsbell@chromium.org>
make IDBFactory.open wait for pending setVersion transactions to complete
https://bugs.webkit.org/show_bug.cgi?id=69307
Reviewed by Tony Chang.
Added a queue of pending open calls, similar to the queue of pending
setVersion calls. Ensure pending calls are processed in the correct
order when transactions complete.
Tests: storage/indexeddb/open-close-version.html
storage/indexeddb/two-version-changes.html
storage/indexeddb/version-change-exclusive.html
* storage/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::PendingOpenCall::create):
(WebCore::IDBDatabaseBackendImpl::PendingOpenCall::callbacks):
(WebCore::IDBDatabaseBackendImpl::PendingOpenCall::PendingOpenCall):
(WebCore::IDBDatabaseBackendImpl::setVersion):
(WebCore::IDBDatabaseBackendImpl::transactionStarted):
(WebCore::IDBDatabaseBackendImpl::transactionFinished):
(WebCore::IDBDatabaseBackendImpl::processPendingCalls):
(WebCore::IDBDatabaseBackendImpl::openConnection):
(WebCore::IDBDatabaseBackendImpl::close):
* storage/IDBDatabaseBackendImpl.h:
* storage/IDBFactoryBackendImpl.cpp:
(WebCore::IDBFactoryBackendImpl::open):
* storage/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::abort):
(WebCore::IDBTransactionBackendImpl::start):
(WebCore::IDBTransactionBackendImpl::commit):
2011-10-13 Chris Marrin <cmarrin@apple.com>
Fix Leopard build
Unreviewed.
* platform/graphics/DisplayRefreshMonitor.h: Added.
2011-10-12 Chris Marrin <cmarrin@apple.com>
Sync requestAnimationFrame callback to CVDisplayLink on Mac
https://bugs.webkit.org/show_bug.cgi?id=68911
Reviewed by Simon Fraser.
Test: fast/animation/request-animation-frame-iframe.html
Implement CVDisplayLink which checks to see if any scheduleAnimation requests
have come in. If so, remember the timestamp and do a callOnMainThread to fire
the callbacks. A DisplayRefreshMonitorManager is a singleton which has a list
of DisplayRefreshMonitors, one for each display. Each monitor has one or more
DisplayRefreshMonitorClients, which is a abstract virtual class implemented
by ScriptAnimationController. When an animation is scheduled, the
displayRefreshFired method is called on the client, which in turn calls the
requestAnimationFrame callbacks.
DisplayRefreshMonitor and therefore the CVDisplayLink it owns is discarded
when it no longer has any clients. This minimizes the number of concurrent
CVDisplayLink threads.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* dom/Document.cpp:
(WebCore::Document::windowScreenDidChange):
(WebCore::Document::webkitRequestAnimationFrame):
* dom/Document.h:
* dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::ScriptedAnimationController):
(WebCore::ScriptedAnimationController::windowScreenDidChange):
(WebCore::ScriptedAnimationController::scheduleAnimation):
* dom/ScriptedAnimationController.h:
(WebCore::ScriptedAnimationController::displayRefreshFired):
* page/Page.cpp:
(WebCore::Page::Page):
(WebCore::Page::windowScreenDidChange):
* page/Page.h:
(WebCore::Page::displayID):
* platform/PlatformScreen.h:
* platform/graphics/DisplayRefreshMonitor.cpp: Added.
(WebCore::DisplayRefreshMonitorClient::DisplayRefreshMonitorClient):
(WebCore::DisplayRefreshMonitorClient::~DisplayRefreshMonitorClient):
(WebCore::DisplayRefreshMonitorClient::fireDisplayRefreshIfNeeded):
(WebCore::DisplayRefreshMonitor::DisplayRefreshMonitor):
(WebCore::DisplayRefreshMonitor::refreshDisplayOnMainThread):
(WebCore::DisplayRefreshMonitorManager::sharedManager):
(WebCore::DisplayRefreshMonitorManager::findMonitor):
(WebCore::DisplayRefreshMonitorManager::registerClient):
(WebCore::DisplayRefreshMonitorManager::unregisterClient):
(WebCore::DisplayRefreshMonitorManager::scheduleAnimation):
(WebCore::DisplayRefreshMonitorManager::windowScreenDidChange):
* platform/graphics/DisplayRefreshMonitor.h: Added.
(WebCore::DisplayRefreshMonitorClient::scheduleAnimation):
(WebCore::DisplayRefreshMonitor::hasClients):
(WebCore::DisplayRefreshMonitor::addClient):
(WebCore::DisplayRefreshMonitor::removeClient):
(WebCore::DisplayRefreshMonitor::displayID):
(WebCore::DisplayRefreshMonitorManager::DisplayRefreshMonitorManager):
* platform/graphics/mac/DisplayRefreshMonitorMac.cpp: Added.
(WebCore::DisplayRefreshMonitor::displayLinkCallback):
(WebCore::DisplayRefreshMonitor::~DisplayRefreshMonitor):
(WebCore::DisplayRefreshMonitor::scheduleAnimation):
2011-10-13 Abhishek Arya <inferno@chromium.org>
Unreviewed. Qt compile fix.
* css/CSSFontFaceSource.cpp: include Document.h.
2011-10-12 Abhishek Arya <inferno@chromium.org>
Register custom fonts at their creation time,
rather than at retirement time.
https://bugs.webkit.org/show_bug.cgi?id=68929
Reviewed by Dan Bernstein.
Test: fast/text/custom-font-data-crash2.html
* css/CSSFontFace.cpp:
* css/CSSFontFace.h: remove function added in r94508,
which is no longer needed. We now register custom fonts
at creation time.
* css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::pruneTable): no longer need
to delete/retire font data here, it will be handled in ~Document.
(WebCore::CSSFontFaceSource::getFontData): register custom
font to document's m_customFonts.
* css/CSSFontSelector.cpp:
* css/CSSFontSelector.h: remove function added in r94508,
which is no longer needed. We now register custom fonts
at creation time.
* css/CSSSegmentedFontFace.cpp:
(WebCore::CSSSegmentedFontFace::pruneTable): no longer need
to delete/retire font data here, it will be handled in ~Document.
(WebCore::CSSSegmentedFontFace::getFontData): register custom
font to document's m_customFonts.
* dom/Document.cpp: Change function names to registerCustomFont
, deleteCustomFonts and local to m_customFont.
(WebCore::Document::~Document):
(WebCore::Document::recalcStyle): yanking out the comment. We
no longer keep retired custom fonts. We clear all custom fonts
on Document destruction.
(WebCore::Document::registerCustomFont):
(WebCore::Document::deleteCustomFonts):
* dom/Document.h:
2011-10-13 Ryosuke Niwa <rniwa@webkit.org>
Crash in DeleteSelectionCommand::handleGeneralDelete
https://bugs.webkit.org/show_bug.cgi?id=70045
Reviewed by Darin Adler.
Exit early when m_upstreamStart is null.
No new tests because we don't have a reduction.
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::handleGeneralDelete):
2011-10-13 David Hyatt <hyatt@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=70049
[CSS Regions] Add a test of a float being pushed down because it can't fit
next to another float and make sure it re-evaluates its position when it changes
regions as a result of the push.
Reviewed by Sam Weinig.
Added new test in fast/regions.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeLogicalLocationForFloat):
2011-10-13 Adam Barth <abarth@webkit.org>
Move XSTL to script-src in Content-Security-Policy
https://bugs.webkit.org/show_bug.cgi?id=63637
Reviewed by Eric Seidel.
The spec was unclear about how to treat XSLT. My reading was that they
should fall under style-src, but further discussion on the mailing list
settled on using script-src because an XSLT can inject arbitrary DOM
and script into a page, which is more risky than including style.
Tests: http/tests/security/contentSecurityPolicy/xsl-unaffected-by-style-src-1.php
http/tests/security/contentSecurityPolicy/xsl-unaffected-by-style-src-2.php
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::canRequest):
2011-10-13 Zeno Albisser <zeno.albisser@nokia.com>
[Qt] QtWebKit build error for Mac 32bit
https://bugs.webkit.org/show_bug.cgi?id=69914
In WebCore.pro and QtWebKit.pro we define NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES
when compiling with ENABLE_VIDEO and with WTF_USE_QTKIT.
But this is meant to be defined in NSGeometry.h under certain preconditions.
Without setting NS_BUILD_32_LIKE_64 none of these preconditions is
met and therefore NSGeometry.h will create several conflicting type definitions.
With this patch we create consistent definitions again.
Due to the order of include files we cannot remove
NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES from WebCore.pro.
Reviewed by Andreas Kling.
* WebCore.pro:
2011-10-13 Tom Hudson <tomhudson@google.com>
Revert border radius clips (r95239) for Chromium due to performance issues. Update test expectations to skip border radius clip layout tests.
https://bugs.webkit.org/show_bug.cgi?id=69844
Reviewed by Simon Fraser.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::clipToRect): Only process border radius clips #if !PLATFORM(CHROMIUM)
2011-10-13 Julien Chaffraix <jchaffraix@webkit.org>
Deprecate event.layerX and event.layerY in WebKit
https://bugs.webkit.org/show_bug.cgi?id=69951
Reviewed by Darin Adler.
layerX and layerY were concepts of the old Netscape code that stayed
in WebKit for a long time without changes. Now the code is completely
wrong and Mozilla has expressed some interest in removing it from their
API too.
This is a first step in the removal as layerX and layerY are exposed
in some APIs. Chromium and Win are fine with removing the property
directly, but ObjC needs to deprecate them first.
* bindings/objc/PublicDOMInterfaces.h: Mark the API as deprecated.
* dom/MouseRelatedEvent.cpp:
(WebCore::MouseRelatedEvent::layerX):
(WebCore::MouseRelatedEvent::layerY):
* dom/UIEvent.cpp:
(WebCore::UIEvent::layerX):
(WebCore::UIEvent::layerY):
Added a call to warnDeprecatedLayerXYUsage in the previous functions.
(WebCore::UIEvent::warnDeprecatedLayerXYUsage): Print a warning in the
console about the removal of event.layerX and event.layerY in the near future.
* dom/UIEvent.h: Added warnDeprecatedLayerXYUsage.
2011-10-03 Robert Hogan <robert@webkit.org>
CSS 2.1 failure: inline-replaced-height-008.htm
https://bugs.webkit.org/show_bug.cgi?id=69273
Reviewed by Simon Fraser.
Test: css2.1/20110323/inline-block-replaced-height-008.html
Per http://www.w3.org/TR/CSS21/visudet.html#inline-replaced-height, if 'height' has computed value of
'auto', the replaced element has an intrinsic ratio and its used width is known or resolved, then
the used value of 'height' is determined by the equation (used width) / (intrinsic ratio).
* rendering/RenderImage.cpp:
(WebCore::RenderImage::computeReplacedLogicalHeight):
* rendering/RenderReplaced.h:
2011-10-13 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r97362.
http://trac.webkit.org/changeset/97362
https://bugs.webkit.org/show_bug.cgi?id=70039
Relies on V8 APIs that have been reverted upstream. (Requested
by dglazkov on #webkit).
* English.lproj/localizedStrings.js:
* bindings/js/ScriptProfiler.cpp:
* bindings/js/ScriptProfiler.h:
* bindings/v8/ScriptProfiler.cpp:
* bindings/v8/ScriptProfiler.h:
* inspector/Inspector.json:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::create):
(WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
* inspector/InspectorProfilerAgent.h:
* inspector/front-end/DetailedHeapshotGridNodes.js:
(WebInspector.HeapSnapshotGridNode.prototype.hasHoverMessage.false.hoverMessage):
(WebInspector.HeapSnapshotGenericObjectNode):
(WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
(WebInspector.HeapSnapshotGenericObjectNode.prototype.hoverMessage):
(WebInspector.HeapSnapshotGenericObjectNode.prototype.shortenWindowURL):
* inspector/front-end/DetailedHeapshotView.js:
(WebInspector.DetailedHeapshotView.prototype._showStringContentPopover):
* inspector/front-end/HeapSnapshot.js:
(WebInspector.HeapSnapshot.prototype._init):
(WebInspector.HeapSnapshot.prototype.dispose):
(WebInspector.HeapSnapshot.prototype.updateStaticData):
(WebInspector.HeapSnapshotNodesProvider.prototype._serialize):
* inspector/front-end/HeapSnapshotProxy.js:
* inspector/front-end/RemoteObject.js:
* inspector/front-end/heapProfiler.css:
2011-10-13 David Hyatt <hyatt@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=69932
Layout repainting messed up for objects in regions. There were two bugs here.
The first is that the regionOverflowRect needs to at least be the size of the
region's rect. When you're in the middle of layout, you haven't computed the
overflow rect for the flow thread yet (the flow thread's height could even be 0),
and so you just need to enforce a minimum size. Also removed the region-overflow:break
clipping behavior, since it was established that was wrong.
The second bug is that when you tell a region to repaint, you need to disable layout state,
since applying layout deltas from the flow thread makes no sense. The region is in a totally
different place in the render tree, so the current flow thread layout state can't be used
to determine your coordinate offset.
Reviewed by Dan Bernstein.
Added fast/repaint test.
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::repaintRectangleInRegions):
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::regionOverflowRect):
2011-10-13 Renata Hodovan <reni@webkit.org>
FEComponentTransfer element doesn't support dynamic invalidation
https://bugs.webkit.org/show_bug.cgi?id=69747
The dynamic changes are captured by the svgAttributeChange() function, and
invalidate the filter primitive if necessary.
invalidateFilterPrimitiveParent() is a new free function in
SVGFilterPrimitiveStanardAttributes what makes the invalidation possible
by objects not inherited from SVGFilterPrimitiveStanardAttributes too.
This solution was used in SVGFEMergeNodeElement::svgAttributeChanged()
previously and now it can use this new function too.
Reviewed by Nikolas Zimmermann.
Tests: svg/dynamic-updates/SVGFEComponentTransferElement-dom-amplitude-attr.html
svg/dynamic-updates/SVGFEComponentTransferElement-dom-exponent-attr.html
svg/dynamic-updates/SVGFEComponentTransferElement-dom-intercept-attr.html
svg/dynamic-updates/SVGFEComponentTransferElement-dom-offset-attr.html
svg/dynamic-updates/SVGFEComponentTransferElement-dom-slope-attr.html
svg/dynamic-updates/SVGFEComponentTransferElement-dom-tableValues-attr.html
svg/dynamic-updates/SVGFEComponentTransferElement-dom-type-attr.html
svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-amplitude-prop.html
svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-exponent-prop.html
svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-intercept-prop.html
svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-offset-prop.html
svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-slope-prop.html
svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-tableValues-prop.html
svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-type-prop.html
* svg/SVGComponentTransferFunctionElement.cpp:
(WebCore::SVGComponentTransferFunctionElement::svgAttributeChanged):
* svg/SVGComponentTransferFunctionElement.h:
* svg/SVGFEComponentTransferElement.cpp:
(WebCore::SVGFEComponentTransferElement::build):
* svg/SVGFEMergeNodeElement.cpp:
(WebCore::SVGFEMergeNodeElement::svgAttributeChanged):
* svg/SVGFilterPrimitiveStandardAttributes.cpp:
(WebCore::invalidateFilterPrimitiveParent):
* svg/SVGFilterPrimitiveStandardAttributes.h:
2011-10-13 Deepak Sherveghar <bpwv64@motorola.com>
REGRESSION (r95381): Standalone video can be focused and draws a focus ring.
https://bugs.webkit.org/show_bug.cgi?id=69097
Reviewed by Eric Carlson.
We don't want to focus a media element in a standalone document.
Test: fast/events/media-focus-in-standalone-media-document.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::supportsFocus): return false if media element is in a standalone media document.
2011-10-13 Mikhail Naganov <mnaganov@chromium.org>
Web Inspector: [Chromium] Add an ability to look up and explore an object from a heap profile.
https://bugs.webkit.org/show_bug.cgi?id=61179
This is exteremely helpful when dealing with DOM wrappers, as
their properties are mostly implemented with getters and thus not
stored in heap snapshots.
Reviewed by Pavel Feldman.
* English.lproj/localizedStrings.js:
* bindings/js/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::objectByHeapObjectId):
* bindings/js/ScriptProfiler.h:
* bindings/v8/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::objectByHeapObjectId):
* bindings/v8/ScriptProfiler.h:
* inspector/Inspector.json:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::create):
(WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
(WebCore::InspectorProfilerAgent::getObjectByHeapObjectId):
* inspector/InspectorProfilerAgent.h:
* inspector/front-end/DetailedHeapshotGridNodes.js:
(WebInspector.HeapSnapshotGridNode.prototype.hasHoverMessage.false.queryObjectContent):
(WebInspector.HeapSnapshotGenericObjectNode):
(WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
(WebInspector.HeapSnapshotGenericObjectNode.prototype.queryObjectContent.else.formatResult):
(WebInspector.HeapSnapshotGenericObjectNode.prototype.queryObjectContent):
(WebInspector.HeapSnapshotGenericObjectNode.prototype.shortenWindowURL):
* inspector/front-end/DetailedHeapshotView.js:
(WebInspector.DetailedHeapshotView.prototype._showObjectPopover):
* inspector/front-end/HeapSnapshot.js:
(WebInspector.HeapSnapshotNode.prototype.get canBeQueried):
(WebInspector.HeapSnapshotNode.prototype.get flags):
(WebInspector.HeapSnapshotNode.prototype.get isDOMWindow):
(WebInspector.HeapSnapshot.prototype._init):
(WebInspector.HeapSnapshot.prototype.dispose):
(WebInspector.HeapSnapshot.prototype._flagsOfNode):
(WebInspector.HeapSnapshot.prototype._calculateFlags):
(WebInspector.HeapSnapshot.prototype.updateStaticData):
(WebInspector.HeapSnapshotNodesProvider.prototype._serialize):
* inspector/front-end/HeapSnapshotProxy.js:
(WebInspector.HeapSnapshotProxy.prototype.get nodeFlags):
* inspector/front-end/RemoteObject.js:
(WebInspector.RemoteObject.fromError):
* inspector/front-end/heapProfiler.css:
(.detailed-heapshot-view tr:not(.selected) td.object-column span.highlight):
2011-10-13 Adam Barth <abarth@webkit.org>
script-src * should allow all URLs
https://bugs.webkit.org/show_bug.cgi?id=70011
Reviewed by Eric Seidel.
This patch gets us slightly ahead of the spec. Technically, script-src
means "any host" and inherits the current scheme. However, that's not
what developers expect and it's even contradicted by examples in the
spec itself. After this patch, * matches all URLs.
Test: http/tests/security/contentSecurityPolicy/script-src-star-cross-scheme.html
* page/ContentSecurityPolicy.cpp:
(WebCore::CSPSourceList::CSPSourceList):
(WebCore::CSPSourceList::matches):
(WebCore::CSPSourceList::parseSource):
(WebCore::CSPSourceList::addSourceStar):
2011-10-13 Kentaro Hara <haraken@chromium.org>
Implement an OverflowEvent constructor for JSC
https://bugs.webkit.org/show_bug.cgi?id=69907
Reviewed by Adam Barth.
There is no spec for the OverflowEvent constructor
since it is WebKit-specific. However, judging from the current
IDL of initOverflowEvent(), the constructor IDL should be as follows.
[Constructor(DOMString type, optional OverflowEventInit eventInitDict)]
interface OverflowEvent : Event {
...;
}
dictionary OverflowEventInit : EventInit {
unsigned short orient;
boolean horizontalOverflow;
boolean verticalOverflow;
}
Note: In initOverflowEvent(), we cannot specify |bubbles| and |cancelable|.
I do not know why, but we can find a comment in fast/events/script-tests/init-events.js
that says "initOverflowEvent has an interface that has a design that's
inconsistent with the init functions from other events".
On the other hand, the above constructor enables to specify |bubbles| and |cancelable|,
which is consistent with other constructors.
Test: fast/events/constructors/overflow-event-constructor.html
* bindings/generic/EventConstructors.h: Added a definition for the OverflowEvent constructor.
* bindings/js/JSEventConstructors.cpp: Added #includes for OverflowEvent.
* dom/OverflowEvent.cpp:
(WebCore::OverflowEventInit::OverflowEventInit):
(WebCore::OverflowEvent::OverflowEvent):
(WebCore::OverflowEvent::initOverflowEvent):
* dom/OverflowEvent.h: Added a definition for OverflowEventInit.
(WebCore::OverflowEvent::create):
(WebCore::OverflowEvent::orient):
(WebCore::OverflowEvent::horizontalOverflow):
(WebCore::OverflowEvent::verticalOverflow):
* dom/OverflowEvent.idl: Makes OverflowEvent constructible.
2011-10-13 Kent Tamura <tkent@chromium.org>
Cleanup of HTMLSelectElement
https://bugs.webkit.org/show_bug.cgi?id=69908
Reviewed by Darin Adler.
- Change the m_listItems type: Vector<Element*> -> Vector<HTMLElement*>
- Rename a member: m_recalcListItems -> m_shouldRecalcListItems
- Fold checkListItems() into listItems()
- Style fixes
No new tests, just a cleanup.
* accessibility/AccessibilityListBox.cpp:
(WebCore::AccessibilityListBox::addChildren):
* accessibility/AccessibilityListBoxOption.cpp:
(WebCore::AccessibilityListBoxOption::listBoxOptionIndex):
* accessibility/AccessibilityMenuListPopup.cpp:
(WebCore::AccessibilityMenuListPopup::addChildren):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::stringValue):
* accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
(optionFromSelection):
(webkit_accessible_selection_get_selection_count):
* dom/OptionElement.cpp:
(WebCore::OptionElement::optionIndex):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::HTMLSelectElement):
(WebCore::HTMLSelectElement::add):
(WebCore::HTMLSelectElement::value):
(WebCore::HTMLSelectElement::setValue):
(WebCore::HTMLSelectElement::parseMappedAttribute):
(WebCore::HTMLSelectElement::recalcListItemsIfNeeded):
(WebCore::HTMLSelectElement::setOption):
(WebCore::HTMLSelectElement::setLength):
(WebCore::HTMLSelectElement::nextValidIndex):
(WebCore::HTMLSelectElement::firstSelectableListIndex):
(WebCore::HTMLSelectElement::nextSelectableListIndexPageAway):
(WebCore::HTMLSelectElement::selectAll):
(WebCore::HTMLSelectElement::saveLastSelection):
(WebCore::HTMLSelectElement::setActiveSelectionAnchorIndex):
(WebCore::HTMLSelectElement::updateListBoxSelection):
(WebCore::HTMLSelectElement::listBoxOnChange):
(WebCore::HTMLSelectElement::listItems):
(WebCore::HTMLSelectElement::setRecalcListItems):
(WebCore::HTMLSelectElement::recalcListItemsInternal):
(WebCore::HTMLSelectElement::selectedIndex):
(WebCore::HTMLSelectElement::setSelectedIndexInternal):
(WebCore::HTMLSelectElement::optionToListIndex):
(WebCore::HTMLSelectElement::listToOptionIndex):
(WebCore::HTMLSelectElement::dispatchFocusEvent):
(WebCore::HTMLSelectElement::deselectItemsWithoutValidation):
(WebCore::HTMLSelectElement::saveFormControlState): Use StringBuilder.
(WebCore::HTMLSelectElement::restoreFormControlState):
(WebCore::HTMLSelectElement::appendFormData):
(WebCore::HTMLSelectElement::reset):
(WebCore::HTMLSelectElement::menuListDefaultEventHandler):
(WebCore::HTMLSelectElement::updateSelectedState):
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
(WebCore::HTMLSelectElement::lastSelectedListIndex):
Optimize the code by iterating in the reverse order.
(WebCore::HTMLSelectElement::typeAheadFind):
(WebCore::HTMLSelectElement::accessKeySetSelectedIndex):
(WebCore::HTMLSelectElement::length):
(WebCore::toSelectElement):
* html/HTMLSelectElement.h:
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::updateFromElement):
(WebCore::RenderListBox::addFocusRingRects):
(WebCore::RenderListBox::paintItemForeground):
(WebCore::RenderListBox::paintItemBackground):
(WebCore::RenderListBox::nodeAtPoint):
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::updateOptionsWidth):
(WebCore::RenderMenuList::setTextFromOption):
(WebCore::RenderMenuList::itemText):
(WebCore::RenderMenuList::itemAccessibilityText):
(WebCore::RenderMenuList::itemToolTip):
(WebCore::RenderMenuList::itemIsEnabled):
(WebCore::RenderMenuList::itemStyle):
(WebCore::RenderMenuList::itemBackgroundColor):
(WebCore::RenderMenuList::itemIsSeparator):
(WebCore::RenderMenuList::itemIsLabel):
(WebCore::RenderMenuList::itemIsSelected):
2011-10-13 Adam Barth <abarth@webkit.org>
DOMWindow subobjects can be re-created after navigation
https://bugs.webkit.org/show_bug.cgi?id=68849
Reviewed by Sam Weinig.
Test: http/tests/security/xss-DENIED-getSelection-from-inactive-domwindow.html
* page/DOMWindow.cpp:
(WebCore::DOMWindow::~DOMWindow):
- Add ASSERTs to show that we're not recreating these objects.
- Add a call to clear() as defense in depth in case we have any of
these objects hanging around.
(WebCore::DOMWindow::clear):
- Clear out a couple of objects that weren't getting cleared.
These are actually not likely to cause problems, but clearing
them out is the safe thing to do.
(WebCore::DOMWindow::isActive):
- Add a concept of whether the DOMWindow is "active" in its frame.
We had this concept in a couple places already, but centralizing
it into a helper function make it easier to use and talk about.
(WebCore::DOMWindow::orientation):
- Whitespace nit.
(WebCore::DOMWindow::screen):
(WebCore::DOMWindow::history):
(WebCore::DOMWindow::crypto):
(WebCore::DOMWindow::locationbar):
(WebCore::DOMWindow::menubar):
(WebCore::DOMWindow::personalbar):
(WebCore::DOMWindow::scrollbars):
(WebCore::DOMWindow::statusbar):
(WebCore::DOMWindow::toolbar):
(WebCore::DOMWindow::console):
(WebCore::DOMWindow::applicationCache):
(WebCore::DOMWindow::navigator):
(WebCore::DOMWindow::performance):
(WebCore::DOMWindow::location):
(WebCore::DOMWindow::sessionStorage):
(WebCore::DOMWindow::localStorage):
(WebCore::DOMWindow::webkitNotifications):
(WebCore::DOMWindow::webkitIndexedDB):
(WebCore::DOMWindow::getSelection):
(WebCore::DOMWindow::styleMedia):
(WebCore::DOMWindow::webkitURL):
(WebCore::DOMWindow::webkitStorageInfo):
- Avoid creating these objects when we're not active. That can
only lead to sadness.
(WebCore::DOMWindow::webkitRequestFileSystem):
(WebCore::DOMWindow::webkitResolveLocalFileSystemURL):
(WebCore::DOMWindow::openDatabase):
(WebCore::DOMWindow::postMessage):
- While not techincally creating subobjects, these functions also
seem unwise when the DOMWindow is inactive.
(WebCore::DOMWindow::find):
(WebCore::DOMWindow::length):
(WebCore::DOMWindow::getMatchedCSSRules):
- These functions operate on the active Document. When we're not
active, that's not us!
(WebCore::DOMWindow::document):
- Update to use the new concept of being active rather than having
this function roll its own implementation.
(WebCore::DOMWindow::webkitConvertPointFromNodeToPage):
(WebCore::DOMWindow::webkitConvertPointFromPageToNode):
(WebCore::DOMWindow::scrollBy):
(WebCore::DOMWindow::scrollTo):
- These functions also look unwise to run when inactive because
they're reading information from the active document.
- I added a RefPtr for node because the call to
updateLayoutIgnorePendingStylesheets() seems likely to be able to
run script somehow.
(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):
(WebCore::DOMWindow::dispatchLoadEvent):
(WebCore::DOMWindow::dispatchEvent):
- I don't think these functions worked when inactive anyway, but
explicitly blocking them seems wise.
(WebCore::DOMWindow::setLocation):
(WebCore::DOMWindow::isInsecureScriptAccess):
(WebCore::DOMWindow::open):
(WebCore::DOMWindow::showModalDialog):
- These already have checks for being active, but it can't hurt to
be explicit at the top of the function.
* page/DOMWindow.h:
2011-10-13 Kent Tamura <tkent@chromium.org>
REGRESSION(r89915): <input type=email multiple> don't show the default value
https://bugs.webkit.org/show_bug.cgi?id=69895
Reviewed by Hajime Morita.
m_valueIfDirty became unexpectedly empty because
EmailInputType::sanitizeValue() returned an empty string for a
null input string.
To solve this issue, HTMLInputElement::sanitizeValue() checks
nullness, and remove the null check of sanitizeValue() of
InputType subclasses.
Also, we make InputType::sanitizeValue() const.
* html/ColorInputType.cpp:
(WebCore::ColorInputType::sanitizeValue):
- Make this const.
- Remove null check.
* html/ColorInputType.h: Make sanitizeValue() const.
* html/EmailInputType.cpp:
(WebCore::EmailInputType::sanitizeValue): Make this const.
* html/EmailInputType.h: Make sanitizeValue() const.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::sanitizeValue):
(WebCore::HTMLInputElement::updateValueIfNeeded):
* html/InputType.cpp:
(WebCore::InputType::sanitizeValue):
Returns a null string if the input string is null, and
don't call InputType::sanitizeValue() in this case.
* html/InputType.h: Make sanitizeValue() const.
* html/NumberInputType.cpp:
(WebCore::NumberInputType::sanitizeValue): Make this const.
* html/NumberInputType.h: Make sanitizeValue() const.
* html/RangeInputType.cpp:
(WebCore::RangeInputType::sanitizeValue):
- Make this const.
- Remove null check.
* html/RangeInputType.h: Make sanitizeValue() const.
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::sanitizeValue): Make this const.
* html/TextFieldInputType.h: Make sanitizeValue() const.
2011-10-12 Joseph Pecoraro <joepeck@webkit.org>
Pass Parsed Accept Attribute MIME Types to WebKit Clients
https://bugs.webkit.org/show_bug.cgi?id=69598
Reviewed by David Kilzer.
No new tests. No new functionality in WebCore, just
exposing more information to the WebKit port.
* html/FileInputType.cpp:
(WebCore::FileInputType::handleDOMActivateEvent):
(WebCore::FileInputType::receiveDropForDirectoryUpload):
Set the MIME type list on the FileChooser settings.
* html/HTMLInputElement.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::acceptMIMETypes):
Accessor for a parsed list of MIME types from the accept attribute.
* platform/FileChooser.h:
Add a slot for a MIME type list on the chooser settings.
2011-10-12 Joseph Pecoraro <joepeck@webkit.org>
Pass Parsed Accept Attribute MIME Types to WebKit Clients
https://bugs.webkit.org/show_bug.cgi?id=69598
Reviewed by Kent Tamura.
Deprecate the old String version of getting the "accept"
mime type values. Instead we will change to include a
list of MIME types.
* html/FileInputType.cpp:
(WebCore::FileInputType::handleDOMActivateEvent):
(WebCore::FileInputType::receiveDropForDirectoryUpload):
* platform/FileChooser.h:
2011-10-12 Adam Barth <abarth@webkit.org>
Remove ENABLE(XHTMLMP) and associated code
https://bugs.webkit.org/show_bug.cgi?id=69729
Reviewed by David Levin.
As discussed on webkit-dev, we are removing this feature as part of our
cleanup of unmaintained code in WebKit.
* Configurations/FeatureDefines.xcconfig:
* GNUmakefile.am:
* GNUmakefile.list.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument):
* dom/Document.cpp:
(WebCore::Document::Document):
* dom/Document.h:
(WebCore::Document::isMediaDocument):
* dom/Node.cpp:
* dom/make_names.pl:
(usesDefaultJSWrapper):
* features.pri:
* html/HTMLElement.cpp:
(WebCore::HTMLElement::rendererIsNeeded):
* html/HTMLElementsAllInOne.cpp:
* html/HTMLNoScriptElement.cpp: Removed.
* html/HTMLNoScriptElement.h: Removed.
* html/HTMLTagNames.in:
* html/HTMLViewSourceDocument.cpp:
(WebCore::HTMLViewSourceDocument::createParser):
* loader/FrameLoader.cpp:
* platform/wince/MIMETypeRegistryWinCE.cpp:
(WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
* xml/parser/XMLDocumentParser.h:
(WebCore::XMLDocumentParser::isXHTMLDocument):
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::XMLDocumentParser):
(WebCore::XMLDocumentParser::startElementNs):
(WebCore::XMLDocumentParser::endElementNs):
(WebCore::XMLDocumentParser::endDocument):
(WebCore::XMLDocumentParser::internalSubset):
(WebCore::getEntityHandler):
(WebCore::externalSubsetHandler):
* xml/parser/XMLDocumentParserQt.cpp:
(WebCore::XMLDocumentParser::XMLDocumentParser):
(WebCore::XMLDocumentParser::parse):
(WebCore::XMLDocumentParser::parseStartElement):
(WebCore::XMLDocumentParser::parseEndElement):
(WebCore::XMLDocumentParser::endDocument):
(WebCore::XMLDocumentParser::parseDtd):
2011-10-12 Kentaro Hara <haraken@chromium.org>
Implement a WebKitTransitionEvent constructor for V8
https://bugs.webkit.org/show_bug.cgi?id=69911
Reviewed by Adam Barth.
Test: fast/events/constructors/webkit-transition-event-constructor.html
* bindings/v8/custom/V8EventConstructors.cpp: Added a WebKitTransitionEvent constructor.
* dom/WebKitTransitionEvent.idl: Replaced 'JSCustomConstructor' with 'CustomConstructor'.
2011-10-12 Kentaro Hara <haraken@chromium.org>
Implement a BeforeLoadEvent constructor for JSC
https://bugs.webkit.org/show_bug.cgi?id=69893
Reviewed by Adam Barth.
There is no spec for the BeforeLoadEvent constructor
since it is WebKit-specific. However, judging from the current
IDL of initBeforeLoadEvent(), the constructor IDL
should be as follows.
[Constructor(DOMString type, optional BeforeLoadEventInit eventInitDict)]
interface BeforeLoadEvent : Event {
...;
}
dictionary BeforeLoadEventInit : EventInit {
DOMString url;
}
Test: fast/events/constructors/before-load-event-constructor.html
* bindings/generic/EventConstructors.h: Added a definition for the BeforeLoadEvent constructor.
* bindings/js/JSEventConstructors.cpp: Added #includes for BeforeLoadEvent.
* dom/BeforeLoadEvent.h: Added a definition for BeforeLoadEventInit.
(WebCore::BeforeLoadEventInit::BeforeLoadEventInit):
(WebCore::BeforeLoadEvent::create):
(WebCore::BeforeLoadEvent::initBeforeLoadEvent):
(WebCore::BeforeLoadEvent::BeforeLoadEvent):
* dom/BeforeLoadEvent.idl: Makes BeforeLoadEvent constructible.
2011-10-12 Ben Wells <benwells@chromium.org>
[skia] Implement Path.currentPoint for skia
https://bugs.webkit.org/show_bug.cgi?id=69817
Replace FIXME with implementation.
Reviewed by Kenneth Russell.
* platform/graphics/skia/PathSkia.cpp:
(WebCore::Path::currentPoint):
2011-10-12 Ben Wells <benwells@chromium.org>
Incorrect rendering with one-sided thick border and border-radius
https://bugs.webkit.org/show_bug.cgi?id=38787
Reviewed by Simon Fraser.
Incorrect rendering resulted when the inner border could not be properly represented as a rounded
rectangle. When this happens, and the inner border is clipped out, the clipping code clips out the
enclosing rectangle instead.
This change addresses this by clipping in a different way in this case only. The inside is clipped
out one side at a time with a rounded rect created by adjusting the unrenderable inner border
rounded rectangle. The side polygon which is clipped to is also increased in this case to include
the inside of the border so that no areas are missing.
Test: fast/borders/border-radius-complex-inner.html
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintOneBorderSide):
(WebCore::RenderBoxModelObject::paintBorder):
(WebCore::calculateSideRectIncludingInner):
(WebCore::calculateAdjustedInnerBorder):
(WebCore::RenderBoxModelObject::clipBorderSideForComplexInnerPath):
* rendering/RenderBoxModelObject.h:
2011-10-12 Luke Macpherson <macpherson@chromium.org>
Clean up CSSPropertyTextDecoration implementation and ETextDecoration usage.
https://bugs.webkit.org/show_bug.cgi?id=67625
Reviewed by Eric Seidel.
No new tests - no functionality changed.
The implementation of CSSPropertyTextDecoration is simlified because
1) CSSValueListIterator produces a valid iterator when no results available.
2) CSSParser only allows CSSValueNone or a list of appropriate idents.
3) CSSParser will treat a zero-length list as invalid at parse time.
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::operator ETextDecoration):
Implement cast from CSSPrimitiveValue to ETextDecoration.
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
* rendering/style/RenderStyle.h:
Use ETextDecoration enum instead of int throughout.
(WebCore::InheritedFlags::textDecorationsInEffect):
(WebCore::InheritedFlags::textDecoration):
(WebCore::InheritedFlags::addToTextDecorationsInEffect):
(WebCore::InheritedFlags::setTextDecorationsInEffect):
(WebCore::InheritedFlags::setTextDecoration):
* rendering/style/RenderStyleConstants.h:
Introduce constant for number of bits required to represent enum.
(WebCore::operator|):
Implement | operator for bitfield enum.
(WebCore::operator|=):
Implement |= operator for bitfield enum.
* rendering/style/StyleVisualData.h:
Use ETextDecoration instead of int.
2011-10-12 Tony Chang <tony@chromium.org>
Implement -webkit-flex-align for cross axis alignment in flex-flow: row
https://bugs.webkit.org/show_bug.cgi?id=69808
Reviewed by David Hyatt.
Tests: css3/flexbox/flex-align-percent-height.html
css3/flexbox/flex-align-vertical-writing-mode.html
css3/flexbox/flex-align.html
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::isFlowAwareLogicalHeightAuto):
(WebCore::RenderFlexibleBox::flowAwareContentLogicalHeight):
(WebCore::RenderFlexibleBox::flowAwareBorderAndPaddingLogicalHeight):
(WebCore::RenderFlexibleBox::flowAwareMarginLogicalHeightForChild):
(WebCore::RenderFlexibleBox::flowAwareLogicalLocationForChild):
(WebCore::RenderFlexibleBox::layoutInlineDirection):
(WebCore::RenderFlexibleBox::availableLogicalHeightForChild):
(WebCore::RenderFlexibleBox::marginBoxAscent):
(WebCore::RenderFlexibleBox::layoutAndPlaceChildrenInlineDirection):
(WebCore::RenderFlexibleBox::adjustLocationLogicalTopForChild):
(WebCore::RenderFlexibleBox::alignChildrenBlockDirection):
* rendering/RenderFlexibleBox.h:
2011-10-12 Mihnea Ovidenie <mihnea@adobe.com>
[CSS Regions]Remove -webkit-content-order property
https://bugs.webkit.org/show_bug.cgi?id=69848
Reviewed by Tony Chang.
-webkit-content-order property is removed from latest CSS Regions spec.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
* css/CSSPropertyNames.in:
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
* dom/Node.cpp:
(WebCore::Node::diff):
* rendering/RenderFlowThread.cpp:
(WebCore::compareRenderRegions):
* rendering/RenderTreeAsText.cpp:
(WebCore::writeRenderFlowThreads):
* rendering/style/RenderStyle.h:
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
* rendering/style/StyleRareNonInheritedData.h:
2011-10-12 Adam Bergkvist <adam.bergkvist@ericsson.com>
Update PeerConnection to use WebCore platform interfaces
https://bugs.webkit.org/show_bug.cgi?id=68462
Reviewed by Adam Barth.
Currently not testable.
* WebCore.gypi:
* WebCore.pro:
* bindings/js/JSPeerConnectionCustom.cpp:
(WebCore::JSPeerConnectionConstructor::constructJSPeerConnection):
* bindings/v8/custom/V8PeerConnectionCustom.cpp: Removed.
* dom/MediaStreamList.cpp:
(WebCore::MediaStreamList::item):
(WebCore::MediaStreamList::append):
(WebCore::MediaStreamList::remove):
(WebCore::MediaStreamList::contains):
* dom/MediaStreamList.h:
* p2p/PeerConnection.cpp:
(WebCore::PeerConnection::create):
(WebCore::PeerConnection::PeerConnection):
(WebCore::PeerConnection::processSignalingMessage):
(WebCore::PeerConnection::readyState):
(WebCore::PeerConnection::send):
(WebCore::PeerConnection::addStream):
(WebCore::PeerConnection::removeStream):
(WebCore::PeerConnection::localStreams):
(WebCore::PeerConnection::remoteStreams):
(WebCore::PeerConnection::close):
(WebCore::PeerConnection::iceProcessingCompleted):
(WebCore::PeerConnection::sdpGenerated):
(WebCore::PeerConnection::dataStreamMessageReceived):
(WebCore::PeerConnection::remoteStreamAdded):
(WebCore::PeerConnection::remoteStreamRemoved):
(WebCore::PeerConnection::scriptExecutionContext):
(WebCore::PeerConnection::stop):
(WebCore::PeerConnection::scheduleInitialNegotiation):
(WebCore::PeerConnection::initialNegotiationTimerFired):
(WebCore::PeerConnection::ensureStreamChangeScheduled):
(WebCore::PeerConnection::streamChangeTimerFired):
(WebCore::PeerConnection::scheduleReadyStateChange):
(WebCore::PeerConnection::readyStateChangeTimerFired):
(WebCore::PeerConnection::changeReadyState):
* p2p/PeerConnection.h:
(WebCore::PeerConnection::refEventTarget):
(WebCore::PeerConnection::derefEventTarget):
* p2p/PeerConnection.idl:
* page/MediaStreamClient.h:
* page/MediaStreamController.cpp:
(WebCore::MediaStreamController::MediaStreamController):
* page/MediaStreamController.h:
* page/MediaStreamFrameController.cpp:
* page/MediaStreamFrameController.h:
2011-10-12 Chris Fleizach <cfleizach@apple.com>
AX: CrashTracer: [USER] 296 crashes in WebProcess at com.apple.WebCore: WebCore::AccessibilityScrollbar::document const + 29
https://bugs.webkit.org/show_bug.cgi?id=69936
AX Scrollbars have a weak pointer to their parent. They need to become AccessibilityMockObjects, so that they can
participate in the detachFromParent() methods that happens when those parents go away.
Could not reproduce the crash, but the backtrace is unequivocal.
Reviewed by Darin Adler.
* accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::removeChildScrollbar):
* accessibility/AccessibilityScrollbar.cpp:
(WebCore::AccessibilityScrollbar::AccessibilityScrollbar):
* accessibility/AccessibilityScrollbar.h:
(WebCore::AccessibilityScrollbar::scrollbar):
(WebCore::AccessibilityScrollbar::isAccessibilityScrollbar):
2011-10-12 David Hyatt <hyatt@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=69950
REGRESSION: Printing broken because of the isWritingModeRoot addition for unsplittable
paginated content. Make sure not to include the RenderView when checking for writing mode
roots. We only care about children that differ from their parents.
Reviewed by Dimitri Glazkov.
* rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::adjustForUnsplittableChild):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::isUnsplittableForPagination):
* rendering/RenderBox.h:
2011-10-12 Anna Cavender <annacc@chromium.org>
Moving ScriptExecutionContext to the front of the argument list for
IDL constructors that use ConstructorWith=ScriptExecutionContext.
https://bugs.webkit.org/show_bug.cgi?id=69799
Reviewed by Adam Barth.
Tests:
- http/tests/eventsource/* (for EventSource)
- fast/filesystem/* (for Worker)
* bindings/js/JSEventSourceCustom.cpp:
(WebCore::JSEventSourceConstructor::constructJSEventSource):
* bindings/js/JSWorkerCustom.cpp:
(WebCore::JSWorkerConstructor::constructJSWorker):
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateConstructorCallback):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::V8TestInterface::constructorCallback):
* page/EventSource.cpp:
(WebCore::EventSource::create):
* page/EventSource.h:
* workers/Worker.cpp:
(WebCore::Worker::create):
* workers/Worker.h:
2011-10-11 David Hyatt <hyatt@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=69896
[CSS Regions] Make positioned blocks work with variable width regions.
Make positioned objects able to position and size independently in each region. This involves
lifting the restriction in renderBoxRegionInfo for positioned objects and passing in region
information to computeLogicalWidthForPositioned so that it can compute answers for a given
region.
In order to make mixed writing modes work with positioned objects, this patch also takes some
baby steps towards fixing differing writing modes in paginated environments.
Reviewed by Sam Weinig.
Added many new tests in fast/regions.
* rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState):
Disable pagination whenever differing writing modes are encountered. The block effectively becomes
unsplittable (as though it was an image).
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock):
Remove a FIXME that looks incorrect now.
(WebCore::RenderBlock::adjustPositionedBlock):
Patch static inline position caching to call a new method that unshifts the position to put it back
in the overall block's space rather than having it be per-region.
(WebCore::RenderBlock::layoutPositionedObjects):
Make sure to attempt to set a logicalTop for positioned objects before they lay out so that they
have a chance of paginating correctly the first time around. If for some reason the top estimate proves
to be incorrect, we lay out again. Technically this bug exists for multi-column and printing as well, but
for now just fixing it for regions.
(WebCore::RenderBlock::adjustForUnsplittableChild):
Add writing mode roots to the set of objects we consider to be unsplittable.
(WebCore::RenderBlock::setStaticInlinePositionForChild):
New helper function that handles shifting the inline static position back into the overall block's space
rather than leaving it in a translated region-specific space.
* rendering/RenderBlock.h:
(WebCore::RenderBlock::startOffsetForContent):
New helper function for computing the start offset when no regions are involved.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::setStaticPositions):
(WebCore::RenderBlock::LineBreaker::nextLineBreak):
Patched to call the new helper function, setStaticInlinePositionForChild.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::positionLineBox):
Patched to call the new helper function, setStaticInlinePositionForChild.
(WebCore::RenderBox::computeLogicalWidthInRegion):
Pass region information into the positioning logical width computation function.
(WebCore::RenderBox::renderBoxRegionInfo):
Remove the positioning restriction and properly compute shifting and left/right offsets for positioned
objects.
(WebCore::RenderBox::computeLogicalHeight):
Add code for perpendicular flows that just positions the object within the first region it is encountered
in. Since the object is unsplittable, this will work out. Should the object be so tall that it can't fit
in any region, then the resulting rendering will potentially be terrible, but the expectation is that authors should
avoid having perpendicular flows break across pages.
(WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
(WebCore::RenderBox::containingBlockLogicalHeightForPositioned):
Patched to handle regions when they are passed in. Also makes sure that the pagination direction axis computation uses
the flow thread's first region when the flow thread is the positioned object's containing block.
(WebCore::computeInlineStaticDistance):
Patched to examine regions and to modify the static distance computation accordingly so that it is per-region.
(WebCore::RenderBox::computePositionedLogicalWidth):
Pass along the region information when computing the positioned logical width.
(WebCore::computeLogicalLeftPositionedOffset):
Handle the adjustment of the logical left offset for differing writing modes (in this case when the writing mode
is flipped relative to us).
(WebCore::RenderBox::computePositionedLogicalHeight):
Deal with perpendicular writing modes and make sure the object is placed properly using the first region it
occurs in.
(WebCore::computeLogicalTopPositionedOffset):
Remove code that is no longer needed.
(WebCore::RenderBox::computePositionedLogicalWidthReplaced):
Patched to pass in 0 instead of a region since replaced elements aren't handled yet.
* rendering/RenderBox.h:
Changing the computePositionedLogicalWidth method to take region information.
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
Didn't bother fixing deprecated flexible box, and the new flexbox still can't handle positioned objects. When it does,
it will use the new method. Put in some FIXMEs to help the flexbox coders see the issue when they port the code over
to the new flexbox.
* rendering/RenderLayer.h:
(WebCore::RenderLayer::staticInlinePosition):
(WebCore::RenderLayer::staticBlockPosition):
(WebCore::RenderLayer::setStaticInlinePosition):
(WebCore::RenderLayer::setStaticBlockPosition):
Patched to take LayoutUnits instead of ints.
2011-10-12 Nate Chapin <japhet@chromium.org>
Remove logging to determine how null v8::Contexts are happening,
and check the return value of V8DOMWindowShell::initContextIfNeeded()
before using the context it initialized.
https://bugs.webkit.org/show_bug.cgi?id=68099
Reviewed by Adam Barth.
No new tests, the only symptom is a crash without a known repro.
* bindings/v8/ScriptController.cpp:
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::initContextIfNeeded): Return true
if a context already existed.
(WebCore::V8DOMWindowShell::namedItemAdded): Remove logging.
* bindings/v8/V8Proxy.cpp:
2011-10-06 Robert Hogan <robert@webkit.org>
CSS 2.1 failure: border-conflict-style-079
https://bugs.webkit.org/show_bug.cgi?id=69551
Reviewed by Antonio Gomes.
* css/CSSValueKeywords.in: ridge and outset were the wrong way round
* rendering/style/RenderStyleConstants.h: ditto
2011-10-12 Jian Li <jianli@chromium.org>
Support passing optional filename when FormData.append() is used to
append a blob
https://bugs.webkit.org/show_bug.cgi?id=69885
Reviewed by David Levin.
Covered by existing test with new test case added:
http/tests/local/formdata/send-form-data-with-sliced-file.html
* bindings/js/JSDOMFormDataCustom.cpp:
(WebCore::JSDOMFormData::append):
* bindings/v8/custom/V8DOMFormDataCustom.cpp:
(WebCore::V8DOMFormData::appendCallback):
* html/DOMFormData.cpp:
(WebCore::DOMFormData::append):
* html/DOMFormData.h:
* html/DOMFormData.idl:
* html/FormDataList.cpp:
(WebCore::FormDataList::appendBlob):
* html/FormDataList.h:
(WebCore::FormDataList::Item::Item):
(WebCore::FormDataList::Item::filename):
(WebCore::FormDataList::appendBlob):
* platform/network/FormData.cpp:
(WebCore::FormData::appendKeyValuePairItems):
2011-10-12 Sergey Glazunov <serg.glazunov@gmail.com>
ScriptController::executeIfJavaScriptURL gets confused by synchronous frame loads
https://bugs.webkit.org/show_bug.cgi?id=69777
Reviewed by Adam Barth.
Test: http/tests/security/xss-DENIED-synchronous-frame-load-in-javascript-url.html
* bindings/ScriptControllerBase.cpp:
(WebCore::ScriptController::executeIfJavaScriptURL):
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::replaceDocument):
(WebCore::DocumentWriter::begin):
* loader/DocumentWriter.h:
2011-10-12 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Searching in multiple scripts in the scripts tab
https://bugs.webkit.org/show_bug.cgi?id=38807
Reviewed by Pavel Feldman.
Added support for advanced search capabilities in inspector by means
of showing the new SearchView in Drawer. Advanced search is activated
with Ctrl+Shift+F (Cmd+Shift+F) shortcut.
* English.lproj/localizedStrings.js:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/compile-front-end.sh:
* inspector/front-end/AdvancedSearchController.js: Added.
* inspector/front-end/DebuggerPresentationModel.js:
(WebInspector.DebuggerPresentationModel.prototype.uiSourceCodes):
* inspector/front-end/ScriptsPanel.js:
* inspector/front-end/ScriptsSearchScope.js: Added.
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode.prototype.searchInContent):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/externs.js:
(WebInspector.showViewInDrawer):
* inspector/front-end/inspector.css:
(.search-view):
(.search-view .search-panel):
(.search-view .search-results):
(#search-results-pane-file-based .search-result):
(#search-results-pane-file-based .search-result:first-child):
(#search-results-pane-file-based .search-result .search-result-file-name):
(#search-results-pane-file-based .search-result .search-result-matches-count):
(#search-results-pane-file-based .search-match):
(#search-results-pane-file-based .search-match .webkit-line-number.search-match-line-number):
(#search-results-pane-file-based .search-match:not(:hover) .webkit-line-number.search-match-line-number):
(#search-results-pane-file-based .search-match:hover):
(#search-results-pane-file-based .search-match .highlighted-match):
(#search-results-pane-file-based a):
(#search-results-pane-file-based .search-match .search-match-content):
* inspector/front-end/inspector.html:
* inspector/front-end/inspector.js:
(WebInspector.documentKeyDown):
* inspector/front-end/utilities.js:
():
2011-10-12 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Fix Drawer to make it possible to show views other than Console.
https://bugs.webkit.org/show_bug.cgi?id=69831
Reviewed by Pavel Feldman.
Animation type extracted to distinguish between slow and normal
animation and immediate show/hide.
Implemented correct console toggle button behavior on showing views
other than console in Drawer.
View shown in Drawer is now shown in drawer-contents div with common
styles moved there.
Removed unused "_safelyRemoveChildren" method from Drawer.
* inspector/front-end/ConsolePanel.js:
(WebInspector.ConsolePanel.prototype.show):
(WebInspector.ConsolePanel.prototype.hide):
* inspector/front-end/Drawer.js:
(WebInspector.Drawer):
(WebInspector.Drawer.prototype.show):
(WebInspector.Drawer.prototype.hide):
(WebInspector.Drawer.prototype._animationDuration):
* inspector/front-end/inspector.css:
(body.drawer-visible #drawer-contents):
* inspector/front-end/inspector.js:
(WebInspector._toggleConsoleButtonClicked):
(WebInspector._escPressed):
(WebInspector.showViewInDrawer):
(WebInspector.documentKeyDown):
2011-10-12 Yury Semikhatsky <yurys@chromium.org>
[v8] Use V8DOMWrapper::isWrapperOfType for determining global object type
https://bugs.webkit.org/show_bug.cgi?id=69923
Get rid of globalObjectPrototypeIsDOMWindow, use V8DOMWrapper::isWrapperOfType instead.
Reviewed by Pavel Feldman.
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::instantiateV8Object):
(WebCore::V8DOMWrapper::getEventListener):
2011-10-12 Yury Semikhatsky <yurys@chromium.org>
[Chromium] Web Inspector: assertion failure when evaluating expression in worker inspector console
https://bugs.webkit.org/show_bug.cgi?id=69922
Check that the global object is a DOMWindow wrapper befor casting it to V8DOMWindow.
Reviewed by Pavel Feldman.
* bindings/v8/ScriptState.cpp:
(WebCore::ScriptState::domWindow):
2011-10-12 Yuta Kitamura <yutak@chromium.org>
WebSocket: Update WebSocket protocol to hybi-17
https://bugs.webkit.org/show_bug.cgi?id=69910
Reviewed by Kent Tamura.
Essential changes between hybi-10 and hybi-17 are:
- Sec-WebSocket-Origin header has been renamed to "Origin".
- Sec-WebSocket-Version header value has been bumped to 13.
No new tests are necessary. pywebsocket has already been updated to the latest version
which understands the new protocol. Tests under http/tests/websocket/ should keep
passing.
* websockets/WebSocketHandshake.cpp:
(WebCore::WebSocketHandshake::clientHandshakeMessage):
(WebCore::WebSocketHandshake::clientHandshakeRequest):
2011-10-11 Antti Koivisto <antti@apple.com>
Resolve regular and visited link style in a single pass
https://bugs.webkit.org/show_bug.cgi?id=69838
Reviewed by Darin Adler
We can simplify and speed up selector matching by removing the recursive matching done
to generate the style for the :visited pseudo selector. Both regular and visited link style
can be generated in a single pass through the style selector.
- Make SelectorChecker::checkSelector to return both :visited and :link matches for all links.
- For each selector statically determine and cache the link states it may match.
- When applying the matched style declarations, apply them to the right RenderStyle
(regular, visited, or both).
Statically determining which link state will be matched works since we only support :visited matching
based on the current element state (not ancestors or siblings).
A later patch will eliminate the separate RenderStyle for visited style completely and include the
few allowed properties to the regular RenderStyle.
* css/CSSStyleSelector.cpp:
(WebCore::RuleData::linkMatchType):
(WebCore::RuleSet::linkPseudoClassRules):
(WebCore::CSSStyleSelector::addMatchedDeclaration):
(WebCore::CSSStyleSelector::matchRules):
(WebCore::CSSStyleSelector::styleForElement):
(WebCore::CSSStyleSelector::pseudoStyleForElement):
(WebCore::CSSStyleSelector::updateFont):
(WebCore::CSSStyleSelector::checkSelector):
(WebCore::RuleData::RuleData):
(WebCore::RuleSet::addRule):
(WebCore::RuleSet::collectFeatures):
(WebCore::RuleSet::shrinkToFit):
(WebCore::CSSStyleSelector::applyDeclaration):
(WebCore::CSSStyleSelector::applyDeclarations):
(WebCore::CSSStyleSelector::applyProperty):
(WebCore::CSSStyleSelector::getColorFromPrimitiveValue):
* css/CSSStyleSelector.h:
(WebCore::CSSStyleSelector::MatchedStyleDeclaration::MatchedStyleDeclaration):
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::SelectorChecker):
(WebCore::SelectorChecker::checkSelector):
(WebCore::SelectorChecker::fastCheckRightmostSelector):
(WebCore::SelectorChecker::fastCheckSelector):
(WebCore::SelectorChecker::checkOneSelector):
(WebCore::SelectorChecker::commonPseudoClassSelectorMatches):
(WebCore::SelectorChecker::determineLinkMatchType):
* css/SelectorChecker.h:
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::addCachedPseudoStyle):
2011-10-12 Kent Tamura <tkent@chromium.org>
REGRESSION(r94836): An assertion fails in HTMLFormControlElement::isValidFormControlElement
when HTMLInputElement::setValue() is called while the element is focused.
https://bugs.webkit.org/show_bug.cgi?id=69909
Reviewed by Ryosuke Niwa.
setNeedsValidityCheck() should be called after the value update
and before any style recalculation. r94836 moved
setSelectionRange() call, and it recalculates the element style.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setValue): Move setNeedsValidityCheck() to setValueInternal().
(WebCore::HTMLInputElement::setValueInternal): Move setNeedsValidityCheck() from setValue().
2011-10-12 Kent Tamura <tkent@chromium.org>
Build fixes for r97238.
https://bugs.webkit.org/show_bug.cgi?id=69828
* GNUmakefile.list.am: Remove SelectElement.{cpp,h}.
* dom/DOMAllInOne.cpp: Remove SelectElement.cpp.
2011-10-12 Kent Tamura <tkent@chromium.org>
Move the content of SelectElementData into HTMLSelectElement, and remove SelectElement.{cpp,h}
https://bugs.webkit.org/show_bug.cgi?id=69828
Reviewed by Darin Adler.
- Move all of the data members of SelectElementData to
HTMLSelectElement, and their accessor functions are not needed
anymore.
- Move SelectElementData::useMenuList() to HTMLSelectElement.
No new tests, just a refactoring.
* CMakeLists.txt: Remove SelectElement.cpp.
* WebCore.gypi: Remove SelectElement.{cpp,h}.
* WebCore.pro: ditto.
* WebCore.vcproj/WebCore.vcproj: ditto.
* WebCore.xcodeproj/project.pbxproj: ditto.
* dom/OptionElement.cpp: Remove a reference to SelectElement.h.
* dom/SelectElement.cpp: Removed.
* dom/SelectElement.h: Removed.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::HTMLSelectElement):
Initializes the moved data members.
(WebCore::HTMLSelectElement::formControlType):
(WebCore::HTMLSelectElement::setSelectedIndexByUser):
(WebCore::HTMLSelectElement::activeSelectionStartListIndex):
(WebCore::HTMLSelectElement::activeSelectionEndListIndex):
(WebCore::HTMLSelectElement::parseMappedAttribute):
(WebCore::HTMLSelectElement::canSelectAll):
(WebCore::HTMLSelectElement::createRenderer):
(WebCore::HTMLSelectElement::setOption):
(WebCore::HTMLSelectElement::selectAll):
(WebCore::HTMLSelectElement::saveLastSelection):
(WebCore::HTMLSelectElement::setActiveSelectionAnchorIndex):
(WebCore::HTMLSelectElement::setActiveSelectionEndIndex):
(WebCore::HTMLSelectElement::updateListBoxSelection):
(WebCore::HTMLSelectElement::listBoxOnChange):
(WebCore::HTMLSelectElement::menuListOnChange):
(WebCore::HTMLSelectElement::scrollToSelection):
(WebCore::HTMLSelectElement::setOptionsChangedOnRenderer):
(WebCore::HTMLSelectElement::setRecalcListItems):
(WebCore::HTMLSelectElement::recalcListItemsInternal):
(WebCore::HTMLSelectElement::setSelectedIndexInternal):
(WebCore::HTMLSelectElement::dispatchFocusEvent):
(WebCore::HTMLSelectElement::dispatchBlurEvent):
(WebCore::HTMLSelectElement::parseMultipleAttribute):
(WebCore::HTMLSelectElement::reset):
(WebCore::HTMLSelectElement::menuListDefaultEventHandler):
(WebCore::HTMLSelectElement::updateSelectedState):
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
(WebCore::HTMLSelectElement::defaultEventHandler):
(WebCore::HTMLSelectElement::typeAheadFind):
(WebCore::HTMLSelectElement::accessKeySetSelectedIndex):
* html/HTMLSelectElement.h:
(WebCore::HTMLSelectElement::size):
(WebCore::HTMLSelectElement::multiple):
(WebCore::HTMLSelectElement::usesMenuList):
2011-10-12 Ryosuke Niwa <rniwa@webkit.org>
Chromium Mac build fix after r97227.
* platform/chromium/ScrollbarThemeChromiumMac.mm:
(+[ScrollbarPrefsObserver appearancePrefsChanged:]):
2011-10-11 Antoine Labour <piman@chromium.org>
Separate compositor client thread from webkit's main thread.
https://bugs.webkit.org/show_bug.cgi?id=69048
Reviewed by Darin Fisher.
Covered by compositing tests.
* platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
(WebCore::CCLayerTreeHost::CCLayerTreeHost):
* platform/graphics/chromium/cc/CCMainThread.cpp:
* platform/graphics/chromium/cc/CCMainThread.h:
* platform/graphics/chromium/cc/CCProxy.cpp:
(WebCore::CCProxy::isMainThread):
(WebCore::CCProxy::setMainThread):
(WebCore::CCProxy::CCProxy):
* platform/graphics/chromium/cc/CCProxy.h:
2011-10-11 Simon Fraser <simon.fraser@apple.com>
Fix Leopard and Snow Leopard builds, which don't use the scrollbar painter.
* platform/mac/ScrollAnimatorMac.mm:
2011-10-11 Simon Fraser <simon.fraser@apple.com>
Make custom scrollbar theme for use in DRT, to reduce pixel diffs between platforms
https://bugs.webkit.org/show_bug.cgi?id=68134
Reviewed by Darin Adler.
Use ScrollbarThemeMock when the setting to use mock scrollbars is enabled.
Make ScrollbarTheme::nativeTheme() private, and add a new static theme() method
that reads the setting, and returns the mock theme if set. All callers now use
theme() rther than nativeTheme(). Add the new ScrollbarTheme.cpp file to the build.
Fix scroll animator code for Mac and Chromium that was casting the ScrollbarTheme
without type-checking it to test whether it's the mock theme.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* html/shadow/TextControlInnerElements.cpp:
(WebCore::SpinButtonElement::startRepeatingTimer):
* platform/ScrollAnimatorWin.cpp:
(WebCore::ScrollAnimatorWin::scroll):
(WebCore::ScrollAnimatorWin::accelerationTime):
(WebCore::ScrollAnimatorWin::animateScroll):
* platform/ScrollView.cpp:
(WebCore::ScrollView::wheelEvent):
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::setScrollbarOverlayStyle):
* platform/Scrollbar.cpp:
(WebCore::Scrollbar::maxOverlapBetweenPages):
(WebCore::Scrollbar::Scrollbar):
* platform/ScrollbarTheme.cpp: Copied from Source/WebCore/platform/mock/ScrollbarThemeMock.h.
(WebCore::ScrollbarTheme::theme):
* platform/ScrollbarTheme.h:
(WebCore::ScrollbarTheme::isMockTheme):
* platform/chromium/PopupListBox.cpp:
(WebCore::PopupListBox::layout):
* platform/chromium/ScrollAnimatorChromiumMac.mm:
(WebCore::chromiumScrollbarTheme):
(WebCore::ScrollAnimatorChromiumMac::didAddVerticalScrollbar):
(WebCore::ScrollAnimatorChromiumMac::willRemoveVerticalScrollbar):
(WebCore::ScrollAnimatorChromiumMac::didAddHorizontalScrollbar):
(WebCore::ScrollAnimatorChromiumMac::willRemoveHorizontalScrollbar):
(WebCore::ScrollAnimatorChromiumMac::updateScrollerStyle):
* platform/chromium/ScrollbarThemeChromiumMac.mm:
(+[ScrollbarPrefsObserver appearancePrefsChanged:]):
(+[ScrollbarPrefsObserver behaviorPrefsChanged:]):
* platform/mac/ScrollAnimatorMac.mm:
(WebCore::macScrollbarTheme):
(WebCore::ScrollAnimatorMac::didAddVerticalScrollbar):
(WebCore::ScrollAnimatorMac::willRemoveVerticalScrollbar):
(WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar):
(WebCore::ScrollAnimatorMac::willRemoveHorizontalScrollbar):
(WebCore::ScrollAnimatorMac::updateScrollerStyle):
* platform/mac/ScrollbarThemeMac.mm:
(+[WebScrollbarPrefsObserver appearancePrefsChanged:]):
(+[WebScrollbarPrefsObserver behaviorPrefsChanged:]):
* platform/mock/ScrollbarThemeMock.h:
(WebCore::ScrollbarThemeMock::isMockTheme):
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderThemeQt::adjustInnerSpinButtonStyle):
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenuWin::calculatePositionAndSize):
* rendering/RenderLayer.cpp:
(WebCore::cornerRect):
* rendering/RenderScrollbarPart.cpp:
(WebCore::calcScrollbarThicknessUsing):
* rendering/RenderScrollbarTheme.h:
(WebCore::RenderScrollbarTheme::scrollbarThickness):
(WebCore::RenderScrollbarTheme::buttonsPlacement):
(WebCore::RenderScrollbarTheme::shouldCenterOnThumb):
(WebCore::RenderScrollbarTheme::initialAutoscrollTimerDelay):
(WebCore::RenderScrollbarTheme::autoscrollTimerDelay):
(WebCore::RenderScrollbarTheme::registerScrollbar):
(WebCore::RenderScrollbarTheme::unregisterScrollbar):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::scrollbarThickness):
* rendering/RenderThemeChromiumSkia.cpp:
(WebCore::RenderThemeChromiumSkia::menuListInternalPadding):
* rendering/RenderThemeChromiumWin.cpp:
(WebCore::RenderThemeChromiumWin::adjustInnerSpinButtonStyle):
2011-10-11 Kentaro Hara <haraken@chromium.org>
Implement a WebKitTransitionEvent constructor for JSC
https://bugs.webkit.org/show_bug.cgi?id=69829
Reviewed by Adam Barth.
There is no spec for the WebKitTransitionEvent constructor
since it is WebKit-specific. However, judging from the current
IDL of initWebKitTransitionEvent(), the constructor IDL
should be as follows.
[Constructor(DOMString type, optional WebKitTransitionEventInit eventInitDict)]
interface WebKitTransitionEvent : Event {
...;
}
dictionary WebKitTransitionEventInit : EventInit {
DOMString propertyName;
double elapsedTime;
}
Test: fast/events/constructors/webkit-transition-event-constructor.html
* bindings/generic/EventConstructors.h: Added a definition for the WebKitTransitionEvent constructor.
* bindings/js/JSEventConstructors.cpp: Added #includes for WebKitTransitionEvent.
* dom/WebKitTransitionEvent.cpp:
(WebCore::WebKitTransitionEventInit::WebKitTransitionEventInit):
(WebCore::WebKitTransitionEvent::WebKitTransitionEvent):
(WebCore::WebKitTransitionEvent::initWebKitTransitionEvent):
* dom/WebKitTransitionEvent.h: Added a definition for WebKitTransitionEventInit.
(WebCore::WebKitTransitionEvent::create):
(WebCore::WebKitTransitionEvent::isWebKitTransitionEvent):
* dom/WebKitTransitionEvent.idl: Makes WebKitTransitionEvent constructible.
2011-10-11 Sameer Patil <mkrp87@motorola.com>
:checked pseudo selector not matching selected option
https://bugs.webkit.org/show_bug.cgi?id=63192
Reviewed by Kent Tamura.
Test: fast/css/checked-pseudo-selector.html
Option element selected state need to be checked in checkOneSelector,
so that it can be considered as checked on querySelectorAll(':checked').
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOneSelector):
2011-10-11 Ryuan Choi <ryuan.choi@samsung.com>
StorageAreaSync::sync needs a transaction for better performance.
https://bugs.webkit.org/show_bug.cgi?id=57694
Reviewed by Darin Adler.
For now, StorageAreaSync::sync execute SQLite operations for all items outside
a transaction.
However, SQLite operations outside a transaction are all atomic and thus
writes will block on I/O, which makes the process slow during heavy I/O.
This wrapped them with BEGIN TRANSACTION and END TRANSACTION for the better
performance.
No new tests required.
No functional changes if transaction doesn't fail.
And also, it is difficult to test the case of transaction fails.
* storage/StorageAreaSync.cpp:
(WebCore::StorageAreaSync::sync):
2011-10-11 Ojan Vafai <ojan@chromium.org>
margin-right is ignored with vertical writing mode
https://bugs.webkit.org/show_bug.cgi?id=69686
Reviewed by Darin Adler.
We need to use the parent's writing mode when grabbing
the margin start/end for the purposes of computing the parent's
preferred widths.
Test: fast/writing-mode/margins.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeBlockPreferredLogicalWidths):
* rendering/RenderBlock.h:
2011-10-11 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r97202, r97207, and r97215.
http://trac.webkit.org/changeset/97202
http://trac.webkit.org/changeset/97207
http://trac.webkit.org/changeset/97215
https://bugs.webkit.org/show_bug.cgi?id=69894
Broke builds (Requested by rniwa on #webkit).
* platform/PopupMenuClient.h:
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::showPopup):
* rendering/RenderMenuList.h:
* rendering/RenderObject.h:
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::showPopup):
* rendering/RenderTextControlSingleLine.h:
* testing/Internals.cpp:
* testing/Internals.h:
* testing/Internals.idl:
2011-10-11 Martin Robinson <mrobinson@igalia.com>
[Soup] ResourceHandleSoup does not handle encodedBlobData
https://bugs.webkit.org/show_bug.cgi?id=52092
Reviewed by Gustavo Noronha Silva.
Add support for sending encoded blob data during requests.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::addFileToSoupMessageBody): Added this helper.
(WebCore::blobIsOutOfDate): Ditto.
(WebCore::addEncodedBlobItemToSoupMessageBody): Ditto.
(WebCore::addEncodedBlobToSoupMessageBody): Ditto.
(WebCore::addFormElementsToSoupMessage): No longer flatten form data, as we
cannot do this in the case where the form data contains blobs. Now handle
the blob case.
(WebCore::loadResourceSynchronously): Add blob support for synchronous loading.
2011-10-11 Chris Rogers <crogers@google.com>
Heap buffer overflow in Webaudio FFTFrame::doFFT
https://bugs.webkit.org/show_bug.cgi?id=69447
Reviewed by Kenneth Russell.
No new tests. This only changes internal implementation details.
* platform/audio/HRTFKernel.cpp:
(WebCore::extractAverageGroupDelay):
* platform/audio/HRTFPanner.cpp:
(WebCore::HRTFPanner::fftSizeForSampleRate):
2011-10-11 Ryosuke Niwa <rniwa@webkit.org>
Second Qt minimum release build fix attempt after r97163.
* platform/graphics/texmap/TextureMapperNode.cpp:
(WebCore::TextureMapperNode::syncCompositingStateSelf):
2011-10-11 Ryosuke Niwa <rniwa@webkit.org>
Qt minimum release build fix attempt after r97163.
* platform/graphics/texmap/TextureMapperNode.cpp:
(WebCore::TextureMapperNode::syncCompositingStateSelf):
2011-10-11 Oliver Hunt <oliver@apple.com>
Clang build broken
https://bugs.webkit.org/show_bug.cgi?id=69891
Reviewed by Darin Adler.
Rename CachedResourceClient::type to CachedResourceClient::resourceClientType
to avoid conflict in CSSImportRule.
* loader/cache/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::didAddClient):
* loader/cache/CachedFont.cpp:
(WebCore::CachedFont::didAddClient):
* loader/cache/CachedFont.h:
(WebCore::CachedFontClient::resourceClientType):
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::didAddClient):
* loader/cache/CachedImage.h:
(WebCore::CachedImageClient::resourceClientType):
* loader/cache/CachedResourceClient.h:
(WebCore::CachedResourceClient::resourceClientType):
* loader/cache/CachedResourceClientWalker.h:
(WebCore::CachedResourceClientWalker::next):
* loader/cache/CachedStyleSheetClient.h:
(WebCore::CachedStyleSheetClient::resourceClientType):
* loader/cache/CachedXSLStyleSheet.cpp:
(WebCore::CachedXSLStyleSheet::didAddClient):
2011-10-11 Ryosuke Niwa <rniwa@webkit.org>
Dir attribute is converted into direction property when merging paragraphs
https://bugs.webkit.org/show_bug.cgi?id=69680
Reviewed by Enrica Casucci.
Don't include direction and unicode-bidi properties in the wrapping style.
Tests: editing/deleting/merge-paragraph-into-h1-with-dir-2.html
editing/deleting/merge-paragraph-into-h1-with-dir.html
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement): Skip unicode-bidi and direction properties.
(WebCore::EditingStyle::wrappingStyleForSerialization): Extracted from StyledMarkupAccumulator::serializeNodes.
* editing/EditingStyle.h:
* editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::serializeNodes): Calls wrappingStyleForSerialization.
2011-10-11 Nico Weber <thakis@chromium.org>
[chromium] Let rule_binding use os.execvp() instead of subprocess.call() to spawn fewer processes.
https://bugs.webkit.org/show_bug.cgi?id=69589
Reviewed by Dirk Pranke.
When building with `make -j40`, all the binding rules are built en bloc. Since this script currently
uses subprocess.call(), that actually spawns 80 processes at once. OS X has a max process limit of
255 by default, so the build used to fail with
"open2: fork failed: Resource temporarily unavailable at ../bindings/scripts/preprocessor.pm line 60"
As a fix, use execvp() instead, which replaces the current process instead of spawning a new one.
* WebCore.gyp/scripts/rule_binding.py:
2011-10-11 Fady Samuel <fsamuel@chromium.org>
Towards making PopupMenuClient more testable
https://bugs.webkit.org/show_bug.cgi?id=69631
Reviewed by Simon Fraser.
Added some functions to window.internals to allow testing of parts of PopupMenuClient.
Test: fast/dom/popup-menu-client-test.html
* platform/PopupMenuClient.h:
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::showPopup):
(WebCore::RenderMenuList::boundingBoxRect):
* rendering/RenderMenuList.h:
(WebCore::RenderMenuList::RenderMenuList::isPopupMenuClient):
* rendering/RenderObject.h:
(WebCore::RenderObject::isPopupMenuClient):
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::showPopup):
(WebCore::RenderTextControlSingleLine::boundingBoxRect):
* rendering/RenderTextControlSingleLine.h:
(WebCore::RenderTextControlSingleLine::isPopupMenuClient):
* testing/Internals.cpp:
(WebCore::Internals::toPopupMenuClient):
(WebCore::Internals::popupClientPaddingLeft):
(WebCore::Internals::popupClientPaddingRight):
(WebCore::Internals::popupClientBoundingBoxRect):
* testing/Internals.h:
* testing/Internals.idl:
2011-10-11 Nate Chapin <japhet@chromium.org>
Make CachedResourceClientWalker templates, and
have it check and filter out bad casts when iterating
(currently we rely on CachedResourceClients being careful
to inherit from the right subclass for the type of resource
they want to load).
https://bugs.webkit.org/show_bug.cgi?id=69877
Reviewed by Adam Barth.
No new tests, no functionality change.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* loader/cache/CachedCSSStyleSheet.cpp:
* loader/cache/CachedFont.cpp:
* loader/cache/CachedFont.h:
* loader/cache/CachedImage.cpp:
* loader/cache/CachedImage.h:
* loader/cache/CachedResource.cpp:
* loader/cache/CachedResourceClient.h:
* loader/cache/CachedResourceClientWalker.cpp: Removed.
* loader/cache/CachedResourceClientWalker.h:
* loader/cache/CachedStyleSheetClient.h:
* loader/cache/CachedXSLStyleSheet.cpp:
2011-10-11 W. James MacLean <wjmaclean@chromium.org>
[chromium] Fix compilation guards in ScrollAnimatorNone (GESTURE_EVENTS).
https://bugs.webkit.org/show_bug.cgi?id=69853
Reviewed by Kenneth Russell.
Adding missing guards ENABLE(GESTURE_EVENTS) in ScrollAnimatorNone. So
far this hasn't been a problem since GESTURE_EVENTS are usually turned on
whenever SMOOTH_SCROLLING is, but it could be a problem if this changes.
No new tests (compilation without errors is the test).
* platform/ScrollAnimatorNone.cpp:
* platform/ScrollAnimatorNone.h:
2011-10-11 Kenneth Russell <kbr@google.com>
[chromium] Check for lost context at beginning of compositor's execution
https://bugs.webkit.org/show_bug.cgi?id=69776
Reviewed by James Robinson.
Test: platform/chromium/compositing/webgl-loses-compositor-context.html
* platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
(WebCore::CCSingleThreadProxy::recreateContextIfNeeded):
2011-10-11 W. James MacLean <wjmaclean@chromium.org>
Loss of precision when converting from double to int and double to float in FrameView::zoomAnimatorTransformChanged()
https://bugs.webkit.org/show_bug.cgi?id=69739
Reviewed by Simon Fraser.
Change 'double' parameters in FrameView:: & ScrollableArea::zoomAnimatorTransformChanged()
to 'float' to avoid loss of precision warnings when invoking setPageScalefactor.
Test coverage provided by existing zoom-animator tests.
* page/FrameView.cpp:
(WebCore::FrameView::zoomAnimatorTransformChanged):
* page/FrameView.h:
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::zoomAnimatorTransformChanged):
* platform/ScrollableArea.h:
2011-10-11 No'am Rosenthal <noam.rosenthal@nokia.com>
Unreviewed build fix, unbreaking the Qt minimal bot.
Some #ifdef ENABLED(TILED_BACKING_STORE) clauses were missing.
* platform/graphics/texmap/TextureMapperNode.cpp:
(WebCore::TextureMapperNode::computeTiles):
(WebCore::TextureMapperNode::renderContent):
(WebCore::TextureMapperNode::paintSelf):
2011-10-11 Abhishek Arya <inferno@chromium.org>
Generalize r95461 change to include table-cell and
allow splitting between :before, :after content.
https://bugs.webkit.org/show_bug.cgi?id=69854
Reviewed by Eric Seidel.
Test: fast/table/table-row-before-after-content-around-table-cell.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::addChild):
2011-10-11 Dominic Mazzoni <dmazzoni@google.com>
AccessibilityMenuList should fire change notification when popup is not open.
https://bugs.webkit.org/show_bug.cgi?id=69440
Reviewed by Chris Fleizach.
Test: accessibility/menu-list-sends-change-notification.html
* accessibility/AccessibilityMenuList.cpp:
(WebCore::AccessibilityMenuList::didUpdateActiveOption):
2011-10-11 Joshua Bell <jsbell@chromium.org>
IndexedDB: implement IDBFactory.cmp method
https://bugs.webkit.org/show_bug.cgi?id=62293
Reviewed by Tony Chang.
* storage/IDBFactory.cpp:
(WebCore::IDBFactory::cmp):
* storage/IDBFactory.h:
* storage/IDBFactory.idl:
* storage/IDBKey.cpp:
(WebCore::IDBKey::compare):
(WebCore::IDBKey::isLessThan):
(WebCore::IDBKey::isEqual):
* storage/IDBKey.h:
2011-10-11 No'am Rosenthal <noam.rosenthal@nokia.com>
[Texmap] TextureMapperGL leaves GL in a modified state.
https://bugs.webkit.org/show_bug.cgi?id=68983
Reviewed by Andreas Kling.
Disable the vertexAttribArray after clipping.
No new functionality so no new tests.
* platform/graphics/opengl/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::beginClip):
2011-10-11 No'am Rosenthal <noam.rosenthal@nokia.com>
[Qt][WK2] Synchronize tiling with accelerated compositing
https://bugs.webkit.org/show_bug.cgi?id=69151
Reviewed by Kenneth Rohde Christiansen.
Enable "externally managed" tiles in TextureMapperNodes.
Currently, TextureMapperNodes manage tiles themselves, the tiles being there only to
overcome the 2k texture size limitation. For WebKit2, we want those tiles to be managed
externally, namely through the web process via the remote tile backend for
TiledBackingStore.
This patch adds a store for those externally managed tiles, and adds the necessary code to
paint them instead of the owned tiles when appropriate.
In addition, in order to support externally managed remote tiles, we have to calculate per-
layer visible rects and pass them to the web process. The new collectVisibleContentRects
does this - and is directly tied to the externally-managed tile approach.
Code is disabled for now, but covered by existing compositing tests.
* platform/graphics/texmap/TextureMapperNode.cpp:
(WebCore::TextureMapperNode::computeTiles):
(WebCore::clampRect):
(WebCore::TextureMapperNode::collectVisibleContentRects):
(WebCore::TextureMapperNode::renderContent):
(WebCore::TextureMapperNode::targetRectForTileRect):
(WebCore::TextureMapperNode::paintSelf):
(WebCore::TextureMapperNode::createContentsTile):
(WebCore::TextureMapperNode::removeContentsTile):
(WebCore::TextureMapperNode::setTileBackBufferTextureForDirectlyCompositedImage):
(WebCore::TextureMapperNode::clearAllDirectlyCompositedImageTiles):
(WebCore::TextureMapperNode::setContentsTileBackBuffer):
(WebCore::TextureMapperNode::swapContentsBuffers):
(WebCore::TextureMapperNode::syncCompositingStateSelf):
(WebCore::TextureMapperNode::syncCompositingState):
* platform/graphics/texmap/TextureMapperNode.h:
(WebCore::TextureMapperNode::size):
(WebCore::TextureMapperNode::setTileOwnership):
(WebCore::TextureMapperNode::setID):
(WebCore::TextureMapperNode::id):
(WebCore::TextureMapperNode::texture):
(WebCore::TextureMapperNode::ExternallyManagedTile::ExternallyManagedTile):
(WebCore::TextureMapperNode::State::State):
2011-10-11 Claudio Saavedra <csaavedra@igalia.com>
[GTK] GtkAuthenticationDialog: use GtkGrid instead of GtkTable
https://bugs.webkit.org/show_bug.cgi?id=69749
Reviewed by Martin Robinson.
* platform/gtk/GtkAuthenticationDialog.cpp:
(WebCore::addEntryToGrid): Migrate to GtkGrid when using GTK+ 3
(WebCore::GtkAuthenticationDialog::GtkAuthenticationDialog):
Ditto.
2011-10-11 Alexey Proskuryakov <ap@apple.com>
Build fix.
* WebCore.exp.in: Export GraphicsContext::clearShadow().
2011-10-10 Adam Klein <adamk@chromium.org>
[MutationObservers] Add stub implementation of WebKitMutationObserver
https://bugs.webkit.org/show_bug.cgi?id=68949
Reviewed by Ryosuke Niwa, Oliver Hunt, and Dimitri Glazkov.
See https://bugs.webkit.org/show_bug.cgi?id=68729 for the metabug.
This patch adds a stub WebKitMutationObserver and its supporting classes
MutationCallback and MutationObserverOptions.
No implementation is provided for the all-important observe() and
disconnect() methods.
Note that WebKitMutationObserver is vendor-prefixed since it has a
constructor exposed on DOMWindow. None of the rest of the API needs
prefixing, as it's only available via a call through a MutationObserver
callback (created by instantiating WebKitMutationObserver).
Given the number of files required to get just the stub up and running,
it seems reasonable to leave the actual implementation for the next
patch (or more likely several patches). I've left FIXMEs in all the places
that'll need augmentation.
Tests: fast/mutation/mutation-observer-constructor.html
fast/mutation/observe-exceptions.html
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.list.am:
* UseJSC.cmake:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDictionary.h:
(WebCore::JSDictionary::tryGetProperty):
* bindings/js/JSMutationCallbackCustom.cpp: Added.
(WebCore::JSMutationCallback::handleEvent):
* bindings/js/JSWebKitMutationObserverCustom.cpp: Added.
(WebCore::JSWebKitMutationObserverConstructor::constructJSWebKitMutationObserver):
(WebCore::JSWebKitMutationObserver::observe):
* bindings/v8/custom/V8MutationCallbackCustom.cpp: Added.
(WebCore::V8MutationCallback::handleEvent):
* bindings/v8/custom/V8WebKitMutationObserverCustom.cpp: Added.
(WebCore::V8WebKitMutationObserver::constructorCallback):
(WebCore::V8WebKitMutationObserver::observeCallback):
* dom/MutationCallback.h: Added.
(WebCore::MutationCallback::~MutationCallback):
* dom/MutationCallback.idl: Added.
* dom/MutationObserverOptions.h: Added.
(WebCore::MutationObserverOptions::create):
(WebCore::MutationObserverOptions::childList):
(WebCore::MutationObserverOptions::setChildList):
(WebCore::MutationObserverOptions::attributes):
(WebCore::MutationObserverOptions::setAttributes):
(WebCore::MutationObserverOptions::characterData):
(WebCore::MutationObserverOptions::setCharacterData):
(WebCore::MutationObserverOptions::subtree):
(WebCore::MutationObserverOptions::setSubtree):
(WebCore::MutationObserverOptions::attributeOldValue):
(WebCore::MutationObserverOptions::setAttributeOldValue):
(WebCore::MutationObserverOptions::characterDataOldValue):
(WebCore::MutationObserverOptions::setCharacterDataOldValue):
(WebCore::MutationObserverOptions::MutationObserverOptions):
* dom/WebKitMutationObserver.cpp: Added.
(WebCore::WebKitMutationObserver::create):
(WebCore::WebKitMutationObserver::WebKitMutationObserver):
(WebCore::WebKitMutationObserver::~WebKitMutationObserver):
(WebCore::WebKitMutationObserver::observe):
(WebCore::WebKitMutationObserver::disconnect):
* dom/WebKitMutationObserver.h: Added.
* dom/WebKitMutationObserver.idl: Added.
* page/DOMWindow.idl:
2011-10-11 Arun Patole <BMF834@motorola.com>
Need more efficient ways to set inline CSS styles
https://bugs.webkit.org/show_bug.cgi?id=58157
Reviewed by Dimitri Glazkov.
No new tests added as this is just a code optimization.
Code optimization:
-Used CSSPropertyNames, CSSValues and CSSPrimitiveValues instead of Strings.
-Removed displayString(), webkitTransitionString(), opacityString() functions as they will no longer be needed after this change.
-Moved makeOpaque and makeTransparent functionality to MediaControlPanelElement from MediaControlRootElement.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerRateChanged):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlElement::show):
(WebCore::MediaControlElement::hide):
(WebCore::MediaControlPanelElement::MediaControlPanelElement):
(WebCore::MediaControlPanelElement::makeOpaque):
(WebCore::MediaControlPanelElement::makeTransparent):
(WebCore::MediaControlInputElement::show):
(WebCore::MediaControlInputElement::hide):
* html/shadow/MediaControlElements.h:
* html/shadow/MediaControlRootElement.cpp:
(WebCore::MediaControlRootElement::MediaControlRootElement):
(WebCore::MediaControlRootElement::makeOpaque):
(WebCore::MediaControlRootElement::makeTransparent):
* html/shadow/MediaControlRootElement.h:
* html/shadow/MediaControlRootElementChromium.cpp:
(WebCore::MediaControlRootElementChromium::makeOpaque):
(WebCore::MediaControlRootElementChromium::makeTransparent):
2011-10-11 Pavel Feldman <pfeldman@google.com>
Web Inspector: make Extensions component compile.
https://bugs.webkit.org/show_bug.cgi?id=69833
Reviewed by Yury Semikhatsky.
* inspector/compile-front-end.sh:
* inspector/front-end/BinarySearch.js:
* inspector/front-end/ConsoleModel.js:
* inspector/front-end/ExtensionAPI.js:
(injectedExtensionAPI.Network.prototype.addRequestHeaders):
(injectedExtensionAPI.AuditResultImpl.prototype.addResult):
(injectedExtensionAPI.AuditResultNode.prototype.addChild):
* inspector/front-end/ExtensionAuditCategory.js:
* inspector/front-end/ExtensionPanel.js:
(WebInspector.ExtensionSidebarPane.prototype.setExpression):
* inspector/front-end/ExtensionRegistryStub.js:
* inspector/front-end/ExtensionServer.js:
(WebInspector.ExtensionServer.prototype._postNotification):
(WebInspector.ExtensionServer.prototype._onAddRequestHeaders):
(WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage):
(WebInspector.ExtensionServer.prototype._registerExtension):
(WebInspector.ExtensionStatus):
* inspector/front-end/NetworkLog.js:
(WebInspector.NetworkLog.prototype._onResourceStarted):
* inspector/front-end/Object.js:
(WebInspector.Object.prototype.dispatchEventToListeners):
* inspector/front-end/externs.js:
(console.warn):
(console.assert):
(console.error):
():
(AuditResult):
(EventSink):
(ExtensionSidebarPane):
(Panel):
(PanelWithSidebar):
(Request):
(Resource):
(Timeline):
2011-10-05 Pavel Podivilov <podivilov@chromium.org>
Web Inspector: implement CompilerSourceMappingProvider.
https://bugs.webkit.org/show_bug.cgi?id=69423
Reviewed by Pavel Feldman.
CompilerSourceMappingProvider implements a cross-domain communication channel for loading source mappings and source files.
Front-end page can't send XHRs to source mapping server directly due to SOP restrictions. Instead, we inject an invisible
iframe that is loaded from source mapping server and use window.postMessage to communicate with it. iframe has a different
origin and thus doesn't have access to front-end window.
Test: http/tests/inspector/compiler-source-mapping-provider.html
* inspector/front-end/CompilerSourceMappingProvider.js:
(WebInspector.CompilerSourceMappingProvider):
(WebInspector.CompilerSourceMappingProvider.prototype.loadSourceMapping.frameLoaded.didLoadData):
(WebInspector.CompilerSourceMappingProvider.prototype.loadSourceMapping.frameLoaded):
(WebInspector.CompilerSourceMappingProvider.prototype.loadSourceMapping):
(WebInspector.CompilerSourceMappingProvider.prototype.loadSourceCode):
(WebInspector.CompilerSourceMappingProvider.prototype._sendRequest):
(WebInspector.CompilerSourceMappingProvider.prototype._onMessage):
(WebInspector.CompilerSourceMappingProvider.prototype._cancelRequest):
* inspector/front-end/inspector.js:
(WebInspector.installSourceMappingForTest):
2011-10-11 Mike Reed <reed@google.com>
re-add support for GDI text behind a compile flag
https://bugs.webkit.org/show_bug.cgi?id=69530
Reviewed by James Robinson.
Reverts back to using GDI for text (when possible)
but keeps skia-text version behind a compile-flag. If/when we can
resolve the outstanding soft-clip and intl-performance bugs with the
skia version, we may change the compile-flag to reenable skia.
Previous change http://trac.webkit.org/changeset/94589 removed the GDI code.
* platform/graphics/chromium/FontChromiumWin.cpp:
(WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::TransparencyAwareFontPainter):
(WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::init):
(WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::initializeForGDI):
(WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::~TransparencyAwareFontPainter):
(WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::TransparencyAwareGlyphPainter):
(WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::~TransparencyAwareGlyphPainter):
(WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::estimateTextBounds):
(WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::drawGlyphs):
(WebCore::TransparencyAwareFontPainter::TransparencyAwareUniscribePainter::hdc):
(WebCore::TransparencyAwareFontPainter::TransparencyAwareUniscribePainter::TransparencyAwareUniscribePainter):
(WebCore::TransparencyAwareFontPainter::TransparencyAwareUniscribePainter::~TransparencyAwareUniscribePainter):
(WebCore::TransparencyAwareFontPainter::TransparencyAwareUniscribePainter::estimateTextBounds):
(WebCore::drawGlyphsWin):
(WebCore::Font::drawGlyphs):
(WebCore::Font::drawComplexText):
* platform/graphics/chromium/UniscribeHelper.cpp:
(WebCore::UniscribeHelper::draw):
* platform/graphics/skia/PlatformContextSkia.cpp:
(WebCore::PlatformContextSkia::isNativeFontRenderingAllowed):
* platform/graphics/skia/PlatformContextSkia.h:
* platform/graphics/skia/SkiaFontWin.cpp:
(WebCore::windowsCanHandleDrawTextShadow):
(WebCore::windowsCanHandleTextDrawing):
(WebCore::windowsCanHandleTextDrawingWithoutShadow):
* platform/graphics/skia/SkiaFontWin.h:
2011-10-11 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
[Qt] Remove all references to QTDIR_build and standalone_package
Qt is now modularized, which means we no longer import WebKit into
the Qt source tree. Instead we use git submodules, and building
QtWebKit as "part of Qt" is really building QtWebKit as from trunk.
To decrease the number of buildsystem configurations we also remove
the standalone_package code-path used when we were providing tarballs
with the derived sources pre-generated.
Reviewed by Simon Hausmann.
* CodeGenerators.pri:
* WebCore.pri:
* features.pri:
2011-10-10 Andreas Kling <kling@webkit.org>
Shrink WebCore::Node on 64-bit.
https://bugs.webkit.org/show_bug.cgi?id=69768
Reviewed by Antti Koivisto.
Rearrange TreeShared and Node members so that the node flags fall
into the padding at the end of TreeShared on 64-bit, reducing the
size of Node (and all subclasses) by 8 bytes.
* dom/Document.h:
(WebCore::Node::Node):
* dom/Node.h:
* platform/TreeShared.h:
(WebCore::TreeShared::TreeShared):
2011-10-11 Kent Tamura <tkent@chromium.org>
Move m_listItems and m_recalcListItems from SelectElementData to HTMLSelectElement
https://bugs.webkit.org/show_bug.cgi?id=69812
Reviewed by Ryosuke Niwa.
Move SelectElementData::m_recalcListItems,
SelectElementData::m_listItems, and related functions of
SelectElementData class to HTMLSelectElement.
Non-const listItems() was removed because it is used only in
recalcListItemsInternal() and it can access m_listItems diretly.
Static recalcListItems() is changed to non-static, and renamed to
recalcListItemsInternal() in order to avoid confusion with the
existing recalcListItems().
No new tests, just a refactoring.
* dom/SelectElement.cpp:
Move checkListItems() and listItems() to HTMLSelectElement.
(WebCore::SelectElementData::SelectElementData):
Remove Initialization of m_recalcListItems.
* dom/SelectElement.h:
Move m_recalcListItems, m_listItems, and related functions to HTMLSelectElement.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::HTMLSelectElement):
Initializes m_recalcListItems.
(WebCore::HTMLSelectElement::recalcListItems):
Rename the static recalcListItems() to recalcListItemsInternal().
(WebCore::HTMLSelectElement::recalcListItemsIfNeeded):
Use m_recalcListItems directly.
(WebCore::HTMLSelectElement::nextSelectableListIndex):
Update a listItems() callsite.
(WebCore::HTMLSelectElement::previousSelectableListIndex): ditto.
(WebCore::HTMLSelectElement::firstSelectableListIndex): ditto.
(WebCore::HTMLSelectElement::lastSelectableListIndex): ditto.
(WebCore::HTMLSelectElement::nextSelectableListIndexPageAway): ditto.
(WebCore::HTMLSelectElement::saveLastSelection): ditto.
(WebCore::HTMLSelectElement::setActiveSelectionAnchorIndex): ditto.
(WebCore::HTMLSelectElement::updateListBoxSelection): ditto.
(WebCore::HTMLSelectElement::listBoxOnChange): ditto.
(WebCore::HTMLSelectElement::checkListItems):
Moved from SelectElementData.
(WebCore::HTMLSelectElement::listItems): ditto.
(WebCore::HTMLSelectElement::setRecalcListItems):
Use m_recalcListItems directly.
(WebCore::HTMLSelectElement::recalcListItemsInternal):
- Make this non-static.
- Renamed from recalcListItems() to avoid confilct with another recalcListItems().
- Use m_recalcListItems and m_listItems directly.
(WebCore::HTMLSelectElement::selectedIndex):
Update a listItems() callsite.
(WebCore::HTMLSelectElement::setSelectedIndexInternal): ditto.
(WebCore::HTMLSelectElement::optionToListIndex): ditto.
(WebCore::HTMLSelectElement::listToOptionIndex): ditto.
(WebCore::HTMLSelectElement::deselectItemsWithoutValidation): ditto.
(WebCore::HTMLSelectElement::saveFormControlState):
Update callsites of listItems() and recalcListItems().
(WebCore::HTMLSelectElement::restoreFormControlState):
Update a listItems() callsite.
(WebCore::HTMLSelectElement::appendFormData): ditto.
(WebCore::HTMLSelectElement::reset): ditto.
(WebCore::HTMLSelectElement::menuListDefaultEventHandler): ditto.
(WebCore::HTMLSelectElement::updateSelectedState): ditto.
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler): ditto.
(WebCore::HTMLSelectElement::lastSelectedListIndex): ditto.
(WebCore::HTMLSelectElement::typeAheadFind): ditto.
(WebCore::HTMLSelectElement::insertedIntoTree):
Update a recalcListItems() callsite.
(WebCore::HTMLSelectElement::accessKeySetSelectedIndex):
Update a listItems() callsite.
(WebCore::HTMLSelectElement::length): ditto.
* html/HTMLSelectElement.h:
Move m_recalcListItems, m_listItems, and related functions from SelectElementData.
* html/HTMLSelectElementWin.cpp:
(WebCore::HTMLSelectElement::platformHandleKeydownEvent):
Update a listItems() callsite.
2011-10-11 Kenichi Ishibashi <bashi@chromium.org>
[Chromium] Complex script code path breaks on Windows XP when a CFF font is used
https://bugs.webkit.org/show_bug.cgi?id=69497
Reviewed by Kent Tamura.
Don't use CFF webfonts when ScriptShape() can't handle it.
ScriptShape() indicates us the case by setting fNoGlyphIndex to TRUE.
If it's TRUE, we don't use the font. This could happen with early
version of Uniscribe on WinXP.
No new tests because the version of Uniscribe depends on environment.
One can install newer version of Uniscribe on WinXP.
* platform/graphics/chromium/UniscribeHelper.cpp:
(WebCore::canUseGlyphIndex): Added.
(WebCore::UniscribeHelper::shape): Don't use the shape result when canUseGlyphIndex() returns false.
2011-10-11 John Bauman <jbauman@chromium.org>
Fix crash with toDataURL to JPEG
https://bugs.webkit.org/show_bug.cgi?id=69681
Reviewed by Kenneth Russell.
Move RefPtr declaration outside if to make sure image data still
exists through CGImageToDataURL.
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::toDataURL):
2011-10-10 Adam Barth <abarth@webkit.org>
Update test results.
* bindings/scripts/test/V8/V8TestInterface.h:
(WebCore::V8TestInterface::existingWrapper):
(WebCore::V8TestInterface::wrap):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(WebCore::V8TestMediaQueryListListener::existingWrapper):
(WebCore::V8TestMediaQueryListListener::wrap):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjInternal::readOnlyTestObjAttrAttrGetter):
(WebCore::TestObjInternal::cachedAttribute1AttrGetter):
(WebCore::TestObjInternal::cachedAttribute2AttrGetter):
* bindings/scripts/test/V8/V8TestObj.h:
(WebCore::V8TestObj::existingWrapper):
(WebCore::V8TestObj::wrap):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(WebCore::V8TestSerializedScriptValueInterface::existingWrapper):
(WebCore::V8TestSerializedScriptValueInterface::wrap):
2011-10-10 Abhishek Arya <inferno@chromium.org>
Style not updated on text fragment in :first-letter
nested in :before table.
https://bugs.webkit.org/show_bug.cgi?id=69540
Reviewed by Dan Bernstein.
Test: fast/css-generated-content/first-letter-in-nested-before-table.html
* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::updateBeforeAfterContent):
2011-10-10 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r97121.
http://trac.webkit.org/changeset/97121
https://bugs.webkit.org/show_bug.cgi?id=69815
Many layout tests failed (Requested by tkent on #webkit).
* dom/SelectElement.cpp:
(WebCore::SelectElementData::SelectElementData):
(WebCore::SelectElementData::checkListItems):
(WebCore::SelectElementData::listItems):
* dom/SelectElement.h:
(WebCore::SelectElementData::shouldRecalcListItems):
(WebCore::SelectElementData::setShouldRecalcListItems):
(WebCore::SelectElementData::rawListItems):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::HTMLSelectElement):
(WebCore::HTMLSelectElement::recalcListItems):
(WebCore::HTMLSelectElement::recalcListItemsIfNeeded):
(WebCore::HTMLSelectElement::nextSelectableListIndex):
(WebCore::HTMLSelectElement::previousSelectableListIndex):
(WebCore::HTMLSelectElement::firstSelectableListIndex):
(WebCore::HTMLSelectElement::lastSelectableListIndex):
(WebCore::HTMLSelectElement::nextSelectableListIndexPageAway):
(WebCore::HTMLSelectElement::saveLastSelection):
(WebCore::HTMLSelectElement::setActiveSelectionAnchorIndex):
(WebCore::HTMLSelectElement::updateListBoxSelection):
(WebCore::HTMLSelectElement::listBoxOnChange):
(WebCore::HTMLSelectElement::setRecalcListItems):
(WebCore::HTMLSelectElement::selectedIndex):
(WebCore::HTMLSelectElement::setSelectedIndexInternal):
(WebCore::HTMLSelectElement::optionToListIndex):
(WebCore::HTMLSelectElement::listToOptionIndex):
(WebCore::HTMLSelectElement::deselectItemsWithoutValidation):
(WebCore::HTMLSelectElement::saveFormControlState):
(WebCore::HTMLSelectElement::restoreFormControlState):
(WebCore::HTMLSelectElement::appendFormData):
(WebCore::HTMLSelectElement::reset):
(WebCore::HTMLSelectElement::menuListDefaultEventHandler):
(WebCore::HTMLSelectElement::updateSelectedState):
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
(WebCore::HTMLSelectElement::lastSelectedListIndex):
(WebCore::HTMLSelectElement::typeAheadFind):
(WebCore::HTMLSelectElement::insertedIntoTree):
(WebCore::HTMLSelectElement::accessKeySetSelectedIndex):
(WebCore::HTMLSelectElement::length):
* html/HTMLSelectElement.h:
(WebCore::HTMLSelectElement::listItems):
* html/HTMLSelectElementWin.cpp:
(WebCore::HTMLSelectElement::platformHandleKeydownEvent):
2011-10-10 Kent Tamura <tkent@chromium.org>
Move m_listItems and m_recalcListItems from SelectElementData to HTMLSelectElement
https://bugs.webkit.org/show_bug.cgi?id=69812
Reviewed by Ryosuke Niwa.
Move SelectElementData::m_recalcListItems,
SelectElementData::m_listItems, and related functions of
SelectElementData class to HTMLSelectElement.
Non-const listItems() was removed because it is used only in
recalcListItemsInternal() and it can access m_listItems diretly.
Static recalcListItems() is changed to non-static, and renamed to
recalcListItemsInternal() in order to avoid confusion with the
existing recalcListItems().
No new tests, just a refactoring.
* dom/SelectElement.cpp:
Move checkListItems() and listItems() to HTMLSelectElement.
(WebCore::SelectElementData::SelectElementData):
Remove Initialization of m_recalcListItems.
* dom/SelectElement.h:
Move m_recalcListItems, m_listItems, and related functions to HTMLSelectElement.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::HTMLSelectElement):
Initializes m_recalcListItems.
(WebCore::HTMLSelectElement::recalcListItems):
Rename the static recalcListItems() to recalcListItemsInternal().
(WebCore::HTMLSelectElement::recalcListItemsIfNeeded):
Use m_recalcListItems directly.
(WebCore::HTMLSelectElement::nextSelectableListIndex):
Update a listItems() callsite.
(WebCore::HTMLSelectElement::previousSelectableListIndex): ditto.
(WebCore::HTMLSelectElement::firstSelectableListIndex): ditto.
(WebCore::HTMLSelectElement::lastSelectableListIndex): ditto.
(WebCore::HTMLSelectElement::nextSelectableListIndexPageAway): ditto.
(WebCore::HTMLSelectElement::saveLastSelection): ditto.
(WebCore::HTMLSelectElement::setActiveSelectionAnchorIndex): ditto.
(WebCore::HTMLSelectElement::updateListBoxSelection): ditto.
(WebCore::HTMLSelectElement::listBoxOnChange): ditto.
(WebCore::HTMLSelectElement::checkListItems):
Moved from SelectElementData.
(WebCore::HTMLSelectElement::listItems): ditto.
(WebCore::HTMLSelectElement::setRecalcListItems):
Use m_recalcListItems directly.
(WebCore::HTMLSelectElement::recalcListItemsInternal):
- Make this non-static.
- Renamed from recalcListItems() to avoid confilct with another recalcListItems().
- Use m_recalcListItems and m_listItems directly.
(WebCore::HTMLSelectElement::selectedIndex):
Update a listItems() callsite.
(WebCore::HTMLSelectElement::setSelectedIndexInternal): ditto.
(WebCore::HTMLSelectElement::optionToListIndex): ditto.
(WebCore::HTMLSelectElement::listToOptionIndex): ditto.
(WebCore::HTMLSelectElement::deselectItemsWithoutValidation): ditto.
(WebCore::HTMLSelectElement::saveFormControlState):
Update callsites of listItems() and recalcListItems().
(WebCore::HTMLSelectElement::restoreFormControlState):
Update a listItems() callsite.
(WebCore::HTMLSelectElement::appendFormData): ditto.
(WebCore::HTMLSelectElement::reset): ditto.
(WebCore::HTMLSelectElement::menuListDefaultEventHandler): ditto.
(WebCore::HTMLSelectElement::updateSelectedState): ditto.
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler): ditto.
(WebCore::HTMLSelectElement::lastSelectedListIndex): ditto.
(WebCore::HTMLSelectElement::typeAheadFind): ditto.
(WebCore::HTMLSelectElement::insertedIntoTree):
Update a recalcListItems() callsite.
(WebCore::HTMLSelectElement::accessKeySetSelectedIndex):
Update a listItems() callsite.
(WebCore::HTMLSelectElement::length): ditto.
* html/HTMLSelectElement.h:
Move m_recalcListItems, m_listItems, and related functions from SelectElementData.
* html/HTMLSelectElementWin.cpp:
(WebCore::HTMLSelectElement::platformHandleKeydownEvent):
Update a listItems() callsite.
2011-10-10 Dan Bernstein <mitz@apple.com>
<rdar://problem/10246137> Duplicate ::after content when both ::before and ::after are styled as table parts
Reviewed by Sam Weinig.
Test: fast/css-generated-content/table-parts-before-and-after.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::addChild): Prevented table part childern after a ::before table from being merged
into it.
* rendering/RenderTable.cpp:
(WebCore::RenderTable::addChild): Prevented children after a ::before table section from being merged
into it.
2011-10-10 Nate Chapin <japhet@chromium.org>
Most of the functions in CachedResourceClient are specific
to a single type of CachedResource. Move these callbacks into
separate subclasses of CachedResourceClient, and leave only
the common callback (notifyFinished) in the base class.
https://bugs.webkit.org/show_bug.cgi?id=69790
Reviewed by Adam Barth.
No new tests, no functionality changed intended.
* css/CSSFontFaceSource.h:
* css/CSSImageValue.h:
* css/CSSImportRule.h:
* dom/ProcessingInstruction.cpp:
* dom/ProcessingInstruction.h:
* html/HTMLLinkElement.h:
* html/ImageDocument.h:
* loader/ImageLoader.h:
* loader/cache/CachedCSSStyleSheet.cpp:
* loader/cache/CachedCSSStyleSheet.h:
* loader/cache/CachedFont.cpp:
* loader/cache/CachedFont.h:
* loader/cache/CachedImage.cpp:
* loader/cache/CachedImage.h:
* loader/cache/CachedResourceClient.h:
* loader/cache/CachedXSLStyleSheet.cpp:
* loader/cache/CachedXSLStyleSheet.h:
* platform/chromium/ClipboardChromium.h:
* platform/gtk/ClipboardGtk.h:
* platform/mac/ClipboardMac.h:
* platform/qt/ClipboardQt.h:
* platform/win/ClipboardWin.h:
* rendering/RenderObject.cpp:
* rendering/RenderObject.h:
* svg/SVGFEImageElement.h:
* svg/SVGFontFaceUriElement.h:
* xml/XSLImportRule.h:
2011-10-10 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r97087.
http://trac.webkit.org/changeset/97087
https://bugs.webkit.org/show_bug.cgi?id=69805
failing assert on debug builds (Requested by simonjam on
#webkit).
* bindings/ScriptControllerBase.cpp:
(WebCore::ScriptController::executeIfJavaScriptURL):
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::replaceDocument):
(WebCore::DocumentWriter::begin):
* loader/DocumentWriter.h:
2011-10-10 Adam Barth <abarth@webkit.org>
[V8] CodeGeneratorV8 shouldn't hardcode the list of ActiveDOMObjects
https://bugs.webkit.org/show_bug.cgi?id=69792
Reviewed by Nate Chapin.
We used to hard code the list of active DOM objects in the code
generator, but now we have an IDL attribute. This patch switches the
code generator over to using the IDL attribute.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateNormalAttrGetter):
(GenerateImplementation):
(GetDomMapFunction):
2011-10-10 Nico Weber <thakis@chromium.org>
PluginDocumentParser uses incorrect syntax for background color
https://bugs.webkit.org/show_bug.cgi?id=69694
Reviewed by Adam Barth.
* html/PluginDocument.cpp:
(WebCore::PluginDocumentParser::createDocumentStructure):
2011-10-10 Ryosuke Niwa <rniwa@webkit.org>
REGRESSION(r96870): editing/pasteboard/smart-paste-008.html fails on non-Mac
https://bugs.webkit.org/show_bug.cgi?id=69587
Reviewed by Enrica Casucci.
Insert a space at the correct offset when startNode is a text node.
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::addSpacesForSmartReplace):
2011-09-20 Jer Noble <jer.noble@apple.com>
MediaControlSeekButtonElement should support seeking by changing the playback rate.
https://bugs.webkit.org/show_bug.cgi?id=63595
Reviewed by Eric Carlson.
Test: media/video-controls-scanning.html
Add a new property to HTMLMediaElement, supportsScanning(), which returns whether the
element is capable of playing its media at a rate greater than 1x. HTMLMediaElement passes
this call through to MediaPlayer and MediaPlayerPrivate. If this property returns true, the
built-in scanning controls can prefer to scan by changing the playbackRate, rather than by
repeatedly seeking small amounts of time. Unless overridden by specific media engines, this
property defaults to "false".
* html/HTMLMediaElement.h:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::supportsScanning): Added. Calls through to MediaPlayer.
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::supportsScanning): Added. Calls through to MediaPlayerPrivate.
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::supportsScanning): Added. Defaults to "false".
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
(WebCore::MediaPlayerPrivateAVFoundation::supportsScanning): Added.
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
(WebCore::MediaPlayerPrivateQTKit::supportsScanning): Added.
MediaControlSeekButtonElement now queries HTMLMediaElement::supportsScanning() to see if the
media element can implement its seeking behavior by scanning the media at greater than 1x
rate. Note whether the media was playing or paused when the seek begins, so that the playing
state can be restored when seeking ends. Instead of capturing the mouse after mouseDown,
the seek button now responds to setActive() and begins seeking when the button is active
and stops when it becomes inactive.
Some behaviors have changed: clicking on the seek button no longer causes the media element
to pause; the media will end in the same state it began after the click. cStepTime has been
eliminated; Clicking the seek button will always skip by at least cSeekTime, or 0.2s.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement): Initialize new
ivars.
(WebCore::MediaControlSeekButtonElement::defaultEventHandler): Mark mouseDown and mouseUp
as defaultHandled, so as not to trigger drag start and drag end actions.
(WebCore::MediaControlSeekButtonElement::setActive): Call startTimer or stopTimer based
on whether the button is active or not.
(WebCore::MediaControlSeekButtonElement::startTimer): Determine whether to scan or skip
and start the seekTimer.
(WebCore::MediaControlSeekButtonElement::stopTimer): Restore the playing state and
stop the timer.
(WebCore::MediaControlSeekButtonElement::seekTimerFired): Depending on whether we're
scanning or skipping, jump ahead or change the playback rate.
* html/shadow/MediaControlElements.h:
2011-10-10 Mark Hahnenberg <mhahnenberg@apple.com>
Remove getCallDataVirtual methods
https://bugs.webkit.org/show_bug.cgi?id=69186
Reviewed by Geoffrey Garen.
No new tests.
Removed all getCallDataVirtual methods and replaced their call sites
with an explicit lookup in the MethodTable.
* WebCore.exp.in:
* bindings/js/JSCallbackData.cpp:
(WebCore::JSCallbackData::invokeCallback):
* bindings/js/JSCustomXPathNSResolver.cpp:
(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
* bindings/js/JSErrorHandler.cpp:
(WebCore::JSErrorHandler::handleEvent):
* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::handleEvent):
* bindings/js/JSHTMLAllCollectionCustom.cpp:
* bindings/js/JSHTMLAppletElementCustom.cpp:
* bindings/js/JSHTMLEmbedElementCustom.cpp:
* bindings/js/JSHTMLObjectElementCustom.cpp:
* bindings/js/JSInjectedScriptHostCustom.cpp:
(WebCore::JSInjectedScriptHost::evaluate):
* bindings/js/JSPluginElementFunctions.cpp:
(WebCore::runtimeObjectGetCallData):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
* bridge/objc/objc_runtime.h:
* bridge/objc/objc_runtime.mm:
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::QtRuntimeConnectionMethod::call):
(JSC::Bindings::isJavaScriptFunction):
* bridge/qt/qt_runtime.h:
(JSC::Bindings::QtRuntimeMetaMethod::create):
(JSC::Bindings::QtRuntimeMetaMethod::createStructure):
(JSC::Bindings::QtRuntimeConnectionMethod::create):
(JSC::Bindings::QtRuntimeConnectionMethod::createStructure):
* bridge/runtime_method.cpp:
* bridge/runtime_method.h:
* bridge/runtime_object.cpp:
* bridge/runtime_object.h:
2011-10-06 Jer Noble <jer.noble@apple.com>
media/video-loop.html is failing on Lion because of negative currentTime()
https://bugs.webkit.org/show_bug.cgi?id=69468
Reviewed by Darin Adler.
No new tests. Covered by media/video-loop.html test.
AVFoundation will occasionally return small, negative current times during loop operations.
Clean up these negative times before returning the currentTime.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::currentTime):
2011-10-10 Jeremy Apthorp <jeremya@chromium.org>
Exiting fullscreen shouldn't crash if the element that was fullscreened
had associated anonymous blocks.
https://bugs.webkit.org/show_bug.cgi?id=68503
Reviewed by Simon Fraser.
Test: fullscreen/full-screen-render-inline.html
Test: fullscreen/parent-flow-inline-with-block-child.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::moveChildTo):
(WebCore::RenderBlock::moveChildrenTo):
* rendering/RenderBlock.h:
(WebCore::RenderBlock::moveChildTo):
(WebCore::RenderBlock::moveAllChildrenTo):
(WebCore::RenderBlock::moveChildrenTo):
* rendering/RenderFullScreen.cpp:
(RenderFullScreen::unwrapRenderer):
Move all children back to the parent, not just the firstChild.
2011-10-10 Sergey Glazunov <serg.glazunov@gmail.com>
ScriptController::executeIfJavaScriptURL gets confused by synchronous frame loads
https://bugs.webkit.org/show_bug.cgi?id=69777
Reviewed by Adam Barth.
Test: http/tests/security/xss-DENIED-synchronous-frame-load-in-javascript-url.html
* bindings/ScriptControllerBase.cpp:
(WebCore::ScriptController::executeIfJavaScriptURL):
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::replaceDocument):
(WebCore::DocumentWriter::begin):
* loader/DocumentWriter.h:
2011-10-10 Nayan Kumar K <nayankk@motorola.com>
Add missing ifdef for JAVASCRIPT_DEBUGGER feature.
https://bugs.webkit.org/show_bug.cgi?id=69758
Reviewed by Adam Barth.
No new tests added since this is a build failure fix.
* bindings/v8/custom/V8ScriptProfileCustom.cpp:
* bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
2011-10-10 Simon Fraser <simon.fraser@apple.com>
REGRESSION(96070) 25% intl1 PLT regression from scrollbar invalidation
https://bugs.webkit.org/show_bug.cgi?id=69238
Reviewed by Darin Adler.
Fix PLT regression from additional scrollbars invalidations.
Don't invalidate the scrollbar rect from setHasHorizontalScrollbar()
and setHasVerticalScrollbar(), because this is called during FrameView
teardown, at which point the invalidation is redundant.
Instead, invalidate from ScrollView::updateScrollbars(), which is
called only when scrollbars change because of size or layout
changes.
* platform/ScrollView.cpp:
(WebCore::ScrollView::setHasHorizontalScrollbar):
(WebCore::ScrollView::setHasVerticalScrollbar):
(WebCore::ScrollView::updateScrollbars):
2011-10-10 Abhishek Arya <inferno@chromium.org>
Style for updated due to inability to locate
:before content in presence of listmarkers and runins.
https://bugs.webkit.org/show_bug.cgi?id=68624
Reviewed by Dan Bernstein.
Tests: fast/lists/inline-before-content-after-list-marker.html
fast/runin/runin-between-list-marker-and-before-content.html
fast/runin/runin-into-div-with-float-child.html
fast/runin/runin-not-go-into-float.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::handleRunInChild): Fix as per spec that
we should not be skipping over floating/positioned renderers to
push runins into neighbouring block. This matches Opera renderings.
* rendering/RenderObject.cpp: Add const to parameter variable
to make call from beforePseudoElementRenderer easier. Also matches
CounterNode.h definition.
(WebCore::RenderObject::nextInPreOrder):
(WebCore::RenderObject::nextInPreOrderAfterChildren):
* rendering/RenderObject.h: Same const addition.
* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::beforePseudoElementRenderer):
Remove skipping of floating/positioned renderers, similar to
handleRunIn. Revert code change in r94857 and add better next
sibling iterator. This addresses the layouttest in r94857 where
:before content is in its own anonymous rendertable.
2011-10-10 Abhishek Arya <inferno@chromium.org>
Handle insertion into an anonymous table part that
is followed by a non-anonymous block correctly.
https://bugs.webkit.org/show_bug.cgi?id=69536
Reviewed by Dan Bernstein.
Tests: fast/table/table-insert-before-non-anonymous-block.html
* rendering/RenderTable.cpp:
(WebCore::RenderTable::addChild):
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::addChild):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::addChild):
(WebCore::RenderTableSection::splitColumn):
2011-10-10 Kent Tamura <tkent@chromium.org>
Make static functions in HTMLSelectElement.cpp member functions of HTMLSelectElement class
https://bugs.webkit.org/show_bug.cgi?id=69755
Reviewed by Ryosuke Niwa.
No new tests, just a refactoring.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::nextValidIndex):
Make this a static member function of HTMLSelectElement.
(WebCore::HTMLSelectElement::nextSelectableListIndex):
Make this a member function of HTMLSelectElement.
(WebCore::HTMLSelectElement::previousSelectableListIndex): ditto.
(WebCore::HTMLSelectElement::firstSelectableListIndex): ditto.
(WebCore::HTMLSelectElement::lastSelectableListIndex): ditto.
(WebCore::HTMLSelectElement::nextSelectableListIndexPageAway): ditto.
(WebCore::HTMLSelectElement::selectAll): Update callsite of the above functions.
(WebCore::HTMLSelectElement::setSelectedIndexInternal): ditto.
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler): ditto.
* html/HTMLSelectElement.h:
- Add the above function declarations.
- Move SkipDirection definition from HTMLSelectElement.cpp.
2011-10-10 Pavel Feldman <pfeldman@google.com>
Web Inspector: annotate DOMAgent, Debugger(Presentation)Model with types.
https://bugs.webkit.org/show_bug.cgi?id=69726
Reviewed by Yury Semikhatsky.
* inspector/compile-front-end.sh:
* inspector/front-end/ApplicationCacheItemsView.js:
(WebInspector.ApplicationCacheItemsView):
* inspector/front-end/AuditsPanel.js:
(WebInspector.AuditsPanel):
* inspector/front-end/BreakpointManager.js:
(WebInspector.BreakpointManager.prototype._breakpointResolved):
* inspector/front-end/CSSStyleModel.js:
* inspector/front-end/CompilerSourceMapping.js:
(WebInspector.CompilerSourceMapping.prototype.compiledLocationToSourceLocation):
(WebInspector.CompilerSourceMapping.prototype.sourceLocationToCompiledLocation):
(WebInspector.CompilerSourceMapping.prototype.sources):
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.prototype._completions.evaluated):
(WebInspector.ConsoleView.prototype._completions.receivedPropertyNamesFromEval):
(WebInspector.ConsoleView.prototype.evalInInspectedWindow):
* inspector/front-end/CookieItemsView.js:
(WebInspector.CookieItemsView):
* inspector/front-end/DOMAgent.js:
(WebInspector.DOMNode.prototype.isXMLNode):
(WebInspector.DOMDocument):
(WebInspector.DOMAgent.prototype._dispatchWhenDocumentAvailable.onDocumentAvailable):
(WebInspector.DOMAgent.prototype._dispatchWhenDocumentAvailable):
(WebInspector.DOMDispatcher.prototype.characterDataModified):
(WebInspector.DOMDispatcher.prototype.childNodeCountUpdated):
(WebInspector.DOMDispatcher.prototype.childNodeInserted):
(WebInspector.DOMDispatcher.prototype.childNodeRemoved):
* inspector/front-end/DOMStorageItemsView.js:
(WebInspector.DOMStorageItemsView):
* inspector/front-end/DatabaseTableView.js:
(WebInspector.DatabaseTableView):
* inspector/front-end/DebuggerModel.js:
(WebInspector.DebuggerModel):
(WebInspector.DebuggerPausedDetails):
(WebInspector.DebuggerModel.prototype.reset):
(WebInspector.DebuggerModel.prototype.get callFrames):
(WebInspector.DebuggerModel.prototype._pausedScript):
(WebInspector.DebuggerModel.prototype._resumedScript):
(WebInspector.DebuggerModel.prototype._parsedScriptSource):
(WebInspector.DebuggerModel.prototype._failedToParseScriptSource):
(WebInspector.DebuggerDispatcher.prototype.scriptParsed):
(WebInspector.DebuggerDispatcher.prototype.breakpointResolved):
* inspector/front-end/DebuggerPresentationModel.js:
(WebInspector.DebuggerPresentationModel.prototype._parsedScriptSource):
(WebInspector.DebuggerPresentationModel.prototype._failedToParseScriptSource):
(WebInspector.DebuggerPresentationModel.prototype._sourceMappingUpdated):
(WebInspector.DebuggerPresentationModel.prototype._updateBreakpointsAfterLiveEdit):
(WebInspector.DebuggerPresentationModel.prototype._consoleMessageAdded):
(WebInspector.DebuggerPresentationModel.prototype._createPresentationMessage):
(WebInspector.PresentationConsoleMessage):
(WebInspector.PresentationCallFrame.prototype.evaluate):
(WebInspector.DebuggerPresentationModel.Linkifier.prototype._updateSourceAnchors):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel):
(WebInspector.ElementsPanel.prototype._documentUpdated.selectLastSelectedNode):
(WebInspector.ElementsPanel.prototype._documentUpdated):
* inspector/front-end/NetworkPanel.js:
* inspector/front-end/Object.js:
(WebInspector.Object.prototype.dispatchEventToListeners):
(WebInspector.Event):
(WebInspector.Event.prototype.stopPropagation):
(WebInspector.Event.prototype.preventDefault):
* inspector/front-end/RawSourceCode.js:
(WebInspector.RawSourceCode.SourceMapping):
(WebInspector.RawSourceCode.SourceMapping.prototype.rawLocationToUILocation):
(WebInspector.RawSourceCode.SourceMapping.prototype.uiLocationToRawLocation):
(WebInspector.RawSourceCode.PlainSourceMapping.prototype.rawLocationToUILocation):
(WebInspector.RawSourceCode.PlainSourceMapping.prototype.uiLocationToRawLocation):
(WebInspector.RawSourceCode.FormattedSourceMapping.prototype.rawLocationToUILocation):
(WebInspector.RawSourceCode.CompilerSourceMapping.prototype.rawLocationToUILocation):
(WebInspector.RawSourceCode.CompilerSourceMapping.prototype.uiLocationToRawLocation):
* inspector/front-end/Script.js:
(WebInspector.Script):
(WebInspector.Script.prototype.requestSource):
(WebInspector.Script.prototype.searchInContent):
(WebInspector.Script.prototype.editSource):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype.evaluateInSelectedCallFrame):
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.prototype._createStatusbarButtons):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode):
(WebInspector.ContentProvider.SearchMatch):
* inspector/front-end/WatchExpressionsSidebarPane.js:
(WebInspector.WatchExpressionsSection.prototype.update):
* inspector/front-end/externs.js:
* inspector/generate-protocol-externs:
2011-10-10 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Linkifier.reset throw an exception if it is called after reset of debuggerPresentationModel.
https://bugs.webkit.org/show_bug.cgi?id=69756
Reviewed by Yury Semikhatsky.
* inspector/front-end/DebuggerPresentationModel.js:
(WebInspector.DebuggerPresentationModel.Linkifier.prototype.reset):
2011-09-28 Pavel Podivilov <podivilov@chromium.org>
Web Inspector: RawSourceCode could be mapped to multiple sources.
https://bugs.webkit.org/show_bug.cgi?id=68526
Replace SourceMapping.uiSourceCode with SourceMapping.uiSourceCodeList as there could be more
then one UISourceCode associated with a RawSourceCode.
Reviewed by Pavel Feldman.
* inspector/front-end/DebuggerPresentationModel.js:
(WebInspector.DebuggerPresentationModel.prototype._sourceMappingUpdated):
(WebInspector.DebuggerPresentationModel.prototype._updateSourceMapping):
(WebInspector.DebuggerPresentationModel.prototype._restoreBreakpoints):
(WebInspector.PresentationCallFrame.prototype.get url):
(WebInspector.DebuggerPresentationModelResourceBinding.prototype.canSetContent):
(WebInspector.DebuggerPresentationModelResourceBinding.prototype.setContent):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._uiSourceCodeReplaced):
* inspector/front-end/SourceFile.js:
(WebInspector.RawSourceCode.prototype._saveSourceMapping):
(WebInspector.RawSourceCode.PlainSourceMapping):
(WebInspector.RawSourceCode.PlainSourceMapping.prototype.rawLocationToUILocation):
(WebInspector.RawSourceCode.PlainSourceMapping.prototype.uiSourceCodeList):
(WebInspector.RawSourceCode.FormattedSourceMapping):
(WebInspector.RawSourceCode.FormattedSourceMapping.prototype.rawLocationToUILocation):
(WebInspector.RawSourceCode.FormattedSourceMapping.prototype.uiSourceCodeList):
2011-10-10 Andreas Kling <kling@webkit.org>
Shrink RenderLayer and ScrollableArea.
https://bugs.webkit.org/show_bug.cgi?id=69759
Reviewed by Antti Koivisto.
Rearrange the members of RenderLayer and its base class ScrollableArea
to maximize struct packing, shrinking RenderLayer by one CPU word on
32-bit (and two on 64-bit.)
This reduces memory consumption by 134 kB (on 64-bit) when loading the
full HTML5 spec.
* platform/ScrollableArea.h:
(WebCore::ScrollableArea::verticalScrollElasticity):
(WebCore::ScrollableArea::horizontalScrollElasticity):
(WebCore::ScrollableArea::scrollbarOverlayStyle):
Cast the now-bitfield members to the appropriate enum types.
* rendering/RenderLayer.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
Move shouldBeNormalFlowOnly() call out of initializer list since it
depends on m_renderer being initialized.
2011-10-10 Cary Clark <caryclark@google.com>
[Skia on Chromium Mac] Set canExpandAroundIdeographsInComplexText to true
https://bugs.webkit.org/show_bug.cgi?id=69656
https://bugs.webkit.org/show_bug.cgi?id=62987
https://bugs.webkit.org/show_bug.cgi?id=62889
Reviewed by Stephen White.
Skia on Linux and Windows uses different font engines from
Skia on Mac. After determining that the underlying CoreText
can handle it, enabling this allows justification to work
correctly.
Tests: fast/text/justify-ideograph-complex.html
* platform/graphics/skia/FontSkia.cpp:
(WebCore::Font::canExpandAroundIdeographsInComplexText):
2011-10-10 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: memory leak in Resource panel.
https://bugs.webkit.org/show_bug.cgi?id=69754
Reviewed by Yury Semikhatsky.
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel.prototype.reset):
* inspector/front-end/View.js:
(WebInspector.View.prototype.childViews):
2011-10-06 Pavel Podivilov <podivilov@chromium.org>
Web Inspector: saving JavaScript after live edit resets scroller position.
https://bugs.webkit.org/show_bug.cgi?id=69340
Do not recreate SourceFrame when content is changed. Instead, update text model in existing SourceFrame.
Reviewed by Yury Semikhatsky.
* inspector/front-end/DebuggerPresentationModel.js:
(WebInspector.DebuggerPresentationModel.prototype.setScriptSource.didEditScriptSource):
(WebInspector.DebuggerPresentationModel.prototype.setScriptSource):
* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame):
* inspector/front-end/RawSourceCode.js:
(WebInspector.RawSourceCode.prototype.setCompilerSourceMappingProvider):
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame.prototype._setReadOnly):
(WebInspector.SourceFrame.prototype.contentChanged):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode.prototype.contentChanged):
2011-10-10 Ilya Tikhonovsky <loislo@chromium.org>
Unreviewed test fix for r97050.
* inspector/front-end/DebuggerPresentationModel.js:
(WebInspector.DebuggerPresentationModel.prototype._debuggerReset):
2011-10-10 Andreas Kling <kling@webkit.org>
Shrink RenderListItem on 64-bit.
https://bugs.webkit.org/show_bug.cgi?id=69751
Reviewed by Kenneth Rohde Christiansen.
Rearrange members to utilize the padding at the end of RenderBlock.
This shrinks RenderListItem by 8 bytes on 64-bit, reducing memory consumption
by 60 kB when loading the full HTML5 spec.
* rendering/RenderListItem.h:
2011-10-10 Andreas Kling <kling@webkit.org>
Shrink RootInlineBox.
https://bugs.webkit.org/show_bug.cgi?id=69707
Reviewed by Antti Koivisto.
Move the bitfields from RootInlineBox up into its base class (InlineFlowBox.)
This shrinks RootInlineBox by one CPU word without growing InlineFlowBox.
Enum bitfields were changed to "unsigned" for the MSVC signedness quirk.
Also move one 32-bit member to the head of RootInlineBox so it falls into the
padding at the end of InlineFlowBox on 64-bit.
This reduces memory consumption by 780 kB (on 64-bit) when loading the full
HTML5 spec.
* rendering/InlineFlowBox.h:
(WebCore::InlineFlowBox::InlineFlowBox):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::RootInlineBox):
(WebCore::RootInlineBox::lineBreakBidiStatus):
* rendering/RootInlineBox.h:
2011-10-10 Pavel Podivilov <podivilov@chromium.org>
Unreviewed, attempt to fix chromium mac build after r97034.
* platform/ScrollAnimatorNone.h:
2011-10-10 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: small memory leak in scripts panel.
https://bugs.webkit.org/show_bug.cgi?id=69744
Scripts panel doesn't clean the list of child views.
Reviewed by Yury Semikhatsky.
* inspector/front-end/DebuggerPresentationModel.js:
(WebInspector.DebuggerPresentationModel.prototype._debuggerReset):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
2011-10-07 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: allow to start WorkerContext paused
https://bugs.webkit.org/show_bug.cgi?id=69635
Allow to pause WorkerContext on start.
Reviewed by Pavel Feldman.
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::setPauseOnNextStatement):
* bindings/v8/WorkerScriptDebugServer.cpp:
(WebCore::WorkerScriptDebugServer::runMessageLoopOnPause):
* bindings/v8/WorkerScriptDebugServer.h:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
* inspector/InspectorInstrumentation.h:
* inspector/InspectorRuntimeAgent.cpp:
(WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
(WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
(WebCore::InspectorRuntimeAgent::pauseWorkerContext): this method will start
running worker message loop in "debug" mode, i.e. it will process only inspector
tasks until method InspectorRuntimeAgent::resume is called.
(WebCore::InspectorRuntimeAgent::resume):
* inspector/InspectorRuntimeAgent.h:
* inspector/WorkerDebuggerAgent.cpp:
* inspector/WorkerDebuggerAgent.h:
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
(WebCore::WorkerInspectorController::resume): method which is called from WebKit layer
when it is known that inspector state was restored and it is OK to resume worker execution.
* inspector/WorkerInspectorController.h:
* workers/DedicatedWorkerThread.cpp:
(WebCore::DedicatedWorkerThread::create):
(WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
* workers/DedicatedWorkerThread.h:
* workers/SharedWorkerThread.cpp:
(WebCore::SharedWorkerThread::create):
(WebCore::SharedWorkerThread::SharedWorkerThread):
* workers/SharedWorkerThread.h:
* workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::startWorkerContext):
(WebCore::WorkerMessagingProxy::disconnectFromInspector):
(WebCore::WorkerMessagingProxy::sendMessageToInspector):
* workers/WorkerThread.cpp:
(WebCore::WorkerThreadStartupData::create):
(WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
(WebCore::WorkerThread::WorkerThread): WorkerThread is passed a booleand flag indicating
whether the context should be paused and wait for explicit resume command before it
starts running its script.
(WebCore::WorkerThread::workerThread):
* workers/WorkerThread.h:
2011-10-10 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r97045.
http://trac.webkit.org/changeset/97045
https://bugs.webkit.org/show_bug.cgi?id=69746
makes apple bots very crashy :( (Requested by kling on
#webkit).
* css/CSSStyleApplyProperty.cpp:
(WebCore::ApplyPropertyColor::applyInheritValue):
* page/animation/AnimationBase.cpp:
(WebCore::PropertyWrapperMaybeInvalidColor::PropertyWrapperMaybeInvalidColor):
(WebCore::PropertyWrapperSVGPaint::PropertyWrapperSVGPaint):
(WebCore::AnimationBase::ensurePropertyMap):
* platform/graphics/Color.h:
(WebCore::Color::Color):
* rendering/style/BorderValue.h:
(WebCore::BorderValue::BorderValue):
(WebCore::BorderValue::isTransparent):
(WebCore::BorderValue::operator==):
(WebCore::BorderValue::color):
* rendering/style/OutlineValue.h:
(WebCore::OutlineValue::operator==):
* rendering/style/RenderStyle.h:
(WebCore::InheritedFlags::setBorderLeftColor):
(WebCore::InheritedFlags::setBorderRightColor):
(WebCore::InheritedFlags::setBorderTopColor):
(WebCore::InheritedFlags::setBorderBottomColor):
(WebCore::InheritedFlags::setOutlineColor):
(WebCore::InheritedFlags::setColumnRuleColor):
(WebCore::InheritedFlags::fillPaintColor):
(WebCore::InheritedFlags::strokePaintColor):
(WebCore::InheritedFlags::borderLeftColor):
(WebCore::InheritedFlags::borderRightColor):
(WebCore::InheritedFlags::borderTopColor):
(WebCore::InheritedFlags::borderBottomColor):
(WebCore::InheritedFlags::backgroundColor):
(WebCore::InheritedFlags::color):
(WebCore::InheritedFlags::columnRuleColor):
(WebCore::InheritedFlags::outlineColor):
(WebCore::InheritedFlags::textEmphasisColor):
(WebCore::InheritedFlags::textFillColor):
(WebCore::InheritedFlags::textStrokeColor):
(WebCore::InheritedFlags::stopColor):
(WebCore::InheritedFlags::floodColor):
(WebCore::InheritedFlags::lightingColor):
2011-10-06 Andreas Kling <kling@webkit.org>
Shrink BorderValue.
https://bugs.webkit.org/show_bug.cgi?id=69521
Reviewed by Antti Koivisto.
Unroll BorderValue's Color member so we can pack the color's validity flag
in BorderValue's bitfield.
This shrinks BorderValue by 32 bit, which in turn shrinks BorderData by
16 bytes. This reduces memory consumption by 760 kB when loading the full
HTML5 spec.
* platform/graphics/Color.h:
(WebCore::Color::Color):
Allow construction of Color objects with specific validity.
* rendering/style/BorderValue.h:
(WebCore::BorderValue::BorderValue):
(WebCore::BorderValue::isTransparent):
(WebCore::BorderValue::operator==):
(WebCore::BorderValue::setColor):
(WebCore::BorderValue::color):
* rendering/style/OutlineValue.h:
(WebCore::OutlineValue::operator==):
Unroll m_color into BorderValue by splitting it into an RGBA32 and a bool.
Made those variables private and added color(), setColor() accessors.
* rendering/style/RenderStyle.h:
(WebCore::InheritedFlags::setBorderLeftColor):
(WebCore::InheritedFlags::setBorderRightColor):
(WebCore::InheritedFlags::setBorderTopColor):
(WebCore::InheritedFlags::setBorderBottomColor):
(WebCore::InheritedFlags::setOutlineColor):
(WebCore::InheritedFlags::setColumnRuleColor):
Added a SET_BORDERVALUE_COLOR macro and use that instead of SET_VAR
when setting BorderValue colors.
(WebCore::InheritedFlags::fillPaintColor):
(WebCore::InheritedFlags::strokePaintColor):
(WebCore::InheritedFlags::borderLeftColor):
(WebCore::InheritedFlags::borderRightColor):
(WebCore::InheritedFlags::borderTopColor):
(WebCore::InheritedFlags::borderBottomColor):
(WebCore::InheritedFlags::backgroundColor):
(WebCore::InheritedFlags::color):
(WebCore::InheritedFlags::columnRuleColor):
(WebCore::InheritedFlags::outlineColor):
(WebCore::InheritedFlags::textEmphasisColor):
(WebCore::InheritedFlags::textFillColor):
(WebCore::InheritedFlags::textStrokeColor):
(WebCore::InheritedFlags::stopColor):
(WebCore::InheritedFlags::floodColor):
(WebCore::InheritedFlags::lightingColor):
Made color getters return "Color" instead of "const Color&" since
BorderValue no longer has an actual object to return the reference to.
* css/CSSStyleApplyProperty.cpp:
(WebCore::ApplyPropertyColor::applyInheritValue):
* page/animation/AnimationBase.cpp:
(WebCore::PropertyWrapperColor::PropertyWrapperColor):
(WebCore::PropertyWrapperColor::blend):
(WebCore::PropertyWrapperMaybeInvalidColor::PropertyWrapperMaybeInvalidColor):
(WebCore::PropertyWrapperSVGPaint::PropertyWrapperSVGPaint):
(WebCore::AnimationBase::ensurePropertyMap):
Adapt to RenderStyle color getters now returning "Color" instead of
"const Color&".
2011-10-09 Yury Semikhatsky <yurys@chromium.org>
Missing m_notificationPresenter initialization in WorkerThread constructor
https://bugs.webkit.org/show_bug.cgi?id=69741
Added missing m_notificationPresenter(0)
Reviewed by Pavel Feldman.
* workers/WorkerThread.cpp:
(WebCore::WorkerThread::WorkerThread):
2011-10-09 Daniel Bates <dbates@webkit.org>
Another attempt to fix the Leopard Intel Debug build after changeset 97034 <http://trac.webkit.org/changeset/97034>
(https://bugs.webkit.org/show_bug.cgi?id=68035)
* page/FrameView.cpp:
(WebCore::FrameView::zoomAnimatorTransformChanged): Explicitly convert a double precision result
to a single precision result. I am unsure if this fix is correct. We need to look into this some
more. See <https://bugs.webkit.org/show_bug.cgi?id=69739> for more details.
2011-10-09 Daniel Bates <dbates@webkit.org>
Attempt to fix the Leopard Intel Debug build after changeset 97034 <http://trac.webkit.org/changeset/97034>
(https://bugs.webkit.org/show_bug.cgi?id=68035)
* page/FrameView.cpp:
(WebCore::FrameView::zoomAnimatorTransformChanged): Explicitly convert double precision result to
an integer. I am unsure if this fix is correct. We need to look into this some more. See
<https://bugs.webkit.org/show_bug.cgi?id=69739> for more details.
2011-10-09 Luke Macpherson <macpherson@chromium.org>
Fix Lion, Leopard and Snow Leopard builds after changeset 97034 <http://trac.webkit.org/changeset/97034>
(https://bugs.webkit.org/show_bug.cgi?id=68035)
https://bugs.webkit.org/show_bug.cgi?id=69735
Reviewed by Daniel Bates.
* testing/Internals.cpp:
Mark unused parameters to prevent compile errors when GESTURE_EVENTS and SMOOTH_SCROLLING are disabled.
(WebCore::Internals::setEnableScrollAnimator):
(WebCore::Internals::setZoomAnimatorTransform):
(WebCore::Internals::setZoomParameters):
2011-10-09 Kent Tamura <tkent@chromium.org>
Remove redundant code of HTMLSelectElement.
https://bugs.webkit.org/show_bug.cgi?id=69701
Reviewed by Darin Adler.
No new tests, just a refactoring.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::deselectItems):
Rename inner deselectItems() to deselectItemsWithoutValidation().
(WebCore::HTMLSelectElement::setSelectedIndex):
Rename a callsite of another setSelectedIndex() to setSelectedIndexInternal().
(WebCore::HTMLSelectElement::setSelectedIndexByUser):
ditto, and update a callsite of updateSelectedState().
(WebCore::HTMLSelectElement::listBoxSelectItem):
Update a callsite of updateSelectedState().
(WebCore::HTMLSelectElement::activeSelectionEndListIndex):
Update a callsite of lastSelectedListIndex().
(WebCore::HTMLSelectElement::selectAll):
Update callsites of functions which are changed to non-static.
(WebCore::HTMLSelectElement::saveLastSelection):
Merge a static function and a non-static function.
(WebCore::HTMLSelectElement::setActiveSelectionAnchorIndex): ditto.
(WebCore::HTMLSelectElement::setActiveSelectionEndIndex): ditto.
(WebCore::HTMLSelectElement::updateListBoxSelection): ditto.
(WebCore::HTMLSelectElement::listBoxOnChange): ditto.
(WebCore::HTMLSelectElement::menuListOnChange): ditto.
(WebCore::HTMLSelectElement::scrollToSelection): ditto.
(WebCore::HTMLSelectElement::setOptionsChangedOnRenderer): Made this non-static.
(WebCore::HTMLSelectElement::setRecalcListItems):
Merge a static function and a non-static function.
(WebCore::HTMLSelectElement::selectedIndex): ditto.
(WebCore::HTMLSelectElement::setSelectedIndexInternal):
Made this non-static, and renamed from setSelectedIndex() because
of conflict with an existing function.
(WebCore::HTMLSelectElement::optionToListIndex):
Merge a static function and a non-static function.
(WebCore::HTMLSelectElement::listToOptionIndex): ditto.
(WebCore::HTMLSelectElement::dispatchFocusEvent):
Update a callsite of function which is changed to no-staic.
(WebCore::HTMLSelectElement::dispatchBlurEvent): ditto.
(WebCore::HTMLSelectElement::deselectItemsWithoutValidation):
Made this non-static, and renamed from deselectItems() to avoid conflict.
(WebCore::HTMLSelectElement::restoreFormControlState):
Update a callsite of function which is changed to no-staic.
(WebCore::HTMLSelectElement::reset): ditto.
(WebCore::HTMLSelectElement::platformHandleKeydownEvent): Made this non-static.
(WebCore::HTMLSelectElement::menuListDefaultEventHandler): ditto.
(WebCore::HTMLSelectElement::updateSelectedState): ditto.
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler): ditto.
(WebCore::HTMLSelectElement::defaultEventHandler):
Merged a static function and a non-static function.
(WebCore::HTMLSelectElement::lastSelectedListIndex): Made this non-static.
(WebCore::HTMLSelectElement::typeAheadFind): ditto.
(WebCore::HTMLSelectElement::accessKeySetSelectedIndex): ditto.
* html/HTMLSelectElement.h:
* html/HTMLSelectElementWin.cpp:
(WebCore::HTMLSelectElement::platformHandleKeydownEvent): Made this non-static.
2011-10-09 Adam Barth <abarth@webkit.org>
CSP should log unrecognized directives to the console
https://bugs.webkit.org/show_bug.cgi?id=69728
Reviewed by Sam Weinig.
Several of the web developers who have been experimenting with CSP have
run into trouble with directives we don't support. For example, one
developer was confused for a while why image-src didn't do what he
expected. Logging a message to the console will help these folks
figure out what's going on.
* page/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::reportUnrecognizedDirective):
(WebCore::ContentSecurityPolicy::addDirective):
* page/ContentSecurityPolicy.h:
2011-10-09 W. James MacLean <wjmaclean@chromium.org>
[chromium] Zoom animator front-end
https://bugs.webkit.org/show_bug.cgi?id=68035
Adds necessary components to ScrollAnimatorNone to support a zoom animation
feature. Includes test infrastructure via testing/Internals to capture
in-progress texture scaling (zoom-animator-scale-test.html) as well as a
final view --- after pageScaleFactor has been applied --- in zoom-animator-scale-test2.html.
Removes temporary test fields from Settings.
Reviewed by Kenneth Russell.
Test: platform/chromium/compositing/zoom-animator-scale-test2.html
* page/EventHandler.cpp:
(WebCore::EventHandler::handleGestureEvent):
* page/FrameView.cpp:
(WebCore::FrameView::zoomAnimatorTransformChanged):
* page/FrameView.h:
* page/Settings.cpp:
(WebCore::Settings::Settings):
* page/Settings.h:
* platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::ScrollAnimator):
(WebCore::ScrollAnimator::notifyZoomChanged):
(WebCore::ScrollAnimator::zoomTranslation):
(WebCore::ScrollAnimator::resetZoom):
(WebCore::ScrollAnimator::setZoomParametersForTest):
* platform/ScrollAnimator.h:
(WebCore::ScrollAnimator::zoomScale):
* platform/ScrollAnimatorNone.cpp:
(WebCore::ScrollAnimatorNone::ZoomData::ZoomData):
(WebCore::ScrollAnimatorNone::ZoomData::animateZoom):
(WebCore::ScrollAnimatorNone::ScrollAnimatorNone):
(WebCore::ScrollAnimatorNone::zoom):
(WebCore::ScrollAnimatorNone::handleGestureEvent):
(WebCore::ScrollAnimatorNone::animationTimerFired):
* platform/ScrollAnimatorNone.h:
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::zoomAnimatorTransformChanged):
* platform/ScrollableArea.h:
* testing/Internals.cpp:
(WebCore::Internals::setEnableScrollAnimator):
(WebCore::Internals::setZoomAnimatorTransform):
(WebCore::Internals::getPageScaleFactor):
(WebCore::Internals::setZoomParameters):
* testing/Internals.h:
* testing/Internals.idl:
2011-10-09 Dan Bernstein <mitz@apple.com>
<rdar://problem/9484496> REGRESSION (WebKit2): Checkboxes and radio buttons are drawn 1 pixel too high, not repainted properly
https://bugs.webkit.org/show_bug.cgi?id=69727
Reviewed by Anders Carlsson.
* platform/mac/ThemeMac.mm: Made WebCoreFlippedView an NSControl subclass so that the NSButtonCell
used to draw checkboxes and radio buttons can make it its controlView, and consequently check and
obey its flippedness.
2011-10-09 Benjamin Poulain <benjamin@webkit.org>
Do not compare the first glyph to itself in Font::drawGlyphBuffer()
https://bugs.webkit.org/show_bug.cgi?id=69715
Reviewed by Andreas Kling.
When looking for glyphs with similar properties, we should
skip the first one since the comparison of fontData
and offset will always fail.
This is covered by the existing tests.
* platform/graphics/FontFastPath.cpp:
(WebCore::Font::drawGlyphBuffer):
2011-10-08 Justin Schuh <jschuh@chromium.org>
Make ThreadGlobalData members use OwnPtr
https://bugs.webkit.org/show_bug.cgi?id=69710
Reviewed by Adam Barth.
No functional changes. No new tests required.
* platform/ThreadGlobalData.cpp:
(WebCore::ThreadGlobalData::ThreadGlobalData):
(WebCore::ThreadGlobalData::~ThreadGlobalData):
(WebCore::ThreadGlobalData::destroy):
* platform/ThreadGlobalData.h:
2011-10-08 Mark Hahnenberg <mhahnenberg@apple.com>
Add static version of JSCell::getConstructData
https://bugs.webkit.org/show_bug.cgi?id=69673
Reviewed by Geoffrey Garen.
No new tests.
Added static version of getConstructData to all classes that
override it and changed the virtual versions to call the static
versions. This is the first step in de-virtualizing JSCell::getConstructData.
* bindings/js/JSAudioConstructor.cpp:
(WebCore::JSAudioConstructor::getConstructData):
* bindings/js/JSAudioConstructor.h:
* bindings/js/JSImageConstructor.cpp:
(WebCore::JSImageConstructor::getConstructData):
* bindings/js/JSImageConstructor.h:
* bindings/js/JSOptionConstructor.cpp:
(WebCore::JSOptionConstructor::getConstructData):
* bindings/js/JSOptionConstructor.h:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateConstructorDeclaration):
(GenerateConstructorDefinition):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfaceConstructor::getConstructData):
* bridge/runtime_object.cpp:
(JSC::Bindings::RuntimeObject::getConstructData):
* bridge/runtime_object.h:
2011-10-08 Mark Hahnenberg <mhahnenberg@apple.com>
Add static version of JSCell::getOwnPropertySlot
https://bugs.webkit.org/show_bug.cgi?id=69593
Reviewed by Geoffrey Garen.
No new tests.
Added static version of getOwnPropertySlot to every class that overrides
JSCell::getOwnPropertySlot. The virtual versions now call the static versions.
This is the first step in de-virtualizing JSCell::getOwnPropertySlot.
* bindings/js/JSDOMWindowShell.cpp:
(WebCore::JSDOMWindowShell::getOwnPropertySlot):
* bindings/js/JSDOMWindowShell.h:
* bridge/objc/objc_runtime.h:
* bridge/objc/objc_runtime.mm:
(JSC::Bindings::ObjcFallbackObjectImp::getOwnPropertySlot):
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::QtRuntimeMetaMethod::getOwnPropertySlot):
(JSC::Bindings::QtRuntimeConnectionMethod::getOwnPropertySlot):
* bridge/qt/qt_runtime.h:
* bridge/runtime_array.cpp:
(JSC::RuntimeArray::getOwnPropertySlot):
* bridge/runtime_array.h:
* bridge/runtime_method.cpp:
(JSC::RuntimeMethod::getOwnPropertySlot):
* bridge/runtime_method.h:
* bridge/runtime_object.cpp:
(JSC::Bindings::RuntimeObject::getOwnPropertySlot):
* bridge/runtime_object.h:
2011-10-03 Carlos Garcia Campos <cgarcia@igalia.com> and Martin Robinson <mrobinson@igalia.com>
[GTK] Implement drag and drop support in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=63706
Reviewed by Philippe Normand.
* platform/DragData.h:
* platform/gtk/DataObjectGtk.cpp:
(WebCore::DataObjectGtk::text): Mark as const.
(WebCore::DataObjectGtk::markup): Ditto.
(WebCore::DataObjectGtk::urlLabel): Ditto.
* platform/gtk/DataObjectGtk.h: Remove unused member
m_dragContext.
(WebCore::DataObjectGtk::url): Mark as const.
(WebCore::DataObjectGtk::uriList): Ditto.
(WebCore::DataObjectGtk::filenames): Ditto.
(WebCore::DataObjectGtk::image): Ditto.
(WebCore::DataObjectGtk::hasText): Ditto.
(WebCore::DataObjectGtk::hasMarkup): Ditto.
(WebCore::DataObjectGtk::hasURIList): Ditto.
(WebCore::DataObjectGtk::hasURL): Ditto.
(WebCore::DataObjectGtk::hasFilenames): Ditto.
(WebCore::DataObjectGtk::hasImage): Ditto.
* platform/gtk/DragIcon.cpp: Added. A helper which takes care of
creating a transparent drag window for drags.
* platform/gtk/DragIcon.h: Added.
2011-10-08 Abhishek Arya <inferno@chromium.org>
Add support for ADDRESS_SANITIZER in RenderArena
allocate, free calls.
https://bugs.webkit.org/show_bug.cgi?id=69636
Reviewed by Darin Adler.
Use malloc, free directly without using the debug header. Otherwise,
we won't be able to detect out of bounds access in debug header.
* rendering/RenderArena.cpp:
(WebCore::RenderArena::allocate):
(WebCore::RenderArena::free):
2011-10-08 Kent Tamura <tkent@chromium.org>
Remove some static functions of HTMLSelectElement
https://bugs.webkit.org/show_bug.cgi?id=69621
Reviewed by Darin Adler.
Merge a static function and the corresponding non-static member function
into one function if there are no other callers of the static function.
No new tests, just a refactoring.
* html/HTMLFormControlElement.h:
Make formControlName() protected because it is called from
HTMLSelectElement.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::parseMappedAttribute):
Remove two argument of parseMultipleAttribute().
(WebCore::HTMLSelectElement::selectAll):
Merged the static function and the member function.
(WebCore::HTMLSelectElement::dispatchFocusEvent): ditto.
(WebCore::HTMLSelectElement::dispatchBlurEvent): ditto.
(WebCore::HTMLSelectElement::saveFormControlState): ditto.
(WebCore::HTMLSelectElement::restoreFormControlState):
(WebCore::HTMLSelectElement::parseMultipleAttribute):
- Make this non-static member function.
- Use reattachIfAttached().
(WebCore::HTMLSelectElement::appendFormData): Merged.
(WebCore::HTMLSelectElement::reset): ditto.
(WebCore::HTMLSelectElement::insertedIntoTree): ditto.
(WebCore::HTMLSelectElement::accessKeySetSelectedIndex): ditto.
(WebCore::HTMLSelectElement::length): Merged with optionCount().
* html/HTMLSelectElement.h:
2011-10-08 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r96996.
http://trac.webkit.org/changeset/96996
https://bugs.webkit.org/show_bug.cgi?id=69697
It broke all tests on the Qt bot (Requested by Ossy_night on
#webkit).
* WebCore.exp.in:
* bindings/js/JSCallbackData.cpp:
(WebCore::JSCallbackData::invokeCallback):
* bindings/js/JSCustomXPathNSResolver.cpp:
(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
* bindings/js/JSErrorHandler.cpp:
(WebCore::JSErrorHandler::handleEvent):
* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::handleEvent):
* bindings/js/JSHTMLAllCollectionCustom.cpp:
(WebCore::JSHTMLAllCollection::getCallDataVirtual):
* bindings/js/JSHTMLAppletElementCustom.cpp:
(WebCore::JSHTMLAppletElement::getCallDataVirtual):
* bindings/js/JSHTMLEmbedElementCustom.cpp:
(WebCore::JSHTMLEmbedElement::getCallDataVirtual):
* bindings/js/JSHTMLObjectElementCustom.cpp:
(WebCore::JSHTMLObjectElement::getCallDataVirtual):
* bindings/js/JSInjectedScriptHostCustom.cpp:
(WebCore::JSInjectedScriptHost::evaluate):
* bindings/js/JSPluginElementFunctions.cpp:
(WebCore::runtimeObjectGetCallData):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
* bridge/objc/objc_runtime.h:
* bridge/objc/objc_runtime.mm:
(JSC::Bindings::ObjcFallbackObjectImp::getCallDataVirtual):
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::QtRuntimeMetaMethod::getCallDataVirtual):
(JSC::Bindings::QtRuntimeConnectionMethod::call):
(JSC::Bindings::QtRuntimeConnectionMethod::getCallDataVirtual):
(JSC::Bindings::isJavaScriptFunction):
* bridge/qt/qt_runtime.h:
* bridge/runtime_method.cpp:
(JSC::RuntimeMethod::getCallDataVirtual):
* bridge/runtime_method.h:
* bridge/runtime_object.cpp:
(JSC::Bindings::RuntimeObject::getCallDataVirtual):
* bridge/runtime_object.h:
2011-10-08 Ryosuke Niwa <rniwa@webkit.org>
Snow Leopard build fix after r96976. Apparently we just need a full rebuild.
* config.h:
2011-10-07 Mark Hahnenberg <mhahnenberg@apple.com>
Add static version of JSCell::deleteProperty
https://bugs.webkit.org/show_bug.cgi?id=69659
Reviewed by Geoffrey Garen.
No new tests.
Added static version of both versions of put to all classes that
override them and changed the virtual versions to call the static
versions. This is the first step in de-virtualizing JSCell::deleteProperty.
* bridge/objc/objc_runtime.h:
* bridge/objc/objc_runtime.mm:
(JSC::Bindings::ObjcFallbackObjectImp::deleteProperty):
* bridge/runtime_array.cpp:
(JSC::RuntimeArray::deleteProperty):
* bridge/runtime_array.h:
* bridge/runtime_object.cpp:
(JSC::Bindings::RuntimeObject::deleteProperty):
* bridge/runtime_object.h:
2011-10-07 Justin Schuh <jschuh@chromium.org>
Make isXMLMIMEType regex use TLS
https://bugs.webkit.org/show_bug.cgi?id=69665
Reviewed by Adam Barth.
Test: fast/workers/worker-multi-startup.html
* dom/DOMImplementation.cpp:
(WebCore::XMLMIMETypeRegExp::XMLMIMETypeRegExp):
(WebCore::XMLMIMETypeRegExp::~XMLMIMETypeRegExp):
(WebCore::XMLMIMETypeRegExp::isXMLMIMEType):
(WebCore::DOMImplementation::isXMLMIMEType):
* dom/DOMImplementation.h:
* platform/ThreadGlobalData.cpp:
(WebCore::ThreadGlobalData::ThreadGlobalData):
(WebCore::ThreadGlobalData::destroy):
* platform/ThreadGlobalData.h:
(WebCore::ThreadGlobalData::xmlTypeRegExp):
2011-10-07 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r96847.
http://trac.webkit.org/changeset/96847
https://bugs.webkit.org/show_bug.cgi?id=69684
may have caused memory regression on win chromium (Requested
by simonjam on #webkit).
* platform/graphics/chromium/FontChromiumWin.cpp:
(WebCore::Font::drawGlyphs):
2011-10-07 Mark Hahnenberg <mhahnenberg@apple.com>
Remove getCallDataVirtual methods
https://bugs.webkit.org/show_bug.cgi?id=69186
Reviewed by Geoffrey Garen.
No new tests.
Removed all getCallDataVirtual methods and replaced their call sites
with an explicit lookup in the MethodTable.
* WebCore.exp.in:
* bindings/js/JSCallbackData.cpp:
(WebCore::JSCallbackData::invokeCallback):
* bindings/js/JSCustomXPathNSResolver.cpp:
(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
* bindings/js/JSErrorHandler.cpp:
(WebCore::JSErrorHandler::handleEvent):
* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::handleEvent):
* bindings/js/JSHTMLAllCollectionCustom.cpp:
* bindings/js/JSHTMLAppletElementCustom.cpp:
* bindings/js/JSHTMLEmbedElementCustom.cpp:
* bindings/js/JSHTMLObjectElementCustom.cpp:
* bindings/js/JSInjectedScriptHostCustom.cpp:
(WebCore::JSInjectedScriptHost::evaluate):
* bindings/js/JSPluginElementFunctions.cpp:
(WebCore::runtimeObjectGetCallData):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
* bridge/objc/objc_runtime.h:
* bridge/objc/objc_runtime.mm:
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::QtRuntimeConnectionMethod::call):
(JSC::Bindings::isJavaScriptFunction):
* bridge/qt/qt_runtime.h:
(JSC::Bindings::QtRuntimeMetaMethod::createStructure):
(JSC::Bindings::QtRuntimeConnectionMethod::createStructure):
* bridge/runtime_method.cpp:
* bridge/runtime_method.h:
* bridge/runtime_object.cpp:
* bridge/runtime_object.h:
2011-10-07 Mark Hahnenberg <mhahnenberg@apple.com>
Add static version of JSCell::put
https://bugs.webkit.org/show_bug.cgi?id=69382
Reviewed by Geoffrey Garen.
No new tests.
Added static version of both versions of put to all classes that
override them and changed the virtual versions to call the static
versions.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObj::put):
* bindings/scripts/test/JS/JSTestObj.h:
* bridge/objc/objc_runtime.h:
* bridge/objc/objc_runtime.mm:
(JSC::Bindings::ObjcFallbackObjectImp::put):
* bridge/runtime_array.cpp:
(JSC::RuntimeArray::put):
* bridge/runtime_array.h:
* bridge/runtime_object.cpp:
(JSC::Bindings::RuntimeObject::put):
* bridge/runtime_object.h:
2011-10-07 Anantanarayanan G Iyengar <ananta@chromium.org>
https://bugs.webkit.org/show_bug.cgi?id=69471
We now wrap the window script NPObject which is requested by NPAPI plugins for
scripting. The wrapped NPObject pointer maintains a weak reference to the
window script NPObject and is cleared out when the window script object is destroyed.
The NPObject wrapper is destroyed when the last outstanding reference is released.
Reviewed by Nate Chapin.
No tests added as there is no change in functionality.
* WebCore.gypi:
* bindings/v8/NPObjectWrapper.cpp: Added.
(WebCore::NPObjectWrapper::NPObjectWrapper):
(WebCore::NPObjectWrapper::create):
(WebCore::NPObjectWrapper::clear):
(WebCore::NPObjectWrapper::getWrapper):
(WebCore::NPObjectWrapper::getUnderlyingNPObject):
(WebCore::NPObjectWrapper::getObjectForCall):
(WebCore::NPObjectWrapper::NPAllocate):
(WebCore::NPObjectWrapper::NPDeallocate):
(WebCore::NPObjectWrapper::NPPInvalidate):
(WebCore::NPObjectWrapper::NPHasMethod):
(WebCore::NPObjectWrapper::NPInvoke):
(WebCore::NPObjectWrapper::NPInvokeDefault):
(WebCore::NPObjectWrapper::NPHasProperty):
(WebCore::NPObjectWrapper::NPGetProperty):
(WebCore::NPObjectWrapper::NPSetProperty):
(WebCore::NPObjectWrapper::NPRemoveProperty):
(WebCore::NPObjectWrapper::NPNEnumerate):
(WebCore::NPObjectWrapper::NPNConstruct):
(WebCore::NPObjectWrapper::NPInvokePrivate):
* bindings/v8/NPObjectWrapper.h: Added.
* bindings/v8/NPV8Object.cpp:
(_NPN_EvaluateHelper):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::ScriptController):
(WebCore::ScriptController::clearScriptObjects):
(WebCore::ScriptController::windowScriptNPObject):
* bindings/v8/ScriptController.h:
2011-10-07 Antoine Labour <piman@chromium.org>
Webkit API for compositor
https://bugs.webkit.org/show_bug.cgi?id=69107
Reviewed by Darin Fisher.
Covered by existing compositing tests.
* platform/graphics/chromium/ContentLayerChromium.h:
2011-10-07 Ben Wells <benwells@chromium.org>
CSS text-transform should apply to select elements
https://bugs.webkit.org/show_bug.cgi?id=69503
Reviewed by Ojan Vafai.
Select elements are drawn in two ways depending on whether they are multiple and what their size is.
Neither method previously handled text-transforms. Both of these rendering styles are now updated to transform
their text correctly.
Test: fast/css/text-transform-select.html
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::updateFromElement):
(WebCore::RenderListBox::paintItemForeground):
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::updateOptionsWidth):
(WebCore::RenderMenuList::setText):
(WebCore::RenderMenuList::itemText):
* rendering/RenderText.cpp:
(WebCore::makeCapitalized):
(WebCore::applyTextTransform):
(WebCore::RenderText::setTextInternal):
(WebCore::RenderText::textWithoutTranscoding):
* rendering/RenderText.h:
2011-10-07 Tony Chang <tony@chromium.org>
fix a crash when loading non-html multipart data
https://bugs.webkit.org/show_bug.cgi?id=69675
Reviewed by Adam Barth.
setupForReplaceByMIMEType calls DocumentWriter::end(). This leads to
a crash on Mac because WebHTMLRepresentation() calls commitLoad(nil),
which tries to write to the DocumentWriter. By just inlining the code
to load the last page, we avoid this crash (and makes the non-html
multipart code more like the html multipart code).
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::maybeFinishLoadingMultipartContent):
2011-10-07 Sergey Glazunov <serg.glazunov@gmail.com>
XSLT-generated document should inherit its SecurityOrigin from the source document
https://bugs.webkit.org/show_bug.cgi?id=69661
Reviewed by Adam Barth.
Test: http/tests/security/xss-DENIED-xsl-document-securityOrigin.xml
* xml/XSLTProcessor.cpp:
(WebCore::XSLTProcessor::createDocumentFromSource):
2011-10-07 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r96944.
http://trac.webkit.org/changeset/96944
https://bugs.webkit.org/show_bug.cgi?id=69662
Caused many tests to crash on Snow Leopard (Requested by rniwa
on #webkit).
* css/CSSStyleApplyProperty.cpp:
(WebCore::ApplyPropertyColor::applyInheritValue):
* page/animation/AnimationBase.cpp:
(WebCore::PropertyWrapperMaybeInvalidColor::PropertyWrapperMaybeInvalidColor):
(WebCore::PropertyWrapperSVGPaint::PropertyWrapperSVGPaint):
(WebCore::AnimationBase::ensurePropertyMap):
* platform/graphics/Color.h:
(WebCore::Color::Color):
* rendering/style/BorderValue.h:
(WebCore::BorderValue::BorderValue):
(WebCore::BorderValue::isTransparent):
(WebCore::BorderValue::operator==):
(WebCore::BorderValue::color):
* rendering/style/OutlineValue.h:
(WebCore::OutlineValue::operator==):
* rendering/style/RenderStyle.h:
(WebCore::InheritedFlags::setBorderLeftColor):
(WebCore::InheritedFlags::setBorderRightColor):
(WebCore::InheritedFlags::setBorderTopColor):
(WebCore::InheritedFlags::setBorderBottomColor):
(WebCore::InheritedFlags::setOutlineColor):
(WebCore::InheritedFlags::setColumnRuleColor):
(WebCore::InheritedFlags::fillPaintColor):
(WebCore::InheritedFlags::strokePaintColor):
(WebCore::InheritedFlags::borderLeftColor):
(WebCore::InheritedFlags::borderRightColor):
(WebCore::InheritedFlags::borderTopColor):
(WebCore::InheritedFlags::borderBottomColor):
(WebCore::InheritedFlags::backgroundColor):
(WebCore::InheritedFlags::color):
(WebCore::InheritedFlags::columnRuleColor):
(WebCore::InheritedFlags::outlineColor):
(WebCore::InheritedFlags::textEmphasisColor):
(WebCore::InheritedFlags::textFillColor):
(WebCore::InheritedFlags::textStrokeColor):
(WebCore::InheritedFlags::stopColor):
(WebCore::InheritedFlags::floodColor):
(WebCore::InheritedFlags::lightingColor):
2011-10-07 David Hyatt <hyatt@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=69658
[CSS3 Regions] Box painting of overflow into regions is incorrect because children were being
incorrectly clamped to their containing block region ranges. Change the clamping model so that
renderRegionForLine no longer does it. A block will now truly have an accurate range across
all the regions that paint it. Instead, do the clamping at the time a child box asks the containing
block for its information. At that time clamp to the start and end regions, so that we never ask
a containing block for info about a region that it doesn't exist in.
Reviewed by Anders Carlsson.
Added new test in fast/regions and updated an old result to be correct.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::pageLogicalHeightForOffset):
(WebCore::RenderBlock::pageRemainingLogicalHeightForOffset):
(WebCore::RenderBlock::regionAtBlockOffset):
(WebCore::RenderBlock::clampToStartAndEndRegions):
* rendering/RenderBlock.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::borderBoxRectInRegion):
(WebCore::RenderBox::containingBlockLogicalWidthForContentInRegion):
(WebCore::RenderBox::renderBoxRegionInfo):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::renderRegionForLine):
(WebCore::RenderFlowThread::regionLogicalWidthForLine):
(WebCore::RenderFlowThread::regionLogicalHeightForLine):
(WebCore::RenderFlowThread::regionRemainingLogicalHeightForLine):
(WebCore::RenderFlowThread::mapFromFlowToRegion):
(WebCore::RenderFlowThread::setRegionRangeForBox):
* rendering/RenderFlowThread.h:
2011-10-07 Chang Shu <cshu@webkit.org>
Remove compile time flag ENABLE_PASSWORD_ECHO
https://bugs.webkit.org/show_bug.cgi?id=69647
As we have runtime flag in the page/Settings, we should remove this redundant compile time flag.
Reviewed by Andreas Kling.
* config.h:
* page/Settings.cpp:
(WebCore::Settings::Settings):
2011-10-07 Chris Fleizach <cfleizach@apple.com>
Bug 69562 - AccessibilityImageMapLink holds onto it's parent even after it's been freed
https://bugs.webkit.org/show_bug.cgi?id=69562
Some fake objects, like AXImageMapLink, have weak references to their parent's (since they are fake objects and
need some connection to the parent). However, if the parent disappears before the child, then we're left with a
out of date reference to that parent.
The fix is to allow these elements to clear their parentage when the parent goes away.
Reviewed by Darin Adler.
Test: accessibility/image-map-update-parent-crash.html
* accessibility/AccessibilityMenuListOption.cpp:
(WebCore::AccessibilityMenuListOption::isVisible):
* accessibility/AccessibilityMenuListPopup.cpp:
(WebCore::AccessibilityMenuListPopup::isOffScreen):
(WebCore::AccessibilityMenuListPopup::isEnabled):
(WebCore::AccessibilityMenuListPopup::press):
(WebCore::AccessibilityMenuListPopup::addChildren):
(WebCore::AccessibilityMenuListPopup::childrenChanged):
* accessibility/AccessibilityMockObject.h:
(WebCore::AccessibilityMockObject::detachFromParent):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::clearChildren):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::detachFromParent):
* accessibility/AccessibilitySlider.cpp:
(WebCore::AccessibilitySliderThumb::elementRect):
* accessibility/AccessibilityTableColumn.cpp:
(WebCore::AccessibilityTableColumn::headerObjectForSection):
2011-10-07 Andreas Kling <kling@webkit.org>
Pack StyleRareNonInheritedData even harder on 64-bit.
https://bugs.webkit.org/show_bug.cgi?id=69648
Reviewed by Benjamin Poulain.
Rearrange the members of StyleRareNonInheritedData to fold as much
as possible into the padding at the end of RefCounted.
This shrinks StyleRareNonInheritedData by 16 bytes on 64-bit,
reducing memory consumption by another 140 kB when loading the
full HTML5 spec.
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
* rendering/style/StyleRareNonInheritedData.h:
2011-10-07 Cary Clark <caryclark@google.com>
Enable color profiles, unless profile is grayscale
https://bugs.webkit.org/show_bug.cgi?id=69622
https://bugs.webkit.org/show_bug.cgi?id=49950
http://code.google.com/p/chromium/issues/detail?id=80844
Further specialize the earlier fix described in 49950 to
allow color profiles in YCbCr images, but disallow color
profiles marked as grayData.
(see http://www.color.org/ICC1v42_2006-05.pdf 7.2.6 )
Reviewed by Adam Barth.
Test: fast/images/gray-scale-jpeg-with-color-profile.html
fast/images/color-jpeg-with-color-profile.html
* platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
(WebCore::readColorProfile):
(WebCore::JPEGImageReader::decode):
2011-10-07 Chris Fleizach <cfleizach@apple.com>
AX: re-organize fake elements to use new AccessibilityMockObject
https://bugs.webkit.org/show_bug.cgi?id=69588
This adds an AccessibilityMockObject for "fake" elements to descend from.
Its benefit is to consolidate the various ways that these fake elements are setting
and returning their parent objects.
No functional change, hence no new tests.
Reviewed by Jon Honeycutt.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* accessibility/AccessibilityARIAGrid.cpp:
(WebCore::AccessibilityARIAGrid::addChildren):
* accessibility/AccessibilityImageMapLink.cpp:
(WebCore::AccessibilityImageMapLink::AccessibilityImageMapLink):
* accessibility/AccessibilityImageMapLink.h:
(WebCore::AccessibilityImageMapLink::node):
* accessibility/AccessibilityMenuList.cpp:
(WebCore::AccessibilityMenuList::addChildren):
* accessibility/AccessibilityMenuList.h:
(WebCore::toAccessibilityMenuList):
* accessibility/AccessibilityMenuListOption.cpp:
(WebCore::AccessibilityMenuListOption::AccessibilityMenuListOption):
(WebCore::AccessibilityMenuListOption::isVisible):
* accessibility/AccessibilityMenuListOption.h:
* accessibility/AccessibilityMenuListPopup.cpp:
(WebCore::AccessibilityMenuListPopup::AccessibilityMenuListPopup):
(WebCore::AccessibilityMenuListPopup::isOffScreen):
(WebCore::AccessibilityMenuListPopup::isEnabled):
(WebCore::AccessibilityMenuListPopup::menuListOptionAccessibilityObject):
(WebCore::AccessibilityMenuListPopup::press):
(WebCore::AccessibilityMenuListPopup::addChildren):
(WebCore::AccessibilityMenuListPopup::childrenChanged):
(WebCore::AccessibilityMenuListPopup::didUpdateActiveOption):
* accessibility/AccessibilityMenuListPopup.h:
* accessibility/AccessibilityMockObject.cpp: Added.
(WebCore::AccessibilityMockObject::AccessibilityMockObject):
(WebCore::AccessibilityMockObject::~AccessibilityMockObject):
* accessibility/AccessibilityMockObject.h: Added.
(WebCore::AccessibilityMockObject::parentObject):
(WebCore::AccessibilityMockObject::setParent):
(WebCore::AccessibilityMockObject::detachFromParent):
* accessibility/AccessibilitySlider.cpp:
(WebCore::AccessibilitySlider::addChildren):
(WebCore::AccessibilitySliderThumb::AccessibilitySliderThumb):
(WebCore::AccessibilitySliderThumb::elementRect):
* accessibility/AccessibilitySlider.h:
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::addChildren):
(WebCore::AccessibilityTable::headerContainer):
* accessibility/AccessibilityTable.h:
(WebCore::toAccessibilityTable):
* accessibility/AccessibilityTableColumn.cpp:
(WebCore::AccessibilityTableColumn::AccessibilityTableColumn):
(WebCore::AccessibilityTableColumn::setParent):
(WebCore::AccessibilityTableColumn::headerObject):
(WebCore::AccessibilityTableColumn::headerObjectForSection):
(WebCore::AccessibilityTableColumn::accessibilityIsIgnored):
(WebCore::AccessibilityTableColumn::addChildren):
* accessibility/AccessibilityTableColumn.h:
* accessibility/AccessibilityTableHeaderContainer.cpp:
(WebCore::AccessibilityTableHeaderContainer::AccessibilityTableHeaderContainer):
(WebCore::AccessibilityTableHeaderContainer::accessibilityIsIgnored):
(WebCore::AccessibilityTableHeaderContainer::addChildren):
* accessibility/AccessibilityTableHeaderContainer.h:
2011-10-07 Nate Chapin <japhet@chromium.org>
Make IconLoader a CachedResourceClient instead of a SubresourceLoaderClient.
This is one of the steps required to remove the SubresourceLoaderClient interface,
which will simplify the layering in the loader.
https://bugs.webkit.org/show_bug.cgi?id=69567
Reviewed by Adam Barth.
No new tests, no functionality change intended.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* loader/cache/CachedRawResource.cpp: Added.
* loader/cache/CachedRawResource.h: Added.
* loader/cache/CachedResource.cpp:
* loader/cache/CachedResource.h:
(WebCore::CachedResource::ignoreForRequestCount): Renamed and generalized from isLinkResource(),
which was only used to decided whether the CachedResource should count toward
CachedResourceLoader::requestCount().
* loader/cache/CachedResourceLoader.cpp:
* loader/cache/CachedResourceLoader.h:
* loader/cache/CachedResourceRequest.cpp:
* loader/cache/CachedResourceRequest.h:
* loader/icon/IconLoader.cpp: Get a CachedResource instead of a SubresourceLoader.
(WebCore::IconLoader::notifyFinished): Merge in the status code check that was in didReceiveResponse(),
since we won't be checking any callbacks before the load completes.
* loader/icon/IconLoader.h:
2011-10-07 Adam Bergkvist <adam.bergkvist@ericsson.com>
Add WebCore platform interfaces needed by updated PeerConnection design
https://bugs.webkit.org/show_bug.cgi?id=68460
Reviewed by Adam Barth.
Added the PeerConnection platform files to WebCore/platform/mediastream
Currently not testable.
* GNUmakefile.am:
* GNUmakefile.list.am:
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* platform/mediastream/MediaStreamComponent.h: Added.
(WebCore::MediaStreamComponent::create):
(WebCore::MediaStreamComponent::source):
(WebCore::MediaStreamComponent::enabled):
(WebCore::MediaStreamComponent::setEnabled):
(WebCore::MediaStreamComponent::MediaStreamComponent):
* platform/mediastream/MediaStreamDescriptor.h: Added.
(WebCore::MediaStreamDescriptor::create):
(WebCore::MediaStreamDescriptor::owner):
(WebCore::MediaStreamDescriptor::setOwner):
(WebCore::MediaStreamDescriptor::label):
(WebCore::MediaStreamDescriptor::component):
(WebCore::MediaStreamDescriptor::numberOfComponents):
(WebCore::MediaStreamDescriptor::ended):
(WebCore::MediaStreamDescriptor::setEnded):
(WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
* platform/mediastream/MediaStreamSource.h: Added.
(WebCore::MediaStreamSource::create):
(WebCore::MediaStreamSource::id):
(WebCore::MediaStreamSource::type):
(WebCore::MediaStreamSource::name):
(WebCore::MediaStreamSource::muted):
(WebCore::MediaStreamSource::setMuted):
(WebCore::MediaStreamSource::MediaStreamSource):
* platform/mediastream/PeerHandler.cpp: Added.
(WebCore::PeerHandler::PeerHandler):
(WebCore::PeerHandler::~PeerHandler):
(WebCore::PeerHandler::produceInitialOffer):
(WebCore::PeerHandler::handleInitialOffer):
(WebCore::PeerHandler::processSDP):
(WebCore::PeerHandler::processPendingStreams):
(WebCore::PeerHandler::sendDataStreamMessage):
(WebCore::PeerHandler::stop):
* platform/mediastream/PeerHandler.h: Added.
(WebCore::PeerHandlerClient::~PeerHandlerClient):
(WebCore::PeerHandler::create):
2011-10-07 Vineet Chaudary <vineet.chaudhary@motorola.com>
background-color affects the font color in disabled textarea.
https://bugs.webkit.org/show_bug.cgi?id=65361
Reviewed by Darin Adler.
For the transparent/translucent background colors use lightening fortext color.
* rendering/RenderTextControl.cpp:
(WebCore::disabledTextColor):
2011-10-07 David Barr <davidbarr@chromium.org>
Implement currentColor support for box-shadow and text-shadow
https://bugs.webkit.org/show_bug.cgi?id=68218
Reviewed by Simon Fraser.
Test: fast/box-shadow/box-shadow-currentcolor.html
* css/CSSParser.cpp:
(WebCore::CSSParser::parseShadow): Add CSSValueCurrentcolor to supported keywords.
2011-10-07 Pavel Feldman <pfeldman@google.com>
Web Inspector: add Audits panel to the compilation.
https://bugs.webkit.org/show_bug.cgi?id=69633
Reviewed by Yury Semikhatsky.
* inspector/compile-front-end.sh:
* inspector/front-end/AuditCategories.js:
* inspector/front-end/AuditLauncherView.js:
* inspector/front-end/AuditResultView.js:
* inspector/front-end/AuditRules.js:
(WebInspector.AuditRules.CombineExternalResourcesRule.prototype.doRun):
(WebInspector.AuditRules.MinimizeDnsLookupsRule.prototype.doRun):
(WebInspector.AuditRules.CacheControlRule.prototype.handleNonCacheableResources):
* inspector/front-end/AuditsPanel.js:
(WebInspector.AuditsPanel):
* inspector/front-end/NetworkLog.js:
* inspector/front-end/treeoutline.js:
2011-10-07 Andreas Kling <kling@webkit.org>
Functions that return "const Color" should simply return "Color".
Rubber-stamped by Antti Koivisto.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::rendererBackgroundColor):
* rendering/RenderLayerBacking.h:
* rendering/RenderTable.h:
(WebCore::RenderTable::bgColor):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::colorIncludingFallback):
(WebCore::RenderStyle::visitedDependentColor):
* rendering/style/RenderStyle.h:
2011-10-07 Pavel Feldman <pfeldman@google.com>
Web Inspector: TypeError: Cannot read property 'styleSheetId' of undefined in tests.
https://bugs.webkit.org/show_bug.cgi?id=69634
Reviewed by Yury Semikhatsky.
* inspector/front-end/CSSStyleModel.js:
(WebInspector.CSSStyleDeclaration.prototype.insertPropertyAt):
2011-10-06 Andreas Kling <kling@webkit.org>
Shrink BorderValue.
https://bugs.webkit.org/show_bug.cgi?id=69521
Reviewed by Antti Koivisto.
Unroll BorderValue's Color member so we can pack the color's validity flag
in BorderValue's bitfield.
This shrinks BorderValue by 32 bit, which in turn shrinks BorderData by
16 bytes. This reduces memory consumption by 760 kB when loading the full
HTML5 spec.
* platform/graphics/Color.h:
(WebCore::Color::Color):
Allow construction of Color objects with specific validity.
* rendering/style/BorderValue.h:
(WebCore::BorderValue::BorderValue):
(WebCore::BorderValue::isTransparent):
(WebCore::BorderValue::operator==):
(WebCore::BorderValue::setColor):
(WebCore::BorderValue::color):
* rendering/style/OutlineValue.h:
(WebCore::OutlineValue::operator==):
Unroll m_color into BorderValue by splitting it into an RGBA32 and a bool.
Made those variables private and added color(), setColor() accessors.
* rendering/style/RenderStyle.h:
(WebCore::InheritedFlags::setBorderLeftColor):
(WebCore::InheritedFlags::setBorderRightColor):
(WebCore::InheritedFlags::setBorderTopColor):
(WebCore::InheritedFlags::setBorderBottomColor):
(WebCore::InheritedFlags::setOutlineColor):
(WebCore::InheritedFlags::setColumnRuleColor):
Added a SET_BORDERVALUE_COLOR macro and use that instead of SET_VAR
when setting BorderValue colors.
(WebCore::InheritedFlags::fillPaintColor):
(WebCore::InheritedFlags::strokePaintColor):
(WebCore::InheritedFlags::borderLeftColor):
(WebCore::InheritedFlags::borderRightColor):
(WebCore::InheritedFlags::borderTopColor):
(WebCore::InheritedFlags::borderBottomColor):
(WebCore::InheritedFlags::backgroundColor):
(WebCore::InheritedFlags::color):
(WebCore::InheritedFlags::columnRuleColor):
(WebCore::InheritedFlags::outlineColor):
(WebCore::InheritedFlags::textEmphasisColor):
(WebCore::InheritedFlags::textFillColor):
(WebCore::InheritedFlags::textStrokeColor):
(WebCore::InheritedFlags::stopColor):
(WebCore::InheritedFlags::floodColor):
(WebCore::InheritedFlags::lightingColor):
Made color getters return "Color" instead of "const Color&" since
BorderValue no longer has an actual object to return the reference to.
* css/CSSStyleApplyProperty.cpp:
(WebCore::ApplyPropertyColor::applyInheritValue):
* page/animation/AnimationBase.cpp:
(WebCore::PropertyWrapperColor::PropertyWrapperColor):
(WebCore::PropertyWrapperColor::blend):
(WebCore::PropertyWrapperMaybeInvalidColor::PropertyWrapperMaybeInvalidColor):
(WebCore::PropertyWrapperSVGPaint::PropertyWrapperSVGPaint):
(WebCore::AnimationBase::ensurePropertyMap):
Adapt to RenderStyle color getters now returning "Color" instead of
"const Color&".
2011-10-07 Philippe Normand <pnormand@igalia.com>
[GStreamer] webkitwebsrc: avoid GST_BOILERPLATE_FULL
https://bugs.webkit.org/show_bug.cgi?id=69630
Reviewed by Martin Robinson.
Use G_DEFINE_TYPE_WITH_CODE instead of GST_BOILERPLATE_FULL and
replace use of gst_ghost_pad_new_no_target_from_template() and
gst_ghost_pad_set_target() with a single call to
gst_ghost_pad_new_from_template(). These changes keep the element
compatible with GStreamer 0.10 while preparing the port to 0.11.
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webkit_web_src_class_init):
(webkit_web_src_init):
2011-10-07 Martin Robinson <mrobinson@igalia.com>
[Freetype] Pseudo-italics do not work
https://bugs.webkit.org/show_bug.cgi?id=40856
Reviewed by Philippe Normand.
* platform/graphics/freetype/FontPlatformData.h: Add the font description as an argument initializeWithFontFace.
* platform/graphics/freetype/FontPlatformDataFreeType.cpp:
(WebCore::FontPlatformData::FontPlatformData): Pass the font description to initializeWithFontFace.
(WebCore::FontPlatformData::initializeWithFontFace): If we were asked for an italic font and we were
given one that wasn't oblique or italic, activate the synthetic oblique bit.
2011-10-07 Philippe Normand <pnormand@igalia.com>
[GStreamer] avoid direct access to GstMessage structure field
https://bugs.webkit.org/show_bug.cgi?id=69629
Reviewed by Martin Robinson.
Use gst_message_get_structure() instead of direct access to the
structure field. No direct benefit apart from compatibility with
GStreamer 0.11.
* platform/graphics/gstreamer/GStreamerGWorld.cpp:
(WebCore::gstGWorldSyncMessageCallback):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::mediaLocationChanged):
2011-10-07 Pavel Feldman <pfeldman@google.com>
Web Inspector: add timeline panel to the compilation.
https://bugs.webkit.org/show_bug.cgi?id=69628
Reviewed by Yury Semikhatsky.
* inspector/compile-front-end.sh:
* inspector/front-end/SidebarTreeElement.js:
(WebInspector.SidebarTreeElement):
* inspector/front-end/SourceCSSTokenizer.js:
(WebInspector.SourceCSSTokenizer.prototype.nextToken):
* inspector/front-end/SourceCSSTokenizer.re2js:
* inspector/front-end/SourceHTMLTokenizer.js:
(WebInspector.SourceHTMLTokenizer.prototype.nextToken):
* inspector/front-end/SourceHTMLTokenizer.re2js:
* inspector/front-end/SourceJavaScriptTokenizer.js:
(WebInspector.SourceJavaScriptTokenizer.prototype.nextToken):
* inspector/front-end/SourceJavaScriptTokenizer.re2js:
* inspector/front-end/TimelineGrid.js:
* inspector/front-end/TimelineOverviewPane.js:
(WebInspector.TimelineOverviewPane.prototype._createTimelineCategoryStatusBarCheckbox):
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.prototype._createEventDivider):
(WebInspector.TimelinePanel.prototype._addRecordToTimeline):
(WebInspector.TimelinePanel.prototype._findParentRecord):
(WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline):
(WebInspector.TimelinePanel.prototype.updateMainViewWidth):
(WebInspector.TimelinePanel.prototype.onResize):
(WebInspector.TimelinePanel.prototype._windowChanged):
(WebInspector.TimelinePanel.prototype._refreshRecords):
(WebInspector.TimelineRecordGraphRow.prototype._onClick):
(WebInspector.TimelinePanel.FormattedRecord):
(WebInspector.TimelinePanel.FormattedRecord.prototype._generatePopupContent):
(WebInspector.TimelinePanel.FormattedRecord.prototype._getRecordDetails):
2011-10-07 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r96892.
http://trac.webkit.org/changeset/96892
https://bugs.webkit.org/show_bug.cgi?id=69626
it broke windows canary bots (Requested by podivilov on
#webkit).
* WebCore.gyp/scripts/rule_binding.py:
2011-10-07 Andreas Kling <kling@webkit.org>
Shrink StyleInheritedData.
https://bugs.webkit.org/show_bug.cgi?id=69625
Reviewed by Antti Koivisto.
Rearrange the members of StyleInheritedData to fold as much
as possible into the padding at the end of RefCounted.
This shrinks StyleInheritedData by 8 bytes on 64-bit, reducing
memory consumption by 500 kB when loading the full HTML5 spec.
* rendering/style/StyleInheritedData.cpp:
(WebCore::StyleInheritedData::StyleInheritedData):
* rendering/style/StyleInheritedData.h:
2011-10-07 Pavel Feldman <pfeldman@google.com>
Web Inspector: make ScriptsPanel compile
https://bugs.webkit.org/show_bug.cgi?id=69623
Reviewed by Yury Semikhatsky.
* inspector/compile-front-end.sh:
* inspector/front-end/CallStackSidebarPane.js:
(WebInspector.CallStackSidebarPane.prototype.update):
(WebInspector.CallStackSidebarPane.prototype._placardSelected):
* inspector/front-end/DebuggerModel.js:
* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame):
* inspector/front-end/KeyboardShortcut.js:
* inspector/front-end/Object.js:
* inspector/front-end/ObjectPropertiesSection.js:
* inspector/front-end/ScopeChainSidebarPane.js:
(WebInspector.ScopeChainSidebarPane.prototype.update):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._setScriptSourceIsBeingEdited):
(WebInspector.ScriptsPanel.prototype._createSourceFrame):
(WebInspector.ScriptsPanel.prototype._toggleBreakpointsClicked):
(WebInspector.SourceFrameDelegateForScriptsPanel):
(WebInspector.SourceFrameDelegateForScriptsPanel.prototype.requestContent):
(WebInspector.SourceFrameDelegateForScriptsPanel.prototype.debuggingSupported):
(WebInspector.SourceFrameDelegateForScriptsPanel.prototype.setBreakpoint):
(WebInspector.SourceFrameDelegateForScriptsPanel.prototype.updateBreakpoint):
(WebInspector.SourceFrameDelegateForScriptsPanel.prototype.removeBreakpoint):
(WebInspector.SourceFrameDelegateForScriptsPanel.prototype.findBreakpoint):
(WebInspector.SourceFrameDelegateForScriptsPanel.prototype.continueToLine):
(WebInspector.SourceFrameDelegateForScriptsPanel.prototype.canEditScriptSource):
(WebInspector.SourceFrameDelegateForScriptsPanel.prototype.setScriptSource):
(WebInspector.SourceFrameDelegateForScriptsPanel.prototype.setScriptSourceIsBeingEdited):
(WebInspector.SourceFrameDelegateForScriptsPanel.prototype.debuggerPaused):
(WebInspector.SourceFrameDelegateForScriptsPanel.prototype.evaluateInSelectedCallFrame):
(WebInspector.SourceFrameDelegateForScriptsPanel.prototype.releaseEvaluationResult):
(WebInspector.SourceFrameDelegateForScriptsPanel.prototype.suggestedFileName):
* inspector/front-end/StatusBarButton.js:
* inspector/front-end/WatchExpressionsSidebarPane.js:
(WebInspector.WatchExpressionsSection.prototype.update.appendResult):
(WebInspector.WatchExpressionsSection.prototype.update):
(WebInspector.WatchExpressionTreeElement.prototype.startEditing):
* inspector/front-end/WorkerManager.js:
(WebInspector.WorkerManager.prototype._openInspectorWindow):
(WebInspector.WorkerManager.prototype._pageInspectorClosing):
(WebInspector.DedicatedWorkerMessageForwarder.prototype._receiveMessage):
* inspector/front-end/WorkersSidebarPane.js:
(WebInspector.WorkersSidebarPane.prototype.removeWorker):
* inspector/front-end/externs.js:
(WebInspector.linkifyURL):
(InjectedFakeWorker):
* inspector/front-end/inspector.js:
2011-10-07 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r96879.
http://trac.webkit.org/changeset/96879
https://bugs.webkit.org/show_bug.cgi?id=69618
Broke CCLayerTreeHostTestShortlived1 on chromium mac.
(Requested by podivilov on #webkit).
* platform/graphics/chromium/cc/CCLayerTreeHost.h:
2011-10-07 Pavel Feldman <pfeldman@google.com>
Web Inspector: add ResourcesPanel to the compilation.
https://bugs.webkit.org/show_bug.cgi?id=69612
Reviewed by Yury Semikhatsky.
* inspector/compile-front-end.sh:
* inspector/front-end/ApplicationCacheItemsView.js:
(WebInspector.ApplicationCacheItemsView.prototype._populateDataGrid):
* inspector/front-end/NetworkPanel.js:
* inspector/front-end/ResourceView.js:
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel.prototype.showAnchorLocation):
(WebInspector.ResourcesPanel.prototype.showResource):
(WebInspector.BaseStorageTreeElement.prototype.isEventWithinDisclosureTriangle):
(WebInspector.FrameTreeElement.prototype.frameNavigated):
(WebInspector.StorageCategoryView):
(WebInspector.SearchResultsTreeElementsTraverser.prototype.last):
* inspector/front-end/externs.js:
(WebInspector.openRequestInNetworkPanel):
2011-10-07 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r96909.
http://trac.webkit.org/changeset/96909
https://bugs.webkit.org/show_bug.cgi?id=69616
Broke chromium mac compilation (Requested by podivilov on
#webkit).
* platform/graphics/chromium/ContentLayerChromium.h:
2011-10-07 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Element highlighting does not highlight padding/border/margin for inline elements.
https://bugs.webkit.org/show_bug.cgi?id=69558
Reviewed by Pavel Feldman.
* inspector/DOMNodeHighlighter.cpp:
2011-10-07 Mario Sanchez Prada <msanchez@igalia.com>
[GTK] Don't expose objects with unknown role on GTK
https://bugs.webkit.org/show_bug.cgi?id=69561
Reviewed by Chris Fleizach.
Ignore accessibility objects in accessibilityPlatformIncludesObject.
Test: platform/gtk/accessibility/unknown-roles-not-exposed.html
* accessibility/gtk/AccessibilityObjectAtk.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
For unknown accessibility objects, return IgnoreObject.
2011-10-07 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: add Elements and Network panels to the compilation
https://bugs.webkit.org/show_bug.cgi?id=69604
Reviewed by Yury Semikhatsky.
* inspector/compile-front-end.sh:
* inspector/front-end/BreakpointsSidebarPane.js:
(WebInspector.XHRBreakpointsSidebarPane.prototype._addButtonClicked):
(WebInspector.XHRBreakpointsSidebarPane.prototype._labelClicked):
* inspector/front-end/DOMAgent.js:
* inspector/front-end/DOMBreakpointsSidebarPane.js:
* inspector/front-end/DataGrid.js:
(WebInspector.DataGrid.prototype._startEditingConfig):
* inspector/front-end/Drawer.js:
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype._hideSearchHighlights):
(WebInspector.ElementsPanel.prototype.updateBreadcrumb):
(WebInspector.ElementsPanel.prototype.updateBreadcrumbSizes.collapseDimmed):
(WebInspector.ElementsPanel.prototype.updateBreadcrumbSizes):
(WebInspector.ElementsPanel.prototype._registerShortcuts):
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeElement.prototype._startEditingAttribute):
(WebInspector.ElementsTreeElement.prototype._startEditingTextNode):
(WebInspector.ElementsTreeElement.prototype._startEditingTagName):
(WebInspector.ElementsTreeElement.prototype._startEditingAsHTML):
* inspector/front-end/GoToLineDialog.js:
(WebInspector.GoToLineDialog._show):
* inspector/front-end/MetricsSidebarPane.js:
(WebInspector.MetricsSidebarPane.prototype.startEditing):
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkLogView.prototype._onLoadEventFired):
(WebInspector.NetworkLogView.prototype._domContentLoadedEventFired):
(WebInspector.NetworkLogView.prototype._updateOffscreenRows):
(WebInspector.NetworkLogView.prototype._removeAllNodeHighlights):
(WebInspector.NetworkPanel.prototype._resourceByAnchor):
(WebInspector.NetworkDataGridNode.prototype._refreshInitiatorCell):
* inspector/front-end/ObjectPropertiesSection.js:
(WebInspector.ObjectPropertyTreeElement.prototype.startEditing):
* inspector/front-end/Panel.js:
* inspector/front-end/Popover.js:
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame.prototype._editBreakpointCondition):
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylePropertiesSection.prototype.startEditingSelector):
(WebInspector.StylePropertyTreeElement.prototype):
* inspector/front-end/TimelineGrid.js:
* inspector/front-end/UIUtils.js:
(WebInspector.EditingConfig):
(WebInspector.startEditing.editingCancelled):
(WebInspector.startEditing.editingCommitted):
(WebInspector.formatLocalized):
(WebInspector.openLinkExternallyLabel):
(WebInspector.openInNetworkPanelLabel):
(WebInspector.copyLinkAddressLabel):
* inspector/front-end/externs.js:
(WebInspector.extensionServer.notifyObjectSelected):
(WebInspector.openResource):
* inspector/front-end/inspector.js:
(WebInspector.resourceForURL):
2011-10-07 Anna Cavender <annacc@chromium.org>
Change enum value names for TextTrack::readyState and TextTrack::mode
https://bugs.webkit.org/show_bug.cgi?id=69603
Reviewed by David Levin.
No new tests. No new functionality.
* html/LoadableTextTrack.cpp:
(WebCore::LoadableTextTrack::trackLoadStarted):
(WebCore::LoadableTextTrack::trackLoadError):
(WebCore::LoadableTextTrack::trackLoadCompleted):
* html/TextTrack.cpp:
(WebCore::TextTrack::TextTrack):
(WebCore::TextTrack::setMode):
* html/TextTrack.h:
2011-10-07 Anna Cavender <annacc@chromium.org>
Adding parens in WebVTTParser.cpp to appease compiler preferences.
https://bugs.webkit.org/show_bug.cgi?id=69602
Reviewed by David Levin.
No new tests. No new functionality.
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::constructTreeFromToken):
2011-10-06 Antoine Labour <piman@chromium.org>
Webkit API for compositor
https://bugs.webkit.org/show_bug.cgi?id=69107
Reviewed by Darin Fisher.
Covered by existing compositing tests.
* platform/graphics/chromium/ContentLayerChromium.h:
2011-10-06 Kent Tamura <tkent@chromium.org>
Remove SelectElement class
https://bugs.webkit.org/show_bug.cgi?id=69518
Reviewed by Ryosuke Niwa.
SelectElement used to be an abstract class for HTMLSelectElement
and WMLSelectElement. SelectElement is not needed anymore because
WML was removed.
This patch just removes SelectElement by moving SelectElement
functions to HTMLSelectElement.
No new tests. Just a refactoring.
* WebCore.vcproj/WebCore.vcproj:
Rename dom\SelectElementWin.cpp to html\HTMLSelectElementWin.cpp.
* accessibility/AccessibilityListBoxOption.cpp:
(WebCore::AccessibilityListBoxOption::setSelected):
Remove unnecessary cast.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::stringValue):
Use HTMLSelectElement instead of SelectElement.
* accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
(optionFromSelection): ditto.
(webkit_accessible_selection_get_selection_count): ditto.
* accessibility/gtk/AXObjectCacheAtk.cpp:
(notifyChildrenSelectionChange): ditto.
* dom/OptionElement.cpp:
(WebCore::OptionElement::optionIndex): ditto.
* dom/OptionElement.h: ditto.
* dom/SelectElement.cpp:
(WebCore::SelectElementData::checkListItems): ditto.
(WebCore::SelectElementData::listItems): ditto.
* dom/SelectElementWin.cpp: Removed.
* dom/SelectElement.h: Removed SelectElement class declaration.
* html/HTMLSelectElement.cpp: Move functions from SelectElement.cpp.
(WebCore::HTMLSelectElement::selectedIndex):
Removed 'SelectElement::' because the function is moved to HTMLSelectElement.
(WebCore::HTMLSelectElement::deselectItems): dito.
(WebCore::HTMLSelectElement::setSelectedIndex): dito.
(WebCore::HTMLSelectElement::setSelectedIndexByUser): ditto.
(WebCore::HTMLSelectElement::activeSelectionEndListIndex): ditto.
(WebCore::HTMLSelectElement::length): ditto.
(WebCore::HTMLSelectElement::saveFormControlState): ditto.
(WebCore::HTMLSelectElement::restoreFormControlState): ditto.
(WebCore::HTMLSelectElement::parseMappedAttribute): ditto.
(WebCore::HTMLSelectElement::selectAll): ditto.
(WebCore::HTMLSelectElement::appendFormData): ditto.
(WebCore::HTMLSelectElement::optionToListIndex): ditto.
(WebCore::HTMLSelectElement::listToOptionIndex): ditto.
(WebCore::HTMLSelectElement::recalcListItems): ditto.
(WebCore::HTMLSelectElement::setRecalcListItems): ditto.
(WebCore::HTMLSelectElement::reset): ditto.
(WebCore::HTMLSelectElement::dispatchFocusEvent): ditto.
(WebCore::HTMLSelectElement::dispatchBlurEvent): ditto.
(WebCore::HTMLSelectElement::defaultEventHandler): ditto.
(WebCore::HTMLSelectElement::setActiveSelectionAnchorIndex): ditto.
(WebCore::HTMLSelectElement::setActiveSelectionEndIndex): ditto.
(WebCore::HTMLSelectElement::updateListBoxSelection): ditto.
(WebCore::HTMLSelectElement::menuListOnChange): ditto.
(WebCore::HTMLSelectElement::listBoxOnChange): ditto.
(WebCore::HTMLSelectElement::saveLastSelection): ditto.
(WebCore::HTMLSelectElement::accessKeySetSelectedIndex): ditto.
(WebCore::HTMLSelectElement::scrollToSelection): ditto.
(WebCore::HTMLSelectElement::insertedIntoTree): ditto.
(WebCore::nextValidIndex): Moved from SelectElement.cpp.
(WebCore::nextSelectableListIndex): ditto.
(WebCore::previousSelectableListIndex): ditto.
(WebCore::firstSelectableListIndex): ditto.
(WebCore::lastSelectableListIndex): ditto.
(WebCore::nextSelectableListIndexPageAway): ditto.
(WebCore::HTMLSelectElement::setOptionsChangedOnRenderer): ditto.
(WebCore::HTMLSelectElement::parseMultipleAttribute): ditto.
(WebCore::HTMLSelectElement::platformHandleKeydownEvent): ditto.
(WebCore::HTMLSelectElement::menuListDefaultEventHandler): ditto.
(WebCore::HTMLSelectElement::updateSelectedState): ditto.
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler): ditto.
(WebCore::HTMLSelectElement::lastSelectedListIndex): ditto.
(WebCore::stripLeadingWhiteSpace): ditto.
(WebCore::HTMLSelectElement::typeAheadFind): ditto.
(WebCore::HTMLSelectElement::optionCount): ditto.
(WebCore::toSelectElement): ditto.
* html/HTMLSelectElementWin.cpp: Copied from Source/WebCore/dom/SelectElementWin.cpp.
(WebCore::HTMLSelectElement::platformHandleKeydownEvent):
* html/HTMLSelectElement.h: Removed 'virtual' of SelectElement functions.
(WebCore::HTMLSelectElement::size):
(WebCore::HTMLSelectElement::multiple):
(WebCore::HTMLSelectElement::listItems):
(WebCore::HTMLSelectElement::updateValidity):
* rendering/RenderListBox.cpp: Replace SelectElement with HTMLSelectElement
(WebCore::RenderListBox::RenderListBox):
(WebCore::RenderListBox::scrollToRevealSelection):
(WebCore::RenderListBox::addFocusRingRects):
(WebCore::RenderListBox::paintItemForeground):
(WebCore::RenderListBox::paintItemBackground):
(WebCore::RenderListBox::panScroll):
(WebCore::RenderListBox::autoscroll):
(WebCore::RenderListBox::valueChanged):
* rendering/RenderMenuList.cpp: Replace SelectElement with HTMLSelectElement
(WebCore::RenderMenuList::RenderMenuList):
(WebCore::RenderMenuList::setTextFromOption):
(WebCore::RenderMenuList::showPopup):
(WebCore::RenderMenuList::valueChanged):
(WebCore::RenderMenuList::listBoxSelectItem):
(WebCore::RenderMenuList::multiple):
(WebCore::RenderMenuList::didSetSelectedIndex):
(WebCore::RenderMenuList::didUpdateActiveOption):
(WebCore::RenderMenuList::itemText):
(WebCore::RenderMenuList::itemAccessibilityText):
(WebCore::RenderMenuList::itemToolTip):
(WebCore::RenderMenuList::itemIsEnabled):
(WebCore::RenderMenuList::itemStyle):
(WebCore::RenderMenuList::itemBackgroundColor):
(WebCore::RenderMenuList::listSize):
(WebCore::RenderMenuList::selectedIndex):
(WebCore::RenderMenuList::itemIsSeparator):
(WebCore::RenderMenuList::itemIsLabel):
(WebCore::RenderMenuList::itemIsSelected):
(WebCore::RenderMenuList::setTextFromItem):
2011-10-06 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r96896.
http://trac.webkit.org/changeset/96896
https://bugs.webkit.org/show_bug.cgi?id=69601
broke windows and mac chromium builds (Requested by simonjam
on #webkit).
* platform/graphics/chromium/ContentLayerChromium.h:
2011-10-06 Antoine Labour <piman@chromium.org>
Webkit API for compositor
https://bugs.webkit.org/show_bug.cgi?id=69107
Reviewed by Darin Fisher.
Covered by existing compositing tests.
* platform/graphics/chromium/ContentLayerChromium.h:
2011-10-06 Joseph Pecoraro <joepeck@webkit.org>
Reviewed by Kent Tamura.
Pass "accept" mime type information into FileChooser at all call sites
https://bugs.webkit.org/show_bug.cgi?id=69592
No new tests. This only exposes some more information to
WebKit ports, no functionality change in WebCore.
* html/FileInputType.cpp:
(WebCore::FileInputType::receiveDropForDirectoryUpload):
2011-10-06 Kent Tamura <tkent@chromium.org>
[JSC binding] Fix inconsistent behavior of DOMStringMap
https://bugs.webkit.org/show_bug.cgi?id=53752
Reviewed by Darin Adler.
The dataset behavior was inconsistent. The get operation handled
data-* attributes first, and the put and delete operations handled
JavaScript properties first.
Like Firefox and Opera, the put and delete operations should
handle data-* attribute first.
* bindings/js/JSDOMStringMapCustom.cpp:
(WebCore::JSDOMStringMap::deleteProperty):
Handles DOMStringMap first, then returns false if the DOMStringMap makes an error.
(WebCore::JSDOMStringMap::putDelegate): ditto.
2011-10-06 Nico Weber <thakis@chromium.org>
[chromium] Let rule_binding use os.execvp() instead of subprocess.call() to spawn fewer processes.
https://bugs.webkit.org/show_bug.cgi?id=69589
Reviewed by Adam Barth.
When building with `make -j40`, all the binding rules are built en bloc. Since this script currently
uses subprocess.call(), that actually spawns 80 processes at once. OS X has a max process limit of
255 by default, so the build used to fail with
"open2: fork failed: Resource temporarily unavailable at ../bindings/scripts/preprocessor.pm line 60"
As a fix, use execvp() instead, which replaces the current process instead of spawning a new one.
* WebCore.gyp/scripts/rule_binding.py:
2011-10-06 Anders Carlsson <andersca@apple.com>
When building with clang, enable -Wglobal-constructors and -Wexit-time-destructors
https://bugs.webkit.org/show_bug.cgi?id=69586
Reviewed by Darin Adler.
* Configurations/Base.xcconfig:
Add -Wglobal-constructors and -Wexit-time-destructors when building with clang.
* WebCore.xcodeproj/project.pbxproj:
When building with clang, we don't need to run the check-for-global-initializers and
check-for-exit-time-destructors anymore.
* platform/graphics/filters/FEGaussianBlur.cpp:
(gaussianKernelFactor):
(WebCore::FEGaussianBlur::calculateKernelSize):
(WebCore::FEGaussianBlur::calculateStdDeviation):
Change the gaussian kernel factor global to be an inline function instead.
2011-10-06 Anders Carlsson <andersca@apple.com>
Add DEFINE_DEBUG_ONLY_GLOBAL for globals that should be defined in debug builds
https://bugs.webkit.org/show_bug.cgi?id=69584
Reviewed by Darin Adler.
Adopt the DEFINE_DEBUG_ONLY_GLOBAL macro.
* bindings/js/JSLazyEventListener.cpp:
* dom/Node.cpp:
* dom/Range.cpp:
* history/CachedPage.cpp:
* loader/SubresourceLoader.cpp:
* loader/cache/CachedResource.cpp:
* page/Frame.cpp:
* page/Page.cpp:
* rendering/BidiRun.cpp:
* rendering/RenderObject.cpp:
* svg/SVGElementInstance.cpp:
* xml/XMLHttpRequest.cpp:
2011-10-06 James Robinson <jamesr@chromium.org>
[chromium] Remove USE(THREADED_COMPOSITING) from the tree
https://bugs.webkit.org/show_bug.cgi?id=69489
Reviewed by Darin Fisher.
This macro isn't needed any more since the logic it guarded is guarded by a runtime switch.
* platform/graphics/chromium/cc/CCLayerTreeHost.h:
2011-10-06 David Grogan <dgrogan@chromium.org>
Return null for the value of IDB key cursors instead of ASSERTing
https://bugs.webkit.org/show_bug.cgi?id=69131
This is in support of the IndexedDB performance improvement here:
http://codereview.chromium.org/7834006/
Reviewed by Tony Chang.
* storage/IDBCursorBackendImpl.cpp:
(WebCore::IDBCursorBackendImpl::value):
2011-10-06 Alexey Proskuryakov <ap@apple.com>
[Mac] Should be able to scroll embedded PDFs using mouse
https://bugs.webkit.org/show_bug.cgi?id=69579
Reviewed by Darin Adler.
Hit testing doesn't find scrollbars installed by a plug-in, so mouse events don't work.
As we want to use WebKit scrollbars with PDF plug-in, a cleaner long-term solution would be
to have a base class under PluginViewBase that can handle scrolling instead of doing that
in PluginView and Plugin.
* plugins/PluginViewBase.h:
(WebCore::PluginViewBase::horizontalScrollbar):
(WebCore::PluginViewBase::verticalScrollbar):
Added accessors for scrollbars installed by plug-in.
* rendering/nodeAtPoint.cpp: (WebCore::RenderEmbeddedObject::nodeAtPoint):
Like RenderLayer, add scrollbars to hit result after normal hit testing.
* rendering/RenderEmbeddedObject.h: Added a nodeAtPoint override.
* rendering/RenderWidget.h: Made nodeAtPoint() protected instead of private, so that
RenderEmbeddedObject could call it.
2011-10-06 Dan Bernstein <mitz@apple.com>
<rdar://problem/9717490> Flash of white when navigating daringfireball.net
https://bugs.webkit.org/show_bug.cgi?id=69581
Reviewed by Darin Adler.
* platform/ScrollView.cpp:
(WebCore::ScrollView::updateScrollbars): Moved the calls to Scrollbar::setEnabled() into the code
section where invalidation is suppressed if necessary, so that they do not trigger premature invalidation.
2011-10-06 Dan Bernstein <mitz@apple.com>
Added a comment explaining code added in r96834.
Suggested by Darin Adler.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::updateAppearance):
2011-10-05 Ryosuke Niwa <rniwa@webkit.org>
Deleting line break before h1 converts h1 to span
https://bugs.webkit.org/show_bug.cgi?id=45784
Reviewed by Enrica Casucci.
This patch fundamentally alters the kind of styles we preserve while merging or moving paragraphs.
StylizedMarkupAccumulator no longer wraps nodes by computed style when it's not annotating for interchange.
Instead, it accumulates implicit and inline styles of ancestors of the serialized contents.
The most significant code change is in StyledMarkupAccumulator::serializeNodes where we setup m_wrappingStyle
by merging implicit and inline style of ancestors with mergeInlineAndImplicitStyleOfElement. Because it walks up
the DOM tree upwards, it should not be overriding any CSS properties. Consequently, mergeStyle,
mergeInlineStyleOfElement, and mergeInlineAndImplicitStyleOfElement are modified to take CSSPropertyOverrideMode.
New behavior matches that of Internet Explorer and Firefox when merging paragraphs.
Tests: editing/deleting/merge-paragraph-from-address.html
editing/deleting/merge-paragraph-from-h6-with-style-2.html
editing/deleting/merge-paragraph-from-h6-with-style.html
editing/deleting/merge-paragraph-from-h6.html
editing/deleting/merge-paragraph-from-listing.html
editing/deleting/merge-paragraph-from-p-with-style-2.html
editing/deleting/merge-paragraph-from-p-with-style-3.html
editing/deleting/merge-paragraph-from-p-with-style.html
editing/deleting/merge-paragraph-into-h1-with-style.html
editing/deleting/merge-paragraph-into-h1.html
editing/deleting/merge-paragraph-into-pre.html
* css/CSSValueList.cpp:
(WebCore::CSSValueList::hasValue): Made const.
* css/CSSValueList.h:
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::removeInlineStyleFromElement): Calls mergeInlineStyleOfElement.
(WebCore::ApplyStyleCommand::applyInlineStyleToPushDown): Ditto.
* editing/EditingStyle.cpp:
(WebCore::copyEditingProperties): Takes a boolean includeBackgroundColor.
(WebCore::isEditingProperty): Extracted from elementIsStyledSpanOrHTMLEquivalent.
(WebCore::EditingStyle::elementIsStyledSpanOrHTMLEquivalent): Calls isEditingProperty.
(WebCore::EditingStyle::mergeTypingStyle): Calls mergeStyle.
(WebCore::EditingStyle::mergeInlineStyleOfElement): Takes CSSPropertyOverrideMode.
(WebCore::elementMatchesAndPropertyIsNotInInlineStyleDecl): Added.
(WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement): Added.
(WebCore::mergeTextDecorationValues): Extracted from mergeStyle.
(WebCore::EditingStyle::mergeStyle): Takes CSSPropertyOverrideMode.
* editing/EditingStyle.h:
* editing/ReplaceSelectionCommand.cpp:
(WebCore::nodeToSplitToAvoidPastingIntoInlineNodesWithStyle): Extracted from doApply.
(WebCore::ReplaceSelectionCommand::doApply): Calls nodeToSplitToAvoidPastingIntoInlineNodesWithStyle.
(WebCore::ReplaceSelectionCommand::performTrivialReplace): Exit early when we need to split the tree to avoid
pasting into inline nodes with style. Also remove a collapsed or spurious br.
* editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::serializeNodes):
2011-10-06 Abhishek Arya <inferno@chromium.org>
Crash in VisiblePosition::canonicalPosition.
https://bugs.webkit.org/show_bug.cgi?id=69568
Reviewed by Ryosuke Niwa.
Move the position's containerNode calculation after layout is
complete(in updateLayoutIgnorePendingStylesheets).
Test: editing/selection/selection-plugin-clear-crash.html
* editing/VisiblePosition.cpp:
(WebCore::VisiblePosition::canonicalPosition):
2011-10-06 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r96861.
http://trac.webkit.org/changeset/96861
https://bugs.webkit.org/show_bug.cgi?id=69573
This patch didn't compile on windows (Requested by annacc on
#webkit).
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::constructTreeFromToken):
2011-10-06 Anna Cavender <annacc@chromium.org>
Adding parens in WebVTTParser.cpp to appease compiler preferences.
https://bugs.webkit.org/show_bug.cgi?id=69460
Reviewed by David Levin.
No new tests. No new functionality.
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::constructTreeFromToken):
2011-10-06 Fady Samuel <fsamuel@chromium.org>
Code clean-up: Make RenderObject::absoluteBoundingBoxRect and associated methods const and make its parameter useTransforms no longer default to false
https://bugs.webkit.org/show_bug.cgi?id=69009
Reviewed by Simon Fraser.
Upcoming patches may make use of absoluteBoundingBoxRect on a const RenderObject, so this needed to be fixed.
Making useTransforms default to true instead of false and replacing instances of absoluteBoundingBoxRect() to
absoluteBoundingBoxRectIgnoringTransforms() partially addreses // FIXME: useTransforms should go away eventually.
* WebCore.exp.in:
* dom/Element.cpp:
(WebCore::Element::screenRect):
* dom/Node.cpp:
(WebCore::Node::getRect):
(WebCore::Node::renderRect):
* html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::setPositionFromPoint):
* html/shadow/TextControlInnerElements.cpp:
(WebCore::InputFieldSpeechButtonElement::startSpeechInput):
* inspector/DOMNodeHighlighter.cpp:
* plugins/IFrameShimSupport.cpp:
(WebCore::getPluginOcclusions):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::absoluteRects):
(WebCore::RenderBlock::absoluteQuads):
* rendering/RenderBlock.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::absoluteRects):
(WebCore::RenderBox::absoluteQuads):
* rendering/RenderBox.h:
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::paintObject):
* rendering/RenderIFrame.cpp:
(WebCore::RenderIFrame::flattenFrame):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::absoluteRects):
(WebCore::RenderInline::culledInlineAbsoluteRects):
(WebCore::RenderInline::absoluteQuads):
(WebCore::RenderInline::culledInlineAbsoluteQuads):
* rendering/RenderInline.h:
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::showPopup):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::absoluteBoundingBoxRect):
(WebCore::RenderObject::addAbsoluteRectForLayer):
(WebCore::RenderObject::paintingRootRect):
* rendering/RenderObject.h:
(WebCore::RenderObject::absoluteRects):
(WebCore::RenderObject::absoluteBoundingBoxRectIgnoringTransforms):
(WebCore::RenderObject::absoluteQuads):
* rendering/RenderText.cpp:
(WebCore::RenderText::absoluteRects):
(WebCore::RenderText::absoluteQuads):
* rendering/RenderText.h:
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::showPopup):
* rendering/RenderThemeSafari.cpp:
(WebCore::RenderThemeSafari::paintSearchFieldCancelButton):
(WebCore::RenderThemeSafari::paintSearchFieldResultsDecoration):
(WebCore::RenderThemeSafari::paintSearchFieldResultsButton):
* rendering/RenderView.cpp:
(WebCore::RenderView::absoluteRects):
(WebCore::RenderView::absoluteQuads):
* rendering/RenderView.h:
* rendering/svg/RenderSVGBlock.cpp:
(WebCore::RenderSVGBlock::absoluteRects):
* rendering/svg/RenderSVGBlock.h:
* rendering/svg/RenderSVGHiddenContainer.cpp:
(WebCore::RenderSVGHiddenContainer::absoluteQuads):
* rendering/svg/RenderSVGHiddenContainer.h:
* rendering/svg/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::absoluteQuads):
* rendering/svg/RenderSVGInline.h:
* rendering/svg/RenderSVGModelObject.cpp:
(WebCore::RenderSVGModelObject::absoluteRects):
(WebCore::RenderSVGModelObject::absoluteQuads):
* rendering/svg/RenderSVGModelObject.h:
* rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::absoluteQuads):
* rendering/svg/RenderSVGText.h:
* testing/Internals.cpp:
(WebCore::Internals::boundingBox):
2011-10-06 Simon Hausmann <simon.hausmann@nokia.com>
[Qt][Wk2] Fix build with Qt 5 when QtScript is built as standalone module
https://bugs.webkit.org/show_bug.cgi?id=69520
Reviewed by Csaba Osztrogonác.
* WebCore.pri: Use qt5 scope.
* WebCore.pro: Use qt5 scope and pull in QtScript for the time being.
2011-10-06 Tony Chang <tony@chromium.org>
last frame of a multipart response is not displayed
https://bugs.webkit.org/show_bug.cgi?id=69449
Reviewed by Adam Barth.
Test: http/tests/multipart/load-last-non-html-frame.php
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::maybeFinishLoadingMultipartContent): for non-progressive load pages, commit the load so the
last frame will be displayed.
* loader/DocumentLoader.h:
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::didFinishLoading):
2011-10-06 Gavin Peters <gavinp@chromium.org>
conditionalize m_cachedScript stacks to just Chromium port
https://bugs.webkit.org/show_bug.cgi?id=69537
New stack saving telemetry code in ScriptElement shouldn't have
been put in all ports; just narrowing it to the chromium port will
save other ports the memory hit of this diagnostic code.
Reviewed by Nate Chapin.
No new tests.
* dom/ScriptElement.cpp:
(WebCore::ScriptElement::ScriptElement):
(WebCore::ScriptElement::requestScript):
(WebCore::ScriptElement::stopLoadRequest):
(WebCore::ScriptElement::notifyFinished):
* dom/ScriptElement.h:
2011-10-06 Arthur Hsu <arthurhsu@chromium.org>
Ensure font loaded before calling Skia to drawPosText in Chrome sandbox
https://bugs.webkit.org/show_bug.cgi?id=69370
Reviewed by James Robinson.
* platform/graphics/chromium/FontChromiumWin.cpp:
(WebCore::Font::drawGlyphs):
2011-10-06 Chris Rogers <crogers@google.com>
BiquadFilterNode must not reset filter state if type attribute is set to the same type
https://bugs.webkit.org/show_bug.cgi?id=69485
Reviewed by Kenneth Russell.
No new tests. This particular case is difficult to test with a layout test using OfflineAudioContext.
* webaudio/BiquadProcessor.cpp:
(WebCore::BiquadProcessor::setType):
* webaudio/BiquadProcessor.h:
2011-10-06 Raphael Kubo da Costa <kubo@profusion.mobi>
[EFL] Do not create cairo surfaces with the wrong size for form elements
https://bugs.webkit.org/show_bug.cgi?id=69533
Reviewed by Ryosuke Niwa.
RenderThemeEfl::cacheThemePartResizeAndReset resizes the Ecore_Evas
associated with an entry, but did not reset the `size` attribute of the
struct -- in practice, this meant the subsequent call to
themePartCacheEntrySurfaceCreate would create a cairo surface with the
previous size, thus rendering an element with the wrong size.
No new tests, this is triggered by running running pixel tests for
running, in this order, fast/forms/button-sizes.html,
fast/forms/input-appearance-preventDefault.html,
fast/forms/input-appearance-spinbutton-disabled-readonly.html,
fast/forms/input-appearance-width.html,
fast/forms/input-button-sizes.html,
fast/forms/input-placeholder-text-indent.html and
fast/forms/input-text-click-inside.html (!).
* platform/efl/RenderThemeEfl.cpp:
(WebCore::RenderThemeEfl::cacheThemePartResizeAndReset): Reset the
size attribute when resizing the canvas.
2011-10-06 Chris Rogers <crogers@google.com>
Make sure OfflineAudioContext can not be created with a sample-rate less than 44.1KHz
https://bugs.webkit.org/show_bug.cgi?id=69483
Reviewed by Kenneth Russell.
No new tests.
* webaudio/AudioBuffer.cpp:
(WebCore::AudioBuffer::create):
* webaudio/AudioContext.cpp:
(WebCore::AudioContext::createBuffer):
2011-10-06 David Hyatt <hyatt@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=69544
[CSS3 Regions] Compute the starting and ending regions of a block, so that we can clamp
descendants to those regions. This is preparation for having true overflow in the boxes
in each region, and it's also a performance optimization to reduce the amount of
region walking that the RenderFlowThread is doing.
Add a range map to RenderFlowThread to cache the start/end regions for each box.
Amend everyone who calls renderRegionForLine to pass in the box that is making the query.
This box is then used to clamp to start and end regions so that any regions outside of that
range will never be examined.
Reviewed by Dan Bernstein.
Test: fast/regions/top-overflow-out-of-second-region.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock):
(WebCore::RenderBlock::hasNextPage):
(WebCore::RenderBlock::pageLogicalHeightForOffset):
(WebCore::RenderBlock::pageRemainingLogicalHeightForOffset):
(WebCore::RenderBlock::regionAtBlockOffset):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::~RenderFlowThread):
(WebCore::RenderFlowThread::layout):
(WebCore::RenderFlowThread::renderRegionForLine):
(WebCore::RenderFlowThread::regionLogicalWidthForLine):
(WebCore::RenderFlowThread::regionLogicalHeightForLine):
(WebCore::RenderFlowThread::regionRemainingLogicalHeightForLine):
(WebCore::RenderFlowThread::mapFromFlowToRegion):
(WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
(WebCore::RenderFlowThread::logicalWidthChangedInRegions):
(WebCore::RenderFlowThread::setRegionRangeForBox):
(WebCore::RenderFlowThread::getRegionRangeForBox):
* rendering/RenderFlowThread.h:
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::takeRenderBoxRegionInfo):
(WebCore::RenderRegion::removeRenderBoxRegionInfo):
* rendering/RenderRegion.h:
2011-10-05 Gavin Barraclough <barraclough@apple.com>
Add explicit JSGlobalThis type.
https://bugs.webkit.org/show_bug.cgi?id=69478
Reviewed by Darin Adler.
JSC supports a split global object, as used by WebCore for the Window. As a stage
of making this visible to JSC, make it so that if the global this value is not the
global object itself, it must be a subclass of JSGlobalThis.
* ForwardingHeaders/runtime/JSGlobalThis.h: Added.
- Added forwarding header.
* bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::finishCreation):
* bindings/js/JSDOMGlobalObject.h:
- finishCreation takes a JSGlobalThis, or thisValue is implicit.
* bindings/js/JSDOMWindowShell.h:
- Make the window shell a subclass of JSGlobalThis.
* bindings/js/JSWorkerContextBase.cpp:
(WebCore::JSWorkerContextBase::finishCreation):
- Don't pass the thisValue to JSGlobalObject::finishCreation.
* bindings/js/JSWorkerContextBase.h:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
- Don't pass the thisValue to JSGlobalObject::finishCreation,
for worker contexts.
2011-10-06 Anna Cavender <annacc@chromium.org>
Fix CodeGeneratorV8 for EnabledAtRuntime when class has no parent class.
https://bugs.webkit.org/show_bug.cgi?id=69480
Reviewed by Adam Barth.
No new tests. No new functionality, yet.
* bindings/scripts/CodeGeneratorV8.pm:
2011-10-06 Dan Bernstein <mitz@apple.com>
<rdar://problem/10232866> Assertion failure beneath blockSelectionGaps() when a selected node is removed
Reviewed by Ryosuke Niwa.
Test: editing/selection/invalid-in-RenderView.html
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::updateAppearance): Ensure that the VisibleSelection used to set the selection
in the RenderView is valid, by reconstructing it from the current selection.
2011-10-06 Andreas Kling <kling@webkit.org>
InlineBox's virtualLogicalHeight() partially limited to builds with SVG.
https://bugs.webkit.org/show_bug.cgi?id=69538
Reviewed by Dan Bernstein.
Remove erroneous ENABLE(SVG) guards around the initialization and use
of InlineBox::hasVirtualLogicalHeight.
This variable is used by TrailingFloatsRootInlineBox and should always
be respected regardless of SVG support.
* rendering/InlineBox.cpp:
(WebCore::InlineBox::logicalHeight):
* rendering/InlineBox.h:
(WebCore::InlineBox::InlineBox):
2011-10-06 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Implement cache model for WebKit2
https://bugs.webkit.org/show_bug.cgi?id=68434
Reviewed by Martin Robinson.
Add a function to FileSystem to get the free space of the file
system where the given path is on.
* platform/FileSystem.h:
* platform/gtk/FileSystemGtk.cpp:
(WebCore::getVolumeFreeSizeForPath):
2011-10-06 Sergey Glazunov <serg.glazunov@gmail.com>
Add check for JavaScript URLs in HTMLPlugInImageElement::allowedToLoadFrameURL
https://bugs.webkit.org/show_bug.cgi?id=68813
Reviewed by Adam Barth.
Test: http/tests/security/xss-DENIED-object-element.html
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::allowedToLoadFrameURL):
2011-10-06 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: avoid assertion failure in ~InspectorDebuggerAgent in case of workers
https://bugs.webkit.org/show_bug.cgi?id=69534
Make sure frontend is disconnected before WorkerInspectorController is destroyed.
Reviewed by Pavel Feldman.
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::~WorkerInspectorController):
2011-10-05 Alexey Proskuryakov <ap@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=69492
[Mac] Should be able to scroll embedded PDFs from keyboard
Reviewed by Darin Adler.
* WebCore.exp.in: Export ScrollableArea::scroll.
* html/HTMLPlugInElement.cpp: (WebCore::HTMLPlugInElement::defaultEventHandler): Call base
class default event handler, so that events on focused plug-in elements would fall through
to EventHandler::defaultKeyboardEventHandler.
* plugins/PluginViewBase.h: (WebCore::PluginViewBase::scroll): Added a method that's called
on a plug-in when WebCore asks it to scroll. Plug-in cannot really know what key events
result in scroll actions.
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::scroll):
(WebCore::RenderEmbeddedObject::logicalScroll):
* rendering/RenderEmbeddedObject.h:
Ask plug-in to scroll when EventHandler::scrollOverflow() is called.
2011-10-06 Konstantin Scheglov <scheglov@google.com>
REGRESSION (r95852?): Disappearing Border on bugs.webkit.org attachments <table>
https://bugs.webkit.org/show_bug.cgi?id=69296
Reviewed by David Hyatt.
Test: fast/table/border-collapsing/cached-69296.html
Remember BorderValue in CollapsedBorderValue by value.
See https://bugs.webkit.org/show_bug.cgi?id=69296#c7 for motivation.
* rendering/style/CollapsedBorderValue.h:
(WebCore::CollapsedBorderValue::CollapsedBorderValue):
(WebCore::CollapsedBorderValue::width):
(WebCore::CollapsedBorderValue::style):
(WebCore::CollapsedBorderValue::exists):
(WebCore::CollapsedBorderValue::isTransparent):
(WebCore::CollapsedBorderValue::operator==):
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::collapsedStartBorder):
(WebCore::RenderTableCell::collapsedEndBorder):
(WebCore::RenderTableCell::collapsedBeforeBorder):
(WebCore::RenderTableCell::collapsedAfterBorder):
2011-10-06 Gavin Peters <gavinp@chromium.org>
save resource zeroing stacks in ScriptElement for debugging
https://bugs.webkit.org/show_bug.cgi?id=69453
The state machine tracking how m_cachedScript gets zeroed shows that sometimes we get
two notifyFinished() events in a ScriptElement, which can crash chrome (see chrome bug
75604). This patch will save a stack in the ScriptElement when this happens, so that if
we do later crash, we can see how we did the first zeroing.
See http://code.google.com/p/chromium/issues/detail?id=75604 for the chromium bug that
this change will help track down.
Reviewed by Nate Chapin.
No new tests, this shouldn't affect output at all, and isn't particularly testable.
* dom/ScriptElement.cpp:
(WebCore::ScriptElement::ScriptElement):
(WebCore::ScriptElement::stopLoadRequest):
(WebCore::ScriptElement::notifyFinished):
* dom/ScriptElement.h:
2011-10-06 Rémi Duraffort <remi.duraffort@st.com>
Fix compilation by adding some missing ENABLE(VIDEO|XSLT)
https://bugs.webkit.org/show_bug.cgi?id=69522
Unreviewed build fix
* bindings/v8/custom/V8HTMLAudioElementConstructor.cpp:
* bindings/v8/custom/V8HTMLAudioElementConstructor.h:
* bindings/v8/custom/V8XSLTProcessorCustom.cpp:
2011-10-06 Pavel Feldman <pfeldman@google.com>
Web Inspector: add Styles and Metrics sidebars to the compilation.
https://bugs.webkit.org/show_bug.cgi?id=69529
Reviewed by Yury Semikhatsky.
* inspector/compile-front-end.sh:
* inspector/front-end/CSSCompletions.js:
(WebInspector.CSSCompletions.requestCSSNameCompletions):
* inspector/front-end/CSSKeywordCompletions.js:
(WebInspector.CSSKeywordCompletions.forProperty):
(WebInspector.CSSKeywordCompletions.isColorAwareProperty):
* inspector/front-end/Checkbox.js:
* inspector/front-end/ElementsPanel.js:
* inspector/front-end/MetricsSidebarPane.js:
(WebInspector.MetricsSidebarPane.prototype._updateMetrics):
(WebInspector.MetricsSidebarPane.prototype.startEditing):
(WebInspector.MetricsSidebarPane.prototype._handleKeyDown):
* inspector/front-end/SourceCSSTokenizer.js:
(WebInspector.SourceCSSTokenizer):
* inspector/front-end/SourceCSSTokenizer.re2js:
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylesSidebarPane.prototype.update):
(WebInspector.StylesSidebarPane.prototype._rebuildUpdate):
(WebInspector.StylesSidebarPane.prototype._rebuildSectionsForStyleRules):
(WebInspector.StylePropertiesSection.prototype.onpopulate):
(WebInspector.StylePropertiesSection.prototype.startEditingSelector):
(WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted.successCallback):
(WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted):
(WebInspector.ComputedStylePropertiesSection.prototype.onpopulate):
(WebInspector.BlankStylePropertiesSection.prototype.makeNormal):
(WebInspector.StylePropertyTreeElement.prototype.updateTitle.linkifyURL):
(WebInspector.StylePropertyTreeElement.prototype):
* inspector/front-end/externs.js:
(WebInspector.linkifyResourceAsNode):
(Element.prototype.scrollIntoViewIfNeeded):
(Element.prototype.selectionLeftOffset):
* inspector/front-end/inspector.js:
* inspector/front-end/utilities.js:
2011-10-06 Pavel Feldman <pfeldman@google.com>
Web Inspector: extract DOMPresentation, make EventListenersSidebar compile
https://bugs.webkit.org/show_bug.cgi?id=69527
Reviewed by Yury Semikhatsky.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/compile-front-end.sh:
* inspector/front-end/DOMAgent.js:
(WebInspector.DOMNode.prototype.nodeNameInCorrectCase):
(WebInspector.DOMNode.prototype.moveTo):
(WebInspector.DOMNode.prototype.isXMLNode):
* inspector/front-end/DOMBreakpointsSidebarPane.js:
(WebInspector.DOMBreakpointsSidebarPane.prototype._setBreakpoint):
* inspector/front-end/DOMPresentation.js: Added.
(WebInspector.DOMPresentation.decorateNodeLabel):
(WebInspector.DOMPresentation.linkifyNodeReference):
(WebInspector.DOMPresentation.linkifyNodeById):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype.updateBreadcrumb):
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeOutline.prototype.set rootDOMNode):
* inspector/front-end/EventListenersSidebarPane.js:
* inspector/front-end/ObjectPropertiesSection.js:
* inspector/front-end/PropertiesSection.js:
* inspector/front-end/Section.js:
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylesSidebarPane.prototype._rebuildStyleRules):
(WebInspector.StylesSidebarPane.prototype._rebuildSectionsForStyleRules):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
2011-10-06 Pavel Feldman <pfeldman@google.com>
Web Inspector: add all Resource panel views to the compilation.
https://bugs.webkit.org/show_bug.cgi?id=69526
Reviewed by Yury Semikhatsky.
* inspector/compile-front-end.sh:
* inspector/front-end/CookieItemsView.js:
(WebInspector.CookieItemsView.prototype._contextMenu):
(WebInspector.Cookies.cookieMatchesResourceURL):
* inspector/front-end/CookiesTable.js:
(WebInspector.CookiesTable):
(WebInspector.CookiesTable.prototype._onDeleteFromGrid):
* inspector/front-end/DOMStorageItemsView.js:
(WebInspector.DOMStorageItemsView.prototype._dataGridForDOMStorageEntries):
* inspector/front-end/DataGrid.js:
(WebInspector.DataGrid.createSortableDataGrid.sortDataGrid.comparator):
(WebInspector.DataGrid.createSortableDataGrid.sortDataGrid):
(WebInspector.DataGrid.createSortableDataGrid):
* inspector/front-end/DatabaseQueryView.js:
(WebInspector.DatabaseQueryView.prototype._queryFinished):
* inspector/front-end/DatabaseTableView.js:
(WebInspector.DatabaseTableView.prototype._queryFinished):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel.prototype.reset):
(WebInspector.ResourcesPanel.prototype.showDatabase):
* inspector/front-end/TextPrompt.js:
2011-10-06 Pavel Feldman <pfeldman@google.com>
Web Inspector: add all Resource panel views to the compilation.
https://bugs.webkit.org/show_bug.cgi?id=69526
Reviewed by Yury Semikhatsky.
* inspector/compile-front-end.sh:
* inspector/front-end/CookieItemsView.js:
(WebInspector.CookieItemsView.prototype._contextMenu):
(WebInspector.Cookies.cookieMatchesResourceURL):
* inspector/front-end/CookiesTable.js:
(WebInspector.CookiesTable):
(WebInspector.CookiesTable.prototype._onDeleteFromGrid):
* inspector/front-end/DOMStorageItemsView.js:
(WebInspector.DOMStorageItemsView.prototype._dataGridForDOMStorageEntries):
* inspector/front-end/DataGrid.js:
(WebInspector.DataGrid.createSortableDataGrid.sortDataGrid.comparator):
(WebInspector.DataGrid.createSortableDataGrid.sortDataGrid):
(WebInspector.DataGrid.createSortableDataGrid):
* inspector/front-end/DatabaseQueryView.js:
(WebInspector.DatabaseQueryView.prototype._queryFinished):
* inspector/front-end/DatabaseTableView.js:
(WebInspector.DatabaseTableView.prototype._queryFinished):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel.prototype.reset):
(WebInspector.ResourcesPanel.prototype.showDatabase):
* inspector/front-end/TextPrompt.js:
2011-10-06 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r96791.
http://trac.webkit.org/changeset/96791
https://bugs.webkit.org/show_bug.cgi?id=69528
webkit_unit_tests broken on Mac and Win (Requested by
hwennborg on #webkit).
* platform/graphics/chromium/cc/CCLayerTreeHost.h:
2011-10-05 Mikhail Naganov <mnaganov@chromium.org>
Web Inspector: [Chromium] Heap Snapshot colors legend help popup is not shown.
https://bugs.webkit.org/show_bug.cgi?id=69482
Reviewed by Yury Semikhatsky.
* inspector/front-end/DetailedHeapshotView.js:
(WebInspector.DetailedHeapshotView.prototype._helpClicked):
2011-10-05 Pavel Feldman <pfeldman@google.com>
Web Inspector: add 10 more front-end classes to the compilation process.
https://bugs.webkit.org/show_bug.cgi?id=69445
Reviewed by Yury Semikhatsky.
* inspector/compile-front-end.sh:
* inspector/front-end/HAREntry.js:
* inspector/front-end/HandlerRegistry.js:
* inspector/front-end/IFrameView.js:
* inspector/front-end/JavaScriptSourceFrame.js:
* inspector/front-end/PanelEnablerView.js:
(WebInspector.PanelEnablerView):
* inspector/front-end/PartialQuickSort.js:
* inspector/front-end/PropertiesSidebarPane.js:
(WebInspector.PropertiesSidebarPane.prototype.update.fillSection):
(WebInspector.PropertiesSidebarPane.prototype.update):
* inspector/front-end/ShowMoreDataGridNode.js:
* inspector/front-end/SidebarTreeElement.js:
* inspector/front-end/TimelineAgent.js:
* inspector/front-end/WelcomeView.js:
* inspector/front-end/externs.js:
(WebInspector.addMainEventListeners):
2011-10-05 Pavel Feldman <pfeldman@google.com>
Web Inspector: make ElementsTreeOutline compile
https://bugs.webkit.org/show_bug.cgi?id=69439
Reviewed by Yury Semikhatsky.
* inspector/compile-front-end.sh:
* inspector/front-end/DOMAgent.js:
* inspector/front-end/DOMSyntaxHighlighter.js:
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.get this):
(WebInspector.ElementsPanel):
(WebInspector.ElementsPanel.prototype._populateContextMenu):
(WebInspector.ElementsPanel.prototype._inspectElementRequested):
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeOutline):
(WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired.focusElement):
(WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired):
(WebInspector.ElementsTreeOutline.prototype._updateModifiedNodes):
(WebInspector.ElementsTreeOutline.prototype._populateContextMenu):
(WebInspector.ElementsTreeElement.prototype._populateTagContextMenu):
(WebInspector.ElementsTreeElement.prototype._startEditingAttribute):
(WebInspector.ElementsTreeElement.prototype._startEditingTextNode):
(WebInspector.ElementsTreeElement.prototype._startEditingTagName):
(WebInspector.ElementsTreeElement.prototype._startEditingAsHTML):
(WebInspector.ElementsTreeElement.prototype._tagNameEditingCommitted.changeTagNameCallback):
(WebInspector.ElementsTreeElement.prototype._tagNameEditingCommitted):
():
* inspector/front-end/externs.js:
(WebInspector.highlightDOMNode):
(WebInspector.resourceURLForRelatedNode):
2011-10-06 Pavel Feldman <pfeldman@google.com>
Web Inspector: Inspector fails to start if there was at least one watch expression.
https://bugs.webkit.org/show_bug.cgi?id=69516
Reviewed by Yury Semikhatsky.
* inspector/front-end/ConsoleView.js:
* inspector/front-end/WatchExpressionsSidebarPane.js:
(WebInspector.WatchExpressionsSidebarPane):
2011-10-06 Dominic Cooney <dominicc@chromium.org>
Don't make virtual calls in Node::parentNode.
https://bugs.webkit.org/show_bug.cgi?id=69266
Reviewed by Antti Koivisto.
ShadowRoot and SVGShadowRoot remain semantically separate (eg
isShadowRoot/isSVGShadowRoot) but share a flag
(IsShadowRootOrSVGShadowRootFlag, hitherto IsShadowRootFlag just
for ShadowRoot). In combination with IsSVGFlag ShadowRoot (false)
can be distinguished from SVGShadowRoot (true). This lets us make
isSVGShadowRoot non-virtual.
No change in behavior => No new tests.
* dom/Node.cpp:
(WebCore::Node::shadowHost):
* dom/Node.h:
(WebCore::Node::isSVGShadowRoot):
(WebCore::Node::isShadowRoot):
(WebCore::Node::parentNode):
(WebCore::Node::parentNodeGuaranteedHostFree):
* rendering/svg/SVGShadowTreeElements.cpp:
(WebCore::SVGShadowTreeContainerElement::SVGShadowTreeContainerElement):
(WebCore::SVGShadowTreeRootElement::SVGShadowTreeRootElement):
* rendering/svg/SVGShadowTreeElements.h:
* svg/SVGElement.cpp:
(WebCore::SVGElement::SVGElement):
* svg/SVGElement.h:
* svg/SVGGElement.cpp:
(WebCore::SVGGElement::SVGGElement):
* svg/SVGGElement.h:
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::SVGStyledElement):
* svg/SVGStyledElement.h:
* svg/SVGStyledLocatableElement.cpp:
(WebCore::SVGStyledLocatableElement::SVGStyledLocatableElement):
* svg/SVGStyledLocatableElement.h:
* svg/SVGStyledTransformableElement.cpp:
(WebCore::SVGStyledTransformableElement::SVGStyledTransformableElement):
* svg/SVGStyledTransformableElement.h:
2011-10-06 John Knottenbelt <jknotten@chromium.org>
Take pageScaleFactor into account for MouseRelatedEvents.
https://bugs.webkit.org/show_bug.cgi?id=67592
Reviewed by Tony Gentilcore.
Tests: fast/events/page-scaled-mouse-click-iframe.html
fast/events/page-scaled-mouse-click.html
* dom/MouseRelatedEvent.cpp:
(WebCore::contentsScrollOffset):
(WebCore::MouseRelatedEvent::MouseRelatedEvent):
(WebCore::frameScaleFactor):
(WebCore::MouseRelatedEvent::computePageLocation):
(WebCore::MouseRelatedEvent::computeRelativePosition):
2011-10-03 Hans Wennborg <hans@chromium.org>
IndexedDB: Remove SQLite-LevelDB migration code
https://bugs.webkit.org/show_bug.cgi?id=69264
Reviewed by Tony Chang.
Remove migration functionality.
Just removing code, so no new tests.
* storage/IDBFactoryBackendImpl.cpp:
(WebCore::IDBFactoryBackendImpl::open):
* storage/IDBFactoryBackendImpl.h:
2011-10-06 James Robinson <jamesr@chromium.org>
[chromium] Remove USE(THREADED_COMPOSITING) from the tree
https://bugs.webkit.org/show_bug.cgi?id=69489
Reviewed by Darin Fisher.
This macro isn't needed any more since the logic it guarded is guarded by a runtime switch.
* platform/graphics/chromium/cc/CCLayerTreeHost.h:
2011-10-05 Kentaro Hara <haraken@chromium.org>
Refactor IDL attributes about constructor
https://bugs.webkit.org/show_bug.cgi?id=69074
Reviewed by Adam Barth.
Currently, IDL attributes about constructor are confusing:
- [CustomConstructFunction] means that there is a custom constructor for JSC.
- [V8CustomConstructor] means that there is a custom constructor for V8.
- [CustomConstructor] exists in CodeGenerator*.pm but is not used in any IDL files.
- For almost all IDL files, [CustomConstructFunction] and [V8CustomConstructor] are used at the same time.
- ObjC, CPP and GObject bindings do not support custom constructors.
This patch makes the following changes:
- Rename [CustomConstructFunction] to [JSCustomConstructor].
- [JSCustomConstructor] means that there is a custom constructor for JSC.
- [V8CustomConstructor] means that there is a custom constructor for V8.
- [CustomConstructor] means that there is a custom constructor for both JSC and V8.
No new tests. No change in behavior. Confirm that build succeeds.
* bindings/scripts/CodeGeneratorJS.pm: Removed [CustomConstructFunction] and added [JSCustomConstructor]
(GenerateHeader):
(GenerateAttributesHashTable):
(GenerateImplementation):
(GenerateConstructorDefinition):
* css/WebKitCSSMatrix.idl: Renamed [CustomConstructFunction] to [JSCustomConstructor]. If both [JSCustomConstructor] and [V8CustomConstructor] are specified, then we replaced them with [CustomConstructor].
* dom/CustomEvent.idl: Ditto.
* dom/ErrorEvent.idl: Ditto.
* dom/Event.idl: Ditto.
* dom/HashChangeEvent.idl: Ditto.
* dom/MessageChannel.idl: Ditto.
* dom/MessageEvent.idl: Ditto.
* dom/PageTransitionEvent.idl: Ditto.
* dom/PopStateEvent.idl: Ditto.
* dom/ProgressEvent.idl: Ditto.
* dom/WebKitAnimationEvent.idl: Ditto.
* html/DOMFormData.idl: Ditto.
* html/canvas/ArrayBuffer.idl: Ditto.
* html/canvas/DataView.idl: Ditto.
* html/canvas/Float32Array.idl: Ditto.
* html/canvas/Float64Array.idl: Ditto.
* html/canvas/Int16Array.idl: Ditto.
* html/canvas/Int32Array.idl: Ditto.
* html/canvas/Int8Array.idl: Ditto.
* html/canvas/Uint16Array.idl: Ditto.
* html/canvas/Uint32Array.idl: Ditto.
* html/canvas/Uint8Array.idl: Ditto.
* p2p/PeerConnection.idl: Ditto.
* page/EventSource.idl: Ditto.
* page/WebKitPoint.idl: Ditto.
* webaudio/AudioContext.idl: Ditto.
* websockets/CloseEvent.idl: Ditto.
* websockets/WebSocket.idl: Ditto.
* workers/SharedWorker.idl: Ditto.
* workers/Worker.idl: Ditto.
* xml/XMLHttpRequest.idl: Ditto.
* xml/XSLTProcessor.idl: Ditto.
2011-10-03 Andy Estes <aestes@apple.com>
Add the option to suppress rendering until the document's load event fires.
https://bugs.webkit.org/show_bug.cgi?id=69298
Reviewed by Simon Fraser.
Add a WebCore setting that suppresses painting and compositing layer
updates until the document's load event fires. This masks the effects
of incremental rendering (for clients that opt in) by ensuring that all
sub-resources have loaded and a full layout has taken place before
painting the document for the first time.
No tests currently possible. Testing this would require the ability for
DRT to dump state while resources are loading, which it doesn't
currently do.
* dom/Document.cpp:
(WebCore::Document::implicitClose): If rendering was previously
suppressed, force a repaint and compositing layer update.
(WebCore::Document::visualUpdatesAllowed): Add a helper method to
determine if the document is in a state where rendering is allowed.
* dom/Document.h:
* page/Settings.cpp:
(WebCore::Settings::Settings):
* page/Settings.h:
(WebCore::Settings::setSuppressIncrementalRendering):
(WebCore::Settings::suppressIncrementalRendering):
* rendering/RenderLayer.cpp:
(WebCore::shouldSuppressPaintingLayer): Encapsulate the FOUC and
painting suppression checks into a single helper function for
readability's sake.
(WebCore::RenderLayer::paintLayer):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateCompositingLayers): If we should
suppress compositing layer updates and the load event has yet to fire,
return early.
2011-10-05 Yuta Kitamura <yutak@chromium.org>
WebSocket: Add extensions attribute
https://bugs.webkit.org/show_bug.cgi?id=69408
Reviewed by Kent Tamura.
Add WebSocket's "extensions" attribute as specified in the WebSocket API
<http://dev.w3.org/html5/websockets/#the-websocket-interface>.
WebSocket protocol extension is not implemented at all, thus this attribute
always returns an empty string.
Test: http/tests/websocket/tests/hybi/extensions.html
http/tests/websocket/tests/hixie76/undefined-attributes.html (updated)
* websockets/WebSocket.cpp:
(WebCore::WebSocket::extensions):
If the hixie-76 protocol is chosen, we need to return "undefined" in order to
keep behavior of the ports which have not used the newer hybi protocol yet.
* websockets/WebSocket.h:
* websockets/WebSocket.idl:
2011-10-05 Dominic Cooney <dominicc@chromium.org>
IsShadowRootFlag should not depend on whether a ShadowRoot is attached to a host.
https://bugs.webkit.org/show_bug.cgi?id=69406
Reviewed by Hajime Morita.
No change in behavior => No new tests.
* dom/Node.cpp:
(WebCore::Node::setShadowHost): Don't twiddle the flag.
* dom/Node.h:
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::ShadowRoot): Set the IsShadowRootFlag on creation.
* dom/TreeScope.cpp:
(WebCore::TreeScope::TreeScope): Let ShadowRoot set creation flags.
* dom/TreeScope.h:
2011-10-05 Chris Rogers <crogers@google.com>
Define a log2f() function for Windows in wtf/MathExtras.h
https://bugs.webkit.org/show_bug.cgi?id=69491
Reviewed by Darin Adler.
No new tests. This change is tested in existing layout tests.
* webaudio/AudioParamTimeline.cpp:
(WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
2011-10-05 Erik Arvidsson <arv@chromium.org>
window.location.href and others needlessly decodes URI-encoded characters
https://bugs.webkit.org/show_bug.cgi?id=30225
Reviewed by Darin Adler.
Don't decode KURL::path() and stop using KURL::deprecatedString() in Location methods.
This slightly changes how we parse data and javascript URLs (non hierarchical URLs) to
not encode so aggressively.
* fileapi/DOMFileSystemBase.cpp:
(WebCore::DOMFileSystemBase::crackFileSystemURL): Manually decode path()
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::defaultObjectContentType): Manually decode path()
* page/Location.cpp:
(WebCore::Location::href): Use string() instead of deprecatedString()
* page/Location.h:
(WebCore::Location::toString): Inline call to href()
* platform/KURL.cpp:
(WebCore::KURL::path): Don't decode.
(WebCore::escapeAndAppendNonHierarchicalPart): Rename escapeAndAppendFragment to escapeAndAppendNonHierarchicalPart
since this is now used for more than just fragments.
(WebCore::KURL::parse): Don't decode
* platform/KURLGoogle.cpp:
(WebCore::KURL::path): Remove out of date comment
* platform/qt/KURLQt.cpp:
(WebCore::KURL::fileSystemPath): Manually decode path()
* platform/win/ClipboardWin.cpp:
(WebCore::createGlobalHDropContent): Manually decode path()
* workers/WorkerLocation.cpp:
(WebCore::WorkerLocation::href): Use string() instead of deprecatedString()
* workers/WorkerLocation.h:
(WebCore::WorkerLocation::toString): Inline call to href()
2011-10-05 Darin Adler <darin@apple.com>
[Mac] Use four more named cursors if present
https://bugs.webkit.org/show_bug.cgi?id=69488
Reviewed by Dan Bernstein.
* platform/mac/CursorMac.mm:
(WebCore::Cursor::ensurePlatformCursor): Use the names "Help", "Cell",
"ZoomIn", and "ZoomOut" to get those cursors. Structure the code so it
falls back if the cursors are not present.
2011-10-05 Tony Chang <tony@chromium.org>
force margin:auto to 0 in flex items
https://bugs.webkit.org/show_bug.cgi?id=69475
Reviewed by Ojan Vafai.
The spec used to say the margin had a value of flex(1 0 0), but changed to just be 0.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computePreferredLogicalWidth):
(WebCore::RenderFlexibleBox::layoutAndPlaceChildrenInlineDirection):
2011-10-05 Dean Jackson <dino@apple.com>
Computed style for filter property
https://bugs.webkit.org/show_bug.cgi?id=68477
Reviewed by Simon Fraser.
Reports the computed style for the new -webkit-filter
property value.
Test: css3/filters/filter-property-computed-style.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::computedFilter):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2011-10-05 Jer Noble <jer.noble@apple.com>
Enable WEB_AUDIO by default in the WebKit/mac port.
https://bugs.webkit.org/show_bug.cgi?id=68587
Reviewed by Simon Fraser.
No new tests; existing webaudio/ layout tests cover this.
* Configurations/FeatureDefines.xcconfig:
* WebCore.xcodeproj/project.pbxproj: Add a build step which copies audio resources to
the WebCore.framework bundle.
2011-10-03 Ojan Vafai <ojan@chromium.org>
[flexbox] take marginBeforeForChild into account when positioning children
https://bugs.webkit.org/show_bug.cgi?id=69313
Reviewed by Tony Chang.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutAndPlaceChildrenInlineDirection):
2011-10-05 Vangelis Kokkevis <vangelis@chromium.org>
Switching threaded compositor from a compile time option to a
run time one.
https://bugs.webkit.org/show_bug.cgi?id=69391
Reviewed by Darin Fisher.
Mostly converted #if USE(THREADED_COMPOSITING) to a regular if statements.
In addition, CCLayerTreeHost::scheduleComposite() is removed as it wasn't being
called from anywhere,
No new tests as it doesn't add new functionality.
* platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
(WebCore::CCLayerTreeHost::setNeedsCommitThenRedraw):
(WebCore::CCLayerTreeHost::setNeedsRedraw):
(WebCore::CCLayerTreeHost::composite):
* platform/graphics/chromium/cc/CCLayerTreeHost.h:
* platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
(WebCore::CCSingleThreadProxy::setNeedsCommitThenRedraw):
(WebCore::CCSingleThreadProxy::compositeImmediately):
* platform/graphics/chromium/cc/CCSingleThreadProxy.h:
2011-10-05 Dean Jackson <dino@apple.com>
Parse '-webkit-filter' property syntax
https://bugs.webkit.org/show_bug.cgi?id=68473
Reviewed by Nikolas Zimmermann.
Parse the new -webkit-filter property, looking for shorthand
functions then testing number, type and value of parameters.
Note that support for drop-shadow() was omitted from this
patch because parsing CSS shadow syntax was going to require some
refactoring of the box and text shadow code. The followup
bug is https://bugs.webkit.org/show_bug.cgi?id=69108.
Also, computed style will return null for filters at the moment.
That's https://bugs.webkit.org/show_bug.cgi?id=68477.
Tests: css3/filters/filter-property-parsing-invalid.html
css3/filters/filter-property-parsing.html
* CMakeLists.txt:
* CodeGenerators.pri:
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.list.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
Build files updated for new WebKitCSSFilterValue classes.
* bindings/js/JSCSSValueCustom.cpp:
(WebCore::toJS):
* bindings/objc/DOMCSS.mm:
Test if value is WebKitCSSFilterValue.
* css/CSSParser.cpp:
(WebCore::filterInfoForName):
(WebCore::CSSParser::isValidFilterArgument):
(WebCore::CSSParser::parseFilter):
* css/CSSParser.h:
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
(WebCore::filterOperationForType):
(WebCore::CSSStyleSelector::createFilterOperations):
* css/CSSStyleSelector.h:
Handle the new shorthand functions in -webkit-filter.
* css/CSSValue.h:
(WebCore::CSSValue::isWebKitCSSFilterValue):
Add virtual function that returns false here.
* css/WebKitCSSFilterValue.cpp: Added.
(WebCore::WebKitCSSFilterValue::WebKitCSSFilterValue):
(WebCore::WebKitCSSFilterValue::~WebKitCSSFilterValue):
(WebCore::WebKitCSSFilterValue::cssText):
* css/WebKitCSSFilterValue.h: Added.
(WebCore::WebKitCSSFilterValue::create):
(WebCore::WebKitCSSFilterValue::operationType):
(WebCore::WebKitCSSFilterValue::isWebKitCSSFilterValue):
* css/WebKitCSSFilterValue.idl: Added.
WebKitCSSFilterValue modelled closely on WebKitCSSTransformValue,
basically identifying the type of operation in a CSSValueList.
* page/DOMWindow.idl:
New WebKitCSSFilterValue constructor.
* platform/graphics/filters/FilterOperation.h:
(WebCore::BlurFilterOperation::create):
(WebCore::BlurFilterOperation::stdDeviationX):
(WebCore::BlurFilterOperation::stdDeviationY):
(WebCore::BlurFilterOperation::BlurFilterOperation):
(WebCore::SharpenFilterOperation::create):
(WebCore::SharpenFilterOperation::radius):
(WebCore::SharpenFilterOperation::threshold):
(WebCore::SharpenFilterOperation::SharpenFilterOperation):
Use Length rather than double for parameters that are CSS lengths.
2011-10-05 Chris Rogers <crogers@google.com>
Fix Windows build - it doesn't have a log2f() function...
https://bugs.webkit.org/show_bug.cgi?id=69473
Unreviewed build fix.
* webaudio/AudioParamTimeline.cpp:
(WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
2011-10-05 James Robinson <jamesr@chromium.org>
[chromium] ASSERT triggered when gpu process lost in single-threaded compositing path
https://bugs.webkit.org/show_bug.cgi?id=69467
Reviewed by Kenneth Russell.
Shuffles debug-only bookkeeping around to more closely match what we do in the threaded path and not trip a
false-positive ASSERT().
* platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
(WebCore::CCSingleThreadProxy::doComposite):
2011-10-05 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r96756.
http://trac.webkit.org/changeset/96756
https://bugs.webkit.org/show_bug.cgi?id=69472
Many builds broken due to WTFGetBacktrace not being exported
from JavaScriptCore (Requested by aroben on #webkit).
* dom/ScriptElement.cpp:
(WebCore::ScriptElement::ScriptElement):
(WebCore::ScriptElement::stopLoadRequest):
(WebCore::ScriptElement::notifyFinished):
* dom/ScriptElement.h:
2011-10-05 Gavin Peters <gavinp@chromium.org>
save resource zeroing stacks in ScriptElement for debugging
https://bugs.webkit.org/show_bug.cgi?id=69453
The state machine tracking how m_cachedScript gets zeroed shows that sometimes we get
two notifyFinished() events in a ScriptElement, which can crash chrome (see chrome bug
75604). This patch will save a stack in the ScriptElement when this happens, so that if
we do later crash, we can see how we did the first zeroing.
See http://code.google.com/p/chromium/issues/detail?id=75604 for the chromium bug that
this change will help track down.
Reviewed by Nate Chapin.
No new tests, this shouldn't affect output at all, and isn't particularly testable.
* dom/ScriptElement.cpp:
(WebCore::ScriptElement::ScriptElement):
(WebCore::ScriptElement::stopLoadRequest):
(WebCore::ScriptElement::notifyFinished):
* dom/ScriptElement.h:
2011-10-05 Alexey Proskuryakov <ap@apple.com>
More build fix.
* WebCore.exp.in: Made a typo in a last minute change for my 32-bit build fix.
2011-10-05 Anna Cavender <annacc@chromium.org>
Fix CueParser::didFinishLoading to match changes in ThreadableLoaderClient
https://bugs.webkit.org/show_bug.cgi?id=69456
Reviewed by David Levin.
No new tests. No new functionality.
* html/track/CueParser.cpp:
(WebCore::CueParser::didFinishLoading):
* html/track/CueParser.h:
2011-10-05 Alexey Proskuryakov <ap@apple.com>
32-bit build fix.
* WebCore.exp.in: In 32-bit, WebCore needs to export both NSSize and CGSize constructors.
In 64-bit, NSSize is just a typedef for CGSize. Also fixed conversion operators, for good measure.
2011-10-05 Jer Noble <jer.noble@apple.com>
WEB_AUDIO does not compile on Leopard 32-bit.
https://bugs.webkit.org/show_bug.cgi?id=69292
Reviewed by Simon Fraser.
No new tests; covered by all existing audio tests.
Use of float and double within the WEB_AUDIO implementation have been harmonized, with most
calculations done using floats, with narrowPrecisionToFloat() added when necessary to
narrow double results down to floats, and with float constants initialized with float values:
* platform/audio/AudioBus.cpp:
(WebCore::AudioBus::AudioBus):
(WebCore::AudioBus::createByMixingToMono):
* platform/audio/AudioBus.h:
(WebCore::AudioBus::sampleRate):
(WebCore::AudioBus::setSampleRate):
* platform/audio/AudioDSPKernel.h:
(WebCore::AudioDSPKernel::AudioDSPKernel):
(WebCore::AudioDSPKernel::sampleRate):
* platform/audio/AudioDSPKernelProcessor.cpp:
(WebCore::AudioDSPKernelProcessor::AudioDSPKernelProcessor):
* platform/audio/AudioDSPKernelProcessor.h:
* platform/audio/AudioDestination.h:
* platform/audio/AudioFileReader.h:
* platform/audio/AudioProcessor.h:
(WebCore::AudioProcessor::AudioProcessor):
(WebCore::AudioProcessor::sampleRate):
* platform/audio/AudioUtilities.cpp:
(WebCore::AudioUtilities::decibelsToLinear):
(WebCore::AudioUtilities::linearToDecibels):
(WebCore::AudioUtilities::discreteTimeConstantForSampleRate):
* platform/audio/AudioUtilities.h:
* platform/audio/DynamicsCompressor.cpp:
(WebCore::DynamicsCompressor::DynamicsCompressor):
(WebCore::DynamicsCompressor::initializeParameters):
(WebCore::DynamicsCompressor::parameterValue):
(WebCore::DynamicsCompressor::setEmphasisStageParameters):
(WebCore::DynamicsCompressor::process):
* platform/audio/DynamicsCompressor.h:
(WebCore::DynamicsCompressor::sampleRate):
(WebCore::DynamicsCompressor::nyquist):
* platform/audio/DynamicsCompressorKernel.cpp:
(WebCore::saturate):
(WebCore::DynamicsCompressorKernel::DynamicsCompressorKernel):
(WebCore::DynamicsCompressorKernel::process):
* platform/audio/DynamicsCompressorKernel.h:
* platform/audio/EqualPowerPanner.cpp:
(WebCore::EqualPowerPanner::EqualPowerPanner):
* platform/audio/EqualPowerPanner.h:
* platform/audio/HRTFDatabase.cpp:
(WebCore::HRTFDatabase::create):
(WebCore::HRTFDatabase::HRTFDatabase):
* platform/audio/HRTFDatabase.h:
(WebCore::HRTFDatabase::sampleRate):
* platform/audio/HRTFDatabaseLoader.cpp:
(WebCore::HRTFDatabaseLoader::createAndLoadAsynchronouslyIfNecessary):
(WebCore::HRTFDatabaseLoader::HRTFDatabaseLoader):
* platform/audio/HRTFDatabaseLoader.h:
(WebCore::HRTFDatabaseLoader::databaseSampleRate):
* platform/audio/HRTFElevation.cpp:
(WebCore::HRTFElevation::calculateSymmetricKernelsForAzimuthElevation):
(WebCore::HRTFElevation::calculateKernelsForAzimuthElevation):
(WebCore::HRTFElevation::createForSubject):
(WebCore::HRTFElevation::createByInterpolatingSlices):
* platform/audio/HRTFElevation.h:
(WebCore::HRTFElevation::sampleRate):
(WebCore::HRTFElevation::HRTFElevation):
* platform/audio/HRTFKernel.cpp:
(WebCore::extractAverageGroupDelay):
(WebCore::HRTFKernel::HRTFKernel):
(WebCore::HRTFKernel::createInterpolatedKernel):
* platform/audio/HRTFKernel.h:
(WebCore::HRTFKernel::create):
(WebCore::HRTFKernel::frameDelay):
(WebCore::HRTFKernel::sampleRate):
(WebCore::HRTFKernel::HRTFKernel):
* platform/audio/HRTFPanner.cpp:
(WebCore::HRTFPanner::HRTFPanner):
(WebCore::HRTFPanner::fftSizeForSampleRate):
* platform/audio/HRTFPanner.h:
(WebCore::HRTFPanner::sampleRate):
* platform/audio/Panner.cpp:
(WebCore::Panner::create):
* platform/audio/Panner.h:
* platform/audio/chromium/AudioBusChromium.cpp:
(WebCore::AudioBus::loadPlatformResource):
* platform/audio/mac/AudioBusMac.mm:
(WebCore::AudioBus::loadPlatformResource):
* platform/audio/mac/AudioDestinationMac.cpp:
(WebCore::AudioDestination::create):
(WebCore::AudioDestination::hardwareSampleRate):
(WebCore::AudioDestinationMac::AudioDestinationMac):
* platform/audio/mac/AudioDestinationMac.h:
(WebCore::AudioDestinationMac::sampleRate):
* platform/audio/mac/AudioFileReaderMac.cpp:
(WebCore::AudioFileReader::createBus):
(WebCore::createBusFromAudioFile):
(WebCore::createBusFromInMemoryAudioFile):
* platform/audio/mac/AudioFileReaderMac.h:
* webaudio/AsyncAudioDecoder.cpp:
(WebCore::AsyncAudioDecoder::decodeAsync):
(WebCore::AsyncAudioDecoder::DecodingTask::create):
(WebCore::AsyncAudioDecoder::DecodingTask::DecodingTask):
* webaudio/AsyncAudioDecoder.h:
(WebCore::AsyncAudioDecoder::DecodingTask::sampleRate):
* webaudio/AudioBasicProcessorNode.cpp:
(WebCore::AudioBasicProcessorNode::AudioBasicProcessorNode):
* webaudio/AudioBasicProcessorNode.h:
* webaudio/AudioBuffer.cpp:
(WebCore::AudioBuffer::create):
(WebCore::AudioBuffer::createFromAudioFileData):
(WebCore::AudioBuffer::AudioBuffer):
* webaudio/AudioBuffer.h:
(WebCore::AudioBuffer::sampleRate):
* webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::create):
(WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
(WebCore::AudioBufferSourceNode::process):
(WebCore::AudioBufferSourceNode::renderFromBuffer):
* webaudio/AudioBufferSourceNode.h:
* webaudio/AudioChannelMerger.cpp:
(WebCore::AudioChannelMerger::AudioChannelMerger):
* webaudio/AudioChannelMerger.h:
(WebCore::AudioChannelMerger::create):
* webaudio/AudioChannelSplitter.cpp:
(WebCore::AudioChannelSplitter::AudioChannelSplitter):
* webaudio/AudioChannelSplitter.h:
(WebCore::AudioChannelSplitter::create):
* webaudio/AudioContext.cpp:
(WebCore::AudioContext::createOfflineContext):
(WebCore::AudioContext::AudioContext):
(WebCore::AudioContext::createBuffer):
* webaudio/AudioContext.h:
(WebCore::AudioContext::sampleRate):
* webaudio/AudioDestinationNode.cpp:
(WebCore::AudioDestinationNode::AudioDestinationNode):
* webaudio/AudioDestinationNode.h:
* webaudio/AudioGainNode.cpp:
(WebCore::AudioGainNode::AudioGainNode):
* webaudio/AudioGainNode.h:
(WebCore::AudioGainNode::create):
* webaudio/AudioListener.cpp:
(WebCore::AudioListener::AudioListener):
* webaudio/AudioListener.h:
(WebCore::AudioListener::setPosition):
(WebCore::AudioListener::setOrientation):
(WebCore::AudioListener::setVelocity):
* webaudio/AudioNode.cpp:
(WebCore::AudioNode::AudioNode):
* webaudio/AudioNode.h:
(WebCore::AudioNode::sampleRate):
* webaudio/AudioPannerNode.cpp:
(WebCore::AudioPannerNode::AudioPannerNode):
(WebCore::AudioPannerNode::getAzimuthElevation):
* webaudio/AudioPannerNode.h:
(WebCore::AudioPannerNode::create):
* webaudio/AudioParam.cpp:
(WebCore::AudioParam::value):
(WebCore::AudioParam::smoothedValue):
(WebCore::AudioParam::smooth):
(WebCore::AudioParam::calculateSampleAccurateValues):
* webaudio/AudioParamTimeline.cpp:
(WebCore::AudioParamTimeline::valueForContextTime):
(WebCore::timeToSampleFrame):
(WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
* webaudio/AudioSourceNode.h:
(WebCore::AudioSourceNode::AudioSourceNode):
* webaudio/BiquadFilterNode.cpp:
(WebCore::BiquadFilterNode::BiquadFilterNode):
* webaudio/BiquadFilterNode.h:
(WebCore::BiquadFilterNode::create):
* webaudio/BiquadProcessor.cpp:
(WebCore::BiquadProcessor::BiquadProcessor):
* webaudio/BiquadProcessor.h:
* webaudio/ConvolverNode.cpp:
(WebCore::ConvolverNode::ConvolverNode):
* webaudio/ConvolverNode.h:
(WebCore::ConvolverNode::create):
* webaudio/DefaultAudioDestinationNode.cpp:
(WebCore::DefaultAudioDestinationNode::initialize):
* webaudio/DefaultAudioDestinationNode.h:
(WebCore::DefaultAudioDestinationNode::sampleRate):
* webaudio/DelayDSPKernel.cpp:
(WebCore::DelayDSPKernel::DelayDSPKernel):
(WebCore::DelayDSPKernel::process):
* webaudio/DelayDSPKernel.h:
* webaudio/DelayNode.cpp:
(WebCore::DelayNode::DelayNode):
* webaudio/DelayNode.h:
(WebCore::DelayNode::create):
* webaudio/DelayProcessor.cpp:
(WebCore::DelayProcessor::DelayProcessor):
* webaudio/DelayProcessor.h:
* webaudio/DynamicsCompressorNode.cpp:
(WebCore::DynamicsCompressorNode::DynamicsCompressorNode):
* webaudio/DynamicsCompressorNode.h:
(WebCore::DynamicsCompressorNode::create):
* webaudio/HighPass2FilterNode.cpp:
(WebCore::HighPass2FilterNode::HighPass2FilterNode):
* webaudio/HighPass2FilterNode.h:
(WebCore::HighPass2FilterNode::create):
* webaudio/JavaScriptAudioNode.cpp:
(WebCore::JavaScriptAudioNode::create):
(WebCore::JavaScriptAudioNode::JavaScriptAudioNode):
(WebCore::JavaScriptAudioNode::initialize):
* webaudio/JavaScriptAudioNode.h:
* webaudio/LowPass2FilterNode.cpp:
(WebCore::LowPass2FilterNode::LowPass2FilterNode):
* webaudio/LowPass2FilterNode.h:
(WebCore::LowPass2FilterNode::create):
* webaudio/OfflineAudioDestinationNode.h:
(WebCore::OfflineAudioDestinationNode::sampleRate):
* webaudio/RealtimeAnalyserNode.cpp:
(WebCore::RealtimeAnalyserNode::RealtimeAnalyserNode):
* webaudio/RealtimeAnalyserNode.h:
(WebCore::RealtimeAnalyserNode::create):
* webaudio/WaveShaperDSPKernel.cpp:
(WebCore::WaveShaperDSPKernel::process):
* webaudio/WaveShaperProcessor.cpp:
(WebCore::WaveShaperProcessor::WaveShaperProcessor):
* webaudio/WaveShaperProcessor.h:
2011-10-05 Alexey Proskuryakov <ap@apple.com>
[Mac] Make built-in PDF description localizable
https://bugs.webkit.org/show_bug.cgi?id=69442
Reviewed by Dan Bernstein.
Added strings for plug-in's name and for its supported MIME type.
* English.lproj/Localizable.strings:
* WebCore.exp.in:
* platform/DefaultLocalizationStrategy.cpp:
(WebCore::DefaultLocalizationStrategy::builtInPDFPluginName):
(WebCore::DefaultLocalizationStrategy::pdfDocumentTypeDescription):
* platform/DefaultLocalizationStrategy.h:
* platform/LocalizationStrategy.h:
* platform/LocalizedStrings.cpp:
(WebCore::builtInPDFPluginName):
(WebCore::pdfDocumentTypeDescription):
* platform/LocalizedStrings.h:
2011-10-05 David Levin <levin@chromium.org>
Attempt to fix the bindings test (broken by r96727).
Reviewed by Adam Barth.
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::ConfigureV8TestInterfaceTemplate):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::ConfigureV8TestObjTemplate):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
2011-10-05 James Robinson <jamesr@chromium.org>
[chromium] Hook WebCompositor interface for input events up to the compositor proper
https://bugs.webkit.org/show_bug.cgi?id=69394
Reviewed by Darin Fisher.
This wires up WebCompositorImpl to the compositor itself so we can handle input events as scrolls on the
compositor thread, although it doesn't actually wire up any input events to actual scrolling. The way this
works:
- CCThreadProxy owns an adapter that implements the CCScrollController interface
- CCThreadProxy owns a CCInputHandler, which is implemented by WebKit::WebCompositorImpl, that has a pointer to
the adapter
- CCLayerTreeHost has an identifier (an int) for its WebKit::WebCompositorImpl that's initialized in
initializeLayerRenderer. This identifier is exposed to its owner (WebKit::WebViewImpl) so the embedder can wire
up the threading logic behind the scenes.
This is just plumbing, no change in behavior.
* WebCore.gypi:
* platform/graphics/chromium/cc/CCInputHandler.h: Added.
(WebCore::CCInputHandler::~CCInputHandler):
(WebCore::CCInputHandler::CCInputHandler):
* platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
(WebCore::CCLayerTreeHost::CCLayerTreeHost):
(WebCore::CCLayerTreeHost::initialize):
* platform/graphics/chromium/cc/CCLayerTreeHost.h:
(WebCore::CCLayerTreeHost::compositorIdentifier):
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
(WebCore::CCLayerTreeHostImpl::scrollRootLayer):
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
* platform/graphics/chromium/cc/CCProxy.h:
* platform/graphics/chromium/cc/CCScrollController.h: Added.
(WebCore::CCScrollController::CCScrollController):
(WebCore::CCScrollController::~CCScrollController):
* platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
(WebCore::CCSingleThreadProxy::CCSingleThreadProxy):
* platform/graphics/chromium/cc/CCSingleThreadProxy.h:
(WebCore::CCSingleThreadProxy::compositorIdentifier):
* platform/graphics/chromium/cc/CCThreadProxy.cpp:
(WebCore::CCThreadProxyScrollControllerAdapter::create):
(WebCore::CCThreadProxyScrollControllerAdapter::~CCThreadProxyScrollControllerAdapter):
(WebCore::CCThreadProxyScrollControllerAdapter::scrollRootLayer):
(WebCore::CCThreadProxyScrollControllerAdapter::CCThreadProxyScrollControllerAdapter):
(WebCore::CCThreadProxy::CCThreadProxy):
(WebCore::CCThreadProxy::initializeLayerRenderer):
(WebCore::CCThreadProxy::compositorIdentifier):
(WebCore::CCThreadProxy::beginFrameAndCommit):
(WebCore::CCThreadProxy::initializeLayerRendererOnCCThread):
(WebCore::CCThreadProxy::layerTreeHostClosedOnCCThread):
* platform/graphics/chromium/cc/CCThreadProxy.h:
2011-10-05 Andreas Kling <kling@webkit.org>
Shrink OutlineValue.
https://bugs.webkit.org/show_bug.cgi?id=69436
Reviewed by Darin Adler.
Move OutlineValue::m_isAuto up into the base class (BorderValue.)
This shrinks OutlineValue by 32 bit, which in turn shrinks
StyleBackgroundData by one CPU word.
This reduces memory consumption by 250 kB (on 64-bit) when loading
the full HTML5 spec.
* rendering/style/BorderValue.h:
(WebCore::BorderValue::BorderValue):
* rendering/style/OutlineValue.h:
(WebCore::OutlineValue::OutlineValue):
(WebCore::OutlineValue::isAuto):
2011-10-05 Chang Shu <cshu@webkit.org>
[WK2] WebKitTestRunner needs LayoutTestController.dumpConfigurationForViewport
https://bugs.webkit.org/show_bug.cgi?id=69365
Reviewed by Darin Adler.
Expose computeViewportAttributes for mac build.
* WebCore.exp.in:
2011-10-05 Anna Cavender <annacc@chromium.org>
Functions to make <track> enabled at runtime, including changes to
CodeGeneratorvV8 to allow entire interfaces (not just attributes) to
be runtime-enabled.
https://bugs.webkit.org/show_bug.cgi?id=69352
Reviewed by Adam Barth.
No new tests. No new functionality.
* bindings/generic/RuntimeEnabledFeatures.cpp:
* bindings/generic/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::webkitVideoTrackEnabled):
(WebCore::RuntimeEnabledFeatures::setWebkitVideoTrackEnabled):
* bindings/scripts/CodeGeneratorV8.pm:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::loadTextTracks):
* html/HTMLTrackElement.idl:
2011-10-05 Kenneth Russell <kbr@google.com>
Mask underlying RENDERER and VENDOR strings
https://bugs.webkit.org/show_bug.cgi?id=69389
Reviewed by Sam Weinig.
Test: fast/canvas/webgl/renderer-and-vendor-strings.html
* html/canvas/WebGLGetInfo.h:
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getParameter):
2011-10-05 Sachin Puranik <jcqt43@motorola.com>
Spec change - option.label should be reflected like option.value
https://bugs.webkit.org/show_bug.cgi?id=68684
Reviewed by Darin Adler.
Incorporating the recent change in spec for label attribute of
option element. While retrieving the "Label" IDL attribute return
the "Label" content attribute if present , else return the
value of textContent attribute.
Tests: fast/forms/option-label-trim-html-spaces.html
fast/forms/option-value-and-label-changed-by-js.html
* dom/OptionElement.cpp:
(WebCore::OptionElement::normalizeText):style fixes
* dom/OptionElement.h: make collectOptionInnerText() protected.
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::label): return innerText if label attribute un-available.
(WebCore::HTMLOptionElement::setLabel):setLabel() implementation.
* html/HTMLOptionElement.h: add setLabel declaration.
* html/HTMLOptionElement.idl: Change reflect to ConvertNullToNullString in idl
2011-10-05 Rémi Duraffort <remi.duraffort@st.com>
[GTK] Fix compilation with gtk v2.20.1
https://bugs.webkit.org/show_bug.cgi?id=69418
Unreviewed build fix
* platform/gtk/GtkDragAndDropHelper.cpp:
2011-10-05 David Hyatt <hyatt@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=68731
Outline sides not painted for region. Fix the painting and hit testing code for regions to add in
the maximalOutlineSize on unclipped sides. Also fix some math errors with the computation of the
translation offset and clip rects when overflow or outlines spill out.
Reviewed by Darin Adler.
Added new test in fast/regions.
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::paintIntoRegion):
(WebCore::RenderFlowThread::hitTestRegion):
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::regionOverflowRect):
2011-10-05 Yury Semikhatsky <yurys@chromium.org>
Unreviewed. Build fix: make InspectorStateClient.h Private in XCode project.
* WebCore.xcodeproj/project.pbxproj:
2011-10-05 Martin Robinson <mrobinson@igalia.com>
libsoup-CRITICAL **: soup_message_io_pause: assertion `io != NULL' failed
https://bugs.webkit.org/show_bug.cgi?id=64263
Reviewed by Xan Lopez.
No new tests. This is difficult to test because it relies on network
timing and to catch and parse stdout.
Instead of allowing messages to pause and unpause after receiving headers,
we wait until the completion of the sendRequestCallback. This will ensure
that the SoupSession is in the correct state to allow for pausing and unpausing.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::ResourceHandle::platformSetDefersLoading): Don't pause and unpause
until the sendRequestCallback is called. We detect this situation by
checking whether or not we have an input stream yet. Previously the code
was only pausing until after soupMessage->status_code was not equal to
SOUP_STATUS_NONE. This means that the message was pausable right after
headers are received. sendRequestCallback happens some time after that.
2011-10-05 Ilya Tikhonovsky <loislo@chromium.org>
Unreviewed build fix for Debug builders.
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::restoreInspectorStateFromCookie):
2011-10-05 Dirk Schulze <krit@webkit.org>
SVG 1.1: ineffectual transform attribute for ClipPath
https://bugs.webkit.org/show_bug.cgi?id=55361
Reviewed by Nikolas Zimmermann.
Respect 'transform' attribute/property for <clip-path>.
If the masking code path is used the mask context gets transformed, otherwise the path itself.
Tests: svg/clip-path/clip-path-transform-1.svg
svg/clip-path/clip-path-transform-2.svg
svg/dynamic-updates/SVGClipPathElement-transform-influences-hitTesting.html
* rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::pathOnlyClipping): Transform the clip path.
(WebCore::RenderSVGResourceClipper::applyClippingToContext):
(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage): Transform the context of the mask image.
(WebCore::RenderSVGResourceClipper::calculateClipContentRepaintRect): Repaint rect must get concatenated with the current animated transformation.
(WebCore::RenderSVGResourceClipper::hitTestClipContent): Point for hit testing must be transformed by the current animated transformation.
* rendering/svg/RenderSVGResourceClipper.h:
2011-10-05 Pavel Feldman <pfeldman@google.com>
Web Inspector: move elements panel update semantics from ElementsPanel to ElementsTreeOutline.
https://bugs.webkit.org/show_bug.cgi?id=69431
Reviewed by Yury Semikhatsky.
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.get this):
(WebInspector.ElementsPanel):
(WebInspector.ElementsPanel.prototype.show):
(WebInspector.ElementsPanel.prototype.hide):
(WebInspector.ElementsPanel.prototype._selectedNodeChanged):
(WebInspector.ElementsPanel.prototype._reset):
(WebInspector.ElementsPanel.prototype._nodeRemoved):
(WebInspector.ElementsPanel.prototype.updateBreadcrumb.selectCrumbFunction):
(WebInspector.ElementsPanel.prototype.updateBreadcrumb):
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeOutline):
(WebInspector.ElementsTreeOutline.prototype.wireToDomAgent):
(WebInspector.ElementsTreeOutline.prototype.setVisible):
(WebInspector.ElementsTreeOutline.prototype.addEventListener):
(WebInspector.ElementsTreeOutline.prototype.removeEventListener):
(WebInspector.ElementsTreeOutline.prototype.selectDOMNode):
(WebInspector.ElementsTreeOutline.prototype.update):
(WebInspector.ElementsTreeOutline.prototype._selectedNodeChanged):
(WebInspector.ElementsTreeOutline.prototype.findTreeElement.parentNode):
(WebInspector.ElementsTreeOutline.prototype.findTreeElement):
(WebInspector.ElementsTreeOutline.prototype.createTreeElementFor):
(WebInspector.ElementsTreeOutline.prototype._ondrop.callback):
(WebInspector.ElementsTreeOutline.prototype._ondrop):
(WebInspector.ElementsTreeOutline.prototype.adjustCollapsedRange):
(WebInspector.ElementsTreeOutline.prototype._updateModifiedNodes):
(WebInspector.ElementsTreeElement.prototype.insertChildElement):
(WebInspector.ElementsTreeElement.prototype.selectOnMouseDown):
(WebInspector.ElementsTreeElement.prototype._startEditingAsHTML.dispose):
(WebInspector.ElementsTreeElement.prototype._startEditingAsHTML):
(WebInspector.ElementsTreeElement.prototype._attributeEditingCommitted.moveToNextAttributeIfNeeded):
(WebInspector.ElementsTreeElement.prototype._attributeEditingCommitted):
(WebInspector.ElementsTreeElement.prototype._tagNameEditingCommitted.changeTagNameCallback):
(WebInspector.ElementsTreeElement.prototype._tagNameEditingCommitted):
(WebInspector.ElementsTreeElement.prototype._textNodeEditingCommitted):
(WebInspector.ElementsTreeElement.prototype._editingCancelled):
():
* inspector/front-end/externs.js:
(WebInspector.ElementsTreeOutline):
* inspector/front-end/utilities.js:
2011-10-05 Yury Semikhatsky <yurys@chromium.org>
Web Inspector: provide a way for persisting worker inspector state
https://bugs.webkit.org/show_bug.cgi?id=69422
Worker inspector can persist and restore its state. InspectorStateClient is
exctracted into a separate interface and has a custom implementation in case
of worker inspector.
Reviewed by Pavel Feldman.
* GNUmakefile.list.am:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* inspector/InspectorClient.h:
* inspector/InspectorState.cpp:
(WebCore::InspectorState::InspectorState):
* inspector/InspectorState.h:
* inspector/InspectorStateClient.h: Copied from Source/WebCore/inspector/InspectorClient.h.
(WebCore::InspectorStateClient::~InspectorStateClient):
(WebCore::InspectorStateClient::updateInspectorStateCookie):
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
(WebCore::WorkerInspectorController::restoreInspectorStateFromCookie):
* inspector/WorkerInspectorController.h:
* workers/DefaultSharedWorkerRepository.cpp:
(WebCore::SharedWorkerProxy::postMessageToPageInspector):
(WebCore::SharedWorkerProxy::updateInspectorStateCookie):
* workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::updateInspectorStateCookie):
* workers/WorkerMessagingProxy.h:
* workers/WorkerReportingProxy.h:
2011-10-05 Abhishek Arya <inferno@chromium.org>
Crash in SVGTRefElement::updateReferencedText.
https://bugs.webkit.org/show_bug.cgi?id=67555
Reviewed by Rob Buis.
Test: svg/text/tref-event-listener-crash.svg
* svg/SVGTRefElement.cpp:
(WebCore::SubtreeModificationEventListener::clear): This fixes the
crash. there can be cases when our target is removed, but our event
listener is alive. when our tref is going away, we need to disable
those event listeners by nulling out our tref element.
(WebCore::SubtreeModificationEventListener::handleEvent): Adding
null check for tref element, which can happen in cases where
event listener's clear is called, but we could not remove it from
the target.
(WebCore::SVGTRefElement::~SVGTRefElement): There are always
cases when removedFromDocument is not called. So, important to
clear event listener in those cases.
(WebCore::SVGTRefElement::svgAttributeChanged): Use common
function buildPendingResource.
(WebCore::SVGTRefElement::buildPendingResource): Common function
to prevent triple duplication of same code. made it more readable.
(WebCore::SVGTRefElement::insertedIntoDocument): Use common
function buildPendingResource.
(WebCore::SVGTRefElement::removedFromDocument): Use new helper
removeEventListener.
(WebCore::SVGTRefElement::clearEventListener): Helper to clear
event listener. Name chosen to not collide with Node::removeEventListener.
* svg/SVGTRefElement.h: definition of new helpers.
* svg/SVGTextPathElement.cpp:
(WebCore::SVGTextPathElement::insertedIntoDocument): Copy same
logic as tref and use element. more asserts and easy bailouts.
2011-10-05 Pavel Feldman <pfeldman@google.com>
Not reviewed: restoring : shortcut in inspector.
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._createSidebarButtons):
2011-10-05 Andreas Kling <kling@webkit.org>
Shrink FontDescription.
https://bugs.webkit.org/show_bug.cgi?id=69426
Reviewed by Nikolas Zimmermann.
Pack FontDescription's members in a bitfield, effectively shrinking
the class by two CPU-words. This reduces memory consumption by ~1 MB
on 64-bit when loading the full HTML5 spec.
* platform/graphics/FontDescription.h:
(WebCore::FontDescription::orientation):
(WebCore::FontDescription::textOrientation):
(WebCore::FontDescription::widthVariant):
2011-10-05 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Add support for search in script content.
https://bugs.webkit.org/show_bug.cgi?id=69015
Reviewed by Pavel Feldman.
Tests: http/tests/inspector/search/search-in-concatenated-script.html
http/tests/inspector/search/search-in-script.html
* inspector/Inspector.json:
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::searchInContent):
(WebCore::InspectorDebuggerAgent::getScriptSource):
* inspector/InspectorDebuggerAgent.h:
* inspector/front-end/ContentProviders.js:
(WebInspector.ScriptContentProvider.prototype.searchInContent):
(WebInspector.ConcatenatedScriptsContentProvider.prototype._sortedScripts.var):
(WebInspector.ConcatenatedScriptsContentProvider.prototype._sortedScripts):
(WebInspector.ConcatenatedScriptsContentProvider.prototype.requestContent):
(WebInspector.ConcatenatedScriptsContentProvider.prototype.searchInContent.maybeCallback):
(WebInspector.ConcatenatedScriptsContentProvider.prototype.searchInContent.searchCallback):
(WebInspector.ConcatenatedScriptsContentProvider.prototype.searchInContent):
(WebInspector.ConcatenatedScriptsContentProvider.prototype._concatenateScriptsContent):
* inspector/front-end/Script.js:
(WebInspector.Script.prototype.requestSource.didGetScriptSource):
(WebInspector.Script.prototype.requestSource):
(WebInspector.Script.prototype.searchInContent):
2011-10-05 Alexis Menard <alexis.menard@openbossa.org>
[Qt][WK2] Default directories and paths are missing for LocalStorage, Database and IconDatabase.
https://bugs.webkit.org/show_bug.cgi?id=69111
Reviewed by Kenneth Rohde Christiansen.
Provide default path for LocalStorage, Database and IconDatabase using QDesktopServices.
No new tests : existing ones should cover.
* platform/qt/CookieJarQt.cpp:
(WebCore::SharedCookieJarQt::SharedCookieJarQt):
2011-10-05 Patrick Gansterer <paroga@webkit.org>
Unreviewed build fix for !ENABLE(FILTERS) after r96203.
* rendering/svg/SVGResourcesCache.cpp:
(WebCore::SVGResourcesCache::clientUpdatedFromElement):
2011-10-05 Ilya Tikhonovsky <loislo@chromium.org>
Unreviewed build fix for windows bots after r96679.
* html/NumberInputType.h:
2011-10-04 Pavel Feldman <pfeldman@google.com>
Web Inspector: make ResourceView(s) compile
https://bugs.webkit.org/show_bug.cgi?id=69351
Reviewed by Yury Semikhatsky.
* inspector/compile-front-end.sh:
* inspector/front-end/CookiesTable.js:
(WebInspector.CookiesTable.prototype._sortCookies):
* inspector/front-end/DataGrid.js:
* inspector/front-end/EmptyView.js:
* inspector/front-end/FontView.js:
(WebInspector.FontView.prototype._createContentIfNeeded):
* inspector/front-end/ImageView.js:
(WebInspector.ImageView.prototype._createContentIfNeeded.onImageLoad):
(WebInspector.ImageView.prototype._createContentIfNeeded):
(WebInspector.ImageView.prototype._openInNewTab):
* inspector/front-end/NetworkItemView.js:
* inspector/front-end/ResourceCookiesView.js:
* inspector/front-end/ResourceHTMLView.js:
(WebInspector.ResourceHTMLView.prototype.hide):
* inspector/front-end/ResourceHeadersView.js:
(WebInspector.ResourceHeadersView.prototype._refreshParms):
(WebInspector.ResourceHeadersView.prototype._refreshHeadersTitle):
(WebInspector.ResourceHeadersView.prototype._refreshHeaders):
(WebInspector.ResourceHeadersView.prototype._refreshHeadersText):
* inspector/front-end/ResourceJSONView.js:
(WebInspector.ResourceJSONView.parseJSON.WebInspector.ResourceJSONView.parseJSONP):
* inspector/front-end/ResourcePreviewView.js:
* inspector/front-end/ResourceResponseView.js:
* inspector/front-end/ResourceTimingView.js:
(WebInspector.ResourceTimingView.createTimingTable):
* inspector/front-end/ResourceView.js:
(WebInspector.ResourceSourceFrame):
* inspector/front-end/SourceFrame.js:
* inspector/front-end/TabbedPane.js:
* inspector/front-end/UIUtils.js:
(Number.secondsToString):
(Number.bytesToString):
* inspector/front-end/inspector.js:
2011-10-04 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: debuggerPresentatioModel.linkifyLocation leaks updateAnchor closure instances.
https://bugs.webkit.org/show_bug.cgi?id=69146
In many places we use linkifyLocation function to produce a link node which updates automatically when the source file is changed on the fly.
Such changes happen when we use pretty print or another operation that changes the source code somehow.
linkifyLocation associates a new instance of updateAnchor closure with the each link node and add the closure to the SourceMappingUpdated event's list.
As the result the node<->closure pairs wouldn't be collected until reset the UI and DebuggerPresentationModel.
Reviewed by Pavel Feldman.
Test: inspector/debugger/linkifier.html
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessageImpl):
(WebInspector.ConsoleMessageImpl.prototype._linkifyLocation):
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.prototype._consoleCleared):
(WebInspector.ConsoleCommandResult):
(WebInspector.ConsoleMessage.create):
(WebInspector.ConsoleMessage.createTextMessage):
* inspector/front-end/DebuggerPresentationModel.js:
(WebInspector.DebuggerPresentationModel.prototype.createLinkifier):
(WebInspector.DebuggerPresentationModel.Linkifier):
(WebInspector.DebuggerPresentationModel.Linkifier.prototype.linkifyLocation):
(WebInspector.DebuggerPresentationModel.Linkifier.prototype.reset):
(WebInspector.DebuggerPresentationModel.Linkifier.prototype._updateSourceAnchors):
(WebInspector.DebuggerPresentationModel.Linkifier.prototype._updateAnchor):
* inspector/front-end/EventListenersSidebarPane.js:
(WebInspector.EventListenersSidebarPane.prototype.update.callback):
(WebInspector.EventListenersSidebarPane.prototype.update):
():
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkLogView):
(WebInspector.NetworkLogView.prototype._reset):
(WebInspector.NetworkDataGridNode.prototype._refreshInitiatorCell):
* inspector/front-end/ProfileDataGridTree.js:
(WebInspector.ProfileDataGridNode.prototype.createCell):
* inspector/front-end/ProfileView.js:
(WebInspector.CPUProfileView):
(WebInspector.CPUProfileView.prototype._resetClicked):
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel):
(WebInspector.TimelinePanel.prototype._linkifyLocation):
(WebInspector.TimelinePanel.prototype._linkifyCallFrame):
(WebInspector.TimelinePanel.prototype._clearPanel):
(WebInspector.TimelinePanel.FormattedRecord):
(WebInspector.TimelinePanel.FormattedRecord.prototype._generatePopupContent):
(WebInspector.TimelinePanel.FormattedRecord.prototype._getRecordDetails):
(WebInspector.TimelinePanel.PopupContentHelper):
(WebInspector.TimelinePanel.PopupContentHelper.prototype._appendLinkRow):
(WebInspector.TimelinePanel.PopupContentHelper.prototype._appendStackTrace):
* inspector/front-end/inspector.js:
2011-10-03 Andreas Kling <kling@webkit.org>
REGRESSION(r82611) InlineBox has 33 bits of bitset, causing alignment issues and extra memory use.
https://bugs.webkit.org/show_bug.cgi?id=64914
Reviewed by Antti Koivisto.
Remove InlineBox::prevOnLineExists() and its two accompanying bitfields
since nobody is using them anymore. nextOnLineExists() is still used by
GTK+ accessibility code.
Also added a compile-time assertion to guard against future bloating of
the InlineBox class.
* rendering/InlineBox.cpp:
(WebCore::SameSizeAsInlineBox::~SameSizeAsInlineBox):
* rendering/InlineBox.h:
(WebCore::InlineBox::InlineBox):
2011-10-05 Andreas Kling <kling@webkit.org>
Shrink FontFallbackList.
https://bugs.webkit.org/show_bug.cgi?id=69093
Rubber-stamped by Antti Koivisto.
Workaround MSVC quirk by making enum bitfield "unsigned".
* platform/graphics/FontFallbackList.h:
2011-10-05 Andreas Kling <kling@webkit.org>
Shrink StyleRareNonInheritedData.
https://bugs.webkit.org/show_bug.cgi?id=69331
Reviewed by Darin Adler.
Workaround MSVC quirk by making enum bitfields "unsigned".
* rendering/style/RenderStyle.h:
(WebCore::InheritedFlags::regionOverflow):
(WebCore::InheritedFlags::transformStyle3D):
(WebCore::InheritedFlags::backfaceVisibility):
(WebCore::InheritedFlags::pageSizeType):
* rendering/style/StyleRareNonInheritedData.h:
2011-10-05 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: add CSS model classes to the compilation.
https://bugs.webkit.org/show_bug.cgi?id=69376
Reviewed by Yury Semikhatsky.
* inspector/compile-front-end.sh:
* inspector/front-end/CSSCompletions.js:
* inspector/front-end/CSSKeywordCompletions.js:
(WebInspector.CSSKeywordCompletions.forProperty):
* inspector/front-end/CSSStyleModel.js:
(WebInspector.CSSStyleDeclaration):
(WebInspector.CSSStyleModelResourceBinding.prototype.setContent):
(WebInspector.CSSStyleModelResourceBinding.prototype.canSetContent):
* inspector/front-end/ResourceTreeModel.js:
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylesSidebarPane.prototype._containsInherited):
(WebInspector.StylePropertiesSection.prototype.isPropertyInherited):
(WebInspector.StylePropertiesSection.prototype.isPropertyOverloaded):
(WebInspector.ComputedStylePropertiesSection.prototype.rebuildComputedTrace):
* inspector/front-end/externs.js:
(Array.prototype.keySet):
2011-10-05 Kent Tamura <tkent@chromium.org>
Input styles are unexpectedly shared regardless of required status difference.
https://bugs.webkit.org/show_bug.cgi?id=69402
Reviewed by Daniel Bates.
Tests: fast/css/pseudo-required-shared.html
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::canShareStyleWithControl): Check the difference of required().
2011-10-04 Kent Tamura <tkent@chromium.org>
Remove Node::willBlur()
https://bugs.webkit.org/show_bug.cgi?id=69395
Reviewed by Ryosuke Niwa.
Revert the WebCore part of r87371 because
FrameSelection::textWillBeReplaced() doesn't set focus anymore.
No new tests. Covered by fast/forms/input-number-blur-twice.html.
* dom/Document.cpp:
(WebCore::Document::setFocusedNode): Revert r87371.
* dom/Node.cpp: ditto.
* dom/Node.h: ditto.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::handleBlurEvent): ditto.
* html/HTMLInputElement.h: ditto.
* html/InputType.cpp:
(WebCore::InputType::handleBlurEvent): ditto.
* html/InputType.h: ditto.
* html/NumberInputType.cpp:
(WebCore::NumberInputType::handleBlurEvent): ditto.
* html/NumberInputType.h: ditto.
2011-10-04 Kent Tamura <tkent@chromium.org>
Introduce feature flags for incomplete input types
https://bugs.webkit.org/show_bug.cgi?id=68971
Reviewed by Hajime Morita.
* Configurations/FeatureDefines.xcconfig:
Add ENABLE_INPUT_TYPE_* flags. They are enabled only for iOS.
* html/DateInputType.cpp: Wrapped with ENABLE(INPUT_TYPE_DATE)
* html/DateInputType.h: ditto.
* html/DateTimeInputType.cpp: Wrapped with ENABLE(INPUT_TYPE_DATETIME)
* html/DateTimeInputType.h: ditto.
* html/DateTimeLocalInputType.cpp: Wrapped with ENABLE(INPUT_TYPE_DATETIMELOCAL)
* html/DateTimeLocalInputType.h: ditto.
* html/InputType.cpp:
(WebCore::createInputTypeFactoryMap):
Recognizes type attribute value only if it is enabled by ENABLE(INPUT_TYPE_*).
* html/MonthInputType.cpp: Wrapped with ENABLE(INPUT_TYPE_MONTH)
* html/MonthInputType.h: ditto.
* html/TimeInputType.cpp: Wrapped with ENABLE(INPUT_TYPE_TIME)
* html/TimeInputType.h: ditto.
* html/WeekInputType.cpp: Wrapped with ENABLE(INPUT_TYPE_WEEK)
* html/WeekInputType.h: ditto.
2011-10-04 David Hyatt <hyatt@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=69398
[CSS3 Regions] Support the region-overflow property properly.
(1) Change -webkit-break to break, since the -webkit-region-overflow property already has the
-webkit- extension.
(2) Fix clipping so that it works when overflow is set or when region break is set.
(3) Refactor all the pagination spots to check if a next page is available using the new hasNextPage
function. This prevents us from paginating if we hit the last region and further breaks are no longer
allowed.
Reviewed by Dan Bernstein.
Added new tests in fast/regions.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator RegionOverflow):
* css/CSSValueKeywords.in:
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::collapseMargins):
(WebCore::RenderBlock::estimateLogicalTopPosition):
(WebCore::RenderBlock::hasNextPage):
(WebCore::RenderBlock::nextPageLogicalTop):
(WebCore::RenderBlock::applyBeforeBreak):
(WebCore::RenderBlock::applyAfterBreak):
(WebCore::RenderBlock::pageLogicalHeightForOffset):
(WebCore::RenderBlock::pageRemainingLogicalHeightForOffset):
(WebCore::RenderBlock::adjustForUnsplittableChild):
(WebCore::RenderBlock::pushToNextPageWithMinimumLogicalHeight):
(WebCore::RenderBlock::adjustLinePositionForPagination):
* rendering/RenderBlock.h:
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::layout):
(WebCore::RenderFlowThread::repaintRectangleInRegions):
(WebCore::RenderFlowThread::regionRemainingLogicalHeightForLine):
* rendering/RenderFlowThread.h:
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::regionOverflowRect):
2011-10-04 Mark Hahnenberg <mhahnenberg@apple.com>
Add static ClassInfo structs to classes that override JSCell::getCallData
https://bugs.webkit.org/show_bug.cgi?id=69311
Reviewed by Darin Adler.
No new tests.
Added ClassInfo structs to each class that defined its own getCallData
function but did not already have its own ClassInfo struct. This is a
necessary addition for when we switch over to looking up getCallData from
the MethodTable in ClassInfo rather than doing the virtual call (which we
are removing). These new ClassInfo structs are public because we often
use these structs in other areas of the code to uniquely identify JSC classes and
to enforce runtime invariants based on those class identities using ASSERTs.
Also added new createStructure methods to those classes that didn't have
them so that the new ClassInfo structs would be used when creating the Structures
in these classes.
* bridge/qt/qt_runtime.cpp:
* bridge/qt/qt_runtime.h:
2011-10-03 Geoffrey Garen <ggaren@apple.com>
Some JSValue cleanup
https://bugs.webkit.org/show_bug.cgi?id=69320
Reviewed by Darin Adler.
* bindings/js/JSDOMBinding.cpp:
(WebCore::valueToDate):
* bindings/js/JSErrorHandler.cpp:
(WebCore::JSErrorHandler::handleEvent):
* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::handleEvent):
* bindings/js/JSSQLTransactionCustom.cpp:
(WebCore::JSSQLTransaction::executeSql):
* bindings/js/JSSQLTransactionSyncCustom.cpp:
(WebCore::JSSQLTransactionSync::executeSql):
* bindings/js/ScriptValue.cpp:
(WebCore::jsToInspectorValue):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::dumpIfTerminal):
* bindings/objc/WebScriptObject.mm:
(+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
* bridge/jni/jsc/JNIUtilityPrivate.cpp:
(JSC::Bindings::convertValueToJValue): Updated for JSC changes.
2011-10-04 Sadrul Habib Chowdhury <sadrul@chromium.org>
Fix FrameView::scrollElementToRect to take already scrolled amount into consideration.
https://bugs.webkit.org/show_bug.cgi?id=69220
Reviewed by Simon Fraser.
* page/FrameView.cpp:
(WebCore::FrameView::scrollElementToRect):
2011-10-04 Anders Carlsson <andersca@apple.com>
Ignore the warning about using 'override'.
* WebCore.vcproj/WebCore.vcproj:
2011-10-04 Sam Weinig <sam@webkit.org>
Stub out WorkerScriptController::disableEval for v8 to fix the build.
* bindings/v8/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::disableEval):
* bindings/v8/WorkerScriptController.h:
2011-10-04 Sam Weinig <sam@webkit.org>
OVERRIDE seems to not be working for Windows. Remove it for now.
* dom/Document.h:
* workers/WorkerContext.h:
2011-10-04 Sam Weinig <sam@webkit.org>
Wean ContentSecurityPolicy from the Document
https://bugs.webkit.org/show_bug.cgi?id=69387
Reviewed by Adam Barth.
* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::disableEval):
* bindings/js/WorkerScriptController.h:
* dom/Document.cpp:
(WebCore::Document::disableEval):
* dom/Document.h:
* workers/WorkerContext.cpp:
(WebCore::WorkerContext::disableEval):
* workers/WorkerContext.h:
* dom/ScriptExecutionContext.h:
Add pure virtual disableEval to ScriptExecutionContext, so that ContentSecurityPolicy
can call it for both Documents and WorkerContexts.
* page/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::didReceiveHeader):
Call the new ScriptExecutionContext::disableEval() function.
(WebCore::ContentSecurityPolicy::reportViolation):
Use ScriptExecutionContext::addMessage() instead of going directly to the DOMWindow.
2011-10-04 Anders Carlsson <andersca@apple.com>
Move code into ScrollElasticityController::beginScrollGesture()
https://bugs.webkit.org/show_bug.cgi?id=69383
Reviewed by John Sullivan.
* platform/mac/ScrollAnimatorMac.h:
Add new ScrollElasticityControllerClient member functions.
* platform/mac/ScrollAnimatorMac.mm:
(WebCore::ScrollAnimatorMac::isHorizontalScrollerPinnedToMinimumPosition):
(WebCore::ScrollAnimatorMac::isHorizontalScrollerPinnedToMaximumPosition):
(WebCore::ScrollAnimatorMac::stretchAmount):
(WebCore::ScrollAnimatorMac::startSnapRubberbandTimer):
(WebCore::ScrollAnimatorMac::stopSnapRubberbandTimer):
Implement the new ScrollElasticityControllerClient member functions.
(WebCore::ScrollAnimatorMac::beginScrollGesture):
Move code into ScrollElasticityController::beginScrollGesture and call it directly.
* platform/mac/ScrollElasticityController.h:
Add new ScrollElasticityControllerClient member functions.
* platform/mac/ScrollElasticityController.mm:
(WebCore::reboundDeltaForElasticDelta):
(WebCore::ScrollElasticityController::beginScrollGesture):
Set up the scroll gesture state.
(WebCore::ScrollElasticityController::stopSnapRubberbandTimer):
New helper function.
2011-10-04 Scott Graham <scottmg@chromium.org>
Add GAMEPAD feature flag
https://bugs.webkit.org/show_bug.cgi?id=66859
Reviewed by Darin Fisher.
No new tests, as no new functionality yet.
* Configurations/FeatureDefines.xcconfig:
* GNUmakefile.am:
* features.pri:
2011-10-04 Fady Samuel <fsamuel@chromium.org>
[Chromium] Moved files towards GTK removal
https://bugs.webkit.org/show_bug.cgi?id=69229
Reviewed by Tony Chang.
* WebCore.gypi:
* platform/chromium/PlatformThemeChromiumLinux.cpp: Renamed from Source/WebCore/platform/chromium/PlatformThemeChromiumGtk.cpp.
(WebCore::PlatformThemeChromiumLinux::setScrollbarColors):
(WebCore::clamp):
(WebCore::PlatformThemeChromiumLinux::saturateAndBrighten):
(WebCore::PlatformThemeChromiumLinux::outlineColor):
(WebCore::PlatformThemeChromiumLinux::paintArrowButton):
* platform/chromium/PlatformThemeChromiumLinux.h: Renamed from Source/WebCore/platform/chromium/PlatformThemeChromiumGtk.h.
(WebCore::PlatformThemeChromiumLinux::thumbInactiveColor):
(WebCore::PlatformThemeChromiumLinux::thumbActiveColor):
(WebCore::PlatformThemeChromiumLinux::trackColor):
(WebCore::PlatformThemeChromiumLinux::PlatformThemeChromiumLinux):
2011-10-04 James Robinson <jamesr@chromium.org>
[chromium] Extract scheduling logic from CCThreadProxy to its own class
https://bugs.webkit.org/show_bug.cgi?id=69049
Reviewed by Kenneth Russell.
This partially extracts the commit/draw scheduling from CCThreadProxy to a separate isolated class. This makes
the commit/draw logic easier to test, understand and extend.
There is one subtle behavior change here to the way that the function formerly known as
CCLayerTreeHost::setNeedsCommitAndRedraw works. Previously, this would trigger a begin frame message, if one
wasn't pending, and then trigger a redraw if one wasn't pending. This was subtly wrong - the intent of that call
is that a redraw should happen after the commit. It isn't useful to draw before the commit occurs. This patch
changes the name of the function to setNeedsCommitThenRedraw and only requests a redraw after a commit occurs.
Covered by new CCSchedulerTest unit tests, CCLayerTreeHostTest unit tests, and compositing/ layout tests.
* WebCore.gypi:
* platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
(WebCore::CCLayerTreeHost::initialize):
(WebCore::CCLayerTreeHost::setZoomAnimatorTransform):
(WebCore::CCLayerTreeHost::setNeedsCommitThenRedraw):
(WebCore::CCLayerTreeHost::setViewport):
(WebCore::CCLayerTreeHost::setVisible):
* platform/graphics/chromium/cc/CCLayerTreeHost.h:
* platform/graphics/chromium/cc/CCProxy.h:
* platform/graphics/chromium/cc/CCScheduler.cpp: Added.
(WebCore::CCScheduler::CCScheduler):
(WebCore::CCScheduler::requestCommit):
(WebCore::CCScheduler::requestCommitThenRedraw):
(WebCore::CCScheduler::requestRedraw):
(WebCore::CCScheduler::didCommit):
(WebCore::CCScheduler::didDraw):
* platform/graphics/chromium/cc/CCScheduler.h: Added.
(WebCore::CCSchedulerClient::~CCSchedulerClient):
(WebCore::CCScheduler::create):
(WebCore::CCScheduler::commitPending):
(WebCore::CCScheduler::redrawPending):
(WebCore::CCScheduler::redrawAfterCommit):
* platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
(WebCore::CCSingleThreadProxy::setNeedsCommitThenRedraw):
(WebCore::CCSingleThreadProxy::setNeedsRedraw):
(WebCore::CCSingleThreadProxy::recreateContextIfNeeded):
(WebCore::CCSingleThreadProxy::doComposite):
* platform/graphics/chromium/cc/CCSingleThreadProxy.h:
* platform/graphics/chromium/cc/CCThreadProxy.cpp:
(WebCore::CCThreadProxySchedulerClient::create):
(WebCore::CCThreadProxySchedulerClient::~CCThreadProxySchedulerClient):
(WebCore::CCThreadProxySchedulerClient::scheduleBeginFrameAndCommit):
(WebCore::CCThreadProxySchedulerClient::scheduleDrawAndPresent):
(WebCore::CCThreadProxySchedulerClient::CCThreadProxySchedulerClient):
(WebCore::CCThreadProxy::CCThreadProxy):
(WebCore::CCThreadProxy::compositeAndReadback):
(WebCore::CCThreadProxy::initializeLayerRenderer):
(WebCore::CCThreadProxy::setNeedsCommit):
(WebCore::CCThreadProxy::setNeedsCommitOnCCThread):
(WebCore::CCThreadProxy::setNeedsCommitThenRedraw):
(WebCore::CCThreadProxy::setNeedsCommitThenRedrawOnCCThread):
(WebCore::CCThreadProxy::setNeedsRedraw):
(WebCore::CCThreadProxy::setNeedsRedrawOnCCThread):
(WebCore::CCThreadProxy::finishAllRenderingOnCCThread):
(WebCore::CCThreadProxy::obtainBeginFrameAndCommitTaskFromCCThread):
(WebCore::CCThreadProxy::createBeginFrameAndCommitTaskOnCCThread):
(WebCore::CCThreadProxy::beginFrameAndCommit):
(WebCore::CCThreadProxy::commitOnCCThread):
(WebCore::CCThreadProxy::drawLayersAndPresentOnCCThread):
(WebCore::CCThreadProxy::initializeImplOnCCThread):
* platform/graphics/chromium/cc/CCThreadProxy.h:
2011-10-04 Alexey Proskuryakov <ap@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=67774
PDF in a frameset is not displayed, always downloads
Reviewed by Darin Adler.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
Added exports necessary to subclass a ScrollableArea.
2011-10-04 Anders Carlsson <andersca@apple.com>
ScrollElasticityController should keep track of the rubberband timer state
https://bugs.webkit.org/show_bug.cgi?id=69381
Reviewed by Sam Weinig.
Add a m_snapRubberbandTimerIsActive member variable to ScrollElasticityController
and use it instead of checking whether the m_snapRubberbandTimer is active.
Eventually, ScrollElasticityControllerClient will have two member functions for starting
and stopping the timer, and the ScrollElasticityController will call them at the appropriate times.
* platform/mac/ScrollAnimatorMac.mm:
(WebCore::ScrollAnimatorMac::handleWheelEvent):
(WebCore::ScrollAnimatorMac::beginScrollGesture):
It's OK to stop the timer unconditionally.
(WebCore::ScrollAnimatorMac::snapRubberBand):
(WebCore::ScrollAnimatorMac::snapRubberBandTimerFired):
* platform/mac/ScrollElasticityController.h:
* platform/mac/ScrollElasticityController.mm:
(WebCore::ScrollElasticityController::ScrollElasticityController):
2011-10-04 Anders Carlsson <andersca@apple.com>
Move all rubber-banding related member variables to ScrollElasticityController
https://bugs.webkit.org/show_bug.cgi?id=69379
Reviewed by Dan Bernstein.
* platform/mac/ScrollAnimatorMac.h:
* platform/mac/ScrollAnimatorMac.mm:
(WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
(WebCore::ScrollAnimatorMac::handleWheelEvent):
(WebCore::ScrollAnimatorMac::smoothScrollWithEvent):
(WebCore::ScrollAnimatorMac::beginScrollGesture):
(WebCore::ScrollAnimatorMac::snapRubberBand):
(WebCore::ScrollAnimatorMac::snapRubberBandTimerFired):
* platform/mac/ScrollElasticityController.h:
* platform/mac/ScrollElasticityController.mm:
(WebCore::ScrollElasticityController::ScrollElasticityController):
2011-10-04 Anders Carlsson <andersca@apple.com>
Build fixes for everyone.
* platform/chromium/ScrollAnimatorChromiumMac.h:
* platform/chromium/ScrollAnimatorChromiumMac.mm:
(WebCore::isScrollingLeftAndShouldNotRubberBand):
(WebCore::isScrollingRightAndShouldNotRubberBand):
(WebCore::ScrollAnimatorChromiumMac::smoothScrollWithEvent):
Fix Chromium build.
* platform/gtk/PlatformWheelEventGtk.cpp:
(WebCore::PlatformWheelEvent::PlatformWheelEvent):
Fix GTK+ build.
2011-10-04 Anders Carlsson <andersca@apple.com>
Add a ScrollElasticityController class and move some members over from ScrollAnimatorMac
https://bugs.webkit.org/show_bug.cgi?id=69373
Reviewed by David Hyatt.
ScrollElasticityController is a new class that will handle the rubber-banding when handling scroll events.
* WebCore.xcodeproj/project.pbxproj:
* platform/mac/ScrollAnimatorMac.h:
* platform/mac/ScrollAnimatorMac.mm:
(WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
(WebCore::ScrollAnimatorMac::handleWheelEvent):
(WebCore::ScrollAnimatorMac::smoothScrollWithEvent):
(WebCore::ScrollAnimatorMac::beginScrollGesture):
(WebCore::ScrollAnimatorMac::snapRubberBand):
(WebCore::ScrollAnimatorMac::snapRubberBandTimerFired):
* platform/mac/ScrollElasticityController.h: Added.
(WebCore::ScrollElasticityControllerClient::~ScrollElasticityControllerClient):
* platform/mac/ScrollElasticityController.mm: Added.
(WebCore::ScrollElasticityController::ScrollElasticityController):
2011-10-04 David Hyatt <hyatt@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=69372
[CSS3 Regions] Make sure overflow:visible lets content spill out of regions.
Reviewed by Anders Carlsson.
No new tests, since plenty of results changed.
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::paintIntoRegion):
(WebCore::RenderFlowThread::hitTestRegion):
(WebCore::RenderFlowThread::repaintRectangleInRegions):
(WebCore::RenderFlowThread::firstRegion):
(WebCore::RenderFlowThread::lastRegion):
* rendering/RenderFlowThread.h:
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::regionOverflowRect):
(WebCore::RenderRegion::isFirstRegion):
(WebCore::RenderRegion::isLastRegion):
(WebCore::RenderRegion::layout):
* rendering/RenderRegion.h:
(WebCore::RenderRegion::setRegionRect):
(WebCore::RenderRegion::regionRect):
2011-10-04 Chris Rogers <crogers@google.com>
Avoid unnecessary ASSERT in AudioDSPKernelProcessor::setNumberOfChannels()
https://bugs.webkit.org/show_bug.cgi?id=69361
Reviewed by James Robinson.
No new tests. This changes no JavaScript API.
* platform/audio/AudioDSPKernelProcessor.cpp:
(WebCore::AudioDSPKernelProcessor::setNumberOfChannels):
2011-10-04 Anders Carlsson <andersca@apple.com>
Use const PlatformWheelEvent references where possible
https://bugs.webkit.org/show_bug.cgi?id=69367
Reviewed by Sam Weinig.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleWheelEvent):
* platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::handleWheelEvent):
* platform/ScrollAnimator.h:
* platform/ScrollView.cpp:
(WebCore::ScrollView::wheelEvent):
* platform/ScrollView.h:
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::handleWheelEvent):
* platform/ScrollableArea.h:
* platform/chromium/ScrollAnimatorChromiumMac.h:
* platform/chromium/ScrollAnimatorChromiumMac.mm:
(WebCore::ScrollAnimatorChromiumMac::handleWheelEvent):
* platform/mac/ScrollAnimatorMac.h:
* platform/mac/ScrollAnimatorMac.mm:
(WebCore::isScrollingLeftAndShouldNotRubberBand):
(WebCore::isScrollingRightAndShouldNotRubberBand):
(WebCore::ScrollAnimatorMac::handleWheelEvent):
(WebCore::ScrollAnimatorMac::smoothScrollWithEvent):
2011-10-04 Andreas Kling <kling@webkit.org>
Shrink HTMLTableCellElement.
https://bugs.webkit.org/show_bug.cgi?id=69347
Reviewed by Antti Koivisto.
Don't cache the rowspan and colspan attributes on the element.
This shrinks HTMLTableCellElement by one CPU word, reducing memory
consumption by 80 kB (on 64-bit) when loading the full HTML5 spec.
* html/HTMLTableCellElement.cpp:
(WebCore::HTMLTableCellElement::HTMLTableCellElement):
(WebCore::HTMLTableCellElement::colSpan):
(WebCore::HTMLTableCellElement::rowSpan):
(WebCore::HTMLTableCellElement::parseMappedAttribute):
* html/HTMLTableCellElement.h:
2011-10-04 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r96630.
http://trac.webkit.org/changeset/96630
https://bugs.webkit.org/show_bug.cgi?id=69368
Caused assertion failures in validateCell (Requested by
mhahnenberg on #webkit).
* bridge/qt/qt_runtime.cpp:
* bridge/qt/qt_runtime.h:
2011-10-04 Cary Clark <caryclark@google.com>
Enable sub pixel text (Skia on Mac)
https://bugs.webkit.org/show_bug.cgi?id=69354
http://code.google.com/p/chromium/issues/detail?id=98165
Reviewed by Eric Seidel.
No new tests. Layout test pixel results have been
disabled and will be rebaselined once all Skia on Mac
changes are in.
* platform/graphics/skia/FontSkia.cpp:
(WebCore::setupPaint):
Enable sub pixel text. This is set by default to enabled
by CoreGraphics, but by default disabled on Skia.
2011-10-04 Anders Carlsson <andersca@apple.com>
Remove PlatformWheelEvent::m_isAccepted
https://bugs.webkit.org/show_bug.cgi?id=69357
Reviewed by Darin Adler.
Remove PlatformWheelEvent::m_isAccepted and all the getters/setters.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleWheelEvent):
(WebCore::EventHandler::handleGestureEvent):
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::wheelEvent):
* platform/PlatformWheelEvent.h:
(WebCore::PlatformWheelEvent::PlatformWheelEvent):
* platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::handleWheelEvent):
* platform/chromium/PopupContainer.cpp:
(WebCore::PopupContainer::handleGestureEvent):
* platform/chromium/ScrollAnimatorChromiumMac.mm:
(WebCore::ScrollAnimatorChromiumMac::handleWheelEvent):
* platform/efl/PlatformWheelEventEfl.cpp:
(WebCore::PlatformWheelEvent::PlatformWheelEvent):
* platform/mac/ScrollAnimatorMac.mm:
(WebCore::ScrollAnimatorMac::handleWheelEvent):
* platform/mac/WheelEventMac.mm:
(WebCore::PlatformWheelEvent::PlatformWheelEvent):
* platform/qt/WheelEventQt.cpp:
(WebCore::PlatformWheelEvent::PlatformWheelEvent):
* platform/win/WheelEventWin.cpp:
(WebCore::PlatformWheelEvent::PlatformWheelEvent):
* platform/wx/MouseWheelEventWx.cpp:
(WebCore::PlatformWheelEvent::PlatformWheelEvent):
2011-09-21 Cris Neckar <cdn@chromium.org>
Hold refptr to identified previous sibling within findPlaceForCounter.
https://bugs.webkit.org/show_bug.cgi?id=68563
Reviewed by Adam Barth.
Test: fast/css/counters/counter-after-style-crash.html
* rendering/RenderCounter.cpp:
(WebCore::findPlaceForCounter):
2011-10-04 Joshua Bell <jsbell@chromium.org>
IndexedDB add() should fail if key is NaN
https://bugs.webkit.org/show_bug.cgi?id=62286
Reviewed by Tony Chang.
Test: storage/indexeddb/invalid-keys.html
Implement special case - numbers are valid keys, except for NaN.
* bindings/v8/IDBBindingUtilities.cpp:
(WebCore::createIDBKeyFromValue):
2011-10-04 Mark Hahnenberg <mhahnenberg@apple.com>
Add static ClassInfo structs to classes that override JSCell::getCallData
https://bugs.webkit.org/show_bug.cgi?id=69311
Reviewed by Darin Adler.
No new tests.
Added ClassInfo structs to each class that defined its own getCallData
function but did not already have its own ClassInfo struct. This is a
necessary addition for when we switch over to looking up getCallData from
the MethodTable in ClassInfo rather than doing the virtual call (which we
are removing). These new ClassInfo structs are public because we often
use these structs in other areas of the code to uniquely identify JSC classes and
to enforce runtime invariants based on those class identities using ASSERTs.
* bridge/qt/qt_runtime.cpp:
* bridge/qt/qt_runtime.h:
2011-10-04 Ryosuke Niwa <rniwa@webkit.org>
REGRESSION(r94274): setting input.value erroneously triggers focus event
https://bugs.webkit.org/show_bug.cgi?id=69315
Reviewed by Kent Tamura.
Fixed the bug by adding a new flag to setSelection to avoid calling setFocusedNodeIfNeeded
when called by nodeWillBeRemoved and textWillBeReplaced.
Added a manual test. Unfortunately, the test always passes in DRT.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::setSelection):
(WebCore::FrameSelection::respondToNodeModification):
(WebCore::FrameSelection::textWillBeReplaced):
* editing/FrameSelection.h:
* manual-tests/mutate-unfocused-text-with-selection.html: Added.
2011-10-04 Young Han Lee <joybro201@gmail.com>
HTML canvas strokes with dash and dashOffset
https://bugs.webkit.org/show_bug.cgi?id=63933
Reviewed by Simon Fraser.
Add webkitLineDash and webkitLineDashOffset attributes to CanvasRenderingContext2D for JSC.
These attributes can be used to determine the dash-style of stroke in HTML Canvas.
As this kind of attributes are not specified in the HTML Canvas specification yet,
the 'webkit' prefix is added to its names.
Mozilla already implemented these attributes, mozDash and mozDashOffset [1], and this patch
is created by referring to the implementation. This patch is basically using the specified
behavior of stroke-dasharray and stroke-dashoffset in the SVG specification [2], except
that doesn't support units or percentages, just floating point numbers.
[1] https://bugzilla.mozilla.org/show_bug.cgi?id=662038
[2] http://www.w3.org/TR/SVG/painting.html#StrokeProperties
Tests: fast/canvas/canvas-webkitLineDash-invalid.html
fast/canvas/canvas-webkitLineDash.html
* bindings/js/JSCanvasRenderingContext2DCustom.cpp:
(WebCore::JSCanvasRenderingContext2D::webkitLineDash):
(WebCore::JSCanvasRenderingContext2D::setWebkitLineDash):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::State::State):
(WebCore::CanvasRenderingContext2D::webkitLineDash):
(WebCore::CanvasRenderingContext2D::setWebkitLineDash):
(WebCore::CanvasRenderingContext2D::webkitLineDashOffset):
(WebCore::CanvasRenderingContext2D::setWebkitLineDashOffset):
* html/canvas/CanvasRenderingContext2D.h:
* html/canvas/CanvasRenderingContext2D.idl:
2011-10-04 Matthew Delaney <mdelaney@apple.com>
Allow canvas backing store to be lazily allocated
https://bugs.webkit.org/show_bug.cgi?id=67054
Reviewed by Darin Adler.
No new tests; doesn't affect behavior.
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::createImageBuffer): Removed the setting of lineWidth
that caused the eager creation of ImageBuffer to use its GraphicsContext.
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D): Added in default
line width setting along with other default context settings.
2011-10-04 Sam Weinig <sam@webkit.org>
Add support for the CSP connect-src directive
https://bugs.webkit.org/show_bug.cgi?id=69353
Reviewed by Adam Barth.
Add CSP support for XMLHttpRequest, WebSockets and EventSource.
Tests: http/tests/security/contentSecurityPolicy/connect-src-eventsource-allowed.html
http/tests/security/contentSecurityPolicy/connect-src-eventsource-blocked.html
http/tests/security/contentSecurityPolicy/connect-src-websocket-allowed.html
http/tests/security/contentSecurityPolicy/connect-src-websocket-blocked.html
http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-allowed.html
http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-blocked.html
* page/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::allowConnectFromSource):
(WebCore::ContentSecurityPolicy::addDirective):
* page/ContentSecurityPolicy.h:
Add connect-src directive parsing and predicate.
* page/EventSource.cpp:
(WebCore::EventSource::create):
* websockets/WebSocket.cpp:
(WebCore::WebSocket::connect):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::open):
Test allowConnectFromSource when establishing a connection.
2011-10-03 David Hyatt <hyatt@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=69317
[CSS3 Regions] Make overflow:hidden/auto/scroll sections behave properly when split across regions. This
includes sizing and positioning independently in each region, clipping independently in each region, and
shifting to avoid floats in each region.
Reviewed by Anders Carlsson.
Added many new tests in fast/regions.
* editing/Editor.cpp:
(WebCore::Editor::insideVisibleArea):
Patching a call to overflowClipRect, which now includes a region argument so that clipping can be adjusted
per-region.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock):
Don't clear out the cached region information when the width changes. Instead make a new call to
the flow thread to check if widths changed in any region and set relayoutChildren to true if so.
(WebCore::RenderBlock::computeStartPositionDeltaForChildAvoidingFloats):
This is a new function that has been split out from determineLogicalLeftPositionForChild so that it can
be called by region code to compute offsets independently in each region without altering the overall object's
logical left position.
(WebCore::RenderBlock::determineLogicalLeftPositionForChild):
Patched to call computeStartPositionDeltaForChildAvoidingFloats instead of doing the work of avoiding the floats
itself.
(WebCore::RenderBlock::computeLogicalLocationForFloat):
Fix the left clamping code to clamp to the left border in the correct region rather than always just clamping
to 0.
(WebCore::RenderBlock::logicalLeftOffsetForContent):
(WebCore::RenderBlock::logicalRightOffsetForContent):
Tweaked to handle the new signature of borderBoxRectInRegion.
(WebCore::RenderBlock::nextFloatLogicalBottomBelow):
Reworked not to return 0 on failure or when done, but to just return the current height. This is a more
fitting answer for the function to return when no more floats remain.
(WebCore::RenderBlock::getClearDelta):
Big changes to this function. It was never patched to support writing modes, so the new code is all
writing-mode-aware now. Also improved the computeLogicalWidth() call to make sure margins didn't get incorrectly changed.
The code computes transient information in each region as the object tries to find a place to fit, so that the
old widths are properly retained when layout of that child later checks to see if it needs to relayout children or not.
(WebCore::RenderBlock::nodeAtPoint):
Patched to call overflowClipRect with the region being hit tested.
(WebCore::inNormalFlow):
Tweaked to not need the initialBlock variable.
(WebCore::RenderBlock::applyBeforeBreak):
(WebCore::RenderBlock::applyAfterBreak):
(WebCore::RenderBlock::pageLogicalHeightForOffset):
(WebCore::RenderBlock::pageRemainingLogicalHeightForOffset):
(WebCore::RenderBlock::adjustForUnsplittableChild):
(WebCore::RenderBlock::adjustLinePositionForPagination):
(WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
Tweaked to use inRenderFlowThread() now that it exists. Also removing the regionsHaveUniformLogicalWidth()
optimization, since you can't rely on that when objects size differently depending on floats. In other words,
the future of pagination is variable width objects even in printing/columns.
(WebCore::RenderBlock::offsetFromLogicalTopOfFirstPage):
Renamed to make it more clear what logicalPageOffset() was. It's your offset from the top of the first page.
(WebCore::RenderBlock::regionAtBlockOffset):
New helper function for accessing the region at a given offset within your block.
(WebCore::RenderBlock::logicalWidthChangedInRegions):
New helper function that computes whether or not your logical width information changed in any regions. If so,
relayoutChildren gets set to true (just as it would have when computeLogicalWidth for the overall block changes
values).
(WebCore::RenderBlock::collapsedMarginBeforeForChild):
(WebCore::RenderBlock::collapsedMarginAfterForChild):
(WebCore::RenderBlock::marginBeforeForChild):
(WebCore::RenderBlock::marginAfterForChild):
(WebCore::RenderBlock::marginLogicalLeftForChild):
(WebCore::RenderBlock::marginLogicalRightForChild):
(WebCore::RenderBlock::marginStartForChild):
(WebCore::RenderBlock::marginEndForChild):
Tweaked because of const to take const arguments.
* rendering/RenderBlock.h:
(WebCore::RenderBlock::availableLogicalWidthForLine):
(WebCore::RenderBlock::logicalRightOffsetForLine):
(WebCore::RenderBlock::logicalLeftOffsetForLine):
(WebCore::RenderBlock::startOffsetForLine):
(WebCore::RenderBlock::logicalWidthForChild):
(WebCore::RenderBlock::logicalHeightForChild):
(WebCore::RenderBlock::logicalTopForChild):
(WebCore::RenderBlock::logicalLeftForChild):
(WebCore::RenderBlock::availableLogicalWidthForContent):
(WebCore::RenderBlock::startOffsetForContent):
(WebCore::RenderBlock::logicalLeftOffsetForContent):
(WebCore::RenderBlock::logicalRightOffsetForContent):
Reworking these functions so versions exist that take regions and page offsets to avoid having to recalculate
where you are over and over again as you walk up a containing block chain.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::LineWidth::fitBelowFloats):
Changed to handle the better return value for nextFloatLogicalBottomBelow.
(WebCore::RenderBlock::checkPaginationAndFloatsAtEndLine):
Removing the uniform logical width optimization.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::borderBoxRectInRegion):
Changed to take a region and offset from the first page so that it doesn't have to be recomputed as you recur up
the containing block chain.
(WebCore::RenderBox::clearRenderBoxRegionInfo):
Changed to just use inRenderFlowThread().
(WebCore::RenderBox::pushContentsClip):
Changed for the new region-parameterized overflow clip function.
(WebCore::RenderBox::overflowClipRect):
Now takes a region so that a specific clip rect can be returned sized to the appropriate border box in that
region.
(WebCore::RenderBox::containingBlockLogicalWidthForContent):
(WebCore::RenderBox::containingBlockLogicalWidthForContentInRegion):
Objects in flow threads no longer shrink to avoid floats when computing their overall widths. The region-specific
check now does the shrinking. It checks at the point where the region slices the object, or the top of the object if
it begins in the middle of the region.
(WebCore::RenderBox::computeLogicalWidth):
(WebCore::RenderBox::computeLogicalWidthInRegion):
Push all the rest of the computeLogicalWidth code into computeLogicalWidthInRegion.
(WebCore::RenderBox::renderBoxRegionInfo):
Changed to take the region and the offset from the top of the first page to avoid recomputation.
* rendering/RenderBox.h:
(WebCore::RenderBox::hasRenderOverflow):
(WebCore::RenderBox::hasVisualOverflow):
New helper used by the RenderLayer code to avoid having to check visual overflow when none exists.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
Use the new region-specific overflow clip.
* rendering/RenderBoxRegionInfo.h:
(WebCore::RenderBoxRegionInfo::shiftLogicalLeft):
Helper used by the region code to shift a box over when floats cause it to move.
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::computeLogicalWidth):
Remove the optimization to avoid creating box info for uniform widths.
(WebCore::RenderFlowThread::paintIntoRegion):
Make the clip rects used when painting the flow thread's layer tree temporary in each region.
(WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
Removing the uniform logical width optimization
(WebCore::RenderFlowThread::logicalWidthChangedInRegions):
* rendering/RenderFlowThread.h:
New helper called to see if a block needs to relayout its children because its width changed in some
region.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paint):
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::hitTestLayer):
(WebCore::RenderLayer::updateClipRects):
(WebCore::RenderLayer::calculateClipRects):
(WebCore::RenderLayer::parentClipRects):
(WebCore::RenderLayer::backgroundClipRect):
(WebCore::RenderLayer::calculateRects):
(WebCore::RenderLayer::childrenClipRect):
(WebCore::RenderLayer::selfClipRect):
(WebCore::RenderLayer::repaintBlockSelectionGaps):
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateCompositedBounds):
(WebCore::clipBox):
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
(WebCore::RenderLayerBacking::paintIntoLayer):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::addToOverlapMap):
(WebCore::RenderLayerCompositor::clippedByAncestor):
Changing all the layer clipping code to pass regions through to all of the helper functions involved. This is
so overflowClipRect can ultimately take a region. Eventually when we get positioned objects moving independently
in each region, we'll patch the "clip" property as well, and it will be much easier because all the plumbing has
been put in place here for overflow.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::enclosingRenderFlowThread):
Optimized to not walk up the render tree if we're in layout and a currentRenderFlowThread() exists.
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::renderBoxRegionInfo):
(WebCore::RenderRegion::setRenderBoxRegionInfo):
(WebCore::RenderRegion::takeRenderBoxRegionInfo):
Removing the optimization for uniform logical width regions. Changed remove to take so that the caller
can examine it before deleting.
(WebCore::RenderRegion::offsetFromLogicalTopOfFirstPage):
* rendering/RenderRegion.h:
Helper function that computes the region's offset from the top of the first page.
* rendering/RenderTable.cpp:
(WebCore::RenderTable::overflowClipRect):
(WebCore::RenderTable::nodeAtPoint):
* rendering/RenderTable.h:
* rendering/RenderTableCell.h:
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::nodeAtPoint):
Changed to pass the region to overflowClipRect.
* rendering/RenderTreeAsText.cpp:
(WebCore::writeLayers):
Modified because the layer clip functions need regions now.
* rendering/RenderView.h:
(WebCore::RenderView::pushLayoutState):
Changed to use inRenderFlowThread over view()->hasRenderFlowThread.
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::paint):
Patched to use the new overflowClipRect that is region-specific.
2011-10-04 Anders Carlsson <andersca@apple.com>
More work towards making PlatformWheelEvent immutable
https://bugs.webkit.org/show_bug.cgi?id=69348
Reviewed by Sam Weinig.
More work on getting rid of m_isAccepted from PlatformWheelEvent. Add more asserts
that the return value of handleWheelEvent is equal to m_isAccepted.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleWheelEvent):
* platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::handleWheelEvent):
2011-10-04 Cary Clark <caryclark@google.com>
Inset focus ring (Skia on Mac)
https://bugs.webkit.org/show_bug.cgi?id=69166
http://code.google.com/p/chromium/issues/detail?id=97956
This focus ring was drawn too large and was left tracks
in subsequent invalidations. Make it more closely match
the CG version.
Reviewed by Adam Barth.
No new tests. This platform is not enabled.
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::getFocusRingOutset):
(WebCore::GraphicsContext::drawFocusRing):
2011-10-03 Jon Lee <jonlee@apple.com>
Extend DOM WheelEvent to differentiate between physical and logical scroll directions
https://bugs.webkit.org/show_bug.cgi?id=68959
<rdar://problem/10036688>
Reviewed by Sam Weinig.
Test: fast/events/wheelevent-direction-inverted-from-device.html
* dom/WheelEvent.cpp:
(WebCore::WheelEvent::WheelEvent):
(WebCore::WheelEvent::initWheelEvent):
(WebCore::WheelEventDispatchMediator::WheelEventDispatchMediator):
* dom/WheelEvent.h:
(WebCore::WheelEvent::create):
(WebCore::WheelEvent::webkitDirectionInvertedFromDevice):
* dom/WheelEvent.idl: Added the webkitDirectionInvertedFromDevice idl attribute.
* platform/PlatformWheelEvent.h:
(WebCore::PlatformWheelEvent::PlatformWheelEvent):
(WebCore::PlatformWheelEvent::webkitDirectionInvertedFromDevice):
* platform/efl/PlatformWheelEventEfl.cpp:
(WebCore::PlatformWheelEvent::PlatformWheelEvent): default to false.
* platform/gtk/PlatformWheelEventGtk.cpp:
(WebCore::PlatformWheelEvent::PlatformWheelEvent): default to false.
* platform/mac/WheelEventMac.mm:
(WebCore::PlatformWheelEvent::PlatformWheelEvent): if building on Lion or later, use
[NSEvent isDirectionInvertedFromDevice].
* platform/qt/WheelEventQt.cpp:
(WebCore::PlatformWheelEvent::PlatformWheelEvent): default to false.
* platform/win/WheelEventWin.cpp:
(WebCore::PlatformWheelEvent::PlatformWheelEvent): default to false.
* platform/wx/MouseWheelEventWx.cpp:
(WebCore::PlatformWheelEvent::PlatformWheelEvent): default to false.
2011-10-04 Rémi Duraffort <remi.duraffort@st.com>
[EFL] Fix compilation when SQLite and/or libxslt are not installed in /usr/include
https://bugs.webkit.org/show_bug.cgi?id=69338
Unreviewed build fix
* CMakeListsEfl.txt:
2011-10-03 Ken Buchanan <kenrb@chromium.org>
Resource loader should block HTTP redirects to local resources
https://bugs.webkit.org/show_bug.cgi?id=68706
Reviewed by Adam Barth.
Modified MainResourceLoader to add an extra security check on
HTTP redirects. Also, moved isFeedWithNestedProtocolInHTTPFamily
to SecurityOrigin.cpp.
* loader/FrameLoader.cpp:
(WebCore::isFeedWithNestedProtocolInHTTPFamily):
(WebCore::FrameLoader::loadFrameRequest):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::willSendRequest):
* page/SecurityOrigin.cpp:
(WebCore::isFeedWithNestedProtocolInHTTPFamily):
(WebCore::SecurityOrigin::canDisplay):
2011-10-04 Cary Clark <caryclark@google.com>
Apply color profile found to decoded bitmap (Skia on Mac)
https://bugs.webkit.org/show_bug.cgi?id=69144
This fixes http://code.google.com/p/chromium/issues/detail?id=97830
Reviewed by Stephen White.
No new tests. This platform is not enabled.
* platform/image-decoders/ImageDecoder.h:
Add color profile slot to Skia variation.
* platform/image-decoders/skia/ImageDecoderSkia.cpp:
(WebCore::resolveColorSpace):
Adjust the bitmap in place to use the supplied color space.
(WebCore::createColorSpace):
Create a CGColorSpace from a color profile.
(WebCore::ImageFrame::setColorProfile):
Save the image's color profile until the image is complete.
(WebCore::ImageFrame::setStatus):
Apply the color profile, if any, to the image.
2011-10-04 Leandro Pereira <leandro@profusion.mobi>
[CMake] Unreviewed: pass feature definitions in the right format for the CSS scripts.
The Perl scripts in the css/ directory expect the definitions passed via
--defines to be a string of space-separated entries, however we were passing a
list of semicolon-separated strings, thus making all feature defines actually
be ignored.
Detected after r96433, which checked for some definitions in
CSSPropertyNames.in.
No new tests, this is a build fix.
* CMakeLists.txt:
2011-10-04 Pavel Feldman <pfeldman@google.com>
Web Inspector: make SourceFrame compile.
https://bugs.webkit.org/show_bug.cgi?id=69345
Reviewed by Yury Semikhatsky.
* inspector/compile-front-end.sh:
* inspector/front-end/DOMAgent.js:
(WebInspector.DOMAgent.prototype.inspectElement):
(WebInspector.DOMDispatcher.prototype.inspectElementRequested):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype._inspectElementRequested):
* inspector/front-end/ObjectPropertiesSection.js:
(WebInspector.ObjectPropertyTreeElement.prototype._contextMenuEventFired):
(WebInspector.ObjectPropertyTreeElement.prototype.startEditing):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel.prototype._applyDiffMarkup):
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame.prototype._onShowPopover.showObjectPopover):
(WebInspector.SourceFrame.prototype._onShowPopover):
(WebInspector.SourceFrame.prototype._editBreakpointCondition):
(WebInspector.SourceFrame.prototype.startEditing):
(WebInspector.SourceFrame.prototype.commitEditing.didEditContent):
(WebInspector.SourceFrame.prototype.commitEditing):
(WebInspector.SourceFrameDelegate.prototype.requestContent):
(WebInspector.SourceFrameDelegate.prototype.debuggingSupported):
(WebInspector.SourceFrameDelegate.prototype.setBreakpoint):
(WebInspector.SourceFrameDelegate.prototype.removeBreakpoint):
(WebInspector.SourceFrameDelegate.prototype.updateBreakpoint):
(WebInspector.SourceFrameDelegate.prototype.findBreakpoint):
(WebInspector.SourceFrameDelegate.prototype.continueToLine):
(WebInspector.SourceFrameDelegate.prototype.canEditScriptSource):
(WebInspector.SourceFrameDelegate.prototype.setScriptSource):
(WebInspector.SourceFrameDelegate.prototype.setScriptSourceIsBeingEdited):
(WebInspector.SourceFrameDelegate.prototype.debuggerPaused):
(WebInspector.SourceFrameDelegate.prototype.evaluateInSelectedCallFrame):
(WebInspector.SourceFrameDelegate.prototype.releaseEvaluationResult):
(WebInspector.SourceFrameDelegate.prototype.suggestedFileName):
* inspector/front-end/externs.js:
(WebInspector.log):
* inspector/front-end/inspector.js:
(WebInspector.log.logMessage):
(WebInspector.log):
* inspector/front-end/utilities.js:
():
2011-10-04 Mikhail Naganov <mnaganov@chromium.org>
Web Inspector: Factor out object properties popup.
https://bugs.webkit.org/show_bug.cgi?id=69234
Also, for HTML elements, show a non-empty id value in the element name.
Reviewed by Pavel Feldman.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/front-end/ObjectPopoverHelper.js: Added.
* inspector/front-end/SourceFrame.js: Extracted from here.
(WebInspector.SourceFrame.prototype._initializeTextViewer):
(WebInspector.SourceFrame.prototype._mouseDown):
(WebInspector.SourceFrame.prototype._onShowPopover.showObjectPopover):
(WebInspector.SourceFrame.prototype._onShowPopover):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
2011-10-04 Pavel Feldman <pfeldman@google.com>
Web Inspector: compile text editor.
https://bugs.webkit.org/show_bug.cgi?id=69339
Drive-by compilation for color, database and dom storage entities.
Reviewed by Yury Semikhatsky.
* inspector/Inspector.json:
* inspector/compile-front-end.sh:
* inspector/front-end/Color.js:
(WebInspector.Color.prototype._individualRGBValueToFloatValue):
* inspector/front-end/KeyboardShortcut.js:
(WebInspector.KeyboardShortcut.makeKey):
(WebInspector.KeyboardShortcut.makeKeyFromEvent):
(WebInspector.KeyboardShortcut.makeDescriptor):
* inspector/front-end/SourceCSSTokenizer.js:
* inspector/front-end/SourceCSSTokenizer.re2js:
* inspector/front-end/SourceHTMLTokenizer.js:
* inspector/front-end/SourceHTMLTokenizer.re2js:
* inspector/front-end/SourceJavaScriptTokenizer.js:
* inspector/front-end/SourceJavaScriptTokenizer.re2js:
* inspector/front-end/SourceTokenizer.js:
(WebInspector.SourceTokenizer.prototype._charAt):
(WebInspector.SourceTokenizer.prototype.createInitialCondition):
(WebInspector.SourceTokenizer.prototype.nextToken):
* inspector/front-end/TextEditorHighlighter.js:
(WebInspector.TextEditorHighlighter.prototype.highlight):
(WebInspector.TextEditorHighlighter.prototype._highlightLines):
* inspector/front-end/TextEditorModel.js:
* inspector/front-end/TextViewer.js:
(WebInspector.TextViewerDelegate.prototype.doubleClick):
(WebInspector.TextViewerDelegate.prototype.beforeTextChanged):
(WebInspector.TextViewerDelegate.prototype.afterTextChanged):
(WebInspector.TextViewerDelegate.prototype.commitEditing):
(WebInspector.TextViewerDelegate.prototype.cancelEditing):
(WebInspector.TextViewerDelegate.prototype.populateLineGutterContextMenu):
(WebInspector.TextViewerDelegate.prototype.populateTextAreaContextMenu):
(WebInspector.TextViewerDelegate.prototype.suggestedFileName):
(WebInspector.TextEditorMainPanel.prototype._enclosingLineRowOrSelf):
(WebInspector.TextEditorMainPanel.prototype._createLink):
(WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
(WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):
* inspector/front-end/externs.js:
(WebInspector.completeURL):
(window.getComputedStyle):
(Event.prototype.initWebKitWheelEvent):
* inspector/front-end/utilities.js:
2011-10-04 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Timeline panel shortcut for filtering short records should have shorter description.
https://bugs.webkit.org/show_bug.cgi?id=69333
Reviewed by Pavel Feldman.
* English.lproj/localizedStrings.js:
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.prototype._registerShortcuts):
2011-10-04 Andreas Kling <kling@webkit.org>
Shrink StyleRareNonInheritedData.
https://bugs.webkit.org/show_bug.cgi?id=69331
Reviewed by Antti Koivisto.
Rearrange the members and move all small types into the bitfield.
This shrinks StyleRareNonInheritedData by two CPU words, reducing memory
consumption by 140 kB (on 64-bit) when loading the full HTML5 spec.
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
* rendering/style/StyleRareNonInheritedData.h:
2011-10-04 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Remove http/tests/inspector/network/disabled-cache-crash.html.
https://bugs.webkit.org/show_bug.cgi?id=69332
Reviewed by Pavel Feldman.
* WebCore.exp.in:
* testing/Internals.cpp:
* testing/Internals.h:
* testing/Internals.idl:
2011-10-04 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: make DataGrid compile
https://bugs.webkit.org/show_bug.cgi?id=69334
Reviewed by Yury Semikhatsky.
* inspector/compile-front-end.sh:
* inspector/front-end/DataGrid.js:
(WebInspector.DataGrid):
(WebInspector.DataGrid.prototype._startEditingColumnOfDataGridNode):
(WebInspector.DataGrid.prototype._startEditing):
(WebInspector.DataGrid.prototype._startEditingConfig):
(WebInspector.DataGrid.prototype._editingCommitted.moveToNextIfNeeded):
(WebInspector.DataGrid.prototype._editingCommitted):
(WebInspector.DataGrid.prototype._editingCancelled):
(WebInspector.DataGrid.prototype.removeChildrenRecursive):
(WebInspector.DataGrid.prototype._keyDown):
(WebInspector.DataGrid.prototype._startResizerDragging):
(WebInspector.DataGrid.prototype._resizerDragging):
(WebInspector.DataGrid.prototype._endResizerDragging):
(WebInspector.DataGridNode.prototype._attach):
* inspector/front-end/UIUtils.js:
(WebInspector.isBeingEdited):
(WebInspector.markBeingEdited):
(WebInspector.isEditingAnyField):
(WebInspector.EditingConfig):
(WebInspector.startEditing.blurEventListener):
(WebInspector.startEditing.getContent):
(WebInspector.startEditing.cleanUpAfterEditing):
(WebInspector.startEditing.editingCancelled):
(WebInspector.startEditing.editingCommitted):
(WebInspector.startEditing.defaultFinishHandler):
(WebInspector.startEditing):
(WebInspector.startEditing.pasteEventListener):
(WebInspector.startEditing.keyDownEventListener):
* inspector/front-end/externs.js:
(Array.prototype.remove):
(window.getComputedStyle):
* inspector/front-end/inspector.js:
2011-10-04 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: [Extensions API] extension panel's toolbar icon is incorrect when inspector window is docked
https://bugs.webkit.org/show_bug.cgi?id=69336
Reviewed by Pavel Feldman.
* inspector/front-end/ExtensionPanel.js:
(WebInspector.ExtensionPanel):
2011-10-04 Pavel Podivilov <podivilov@chromium.org>
Web Inspector: update call frame location when source mapping is changed.
https://bugs.webkit.org/show_bug.cgi?id=68997
Currently we use fake "debugger-paused" event hack to update execution line and call stack placards when source mapping is changed.
- add PresentationCallFrame.createPlacard method to create "live" placards that are updated on source mapping changes.
- remove PresentationCallFrame functionName, isInternalScript, and url getters.
- fire execution-line-changed event when selected call frame or source mapping is changed.
Reviewed by Pavel Feldman.
* inspector/compile-front-end.sh:
* inspector/front-end/CallStackSidebarPane.js:
(WebInspector.CallStackSidebarPane.prototype.update):
* inspector/front-end/CompilerSourceMapping.js:
(WebInspector.ClosureCompilerSourceMappingPayload):
(WebInspector.ClosureCompilerSourceMapping):
(WebInspector.ClosureCompilerSourceMapping.prototype._parseMappings):
* inspector/front-end/ContentProviders.js:
(WebInspector.CompilerSourceMappingContentProvider.prototype.requestContent):
(WebInspector.CompilerSourceMappingContentProvider.prototype.searchInContent):
* inspector/front-end/DebuggerPresentationModel.js:
(WebInspector.DebuggerPresentationModel):
(WebInspector.DebuggerPresentationModel.prototype.createPlacard.updatePlacard):
(WebInspector.DebuggerPresentationModel.prototype.createPlacard):
(WebInspector.DebuggerPresentationModel.prototype._debuggerPaused):
(WebInspector.DebuggerPresentationModel.prototype._debuggerResumed):
(WebInspector.DebuggerPresentationModel.prototype.set selectedCallFrame):
(WebInspector.DebuggerPresentationModel.prototype.get selectedCallFrame):
(WebInspector.DebuggerPresentationModel.prototype._dispatchExecutionLineChanged):
(WebInspector.DebuggerPresentationModel.prototype._debuggerReset):
(WebInspector.PresentationCallFrame):
(WebInspector.PresentationCallFrame.prototype.get rawSourceCode):
(WebInspector.PresentationCallFrame.prototype.uiLocation):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._debuggerPaused.else.didGetUILocation):
(WebInspector.ScriptsPanel.prototype._debuggerPaused):
(WebInspector.ScriptsPanel.prototype._executionLineChanged):
(WebInspector.ScriptsPanel.prototype._callFrameSelected):
* inspector/front-end/externs.js:
(WebInspector.displayNameForURL):
2011-10-04 Pavel Feldman <pfeldman@chromium.org>
Not reviewed: inspector tests fix.
* inspector/front-end/ExtensionPanel.js:
(WebInspector.ExtensionPanel):
(WebInspector.ExtensionPanel.prototype.get toolbarItemLabel):
2011-09-29 Pavel Podivilov <podivilov@chromium.org>
Web Inspector: add compiler source mapping support to RawSourceCode.
https://bugs.webkit.org/show_bug.cgi?id=68891
Reviewed by Pavel Feldman.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/front-end/BreakpointManager.js:
(WebInspector.BreakpointManager.prototype.uiSourceCodeAdded):
(WebInspector.BreakpointManager.prototype.setBreakpoint):
(WebInspector.BreakpointManager.prototype._materializeBreakpoint):
* inspector/front-end/CompilerSourceMappingProvider.js: Added.
(WebInspector.CompilerSourceMappingProvider):
(WebInspector.CompilerSourceMappingProvider.prototype.loadSourceMapping):
(WebInspector.CompilerSourceMappingProvider.prototype.loadSourceCode):
* inspector/front-end/DebuggerPresentationModel.js:
(WebInspector.DebuggerPresentationModel.prototype.continueToLine):
* inspector/front-end/RawSourceCode.js:
(WebInspector.RawSourceCode.prototype.setCompilerSourceMappingProvider):
(WebInspector.RawSourceCode.prototype._resourceFinished):
(WebInspector.RawSourceCode.prototype._updateSourceMapping.didCreateSourceMapping):
(WebInspector.RawSourceCode.prototype._updateSourceMapping):
(WebInspector.RawSourceCode.prototype._createSourceMapping.didLoadSourceMapping):
(WebInspector.RawSourceCode.PlainSourceMapping.prototype.uiLocationToRawLocation):
(WebInspector.RawSourceCode.FormattedSourceMapping.prototype.uiLocationToRawLocation):
(WebInspector.RawSourceCode.CompilerSourceMapping):
(WebInspector.RawSourceCode.CompilerSourceMapping.prototype.rawLocationToUILocation):
(WebInspector.RawSourceCode.CompilerSourceMapping.prototype.uiLocationToRawLocation):
(WebInspector.RawSourceCode.CompilerSourceMapping.prototype.get uiSourceCodeList):
(WebInspector.CompilerSourceMappingProvider):
(WebInspector.CompilerSourceMappingProvider.prototype.loadSourceMapping):
(WebInspector.CompilerSourceMappingProvider.prototype.loadSourceCode):
* inspector/front-end/UISourceCodeContentProviders.js:
(WebInspector.CompilerSourceMappingContentProvider):
(WebInspector.CompilerSourceMappingContentProvider.prototype.requestContent):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
2011-10-04 Pavel Feldman <pfeldman@google.com>
Web Inspector: start adding UI components to the compilation process.
https://bugs.webkit.org/show_bug.cgi?id=69319
Reviewed by Yury Semikhatsky.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/compile-front-end.sh:
* inspector/front-end/Drawer.js:
(WebInspector.Drawer.prototype.show.animationFinished):
(WebInspector.Drawer.prototype.show):
(WebInspector.Drawer.prototype.resize):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype.statusBarResized):
* inspector/front-end/EmptyView.js:
* inspector/front-end/Panel.js:
(WebInspector.Panel.prototype.set get toolbarItemLabel):
(WebInspector.Panel.prototype.get statusBarItems):
(WebInspector.Panel.prototype.updateMainViewWidth):
(WebInspector.Panel.prototype.statusBarResized):
* inspector/front-end/PropertiesSection.js:
* inspector/front-end/SearchController.js:
(WebInspector.SearchController.prototype._onKeyDown):
* inspector/front-end/Section.js:
(WebInspector.Section.prototype.set populated):
(WebInspector.Section.prototype.onpopulate):
(WebInspector.Section.prototype.expand):
* inspector/front-end/SidebarPane.js:
* inspector/front-end/Toolbar.js:
(WebInspector.Toolbar.createPanelToolbarItem):
(WebInspector.ToolbarDropdown.prototype.show):
* inspector/front-end/UIUtils.js: Added.
(WebInspector.elementDragStart):
(WebInspector.elementDragEnd):
(WebInspector.animateStyle):
(WebInspector.animateStyle.forceComplete):
(WebInspector.animateStyle.cancel):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/externs.js:
(WebInspector.extensionServer.notifyPanelShown):
(WebInspector.extensionServer.notifyPanelHidden):
(WebInspector.currentPanel):
(WebInspector.setCurrentPanel):
* inspector/front-end/inspector.html:
* inspector/front-end/inspector.js:
2011-10-04 Kenichi Ishibashi <bashi@chromium.org>
[Chromium] Implement font shaping with font-feature-settings on Windows
https://bugs.webkit.org/show_bug.cgi?id=65904
Reviewed by Kenneth Russell.
Use Uniscribe's OpenType APIs to shape complex text to support -webkit-font-feature-settings property.
No new tests. css3/font-feature-settings-rendering.html should pass by this patch.
* platform/graphics/chromium/UniscribeHelper.cpp:
(WebCore::loadOpenTypeFunctions):
(WebCore::UniscribeHelper::UniscribeHelper): Calls loadOpenTypeFunctions if needed.
(WebCore::UniscribeHelper::fillRuns): Uses ScriptItemizeOpenType() if possible.
(WebCore::UniscribeHelper::shape): Uses ScriptShapeOpenType() if possible.
(WebCore::UniscribeHelper::fillShapes): Adds OpenType script tag as an argument.
(WebCore::convertFeatureTag): Added.
(WebCore::UniscribeHelper::setRangeProperties): Added.
* platform/graphics/chromium/UniscribeHelper.h:
* platform/graphics/chromium/UniscribeHelperTextRun.cpp:
(WebCore::UniscribeHelperTextRun::UniscribeHelperTextRun): Calls setRangeProperties().
2011-10-04 Ryuan Choi <ryuan.choi@samsung.com>
[EFL] Implement declared but missing functions.
https://bugs.webkit.org/show_bug.cgi?id=65368
Unreviewed build fix for WebKit/Efl builds after r96566.
* platform/efl/CursorEfl.cpp:
(WebCore::Cursor::operator=):
* platform/efl/LocalizedStringsEfl.cpp:
(WebCore::localizedString):
2011-10-04 Pavel Feldman <pfeldman@google.com>
Web Inspector: move abstract panel search logic into the only view that is using it.
https://bugs.webkit.org/show_bug.cgi?id=69328
Reviewed by Yury Semikhatsky.
* inspector/front-end/Panel.js:
(WebInspector.Panel.prototype.searchCanceled):
(WebInspector.Panel.prototype.performSearch):
(WebInspector.Panel.prototype.jumpToNextSearchResult):
(WebInspector.Panel.prototype.jumpToPreviousSearchResult):
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfilesPanel.prototype.performSearch.updateMatchesCount):
(WebInspector.ProfilesPanel.prototype.performSearch.updateMatchesCountSoon):
(WebInspector.ProfilesPanel.prototype.performSearch.finishedCallback):
(WebInspector.ProfilesPanel.prototype.performSearch.processChunk):
(WebInspector.ProfilesPanel.prototype.performSearch):
(WebInspector.ProfilesPanel.prototype.jumpToNextSearchResult):
(WebInspector.ProfilesPanel.prototype.jumpToPreviousSearchResult):
(WebInspector.ProfilesPanel.prototype._searchableViews):
(WebInspector.ProfilesPanel.prototype.searchCanceled):
2011-10-04 Pavel Feldman <pfeldman@google.com>
Not reviewed: fixed poor inspector merge, drive-by front-endcompilation fix.
* inspector/front-end/ContentProviders.js:
(WebInspector.ScriptContentProvider.prototype.requestContent):
(WebInspector.ScriptContentProvider.prototype.searchInContent):
(WebInspector.ConcatenatedScriptsContentProvider.prototype.searchInContent):
* inspector/front-end/DebuggerPresentationModel.js:
2011-10-04 Pavel Feldman <pfeldman@google.com>
Web Inspector: remove dependency from GoToLine dialog from Panel.
https://bugs.webkit.org/show_bug.cgi?id=69327
Reviewed by Yury Semikhatsky.
* inspector/front-end/GoToLineDialog.js:
(WebInspector.GoToLineDialog.install):
(WebInspector.GoToLineDialog._show):
* inspector/front-end/NetworkItemView.js:
(WebInspector.NetworkItemView.prototype._tabSelected):
(WebInspector.ResourceContentView.prototype.contentLoaded):
(WebInspector.ResourceContentView.prototype.canHighlightLine):
(WebInspector.ResourceContentView.prototype.highlightLine):
(set WebInspector):
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkPanel.viewGetter):
(WebInspector.NetworkPanel):
* inspector/front-end/Panel.js:
(WebInspector.Panel.prototype.registerShortcut):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel.viewGetter):
(WebInspector.ResourcesPanel):
(WebInspector.ResourcesPanel.prototype.showResource):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.viewGetter):
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame.prototype.canHighlightLine):
* inspector/front-end/TabbedPane.js:
(WebInspector.TabbedPane.prototype._hideTab):
(WebInspector.TabbedPane.prototype.canHighlightLine):
(WebInspector.TabbedPane.prototype.highlightLine):
* inspector/front-end/View.js:
(WebInspector.View.prototype.canHighlightLine):
(WebInspector.View.prototype.highlightLine):
2011-10-04 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r96491.
http://trac.webkit.org/changeset/96491
https://bugs.webkit.org/show_bug.cgi?id=69326
Breaks Slow Leopard inspector tests (Requested by pfeldman on
#webkit).
* inspector/Inspector.json:
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::getScriptSource):
* inspector/InspectorDebuggerAgent.h:
* inspector/front-end/ContentProviders.js:
(WebInspector.ScriptContentProvider.prototype.requestContent):
* inspector/front-end/Script.js:
(WebInspector.Script.prototype.requestSource.didGetScriptSource):
(WebInspector.Script.prototype.requestSource):
2011-10-03 Pavel Feldman <pfeldman@google.com>
Web Inspector: add DebuggerPresentationModel and ConsoleView to compilation.
https://bugs.webkit.org/show_bug.cgi?id=69269
Reviewed by Yury Semikhatsky.
* inspector/compile-front-end.sh:
* inspector/front-end/BreakpointManager.js:
(WebInspector.BreakpointManager.prototype.uiSourceCodeAdded):
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.prototype._consoleCleared):
(WebInspector.ConsoleView.prototype._completions.evaluated.getCompletions):
(WebInspector.ConsoleView.prototype._completions.evaluated):
(WebInspector.ConsoleView.prototype._messagesClicked):
* inspector/front-end/ContentProviders.js:
(WebInspector.StaticContentProvider.prototype.requestContent):
(WebInspector.StaticContentProvider.prototype.searchInContent):
* inspector/front-end/ContextMenu.js:
* inspector/front-end/DebuggerPresentationModel.js:
(WebInspector.DebuggerPresentationModel.prototype._addScript):
(WebInspector.DebuggerPresentationModel.prototype._consoleMessageAdded):
(WebInspector.DebuggerPresentationModel.prototype._debuggerPaused):
(WebInspector.DebuggerPresentationModel.prototype._rawSourceCodeForScriptWithURL):
(WebInspector.DebuggerPresentationModel.prototype._rawSourceCodeForScript):
(WebInspector.DebuggerPresentationModel.prototype._scriptForRawSourceCode):
(WebInspector.DebuggerPresentationModel.prototype._createRawSourceCodeId):
(WebInspector.DebuggerPresentationModelResourceBinding.prototype.canSetContent):
(WebInspector.DebuggerPresentationModelResourceBinding.prototype.setContent):
* inspector/front-end/HelpScreen.js:
* inspector/front-end/JavaScriptContextManager.js:
(WebInspector.FrameEvaluationContext.prototype.get displayName):
* inspector/front-end/KeyboardShortcut.js:
(WebInspector.KeyboardShortcut):
* inspector/front-end/Resource.js:
(WebInspector.Resource.displayName):
* inspector/front-end/ScriptFormatter.js:
(WebInspector.ScriptFormatter.prototype._didFormatContent):
* inspector/front-end/ShortcutsScreen.js:
* inspector/front-end/StatusBarButton.js:
* inspector/front-end/TextPrompt.js:
* inspector/front-end/externs.js:
(WebInspector.populateHrefContextMenu):
(WebInspector.useLowerCaseMenuTitles):
(WebInspector.ScriptsPanel.this.evaluateInSelectedCallFrame):
(WebInspector.ScriptsPanel.this.getSelectedCallFrameVariables):
(WebInspector.ScriptsPanel):
* inspector/front-end/inspector.js:
* inspector/front-end/utilities.js:
2011-10-03 Ryosuke Niwa <rniwa@webkit.org>
Mac release build fix after r96561, and Leopard build fix after r96568.
* editing/TextCheckingHelper.h:
(WebCore::TextCheckingParagraph::textCharAt):
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::wheelEvent):
2011-10-03 Ryosuke Niwa <rniwa@webkit.org>
Build fix after r96568.
* accessibility/AccessibilityObject.cpp:
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
* editing/Editor.cpp:
2011-10-03 Shinya Kawanaka <shinyak@google.com>
Should call checkTextOfParagraph() indirectly to make unifying spell-checking code path easy.
https://bugs.webkit.org/show_bug.cgi?id=69241
Reviewed by Ryosuke Niwa.
WebCore has two different code paths for spell-checking:
1) checkTextOfParagraph() for Snow Leopard or later
2) checkSpellingOfString() for checkGrammarOfString() for other platforms.
At the first step, this patch introduces an indirect wrapper to call
checkTextOfParagraph() in Snow Leopard or later. This is intended to make it easy to
introduce a function for mimicing checkTextOfParagraph() in Chromium platform or
other non-SL or non-Lion platform.
No new tests because this patch does not change a behavior.
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::hasMisspelling): Calling checkTextOfParagraph() indirectly.
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(AXAttributeStringSetSpelling): ditto.
* editing/Editor.cpp:
(WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): ditto.
* editing/TextCheckingHelper.cpp:
(WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar): ditto.
(WebCore::TextCheckingHelper::guessesForMisspelledOrUngrammaticalRange): ditto.
(WebCore::checkTextOfParagraph): Added.
* editing/TextCheckingHelper.h:
2011-10-03 Darin Adler <darin@apple.com>
Change cursor to hand over missing plug-in message
https://bugs.webkit.org/show_bug.cgi?id=69312
Reviewed by Sam Weinig.
No tests because we currently don't have any test machinery for cursors.
* page/EventHandler.cpp:
(WebCore::OptionalCursor::OptionalCursor): Added. Construct an object
to represent either a cursor, or no cursor change.
(WebCore::OptionalCursor::isCursorChange): Added.
(WebCore::OptionalCursor::cursor): Added.
(WebCore::EventHandler::selectCursor): Changed return type to OptionalCursor,
moved some special cases from handleMouseMoveEvent in here. Moved the logic
for plug-ins and framesets into the specific renderer classes for those.
Added a call to the new getCursor virtual function.
(WebCore::EventHandler::handleMouseMoveEvent): Changed cursor setting code to
just be a call to selectCursor and then setCursor. Plug-in-specific code is now
in RenderWidget.
* page/EventHandler.h: Changed return type of selectCursor.
* page/MouseEventWithHitTestResults.cpp: Made some functions be inline.
* page/MouseEventWithHitTestResults.h:
(WebCore::MouseEventWithHitTestResults::localPoint): Made this inline.
(WebCore::MouseEventWithHitTestResults::scrollbar): Made this inline.
Yes, this has nothing to do with the rest of the patch, but it's good.
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::getReplacementTextGeometry): Made const.
(WebCore::RenderEmbeddedObject::isInMissingPluginIndicator): Made const.
Overloaded so it can be called with a point rather than an event.
(WebCore::shouldMissingPluginMessageBeButton): Added. Helps streamline
the logic below.
(WebCore::RenderEmbeddedObject::handleMissingPluginIndicatorEvent):
Changed to use shouldMissingPluginMessageBeButton.
(WebCore::RenderEmbeddedObject::getCursor): Added. Sets the cursor to
a hand when over the missing plug-in message.
* rendering/RenderEmbeddedObject.h: Added getCursor override. Also updated
for other changes above.
* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::getCursor): Added. Contains the logic that used
to be hardcoded in EventHandler::selectCursor about cursors when over
resizable frame borders.
* rendering/RenderFrameSet.h: Added getCursor.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::getCursor): Added. Returns SetCursorBasedOnStyle.
* rendering/RenderObject.h: Added getCursor.
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::getCursor): Added. Contains the logic that used
to be hardcoded in EventHandler::handleMouseMoveEvent to prevent setting
the cursor when the pointer is over a plug-in. This new code is much better,
because it only kicks in when there is actually a plug-in present. The old
was based on the HTML tag!
* rendering/RenderWidget.h: Added getCursor.
2011-10-03 Anders Carlsson <andersca@apple.com>
Work towards making PlatformWheelEvent immutable
https://bugs.webkit.org/show_bug.cgi?id=69306
Reviewed by Sam Weinig.
Currently, PlatformWheelEvent has an m_isAccepted flag that tracks whether
the event has been handled or not. For all other event types, that state is instead
tracked by the return value of the various event handlers.
As a first step, add return values to the various handleWheelEvent functions and
add an assertion in EventHandler::wheelEvent that the return value is the same as
the state of PlatformWheelEvent::isAccepted.
* Configurations/Base.xcconfig:
Don't warn when using C++11 extensions.
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::wheelEvent):
Assert that isAccepted matches the return value.
* platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::handleWheelEvent):
Return isAccepted.
* platform/ScrollAnimator.h:
HandleWheelEvent now returns a boolean.
* platform/ScrollView.cpp:
(WebCore::ScrollView::wheelEvent):
Return whether the event was handled or not.
* platform/ScrollView.h:
ScrollView::wheelEvent now returns a bool.
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::handleWheelEvent):
* platform/ScrollableArea.h:
ScrollableArea::handleWheelEvent now returns a bool.
* platform/chromium/ScrollAnimatorChromiumMac.h:
* platform/chromium/ScrollAnimatorChromiumMac.mm:
(WebCore::ScrollAnimatorChromiumMac::handleWheelEvent):
Add return values, based on either the base class calls or the state of
PlatformWheelEvent::isAccepted().
* platform/mac/ScrollAnimatorMac.h:
* platform/mac/ScrollAnimatorMac.mm:
(WebCore::ScrollAnimatorMac::handleWheelEvent):
Ditto.
2011-10-03 Dan Bernstein <mitz@apple.com>
<rdar://problem/9973489> REGRESSION (r66599): -[DOMNode boundingBox] returns the zero rect for SVG elements
https://bugs.webkit.org/show_bug.cgi?id=69305
Reviewed by Simon Fraser.
Test: svg/custom/boundingBox.html
Rather than asserting and returning the zero rect, take the transform-aware code path for computing SVG
bounding rects.
* rendering/svg/RenderSVGForeignObject.cpp:
(WebCore::RenderSVGForeignObject::mapLocalToContainer): Updated for change to SVGRenderSupport::mapLocalToContainer().
* rendering/svg/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::mapLocalToContainer): Ditto.
* rendering/svg/RenderSVGModelObject.cpp:
(WebCore::RenderSVGModelObject::mapLocalToContainer): Ditto.
(WebCore::RenderSVGModelObject::absoluteRects): Replaced an incorrect assertion with code to approximate the bounding
box.
* rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::mapLocalToContainer): Updated for change to SVGRenderSupport::mapLocalToContainer().
* rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::mapLocalToContainer): Removed the fixed and useTransform boolean parameters.
* rendering/svg/SVGRenderSupport.h:
2011-10-03 Michael Nordman <michaeln@google.com>
A little more WebSQLDatabase thread safety.
https://bugs.webkit.org/show_bug.cgi?id=69277
- switch to using AtomicallyInitializedStatic where appropiate
- avoid using some Strings across threads
Reviewed by David Levin.
Existing tests apply.
* storage/AbstractDatabase.cpp:
(WebCore::guidMutex):
(WebCore::guidToVersionMap):
(WebCore::guidToDatabaseMap):
(WebCore::guidForOriginAndName):
(WebCore::AbstractDatabase::databaseInfoTableName):
(WebCore::AbstractDatabase::AbstractDatabase):
(WebCore::AbstractDatabase::performOpenAndVerify):
(WebCore::AbstractDatabase::getVersionFromDatabase):
(WebCore::AbstractDatabase::setVersionInDatabase):
* storage/AbstractDatabase.h:
* storage/chromium/DatabaseTrackerChromium.cpp:
(WebCore::DatabaseTracker::tracker):
* storage/chromium/QuotaTracker.cpp:
(WebCore::QuotaTracker::instance):
2011-10-03 Ryosuke Niwa <rniwa@webkit.org>
Replace m_firstNodeInserted and m_lastLeafInserted in ReplaceSelectionCommand by positions
https://bugs.webkit.org/show_bug.cgi?id=68874
Reviewed by Enrica Casucci.
Replaced m_firstNodeInserted and m_lastLeafInserted by m_startOfInsertedContent and m_endOfInsertedContent
respectively. Also removed removeNodePreservingChildren and removeNodeAndPruneAncestors in ReplaceSelectionCommand
because they were not virtual in CompositeEditCommand and implicitly overriding the functions was confusing.
Since each of these two functions is used at exactly one place, just update positions and insertedNodes explicitly.
* editing/CompositeEditCommand.cpp:
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds):
(WebCore::ReplaceSelectionCommand::positionAtEndOfInsertedContent):
(WebCore::ReplaceSelectionCommand::positionAtStartOfInsertedContent):
(WebCore::ReplaceSelectionCommand::handleStyleSpans):
(WebCore::ReplaceSelectionCommand::mergeEndIfNeeded): Update m_endOfInsertedContent by endingSelection().visibleEnd()
instead of m_lastLeafInserted with destination.previous() because moveParagraph could have removed leading whitespace in
the text node referenced by destination. This is tested by an existing layout test.
(WebCore::ReplaceSelectionCommand::doApply):
(WebCore::ReplaceSelectionCommand::addSpacesForSmartReplace): Update positions as needed. All changes are tested
by the existing layout tests in editing/pasteboard.
(WebCore::ReplaceSelectionCommand::updateNodesInserted):
* editing/ReplaceSelectionCommand.h:
* editing/htmlediting.cpp:
(WebCore::hasARenderedDescendant): Moved from CompositeEditCommand.cpp.
(WebCore::highestNodeToRemoveInPruning): Ditto.
* editing/htmlediting.h:
2011-10-03 Ryosuke Niwa <rniwa@webkit.org>
REGRESSION(r94274): cloned text input loses value
https://bugs.webkit.org/show_bug.cgi?id=69095
Reviewed by Darin Adler.
The bug was caused by copyNonAttributeProperties not updating inner element text after copying
m_valueIfDirty. Fixed the bug by calling updateInnerTextValue.
Test: fast/forms/clone-input-with-dirty-value.html
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::copyNonAttributeProperties):
2011-10-03 Ryosuke Niwa <rniwa@webkit.org>
Leopard build fix after r96530.
* rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::applyResource):
2011-10-03 Sam Weinig <sam@webkit.org>
Move ContentSecurityPolicy to the ScriptExecutionContext to prepare it for working with XHR and workers
https://bugs.webkit.org/show_bug.cgi?id=69294
Reviewed by Darin Adler.
* dom/Document.cpp:
(WebCore::Document::initSecurityContext):
Initialize the ContentSecurityPolicy by calling down to the ScriptExecutionContext.
* dom/Document.h:
Move the ContentSecurityPolicy member and getter from here to ScriptExecutionContext.h.
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::setContentSecurityPolicy):
* dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::contentSecurityPolicy):
Add ContentSecurityPolicy member and getter/setter.
* page/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::ContentSecurityPolicy):
(WebCore::ContentSecurityPolicy::didReceiveHeader):
(WebCore::ContentSecurityPolicy::reportViolation):
(WebCore::ContentSecurityPolicy::parseReportURI):
(WebCore::ContentSecurityPolicy::createCSPDirective):
* page/ContentSecurityPolicy.h:
(WebCore::ContentSecurityPolicy::create):
Replace Document with ScriptExecutionContext. Add temporary checked casts to document
where necessary.
* workers/WorkerContext.cpp:
(WebCore::WorkerContext::WorkerContext):
Add initialization of the ContentSecurityPolicy.
2011-10-03 Anders Carlsson <andersca@apple.com>
Remove custom scrollbar painting hooks
https://bugs.webkit.org/show_bug.cgi?id=69163
Reviewed by Alexey Proskuryakov.
The custom scrollbar and scroll corner painting hooks aren't used by anyone
so go ahead and remove them. This removes the setter/getter and ChromeClient functions.
* page/Chrome.cpp:
* page/ChromeClient.h:
* page/Settings.cpp:
(WebCore::Settings::Settings):
* page/Settings.h:
* platform/ScrollbarThemeComposite.cpp:
(WebCore::ScrollbarThemeComposite::paint):
(WebCore::ScrollbarThemeComposite::paintScrollCorner):
2011-09-22 Darin Adler <darin@apple.com>
Rename many obviously-correct call sites in WebCore using releaseRef to use it by its new name leakRef
https://bugs.webkit.org/show_bug.cgi?id=68672
Reviewed by Daniel Bates.
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::commonJSGlobalData):
* css/CSSInitialValue.h:
(WebCore::CSSInitialValue::createExplicit):
(WebCore::CSSInitialValue::createImplicit):
* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::init):
* css/CSSStyleSelector.cpp:
(WebCore::parseUASheet):
(WebCore::CSSStyleSelector::styleForElement):
* platform/ScrollView.cpp:
(WebCore::ScrollView::wheelEvent):
* platform/efl/RenderThemeEfl.cpp:
(WebCore::RenderTheme::themeForPage):
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::RenderTheme::themeForPage):
* platform/haiku/RenderThemeHaiku.cpp:
(WebCore::RenderTheme::themeForPage):
* platform/network/cf/DNSCFNet.cpp:
(WebCore::DNSResolveQueue::resolve):
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::releaseConnectionForDownload):
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderTheme::themeForPage):
(WebCore::RenderThemeQt::paintSearchFieldCancelButton):
* platform/text/BidiContext.cpp:
(WebCore::BidiContext::create):
* platform/wx/RenderThemeWx.cpp:
(WebCore::RenderTheme::themeForPage):
* rendering/RenderThemeChromiumLinux.cpp:
(WebCore::RenderTheme::themeForPage):
* rendering/RenderThemeChromiumMac.mm:
(WebCore::RenderTheme::themeForPage):
* rendering/RenderThemeChromiumSkia.cpp:
(WebCore::RenderThemeChromiumSkia::paintSearchFieldCancelButton):
(WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsDecoration):
(WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsButton):
* rendering/RenderThemeChromiumWin.cpp:
(WebCore::RenderTheme::themeForPage):
* rendering/RenderThemeMac.mm:
(WebCore::RenderTheme::themeForPage):
* rendering/RenderThemeSafari.cpp:
(WebCore::RenderTheme::themeForPage):
* rendering/RenderThemeWin.cpp:
(WebCore::RenderTheme::themeForPage):
(WebCore::RenderThemeWin::paintSearchFieldCancelButton):
(WebCore::RenderThemeWin::paintSearchFieldResultsDecoration):
(WebCore::RenderThemeWin::paintSearchFieldResultsButton):
* rendering/RenderThemeWinCE.cpp:
(WebCore::RenderTheme::themeForPage):
* rendering/style/RenderStyle.cpp:
(WebCore::defaultStyle):
Call leakRef instead of releaseRef. I did this only in the cases where
it was obvious to me this was the right way to do it. I'll keep revisiting
sites still calling it releaseRef until they are all gone.
2011-09-27 Ojan Vafai <ojan@chromium.org>
remove dead code in flipForWritingMode
https://bugs.webkit.org/show_bug.cgi?id=68948
Reviewed by Hajime Morita.
ChildToParentFlippingAdjustment is never used, so the third argument
to flipForWritingMode always has the same value.
In addition, renamed to flipForWritingModeForChild to be more clear
that it's operating on the child and renamed flipFloatForWritingMode to match.
No new tests. This is just a code cleanup. No functional changes.
* rendering/InlineBox.cpp:
(WebCore::InlineBox::paint):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintChildren):
(WebCore::RenderBlock::flipFloatForWritingModeForChild):
(WebCore::RenderBlock::paintFloats):
(WebCore::RenderBlock::hitTestFloats):
(WebCore::RenderBlock::hitTestContents):
* rendering/RenderBlock.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::flipForWritingModeForChild):
(WebCore::RenderBox::topLeftLocation):
* rendering/RenderBox.h:
* rendering/RenderTable.cpp:
(WebCore::RenderTable::paintObject):
(WebCore::RenderTable::nodeAtPoint):
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::nodeAtPoint):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::paintCell):
(WebCore::RenderTableSection::nodeAtPoint):
2011-10-03 Jer Noble <jer.noble@apple.com>
Unreviewed, rolling out r96526.
http://trac.webkit.org/changeset/96526
https://bugs.webkit.org/show_bug.cgi?id=68587
WEB_AUDIO has numerous 64->32 bit casting warnings, causing
build breakages where -Wall is enabled.
* Configurations/FeatureDefines.xcconfig:
* WebCore.xcodeproj/project.pbxproj:
2011-10-03 Joseph Pecoraro <joepeck@webkit.org>
Web Inspector: rgb() with percentages shows wrong hex/hsl values
https://bugs.webkit.org/show_bug.cgi?id=69152
Reviewed by Pavel Feldman.
Previously we assumed rgb values were always in byte form,
but they could include percentage values. Ex. rgb(100%,0,0).
This patch fixes this, and in the process includes clamping
for invalid percentages, byte values, and alpha values.
Test: inspector/styles/styles-invalid-color-values.html
* inspector/front-end/Color.js:
(WebInspector.Color.prototype._clamp):
(WebInspector.Color.prototype._individualRGBValueToFloatValue):
(WebInspector.Color.prototype._individualRGBValueToHexValue):
(WebInspector.Color.prototype._rgbToHex):
(WebInspector.Color.prototype._rgbToHSL):
An individual rgb value can be either a decimal/float or a
percentage. Rewrite the conversion functions to handle either
input. Regardless of the type of input, always return a clamped
decimal/float value between 0 and 255.
(WebInspector.Color.prototype._rgbaToHSLA):
(WebInspector.Color.prototype._hslaToRGBA):
(WebInspector.Color.prototype._parse):
Clamp the alpha value between 0 and 1.
2011-10-03 Dirk Schulze <krit@webkit.org>
SVG Pattern tile pixelated on patternTransform
https://bugs.webkit.org/show_bug.cgi?id=69261
Reviewed by Rob Buis.
Scale the SVG pattern tile by the scale level of patternTransform to avoid pixelation.
Test: svg/custom/pattern-scaled-pattern-space.svg
* rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::applyResource):
2011-10-03 Jer Noble <jer.noble@apple.com>
Enable WEB_AUDIO by default in the WebKit/mac port.
https://bugs.webkit.org/show_bug.cgi?id=68587
Reviewed by Simon Fraser.
No new tests; existing webaudio/ layout tests cover this.
* Configurations/FeatureDefines.xcconfig:
* WebCore.xcodeproj/project.pbxproj: Add a build step which copies audio resources to
the WebCore.framework bundle.
2011-10-03 Chris Rogers <crogers@google.com>
BiquadFilterNode .type attribute is not handled correctly
https://bugs.webkit.org/show_bug.cgi?id=69182
Reviewed by Kenneth Russell.
Test: webaudio/biquadfilternode-basic.html
* platform/audio/AudioDSPKernelProcessor.cpp:
(WebCore::AudioDSPKernelProcessor::initialize):
* webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
* webaudio/AudioChannelMerger.cpp:
(WebCore::AudioChannelMerger::AudioChannelMerger):
* webaudio/AudioChannelSplitter.cpp:
(WebCore::AudioChannelSplitter::AudioChannelSplitter):
* webaudio/AudioDestinationNode.cpp:
(WebCore::AudioDestinationNode::AudioDestinationNode):
* webaudio/AudioGainNode.cpp:
(WebCore::AudioGainNode::AudioGainNode):
* webaudio/AudioNode.cpp:
(WebCore::AudioNode::AudioNode):
(WebCore::AudioNode::~AudioNode):
(WebCore::AudioNode::setNodeType):
(WebCore::AudioNode::ref):
(WebCore::AudioNode::finishDeref):
* webaudio/AudioNode.h:
(WebCore::AudioNode::nodeType):
* webaudio/AudioPannerNode.cpp:
(WebCore::AudioPannerNode::AudioPannerNode):
(WebCore::AudioPannerNode::notifyAudioSourcesConnectedToNode):
* webaudio/BiquadFilterNode.cpp:
(WebCore::BiquadFilterNode::BiquadFilterNode):
(WebCore::BiquadFilterNode::setType):
* webaudio/BiquadFilterNode.h:
* webaudio/BiquadFilterNode.idl:
* webaudio/BiquadProcessor.h:
(WebCore::BiquadProcessor::setType):
* webaudio/ConvolverNode.cpp:
(WebCore::ConvolverNode::ConvolverNode):
* webaudio/DelayNode.cpp:
(WebCore::DelayNode::DelayNode):
* webaudio/DynamicsCompressorNode.cpp:
(WebCore::DynamicsCompressorNode::DynamicsCompressorNode):
* webaudio/HighPass2FilterNode.cpp:
(WebCore::HighPass2FilterNode::HighPass2FilterNode):
* webaudio/JavaScriptAudioNode.cpp:
(WebCore::JavaScriptAudioNode::JavaScriptAudioNode):
* webaudio/LowPass2FilterNode.cpp:
(WebCore::LowPass2FilterNode::LowPass2FilterNode):
* webaudio/MediaElementAudioSourceNode.cpp:
(WebCore::MediaElementAudioSourceNode::MediaElementAudioSourceNode):
* webaudio/RealtimeAnalyserNode.cpp:
(WebCore::RealtimeAnalyserNode::RealtimeAnalyserNode):
* webaudio/WaveShaperNode.cpp:
(WebCore::WaveShaperNode::WaveShaperNode):
2011-10-03 Chris Fleizach <cfleizach@apple.com>
AX: support role mapping for HTML5 section elements
https://bugs.webkit.org/show_bug.cgi?id=69150
We need to map these HTML5 elements to appropriate ARIA roles. That mapping is:
article -> Document article
nav -> Landmark navigation
aside -> Landmark complementary
section -> Document region
address -> Landmark content info
header -> Landmark banner (unless it's in an article or section)
footer -> Landmark content info (unless it's in an article or section)
Reviewed by Darin Adler.
Test: platform/mac/accessibility/html-section-elements.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::isDescendantOfElementType):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
* accessibility/AccessibilityRenderObject.h:
2011-10-03 Chris Fleizach <cfleizach@apple.com>
AX: click point for AXHeadings often returns point on empty space (results in wrong context menu)
https://bugs.webkit.org/show_bug.cgi?id=69262
When the contextual menu is opened for a heading, often it will open on empty space because
the heading is wider than the content inside. The click point should thus use the content
inside the heading as the click point.
To accomplish this we need to query whether we have children using children() which is a non-const
method, hence the removal of const from clickPoint().
Reviewed by John Sullivan.
Test: platform/mac/accessibility/heading-clickpoint.html
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::clickPoint):
* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::clickPoint):
* accessibility/AccessibilityRenderObject.h:
2011-10-03 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r96500.
http://trac.webkit.org/changeset/96500
https://bugs.webkit.org/show_bug.cgi?id=69268
Breaks inspector, change landed with no test. (Requested by
pfeldman on #webkit).
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessageImpl.prototype._linkifyLocation):
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.prototype._consoleCleared):
* inspector/front-end/DebuggerPresentationModel.js:
(WebInspector.DebuggerPresentationModel.prototype.linkifyLocation.updateAnchor):
(WebInspector.DebuggerPresentationModel.prototype.linkifyLocation):
* inspector/front-end/EventListenersSidebarPane.js:
(WebInspector.EventListenersSidebarPane.prototype.update.callback):
(WebInspector.EventListenersSidebarPane.prototype.update):
():
* inspector/front-end/Linkifier.js: Removed.
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkLogView):
(WebInspector.NetworkLogView.prototype._reset):
(WebInspector.NetworkDataGridNode.prototype._refreshInitiatorCell):
* inspector/front-end/ProfileDataGridTree.js:
(WebInspector.ProfileDataGridNode.prototype.createCell):
* inspector/front-end/ProfileView.js:
(WebInspector.CPUProfileView):
(WebInspector.CPUProfileView.prototype._resetClicked):
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel):
(WebInspector.TimelinePanel.prototype._clearPanel):
(WebInspector.TimelinePanel.FormattedRecord):
(WebInspector.TimelinePanel.FormattedRecord.prototype._generatePopupContent):
(WebInspector.TimelinePanel.FormattedRecord.prototype._getRecordDetails):
(WebInspector.TimelinePanel.FormattedRecord.prototype._linkifyLocation):
(WebInspector.TimelinePanel.FormattedRecord.prototype._linkifyCallFrame):
(WebInspector.TimelinePanel.PopupContentHelper):
(WebInspector.TimelinePanel.PopupContentHelper.prototype._appendLinkRow):
(WebInspector.TimelinePanel.PopupContentHelper.prototype._appendStackTrace):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
* inspector/front-end/inspector.js:
2011-09-30 Antti Koivisto <antti@apple.com>
Add exact match attribute selectors to the fast path
https://bugs.webkit.org/show_bug.cgi?id=69159
Reviewed by Sam Weinig.
Attribute selectors are increasingly common and we have them in our default style sheet too.
[foo] and [foo="bar"] type selectors can be resolved quickly and easily in the fast path.
- Implement fast path checking for simple attribute selectors.
- Get rid of the ill-defined CSSSelector::hasAttribute(), inline CSSSelector::attribute()
This is ~20% progression in styleForElement() performance loading the full HTML5 spec (~0.8s).
* css/CSSSelector.cpp:
(WebCore::CSSSelector::selectorText):
* css/CSSSelector.h:
(WebCore::CSSSelector::hasTag):
(WebCore::CSSSelector::attribute):
(WebCore::CSSSelector::isAttributeSelector):
* css/CSSSelectorList.cpp:
(WebCore::SelectorNeedsNamespaceResolutionFunctor::operator()):
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::checkSelector):
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::fastCheckRightmostSelector):
(WebCore::SelectorChecker::fastCheckSelector):
(WebCore::isFastCheckableMatch):
(WebCore::isFastCheckableRightmostSelector):
(WebCore::SelectorChecker::isFastCheckableSelector):
(WebCore::SelectorChecker::checkSelector):
(WebCore::htmlAttributeHasCaseInsensitiveValue):
(WebCore::anyAttributeMatches):
(WebCore::SelectorChecker::checkOneSelector):
* css/SelectorChecker.h:
(WebCore::SelectorChecker::attributeNameMatches):
(WebCore::SelectorChecker::checkExactAttribute):
(WebCore::SelectorChecker::fastCheckRightmostAttributeSelector):
2011-10-03 Mike Reed <reed@google.com>
respect other paint flags when setting flags for the font. No need to fiddle with DC(0) in paintSkiaText.
https://bugs.webkit.org/show_bug.cgi?id=69172
Reviewed by Stephen White.
No new tests. This is a cleanup/optimization, existing tests apply
* platform/graphics/skia/SkiaFontWin.cpp:
(WebCore::getDefaultGDITextFlags):
(WebCore::setupPaintForFont):
(WebCore::paintSkiaText):
2011-10-03 Andreas Kling <kling@webkit.org>
FontFallbackList: Glyph pages waste a lot of memory.
https://bugs.webkit.org/show_bug.cgi?id=69260
Reviewed by Dan Bernstein.
Use a minimum hash table size of 16 (down from 64) for FontFallbackList's
glyph pages. This reduces memory consumption by ~900 kB when loading the
full HTML5 spec.
The cost is two additional rehash()es of FontFallbackList::m_pages when
adding the 32nd and 64th pages to the hash map.
* platform/graphics/FontFallbackList.h:
2011-10-03 Konstantin Scheglov <scheglov@google.com>
Right border missing from table with colspan and collapsing border
https://bugs.webkit.org/show_bug.cgi?id=14274
Reviewed by David Hyatt.
Test: fast/table/border-collapsing/bug14274.html
* rendering/RenderTable.cpp:
(WebCore::RenderTable::RenderTable):
* rendering/RenderTable.h:
(WebCore::RenderTable::colToEffCol):
2011-10-03 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Fix make distcheck build
https://bugs.webkit.org/show_bug.cgi?id=69243
Reviewed by Martin Robinson.
* GNUmakefile.am:
* GNUmakefile.list.am:
2011-10-03 Pierre Rossi <pierre.rossi@gmail.com>
[Qt] Build fix: Qt::escape is deprecated in Qt5
https://bugs.webkit.org/show_bug.cgi?id=69162
Use QString::toHtmlEscaped in the Qt5 case.
Reviewed by Andreas Kling.
No new tests needed.
* WebCore.pro: adjust the include path accordingly
in the v8 case.
2011-10-03 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: debuggerPresentatioModel.linkifyLocation leaks updateAnchor closure instances.
https://bugs.webkit.org/show_bug.cgi?id=69146
In many places we use linkifyLocation function to produce a link node which updates automatically when the source file is changed on the fly.
Such changes happen when we use pretty print or another operation that changes the source code somehow.
linkifyLocation associates a new instance of updateAnchor closure with the each link node and add the closure to the SourceMappingUpdated event's list.
As the result the node<->closure pairs wouldn't be collected until reset the UI and DebuggerPresentationModel.
Reviewed by Yury Semikhatsky.
Test: inspector/performance/resources/network-append-30-requests.html
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessage.prototype._linkifyLocation):
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.prototype._consoleCleared):
* inspector/front-end/DebuggerPresentationModel.js:
* inspector/front-end/EventListenersSidebarPane.js:
(WebInspector.EventListenersSidebarPane.prototype.update.callback):
(WebInspector.EventListenersSidebarPane.prototype.update):
():
* inspector/front-end/Linkifier.js: Added.
(WebInspector.Linkifier):
(WebInspector.Linkifier.prototype.linkifyLocation):
(WebInspector.Linkifier.prototype.reset):
(WebInspector.Linkifier.prototype._updateSourceAnchors):
(WebInspector.Linkifier.prototype._updateAnchor):
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkLogView):
(WebInspector.NetworkLogView.prototype._reset):
(WebInspector.NetworkDataGridNode.prototype._refreshInitiatorCell):
* inspector/front-end/ProfileDataGridTree.js:
(WebInspector.ProfileDataGridNode.prototype.createCell):
* inspector/front-end/ProfileView.js:
(WebInspector.CPUProfileView):
(WebInspector.CPUProfileView.prototype._resetClicked):
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel):
(WebInspector.TimelinePanel.prototype._linkifyLocation):
(WebInspector.TimelinePanel.prototype._linkifyCallFrame):
(WebInspector.TimelinePanel.prototype._clearPanel):
(WebInspector.TimelinePanel.FormattedRecord):
(WebInspector.TimelinePanel.FormattedRecord.prototype._generatePopupContent):
(WebInspector.TimelinePanel.FormattedRecord.prototype._getRecordDetails):
(WebInspector.TimelinePanel.PopupContentHelper):
(WebInspector.TimelinePanel.PopupContentHelper.prototype._appendLinkRow):
(WebInspector.TimelinePanel.PopupContentHelper.prototype._appendStackTrace):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
* inspector/front-end/inspector.js:
2011-10-03 Pavel Feldman <pfeldman@google.com>
Web Inspector: more compilation fixes including making ConsoleMessage a part of console model.
https://bugs.webkit.org/show_bug.cgi?id=69253
Reviewed by Yury Semikhatsky.
* inspector/Inspector.json:
* inspector/compile-front-end.sh:
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessage.create):
(WebInspector.ConsoleMessage.createTextMessage):
(WebInspector.ConsoleMessageImpl):
* inspector/front-end/ConsoleModel.js:
(WebInspector.ConsoleModel.prototype._messageRepeatCountUpdated):
(WebInspector.ConsoleMessage.create):
(WebInspector.ConsoleMessage.createTextMessage):
(WebInspector.ConsoleDispatcher.prototype.messageAdded):
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleCommandResult):
(WebInspector.ConsoleCommandResult.prototype.toMessageElement):
* inspector/front-end/CookieParser.js:
(WebInspector.Cookie.prototype.get path):
(WebInspector.Cookie.prototype.get domain):
(WebInspector.Cookie.prototype.expires):
* inspector/front-end/DOMAgent.js:
* inspector/front-end/ExtensionServer.js:
(WebInspector.ExtensionServer.prototype._onAddConsoleMessage):
* inspector/front-end/NetworkManager.js:
(WebInspector.NetworkDispatcher.prototype._updateResourceWithResponse):
(WebInspector.NetworkDispatcher.prototype.requestWillBeSent):
(WebInspector.NetworkDispatcher.prototype.requestServedFromMemoryCache):
(WebInspector.NetworkDispatcher.prototype.webSocketCreated):
(WebInspector.NetworkDispatcher.prototype._createResource):
* inspector/front-end/Resource.js:
(WebInspector.Resource):
(WebInspector.Resource.prototype.setContent):
(WebInspector.Resource.prototype.searchInContent):
* inspector/front-end/ResourceTreeModel.js:
(WebInspector.ResourceTreeModel.prototype._createResource):
* inspector/front-end/externs.js:
(WebInspector.linkifyStringAsFragmentWithCustomLinkifier):
(WebInspector.extensionServer.notifyResourceContentCommitted):
(WebInspector.resourceForURL):
(WebInspector.debuggerPresentationModel.linkifyLocation):
(WebInspector.ObjectPropertiesSection):
(WebInspector.ElementsTreeOutline):
* inspector/front-end/inspector.html:
* inspector/front-end/inspector.js:
(WebInspector.log.logMessage):
(WebInspector.log):
* inspector/generate-protocol-externs:
2011-10-03 Pavel Feldman <pfeldman@google.com>
Web Inspector: move console message formatting from ConsoleView.js into ConsoleMessage.js
https://bugs.webkit.org/show_bug.cgi?id=69244
Reviewed by Yury Semikhatsky.
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessage):
(WebInspector.ConsoleMessage.prototype._formatMessage.else.else.linkifier):
(WebInspector.ConsoleMessage.prototype._formatMessage):
(WebInspector.ConsoleMessage.prototype._format):
(WebInspector.ConsoleMessage.prototype._formatParameter):
(WebInspector.ConsoleMessage.prototype._formatParameterAsValue):
(WebInspector.ConsoleMessage.prototype._formatParameterAsObject):
(WebInspector.ConsoleMessage.prototype._formatParameterAsNode):
(WebInspector.ConsoleMessage.prototype._formatParameterAsArray):
(WebInspector.ConsoleMessage.prototype._formatParameterAsString):
(WebInspector.ConsoleMessage.prototype._printArray):
(WebInspector.ConsoleMessage.prototype._formatAsArrayEntry):
(WebInspector.ConsoleMessage.prototype._formatWithSubstitutionString):
* inspector/front-end/ConsoleView.js:
2011-10-03 Dirk Schulze <krit@webkit.org>
feColorMatrix saturation is not limited to range 0..1 anymore
https://bugs.webkit.org/show_bug.cgi?id=69245
Reviewed by Nikolas Zimmermann.
Opera doesn't limit the range of values for saturation on feColorMatrix from 0 to 1. The limitation
was also removed from the new Filter Effects 1.0 specification. Values outside this range lead to
under- or oversaturation of the filter input image.
https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/publish/Filters.html#feColorMatrixElement
Test: svg/filters/feColorMatrix-saturate.svg
* svg/SVGFEColorMatrixElement.cpp:
(WebCore::SVGFEColorMatrixElement::build):
2011-10-03 Andreas Kling <kling@webkit.org>
Shrink HTMLLIElement.
https://bugs.webkit.org/show_bug.cgi?id=69250
Reviewed by Antti Koivisto.
Don't cache the explicit "value" attribute on the HTMLLIElement,
but fetch it with fastGetAttribute when needed.
This shrinks HTMLLIElement by one CPU word.
* html/HTMLLIElement.cpp:
(WebCore::HTMLLIElement::HTMLLIElement):
(WebCore::HTMLLIElement::parseMappedAttribute):
(WebCore::HTMLLIElement::attach):
* html/HTMLLIElement.h:
2011-10-03 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Add support for backend search in script content.
https://bugs.webkit.org/show_bug.cgi?id=69015
Reviewed by Pavel Feldman.
Tests: http/tests/inspector/search/search-in-concatenated-script.html
http/tests/inspector/search/search-in-script.html
* inspector/Inspector.json:
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::searchInContent):
(WebCore::InspectorDebuggerAgent::getScriptSource):
* inspector/InspectorDebuggerAgent.h:
* inspector/front-end/ContentProviders.js:
(WebInspector.ScriptContentProvider.prototype.requestContent):
(WebInspector.ScriptContentProvider.prototype.searchInContent):
(WebInspector.ConcatenatedScriptsContentProvider.prototype.searchInContent.maybeCallback):
(WebInspector.ConcatenatedScriptsContentProvider.prototype.searchInContent.searchCallback):
(WebInspector.ConcatenatedScriptsContentProvider.prototype.searchInContent):
* inspector/front-end/Script.js:
(WebInspector.Script.prototype.requestSource):
(WebInspector.Script.prototype.searchInContent):
2011-10-03 Pavel Feldman <pfeldman@google.com>
Web Inspector: move console message formatting from ConsoleView.js into ConsoleMessage.js
https://bugs.webkit.org/show_bug.cgi?id=69244
Reviewed by Yury Semikhatsky.
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessage):
(WebInspector.ConsoleMessage.prototype._formatMessage.else.else.linkifier):
(WebInspector.ConsoleMessage.prototype._formatMessage):
(WebInspector.ConsoleMessage.prototype._format):
(WebInspector.ConsoleMessage.prototype._formatParameter):
(WebInspector.ConsoleMessage.prototype._formatParameterAsValue):
(WebInspector.ConsoleMessage.prototype._formatParameterAsObject):
(WebInspector.ConsoleMessage.prototype._formatParameterAsNode):
(WebInspector.ConsoleMessage.prototype._formatParameterAsArray):
(WebInspector.ConsoleMessage.prototype._formatParameterAsString):
(WebInspector.ConsoleMessage.prototype._printArray):
(WebInspector.ConsoleMessage.prototype._formatAsArrayEntry):
(WebInspector.ConsoleMessage.prototype._formatWithSubstitutionString):
* inspector/front-end/ConsoleView.js:
2011-10-03 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: restore partial front-end compilability
https://bugs.webkit.org/show_bug.cgi?id=69221
Removed unused isWhitespace; introduced missing classes in Inspector.json;
generated externs for the protocol types along with the commands.
Reviewed by Yury Semikhatsky.
* inspector/Inspector.json:
* inspector/compile-front-end.sh:
* inspector/front-end/DOMAgent.js:
(WebInspector.DOMAgent):
(WebInspector.DOMAgent.prototype._dispatchWhenDocumentAvailable.onDocumentAvailable):
(WebInspector.DOMAgent.prototype._dispatchWhenDocumentAvailable):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype.updateBreadcrumb):
* inspector/front-end/ElementsTreeOutline.js:
():
* inspector/front-end/Object.js:
* inspector/front-end/Popover.js:
(WebInspector.PopoverHelper.prototype._mouseMove):
* inspector/front-end/View.js:
* inspector/front-end/externs.js:
(Array.prototype.remove):
* inspector/generate-protocol-externs:
2011-10-02 Kent Tamura <tkent@chromium.org>
method/enctype/formMethod/formEnctype properties should be limited to known values.
https://bugs.webkit.org/show_bug.cgi?id=68887
Reviewed by Hajime Morita.
According to the standard and other browser behaviors, the
following IDL properties should be reflected to the corresponding
HTML attributes on setting, but should return normalized values on
getting.
- HTMLFormElement::method
- HTMLFormElement::enctype
- HTMLInputElement::formMethod
- HTMLInputElement::formEnctype
- HTMLButtonElement::formMethod
- HTMLButtonElement::formEnctype
Tests: fast/forms/enctype-attribute.html
fast/forms/method-attribute.html
* html/HTMLButtonElement.idl:
Replace 'Reflect' with 'ConvertNullToNullString' in order to use a
getter function.
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::formEnctype):
Normalizes the value by parseEncodingType().
(WebCore::HTMLFormControlElement::setFormEnctype):
Simply calls setAttribute()
(WebCore::HTMLFormControlElement::formMethod):
Normalizes the value by parseMethodType().
(WebCore::HTMLFormControlElement::setFormMethod):
Simply calls setAttribute()
* html/HTMLFormControlElement.h:
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::parseMappedAttribute):
Follow the Attributes function renaming.
(WebCore::HTMLFormElement::method):
Normalizes the value by parseMethodType().
* html/HTMLFormElement.idl:
Replace 'Reflect' with 'ConvertNullToNullString' in order to use a
getter function.
* html/HTMLInputElement.idl: ditto.
* loader/FormSubmission.cpp:
(WebCore::FormSubmission::Attributes::parseEncodingType):
New function made from a part of old parseEncodingType().
(WebCore::FormSubmission::Attributes::updateEncodingType):
Renamed from parseEncodingType().
(WebCore::FormSubmission::Attributes::parseMethodType):
New function made from a part of old parseMethodType().
(WebCore::FormSubmission::Attributes::updateMethodType):
Renamed from parseMethodType().
(WebCore::FormSubmission::create):
Follow the Attributes function renaming.
* loader/FormSubmission.h:
(WebCore::FormSubmission::Attributes::methodString):
A helper function to provide normalized strings for FormSubmission::Method.
2011-10-02 Sam Weinig <sam@webkit.org>
Strength reduce Mac only Frame::searchForLabelsBeforeElement and Frame::matchLabelsAgainstElement into callers
https://bugs.webkit.org/show_bug.cgi?id=69230
Reviewed by Anders Carlsson.
* WebCore.exp.in:
* page/Frame.h:
* page/mac/FrameMac.mm:
2011-10-02 Zeno Albisser <zeno.albisser@nokia.com>
[Qt][WK2][Mac] WebKit2 does not build on mac after merge of Qt5 refactor branch.
https://bugs.webkit.org/show_bug.cgi?id=69223
Add a missing import (NSWindow.h) in WebVideoFullscreenHUDWindowController.
Add a missing include path and a missing objective source file to WebCore.pro.
Reviewed by Noam Rosenthal.
No new tests, build fix.
* WebCore.pro:
* platform/mac/WebVideoFullscreenHUDWindowController.h:
2011-10-02 Julien Chaffraix <jchaffraix@webkit.org>
Remove an unused member in RenderTable::ColumnStruct
https://bugs.webkit.org/show_bug.cgi?id=69119
Reviewed by Darin Adler.
No test as there should be no change in behavior.
The member was added several years ago and its users were removed or changed. The code would
need a refactoring but this would be tricky to get right. This change just removes the member
to reap the short-term benefits.
* rendering/RenderTable.h:
(WebCore::RenderTable::ColumnStruct::ColumnStruct): Remove anything associated with m_width.
2011-10-02 Dan Bernstein <mitz@apple.com>
REGRESSION (r95502): Assertion failure in CSSPrimitiveValue::computeLengthDouble() when media query specifies unit-less length
https://bugs.webkit.org/show_bug.cgi?id=68760
Reviewed by Antti Koivisto.
Test: fast/media/invalid-lengths.html
Made length-comparison media queries accept only length values. In compatibility mode, numbers
are allowed as well, and they are interpreted as pixels.
* css/MediaQueryEvaluator.cpp:
(WebCore::computeLength): Added this helper function.
(WebCore::device_heightMediaFeatureEval): Changed to use computeLength().
(WebCore::device_widthMediaFeatureEval): Ditto.
(WebCore::heightMediaFeatureEval): Ditto.
(WebCore::widthMediaFeatureEval): Ditto.
2011-10-02 Dirk Schulze <krit@webkit.org>
SVG Mask should take 'color-interpolation' into account to determine the color space of the mask image
https://bugs.webkit.org/show_bug.cgi?id=69076
Reviewed by Simon Fraser.
SVG Masks should take 'color-interpolation' into account to determine the color space of the mask image.
The behavior was changed in SVG 1.1 SE. The color space of the mask image gets defined by the computed value of the
'color-interpolation' property. This will switch the default color space from linearRGB to sRGB for mask images and
is a performance improvement for platforms without native support for linearRGB color space. The
color space transformation can be avoided.
Test: svg/custom/grayscale-gradient-mask-2.svg
* rendering/svg/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::applyResource):
(WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
* rendering/svg/RenderSVGResourceMasker.h:
2011-10-01 Vangelis Kokkevis <vangelis@chromium.org>
[chromium] Fixing draw matrix for composited layers. This
was a regression introduced by:
http://trac.webkit.org/changeset/96454
https://bugs.webkit.org/show_bug.cgi?id=69217
Reviewed by James Robinson.
Tests: compositor test now pass
* platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
(WebCore::CCTiledLayerImpl::draw):
* platform/graphics/chromium/cc/CCTiledLayerImpl.h:
2011-10-01 Geoffrey Garen <ggaren@apple.com>
Removed redundant helper functions for allocating Strong handles
https://bugs.webkit.org/show_bug.cgi?id=69218
Reviewed by Sam Weinig.
* ForwardingHeaders/heap/StrongInlines.h: Added.
* bindings/js/JSCallbackData.h:
* bindings/js/JSDOMWindowShell.cpp:
* bindings/js/ScheduledAction.h:
* bindings/js/ScriptCachedFrameData.cpp:
* bindings/js/ScriptController.cpp:
* bindings/js/ScriptState.cpp:
* bindings/js/ScriptValue.h:
* bindings/js/WorkerScriptController.cpp:
* bridge/runtime_root.cpp:
2011-10-01 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r96421.
http://trac.webkit.org/changeset/96421
https://bugs.webkit.org/show_bug.cgi?id=69206
It broke Qt-WK2 build (Requested by ossy on #webkit).
* WebCore.pro:
2011-09-30 Adrienne Walker <enne@google.com>
[chromium] Track separate scroll deltas on the compositor thread
https://bugs.webkit.org/show_bug.cgi?id=69034
Reviewed by James Robinson.
Test: new tests in CCLayerTreeHostImplTest/CCLayerTreeHostTest
Track scroll deltas and maximum scrolls on LayerChromium/CCLayerImpl.
The CCLayerImpl tree is now able to adjust these scroll deltas
independent of the main thread. To push them back to the main thread,
CCLayerTreeHostImpl collects them all and then bakes them into the
scroll position during a begin frame and commit call. This allows new
deltas to be collected while the scroll position containing the old
delta and the old scroll position will be overwritten during the next
commit.
Only the main frame is supported right now for pushing this scroll
delta back into the authoritative WebKit source to keep both sides in
sync.
Move tilingTransform() to the impl tree because drawTransform() is now
updated using scroll deltas and so the results from calculating draw
transforms needs to be dynamic so that children are updated properly.
Also, exposed DebugScopedSetImplThread public because it's used in a
few places.
* platform/graphics/chromium/LayerChromium.cpp:
(WebCore::LayerChromium::pushPropertiesTo):
* platform/graphics/chromium/LayerChromium.h:
(WebCore::LayerChromium::maxScrollPosition):
(WebCore::LayerChromium::setMaxScrollPosition):
(WebCore::LayerChromium::scrollDelta):
(WebCore::LayerChromium::scrollable):
* platform/graphics/chromium/NonCompositedContentHost.cpp:
(WebCore::NonCompositedContentHost::setViewport):
* platform/graphics/chromium/TiledLayerChromium.cpp:
(WebCore::TiledLayerChromium::pushPropertiesTo):
* platform/graphics/chromium/TiledLayerChromium.h:
* platform/graphics/chromium/cc/CCLayerImpl.cpp:
(WebCore::CCLayerImpl::scrollBy):
* platform/graphics/chromium/cc/CCLayerImpl.h:
(WebCore::CCLayerImpl::maxScrollPosition):
(WebCore::CCLayerImpl::setMaxScrollPosition):
(WebCore::CCLayerImpl::scrollDelta):
(WebCore::CCLayerImpl::setScrollDelta):
(WebCore::CCLayerImpl::scrollable):
* platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
(WebCore::CCLayerTreeHost::applyScrollDeltas):
* platform/graphics/chromium/cc/CCLayerTreeHost.h:
* platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
(WebCore::calculateDrawTransformsAndVisibilityInternal):
* platform/graphics/chromium/cc/CCLayerTreeHostCommon.h:
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
(WebCore::CCLayerTreeHostImpl::scrollRootLayer):
(WebCore::CCLayerTreeHostImpl::processScrollDeltas):
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
* platform/graphics/chromium/cc/CCProxy.h:
* platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
(WebCore::CCSingleThreadProxy::start):
(WebCore::CCSingleThreadProxy::context):
(WebCore::CCSingleThreadProxy::finishAllRendering):
(WebCore::CCSingleThreadProxy::initializeLayerRenderer):
(WebCore::CCSingleThreadProxy::setNeedsCommit):
(WebCore::CCSingleThreadProxy::stop):
(WebCore::CCSingleThreadProxy::recreateContextIfNeeded):
(WebCore::CCSingleThreadProxy::commitIfNeeded):
(WebCore::CCSingleThreadProxy::doComposite):
* platform/graphics/chromium/cc/CCSingleThreadProxy.h:
(WebCore::DebugScopedSetImplThread::DebugScopedSetImplThread):
(WebCore::DebugScopedSetImplThread::~DebugScopedSetImplThread):
* platform/graphics/chromium/cc/CCThreadProxy.cpp:
(WebCore::CCThreadProxy::createBeginFrameAndCommitTaskOnCCThread):
(WebCore::CCThreadProxy::beginFrameAndCommit):
* platform/graphics/chromium/cc/CCThreadProxy.h:
* platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
(WebCore::CCTiledLayerImpl::tilingTransform):
(WebCore::CCTiledLayerImpl::draw):
* platform/graphics/chromium/cc/CCTiledLayerImpl.h:
2011-09-30 David Hyatt <hyatt@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=69202
[CSS3 Regions] Make positioned objects use the first region as the ICB when it
is their containing block. Make sure static distance computations take into
account the current region as well.
Reviewed by Sam Weinig.
Added new tests in fast/regions.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::adjustPositionedBlock):
* rendering/RenderBlock.h:
(WebCore::RenderBlock::startOffsetForContent):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
(WebCore::RenderBox::containingBlockLogicalHeightForPositioned):
(WebCore::computeInlineStaticDistance):
(WebCore::computeLogicalLeftPositionedOffset):
(WebCore::computeLogicalTopPositionedOffset):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::contentLogicalWidthOfFirstRegion):
(WebCore::RenderFlowThread::contentLogicalHeightOfFirstRegion):
(WebCore::RenderFlowThread::contentLogicalLeftOfFirstRegion):
* rendering/RenderFlowThread.h:
2011-09-30 David Barr <davidbarr@chromium.org>
Implement currentColor support for CSS gradients
https://bugs.webkit.org/show_bug.cgi?id=58730
Reviewed by Adam Barth.
Allow currentColor as a CSS3 gradient color-stop.
Test: fast/css/linear-gradient-currentcolor.html
* css/CSSGradientValue.cpp:
(WebCore::CSSGradientValue::isCacheable): Make currentColor uncacheable since the
background image may be invalidated if currentColor is used as a gradient stop and
the value of the 'color' property changes.
* css/CSSParser.cpp:
(WebCore::parseGradientColorOrKeyword): Accept the currentColor keyword.
* rendering/style/StyleGeneratedImage.cpp:
(WebCore::StyleGeneratedImage::image): Initialize document styleSelector so that
currentColor may be computed for a StyleGeneratedImage.
2011-09-30 Gavin Barraclough <barraclough@apple.com>
Remove toStrictThisObject, toThisString, toThisJSString
https://bugs.webkit.org/show_bug.cgi?id=69203
Rubber stamped by Sam Weinig
These are no longer used.
* bindings/js/JSDOMWindowBase.cpp:
* bindings/js/JSDOMWindowBase.h:
2011-09-30 Adam Barth <abarth@webkit.org>
Remove ASSERT introduced in http://trac.webkit.org/changeset/96427
which is triggering all over the place.
Sorting this out is covered in this bug:
https://bugs.webkit.org/show_bug.cgi?id=69200
* rendering/RenderView.cpp:
(WebCore::RenderView::layout):
2011-09-30 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r96426.
http://trac.webkit.org/changeset/96426
https://bugs.webkit.org/show_bug.cgi?id=69199
Broke a zillion image results on Chromium Skia Mac (Requested
by abarth|gardener on #webkit).
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::getFocusRingOutset):
(WebCore::GraphicsContext::drawFocusRing):
2011-09-30 Ilya Sherman <isherman@chromium.org>
Fix assertion failure in XSS Auditor
https://bugs.webkit.org/show_bug.cgi?id=69050
https://code.google.com/p/chromium/issues/detail?id=97346
Reviewed by Daniel Bates.
Test: fast/forms/xss-auditor-doesnt-crash.html
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::init): Don't try to decode the HTML body if it is empty.
2011-09-30 Maciej Stachowiak <mjs@apple.com>
Loading page on potterybankids causes reproducible assertion failure in debug builds
https://bugs.webkit.org/show_bug.cgi?id=69185
<rdar://problem/10218241>
Reviewed by Simon Fraser.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::computeRepaintRects): Remove assert condition that isn't guaranteed
to be true.
2011-09-30 Johnny Ding <jnd@chromium.org>
Support -webkit-tap-highlight-color when enabling touch events support.
https://bugs.webkit.org/show_bug.cgi?id=48544
Reviewed by Kenneth Rohde Christiansen.
Original code from the iOS WebCore code dump, extracted and modified by tijiang@rim and jnd@chromium.
Supports the new CSS property -webkit-tap-highlight-color on platforms which support touch events.
Platform can override WebCore::RenderTheme::platformTapHighlightColor to use its own platform
specific default tap highlight color. Otherwise RenderTheme::defaultTapHighlightColor will be
used as default tap highlight color.
Test: fast/events/touch/tap-highlight-color.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
* css/CSSPropertyNames.in:
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::tapHighlightColor):
* rendering/RenderTheme.h:
(WebCore::RenderTheme::platformTapHighlightColor):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::initialTapHighlightColor):
* rendering/style/RenderStyle.h:
(WebCore::InheritedFlags::tapHighlightColor):
(WebCore::InheritedFlags::setTapHighlightColor):
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator==):
* rendering/style/StyleRareInheritedData.h:
2011-09-30 David Hyatt <hyatt@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=69173
RTL/LTR mixtures still not correct in regions. Simplify the loop once I realized it's only
your directionality that matters and not your containing block's.
Reviewed by Dan Bernstein.
Added new test in fast/regions.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::borderBoxRectInRegion):
2011-09-30 Dan Bernstein <mitz@apple.com>
<rdar://problem/10208291> first-letter in generated before content with display: table is not updated
Reviewed by Sam Weinig.
Test: fast/css-generated-content/first-letter-in-nested-before.html
* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::updateBeforeAfterContent): Preserve the style type of anonymous
containers around the generated content when updating their style. This preserves the first-letter-ness
of the inline wrapping the first letter, which allows updateFirstLetter() to identify it later.
2011-09-30 Cary Clark <caryclark@google.com>
Inset focus ring (Skia on Mac)
https://bugs.webkit.org/show_bug.cgi?id=69166
http://code.google.com/p/chromium/issues/detail?id=97956
This focus ring was drawn too large and was left tracks
in subsequent invalidations. Make it more closely match
the CG version.
Reviewed by Stephen White.
No new tests. This platform is not enabled.
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::getFocusRingOutset):
(WebCore::GraphicsContext::drawFocusRing):
2011-09-30 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r96422.
http://trac.webkit.org/changeset/96422
https://bugs.webkit.org/show_bug.cgi?id=69170
Broke Windows build and kling wanted to roll it out as well
(Requested by rniwa on #webkit).
* rendering/InlineBox.cpp:
(WebCore::InlineBox::prevOnLineExists):
* rendering/InlineBox.h:
(WebCore::InlineBox::InlineBox):
2011-09-30 David Hyatt <hyatt@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=69167
[CSS3 Regions] Fix some bugs in the computation of the logical left and width offsets
for blocks in variable width regions. Specifically, this patch addresses a minor bug
with overflow:hidden/scroll/auto block placement and with RTL directionality.
Reviewed by Sam Weinig.
Added five new tests in fast/regions.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::logicalRightOffsetForContent):
Avoid a double fetch of the border box in a given region by not calling
logicalLeftOffsetForContent. No correctness change here. It's just cleaner.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::borderBoxRectInRegion):
Change the shifted optimization to be cached for "self" rather than for "containing block".
Rework the adjustment loop to handle changes in directionality and to fix correctness
issues with RTL.
(WebCore::RenderBox::containingBlockLogicalWidthForContentInRegion):
Don't double adjust if an object uses line width as the containing block width. In that
case we already computed the line width in the region, so we don't need to apply any
additional fixup.
(WebCore::RenderBox::renderBoxRegionInfo):
* rendering/RenderBoxRegionInfo.h:
(WebCore::RenderBoxRegionInfo::RenderBoxRegionInfo):
(WebCore::RenderBoxRegionInfo::isShifted):
Changed the shifted code to be on self rather than on containing block.
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::layout):
Refactor the layout code for RenderFlowThread to properly set up region rects assuming
right alignment in RTL code. This change forces us to compute our maximum logical width
first before looping through the regions again to set their content rects.
2011-09-30 Andreas Kling <kling@webkit.org>
REGRESSION(r82611) InlineBox has 33 bits of bitset, causing alignment issues and extra memory use.
https://bugs.webkit.org/show_bug.cgi?id=64914
Reviewed by Antti Koivisto.
Remove InlineBox::prevOnLineExists() and its two accompanying bitfields
since nobody is using them anymore. nextOnLineExists() is still used by
GTK+ accessibility code.
Also added a compile-time assertion to guard against future bloating of
the InlineBox class.
* rendering/InlineBox.cpp:
(WebCore::SameSizeAsInlineBox::~SameSizeAsInlineBox):
* rendering/InlineBox.h:
(WebCore::InlineBox::InlineBox):
2011-09-30 Pierre Rossi <pierre.rossi@gmail.com>
[Qt] Build fix: Qt::escape is deprecated in Qt5
https://bugs.webkit.org/show_bug.cgi?id=69162
Use QString::toHtmlEscaped in the Qt5 case.
Reviewed by Andreas Kling.
No new tests needed.
* WebCore.pro: adjust the include path accordingly
in the v8 case.
2011-09-30 Ryosuke Niwa <rniwa@webkit.org>
Remove unused ReplaceSelectionCommand::copyStyleToChildren
https://bugs.webkit.org/show_bug.cgi?id=69153
Reviewed by Antonio Gomes.
Removed the function because it's no called anywhere.
* editing/ReplaceSelectionCommand.cpp:
* editing/ReplaceSelectionCommand.h:
2011-09-30 Aaron Colwell <acolwell@chromium.org>
Fix EnabledAtRuntime support for constants.
https://bugs.webkit.org/show_bug.cgi?id=67311
Reviewed by Adam Barth.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateImplementation):
2011-09-29 David Hyatt <hyatt@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=69043
[CSS3 Regions] Blocks split across regions with variable width need to size
differently in each region.
This patch adds the capability for blocks to have variable width and positioning
when split across regions. It is very rudimentary and so far only operates on basic
normal flow RenderBlocks. Future patches will expand the support to cover other layout
constructs like flexible boxes and tables.
Reviewed by Sam Weinig.
Added new tests in fast/regions and updated existing results.
* WebCore.xcodeproj/project.pbxproj:
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::HitTestResult):
(WebCore::HitTestResult::operator=):
* rendering/HitTestResult.h:
(WebCore::HitTestResult::region):
(WebCore::HitTestResult::setRegion):
The hit test result now holds the active RenderRegion so that hit testing can adjust
block widths and positions when hit testing their border boxes.
* rendering/PaintInfo.h:
(WebCore::PaintInfo::PaintInfo):
The paint info struct now holds the active RenderRegion so that painting can adjust
block widths and positions when painting borders and backgrounds and shadows.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutBlock):
If our width ever changes, we invalidate all of our cached RenderBoxRegionInfo in all
regions that we span.
(WebCore::RenderBlock::clearRenderBoxRegionInfo):
Called to clear out our cached region-specific information in all regions that we span.
(WebCore::RenderBlock::borderBoxRectInRegionAtPosition):
Returns the borderBoxRect for the region at the specified vertical offset. This rect
can be both shifted horizontally and have a different width from our original border rect.
(WebCore::RenderBlock::logicalLeftOffsetForContent):
(WebCore::RenderBlock::logicalRightOffsetForContent):
Modified to call borderBoxRectInRegionAtPosition so that lines will fit inside
the content rect of the border box rect for the specific region.
* rendering/RenderBlock.h:
(WebCore::RenderBlock::logicalRightOffsetForContent):
Modified to call logicalLeftOffsetForContent since it's cleaner.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::borderBoxRectInRegion):
Called to compute the border box rect in a specific region. The result is cached in a HashMap
in the region itself so that subsequent lookups are fast.
(WebCore::RenderBox::nodeAtPoint):
Modified to use the border box rect in the active region when hit testing the backgrounds of boxes.
(WebCore::RenderBox::paintBoxDecorations):
Modified to use the border box rect in the active region when painting the backgrounds of boxes.
(WebCore::RenderBox::containingBlockLogicalWidthForContent):
(WebCore::RenderBox::containingBlockLogicalWidthForContentInRegion):
(WebCore::RenderBox::computeLogicalWidth):
(WebCore::RenderBox::computeLogicalWidthInRegion):
Helpers for computing logical widths and margins in a specific region. The result is then cached
in a HashMap in the region.
(WebCore::RenderBox::renderBoxRegionInfo):
The function for obtaining the region-specific information for a given box.
* rendering/RenderBox.h:
(WebCore::RenderBox::borderBoxRectInRegion):
New function for returning the border box rect in a given region.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
Make sure mask painting honors the active region.
* rendering/RenderBoxRegionInfo.h: Added.
(WebCore::RenderBoxRegionInfo::RenderBoxRegionInfo):
(WebCore::RenderBoxRegionInfo::logicalLeft):
(WebCore::RenderBoxRegionInfo::logicalWidth):
(WebCore::RenderBoxRegionInfo::containingBlockChainIsShifted):
New class held by RenderRegions that caches box-specific info for a given region. This will eventually
expand to include custom styles as well, but for now it is limited to a new logical left and a new
logical width, along with a bit for optimizing accumulated shifting when painting/hit testing to avoid
too much groveling up the containing block chain.
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::RenderFlowThread):
Removed the region fitting optimization, since eventually everyone is going to care, and there's no reason
to limit it with the results now being cached.
(WebCore::RenderFlowThread::layout):
All box-specific region information is always cleared whenever the regions are invalidated.
(WebCore::RenderFlowThread::computeLogicalWidth):
Modified to set up RenderBoxRegionInfo for the flow thread in all regions.
(WebCore::RenderFlowThread::paintIntoRegion):
(WebCore::RenderFlowThread::hitTestRegion):
Modified to take the region instead of the region's rectangle so that painting and hit testing of the flow
thread layer tree can properly receive the active region.
(WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
Helper for removing a box's information from all regions. For now it grovels through every region, so eventually
we may want to have a cache of the start/end regions for a given box somewhere.
* rendering/RenderFlowThread.h:
Removal of the region fitting stuff.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paint):
(WebCore::RenderLayer::paintOverlayScrollbars):
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::paintList):
(WebCore::RenderLayer::paintPaginatedChildLayer):
(WebCore::RenderLayer::paintChildLayerIntoColumns):
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::paintIntoLayer):
Modified to pass the current region down through painting functions so that it is known at paint time.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::RenderObject):
Added a new bit to RenderObjects, inRenderFlowThread(), so that it is quick to determine whether or not an
object needs flow thread special casing.
(WebCore::RenderObject::enclosingRenderFlowThread):
Modified enclosingRenderFlowThread to be able to quickly return 0 if the object is not in a flow thread.
(WebCore::RenderObject::containerForRepaint):
Same.
* rendering/RenderObject.h:
(WebCore::RenderObject::setParent):
setParent now updates inRenderFlowThread() state.
(WebCore::RenderObject::inRenderFlowThread):
(WebCore::RenderObject::setInRenderFlowThread):
Adding the new bit.
* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::removeChildNode):
Make sure when an object is removed from a RenderFlowThread that it deletes its box-specific information
in all regions.
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::~RenderRegion):
(WebCore::RenderRegion::paintReplaced):
(WebCore::RenderRegion::nodeAtPoint):
(WebCore::RenderRegion::renderBoxRegionInfo):
(WebCore::RenderRegion::setRenderBoxRegionInfo):
(WebCore::RenderRegion::removeRenderBoxRegionInfo):
(WebCore::RenderRegion::deleteAllRenderBoxRegionInfo):
(WebCore::RenderRegion::matchesRenderFlowThreadLogicalWidth):
* rendering/RenderRegion.h:
Added the new HashMap for holding box-specific region information. Also added an additional optimization to
check if a specific region matches the overall width of the RenderFlowThread. If it does, we don't need to
cache box-specific information for that region.
* rendering/RenderReplica.cpp:
(WebCore::RenderReplica::paint):
* rendering/RenderScrollbarPart.cpp:
(WebCore::RenderScrollbarPart::paintIntoRect):
* rendering/svg/SVGImageBufferTools.cpp:
(WebCore::SVGImageBufferTools::renderSubtreeToImageBuffer):
Modified the PaintInfo construction to include the region argument. It's not optional so that callers will
have to consider it (since masks illustrated this is necessary).
2011-09-30 Tim Horton <timothy_horton@apple.com>
feBlend uses a table of function pointers which reduces inlineability inside the main loop
https://bugs.webkit.org/show_bug.cgi?id=69154
<rdar://problem/10215221>
Reviewed by Darin Adler.
Don't use a table of function pointers inside the feBlend inner loop, instead
use switch and inline functions, bringing a 20% performance gain across the
board to feBlend.
No new tests, minor performance improvement.
* platform/graphics/filters/FEBlend.cpp:
(WebCore::normal):
(WebCore::multiply):
(WebCore::screen):
(WebCore::darken):
(WebCore::lighten):
(WebCore::FEBlend::apply):
2011-09-30 Mark Hahnenberg <mhahnenberg@apple.com>
Add getCallData to MethodTable in ClassInfo
https://bugs.webkit.org/show_bug.cgi?id=69024
Reviewed by Sam Weinig.
No new tests.
* WebCore.exp.in:
Changed getCallData from private to protected to allow subclasses who
don't override getCallData themselves to reference it in their own
method tables when calling the CREATE_METHOD_TABLE macro.
* bridge/runtime_method.h:
2011-09-30 Ned Holbrook <nholbrook@apple.com>
Complex spaces with synthetic bold are too wide
https://bugs.webkit.org/show_bug.cgi?id=69033
Reviewed by Dan Bernstein.
Test: fast/text/complex-synthetic-bold-space-width.html
* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::ComplexTextController::adjustGlyphsAndAdvances): Subtract synthetic bold offset from spaceWidth.
* platform/graphics/win/UniscribeController.cpp:
(WebCore::UniscribeController::shapeAndPlaceItem): Ditto.
2011-09-30 Pavel Feldman <pfeldman@google.com>
Web Inspector: [chromium] expose inspector protocol version to the embedder.
https://bugs.webkit.org/show_bug.cgi?id=69092
This change also introduces major/minor inspector version components.
Reviewed by Yury Semikhatsky.
* CMakeLists.txt:
* CodeGenerators.pri:
* DerivedSources.make:
* GNUmakefile.am:
* GNUmakefile.list.am:
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* inspector/Inspector-0.1.json: Renamed from Source/WebCore/inspector/Inspector.draft-01.json.
* inspector/Inspector.json:
* inspector/generate-inspector-protocol-version: Renamed from Source/WebCore/inspector/validate-protocol-compatibility.
2011-09-29 Antti Koivisto <antti@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=69106
Universal attribute selectors disable style sharing
Reviewed by Dave Hyatt.
Selectors of type [foo="bar"] ended up marking every element style with the affectedByAttributeSelectors bit
rendering style sharing inoperative. This happens on http://www.whatwg.org/specs/web-apps/current-work/ for example.
Instead we now mark style with affectedByUncommonAttributeSelectors bit only if an attribute selector actually
matches the element. Before sharing, we also check the current element against collected attribute rules.
We can share the style if neither element was affected.
This speeds up style matching and applying ~15% on full HTML5 spec (=~0.7s). Sharing percentage goes from 0% to ~30%.
Increased sharing should also save a substantial amount of memory.
* css/CSSSelector.h:
(WebCore::CSSSelector::isAttributeSelector):
* css/CSSStyleSelector.cpp:
(WebCore::RuleData::containsUncommonAttributeSelector):
(WebCore::collectSpecialRulesInDefaultStyle):
(WebCore::assertNoSiblingRulesInDefaultStyle):
(WebCore::CSSStyleSelector::CSSStyleSelector):
(WebCore::CSSStyleSelector::matchRules):
(WebCore::CSSStyleSelector::matchesRuleSet):
(WebCore::CSSStyleSelector::canShareStyleWithElement):
(WebCore::CSSStyleSelector::locateSharedStyle):
(WebCore::CSSStyleSelector::styleForElement):
(WebCore::selectorListContainsUncommonAttributeSelector):
(WebCore::isCommonAttributeSelectorAttribute):
(WebCore::containsUncommonAttributeSelector):
(WebCore::RuleData::RuleData):
(WebCore::collectFeaturesFromSelector):
(WebCore::collectFeaturesFromList):
* css/CSSStyleSelector.h:
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOneSelector):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::RenderStyle):
* rendering/style/RenderStyle.h:
(WebCore::InheritedFlags::affectedByUncommonAttributeSelectors):
(WebCore::InheritedFlags::setAffectedByUncommonAttributeSelectors):
2011-09-30 James Robinson <jamesr@chromium.org>
[chromium] Add WebKit API for sending input events to the compositor thread
https://bugs.webkit.org/show_bug.cgi?id=69117
Reviewed by Darin Fisher.
Convert to using an externally-provided thread instead of one managed by CCThreadProxy internally. Most changes
in these files are mechanically changing references from ccThread to s_ccThread to reflect the class-static
nature of this pointer, the rest are removing the old thread creation codepath.
These changes are covered by the CC* unit tests and by the gpu layout tests when run with the
use_threaded_compositing=1 gyp define.
* platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
* platform/graphics/chromium/cc/CCLayerTreeHost.h:
* platform/graphics/chromium/cc/CCThreadProxy.cpp:
(WebCore::CCThreadProxy::setThread):
(WebCore::CCThreadProxy::CCThreadProxy):
(WebCore::CCThreadProxy::~CCThreadProxy):
(WebCore::CCThreadProxy::compositeAndReadback):
(WebCore::CCThreadProxy::finishAllRendering):
(WebCore::CCThreadProxy::initializeLayerRenderer):
(WebCore::CCThreadProxy::setNeedsCommit):
(WebCore::CCThreadProxy::setNeedsCommitAndRedraw):
(WebCore::CCThreadProxy::setNeedsRedraw):
(WebCore::CCThreadProxy::start):
(WebCore::CCThreadProxy::stop):
(WebCore::CCThreadProxy::beginFrameAndCommit):
(WebCore::CCThreadProxy::scheduleDrawTaskOnCCThread):
* platform/graphics/chromium/cc/CCThreadProxy.h:
2011-09-29 Fady Samuel <fsamuel@chromium.org>
Fixed Hit testing on Framesets when Frameset is transformed
https://bugs.webkit.org/show_bug.cgi?id=67740
Reviewed by Simon Fraser.
Tests: fast/frames/frame-set-rotation-hit.html
fast/frames/frame-set-scaling-hit.html
* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::userResize):
2011-09-29 Dirk Pranke <dpranke@chromium.org>
fix gyp warnings in chromium for renamed files
https://bugs.webkit.org/show_bug.cgi?id=69116
Reviewed by Adam Barth.
* WebCore.gypi:
2011-09-29 Martin Robinson <mrobinson@igalia.com>
[Freetype] Some text in Planet GNOME renders in the wrong place
https://bugs.webkit.org/show_bug.cgi?id=69099
Reviewed by Dirk Schulze.
Test: platform/gtk/fonts/synthetic-oblique-positioning.html
Fold the oblique transform into the font matrix itself rather than transforming
the CTM of the context at render time. Not only does this fix the issue, it
prevents unnecessary work on every paint.
* platform/graphics/cairo/FontCairo.cpp:
No longer set the synthetic oblique transformation matrix on the context
when rendering the text. Instead it is now folded into the TM of the font
itself.
* platform/graphics/freetype/FontPlatformDataFreeType.cpp:
(WebCore::FontPlatformData::initializeWithFontFace): Fold the oblique transform into the scaled font.
* platform/graphics/win/FontPlatformDataCairoWin.cpp:
(WebCore::FontPlatformData::FontPlatformData): Ditto.
2011-09-29 Dan Bernstein <mitz@apple.com>
Follow-up fix for <rdar://problem/10191243> Glyph variants (line final swashes) appear where they should not
Reviewed by Simon Fraser.
* platform/graphics/cocoa/FontPlatformDataCocoa.mm:
(WebCore::FontPlatformData::ctFont): Check for Hoefler Text Black Italic as well.
2011-09-29 Cary Clark <caryclark@google.com>
Enable LCD text in Skia on Mac
https://bugs.webkit.org/show_bug.cgi?id=68734
Reviewed by Stephen White.
No new tests. Existing layout tests are generated
with LCD text disabled for pixel comparisons.
Duplicate the logic in FontMac.mm to pass settings
for antialiasing and smoothing. Also disable smoothing
for DumpRenderTree.
* platform/graphics/skia/FontSkia.cpp:
(WebCore::setupPaint):
(WebCore::Font::drawGlyphs):
2011-09-29 Varun Jain <varunjain@google.com>
Implement flick gesture in Chromium Gesture Recognizer
https://bugs.webkit.org/show_bug.cgi?id=67930
Reviewed by Dimitri Glazkov.
Test: Source/WebKit/chromium/tests/InnerGestureRecognizerTest.cpp
* platform/chromium/GestureRecognizerChromium.cpp:
(WebCore::GestureRecognizerChromium::isOverMinFlickSpeed):
(WebCore::GestureRecognizerChromium::appendScrollGestureEnd):
(WebCore::GestureRecognizerChromium::updateValues):
(WebCore::GestureRecognizerChromium::scrollEnd):
* platform/chromium/GestureRecognizerChromium.h:
2011-09-29 Noel Gordon <noel.gordon@gmail.com>
[chromium] canvas.toDataURL("image/jpeg"): use libjpeg-turbo data swizzle
https://bugs.webkit.org/show_bug.cgi?id=67402
Reviewed by Kenneth Russell.
libjpeg-turbo can read directly from the input data for the premultiplied BRGX
(SkBitmap) encoding case.
No change in behavior, covered by existing canvas 2d/3d tests
canvas/philip/tests/toDataURL.jpeg.alpha.html
fast/canvas/webgl/premultiplyalpha-test.html
* platform/image-encoders/skia/JPEGImageEncoder.cpp:
(WebCore::encodePixels): If JCS_EXTENSIONS is defined (libjpeg-turbo), swizzle
the input BRGX pixels directly within libjpeg-turbo.
2011-09-29 Adam Barth <abarth@webkit.org>
Fixenate the build.
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::namedItemAdded):
2011-09-29 Ryosuke Niwa <rniwa@webkit.org>
Remove direct reads to m_firstNodeInserted and m_lastLeafInserted in ReplaceSelectionCommand
https://bugs.webkit.org/show_bug.cgi?id=69023
Reviewed by Enrica Casucci.
Converted to removeUnrenderedTextNodesAtEnds to use InsertedNodes instead of m_firstNodeInserted
and m_lastLeafInserted. Extracted the logic to update nodes as InsertedNodes::willRemoveNode
(old one was renamed to InsertedNodes::willRemoveNodePreservingChildren).
Also extracted shouldPerformSmartReplace and addSpacesForSmartReplace out of doApply,
and rewrote the logic to obtain endNode and startNode using startOfInsertedContent and
endOfInsertedContent instead of m_firstNodeInserted and m_lastLeafInserted.
Finally, replaced the nullity checks of m_firstNodeInserted and m_lastLeafInserted in
completeHTMLReplacement by nullity checks of start and end positions.
* dom/Node.cpp:
(WebCore::Node::traversePreviousSibling): Added.
* dom/Node.h:
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::InsertedNodes::willRemoveNodePreservingChildren): Renamed from
willRemoveNode.
(WebCore::ReplaceSelectionCommand::InsertedNodes::willRemoveNode): Extracted from
removeUnrenderedTextNodesAtEnds.
(WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
(WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds):
(WebCore::ReplaceSelectionCommand::positionAtEndOfInsertedContent): Made const.
(WebCore::ReplaceSelectionCommand::positionAtStartOfInsertedContent): Made const.
(WebCore::ReplaceSelectionCommand::handleStyleSpans): Takes firstNodeInserted instead of directly
accessing m_firstNodeInserted.
(WebCore::ReplaceSelectionCommand::doApply):
(WebCore::ReplaceSelectionCommand::shouldPerformSmartReplace):
(WebCore::ReplaceSelectionCommand::addSpacesForSmartReplace):
(WebCore::ReplaceSelectionCommand::completeHTMLReplacement):
* editing/ReplaceSelectionCommand.h:
2011-09-29 Andreas Kling <kling@webkit.org>
Shrink HTMLAnchorElement on 32-bit.
https://bugs.webkit.org/show_bug.cgi?id=69094
Reviewed by Antti Koivisto.
* html/HTMLAnchorElement.h: Pack members into a bitfield.
2011-09-29 Dan Bernstein <mitz@apple.com>
<rdar://problem/10191243> Glyph variants (line final swashes) appear where they should not
Reviewed by Simon Fraser.
Test: fast/text/line-initial-and-final-swashes.html
Hoefler Text Italic enables line-initial and -final swashes by default, so disable them. This
change targets only this known-bad font rather than all fonts, because at least one font (Khmer MN)
incorrectly claims to have the line-initial feature enabled, but disabling it actually does
something different and bad (breaking some combining marks).
* platform/graphics/cocoa/FontPlatformDataCocoa.mm:
(WebCore::createFeatureSettingDictionary): Added this helper function.
(WebCore::cascadeToLastResortFontDescriptor): Deployed WTF_ARRAY_LENGTH().
(WebCore::cascadeToLastResortAndDisableSwashesFontDescriptor): Added. Returns a font descriptor
that, in addition to having a cascade list consisting of the last resort font, also has feature
settings to disable line-initial and line-final swashes.
(WebCore::FontPlatformData::ctFont): For Hoefler Text Italic, use cascadeToLastResortAndDisableSwashesFontDescriptor().
2011-09-29 Mark Hahnenberg <mhahnenberg@apple.com>
Unreviewed: resetting baseline for code generator bindings
Unreviewed build fix
No new tests.
* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/scripts/test/JS/JSTestObj.h:
2011-09-29 Nate Chapin <japhet@chromium.org>
[V8, chromium] More logging to determine cause of a null
v8::Context in V8DOMWindowShell::namedItemAdded().
https://bugs.webkit.org/show_bug.cgi?id=68099
Reviewed by Adam Barth.
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::namedItemAdded):
2011-09-29 Alexey Proskuryakov <ap@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=69040
ScrollbarThemeComposite requires a ScrollView to draw scroll corner
Reviewed by Simon Fraser.
No new tests. This will be needed later.
* platform/ScrollbarThemeComposite.cpp:
(WebCore::pageForScrollView):
(WebCore::ScrollbarThemeComposite::paintScrollCorner):
Use pageForScrollView() function which already existed in this file, used in another similar
location.
* platform/chromium/FramelessScrollView.cpp:
* platform/chromium/FramelessScrollView.h:
* platform/gtk/ScrollbarThemeGtk.cpp:
* platform/gtk/ScrollbarThemeGtk.h:
* platform/wx/ScrollbarThemeWx.cpp:
* platform/wx/ScrollbarThemeWx.h:
All these overrides are no longer needed, ScrollbarThemeComposite will do the right thing.
* platform/qt/ScrollbarThemeQt.cpp: (WebCore::ScrollbarThemeQt::paintScrollCorner):
Removed a special case for updatingControlTints phase. The same case is present in cross-platform
code now, and Qt doesn't have any custom subclasses of ScrollableArea or ScrollView to need
special handling.
This was added in r37377 without a bug or much ChangeLog explanation.
2011-09-29 Mark Hahnenberg <mhahnenberg@apple.com>
De-virtualize JSCell::visitChildrenVirtual and remove all other visitChildrenVirtual methods
https://bugs.webkit.org/show_bug.cgi?id=68839
Reviewed by Geoffrey Garen.
No new tests.
Removed the remaining visitChildrenVirtual methods. This patch completes the process of
de-virtualizing visitChildren.
* WebCore.exp.in:
* bindings/js/JSAttrCustom.cpp:
* bindings/js/JSAudioContextCustom.cpp:
* bindings/js/JSCSSRuleCustom.cpp:
* bindings/js/JSCSSStyleDeclarationCustom.cpp:
* bindings/js/JSCanvasRenderingContextCustom.cpp:
* bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::~JSDOMGlobalObject):
(WebCore::JSDOMGlobalObject::finishCreation):
* bindings/js/JSDOMGlobalObject.h:
* bindings/js/JSDOMWindowCustom.cpp:
* bindings/js/JSDOMWindowShell.cpp:
* bindings/js/JSDOMWindowShell.h:
* bindings/js/JSJavaScriptAudioNodeCustom.cpp:
* bindings/js/JSMessageChannelCustom.cpp:
* bindings/js/JSMessagePortCustom.cpp:
* bindings/js/JSNamedNodeMapCustom.cpp:
* bindings/js/JSNodeCustom.cpp:
* bindings/js/JSNodeFilterCustom.cpp:
* bindings/js/JSNodeIteratorCustom.cpp:
* bindings/js/JSSVGElementInstanceCustom.cpp:
* bindings/js/JSSharedWorkerCustom.cpp:
* bindings/js/JSStyleSheetCustom.cpp:
* bindings/js/JSTreeWalkerCustom.cpp:
* bindings/js/JSWebGLRenderingContextCustom.cpp:
* bindings/js/JSWorkerContextCustom.cpp:
* bindings/js/JSXMLHttpRequestCustom.cpp:
* bindings/js/JSXPathResultCustom.cpp:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
* bridge/qt/qt_instance.cpp:
* bridge/qt/qt_runtime.cpp:
* bridge/qt/qt_runtime.h:
2011-09-23 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
[Qt] Fix build against Qt5 after refactor of widgets out of QtGUi
QWidget and friends now live in the QtWidgets library. We update
includes in implementation files and private headers to us the
non-module-prefixed path, and leave the lookup for the include
path. For public headers we have to ifdef the includes as the
user might now have the modules we need in his QT config.
Finally, QSGCanvas is no longer a QWidget but a QWindow, so we
have to update our code and use windowHandle() for setting the
parent relationships.
https://bugs.webkit.org/show_bug.cgi?id=68687
Reviewed by Andreas Kling.
* WebCore.pri:
* platform/graphics/qt/GraphicsLayerQt.cpp:
2011-09-29 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r96340.
http://trac.webkit.org/changeset/96340
https://bugs.webkit.org/show_bug.cgi?id=69098
Caused 10 tests to crash in Debug (Requested by
abarth|gardener on #webkit).
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::AXObjectCache):
(WebCore::AXObjectCache::~AXObjectCache):
(WebCore::AXObjectCache::remove):
(WebCore::AXObjectCache::childrenChanged):
* accessibility/AXObjectCache.h:
* accessibility/AccessibilityMenuList.cpp:
(WebCore::AccessibilityMenuList::childrenChanged):
* accessibility/AccessibilityMenuList.h:
* accessibility/AccessibilityMenuListPopup.cpp:
(WebCore::AccessibilityMenuListPopup::childrenChanged):
* accessibility/AccessibilityMenuListPopup.h:
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::childrenChanged):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::startOfContinuations):
(WebCore::AccessibilityRenderObject::updateAccessibilityRole):
(WebCore::AccessibilityRenderObject::childrenChanged):
* accessibility/AccessibilityRenderObject.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::willBeDestroyed):
2011-09-29 Andreas Kling <kling@webkit.org>
Shrink FontFallbackList.
https://bugs.webkit.org/show_bug.cgi?id=69093
Reviewed by Antti Koivisto.
Reduce the size of FontFallbackList by one CPU word, decreasing memory
consumption by 300 kB (on 64-bit) when loading the full HTML5 spec.
* platform/graphics/FontCache.h:
* platform/graphics/FontCache.cpp:
(WebCore::FontCache::generation):
Store the FontCache generation as an ushort rather than uint.
* platform/graphics/FontFallbackList.cpp:
(WebCore::FontFallbackList::FontFallbackList):
* platform/graphics/FontFallbackList.h:
Pack enum and bool members in a bitfield.
2011-09-29 Adam Barth <abarth@webkit.org>
We should ignore the return value of GetRealNamedProperty
https://bugs.webkit.org/show_bug.cgi?id=68840
Reviewed by Nate Chapin.
Instead of skipping the lookup process by using the result of real
named property, we should just indiciate that it wasn't handled by the
interceptor.
Test: http/tests/security/window-named-valueOf.html
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::namedPropertyGetter):
2011-09-29 Chris Fleizach <cfleizach@apple.com>
ARIA live regions don't trigger notifications for elements that aren't in the AX tree
https://bugs.webkit.org/show_bug.cgi?id=62289
If an ARIA Live region udpates an element that is not in the AX object cache, then the Live region
notification is not sent. To fix this, the childrenChanged() method needs to actually create
the appropriate objects, but since that method gets called during a render tree update, we've learned
that it's generally not safe to create objects.
Instead a one shot timer can be fired that will update and create the necessary objects so that the
correct notification can be sent.
Reviewed by Darin Adler.
Test: platform/mac/accessibility/aria-liveregion-without-element-access.html
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::AXObjectCache):
(WebCore::AXObjectCache::~AXObjectCache):
(WebCore::AXObjectCache::remove):
(WebCore::AXObjectCache::childrenUpdateTimerFired):
(WebCore::AXObjectCache::childrenChanged):
* accessibility/AXObjectCache.h:
* accessibility/AccessibilityMenuList.cpp:
(WebCore::AccessibilityMenuList::childrenChanged):
* accessibility/AccessibilityMenuList.h:
* accessibility/AccessibilityMenuListPopup.cpp:
(WebCore::AccessibilityMenuListPopup::childrenChanged):
* accessibility/AccessibilityMenuListPopup.h:
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::childrenChanged):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::startOfContinuations):
(WebCore::AccessibilityRenderObject::updateAccessibilityRole):
(WebCore::AccessibilityRenderObject::childrenChanged):
* accessibility/AccessibilityRenderObject.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::willBeDestroyed):
2011-09-29 Martin Robinson <mrobinson@igalia.com>
[GTK] Dragging a selection does not produce a drag image
https://bugs.webkit.org/show_bug.cgi?id=69064
Reviewed by Andreas Kling.
Moved Chromium's generic implementation of Frame::nodeImage and
Frame::dragImageForSeletion to Frame.cpp and simply excluded via
#ifdefs platforms that do not have their own implementation. Removed
all empty implementations of these functions and Qt's which was
functionally identical.
No new tests. Drag-and-drop drag image functionality changes
are incredibly difficult to test in a non-manual way.
* CMakeListsEfl.txt: Delist FrameEfl.cpp.
* GNUmakefile.list.am: Delist FrameGtk.cpp.
* WebCore.gypi: Delist removed Frame*.cpp.
* WebCore.pro: Delist FrameQt.cpp.
* page/Frame.cpp: Moved FrameChromium implementation here.
(WebCore::ScopedFramePaintingState::ScopedFramePaintingState):
(WebCore::ScopedFramePaintingState::~ScopedFramePaintingState):
(WebCore::Frame::nodeImage):
(WebCore::Frame::dragImageForSelection):
* page/chromium/FrameChromium.cpp: Removed.
* page/efl/FrameEfl.cpp: Removed.
* page/gtk/FrameGtk.cpp: Removed.
* page/qt/FrameQt.cpp: Removed.
* page/wx/FrameWx.cpp: Removed.
* platform/gtk/ClipboardGtk.cpp:
(WebCore::ClipboardGtk::createDragImage): Call nodeImage to get
the drag image for a node.
2011-09-29 Noel Gordon <noel.gordon@gmail.com>
[chromium skia] PNGImageEncoder: hoist constants out of the encoding loop
https://bugs.webkit.org/show_bug.cgi?id=68988
Reviewed by Kenneth Russell.
No new tests. Covered by existing canvas 2d and 3d tests.
canvas/philip/tests/toDataURL.png.*.html
fast/canvas/toDataURL-alpha.html
fast/canvas/webgl/premultiplyalpha-test.html
* platform/image-encoders/skia/PNGImageEncoder.cpp:
(WebCore::encodePixels): Move constant out of the encoding loop.
(WebCore::PNGImageEncoder::encode): Consistency & style: call encodePixels()
just like we do in the JPEG encoder.
2011-09-29 Iain Merrick <husky@google.com>
Add unit test for CCLayerSorter
https://bugs.webkit.org/show_bug.cgi?id=68622
Minor refactoring for testability:
- Made pointInTriangle public.
- Added LayerShape to decouple LayerIntersector and GraphNode.
- Added a public wrapper function for LayerIntersector.
Reviewed by James Robinson.
* platform/graphics/chromium/cc/CCLayerSorter.cpp:
(WebCore::CCLayerSorter::pointInTriangle):
(WebCore::CCLayerSorter::calculateZDiff):
(WebCore::CCLayerSorter::LayerIntersector::LayerIntersector):
(WebCore::CCLayerSorter::LayerIntersector::go):
(WebCore::CCLayerSorter::LayerIntersector::checkZDiff):
(WebCore::CCLayerSorter::LayerIntersector::layerZFromProjectedPoint):
(WebCore::CCLayerSorter::checkOverlap):
(WebCore::CCLayerSorter::LayerShape::LayerShape):
(WebCore::CCLayerSorter::createGraphNodes):
* platform/graphics/chromium/cc/CCLayerSorter.h:
(WebCore::CCLayerSorter::LayerShape::LayerShape):
(WebCore::CCLayerSorter::GraphNode::GraphNode):
2011-09-29 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: UI performance test for network panel is incorrect. The time is including a timeout between scheduled refresh and actual refresh.
https://bugs.webkit.org/show_bug.cgi?id=69087
The fix has the changes for the test and minor perf framework improvements.
Reviewed by Yury Semikhatsky.
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkLogView.prototype._defaultRefreshDelay.500._scheduleRefresh):
2011-09-29 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Make search-in-resource test simpler.
https://bugs.webkit.org/show_bug.cgi?id=69025
Changed search-in-resource test.
Removed error parameter from content provider's searchInContent callback.
Reviewed by Pavel Feldman.
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::searchInResource):
(WebCore::InspectorPageAgent::searchInResources):
* inspector/front-end/Resource.js:
(WebInspector.Resource.prototype.searchInContent):
2011-09-29 Hans Wennborg <hans@chromium.org>
IndexedDB: Use LevelDB also for in-memory databases
https://bugs.webkit.org/show_bug.cgi?id=68903
Reviewed by Steve Block.
Add LevelDBDatabase::openInMemory() which uses leveldb::NewMemEnv()
to create in-memory LevelDB databases.
Use this in IDBLeveLDBBackingStore::open() when the caller passes in
an empty file path.
This happens in Chromium's incognito mode, and when running layout
tests.
Fix IDBSQLiteBackingStore::backingStoreExists() so it doesn't create
files when passed in an empty file path, but uses the in-memory mode
instead.
Existing layout tests will all be run in-memory.
* platform/leveldb/LevelDBDatabase.cpp:
(WebCore::LevelDBDatabase::~LevelDBDatabase):
(WebCore::openDB):
(WebCore::LevelDBDatabase::open):
(WebCore::LevelDBDatabase::openInMemory):
* platform/leveldb/LevelDBDatabase.h:
* storage/IDBLevelDBBackingStore.cpp:
(WebCore::IDBLevelDBBackingStore::open):
* storage/IDBSQLiteBackingStore.cpp:
(WebCore::IDBSQLiteBackingStore::backingStoreExists):
2011-09-29 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: speed-up Network panel. Change _staleResources type from array to object.
https://bugs.webkit.org/show_bug.cgi?id=69081
There is a test with 30 requests.
For the each stage of loading a resource we have an entry in _staleResources array. There are at least 4 stages per request.
NetworkLogView._refresh function is creating/updating the resource row for the each such entry.
This array can be replaced with a hash map just because the resource associated with the entry is the same for all the entries with the same request id.
Reviewed by Pavel Feldman.
Test: inspector/performance/resources/network-append-30-requests.html
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkLogView):
(WebInspector.NetworkLogView.prototype._invalidateAllItems):
(WebInspector.NetworkLogView.prototype.refresh):
(WebInspector.NetworkLogView.prototype._reset):
(WebInspector.NetworkLogView.prototype._refreshResource):
2011-09-28 Pavel Feldman <pfeldman@google.com>
Web Inspector: make inspector protocol validation a part of the build process.
https://bugs.webkit.org/show_bug.cgi?id=68999
Since we'd like to commit to inspector protocol backwards compatibility, violating it
should be a build failure.
Reviewed by Yury Semikhatsky.
* CMakeLists.txt:
* CodeGenerators.pri:
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.gyp/WebCore.gyp:
* inspector/Inspector.draft-01.json:
* inspector/Inspector.json:
* inspector/generate-inspector-idl:
* inspector/generate-protocol-externs:
* inspector/validate-protocol-compatibility:
2011-09-27 Pavel Feldman <pfeldman@google.com>
Web Inspector: Scripts panel without folders causes errors when creating content scripts section.
https://bugs.webkit.org/show_bug.cgi?id=68827
Reviewed by Yury Semikhatsky.
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect.insertOrdered.optionCompare):
(WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect.insertOrdered):
(WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect):
2011-09-28 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: network log view refresh optimizations
https://bugs.webkit.org/show_bug.cgi?id=69010
Reviewed by Pavel Feldman.
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkLogView.prototype.refresh):
2011-09-29 Pavel Podivilov <podivilov@chromium.org>
Web Inspector: split SourceFile.js into RawSourceCode.js and UISourceCodeContentProviders.js.
https://bugs.webkit.org/show_bug.cgi?id=69068
Reviewed by Yury Semikhatsky.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/front-end/RawSourceCode.js: Renamed from Source/WebCore/inspector/front-end/SourceFile.js.
(WebInspector.RawSourceCode): Moved from SourceFile.js.
(WebInspector.UILocation): Moved from SourceFile.js.
* inspector/front-end/UISourceCodeContentProviders.js: Added. Moved ContentProvider implementations from SourceFile.js
(WebInspector.ScriptContentProvider):
(WebInspector.ScriptContentProvider.prototype.requestContent):
(WebInspector.ConcatenatedScriptsContentProvider):
(WebInspector.ConcatenatedScriptsContentProvider.prototype.requestContent):
(WebInspector.ConcatenatedScriptsContentProvider.prototype._concatenateScriptsContent.appendChunk):
(WebInspector.ConcatenatedScriptsContentProvider.prototype._concatenateScriptsContent):
(WebInspector.ResourceContentProvider):
(WebInspector.ResourceContentProvider.prototype.requestContent):
(WebInspector.StaticContentProvider):
(WebInspector.StaticContentProvider.prototype.requestContent):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
2011-09-29 Philippe Normand <pnormand@igalia.com>
[GStreamer] 2 flaky media tests
https://bugs.webkit.org/show_bug.cgi?id=67407
Reviewed by Martin Robinson.
Workaround for GStreamer bug#639941. In GStreamer
0.10.35 basesink reports wrong duration in case of EOS and
negative playback rate. This workaround fixes two media tests,
media/video-timeupdate-reverse-play.html and
media/video-reverse-play-duration.html.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::prepareToPlay):
(WebCore::MediaPlayerPrivateGStreamer::currentTime):
(WebCore::MediaPlayerPrivateGStreamer::didEnd):
2011-09-29 Philippe Normand <pnormand@igalia.com>
[GStreamer] fullscreen video pause/play fails
https://bugs.webkit.org/show_bug.cgi?id=66936
Reviewed by Martin Robinson.
Don't use the identity element to avoid painting of the in-window
video. Instead simply make the sink aware of the fullscreen state
and ignore buffers if fullscreen and autovideosink are
active. Also fixed two deadlocks happening when a paused pipeline
is switched to fullscreen and when fullscreen is disabled for a
paused pipeline.
* platform/graphics/gstreamer/GStreamerGWorld.cpp:
(WebCore::GStreamerGWorld::enterFullscreen):
(WebCore::GStreamerGWorld::exitFullscreen):
* platform/graphics/gstreamer/GStreamerGWorld.h:
(WebCore::GStreamerGWorld::isFullscreen):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
* platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
(webkit_video_sink_render):
(webkit_video_sink_new):
* platform/graphics/gstreamer/VideoSinkGStreamer.h:
2011-09-29 Tim Horton <timothy_horton@apple.com>
REGRESSION(87010): elements in ECMA-cloud neither filled nor blurred
https://bugs.webkit.org/show_bug.cgi?id=68679
<rdar://problem/10204649>
Reviewed by Nikolas Zimmermann.
Strip prefixes from SVG attributes before testing if they're supported.
Namespaced attributes will be matched using their namespace instead of
the (user-choosable) prefix.
Test: svg/custom/xlink-custom-namespace.svg
* svg/SVGAElement.cpp:
(WebCore::SVGAElement::isSupportedAttribute):
* svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::isSupportedAttribute):
* svg/SVGAnimateTransformElement.cpp:
(WebCore::SVGAnimateTransformElement::isSupportedAttribute):
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::isSupportedAttribute):
* svg/SVGCircleElement.cpp:
(WebCore::SVGCircleElement::isSupportedAttribute):
* svg/SVGClipPathElement.cpp:
(WebCore::SVGClipPathElement::isSupportedAttribute):
* svg/SVGComponentTransferFunctionElement.cpp:
(WebCore::SVGComponentTransferFunctionElement::isSupportedAttribute):
* svg/SVGCursorElement.cpp:
(WebCore::SVGCursorElement::isSupportedAttribute):
* svg/SVGElement.h:
(WebCore::SVGAttributeHashTranslator::hash):
(WebCore::SVGAttributeHashTranslator::equal):
* svg/SVGEllipseElement.cpp:
(WebCore::SVGEllipseElement::isSupportedAttribute):
* svg/SVGExternalResourcesRequired.h:
* svg/SVGFEBlendElement.cpp:
(WebCore::SVGFEBlendElement::isSupportedAttribute):
* svg/SVGFEColorMatrixElement.cpp:
(WebCore::SVGFEColorMatrixElement::isSupportedAttribute):
* svg/SVGFEComponentTransferElement.cpp:
(WebCore::SVGFEComponentTransferElement::isSupportedAttribute):
* svg/SVGFECompositeElement.cpp:
(WebCore::SVGFECompositeElement::isSupportedAttribute):
* svg/SVGFEConvolveMatrixElement.cpp:
(WebCore::SVGFEConvolveMatrixElement::isSupportedAttribute):
* svg/SVGFEDiffuseLightingElement.cpp:
(WebCore::SVGFEDiffuseLightingElement::isSupportedAttribute):
* svg/SVGFEDisplacementMapElement.cpp:
(WebCore::SVGFEDisplacementMapElement::isSupportedAttribute):
* svg/SVGFEDropShadowElement.cpp:
(WebCore::SVGFEDropShadowElement::isSupportedAttribute):
* svg/SVGFEGaussianBlurElement.cpp:
(WebCore::SVGFEGaussianBlurElement::isSupportedAttribute):
* svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::isSupportedAttribute):
* svg/SVGFELightElement.cpp:
(WebCore::SVGFELightElement::isSupportedAttribute):
* svg/SVGFEMergeNodeElement.cpp:
(WebCore::SVGFEMergeNodeElement::isSupportedAttribute):
* svg/SVGFEMorphologyElement.cpp:
(WebCore::SVGFEMorphologyElement::isSupportedAttribute):
* svg/SVGFEOffsetElement.cpp:
(WebCore::SVGFEOffsetElement::isSupportedAttribute):
* svg/SVGFESpecularLightingElement.cpp:
(WebCore::SVGFESpecularLightingElement::isSupportedAttribute):
* svg/SVGFETileElement.cpp:
(WebCore::SVGFETileElement::isSupportedAttribute):
* svg/SVGFETurbulenceElement.cpp:
(WebCore::SVGFETurbulenceElement::isSupportedAttribute):
* svg/SVGFilterElement.cpp:
(WebCore::SVGFilterElement::isSupportedAttribute):
* svg/SVGFilterPrimitiveStandardAttributes.cpp:
(WebCore::SVGFilterPrimitiveStandardAttributes::isSupportedAttribute):
* svg/SVGForeignObjectElement.cpp:
(WebCore::SVGForeignObjectElement::isSupportedAttribute):
* svg/SVGGElement.cpp:
(WebCore::SVGGElement::isSupportedAttribute):
* svg/SVGGradientElement.cpp:
(WebCore::SVGGradientElement::isSupportedAttribute):
* svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::isSupportedAttribute):
* svg/SVGLineElement.cpp:
(WebCore::SVGLineElement::isSupportedAttribute):
* svg/SVGLinearGradientElement.cpp:
(WebCore::SVGLinearGradientElement::isSupportedAttribute):
* svg/SVGMPathElement.cpp:
(WebCore::SVGMPathElement::isSupportedAttribute):
* svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::isSupportedAttribute):
* svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::isSupportedAttribute):
* svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::isSupportedAttribute):
* svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::isSupportedAttribute):
* svg/SVGPolyElement.cpp:
(WebCore::SVGPolyElement::isSupportedAttribute):
* svg/SVGRadialGradientElement.cpp:
(WebCore::SVGRadialGradientElement::isSupportedAttribute):
* svg/SVGRectElement.cpp:
(WebCore::SVGRectElement::isSupportedAttribute):
* svg/SVGScriptElement.cpp:
(WebCore::SVGScriptElement::isSupportedAttribute):
* svg/SVGStopElement.cpp:
(WebCore::SVGStopElement::isSupportedAttribute):
* svg/SVGStyleElement.cpp:
(WebCore::SVGStyleElement::isSupportedAttribute):
* svg/SVGStyledTransformableElement.cpp:
(WebCore::SVGStyledTransformableElement::isSupportedAttribute):
* svg/SVGSymbolElement.cpp:
(WebCore::SVGSymbolElement::isSupportedAttribute):
* svg/SVGTRefElement.cpp:
(WebCore::SVGTRefElement::isSupportedAttribute):
* svg/SVGTextContentElement.cpp:
(WebCore::SVGTextContentElement::isSupportedAttribute):
* svg/SVGTextElement.cpp:
(WebCore::SVGTextElement::isSupportedAttribute):
* svg/SVGTextPathElement.cpp:
(WebCore::SVGTextPathElement::isSupportedAttribute):
* svg/SVGTextPositioningElement.cpp:
(WebCore::SVGTextPositioningElement::isSupportedAttribute):
* svg/SVGURIReference.cpp:
(WebCore::SVGURIReference::addSupportedAttributes):
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::isSupportedAttribute):
* svg/SVGViewElement.cpp:
(WebCore::SVGViewElement::isSupportedAttribute):
2011-09-28 Kentaro Hara <haraken@chromium.org>
"ScriptValue" arguments of PopStateEvent methods should be "const ScriptValue&"
https://bugs.webkit.org/show_bug.cgi?id=68984
Reviewed by Darin Adler.
Just a follow-up fix for the bug 68345. For performance,
"ScriptValue" arguments of PopStateEvent methods should be "const ScriptValue&".
Tests: fast/events/constructors/pop-state-event-constructor.html
fast/events/fire-popstate-event.html
* dom/PopStateEvent.cpp:
(WebCore::PopStateEvent::PopStateEvent):
(WebCore::PopStateEvent::create):
(WebCore::PopStateEvent::initPopStateEvent):
* dom/PopStateEvent.h:
2011-09-28 Martin Robinson <mrobinson@igalia.com>
[GTK] Move drag-and-drop code which can be shared with WebKit2 to WebCore
https://bugs.webkit.org/show_bug.cgi?id=66890
Added a GtkDragAndDropHelper class to hold all the logic that is common
between WebKit1 and WebKit2. This will allow greater code sharing between
the two ports.
Reviewed by Philippe Normand.
No new tests. This patch should not change behavior.
* GNUmakefile.list.am: Added the GtkDragAndDropHelper to the sources list.
* platform/gtk/GtkDragAndDropHelper.cpp: Added.
* platform/gtk/GtkDragAndDropHelper.h: Added.
2011-09-28 Dan Bernstein <mitz@apple.com>
<rdar://problem/10196497> first-letter after list marker not updated correctly
Reviewed by Simon Fraser.
Test: fast/dynamic/first-letter-after-list-marker.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateFirstLetter): Improved the logic for continuing past list markers
when trying to locate a first letter to update.
2011-09-28 Kent Tamura <tkent@chromium.org>
REGRESSION(r93858): Can't type anything into input elements when maxlength is greater than 2^31
https://bugs.webkit.org/show_bug.cgi?id=68981
Reviewed by Darin Adler.
* html/parser/HTMLParserIdioms.cpp:
(WebCore::parseHTMLInteger):
Check the failure of charactersToIntStrict().
(WebCore::parseHTMLNonNegativeInteger):
Check the failure of charactersToUIntStrict().
2011-09-28 Antoine Labour <piman@chromium.org>
Remove unused createRootLayerPainter from CCLayerTreeHostClient
https://bugs.webkit.org/show_bug.cgi?id=69042
Reviewed by James Robinson.
No new test needed: no semantic change.
* platform/graphics/chromium/cc/CCLayerTreeHost.h:
2011-09-28 Luke Macpherson <macpherson@chromium.org>
Only resolve direction aware properties when properties are direction aware.
https://bugs.webkit.org/show_bug.cgi?id=68968
Reviewed by Eric Seidel.
No new tests / no functionality changed.
Profiling showed a ~8% improvement in applyProperty by not calling resolveDirectionAwareProperty for every property.
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
2011-09-28 Simon Fraser <simon.fraser@apple.com>
fast/dom/scroll-element-to-rect.html fails on WK1 Mac port
https://bugs.webkit.org/show_bug.cgi?id=68815
Reviewed by Dan Bernstein.
FrameView::scrollElementToRect() was incorrectly using Element::boundsInWindowSpace(),
which is window-relative (not web view-relative), and has flipped coordinates
in WebKit1.
Change to use Node::getRect() which is what the author intended.
* dom/Element.h:
* page/FrameView.cpp:
(WebCore::FrameView::scrollElementToRect):
2011-09-28 Peter Beverloo <peter@chromium.org>
Don't clamp cubic-bezier timing functions between 0 and 1
https://bugs.webkit.org/show_bug.cgi?id=45761
Remove the limitation of clamping the cubic-bezier timing function
values between 0 and 1, following the specification change made on
April 5 of this year.
Reviewed by Dean Jackson.
Tests: transitions/cubic-bezier-overflow-color.html
transitions/cubic-bezier-overflow-length.html
transitions/cubic-bezier-overflow-shadow.html
transitions/cubic-bezier-overflow-svg-length.html
transitions/cubic-bezier-overflow-transform.html
* css/CSSParser.cpp:
(WebCore::CSSParser::parseCubicBezierTimingFunctionValue):
2011-09-28 Chris Rogers <crogers@google.com>
DelayNode must set the context on delayTime AudioParam to support automation
https://bugs.webkit.org/show_bug.cgi?id=68828
Reviewed by Kenneth Russell.
Test: webaudio/delaynode-scheduling.html
* webaudio/DelayNode.cpp:
(WebCore::DelayNode::DelayNode):
2011-09-28 Sergey Glazunov <serg.glazunov@gmail.com>
JavaScript generated documents don't inherit the cookie URL
https://bugs.webkit.org/show_bug.cgi?id=69003
Reviewed by Adam Barth.
Test: http/tests/security/cookies/cookie-theft-with-javascript-doc.html
* dom/Document.h:
(WebCore::Document::setCookieURL):
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::replaceDocument):
(WebCore::DocumentWriter::begin):
* loader/DocumentWriter.h:
2011-09-27 Dimitri Glazkov <dglazkov@chromium.org>
REGRESSION(r95573): Crash when loading SVG documents in a flattened frame or any SVG document in Chromium/Mac.
https://bugs.webkit.org/show_bug.cgi?id=68938
Reviewed by David Hyatt.
Test: all svg tests in LayoutTests.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeBlockPreferredLogicalWidths): Added a null-check for containingBlock.
2011-09-28 Una Sabovic <una.sabovic@palm.com>
Setting innerText to an empty string on editable div loses focus
https://bugs.webkit.org/show_bug.cgi?id=62092
Reviewed by Ryosuke Niwa.
When selection start or end node is being deleted do not clear the selection.
Instead update the start/end position to an equivalent parent-anchored positions.
When text is inserted/deleted update selection per range modification spec:
http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Mutation
Tests: editing/selection/document-mutation.html
editing/selection/editable-div-clear-on-keydown.html
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::respondToNodeModification):
(WebCore::updatePositionAfterAdoptingTextReplacement):
(WebCore::FrameSelection::textWillBeReplaced):
* editing/htmlediting.cpp:
(WebCore::updatePositionForNodeRemoval):
2011-09-28 Joseph Pecoraro <joepeck@webkit.org>
FTPDirectoryDocument Shows Garbled String for Last Modified Date
https://bugs.webkit.org/show_bug.cgi?id=69011
Reviewed by Dan Bernstein.
Force WTF::String concatenation instead of an accidental char* pointer addition.
* html/FTPDirectoryDocument.cpp:
(WebCore::processFileDateString):
2011-09-28 Nate Chapin <japhet@chromium.org>
Fix a regression in r96060. ResourceLoader shouldn't get
initialized with a null DocumentLoader.
https://bugs.webkit.org/show_bug.cgi?id=69004
Reviewed by Csaba Osztrogonác.
This should fix a debug crash in some platforms in
plugins/js-from-destroy.html
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::init): Move the activeDocumentLoader() null checks back
to SubresouceLoader::create().
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::create):
2011-09-28 Adam Barth <abarth@webkit.org>
CSP doesn't work for a wide variety of cases
https://bugs.webkit.org/show_bug.cgi?id=68921
Reviewed by Darin Adler.
Patch suggested by Sam Weinig. It's unclear to me how to test this
change because all our tests run on non-default ports, which is why we
have this bug in the first place. Mozilla uses a proxy while testing
so they can test with URLs like http://example.com, but we don't have
such a facility.
* page/ContentSecurityPolicy.cpp:
(WebCore::CSPSource::portMatches):
2011-09-28 Fady Samuel <fsamuel@chromium.org>
[Chromium] Seperate GTK specific Gyp rules from X11 Gyp rules
https://bugs.webkit.org/show_bug.cgi?id=68936
Reviewed by Tony Chang.
Chromium need to be built without Gtk for future version of ChromiumOS.
* WebCore.gyp/WebCore.gyp:
2011-09-28 Tom Sepez <tsepez@chromium.org>
Revert change which broke displaying end script tags in view-source, instead
deal with any trailing </script> tag included by mistake in the XSSAuditor
itself. Correct tests to detect the missing close tags.
https://bugs.webkit.org/show_bug.cgi?id=68898
Reviewed by Adam Barth.
* html/parser/HTMLSourceTracker.cpp:
(WebCore::HTMLSourceTracker::end):
* html/parser/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::nextToken):
* html/parser/XSSAuditor.cpp:
(WebCore::startsHTMLEndTagAt):
(WebCore::XSSAuditor::snippetForJavaScript):
2011-09-28 Adam Barth <abarth@webkit.org>
Remove empty directories.
* editing/brew: Removed.
* page/brew: Removed.
* platform/brew: Removed.
* platform/graphics/brew: Removed.
* platform/network/brew: Removed.
* platform/text/brew: Removed.
2011-09-28 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: optional arguments support for the frontend needs to be extended.
https://bugs.webkit.org/show_bug.cgi?id=69005
Generator supports optional arguments but they are transferred by value.
It is not suitable if the used type doesn't have operator bool.
I'll transfer such arguments by pointer.
Reviewed by Pavel Feldman.
Build is the test.
* inspector/CodeGeneratorInspector.pm:
(generateFrontendFunction):
(paramTypeTraits):
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::didParseSource):
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::didFailLoading):
2011-09-28 Antaryami Pandia <antaryami.pandia@motorola.com>
Reflected attribute input.size wraps on negative values (Chrome), or
returns them (Safari).
https://bugs.webkit.org/show_bug.cgi?id=44886
Reviewed by Darin Adler.
Test: fast/dom/HTMLInputElement/input-size-attribute.html
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseMappedAttribute):
2011-09-28 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Add support for search in single resource to page agent.
https://bugs.webkit.org/show_bug.cgi?id=68998
Reviewed by Pavel Feldman.
Test: http/tests/inspector/search/search-in-resource.html
* inspector/ContentSearchUtils.cpp:
(WebCore::ContentSearchUtils::getRegularExpressionMatchesByLines):
* inspector/ContentSearchUtils.h:
* inspector/Inspector.json:
* inspector/InspectorPageAgent.cpp:
(WebCore::buildObjectForSearchMatch):
(WebCore::InspectorPageAgent::searchInResource):
* inspector/InspectorPageAgent.h:
* inspector/front-end/Resource.js:
(WebInspector.Resource.prototype.searchInContent):
* inspector/front-end/SourceFile.js:
(WebInspector.ResourceContentProvider.prototype.requestContent):
(WebInspector.ResourceContentProvider.prototype.searchInContent):
* inspector/front-end/UISourceCode.js:
(WebInspector.ContentProvider.prototype.requestContent):
(WebInspector.ContentProvider.prototype.searchInContent):
2011-09-28 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: It'd be useful to have performance stats for the back-end to front-end communication channel.
https://bugs.webkit.org/show_bug.cgi?id=69002
Reviewed by Yury Semikhatsky.
* inspector/CodeGeneratorInspector.pm:
2011-09-27 Pavel Podivilov <podivilov@chromium.org>
Web Inspector: live edit cursor always appears at the beginning of the file.
https://bugs.webkit.org/show_bug.cgi?id=68900
Reviewed by Pavel Feldman.
* inspector/front-end/TextViewer.js:
(WebInspector.TextEditorMainPanel.prototype._updateSelectionOnStartEditing):
2011-09-28 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: Refactor searching in inspector, add test (fixed non regex search).
https://bugs.webkit.org/show_bug.cgi?id=68930
Reviewed by Yury Semikhatsky.
Search moved out from page agent.
Fixed search for non regex case which is not yet used.
Test: http/tests/inspector/search/search-in-resources.html
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* inspector/ContentSearchUtils.cpp: Added.
(WebCore::ContentSearchUtils::createSearchRegexSource):
(WebCore::ContentSearchUtils::createSearchRegex):
(WebCore::ContentSearchUtils::countRegularExpressionMatches):
* inspector/ContentSearchUtils.h: Added.
* inspector/InspectorPageAgent.cpp:
(WebCore::hasTextContent):
(WebCore::InspectorPageAgent::cachedResourceContent):
(WebCore::textContentForCachedResource):
(WebCore::buildObjectForSearchResult):
(WebCore::InspectorPageAgent::searchInResources):
* inspector/front-end/utilities.js:
():
2011-09-28 Kentaro Hara <haraken@chromium.org>
Implement a PopStateEvent constructor for V8
https://bugs.webkit.org/show_bug.cgi?id=68896
Reviewed by Adam Barth.
Test: fast/events/constructors/pop-state-event-constructor.html
* bindings/v8/custom/V8EventConstructors.cpp: Added a PopStateEvent constructor.
* dom/PopStateEvent.idl: Added a 'V8CustomConstructor' attribute.
2011-09-28 No'am Rosenthal <noam.rosenthal@nokia.com>
[Texmap] Allow TextureMapperGL to work without a GraphicsContext
https://bugs.webkit.org/show_bug.cgi?id=68980
Reviewed by Andreas Kling.
Perform a null-check for m_context and initialize that variable.
If a graphics-context doesn't exist, we don't need to reset it.
No new functionality so no new tests.
* platform/graphics/opengl/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::TextureMapperGL):
(WebCore::TextureMapperGL::beginPainting):
(WebCore::TextureMapperGL::endPainting):
2011-09-28 Kentaro Hara <haraken@chromium.org>
Implement an ErrorEvent constructor for V8
https://bugs.webkit.org/show_bug.cgi?id=68336
Reviewed by Adam Barth.
Test: fast/events/constructors/error-event-constructor.html
* bindings/v8/OptionsObject.cpp:
(WebCore::OptionsObject::getKeyValue): Returns an unsigned value corresponding to a given key.
* bindings/v8/OptionsObject.h:
* bindings/v8/custom/V8EventConstructors.cpp: Added the ErrorEvent constructor.
* dom/ErrorEvent.idl: Added a 'V8CustomConstructor' attribute.
2011-09-27 Andy Estes <aestes@apple.com>
WebKitLinkedOnOrAfter() check is ineffective for Solar Walk app-specific hack.
https://bugs.webkit.org/show_bug.cgi?id=68863
Reviewed by Darin Adler.
The SolarWalk binary does not link against WebKit.framework directly,
so calling NSVersionOfLinkTimeLibrary() will not return the version of
WebKit against which SolarWalk was linked. Since Solar Walk has
released an update that addresses the issue for which this app-specific
hack was originally added, we should just remove the hack.
* WebCore.exp.in: Remove applicationIsSolarWalkMac().
* platform/RuntimeApplicationChecks.cpp: Ditto.
* platform/RuntimeApplicationChecks.h: Ditto.
2011-09-28 Tim Horton <timothy_horton@apple.com>
Fix potential SVG performance regression (over-invalidation of caches) from 96052
https://bugs.webkit.org/show_bug.cgi?id=68941
<rdar://problem/10196224>
Reviewed by Zoltan Herczeg.
Only invalidate the cache of a filter when target style changes, as of the different types of cached
resources, only filters make use of the style of the target element and thus need to be invalidated
when the target style changes.
No new tests, performance improvement.
* rendering/svg/SVGResourcesCache.cpp:
(WebCore::SVGResourcesCache::clientUpdatedFromElement):
2011-09-28 Adenilson Cavalcanti <adenilson.silva@openbossa.org>
Missing initialization of member in ImageFrameQt class
https://bugs.webkit.org/show_bug.cgi?id=68943
Reviewed by Kenneth Rohde Christiansen.
No new tests, this fixes internal implementation detail.
* platform/image-decoders/qt/ImageFrameQt.cpp:
(WebCore::ImageFrame::ImageFrame):
(WebCore::ImageFrame::operator=):
2011-09-27 Luke Macpherson <macpherson@chromium.org>
Defer call to CSSValue::isPrimitiveValue(), saves ~4% in CSSStyleSelector::applyProperty().
https://bugs.webkit.org/show_bug.cgi?id=68964
Reviewed by Eric Seidel.
No new tests / no functionality changed.
Doing value->isPrimitiveValue() is relatviely expensive, so moving it after the early returns but
before the result is used saves a significant number of cycles. (Tested with Shark profiler in Safari).
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
2011-09-27 Ryosuke Niwa <rniwa@webkit.org>
Simplify ReplaceSelectionCommand::positionAtStartOfInsertedContent
https://bugs.webkit.org/show_bug.cgi?id=68939
Reviewed by Darin Adler.
Simplified ReplaceSelectionCommand::positionAtStartOfInsertedContent.
This change revealed a bug in removeUnrenderedTextNodesAtEnds that text nodes without any visible
text at ends are not removed when it has a render object. Fixed the bug by checking the length of
the rendered text. (Tested by editing/pasteboard/pasting-word-in-div-extra-line.html)
This further revealed that caretMaxRenderedOffset doesn't return an offset and caretMaxRenderedOffset
on InlineBox, InlineTextBox, RenderObject, RenderBR, RenderPlaced are never called. To address this
issue, renamed caretMaxRenderedOffset to renderedTextLength for RenderText and removed the rest.
* dom/Position.cpp:
(WebCore::Position::rendersInDifferentPosition):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::nodeHasVisibleRenderText): Added.
(WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds): Calls nodeHasVisibleRenderText.
(WebCore::ReplaceSelectionCommand::positionAtStartOfInsertedContent): Simplified.
* editing/visible_units.cpp:
(WebCore::startOfParagraph): Calls renderedTextLength.
(WebCore::endOfParagraph): Ditto.
* rendering/InlineBox.cpp: Removed caretMaxRenderedOffset.
* rendering/InlineBox.h: Ditto.
* rendering/InlineTextBox.cpp: Ditto.
* rendering/InlineTextBox.h: Ditto.
* rendering/RenderBR.cpp: Ditto.
* rendering/RenderBR.h: Ditto.
* rendering/RenderObject.cpp: Ditto.
* rendering/RenderObject.h: Ditto.
* rendering/RenderReplaced.cpp: Ditto.
* rendering/RenderReplaced.h: Ditto.
* rendering/RenderText.cpp:
(WebCore::RenderText::renderedTextLength): Renamed from caretMaxRenderedOffset.
* rendering/RenderText.h:
2011-09-27 James Robinson <jamesr@chromium.org>
[chromium] LayerRenderChromium asserts about leaking textures.
https://bugs.webkit.org/show_bug.cgi?id=68190
Reviewed by Kenneth Russell.
This introduces an interface TextureAllocator that the TextureManager uses to allocate/deallocate textures.
This means that TextureManager does not need to depend directly on GraphicsContext3D, other than for the format
enum type, making it more testable. It also allows us to track the allocations by subclassing TextureAllocator
to make sure we aren't leaking any textures.
* WebCore.gypi:
* platform/graphics/chromium/Canvas2DLayerChromium.cpp:
(WebCore::Canvas2DLayerChromium::updateCompositorResources):
* platform/graphics/chromium/Canvas2DLayerChromium.h:
* platform/graphics/chromium/ImageLayerChromium.cpp:
(WebCore::ImageLayerTextureUpdater::updateTextureRect):
* platform/graphics/chromium/LayerChromium.h:
(WebCore::LayerChromium::updateCompositorResources):
* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::LayerRendererChromium::LayerRendererChromium):
(WebCore::LayerRendererChromium::releaseRenderSurfaceTextures):
(WebCore::LayerRendererChromium::drawLayers):
(WebCore::LayerRendererChromium::useRenderSurface):
(WebCore::LayerRendererChromium::initializeSharedObjects):
(WebCore::LayerRendererChromium::cleanupSharedObjects):
* platform/graphics/chromium/LayerRendererChromium.h:
(WebCore::LayerRendererChromium::renderSurfaceTextureAllocator):
(WebCore::LayerRendererChromium::contentsTextureAllocator):
* platform/graphics/chromium/LayerTextureUpdater.h:
* platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp:
(WebCore::LayerTextureUpdaterBitmap::updateTextureRect):
(WebCore::LayerTextureUpdaterSkPicture::updateTextureRect):
* platform/graphics/chromium/LayerTextureUpdaterCanvas.h:
* platform/graphics/chromium/ManagedTexture.cpp:
(WebCore::ManagedTexture::bindTexture):
(WebCore::ManagedTexture::framebufferTexture2D):
* platform/graphics/chromium/ManagedTexture.h:
* platform/graphics/chromium/TextureManager.cpp:
(WebCore::TextureManager::memoryUseBytes):
(WebCore::TextureManager::deleteEvictedTextures):
(WebCore::TextureManager::evictAndDeleteAllTextures):
(WebCore::TextureManager::removeTexture):
(WebCore::TextureManager::allocateTexture):
(WebCore::TextureManager::requestTexture):
* platform/graphics/chromium/TextureManager.h:
(WebCore::TextureAllocator::~TextureAllocator):
* platform/graphics/chromium/TiledLayerChromium.cpp:
(WebCore::TiledLayerChromium::updateCompositorResources):
* platform/graphics/chromium/TiledLayerChromium.h:
* platform/graphics/chromium/TrackingTextureAllocator.cpp: Added.
(WebCore::TrackingTextureAllocator::TrackingTextureAllocator):
(WebCore::TrackingTextureAllocator::~TrackingTextureAllocator):
(WebCore::TrackingTextureAllocator::createTexture):
(WebCore::TrackingTextureAllocator::deleteTexture):
* platform/graphics/chromium/TrackingTextureAllocator.h: Copied from Source/WebCore/platform/graphics/chromium/ManagedTexture.h.
(WebCore::TrackingTextureAllocator::create):
(WebCore::TrackingTextureAllocator::currentMemoryUseBytes):
* platform/graphics/chromium/VideoLayerChromium.cpp:
(WebCore::VideoLayerChromium::updateCompositorResources):
(WebCore::VideoLayerChromium::updateTexture):
* platform/graphics/chromium/VideoLayerChromium.h:
* platform/graphics/chromium/WebGLLayerChromium.cpp:
(WebCore::WebGLLayerChromium::updateCompositorResources):
* platform/graphics/chromium/WebGLLayerChromium.h:
* platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
(WebCore::CCHeadsUpDisplay::draw):
* platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
(WebCore::CCLayerTreeHost::~CCLayerTreeHost):
(WebCore::CCLayerTreeHost::deleteContentsTexturesOnCCThread):
(WebCore::CCLayerTreeHost::commitToOnCCThread):
(WebCore::CCLayerTreeHost::didRecreateGraphicsContext):
(WebCore::CCLayerTreeHost::updateCompositorResources):
* platform/graphics/chromium/cc/CCLayerTreeHost.h:
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
(WebCore::CCLayerTreeHostImpl::contentsTextureAllocator):
(WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
* platform/graphics/chromium/cc/CCRenderSurface.cpp:
(WebCore::CCRenderSurface::drawSurface):
* platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
(WebCore::CCSingleThreadProxy::setNeedsCommit):
(WebCore::CCSingleThreadProxy::stop):
(WebCore::CCSingleThreadProxy::recreateContextIfNeeded):
(WebCore::CCSingleThreadProxy::commitIfNeeded):
* platform/graphics/chromium/cc/CCThreadProxy.cpp:
(WebCore::CCThreadProxy::commitOnCCThread):
(WebCore::CCThreadProxy::layerTreeHostClosedOnCCThread):
2011-09-27 James Robinson <jamesr@chromium.org>
[chromium] Only initiate the beginFrameAndCommit sequence if a commit has been requested
https://bugs.webkit.org/show_bug.cgi?id=68967
Reviewed by Kenneth Russell.
When updating the scheduler state, we should only initiate a new commit flow if a commit has been requested (as
opposed to only a redraw).
Covered by the unit test CCLayerTreeHostTestSetNeedsRedraw with USE(THREADED_COMPOSITING) set to true.
* platform/graphics/chromium/cc/CCThreadProxy.cpp:
(WebCore::CCThreadProxy::updateSchedulerStateOnCCThread):
2011-09-27 Kentaro Hara <haraken@chromium.com>
Implement a PageTransitionEvent constructor for V8
https://bugs.webkit.org/show_bug.cgi?id=68067
Reviewed by Adam Barth.
Test: fast/events/constructors/page-transition-event-constructor.html
* bindings/v8/custom/V8EventConstructors.cpp: Added the PageTransitionEvent constructor.
* dom/PageTransitionEvent.idl: Added a 'V8CustomConstructor' attribute.
2011-09-27 Kentaro Hara <haraken@chromium.org>
Implement a MessageEvent constructor for JSC
https://bugs.webkit.org/show_bug.cgi?id=68883
Reviewed by Adam Barth.
The spec for MessageEvent is here:
http://www.whatwg.org/specs/web-apps/current-work/#messageevent
Currently, some tests in fast/events/constructors/message-event-constructor.html
are failing or crashing in DRT, as we commented in the test file.
This is because MessageEvent.data is implemented as SerializedScriptValue,
and thus it cannot keep ScriptValue passed by JavaScript.
This is the same issue as the bug (https://bugs.webkit.org/show_bug.cgi?id=68345).
We will soon make a follow-up patch to fix these failures, after this
patch is landed.
Test: fast/events/constructors/message-event-constructor.html
* bindings/generic/EventConstructors.h: Added a definition for the MessageEvent constructor.
* bindings/js/JSDictionary.cpp:
(WebCore::JSDictionary::convertValue): Generates MessagePortArray from the list of message ports in the format of JSValues.
* bindings/js/JSDictionary.h:
* bindings/js/JSEventConstructors.cpp: Added #includes for MessageEvent.
* dom/MessageEvent.cpp:
(WebCore::MessageEventInit::MessageEventInit):
(WebCore::MessageEvent::MessageEvent):
(WebCore::MessageEvent::initMessageEvent):
* dom/MessageEvent.h: Added a definition for MessageEvent. Removed an extra leading spaces.
(WebCore::MessageEvent::create):
(WebCore::MessageEvent::origin):
(WebCore::MessageEvent::lastEventId):
(WebCore::MessageEvent::source):
(WebCore::MessageEvent::ports):
(WebCore::MessageEvent::dataType):
(WebCore::MessageEvent::dataAsSerializedScriptValue):
(WebCore::MessageEvent::dataAsString):
(WebCore::MessageEvent::dataAsBlob):
(WebCore::MessageEvent::dataAsArrayBuffer):
* dom/MessageEvent.idl: Makes MessageEvent constructible.
2011-09-27 Eric Uhrhane <ericu@chromium.org>
[Chromium/FileWriter] race condition in FileWriter completion can lead to assert
https://bugs.webkit.org/show_bug.cgi?id=67684
Reviewed by David Levin.
Tests: fast/filesystem/file-writer-abort-continue.html
fast/filesystem/file-writer-abort.html
Track the state of the backend and be prepared for reentrant user
requests. Limit recursion depth to an arbitrary small constant.
* fileapi/FileWriter.cpp: Lots of event-handling changes.
* fileapi/FileWriter.h:
2011-09-27 Mihai Parparita <mihaip@chromium.org>
Unreviewed, rolling out r96141.
http://trac.webkit.org/changeset/96141
https://bugs.webkit.org/show_bug.cgi?id=68190
Breaks PrerenderBrowserTest.PrerenderHTML5Video in
browser_tests
* WebCore.gypi:
* platform/graphics/chromium/Canvas2DLayerChromium.cpp:
(WebCore::Canvas2DLayerChromium::updateCompositorResources):
* platform/graphics/chromium/Canvas2DLayerChromium.h:
* platform/graphics/chromium/ImageLayerChromium.cpp:
(WebCore::ImageLayerTextureUpdater::updateTextureRect):
* platform/graphics/chromium/LayerChromium.h:
(WebCore::LayerChromium::updateCompositorResources):
* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::LayerRendererChromium::LayerRendererChromium):
(WebCore::LayerRendererChromium::releaseRenderSurfaceTextures):
(WebCore::LayerRendererChromium::drawLayers):
(WebCore::LayerRendererChromium::createLayerTexture):
(WebCore::LayerRendererChromium::deleteLayerTexture):
(WebCore::LayerRendererChromium::useRenderSurface):
(WebCore::LayerRendererChromium::initializeSharedObjects):
(WebCore::LayerRendererChromium::cleanupSharedObjects):
* platform/graphics/chromium/LayerRendererChromium.h:
(WebCore::LayerRendererChromium::setContentsTextureMemoryUseBytes):
* platform/graphics/chromium/LayerTextureUpdater.h:
* platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp:
(WebCore::LayerTextureUpdaterBitmap::updateTextureRect):
(WebCore::LayerTextureUpdaterSkPicture::updateTextureRect):
* platform/graphics/chromium/LayerTextureUpdaterCanvas.h:
* platform/graphics/chromium/ManagedTexture.cpp:
(WebCore::ManagedTexture::bindTexture):
(WebCore::ManagedTexture::framebufferTexture2D):
* platform/graphics/chromium/ManagedTexture.h:
* platform/graphics/chromium/TextureManager.cpp:
(WebCore::memoryUseBytes):
(WebCore::TextureManager::deleteEvictedTextures):
(WebCore::TextureManager::evictAndDeleteAllTextures):
(WebCore::TextureManager::removeTexture):
(WebCore::TextureManager::allocateTexture):
(WebCore::TextureManager::requestTexture):
* platform/graphics/chromium/TextureManager.h:
* platform/graphics/chromium/TiledLayerChromium.cpp:
(WebCore::TiledLayerChromium::updateCompositorResources):
* platform/graphics/chromium/TiledLayerChromium.h:
* platform/graphics/chromium/TrackingTextureAllocator.cpp: Removed.
* platform/graphics/chromium/TrackingTextureAllocator.h: Removed.
* platform/graphics/chromium/VideoLayerChromium.cpp:
(WebCore::VideoLayerChromium::updateCompositorResources):
(WebCore::VideoLayerChromium::updateTexture):
* platform/graphics/chromium/VideoLayerChromium.h:
* platform/graphics/chromium/WebGLLayerChromium.cpp:
(WebCore::WebGLLayerChromium::updateCompositorResources):
* platform/graphics/chromium/WebGLLayerChromium.h:
* platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
(WebCore::CCHeadsUpDisplay::draw):
* platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
(WebCore::CCLayerTreeHost::~CCLayerTreeHost):
(WebCore::CCLayerTreeHost::deleteContentsTextures):
(WebCore::CCLayerTreeHost::commitTo):
(WebCore::CCLayerTreeHost::didRecreateGraphicsContext):
(WebCore::CCLayerTreeHost::updateCompositorResources):
* platform/graphics/chromium/cc/CCLayerTreeHost.cpp.rej: Removed.
* platform/graphics/chromium/cc/CCLayerTreeHost.h:
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
(WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
* platform/graphics/chromium/cc/CCRenderSurface.cpp:
(WebCore::CCRenderSurface::drawSurface):
* platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
(WebCore::CCSingleThreadProxy::setNeedsCommit):
(WebCore::CCSingleThreadProxy::stop):
(WebCore::CCSingleThreadProxy::recreateContextIfNeeded):
(WebCore::CCSingleThreadProxy::commitIfNeeded):
* platform/graphics/chromium/cc/CCThreadProxy.cpp:
(WebCore::CCThreadProxy::commitOnCCThread):
(WebCore::CCThreadProxy::layerTreeHostClosedOnCCThread):
2011-09-27 James Robinson <jamesr@chromium.org>
[chromium] Guard accelerated skia drawing logic with its own define to remove dependency on USE(THREADED_COMPOSITING)
https://bugs.webkit.org/show_bug.cgi?id=68953
Reviewed by Kenneth Russell.
The accelerated drawing code is incompatible with threaded compositing. Rather than tying the two behaviors
together via USE(THREADED_COMPOSITING), this patch guards the accelerated drawing code with its own USE() guard
so the features can advance independently. Today, it's not safe to set both of these flags.
* platform/graphics/chromium/ContentLayerChromium.cpp:
(WebCore::ContentLayerChromium::createTextureUpdater):
* platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp:
* platform/graphics/chromium/LayerTextureUpdaterCanvas.h:
2011-09-27 Luke Macpherson <macpherson@chromium.org>
Slightly improve performance of CSSStyleApplyProperty handler lookup.
https://bugs.webkit.org/show_bug.cgi?id=68868
Reviewed by Eric Seidel.
No new tests as no functionality changed.
* css/CSSStyleApplyProperty.h:
(WebCore::CSSStyleApplyProperty::propertyHandler):
Make propertyHandler() public and remove redirecting functions.
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
Perform property handler lookup once and reuse the result.
2011-09-27 Kent Tamura <tkent@chromium.org>
[V8] element.dataset.nonExistingKey should return undefined.
https://bugs.webkit.org/show_bug.cgi?id=68877
Reviewed by Nate Chapin.
* bindings/v8/custom/V8DOMStringMapCustom.cpp:
(WebCore::V8DOMStringMap::namedPropertyGetter): Uses v8StringOrUndefined() instead of v8String().
2011-09-23 Mark Hahnenberg <mhahnenberg@apple.com>
Add static version of JSCell::visitChildren
https://bugs.webkit.org/show_bug.cgi?id=68404
Reviewed by Darin Adler.
No new tests.
In this patch we just extract the bodies of the virtual visitChildren methods
throughout the JSCell inheritance hierarchy out into static methods, which are
now called from the virtual methods. This is an intermediate step in trying to
move the virtual-ness of visitChildren into our own custom vtable stored in
ClassInfo. We need to convert the methods to static methods in order to be
able to more easily store and refer to them in our custom vtable since normal
member methods store some implicit information in their types, making it
impossible to store them generically in ClassInfo.
* WebCore.exp.in:
* bindings/js/JSAttrCustom.cpp:
(WebCore::JSAttr::visitChildrenVirtual):
(WebCore::JSAttr::visitChildren):
* bindings/js/JSAudioContextCustom.cpp:
(WebCore::JSAudioContext::visitChildrenVirtual):
(WebCore::JSAudioContext::visitChildren):
* bindings/js/JSCSSRuleCustom.cpp:
(WebCore::JSCSSRule::visitChildrenVirtual):
(WebCore::JSCSSRule::visitChildren):
* bindings/js/JSCSSStyleDeclarationCustom.cpp:
(WebCore::JSCSSStyleDeclaration::visitChildrenVirtual):
(WebCore::JSCSSStyleDeclaration::visitChildren):
* bindings/js/JSCanvasRenderingContextCustom.cpp:
(WebCore::JSCanvasRenderingContext::visitChildrenVirtual):
(WebCore::JSCanvasRenderingContext::visitChildren):
* bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::visitChildrenVirtual):
(WebCore::JSDOMGlobalObject::visitChildren):
* bindings/js/JSDOMGlobalObject.h:
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::visitChildrenVirtual):
(WebCore::JSDOMWindow::visitChildren):
* bindings/js/JSDOMWindowShell.cpp:
(WebCore::JSDOMWindowShell::visitChildrenVirtual):
(WebCore::JSDOMWindowShell::visitChildren):
* bindings/js/JSDOMWindowShell.h:
* bindings/js/JSJavaScriptAudioNodeCustom.cpp:
(WebCore::JSJavaScriptAudioNode::visitChildrenVirtual):
(WebCore::JSJavaScriptAudioNode::visitChildren):
* bindings/js/JSMessageChannelCustom.cpp:
(WebCore::JSMessageChannel::visitChildrenVirtual):
(WebCore::JSMessageChannel::visitChildren):
* bindings/js/JSMessagePortCustom.cpp:
(WebCore::JSMessagePort::visitChildrenVirtual):
(WebCore::JSMessagePort::visitChildren):
* bindings/js/JSNamedNodeMapCustom.cpp:
(WebCore::JSNamedNodeMap::visitChildrenVirtual):
(WebCore::JSNamedNodeMap::visitChildren):
* bindings/js/JSNodeCustom.cpp:
(WebCore::JSNode::visitChildrenVirtual):
(WebCore::JSNode::visitChildren):
* bindings/js/JSNodeFilterCustom.cpp:
(WebCore::JSNodeFilter::visitChildrenVirtual):
(WebCore::JSNodeFilter::visitChildren):
* bindings/js/JSNodeIteratorCustom.cpp:
(WebCore::JSNodeIterator::visitChildrenVirtual):
(WebCore::JSNodeIterator::visitChildren):
* bindings/js/JSSVGElementInstanceCustom.cpp:
(WebCore::JSSVGElementInstance::visitChildrenVirtual):
(WebCore::JSSVGElementInstance::visitChildren):
* bindings/js/JSSharedWorkerCustom.cpp:
(WebCore::JSSharedWorker::visitChildrenVirtual):
(WebCore::JSSharedWorker::visitChildren):
* bindings/js/JSStyleSheetCustom.cpp:
(WebCore::JSStyleSheet::visitChildrenVirtual):
(WebCore::JSStyleSheet::visitChildren):
* bindings/js/JSTreeWalkerCustom.cpp:
(WebCore::JSTreeWalker::visitChildrenVirtual):
(WebCore::JSTreeWalker::visitChildren):
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::JSWebGLRenderingContext::visitChildrenVirtual):
(WebCore::JSWebGLRenderingContext::visitChildren):
* bindings/js/JSWorkerContextCustom.cpp:
(WebCore::JSWorkerContext::visitChildrenVirtual):
(WebCore::JSWorkerContext::visitChildren):
* bindings/js/JSXMLHttpRequestCustom.cpp:
(WebCore::JSXMLHttpRequest::visitChildrenVirtual):
(WebCore::JSXMLHttpRequest::visitChildren):
* bindings/js/JSXPathResultCustom.cpp:
(WebCore::JSXPathResult::visitChildrenVirtual):
(WebCore::JSXPathResult::visitChildren):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObj::visitChildrenVirtual):
(WebCore::JSTestObj::visitChildren):
* bindings/scripts/test/JS/JSTestObj.h:
* bridge/qt/qt_instance.cpp:
(JSC::Bindings::QtRuntimeObject::visitChildrenVirtual):
(JSC::Bindings::QtRuntimeObject::visitChildren):
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::QtRuntimeMetaMethod::visitChildrenVirtual):
(JSC::Bindings::QtRuntimeMetaMethod::visitChildren):
* bridge/qt/qt_runtime.h:
* workers/WorkerContext.h:
2011-09-27 Mark Hahnenberg <mhahnenberg@apple.com>
Add static version of JSCell::getCallData
https://bugs.webkit.org/show_bug.cgi?id=68741
Reviewed by Darin Adler.
No new tests.
In this patch we just extract the bodies of the virtual getCallData methods
throughout the JSCell inheritance hierarchy out into static methods, which are
now called from the virtual methods. This is an intermediate step in trying to
move the virtual-ness of getCallData into our own method table stored in
ClassInfo. We need to convert the methods to static methods because static methods
can be represented as function pointers rather than pointers to member functions, and
function pointers are smaller and faster to call than pointers to member functions.
* WebCore.exp.in:
* bindings/js/JSCallbackData.cpp:
(WebCore::JSCallbackData::invokeCallback):
* bindings/js/JSCustomXPathNSResolver.cpp:
(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
* bindings/js/JSErrorHandler.cpp:
(WebCore::JSErrorHandler::handleEvent):
* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::handleEvent):
* bindings/js/JSHTMLAllCollectionCustom.cpp:
(WebCore::JSHTMLAllCollection::getCallDataVirtual):
(WebCore::JSHTMLAllCollection::getCallData):
* bindings/js/JSHTMLAppletElementCustom.cpp:
(WebCore::JSHTMLAppletElement::getCallDataVirtual):
(WebCore::JSHTMLAppletElement::getCallData):
* bindings/js/JSHTMLEmbedElementCustom.cpp:
(WebCore::JSHTMLEmbedElement::getCallDataVirtual):
(WebCore::JSHTMLEmbedElement::getCallData):
* bindings/js/JSHTMLObjectElementCustom.cpp:
(WebCore::JSHTMLObjectElement::getCallDataVirtual):
(WebCore::JSHTMLObjectElement::getCallData):
* bindings/js/JSInjectedScriptHostCustom.cpp:
(WebCore::JSInjectedScriptHost::evaluate):
* bindings/js/JSPluginElementFunctions.cpp:
(WebCore::runtimeObjectGetCallData):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
* bridge/objc/objc_runtime.h:
* bridge/objc/objc_runtime.mm:
(JSC::Bindings::ObjcFallbackObjectImp::getCallDataVirtual):
(JSC::Bindings::ObjcFallbackObjectImp::getCallData):
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::QtRuntimeMetaMethod::getCallDataVirtual):
(JSC::Bindings::QtRuntimeMetaMethod::getCallData):
(JSC::Bindings::QtRuntimeConnectionMethod::call):
(JSC::Bindings::QtRuntimeConnectionMethod::getCallDataVirtual):
(JSC::Bindings::QtRuntimeConnectionMethod::getCallData):
(JSC::Bindings::isJavaScriptFunction):
* bridge/qt/qt_runtime.h:
* bridge/runtime_method.cpp:
(JSC::RuntimeMethod::getCallDataVirtual):
(JSC::RuntimeMethod::getCallData):
* bridge/runtime_method.h:
* bridge/runtime_object.cpp:
(JSC::Bindings::RuntimeObject::getCallDataVirtual):
(JSC::Bindings::RuntimeObject::getCallData):
* bridge/runtime_object.h:
2011-09-27 Dean Jackson <dino@apple.com>
Unreviewed. Remove duplicate FilterOperation{s}.h that were
accidentally added to the top level of the Xcode project.
* WebCore.xcodeproj/project.pbxproj:
2011-09-27 David Hyatt <hyatt@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=68940
Narrow the float/lines pagination heuristic to only kick in if
the previous line broke cleanly and if the floats are occurring
at the start of the line.
Reviewed by Dan Bernstein.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::positionNewFloatOnLine):
2011-09-27 James Robinson <jamesr@chromium.org>
Add a mechanism to test for the compositing tree mutated during painting
https://bugs.webkit.org/show_bug.cgi?id=68738
Reviewed by Adam Barth.
Sets a static bool during GraphicsLayer::paintGraphicsLayerContents and ASSERT()s that we never create or
destroy a GraphicsLayer inside this function. Painting should never mutate the GraphicsLayer tree.
Test: compositing/video/video-with-invalid-source.html
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::GraphicsLayer):
(WebCore::GraphicsLayer::~GraphicsLayer):
(WebCore::GraphicsLayer::paintGraphicsLayerContents):
2011-09-27 Ojan Vafai <ojan@chromium.org>
take padding/border on flexbox into account with direction:rtl
https://bugs.webkit.org/show_bug.cgi?id=68846
Reviewed by David Hyatt.
Use the logicalWidth of the flexbox instead of it's availableLogicalWidth
so that we include the flexbox's border and padding.
Also, change all uses of availableLogicalWidth to contentLogicalWidth.
The former takes multi-column into account. Multi-column flexboxes don't
make any sense, so there's no point in calling availableLogicalWidth.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::flowAwareLogicalWidth):
(WebCore::RenderFlexibleBox::flowAwareContentLogicalWidth):
(WebCore::RenderFlexibleBox::computePreferredLogicalWidth):
(WebCore::RenderFlexibleBox::runFreeSpaceAllocationAlgorithmInlineDirection):
(WebCore::RenderFlexibleBox::layoutAndPlaceChildrenInlineDirection):
* rendering/RenderFlexibleBox.h:
2011-09-27 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r96139.
http://trac.webkit.org/changeset/96139
https://bugs.webkit.org/show_bug.cgi?id=68933
Broke table-percent-height.html on Mac bots (Requested by
mwenge2 on #webkit).
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeReplacedLogicalWidthUsing):
(WebCore::RenderBox::computeReplacedLogicalHeightUsing):
* rendering/RenderBox.h:
2011-09-27 Tim Horton <timothy_horton@apple.com>
REGRESSION(65665): Pattern size being clamped to SVG size can prevent transformed elements from being fully covered by userSpaceOnUse patterns
https://bugs.webkit.org/show_bug.cgi?id=67700
<rdar://problem/10125102>
Reviewed by Darin Adler.
Clamp all resources to the same size, 4096x4096 (arbitrarily chosen), instead of to the size
of the <svg> element. This fixes the case where a transformed element displays part of a resource
outside of the size of the <svg> element.
When drawing an oversized pattern into its tile image, scale the content down to fit. When drawing
the tile image to the screen, scale it back up to fit the expected area. This will cause pixelation
when patterns are over the 4k limit.
Tests: svg/custom/transformed-pattern-clamp-svg-root.svg, svg/custom/oversized-pattern-scale.svg
* rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::applyClippingToContext):
* rendering/svg/RenderSVGResourceGradient.cpp:
(WebCore::createMaskAndSwapContextForTextGradient):
(WebCore::clipToTextMask):
* rendering/svg/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::applyResource):
* rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::applyResource):
(WebCore::RenderSVGResourcePattern::createTileImage):
* rendering/svg/RenderSVGResourcePattern.h:
* rendering/svg/SVGImageBufferTools.cpp:
(WebCore::SVGImageBufferTools::clampedAbsoluteTargetRect):
* rendering/svg/SVGImageBufferTools.h:
2011-09-27 Dan Bernstein <mitz@apple.com>
<rdar://problem/10098679> Assertion failure in RenderLayer::paintPaginatedChildLayer()
Reviewed by Simon Fraser.
Test: fast/dynamic/layer-no-longer-paginated.html
FrameView::layout() calls adjustViewSize() before calling RenderLayer::updateLayerPositions().
The former may trigger painting with a layer tree that is not entirely up-to-date. Specifically,
the isPaginated() state of a layer may be incorrect, leading to the assertion in this bug. Instead
of asserting, return early and count on the upcoming updateLayerPositions() to repaint as needed.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintPaginatedChildLayer): Replaced the assertion with an early return.
2011-09-27 Ojan Vafai <ojan@chromium.org>
offsetTop/offsetLeft return the wrong values for horizontal-bt/vertical-rl writing modes
https://bugs.webkit.org/show_bug.cgi?id=68304
Reviewed by David Hyatt.
When grabbing the x/y values of the RenderBox, we need to take writing mode
flipping into account.
Test: fast/dom/offset-position-writing-modes.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::locationIncludingFlipping):
* rendering/RenderBox.h:
(WebCore::RenderBox::yFlippedForWritingMode):
(WebCore::RenderBox::xFlippedForWritingMode):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::offsetLeft):
(WebCore::RenderBoxModelObject::offsetTop):
2011-09-27 Tim Horton <timothy_horton@apple.com>
Rapidly refreshing a feMorphology[erode] with r=0 can sometimes cause display corruption
https://bugs.webkit.org/show_bug.cgi?id=68816
<rdar://problem/10186468>
Reviewed by Simon Fraser.
If a filter returns without writing into its result buffer, make sure to return an cleared buffer.
Test: svg/filters/feMorphology-zero-radius.svg
* platform/graphics/filters/FEMorphology.cpp:
(WebCore::FEMorphology::apply):
* platform/graphics/filters/FETurbulence.cpp:
(WebCore::FETurbulence::apply):
2011-09-27 Ryosuke Niwa <rniwa@webkit.org>
CompositeEditCommand::prune should remove subtree at once
https://bugs.webkit.org/show_bug.cgi?id=68866
Reviewed by Darin Adler.
Extracted the logic to find the highest ancestor to remove as highestNodeToRemoveInPruning from prune.
This reduces the number of node removals from O(n) to O(1) where n is the depth of the tree.
* editing/CompositeEditCommand.cpp:
(WebCore::hasARenderedDescendant): Takes excludedNode in addition to node. excludedNode is used to ignore
the child node from which we climbed up the tree in highestNodeToRemoveInPruning.
(WebCore::highestNodeToRemoveInPruning): Extracted from prune.
(WebCore::CompositeEditCommand::prune):
(WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph):
2011-09-27 David Hyatt <hyatt@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=68922
Paginated floats should not grow the height of a block when they don't end
up being tied to a line. Floats encountered in skipLeadingWhitespace that
paginate can't immediately grow the height of the block, since there may not
end up being any actual line content. We only want to push the height of the
block down if we have actual line content that we want to keep with the
float.
Make positionNewFloatOnLine check if the line is empty or not, and if it is,
it just puts the desired pagination strut into LineInfo. If and when actual
line content is encountered and setEmpty becomes false, we'll grow the block
height then.
Reviewed by Dan Bernstein.
Added fast/multicol/float-paginate-empty-lines.html and
fast/regions/webkit-flow-double-pagination-float-push.html.
* rendering/RenderBlock.h:
* rendering/RenderBlockLineLayout.cpp:
(WebCore::LineWidth::LineWidth):
(WebCore::LineWidth::fitsOnLine):
(WebCore::LineWidth::currentWidth):
(WebCore::LineWidth::uncommittedWidth):
(WebCore::LineWidth::committedWidth):
(WebCore::LineWidth::availableWidth):
(WebCore::LineWidth::addUncommittedWidth):
(WebCore::LineWidth::commit):
(WebCore::LineWidth::computeAvailableWidthFromLeftAndRight):
(WebCore::LineWidth::updateAvailableWidth):
(WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
(WebCore::LineWidth::applyOverhang):
(WebCore::LineWidth::fitBelowFloats):
(WebCore::LineInfo::LineInfo):
(WebCore::LineInfo::floatPaginationStrut):
(WebCore::LineInfo::setEmpty):
(WebCore::LineInfo::setFloatPaginationStrut):
(WebCore::RenderBlock::LineBreaker::skipLeadingWhitespace):
(WebCore::RenderBlock::LineBreaker::nextLineBreak):
(WebCore::RenderBlock::positionNewFloatOnLine):
2011-09-27 Dean Jackson <dino@apple.com>
Add 'filter' value to RenderStyle
https://bugs.webkit.org/show_bug.cgi?id=68471
Reviewed by Simon Fraser.
Add a filter property to RenderStyle when ENABLE(CSS_FILTERS)
is turned on. Similar to -webkit-transform, -webkit-filter is a
list of FilterOperations, each identifying what type of operation
it is. This change simply adds the basic objects, it does not
parse the property to generate the list.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/filters/FilterOperation.h: Added.
(WebCore::FilterOperation::~FilterOperation):
(WebCore::FilterOperation::operator!=):
(WebCore::FilterOperation::getOperationType):
(WebCore::FilterOperation::isSameType):
(WebCore::FilterOperation::FilterOperation):
(WebCore::ReferenceFilterOperation::create):
(WebCore::ReferenceFilterOperation::reference):
(WebCore::ReferenceFilterOperation::operator==):
(WebCore::ReferenceFilterOperation::ReferenceFilterOperation):
(WebCore::BasicColorMatrixFilterOperation::create):
(WebCore::BasicColorMatrixFilterOperation::amount):
(WebCore::BasicColorMatrixFilterOperation::operator==):
(WebCore::BasicColorMatrixFilterOperation::BasicColorMatrixFilterOperation):
(WebCore::BasicComponentTransferFilterOperation::create):
(WebCore::BasicComponentTransferFilterOperation::amount):
(WebCore::BasicComponentTransferFilterOperation::operator==):
(WebCore::BasicComponentTransferFilterOperation::BasicComponentTransferFilterOperation):
(WebCore::GammaFilterOperation::create):
(WebCore::GammaFilterOperation::amplitude):
(WebCore::GammaFilterOperation::exponent):
(WebCore::GammaFilterOperation::offset):
(WebCore::GammaFilterOperation::operator==):
(WebCore::GammaFilterOperation::GammaFilterOperation):
(WebCore::BlurFilterOperation::create):
(WebCore::BlurFilterOperation::stdDeviationX):
(WebCore::BlurFilterOperation::stdDeviationY):
(WebCore::BlurFilterOperation::operator==):
(WebCore::BlurFilterOperation::BlurFilterOperation):
(WebCore::SharpenFilterOperation::create):
(WebCore::SharpenFilterOperation::radius):
(WebCore::SharpenFilterOperation::threshold):
(WebCore::SharpenFilterOperation::amount):
(WebCore::SharpenFilterOperation::operator==):
(WebCore::SharpenFilterOperation::SharpenFilterOperation):
(WebCore::DropShadowFilterOperation::create):
(WebCore::DropShadowFilterOperation::shadow):
(WebCore::DropShadowFilterOperation::operator==):
(WebCore::DropShadowFilterOperation::DropShadowFilterOperation):
* platform/graphics/filters/FilterOperations.cpp: Added.
(WebCore::FilterOperations::FilterOperations):
(WebCore::FilterOperations::operator==):
* platform/graphics/filters/FilterOperations.h: Added.
(WebCore::FilterOperations::operator!=):
(WebCore::FilterOperations::clear):
(WebCore::FilterOperations::operations):
(WebCore::FilterOperations::size):
(WebCore::FilterOperations::at):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::RenderStyle):
* rendering/style/RenderStyle.h:
(WebCore::InheritedFlags::filter):
(WebCore::InheritedFlags::hasFilter):
(WebCore::InheritedFlags::setFilter):
(WebCore::InheritedFlags::initialFilter):
* rendering/style/StyleAllInOne.cpp: Added include of new StyleFilterData.
* rendering/style/StyleFilterData.cpp: Added.
(WebCore::StyleFilterData::StyleFilterData):
(WebCore::StyleFilterData::operator==):
* rendering/style/StyleFilterData.h: Added.
(WebCore::StyleFilterData::create):
(WebCore::StyleFilterData::copy):
(WebCore::StyleFilterData::operator!=):
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
* rendering/style/StyleRareNonInheritedData.h: New filter DataRef.
2011-09-27 James Robinson <jamesr@chromium.org>
[chromium] LayerRenderChromium asserts about leaking textures.
https://bugs.webkit.org/show_bug.cgi?id=68190
Reviewed by Kenneth Russell.
This introduces an interface TextureAllocator that the TextureManager uses to allocate/deallocate textures.
This means that TextureManager does not need to depend directly on GraphicsContext3D, other than for the format
enum type, making it more testable. It also allows us to track the allocations by subclassing TextureAllocator
to make sure we aren't leaking any textures.
* WebCore.gypi:
* platform/graphics/chromium/Canvas2DLayerChromium.cpp:
(WebCore::Canvas2DLayerChromium::updateCompositorResources):
* platform/graphics/chromium/Canvas2DLayerChromium.h:
* platform/graphics/chromium/ImageLayerChromium.cpp:
(WebCore::ImageLayerTextureUpdater::updateTextureRect):
* platform/graphics/chromium/LayerChromium.h:
(WebCore::LayerChromium::updateCompositorResources):
* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::LayerRendererChromium::LayerRendererChromium):
(WebCore::LayerRendererChromium::releaseRenderSurfaceTextures):
(WebCore::LayerRendererChromium::drawLayers):
(WebCore::LayerRendererChromium::useRenderSurface):
(WebCore::LayerRendererChromium::initializeSharedObjects):
(WebCore::LayerRendererChromium::cleanupSharedObjects):
* platform/graphics/chromium/LayerRendererChromium.h:
(WebCore::LayerRendererChromium::renderSurfaceTextureAllocator):
(WebCore::LayerRendererChromium::contentsTextureAllocator):
* platform/graphics/chromium/LayerTextureUpdater.h:
* platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp:
(WebCore::LayerTextureUpdaterBitmap::updateTextureRect):
(WebCore::LayerTextureUpdaterSkPicture::updateTextureRect):
* platform/graphics/chromium/LayerTextureUpdaterCanvas.h:
* platform/graphics/chromium/ManagedTexture.cpp:
(WebCore::ManagedTexture::bindTexture):
(WebCore::ManagedTexture::framebufferTexture2D):
* platform/graphics/chromium/ManagedTexture.h:
* platform/graphics/chromium/TextureManager.cpp:
(WebCore::TextureManager::memoryUseBytes):
(WebCore::TextureManager::deleteEvictedTextures):
(WebCore::TextureManager::evictAndDeleteAllTextures):
(WebCore::TextureManager::removeTexture):
(WebCore::TextureManager::allocateTexture):
(WebCore::TextureManager::requestTexture):
* platform/graphics/chromium/TextureManager.h:
(WebCore::TextureAllocator::~TextureAllocator):
* platform/graphics/chromium/TiledLayerChromium.cpp:
(WebCore::TiledLayerChromium::updateCompositorResources):
* platform/graphics/chromium/TiledLayerChromium.h:
* platform/graphics/chromium/TrackingTextureAllocator.cpp: Added.
(WebCore::TrackingTextureAllocator::TrackingTextureAllocator):
(WebCore::TrackingTextureAllocator::~TrackingTextureAllocator):
(WebCore::TrackingTextureAllocator::createTexture):
(WebCore::TrackingTextureAllocator::deleteTexture):
* platform/graphics/chromium/TrackingTextureAllocator.h: Copied from Source/WebCore/platform/graphics/chromium/ManagedTexture.h.
(WebCore::TrackingTextureAllocator::create):
(WebCore::TrackingTextureAllocator::currentMemoryUseBytes):
* platform/graphics/chromium/VideoLayerChromium.cpp:
(WebCore::VideoLayerChromium::updateCompositorResources):
(WebCore::VideoLayerChromium::updateTexture):
* platform/graphics/chromium/VideoLayerChromium.h:
* platform/graphics/chromium/WebGLLayerChromium.cpp:
(WebCore::WebGLLayerChromium::updateCompositorResources):
* platform/graphics/chromium/WebGLLayerChromium.h:
* platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
(WebCore::CCHeadsUpDisplay::draw):
* platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
(WebCore::CCLayerTreeHost::~CCLayerTreeHost):
(WebCore::CCLayerTreeHost::deleteContentsTexturesOnCCThread):
(WebCore::CCLayerTreeHost::commitToOnCCThread):
(WebCore::CCLayerTreeHost::didRecreateGraphicsContext):
(WebCore::CCLayerTreeHost::updateCompositorResources):
* platform/graphics/chromium/cc/CCLayerTreeHost.h:
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
(WebCore::CCLayerTreeHostImpl::contentsTextureAllocator):
(WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
* platform/graphics/chromium/cc/CCRenderSurface.cpp:
(WebCore::CCRenderSurface::drawSurface):
* platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
(WebCore::CCSingleThreadProxy::setNeedsCommit):
(WebCore::CCSingleThreadProxy::stop):
(WebCore::CCSingleThreadProxy::recreateContextIfNeeded):
(WebCore::CCSingleThreadProxy::commitIfNeeded):
* platform/graphics/chromium/cc/CCThreadProxy.cpp:
(WebCore::CCThreadProxy::commitOnCCThread):
(WebCore::CCThreadProxy::layerTreeHostClosedOnCCThread):
2011-06-28 Robert Hogan <robert@webkit.org>
Reviewed by David Hyatt.
Replaced elements squeezed when width is specified as percentage inside a table with Auto layout
https://bugs.webkit.org/show_bug.cgi?id=29447
If inserting a 'replaced' element (e.g. image, plugin) in a table cell that is not descendant from
a block with fixed layout then do not squeeze the element, let it use its intrinsic width and height.
Test: fast/replaced/table-percent-width.html
* rendering/RenderBox.cpp:
(WebCore::avoidSqueezingWidth):
(WebCore::avoidSqueezingHeight):
(WebCore::RenderBox::containingBlockReplacedLogicalWidthForContent):
(WebCore::RenderBox::computeReplacedLogicalWidthUsing):
(WebCore::RenderBox::computeReplacedLogicalHeightUsing):
* rendering/RenderBox.h:
2011-09-27 Simon Fraser <simon.fraser@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=67858
Roll r96070 back in now that the crash has been fixed in r96130.
Reviewed by Darin Adler.
When non-overlay scrollbars are hidden on a composited iframe, nothing invalidated
the scrollbar areas or the scroll corner, so the scrollbars appear to remain.
Fix by invalidating the scrollbars and scroll corner when they are removed. Invalidation
on scrollbar creation appears to happen via updating the scrollbar style.
Tested by compositing/iframes/repaint-after-losing-scrollbars.html which no longer shows
stale scrollbars when run manually, even though the green squares are missing from the
pixel result (bug 67878).
* page/FrameView.cpp:
(WebCore::FrameView::updateScrollCorner): Pass the corner rect into invalidateScrollCorner().
* platform/ScrollView.cpp:
(WebCore::ScrollView::setHasHorizontalScrollbar): Invalidate the scrollbar area if hiding it.
(WebCore::ScrollView::setHasVerticalScrollbar): Ditto.
(WebCore::ScrollView::updateScrollbars): In the case where both scrollbars are going away,
compute the scroll corner rect while we still have scrollbars, and then invalidate it
explicitly. (updateScrollCorner() doesn't, because it doesn't have access to the old corner
rect.)
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::invalidateScrollCorner): Pass the rect in, because we can't
compute it in the case where the scrollbars are going away.
* platform/ScrollableArea.h: Pass in a rect to invalidateScrollCorner(), which matches
invalidateScrollbar().
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::destroyRootLayer): Pass the corner rect into invalidateScrollCorner().
* rendering/RenderScrollbarPart.cpp: Ditto.
(WebCore::RenderScrollbarPart::imageChanged): Ditto.
2011-09-27 Mihai Parparita <mihaip@chromium.org>
Fix Chromium Mac build after r96130.
* page/FrameView.cpp:
(WebCore::FrameView::layerForOverhangAreas):
2011-09-27 Kaustubh Atrawalkar <kaustubh@motorola.com>
Autofocus on readonly inputs does not focus the element.
https://bugs.webkit.org/show_bug.cgi?id=24092
Reviewed by Ryosuke Niwa.
Readonly input elements should be autofocusable. Removed the check.
Tests: fast/forms/autofocus-readonly-attribute.html
* html/HTMLFormControlElement.cpp:
(WebCore::shouldAutofocus):
2011-09-27 Simon Fraser <simon.fraser@apple.com>
Clean up how FrameView accesses the RenderView
https://bugs.webkit.org/show_bug.cgi?id=68914
Reviewed by Sam Weinig.
Clean up how FrameView accesses the content renderer of its
frame. Previously, this was done in several different ways,
only some of which did null-checking.
Use an inline method to avoid having to expose Frame
in the header.
Standardize the terminology to use 'root' for this RenderView.
* page/FrameView.cpp:
(WebCore::rootRenderer):
(WebCore::FrameView::setFrameRect):
(WebCore::FrameView::adjustViewSize):
(WebCore::FrameView::updateCompositingLayers):
(WebCore::FrameView::clearBackingStores):
(WebCore::FrameView::restoreBackingStores):
(WebCore::FrameView::layerForHorizontalScrollbar):
(WebCore::FrameView::layerForVerticalScrollbar):
(WebCore::FrameView::layerForScrollCorner):
(WebCore::FrameView::layerForOverhangAreas):
(WebCore::FrameView::syncCompositingStateForThisFrame):
(WebCore::FrameView::hasCompositedContent):
(WebCore::FrameView::enterCompositingMode):
(WebCore::FrameView::isSoftwareRenderable):
(WebCore::FrameView::didMoveOnscreen):
(WebCore::FrameView::willMoveOffscreen):
(WebCore::FrameView::layout):
(WebCore::FrameView::embeddedContentBox):
(WebCore::FrameView::contentsInCompositedLayer):
(WebCore::FrameView::scrollContentsFastPath):
(WebCore::FrameView::scrollContentsSlowPath):
(WebCore::FrameView::maintainScrollPositionAtAnchor):
(WebCore::FrameView::scrollPositionChanged):
(WebCore::FrameView::repaintFixedElementsAfterScrolling):
(WebCore::FrameView::visibleContentsResized):
(WebCore::FrameView::scheduleRelayoutOfSubtree):
(WebCore::FrameView::needsLayout):
(WebCore::FrameView::setNeedsLayout):
(WebCore::FrameView::performPostLayoutTasks):
(WebCore::FrameView::updateControlTints):
(WebCore::FrameView::paintContents):
(WebCore::FrameView::forceLayoutForPagination):
(WebCore::FrameView::adjustPageHeightDeprecated):
(WebCore::FrameView::isVerticalDocument):
(WebCore::FrameView::isFlippedDocument):
2011-09-27 Dominic Mazzoni <dmazzoni@google.com>
AXObjectCache cleared unnecessarily when non-top Document is detached.
https://bugs.webkit.org/show_bug.cgi?id=68636
Reviewed by Chris Fleizach.
Test: accessibility/deleting-iframe-destroys-axcache.html
* dom/Document.cpp:
(WebCore::Document::attach):
(WebCore::Document::detach):
2011-09-27 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r96108, r96111, r96113, and r96116.
http://trac.webkit.org/changeset/96108
http://trac.webkit.org/changeset/96111
http://trac.webkit.org/changeset/96113
http://trac.webkit.org/changeset/96116
https://bugs.webkit.org/show_bug.cgi?id=68913
Wait for working Qt5 (Requested by ossy on #webkit).
* WebCore.pri:
* platform/graphics/qt/GraphicsLayerQt.cpp:
2011-09-27 Csaba Osztrogonác <ossy@webkit.org>
Fix ENABLE(SQL_DATABASE)=0 build after r95919
https://bugs.webkit.org/show_bug.cgi?id=68902
r95919 enabled OFFLINE_WEB_APPLICATIONS by default and
it needs SQLite stuff even if ENABLE_SQL_DATABASE=0.
Reviewed by Adam Barth.
* platform/sql/SQLiteAuthorizer.cpp:
* platform/sql/SQLiteDatabase.cpp:
* platform/sql/SQLiteFileSystem.cpp:
* platform/sql/SQLiteStatement.cpp:
* platform/sql/SQLiteTransaction.cpp:
* storage/DatabaseAuthorizer.cpp:
2011-09-27 Julien Chaffraix <jchaffraix@webkit.org>
Crash because CSSPrimitiveValue::computeLengthDouble assumes fontMetrics are available
https://bugs.webkit.org/show_bug.cgi?id=66291
Reviewed by Darin Adler.
Test: fast/canvas/crash-set-font.html
This is Yet Another Missing updateFont (similar to bug 57756 and likely others). Here the issue is that
applying one of the font properties could mutate the parent style's font if m_parentStyle == m_style.
We would then query the newly created font when applying CSSPropertyFontSize, which has no font fallback
list as Font::update was never called.
The right fix would be to refactor of how we handle fonts to avoid such manual updates (see bug 62390).
Until this happens, it is better not to crash.
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty): Added updateFont() here as the fonts could have been
mutated by the previous property change. Also added a comment explaining why it is safe to do it
this way.
2011-09-27 No'am Rosenthal <noam.rosenthal@nokia.com>
[Texmap] Code cleanup: remove unused boundingRect/visibleRect calculations
https://bugs.webkit.org/show_bug.cgi?id=68897
Reviewed by Andreas Kling.
No new functionality so no new tests.
* platform/graphics/texmap/TextureMapperNode.cpp:
(WebCore::TextureMapperNode::computeAllTransforms):
(WebCore::TextureMapperNode::computeTiles):
(WebCore::TextureMapperNode::syncCompositingState):
* platform/graphics/texmap/TextureMapperNode.h:
2011-09-27 No'am Rosenthal <noam.rosenthal@nokia.com>
[Texmap][Qt] Refactor texture-upload to allow direct chunk update
https://bugs.webkit.org/show_bug.cgi?id=68808
Add a function to BitmapTexture for direct pixel updates.
Modify BitmapTextureGL::endPaint to use that function. Since the BGRA
to RGBA swizzling is done inside that function, there's no need for the
RGBA32PremultipliedBuffer class to contain such function. Also,
RGBA32PremultipliedBuffer was renamed to BGRA32PremultipliedBuffer, correcting
an old mistake.
Reviewed by Andreas Kling.
No new tests. Existing tests in LayoutTests/compositing test this.
* platform/graphics/opengl/TextureMapperGL.cpp:
(WebCore::BitmapTextureGL::beginPaint):
(WebCore::BitmapTextureGL::endPaint):
(WebCore::swizzleBGRAToRGBA):
(WebCore::BitmapTextureGL::updateContents):
* platform/graphics/opengl/TextureMapperGL.h:
(WebCore::BGRA32PremultimpliedBuffer::~BGRA32PremultimpliedBuffer):
* platform/graphics/qt/TextureMapperQt.cpp:
(WebCore::BitmapTextureQt::updateContents):
(WebCore::BGRA32PremultimpliedBufferQt::data):
(WebCore::BGRA32PremultimpliedBuffer::create):
* platform/graphics/qt/TextureMapperQt.h:
* platform/graphics/texmap/TextureMapper.h:
2011-09-23 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
[Qt] Fix build against Qt5 after refactor of widgets out of QtGUi
QWidget and friends now live in the QtWidgets library. We update
includes in implementation files and private headers to us the
non-module-prefixed path, and leave the lookup for the include
path. For public headers we have to ifdef the includes as the
user might now have the modules we need in his QT config.
Finally, QSGCanvas is no longer a QWidget but a QWindow, so we
have to update our code and use windowHandle() for setting the
parent relationships.
https://bugs.webkit.org/show_bug.cgi?id=68687
Reviewed by Andreas Kling.
* WebCore.pri:
* platform/graphics/qt/GraphicsLayerQt.cpp:
2011-09-27 Pavel Feldman <pfeldman@google.com>
Web Inspector: split DOM.attributesUpdated into attributeModified and attributeRemoved.
Send attribute name and value within the event.
https://bugs.webkit.org/show_bug.cgi?id=68613
Reviewed by Yury Semikhatsky.
* dom/Element.cpp:
(WebCore::Element::setAttribute):
(WebCore::Element::removeAttribute):
* inspector/Inspector.draft-01.json:
* inspector/Inspector.json:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::didModifyDOMAttr):
(WebCore::InspectorDOMAgent::didRemoveDOMAttr):
* inspector/InspectorDOMAgent.h:
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didModifyDOMAttrImpl):
(WebCore::InspectorInstrumentation::didRemoveDOMAttrImpl):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::didModifyDOMAttr):
(WebCore::InspectorInstrumentation::didRemoveDOMAttr):
* inspector/front-end/DOMAgent.js:
(WebInspector.DOMNode.prototype._addAttribute):
(WebInspector.DOMNode.prototype._setAttribute):
(WebInspector.DOMNode.prototype._removeAttribute):
(WebInspector.DOMAgent.prototype._attributeModified):
(WebInspector.DOMAgent.prototype._attributeRemoved):
(WebInspector.DOMAgent.prototype._inlineStyleInvalidated):
(WebInspector.DOMAgent.prototype._loadNodeAttributes):
(WebInspector.DOMDispatcher.prototype.attributeModified):
(WebInspector.DOMDispatcher.prototype.attributeRemoved):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel):
(WebInspector.ElementsPanel.prototype._attributesUpdated):
* inspector/front-end/MetricsSidebarPane.js:
(WebInspector.MetricsSidebarPane):
(WebInspector.MetricsSidebarPane.prototype._attributesUpdated):
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylesSidebarPane):
(WebInspector.StylesSidebarPane.prototype._attributesModified):
(WebInspector.StylesSidebarPane.prototype._attributesRemoved):
(WebInspector.StylesSidebarPane.prototype._styleInvalidated):
(WebInspector.StylePropertyTreeElement.prototype.event):
(WebInspector.StylePropertyTreeElement.prototype):
* inspector/validate-protocol-compatibility:
2011-09-27 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r96070 and r96075.
http://trac.webkit.org/changeset/96070
http://trac.webkit.org/changeset/96075
https://bugs.webkit.org/show_bug.cgi?id=68893
WK2 tests started crashing after r96070 for SL and Qt
(Requested by torarne on #webkit).
* page/FrameView.cpp:
(WebCore::FrameView::updateScrollCorner):
* platform/ScrollView.cpp:
(WebCore::ScrollView::setHasHorizontalScrollbar):
(WebCore::ScrollView::setHasVerticalScrollbar):
(WebCore::ScrollView::updateScrollbars):
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::invalidateScrollCorner):
* platform/ScrollableArea.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::destroyRootLayer):
* rendering/RenderScrollbarPart.cpp:
(WebCore::RenderScrollbarPart::imageChanged):
2011-09-27 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: JS exception upon clicking on "Word Wrap" checkbox in Settings screen
https://bugs.webkit.org/show_bug.cgi?id=68888
Reviewed by Pavel Feldman.
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype._domWordWrapSettingChanged):
2011-09-21 Pavel Podivilov <podivilov@chromium.org>
Web Inspector: migrate RawSourceCode clients to SourceMapping class.
https://bugs.webkit.org/show_bug.cgi?id=68524
Clients should use uiSourceCode(), rawLocationToUILocation(), uiLocationToRawLocation() methods of SourceMapping class.
Initially, RawSourceCode may not have associated SourceMapping, so it is natural to extract this methods and associated state to a separate class.
Reviewed by Yury Semikhatsky.
* inspector/front-end/BreakpointManager.js:
(WebInspector.BreakpointManager.prototype._materializeBreakpoint):
(WebInspector.BreakpointManager.prototype._breakpointDebuggerLocationChanged):
* inspector/front-end/DebuggerPresentationModel.js:
(WebInspector.DebuggerPresentationModel.prototype.linkifyLocation.updateAnchor):
(WebInspector.DebuggerPresentationModel.prototype.linkifyLocation):
(WebInspector.DebuggerPresentationModel.prototype._addScript):
(WebInspector.DebuggerPresentationModel.prototype._updateSourceMapping):
(WebInspector.DebuggerPresentationModel.prototype._restoreBreakpoints):
(WebInspector.DebuggerPresentationModel.prototype._restoreConsoleMessages):
(WebInspector.DebuggerPresentationModel.prototype._consoleMessageAdded):
(WebInspector.DebuggerPresentationModel.prototype._createPresentationMessage):
(WebInspector.DebuggerPresentationModel.prototype.continueToLine):
(WebInspector.PresentationCallFrame.prototype.get url):
(WebInspector.PresentationCallFrame.prototype.sourceLine.sourceMappingUpdated):
(WebInspector.PresentationCallFrame.prototype.sourceLine):
(WebInspector.DebuggerPresentationModelResourceBinding.prototype.canSetContent):
(WebInspector.DebuggerPresentationModelResourceBinding.prototype.setContent):
* inspector/front-end/SourceFile.js:
(WebInspector.RawSourceCode.prototype.get sourceMapping):
2011-09-27 Vineet Chaudhary <vineet.chaudhary@motorola.com>
wrap attribute of textarea element cannot be accessed by JavaScript.
https://bugs.webkit.org/show_bug.cgi?id=68592
Reviewed by Kent Tamura.
Added JS interface for wrap attribute to HTMLTextAreaElement.idl.
Test: fast/forms/textarea-wrap-attribute.html
* html/HTMLTextAreaElement.idl:
2011-09-27 Xan Lopez <xlopez@igalia.com>
[GTK] Add compatibility methods for DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=68884
Reviewed by Philippe Normand.
Add compatibility methods for our DOM bindings.
* bindings/gobject/WebKitDOMCustom.cpp:
(webkit_dom_blob_slice): alias to the new method name.
(webkit_dom_html_form_element_dispatch_form_change): this was
removed from WebCore, so just print a warning about it.
(webkit_dom_html_form_element_dispatch_form_input): ditto.
* bindings/gobject/WebKitDOMCustom.h:
2011-09-27 Ryosuke Niwa <rniwa@webkit.org>
Encapsulate m_firstNodeInserted and m_lastLeafInserted in node insertion logic
https://bugs.webkit.org/show_bug.cgi?id=68875
Reviewed by Kent Tamura.
Added InsertedNode class inside ReplaceSelection to encapsulate m_firstNodeInserted and m_lastLeafInserted.
Deployed it in removeRedundantStylesAndKeepStyleSpanInline, doApply, and insertAsListItems of ReplaceSelectionCommand.
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::removeNode):
(WebCore::DeleteSelectionCommand::handleGeneralDelete):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
(WebCore::ReplaceSelectionCommand::doApply):
(WebCore::ReplaceSelectionCommand::insertAsListItems):
* editing/ReplaceSelectionCommand.h:
(WebCore::ReplaceSelectionCommand::InsertedNodes::respondToNodeInsertion):
(WebCore::ReplaceSelectionCommand::InsertedNodes::willRemoveNode):
(WebCore::ReplaceSelectionCommand::InsertedNodes::firstNodeInserted):
(WebCore::ReplaceSelectionCommand::InsertedNodes::lastLeafInserted):
(WebCore::ReplaceSelectionCommand::InsertedNodes::pastLastLeaf):
* editing/htmlediting.cpp:
(WebCore::updatePositionForNodeRemoval): Moved from DeleteSelectionCommand.cpp.
* editing/htmlediting.h:
2011-09-27 Arun Patole <bmf834@motorola.com>
Audio element doesn't emit the 'playing' event every time it starts playing, after it has finished playing.
https://bugs.webkit.org/show_bug.cgi?id=60972
Reviewed by Philippe Normand.
The paused attribute should be set to true and the media element should emit a 'paused' at the end of playback.
WHATWG revision r6562: http://html5.org/tools/web-apps-tracker?from=6561&to=6562
Test: media/media-element-play-after-eos.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerTimeChanged): set m_paused to true and schedule 'pause' event when playback ended.
2011-09-27 Rakesh KN <rakesh.kn@motorola.com>
<input> with autofocus doesn't lose focus when it has a certain onblur listener
https://bugs.webkit.org/show_bug.cgi?id=68513
Reviewed by Kent Tamura.
Test: fast/forms/autofocus-focus-only-once.html
These changes make sure that an element is focused only once when autofocus attribute is used.
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::HTMLFormControlElement):
(WebCore::shouldAutofocus):
(WebCore::HTMLFormControlElement::attach):
* html/HTMLFormControlElement.h:
(WebCore::HTMLFormControlElement::hasAutofocused):
(WebCore::HTMLFormControlElement::setAutofocused):
2011-09-26 Kentaro Hara <haraken@chromium.org>
Implement PopStateEvent.state with SerializedScriptValue and ScriptValue
https://bugs.webkit.org/show_bug.cgi?id=68345
Reviewed by Adam Barth.
Previously, the following test cases fail or crash:
- shouldBe("new PopStateEvent('eventType', { state: object1 }).state", "object1") -> FAIL
- new PopStateEvent('eventType', { state: document }).state -> CRASH in DRT
This is because PopStateEvent.state is implemented not as ScriptValue but as SerializedScriptValue.
However, we cannot simply change the type of PopStateEvent.state to ScriptValue,
since PopStateEvent can be constructed in the context that does not know ScriptValue.
For example, Document.cpp calls PopStateEvent::create() with SerializedScriptValue
popped from HistoryItem, but we cannot deserialize the SerializedScriptValue into
the corresponding ScriptValue here because the deserialization requires ExecState.
In other words, although we want to store PopStateEvent.state by ScriptValue internally,
PopStateEvent still needs to provide an API to construct it with SerializedScriptValue.
With these observations, this patch makes the following changes:
- If PopStateEvent is constructed with ScriptValue, it is stored as ScriptValue internally.
When PopStateEvent.state is called, the ScriptValue is returned.
- If PopStateEvent is constructed with SerializedScriptValue, it is stored as
SerializedScriptValue internally (since we cannot deserialize it into ScriptValue
at this point). When PopStateEvent.state is called, the SerializedScriptValue is
deserialized into the corresponding ScriptValue, and the ScriptValue is returned.
Tests: fast/events/constructors/pop-state-event-constructor.html
fast/events/fire-popstate-event.html
* GNUmakefile.list.am: Added JSPopStateEventCustom.cpp.
* UseJSC.cmake: Ditto.
* WebCore.gypi: Ditto.
* WebCore.pro: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* bindings/js/JSBindingsAllInOne.cpp: Ditto.
* bindings/js/JSPopStateEventCustom.cpp:
(WebCore::JSPopStateEvent::state): Custom getter for PopStateEvent.state.
* bindings/v8/custom/V8PopStateEventCustom.cpp:
(WebCore::V8PopStateEvent::stateAccessorGetter): Custom getter for PopStateEvent.state.
* dom/PopStateEvent.cpp:
(WebCore::PopStateEventInit::PopStateEventInit): Added initialization code for PopStateEvent.m_state.
(WebCore::PopStateEvent::PopStateEvent): Ditto.
(WebCore::PopStateEvent::create): Ditto.
(WebCore::PopStateEvent::initPopStateEvent): Ditto.
* dom/PopStateEvent.h:
(WebCore::PopStateEvent::serializedState): Getter.
(WebCore::PopStateEvent::state): Getter.
* dom/PopStateEvent.idl: Change the type of 'stateArg' and 'state' to DOMObject. Added [CustomGetter] to 'state'.
2011-09-09 Simon Fraser <simon.fraser@apple.com>
Pixel result shows that compositing/iframes/repaint-after-losing-scrollbars.html is failing
https://bugs.webkit.org/show_bug.cgi?id=67858
Reviewed by Darin Adler.
When non-overlay scrollbars are hidden on a composited iframe, nothing invalidated
the scrollbar areas or the scroll corner, so the scrollbars appear to remain.
Fix by invalidating the scrollbars and scroll corner when they are removed. Invalidation
on scrollbar creation appears to happen via updating the scrollbar style.
Tested by compositing/iframes/repaint-after-losing-scrollbars.html which no longer shows
stale scrollbars when run manually, even though the green squares are missing from the
pixel result (bug 67878).
* page/FrameView.cpp:
(WebCore::FrameView::updateScrollCorner): Pass the corner rect into invalidateScrollCorner().
* platform/ScrollView.cpp:
(WebCore::ScrollView::setHasHorizontalScrollbar): Invalidate the scrollbar area if hiding it.
(WebCore::ScrollView::setHasVerticalScrollbar): Ditto.
(WebCore::ScrollView::updateScrollbars): In the case where both scrollbars are going away,
compute the scroll corner rect while we still have scrollbars, and then invalidate it
explicitly. (updateScrollCorner() doesn't, because it doesn't have access to the old corner
rect.)
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::invalidateScrollCorner): Pass the rect in, because we can't
compute it in the case where the scrollbars are going away.
* platform/ScrollableArea.h: Pass in a rect to invalidateScrollCorner(), which matches
invalidateScrollbar().
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::destroyRootLayer): Pass the corner rect into invalidateScrollCorner().
* rendering/RenderScrollbarPart.cpp: Ditto.
(WebCore::RenderScrollbarPart::imageChanged): Ditto.
2011-09-09 Simon Fraser <simon.fraser@apple.com>
Translucent scrollbars on composited layers render incorrectly
https://bugs.webkit.org/show_bug.cgi?id=58515
Reviewed by Sam Weinig.
Scrollbars in composited elements were getting drawn twice,
because r41203 moved the call to paintOverflowControls() out of
RenderLayer::paintLayer(), but forgot to change RenderLayerBacking::paintIntoLayer().
Test: compositing/scrollbar-painting.html
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::paintIntoLayer):
2011-09-26 Nat Duca <nduca@chromium.org>
[chromium] Make CCThreadProxy draw
https://bugs.webkit.org/show_bug.cgi?id=67417
Update the CCThreadProxy to correctly implement the CCProxy
interface, do all the right committing and updating steps, and
draw a picture on the screen.
Reviewed by James Robinson.
* platform/graphics/IntRect.h:
* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::LayerRendererChromium::~LayerRendererChromium):
* platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
(WebCore::CCHeadsUpDisplay::enabled):
* platform/graphics/chromium/cc/CCLayerImpl.cpp:
(WebCore::CCLayerImpl::CCLayerImpl):
(WebCore::CCLayerImpl::~CCLayerImpl):
* platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
(WebCore::CCLayerTreeHost::CCLayerTreeHost):
(WebCore::CCLayerTreeHost::commitTo):
(WebCore::CCLayerTreeHost::commitComplete):
(WebCore::CCLayerTreeHost::setNeedsRedraw):
* platform/graphics/chromium/cc/CCLayerTreeHost.h:
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
(WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
(WebCore::CCLayerTreeHostImpl::~CCLayerTreeHostImpl):
* platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
(WebCore::CCSingleThreadProxy::finishAllRendering):
(WebCore::CCSingleThreadProxy::setNeedsCommit):
(WebCore::CCSingleThreadProxy::commitIfNeeded):
* platform/graphics/chromium/cc/CCThreadProxy.cpp:
(WebCore::CCThreadProxy::CCThreadProxy):
(WebCore::CCThreadProxy::~CCThreadProxy):
(WebCore::CCThreadProxy::compositeAndReadback):
(WebCore::CCThreadProxy::drawLayersAndReadbackOnCCThread):
(WebCore::CCThreadProxy::finishAllRendering):
(WebCore::CCThreadProxy::isStarted):
(WebCore::CCThreadProxy::setNeedsCommit):
(WebCore::CCThreadProxy::setNeedsCommitAndRedraw):
(WebCore::CCThreadProxy::setNeedsRedraw):
(WebCore::CCThreadProxy::start):
(WebCore::CCThreadProxy::stop):
(WebCore::CCThreadProxy::finishAllRenderingOnCCThread):
(WebCore::CCThreadProxy::createBeginFrameAndCommitTaskOnCCThread):
(WebCore::CCThreadProxy::beginFrameAndCommit):
(WebCore::CCThreadProxy::commitOnCCThread):
(WebCore::CCThreadProxy::scheduleDrawTaskOnCCThread):
(WebCore::CCThreadProxy::drawLayersAndPresentOnCCThread):
(WebCore::CCThreadProxy::drawLayersOnCCThread):
(WebCore::CCThreadProxy::updateSchedulerStateOnCCThread):
* platform/graphics/chromium/cc/CCThreadProxy.h:
2011-09-26 Adam Klein <adamk@chromium.org>
[MutationObservers] implement MutationRecord
https://bugs.webkit.org/show_bug.cgi?id=68824
Reviewed by Darin Adler.
Implements MutationRecord as specified in the thread at
http://lists.w3.org/Archives/Public/public-webapps/2011JulSep/1622.html,
including some minor naming changes from the original proposal.
This is a small part of the MutationObserver API, see
https://bugs.webkit.org/show_bug.cgi?id=68729 for the metabug covering
this feature.
No new tests as this isn't yet exposed to the platform.
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.list.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/MutationRecord.cpp: Added.
(WebCore::MutationRecord::createChildList):
(WebCore::MutationRecord::createAttributes):
(WebCore::MutationRecord::createCharacterData):
(WebCore::MutationRecord::MutationRecord):
(WebCore::MutationRecord::~MutationRecord):
* dom/MutationRecord.h: Added.
(WebCore::MutationRecord::target):
(WebCore::MutationRecord::addedNodes):
(WebCore::MutationRecord::removedNodes):
(WebCore::MutationRecord::previousSibling):
(WebCore::MutationRecord::nextSibling):
(WebCore::MutationRecord::attributeName):
(WebCore::MutationRecord::attributeNamespace):
(WebCore::MutationRecord::oldValue):
(WebCore::MutationRecord::setOldValue):
* dom/MutationRecord.idl: Added.
2011-09-26 Kentaro Hara <haraken@chromium.org>
Implement a CloseEvent constructor for V8
https://bugs.webkit.org/show_bug.cgi?id=68793
Reviewed by Adam Barth.
Test: fast/events/constructors/close-event-constructor.html
* bindings/v8/OptionsObject.cpp:
(WebCore::OptionsObject::getKey): Just removed an extra space.
(WebCore::OptionsObject::getKeyValue): Returns an unsigned short value corresponding to the given key.
* bindings/v8/OptionsObject.h:
* bindings/v8/custom/V8EventConstructors.cpp: Added the CloseEvent constructor.
* websockets/CloseEvent.idl: Added a 'V8CustomConstructor' attribute.
2011-09-26 Nate Chapin <japhet@chromium.org>
Clean up CachedResource::load(). Collapse its
logic into a single callsite, taking just a
CachedResourceLoader and a ResourceLoaderOptions.
1. Its 'incremental' parameter is redundant.
2. With 'incremental' removed, the SecurityCheckPolicy is the only
parameter difference between the CachedResource::load() variants.
Making it a part of ResourceLoaderOptions removes yet another random
enum that is passed around individually.
3. We currently have to call setResourceLoaderOptions() before load() on a
new CachedResource, so we should just take the ResourceLoaderOptions in load().
https://bugs.webkit.org/show_bug.cgi?id=67443
Reviewed by Antti Koivisto.
No new tests, refactor only.
* loader/DocumentThreadableLoader.cpp:
* loader/FrameLoaderTypes.h: Move SecurityCheckPolicy to ResourceLoaderOptions.h.
* loader/MainResourceLoader.cpp:
* loader/NetscapePlugInStreamLoader.cpp:
* loader/ResourceLoadScheduler.cpp:
* loader/ResourceLoadScheduler.h:
* loader/ResourceLoader.cpp: Enforce SecurityCheckPolicy here instead of SubresourceLoader.
* loader/ResourceLoaderOptions.h: Store SecurityCheckPolicy on ResourceLoaderOptions.
* loader/SubresourceLoader.cpp:
* loader/SubresourceLoader.h:
* loader/cache/CachedFont.cpp:
* loader/cache/CachedFont.h:
* loader/cache/CachedImage.cpp:
* loader/cache/CachedImage.h:
* loader/cache/CachedResource.cpp:
* loader/cache/CachedResource.h:
* loader/cache/CachedResourceLoader.cpp:
(WebCore::defaultCachedResourceOptions): Define the default ResourceLoaderOptions for
CachedResource loads here instead of as a default parameter on requestResource().
* loader/cache/CachedResourceLoader.h:
* loader/cache/CachedResourceRequest.cpp:
(WebCore::CachedResourceRequest::didReceiveData): Remove m_incremental, since its purpose
is already enforced in the data() implementation of every CachedResource that doesn't want
incremental loads.
* loader/cache/CachedResourceRequest.h:
2011-09-26 Joshua Bell <jsbell@chromium.org>
IndexedDB: Second half of IDBFactory.getDatabaseNames implementation
https://bugs.webkit.org/show_bug.cgi?id=68818
Reviewed by Tony Chang.
Test: storage/indexeddb/factory-basics.html
Adds ability to enumerate IndexedDB databases within an origin.
* bindings/v8/custom/V8IDBAnyCustom.cpp:
(WebCore::toV8):
* storage/IDBAny.cpp:
(WebCore::IDBAny::domStringList):
(WebCore::IDBAny::set):
* storage/IDBAny.h:
* storage/IDBBackingStore.h:
* storage/IDBCallbacks.h:
* storage/IDBFactory.cpp:
(WebCore::IDBFactory::getDatabaseNames):
* storage/IDBFactory.h:
* storage/IDBFactory.idl:
* storage/IDBFactoryBackendImpl.cpp:
(WebCore::IDBFactoryBackendImpl::getDatabaseNames):
(WebCore::IDBFactoryBackendImpl::open):
(WebCore::IDBFactoryBackendImpl::openBackingStore):
* storage/IDBFactoryBackendImpl.h:
* storage/IDBFactoryBackendInterface.h:
* storage/IDBLevelDBBackingStore.cpp:
(WebCore::IDBLevelDBBackingStore::getDatabaseNames):
(WebCore::IDBLevelDBBackingStore::getObjectStores):
(WebCore::IDBLevelDBBackingStore::getIndexes):
* storage/IDBLevelDBBackingStore.h:
* storage/IDBLevelDBCoding.cpp:
(WebCore::IDBLevelDBCoding::DatabaseNameKey::encodeMinKeyForOrigin):
(WebCore::IDBLevelDBCoding::DatabaseNameKey::encodeStopKeyForOrigin):
* storage/IDBLevelDBCoding.h:
* storage/IDBRequest.cpp:
(WebCore::IDBRequest::onSuccess):
* storage/IDBRequest.h:
* storage/IDBSQLiteBackingStore.cpp:
(WebCore::IDBSQLiteBackingStore::getDatabaseNames):
* storage/IDBSQLiteBackingStore.h:
2011-09-26 Tim Horton <timothy_horton@apple.com>
<animateColor> applied to filtered ellipse does not update
https://bugs.webkit.org/show_bug.cgi?id=68457
<rdar://problem/10154777>
Reviewed by Darin Adler.
Invalidate the filter's cache when style changes take place so that style changes are respected.
Test: svg/filters/animate-fill.svg
* rendering/svg/SVGResourcesCache.cpp:
(WebCore::SVGResourcesCache::clientStyleChanged):
(WebCore::SVGResourcesCache::clientUpdatedFromElement):
2011-09-26 Max Perepelitsyn <pph34r@gmail.com>
Set but unused variables cleanup in v8 bindings (gcc 4.6)
https://bugs.webkit.org/show_bug.cgi?id=68079
Reviewed by Adam Barth.
Test: http/tests/websocket/tests/hybi/send-object-tostring-check.html
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::ConfigureV8TestObjTemplate):
* bindings/v8/WorkerScriptDebugServer.cpp:
(WebCore::WorkerScriptDebugServer::addListener):
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
(WebCore::V8HTMLOptionsCollection::lengthAccessorSetter):
* bindings/v8/custom/V8WebSocketCustom.cpp:
(WebCore::V8WebSocket::sendCallback):
2011-09-26 Tony Chang <tony@chromium.org>
switch the initial value of flex-order to 0
https://bugs.webkit.org/show_bug.cgi?id=68820
The spec changed from having an initial value of 1 to 0.
Reviewed by Ojan Vafai.
* rendering/style/RenderStyle.h:
(WebCore::InheritedFlags::initialFlexOrder):
2011-09-26 Chris Rogers <crogers@google.com>
OfflineAudioDestinationNode must wait for thread completion in uninitialize()
https://bugs.webkit.org/show_bug.cgi?id=68725
Reviewed by Kenneth Russell.
No new tests. This fixes internal implementation details.
* webaudio/OfflineAudioDestinationNode.cpp:
(WebCore::OfflineAudioDestinationNode::uninitialize):
2011-09-26 Xan Lopez <xlopez@igalia.com>
[GTK] Do not ignore 'Replaceable' attributes in the DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=68837
Reviewed by Martin Robinson.
* bindings/scripts/CodeGeneratorGObject.pm: add getters (but not
setters) for 'Replaceable' attributes. Punt for the future
actually making them settable, since it seems non trivial.
2011-09-26 Ryosuke Niwa <rniwa@webkit.org>
Leopard build fix.
* testing/Internals.cpp:
(WebCore::Internals::setZoomAnimatorTransform):
2011-09-26 Joshua Bell <jsbell@chromium.org>
IndexedDB: Null key path gets stored as empty string key path
https://bugs.webkit.org/show_bug.cgi?id=68726
Reviewed by Tony Chang.
Store additional flag to indicate if object store key path
is null vs. empty. Added additional runtime tests for integrity
of object store metadata.
* storage/IDBLevelDBBackingStore.cpp:
(WebCore::checkObjectStoreAndMetaDataType):
(WebCore::IDBLevelDBBackingStore::getObjectStores):
(WebCore::IDBLevelDBBackingStore::createObjectStore):
* storage/IDBLevelDBCoding.cpp:
2011-09-26 John Bauman <jbauman@chromium.org>
Fix nonpremultiplied webgl toDataURL to jpeg
https://bugs.webkit.org/show_bug.cgi?id=68366
The canvas spec says that toDataURL to formats without an alpha must
be "composited onto a solid black background using the source-over
operator." Do that.
Reviewed by Kenneth Russell.
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::CGImageToDataURL):
(WebCore::ImageBuffer::toDataURL):
(WebCore::ImageDataToDataURL):
* platform/image-encoders/skia/JPEGImageEncoder.cpp:
(WebCore::RGBAtoRGB):
2011-09-26 Raphael Kubo da Costa <kubo@profusion.mobi>
[CMake] Remove FindFreetype.cmake
https://bugs.webkit.org/show_bug.cgi?id=68778
Reviewed by Adam Barth.
CMake has provided its own FindFreetype.cmake forever, so there is no
need to have another implementation in WebKit.
No new tests, just a buildsystem change.
* CMakeListsEfl.txt: Use FREETYPE_{LIBRARIES,INCLUDE_DIRS} instead of
Freetype_{LIBRARIES,INCLUDE_DIRS}.
2011-09-26 Alexei Svitkine <asvitkine@chromium.org>
Fix full-page rubber band overhang appearing when gesturing during a slow page load.
https://bugs.webkit.org/show_bug.cgi?id=68568
Chromium bug: http://code.google.com/p/chromium/issues/detail?id=97243
(This also happens on Safari.)
The problem was that ScrollView::overhangAmount() was returning a full-page overhang due to contentsSize() being 0 briefly during a page load, which was then getting used by ScrollAnimatorChromiumMac.mm to update the overhang on a gesture event. This change makes the relevant logic not return an overhang if the contentsSize() is empty.
Reviewed by Adam Barth.
No new tests, since this is highly timing-related.
* platform/ScrollView.cpp:
(WebCore::ScrollView::overhangAmount):
(WebCore::ScrollView::wheelEvent):
2011-09-26 W. James MacLean <wjmaclean@chromium.org>
[chromium] Revise zoom animator backend to use full transform instead of just scale.
https://bugs.webkit.org/show_bug.cgi?id=68535
Reviewed by Kenneth Russell.
* page/Settings.cpp:
(WebCore::Settings::Settings):
* page/Settings.h:
(WebCore::Settings::setZoomAnimatorScale):
(WebCore::Settings::zoomAnimatorScale):
(WebCore::Settings::setZoomAnimatorPosition):
(WebCore::Settings::zoomAnimatorPosX):
(WebCore::Settings::zoomAnimatorPosY):
* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::LayerRendererChromium::LayerRendererChromium):
(WebCore::LayerRendererChromium::drawLayersInternal):
* platform/graphics/chromium/LayerRendererChromium.h:
(WebCore::LayerRendererChromium::setZoomAnimatorTransform):
* platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
(WebCore::CCLayerTreeHost::CCLayerTreeHost):
(WebCore::CCLayerTreeHost::commitTo):
(WebCore::CCLayerTreeHost::setZoomAnimatorTransform):
(WebCore::CCLayerTreeHost::updateLayers):
* platform/graphics/chromium/cc/CCLayerTreeHost.h:
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
(WebCore::CCLayerTreeHostImpl::setZoomAnimatorTransform):
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
* testing/Internals.cpp:
(WebCore::Internals::setZoomAnimatorTransform):
* testing/Internals.h:
* testing/Internals.idl:
2011-09-26 Dan Bernstein <mitz@apple.com>
REGRESSION (r95926) Assert firing in svg/clip-path/clip-path-on-svg.svg
https://bugs.webkit.org/show_bug.cgi?id=68819
Reviewed by Dave Hyatt.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::scheduleRelayout): Revert to using view() instead of the RenderView**
parameter of isRooted, since only the former returns 0 when the document is detached.
2011-09-26 Vsevolod Vlasov <vsevik@chromium.org>
Web Inspector: XMLHttpRequest console logging messages should link to network panel when possible.
https://bugs.webkit.org/show_bug.cgi?id=67399
Reviewed by Pavel Feldman.
* inspector/ConsoleMessage.cpp:
(WebCore::ConsoleMessage::ConsoleMessage):
* inspector/ConsoleMessage.h:
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::resourceRetrievedByXMLHttpRequest):
* inspector/InspectorConsoleAgent.h:
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::resourceRetrievedByXMLHttpRequestImpl):
* inspector/front-end/ConsoleMessage.js:
(WebInspector.ConsoleMessage.prototype._formatMessage.else.else.linkifier):
(WebInspector.ConsoleMessage.prototype._formatMessage):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel.prototype.showAnchorLocation):
* inspector/front-end/inspector.js:
(WebInspector.linkifyStringAsFragmentWithCustomLinkifier):
(WebInspector.linkifyStringAsFragment):
2011-09-26 Jer Noble <jer.noble@apple.com>
White flash when entering full-screen using element.webkitRequestFullScreen()
https://bugs.webkit.org/show_bug.cgi?id=68481
Reviewed by Simon Fraser.
No new tests; covered by existing full screen tests.
During an animation, renderers may try to paint into the FullScreenRenderer's
GraphicsLayer, and an optimization we previously added for the FullScreenRenderer's
background will cause these paints to fail. Remove this optimization in
containsPaintedContent, and taking non-composited elements into full screen will
animate correctly.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::containsPaintedContent):
2011-09-26 Mihai Parparita <mihaip@chromium.org>
Unreviewed, rolling out r95960.
http://trac.webkit.org/changeset/95960
https://bugs.webkit.org/show_bug.cgi?id=58608
Significantly changes table border rendering
* rendering/RenderObject.cpp:
(WebCore::RenderObject::drawLineForBoxSide):
2011-09-23 Simon Fraser <simon.fraser@apple.com>
Repaint tests don't work in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=68453
Reviewed by Sam Weinig.
Have FrameView keep track of repaint rects when asked to, and
expose this set of repaint rects via private WebKit API for later
use by DumpRenderTree.
The repaint rects are in WebView coordinates, so we have to
unapply the scroll offset.
* WebCore.exp.in:
* page/FrameView.cpp:
(WebCore::FrameView::FrameView):
(WebCore::FrameView::reset):
(WebCore::FrameView::repaintContentRectangle):
(WebCore::FrameView::setTracksRepaints):
* page/FrameView.h:
(WebCore::FrameView::isTrackingRepaints):
(WebCore::FrameView::resetTrackedRepaints):
(WebCore::FrameView::trackedRepaintRects):
2011-09-26 Antti Koivisto <antti@apple.com>
Optimize matching of common pseudo classes
https://bugs.webkit.org/show_bug.cgi?id=68633
Reviewed by Dave Hyatt, Darin Adler, Dimitri Glazkov.
:link, :visited and :focus are quite common. They often used as univeral selectors (including in our
default stylesheet) so we try to match them for all elements in the document. They take always the
slow matching path. In addition we match link styles twice due to visited link pseudo style generation
so the overhead is doubled. As a result substantial portion of our style matching time is spent
dealing with these pseudo classes.
This patch adds new lists to RuleSet for common pseudo class rules. The rules on the lists are only checked
if the element has approprate type and stat. ases where the rightmost pseudo class can then be rejected immediately.
We can also enable the fast path checking for the rest of the selector in many cases.
This seems to be >30% progression in selector matching performance with typical style sheets. It saves ~0.9s
when loading the full HTML5 spec.
* css/CSSStyleSelector.cpp:
(WebCore::RuleData::hasRightmostSelectorMatchingHTMLBasedOnRuleHash):
(WebCore::RuleSet::idRules):
(WebCore::RuleSet::classRules):
(WebCore::RuleSet::tagRules):
(WebCore::RuleSet::shadowPseudoElementRules):
(WebCore::RuleSet::linkPseudoClassRules):
(WebCore::RuleSet::visitedPseudoClassRules):
(WebCore::RuleSet::focusPseudoClassRules):
(WebCore::RuleSet::universalRules):
(WebCore::RuleSet::pageRules):
Add a new lists, some stylistic renamings.
(WebCore::CSSStyleSelector::matchRules):
New link and focus checks.
(WebCore::CSSStyleSelector::matchRulesForList):
(WebCore::CSSStyleSelector::checkSelector):
Inline the rightmost selector tag checking, skip if unnecessary.
(WebCore::isSelectorMatchingHTMLBasedOnRuleHash):
Common pseudo classes now match based on early filtering (though it is not a hash in this case).
(WebCore::RuleData::RuleData):
(WebCore::RuleSet::~RuleSet):
(WebCore::RuleSet::addRule):
Sort pseudo classes to new lists.
(WebCore::RuleSet::collectFeatures):
(WebCore::RuleSet::shrinkToFit):
(WebCore::CSSStyleSelector::matchPageRules):
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkSelector):
Adopt to expanded fast path (this is used by querySelectorAll).
(WebCore::SelectorChecker::fastCheckRightmostSelector):
(WebCore::SelectorChecker::fastCheckSelector):
Rightmost selector is now checked differently than the rest. RuleSet based selection in CSSStyleSelector
is equivalent to fastCheckRightmostSelector().
(WebCore::isFastCheckableRelation):
(WebCore::isFastCheckableMatch):
(WebCore::isFastCheckableRightmostSelector):
(WebCore::SelectorChecker::isFastCheckableSelector):
(WebCore::SelectorChecker::checkOneSelector):
(WebCore::SelectorChecker::commonPseudoClassSelectorMatches):
(WebCore::SelectorChecker::isFrameFocused):
* css/SelectorChecker.h:
(WebCore::SelectorChecker::isCommonPseudoClassSelector):
(WebCore::SelectorChecker::linkMatchesVisitedPseudoClass):
(WebCore::SelectorChecker::matchesFocusPseudoClass):
(WebCore::SelectorChecker::tagMatches):
Refactor a bunch of shared checks into functions.
2011-09-12 Ryosuke Niwa <rniwa@webkit.org>
REGRESSION(r74971): Selection doesn't work correctly in BiDi Text
https://bugs.webkit.org/show_bug.cgi?id=57340
Reviewed by Eric Seidel.
This patch adds the end point adjustment mechanism at bidi boundaries similar to the one NSTextView implements.
To understand the problem, suppose we have strong RTL letters "ABC" in a LTR block (visually laid out as CBA).
Per NSTextView convention, logical offsets between each letter is placed as (0)C(2)B(1)A(3). In other words,
placing the caret visually on the left of CBA yields the position inside the text node of "ABC" at offset 0.
Likewise, placing it between C and B yields ("ABC", 2), and placing it on the right of CBA yields ("ABC", 3).
Now suppose a user attempts to select the letter A by a mouse drag from the right of CBA to a point between
B and A. First, the initial mouse down places the selection's base at ("ABC", 3). Then as the mouse pointer
moves to a point on the left of A, the selection's extent is set at ("ABC", 1), selecting "BC".
To mitigate this issue, NSTextView adjusts selection base and extent under certain conditions. In the above
example, NSTextView detects user's intent and changes the selection's base to ("ABC", 0) temporarily.
This patch implements a similar trick on WebKit. We adjust the base or the extent when they're at the left
end or at the right end of a bidi run and the other end is inside of the run. In the above example, the
base position on the right of A is the right end of a bidi run and the extent position between B and A is
inside the same run (CBA), so we would adjust the base to be ("ABC", 0) as NSTextView does.
Take another example abcABC. Note offsets are assigned as (0)a(1)b(2)c(3)C(5)B(4)A(6) When the user starts
a mouse drag from the right of A to a point between B and A, we adjust the selection base to be ("abcABC", 3)
because the base is at the right end of a bidi run and the extent is in the same run. We keep the adjustment
when the mouse pointer moves to a point between C and B. However, when the mouser pointer reaches a point
between letters b and c, the selection extent is placed at ("abcABC", 2). Because the extent is outside of
the bidi run started from the selection base, we restore the original base at this point. Had we not done this,
we'll end up selecting just "c".
While this algorithm is implemented in FrameSelection::setNonDirectionalSelectionIfNeeded, this patch adds
various member functions to RenderedPosition to facilitate abstraction around inline boxes and bidi runs.
Test: editing/selection/select-bidi-run.html
* editing/FrameSelection.cpp:
(WebCore::adjustEndpointsAtBidiBoundary): Added. Implements the endpoints adjustment algorithm.
(WebCore::FrameSelection::setNonDirectionalSelectionIfNeeded): Calls adjustEndpointsAtBidiBoundary, and
restores the original base as needed.
* editing/FrameSelection.h:
* editing/RenderedPosition.cpp:
(WebCore::RenderedPosition::RenderedPosition):
(WebCore::RenderedPosition::prevLeafChild): Added to cache prevLeafChild of the current inline box.
(WebCore::RenderedPosition::nextLeafChild): Ditto for nextLeafChild.
(WebCore::RenderedPosition::isEquivalent): Compares two RenderedPositions considering neighboring inline boxes
so that the rightmost position in a box and the leftmost position in the following box is considered equal.
(WebCore::RenderedPosition::bidiLevelOnLeft): Added. Returns the bidi level of the run on the left. We can't
add a generic bidiLevel to this class because it'll be ambiguous at bidi boundaries.
(WebCore::RenderedPosition::bidiLevelOnRight): Ditto for the run on the right.
(WebCore::RenderedPosition::leftBoundaryOfBidiRun): Added.
(WebCore::RenderedPosition::rightBoundaryOfBidiRun): Added.
(WebCore::RenderedPosition::atLeftBoundaryOfBidiRun): Added.
(WebCore::RenderedPosition::atRightBoundaryOfBidiRun): Added.
(WebCore::RenderedPosition::positionAtLeftBoundaryOfBiDiRun): Returns Position at the left edge of a bidi run
if RenderedPosition is at such a position. Asserts atLeftBoundaryOfBidiRun.
(WebCore::RenderedPosition::positionAtRightBoundaryOfBiDiRun): Ditto for the right edge.
* editing/RenderedPosition.h:
(WebCore::RenderedPosition::atLeftBoundaryOfBidiRun): Added.
(WebCore::RenderedPosition::atRightBoundaryOfBidiRun): Added.
(WebCore::RenderedPosition::atLeftmostOffsetInBox): Added.
(WebCore::RenderedPosition::atRightmostOffsetInBox): Added.
(WebCore::RenderedPosition::uncachedInlineBox): Added. We can't use a static const variable because gcc thinks
reinterpret_cast<InlineBox*>(1) is not an integral value.
(WebCore::RenderedPosition::RenderedPosition):
* editing/VisibleSelection.h:
(WebCore::VisibleSelection::visibleBase): Added.
(WebCore::VisibleSelection::visibleExtent): Added.
* page/EventHandler.cpp:
(WebCore::EventHandler::updateSelectionForMouseDrag):
2011-09-26 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r95256.
http://trac.webkit.org/changeset/95256
https://bugs.webkit.org/show_bug.cgi?id=68814
Temporary CRASH calls no longer needed (Requested by enne on
#webkit).
* platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
(WebCore::CCLayerTreeHost::commitTo):
2011-09-26 Mark Rowe <mrowe@apple.com>
<http://webkit.org/b/68809> IconDatabase::syncThreadMainLoop can assert if wakeSyncThread is called before thread starts executing
If wakeSyncThread is called before syncThreadMainLoop starts executing then m_syncThreadHasWorkToDo would be set
while executing the body of the sync thread loop, causing us to skip blocking on the condition variable. This would
lead to us hitting the assertion failure due to m_disabledSuddenTerminationForSyncThread being false, unless the main
thread happened to call wakeSyncThread a second time while the first loop iteration was executing.
Reviewed by Anders Carlsson.
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::syncThreadMainLoop): Clear m_syncThreadHasWorkToDo to indicate that we're about to perform
all pending work.
2011-09-26 Antaryami Pandia <antaryami.pandia@motorola.com>
Groove/inset/outset borders show solid if the color is black.
https://bugs.webkit.org/show_bug.cgi?id=58608
Reviewed by Simon Fraser.
Lightened the border side colors when drawing borders with styles as
Outset/Inset/Groove/Ridge.
Tests: fast/borders/border-groove.html
fast/borders/border-inset.html
fast/borders/border-outset.html
fast/borders/border-ridge.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::drawLineForBoxSide):
2011-09-26 Abhishek Arya <inferno@chromium.org>
Delete retired custom font data only on document
destruction, and not on recalc style.
https://bugs.webkit.org/show_bug.cgi?id=68805
Reviewed by Dave Hyatt.
Test: fast/text/custom-font-data-crash.html
* dom/Document.cpp:
(WebCore::Document::recalcStyle):
2011-09-23 Adrienne Walker <enne@google.com>
[chromium] Update VideoLayerChromium textures after texture resources are reclaimed
https://bugs.webkit.org/show_bug.cgi?id=68742
Reviewed by James Robinson.
If video textures are reclaimed (such as during a visibility change on
a tab), the dirty rect for the layer is empty and it skips out of
updating compositor resources, leaving the video textures invalid.
Instead, check the textures here to make sure they're still valid
first before early out so that they can get reupdated if necessary.
Additionally, fix a small bug in pushPropertiesTo where 1 plane RGB
videos would not get drawn because all 3 planes didn't have valid
textures.
Test: compositing/video-page-visibility.html
* platform/graphics/chromium/VideoLayerChromium.cpp:
(WebCore::VideoLayerChromium::VideoLayerChromium):
(WebCore::VideoLayerChromium::cleanupResources):
(WebCore::VideoLayerChromium::updateCompositorResources):
(WebCore::VideoLayerChromium::pushPropertiesTo):
(WebCore::VideoLayerChromium::setLayerTreeHost):
(WebCore::VideoLayerChromium::texturesValid):
* platform/graphics/chromium/VideoLayerChromium.h:
2011-09-26 Pavel Feldman <pfeldman@google.com>
Web Inspector: introduce protocol backwards compatibility validator.
https://bugs.webkit.org/show_bug.cgi?id=68800
Reviewed by Yury Semikhatsky.
* inspector/Inspector.json:
* inspector/Inspector.draft-01.json: Copied from Source/WebCore/inspector/Inspector.json.
* inspector/validate-protocol-compatibility: Added.
2011-09-26 Andreas Kling <kling@webkit.org>
[Qt] Unused variable in QNetworkReplyHandler::sendNetworkRequest.
https://bugs.webkit.org/show_bug.cgi?id=68798
Reviewed by Noam Rosenthal.
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::sendNetworkRequest):
2011-09-26 Ilya Tikhonovsky <loislo@chromium.org>
Second unreviewed build fix for r95941
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::willCallFunctionImpl):
2011-09-26 Ilya Tikhonovsky <loislo@chromium.org>
Unreviewed build fix for webkit builds after r95941.
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::willCallFunctionImpl):
2011-09-26 Andrey Kosyakov <caseq@chromium.org>
Web Inspector: [Extensions API] allow resources to hook on click on resource links
https://bugs.webkit.org/show_bug.cgi?id=68528
Reviewed by Yury Semikhatsky.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/front-end/ExtensionAPI.js:
(injectedExtensionAPI.Console.prototype.get Severity):
(injectedExtensionAPI.Panels.prototype.create):
(injectedExtensionAPI.Panels.prototype.setOpenResourceHandler.else.callbackWrapper):
(injectedExtensionAPI.Panels.prototype.setOpenResourceHandler):
(injectedExtensionAPI.ExtensionServerClient.prototype.hasHandler):
(injectedExtensionAPI.ExtensionServerClient.prototype.deregisterHandler):
* inspector/front-end/ExtensionServer.js:
(WebInspector.ExtensionServer):
(WebInspector.ExtensionServer.prototype._onSetOpenResourceHandler):
(WebInspector.ExtensionServer.prototype._handleAnchorClicked):
(WebInspector.ExtensionServer.prototype._addExtensions):
(WebInspector.ExtensionServer.prototype._addExtension):
(WebInspector.ExtensionServer.prototype._registerExtension):
* inspector/front-end/SettingsScreen.js:
(WebInspector.SettingsScreen):
(WebInspector.SettingsScreen.prototype._createCustomSetting):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/helpScreen.css:
(.help-content select):
(.help-content select:disabled):
(.help-content option):
* inspector/front-end/inspector.html:
* inspector/front-end/inspector.js:
(WebInspector.set attached):
(WebInspector._showAnchorLocation):
2011-09-23 Ilya Tikhonovsky <loislo@chromium.org>
Web Inspector: Timeline: record root event for the function calls enforced by console eval.
https://bugs.webkit.org/show_bug.cgi?id=68695
In a complex web application developer might want to timeline a specific piece of code.
In this case he can do the next steps:
1) start timeline;
2) eval a command in console;
3) stop timeline.
I think it'd be nice to have a root event for the all the events that happened as the result of such eval.
Reviewed by Yury Semikhatsky.
Test: inspector/timeline/timeline-injected-script-eval.html
* bindings/v8/ScriptFunctionCall.cpp:
* inspector/InjectedScript.cpp:
(WebCore::InjectedScript::makeCall):
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::willCallFunctionImpl):
2011-09-26 No'am Rosenthal <noam.rosenthal@nokia.com>
[Texmap][Qt] Enable TextureMapperGL in platforms where BGRA is not present
https://bugs.webkit.org/show_bug.cgi?id=65473
Reviewed by Andreas Kling.
For now, swap RGBA->BGRA in software if we're in OpenGL ES 2.
We do that by iterating on the pixels and manually swapping each pixel's red and blue
values. This can be done faster with shaders, but for now this is a working solution
for platforms without BGRA support.
No new tests. Existing layout tests cover this.
* platform/graphics/opengl/TextureMapperGL.cpp:
(WebCore::BitmapTextureGL::endPaint):
* platform/graphics/opengl/TextureMapperGL.h:
* platform/graphics/qt/TextureMapperQt.cpp:
(WebCore::RGBA32PremultimpliedBufferQt::swapRGB):
2011-09-26 Sergio Villar Senin <svillar@igalia.com>
[GTK] Fix coding style bits in ResourceHandleSoup.cpp
https://bugs.webkit.org/show_bug.cgi?id=68634
Reviewed by Martin Robinson.
No new tests needed.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::ResourceHandle::defaultSession):
2011-09-26 James Robinson <jamesr@chromium.org>
[mac] Timestamp parameter to requestAnimationFrame is busted in USE(REQUEST_ANIMATION_FRAME_TIMER) path
https://bugs.webkit.org/show_bug.cgi?id=68769
Reviewed by Simon Fraser.
Convert the time parameter from double to DOMTimeStamp using convertSecondsToDOMTimeStamp rather than relying on
implicit double->long conversion, which ignores the units of the value.
Test: fast/animation/request-animation-frame-timestamps-advance.html
* dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::animationTimerFired):
2011-09-25 Mark Hahnenberg <mhahnenberg@apple.com>
Add custom vtable struct to ClassInfo struct
https://bugs.webkit.org/show_bug.cgi?id=68567
Reviewed by Oliver Hunt.
No new tests.
Added CREATE_METHOD_TABLE macro to generate the custom vtable for the
specified class in its ClassInfo. Also added to it the first function to use
this macro, visitChildren. This is part of the process of getting rid of all
C++ virtual methods in JSCell. Eventually all virtual functions in JSCell
that can't easily be converted to non-virtual functions will be put into
this custom vtable structure.
* bindings/js/JSAudioConstructor.cpp:
* bindings/js/JSDOMGlobalObject.cpp:
* bindings/js/JSDOMWindowBase.cpp:
* bindings/js/JSDOMWindowShell.cpp:
* bindings/js/JSImageConstructor.cpp:
* bindings/js/JSImageDataCustom.cpp:
(WebCore::toJS):
* bindings/js/JSOptionConstructor.cpp:
* bindings/js/JSWorkerContextBase.cpp:
Changed the bindings generator to add the call to the CREATE_METHOD_TABLE macro where
necessary.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
(GenerateConstructorDefinition):
* bindings/scripts/test/JS/JSTestInterface.cpp:
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
* bridge/c/CRuntimeObject.cpp:
* bridge/c/c_instance.cpp:
* bridge/jni/jsc/JavaInstanceJSC.cpp:
* bridge/jni/jsc/JavaRuntimeObject.cpp:
* bridge/objc/ObjCRuntimeObject.mm:
* bridge/objc/objc_instance.mm:
* bridge/objc/objc_runtime.mm:
* bridge/qt/qt_instance.cpp:
* bridge/qt/qt_pixmapruntime.cpp:
* bridge/qt/qt_runtime.cpp:
* bridge/runtime_array.cpp:
* bridge/runtime_method.cpp:
* bridge/runtime_object.cpp:
2011-09-25 Eunmi Lee <eunmi15.lee@samsung.com>
[EFL] Move GtkWidgetBackingStoreCairo to the cairo directory and modify to use in the EFL.
https://bugs.webkit.org/show_bug.cgi?id=63502
Reviewed by Martin Robinson.
The gtk/GtkWidgetBackingStoreCairo.cpp is moved to the cairo/WidgetBackingStoreCairo.cpp and
some codes for EFL are added.
WidgetBackingStoreCairo creates cairo_image_surface and has a role to copy reusable area
when scrolling. So, it will be used in the WebKit2 EFL port's BackingStore.
* CMakeListsEfl.txt:
* GNUmakefile.list.am:
* platform/cairo/WidgetBackingStore.h:
* platform/cairo/WidgetBackingStoreCairo.cpp: Renamed from Source/WebCore/platform/gtk/GtkWidgetBackingStoreCairo.cpp.
(WebCore::createSurfaceForBackingStore):
(WebCore::WidgetBackingStorePrivate::create):
(WebCore::WidgetBackingStorePrivate::WidgetBackingStorePrivate):
(WebCore::WidgetBackingStore::create):
(WebCore::WidgetBackingStore::WidgetBackingStore):
(WebCore::WidgetBackingStore::~WidgetBackingStore):
(WebCore::WidgetBackingStore::cairoSurface):
(WebCore::WidgetBackingStore::scroll):
* platform/gtk/GtkWidgetBackingStoreX11.cpp:
2011-09-25 Adam Barth <abarth@webkit.org>
Finish removing PLATFORM(BREWMP) by removing associated code
https://bugs.webkit.org/show_bug.cgi?id=68779
Reviewed by Sam Weinig.
When Geoffrey Garen removed PLATFORM(BREWMP) in
http://trac.webkit.org/changeset/95555, he did not remove all the
associated code. This completes the work started in r95555 by removing
all the code assoicated with PLATFORM(BREWMP).
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* bindings/js/ScriptControllerBrew.cpp: Removed.
* editing/brew: Removed.
* editing/brew/EditorBrew.cpp: Removed.
* gyp/WebCore.gyp:
* page/brew: Removed.
* page/brew/ChromeClientBrew.h: Removed.
* page/brew/DragControllerBrew.cpp: Removed.
* page/brew/EventHandlerBrew.cpp: Removed.
* page/brew/FrameBrew.cpp: Removed.
* platform/brew: Removed.
* platform/brew/ClipboardBrew.cpp: Removed.
* platform/brew/ClipboardBrew.h: Removed.
* platform/brew/ContextMenuBrew.cpp: Removed.
* platform/brew/ContextMenuItemBrew.cpp: Removed.
* platform/brew/CursorBrew.cpp: Removed.
* platform/brew/DragDataBrew.cpp: Removed.
* platform/brew/EventLoopBrew.cpp: Removed.
* platform/brew/FileSystemBrew.cpp: Removed.
* platform/brew/KURLBrew.cpp: Removed.
* platform/brew/LanguageBrew.cpp: Removed.
* platform/brew/LocalizedStringsBrew.cpp: Removed.
* platform/brew/LoggingBrew.cpp: Removed.
* platform/brew/MIMETypeRegistryBrew.cpp: Removed.
* platform/brew/PasteboardBrew.cpp: Removed.
* platform/brew/PlatformKeyboardEventBrew.cpp: Removed.
* platform/brew/PlatformMouseEventBrew.cpp: Removed.
* platform/brew/PlatformTouchEventBrew.cpp: Removed.
* platform/brew/PlatformTouchPointBrew.cpp: Removed.
* platform/brew/PopupMenuBrew.cpp: Removed.
* platform/brew/PopupMenuBrew.h: Removed.
* platform/brew/SSLKeyGeneratorBrew.cpp: Removed.
* platform/brew/ScreenBrew.cpp: Removed.
* platform/brew/ScrollbarThemeBrew.cpp: Removed.
* platform/brew/ScrollbarThemeBrew.h: Removed.
* platform/brew/SearchPopupMenuBrew.cpp: Removed.
* platform/brew/SearchPopupMenuBrew.h: Removed.
* platform/brew/SharedBufferBrew.cpp: Removed.
* platform/brew/SharedTimerBrew.cpp: Removed.
* platform/brew/SoundBrew.cpp: Removed.
* platform/brew/SystemTimeBrew.cpp: Removed.
* platform/brew/TemporaryLinkStubs.cpp: Removed.
* platform/brew/WidgetBrew.cpp: Removed.
* platform/graphics/brew: Removed.
* platform/graphics/brew/IconBrew.cpp: Removed.
* platform/graphics/brew/ImageBrew.cpp: Removed.
* platform/graphics/brew/IntPointBrew.cpp: Removed.
* platform/graphics/brew/IntSizeBrew.cpp: Removed.
* platform/network/brew: Removed.
* platform/network/brew/DNSBrew.cpp: Removed.
* platform/network/brew/SocketStreamError.h: Removed.
* platform/network/brew/SocketStreamHandle.h: Removed.
* platform/network/brew/SocketStreamHandleBrew.cpp: Removed.
* platform/network/brew/SocketStreamHandlePrivate.h: Removed.
* platform/text/brew: Removed.
* platform/text/brew/TextBoundariesBrew.cpp: Removed.
* platform/text/brew/TextBreakIteratorBrew.cpp: Removed.
* platform/text/brew/TextCodecBrew.cpp: Removed.
* platform/text/brew/TextCodecBrew.h: Removed.
2011-09-25 Kentaro Hara <haraken@chromium.org>
Implement a CloseEvent constructor for JSC
https://bugs.webkit.org/show_bug.cgi?id=68340
Reviewed by Oliver Hunt.
The spec of the CloseEvent constructor is here:
http://dev.w3.org/html5/websockets/#closeevent
Test: fast/events/constructors/close-event-constructor.html
* bindings/generic/EventConstructors.h: Added a definition for the CloseEvent constructor.
* bindings/js/JSEventConstructors.cpp: Added #includes for CloseEvent.
* websockets/CloseEvent.h: Added a definition for CloseEventInit.
(WebCore::CloseEventInit::CloseEventInit):
(WebCore::CloseEvent::create):
(WebCore::CloseEvent::CloseEvent):
* websockets/CloseEvent.idl: Makes CloseEvent constructible.
2011-09-25 Mark Rowe <mrowe@apple.com>
<rdar://problem/10177824> IconDatabase’s use of ThreadCondition leads to assertion failures in the face of spurious wakeups
It's possible for ThreadCondition::wait to return spuriously without the condition having been signaled.
When that happens we should immediately return to waiting rather than doing our normal work, as some of that
work relies on wakeSyncThread having been called to signal the condition.
Reviewed by Sam Weinig.
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::IconDatabase):
(WebCore::IconDatabase::wakeSyncThread): Note that we have work for the sync thread to do.
(WebCore::IconDatabase::syncThreadMainLoop): If we were woken with no work to do, immediately
go back to waiting on the condition variable. Otherwise, reset m_syncThreadHasWorkToDo and then
do that work. We also switch to moving m_disabledSuddenTerminationForSyncThread immediately in to
our local shouldReenableSuddenTermination variable since it can be updated by other threads while
we don't hold the lock. This makes it inappropriate to make assumptions about its value after dropping
and reacquiring the lock.
* loader/icon/IconDatabase.h:
2011-09-25 Dan Bernstein <mitz@apple.com>
<rdar://problem/10156263> ASSERT in WebCore::FrameView::scheduleRelayoutOfSubtree
Reviewed by Sam Weinig.
Test: fast/dynamic/subtree-unrooted.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::scheduleRelayout): Replaced the check that the renderer is parented,
which was added in r21162, with a check that it is “rooted”.
2011-09-24 Abhishek Arya <inferno@chromium.org>
Issues with merging block children of a ruby
base with another ruby base having inline children.
https://bugs.webkit.org/show_bug.cgi?id=66124
Reviewed by Dan Bernstein.
Test: fast/ruby/ruby-base-merge-block-children-crash.html
* rendering/RenderRubyBase.cpp:
(WebCore::RenderRubyBase::moveInlineChildren): add a firstChild()
check to prevent empty anonymous block addition, just like
moveBlockChildren method.
* rendering/RenderRubyBase.cpp:
(WebCore::RenderRubyBase::moveBlockChildren): This was incorrectly
doing optimizations to see if current ruby base has only inline
children before beforeChild and then trying to take out them from
their parent anonymous blocks. The problem is those inlines could
be split and have continuations because of encountering a block
inside inline flow. In those cases, we cannot take the inline out.
So, we should just make children non-inline in the destination
block and transfer the children as it-is.
* rendering/RenderRubyBase.h: remove unncessary functions.
2011-09-25 Adam Barth <abarth@webkit.org>
Remove PLATFORM(HAIKU) and associated code
https://bugs.webkit.org/show_bug.cgi?id=68774
Reviewed by Sam Weinig.
As discussed on webkit-dev, the Haiku port has been inactive for over a
year. A year and a half ago, we discussed removing the port, but folks
said they planned to work on it more. That work does not appear to
have happened in the intervening time.
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* bindings/js/ScriptControllerHaiku.cpp: Removed.
* editing/haiku: Removed.
* editing/haiku/EditorHaiku.cpp: Removed.
* gyp/WebCore.gyp:
* loader/cache/CachedFont.cpp:
* page/EventHandler.cpp:
(WebCore::EventHandler::eventInvertsTabsToLinksClientCallResult):
* page/haiku: Removed.
* page/haiku/DragControllerHaiku.cpp: Removed.
* page/haiku/EventHandlerHaiku.cpp: Removed.
* page/haiku/FrameHaiku.cpp: Removed.
* platform/ContextMenuItem.h:
* platform/Cursor.h:
* platform/DragData.h:
* platform/DragImage.h:
* platform/PlatformKeyboardEvent.h:
* platform/PlatformMenuDescription.h:
* platform/PlatformMouseEvent.h:
* platform/Widget.h:
* platform/graphics/BitmapImage.h:
* platform/graphics/Color.h:
* platform/graphics/FloatPoint.h:
* platform/graphics/FloatRect.h:
* platform/graphics/Gradient.h:
* platform/graphics/GraphicsContext.cpp:
* platform/graphics/GraphicsContext.h:
* platform/graphics/ImageBufferData.h:
* platform/graphics/ImageSource.h:
* platform/graphics/IntPoint.h:
* platform/graphics/IntRect.h:
* platform/graphics/IntSize.h:
* platform/graphics/Path.h:
* platform/graphics/Pattern.h:
* platform/graphics/SimpleFontData.h:
* platform/graphics/haiku: Removed.
* platform/graphics/haiku/ColorHaiku.cpp: Removed.
* platform/graphics/haiku/FloatPointHaiku.cpp: Removed.
* platform/graphics/haiku/FloatRectHaiku.cpp: Removed.
* platform/graphics/haiku/FontCacheHaiku.cpp: Removed.
* platform/graphics/haiku/FontCustomPlatformData.cpp: Removed.
* platform/graphics/haiku/FontCustomPlatformData.h: Removed.
* platform/graphics/haiku/FontHaiku.cpp: Removed.
* platform/graphics/haiku/FontPlatformData.h: Removed.
* platform/graphics/haiku/GlyphPageTreeNodeHaiku.cpp: Removed.
* platform/graphics/haiku/GradientHaiku.cpp: Removed.
* platform/graphics/haiku/GraphicsContextHaiku.cpp: Removed.
* platform/graphics/haiku/IconHaiku.cpp: Removed.
* platform/graphics/haiku/ImageBufferDataHaiku.h: Removed.
* platform/graphics/haiku/ImageBufferHaiku.cpp: Removed.
* platform/graphics/haiku/ImageHaiku.cpp: Removed.
* platform/graphics/haiku/IntPointHaiku.cpp: Removed.
* platform/graphics/haiku/IntRectHaiku.cpp: Removed.
* platform/graphics/haiku/IntSizeHaiku.cpp: Removed.
* platform/graphics/haiku/PathHaiku.cpp: Removed.
* platform/graphics/haiku/SimpleFontDataHaiku.cpp: Removed.
* platform/graphics/haiku/StillImageHaiku.cpp: Removed.
* platform/graphics/haiku/StillImageHaiku.h: Removed.
* platform/haiku: Removed.
* platform/haiku/ClipboardHaiku.cpp: Removed.
* platform/haiku/ClipboardHaiku.h: Removed.
* platform/haiku/ContextMenuHaiku.cpp: Removed.
* platform/haiku/ContextMenuItemHaiku.cpp: Removed.
* platform/haiku/CookieJarHaiku.cpp: Removed.
* platform/haiku/CursorHaiku.cpp: Removed.
* platform/haiku/DragDataHaiku.cpp: Removed.
* platform/haiku/DragImageHaiku.cpp: Removed.
* platform/haiku/EventLoopHaiku.cpp: Removed.
* platform/haiku/FileSystemHaiku.cpp: Removed.
* platform/haiku/LocalizedStringsHaiku.cpp: Removed.
* platform/haiku/LoggingHaiku.cpp: Removed.
* platform/haiku/MIMETypeRegistryHaiku.cpp: Removed.
* platform/haiku/PasteboardHaiku.cpp: Removed.
* platform/haiku/PlatformKeyboardEventHaiku.cpp: Removed.
* platform/haiku/PlatformMouseEventHaiku.cpp: Removed.
* platform/haiku/PlatformWheelEventHaiku.cpp: Removed.
* platform/haiku/PopupMenuHaiku.cpp: Removed.
* platform/haiku/PopupMenuHaiku.h: Removed.
* platform/haiku/RenderThemeHaiku.cpp: Removed.
* platform/haiku/RenderThemeHaiku.h: Removed.
* platform/haiku/ScreenHaiku.cpp: Removed.
* platform/haiku/ScrollbarThemeHaiku.cpp: Removed.
* platform/haiku/ScrollbarThemeHaiku.h: Removed.
* platform/haiku/SearchPopupMenuHaiku.cpp: Removed.
* platform/haiku/SearchPopupMenuHaiku.h: Removed.
* platform/haiku/SharedBufferHaiku.cpp: Removed.
* platform/haiku/SharedTimerHaiku.cpp: Removed.
* platform/haiku/SoundHaiku.cpp: Removed.
* platform/haiku/TemporaryLinkStubs.cpp: Removed.
* platform/haiku/WidgetHaiku.cpp: Removed.
* platform/image-decoders/haiku: Removed.
* platform/image-decoders/haiku/ImageDecoderHaiku.cpp: Removed.
* platform/text/UnicodeRange.h:
* platform/text/haiku: Removed.
* platform/text/haiku/TextBreakIteratorInternalICUHaiku.cpp: Removed.
2011-09-25 Adam Barth <abarth@webkit.org>
Attempted build fixes for GTK and Qt.
* GNUmakefile.list.am:
* WebCore.pro:
2011-09-24 Adam Barth <abarth@webkit.org>
Always enable ENABLE(OFFLINE_WEB_APPLICATIONS)
https://bugs.webkit.org/show_bug.cgi?id=68767
Reviewed by Eric Seidel.
As discussed on webkit-dev, almost everyone has this enable turned on
and this feature is unlikely to be removed from the web platform given
its popularity.
* CMakeLists.txt:
* Configurations/FeatureDefines.xcconfig:
* GNUmakefile.am:
* GNUmakefile.list.am:
* WebCore.exp.in:
* WebCore.pro:
* bindings/cpp/WebDOMEventTarget.cpp:
(toWebKit):
* bindings/js/JSEventTarget.cpp:
(WebCore::toJS):
(WebCore::toEventTarget):
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::convertEventTargetToV8Object):
* dom/EventTarget.cpp:
(WebCore::EventTarget::toDOMApplicationCache):
* dom/EventTarget.h:
* features.pri:
* history/PageCache.cpp:
(WebCore::logCanCacheFrameDecision):
(WebCore::PageCache::canCachePageContainingThisFrame):
* html/HTMLHtmlElement.cpp:
(WebCore::HTMLHtmlElement::insertedByParser):
* html/HTMLHtmlElement.h:
* html/HTMLMediaElement.cpp:
(WebCore::createFileURLForApplicationCacheResource):
(WebCore::HTMLMediaElement::loadResource):
* html/ImageDocument.cpp:
(WebCore::ImageDocument::createDocumentStructure):
* html/MediaDocument.cpp:
(WebCore::MediaDocumentParser::createDocumentStructure):
* html/PluginDocument.cpp:
(WebCore::PluginDocumentParser::createDocumentStructure):
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
* inspector/InspectorApplicationCacheAgent.cpp:
* inspector/InspectorApplicationCacheAgent.h:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::connectFrontend):
(WebCore::InspectorController::disconnectFrontend):
* inspector/InspectorController.h:
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::updateApplicationCacheStatusImpl):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::networkStateChanged):
(WebCore::InspectorInstrumentation::updateApplicationCacheStatus):
* inspector/InstrumentingAgents.h:
(WebCore::InstrumentingAgents::InstrumentingAgents):
(WebCore::InstrumentingAgents::setInspectorApplicationCacheAgent):
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::connectFrontend):
* inspector/generate-inspector-idl:
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::mainReceivedError):
(WebCore::DocumentLoader::stopLoading):
(WebCore::DocumentLoader::detachFromFrame):
(WebCore::DocumentLoader::handledOnloadEvents):
* loader/DocumentLoader.h:
(WebCore::DocumentLoader::applicationCacheHost):
* loader/EmptyClients.h:
(WebCore::EmptyChromeClient::reachedApplicationCacheOriginQuota):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadResourceSynchronously):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::willSendRequest):
(WebCore::MainResourceLoader::didReceiveResponse):
(WebCore::MainResourceLoader::didReceiveData):
(WebCore::MainResourceLoader::didFinishLoading):
(WebCore::MainResourceLoader::didFail):
(WebCore::MainResourceLoader::load):
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::start):
(WebCore::ResourceLoader::willSendRequest):
(WebCore::ResourceLoader::didSendData):
(WebCore::ResourceLoader::didReceiveResponse):
(WebCore::ResourceLoader::didReceiveData):
(WebCore::ResourceLoader::didFinishLoading):
(WebCore::ResourceLoader::didFail):
(WebCore::ResourceLoader::wasBlocked):
(WebCore::ResourceLoader::cannotShowURL):
(WebCore::ResourceLoader::shouldUseCredentialStorage):
(WebCore::ResourceLoader::willCacheResponse):
* loader/ResourceLoader.h:
* loader/appcache/ApplicationCache.cpp:
* loader/appcache/ApplicationCache.h:
* loader/appcache/ApplicationCacheGroup.cpp:
* loader/appcache/ApplicationCacheGroup.h:
* loader/appcache/ApplicationCacheHost.cpp:
* loader/appcache/ApplicationCacheHost.h:
* loader/appcache/ApplicationCacheResource.cpp:
* loader/appcache/ApplicationCacheResource.h:
* loader/appcache/ApplicationCacheStorage.cpp:
* loader/appcache/ApplicationCacheStorage.h:
* loader/appcache/DOMApplicationCache.cpp:
* loader/appcache/DOMApplicationCache.h:
* loader/appcache/DOMApplicationCache.idl:
* loader/appcache/ManifestParser.cpp:
(WebCore::parseManifest):
* loader/appcache/ManifestParser.h:
* loader/chromium/ResourceLoaderChromium.cpp:
(WebCore::ResourceLoader::didDownloadData):
* page/ChromeClient.h:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::clear):
(WebCore::DOMWindow::applicationCache):
* page/DOMWindow.h:
(WebCore::DOMWindow::optionalApplicationCache):
* page/DOMWindow.idl:
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::startElementNs):
* xml/parser/XMLDocumentParserQt.cpp:
(WebCore::XMLDocumentParser::parseStartElement):
2011-09-24 Adam Barth <abarth@webkit.org>
Remove ENABLE(WCSS) and associated code
https://bugs.webkit.org/show_bug.cgi?id=68759
Reviewed by Darin Adler.
As discussed on webkit-dev, we are removing this feature from trunk to
reduce the number of different configurations.
* CodeGenerators.pri:
* GNUmakefile.am:
* WebCore.pro:
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
* css/CSSParser.h:
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
* css/WCSSPropertyNames.in: Removed.
* css/WCSSValueKeywords.in: Removed.
* features.pri:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::HTMLInputElement):
* html/HTMLInputElement.h:
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::sanitizeValue):
(WebCore::TextFieldInputType::handleBeforeTextInsertedEvent):
* rendering/RenderMarquee.cpp:
(WebCore::RenderMarquee::start):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::createObject):
* rendering/style/RenderStyleConstants.h:
2011-09-24 Young Han Lee <joybro@company100.net>
SVGAnimation does not support 'values' for from-to animations
https://bugs.webkit.org/show_bug.cgi?id=64859
Reviewed by Dirk Schulze.
If from-to animation have discrete calc-mode and have a 'keyTimes' list, values of
the keyTimes indicate the begin and the end of the animation respectively.[1][2]
When keyTimes is given, calculate the progress percentage of the animation with it
even for from-to animation.
[1] http://www.w3.org/TR/SVG/animate.html#ValueAttributes
[2] http://www.w3.org/TR/2001/REC-smil-animation-20010904/#AnimFuncValues
Test: svg/animations/animate-from-to-keyTimes.html
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::calculatePercentForFromTo):
(WebCore::SVGAnimationElement::updateAnimation):
* svg/SVGAnimationElement.h:
2011-09-23 Chris Fleizach <cfleizach@apple.com>
WebKit does not expose AXPlaceholder value on password fields
https://bugs.webkit.org/show_bug.cgi?id=68745
Reviewed by Oliver Hunt.
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
2011-09-23 Mark Rowe <mrowe@apple.com>
Fix the build.
* loader/CrossOriginAccessControl.cpp:
(WebCore::passesAccessControlCheck): Get rid of the exit-time destructor.
2011-09-23 Adam Barth <abarth@webkit.org>
Canvas security checks show up on HTML5GamingTest benchmark
https://bugs.webkit.org/show_bug.cgi?id=68743
Reviewed by Oliver Hunt.
Prior to this patch, the canvas security checks took as much as 4% of
the time on the HTML5GamingTest benchmark:
http://craftymind.com/factory/guimark2/HTML5GamingTest.html
This patch uses a couple of AtomicStrings and shuffles around the order
of the security check to take this down to around 0.1% (which is near
the noise floor of what I can measure with my profiler).
* html/canvas/CanvasRenderingContext.cpp:
(WebCore::CanvasRenderingContext::wouldTaintOrigin):
* loader/CrossOriginAccessControl.cpp:
(WebCore::passesAccessControlCheck):
2011-09-23 Justin Novosad <junov@chromium.org>
Unwarranted DOM Exception when canvas2D drawImage is called with src
rect out of bounds
https://bugs.webkit.org/show_bug.cgi?id=65709
Reviewed by Oliver Hunt.
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawImage):
Return early without throwing an exception if source rectangle is out of
bounds to match the spec.
2011-09-23 Lukasz Slachciak <l.slachciak@samsung.com>
Printing of notImplemented() when logging enabled.
https://bugs.webkit.org/show_bug.cgi?id=64590
Printing of notImplemented() method was enabled on Debug builds only.
Now it is enabled when logging is enabled.
Reviewed by Oliver Hunt.
No new tests because there is no new functionality.
* platform/NotImplemented.h: Non-debug mode replaced with non-logging mode.
2011-09-23 Mihai Parparita <mihaip@chromium.org>
[Chromium] REGRESSION (r95725): Resizing a window doesn't resize the contents
https://bugs.webkit.org/show_bug.cgi?id=68730
Reviewed by James Robinson.
Adds a missing contentsResized() call in ScrollView::setFrameRect.
Test: fast/dom/Window/window-resize-contents.html
* platform/ScrollView.cpp:
(WebCore::ScrollView::setFrameRect):
2011-09-23 Adam Klein <adamk@chromium.org>
Add ENABLE_MUTATION_OBSERVERS feature flag
https://bugs.webkit.org/show_bug.cgi?id=68732
Reviewed by Ojan Vafai.
This flag will guard an implementation of the "Mutation Observers" proposed in
http://lists.w3.org/Archives/Public/public-webapps/2011JulSep/1622.html
* Configurations/FeatureDefines.xcconfig:
* GNUmakefile.am:
2011-09-23 Varun Jain <varunjain@google.com>
Refactor WebViewImpl::scrollFocusedNodeIntoRect to a better place and add tests
https://bugs.webkit.org/show_bug.cgi?id=68198
Reviewed by Dimitri Glazkov.
Tests: fast/dom/scroll-element-to-rect-centered.html
fast/dom/scroll-element-to-rect.html
* WebCore.exp.in:
* page/FrameView.cpp:
(WebCore::FrameView::scrollElementToRect):
* page/FrameView.h:
* testing/Internals.cpp:
(WebCore::Internals::scrollElementToRect):
* testing/Internals.h:
* testing/Internals.idl:
2011-09-23 Mihai Parparita <mihaip@chromium.org>
Unreviewed, rolling out r95860.
http://trac.webkit.org/changeset/95860
https://bugs.webkit.org/show_bug.cgi?id=68648
Breaks overhang rendering on Chromium Mac
* platform/chromium/ScrollbarThemeChromium.cpp:
* platform/chromium/ScrollbarThemeChromium.h:
* platform/chromium/ScrollbarThemeChromiumMac.h:
* platform/chromium/ScrollbarThemeChromiumMac.mm:
(WebCore::ScrollbarThemeChromiumMac::ScrollbarThemeChromiumMac):
(WebCore::ScrollbarThemeChromiumMac::paintOverhangAreas):
2011-09-23 Dean Jackson <dino@apple.com>
Add -webkit-filter to CSSPropertyNames
https://bugs.webkit.org/show_bug.cgi?id=68675
Reviewed by Simon Fraser.
Add property a