2010-07-05 Pavel Feldman Reviewed by Joseph Pecoraro. Web Inspector: preserve scroll positions in source frame when switching between panes. https://bugs.webkit.org/show_bug.cgi?id=41620 * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype.hide): * inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame.prototype.set visible): * inspector/front-end/SourceView.js: (WebInspector.SourceView.prototype.hide): 2010-07-05 Rob Buis Reviewed by Dirk Schulze. IE SVG test fails https://bugs.webkit.org/show_bug.cgi?id=41619 Make SVGSVGElement.createSVGTransform create a SVGTransform with the right type, thereby fixing the IE test. Test: svg/custom/svg-createsvgtransform-type.html * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::createSVGTransform): 2010-07-05 Pavel Feldman Reviewed by Yury Semikhatsky. Web Inspector: computed style pane is not updated when styles pane is collapsed. https://bugs.webkit.org/show_bug.cgi?id=41615 * inspector/front-end/ElementsPanel.js: (WebInspector.ElementsPanel.prototype.updateStyles): 2010-07-05 Nikolas Zimmermann Reviewed by Dirk Schulze. Logic to track whether elements are using relative lengths is incomplete https://bugs.webkit.org/show_bug.cgi?id=41566 Add logic to all SVG elements which create renderes to expose a method "bool selfHasRelativeLengths()", that returns whether the element uses relative lengths (eg. Reviewed by Yury Semikhatsky. Web Inspector: Problem with copying a code from Scripts panel. https://bugs.webkit.org/show_bug.cgi?id=40432 * inspector/front-end/TextViewer.js: (WebInspector.TextViewer.prototype._getSelection): (WebInspector.TextViewer.prototype._selectionToPosition): 2010-07-05 Nikolas Zimmermann Reviewed by Dirk Schulze / Darin Adler. Node.cloneNode does not work on SVG nodes https://bugs.webkit.org/show_bug.cgi?id=41421 Be sure to synchronize animated SVG properties before checking whether NamedNodeMap exists. When creating a SVG element from JS, and setting all attributes via SVG DOM, and not using setAttribute the NamedNodeMap does not exist. When cloning such an element, be sure to synchronize SVG <-> XML DOM attributes before attempting to clone, otherwhise the SVG animated properties are lost while cloning. Test: svg/custom/clone-element-with-animated-svg-properties.html * dom/Element.cpp: (WebCore::Element::cloneElementWithoutChildren): 2010-07-05 Antti Koivisto Revert unplanned project file change. * WebCore.pri: * WebCore.pro: 2010-07-05 Nikolas Zimmermann Reviewed by Darin Adler. Memory corruption with SVG element https://bugs.webkit.org/show_bug.cgi?id=40994 Fix race condition in svgAttributeChanged. Never call svgAttributeChanged() from attributeChanged() when we're synchronizing SVG attributes. It leads to either unnecessary extra work being done or crashes. Especially together with / which always synchronize the SVGAnimatedPoints datastructure with the points attribute, no matter if there are changes are not. This should be furhter optimized, but this fix is sane and fixes the root of the evil races. Test: svg/custom/use-property-synchronization-crash.svg * svg/SVGElement.cpp: (WebCore::SVGElement::attributeChanged): 2010-07-05 Yury Semikhatsky Reviewed by Pavel Feldman. [v8] Web Inspector: remove v8-specific code dealing with getOwnPropertyNames from InjectedScript.js https://bugs.webkit.org/show_bug.cgi?id=41595 * inspector/front-end/InjectedScript.js: (injectedScriptConstructor): 2010-07-04 Rob Buis Reviewed by Dirk Schulze. SVG polygons should draw polygons up to the first parsing error https://bugs.webkit.org/show_bug.cgi?id=41140 Render polygons up until the first parsing error. Test: svg/custom/poly-parsing-error.html * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::parseMappedAttribute): 2010-07-04 Alice Liu Reviewed by Dan Bernstein. Crash reading past end of block in UniscribeController::shapeAndPlaceItem https://bugs.webkit.org/show_bug.cgi?id=41554 Test: platform/win/fast/text/uniscribe-item-boundary-crash.html * platform/graphics/win/UniscribeController.cpp: (WebCore::UniscribeController::shapeAndPlaceItem): Don't look one past the end of str. Instead look to the next item, if applicable. 2010-07-04 Eric Seidel Reviewed by Adam Barth. Add basic "in table body" mode to support insertion https://bugs.webkit.org/show_bug.cgi?id=41587 This also adds a (currently untestable?) popUntilTableBodyScopeMarker code path. Any tags which would be between a tbody a would end up foster parented outside the . I think the spec was just being over-cautious with popUntilTableBodyScopeMarker. * html/HTMLElementStack.cpp: (WebCore::HTMLNames::isTableScopeMarker): (WebCore::HTMLNames::isTableBodyScopeMarker): (WebCore::HTMLElementStack::popUntilTableBodyScopeMarker): * html/HTMLElementStack.h: * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processStartTag): (WebCore::HTMLTreeBuilder::callTheAdoptionAgency): 2010-07-04 Anders Carlsson Fix Windows build. * WebCore.vcproj/WebCore.vcproj: 2010-07-04 Eric Seidel Reviewed by Adam Barth. HTMLTreeBuilder needs an adoption agency https://bugs.webkit.org/show_bug.cgi?id=41453 Fix Qt Minimal build. SVGNames.h should always be generated, even when SVG is off, however that's not how things currently work. * html/HTMLTreeBuilder.cpp: 2010-07-04 Eric Seidel Reviewed by Adam Barth. Add a very basic InTable insertion mode https://bugs.webkit.org/show_bug.cgi?id=41581 There is still a bunch of low-hanging fruit left for this mode, but even this most-basic support lets us pass 6 more tests. :) It's a progression, ship it! :) * html/HTMLElementStack.cpp: (WebCore::HTMLNames::isScopeMarker): (WebCore::HTMLNames::isListItemScopeMarker): (WebCore::HTMLNames::isTableScopeMarker): (WebCore::HTMLElementStack::popUntilTableScopeMarker): * html/HTMLElementStack.h: * html/HTMLFormattingElementList.cpp: (WebCore::HTMLFormattingElementList::appendMarker): * html/HTMLFormattingElementList.h: * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processStartTag): * html/HTMLTreeBuilder.h: 2010-07-01 Eric Seidel Reviewed by Adam Barth. HTMLTreeBuilder needs an adoption agency https://bugs.webkit.org/show_bug.cgi?id=41453 This changes some test results, but only makes the simplest adoption agency cases pass. I think the code is likely very close, but further iteration to make this change larger seems counter-productive. I recommend we check in this progression and work from here. * dom/ContainerNode.cpp: (WebCore::ContainerNode::addChildCommon): - Make sure callers don't assume this will reparent. (WebCore::ContainerNode::parserAddChild): - Update comment to document lack of reparenting behavior. * html/HTMLElementStack.cpp: (WebCore::HTMLElementStack::ElementRecord::ElementRecord): (WebCore::HTMLElementStack::ElementRecord::~ElementRecord): (WebCore::HTMLElementStack::ElementRecord::replaceElement): (WebCore::HTMLElementStack::ElementRecord::isAbove): - Added for debugging. (WebCore::HTMLElementStack::pushHTMLHtmlElement): (WebCore::HTMLElementStack::insertAbove): - Needed for the adoption agency. (WebCore::HTMLElementStack::topRecord): (WebCore::HTMLElementStack::bottom): (WebCore::HTMLElementStack::removeHTMLHeadElement): (WebCore::HTMLElementStack::remove): (WebCore::HTMLElementStack::find): (WebCore::HTMLElementStack::topmost): (WebCore::HTMLElementStack::contains): (WebCore::HTMLElementStack::htmlElement): (WebCore::HTMLElementStack::headElement): (WebCore::HTMLElementStack::bodyElement): (WebCore::HTMLElementStack::pushCommon): (WebCore::HTMLElementStack::removeNonTopCommon): - Fix the name to match top/bottom. * html/HTMLElementStack.h: (WebCore::HTMLElementStack::ElementRecord::element): (WebCore::HTMLElementStack::ElementRecord::next): (WebCore::HTMLElementStack::ElementRecord::releaseNext): (WebCore::HTMLElementStack::ElementRecord::setNext): * html/HTMLFormattingElementList.cpp: (WebCore::HTMLFormattingElementList::closestElementInScopeWithName): (WebCore::HTMLFormattingElementList::contains): (WebCore::HTMLFormattingElementList::find): (WebCore::HTMLFormattingElementList::remove): * html/HTMLFormattingElementList.h: (WebCore::HTMLFormattingElementList::isEmpty): (WebCore::HTMLFormattingElementList::size): * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processStartTag): (WebCore::HTMLTreeBuilder::furthestBlockForFormattingElement): - Part of the Adoption Agency algorithm. (WebCore::HTMLTreeBuilder::findFosterParentFor): - Used to move mis-nested content out of tables. This doesn't seem to work quite right yet. (WebCore::HTMLTreeBuilder::reparentChildren): (WebCore::HTMLTreeBuilder::callTheAdoptionAgency): - The ridiculously long/complicated adoption agency algorithm from HTML5. (WebCore::HTMLTreeBuilder::processEndTag): * html/HTMLTreeBuilder.h: 2010-07-04 Justin Schuh Reviewed by Darin Adler. Remove custom src bindings for HTMLFrameElement and HTMLIFrameElement https://bugs.webkit.org/show_bug.cgi?id=41578 Remove bindings obsoleted by: http://trac.webkit.org/changeset/59866 No new tests because behavior is not changed. * Android.jscbindings.mk: * Android.v8bindings.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSBindingsAllInOne.cpp: * bindings/js/JSHTMLFrameElementCustom.cpp: * bindings/js/JSHTMLIFrameElementCustom.cpp: Removed. * bindings/v8/custom/V8HTMLFrameElementCustom.cpp: * bindings/v8/custom/V8HTMLIFrameElementCustom.cpp: Removed. * html/HTMLFrameElement.idl: * html/HTMLIFrameElement.idl: 2010-07-03 Adam Barth Reviewed by Maciej Stachowiak. Implement AfterAfterFramesetMode https://bugs.webkit.org/show_bug.cgi?id=41561 This mode is almost unobservable. The main way to observe it seems to be seeing where comment nodes get attached to the DOM. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processStartTag): (WebCore::HTMLTreeBuilder::processEndTag): (WebCore::HTMLTreeBuilder::processComment): (WebCore::HTMLTreeBuilder::processCharacter): (WebCore::HTMLTreeBuilder::processEndOfFile): 2010-07-03 Zhenyao Mo Reviewed by Dimitri Glazkov. WebGLRenderingContext::vertexAttrib* leads to possible out-of-range vector member visit https://bugs.webkit.org/show_bug.cgi?id=41572 * html/canvas/WebGLRenderingContext.cpp: Fix the out-of-range vector member visit, also refactor the code. (WebCore::WebGLRenderingContext::vertexAttrib1f): (WebCore::WebGLRenderingContext::vertexAttrib1fv): (WebCore::WebGLRenderingContext::vertexAttrib2f): (WebCore::WebGLRenderingContext::vertexAttrib2fv): (WebCore::WebGLRenderingContext::vertexAttrib3f): (WebCore::WebGLRenderingContext::vertexAttrib3fv): (WebCore::WebGLRenderingContext::vertexAttrib4f): (WebCore::WebGLRenderingContext::vertexAttrib4fv): (WebCore::WebGLRenderingContext::vertexAttribfImpl): (WebCore::WebGLRenderingContext::vertexAttribfvImpl): * html/canvas/WebGLRenderingContext.h: Helper function declaration. 2010-07-03 Jeremy Orlow Ugh. Have to put the destructor in the .h file since the .ccp isn't compiled yet. * storage/IDBKey.h: (WebCore::IDBKey::~IDBKey): 2010-07-03 Jeremy Orlow Build fix. Forgot destructor. * storage/IDBKey.cpp: (WebCore::IDBKey::~IDBKey): 2010-06-26 Jeremy Orlow Reviewed by Dumitru Daniliuc. Support for keys and in-memory storage for IndexedDB https://bugs.webkit.org/show_bug.cgi?id=41252 It'll take some time to get data persistence working for IndexedDB, so until then, we'll just store everything in an in memory tree. The tree uses WTF::AVLTree and is a template so that it can be used by object stores (IDBKey -> SerializedScriptValue) and indexes (IDBKey -> IDBKey). This class will be used in a subsequent patch. Also add an IDBKey type that represents one of these keys. We use a custom toJS function in a way similar to IDBAny to convert from WebCore to a JS value. For converting the other way, we have to teach the code generators what to do (unfortunately). This is done in a way similar to serialized script value. Unlike serialized script value, IDBKey is in WebCore and only a helper function is JS engine specific. This code is not accessable from layout tests. (Will fix in https://bugs.webkit.org/show_bug.cgi?id=41250) The bindings tests show us that the generated bindings are what we expect. * ForwardingHeaders/wtf/AVLTree.h: Added. * bindings/js/IDBBindingUtilities.cpp: Added. (WebCore::createIDBKeyFromValue): * bindings/js/IDBBindingUtilities.h: Added. * bindings/js/JSIDBKeyCustom.cpp: Added. (WebCore::toJS): * bindings/scripts/CodeGeneratorJS.pm: * bindings/scripts/CodeGeneratorV8.pm: * bindings/scripts/test/CPP/WebDOMTestObj.cpp: (WebDOMTestObj::idbKey): * bindings/scripts/test/CPP/WebDOMTestObj.h: * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: (webkit_dom_test_obj_idb_key): * bindings/scripts/test/GObject/WebKitDOMTestObj.h: * bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::): (WebCore::jsTestObjPrototypeFunctionIdbKey): * bindings/scripts/test/JS/JSTestObj.h: * bindings/scripts/test/ObjC/DOMTestObj.h: * bindings/scripts/test/ObjC/DOMTestObj.mm: (-[DOMTestObj idbKey:]): * bindings/scripts/test/TestObj.idl: * bindings/scripts/test/V8/V8TestObj.cpp: (WebCore::TestObjInternal::idbKeyCallback): (WebCore::): * bindings/v8/IDBBindingUtilities.cpp: Added. (WebCore::createIDBKeyFromValue): * bindings/v8/IDBBindingUtilities.h: Added. * bindings/v8/custom/V8IDBKeyCustom.cpp: Added. (WebCore::toV8): * storage/IDBCallbacks.h: * storage/IDBKey.cpp: Added. (WebCore::IDBKey::IDBKey): (WebCore::IDBKey::~IDBKey): * storage/IDBKey.h: Added. (WebCore::IDBKey::create): (WebCore::IDBKey::): (WebCore::IDBKey::type): (WebCore::IDBKey::string): (WebCore::IDBKey::number): * storage/IDBKey.idl: Added. * storage/IDBKeyTree.h: Added. (WebCore::IDBKeyTree::create): (WebCore::IDBKeyTree::AVLTreeAbstractor::get_less): (WebCore::IDBKeyTree::AVLTreeAbstractor::set_less): (WebCore::IDBKeyTree::AVLTreeAbstractor::get_greater): (WebCore::IDBKeyTree::AVLTreeAbstractor::set_greater): (WebCore::IDBKeyTree::AVLTreeAbstractor::get_balance_factor): (WebCore::IDBKeyTree::AVLTreeAbstractor::set_balance_factor): (WebCore::IDBKeyTree::AVLTreeAbstractor::null): (WebCore::IDBKeyTree::AVLTreeAbstractor::compare_key_node): (WebCore::IDBKeyTree::AVLTreeAbstractor::compare_node_node): (WebCore::::IDBKeyTree): (WebCore::::~IDBKeyTree): (WebCore::::AVLTreeAbstractor::compare_key_key): (WebCore::::get): (WebCore::::insert): (WebCore::::remove): 2010-07-03 Jon Honeycutt The missing plug-in indicator should be clickable https://bugs.webkit.org/show_bug.cgi?id=41550 From an original patch by Kevin Decker. Reviewed by Darin Adler. * html/HTMLPlugInElement.cpp: (WebCore::HTMLPlugInElement::defaultEventHandler): If the renderer is a RenderEmbeddedWidget showing the missing plug-in indicator, and the event is a click even, call the ChromeClient's missingPluginButtonClicked() function. * page/ChromeClient.h: (WebCore::ChromeClient::missingPluginButtonClicked): Declare missingPluginButtonClicked(), and stub the default implementation. * rendering/RenderEmbeddedObject.cpp: (WebCore::RenderEmbeddedObject::RenderEmbeddedObject): Initialize m_showsMissingPluginIndicator. (WebCore::RenderEmbeddedObject::setShowsMissingPluginIndicator): Assert that we're not currently showing any replacement text. Set m_showsMissingPluginIndicator after setting the replacement text. (WebCore::RenderEmbeddedObject::setShowsCrashedPluginIndicator): Add the same assert as above. * rendering/RenderEmbeddedObject.h: (WebCore::RenderEmbeddedObject::showsMissingPluginIndicator): Getter for m_showsMissingPluginIndicator. 2010-07-02 Oliver Hunt Reviewed by Geoffrey Garen. Move BOM handling out of the lexer and parser https://bugs.webkit.org/show_bug.cgi?id=41539 Update WebCore to ensure that SourceProviders don't produce strings with BOMs in them. * bindings/js/ScriptSourceProvider.h: (WebCore::ScriptSourceProvider::ScriptSourceProvider): * bindings/js/StringSourceProvider.h: (WebCore::StringSourceProvider::StringSourceProvider): * loader/CachedScript.cpp: (WebCore::CachedScript::CachedScript): (WebCore::CachedScript::script): * loader/CachedScript.h: (WebCore::CachedScript::): CachedScript now stores decoded data with the BOMs stripped, and caches the presence of BOMs across memory purges. 2010-07-03 Xan Lopez Include DerivedSources/WebCore before DerivedSources/ Recently DerivedSources generation was changed, with some files no longer being generated in the toplevel DerivedSources directory. Since that directory is first in the -I flags the build can be broken in some cases by including old files unless a 'make clean' is done. Change the -I order to fix the build in the 32 bit Release bot. * GNUmakefile.am: 2010-07-03 Erik Arvidsson Reviewed by Ojan Vafai. Fix issue where a contextmenu event was reporting the wrong target if the context menu was shown due to pressing the context menu key (or Shift+F10). Split sendContextMenuForEvent into one case for keyboard events and use that when the contextmenu event should be dispatched due to a keypress. For the keboard case we now use the focused node as the target for the event and use the clipped rect to determine the position of the menu. https://bugs.webkit.org/show_bug.cgi?id=38129 Use manual test since DRT does not handle context menu keys. * manual-tests/win/contextmenu-key.html: Added. * page/EventHandler.cpp: (WebCore::EventHandler::sendContextMenuEvent): (WebCore::EventHandler::sendContextMenuEventForKey): * page/EventHandler.h: 2010-07-03 Dirk Schulze Unreviewed sort of XCode project file. * WebCore.xcodeproj/project.pbxproj: 2010-07-03 Kwang Yul Seo Reviewed by Kent Tamura. [BREWMP] Port Widget https://bugs.webkit.org/show_bug.cgi?id=41538 Make Widget a dummy class. WebKit Brew MP uses the full screen mode and does not use the window system introduced in Brew MP. * platform/Widget.h: * platform/brew/WidgetBrew.cpp: Added. (WebCore::Widget::Widget): (WebCore::Widget::~Widget): (WebCore::Widget::frameRect): (WebCore::Widget::setFrameRect): (WebCore::Widget::setFocus): (WebCore::Widget::setCursor): (WebCore::Widget::show): (WebCore::Widget::hide): (WebCore::Widget::paint): (WebCore::Widget::setIsSelected): 2010-07-03 Adam Barth Reviewed by Eric Seidel. Implement AfterFramesetMode https://bugs.webkit.org/show_bug.cgi?id=41560 * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processStartTag): (WebCore::HTMLTreeBuilder::processEndTag): (WebCore::HTMLTreeBuilder::processCharacter): (WebCore::HTMLTreeBuilder::processEndOfFile): 2010-07-02 Adam Barth Reviewed by Eric Seidel. Implement InFramesetMode https://bugs.webkit.org/show_bug.cgi?id=41559 Pretty straighforward. We still don't handle character tokens correctly. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processStartTag): (WebCore::HTMLTreeBuilder::processEndTag): (WebCore::HTMLTreeBuilder::processCharacter): (WebCore::HTMLTreeBuilder::processEndOfFile): 2010-07-02 Adam Barth Reviewed by Eric Seidel. Handle InBody https://bugs.webkit.org/show_bug.cgi?id=41558 Handling the tag in the InBody mode is somewhat delicate. * html/HTMLElementStack.cpp: (WebCore::HTMLElementStack::popHTMLBodyElement): (WebCore::HTMLElementStack::popUntil): (WebCore::HTMLElementStack::popCommon): * html/HTMLElementStack.h: * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processStartTag): 2010-07-02 Adam Barth Reviewed by Eric Seidel. Special handling of and tags https://bugs.webkit.org/show_bug.cgi?id=41557 So sayeth the spec. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processStartTag): 2010-07-02 Adam Barth Reviewed by Eric Seidel. Implement special optgroup processing https://bugs.webkit.org/show_bug.cgi?id=41556 * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processStartTag): 2010-07-02 Adam Barth Reviewed by Eric Seidel. Handle in new parser https://bugs.webkit.org/show_bug.cgi?id=41555 This patch is kind of goofy but apparently how the world works. * html/HTMLToken.h: (WebCore::AtomicHTMLToken::setName): * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processStartTag): 2010-07-02 Kwang Yul Seo Reviewed by Alexey Proskuryakov. Remove extra semicolon at the end of HTMLTreeBuilder::attach https://bugs.webkit.org/show_bug.cgi?id=41546 This is not critical, but the extra semicolon at the end of HTMLTreeBuilder::attach causes a warning in RVCT. * html/HTMLTreeBuilder.h: (WebCore::HTMLTreeBuilder::attach): 2010-07-02 Tony Gentilcore Reviewed by Darin Adler. Performance::disconnectFrame() needs to disconnect its children https://bugs.webkit.org/show_bug.cgi?id=41533 No new tests because no new functionality. * page/Performance.cpp: (WebCore::Performance::disconnectFrame): 2010-07-02 Luiz Agostini Reviewed by Sam Weinig. Checking if WTF_USE_JSC is defined before redefining it in config.h https://bugs.webkit.org/show_bug.cgi?id=41530 * config.h: 2010-07-02 Tony Gentilcore Reviewed by Dimitri Glazkov. Add vendor prefix to window.performance https://bugs.webkit.org/show_bug.cgi?id=41525 No new tests because window.performance tests not landed yet. * page/DOMWindow.cpp: (WebCore::DOMWindow::webkitPerformance): * page/DOMWindow.h: (WebCore::DOMWindow::optionalWebkitPerformance): * page/DOMWindow.idl: 2010-07-02 Zoltan Herczeg Reviewed by Oliver Hunt. Minor fix: Diffuse constant is float (not integer) https://bugs.webkit.org/show_bug.cgi?id=10412 * svg/SVGFEDiffuseLightingElement.cpp: (WebCore::SVGFEDiffuseLightingElement::parseMappedAttribute): 2010-07-02 Martin Robinson Unreviewed. Build fix for GTK+. Try to force a rebuild of the HTMLNames.h file first by touching HTMLTagNames.in. * html/HTMLTagNames.in: 2010-07-02 Andreas Kling Reviewed by Oliver Hunt. RGB colors should be clamped to the 0-255 range https://bugs.webkit.org/show_bug.cgi?id=39482 Spec link: http://www.whatwg.org/specs/web-apps/current-work/#colors Test: fast/canvas/canvas-color-clamping.html * css/CSSParser.cpp: (WebCore::parseColorInt): (WebCore::CSSParser::parseColor): (WebCore::parseColorIntFromValue): (WebCore::CSSParser::parseColorParameters): 2010-07-02 Sheriff Bot Unreviewed, rolling out r62410. http://trac.webkit.org/changeset/62410 https://bugs.webkit.org/show_bug.cgi?id=41549 accursed last minute changes (Requested by olliej on #webkit). * bindings/js/ScriptSourceProvider.h: (WebCore::ScriptSourceProvider::ScriptSourceProvider): * bindings/js/StringSourceProvider.h: (WebCore::StringSourceProvider::StringSourceProvider): * loader/CachedScript.cpp: (WebCore::CachedScript::CachedScript): (WebCore::CachedScript::script): * loader/CachedScript.h: 2010-07-02 Martin Robinson Unreviewed. Further Build fix for GTK+. Also include HTMLElementFactory.h in the list of dependencies. * GNUmakefile.am: 2010-07-02 Martin Robinson Unreviewed. Build fix for GTK+. *Names.{cpp,h} targets should now include the header files. Also adds the header files to the generated sources list. * GNUmakefile.am: 2010-07-02 Dumitru Daniliuc Reviewed by Darin Fisher. DB clean up. https://bugs.webkit.org/show_bug.cgi?id=41404 1. Made all DatabaseTasks internal classes of Database and made the Database methods called by those tasks private. 2. Removed the Database::stop{ed}() methods. 3. Removed the code that kept track of open databases from ScriptExecutionContext (no longer needed). 4. Made minor changes to Database::closeImmediately() to make it possible for DatabaseThread to call that method instead of close(). 5. Minor fix to DatabaseTracker: addOpenDatabase() should call OriginQuotaManager::addDatabase() if the origin quota manager is not tracking this origin. 6. Removed Database::performPolicyChecks(). We already update the DB size after each transaction, and we enforce a max size for the DB at the beginning of each transaction. * dom/ScriptExecutionContext.cpp: (WebCore::ScriptExecutionContext::stopDatabases): * dom/ScriptExecutionContext.h: (WebCore::ScriptExecutionContext::hasOpenDatabases): * storage/Database.cpp: (WebCore::Database::openDatabase): (WebCore::Database::Database): (WebCore::Database::markAsDeletedAndClose): (WebCore::Database::close): (WebCore::Database::closeImmediately): * storage/Database.h: * storage/DatabaseTask.cpp: (WebCore::DatabaseTask::performTask): (WebCore::Database::DatabaseOpenTask::DatabaseOpenTask): (WebCore::Database::DatabaseOpenTask::doPerformTask): (WebCore::Database::DatabaseOpenTask::debugTaskName): (WebCore::Database::DatabaseCloseTask::DatabaseCloseTask): (WebCore::Database::DatabaseCloseTask::doPerformTask): (WebCore::Database::DatabaseCloseTask::debugTaskName): (WebCore::Database::DatabaseTransactionTask::DatabaseTransactionTask): (WebCore::Database::DatabaseTransactionTask::doPerformTask): (WebCore::Database::DatabaseTransactionTask::debugTaskName): (WebCore::Database::DatabaseTableNamesTask::DatabaseTableNamesTask): (WebCore::Database::DatabaseTableNamesTask::doPerformTask): (WebCore::Database::DatabaseTableNamesTask::debugTaskName): * storage/DatabaseTask.h: (WebCore::Database::DatabaseOpenTask::create): (WebCore::Database::DatabaseCloseTask::create): (WebCore::Database::DatabaseTransactionTask::create): (WebCore::Database::DatabaseTableNamesTask::create): * storage/DatabaseThread.cpp: (WebCore::DatabaseThread::databaseThread): * storage/DatabaseTracker.cpp: (WebCore::DatabaseTracker::addOpenDatabase): * storage/SQLTransaction.cpp: (WebCore::SQLTransaction::executeSQL): (WebCore::SQLTransaction::checkAndHandleClosedDatabase): 2010-07-02 Oliver Hunt Reviewed by Geoffrey Garen. Move BOM handling out of the lexer and parser https://bugs.webkit.org/show_bug.cgi?id=41539 Update WebCore to ensure that SourceProviders don't produce strings with BOMs in them. * bindings/js/ScriptSourceProvider.h: (WebCore::ScriptSourceProvider::ScriptSourceProvider): * bindings/js/StringSourceProvider.h: (WebCore::StringSourceProvider::StringSourceProvider): * loader/CachedScript.cpp: (WebCore::CachedScript::CachedScript): (WebCore::CachedScript::script): * loader/CachedScript.h: (WebCore::CachedScript::): CachedScript now stores decoded data with the BOMs stripped, and caches the presence of BOMs across memory purges. 2010-07-02 Sam Weinig Add missing symbol to exports file. * WebCore.base.exp: 2010-07-02 Abhishek Arya Reviewed by Darin Fisher. Remove the extra setFailed() call in JPEG decoder to prevent re-using an already freed object. https://bugs.webkit.org/show_bug.cgi?id=41487 Test: fast/images/large-size-image-crash.html * platform/image-decoders/jpeg/JPEGImageDecoder.cpp: (WebCore::JPEGImageReader::decode): 2010-07-02 Peter Beverloo Reviewed by Maciej Stachowiak. Add the HTML5 element. Text content of the element will have a yellow background color and black text. Test: fast/html/mark-element.html Tests for

closing, phrasing child content and residual style. * css/html.css: (mark): * html/HTMLElement.cpp: (WebCore::inlineTagList): * html/HTMLTagNames.in: * html/LegacyHTMLTreeBuilder.cpp: (WebCore::LegacyHTMLTreeBuilder::getNode): (WebCore::LegacyHTMLTreeBuilder::isInline): (WebCore::LegacyHTMLTreeBuilder::isResidualStyleTag): 2010-07-02 Zhenyao Mo Reviewed by Dimitri Glazkov. Fix issues in boundary situations for WebGLRenderingContext::drawArrays/drawElements https://bugs.webkit.org/show_bug.cgi?id=41473 * WebCore.gypi: Add CheckedInt.h. * WebCore.xcodeproj/project.pbxproj: Add CheckedInt.h. * html/canvas/CheckedInt.h: Added support of safe integer operations. (mozilla::CheckedInt_internal::integer_type_manually_recorded_info::): (mozilla::CheckedInt_internal::is_unsupported_type::): (mozilla::CheckedInt_internal::): (mozilla::CheckedInt_internal::integer_traits::): (mozilla::CheckedInt_internal::integer_traits::min): (mozilla::CheckedInt_internal::integer_traits::max): (mozilla::CheckedInt_internal::has_sign_bit): (mozilla::CheckedInt_internal::binary_complement): (mozilla::CheckedInt_internal::is_in_range): (mozilla::CheckedInt_internal::is_add_valid): (mozilla::CheckedInt_internal::is_sub_valid): (mozilla::CheckedInt_internal::is_mul_valid): (mozilla::CheckedInt_internal::is_div_valid): (mozilla::CheckedInt::CheckedInt): (mozilla::CheckedInt::value): (mozilla::CheckedInt::valid): (mozilla::CheckedInt::operator -): (mozilla::CheckedInt::operator ==): (mozilla::CheckedInt::operator !=): (mozilla::operator /): (mozilla::cast_to_CheckedInt_impl::run): (mozilla::): (mozilla::cast_to_CheckedInt): (mozilla::operator ==): * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::validateIndexArrayConservative): Fix a bug against 0-size buffer situation. (WebCore::WebGLRenderingContext::drawArrays): Deal with overflows and count==0 situation. (WebCore::WebGLRenderingContext::drawElements): Deal with count==0 situation. 2010-07-02 Zhenyao Mo Reviewed by Dimitri Glazkov. linkProgram should fail when vertex/fragment shaders are not both present https://bugs.webkit.org/show_bug.cgi?id=41380 Test: fast/canvas/webgl/program-test.html * html/canvas/WebGLProgram.cpp: Add flag for link failure due to missing shaders. (WebCore::WebGLProgram::WebGLProgram): * html/canvas/WebGLProgram.h: Add interface for linkFailure flag. (WebCore::WebGLProgram::isLinkFailureFlagSet): (WebCore::WebGLProgram::setLinkFailureFlag): * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::getProgramParameter): Intercept when linkFailureFlag is set. (WebCore::WebGLRenderingContext::linkProgram): Check if there are missing shaders and don't link if yes. * html/canvas/WebGLShader.cpp: Cache shader type. (WebCore::WebGLShader::WebGLShader): * html/canvas/WebGLShader.h: Ditto. (WebCore::WebGLShader::getType): 2010-07-02 Qi Zhang Reviewed by Laszlo Gombos. [Qt] Failed on http://philip.html5.org/tests/canvas/suite/tests/2d.drawImage.negativesource.html Support negative width and height in canvas image draw * platform/graphics/FloatRect.h: * platform/graphics/qt/FloatRectQt.cpp: (WebCore::FloatRect::normalized): * platform/graphics/qt/ImageQt.cpp: (WebCore::BitmapImage::draw): 2010-06-24 Dimitri Glazkov Reviewed by Alexey Proskuryakov. REGRESSION: Enter does not trigger submit of forms when focus is on select. https://bugs.webkit.org/show_bug.cgi?id=39532 Restore behavior where hitting "Enter" on a select element attempts to submit form implicitly. * dom/SelectElement.cpp: (WebCore::SelectElement::menuListDefaultEventHandler): Added htmlForm argument, and attempting to submit implicitly. (WebCore::SelectElement::listBoxDefaultEventHandler): Ditto. (WebCore::SelectElement::defaultEventHandler): Plumbed through htmlForm argument. * dom/SelectElement.h: Added htmlForm argument to method declaration. * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::defaultEventHandler): Changed to provide submitting form as the argument. 2010-07-02 Kent Tamura Reviewed by Darin Fisher. [Chromium] Support indeterminate checkbox for Linux, and a small fix for Windows https://bugs.webkit.org/show_bug.cgi?id=41508 * rendering/RenderThemeChromiumSkia.cpp: (WebCore::RenderThemeChromiumSkia::paintCheckbox): Use dedicated images for indeterminate states. * rendering/RenderThemeChromiumWin.cpp: (WebCore::RenderThemeChromiumWin::determineClassicState): Do not use DFCS_CHECKED in a case of indeterminate state in order to have consistent appearance of indeterminate checkbox. 2010-07-02 Brent Fulgham Reviewed by Gustavo Noronha Silva. Fixes https://bugs.webkit.org/show_bug.cgi?id=41323. Provides an implementation of the 'squiggle' used for bad grammar or spelling, based on the Pango logic used by the GTK builds. No new tests. Covered by LayoutTests/editing/spelling * WebCore.vcproj/WebCore.vcproj: Add new file holding underline implementation, set to build only for WinCairo port. * platform/graphics/cairo/DrawErrorUnderline.cpp: Added. (drawErrorUnderline): New file containing the squiggle drawing logic based on the Pango implementation. Placed in its own file to isolate licenses. * platform/graphics/cairo/GraphicsContextCairo.cpp: (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar): Have WinCairo build call new 'drawErrorUnderline' implementation. 2010-07-02 Martin Robinson Reviewed by Gustavo Noronha Silva. [GTK] Separate DerivedSources per-project https://bugs.webkit.org/show_bug.cgi?id=41109 Generate WebCore derived sources in /DerivedSources/WebCore. * GNUmakefile.am: 2010-07-02 Zhenyao Mo Reviewed by Dimitri Glazkov. Implement OpenGL ES 2.0 semantics for vertex attribute 0 https://bugs.webkit.org/show_bug.cgi?id=41300 Test: fast/canvas/webgl/gl-bind-attrib-location-test.html fast/canvas/webgl/gl-vertex-attrib.html * html/canvas/WebGLProgram.cpp: (WebCore::WebGLProgram::numActiveAttribLocations): const. (WebCore::WebGLProgram::getActiveAttribLocation): const. (WebCore::WebGLProgram::isUsingVertexAttrib0): Determine whether vertex attrib 0 is used by the program. * html/canvas/WebGLProgram.h: Declare isUsingVertexAttrib0. * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::WebGLRenderingContext): Deal with vertex attrib 0. (WebCore::WebGLRenderingContext::disableVertexAttribArray): Ditto. (WebCore::WebGLRenderingContext::drawArrays): Ditto. (WebCore::WebGLRenderingContext::drawElements): Ditto. (WebCore::WebGLRenderingContext::getVertexAttrib): Use cached value instead of calling glGetVertexAtrtrib. (WebCore::WebGLRenderingContext::vertexAttrib1f): Validate input, deal with vertex attrib 0. (WebCore::WebGLRenderingContext::vertexAttrib1fv): Ditto. (WebCore::WebGLRenderingContext::vertexAttrib2f): Ditto. (WebCore::WebGLRenderingContext::vertexAttrib2fv): Ditto. (WebCore::WebGLRenderingContext::vertexAttrib3f): Ditto. (WebCore::WebGLRenderingContext::vertexAttrib3fv): Ditto. (WebCore::WebGLRenderingContext::vertexAttrib4f): Ditto. (WebCore::WebGLRenderingContext::vertexAttrib4fv): Ditto. (WebCore::WebGLRenderingContext::vertexAttribPointer): Ditto. (WebCore::WebGLRenderingContext::handleNPOTTextures): Move isGLES2Compliant() to caller. (WebCore::WebGLRenderingContext::vertexAttribImpl): Helper for vertexAttribNfv. (WebCore::WebGLRenderingContext::initVertexAttrib0): Initialize vertex attrib 0. (WebCore::WebGLRenderingContext::simulateVertexAttrib0): Simulate vertex attrib 0. (WebCore::WebGLRenderingContext::restoreStatesAfterVertexAttrib0Simulation): Restore states after simulating vertex attrib 0. * html/canvas/WebGLRenderingContext.h: (WebCore::WebGLRenderingContext::VertexAttribState::VertexAttribState): Tracking full vertex attrib states. (WebCore::WebGLRenderingContext::VertexAttribState::initValue): Init value to [0,0,0,1]. 2010-07-02 Zhenyao Mo Reviewed by Dimitri Glazkov. Need to validate the size of the incoming arrays for uniform* functions https://bugs.webkit.org/show_bug.cgi?id=41383 * html/canvas/WebGLRenderingContext.cpp: Validate input array size. (WebCore::WebGLRenderingContext::uniform1fv): (WebCore::WebGLRenderingContext::uniform1iv): (WebCore::WebGLRenderingContext::uniform2fv): (WebCore::WebGLRenderingContext::uniform2iv): (WebCore::WebGLRenderingContext::uniform3fv): (WebCore::WebGLRenderingContext::uniform3iv): (WebCore::WebGLRenderingContext::uniform4fv): (WebCore::WebGLRenderingContext::uniform4iv): (WebCore::WebGLRenderingContext::uniformMatrix2fv): (WebCore::WebGLRenderingContext::uniformMatrix3fv): (WebCore::WebGLRenderingContext::uniformMatrix4fv): (WebCore::WebGLRenderingContext::validateUniformParameters): (WebCore::WebGLRenderingContext::validateUniformMatrixParameters): * html/canvas/WebGLRenderingContext.h: Add helper functions. 2010-07-02 Tor Arne Vestbø Reviewed by Simon Hausmann. [Qt] Canvas arcTo() should draw straight line to p1 if p0, p1 and p2 are collinear The implementation of PathQt's addArcTo() was not float-safe and also had a case where it drew an 'infinite' line, which is not part of the spec. http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-arcto We now use qFuzzyCompare() in both cases. The method isPointOnPathBorder() also had the same problem, and was refactored a bit in the process of fixing the bug. Initial patch by Andreas Kling. https://bugs.webkit.org/show_bug.cgi?id=41412 * platform/graphics/qt/PathQt.cpp: 2010-07-02 Yury Semikhatsky Reviewed by Pavel Feldman. [v8] Web Inspector: inspected page crashes on attempt to change iframe's src attribute https://bugs.webkit.org/show_bug.cgi?id=41511 Tests: fast/events/popup-blocked-from-fake-user-gesture.html http/tests/inspector/change-iframe-src.html * bindings/v8/ScriptController.cpp: (WebCore::ScriptController::processingUserGesture): use V8Proxy from the ScriptController instead of one from the call stack. Get event directly from hidden property to avoid unnecessary checks. * bindings/v8/V8AbstractEventListener.cpp: (WebCore::V8AbstractEventListener::invokeEventHandler): * bindings/v8/V8HiddenPropertyName.h: * bindings/v8/custom/V8DOMWindowCustom.cpp: (WebCore::V8DOMWindow::eventAccessorGetter): (WebCore::V8DOMWindow::eventAccessorSetter): 2010-07-02 Adam Barth Reviewed by Eric Seidel. Fix tokenization of https://bugs.webkit.org/show_bug.cgi?id=41505 I noticed this error when browsing through the HTML5lib failures. We're adding an extra character to the comment token, contrary to what the spec says to do. * html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::nextToken): 2010-07-02 Adam Barth Reviewed by Eric Seidel. Implement processFakePEndTagIfPInScope https://bugs.webkit.org/show_bug.cgi?id=41503 This is a common idiom because

likes to close itself. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processFakePEndTagIfPInScope): (WebCore::HTMLTreeBuilder::processStartTag): * html/HTMLTreeBuilder.h: 2010-07-02 Adam Barth Reviewed by Eric Seidel. Implement AfterAfterBodyMode https://bugs.webkit.org/show_bug.cgi?id=41501 In implementing this mode, I noticed a bug in the character processing of the AfterBodyMode, which I fixed by adding a break statement. Also, to get one of the new tests to pass, I needed to implement one notImplemented() in the InBody insertion mode. Yay for testing. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processStartTag): (WebCore::HTMLTreeBuilder::processEndTag): (WebCore::HTMLTreeBuilder::processComment): (WebCore::HTMLTreeBuilder::processCharacter): (WebCore::HTMLTreeBuilder::processEndOfFile): 2010-07-02 Sheriff Bot Unreviewed, rolling out r62371. http://trac.webkit.org/changeset/62371 https://bugs.webkit.org/show_bug.cgi?id=41515 "Breaks media/controls-drag-timebar.html on 32-Bit Release" (Requested by philn-tp on #webkit). * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::MediaPlayerPrivateGStreamer::maxTimeSeekable): (WebCore::MediaPlayerPrivateGStreamer::updateStates): 2010-06-28 Philippe Normand Reviewed by Xan Lopez. [GStreamer] can't seek past maxTimeLoaded value https://bugs.webkit.org/show_bug.cgi?id=40526 Extended the seekable range to the whole media. This allows video played with progressive download to be seeked past the current buffered position. * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::MediaPlayerPrivateGStreamer::maxTimeSeekable): (WebCore::MediaPlayerPrivateGStreamer::updateStates): 2010-07-02 Adam Barth Reviewed by Eric Seidel. Implement AfterBodyMode for HTML5 tree builder https://bugs.webkit.org/show_bug.cgi?id=41500 In the coarse of implementing this state, I ran into an ASSERT in how
tags where handled, which I fixed. Technically, that could be a separate patch, but it seemed harmless to include it here (with tests). * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processStartTag): (WebCore::HTMLTreeBuilder::processEndTag): (WebCore::HTMLTreeBuilder::processComment): (WebCore::HTMLTreeBuilder::processCharacter): (WebCore::HTMLTreeBuilder::processEndOfFile): (WebCore::HTMLTreeBuilder::insertCommentOnHTMLHtmlElement): * html/HTMLTreeBuilder.h: 2010-07-02 Adam Barth Reviewed by Eric Seidel. Handle and friends in AfterHeadMode https://bugs.webkit.org/show_bug.cgi?id=41502 Implement notImplemented() per spec. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processStartTag): 2010-07-01 Oliver Hunt Build fix * dom/Document.h: 2010-07-01 Oliver Hunt Reviewed by Maciej Stachowiak. Add a FixedArray template to encapsulate fixed length arrays https://bugs.webkit.org/show_bug.cgi?id=41506 Add forwarding header, and replace a few fixed length arrays with the new FixedArray type. * ForwardingHeaders/wtf/FixedArray.h: Added. * dom/Document.h: * platform/graphics/GlyphMetricsMap.h: 2010-07-01 Simon Fraser No review. Fix a link warning in 32-bit by not explicitly exporting WebCore::GraphicsLayer::syncCompositingStateForThisLayerOnly(). * WebCore.AcceleratedCompositing.exp: 2010-07-01 Tony Gentilcore Reviewed by Dimitri Glazkov. Add window.performance.navigation namespace https://bugs.webkit.org/show_bug.cgi?id=41442 Adds window.performance.navigation namespace consisting of ".type" and ".redirectCount". As part of this change, I renmaed "NavigationTiming" to just "Timing" to avoid confusion. No new tests because tests will be added in a subsequent patch when functionality is added. * Android.mk: * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * GNUmakefile.am: * WebCore.gypi: * WebCore.pri: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * page/Navigation.cpp: Added. (WebCore::Navigation::Navigation): (WebCore::Navigation::frame): (WebCore::Navigation::disconnectFrame): (WebCore::Navigation::type): (WebCore::Navigation::redirectCount): * page/Navigation.h: Added. (WebCore::Navigation::create): * page/Navigation.idl: Added. * page/NavigationTiming.cpp: Removed. * page/NavigationTiming.h: Removed. * page/NavigationTiming.idl: Removed. * page/Performance.cpp: (WebCore::Performance::navigation): (WebCore::Performance::timing): * page/Performance.h: * page/Performance.idl: * page/Timing.cpp: Added. (WebCore::Timing::Timing): (WebCore::Timing::frame): (WebCore::Timing::disconnectFrame): (WebCore::Timing::navigationStart): * page/Timing.h: Added. (WebCore::Timing::create): * page/Timing.idl: Added. 2010-07-01 Daniel Cheng Reviewed by Jian Li. [chromium] Dragging a link triggers an assert when accessing event.dataTransfer.types https://bugs.webkit.org/show_bug.cgi?id=41493 ClipboardChromium::writeURL violates ClipboardChromium's assumption that uriList will always be non-empty if url is valid. No new tests. * platform/chromium/ClipboardChromium.cpp: (WebCore::ClipboardChromium::writeURL): 2010-07-01 Andreas Kling Reviewed by Tor Arne Vestbø. [Qt] Clamp color stops passed to QGradient to 1.0 [https://bugs.webkit.org/show_bug.cgi?id=41484 Fixes an issue where color stops would be silently dropped from radial gradients. * platform/graphics/qt/GradientQt.cpp: (WebCore::Gradient::platformGradient): 2010-07-01 Eric Seidel Reviewed by Adam Barth. HTMLTokenizer should ASSERT that it never emits a null character https://bugs.webkit.org/show_bug.cgi?id=41448 No functional change, thus no tests. These ASSERTs would have caught the coding error which caused the trouble in bug 41436 (which was fixed by bug 41439). * html/HTMLToken.h: (WebCore::HTMLToken::beginStartTag): (WebCore::HTMLToken::beginCharacter): (WebCore::HTMLToken::beginDOCTYPE): (WebCore::HTMLToken::appendToName): (WebCore::HTMLToken::appendToComment): (WebCore::HTMLToken::appendToAttributeName): (WebCore::HTMLToken::appendToAttributeValue): (WebCore::HTMLToken::appendToPublicIdentifier): (WebCore::HTMLToken::appendToSystemIdentifier): 2010-07-01 Andreas Kling Reviewed by Tor Arne Vestbø. Canvas: Don't paint with empty radial gradients https://bugs.webkit.org/show_bug.cgi?id=41190 If a radial gradient has x0==x1 && y0==y1 && r0==r1, don't paint with it. * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::fillRect): * platform/graphics/Gradient.h: (WebCore::Gradient::isZeroSize): 2010-07-01 Tony Gentilcore Reviewed by Adam Barth. Add interface for network platform to pass up timing information https://bugs.webkit.org/show_bug.cgi?id=41437 The Web Timing feature requires the network platform to expose detailed timing information for the main resource. This patch adds that data to the ResourceResponseBase. Since the 82 bytes of information is only needed for the main resource, it is a RefPtr to avoid using the memory for other resource types. No new tests because no new functionality. * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * platform/network/ResourceLoadTiming.h: Added. (WebCore::ResourceLoadTiming::create): (WebCore::ResourceLoadTiming::deepCopy): (WebCore::ResourceLoadTiming::operator==): (WebCore::ResourceLoadTiming::operator!=): (WebCore::ResourceLoadTiming::ResourceLoadTiming): * platform/network/ResourceResponseBase.cpp: (WebCore::ResourceResponseBase::adopt): (WebCore::ResourceResponseBase::copyData): (WebCore::ResourceResponseBase::resourceLoadTiming): (WebCore::ResourceResponseBase::setResourceLoadTiming): (WebCore::ResourceResponseBase::compare): * platform/network/ResourceResponseBase.h: 2010-07-01 Sheriff Bot Unreviewed, rolling out r62321. http://trac.webkit.org/changeset/62321 https://bugs.webkit.org/show_bug.cgi?id=41494 Broke the non-win builds. (Requested by dumi on #webkit). * dom/ScriptExecutionContext.cpp: (WebCore::ScriptExecutionContext::addOpenDatabase): (WebCore::ScriptExecutionContext::removeOpenDatabase): (WebCore::ScriptExecutionContext::stopDatabases): * dom/ScriptExecutionContext.h: * storage/Database.cpp: (WebCore::Database::openDatabase): (WebCore::Database::Database): (WebCore::Database::markAsDeletedAndClose): (WebCore::ContextRemoveOpenDatabaseTask::create): (WebCore::ContextRemoveOpenDatabaseTask::performTask): (WebCore::ContextRemoveOpenDatabaseTask::isCleanupTask): (WebCore::ContextRemoveOpenDatabaseTask::ContextRemoveOpenDatabaseTask): (WebCore::Database::close): (WebCore::Database::closeImmediately): (WebCore::Database::stop): (WebCore::Database::performPolicyChecks): * storage/Database.h: (WebCore::Database::): (WebCore::Database::stopped): * storage/DatabaseTask.cpp: (WebCore::DatabaseTask::performTask): (WebCore::DatabaseOpenTask::DatabaseOpenTask): (WebCore::DatabaseOpenTask::doPerformTask): (WebCore::DatabaseOpenTask::debugTaskName): (WebCore::DatabaseCloseTask::DatabaseCloseTask): (WebCore::DatabaseCloseTask::doPerformTask): (WebCore::DatabaseCloseTask::debugTaskName): (WebCore::DatabaseTransactionTask::DatabaseTransactionTask): (WebCore::DatabaseTransactionTask::~DatabaseTransactionTask): (WebCore::DatabaseTransactionTask::doPerformTask): (WebCore::DatabaseTransactionTask::debugTaskName): (WebCore::DatabaseTableNamesTask::DatabaseTableNamesTask): (WebCore::DatabaseTableNamesTask::doPerformTask): (WebCore::DatabaseTableNamesTask::debugTaskName): * storage/DatabaseTask.h: (WebCore::DatabaseOpenTask::create): (WebCore::DatabaseCloseTask::create): (WebCore::DatabaseTransactionTask::create): (WebCore::DatabaseTableNamesTask::create): * storage/DatabaseThread.cpp: (WebCore::DatabaseThread::databaseThread): * storage/DatabaseTracker.cpp: (WebCore::DatabaseTracker::addOpenDatabase): * storage/SQLTransaction.cpp: (WebCore::SQLTransaction::executeSQL): (WebCore::SQLTransaction::checkAndHandleClosedDatabase): 2010-07-01 Xan Lopez Reviewed by Gustavo Noronha. [GTK] Stop using GdkRegion in 3.x mode https://bugs.webkit.org/show_bug.cgi?id=41463 Make us compile without using GdkRegion, since it's gone from GTK+ 3.x. * platform/graphics/IntRect.h: * platform/graphics/cairo/GraphicsContextCairo.cpp: (WebCore::GraphicsContext::drawFocusRing): * platform/graphics/gtk/FontGtk.cpp: (WebCore::cairo_region_shrink): (WebCore::Font::drawComplexText): * platform/gtk/GtkPluginWidget.cpp: (WebCore::GtkPluginWidget::paint): * platform/gtk/RenderThemeGtk.h: * platform/gtk/ScrollbarGtk.cpp: (ScrollbarGtk::paint): 2010-06-30 Dumitru Daniliuc Reviewed by Darin Fisher. DB clean up. https://bugs.webkit.org/show_bug.cgi?id=41404 1. Made all DatabaseTasks internal classes of Database and made the Database methods called by those tasks private. 2. Removed the Database::stop{ed}() methods. 3. Removed the code that kept track of open databases from ScriptExecutionContext (no longer needed). 4. Made minor changes to Database::closeImmediately() to make it possible for DatabaseThread to call that method instead of close(). 5. Minor fix to DatabaseTracker: addOpenDatabase() should call OriginQuotaManager::addDatabase() if the origin quota manager is not tracking this origin. 6. Removed Database::performPolicyChecks(). We already update the DB size after each transaction, and we enforce a max size for the DB at the beginning of each transaction. * dom/ScriptExecutionContext.cpp: (WebCore::ScriptExecutionContext::stopDatabases): * dom/ScriptExecutionContext.h: (WebCore::ScriptExecutionContext::hasOpenDatabases): * storage/Database.cpp: (WebCore::Database::openDatabase): (WebCore::Database::Database): (WebCore::Database::markAsDeletedAndClose): (WebCore::Database::close): (WebCore::Database::closeImmediately): * storage/Database.h: * storage/DatabaseTask.cpp: (WebCore::DatabaseTask::performTask): (WebCore::Database::DatabaseOpenTask::DatabaseOpenTask): (WebCore::Database::DatabaseOpenTask::doPerformTask): (WebCore::Database::DatabaseOpenTask::debugTaskName): (WebCore::Database::DatabaseCloseTask::DatabaseCloseTask): (WebCore::Database::DatabaseCloseTask::doPerformTask): (WebCore::Database::DatabaseCloseTask::debugTaskName): (WebCore::Database::DatabaseTransactionTask::DatabaseTransactionTask): (WebCore::Database::DatabaseTransactionTask::doPerformTask): (WebCore::Database::DatabaseTransactionTask::debugTaskName): (WebCore::Database::DatabaseTableNamesTask::DatabaseTableNamesTask): (WebCore::Database::DatabaseTableNamesTask::doPerformTask): (WebCore::Database::DatabaseTableNamesTask::debugTaskName): * storage/DatabaseTask.h: (WebCore::Database::DatabaseOpenTask::create): (WebCore::Database::DatabaseCloseTask::create): (WebCore::Database::DatabaseTransactionTask::create): (WebCore::Database::DatabaseTableNamesTask::create): * storage/DatabaseThread.cpp: (WebCore::DatabaseThread::databaseThread): * storage/DatabaseTracker.cpp: (WebCore::DatabaseTracker::addOpenDatabase): * storage/SQLTransaction.cpp: (WebCore::SQLTransaction::executeSQL): (WebCore::SQLTransaction::checkAndHandleClosedDatabase): 2010-07-01 Kent Tamura Reviewed by Darin Fisher. [Chromium] Support indeterminate checkbox for Windows https://bugs.webkit.org/show_bug.cgi?id=41444 * rendering/RenderThemeChromiumWin.cpp: (WebCore::RenderThemeChromiumWin::determineState): Check isIndeterminate() and set an appropriate flag value. 2010-07-01 Alexey Proskuryakov Reviewed by Dan Bernstein. https://bugs.webkit.org/show_bug.cgi?id=41488 Crash in SubresourceLoader::create when load is initiated from plug-in destructor Test: plugins/js-from-destroy.html * loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::create): Null check active document loader. 2010-07-01 Andy Estes Reviewed by Darin Adler. Correctly fire beforeload events for images added to the DOM using .innerHTML. https://bugs.webkit.org/show_bug.cgi?id=40919 Test: fast/dom/beforeload/image-before-load-innerHTML.html * html/LegacyHTMLDocumentParser.cpp: (WebCore::LegacyHTMLDocumentParser::write): Do not fire synchronous image beforeload events immediately after parsing a document fragment. Let the events fire later, giving the fragment time to potentially be inserted into the document. 2010-07-01 Andreas Kling Reviewed by Tor Arne Vestbø. Canvas: bezierCurveTo() and quadraticCurveTo() must ensure subpaths https://bugs.webkit.org/show_bug.cgi?id=41192 If the current path is empty, bezierCurveTo() and quadraticCurveTo() will now move to the (first) control point before adding the curve. Spec links: http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-beziercurveto http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-quadraticcurveto * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::quadraticCurveTo): (WebCore::CanvasRenderingContext2D::bezierCurveTo): 2010-07-01 Andreas Kling Reviewed by Darin Adler. Canvas element cannot have negative width or height (HTML5 spec 4.8.11) https://bugs.webkit.org/show_bug.cgi?id=39149 If assigned a negative value, it should default to 300 for width and 150 for height. Spec link: http://www.whatwg.org/specs/web-apps/current-work/#attr-canvas-width Test: fast/canvas/canvas-negative-size.html * html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::reset): 2010-07-01 Darin Adler Reviewed by Steve Falkenburg. Turn on adoptRef assertion for TreeShared. * platform/TreeShared.h: Remove LOOSE_TREE_SHARED and all the ifdefs. Actually, I used LOOSE_REF_COUNTED by accident in a few places, but removing them all now. * rendering/ShadowElement.cpp: (WebCore::ShadowBlockElement::create): Added adoptRef. This was a storage leak before, probably recently introduced r61324. (WebCore::ShadowInputElement::create): Ditto. 2010-07-01 Xan Lopez Reviewed by Gustavo Noronha. Only include the geolocation IDL in the GObject DOM bindings set if geolocation is enabled. * GNUmakefile.am: 2010-07-01 Timothy Hatcher Provide a WebView preference to disable DNS prefetching. https://bugs.webkit.org/show_bug.cgi?id=28825 rdar://problem/7181249 Reviewed by Darin Adler. * WebCore.base.exp: Added Settings::setDNSPrefetchingEnabled. * dom/Document.cpp: (WebCore::Document::initDNSPrefetch): Check settings->dnsPrefetchingEnabled(). * page/Settings.cpp: (WebCore::Settings::Settings): Set m_dnsPrefetchingEnabled to true. (WebCore::Settings::setDNSPrefetchingEnabled): Added. Set m_dnsPrefetchingEnabled. * page/Settings.h: (WebCore::Settings::dnsPrefetchingEnabled): Added. Return m_dnsPrefetchingEnabled. 2010-07-01 Simon Fraser Reviewed by Darin Adler. Get accelerated compositing working with webkit2 https://bugs.webkit.org/show_bug.cgi?id=41084 Step 2: add a method, syncCompositingStateForThisLayerOnly(), to GraphicsLayer to commit batched changes non-recursively. This allows us to use GraphicsLayer in places where we don't want to kick off a recursive commit of the entire tree. * platform/graphics/GraphicsLayer.h: (WebCore::GraphicsLayer::syncCompositingStateForThisLayerOnly): * platform/graphics/mac/GraphicsLayerCA.h: * platform/graphics/mac/GraphicsLayerCA.mm: (WebCore::GraphicsLayerCA::syncCompositingStateForThisLayerOnly): * WebCore.AcceleratedCompositing.exp: Export the new method for use in WebKit2. 2010-07-01 Simon Fraser Reviewed by Sam Weinig. Get accelerated compositing working with webkit2 https://bugs.webkit.org/show_bug.cgi?id=41084 Step 1: add a new .exp file for WebCore, which exports symbols only when USE(ACCELERATED_COMPOSITING) is defined. Also export WebCore::FloatSize::FloatSize(WebCore::IntSize const&) from WebCore. * DerivedSources.make: * WebCore.AcceleratedCompositing.exp: Added. * WebCore.base.exp: * WebCore.xcodeproj/project.pbxproj: 2010-07-01 Alexey Proskuryakov Reviewed by Darin Adler. REGRESSION (r49411): Various crashes due to JavaScript execution during plug-in destruction Test: plugins/write-xssauditor-from-destroy.html Fix specific known cases that also crash in same process case. I don't know if there is any rule for when documentLoader should be checked for being null, it looks like a mess. * loader/FrameLoader.cpp: (WebCore::FrameLoader::referrer): * page/XSSAuditor.cpp: (WebCore::XSSAuditor::findInRequest): 2010-07-01 Andreas Kling Reviewed by Darin Adler. The HTML5 canvas 2d.drawImage.zerocanvas test does not pass https://bugs.webkit.org/show_bug.cgi?id=40271 Throw INVALID_STATE_ERR when attempting to draw a canvas with zero width or height. Spec link: http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-drawimage * bindings/js/JSCanvasRenderingContext2DCustom.cpp: (WebCore::JSCanvasRenderingContext2D::drawImage): Call setDOMException after drawImage(canvas, x, y) * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::drawImage): 2010-07-01 Andreas Kling Reviewed by Oliver Hunt. [Qt] Canvas: clip() should use non-zero winding rule https://bugs.webkit.org/show_bug.cgi?id=41466 Use non-zero winding number rule when clipping a GraphicsContext from canvas. Fixes appearance of the "pill" in the web inspector. * platform/graphics/qt/GraphicsContextQt.cpp: (WebCore::GraphicsContext::canvasClip): 2010-07-01 Sheriff Bot Unreviewed, rolling out r62246. http://trac.webkit.org/changeset/62246 https://bugs.webkit.org/show_bug.cgi?id=41470 "Worker tests are broken in Chromium" (Requested by yurys on #webkit). * bindings/v8/ScriptController.cpp: (WebCore::ScriptController::processingUserGesture): * bindings/v8/V8AbstractEventListener.cpp: (WebCore::V8AbstractEventListener::invokeEventHandler): * bindings/v8/V8HiddenPropertyName.h: * bindings/v8/custom/V8DOMWindowCustom.cpp: (WebCore::V8DOMWindow::eventAccessorGetter): (WebCore::V8DOMWindow::eventAccessorSetter): 2010-07-01 Andreas Kling Reviewed by Tor Arne Vestbø. Canvas: Exception erroneously thrown for drawImage() when image.complete=false https://bugs.webkit.org/show_bug.cgi?id=33968 Do nothing in drawImage() if called with an image whose 'complete' attribute is false, or a video whose readyState is either HAVE_NOTHING or HAVE_METADATA. Spec link: http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-drawimage Test: fast/canvas/canvas-drawImage-incomplete.html * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::drawImage): 2010-07-01 Justin Schuh Reviewed by Dan Bernstein. Prevent crash on counter destruction https://bugs.webkit.org/show_bug.cgi?id=40032 Added counter destruction to RenderWidget::destroy() Test: fast/css/counters/destroy-counter-crash.html * rendering/RenderWidget.cpp: (WebCore::RenderWidget::destroy): 2010-07-01 Lucas De Marchi Unreviewed build fix after r62215. No new functionality, so no new tests. * CMakeLists.txt: Add missing files and re-sort. 2010-07-01 Jocelyn Turcotte Reviewed by Kenneth Rohde Christiansen. [Qt] Remove an unneeded assert. This assert is triggered for example while showing the falling leaves demo. GraphicsLayerQtImpl::toGraphicsLayerQtImpl asserts that its input pointer is null. Looking at the uses of this method it seems like it is expected to return null if a null pointer is given to it. * platform/graphics/qt/GraphicsLayerQt.cpp: (WebCore::toGraphicsLayerQtImpl): 2010-06-16 Jocelyn Turcotte Reviewed by Simon Hausmann. [Qt] Fix qmake vcproj generation for QtWebKit. qmake use TARGET=/LIBS+= -lTARGET to create dependencies between projects in a subdir template. Since when compiling outside of Qt we hijack the target name of QtWebKit to add the configuration and version suffix to the binary filename, qmake can't establish the WebCore project as a dependency to QtTestBrowser. This patch makes sure that the target is not hijacked on the first of the three passes where the dependencies are determined. * WebCore.pro: 2010-07-01 Nikolas Zimmermann Reviewed by Dirk Schulze. SVGRenderStyle::diff() is missing https://bugs.webkit.org/show_bug.cgi?id=41455 Don't just return StyleDifferenceLayout when two SVGRenderStyle objects differ. Figure out when to repaint, and as last resort do a relayout. Lively Kernel doesn't do any relayouts anymore, same for lots of demos in the IE9 testcenter. * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::diff): * rendering/style/SVGRenderStyle.cpp: (WebCore::SVGRenderStyle::diff): * rendering/style/SVGRenderStyle.h: 2010-07-01 Antti Koivisto Revert accidental commit. * platform/network/qt/ResourceRequestQt.cpp: (WebCore::ResourceRequest::toNetworkRequest): 2010-07-01 Patrick Gansterer Reviewed by Nikolas Zimmermann. Buildfix for !ENABLE(SVG_FOREIGN_OBJECT) after r62196. https://bugs.webkit.org/show_bug.cgi?id=40984 * rendering/SVGRenderSupport.cpp: (WebCore::SVGRenderSupport::finishRenderSVGContent): 2010-07-04 Patrick Gansterer Reviewed by Dirk Schulze. Buildfix for !ENABLE(FILTERS) after r62238. https://bugs.webkit.org/show_bug.cgi?id=41456 * rendering/SVGRenderSupport.cpp: (WebCore::SVGRenderSupport::prepareToRenderSVGContent): 2010-07-01 MORITA Hajime Unreviewed build fix. * rendering/RenderInputSpeech.cpp: (WebCore::RenderInputSpeech::paintInputFieldSpeechButton): * rendering/RenderInputSpeech.h: * rendering/RenderTheme.cpp: (WebCore::RenderTheme::paintInputFieldSpeechButton): * rendering/RenderTheme.h: 2010-07-01 Satish Sampath Reviewed by Kent Tamura. Rendering the speech button in input elements. https://bugs.webkit.org/show_bug.cgi?id=40984 The button currently has only one state and rendered as an image on all platforms. Subsequent patches will add user input handling and more states + rendering code to the button. The button's appearance can be customized by individual ports in their RenderTheme implementation if required. Tests: platform/mac/fast/forms/input-appearance-numberandspeech.html platform/mac/fast/forms/input-appearance-searchandspeech.html platform/mac/fast/forms/input-appearance-speechbutton.html * GNUmakefile.am: * Resources/inputSpeech.png: Added. * Resources/inputSpeech.tiff: Added. Used by the Mac implementation. * WebCore.gypi: * WebCore.pro: * WebCore.qrc: * WebCore.xcodeproj/project.pbxproj: * platform/graphics/qt/ImageQt.cpp: (loadResourcePixmap): Load the speech button images for Qt port. * rendering/RenderInputSpeech.cpp: Added. (WebCore::RenderInputSpeech::adjustInputFieldSpeechButtonStyle): Sets the button's dimensions. (WebCore::RenderInputSpeech::paintInputFieldSpeechButton): * rendering/RenderInputSpeech.h: Added. * rendering/RenderTextControlSingleLine.cpp: (WebCore::RenderTextControlSingleLine::layout): (WebCore::RenderTextControlSingleLine::forwardEvent): (WebCore::RenderTextControlSingleLine::createSubtreeIfNeeded): Create the speech button. (WebCore::RenderTextControlSingleLine::createInnerBlockStyle): * rendering/RenderTheme.cpp: (WebCore::RenderTheme::adjustStyle): (WebCore::RenderTheme::paint): (WebCore::RenderTheme::adjustInputFieldSpeechButtonStyle): (WebCore::RenderTheme::paintInputFieldSpeechButton): * rendering/RenderTheme.h: * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::paintSearchFieldCancelButton): Get cancel button to render to the left of speech button when enabled. 2010-07-01 Mario Sanchez Prada Reviewed by Xan Lopez. [GTK] Extra nullcheck needed at SelectionControllerGtk.cpp https://bugs.webkit.org/show_bug.cgi?id=41447 Extra null check added. * editing/gtk/SelectionControllerGtk.cpp: (WebCore::SelectionController::notifyAccessibilityForSelectionChange): 2010-07-01 Yury Semikhatsky Reviewed by Adam Barth. [v8] Web Inspector: inspected page crashes on attempt to change iframe's src attribute https://bugs.webkit.org/show_bug.cgi?id=41350 Tests: fast/events/popup-blocked-from-fake-user-gesture.html http/tests/inspector/change-iframe-src.html * bindings/v8/ScriptController.cpp: (WebCore::ScriptController::processingUserGesture): use V8Proxy from the ScriptController instead of one from the call stack. Get event directly from hidden property to avoid unnecessary checks. * bindings/v8/V8AbstractEventListener.cpp: (WebCore::V8AbstractEventListener::invokeEventHandler): * bindings/v8/V8HiddenPropertyName.h: * bindings/v8/custom/V8DOMWindowCustom.cpp: (WebCore::V8DOMWindow::eventAccessorGetter): (WebCore::V8DOMWindow::eventAccessorSetter): 2010-07-01 Nikolas Zimmermann Reviewed by Dirk Schulze. RenderSVGContainer/RenderSVGRoot report wrong strokeBoundingBox() https://bugs.webkit.org/show_bug.cgi?id=41450 strokeBoundingBox() was reporting the repaintRectInLocalCoordinates() for children of a container, instead of the actual strokeBoundingBox(). Only visible in WebInspector when looking at a container which has a resource applied and contains a children which also has a resource applied. Doesn't affect any test results. * rendering/RenderSVGContainer.cpp: (WebCore::RenderSVGContainer::objectBoundingBox): (WebCore::RenderSVGContainer::strokeBoundingBox): (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates): * rendering/RenderSVGRoot.cpp: (WebCore::RenderSVGRoot::objectBoundingBox): Deinlined this functions, it's virtual so there's no gain. (WebCore::RenderSVGRoot::strokeBoundingBox): Ditto. (WebCore::RenderSVGRoot::repaintRectInLocalCoordinates): * rendering/RenderSVGRoot.h: * rendering/SVGRenderSupport.cpp: (WebCore::SVGRenderSupport::computeContainerBoundingBox): * rendering/SVGRenderSupport.h: Add enum controlling the mode of container bounding box mode calculation. 2010-07-01 Zoltan Herczeg Reviewed by Nikolas Zimmermann. Implementing feConvolveMatrix svg filter https://bugs.webkit.org/show_bug.cgi?id=5861 The implementation is optimized for speed, and uses multiple algorithms for different parts of the image. See SVGFEConvolveMatrixElement.cpp for a detailed description. * svg/SVGFEConvolveMatrixElement.cpp: (WebCore::SVGFEConvolveMatrixElement::build): * svg/graphics/filters/SVGFEConvolveMatrix.cpp: (WebCore::clampRGBAValue): (WebCore::FEConvolveMatrix::fastSetInteriorPixels): (WebCore::FEConvolveMatrix::getPixelValue): (WebCore::FEConvolveMatrix::fastSetOuterPixels): (WebCore::FEConvolveMatrix::setInteriorPixels): (WebCore::FEConvolveMatrix::setOuterPixels): (WebCore::FEConvolveMatrix::apply): * svg/graphics/filters/SVGFEConvolveMatrix.h: (WebCore::FEConvolveMatrix::uniteChildEffectSubregions): 2010-07-01 Adam Barth Reviewed by Eric Seidel. Abstract 'a'-'z' checks into a function https://bugs.webkit.org/show_bug.cgi?id=41438 Hopefully this version is more readable. * html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::nextToken): 2010-07-01 Adam Barth Reviewed by Eric Seidel. Parameter names in frame src URLs parsed incorrectly if resembles HTML entity code followed by underscore https://bugs.webkit.org/show_bug.cgi?id=41345 Apparently whether an HTML entity requires a trailing semicolon varies depending on the entity. The full table is in the spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/named-character-references.html#named-character-references I believe branch added in this patch is accurate. At some point, I'll add a full test suite for all the named entities. * html/HTMLEntityParser.cpp: (WebCore::consumeHTMLEntity): 2010-07-01 Eric Seidel Unreviewed. Fix paste-o in Gtk build file. Split out HTMLFormattingElementList into its own file https://bugs.webkit.org/show_bug.cgi?id=41440 * GNUmakefile.am: 2010-07-01 Nikolas Zimmermann Reviewed by Eric Seidel & Dirk Schulze. Performance regression for setting content of in SVG https://bugs.webkit.org/show_bug.cgi?id=36564 Dramatically reducing the number of repaintRectInLocalCoordinates() calls needed while painting. Do not pass the repaintRect to prepareToRenderSVGContent, only calculate it if opacity < 1 or -webkit-svg-shadow is set. Most noticeable is that RenderSVGRoot had to visit all children, before actually painting, just to calculate the repaint rect. And as RenderSVGRoot never carries shadow or opacity it was completly useless. RenderSVGContainer also called repaintRectInLocalCoordinates, but the result is only needed when painting outlines, which is a rare case. These modifications fix the performance regression and the number of repaintRectInLocalCoordinate calls for the complex example in the bug report with 500 runs shrinks from 1.7 million calls to less than 105.000. 50 runs without the patch: ~ 520.8ms 50 runs with the patch : ~ 501.8ms The test calls setTimeout(0) 50 times, that already accounts for the 500ms. So setting the content of a element withs clippers applied, is very cheap now. Also remove the need to pass in a filter argument to prepareToRenderSVGContent/finishRenderSVGContent, it can easily be grabbed of the cache - just like all other resources are handled, simplifying the code. * rendering/RenderPath.cpp: (WebCore::RenderPath::paint): * rendering/RenderSVGContainer.cpp: (WebCore::RenderSVGContainer::paint): (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates): * rendering/RenderSVGImage.cpp: (WebCore::RenderSVGImage::paint): * rendering/RenderSVGRoot.cpp: (WebCore::RenderSVGRoot::paint): * rendering/SVGInlineFlowBox.cpp: (WebCore::SVGInlineFlowBox::paint): * rendering/SVGRenderSupport.cpp: (WebCore::SVGRenderSupport::prepareToRenderSVGContent): (WebCore::SVGRenderSupport::finishRenderSVGContent): * rendering/SVGRenderSupport.h: * rendering/SVGRootInlineBox.cpp: (WebCore::SVGRootInlineBox::paint): 2010-07-01 Eric Seidel Reviewed by Adam Barth. Split out HTMLFormattingElementList into its own file https://bugs.webkit.org/show_bug.cgi?id=41440 No functional changes, thus no tests. * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processEndTag): (WebCore::HTMLTreeBuilder::indexOfFirstUnopenFormattingElement): (WebCore::HTMLTreeBuilder::reconstructTheActiveFormattingElements): * html/HTMLTreeBuilder.h: 2010-07-01 Adam Barth Reviewed by Eric Seidel. BogusCommentState should come in from the cold https://bugs.webkit.org/show_bug.cgi?id=41439 The BogusCommentState has always been wrong. The proximate issue is that it didn't handle resuming correctly when parsing a partial input stream. Now that we have EOF working properly, we can actually implement this state correctly. We need to distinguish when we enter this state from when we continue in this state. We could do that with a branch for each character, but it seemed easier to split the state in two, even though that leaves us with one more state in our tokenizer than we have in the HTML5 spec. * html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::nextToken): * html/HTMLTokenizer.h: (WebCore::HTMLTokenizer::): 2010-06-30 Adam Barth Reviewed by Eric Seidel. HTMLTokenizer's whitespace checks are very redundant https://bugs.webkit.org/show_bug.cgi?id=41434 This patch adds isTokenizerWhitespace, which replaces a lot of redundant logic in nextToken. * html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::nextToken): 2010-06-30 Andreas Kling Reviewed by Kenneth Rohde Christiansen. [Qt] Crash when uploading document to Google Docs https://bugs.webkit.org/show_bug.cgi?id=40795 Fix bug where the local file wasn't opened (for POSTing) if it were the first element in the form. * platform/network/qt/QNetworkReplyHandler.cpp: (WebCore::FormDataIODevice::FormDataIODevice): (WebCore::FormDataIODevice::moveToNextElement): (WebCore::FormDataIODevice::openFileForCurrentElement): * platform/network/qt/QNetworkReplyHandler.h: 2010-06-30 Eric Seidel Reviewed by Adam Barth. Implement generateImpliedEndTags and deploy to steps which were blocked on it https://bugs.webkit.org/show_bug.cgi?id=41432 This fixes one subtest in html5lib/runner.html and positively effects a couple others. More code sharing will be needed here. For the moment we're using copy/paste code, but that will soon be shared. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processEndTag): (WebCore::HTMLTreeBuilder::generateImpliedEndTagsWithExclusion): (WebCore::HTMLTreeBuilder::generateImpliedEndTags): * html/HTMLTreeBuilder.h: 2010-06-30 Csaba Osztrogonác Unreviewed buildfix after r62196 and r62214. * html/HTMLElementStack.cpp: Put !ENABLE(SVG) guard instead of !ENABLE(SVG_FOREIGN_OBJECT) around include of SVGNames.h. 2010-06-30 Sam Weinig Really fix the windows build. * bindings/js/JSBindingsAllInOne.cpp: 2010-06-30 Sam Weinig Another Chromium build fix. * page/DOMWindow.idl: 2010-06-30 Sam Weinig Fix Chromium build. * WebCore.gyp/WebCore.gyp: 2010-06-30 Sam Weinig Fix Windows build. * bindings/js/JSBindingsAllInOne.cpp: 2010-06-30 Sam Weinig Fix Gtk build. * GNUmakefile.am: 2010-06-29 Sam Weinig Reviewed by Dan Bernstein. Patch for https://bugs.webkit.org/show_bug.cgi?id=41146 Implement the .dataset DOM property Tests: fast/dom/dataset-xhtml.xhtml fast/dom/dataset.html * DerivedSources.cpp: * DerivedSources.make: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSDOMStringMapCustom.cpp: Added. (WebCore::JSDOMStringMap::canGetItemsForName): (WebCore::JSDOMStringMap::nameGetter): (WebCore::JSDOMStringMap::getOwnPropertyNames): (WebCore::JSDOMStringMap::deleteProperty): (WebCore::JSDOMStringMap::putDelegate): * bindings/js/JSDOMStringMapCustom.h: Added. * dom/DOMStringMap.cpp: Added. (WebCore::DOMStringMap::~DOMStringMap): * dom/DOMStringMap.h: Added. (WebCore::DOMStringMap::DOMStringMap): * dom/DOMStringMap.idl: Added. * dom/DatasetDOMStringMap.cpp: Added. (WebCore::isValidAttributeName): (WebCore::convertAttributeNameToPropertyName): (WebCore::propertyNameMatchesAttributeName): (WebCore::isValidPropertyName): (WebCore::convertPropertyNameToAttributeName): (WebCore::DatasetDOMStringMap::ref): (WebCore::DatasetDOMStringMap::deref): (WebCore::DatasetDOMStringMap::getNames): (WebCore::DatasetDOMStringMap::item): (WebCore::DatasetDOMStringMap::contains): (WebCore::DatasetDOMStringMap::setItem): (WebCore::DatasetDOMStringMap::deleteItem): * dom/DatasetDOMStringMap.h: Added. (WebCore::DatasetDOMStringMap::create): (WebCore::DatasetDOMStringMap::DatasetDOMStringMap): * dom/Element.cpp: (WebCore::Element::dataset): * dom/Element.h: * dom/Element.idl: * dom/ElementRareData.h: * page/DOMWindow.idl: 2010-06-30 Darin Adler More Qt build fix. * html/HTMLElementStack.cpp: Put !ENABLE(SVG_FOREIGN_OBJECT) around include of SVGNames.h too. 2010-06-30 Darin Adler Reviewed by Adam Barth. Add assertion, off by default, for when you forget to do adoptRef https://bugs.webkit.org/show_bug.cgi?id=41422 * platform/TreeShared.h: Added code to require adoption and assert if you don't call adoptRef. For now, it is turned off because of the LOOSE_TREE_SHARED define in this header. Later we can turn it on once we get everything working without asserting. Note also that it only works for objects with an initial reference count of 1. 2010-06-30 Patrick Gansterer Reviewed by Darin Adler. Buildfix for !ENABLE(SVG_FOREIGN_OBJECT) after r62196. https://bugs.webkit.org/show_bug.cgi?id=41429 * html/HTMLElementStack.cpp: 2010-06-30 Eric Seidel Reviewed by Adam Barth. Add new popUntil(tagName) function and deploy https://bugs.webkit.org/show_bug.cgi?id=41405 Add a new popUntil function to share some common code between states. There is more code to share here, but this is a start. I also filled in a couple similar states to these with the hope of sharing more code, but decided to wait for a later patch. No test changes, since this code doesn't do enough yet to pass any more subtests. Lack of generateImpliedEndTags is the main blocking issue. * html/HTMLElementStack.cpp: (WebCore::HTMLElementStack::popUntil): * html/HTMLElementStack.h: * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processEndTag): 2010-06-30 Xan Lopez Reviewed by Gustavo Noronha. [GTK] Unit test for DOM insertion methods https://bugs.webkit.org/show_bug.cgi?id=40495 Fix typo in custom function detection method. * bindings/scripts/CodeGeneratorGObject.pm: 2010-06-30 Eric Seidel Reviewed by Adam Barth. Implement HTML5 "in scope" algorithm and attempt to use it https://bugs.webkit.org/show_bug.cgi?id=41402 Implemented the 4 needed "in scope" functions for HTML5. 3 for the different sets of scope markers, and one for doing exact element comparisons instead of tag name searches. I deployed inScope("body") for and in InBody. Adds two new (expected) failures, since we're now switching out of InBody to AfterBody when seeing . We don't implement AfterBody yet, so the rest of the content after is ignored. * html/HTMLElementStack.cpp: (WebCore::inScopeCommon): (WebCore::HTMLElementStack::inScope): (WebCore::HTMLElementStack::inListItemScope): (WebCore::HTMLElementStack::inTableScope): * html/HTMLElementStack.h: * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processBodyEndTagForInBody): (WebCore::HTMLTreeBuilder::processEndTag): * html/HTMLTreeBuilder.h: 2010-06-30 Eric Seidel Reviewed by Adam Barth. Split HTMLElementStack out into its own file https://bugs.webkit.org/show_bug.cgi?id=41399 No functional change, thus no tests. * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * html/HTMLElementStack.cpp: Added. (WebCore::HTMLElementStack::ElementRecord::ElementRecord): (WebCore::HTMLElementStack::ElementRecord::element): (WebCore::HTMLElementStack::ElementRecord::next): (WebCore::HTMLElementStack::ElementRecord::releaseNext): (WebCore::HTMLElementStack::ElementRecord::setNext): (WebCore::HTMLElementStack::HTMLElementStack): (WebCore::HTMLElementStack::~HTMLElementStack): (WebCore::HTMLElementStack::popHTMLHeadElement): (WebCore::HTMLElementStack::pop): (WebCore::HTMLElementStack::pushHTMLHtmlElement): (WebCore::HTMLElementStack::pushHTMLHeadElement): (WebCore::HTMLElementStack::pushHTMLBodyElement): (WebCore::HTMLElementStack::push): (WebCore::HTMLElementStack::top): (WebCore::HTMLElementStack::removeHTMLHeadElement): (WebCore::HTMLElementStack::remove): (WebCore::HTMLElementStack::contains): (WebCore::HTMLElementStack::inScope): (WebCore::HTMLElementStack::htmlElement): (WebCore::HTMLElementStack::headElement): (WebCore::HTMLElementStack::bodyElement): (WebCore::HTMLElementStack::pushCommon): (WebCore::HTMLElementStack::popCommon): (WebCore::HTMLElementStack::removeNonFirstCommon): * html/HTMLElementStack.h: Added. * html/HTMLTreeBuilder.h: 2010-06-30 Kenneth Russell Reviewed by Oliver Hunt. WebCore::WebGLArrayInternal::lengthAttrGetter ReadAV@NULL (b1a3e1a3e9d01f17fd493d68eeb2742f) https://bugs.webkit.org/show_bug.cgi?id=38040 Changed custom ArrayBufferView constructors to create a fully-initialized, zero-length array when called with zero arguments. This is the simplest fix which works identically in both the JSC and V8 bindings. Test: fast/canvas/webgl/array-buffer-view-crash.html * bindings/js/JSArrayBufferViewHelper.h: (WebCore::constructArrayBufferView): * bindings/v8/custom/V8ArrayBufferViewCustom.h: (WebCore::constructWebGLArray): 2010-06-30 Victor Wang Reviewed by Darin Fisher. [chromium] update webcore gyp to use v8 dll for chromium multi dll build. https://bugs.webkit.org/show_bug.cgi?id=41376 * WebCore.gyp/WebCore.gyp: 2010-06-30 Jeremy Moskovich Reviewed by Dimitri Glazkov. [Chromium] Add OOP font loading to FontPlatformDataChromiumMac. On OS X, with font management software installed. Fonts can reside in an arbitrary path on disk which is blocked by Chromium's sandbox. This change adds hooks to FontPlaformData which allow cross-process font loading in case of need. https://bugs.webkit.org/show_bug.cgi?id=41148 Not possible to test - requires sandboxing which DRT doesn't support. * WebCore.gypi: * platform/graphics/chromium/FontPlatformDataChromiumMac.mm: Added. (WebCore::FontPlatformData::FontPlatformData): (WebCore::FontPlatformData::~FontPlatformData): (WebCore::FontPlatformData::operator=): (WebCore::FontPlatformData::setFont): (WebCore::FontPlatformData::roundsGlyphAdvances): (WebCore::FontPlatformData::allowsLigatures): (WebCore::FontPlatformData::description): 2010-06-30 Jeremy Moskovich Reviewed by Dan Bernstein. Minor tweaks to FontPlatformDataMac & SimpleFontDataMac.mm * Avoid an extra FontPlatformData copy in SimpleFontDataMac.mm * Fix a typo in FontPlatformDataMac.mm https://bugs.webkit.org/show_bug.cgi?id=41152 No behavior changes so no new tests. * platform/graphics/mac/FontPlatformDataMac.mm: (WebCore::FontPlatformData::description): * platform/graphics/mac/SimpleFontDataMac.mm: (WebCore::copyFontTableForTag): 2010-06-30 Andreas Kling Reviewed by Kenneth Rohde Christiansen. [Qt] Make "disallow multiple calls to SetWindow" on windowed plugins a quirk https://bugs.webkit.org/show_bug.cgi?id=41407 Only disallow calling SetWindow more than once if we're using Flash 9 or older. This fixes resizing of YouTube videos via the player's own button. Removed copy-pasted logic in PluginViewGtk since the issue only exists when running Flash with a non-Gtk toolkit. * plugins/PluginPackage.cpp: (WebCore::PluginPackage::determineQuirks): * plugins/PluginQuirkSet.h: (WebCore::): * plugins/gtk/PluginViewGtk.cpp: (WebCore::PluginView::setNPWindowIfNeeded): Remove unnecessary logic copy-pasted from PluginViewQt. * plugins/qt/PluginViewQt.cpp: (WebCore::PluginView::setNPWindowIfNeeded): 2010-06-30 Andreas Kling Reviewed by Antti Koivisto. [Qt, Gtk, Symbian] Mind the semantics of NPRect for windowed plugin clip rects https://bugs.webkit.org/show_bug.cgi?id=41406 NPRect has right/bottom instead of width/height. This was fixed in PluginViewMac with http://trac.webkit.org/changeset/45815 * plugins/gtk/PluginViewGtk.cpp: (WebCore::PluginView::setNPWindowIfNeeded): * plugins/qt/PluginViewQt.cpp: (WebCore::PluginView::setNPWindowIfNeeded): * plugins/symbian/PluginViewSymbian.cpp: (WebCore::PluginView::setNPWindowIfNeeded): 2010-06-30 Antonio Gomes Reviewed by Simon Fraser. Spatial Navigation: make elements in inner frames nested more than 1 level deep focusable https://bugs.webkit.org/show_bug.cgi?id=41160 Patch addresses the problem of spatial navigation not work properly with nested inner frames by adding the isNodeDeepDescendantOfDocument method. It recursively checks if a give node is descendant of a given document or any parent of it. Test: fast/events/spatial-navigation/snav-iframe-nested.html * page/FocusController.cpp: (WebCore::FocusController::deepFindFocusableNodeInDirection): * page/SpatialNavigation.cpp: (WebCore::isNodeDeepDescendantOfDocument): * page/SpatialNavigation.h: 2010-06-30 Adam Barth Reviewed by Eric Seidel. HTMLTokenizer should use fewer macros https://bugs.webkit.org/show_bug.cgi?id=41397 Macros are sadness. Inline functions are the new hotness. * html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::processEntity): (WebCore::HTMLTokenizer::emitAndResumeIn): (WebCore::HTMLTokenizer::emitAndReconsumeIn): (WebCore::HTMLTokenizer::emitEndOfFile): (WebCore::HTMLTokenizer::flushBufferedEndTag): (WebCore::HTMLTokenizer::flushEmitAndResumeIn): (WebCore::HTMLTokenizer::nextToken): (WebCore::HTMLTokenizer::bufferCharacter): (WebCore::HTMLTokenizer::bufferCodePoint): (WebCore::HTMLTokenizer::bufferParseError): (WebCore::HTMLTokenizer::bufferCurrentToken): (WebCore::HTMLTokenizer::bufferEndOfFile): * html/HTMLTokenizer.h: 2010-06-30 Justin Schuh Reviewed by Adam Barth. Remove dead binding code https://bugs.webkit.org/show_bug.cgi?id=41388 Removed BindingElement because it was obsoleted by r59866. * WebCore.gypi: * bindings/generic/BindingElement.h: Removed. * bindings/v8/SerializedScriptValue.cpp: * bindings/v8/V8Binding.h: * bindings/v8/custom/V8DatabaseCustom.cpp: * bindings/v8/custom/V8DatabaseSyncCustom.cpp: * bindings/v8/custom/V8SQLTransactionCustom.cpp: * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp: 2010-06-30 Eric Seidel Reviewed by Adam Barth. HTMLTokenizer needs EndOfFile support https://bugs.webkit.org/show_bug.cgi?id=41344 EndOfFile support uncovered a bug in our implementation of finish(). finish() may be called more than once if the first call does not result in end() being called (and parsing thus actually stopping). SegmentedString::close() should have ASSERTed that it was not already closed when close() is called. I've added such an assert now. * html/HTMLDocumentParser.cpp: (WebCore::HTMLDocumentParser::finish): * platform/text/SegmentedString.cpp: (WebCore::SegmentedString::close): * platform/text/SegmentedString.h: 2010-06-29 Eric Seidel Reviewed by Adam Barth. HTMLTokenizer needs EndOfFile support https://bugs.webkit.org/show_bug.cgi?id=41344 We're using \0 as the EndOfFile marker as HTML5 replaces all other \0 with \0xFFFD. Added some special case logic to InputStreamPreprocessor::peek not to replace \0 when its being used at the end of a stream. This fixed 60 subtests in html5lib/runner.html. There are still at least two states (BogusCommentState and CDATASectionState) which do not have proper EOF support. * html/HTMLDocumentParser.cpp: (WebCore::HTMLDocumentParser::finish): (WebCore::HTMLDocumentParser::finishWasCalled): * html/HTMLInputStream.h: (WebCore::HTMLInputStream::markEndOfFile): (WebCore::HTMLInputStream::haveSeenEndOfFile): * html/HTMLToken.h: (WebCore::HTMLToken::makeEndOfFile): * html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::nextToken): (WebCore::HTMLTokenizer::emitEndOfFile): * html/HTMLTokenizer.h: (WebCore::HTMLTokenizer::InputStreamPreprocessor::peek): (WebCore::HTMLTokenizer::InputStreamPreprocessor::shouldTreatNullAsEndOfFileMarker): * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::passTokenToLegacyParser): 2010-06-28 Eric Seidel Reviewed by Adam Barth. Teach HTML5TreeBuilder how to merge attributes from extra html/body elements https://bugs.webkit.org/show_bug.cgi?id=41337 Had to teach ElementStack to store pointers to html, head, and body elements. This fixed a few tests in LayoutTests/html5lib. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::insertHTMLStartTagBeforeHTML): (WebCore::HTMLTreeBuilder::mergeAttributesFromTokenIntoElement): (WebCore::HTMLTreeBuilder::insertHTMLStartTagInBody): (WebCore::HTMLTreeBuilder::processStartTag): (WebCore::HTMLTreeBuilder::processEndTag): (WebCore::HTMLTreeBuilder::createElementAndAttachToCurrent): (WebCore::HTMLTreeBuilder::insertHTMLHtmlElement): (WebCore::HTMLTreeBuilder::insertHTMLHeadElement): (WebCore::HTMLTreeBuilder::insertHTMLBodyElement): (WebCore::HTMLTreeBuilder::insertElement): (WebCore::HTMLTreeBuilder::insertGenericRCDATAElement): (WebCore::HTMLTreeBuilder::insertGenericRawTextElement): * html/HTMLTreeBuilder.h: (WebCore::HTMLTreeBuilder::ElementStack::ElementStack): (WebCore::HTMLTreeBuilder::ElementStack::popHTMLHeadElement): (WebCore::HTMLTreeBuilder::ElementStack::pop): (WebCore::HTMLTreeBuilder::ElementStack::pushHTMLHtmlElement): (WebCore::HTMLTreeBuilder::ElementStack::pushHTMLHeadElement): (WebCore::HTMLTreeBuilder::ElementStack::pushHTMLBodyElement): (WebCore::HTMLTreeBuilder::ElementStack::push): (WebCore::HTMLTreeBuilder::ElementStack::removeHTMLHeadElement): (WebCore::HTMLTreeBuilder::ElementStack::remove): (WebCore::HTMLTreeBuilder::ElementStack::htmlElement): (WebCore::HTMLTreeBuilder::ElementStack::headElement): (WebCore::HTMLTreeBuilder::ElementStack::bodyElement): (WebCore::HTMLTreeBuilder::ElementStack::pushCommon): (WebCore::HTMLTreeBuilder::ElementStack::popCommon): (WebCore::HTMLTreeBuilder::ElementStack::removeNonFirstCommon): 2010-06-30 José Millán Soto Reviewed by Xan Lopez. [Gtk] Text attributes not exposed https://bugs.webkit.org/show_bug.cgi?id=25528 Implemented the get_run_attributes and get_default_attributes functions for the ATK_TEXT role. * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: (getAttributeSetForAccessibilityObject): (compareAttribute): (attributeSetDifference): (accessibilityObjectLength): (getAccessibilityObjectForOffset): (getRunAttributesFromAccesibilityObject): (webkit_accessible_text_get_run_attributes): (webkit_accessible_text_get_default_attributes): 2010-06-30 Yuta Kitamura Reviewed by Alexey Proskuryakov. Fix Sec-WebSocketKey{1,2} headers. According to WebSocket specification, a value of Sec-WebSocketKey{1,2} header should not start or end with a space. WebSocket: Malformed handshake headers in a worker due to rand_s failing https://bugs.webkit.org/show_bug.cgi?id=41327 No new tests. ASSERT should catch the problem. * websockets/WebSocketHandshake.cpp: (WebCore::generateSecWebSocketKey): 2010-06-30 Yuzo Fujishima Reviewed by Dan Bernstein. Fix for Bug 41339 - unicode-range property only with a descending range causes a crash https://bugs.webkit.org/show_bug.cgi?id=41339 Test: fast/css/font-face-descending-unicode-range.html * css/CSSParser.cpp: (WebCore::CSSParser::parseFontFaceUnicodeRange): 2010-06-29 Abhinav Mithal Reviewed by Laszlo Gombos. [Qt] [Symbian] Fix doube-deallocation while destroying PluginContainerSymbian https://bugs.webkit.org/show_bug.cgi?id=37303 * plugins/symbian/PluginViewSymbian.cpp: (WebCore::PluginView::platformDestroy): 2010-06-29 Zhenyao Mo Reviewed by Dimitri Glazkov. Implement getAttachedShaders https://bugs.webkit.org/show_bug.cgi?id=31172 * bindings/js/JSWebGLRenderingContextCustom.cpp: JS binding for getAttachedShaders(). (WebCore::JSWebGLRenderingContext::getAttachedShaders): * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp: V8 binding for getAttachedShaders(). (WebCore::V8WebGLRenderingContext::getAttachedShadersCallback): * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::getAttachedShaders): Implementation of getAttachedShaders(). (WebCore::WebGLRenderingContext::findShader): Helper function to find a shader object from its name. * html/canvas/WebGLRenderingContext.h: Declaration of getAttachedShaders(). * html/canvas/WebGLRenderingContext.idl: Ditto. * platform/graphics/GraphicsContext3D.h: Ditto. * platform/graphics/mac/GraphicsContext3DMac.mm: (WebCore::GraphicsContext3D::getAttachedShaders): Implementation of getAttachedShaders(). 2010-06-29 MORITA Hajime Reviewed by Kent Tamura. REGRESSION: [Chromium] appearance on windows looks not good https://bugs.webkit.org/show_bug.cgi?id=41343 RenderThemeChromiumWin::paintProgressBar() should return false, which indicates the widget is painted. Test: fast/dom/HTMLProgressElement/progress-element.html * rebaselined with a wrong expectation. * rendering/RenderThemeChromiumWin.cpp: (WebCore::RenderThemeChromiumWin::paintProgressBar): 2010-06-29 Kinuko Yasuda Reviewed by Jian Li. Fix http/tests/local/blob/send-data-blob.html on Windows https://bugs.webkit.org/show_bug.cgi?id=41228 Fix a regression bug in the line-conversion code. Rewrite the line-conversion function with simpler functions to make it less error prone. No new tests as this is for bug fixes. * platform/BlobItem.cpp: (WebCore::StringBlobItem::convertToCString): 2010-06-29 Dumitru Daniliuc Reviewed by Darin Fisher. Implementing DatabaseSync::openDatabaseSync(). https://bugs.webkit.org/show_bug.cgi?id=40607 1. Moved some common code from Database to AbstractDatabase. 2. Made performOpenAndVerify() virtual, since DatabaseSync doesn't need to interact with DatabaseThread. 3. Removed the m_creationCallback field, since it's only needed in the openDatabase{Sync} methods. * storage/AbstractDatabase.cpp: (WebCore::retrieveTextResultFromDatabase): (WebCore::setTextValueInDatabase): (WebCore::guidMutex): (WebCore::guidToVersionMap): (WebCore::updateGuidVersionMap): (WebCore::guidToDatabaseMap): (WebCore::guidForOriginAndName): (WebCore::AbstractDatabase::databaseInfoTableName): (WebCore::AbstractDatabase::AbstractDatabase): (WebCore::AbstractDatabase::closeDatabase): (WebCore::AbstractDatabase::version): (WebCore::AbstractDatabase::performOpenAndVerify): (WebCore::AbstractDatabase::scriptExecutionContext): (WebCore::AbstractDatabase::securityOrigin): (WebCore::AbstractDatabase::stringIdentifier): (WebCore::AbstractDatabase::displayName): (WebCore::AbstractDatabase::estimatedSize): (WebCore::AbstractDatabase::fileName): (WebCore::AbstractDatabase::databaseVersionKey): (WebCore::AbstractDatabase::getVersionFromDatabase): (WebCore::AbstractDatabase::setVersionInDatabase): (WebCore::AbstractDatabase::versionMatchesExpected): (WebCore::AbstractDatabase::setExpectedVersion): (WebCore::AbstractDatabase::disableAuthorizer): (WebCore::AbstractDatabase::enableAuthorizer): (WebCore::AbstractDatabase::setAuthorizerReadOnly): (WebCore::AbstractDatabase::lastActionChangedDatabase): (WebCore::AbstractDatabase::lastActionWasInsert): (WebCore::AbstractDatabase::resetDeletes): (WebCore::AbstractDatabase::hadDeletes): (WebCore::AbstractDatabase::resetAuthorizer): * storage/AbstractDatabase.h: (WebCore::AbstractDatabase::opened): (WebCore::AbstractDatabase::isNew): (WebCore::AbstractDatabase::databaseDebugName): * storage/Database.cpp: (WebCore::DatabaseCreationCallbackTask::create): (WebCore::DatabaseCreationCallbackTask::performTask): (WebCore::DatabaseCreationCallbackTask::DatabaseCreationCallbackTask): (WebCore::Database::openDatabase): (WebCore::Database::Database): (WebCore::Database::version): (WebCore::Database::openAndVerifyVersion): (WebCore::Database::close): (WebCore::Database::stop): (WebCore::Database::performOpenAndVerify): * storage/Database.h: (WebCore::Database::sqliteDatabase): * storage/DatabaseAuthorizer.cpp: (WebCore::DatabaseAuthorizer::create): (WebCore::DatabaseAuthorizer::DatabaseAuthorizer): (WebCore::DatabaseAuthorizer::denyBasedOnTableName): * storage/DatabaseAuthorizer.h: * storage/DatabaseSync.cpp: (WebCore::DatabaseSync::openDatabaseSync): (WebCore::DatabaseSync::DatabaseSync): (WebCore::DatabaseSync::~DatabaseSync): (WebCore::DatabaseSync::markAsDeletedAndClose): (WebCore::CloseSyncDatabaseOnContextThreadTask::create): (WebCore::CloseSyncDatabaseOnContextThreadTask::performTask): (WebCore::CloseSyncDatabaseOnContextThreadTask::CloseSyncDatabaseOnContextThreadTask): (WebCore::DatabaseSync::closeImmediately): * storage/DatabaseSync.h: * storage/DatabaseTask.cpp: (WebCore::DatabaseOpenTask::DatabaseOpenTask): (WebCore::DatabaseOpenTask::doPerformTask): * storage/DatabaseTask.h: (WebCore::DatabaseOpenTask::create): 2010-06-29 François Sausset Reviewed by Darin Adler. Fix a bug when a msubsup element is inside a mrow element https://bugs.webkit.org/show_bug.cgi?id=36525 Test: mathml/presentation/subsup.xhtml * mathml/RenderMathMLSubSup.cpp: (WebCore::RenderMathMLSubSup::stretchToHeight): 2010-06-29 Zhenyao Mo Reviewed by Dimitri Glazkov. uniformmatrix* should generate INVALID_VALUE with transpose = true https://bugs.webkit.org/show_bug.cgi?id=41235 Test: fast/canvas/webgl/gl-uniformmatrix4fv.html * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::uniformMatrix2fv): Call validateUniformMatrixParameters instead. (WebCore::WebGLRenderingContext::uniformMatrix3fv): Ditto. (WebCore::WebGLRenderingContext::uniformMatrix4fv): Ditto. (WebCore::WebGLRenderingContext::validateUniformMatrixParameters): Validate input parameters for uniformMatrix*(). * html/canvas/WebGLRenderingContext.h: Declare validateUniformMatrixParameters(). 2010-06-29 Kenneth Russell Reviewed by Dimitri Glazkov. Support UNPACK_FLIP_Y_WEBGL and UNPACK_PREMULTIPLY_ALPHA_WEBGL for texImage2D taking ArrayBufferView https://bugs.webkit.org/show_bug.cgi?id=40398 Added support for UNPACK_FLIP_Y_WEBGL and UNPACK_PREMULTIPLY_ALPHA_WEBGL pixel store parameters to texImage2D and texSubImage2D entry points taking ArrayBufferView. More cleanly separated the unpacking and packing phases of user-supplied pixel data in GraphicsContext3D, and added support for unpack alignment. Fixed bug in handling of unpackAlignment in GraphicsContext3D::flipVertically. Necessarily added validation of the amount of data passed to texImage2D and texSubImage2D. Modified fast/canvas/webgl/tex-image-with-format-and-type.html to include premultiplied alpha tests for relevant source formats; added new test which exercises all combinations of UNPACK_FLIP_Y_WEBGL, UNPACK_PREMULTIPLY_ALPHA_WEBGL, and UNPACK_ALIGNMENT pixel store parameters. Test: fast/canvas/webgl/tex-image-and-sub-image-2d-with-array-buffer-view.html * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::texImage2D): (WebCore::WebGLRenderingContext::texSubImage2D): (WebCore::WebGLRenderingContext::validateTexFuncData): * html/canvas/WebGLRenderingContext.h: * platform/graphics/GraphicsContext3D.cpp: (WebCore::GraphicsContext3D::extractImageData): (WebCore::GraphicsContext3D::extractTextureData): (WebCore::GraphicsContext3D::flipVertically): (WebCore::doUnpackingAndPacking): (WebCore::computeIncrementParameters): (WebCore::doPacking): (WebCore::GraphicsContext3D::packPixels): * platform/graphics/GraphicsContext3D.h: (WebCore::GraphicsContext3D::): * platform/graphics/cg/GraphicsContext3DCG.cpp: (WebCore::GraphicsContext3D::getImageData): * platform/graphics/qt/GraphicsContext3DQt.cpp: (WebCore::GraphicsContext3D::getImageData): * platform/graphics/skia/GraphicsContext3DSkia.cpp: (WebCore::GraphicsContext3D::getImageData): 2010-06-29 Patrick Gansterer Reviewed by Dirk Schulze. Buildfix for !ENABLE(SVG_FOREIGN_OBJECT) after r61667. https://bugs.webkit.org/show_bug.cgi?id=41367 * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::isOutermostSVG): Add missing ENABLE(SVG_FOREIGN_OBJECT). 2010-06-29 Patrick Gansterer Reviewed by Darin Adler. Buildfix after r62118. https://bugs.webkit.org/show_bug.cgi?id=41365 * rendering/RenderSVGRoot.cpp: Inlude missing RenderSVGResource.h. 2010-06-29 Sheriff Bot Unreviewed, rolling out r62052. http://trac.webkit.org/changeset/62052 https://bugs.webkit.org/show_bug.cgi?id=41357 Causes crashes in JSLazyEventListener::initializeFunction (see bug 41352) (Requested by aroben on #webkit). * bindings/js/ScriptEventListener.cpp: (WebCore::createAttributeEventListener): * bindings/js/ScriptEventListener.h: * bindings/v8/ScriptEventListener.cpp: (WebCore::createAttributeEventListener): * bindings/v8/ScriptEventListener.h: * html/HTMLBodyElement.cpp: (WebCore::HTMLBodyElement::parseMappedAttribute): * html/HTMLFrameSetElement.cpp: (WebCore::HTMLFrameSetElement::parseMappedAttribute): * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::parseMappedAttribute): 2010-06-29 Sheriff Bot Unreviewed, rolling out r62129. http://trac.webkit.org/changeset/62129 https://bugs.webkit.org/show_bug.cgi?id=41362 Needed to roll out r62052 (see bug 41357) (Requested by aroben on #webkit). * bindings/js/ScriptEventListener.cpp: (WebCore::createWindowAttributeEventListener): 2010-06-29 Beth Dakin Reviewed by Darin Adler. Speculative fix for CrashTracer: [USER] 2300+ crashes in Safari at com.apple.WebCore: WebCore::FrameView::scheduleRelayout + 352 Unfortunately, we don't have a reproducible case for this bug, and therefore, we do not have a layout test either. It is pretty clear from the logs that m_frame->settings() is null in FrameView::scheduleRelayout() in the crashing case. m_frame->settings() is null whenever page is null. Everywhere else in FrameView.cpp we null-check either page or settings before using settings. It seems plausible to me that scheduleRelayout could be called when page is null, so the fix is just to add null-checks. * page/FrameView.cpp: (WebCore::FrameView::layout): (WebCore::FrameView::scheduleRelayout): 2010-06-29 Dan Bernstein Reviewed by Darin Adler. Certain text is repeated after using splitText() Tests: fast/text/setData-dirty-lines.html fast/text/splitText-dirty-lines.html * dom/CharacterData.cpp: (WebCore::CharacterData::setData): Call RenderText::setTextWithOffset() rather than setText(), because only the former correctly dirties line boxes. * dom/Text.cpp: (WebCore::Text::splitText): Ditto. 2010-06-29 Sheriff Bot Unreviewed, rolling out r62073. http://trac.webkit.org/changeset/62073 https://bugs.webkit.org/show_bug.cgi?id=41359 Necessary to fix chromium build when r62052 is rolled out. (Requested by dave_levin on #webkit). * bindings/v8/ScriptEventListener.h: 2010-06-29 Vangelis Kokkevis Reviewed by Darin Fisher. [Chromium] Hooking up WebGL layers to the gpu-compositor. Implement missing methods to set the contents of a GraphicsLayer with a platform specific WebGL Layer, and to update the contents of the WebGL Layer when needed. https://bugs.webkit.org/show_bug.cgi?id=41243 * platform/graphics/GraphicsContext3D.h: * platform/graphics/chromium/GraphicsLayerChromium.cpp: (WebCore::GraphicsLayerChromium::setContentsToWebGL): * platform/graphics/chromium/GraphicsLayerChromium.h: * platform/graphics/chromium/LayerChromium.cpp: (WebCore::LayerChromium::removeAllSublayers): No need to call setNeedsCommit() from here as the previous call to layer->removeFromSuperlayer() will have that effect (and we only need to notify the owner if there were actually any sublayers removed). * platform/graphics/chromium/LayerChromium.h: * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::drawLayer): * platform/graphics/chromium/WebGLLayerChromium.cpp: (WebCore::WebGLLayerChromium::create): (WebCore::WebGLLayerChromium::updateTextureContents): (WebCore::WebGLLayerChromium::setContext): 2010-06-29 Csaba Osztrogonác Reviewed by Nikolas Zimmermann. Buildfix for --minimal build after r62052 https://bugs.webkit.org/show_bug.cgi?id=41338 * bindings/js/ScriptEventListener.cpp: #if ENABLE(SVG) guards added. (WebCore::createWindowAttributeEventListener): 2010-06-29 Brent Fulgham Build fix. Not reviewd. CGColor is only used for PLATFORM(CG). Conditionalize include to correct build failure for WinCairo. * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp: Conditionalize use of CGColor. 2010-06-29 Martin Robinson Reviewed by Xan Lopez. [GTK] Clean up the source lists in the GNUMakefile.am files https://bugs.webkit.org/show_bug.cgi?id=41229 Clean up the GNUMakefile.am a little bit. Alphabetize and conglomerate the source lists. * GNUmakefile.am: 2010-06-29 Martin Robinson Reviewed by Xan Lopez. [GTK] DragDataGtk should use DataObjectGtk as the platformDragData https://bugs.webkit.org/show_bug.cgi?id=40307 Use DataObjectGtk as the platformDragData for DragDataGtk. DataObjectGtk contains all the information necessary to keep track of drops in progress. * platform/DragData.h: Use a DataObjectGtk* as the platform drag data. * platform/gtk/DragDataGtk.cpp: (WebCore::DragData::containsFiles): Retrieve information via platformDragData. (WebCore::DragData::asFilenames): Ditto. (WebCore::DragData::containsPlainText): Ditto. (WebCore::DragData::asPlainText): Ditto. (WebCore::DragData::createClipboard): Create the Clipboard with the platformDragData. (WebCore::DragData::containsCompatibleContent): Retrieve information via platformDragData. (WebCore::DragData::containsURL): Ditto. (WebCore::DragData::asURL): Ditto. (WebCore::DragData::asFragment): Ditto. 2010-06-29 Adam Langley Build fix. Not reviewd. * platform/graphics/chromium/FontPlatformDataLinux.cpp: (WebCore::FontPlatformData::setupPaint): The name of the Skia function changed between writing this patch and commiting it. 2010-06-29 Adam Langley Reviewed by Kent Tamura. [chromium] Support forced autohinting. https://bugs.webkit.org/show_bug.cgi?id=40493 Freetype (the typical font rendering on Linux) includes an 'autohinter': an algorithm for hinting glyph shapes without using the embedded hinting bytecode in a font. Some people prefer the autohinter's results, so we support forcing its use. This change also fixes a bug where two FontPlatformData structures would compare equal, even if their rendering styles were different. * platform/graphics/chromium/FontPlatformDataLinux.cpp: (WebCore::FontPlatformData::setupPaint): In order to compare FontPlatformData structures we need to make sure that they are initialised. (WebCore::FontPlatformData::operator==): * platform/graphics/chromium/FontRenderStyle.h: (WebCore::FontRenderStyle::FontRenderStyle): (WebCore::FontRenderStyle::operator==): This fixes the case where two FontPlatformData structures, differing only by rendering style, would compare equal. 2010-06-29 Laszlo Gombos Unreviewed, Symbian build fix. Add more directories to USERINCLUDE so that they get included before the Symbian system headers. This is a workaround to some toolchain problems; bug 31273 is used to find a better solution. No new tests as there is no new functionality. * WebCore.pro: 2010-06-29 Nikolas Zimmermann Reviewed by Dirk Schulze. Cleanup SVGRenderSupport https://bugs.webkit.org/show_bug.cgi?id=41347 Remove SVGRenderBase base class from all SVG renderers. It was meant as temporary solution until all SVG renderers inherit from RenderSVGModelObject, though this is not going to happen. RenderSVGModelObject inherits from RenderObject, making it impossible to inherit eg. RenderSVGImage from it, as it already indirectly inherits from RenderObject, through RenderImage. Other examples are RenderForeignObject (RenderBlock inheritance), RenderSVGInlineText (RenderText inheritance) etc. Rename SVGRenderBase to SVGRenderSupport, just like the file is named, remove all free functions, and make them all static functions in SVGRenderSupport. We can still share code between all SVG renderers, but don't need a special base class for all renderers -> shrink size of all SVG renderers. Doesn't affect any test. * rendering/RenderBox.cpp: Remove localTransform() override, not needed at all. * rendering/RenderBox.h: Ditto. * rendering/RenderForeignObject.cpp: s/SVGRenderBase/SVGRenderSupport/ (WebCore::RenderForeignObject::paint): (WebCore::RenderForeignObject::clippedOverflowRectForRepaint): (WebCore::RenderForeignObject::computeRectForRepaint): (WebCore::RenderForeignObject::nodeAtFloatPoint): (WebCore::RenderForeignObject::mapLocalToContainer): * rendering/RenderPath.cpp: (WebCore::BoundingRectStrokeStyleApplier::strokeStyle): applyStrokeStyleToContext is a static function in SVGRenderSupport now. (WebCore::RenderPath::paint): s/SVGRenderBase/SVGRenderSupport/ (WebCore::RenderPath::nodeAtFloatPoint): Ditto. (WebCore::RenderPath::updateCachedBoundaries): Ditto. * rendering/RenderSVGBlock.h: Remove SVGRenderBase inheritance. * rendering/RenderSVGContainer.cpp: (WebCore::RenderSVGContainer::layout): layoutChildren is a static function in SVGRenderSupport now. (WebCore::RenderSVGContainer::paint): prepareToRenderSVGContent/finishRenderSVGContent are now static functions in SVGRenderSupport. (WebCore::RenderSVGContainer::objectBoundingBox): computeContainerBoundingBox is a static function in SVGRenderSupport now. (WebCore::RenderSVGContainer::strokeBoundingBox): Ditto. (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates): Remove call to computeContainerBoundingBox, use strokeBoundingBox instead, for consistency. (WebCore::RenderSVGContainer::nodeAtFloatPoint): pointInClippingArea is a static function in SVGRenderSupport now. * rendering/RenderSVGHiddenContainer.cpp: (WebCore::RenderSVGHiddenContainer::layout): layoutChildren is a static function in SVGRenderSupport now. * rendering/RenderSVGImage.cpp: (WebCore::RenderSVGImage::paint): prepareToRenderSVGContent/finishRenderSVGContent are static functions in SVGRenderSupport now. (WebCore::RenderSVGImage::destroy): deregisterResource was renamed to invalidateAllResourcesOfRenderer and is a static function in SVGRenderSupport. (WebCore::RenderSVGImage::nodeAtFloatPoint): pointInClippingArea is a static function in SVGRenderSupport now. (WebCore::RenderSVGImage::repaintRectInLocalCoordinates): intersectRepaintRectWithResources is a static function in SVGRenderSupport now. (WebCore::RenderSVGImage::clippedOverflowRectForRepaint): s/SVGRenderBase/SVGRenderSupport/ (WebCore::RenderSVGImage::computeRectForRepaint): Ditto. (WebCore::RenderSVGImage::mapLocalToContainer): Ditto. * rendering/RenderSVGImage.h: Remove SVGRenderBase inheritance. * rendering/RenderSVGInline.cpp: (WebCore::RenderSVGInline::objectBoundingBox): findTextRootObject is a static function in SVGRenderSupport now. (WebCore::RenderSVGInline::strokeBoundingBox): Ditto. (WebCore::RenderSVGInline::repaintRectInLocalCoordinates): Ditto. (WebCore::RenderSVGInline::clippedOverflowRectForRepaint): s/SVGRenderBase/SVGRenderSupport/ (WebCore::RenderSVGInline::computeRectForRepaint): Ditto,. (WebCore::RenderSVGInline::mapLocalToContainer): Ditto. (WebCore::RenderSVGInline::absoluteQuads): findTextRootObject is a static function in SVGRenderSupport now. * rendering/RenderSVGInline.h: Remove SVGRenderBase inheritance. * rendering/RenderSVGModelObject.cpp: (WebCore::RenderSVGModelObject::clippedOverflowRectForRepaint): s/SVGRenderBase/SVGRenderSupport/ (WebCore::RenderSVGModelObject::computeRectForRepaint): Ditto. (WebCore::RenderSVGModelObject::mapLocalToContainer): Ditto. (WebCore::RenderSVGModelObject::destroy): deregisterResource was renamed to invalidateAllResourcesOfRenderer and is a static function in SVGRenderSupport. * rendering/RenderSVGModelObject.h: Remove SVGRenderBase inheritance. * rendering/RenderSVGResource.cpp: (WebCore::invalidatePaintingResource): Moved here from SVGRenderSupport (static inline helper function). (WebCore::RenderSVGResource::invalidateAllResourcesOfRenderer): Moved here from SVGRenderSupport and renamed from deregisterFromResources. * rendering/RenderSVGResource.h: Expose invalidateAllResourcesOfRenderer function. * rendering/RenderSVGResourceClipper.cpp: (WebCore::RenderSVGResourceClipper::createClipData): renderSubtreeToImage is a static function in SVGRenderSupport now. (WebCore::RenderSVGResourceClipper::hitTestClipContent): Ditto. * rendering/RenderSVGResourceGradient.cpp: (WebCore::createMaskAndSwapContextForTextGradient): findTextRootObject is a static function in SVGRenderSupport now. (WebCore::clipToTextMask): Ditto. (WebCore::RenderSVGResourceGradient::applyResource): applyStrokeStyleToContext is a static function in SVGRenderSupport now. (WebCore::RenderSVGResourceGradient::postApplyResource): findTextRootObject is a static function in SVGRenderSupport now. * rendering/RenderSVGResourceMarker.cpp: (WebCore::RenderSVGResourceMarker::applyViewportClip): s/SVGRenderBase/SVGRenderSupport/ * rendering/RenderSVGResourceMasker.cpp: (WebCore::RenderSVGResourceMasker::createMaskImage): renderSubtreeToImage is a static function in SVGRenderSupport now. * rendering/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::applyResource): applyStrokeStyleToContext is a static function in SVGRenderSupport now. (WebCore::clampImageBufferSizeToViewport): Moved here from SVGRenderSupport. (WebCore::RenderSVGResourcePattern::createTileImage): renderSubtreeToImage is a static function in SVGRenderSupport now. * rendering/RenderSVGResourceSolidColor.cpp: (WebCore::RenderSVGResourceSolidColor::applyResource): applyStrokeStyleToContext is a static function in SVGRenderSupport now * rendering/RenderSVGRoot.cpp: (WebCore::RenderSVGRoot::layout): layoutChildren is a static function in SVGRenderSupport now. (WebCore::RenderSVGRoot::paint): prepareToRenderSVGContent/finishRenderSVGContent are now static functions in SVGRenderSupport. (WebCore::RenderSVGRoot::destroy): deregisterResource was renamed to invalidateAllResourcesOfRenderer and is a static function in SVGRenderSupport. (WebCore::RenderSVGRoot::repaintRectInLocalCoordinates): Remove call to computeContainerBoundingBox, use strokeBoundingBox instead, for consistency. * rendering/RenderSVGRoot.h: Remove localTransform() override, no longer needed. Remove SVGRenderBase inheritance. (WebCore::RenderSVGRoot::objectBoundingBox): Inlined for speeed. (WebCore::RenderSVGRoot::strokeBoundingBox): computeContainerBoundingBox is a static function in SVGRenderSupport now. * rendering/RenderSVGText.cpp: (WebCore::RenderSVGText::clippedOverflowRectForRepaint): s/SVGRenderBase/SVGRenderSupport/ (WebCore::RenderSVGText::computeRectForRepaint): Ditto. (WebCore::RenderSVGText::mapLocalToContainer): Ditto. (WebCore::RenderSVGText::nodeAtFloatPoint): pointInClippingArea is a static function in SVGRenderSupport now. (WebCore::RenderSVGText::destroy): deregisterResource was renamed to invalidateAllResourcesOfRenderer and is a static function in SVGRenderSupport. (WebCore::RenderSVGText::repaintRectInLocalCoordinates): intersectRepaintRectWithResources is a static function in SVGRenderSupport now. * rendering/RenderSVGViewportContainer.cpp: (WebCore::RenderSVGViewportContainer::applyViewportClip): s/SVGRenderBase/SVGRenderSupport/ (WebCore::RenderSVGViewportContainer::pointIsInsideViewportClip): pointInClippingArea is a static function in SVGRenderSupport now. * rendering/SVGInlineFlowBox.cpp: (WebCore::SVGInlineFlowBox::paint): prepareToRenderSVGContent/finishRenderSVGContent are now static functions in SVGRenderSupport. * rendering/SVGRenderSupport.cpp: Make it impossible to construct the class. Remove virtual destructor, made all methods static. (WebCore::SVGRenderSupport::clippedOverflowRectForRepaint): s/SVGRenderBase/SVGRenderSupport/ (WebCore::SVGRenderSupport::computeRectForRepaint): Ditto. (WebCore::SVGRenderSupport::mapLocalToContainer): Ditto. (WebCore::SVGRenderSupport::prepareToRenderSVGContent): Ditto. (WebCore::SVGRenderSupport::finishRenderSVGContent): Ditto. (WebCore::SVGRenderSupport::renderSubtreeToImage): Made static. (WebCore::SVGRenderSupport::computeContainerBoundingBox): Ditto. (WebCore::SVGRenderSupport::layoutChildren): Ditto. (WebCore::SVGRenderSupport::isOverflowHidden): s/SVGRenderBase/SVGRenderSupport/ (WebCore::SVGRenderSupport::intersectRepaintRectWithResources): Ditto. (WebCore::SVGRenderSupport::pointInClippingArea): Made static. (WebCore::SVGRenderSupport::dashArrayFromRenderingStyle): Ditto. (WebCore::SVGRenderSupport::applyStrokeStyleToContext): Ditto. (WebCore::SVGRenderSupport::findTextRootObject): Ditto. * rendering/SVGRenderSupport.h: * rendering/SVGRenderTreeAsText.cpp: (WebCore::writeStyle): dashArrayFromRenderingStyle is a static function in SVGRenderSupport now. * rendering/SVGRootInlineBox.cpp: (WebCore::SVGRootInlineBox::paint): s/SVGRenderBase/SVGRenderSupport/ * rendering/SVGRootInlineBox.h: Remove SVGRenderBase inheritance. * svg/SVGFEImageElement.cpp: Add RenderObject.h include, otherwhise it won't build anymore. (WebCore::SVGFEImageElement::build): renderSubtreeToImage is a static function in SVGRenderSupport now. * svg/SVGStyledElement.cpp: (WebCore::SVGStyledElement::svgAttributeChanged): deregisterResource was renamed to invalidateAllResourcesOfRenderer and is a static function in SVGRenderSupport. 2010-06-21 Philippe Normand Reviewed by Xan Lopez. [PNG decoder] direct access to jmpbuf is deprecated in libpng >= 1.4.0beta103 https://bugs.webkit.org/show_bug.cgi?id=40907 Define a JMPBUF macro to cope with deprecation of the jmpbuf attribute in libpng >= 1.4. * platform/image-decoders/png/PNGImageDecoder.cpp: (WebCore::decodingFailed): (WebCore::PNGImageReader::decode): (WebCore::PNGImageDecoder::headerAvailable): (WebCore::PNGImageDecoder::rowAvailable): 2010-06-29 Kristian Amlie Reviewed by Simon Hausmann. [Qt/Symbian] Fixed deployment paths for WebKit declarative plugin. * WebCore.pro: 2010-06-29 Yury Semikhatsky Unreviewed: Chromium Win and Mac build fix. * bindings/v8/ScriptDebugServer.cpp: (WebCore::ScriptDebugServer::setBreakpoint): 2010-06-29 Nikolas Zimmermann Reviewed by Dirk Schulze. Move PaintInfo/PaintPhase into their own headers, out of RenderObject https://bugs.webkit.org/show_bug.cgi?id=41342 1) Move enums PaintPhase/PaintBehaviorFlags and the PaintBehaviour typedef from RenderObject into PaintPhase.h. Move PaintInfo from RenderObject into PaintInfo.h. Replace s/RenderObject::PaintInfo/PaintInfo/ throughout WebCore/. Also move the OverlapTestRequestMap typedef into PaintInfo.h, and replace s/RenderObject::OverlapTestRequestMap/OverlapTestRequestMap/ everywhere. 2) Move "RenderObject* paintingRootForChildren(PaintInfo& paintInfo) const" from RenderObject to PaintInfo and modify it to take a renderer: "void updatePaintingRootForChildren(const RenderObject* renderer)". This changes a common idiom: - info.paintingRoot = paintingRootForChildren(paintInfo); + info.updatePaintingRootForChildren(this); We save resetting the paintingRoot to 0 if it was 0 already and thus do less work. 3) Move "bool shouldPaintWithinRoot(PaintInfo& paintInfo) const" from RenderObject to PaintInfo and modify it to take a renderer: "bool shouldPaintWithinRoot(const RenderObject* renderer) const". This changes a common idiom: - if (!shouldPaintWithinRoot(paintInfo)) + if (!paintInfo.shouldPaintWithinRoot(this)) 4) Move "void applyTransformToPaintInfo(RenderObject::PaintInfo&, const AffineTransform& localToChildTransform)" from SVGRenderSupport to PaintInfo and rename it to "applyTransform", guarded with ENABLE(SVG) blocks. This changes a common idiom: - applyTransformToPaintInfo(childPaintInfo, localToParentTransform()); + childPaintInfo.applyTransform(localToParentTransform()); Add PaintInfo.h / PaintPhase.h to all build systems that list headers. * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * platform/android/RenderThemeAndroid.cpp: (WebCore::getCanvasFromInfo): (WebCore::RenderThemeAndroid::paintCheckbox): (WebCore::RenderThemeAndroid::paintButton): (WebCore::RenderThemeAndroid::paintRadio): (WebCore::RenderThemeAndroid::paintTextField): (WebCore::RenderThemeAndroid::paintTextArea): (WebCore::RenderThemeAndroid::paintSearchField): (WebCore::RenderThemeAndroid::paintCombo): (WebCore::RenderThemeAndroid::paintMenuList): (WebCore::RenderThemeAndroid::paintMenuListButton): * platform/android/RenderThemeAndroid.h: * platform/efl/RenderThemeEfl.cpp: (WebCore::RenderThemeEfl::paintThemePart): (WebCore::RenderThemeEfl::paintCheckbox): (WebCore::RenderThemeEfl::paintRadio): (WebCore::RenderThemeEfl::paintButton): (WebCore::RenderThemeEfl::paintMenuList): (WebCore::RenderThemeEfl::paintTextField): (WebCore::RenderThemeEfl::paintTextArea): (WebCore::RenderThemeEfl::paintSearchFieldDecoration): (WebCore::RenderThemeEfl::paintSearchFieldResultsButton): (WebCore::RenderThemeEfl::paintSearchFieldResultsDecoration): (WebCore::RenderThemeEfl::paintSearchFieldCancelButton): (WebCore::RenderThemeEfl::paintSearchField): * platform/efl/RenderThemeEfl.h: * platform/gtk/RenderThemeGtk.cpp: (WebCore::paintMozillaGtkWidget): (WebCore::RenderThemeGtk::paintCheckbox): (WebCore::RenderThemeGtk::paintRadio): (WebCore::RenderThemeGtk::paintButton): (WebCore::RenderThemeGtk::paintMenuList): (WebCore::RenderThemeGtk::paintTextField): (WebCore::RenderThemeGtk::paintTextArea): (WebCore::RenderThemeGtk::paintSearchFieldResultsButton): (WebCore::RenderThemeGtk::paintSearchFieldResultsDecoration): (WebCore::RenderThemeGtk::paintSearchFieldCancelButton): (WebCore::RenderThemeGtk::paintSearchField): (WebCore::RenderThemeGtk::paintSliderTrack): (WebCore::RenderThemeGtk::paintSliderThumb): (WebCore::RenderThemeGtk::paintMediaFullscreenButton): (WebCore::RenderThemeGtk::paintMediaMuteButton): (WebCore::RenderThemeGtk::paintMediaPlayButton): (WebCore::RenderThemeGtk::paintMediaSeekBackButton): (WebCore::RenderThemeGtk::paintMediaSeekForwardButton): (WebCore::RenderThemeGtk::paintMediaSliderTrack): (WebCore::RenderThemeGtk::paintMediaSliderThumb): (WebCore::RenderThemeGtk::paintProgressBar): * platform/gtk/RenderThemeGtk.h: * platform/haiku/RenderThemeHaiku.cpp: (WebCore::RenderThemeHaiku::paintCheckbox): (WebCore::RenderThemeHaiku::paintRadio): (WebCore::RenderThemeHaiku::paintMenuList): * platform/haiku/RenderThemeHaiku.h: * platform/qt/RenderThemeQt.cpp: (WebCore::StylePainter::StylePainter): (WebCore::RenderThemeQt::paintCheckbox): (WebCore::RenderThemeQt::paintRadio): (WebCore::RenderThemeQt::paintButton): (WebCore::RenderThemeQt::paintTextField): (WebCore::RenderThemeQt::paintTextArea): (WebCore::RenderThemeQt::paintMenuList): (WebCore::RenderThemeQt::paintMenuListButton): (WebCore::RenderThemeQt::paintProgressBar): (WebCore::RenderThemeQt::paintSliderTrack): (WebCore::RenderThemeQt::paintSliderThumb): (WebCore::RenderThemeQt::paintSearchField): (WebCore::RenderThemeQt::paintSearchFieldCancelButton): (WebCore::RenderThemeQt::paintSearchFieldDecoration): (WebCore::RenderThemeQt::paintSearchFieldResultsDecoration): (WebCore::RenderThemeQt::paintMediaFullscreenButton): (WebCore::RenderThemeQt::paintMediaMuteButton): (WebCore::RenderThemeQt::paintMediaPlayButton): (WebCore::RenderThemeQt::paintMediaSeekBackButton): (WebCore::RenderThemeQt::paintMediaSeekForwardButton): (WebCore::RenderThemeQt::paintMediaCurrentTime): (WebCore::RenderThemeQt::paintMediaVolumeSliderTrack): (WebCore::RenderThemeQt::paintMediaVolumeSliderThumb): (WebCore::RenderThemeQt::paintMediaSliderTrack): (WebCore::RenderThemeQt::paintMediaSliderThumb): * platform/qt/RenderThemeQt.h: * platform/wx/RenderThemeWx.cpp: (WebCore::RenderThemeWx::paintCheckbox): (WebCore::RenderThemeWx::paintRadio): (WebCore::RenderThemeWx::paintButton): (WebCore::RenderThemeWx::paintTextField): (WebCore::RenderThemeWx::paintMenuList): (WebCore::RenderThemeWx::paintMenuListButton): * rendering/EllipsisBox.cpp: (WebCore::EllipsisBox::paint): * rendering/EllipsisBox.h: * rendering/InlineBox.cpp: (WebCore::InlineBox::paint): * rendering/InlineBox.h: * rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::paint): (WebCore::InlineFlowBox::paintFillLayers): (WebCore::InlineFlowBox::paintFillLayer): (WebCore::InlineFlowBox::paintBoxDecorations): (WebCore::InlineFlowBox::paintMask): (WebCore::InlineFlowBox::paintTextDecorations): * rendering/InlineFlowBox.h: * rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::paint): * rendering/InlineTextBox.h: * rendering/PaintInfo.h: Added. (WebCore::PaintInfo::PaintInfo): (WebCore::PaintInfo::updatePaintingRootForChildren): (WebCore::PaintInfo::shouldPaintWithinRoot): (WebCore::PaintInfo::applyTransform): * rendering/PaintPhase.h: Added. (WebCore::): * rendering/RenderBlock.cpp: (WebCore::RenderBlock::paint): (WebCore::RenderBlock::paintChildren): (WebCore::RenderBlock::paintEllipsisBoxes): (WebCore::clipOutPositionedObjects): (WebCore::RenderBlock::layoutColumns): * rendering/RenderBox.cpp: (WebCore::RenderBox::paint): (WebCore::RenderBox::paintBoxDecorations): (WebCore::RenderBox::paintMask): * rendering/RenderFieldset.cpp: (WebCore::RenderFieldset::paintBoxDecorations): * rendering/RenderForeignObject.cpp: (WebCore::RenderForeignObject::paint): * rendering/RenderLayer.cpp: (WebCore::RenderLayer::paint): (WebCore::performOverlapTests): (WebCore::RenderLayer::paintLayer): (WebCore::RenderLayer::paintList): (WebCore::RenderLayer::paintPaginatedChildLayer): (WebCore::RenderLayer::paintChildLayerIntoColumns): * rendering/RenderLayer.h: * rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::paintIntoLayer): * rendering/RenderLineBoxList.cpp: (WebCore::RenderLineBoxList::paint): * rendering/RenderLineBoxList.h: * rendering/RenderMediaControls.cpp: (WebCore::RenderMediaControls::paintMediaControlsPart): * rendering/RenderMediaControls.h: * rendering/RenderMediaControlsChromium.cpp: (WebCore::paintMediaMuteButton): (WebCore::paintMediaPlayButton): (WebCore::paintMediaSlider): (WebCore::paintMediaSliderThumb): (WebCore::paintMediaVolumeSlider): (WebCore::paintMediaVolumeSliderThumb): (WebCore::paintMediaTimelineContainer): (WebCore::RenderMediaControlsChromium::paintMediaControlsPart): * rendering/RenderMediaControlsChromium.h: * rendering/RenderObject.h: * rendering/RenderPath.cpp: (WebCore::RenderPath::paint): * rendering/RenderReplaced.cpp: (WebCore::RenderReplaced::paint): (WebCore::RenderReplaced::shouldPaint): * rendering/RenderSVGContainer.cpp: (WebCore::RenderSVGContainer::paint): * rendering/RenderSVGResourceMarker.cpp: (WebCore::RenderSVGResourceMarker::draw): * rendering/RenderSVGResourceMarker.h: * rendering/RenderSVGRoot.cpp: (WebCore::RenderSVGRoot::paint): * rendering/RenderSVGText.cpp: (WebCore::RenderSVGText::paint): * rendering/RenderScrollbarPart.cpp: (WebCore::RenderScrollbarPart::paintIntoRect): * rendering/RenderTable.cpp: (WebCore::RenderTable::paintObject): (WebCore::RenderTable::paintBoxDecorations): * rendering/RenderTableCell.cpp: (WebCore::RenderTableCell::paint): (WebCore::RenderTableCell::paintBackgroundsBehindCell): (WebCore::RenderTableCell::paintBoxDecorations): * rendering/RenderTheme.cpp: (WebCore::RenderTheme::paint): (WebCore::RenderTheme::paintBorderOnly): (WebCore::RenderTheme::paintDecorations): (WebCore::RenderTheme::paintMeter): * rendering/RenderTheme.h: (WebCore::RenderTheme::paintCapsLockIndicator): (WebCore::RenderTheme::paintCheckbox): (WebCore::RenderTheme::paintRadio): (WebCore::RenderTheme::paintButton): (WebCore::RenderTheme::paintInnerSpinButton): (WebCore::RenderTheme::paintOuterSpinButton): (WebCore::RenderTheme::paintTextField): (WebCore::RenderTheme::paintTextArea): (WebCore::RenderTheme::paintMenuList): (WebCore::RenderTheme::paintMenuListButton): (WebCore::RenderTheme::paintProgressBar): (WebCore::RenderTheme::paintSliderTrack): (WebCore::RenderTheme::paintSliderThumb): (WebCore::RenderTheme::paintSearchField): (WebCore::RenderTheme::paintSearchFieldCancelButton): (WebCore::RenderTheme::paintSearchFieldDecoration): (WebCore::RenderTheme::paintSearchFieldResultsDecoration): (WebCore::RenderTheme::paintSearchFieldResultsButton): (WebCore::RenderTheme::paintMediaFullscreenButton): (WebCore::RenderTheme::paintMediaPlayButton): (WebCore::RenderTheme::paintMediaMuteButton): (WebCore::RenderTheme::paintMediaSeekBackButton): (WebCore::RenderTheme::paintMediaSeekForwardButton): (WebCore::RenderTheme::paintMediaSliderTrack): (WebCore::RenderTheme::paintMediaSliderThumb): (WebCore::RenderTheme::paintMediaVolumeSliderContainer): (WebCore::RenderTheme::paintMediaVolumeSliderTrack): (WebCore::RenderTheme::paintMediaVolumeSliderThumb): (WebCore::RenderTheme::paintMediaRewindButton): (WebCore::RenderTheme::paintMediaReturnToRealtimeButton): (WebCore::RenderTheme::paintMediaToggleClosedCaptionsButton): (WebCore::RenderTheme::paintMediaControlsBackground): (WebCore::RenderTheme::paintMediaCurrentTime): (WebCore::RenderTheme::paintMediaTimeRemaining): * rendering/RenderThemeChromiumMac.h: * rendering/RenderThemeChromiumMac.mm: (WebCore::RenderThemeChromiumMac::paintMediaPlayButton): (WebCore::RenderThemeChromiumMac::paintMediaMuteButton): (WebCore::RenderThemeChromiumMac::paintMediaSliderTrack): (WebCore::RenderThemeChromiumMac::paintMediaControlsBackground): (WebCore::RenderThemeChromiumMac::paintMediaVolumeSliderTrack): (WebCore::RenderThemeChromiumMac::paintMediaVolumeSliderThumb): * rendering/RenderThemeChromiumSkia.cpp: (WebCore::RenderThemeChromiumSkia::paintCheckbox): (WebCore::RenderThemeChromiumSkia::paintRadio): (WebCore::paintButtonLike): (WebCore::RenderThemeChromiumSkia::paintButton): (WebCore::RenderThemeChromiumSkia::paintTextField): (WebCore::RenderThemeChromiumSkia::paintTextArea): (WebCore::RenderThemeChromiumSkia::paintSearchField): (WebCore::RenderThemeChromiumSkia::paintSearchFieldCancelButton): (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsDecoration): (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsButton): (WebCore::RenderThemeChromiumSkia::paintMediaControlsBackground): (WebCore::RenderThemeChromiumSkia::paintMediaSliderTrack): (WebCore::RenderThemeChromiumSkia::paintMediaVolumeSliderTrack): (WebCore::RenderThemeChromiumSkia::paintMediaSliderThumb): (WebCore::RenderThemeChromiumSkia::paintMediaVolumeSliderThumb): (WebCore::RenderThemeChromiumSkia::paintMediaPlayButton): (WebCore::RenderThemeChromiumSkia::paintMediaMuteButton): (WebCore::RenderThemeChromiumSkia::paintMenuList): (WebCore::RenderThemeChromiumSkia::paintMenuListButton): (WebCore::RenderThemeChromiumSkia::paintSliderTrack): (WebCore::RenderThemeChromiumSkia::paintSliderThumb): (WebCore::RenderThemeChromiumSkia::paintProgressBar): * rendering/RenderThemeChromiumSkia.h: * rendering/RenderThemeChromiumWin.cpp: (WebCore::RenderThemeChromiumWin::paintCheckbox): (WebCore::RenderThemeChromiumWin::paintRadio): (WebCore::RenderThemeChromiumWin::paintButton): (WebCore::RenderThemeChromiumWin::paintTextField): (WebCore::RenderThemeChromiumWin::paintSliderTrack): (WebCore::RenderThemeChromiumWin::paintSliderThumb): (WebCore::RenderThemeChromiumWin::paintMenuList): (WebCore::RenderThemeChromiumWin::paintTextFieldInternal): (WebCore::RenderThemeChromiumWin::paintProgressBar): * rendering/RenderThemeChromiumWin.h: * rendering/RenderThemeMac.h: * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::paintTextField): (WebCore::RenderThemeMac::paintCapsLockIndicator): (WebCore::RenderThemeMac::paintTextArea): (WebCore::RenderThemeMac::paintMenuList): (WebCore::RenderThemeMac::paintMeter): (WebCore::RenderThemeMac::paintProgressBar): (WebCore::RenderThemeMac::paintMenuListButtonGradients): (WebCore::RenderThemeMac::paintMenuListButton): (WebCore::RenderThemeMac::paintSliderTrack): (WebCore::RenderThemeMac::paintSliderThumb): (WebCore::RenderThemeMac::paintSearchField): (WebCore::RenderThemeMac::paintSearchFieldCancelButton): (WebCore::RenderThemeMac::paintSearchFieldDecoration): (WebCore::RenderThemeMac::paintSearchFieldResultsDecoration): (WebCore::RenderThemeMac::paintSearchFieldResultsButton): (WebCore::getUnzoomedRectAndAdjustCurrentContext): (WebCore::RenderThemeMac::paintMediaFullscreenButton): (WebCore::RenderThemeMac::paintMediaMuteButton): (WebCore::RenderThemeMac::paintMediaPlayButton): (WebCore::RenderThemeMac::paintMediaSeekBackButton): (WebCore::RenderThemeMac::paintMediaSeekForwardButton): (WebCore::RenderThemeMac::paintMediaSliderTrack): (WebCore::RenderThemeMac::paintMediaSliderThumb): (WebCore::RenderThemeMac::paintMediaRewindButton): (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton): (WebCore::RenderThemeMac::paintMediaToggleClosedCaptionsButton): (WebCore::RenderThemeMac::paintMediaControlsBackground): (WebCore::RenderThemeMac::paintMediaCurrentTime): (WebCore::RenderThemeMac::paintMediaTimeRemaining): * rendering/RenderThemeSafari.cpp: (WebCore::RenderThemeSafari::paintCheckbox): (WebCore::RenderThemeSafari::paintRadio): (WebCore::RenderThemeSafari::paintButton): (WebCore::RenderThemeSafari::paintTextField): (WebCore::RenderThemeSafari::paintCapsLockIndicator): (WebCore::RenderThemeSafari::paintTextArea): (WebCore::RenderThemeSafari::paintMenuList): (WebCore::RenderThemeSafari::paintMenuListButtonGradients): (WebCore::RenderThemeSafari::paintMenuListButton): (WebCore::RenderThemeSafari::paintSliderTrack): (WebCore::RenderThemeSafari::paintSliderThumb): (WebCore::RenderThemeSafari::paintSearchField): (WebCore::RenderThemeSafari::paintSearchFieldCancelButton): (WebCore::RenderThemeSafari::paintSearchFieldDecoration): (WebCore::RenderThemeSafari::paintSearchFieldResultsDecoration): (WebCore::RenderThemeSafari::paintSearchFieldResultsButton): (WebCore::RenderThemeSafari::paintMediaFullscreenButton): (WebCore::RenderThemeSafari::paintMediaMuteButton): (WebCore::RenderThemeSafari::paintMediaPlayButton): (WebCore::RenderThemeSafari::paintMediaSeekBackButton): (WebCore::RenderThemeSafari::paintMediaSeekForwardButton): (WebCore::RenderThemeSafari::paintMediaSliderTrack): (WebCore::RenderThemeSafari::paintMediaSliderThumb): * rendering/RenderThemeSafari.h: * rendering/RenderThemeWin.cpp: (WebCore::RenderThemeWin::paintButton): (WebCore::RenderThemeWin::paintTextField): (WebCore::RenderThemeWin::paintMenuList): (WebCore::RenderThemeWin::paintMenuListButton): (WebCore::RenderThemeWin::paintSliderTrack): (WebCore::RenderThemeWin::paintSliderThumb): (WebCore::RenderThemeWin::paintSearchField): (WebCore::RenderThemeWin::paintSearchFieldCancelButton): (WebCore::RenderThemeWin::paintSearchFieldResultsDecoration): (WebCore::RenderThemeWin::paintSearchFieldResultsButton): (WebCore::RenderThemeWin::paintMediaFullscreenButton): (WebCore::RenderThemeWin::paintMediaMuteButton): (WebCore::RenderThemeWin::paintMediaPlayButton): (WebCore::RenderThemeWin::paintMediaSeekBackButton): (WebCore::RenderThemeWin::paintMediaSeekForwardButton): (WebCore::RenderThemeWin::paintMediaSliderTrack): (WebCore::RenderThemeWin::paintMediaSliderThumb): (WebCore::RenderThemeWin::paintMediaToggleClosedCaptionsButton): * rendering/RenderThemeWin.h: (WebCore::RenderThemeWin::paintCheckbox): (WebCore::RenderThemeWin::paintRadio): (WebCore::RenderThemeWin::paintTextArea): (WebCore::RenderThemeWin::paintSearchFieldDecoration): * rendering/RenderThemeWince.cpp: (WebCore::RenderThemeWince::paintButton): (WebCore::RenderThemeWince::paintTextField): (WebCore::RenderThemeWince::paintMenuList): (WebCore::RenderThemeWince::paintMenuListButton): (WebCore::RenderThemeWince::paintSearchField): (WebCore::RenderThemeWince::paintSearchFieldCancelButton): (WebCore::RenderThemeWince::paintSearchFieldResultsDecoration): (WebCore::RenderThemeWince::paintSearchFieldResultsButton): (WebCore::RenderThemeWince::paintSliderTrack): (WebCore::RenderThemeWince::paintSliderThumb): (WebCore::RenderThemeWince::paintMediaFullscreenButton): (WebCore::RenderThemeWince::paintMediaMuteButton): (WebCore::RenderThemeWince::paintMediaPlayButton): (WebCore::RenderThemeWince::paintMediaSeekBackButton): (WebCore::RenderThemeWince::paintMediaSeekForwardButton): (WebCore::RenderThemeWince::paintMediaSliderTrack): (WebCore::RenderThemeWince::paintMediaSliderThumb): * rendering/RenderThemeWince.h: (WebCore::RenderThemeWince::paintCheckbox): (WebCore::RenderThemeWince::paintRadio): (WebCore::RenderThemeWince::paintTextArea): (WebCore::RenderThemeWince::paintSearchFieldDecoration): * rendering/RootInlineBox.cpp: (WebCore::RootInlineBox::paintEllipsisBox): (WebCore::RootInlineBox::paintCustomHighlight): (WebCore::RootInlineBox::paint): (WebCore::RootInlineBox::fillLineSelectionGap): * rendering/RootInlineBox.h: * rendering/SVGInlineFlowBox.cpp: (WebCore::SVGInlineFlowBox::paint): * rendering/SVGInlineFlowBox.h: * rendering/SVGInlineTextBox.cpp: (WebCore::SVGInlineTextBox::paint): * rendering/SVGInlineTextBox.h: * rendering/SVGMarkerLayoutInfo.cpp: (WebCore::SVGMarkerLayoutInfo::drawMarkers): * rendering/SVGMarkerLayoutInfo.h: * rendering/SVGRenderSupport.cpp: (WebCore::SVGRenderBase::prepareToRenderSVGContent): (WebCore::SVGRenderBase::finishRenderSVGContent): (WebCore::renderSubtreeToImage): * rendering/SVGRenderSupport.h: * rendering/SVGRootInlineBox.cpp: (WebCore::SVGRootInlineBox::paint): * rendering/SVGRootInlineBox.h: 2010-06-29 Nikolas Zimmermann Not reviewed. Sort Xcode project file. * WebCore.xcodeproj/project.pbxproj: 2010-06-29 Nikolas Zimmermann Reviewed by Dirk Schulze. Provide floating-point support for text selection framework https://bugs.webkit.org/show_bug.cgi?id=40665 Rename 'glyphScale' to 'horizontalGlyphStretch' upon Dans' request. Also guard the variables in ENABLE(SVG) blocks. Initialize variable to 1 instead of 1.0f, as that's the new style rule. No functional changes, thus no new tests. * platform/graphics/TextRun.h: (WebCore::TextRun::TextRun): (WebCore::TextRun::horizontalGlyphStretch): (WebCore::TextRun::setHorizontalGlyphStretch): (WebCore::TextRun::spacingDisabled): * platform/graphics/WidthIterator.cpp: (WebCore::WidthIterator::advance): * rendering/SVGInlineTextBox.cpp: (WebCore::SVGInlineTextBox::offsetForPosition): 2010-06-29 Nikolas Zimmermann Reviewed by Dirk Schulze. REGRESSION: text-shadow CSS applied to SVG no longer works https://bugs.webkit.org/show_bug.cgi?id=40960 Readd text-shadow support, this time supporting multiple shadows. It's not exactly like HTML, because SVG draws fill/stroke phases seperated - the png shows the difference. Tests: svg/css/text-shadow-multiple.xhtml * rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::applyShadowToGraphicsContext): Refactored from paintTextWithShadows(), so SVG can reuse. (WebCore::paintTextWithShadows): Use refactored applyShadowToGraphicsContext() function. * rendering/InlineTextBox.h: * rendering/SVGInlineTextBox.cpp: (WebCore::SVGInlineTextBox::paintTextWithShadows): Added. (WebCore::SVGInlineTextBox::paintText): Call paintTextWithShadows() instead of directly drawing the text. * rendering/SVGInlineTextBox.h: 2010-06-29 Pavel Podivilov Reviewed by Yury Semikhatsky. Web Inspector: show actual breakpoint position in UI. When user sets breakpoint from UI, javascript engine may actually set it on a different line. If so, move breakpoint to the correct position in frontend. https://bugs.webkit.org/show_bug.cgi?id=40781 * bindings/js/ScriptDebugServer.cpp: (WebCore::ScriptDebugServer::setBreakpoint): (WebCore::ScriptDebugServer::dispatchDidPause): * bindings/js/ScriptDebugServer.h: * bindings/v8/ScriptDebugServer.cpp: (WebCore::ScriptDebugServer::setBreakpoint): (WebCore::ScriptDebugServer::currentCallFrame): * bindings/v8/ScriptDebugServer.h: * inspector/InspectorBackend.cpp: (WebCore::InspectorBackend::setBreakpoint): * inspector/InspectorBackend.h: * inspector/InspectorBackend.idl: * inspector/InspectorController.cpp: (WebCore::InspectorController::didCommitLoad): (WebCore::InspectorController::setBreakpoint): (WebCore::InspectorController::removeBreakpoint): (WebCore::InspectorController::didParseSource): * inspector/InspectorController.h: * inspector/InspectorFrontend.cpp: (WebCore::InspectorFrontend::didSetBreakpoint): * inspector/InspectorFrontend.h: * inspector/front-end/BreakpointManager.js: (WebInspector.BreakpointManager.prototype.setOneTimeBreakpoint): (WebInspector.BreakpointManager.prototype.removeOneTimeBreakpoint): (WebInspector.BreakpointManager.prototype.setBreakpoint): (WebInspector.BreakpointManager.prototype.restoredBreakpoint): (WebInspector.BreakpointManager.prototype.removeBreakpoint): (WebInspector.BreakpointManager.prototype._setBreakpoint): (WebInspector.BreakpointManager.prototype._removeBreakpoint): (WebInspector.BreakpointManager.prototype._setBreakpointOnBackend.didSetBreakpoint): (WebInspector.BreakpointManager.prototype._setBreakpointOnBackend): (WebInspector.Breakpoint.prototype.set enabled): (WebInspector.Breakpoint.prototype.set condition): * inspector/front-end/InspectorBackendStub.js: (.WebInspector.InspectorBackendStub.prototype.setBreakpoint): * inspector/front-end/ScriptView.js: (WebInspector.ScriptView.prototype._addBreakpoint): * inspector/front-end/SourceView.js: (WebInspector.SourceView.prototype._addBreakpoint): 2010-06-29 Dumitru Daniliuc Reviewed by Adam Barth. Catch toString() exceptions in all DB-related code. https://bugs.webkit.org/show_bug.cgi?id=41297 * bindings/v8/custom/V8BindingMacros.h: * bindings/v8/custom/V8DOMWindowCustom.cpp: (WebCore::V8DOMWindow::openDatabaseCallback): * bindings/v8/custom/V8DatabaseCustom.cpp: (WebCore::V8Database::changeVersionCallback): * bindings/v8/custom/V8DatabaseSyncCustom.cpp: (WebCore::V8DatabaseSync::changeVersionCallback): * bindings/v8/custom/V8SQLTransactionCustom.cpp: (WebCore::V8SQLTransaction::executeSqlCallback): * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp: (WebCore::V8SQLTransactionSync::executeSqlCallback): * bindings/v8/custom/V8WorkerContextCustom.cpp: (WebCore::V8WorkerContext::openDatabaseCallback): (WebCore::V8WorkerContext::openDatabaseSyncCallback): 2010-06-29 Herczeg Zoltan Rubber-stamped by Nikolas Zimmermann. Windows build fix. https://bugs.webkit.org/show_bug.cgi?id=5861 * svg/SVGFEConvolveMatrixElement.cpp: (WebCore::SVGFEConvolveMatrixElement::build): 2010-06-29 Zoltan Herczeg Reviewed by Nikolas Zimmermann. Add ConvolveMatrix SVG filter effect https://bugs.webkit.org/show_bug.cgi?id=5861 The patch was originally started by Dirk Schulze, and the .cpp and .h files are mostly his work. I updated the build systems and do some minor updates to the source files as well. The patch does not contain the implementation of the filter: this is intended, and will be landed in a follow-up patch. * Android.derived.jscbindings.mk: * Android.derived.v8bindings.mk: * Android.mk: * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * GNUmakefile.am: * WebCore.gypi: * WebCore.pri: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/objc/DOM.mm: (WebCore::createElementClassMap): * bindings/objc/DOMSVG.h: * page/DOMWindow.idl: * svg/SVGAllInOne.cpp: * svg/SVGFEConvolveMatrixElement.cpp: Added. (WebCore::SVGFEConvolveMatrixElement::SVGFEConvolveMatrixElement): (WebCore::SVGFEConvolveMatrixElement::~SVGFEConvolveMatrixElement): (WebCore::SVGFEConvolveMatrixElement::parseMappedAttribute): (WebCore::SVGFEConvolveMatrixElement::setOrder): (WebCore::SVGFEConvolveMatrixElement::setKernelUnitLength): (WebCore::SVGFEConvolveMatrixElement::build): * svg/SVGFEConvolveMatrixElement.h: Added. * svg/SVGFEConvolveMatrixElement.idl: Added. * svg/graphics/filters/SVGFEConvolveMatrix.cpp: (WebCore::FEConvolveMatrix::FEConvolveMatrix): (WebCore::FEConvolveMatrix::create): (WebCore::FEConvolveMatrix::kernelSize): (WebCore::FEConvolveMatrix::setKernelSize): (WebCore::FEConvolveMatrix::targetOffset): (WebCore::FEConvolveMatrix::setTargetOffset): (WebCore::operator<<): (WebCore::FEConvolveMatrix::externalRepresentation): * svg/graphics/filters/SVGFEConvolveMatrix.h: (WebCore::): * svg/svgattrs.in: * svg/svgtags.in: 2010-06-28 Adam Barth Reviewed by Eric Seidel. HTML5 tree builder shouldn't ASSERT on HTML5lib test suite https://bugs.webkit.org/show_bug.cgi?id=41335 Sketch out the EndTag handling for InBodyMode. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processEndTag): * html/HTMLTreeBuilder.h: (WebCore::HTMLTreeBuilder::ElementStack::inScope): (WebCore::HTMLTreeBuilder::clearActiveFormatingElementsUpToLastMarker): (WebCore::HTMLTreeBuilder::generateImpliedEndTags): 2010-06-28 David Levin Reviewed by NOBODY (chromium build fix). * rendering/RenderObject.h: Add missing forward declaration. 2010-06-28 Adam Barth Unreviewed. I accidently gave up my ref and tried to dereference a null pointer. This code is keeping an extra ref that it doesn't need, but that fact was somewhat hidden before. * dom/ContainerNode.cpp: (WebCore::ContainerNode::addChildCommon): (WebCore::ContainerNode::parserAddChild): (WebCore::ContainerNode::legacyParserAddChild): * dom/ContainerNode.h: 2010-06-28 Adam Barth Unreviewed. Refactor common code into addChildCommon https://bugs.webkit.org/show_bug.cgi?id=41326 Eric asked that we share the common code between these codepaths. * dom/ContainerNode.cpp: (WebCore::ContainerNode::addChildCommon): (WebCore::ContainerNode::parserAddChild): (WebCore::ContainerNode::addChild): * dom/ContainerNode.h: 2010-06-28 Eric Seidel Reviewed by Adam Barth. Implement HTMLTreeBuilder::reconstructTheActiveFormattingElements https://bugs.webkit.org/show_bug.cgi?id=41319 Restructure the code to not use in-band data, which is what got us in trouble with a signed/unsigned mismatch before. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::indexOfFirstUnopenFormattingElement): (WebCore::HTMLTreeBuilder::reconstructTheActiveFormattingElements): * html/HTMLTreeBuilder.h: 2010-06-28 Daniel Bates Unreviewed, attempt to fix Qt bots. Attempt to fix the build after changeset 62079 (https://bugs.webkit.org/show_bug.cgi?id=41324). Rename some more call sites that were missed in the initial landing. * dom/XMLDocumentParserQt.cpp: (WebCore::XMLDocumentParser::parseStartElement): (WebCore::XMLDocumentParser::parseProcessingInstruction): (WebCore::XMLDocumentParser::parseCdata): (WebCore::XMLDocumentParser::parseComment): (WebCore::XMLDocumentParser::parseDtd): 2010-06-28 Daniel Bates Unreviewed, build fix. Change return type of method HTMLTreeBuilder::reconstructTheActiveFormattingElements() from int to unsigned. Attempt to fix the build after changeset 62077 (https://bugs.webkit.org/show_bug.cgi?id=41319). * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::indexOfLastOpenFormattingElementOrMarker): (WebCore::HTMLTreeBuilder::reconstructTheActiveFormattingElements): * html/HTMLTreeBuilder.h: 2010-06-28 Eric Seidel Reviewed by Adam Barth. Rename ContainerNode::addChild to legacyParserAddChild to indicate its parser-only intended use https://bugs.webkit.org/show_bug.cgi?id=41324 A bunch of places in the code were calling ContainerNode::addChild. I don't think they actually want to be doing that, as it has special form-related handling which is part of LegacyHTMLTreeBuilder. No functional changes, thus no tests. * dom/ContainerNode.cpp: (WebCore::ContainerNode::legacyParserAddChild): * dom/ContainerNode.h: * dom/DOMImplementation.cpp: (WebCore::DOMImplementation::createDocument): * dom/Node.cpp: (WebCore::Node::legacyParserAddChild): * dom/Node.h: * html/HTMLKeygenElement.cpp: (WebCore::HTMLKeygenElement::HTMLKeygenElement): * html/HTMLTableElement.cpp: (WebCore::HTMLTableElement::legacyParserAddChild): * html/HTMLTableElement.h: * html/HTMLTableRowElement.cpp: (WebCore::HTMLTableRowElement::legacyParserAddChild): * html/HTMLTableRowElement.h: * html/HTMLTableSectionElement.cpp: (WebCore::HTMLTableSectionElement::legacyParserAddChild): * html/HTMLTableSectionElement.h: * html/HTMLViewSourceDocument.cpp: (WebCore::HTMLViewSourceDocument::createContainingTable): (WebCore::HTMLViewSourceDocument::addSpanWithClassName): (WebCore::HTMLViewSourceDocument::addLine): (WebCore::HTMLViewSourceDocument::addText): (WebCore::HTMLViewSourceDocument::addLink): 2010-06-28 Eric Seidel Reviewed by Adam Barth. Implement HTMLTreeBuilder::reconstructTheActiveFormattingElements https://bugs.webkit.org/show_bug.cgi?id=41319 This is basically a direct transcription of HTML5 TreeBuilder spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#list-of-active-formatting-elements This code is covered by various tests in html5lib/runner which we can't run yet due to other asserts. Adam and I are working on getting rid of those ASSERTS so that this (and other code) will be better tested shortly. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::insertFormatingElement): (WebCore::HTMLTreeBuilder::reconstructTheActiveFormattingElements): * html/HTMLTreeBuilder.h: (WebCore::HTMLTreeBuilder::ElementStack::contains): (WebCore::HTMLTreeBuilder::FormatingElementEntry::FormatingElementEntry): (WebCore::HTMLTreeBuilder::FormatingElementEntry::): (WebCore::HTMLTreeBuilder::FormatingElementEntry::isMarker): (WebCore::HTMLTreeBuilder::FormatingElementEntry::element): (WebCore::HTMLTreeBuilder::FormatingElementEntry::replaceElement): 2010-06-28 Adam Barth Reviewed by Eric Seidel. Fix ASSERT so we can run more HTML5lib tests https://bugs.webkit.org/show_bug.cgi?id=41325 We can't call Node::addChild because that function contains a bunch of logic from the old parser. Instead, this patch creates a new version of addChild that's does less validating (that's the tree builder's job). * dom/ContainerNode.cpp: (WebCore::ContainerNode::parserAddChild): * dom/ContainerNode.h: * dom/Node.cpp: (WebCore::Node::parserAddChild): * dom/Node.h: * html/HTMLTreeBuilder.h: (WebCore::HTMLTreeBuilder::attach): 2010-06-28 David Levin Reviewed by NOBODY (chromium build fix). * bindings/v8/ScriptEventListener.h: Changed forward declaration to correspond to the code change doing in r62052. 2010-06-28 Brady Eidson Reviewed by Alexey Proskuryakov. Support for https://bugs.webkit.org/show_bug.cgi?id=40484 In working on adding beforeProcess, it becomes necessary for JSLazyEventListeners to always know what their original Node* was, even if it was a window event listener. For HTMLFrameSet, HTMLBody, and SVGSVG elements, a second form of createAttributeEventListener was used that took a Frame* argument and didn't set the original Node* on the JSLazyEventListener. This patch changes that form of the function to createWindowAttributeEventListener, and passes the Node* along for later use by the beforeProcess mechanism. No new tests. (No change in behavior) * bindings/js/ScriptEventListener.cpp: (WebCore::createWindowAttributeEventListener): Renamed from createAttributeEventListener, takes a Node* instead of a Frame*, and figures out the Frame* itself internally. * bindings/js/ScriptEventListener.h: * bindings/v8/ScriptEventListener.cpp: (WebCore::createWindowAttributeEventListener): Renamed from createAttributeEventListener, takes a Node* instead of a Frame*, and figures out the Frame* itself internally. Note that V8LazyEventListener doesn't allow us to pass the Element* argument in so this beforeprocess feature won't fully work on V8 builds until this is changed. * bindings/v8/ScriptEventListener.h: * html/HTMLBodyElement.cpp: (WebCore::HTMLBodyElement::parseMappedAttribute): Use createWindowAttributeEventListener instead. * html/HTMLFrameSetElement.cpp: (WebCore::HTMLFrameSetElement::parseMappedAttribute): Ditto. * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::parseMappedAttribute): Ditto. Also add some missing copyright dates that `svn log` proves should be there. 2010-06-28 John Gregg Reviewed by Kent Tamura. add ENABLE_DIRECTORY_UPLOAD build support https://bugs.webkit.org/show_bug.cgi?id=41100 * Configurations/FeatureDefines.xcconfig: * GNUmakefile.am: * WebCore.pri: 2010-06-28 Adam Barth Reviewed by Eric Seidel. Don't use the new tree builder for fragments https://bugs.webkit.org/show_bug.cgi?id=41316 We need to walk before we can run. After this change, we can run the runner.html tests (with the ASSERT caveat). * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::HTMLTreeBuilder): 2010-06-28 Adam Barth Reviewed by Eric Seidel. The new tree builder should actually finish building the tree https://bugs.webkit.org/show_bug.cgi?id=41314 Again, this patch makes progress on runner.html, but I haven't removed the ASSERT yet. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::HTMLTreeBuilder): (WebCore::HTMLTreeBuilder::finished): * html/HTMLTreeBuilder.h: 2010-06-28 Dumitru Daniliuc Reviewed by Eric Seidel. Fix a race condition that can happen when using DBs in workers. https://bugs.webkit.org/show_bug.cgi?id=41105 * storage/DatabaseTracker.cpp: (WebCore::DatabaseTracker::addOpenDatabase): * storage/DatabaseTracker.h: 2010-06-28 Adam Barth Reviewed by Eric Seidel. Add text nodes to the DOM https://bugs.webkit.org/show_bug.cgi?id=41306 Actually add some text nodes to the DOM when parsing a document. We're going to need to do something fancier here eventually, but this gets us past the error we're seeing currently in runner.html. Unfortunately, this patch "regresses" runner.html in the sense that we now hit an assert, but it's still an improvement... I'll update the HTML5 expectations once we get past the assert. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processCharacter): (WebCore::HTMLTreeBuilder::insertTextNode): * html/HTMLTreeBuilder.h: 2010-06-28 Beth Dakin Build fix for non-PATH_BASED_BORDER_RADIUS_DRAWING platforms. * rendering/RenderBoxModelObject.cpp: 2010-06-28 Andreas Kling Reviewed by Kenneth Rohde Christiansen. [Qt] Use HTML5-conformant gradient interpolation mode https://bugs.webkit.org/show_bug.cgi?id=41298 Change the Qt Gradient implementation to use ComponentInterpolation mode. Spec link: http://www.whatwg.org/specs/web-apps/current-work/#colors-and-styles * platform/graphics/qt/GradientQt.cpp: (WebCore::Gradient::platformGradient): 2010-06-28 Beth Dakin Reviewed by Sam Weinig. Fix for https://bugs.webkit.org/show_bug.cgi?id=9197 CSS3: Borders with border-radius and double, groove, or ridge styles should look better This patch re-works border radius painting to stroke paths instead of arcs. Added new function clipConvexPolygon(). Added static addConvexPolygonToContext so that code can be shared between drawConvexPolygon() and clipConvexPolygon(). * platform/graphics/GraphicsContext.h: * platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::addConvexPolygonToContext): (WebCore::GraphicsContext::drawConvexPolygon): (WebCore::GraphicsContext::clipConvexPolygon): Shells of implementations on non-CG platforms. * platform/graphics/cairo/GraphicsContextCairo.cpp: (WebCore::GraphicsContext::clipConvexPolygon): * platform/graphics/haiku/GraphicsContextHaiku.cpp: (WebCore::GraphicsContext::clipConvexPolygon): * platform/graphics/qt/GraphicsContextQt.cpp: (WebCore::GraphicsContext::clipConvexPolygon): * platform/graphics/skia/GraphicsContextSkia.cpp: (WebCore::GraphicsContext::clipConvexPolygon): * platform/graphics/wince/GraphicsContextWince.cpp: (WebCore::GraphicsContext::clipConvexPolygon): * platform/graphics/wx/GraphicsContextWx.cpp: (WebCore::GraphicsContext::clipConvexPolygon): This new helper function determines if the inner corners of the border will arch in or meet at a right angle. * rendering/RenderBoxModelObject.cpp: (WebCore::borderWillArcInnerEdge): This function is re-written so that, for each side of the border, if borderWillArcInnerEdge() is true, we go down a brand new code path of clipping to a convex polygon for the border side and then we paint the side using the new function drawBoxSideFromPath(). If borderWillArcInnerEdge() is false, then we call into the old familiar drawLineForBoxSide() which relies on the rounder clip rects we have set up to arch the outer edge of the border. (WebCore::RenderBoxModelObject::paintBorder): This new function does the math to figure out the convex polygon to clip to in the case where we need to arch the inner edge of the border. This calls into a new GraphicsContext function that is only implemented on CG at this time. This is the reason we are keeping around an old version of paintBorder() for now. (WebCore::RenderBoxModelObject::clipBorderSidePolygon): * rendering/RenderBoxModelObject.h: borderInnerRect() is a new convenience function called from RenderObject and RenderBoxModelObject to determine the rect of the inside edge of the border. * rendering/RenderObject.cpp: (WebCore::RenderObject::borderInnerRect): This new function re-works drawArcForBoxSide to draw from Paths when appropriate instead of stroking arcs. (WebCore::RenderObject::drawBoxSideFromPath): Keep this around for that do not HAVE(PATH_BASED_BORDER_RADIUS_DRAWING) until GraphicsContext::clipConvexPolygon() is implemented. (WebCore::RenderObject::drawArcForBoxSide): * rendering/RenderObject.h: New function RenderStyle::getInnerBorderRadiiForRectWithBorderWidths() gets the inner radius values for a rect. It takes border widths a parameters rather than using the style's border widths so that it can be used in inner radius calculations for double and groove/ridge calculations. The W3C corner constraining rules were moved to a static function that can be called from both getBorderRadiiForRect () and getInnerBorderRadiiForRectWithBorderWidths(). * rendering/style/RenderStyle.cpp: (WebCore::constrainCornerRadiiForRect): (WebCore::RenderStyle::getBorderRadiiForRect): (WebCore::RenderStyle::getInnerBorderRadiiForRectWithBorderWidths): * rendering/style/RenderStyle.h: 2010-06-28 Martin Robinson Reviewed by Xan Lopez. [GTK] Add support for the progress bar tag https://bugs.webkit.org/show_bug.cgi?id=41014 Add support for rendering the progress tag for WebKit GTK+. * GNUmakefile.am: * platform/gtk/RenderThemeGtk.cpp: (WebCore::RenderThemeGtk::animationRepeatIntervalForProgressBar): Added. Currently progress bar animations are disabled. As it looks like there may not be a good way to support this with Mozilla's theme drawing code. (WebCore::RenderThemeGtk::animationDurationForProgressBar): Ditto. (WebCore::RenderThemeGtk::adjustProgressBarStyle): Added. (WebCore::RenderThemeGtk::paintProgressBar): Added. * platform/gtk/RenderThemeGtk.h: Add declarations for new methods. * platform/gtk/gtk2drawing.c: (moz_gtk_get_progress_widget): Expose the progress widget so that the chunk can be positioned properly. * platform/gtk/gtkdrawing.h: Added declaration for moz_gtk_get_progress_widget. 2010-06-28 Adam Barth Reviewed by Eric Seidel. HTML5 Regression: Crash in insert() https://bugs.webkit.org/show_bug.cgi?id=41281 We need to call endIfDelayed() outside of the script nesting block because endIfDelayed() might call end(), which deletes the HTMLDocumentParser. If we try to exit the script nesting block after the HTMLDocumentParser has been deleted, we'll decrement unallocated memory, which is bad times. Moving endIfDelayed outside of the script nesting block also lets us avoid ending if inWrite() is true. If we're inWrite(), then there's folks above us on the stack who will crash of the HTMLDocumentParser is deallocated. Adding this check matches the LegacyHTMLDocumentParser and the logic in attemptToEnd, facilitating a small refactoring of the common logic for improved readability. I don't know of any test case that changes in behavior because of this patch, but this bug exists on the same line of code that the reliablity tests crashed. I'm not sure whether this patch will fix that crash, but removing bugs (even theoretical ones) seems like a good idea. * html/HTMLDocumentParser.cpp: (WebCore::HTMLDocumentParser::insert): (WebCore::HTMLDocumentParser::append): (WebCore::HTMLDocumentParser::attemptToEnd): (WebCore::HTMLDocumentParser::endIfDelayed): (WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution): * html/HTMLDocumentParser.h: (WebCore::HTMLDocumentParser::shouldDelayEnd): 2010-06-28 Eric Carlson Reviewed by Sam Weinig. MediaPlayerPrivate::getSupportedTypes does not return "modern" MIME types https://bugs.webkit.org/show_bug.cgi?id=41287 No new test because getSupportedTypes is used privately by MediaPlayer. * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: (WebCore::MediaPlayerPrivate::getSupportedTypes): Build hash set with both common and modern types. 2010-06-28 James Robinson Reviewed by Darin Adler. REGRESSION(53790): Neopets page with mismatched elements misrenders https://bugs.webkit.org/show_bug.cgi?id=41181 Misnested formatting tags require fixup in order to create a valid DOM. Because this takes O(N^2) time in some cases, http://trac.webkit.org/changeset/53790 added an iteration limit of 5 to this algorithm to avoid hangs. This limit is too low for neopets, but a limit of 7 is sufficient. This raises the limit to 10 to have a bit of breathing room. HTML5 defines the fixup algorithm http://www.whatwg.org/specs/web-apps/current-work/#adoptionAgency but doesn't specify any particular iteration limit. * html/LegacyHTMLTreeBuilder.cpp: 2010-06-28 Adam Barth Reviewed by Eric Seidel. The new tree builder needs to call attach() on elements it attaches to the DOM https://bugs.webkit.org/show_bug.cgi?id=41293 Apparently Nodes expect to have their attach() method called when they are attached to the DOM. The new tree builder is happy to oblige. Making this call requires some fancy footwork with RefPtr/PassRefPtr to avoid extra ref churn while keeping each function small. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::insertHTMLStartTagBeforeHTML): (WebCore::HTMLTreeBuilder::processCharacter): (WebCore::HTMLTreeBuilder::insertDoctype): (WebCore::HTMLTreeBuilder::insertComment): (WebCore::HTMLTreeBuilder::insertCommentOnDocument): (WebCore::HTMLTreeBuilder::insertElement): (WebCore::HTMLTreeBuilder::insertSelfClosingElement): (WebCore::HTMLTreeBuilder::insertScriptElement): * html/HTMLTreeBuilder.h: (WebCore::HTMLTreeBuilder::attach): 2010-06-28 Xan Lopez Fix distcheck. * GNUmakefile.am: 2010-06-28 Kenneth Russell Reviewed by Dimitri Glazkov. Index validation caches buffer size information too aggressively https://bugs.webkit.org/show_bug.cgi?id=41092 Test: fast/canvas/webgl/index-validation-with-resized-buffer.html * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::validateRenderingState): - Compute the number of valid elements each time based on the latched buffer. (WebCore::WebGLRenderingContext::vertexAttribPointer): - Do not cache the buffer size, only the attributes used to compute the number of required elements. * html/canvas/WebGLRenderingContext.h: (WebCore::WebGLRenderingContext::VertexAttribState::VertexAttribState): - Ditto. 2010-06-28 Andreas Kling Reviewed by Simon Hausmann. [Qt] Replace single treat-as-space characters with normal space https://bugs.webkit.org/show_bug.cgi?id=41278 This keeps Qt from attempting glyph substitution and loading a bunch of extra fonts when encountering   entities. * platform/graphics/qt/FontQt.cpp: (WebCore::Font::floatWidthForComplexText): 2010-06-28 Robin Cao Reviewed by Dan Bernstein. canvas fillText with @font-face crashes https://bugs.webkit.org/show_bug.cgi?id=35486 The font object in CanvasRenderingContext2D may become invalid at some point. Override recalcStyle() in HTMLCanvasElement, and update the font object from there if needed. A test already exists: canvas/philip/tests/2d.text.draw.fontface.repeat.html * html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::recalcStyle): * html/HTMLCanvasElement.h: * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::updateFont): * html/canvas/CanvasRenderingContext2D.h: 2010-06-28 Lucas De Marchi Unreviewed build fix. [EFL] Build fix for latest version of Ecore library. Ecore recently changed return type of callbacks from int to Eina_Bool. No new functionality, so no new tests. * platform/efl/SharedTimerEfl.cpp: (WebCore::timerEvent): Return Eina_Bool instead of int. 2010-06-28 Xan Lopez Fix build with GTK+ older than 2.18 * platform/gtk/ScrollViewGtk.cpp: (WebCore::ScrollView::visibleContentRect): 2010-06-28 Xan Lopez Reviewed by Adam Barth. [GTK] Push NULL context on every DOM bindings entry point https://bugs.webkit.org/show_bug.cgi?id=39967 Update GObject DOM bindings to push the NULL context on every API entry point, and update bindings test results. * bindings/scripts/CodeGeneratorGObject.pm: * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp: * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp: * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: 2010-06-28 Martin Robinson Reviewed by Adam Roben. [WinCairo] Text box backgrounds do not render in partially opaque layers https://bugs.webkit.org/show_bug.cgi?id=41113 Tests: manual-tests/partially-opaque-text-input.html * platform/graphics/win/GraphicsContextCairoWin.cpp: (WebCore::GraphicsContext::releaseWindowsContext): When restoring a context which does not support alpha blending, manually set the alpha channel of the HBITMAP to fully opaque. This will effectively ignore the alpha channel of the HBITMAP, which is necessary because GDI drawing functions set the alpha value to be fully transparent (0). 2010-06-28 Martin Robinson Reviewed by Adam Roben. [WinCairo] Rendering of themed elements on a layer with opacity produces nothing https://bugs.webkit.org/show_bug.cgi?id=41111 Tests: manual-tests/partially-opaque-form-elements.html * platform/graphics/win/GraphicsContextCairoWin.cpp: (WebCore::GraphicsContext::releaseWindowsContext): Preform a cairo_save() and a cairo_restore() around code modifying the transformation matrix of the Cairo surface. Also set the destination coordinates before adjusting the transformation matrix scale, so that the destination coordinates are not scaled as well. 2010-06-28 Sam Magnuson Reviewed by Kenneth Rohde Christiansen. [Qt] GraphicsLayerQt delay seems unnecessary. https://bugs.webkit.org/show_bug.cgi?id=40846 Test: compositing/animation/busy-indicator.html * platform/graphics/qt/GraphicsLayerQt.cpp: (WebCore::GraphicsLayerQtImpl::recache): (WebCore::GraphicsLayerQtImpl::flushChanges): (WebCore::GraphicsLayerQt::setContentsToImage): (WebCore::GraphicsLayerQt::addAnimation): 2010-06-28 Xan Lopez Reviewed by Gustavo Noronha. Until now we were adding the event listeners for a given object in the wrap method, since that's the first moment we have accoss to the core WebCore object. The problem is that we only install the listeners that the topmost class in the class hierarchy needs (eg, HTMLParagrahElement for a P element), when most of the actual event attributes are defined in the base classes (Node, Element, ...). To fix this set the core object as a construct/write-only property on the wrapper GObject, and set the eventlisteners in the cGObject 'construct' method, chaining up through all the class hierarchy until the end. This way we'll get all the eventlisteners defined in all the superclasses of our object, which is what we want. * bindings/gobject/WebKitDOMObject.cpp: (webkit_dom_object_get_property): (webkit_dom_object_set_property): (webkit_dom_object_class_init): * bindings/scripts/CodeGeneratorGObject.pm: * dom/Node.idl: 2010-06-28 Xan Lopez Fix GTK+ build. * platform/gtk/RenderThemeGtk.cpp: 2010-06-28 Xan Lopez Reviewed by Gustavo Noronha. [GTK] Does not compile with -DGSEAL_ENABLE https://bugs.webkit.org/show_bug.cgi?id=37851 Fix build with GSEAL enabled. * GNUmakefile.am: * platform/gtk/GtkVersioning.h: * platform/gtk/RenderThemeGtk.cpp: (WebCore::paintMozillaGtkWidget): (WebCore::RenderThemeGtk::platformActiveSelectionBackgroundColor): (WebCore::RenderThemeGtk::platformInactiveSelectionBackgroundColor): (WebCore::RenderThemeGtk::platformActiveSelectionForegroundColor): (WebCore::RenderThemeGtk::platformInactiveSelectionForegroundColor): (WebCore::RenderThemeGtk::activeListBoxSelectionBackgroundColor): (WebCore::RenderThemeGtk::inactiveListBoxSelectionBackgroundColor): (WebCore::RenderThemeGtk::activeListBoxSelectionForegroundColor): (WebCore::RenderThemeGtk::inactiveListBoxSelectionForegroundColor): (WebCore::RenderThemeGtk::systemColor): * platform/gtk/ScrollViewGtk.cpp: (WebCore::ScrollView::platformRemoveChild): (WebCore::ScrollView::visibleContentRect): * platform/gtk/gtk2drawing.c: (ensure_toggle_button_widget): (ensure_combo_box_widgets): (ensure_combo_box_entry_widgets): (ensure_tree_header_cell_widget): (moz_gtk_button_paint): (moz_gtk_toggle_paint): (calculate_button_inner_rect): (calculate_arrow_rect): (moz_gtk_scrollbar_button_paint): (moz_gtk_scrollbar_trough_paint): (moz_gtk_scrollbar_thumb_paint): (moz_gtk_spin_paint): (moz_gtk_spin_updown_paint): (moz_gtk_scale_paint): (moz_gtk_scale_thumb_paint): (moz_gtk_gripper_paint): (moz_gtk_hpaned_paint): (moz_gtk_vpaned_paint): (moz_gtk_entry_paint): (moz_gtk_treeview_paint): (moz_gtk_tree_header_sort_arrow_paint): (moz_gtk_treeview_expander_paint): (moz_gtk_expander_paint): (moz_gtk_combo_box_paint): (moz_gtk_downarrow_paint): (moz_gtk_combo_box_entry_button_paint): (moz_gtk_container_paint): (moz_gtk_toggle_label_paint): (moz_gtk_toolbar_paint): (moz_gtk_toolbar_separator_paint): (moz_gtk_tooltip_paint): (moz_gtk_resizer_paint): (moz_gtk_frame_paint): (moz_gtk_progressbar_paint): (moz_gtk_progress_chunk_paint): (moz_gtk_get_tab_thickness): (moz_gtk_tab_paint): (moz_gtk_tabpanels_paint): (moz_gtk_tab_scroll_arrow_paint): (moz_gtk_menu_bar_paint): (moz_gtk_menu_popup_paint): (moz_gtk_menu_separator_paint): (moz_gtk_menu_item_paint): (moz_gtk_menu_arrow_paint): 2010-06-28 Xan Lopez Reviewed by Gustavo Noronha. [GTK] Add support for GTK+3 https://bugs.webkit.org/show_bug.cgi?id=41253 Adapt build system for 3.x support. * GNUmakefile.am: 2010-06-28 Yury Semikhatsky Reviewed by Pavel Feldman. [v8] Web Inspector: properties of scope variables are flattened while on a breakpoint. https://bugs.webkit.org/show_bug.cgi?id=41214 Test: inspector/debugger-proto-property.html * inspector/front-end/InjectedScript.js: (injectedScriptConstructor): object proxy with non-empty path cannot be scope proxy. 2010-06-28 MORITA Hajime Unreviewed attempt to fix windows build. * page/DOMWindow.idl: 2010-06-22 MORITA Hajime Reviewed by Kent Tamura. should be styled with -webkit-progress-bar-value https://bugs.webkit.org/show_bug.cgi?id=40823 Fixed to peek styles of the shadow node pseudo class to fallback to non-styled painting. * css/html.css: (progress): Added defaul background-color. (progress::-webkit-progress-bar-value): Added defaul background-color. * rendering/RenderProgress.cpp: (WebCore::RenderProgress::shouldHaveParts): (WebCore::RenderProgress::updatePartsState): Test: fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element.html 2010-06-28 Csaba Osztrogonác Reviewed by Kent Tamura. GCC suggest parentheses around && within || https://bugs.webkit.org/show_bug.cgi?id=41245 * rendering/RenderBlock.cpp: (WebCore::RenderBlock::paintChildren): 2010-06-28 Adam Barth Reviewed by Eric Seidel. Don't dump contents of * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::constructTreeFromToken): (WebCore::HTMLTreeBuilder::insertHTMLStartTagBeforeHTML): (WebCore::HTMLTreeBuilder::insertScriptElement): (WebCore::HTMLTreeBuilder::createElement): 2010-06-28 Eric Seidel Reviewed by Darin Adler. Add a new baseclass for XML, HTML and Text DocumentParsers to clean up DocumentParser call sites https://bugs.webkit.org/show_bug.cgi?id=41141 By splitting ScriptableDocumentParser and DecodedDataDocumentParser out from DocumentParser we've made the DocumentParser and RawDataDocumentParser classes simpler. No functional change, thus no tests. * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/ScriptController.cpp: (WebCore::ScriptController::eventHandlerLineNumber): * css/CSSStyleSheet.cpp: (WebCore::CSSStyleSheet::checkLoaded): * dom/Document.cpp: (WebCore::Document::scriptableDocumentParser): (WebCore::Document::open): (WebCore::Document::implicitOpen): (WebCore::Document::implicitClose): (WebCore::Document::removePendingSheet): * dom/Document.h: (WebCore::Document::parser): * dom/DocumentParser.cpp: (WebCore::DocumentParser::DocumentParser): * dom/DocumentParser.h: (WebCore::DocumentParser::asScriptableDocumentParser): * dom/RawDataDocumentParser.h: (WebCore::RawDataDocumentParser::finishWasCalled): * dom/ScriptableDocumentParser.cpp: Copied from WebCore/html/HTMLEntityParser.h. (WebCore::ScriptableDocumentParser::ScriptableDocumentParser): * dom/ScriptableDocumentParser.h: Added. (WebCore::ScriptableDocumentParser::isExecutingScript): (WebCore::ScriptableDocumentParser::executeScriptsWaitingForStylesheets): (WebCore::ScriptableDocumentParser::xssAuditor): (WebCore::ScriptableDocumentParser::setXSSAuditor): (WebCore::ScriptableDocumentParser::processingContentWrittenByScript): (WebCore::ScriptableDocumentParser::asScriptableDocumentParser): * dom/ViewportArguments.cpp: (WebCore::parserLineNumber): (WebCore::reportViewportWarning): * dom/XMLDocumentParser.h: * dom/XMLDocumentParserLibxml2.cpp: (WebCore::XMLDocumentParser::XMLDocumentParser): * html/HTMLDocumentParser.cpp: (WebCore::HTMLDocumentParser::HTMLDocumentParser): (WebCore::HTMLDocumentParser::shouldLoadExternalScriptFromSrc): * html/HTMLDocumentParser.h: * html/LegacyHTMLDocumentParser.cpp: (WebCore::LegacyHTMLDocumentParser::LegacyHTMLDocumentParser): (WebCore::LegacyHTMLDocumentParser::parseTag): * html/LegacyHTMLDocumentParser.h: (WebCore::LegacyHTMLDocumentParser::processingContentWrittenByScript): * html/LegacyHTMLTreeBuilder.cpp: (WebCore::LegacyHTMLTreeBuilder::reportErrorToConsole): * loader/DocumentLoader.cpp: * loader/DocumentWriter.cpp: * loader/TextDocument.cpp: (WebCore::TextDocumentParser::TextDocumentParser): (WebCore::TextDocumentParser::finish): * svg/SVGDocumentExtensions.cpp: (WebCore::parserLineNumber): (WebCore::reportMessage): (WebCore::SVGDocumentExtensions::reportWarning): (WebCore::SVGDocumentExtensions::reportError): 2010-06-27 Steve Falkenburg Reviewed by Mark Rowe. WebKit2 build exceeds address space on 32-bit Windows builders https://bugs.webkit.org/show_bug.cgi?id=41270 Add all-in-one file for render-related SVG files. Clean up other all-in-one files by adding missing files, excluding matching files from the vcproj. Reduces release WebCore.lib size by 10% (160MB). * DerivedSources.cpp: * WebCore.vcproj/WebCore.vcproj: * bindings/js/JSBindingsAllInOne.cpp: * html/HTMLElementsAllInOne.cpp: * rendering/RenderSVGAllInOne.cpp: Added. 2010-06-27 Adam Barth Reviewed by Eric Seidel. Sketch out the InBodyMode for the tree builder https://bugs.webkit.org/show_bug.cgi?id=41271 This gives us some basic behavior for the InBodyMode. I've implemented some of the easier logic. The more complicated logic will be in subsequent patches. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processStartTag): (WebCore::HTMLTreeBuilder::processEndTag): (WebCore::HTMLTreeBuilder::insertFormatingElement): (WebCore::HTMLTreeBuilder::reconstructTheActiveFormattingElements): * html/HTMLTreeBuilder.h: 2010-06-25 Yuzo Fujishima Reviewed by Shinichiro Hamaji. Improve default value handling for page format properties. Default page size and orientation have been hard-coded. Instead, pass default page size and margins to WebCore::Document::pageSizeAndMarginsInPixels to handle auto page size and margins specified as percentages. Return margins instead of page rect. https://bugs.webkit.org/show_bug.cgi?id=41150 * WebCore.base.exp: * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyPageSizeProperty): (WebCore::CSSStyleSelector::pageSizeFromName): * css/html.css: (@page): * dom/Document.cpp: (WebCore::Document::pageSizeAndMarginsInPixels): * dom/Document.h: * page/PrintContext.cpp: (WebCore::PrintContext::pageProperty): (WebCore::PrintContext::pageSizeAndMarginsInPixels): * page/PrintContext.h: * rendering/style/RenderStyle.h: (WebCore::InheritedFlags::pageSizeType): (WebCore::InheritedFlags::setPageSizeType): (WebCore::InheritedFlags::resetPageSizeType): * rendering/style/StyleRareNonInheritedData.cpp: (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): (WebCore::StyleRareNonInheritedData::operator==): * rendering/style/StyleRareNonInheritedData.h: (WebCore::): 2010-06-27 Adam Barth Reviewed by Eric Seidel. Clean up some loose ends in HTML5 tree builder https://bugs.webkit.org/show_bug.cgi?id=41265 This patch cleans up a few loose ends in HTML5 tree builder. Technically, we could do each of these as individual patches, but that didn't seem worth while. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processStartTag): - Add missing break before default case statement. I don't think this change is observable. (WebCore::HTMLTreeBuilder::processComment): - Originally I thought that comments had special processing in the InHeadNoscriptMode, but it turns out that when you unwind the definitions, it amounts to exactly the same thing. (WebCore::HTMLTreeBuilder::processEndOfFile): - Add missing break before default case statement. I don't think this change is observable. (WebCore::HTMLTreeBuilder::insertComment): - Eliminate one unnecessary ref/deref pair. (WebCore::HTMLTreeBuilder::insertSelfClosingElement): - When we insert self-closing elements, there's no reason to push them onto the stack of open elements just to pop them off again. This change saves a malloc/free pair as well as a ref/deref pair. Go team. * html/HTMLTreeBuilder.h: - Remove unused function. 2010-06-27 Adam Barth Reviewed by Eric Seidel. Implement remaining StartTag processing for InHeadNoscriptMode https://bugs.webkit.org/show_bug.cgi?id=41264 The InHeadNoscriptMode processes some start tags "as if" the tree builder were in the InHeadMode. This is an idiom we'll see more of later. My approach is this patch is to factor all the logic for processing start tags in the InHeadMode into a separate function that can be called from both locations. This seems cleaner than just splitting out the parts that are actually used by both modes. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processStartTag): (WebCore::HTMLTreeBuilder::processStartTagForInHead): (WebCore::HTMLTreeBuilder::insertSelfClosingElement): * html/HTMLTreeBuilder.h: 2010-06-27 Adam Barth Reviewed by Eric Seidel. Add support for and <style> elements https://bugs.webkit.org/show_bug.cgi?id=41263 These elements use the generic RCDATA and RawText algorithms, respectively. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processEndTag): (WebCore::HTMLTreeBuilder::insertGenericRCDATAElement): (WebCore::HTMLTreeBuilder::insertGenericRawTextElement): 2010-06-27 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Actually insert Doctype elements https://bugs.webkit.org/show_bug.cgi?id=41262 This code is pretty much the same as in the old tree builder. * html/HTMLToken.h: (WebCore::AtomicHTMLToken::publicIdentifier): (WebCore::AtomicHTMLToken::systemIdentifier): * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::insertDoctype): 2010-06-27 Andreas Kling <andreas.kling@nokia.com> Reviewed by Darin Adler. Canvas: Ignore calls to drawImage() with non-finite parameters https://bugs.webkit.org/show_bug.cgi?id=38929 This also fixes a Qt assert when using the raster graphics system. Spec link: http://www.whatwg.org/specs/web-apps/current-work/#2dcontext * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::drawImage): 2010-06-27 Andreas Kling <andreas.kling@nokia.com> Reviewed by Kenneth Rohde Christiansen. editing/execCommand/copy-without-selection.html fails on Qt after r61637 https://bugs.webkit.org/show_bug.cgi?id=41025 The problem was that when getting data back via Clipboard::getData(), the String::String(const char*, int) constructor was called with UTF-16 data. The solution is to use QMimeData's text() and setText() for "text/plain". setText() which makes sure Qt passes the string in proper format to the system clipboard. (The previous implementation would convert it to UTF-8) text() makes sure that the correct encoding is used (UTF-16) and that we get back whatever we originally put in there. * platform/qt/ClipboardQt.cpp: (WebCore::isTextMimeType): (WebCore::ClipboardQt::getData): (WebCore::ClipboardQt::setData): 2010-06-27 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. HTML5 tree builder should be able to execute inline scripts https://bugs.webkit.org/show_bug.cgi?id=41257 This patch implements enough machinery so that we can execute inline scripts in extremely simple documents such as the following: <html> <script> alert(1); </script> To get this to work, I had to flesh out a surprising amount of the data structures for processing the <head>. No tests because this is already covered by most LayoutTests. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::HTMLTreeBuilder): (WebCore::HTMLTreeBuilder::constructTreeFromToken): (WebCore::HTMLTreeBuilder::processStartTag): (WebCore::HTMLTreeBuilder::processEndTag): (WebCore::HTMLTreeBuilder::processCharacter): (WebCore::HTMLTreeBuilder::insertComment): (WebCore::HTMLTreeBuilder::insertElement): (WebCore::HTMLTreeBuilder::insertScriptElement): * html/HTMLTreeBuilder.h: (WebCore::HTMLTreeBuilder::ElementRecord::ElementRecord): (WebCore::HTMLTreeBuilder::ElementRecord::element): (WebCore::HTMLTreeBuilder::ElementRecord::next): (WebCore::HTMLTreeBuilder::ElementRecord::releaseNext): (WebCore::HTMLTreeBuilder::ElementRecord::setNext): (WebCore::HTMLTreeBuilder::ElementStack::pop): (WebCore::HTMLTreeBuilder::ElementStack::push): (WebCore::HTMLTreeBuilder::ElementStack::top): (WebCore::HTMLTreeBuilder::ElementStack::remove): (WebCore::HTMLTreeBuilder::currentElement): 2010-06-26 Brady Eidson <beidson@apple.com> Reviewed by Darin Adler. beforeProcess event needs to fire before inline scripts/stylesheets take effect <rdar://problem/8084335> and https://bugs.webkit.org/show_bug.cgi?id=40484 This patch adds the Event, the onBeforeProcess attribute, and hooks the attribute up in a few places. Besides that, no change in behavior. Layout tests will come with the actual implementations as a followup to this patch. Project file nonsense: * DerivedSources.make: * GNUmakefile.am: * WebCore.gypi: * WebCore.pri: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: Scaffolding for the event itself: * dom/BeforeProcessEvent.cpp: Added. (WebCore::BeforeProcessEvent::text): (WebCore::BeforeProcessEvent::setText): * dom/BeforeProcessEvent.h: Added. (WebCore::BeforeProcessEvent::create): (WebCore::BeforeProcessEvent::initBeforeProcessEvent): (WebCore::BeforeProcessEvent::BeforeProcessEvent): * dom/BeforeProcessEvent.idl: Added. * dom/EventNames.h: Respect the onBeforeProcess attribute: * dom/Document.cpp: (WebCore::Document::addListenerTypeIfNeeded): * dom/Document.h: (WebCore::Document::): * html/HTMLAttributeNames.in: * html/HTMLScriptElement.cpp: (WebCore::HTMLScriptElement::parseMappedAttribute): * html/HTMLStyleElement.cpp: (WebCore::HTMLStyleElement::parseMappedAttribute): 2010-06-26 Darin Adler <darin@apple.com> Try to fix Chromium build by adding back function used only by Chromium WebKit. * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultChecked): Added back. * html/HTMLInputElement.h: Added defaultChecked function. * html/HTMLMetaElement.cpp: (WebCore::HTMLMetaElement::httpEquiv): Added back. * html/HTMLMetaElement.h: Added httpEquiv function. * html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::defaultSelected): Added back. * html/HTMLOptionElement.h: Added defaultSelected function. * rendering/style/StyleRareNonInheritedData.h: Fixed incorrect struct vs. class here as seen in warnings on Chromium Windows bot. 2010-06-26 Darin Adler <darin@apple.com> Try to fix Windows build by adding back function used only by Windows WebKit. * html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::label): Added back. * html/HTMLOptionElement.h: Added label function. 2010-06-26 Darin Adler <darin@apple.com> Try to fix Qt build by adding back function used only by Qt WebKit. * html/HTMLMetaElement.cpp: (WebCore::HTMLMetaElement::content): Added back. * html/HTMLMetaElement.h: Added content function. 2010-06-26 Darin Adler <darin@apple.com> * html/HTMLFormElement.h: Removed stray character that got in here before landing. 2010-06-26 Darin Adler <darin@apple.com> Reviewed by Sam Weinig. Add more use of reflection, remove unused functions https://bugs.webkit.org/show_bug.cgi?id=41255 Also noticed that HTMLDirectoryElement was missing its create function and added that so the element will get the correct class. * html/HTMLBaseFontElement.idl: Use reflection for the size attribute in the Objective-C code path too. * html/HTMLSelectElement.idl: Use reflection for disabled and autofocus attributes. Also removed spaces and indenting to match other IDL files. * html/HTMLStyleElement.idl: Use reflection for disabled attribute. * html/HTMLTableCellElement.idl: Use reflection for noWrap attribute. * html/HTMLTextAreaElement.idl: Use reflection for disabled, autofocus, readOnly, and required attributes. * html/HTMLUListElement.idl: Use reflection for compact attribute. * html/HTMLDirectoryElement.cpp: (WebCore::HTMLDirectoryElement::HTMLDirectoryElement): Made inline. (WebCore::HTMLDirectoryElement::create): Added. * html/HTMLDirectoryElement.h: Added create, made constructor private, removed unused functions. * html/HTMLStyleElement.cpp: (WebCore::HTMLStyleElement::parseMappedAttribute): Removed code to set unused m_media data member. * html/HTMLStyleElement.h: Removed unused functions and m_media data member. Also made some functions private. * html/HTMLAppletElement.cpp: * html/HTMLAppletElement.h: * html/HTMLAreaElement.cpp: * html/HTMLAreaElement.h: * html/HTMLBaseFontElement.cpp: * html/HTMLBaseFontElement.h: * html/HTMLButtonElement.cpp: * html/HTMLButtonElement.h: * html/HTMLDListElement.cpp: * html/HTMLDListElement.h: * html/HTMLDivElement.cpp: * html/HTMLDivElement.h: * html/HTMLFontElement.cpp: * html/HTMLFontElement.h: * html/HTMLFormControlElement.cpp: * html/HTMLFormControlElement.h: * html/HTMLFormElement.cpp: * html/HTMLFormElement.h: * html/HTMLFrameElement.cpp: Also removed an incorrect FIXME comment here after I did a little research to disprove it. * html/HTMLFrameElement.h: * html/HTMLFrameSetElement.cpp: * html/HTMLFrameSetElement.h: * html/HTMLHRElement.cpp: * html/HTMLHRElement.h: * html/HTMLHeadElement.cpp: * html/HTMLHeadElement.h: * html/HTMLHeadingElement.cpp: * html/HTMLHeadingElement.h: * html/HTMLHtmlElement.cpp: * html/HTMLHtmlElement.h: * html/HTMLImageElement.cpp: * html/HTMLImageElement.h: * html/HTMLInputElement.cpp: * html/HTMLInputElement.h: * html/HTMLIsIndexElement.cpp: * html/HTMLIsIndexElement.h: * html/HTMLLIElement.cpp: * html/HTMLLIElement.h: * html/HTMLLabelElement.cpp: * html/HTMLLabelElement.h: * html/HTMLLegendElement.cpp: * html/HTMLLegendElement.h: * html/HTMLLinkElement.cpp: * html/HTMLLinkElement.h: * html/HTMLMapElement.cpp: * html/HTMLMapElement.h: * html/HTMLMenuElement.cpp: * html/HTMLMenuElement.h: * html/HTMLMetaElement.cpp: * html/HTMLMetaElement.h: * html/HTMLModElement.cpp: * html/HTMLModElement.h: * html/HTMLOListElement.cpp: * html/HTMLOListElement.h: * html/HTMLObjectElement.cpp: * html/HTMLObjectElement.h: * html/HTMLOptGroupElement.cpp: * html/HTMLOptGroupElement.h: * html/HTMLOptionElement.cpp: * html/HTMLOptionElement.h: * html/HTMLParagraphElement.cpp: * html/HTMLParagraphElement.h: * html/HTMLParamElement.cpp: * html/HTMLParamElement.h: * html/HTMLPlugInElement.cpp: * html/HTMLPlugInElement.h: * html/HTMLPreElement.cpp: * html/HTMLPreElement.h: * html/HTMLQuoteElement.cpp: * html/HTMLQuoteElement.h: * html/HTMLScriptElement.cpp: * html/HTMLScriptElement.h: * html/HTMLTableCaptionElement.cpp: * html/HTMLTableCaptionElement.h: * html/HTMLTableCellElement.cpp: * html/HTMLTableCellElement.h: * html/HTMLTableColElement.cpp: * html/HTMLTableColElement.h: * html/HTMLTableElement.cpp: * html/HTMLTableElement.h: * html/HTMLTableRowElement.cpp: * html/HTMLTableRowElement.h: * html/HTMLTextAreaElement.cpp: * html/HTMLTextAreaElement.h: * html/HTMLUListElement.cpp: * html/HTMLUListElement.h: * html/HTMLVideoElement.cpp: * html/HTMLVideoElement.h: Removed unused functions. 2010-06-26 Tony Gentilcore <tonyg@chromium.org> Reviewed by Adam Barth. Exclude line numbers for sources which are not from the network. https://bugs.webkit.org/show_bug.cgi?id=41060 * html/HTMLDocumentParser.cpp: (WebCore::HTMLDocumentParser::write): 2010-06-25 Antonio Gomes <tonikitoo@webkit.org> Unreviewed complementary fix for r61818. It added StaticHashSetListNode.cpp|h to the system, but did not added it to chromium build system. * WebCore.gypi: 2010-06-26 Pavel Feldman <pfeldman@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: ScripsPanel.prototype.editScriptSource uses old addBreakpoint signature. https://bugs.webkit.org/show_bug.cgi?id=41247 * inspector/front-end/BreakpointManager.js: (WebInspector.BreakpointManager.prototype.removeBreakpoint): (WebInspector.Breakpoint.prototype.set enabled): (WebInspector.Breakpoint.prototype.set condition): * inspector/front-end/Object.js: (WebInspector.Object.prototype.addEventListener): (WebInspector.Object.prototype.removeEventListener): (WebInspector.Object.prototype.removeAllListeners): * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype.editScriptSource.mycallback): (WebInspector.ScriptsPanel.prototype.editScriptSource): 2010-06-26 Tony Gentilcore <tonyg@chromium.org> Reviewed by Dimitri Glazkov. Add a guarded window.performance.timing binding which is disabled by default. https://bugs.webkit.org/show_bug.cgi?id=38924 This is where Web Timing support will be implemented. Web Timing is a draft spec for exposing load times to web pages. It will be enabled once the spec and implementaiton are solidified. See: http://dev.w3.org/2006/webapi/WebTiming/ No new tests because guarded behind a #DEFINE. Will add tests as functionality is landed. * Android.mk: * CMakeLists.txt: * Configurations/FeatureDefines.xcconfig: * DerivedSources.cpp: * DerivedSources.make: * GNUmakefile.am: * WebCore.gypi: * WebCore.pri: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * page/DOMWindow.cpp: (WebCore::DOMWindow::clear): (WebCore::DOMWindow::performance): * page/DOMWindow.h: (WebCore::DOMWindow::optionalPerformance): * page/DOMWindow.idl: * page/NavigationTiming.cpp: Added. (WebCore::NavigationTiming::NavigationTiming): (WebCore::NavigationTiming::frame): (WebCore::NavigationTiming::disconnectFrame): (WebCore::NavigationTiming::navigationStart): * page/NavigationTiming.h: Added. (WebCore::NavigationTiming::create): * page/NavigationTiming.idl: Added. * page/Performance.cpp: Added. (WebCore::Performance::Performance): (WebCore::Performance::frame): (WebCore::Performance::disconnectFrame): (WebCore::Performance::timing): * page/Performance.h: Added. (WebCore::Performance::create): * page/Performance.idl: Added. 2010-06-25 Zhenyao Mo <zmo@google.com> Reviewed by Dimitri Glazkov. activeTexture wrongly generates error with legal input. https://bugs.webkit.org/show_bug.cgi?id=41227 Test: fast/canvas/webgl/texture-active-bind.html * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::activeTexture): Fix the upper limit test for test units. 2010-06-25 Johnny Ding <jnd@chromium.org> Reviewed by Adam Barth. https://bugs.webkit.org/show_bug.cgi?id=41061 Make sure Chromium's ScriptController::processingUserGesture follows the JSC's behavior. Set right value in UserGestureIndicator when handling events in PopupMenuList in chromium. Test: fast/events/popup-when-select-change.html * bindings/v8/ScriptController.cpp: (WebCore::ScriptController::processingUserGesture): * platform/chromium/PopupMenuChromium.cpp: (WebCore::PopupContainer::handleMouseDownEvent): (WebCore::PopupContainer::handleMouseMoveEvent): (WebCore::PopupContainer::handleMouseReleaseEvent): (WebCore::PopupContainer::handleWheelEvent): (WebCore::PopupContainer::handleKeyEvent): 2010-06-25 Tony Gentilcore <tonyg@chromium.org> Reviewed by Eric Seidel. Make PendingScript hold a CachedResourceClient open for its lifetime https://bugs.webkit.org/show_bug.cgi?id=40968 This replaces the mechanism introduced in r61374 with a simpler appraoch for preventing unexpected purges: always keep a client open. This approach will allow deferred scripts to add a client after the resource may have already been loaded without having to worry about the buffer being purged in the meantime. No new tests because making a CachedResource purse itself is not testable from a LayoutTest. * html/HTMLDocumentParser.cpp: (WebCore::HTMLDocumentParser::watchForLoad): (WebCore::HTMLDocumentParser::notifyFinished): * html/HTMLScriptRunner.cpp: (WebCore::HTMLScriptRunner::~HTMLScriptRunner): (WebCore::HTMLScriptRunner::sourceFromPendingScript): (WebCore::HTMLScriptRunner::isPendingScriptReady): (WebCore::HTMLScriptRunner::executePendingScript): (WebCore::HTMLScriptRunner::watchForLoad): (WebCore::HTMLScriptRunner::stopWatchingForLoad): (WebCore::HTMLScriptRunner::executeScriptsWaitingForLoad): (WebCore::HTMLScriptRunner::requestScript): (WebCore::HTMLScriptRunner::PendingScript::~PendingScript): (WebCore::HTMLScriptRunner::PendingScript::releaseElementAndClear): (WebCore::HTMLScriptRunner::PendingScript::setCachedScript): (WebCore::HTMLScriptRunner::PendingScript::cachedScript): * html/HTMLScriptRunner.h: (WebCore::HTMLScriptRunner::PendingScript::PendingScript): (WebCore::HTMLScriptRunner::PendingScript::watchingForLoad): (WebCore::HTMLScriptRunner::PendingScript::setWatchingForLoad): (WebCore::HTMLScriptRunner::PendingScript::notifyFinished): * html/HTMLScriptRunnerHost.h: 2010-06-25 Zhenyao Mo <zmo@google.com> Reviewed by Dimitri Glazkov. getUniform will not work for fetching uniform array elements https://bugs.webkit.org/show_bug.cgi?id=34508 Test: fast/canvas/webgl/gl-uniform-arrays.html * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::attachShader): Generate correct errors. (WebCore::WebGLRenderingContext::getUniform): Dealing with array elements. (WebCore::WebGLRenderingContext::useProgram): Deal with program==null. (WebCore::WebGLRenderingContext::validateProgram): Generate correct errors. * platform/graphics/mac/GraphicsContext3DMac.mm: (WebCore::GraphicsContext3D::useProgram): Deal with program==null. 2010-06-25 Zhenyao Mo <zmo@google.com> Reviewed by Dimitri Glazkov. Bring set/get state functions to GLES2 conformance https://bugs.webkit.org/show_bug.cgi?id=41095 Tests: fast/canvas/webgl/gl-enable-enum-test.html fast/canvas/webgl/gl-enum-tests.html * html/canvas/WebGLRenderingContext.cpp: Check input parameters according to GLES2 spec. (WebCore::WebGLRenderingContext::blendEquation): (WebCore::WebGLRenderingContext::blendEquationSeparate): (WebCore::WebGLRenderingContext::disable): (WebCore::WebGLRenderingContext::enable): (WebCore::WebGLRenderingContext::hint): (WebCore::WebGLRenderingContext::isEnabled): (WebCore::WebGLRenderingContext::pixelStorei): (WebCore::WebGLRenderingContext::validateBlendEquation): (WebCore::WebGLRenderingContext::validateCapability): * html/canvas/WebGLRenderingContext.h: Add helper function declaration. 2010-06-25 Sterling Swigart <sswigart@google.com> Reviewed by David Levin. Callback code generation fixed so that now string parameters are converted to JSString using the jsString method instead of the toJS method which would not compile. https://bugs.webkit.org/show_bug.cgi?id=41119 * bindings/scripts/CodeGeneratorJS.pm: Now generates jsString for String parameters in callbacks. * bindings/scripts/test/JS/JSTestCallback.cpp: Fixed test for above. (WebCore::JSTestCallback::callbackWithClass2Param): Ditto. 2010-06-25 Zhenyao Mo <zmo@google.com> Reviewed by Dimitri Glazkov. A buffer should be bound to one target in its lifetime https://bugs.webkit.org/show_bug.cgi?id=41108 Test: fast/canvas/webgl/buffer-bind-test.html * html/canvas/WebGLBuffer.cpp: (WebCore::WebGLBuffer::WebGLBuffer): Init target to 0. (WebCore::WebGLBuffer::associateBufferData): Remove target parameter, use one byteLength member. (WebCore::WebGLBuffer::associateBufferSubData): Ditto. (WebCore::WebGLBuffer::byteLength): Ditto. (WebCore::WebGLBuffer::setTarget): Set target. * html/canvas/WebGLBuffer.h: Cache target in the WebGLBuffer object, use one byteLength member. (WebCore::WebGLBuffer::getTarget): * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::bindBuffer): Check if a buffer is bound to another target; set buffer object internal target. (WebCore::WebGLRenderingContext::bufferData): Remove target parameter and use the WebGLBuffer cached target instead. (WebCore::WebGLRenderingContext::bufferSubData): Ditto. (WebCore::WebGLRenderingContext::validateElementArraySize): Ditto. (WebCore::WebGLRenderingContext::validateIndexArrayConservative): Ditto. (WebCore::WebGLRenderingContext::vertexAttribPointer): Ditto. 2010-06-25 Dean Jackson <dino@apple.com> Reviewed by Simon Fraser. https://bugs.webkit.org/show_bug.cgi?id=41188 Animations should not require 0% and 100% keyframes When we are generating the animation lists in CSSStyleSelector, rather than bail if we notice that "from" or "to" are missing, we now generate synthetic keyframes for those cases. Tests: animations/missing-from-to-transforms.html animations/missing-from-to.html WebCore/manual-tests/animation-with-transition.html * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::styleForKeyframe): Moved individual keyframe generation into a new function. (WebCore::CSSStyleSelector::keyframeStylesForAnimation): Call the new function above for regular keyframes, and also check for missing keyframes and generate them if necessary. * css/CSSStyleSelector.h: 2010-06-25 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. We should parse <html> https://bugs.webkit.org/show_bug.cgi?id=41239 This patch is hard to test, but I think this patch lets us parse a document consisting of only an <html> start tag. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::constructTreeFromToken): (WebCore::HTMLTreeBuilder::insertHTMLStartTagBeforeHTML): (WebCore::HTMLTreeBuilder::insertHTMLStartTagInBody): (WebCore::HTMLTreeBuilder::processStartTag): (WebCore::HTMLTreeBuilder::processDefaultForBeforeHTMLMode): * html/HTMLTreeBuilder.h: (WebCore::HTMLTreeBuilder::ElementStack::push): 2010-06-25 Dan Bernstein <mitz@apple.com> Reviewed by Sam Weinig. <rdar://problem/8000667> Certain text is repeated before and after a line break Test: fast/text/bidi-explicit-embedding-past-end.html * platform/text/BidiResolver.h: (WebCore::::createBidiRunsForLine): Committing explicit embedding past the end of the range creates BidiRuns up to the end of the range, so at that point, we can stop iterating. 2010-06-25 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. Move decoding into DocumentParser to further simplify RawDataDocumentParser and DocumentWriter https://bugs.webkit.org/show_bug.cgi?id=41202 Hit the Windoze with the compile bat. * WebCore.vcproj/WebCore.vcproj: 2010-06-25 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. HTMLTreeBuilder should branch first on token type and then on insertion mode https://bugs.webkit.org/show_bug.cgi?id=41232 This is different than how the spec is written, but it lets us remove a lot of redudancy in the algorithm. We might even want to pull some of the branches on token name outside the insertion mode branch, but I'll leave that for a future patch. Although this looks like a big patch, it's mostly just a mechanical switch permutation. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::constructTreeFromToken): (WebCore::HTMLTreeBuilder::processToken): (WebCore::HTMLTreeBuilder::processDoctypeToken): (WebCore::HTMLTreeBuilder::processStartTag): (WebCore::HTMLTreeBuilder::processEndTag): (WebCore::HTMLTreeBuilder::processComment): (WebCore::HTMLTreeBuilder::processCharacter): (WebCore::HTMLTreeBuilder::processEndOfFile): (WebCore::HTMLTreeBuilder::processDefaultForInitialMode): (WebCore::HTMLTreeBuilder::processDefaultForBeforeHTMLMode): (WebCore::HTMLTreeBuilder::processDefaultForBeforeHeadMode): (WebCore::HTMLTreeBuilder::processDefaultForInHeadMode): (WebCore::HTMLTreeBuilder::processDefaultForInHeadNoscriptMode): (WebCore::HTMLTreeBuilder::processDefaultForAfterHeadMode): * html/HTMLTreeBuilder.h: 2010-06-25 Adam Barth <abarth@webkit.org> Reviewed by Darin Adler. Tree builder doesn't need to return a Node https://bugs.webkit.org/show_bug.cgi?id=41225 The old tree builder returned the newly inserted Node, but the new tree builder doesn't need to do that as far as I can tell. Removing the return value cuts down on a bunch of accounting. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::passTokenToLegacyParser): (WebCore::HTMLTreeBuilder::constructTreeFromToken): (WebCore::HTMLTreeBuilder::processToken): (WebCore::HTMLTreeBuilder::insertDoctype): (WebCore::HTMLTreeBuilder::insertComment): (WebCore::HTMLTreeBuilder::insertGenericRCDATAElement): (WebCore::HTMLTreeBuilder::insertGenericRawTextElement): (WebCore::HTMLTreeBuilder::insertScriptElement): * html/HTMLTreeBuilder.h: 2010-06-25 Zhenyao Mo <zmo@google.com> Reviewed by Dimitri Glazkov. getParameter(COLOR_WRITEMASK) needs to return Array https://bugs.webkit.org/show_bug.cgi?id=40437 * bindings/js/JSWebGLRenderingContextCustom.cpp: Handling bool array. (WebCore::toJS): * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp: Handling bool array. (WebCore::toV8Object): * html/canvas/WebGLGetInfo.cpp: Handling bool array. (WebCore::WebGLGetInfo::WebGLGetInfo): (WebCore::WebGLGetInfo::getBoolArray): * html/canvas/WebGLGetInfo.h: Handling bool array. (WebCore::WebGLGetInfo::): * html/canvas/WebGLRenderingContext.cpp: Handling bool array. (WebCore::WebGLRenderingContext::getParameter): (WebCore::WebGLRenderingContext::getBooleanArrayParameter): * html/canvas/WebGLRenderingContext.h: Handling bool array. 2010-06-25 Evan Stade <estade@chromium.org> Reviewed by Darin Fisher. [chromium linux] Improve look of scrollbars https://bugs.webkit.org/show_bug.cgi?id=35775 This will affect layout pixel tests, which will need to be rebaselined. * platform/Scrollbar.cpp: need the buttons to be invalidated when the thumb moves as they paint differently if the thumb is at the top or bottom (WebCore::Scrollbar::updateThumbPosition): (WebCore::Scrollbar::updateThumbProportion): * platform/chromium/ScrollbarThemeChromium.cpp: (WebCore::ScrollbarThemeChromium::trackRect): share code between linux/windows * platform/chromium/ScrollbarThemeChromiumLinux.cpp: (WebCore::ScrollbarThemeChromiumLinux::scrollbarThickness): (WebCore::outlineColor): up the contrast (WebCore::ScrollbarThemeChromiumLinux::paintButton): add custom button drawing implementation (WebCore::ScrollbarThemeChromiumLinux::buttonSize): add buttons * platform/chromium/ScrollbarThemeChromiumWin.cpp: share code between linux/windows * rendering/RenderThemeChromiumLinux.cpp: improve stock colors to get better contrast and integration with stock chrome theme 2010-06-25 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. Move decoding into DocumentParser to further simplify RawDataDocumentParser and DocumentWriter https://bugs.webkit.org/show_bug.cgi?id=41202 The silly thing about this patch is that none of the RawDataDocumentParser subclasses actually use any of the data passed to them via appendBytes. This makes the relationship between DocumentWriter and DocumentParser slightly more confusing, however I think this DocumentParser API is slightly nicer. Next step is to split DecodedDataDocumentParser out from DocumentParser, and then the base DocumentParser won't know anything about decoding or SegmentedString. No functional change, thus no tests. * WebCore.xcodeproj/project.pbxproj: * dom/DocumentParser.h: * dom/RawDataDocumentParser.h: * loader/DocumentWriter.cpp: (WebCore::DocumentWriter::replaceDocument): (WebCore::DocumentWriter::createDecoderIfNeeded): (WebCore::DocumentWriter::reportDataRecieved): (WebCore::DocumentWriter::addData): * loader/DocumentWriter.h: * loader/ImageDocument.cpp: (WebCore::ImageDocumentParser::appendBytes): * loader/MediaDocument.cpp: (WebCore::MediaDocumentParser::appendBytes): * loader/PluginDocument.cpp: (WebCore::PluginDocumentParser::appendBytes): * loader/SinkDocument.cpp: (WebCore::SinkDocumentParser::SinkDocumentParser): (WebCore::SinkDocumentParser::appendBytes): (WebCore::SinkDocument::createParser): 2010-06-25 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. Split DocumentParser::write into separate append and insert calls https://bugs.webkit.org/show_bug.cgi?id=41197 Unfortunately this is still somewhat confusing as "insert" means "insert this data at the current insertion point and run the parser synchronously unless we're in a nested write call" and "append" means "append this data to the end and run the parser if not in a nested call or until possibly yielding". This at least makes clearer which document parsers implement which behavior, and paves the way for moving the decoding logic into DocumentParser from DocumentWriter. No functional changes, thus no tests. * dom/Document.cpp: (WebCore::Document::write): * dom/DocumentParser.h: * dom/RawDataDocumentParser.h: (WebCore::RawDataDocumentParser::insert): (WebCore::RawDataDocumentParser::append): * dom/XMLDocumentParser.cpp: (WebCore::XMLDocumentParser::insert): (WebCore::XMLDocumentParser::append): * dom/XMLDocumentParser.h: * dom/XMLDocumentParserLibxml2.cpp: (WebCore::XMLDocumentParser::resumeParsing): * html/HTMLDocumentParser.cpp: (WebCore::HTMLDocumentParser::insert): (WebCore::HTMLDocumentParser::append): (WebCore::HTMLDocumentParser::parseDocumentFragment): * html/HTMLDocumentParser.h: * html/LegacyHTMLDocumentParser.cpp: (WebCore::LegacyHTMLDocumentParser::insert): (WebCore::LegacyHTMLDocumentParser::append): * html/LegacyHTMLDocumentParser.h: * loader/DocumentWriter.cpp: (WebCore::DocumentWriter::replaceDocument): (WebCore::DocumentWriter::addData): * loader/FTPDirectoryDocument.cpp: (WebCore::FTPDirectoryDocumentParser::FTPDirectoryDocumentParser): (WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate): (WebCore::FTPDirectoryDocumentParser::append): * loader/TextDocument.cpp: (WebCore::TextDocumentParser::insert): (WebCore::TextDocumentParser::append): (WebCore::TextDocumentParser::finish): 2010-06-25 Daniel Cheng <dcheng@chromium.org> Reviewed by Darin Fisher. [chromium] Add new stubs for querying platform drag-and-drop and copy-and-paste data. This change adds new stubs for querying for data in a clipboard or drag operation. This is so adding support for more data types in clipboard/drag operations doesn't become increasingly expensive, since we currently copy all the drag data we need every time a new web drop target is entered. It also adds a new mechanism to write back to the system clipboard that isn't tied to one data type. https://bugs.webkit.org/show_bug.cgi?id=40540 No new tests since we're just adding new ChromiumBridge APIs. When we switch to it, it will be covered by the existing tests. * platform/chromium/ChromiumBridge.h: * platform/chromium/PasteboardPrivate.h: (WebCore::PasteboardPrivate::): 2010-06-25 Mario Sanchez Prada <msanchez@igalia.com> Reviewed by Xan Lopez. [Gtk] Implement atk_table_get_column_header https://bugs.webkit.org/show_bug.cgi?id=30896 Implemented get_column_header and modified get_row_header accordingly to keep them both coherent among themselves. Based on a previous patch by Joanmarie Diggs. * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: (webkit_accessible_table_get_column_header): (webkit_accessible_table_get_row_header): 2010-06-29 Martin Robinson <mrobinson@igalia.com> Reviewed by Xan Lopez. [GTK] Pasteboard code does not take into account the nil character when getting and setting markup/netscape-url data https://bugs.webkit.org/show_bug.cgi?id=41221 Take into account null-terminator when getting and setting markup and Netscape URL pasteboard types. This means that if the selection data contains the null terminator, it won't be included in the final String. When setting the pasteboard data the null terminator is now included to match the behavior of other applications. * platform/gtk/PasteboardHelper.cpp: (WebCore::PasteboardHelper::getClipboardContents): Create the markup string after using g_strndup to protect against non-null-terminated strings. Use String::fromUTF8 here to ensure that the string is not longer than the first null-terminator. Also fix a small indentation issue. (WebCore::PasteboardHelper::fillSelectionData): Always include the null-terminator when setting pasteboard data manually. This matches the behavior of other browser applications. 2010-06-25 Sam Magnuson <smagnuson@netflix.com> Reviewed by Kenneth Rohde Christiansen. [Qt] When any geometry change happens to a node it will resize the backing cache https://bugs.webkit.org/show_bug.cgi?id=40378 Continue to grow the cache, but never toss it. When the pixmap cache gets too big it will be lost and created at the right size next time. No new tests: this is an optimization. * platform/graphics/qt/GraphicsLayerQt.cpp: (WebCore::GraphicsLayerQtImpl::recache): (WebCore::GraphicsLayerQtImpl::paint): (WebCore::GraphicsLayerQtImpl::flushChanges): 2010-06-25 Andreas Kling <andreas.kling@nokia.com> Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=41019 Canvas: Remember verified clean origins for drawImage() Made CanvasRenderingContext2D cache the KURLs of clean origins for fast repeated lookup. * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::checkOrigin): * html/canvas/CanvasRenderingContext2D.h: 2010-06-25 Robert Hogan <robert@webkit.org> Reviewed by Kenneth Rohde Christiansen. [Qt] HTTP 307 after a 303 after a POST re-sends POST data from the original request https://bugs.webkit.org/show_bug.cgi?id=35301 Qt needs to use ResourceRequest::request()->httpMethod()) in order to determine the appropriate method for a 307 redirect request. When deciding if it needs to override a POST method with a GET method during a redirect chain, QNetworkReplyHandler needs to check the HTTP method stored in ResourceRequest::request()->httpMethod(). This will always contain the original request method in a redirect chain and, more importantly, is the method that will be used for the request created from the redirect if it is not overridden. * platform/network/qt/QNetworkReplyHandler.cpp: (WebCore::QNetworkReplyHandler::sendResponseIfNeeded): 2010-06-25 Dan Bernstein <mitz@apple.com> Reviewed by Anders Carlsson. Removed a one-line method that only had one internal caller. * rendering/RenderBlock.h: Removed bidiReorderLine() * rendering/RenderBlockLineLayout.cpp: (WebCore::RenderBlock::layoutInlineChildren): Moved the implementation of bidiReorderLine() inline here. 2010-06-25 Nate Chapin <japhet@chromium.org> Reviewed by Adam Barth. Take a KURL parameter in Document's constructor. This will remove the one case where Document::url() and FrameLoader::url() are not equal, allowing us to remove FrameLoader::url(). https://bugs.webkit.org/show_bug.cgi?id=41166 Refactor only, no new tests. * dom/DOMImplementation.cpp: (WebCore::DOMImplementation::createDocument): Take a KURL and pass it through to Document. (WebCore::DOMImplementation::createHTMLDocument): * dom/DOMImplementation.h: * dom/Document.cpp: (WebCore::Document::Document): Call setURL() if a frame or a non-empty KURL is specified. (WebCore::Document::initSecurityContext): m_url is now initialized, so use it instead of m_frame->loader()->url() for initializing the SecurityOrigin. * dom/Document.h: (WebCore::Document::create): (WebCore::Document::createXHTML): * html/HTMLDocument.cpp: * html/HTMLDocument.h: Add KURL parameter to create() and constructor. * html/HTMLViewSourceDocument.cpp: * html/HTMLViewSourceDocument.h: Add KURL parameter to create() and constructor. * loader/CachedFont.cpp: (WebCore::CachedFont::ensureSVGFontData): * loader/DocumentWriter.cpp: (WebCore::DocumentWriter::createDocument): Take a KURL and pass it through to Document. (WebCore::DocumentWriter::begin): Pass existing url parameter to constructors, and remove redundant Document::setURL() call. * loader/DocumentWriter.h: * loader/FTPDirectoryDocument.cpp: * loader/FTPDirectoryDocument.h: Add KURL parameter to create() and constructor. * loader/ImageDocument.cpp: * loader/ImageDocument.h: Add KURL parameter to create() and constructor. * loader/MediaDocument.cpp: * loader/MediaDocument.h: Add KURL parameter to create() and constructor. * loader/PlaceholderDocument.h: Add KURL parameter to create() and constructor. * loader/PluginDocument.cpp: * loader/PluginDocument.h: Add KURL parameter to create() and constructor. * loader/SinkDocument.cpp: * loader/SinkDocument.h: Add KURL parameter to create() and constructor. * loader/TextDocument.cpp: * loader/TextDocument.h: Add KURL parameter to create() and constructor. * svg/SVGDocument.cpp: * svg/SVGDocument.h: Add KURL parameter to create() and constructor. * xml/DOMParser.cpp: (WebCore::DOMParser::parseFromString): * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::responseXML): * xml/XSLTProcessor.cpp: (WebCore::XSLTProcessor::createDocumentFromSource): 2010-06-25 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r61812. http://trac.webkit.org/changeset/61812 https://bugs.webkit.org/show_bug.cgi?id=41216 breaks Chromium workers tests (Requested by mnaganov on #webkit). * storage/AbstractDatabase.cpp: * storage/AbstractDatabase.h: * storage/Database.cpp: (WebCore::Database::databaseInfoTableName): (WebCore::guidMutex): (WebCore::guidToVersionMap): (WebCore::updateGuidVersionMap): (WebCore::guidToDatabaseMap): (WebCore::databaseVersionKey): (WebCore::DatabaseCreationCallbackTask::create): (WebCore::DatabaseCreationCallbackTask::performTask): (WebCore::DatabaseCreationCallbackTask::DatabaseCreationCallbackTask): (WebCore::Database::openDatabase): (WebCore::Database::Database): (WebCore::Database::openAndVerifyVersion): (WebCore::retrieveTextResultFromDatabase): (WebCore::Database::getVersionFromDatabase): (WebCore::setTextValueInDatabase): (WebCore::Database::setVersionInDatabase): (WebCore::Database::versionMatchesExpected): (WebCore::Database::close): (WebCore::Database::disableAuthorizer): (WebCore::Database::enableAuthorizer): (WebCore::Database::setAuthorizerReadOnly): (WebCore::Database::lastActionChangedDatabase): (WebCore::Database::lastActionWasInsert): (WebCore::Database::resetDeletes): (WebCore::Database::hadDeletes): (WebCore::guidForOriginAndName): (WebCore::Database::resetAuthorizer): (WebCore::Database::performOpenAndVerify): (WebCore::Database::performCreationCallback): (WebCore::Database::version): (WebCore::Database::setExpectedVersion): (WebCore::Database::stringIdentifier): (WebCore::Database::displayName): (WebCore::Database::estimatedSize): (WebCore::Database::fileName): * storage/Database.h: (WebCore::Database::scriptExecutionContext): (WebCore::Database::opened): (WebCore::Database::isNew): (WebCore::Database::databaseDebugName): * storage/DatabaseAuthorizer.cpp: (WebCore::DatabaseAuthorizer::DatabaseAuthorizer): (WebCore::DatabaseAuthorizer::denyBasedOnTableName): * storage/DatabaseAuthorizer.h: (WebCore::DatabaseAuthorizer::create): * storage/DatabaseSync.cpp: (WebCore::DatabaseSync::databaseInfoTableName): (WebCore::DatabaseSync::openDatabaseSync): (WebCore::DatabaseSync::DatabaseSync): (WebCore::DatabaseSync::~DatabaseSync): (WebCore::DatabaseSync::version): (WebCore::DatabaseSync::changeVersion): (WebCore::DatabaseSync::transaction): (WebCore::DatabaseSync::scriptExecutionContext): * storage/DatabaseSync.h: (WebCore::DatabaseSync::databaseDebugName): * storage/DatabaseTask.cpp: (WebCore::DatabaseOpenTask::DatabaseOpenTask): (WebCore::DatabaseOpenTask::doPerformTask): * storage/DatabaseTask.h: (WebCore::DatabaseOpenTask::create): 2010-06-25 Lei Zheng <lzheng@chromium.org> Reviewed by Dimitri Glazkov. Add a flag to the ResourceResponse for tracking if a request was fetched when Alternate-protocol is available. https://bugs.webkit.org/show_bug.cgi?id=41001 No new tests. (This is just a setter and getter.) * platform/network/chromium/ResourceResponse.h: (WebCore::ResourceResponse::ResourceResponse): (WebCore::ResourceResponse::wasAlternateProtocolAvailable): (WebCore::ResourceResponse::setWasAlternateProtocolAvailable): 2010-06-25 Lyon Chen <liachen@rim.com> Reviewed by Darin Adler. InspectorCSSStore.cpp is not surrounded with ENABLE(INSPECTOR) https://bugs.webkit.org/show_bug.cgi?id=41004 Surround InspectorCSSStore.cpp code with ENABLE(INSPECTOR) so it will not break the build when INSPECTOR is disabled. * inspector/InspectorCSSStore.cpp: 2010-06-25 No'am Rosenthal <noam.rosenthal@nokia.com> Reviewed by Simon Hausmann. [Qt] WebGL: missing file https://bugs.webkit.org/show_bug.cgi?id=40998 Added a missing file to WebCore.pro No new tests; build fix * WebCore.pro: 2010-06-25 Adam Roben <aroben@apple.com> Windows build fix * WebCore.vcproj/WebCore.vcproj: Added a missing </File> tag. 2010-06-25 Alex Milowski <alex@milowski.com> Reviewed by Kenneth Rohde Christiansen. This patch changes the vertical alignment to rely upon baseline alignment for all MathML rendering. This fixes a number of layout issues and the implementation is much more clean. Also, this patch adds a horizontal green line in the debug layout so you can see the top padding of any RenderMathMLBlock instance. Test: mathml/presentation/row-alignment.xhtml * css/mathml.css: * mathml/RenderMathMLBlock.cpp: * mathml/RenderMathMLFraction.cpp: * mathml/RenderMathMLFraction.h: * mathml/RenderMathMLOperator.cpp: * mathml/RenderMathMLOperator.h: * mathml/RenderMathMLRoot.cpp: * mathml/RenderMathMLRow.cpp: * mathml/RenderMathMLRow.h: * mathml/RenderMathMLSquareRoot.cpp: * mathml/RenderMathMLSubSup.cpp: * mathml/RenderMathMLUnderOver.cpp: 2010-06-25 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. Can't see source when hitting debugger statement in evaled source https://bugs.webkit.org/show_bug.cgi?id=41058 Test: inspector/debugger-pause-in-eval-script.html * bindings/js/ScriptDebugServer.cpp: (WebCore::ScriptDebugServer::sourceParsed): use lexical global object to figure out where the script is compiled. Otherwise scripts typed in Web Inspector console will be treated as ones evaluated in the context of Web Inspector and won't appear in the scripts list. * inspector/InspectorController.cpp: (WebCore::InspectorController::didParseSource): cache script sources for eval's too. 2010-06-25 Lucas De Marchi <lucas.demarchi@profusion.mobi> Reviewed by Kenneth Rohde Christiansen. [EFL] Use a descriptive string in FileChooser when multiple files can be selected. https://bugs.webkit.org/show_bug.cgi?id=40943 EFL port has no tests yet, so no new tests. * platform/efl/FileChooserEfl.cpp: (WebCore::FileChooser::basenameForWidth): 2010-06-25 Nikolas Zimmermann <nzimmermann@rim.com> Reviewed by Dirk Schulze. SVG Text Highlighting not yet supported (in Safari) https://bugs.webkit.org/show_bug.cgi?id=41200 Add text match marker highlighting support for SVG text - searching for SVG text in Safari now paints the nice yellow highlighting rect, and the white rectangles for all text matches. Behaves exactly like HTML text, but respecting SVGs per-character/per-chunk transformations, allowing to highlight textPaths, tspans with absolute per-character positions etc.. Only manually testable, thus no new tests. * rendering/InlineBox.h: Expose calculateBoundaries() in non-SVG builds as well, now used by InlineTextBox too. * rendering/InlineTextBox.h: Add calculateBoundaries(), which will be used to refactor some code in RenderText, see below. (WebCore::InlineTextBox::calculateBoundaries): Just return a IntRect(x(), y(), width(), height()) here. (WebCore::RenderObject::isSVGInlineText): * rendering/RenderSVGInlineText.h: (WebCore::RenderSVGInlineText::isSVGInlineText): Return true for isSVGInlineText(), return false for isSVGText() (default in RenderObject.h) * rendering/RenderSVGRoot.cpp: (WebCore::RenderSVGRoot::paint): Only paint box decorations in PaintPhase(Child)BlockBackground, exit afterwards just like RenderBlock does. Otherwise the white text match marker rectangle gets drawn over the yellow highlight that Safari draws. * rendering/RenderSVGText.cpp: (WebCore::RenderSVGText::paint): Accept a new painting phase: PaintPhaseSelection, used by Safari when drawing the yellow highlight rect. * rendering/RenderText.cpp: (WebCore::RenderText::absoluteQuads): Use calculateBoundaries() instead of IntRect(x(), y(), width(), height()). SVG provides different boundaries here. (WebCore::RenderText::absoluteQuadsForRange): Ditto. This is the main change, leading to correct text highlight placement. * rendering/SVGInlineFlowBox.cpp: Add assertion that painting is not disabled, for consistency. Change paint phase assertion to include PaintPhaseSelection. (WebCore::SVGInlineFlowBox::paint): * rendering/SVGInlineTextBox.cpp: (WebCore::SVGInlineTextBox::selectionRectForTextChunkPart): Refactored from selectionRect(), to share code between selectionRect/computeTextMatchMarkerRect. (WebCore::SVGInlineTextBox::selectionRect): Use new helper function selectionRectForTextChunkPart(). (WebCore::SVGInlineTextBox::paint): Ditto. Call new computeTextMatchMarkerRect() function. (WebCore::SVGInlineTextBox::computeTextMatchMarkerRect): Implemented similar to HTML, but respecting SVGs concept of text chunk parts. (WebCore::SVGInlineTextBox::paintText): In PaintPhaseSelection, only paint selected text, not anything before/after the selection start/end. (WebCore::SVGInlineTextBox::calculateBoundaries): Early exit, if m_chunkTransformation is identity. * rendering/SVGInlineTextBox.h: Added "bool paintSelectedTextOnly" to paintText() and add new computeTextMatchMarkerRect(RenderStyle*) function. * rendering/SVGRootInlineBox.cpp: (WebCore::SVGRootInlineBox::paint): Change paint phase assertion to include PaintPhaseSelection. 2010-06-25 John Gregg <johnnyg@google.com> Reviewed by Darin Fisher. Notification should expose ltr/rtl as TextDirection, not String https://bugs.webkit.org/show_bug.cgi?id=40871 No new tests; existing test covers this, just renaming a method. * notifications/Notification.h: (WebCore::Notification::direction): 2010-06-25 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r61842. http://trac.webkit.org/changeset/61842 https://bugs.webkit.org/show_bug.cgi?id=41208 It broke Windows build (Requested by Ossy_ on #webkit). * ForwardingHeaders/wtf/win/OwnPtrWin.h: Removed. 2010-06-25 Patrick Gansterer <paroga@paroga.com> Reviewed by Darin Adler. Remove unneeded whitespace from svgtags.in. https://bugs.webkit.org/show_bug.cgi?id=40912 make_names.pl throws an error at non-empty lines when using cl.exe as preprocessor. * svg/svgtags.in: 2010-06-25 Nikolas Zimmermann <nzimmermann@rim.com> Reviewed by Rob Buis. Split up isSVGText() in isSVGText() / isSVGInlineText() https://bugs.webkit.org/show_bug.cgi?id=41204 Introduce isSVGInlineText(), to provide a safe mechanism to differentiate between RenderSVGText / RenderSVGInlineText. No change in functionality, thus no new tests. * rendering/RenderBlockLineLayout.cpp: (WebCore::shouldPreserveNewline): s/isSVGText/isSVGInlineText/ (WebCore::RenderBlock::findNextLineBreak): Ditto. * rendering/RenderObject.h: (WebCore::RenderObject::isSVGInlineText): Return false, by default. * rendering/RenderSVGInlineText.h: (WebCore::RenderSVGInlineText::isSVGInlineText): Return true here, don't return true anymore for isSVGText(). * rendering/RenderText.cpp: (WebCore::RenderText::setTextInternal): s/isSVGText/isSVGInlineText/ * rendering/RenderTreeAsText.cpp: Remove hack, now that we can properly differentiate between RenderSVGText / RenderSVGInlineText. (WebCore::write): 2010-06-25 Kwang Yul Seo <skyul@company100.net> Reviewed by Adam Barth. Change OwnPtrCommon to include platform-specific headers https://bugs.webkit.org/show_bug.cgi?id=40279 Adding new type to OwnPtrCommon needlessly causes all ports to do full rebuilds. Change OwnPtrCommon to include platform-specific headers to avoid all ports rebuilds. * ForwardingHeaders/wtf/win: Added. * ForwardingHeaders/wtf/win/OwnPtrWin.h: Added. 2010-06-25 Patrick Gansterer <paroga@paroga.com> Reviewed by Adam Barth. Implement TextCodecs for WinCE port. https://bugs.webkit.org/show_bug.cgi?id=32169 Originally written by Yong Li <yong.li@torchmobile.com> * platform/graphics/FontCache.h: * platform/graphics/wince/FontCacheWince.cpp: (WebCore::FontCache::getMultiLanguageInterface): * platform/text/wince/TextCodecWinCE.cpp: Added. (WebCore::codePageCharsets): (WebCore::knownCharsets): (WebCore::supportedCharsets): (WebCore::languageManager): (WebCore::addCharset): (WebCore::LanguageManager::LanguageManager): (WebCore::getCodePage): (WebCore::newTextCodecWinCE): (WebCore::TextCodecWinCE::TextCodecWinCE): (WebCore::TextCodecWinCE::~TextCodecWinCE): (WebCore::TextCodecWinCE::registerBaseEncodingNames): (WebCore::TextCodecWinCE::registerBaseCodecs): (WebCore::TextCodecWinCE::registerExtendedEncodingNames): (WebCore::TextCodecWinCE::registerExtendedCodecs): (WebCore::getCodePageFlags): (WebCore::findFirstNonAsciiCharacter): (WebCore::decode): (WebCore::TextCodecWinCE::decode): (WebCore::TextCodecWinCE::encode): (WebCore::TextCodecWinCE::enumerateSupportedEncodings): * platform/text/wince/TextCodecWinCE.h: Added. 2010-06-24 Rob Buis <rwlbuis@gmail.com> Reviewed by Dirk Schulze. Bug 40880 - SVG properties fill and stroke do not accept system colors https://bugs.webkit.org/show_bug.cgi?id=40880 Handle css system colors in fill and stroke properties. Test: svg/css/rect-system-color.xhtml * css/CSSParser.cpp: Remove comment and unneeded if condition (WebCore::CSSParser::parseValue): * css/SVGCSSParser.cpp: Allow css system colors (WebCore::CSSParser::parseSVGValue): 2010-06-24 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. Make DocumentParser API private on subclasses to catch misuse bugs https://bugs.webkit.org/show_bug.cgi?id=41186 This already found one bug: https://bugs.webkit.org/show_bug.cgi?id=41187 Added a new HTMLDocumentParaser::parseDocumentFragment so that DocumentFragment.cpp does not need to use private methods. * dom/DocumentFragment.cpp: (WebCore::DocumentFragment::parseHTML): * dom/XMLDocumentParser.h: (WebCore::XMLDocumentParser::setIsXHTMLDocument): (WebCore::XMLDocumentParser::isXHTMLDocument): (WebCore::XMLDocumentParser::setIsXHTMLMPDocument): (WebCore::XMLDocumentParser::isXHTMLMPDocument): * html/HTMLDocumentParser.cpp: (WebCore::HTMLDocumentParser::parseDocumentFragment): * html/HTMLDocumentParser.h: * html/LegacyHTMLDocumentParser.cpp: (WebCore::LegacyHTMLDocumentParser::parseDocumentFragment): * html/LegacyHTMLDocumentParser.h: (WebCore::LegacyHTMLDocumentParser::forceSynchronous): (WebCore::LegacyHTMLDocumentParser::processingContentWrittenByScript): * html/LegacyHTMLTreeBuilder.cpp: (WebCore::LegacyHTMLTreeBuilder::reportErrorToConsole): * loader/DocumentWriter.cpp: (WebCore::DocumentWriter::replaceDocument): * loader/TextDocument.cpp: 2010-05-28 Philippe Normand <pnormand@igalia.com> Reviewed by Gustavo Noronha. [GStreamer] multiple video sink support https://bugs.webkit.org/show_bug.cgi?id=39472 Playbin2 video-sink is now a bin containing a tee element capable of dispatching the buffers to multiple video sinks. By default only our webkit video sink is used. This will allow GStreamerGWorld to add support for autovideosink in the future. * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer): (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer): (WebCore::MediaPlayerPrivateGStreamer::naturalSize): (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin): * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: 2010-06-24 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Sketch out AfterHeadMode for tree builder https://bugs.webkit.org/show_bug.cgi?id=41191 This mode is fairly similar to the others. I needed to change some of the types around w.r.t. Nodes/Elements. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::HTMLTreeBuilder): (WebCore::HTMLTreeBuilder::processToken): (WebCore::HTMLTreeBuilder::insertElement): * html/HTMLTreeBuilder.h: (WebCore::HTMLTreeBuilder::ElementStack::push): (WebCore::HTMLTreeBuilder::ElementStack::remove): 2010-06-24 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Sketch out InHeadNoscriptMode for tree builder https://bugs.webkit.org/show_bug.cgi?id=41189 Lots of notImplemented() calls in this state. I need to figure how to delegate handling of a token from one state to another. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processToken): 2010-06-24 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Sketch out InHeadMode for tree builder https://bugs.webkit.org/show_bug.cgi?id=41184 This state is relatively straightforward. We introduce the stack of open elements to track that notion in the spec. The old tree builder has a nice data structure for that, which we'll probably steal, but I'd like to see what the full API is first. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processToken): (WebCore::HTMLTreeBuilder::insertCharacter): (WebCore::HTMLTreeBuilder::insertGenericRCDATAElement): (WebCore::HTMLTreeBuilder::insertGenericRawTextElement): (WebCore::HTMLTreeBuilder::insertScriptElement): * html/HTMLTreeBuilder.h: (WebCore::HTMLTreeBuilder::ElementStack::pop): (WebCore::HTMLTreeBuilder::ElementStack::top): 2010-06-24 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Sketch out BeforeHeadMode tree builder state https://bugs.webkit.org/show_bug.cgi?id=41183 This makes procesToken recursive, which might not be the best idea. Also, we can now make fake AtomicHTMLTokens for use by the algorithm. * html/HTMLToken.h: (WebCore::AtomicHTMLToken::AtomicHTMLToken): * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processToken): (WebCore::HTMLTreeBuilder::insertElement): * html/HTMLTreeBuilder.h: 2010-06-22 Antonio Gomes <tonikitoo@webkit.org> Reviewed by David Hyatt. Add a NodeList-derivated wrapper class for a ListHashSet. https://bugs.webkit.org/show_bug.cgi?id=41081 StaticHashSetList will work as a wrapper to ListHashSet objects that are aimed to be exposed to the DOM. As a use case, the rect based HitTest (bug 40197) will store the retrieved nodes in a ListHashSet. It is going to be exposed to the DOM through are nodesFromRect of Document returning a NodeList (i.e. StatisHashSetList) wrapping a ListHashSet. No new tests. 2010-06-24 Cris Neckar <cdn@chromium.org> Reviewed by Darin Fisher. [Chromium] Out of bounds write in WebCore::PNGImageDecoder::rowAvailable https://bugs.webkit.org/show_bug.cgi?id=40798 Catches error in row callback for libPNG when extra rows are returned. Test: fast/images/png-extra-row-crash.html * platform/image-decoders/png/PNGImageDecoder.cpp: (WebCore::PNGImageDecoder::rowAvailable): 2010-06-24 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. Clean up and document DocumentWriter::replaceDocument code path https://bugs.webkit.org/show_bug.cgi?id=41182 No functional changes, thus no tests. * loader/DocumentWriter.cpp: (WebCore::DocumentWriter::replaceDocument): - Remove comment which could be misleading. 2010-06-23 Dumitru Daniliuc <dumi@chromium.org> Reviewed by Adam Barth. Implementing DatabaseSync::openDatabaseSync(). https://bugs.webkit.org/show_bug.cgi?id=40607 Moved some common code from Database to AbstractDatabase. Made performOpenAndVerify() virtual, since DatabaseSync doesn't need to interact with DatabaseThread. Removed the m_creationCallback field, since it's only needed in the openDatabase{Sync} methods. * storage/AbstractDatabase.cpp: (WebCore::retrieveTextResultFromDatabase): (WebCore::setTextValueInDatabase): (WebCore::guidMutex): (WebCore::guidToVersionMap): (WebCore::updateGuidVersionMap): (WebCore::guidToDatabaseMap): (WebCore::guidForOriginAndName): (WebCore::AbstractDatabase::databaseInfoTableName): (WebCore::AbstractDatabase::AbstractDatabase): (WebCore::AbstractDatabase::closeDatabase): (WebCore::AbstractDatabase::version): (WebCore::AbstractDatabase::performOpenAndVerify): (WebCore::AbstractDatabase::scriptExecutionContext): (WebCore::AbstractDatabase::securityOrigin): (WebCore::AbstractDatabase::stringIdentifier): (WebCore::AbstractDatabase::displayName): (WebCore::AbstractDatabase::estimatedSize): (WebCore::AbstractDatabase::fileName): (WebCore::AbstractDatabase::databaseVersionKey): (WebCore::AbstractDatabase::getVersionFromDatabase): (WebCore::AbstractDatabase::setVersionInDatabase): (WebCore::AbstractDatabase::versionMatchesExpected): (WebCore::AbstractDatabase::setExpectedVersion): (WebCore::AbstractDatabase::disableAuthorizer): (WebCore::AbstractDatabase::enableAuthorizer): (WebCore::AbstractDatabase::setAuthorizerReadOnly): (WebCore::AbstractDatabase::lastActionChangedDatabase): (WebCore::AbstractDatabase::lastActionWasInsert): (WebCore::AbstractDatabase::resetDeletes): (WebCore::AbstractDatabase::hadDeletes): (WebCore::AbstractDatabase::resetAuthorizer): * storage/AbstractDatabase.h: (WebCore::AbstractDatabase::opened): (WebCore::AbstractDatabase::isNew): (WebCore::AbstractDatabase::databaseDebugName): * storage/Database.cpp: (WebCore::DatabaseCreationCallbackTask::create): (WebCore::DatabaseCreationCallbackTask::performTask): (WebCore::DatabaseCreationCallbackTask::DatabaseCreationCallbackTask): (WebCore::Database::openDatabase): (WebCore::Database::Database): (WebCore::Database::version): (WebCore::Database::openAndVerifyVersion): (WebCore::Database::close): (WebCore::Database::stop): (WebCore::Database::performOpenAndVerify): * storage/Database.h: (WebCore::Database::sqliteDatabase): * storage/DatabaseAuthorizer.cpp: (WebCore::DatabaseAuthorizer::create): (WebCore::DatabaseAuthorizer::DatabaseAuthorizer): (WebCore::DatabaseAuthorizer::denyBasedOnTableName): * storage/DatabaseAuthorizer.h: * storage/DatabaseSync.cpp: (WebCore::DatabaseSync::openDatabaseSync): (WebCore::DatabaseSync::DatabaseSync): (WebCore::DatabaseSync::changeVersion): (WebCore::DatabaseSync::transaction): (WebCore::DatabaseSync::markAsDeletedAndClose): (WebCore::CloseSyncDatabaseOnContextThreadTask::create): (WebCore::CloseSyncDatabaseOnContextThreadTask::performTask): (WebCore::CloseSyncDatabaseOnContextThreadTask::CloseSyncDatabaseOnContextThreadTask): (WebCore::DatabaseSync::closeImmediately): * storage/DatabaseSync.h: * storage/DatabaseTask.cpp: (WebCore::DatabaseOpenTask::DatabaseOpenTask): (WebCore::DatabaseOpenTask::doPerformTask): * storage/DatabaseTask.h: (WebCore::DatabaseOpenTask::create): 2010-06-24 Steve Falkenburg <sfalken@apple.com> Windows build fix. * platform/network/cf/AuthenticationCF.h: 2010-06-24 Martin Robinson <mrobinson@igalia.com> Unreviewed. Build fix. Fix the build after r61798. * platform/gtk/PasteboardHelper.cpp: (WebCore::PasteboardHelper::getClipboardContents): 2010-06-24 Alexey Proskuryakov <ap@apple.com> Reviewed by Brady Eidson. https://bugs.webkit.org/show_bug.cgi?id=41178 Timed refresh in subframes isn't stopped when going into b/f cache Test: fast/history/timed-refresh-in-cached-frame.html * history/CachedFrame.cpp: (WebCore::CachedFrame::CachedFrame): Top frame's stopLoading() won't help cached subframes; stop loading from here. * loader/FrameLoader.cpp: (WebCore::FrameLoader::stopLoading): Don't stop loading in child frames. This didn't work for cached frames due to frame tree having been already desonstructed, and it's not necessary in non-cached case because stopLoading() will be called for subframes via FrameLoader::detachFromParent() and closeURL(). (WebCore::FrameLoader::pageHidden): This was a second code path that dispatched pagehide event - it's no longer needed, because everything goes through FrameLoader::stopLoading(). (WebCore::FrameLoader::commitProvisionalLoad): Don't call pageHidden(), the code for adding frame to b/f cache will do everything. * loader/FrameLoader.h: Removed pageHidden(). 2010-06-24 Eric Seidel <eric@webkit.org> Unreviewed. Fix the build. I am a bad man. * loader/DocumentWriter.cpp: (WebCore::DocumentWriter::replaceDocument): 2010-06-24 Martin Robinson <mrobinson@igalia.com> Reviewed by Xan Lopez. Build fix for building against GTK+ 3.x. No new tests as functionality has not changed. * platform/gtk/GtkVersioning.h: * platform/gtk/PasteboardHelper.cpp: (WebCore::PasteboardHelper::getClipboardContents): (WebCore::PasteboardHelper::fillSelectionData): 2010-06-24 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. Clean up and document DocumentWriter::replaceDocument code path https://bugs.webkit.org/show_bug.cgi?id=41182 No functional change, thus no test. * loader/DocumentWriter.cpp: (WebCore::DocumentWriter::replaceDocument): * loader/DocumentWriter.h: 2010-06-24 Jer Noble <jer.noble@apple.com> Reviewed by Eric Carlson. Full-screened content doesn't keep the display on: Safari not grabbing a power assertion? https://bugs.webkit.org/show_bug.cgi?id=40939 rdar://problem/7996172 Export -[MediaElement playbackRate]; * WebCore.Video.exp: 2010-06-21 Evan Martin <evan@chromium.org> Reviewed by Adam Barth. [chromium] overlapping characters in complex text https://bugs.webkit.org/show_bug.cgi?id=40966 We need to clear all the buffers we hand to Harfbuzz before we use them. While I'm here, refactor the code slightly to make its behavior more clear and correct (previously, we would repeatedly double our buffer size when we could have just sized it correctly on the second try). * platform/graphics/chromium/FontLinux.cpp: (WebCore::TextRunWalker::TextRunWalker): (WebCore::TextRunWalker::nextScriptRun): (WebCore::TextRunWalker::createGlyphArrays): (WebCore::TextRunWalker::shapeGlyphs): 2010-06-24 Adele Peterson <adele@apple.com> Reviewed by Sam Weinig. Updated fix for <rdar://problem/8093680> "Paste and Match Style" should fire paste events https://bugs.webkit.org/show_bug.cgi?id=41085 Covered by existing tests. * editing/EditorCommand.cpp: (WebCore::executePasteAsPlainText): Added. (WebCore::createCommandMap): Added pasteAsPlainText command. 2010-06-24 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Sketch out BeforeHTMLMode state https://bugs.webkit.org/show_bug.cgi?id=41133 In this patch, we switch the TreeBuidler over to using AtomicHTMLTokens and sketch out another state. These states don't actually do anything yet, I'm still just getting the structure of the spec into the code so we can implement the details incrementally. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::constructTreeFromToken): (WebCore::HTMLTreeBuilder::processToken): (WebCore::HTMLTreeBuilder::insertDoctype): (WebCore::HTMLTreeBuilder::insertComment): * html/HTMLTreeBuilder.h: (WebCore::HTMLTreeBuilder::parseError): 2010-06-24 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Add AtomicHTMLToken https://bugs.webkit.org/show_bug.cgi?id=41131 We need an atomized version of the token for use in the tree builder. Eventually, we should make the existing HTMLToken an internal detail of the HTMLTokenizer. This new AtomicHTMLToken should be also be more easily cached between the preload scanner and the tree builder. * html/HTMLToken.h: (WebCore::AtomicHTMLToken::AtomicHTMLToken): (WebCore::AtomicHTMLToken::type): (WebCore::AtomicHTMLToken::name): (WebCore::AtomicHTMLToken::selfClosing): (WebCore::AtomicHTMLToken::attributes): (WebCore::AtomicHTMLToken::characters): (WebCore::AtomicHTMLToken::comment): (WebCore::AtomicHTMLToken::publicIdentifier): (WebCore::AtomicHTMLToken::systemIdentifier): (WebCore::AtomicHTMLToken::forceQuirks): * html/HTMLTreeBuilder.cpp: (WebCore::convertToOldStyle): (WebCore::HTMLTreeBuilder::passTokenToLegacyParser): 2010-06-24 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. Add RawDataDocumentParser to get rid of a bunch of copy/paste code in DocumentParser subclasses https://bugs.webkit.org/show_bug.cgi?id=41136 I think this is likely far from the final design, however this is almost entirely minus lines which is a good thing. The original authors of these DocumentParser subclasses seem to have just copied the files whole, as they all had the same includes, many of which were unnecessary for some of the files. I think eventually the FrameLoader will call a virtual DocumentParser::appendData which will in turn decode and call another write/appendData call. In the case of these RawDataDocumentParsers, they will just override the low-level appendData call instead of needing DocumentWriter to have a special if based on DocumentParser::wantsRawData. No functional change, thus no tests. * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.xcodeproj/project.pbxproj: * dom/DocumentParser.h: (WebCore::DocumentParser::writeRawData): * loader/ImageDocument.cpp: (WebCore::ImageDocumentParser::ImageDocumentParser): (WebCore::ImageDocumentParser::finish): * loader/MediaDocument.cpp: (WebCore::MediaDocumentParser::MediaDocumentParser): (WebCore::MediaDocumentParser::writeRawData): * loader/PluginDocument.cpp: (WebCore::PluginDocumentParser::PluginDocumentParser): * loader/SinkDocument.cpp: (WebCore::SinkDocument::createParser): 2010-06-23 Peter Kasting <pkasting@google.com> Reviewed by Adam Barth. REGRESSION (r61619): Memory corruption in open-source ICO decoder https://bugs.webkit.org/show_bug.cgi?id=41107 * platform/image-decoders/bmp/BMPImageReader.cpp: (WebCore::BMPImageReader::processInfoHeader): Fix memory corruption. * platform/image-decoders/ico/ICOImageDecoder.cpp: (WebCore::ICOImageDecoder::processDirectoryEntries): Handle sizing failure correctly (though failure should be impossible). 2010-06-24 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r61783. http://trac.webkit.org/changeset/61783 https://bugs.webkit.org/show_bug.cgi?id=41179 Caused a couple of test failures (Requested by japhet on #webkit). * dom/DOMImplementation.cpp: (WebCore::DOMImplementation::createDocument): (WebCore::DOMImplementation::createHTMLDocument): * dom/DOMImplementation.h: * dom/Document.cpp: (WebCore::Document::Document): (WebCore::Document::initSecurityContext): * dom/Document.h: (WebCore::Document::create): (WebCore::Document::createXHTML): * html/HTMLDocument.cpp: (WebCore::HTMLDocument::HTMLDocument): * html/HTMLDocument.h: (WebCore::HTMLDocument::create): * html/HTMLViewSourceDocument.cpp: (WebCore::HTMLViewSourceDocument::HTMLViewSourceDocument): * html/HTMLViewSourceDocument.h: (WebCore::HTMLViewSourceDocument::create): * loader/CachedFont.cpp: (WebCore::CachedFont::ensureSVGFontData): * loader/DocumentWriter.cpp: (WebCore::DocumentWriter::createDocument): (WebCore::DocumentWriter::begin): * loader/DocumentWriter.h: * loader/FTPDirectoryDocument.cpp: (WebCore::FTPDirectoryDocument::FTPDirectoryDocument): * loader/FTPDirectoryDocument.h: (WebCore::FTPDirectoryDocument::create): * loader/ImageDocument.cpp: (WebCore::ImageDocument::ImageDocument): * loader/ImageDocument.h: (WebCore::ImageDocument::create): * loader/MediaDocument.cpp: (WebCore::MediaDocument::MediaDocument): * loader/MediaDocument.h: (WebCore::MediaDocument::create): * loader/PlaceholderDocument.h: (WebCore::PlaceholderDocument::create): (WebCore::PlaceholderDocument::PlaceholderDocument): * loader/PluginDocument.cpp: (WebCore::PluginDocument::PluginDocument): * loader/PluginDocument.h: (WebCore::PluginDocument::create): * loader/SinkDocument.cpp: (WebCore::SinkDocument::SinkDocument): * loader/SinkDocument.h: (WebCore::SinkDocument::create): * loader/TextDocument.cpp: (WebCore::TextDocument::TextDocument): * loader/TextDocument.h: (WebCore::TextDocument::create): * svg/SVGDocument.cpp: (WebCore::SVGDocument::SVGDocument): * svg/SVGDocument.h: (WebCore::SVGDocument::create): * xml/DOMParser.cpp: (WebCore::DOMParser::parseFromString): * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::responseXML): * xml/XSLTProcessor.cpp: (WebCore::XSLTProcessor::createDocumentFromSource): 2010-06-24 Martin Robinson <mrobinson@igalia.com> Reviewed by Xan Lopez. [GTK] Small code cleanup in RenderThemeGtk https://bugs.webkit.org/show_bug.cgi?id=40989 Reduce the amount of duplicated code slightly and prepare this section for future improvements, such as sharing the clipping rectangle calculation with the slow path. No new tests as functionality has not changed. * platform/gtk/RenderThemeGtk.cpp: (WebCore::paintMozillaGtkWidget): Small code cleanup. 2010-06-24 Nate Chapin <japhet@chromium.org> Reviewed by Adam Barth. Take a KURL parameter in Document's constructor. This will remove the one case where Document::url() and FrameLoader::url() are not equal, allowing us to remove FrameLoader::url(). https://bugs.webkit.org/show_bug.cgi?id=41166 Refactor only, no new tests. * dom/DOMImplementation.cpp: (WebCore::DOMImplementation::createDocument): Take a KURL and pass it through to Document. (WebCore::DOMImplementation::createHTMLDocument): * dom/DOMImplementation.h: * dom/Document.cpp: (WebCore::Document::Document): Call setURL() for non-empty KURL input parameters. (WebCore::Document::initSecurityContext): m_url is now initialized, so use it instead of m_frame->loader()->url() for initializing the SecurityOrigin. * dom/Document.h: (WebCore::Document::create): (WebCore::Document::createXHTML): * html/HTMLDocument.cpp: * html/HTMLDocument.h: Add KURL parameter to create() and constructor. * html/HTMLViewSourceDocument.cpp: * html/HTMLViewSourceDocument.h: Add KURL parameter to create() and constructor. * loader/CachedFont.cpp: (WebCore::CachedFont::ensureSVGFontData): * loader/DocumentWriter.cpp: (WebCore::DocumentWriter::createDocument): Take a KURL and pass it through to Document. (WebCore::DocumentWriter::begin): Pass existing url parameter to constructors, and remove redundant Document::setURL() call. * loader/DocumentWriter.h: * loader/FTPDirectoryDocument.cpp: * loader/FTPDirectoryDocument.h: Add KURL parameter to create() and constructor. * loader/ImageDocument.cpp: * loader/ImageDocument.h: Add KURL parameter to create() and constructor. * loader/MediaDocument.cpp: * loader/MediaDocument.h: Add KURL parameter to create() and constructor. * loader/PlaceholderDocument.h: Add KURL parameter to create() and constructor. * loader/PluginDocument.cpp: * loader/PluginDocument.h: Add KURL parameter to create() and constructor. * loader/SinkDocument.cpp: * loader/SinkDocument.h: Add KURL parameter to create() and constructor. * loader/TextDocument.cpp: * loader/TextDocument.h: Add KURL parameter to create() and constructor. * svg/SVGDocument.cpp: * svg/SVGDocument.h: Add KURL parameter to create() and constructor. * xml/DOMParser.cpp: (WebCore::DOMParser::parseFromString): * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::responseXML): * xml/XSLTProcessor.cpp: (WebCore::XSLTProcessor::createDocumentFromSource): 2010-06-24 Brady Eidson <beidson@apple.com> Reviewed by Sam Weinig. <rdar://problem/8044645> and https://bugs.webkit.org/show_bug.cgi?id=41082 Webarchives will null main resource cause a repro crash. Test: webarchive/loading/mainresource-null-mimetype-crash.html * loader/archive/cf/LegacyWebArchive.cpp: (WebCore::LegacyWebArchive::createResource): Fail to create the archive resource if the main resource's mime type is null. 2010-06-24 Damian Kaleta <dkaleta@apple.com> Reviewed by Sam Weinig. Provide a way to obtain the rendered rectangle for box elements. * WebCore.base.exp: Export the symbol so we can see it in WebKit. * dom/Node.cpp: (WebCore::Node::renderRect): Added new ethod that will return a rendered rectangle for box elements. * dom/Node.h: Ditto. 2010-06-24 Vangelis Kokkevis <vangelis@chromium.org> Reviewed by Darin Fisher. [Chromium] Create specialized classes for Transform, Image and WebGL layers to replace the rather monolithic LayerChromium class. Layers can now own the GL texture they use for backing store and a different shading program can be used by the compositor for each layer type. WebGL layers are not yet hooked up to GraphicsContext3D. https://bugs.webkit.org/show_bug.cgi?id=41106 * WebCore.gypi: * platform/graphics/chromium/GraphicsLayerChromium.cpp: (WebCore::GraphicsLayerChromium::GraphicsLayerChromium): (WebCore::GraphicsLayerChromium::setContentsToImage): (WebCore::GraphicsLayerChromium::updateLayerPreserves3D): * platform/graphics/chromium/GraphicsLayerChromium.h: (WebCore::GraphicsLayerChromium::): * platform/graphics/chromium/ImageLayerChromium.cpp: Added. (WebCore::ImageLayerChromium::create): (WebCore::ImageLayerChromium::ImageLayerChromium): (WebCore::ImageLayerChromium::setContents): (WebCore::ImageLayerChromium::updateTextureContents): * platform/graphics/chromium/ImageLayerChromium.h: Added. (WebCore::ImageLayerChromium::drawsContent): * platform/graphics/chromium/LayerChromium.cpp: (WebCore::LayerChromium::create): (WebCore::LayerChromium::LayerChromium): (WebCore::LayerChromium::updateTextureContents): (WebCore::LayerChromium::updateTextureRect): * platform/graphics/chromium/LayerChromium.h: (WebCore::LayerChromium::drawsContent): (WebCore::LayerChromium::ownsTexture): (WebCore::LayerChromium::textureId): (WebCore::LayerChromium::setShaderProgramId): (WebCore::LayerChromium::shaderProgramId): * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::createLayerShader): (WebCore::ShaderProgram::ShaderProgram): (WebCore::LayerRendererChromium::LayerRendererChromium): (WebCore::LayerRendererChromium::~LayerRendererChromium): (WebCore::LayerRendererChromium::useShaderProgram): (WebCore::LayerRendererChromium::drawTexturedQuad): (WebCore::LayerRendererChromium::drawLayers): (WebCore::LayerRendererChromium::drawDebugBorder): (WebCore::LayerRendererChromium::updateLayersRecursive): (WebCore::LayerRendererChromium::drawLayer): (WebCore::LayerRendererChromium::bindCommonAttribLocations): (WebCore::LayerRendererChromium::initializeSharedGLObjects): * platform/graphics/chromium/LayerRendererChromium.h: (WebCore::LayerRendererChromium::): * platform/graphics/chromium/TransformLayerChromium.cpp: Added. (WebCore::TransformLayerChromium::create): (WebCore::TransformLayerChromium::TransformLayerChromium): * platform/graphics/chromium/TransformLayerChromium.h: Added. (WebCore::TransformLayerChromium::drawsContent): * platform/graphics/chromium/WebGLLayerChromium.cpp: Added. (WebCore::WebGLLayerChromium::WebGLLayerChromium): (WebCore::WebGLLayerChromium::textureId): (WebCore::WebGLLayerChromium::updateTextureContents): (WebCore::WebGLLayerChromium::setContext): * platform/graphics/chromium/WebGLLayerChromium.h: Added. (WebCore::WebGLLayerChromium::drawsContent): (WebCore::WebGLLayerChromium::ownsTexture): (WebCore::WebGLLayerChromium::shaderProgramId): (WebCore::WebGLLayerChromium::setShaderProgramId): 2010-06-24 Pavel Feldman <pfeldman@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: Inspector cleanup + better DevTools alignment with Inspector. https://bugs.webkit.org/show_bug.cgi?id=41094 - Removed a bunch of unused methods from all over the place - Added client callbacks for states surviving navigation - Implemented more user-friendly stub for InspectorFrontendHost.platform * inspector/InspectorClient.h: (WebCore::InspectorClient::resourceTrackingWasEnabled): (WebCore::InspectorClient::resourceTrackingWasDisabled): (WebCore::InspectorClient::timelineProfilerWasStarted): (WebCore::InspectorClient::timelineProfilerWasStopped): * inspector/InspectorController.cpp: (WebCore::InspectorController::enableResourceTracking): (WebCore::InspectorController::disableResourceTracking): (WebCore::InspectorController::ensureSettingsLoaded): (WebCore::InspectorController::startTimelineProfiler): (WebCore::InspectorController::stopTimelineProfiler): * inspector/InspectorFrontend.cpp: * inspector/InspectorFrontend.h: * inspector/front-end/InspectorBackendStub.js: * inspector/front-end/InspectorFrontendHostStub.js: (.WebInspector.InspectorFrontendHostStub.prototype.platform): 2010-06-23 Alexey Proskuryakov <ap@apple.com> Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=41099 Assertion failure: !m_suspended when XMLHttpRequest fails This was a general problem with load failure timer not being deferred. Test: manual-tests/xhr-failure-behind-alert.html * manual-tests/xhr-failure-behind-alert.html: Added. * platform/network/ResourceHandle.cpp: (WebCore::ResourceHandle::fireFailure): Added an empty case for NoFailure. Reset m_scheduledFailureType to NoFailure when firing. (WebCore::ResourceHandle::setDefersLoading): Stop failure timer when deferring, restart when un-deferring loads. * platform/network/ResourceHandle.h: Renamed m_failureType to m_scheduledFailureType to make it clear that it is only set when a timer is scheduled. * platform/network/ResourceHandleInternal.h: (WebCore::ResourceHandleInternal::ResourceHandleInternal): Initialize m_scheduledFailureType to NoFailure, so that we can look at it when un-deferring loads. * platform/network/android/ResourceHandleAndroid.cpp: (WebCore::ResourceHandle::platformSetDefersLoading): * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::ResourceHandle::platformSetDefersLoading): * platform/network/curl/ResourceHandleCurl.cpp: (WebCore::ResourceHandle::platformSetDefersLoading): * platform/network/mac/ResourceHandleMac.mm: (WebCore::ResourceHandle::platformSetDefersLoading): * platform/network/qt/ResourceHandleQt.cpp: (WebCore::ResourceHandle::platformSetDefersLoading): * platform/network/soup/ResourceHandleSoup.cpp: Platform specific parts of setDefersLoading() are now in a separate function. 2010-06-24 Pavel Feldman <pfeldman@chromium.org> Not reviewed: revert 61766. * inspector/InspectorClient.h: * inspector/InspectorController.cpp: (WebCore::InspectorController::enableResourceTracking): (WebCore::InspectorController::disableResourceTracking): (WebCore::InspectorController::ensureSettingsLoaded): (WebCore::InspectorController::startTimelineProfiler): (WebCore::InspectorController::stopTimelineProfiler): * inspector/InspectorFrontend.cpp: (WebCore::InspectorFrontend::setAttachedWindow): * inspector/InspectorFrontend.h: * inspector/front-end/InspectorBackendStub.js: (.WebInspector.InspectorBackendStub.prototype.setAttachedWindowHeight): * inspector/front-end/InspectorFrontendHostStub.js: (.WebInspector.InspectorFrontendHostStub.prototype.platform): 2010-06-23 Pavel Feldman <pfeldman@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: Inspector cleanup + better DevTools alignment with Inspector. https://bugs.webkit.org/show_bug.cgi?id=41094 - Removed a bunch of unused methods from all over the place - Added client callbacks for states surviving navigation - Implemented more user-friendly stub for InspectorFrontendHost.platform * inspector/InspectorClient.h: (WebCore::InspectorClient::resourceTrackingWasEnabled): (WebCore::InspectorClient::resourceTrackingWasDisabled): (WebCore::InspectorClient::timelineProfilerWasStarted): (WebCore::InspectorClient::timelineProfilerWasStopped): * inspector/InspectorController.cpp: (WebCore::InspectorController::enableResourceTracking): (WebCore::InspectorController::disableResourceTracking): (WebCore::InspectorController::ensureSettingsLoaded): (WebCore::InspectorController::startTimelineProfiler): (WebCore::InspectorController::stopTimelineProfiler): * inspector/InspectorFrontend.cpp: * inspector/InspectorFrontend.h: * inspector/front-end/InspectorBackendStub.js: * inspector/front-end/InspectorFrontendHostStub.js: (.WebInspector.InspectorFrontendHostStub.prototype.platform): 2010-06-24 Nikolas Zimmermann <nzimmermann@rim.com> Reviewed by Dirk Schulze. Inspector & SVG Text have problems, kids of RenderSVGText are not properly placed. https://bugs.webkit.org/show_bug.cgi?id=41143 Simplify code path taken for SVG text in InspectorController, take the code path currently only used for RenderInline, that just calls absoluteQuads(), and displays the result. Refactored code that all SVG renderers (except RenderSVGRoot) take this code path -> highlighting now works as expected. Don't use absoluteClippedOverlowRect() in the various RenderSVG*::absoluteQuads() methods, as we're loosing floating-point precision. Instead use localToAbsoluteQuad(strokeBoundingBox()) in order to highlight the unclipped, unfiltered, etc.. region that this renderer would paint. No new tests, as this is only manual testable - at least I didn't find any Inspector-Highlighting tests, if someone knows please mail me. * inspector/InspectorController.cpp: (WebCore::drawHighlightForLineBoxesOrSVGRenderer): (WebCore::InspectorController::drawNodeHighlight): * rendering/RenderSVGBlock.cpp: (WebCore::RenderSVGBlock::absoluteRects): ASSERT_NOT_REACHED() here. SVG should only be inspected through absoluteQuads(). * rendering/RenderSVGBlock.h: Add absoluteRects() in this base class for RenderForeignObject/RenderSVGText. * rendering/RenderSVGHiddenContainer.cpp: Remove absoluteRects() - RenderSVGModelObject already has it. * rendering/RenderSVGHiddenContainer.h: Ditto. * rendering/RenderSVGImage.cpp: (WebCore::RenderSVGImage::absoluteRects): ASSERT_NOT_REACHED() here. (WebCore::RenderSVGImage::absoluteQuads): Don't use absoluteClippedOverlowRect() but localToAbsoluteQuad(repaintRectInLocalCoordinates()). * rendering/RenderSVGImage.h: (WebCore::RenderSVGImage::objectBoundingBox): Inlined * rendering/RenderSVGInline.cpp: (WebCore::RenderSVGInline::absoluteQuads): Take RenderSVGText translation into account, allows inspecting <tspan>/<tref> etc. * rendering/RenderSVGInline.h: * rendering/RenderSVGModelObject.cpp: (WebCore::RenderSVGModelObject::absoluteRects): ASSERT_NOT_REACHED() here. (WebCore::RenderSVGModelObject::absoluteQuads): Don't use absoluteClippedOverlowRect() but localToAbsoluteQuad(repaintRectInLocalCoordinates()). * rendering/RenderSVGModelObject.h: * rendering/RenderSVGRoot.cpp: Fix typo in license s/aint/along. Need to touch this file in order to let Mac build. * rendering/RenderSVGText.cpp: (WebCore::RenderSVGText::mapLocalToContainer): Remove hack, which moved the transformState by x()/y(). Not needed anymore. (WebCore::RenderSVGText::absoluteQuads): Proper implementation, respecting x/y translation. * rendering/RenderSVGText.h: Reorder some functions. * rendering/SVGRenderSupport.h: Removed last virtual function strokeBoundingBox(). 2010-06-24 Kent Tamura <tkent@chromium.org> Unreviewed. Build fix for Tiger. * platform/mac/ThemeMac.mm: (WebCore::setControlSize): 2010-06-24 Kent Tamura <tkent@chromium.org> Unreviewed. Build fix for Tiger. * platform/mac/ThemeMac.mm: (WebCore::setControlSize): (WebCore::ThemeMac::inflateControlPaintRect): 2010-06-24 Kent Tamura <tkent@chromium.org> Unreviewed. Build fix for Chromium Mac. * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::isSpeechEnabled): 2010-06-24 Simon Hausmann <simon.hausmann@nokia.com> Unreviewed Symbian build fix. The QML WebKit integration needs to be part of QtWebKit.sis * WebCore.pro: Deploy qmlwebkitplugin.dll. 2010-06-24 Satish Sampath <satish@chromium.org> Reviewed by Kent Tamura. Add a speech button to input elements, no rendering or actions yet. Speech Input: Add a speech button to text input element (no rendering or actions yet) https://bugs.webkit.org/show_bug.cgi?id=40925 No new tests. Will create a layout test in a subsequent patch. * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): * css/CSSSelector.cpp: (WebCore::CSSSelector::pseudoId): (WebCore::nameToPseudoTypeMap): (WebCore::CSSSelector::extractPseudoType): * css/CSSSelector.h: (WebCore::CSSSelector::): * css/CSSValueKeywords.in: * css/html.css: (input::-webkit-input-speech-button): * dom/InputElement.h: * html/HTMLAttributeNames.in: * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::isSpeechEnabled): * html/HTMLInputElement.h: * platform/ThemeTypes.h: (WebCore::): * rendering/RenderTextControlSingleLine.cpp: (WebCore::RenderTextControlSingleLine::nodeAtPoint): (WebCore::RenderTextControlSingleLine::forwardEvent): (WebCore::RenderTextControlSingleLine::styleDidChange): (WebCore::RenderTextControlSingleLine::hasControlClip): (WebCore::RenderTextControlSingleLine::controlClipRect): (WebCore::RenderTextControlSingleLine::textBlockWidth): (WebCore::RenderTextControlSingleLine::preferredContentWidth): (WebCore::RenderTextControlSingleLine::adjustControlHeightBasedOnLineHeight): (WebCore::RenderTextControlSingleLine::createSubtreeIfNeeded): (WebCore::RenderTextControlSingleLine::createSpeechButtonStyle): (WebCore::RenderTextControlSingleLine::clientPaddingRight): * rendering/RenderTextControlSingleLine.h: * rendering/RenderTheme.cpp: (WebCore::RenderTheme::adjustStyle): (WebCore::RenderTheme::paint): (WebCore::RenderTheme::paintBorderOnly): (WebCore::RenderTheme::paintDecorations): * rendering/TextControlInnerElements.cpp: (WebCore::InputFieldSpeechButtonElement::InputFieldSpeechButtonElement): (WebCore::InputFieldSpeechButtonElement::create): (WebCore::InputFieldSpeechButtonElement::defaultEventHandler): * rendering/TextControlInnerElements.h: * rendering/style/RenderStyleConstants.h: (WebCore::): 2010-06-24 Kent Tamura <tkent@chromium.org> Reviewed by Adam Barth. [Mac] The upper button of <input type=number> has no visual effect on click https://bugs.webkit.org/show_bug.cgi?id=38380 Because we have no ways to draw an NSStepperCell with its up button highlighted, use HIThemeDrawButton() instead. Test: platform/mac/fast/forms/input-appearance-spinbutton-up.html * platform/mac/ThemeMac.mm: (WebCore::controlSizeFromPixelSize): New function. Made from a part of setControlSize(). (WebCore::setControlSize): (WebCore::convertControlStatesToThemeDrawState): (WebCore::paintStepper): Use HITheme API instead of NSStepperCell. (WebCore::ThemeMac::inflateControlPaintRect): Use controlSizeFromPixelSize(). 2010-06-24 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. Web Inspector: implement layout tests for debugger https://bugs.webkit.org/show_bug.cgi?id=40774 Test: inspector/debugger-pause-on-debugger-statement.html * bindings/js/ScriptDebugServer.cpp: remove unused obsolete code that deals with global listeners. (WebCore::ScriptDebugServer::ScriptDebugServer): (WebCore::ScriptDebugServer::removeListener): (WebCore::ScriptDebugServer::dispatchFunctionToListeners): (WebCore::ScriptDebugServer::pauseIfNeeded): (WebCore::ScriptDebugServer::didAddListener): (WebCore::ScriptDebugServer::didRemoveListener): * bindings/js/ScriptDebugServer.h: * platform/mac/EventLoopMac.mm: (WebCore::EventLoop::cycle): wait at most 10ms for new event, otherwise layout tests would hang because in their case there may be no events ever. 2010-06-24 Andrey Kosyakov <caseq@chromium.org> Reviewed by Yury Semikhatsky. Fixed evaluation & logging of null values in console. Changed handling of null and undefined in ScriptValue::toString() to match JSC bindings (i.e. "null" and "undefined" instead of ""). https://bugs.webkit.org/show_bug.cgi?id=40980 * bindings/v8/ScriptValue.cpp: (WebCore::ScriptValue::toString): * inspector/front-end/InjectedScript.js: (injectedScriptConstructor): 2010-06-24 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. Web Inspector: live edit doesn't work when resource tracking is off https://bugs.webkit.org/show_bug.cgi?id=41076 * inspector/front-end/ScriptView.js: (WebInspector.ScriptView.prototype._sourceIDForLine): implement this method for ScriptView, it's needed for editLine to work. 2010-06-23 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Sketch out InitialMode of HTML5 tree builder https://bugs.webkit.org/show_bug.cgi?id=41126 Transliterated from the spec. Currently doesn't do anything. Mostly an experiment to see where this goes. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::processToken): (WebCore::HTMLTreeBuilder::insertDoctype): (WebCore::HTMLTreeBuilder::insertComment): * html/HTMLTreeBuilder.h: 2010-06-23 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Add all the HTML5 tree builder insertion modes https://bugs.webkit.org/show_bug.cgi?id=41124 These are just copied verbatim from the spec. No tests because these don't do anything yet. * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::HTMLTreeBuilder): (WebCore::HTMLTreeBuilder::passTokenToLegacyParser): * html/HTMLTreeBuilder.h: (WebCore::HTMLTreeBuilder::): 2010-06-23 Eric Seidel <eric@webkit.org> Unreviewed. Fix namespace indent. Just whitespace changes. * dom/DocumentParser.h: (WebCore::DocumentParser::~DocumentParser): (WebCore::DocumentParser::isExecutingScript): (WebCore::DocumentParser::stopParsing): (WebCore::DocumentParser::processingData): (WebCore::DocumentParser::wantsRawData): (WebCore::DocumentParser::writeRawData): (WebCore::DocumentParser::wellFormed): (WebCore::DocumentParser::lineNumber): (WebCore::DocumentParser::columnNumber): (WebCore::DocumentParser::executeScriptsWaitingForStylesheets): (WebCore::DocumentParser::htmlTreeBuilder): (WebCore::DocumentParser::asHTMLDocumentParser): (WebCore::DocumentParser::inViewSourceMode): (WebCore::DocumentParser::setInViewSourceMode): (WebCore::DocumentParser::document): (WebCore::DocumentParser::xssAuditor): (WebCore::DocumentParser::setXSSAuditor): (WebCore::DocumentParser::DocumentParser): 2010-06-23 Eric Seidel <eric@webkit.org> Unreviewed. Speculative build fix for Qt. Move Document* down onto DocumentParser, since every DocumentParser needs one. https://bugs.webkit.org/show_bug.cgi?id=41117 XMLDocumentParserQt is a huge pile of donkey barf. I can't believe I ever r+'d the creation of this pile of copy/paste code. I clearly missed removing m_doc from this code as well and thus broke Qt. We really need to fix both XMLDocumentParserLibxml2 and XMLDocumentParserQt not to be so poorly abstracted so that if we're going to have two of them they can at least share some code. * dom/XMLDocumentParserQt.cpp: (WebCore::XMLDocumentParser::XMLDocumentParser): (WebCore::XMLDocumentParser::~XMLDocumentParser): (WebCore::XMLDocumentParser::doWrite): (WebCore::XMLDocumentParser::doEnd): (WebCore::XMLDocumentParser::parse): (WebCore::XMLDocumentParser::startDocument): (WebCore::XMLDocumentParser::parseStartElement): (WebCore::XMLDocumentParser::parseEndElement): (WebCore::XMLDocumentParser::parseProcessingInstruction): (WebCore::XMLDocumentParser::parseCdata): (WebCore::XMLDocumentParser::parseComment): (WebCore::XMLDocumentParser::parseDtd): 2010-06-23 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. Move Document* down onto DocumentParser, since every DocumentParser needs one. https://bugs.webkit.org/show_bug.cgi?id=41117 This eliminated the need for document() on HTMLDocumentParser. This paves the way for more code sharing between various DocumentParser subclasses. * dom/DocumentParser.h: (WebCore::DocumentParser::inViewSourceMode): (WebCore::DocumentParser::setInViewSourceMode): (WebCore::DocumentParser::document): (WebCore::DocumentParser::DocumentParser): * dom/XMLDocumentParser.cpp: (WebCore::XMLDocumentParser::isWMLDocument): (WebCore::XMLDocumentParser::pushCurrentNode): (WebCore::XMLDocumentParser::popCurrentNode): (WebCore::XMLDocumentParser::clearCurrentNodeStack): (WebCore::XMLDocumentParser::enterText): (WebCore::XMLDocumentParser::end): (WebCore::XMLDocumentParser::insertErrorMessageBlock): * dom/XMLDocumentParser.h: * dom/XMLDocumentParserLibxml2.cpp: (WebCore::XMLDocumentParser::XMLDocumentParser): (WebCore::XMLDocumentParser::~XMLDocumentParser): (WebCore::XMLDocumentParser::doWrite): (WebCore::XMLDocumentParser::startElementNs): (WebCore::XMLDocumentParser::endElementNs): (WebCore::XMLDocumentParser::processingInstruction): (WebCore::XMLDocumentParser::cdataBlock): (WebCore::XMLDocumentParser::comment): (WebCore::XMLDocumentParser::startDocument): (WebCore::XMLDocumentParser::internalSubset): (WebCore::XMLDocumentParser::initializeParserContext): (WebCore::XMLDocumentParser::doEnd): * html/HTMLDocumentParser.cpp: (WebCore::HTMLDocumentParser::HTMLDocumentParser): * html/HTMLDocumentParser.h: * html/LegacyHTMLDocumentParser.cpp: (WebCore::LegacyHTMLDocumentParser::LegacyHTMLDocumentParser): (WebCore::LegacyHTMLDocumentParser::begin): (WebCore::LegacyHTMLDocumentParser::scriptHandler): (WebCore::LegacyHTMLDocumentParser::scriptExecution): (WebCore::LegacyHTMLDocumentParser::parseTag): (WebCore::LegacyHTMLDocumentParser::continueProcessing): (WebCore::LegacyHTMLDocumentParser::willWriteHTML): (WebCore::LegacyHTMLDocumentParser::didWriteHTML): (WebCore::LegacyHTMLDocumentParser::write): (WebCore::LegacyHTMLDocumentParser::stopParsing): (WebCore::LegacyHTMLDocumentParser::timerFired): (WebCore::LegacyHTMLDocumentParser::end): (WebCore::LegacyHTMLDocumentParser::processToken): (WebCore::LegacyHTMLDocumentParser::processDoctypeToken): (WebCore::LegacyHTMLDocumentParser::executeScriptsWaitingForStylesheets): (WebCore::LegacyHTMLDocumentParser::executeExternalScriptsIfReady): (WebCore::LegacyHTMLDocumentParser::executeExternalScriptsTimerFired): * html/LegacyHTMLDocumentParser.h: * loader/ImageDocument.cpp: (WebCore::ImageDocumentParser::ImageDocumentParser): (WebCore::ImageDocumentParser::imageDocument): (WebCore::ImageDocumentParser::write): (WebCore::ImageDocumentParser::writeRawData): (WebCore::ImageDocumentParser::finish): (WebCore::ImageDocumentParser::finishWasCalled): (WebCore::ImageDocumentParser::isWaitingForScripts): (WebCore::ImageDocument::createParser): * loader/MediaDocument.cpp: (WebCore::MediaDocumentParser::MediaDocumentParser): (WebCore::MediaDocumentParser::createDocumentStructure): (WebCore::MediaDocumentParser::finish): (WebCore::MediaDocumentParser::finishWasCalled): * loader/PluginDocument.cpp: (WebCore::PluginDocumentParser::PluginDocumentParser): (WebCore::PluginDocumentParser::createDocumentStructure): (WebCore::PluginDocumentParser::writeRawData): (WebCore::PluginDocumentParser::finish): (WebCore::PluginDocumentParser::finishWasCalled): * loader/SinkDocument.cpp: (WebCore::SinkDocumentParser::SinkDocumentParser): * loader/TextDocument.cpp: (WebCore::TextDocumentParser::TextDocumentParser): (WebCore::TextDocumentParser::write): (WebCore::TextDocumentParser::finish): (WebCore::TextDocumentParser::finishWasCalled): 2010-06-23 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. Start to clean up DocumentParser interface https://bugs.webkit.org/show_bug.cgi?id=41114 The first of many cleanups needed to the DocumentParser interface. Rename executingScript() to isExecutingScript() and make it return a bool instead of an int. Also added a FIXME to XMLDocumentParser about implementing it and did some minor other cleanup to the XMLDocumentParser header. No functional change, thus no tests. * dom/Document.cpp: (WebCore::Document::open): * dom/DocumentParser.h: (WebCore::DocumentParser::isExecutingScript): * dom/XMLDocumentParser.h: (WebCore::XMLDocumentParser::wellFormed): * html/HTMLDocumentParser.cpp: (WebCore::HTMLDocumentParser::attemptToEnd): (WebCore::HTMLDocumentParser::endIfDelayed): (WebCore::HTMLDocumentParser::isExecutingScript): * html/HTMLDocumentParser.h: * html/LegacyHTMLDocumentParser.h: (WebCore::LegacyHTMLDocumentParser::isExecutingScript): 2010-06-22 Maciej Stachowiak <mjs@apple.com> Reviewed by Simon Fraser. Implement IDL attribute for HTML5 hidden https://bugs.webkit.org/show_bug.cgi?id=41039 Test: fast/html/hidden-attr-dom.html * html/HTMLElement.idl: Just add to the IDL file. [Reflect] takes care of the rest. 2010-06-23 Joanmarie Diggs <joanmarie.diggs@gmail.com> Reviewed by Chris Fleizach. [Gtk] nameFromChildren is obsolete https://bugs.webkit.org/show_bug.cgi?id=36128 Look to the AtkText interface implemented by the objects in question. Test: platform/gtk/accessibility/name-from-label.html * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: (webkit_accessible_get_name): (webkit_accessible_table_get_column_description): (webkit_accessible_table_get_row_description): 2010-06-23 Kwang Yul Seo <skyul@company100.net> Reviewed by Kent Tamura. [BREWMP] Port FileSystem https://bugs.webkit.org/show_bug.cgi?id=34323 Port FileSystem with IFileMgr interface. * platform/FileSystem.h: * platform/brew/FileSystemBrew.cpp: Added. (WebCore::getFileSize): (WebCore::getFileModificationTime): (WebCore::fileExists): (WebCore::deleteFile): (WebCore::deleteEmptyDirectory): (WebCore::pathByAppendingComponent): (WebCore::fileSystemRepresentation): (WebCore::canonicalPath): (WebCore::makeAllDirectories): (WebCore::homeDirectoryPath): (WebCore::pathGetFileName): (WebCore::directoryName): (WebCore::openTemporaryFile): (WebCore::closeFile): (WebCore::writeToFile): (WebCore::unloadModule): (WebCore::listDirectory): 2010-06-23 Alexendar Pavlov <apavlov@chromium.org> Reviewed by David Hyatt. Swap checks in Position::isCandidate so that the less expensive nodeIsUserSelectNode (node && node->renderer() && node->renderer()->style()->userSelect() == SELECT_NONE) came first. (Was Web Inspector: Hangup when expanding elements with enormous text node content in Elements panel). https://bugs.webkit.org/show_bug.cgi?id=35926 * dom/Position.cpp: (WebCore::Position::isCandidate): * dom/PositionIterator.cpp: (WebCore::PositionIterator::isCandidate): 2010-06-23 Kwang Yul Seo <skyul@company100.net> Reviewed by Kent Tamura. [BREWMP] Add PopupMenu implementation https://bugs.webkit.org/show_bug.cgi?id=40226 Delegate PopupMenu handling to ChromeClientBrew. * page/brew/ChromeClientBrew.h: Added. * platform/PopupMenu.h: * platform/brew/PopupMenuBrew.cpp: Added. (WebCore::PopupMenu::PopupMenu): (WebCore::PopupMenu::~PopupMenu): (WebCore::PopupMenu::show): (WebCore::PopupMenu::hide): (WebCore::PopupMenu::updateFromElement): (WebCore::PopupMenu::itemWritingDirectionIsNatural): 2010-06-23 Kenneth Russell <kbr@google.com> Reviewed by Dimitri Glazkov. Implement format conversions in texImage2D and texSubImage2D taking HTML data https://bugs.webkit.org/show_bug.cgi?id=40319 Generalized code supporting premultiplication of alpha and vertical flip to pack texture data into requested format and type. Handled incoming image data of various formats, RGBA and BGRA in particular, both to reduce the number of temporary copies during texture upload and to support premultiplying alpha for the texImage2D and texSubImage2D entry points taking ArrayBufferView in a subsequent bug. Added test case exercising all combinations of format/type combinations, premultiplication of alpha, and Image/ImageData upload. (Incorporated pnglib.js under fast/canvas/webgl/resources/ to be able to generate Image elements programmatically.) Tested in Safari on Mac OS X and in Chromium on Mac OS X, Windows and Linux. Test: fast/canvas/webgl/tex-image-with-format-and-type.html * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::readPixels): (WebCore::WebGLRenderingContext::texImage2DImpl): (WebCore::WebGLRenderingContext::texImage2D): (WebCore::WebGLRenderingContext::texSubImage2DImpl): (WebCore::WebGLRenderingContext::texSubImage2D): (WebCore::WebGLRenderingContext::validateTexFuncFormatAndType): (WebCore::WebGLRenderingContext::validateTexFuncParameters): * platform/graphics/GraphicsContext3D.cpp: (WebCore::GraphicsContext3D::computeFormatAndTypeParameters): (WebCore::GraphicsContext3D::extractImageData): (WebCore::GraphicsContext3D::flipVertically): (WebCore::doUnpackingAndPacking): (WebCore::doPacking): (WebCore::GraphicsContext3D::packPixels): * platform/graphics/GraphicsContext3D.h: (WebCore::GraphicsContext3D::): * platform/graphics/cg/GraphicsContext3DCG.cpp: (WebCore::GraphicsContext3D::getImageData): * platform/graphics/mac/GraphicsContext3DMac.mm: (WebCore::narrowInternalFormat): (WebCore::GraphicsContext3D::texImage2D): * platform/graphics/qt/GraphicsContext3DQt.cpp: (WebCore::GraphicsContext3D::getImageData): * platform/graphics/skia/GraphicsContext3DSkia.cpp: (WebCore::GraphicsContext3D::getImageData): 2010-06-23 Stephen White <senorblanco@chromium.org> Unreviewed; correcting bad patch. In my haste to land r61710, I mistakenly landed the wrong version, in which a chunk of code was moved. This patch moves that chunk of code to where it was in the patch that was reviewed. Mea culpa. * rendering/RenderBoxModelObject.cpp: (WebCore::ImageQualityController::shouldPaintAtLowQuality): 2010-06-23 Stephen White <senorblanco@chromium.org> Reviewed by David Hyatt. This is a tweak to the resize algorithm introduced in r61341, and is a fix for the regression described in https://bugs.webkit.org/show_bug.cgi?id=41036 The goal is to bring back the some of old behaviour, without regressing too much of the performance gains in r61341. The old algorithm was: - on first resize, draw in high quality and record the paint time - if we've already drawn at this size, use the same quality as last time - on subsequent resizes, if the resize occurs within X ms of the previous one, draw at low quality and set a timer (one timer per image). - when each timer expires, draw that image at high quality The r61341 algorithm was: - on first resize, draw the image in low quality, add it to a list of resized images, and set a timer (one timer for all images) - when the timer expires, redraw all resized images in high quality The new algorithm is: - on first resize, if no other animated resizes are outstanding, draw in high quality and set the timer (one timer for all images) - if any images have been resized to two different sizes in the last X ms, draw all resized images in low quality and kick the timer forward - when the timer expires, if any animated resizes occured, redraw all resized images in high quality, and reset the flag This should cause GUIMark and the IE9 demos to have good performance after the first frame, while other pages with only static resizes should be unaffected. * rendering/RenderBoxModelObject.cpp: Change the LastPaintTimeMap to a LastPaintSizeMap: we now record the last size an image was resized to, rather than the time it was painted (the time actually became redundant in r61341 when I added the check for m_timer.isActive(): we only care if anything is resizing while the timer is active). (WebCore::ImageQualityController::ImageQualityController): Add an initializer for the m_animatedResizeIsActive flag. (WebCore::ImageQualityController::objectDestroyed): Reset the m_animatedResizeIsActive flag if this was the last object in the list. (WebCore::ImageQualityController::highQualityRepaintTimerFired): Only repaint all the images if there was an animated resize (otherwise, everything is already high quality). (WebCore::ImageQualityController::shouldPaintAtLowQuality): Implement the above algorithm. 2010-06-23 Abhishek Arya <inferno@chromium.org> Reviewed by Kenneth Rohde Christiansen. Bad cast after DOM mutation in RenderMenuList https://bugs.webkit.org/show_bug.cgi?id=40828 Firing the onchange event on select which changes its size > 1 causes the select object to change from a menulist to a listbox. However, when propogating the events, we do a bad cast assuming the object will remain a menulist. Added proper checks to make sure we check the renderer after the onchange is fired and propogate the event based on correct object type. Test: fast/events/select-onchange-crash.html * dom/SelectElement.cpp: (WebCore::SelectElement::setSelectedIndex): 2010-06-23 Andy Estes <aestes@apple.com> Reviewed by Alexey Proskuryakov. <rdar://problem/8107855> Prevent a crash in WebCore when removing an object element with an invalid data URL in in a listener to its beforeload event. https://bugs.webkit.org/show_bug.cgi?id=41054 Tests: fast/dom/beforeload/remove-bad-object-in-beforeload-listener.html * html/HTMLObjectElement.cpp: (WebCore::HTMLObjectElement::renderFallbackContent): Exit early if the object element is not in the document. * rendering/RenderEmbeddedObject.cpp: (WebCore::RenderEmbeddedObject::updateWidget): If RenderWidget::destroy() was called during processing of onbeforeload, do not proceed with loading the object. 2010-06-23 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> Reviewed by Xan Lopez. [gtk] web fonts not loaded properly in scribd html5 reader https://bugs.webkit.org/show_bug.cgi?id=38758 Drop filling the pattern with default values, because this restricts the matching more than we want. * platform/graphics/cairo/FontCacheCairo.cpp: (WebCore::FontCache::createFontPlatformData): 2010-06-23 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> Reviewed by Xan Lopez. [gtk] web fonts not loaded properly in scribd html5 reader https://bugs.webkit.org/show_bug.cgi?id=38758 Also special-case `sans' amd `mono', which are aliases commonly used in GTK+ applications. * platform/graphics/cairo/FontCacheCairo.cpp: (WebCore::isWellKnownFontName): 2010-06-23 Justin Schuh <jschuh@chromium.org> Unreviewed, rolling out r61695. http://trac.webkit.org/changeset/61695 https://bugs.webkit.org/show_bug.cgi?id=40798 61695 broke all the Linux builds. * platform/image-decoders/png/PNGImageDecoder.cpp: (WebCore::PNGImageDecoder::rowAvailable): 2010-06-23 Kevin Ollivier <kevino@theolliviers.com> Reviewed by Darin Adler. Fix PluginViewNone.cpp compilation for ports that also compile PluginView.cpp https://bugs.webkit.org/show_bug.cgi?id=37939 * plugins/PluginViewNone.cpp: (WebCore::PluginView::handleFocusInEvent): (WebCore::PluginView::handleFocusOutEvent): (WebCore::PluginView::keepAlive): (WebCore::PluginView::privateBrowsingStateChanged): (WebCore::PluginView::setJavaScriptPaused): 2010-06-23 Cris Neckar <cdn@chromium.org> Reviewed by Darin Fisher. [Chromium] Out of bounds write in WebCore::PNGImageDecoder::rowAvailable https://bugs.webkit.org/show_bug.cgi?id=40798 Catches error in row callback for libPNG when extra rows are returned. Test: fast/images/png-extra-row-crash.html * platform/image-decoders/png/PNGImageDecoder.cpp: (WebCore::PNGImageDecoder::rowAvailable): 2010-06-23 James Robinson <jamesr@chromium.org> Reviewed by Dan Bernstein. Do not set needsLayout when the style attribute changes on an SVG element https://bugs.webkit.org/show_bug.cgi?id=40366 SVGSVGElement::svgAttributeChanged was incorrectly calling renderer()->setNeedsLayout(true) whenever the styleAttr changed on its element. This could happen during layout in some circumstances due to lazy style attribute synchronization. When it did, it could cause the layout flags to become inconsistent. See the test case for details. Changes to an element's style attribute always mark an element as needing layout anyway so this call was redundant. Test: fast/repaint/svg-layout-root-style-attr-update.html * svg/SVGStyledElement.cpp: (WebCore::SVGStyledElement::isKnownAttribute): 2010-06-23 Simon Fraser <simon.fraser@apple.com> Reviewed by Dan Bernstein. r61215 broke Acid3 https://bugs.webkit.org/show_bug.cgi?id=41034 The code added in r61215, which tests whether the root renderer will fill the entire viewport, should not run for subframes. So bail from RenderView::paintBoxDecorations() if document()->ownerElement() is not null. The old code was trying to do this by checking 'elt', but that ends up as null after the for loop above. We can also bail early if the is no FrameView(). Test: fast/frames/paint-iframe-background.html * rendering/RenderView.cpp: (WebCore::RenderView::paintBoxDecorations): 2010-06-23 Pavel Feldman <pfeldman@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: do not reset profiles panel on navigation. https://bugs.webkit.org/show_bug.cgi?id=41068 * inspector/InspectorController.cpp: (WebCore::InspectorController::didCommitLoad): * inspector/InspectorFrontend.cpp: (WebCore::InspectorFrontend::resetProfilesPanel): * inspector/InspectorFrontend.h: * inspector/front-end/ProfilesPanel.js: (WebInspector.ProfilesPanel): (WebInspector.ProfilesPanel.prototype.populateInterface): (WebInspector.ProfilesPanel.prototype.profilerWasDisabled): (WebInspector.ProfilesPanel.prototype._reset): (WebInspector.ProfilesPanel.prototype._clearProfiles): * inspector/front-end/inspector.js: (WebInspector.resetProfilesPanel): 2010-06-23 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. Web Inspector: InspectorController should be added only once as ScriptDebugListener to ScriptDebugServer. https://bugs.webkit.org/show_bug.cgi?id=41070 * inspector/InspectorController.cpp: (WebCore::InspectorController::connectFrontend): (WebCore::InspectorController::disconnectFrontend): (WebCore::InspectorController::enableDebuggerFromFrontend): * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel): don't call InspectorBackend.enableDebugger if debugger is always enabled, InspectorController will do this on its side when the front end is connected. 2010-06-23 Pavel Podivilov <podivilov@chromium.org> Reviewed by Yury Semikhatsky. Clear breakpoints before restoring them, not after. https://bugs.webkit.org/show_bug.cgi?id=41071 * inspector/InspectorController.cpp: (WebCore::InspectorController::enableDebuggerFromFrontend): 2010-06-23 Benjamin Poulain <benjamin.poulain@nokia.com> Reviewed by Kenneth Rohde Christiansen. Do not render the full frame when there is some elements with fixed positioning https://bugs.webkit.org/show_bug.cgi?id=33150 Do not render the full frame when there is some elements with fixed positioning https://bugs.webkit.org/show_bug.cgi?id=33150 The frame view take into acount the list of fixed object when scrolling the view. If the number of object is lower than a certain threshold, the pixel are blitted, and the invalidated area updated. * page/FrameView.cpp: (WebCore::FrameView::addFixedObject): (WebCore::FrameView::removeFixedObject): (WebCore::FrameView::scrollContentsFastPath): * page/FrameView.h: * platform/ScrollView.cpp: (WebCore::ScrollView::scrollContents): (WebCore::ScrollView::scrollContentsFastPath): * platform/ScrollView.h: * rendering/RenderLayer.cpp: (WebCore::RenderLayer::repaintRectIncludingDescendants): * rendering/RenderLayer.h: * rendering/RenderObject.cpp: (WebCore::RenderObject::styleWillChange): 2010-06-23 Mikhail Naganov <mnaganov@chromium.org> Reviewed by Pavel Feldman. Web Inspector: Fix displaying of several CPU profiles with the same name. https://bugs.webkit.org/show_bug.cgi?id=40992 * inspector/front-end/ProfilesPanel.js: (WebInspector.ProfileGroupSidebarTreeElement.prototype.onselect): 2010-06-23 Adam Barth <abarth@webkit.org> Unreviewed. clean-header-guards that were made dirty by recent renames. * html/HTMLDocumentParser.h: * html/HTMLPreloadScanner.h: * html/HTMLTokenizer.h: * html/HTMLTreeBuilder.h: * html/LegacyHTMLDocumentParser.h: * html/LegacyHTMLTreeBuilder.h: * html/LegacyPreloadScanner.h: 2010-06-23 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Rename LegacyHTMLTreeConstructor to LegacyHTMLTreeBuilder https://bugs.webkit.org/show_bug.cgi?id=41053 There was some debate about whether to call this class (and the non-legacy version) "tree builder" or "tree constructor". Maciej pointed out that other implementations (including Mozilla and HTML5Lib) call it a tree builder. The path of least resistance seems to be call it that for now. * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * dom/Document.cpp: * dom/DocumentParser.h: (WebCore::DocumentParser::htmlTreeConstructor): * html/HTMLDocumentParser.cpp: (WebCore::HTMLDocumentParser::htmlTreeConstructor): * html/HTMLDocumentParser.h: * html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::removedFromTree): * html/HTMLInputElement.cpp: * html/HTMLMeterElement.cpp: * html/HTMLProgressElement.cpp: * html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::HTMLTreeBuilder): * html/HTMLTreeBuilder.h: (WebCore::HTMLTreeBuilder::legacyTreeConstructor): * html/LegacyHTMLDocumentParser.cpp: (WebCore::LegacyHTMLDocumentParser::LegacyHTMLDocumentParser): * html/LegacyHTMLDocumentParser.h: (WebCore::LegacyHTMLDocumentParser::htmlTreeConstructor): * html/LegacyHTMLTreeBuilder.cpp: Copied from WebCore/html/LegacyHTMLTreeConstructor.cpp. (WebCore::LegacyHTMLTreeBuilder::LegacyHTMLTreeBuilder): (WebCore::LegacyHTMLTreeBuilder::~LegacyHTMLTreeBuilder): (WebCore::LegacyHTMLTreeBuilder::reset): (WebCore::LegacyHTMLTreeBuilder::setCurrent): (WebCore::LegacyHTMLTreeBuilder::limitDepth): (WebCore::LegacyHTMLTreeBuilder::insertNodeAfterLimitDepth): (WebCore::LegacyHTMLTreeBuilder::parseToken): (WebCore::LegacyHTMLTreeBuilder::parseDoctypeToken): (WebCore::LegacyHTMLTreeBuilder::insertNode): (WebCore::LegacyHTMLTreeBuilder::handleError): (WebCore::LegacyHTMLTreeBuilder::textCreateErrorCheck): (WebCore::LegacyHTMLTreeBuilder::commentCreateErrorCheck): (WebCore::LegacyHTMLTreeBuilder::headCreateErrorCheck): (WebCore::LegacyHTMLTreeBuilder::bodyCreateErrorCheck): (WebCore::LegacyHTMLTreeBuilder::framesetCreateErrorCheck): (WebCore::LegacyHTMLTreeBuilder::formCreateErrorCheck): (WebCore::LegacyHTMLTreeBuilder::isindexCreateErrorCheck): (WebCore::LegacyHTMLTreeBuilder::selectCreateErrorCheck): (WebCore::LegacyHTMLTreeBuilder::ddCreateErrorCheck): (WebCore::LegacyHTMLTreeBuilder::dtCreateErrorCheck): (WebCore::LegacyHTMLTreeBuilder::rpCreateErrorCheck): (WebCore::LegacyHTMLTreeBuilder::rtCreateErrorCheck): (WebCore::LegacyHTMLTreeBuilder::nestedCreateErrorCheck): (WebCore::LegacyHTMLTreeBuilder::nestedPCloserCreateErrorCheck): (WebCore::LegacyHTMLTreeBuilder::nestedStyleCreateErrorCheck): (WebCore::LegacyHTMLTreeBuilder::tableCellCreateErrorCheck): (WebCore::LegacyHTMLTreeBuilder::tableSectionCreateErrorCheck): (WebCore::LegacyHTMLTreeBuilder::noembedCreateErrorCheck): (WebCore::LegacyHTMLTreeBuilder::noframesCreateErrorCheck): (WebCore::LegacyHTMLTreeBuilder::noscriptCreateErrorCheck): (WebCore::LegacyHTMLTreeBuilder::pCloserCreateErrorCheck): (WebCore::LegacyHTMLTreeBuilder::pCloserStrictCreateErrorCheck): (WebCore::LegacyHTMLTreeBuilder::mapCreateErrorCheck): (WebCore::LegacyHTMLTreeBuilder::getNode): (WebCore::LegacyHTMLTreeBuilder::allowNestedRedundantTag): (WebCore::LegacyHTMLTreeBuilder::processCloseTag): (WebCore::LegacyHTMLTreeBuilder::isHeadingTag): (WebCore::LegacyHTMLTreeBuilder::isInline): (WebCore::LegacyHTMLTreeBuilder::isResidualStyleTag): (WebCore::LegacyHTMLTreeBuilder::isAffectedByResidualStyle): (WebCore::LegacyHTMLTreeBuilder::handleResidualStyleCloseTagAcrossBlocks): (WebCore::LegacyHTMLTreeBuilder::reopenResidualStyleTags): (WebCore::LegacyHTMLTreeBuilder::pushBlock): (WebCore::LegacyHTMLTreeBuilder::popBlock): (WebCore::LegacyHTMLTreeBuilder::popOneBlockCommon): (WebCore::LegacyHTMLTreeBuilder::popOneBlock): (WebCore::LegacyHTMLTreeBuilder::moveOneBlockToStack): (WebCore::LegacyHTMLTreeBuilder::checkIfHasPElementInScope): (WebCore::LegacyHTMLTreeBuilder::popInlineBlocks): (WebCore::LegacyHTMLTreeBuilder::freeBlock): (WebCore::LegacyHTMLTreeBuilder::createHead): (WebCore::LegacyHTMLTreeBuilder::handleIsindex): (WebCore::LegacyHTMLTreeBuilder::startBody): (WebCore::LegacyHTMLTreeBuilder::finished): (WebCore::LegacyHTMLTreeBuilder::reportErrorToConsole): * html/LegacyHTMLTreeBuilder.h: Copied from WebCore/html/LegacyHTMLTreeConstructor.h. * html/LegacyHTMLTreeConstructor.cpp: Removed. * html/LegacyHTMLTreeConstructor.h: Removed. * html/StepRange.cpp: * html/ValidityState.cpp: * rendering/RenderSlider.cpp: 2010-06-23 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Rename the preload scanners https://bugs.webkit.org/show_bug.cgi?id=41052 Renames PreloadScanner to LegacyPreloadScanner because this code is now off by default. Also, rename HTML5PreloadScanner to HTMLPreloadScanner. We're not calling it PreloadScanner because we've factored out the CSSPreloadScanner and the HTMLPreloadScanner from the original PreloadScanner. * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * html/HTML5PreloadScanner.cpp: Removed. * html/HTML5PreloadScanner.h: Removed. * html/HTMLDocumentParser.cpp: (WebCore::HTMLDocumentParser::pumpTokenizer): * html/HTMLDocumentParser.h: * html/HTMLPreloadScanner.cpp: Copied from WebCore/html/HTML5PreloadScanner.cpp. (WebCore::HTMLPreloadScanner::HTMLPreloadScanner): (WebCore::HTMLPreloadScanner::appendToEnd): (WebCore::HTMLPreloadScanner::scan): (WebCore::HTMLPreloadScanner::processToken): (WebCore::HTMLPreloadScanner::scanningBody): * html/HTMLPreloadScanner.h: Copied from WebCore/html/HTML5PreloadScanner.h. * html/LegacyHTMLDocumentParser.cpp: (WebCore::LegacyHTMLDocumentParser::scriptHandler): (WebCore::LegacyHTMLDocumentParser::scriptExecution): * html/LegacyHTMLDocumentParser.h: * html/LegacyPreloadScanner.cpp: Copied from WebCore/html/PreloadScanner.cpp. (WebCore::LegacyPreloadScanner::LegacyPreloadScanner): (WebCore::LegacyPreloadScanner::~LegacyPreloadScanner): (WebCore::LegacyPreloadScanner::begin): (WebCore::LegacyPreloadScanner::end): (WebCore::LegacyPreloadScanner::reset): (WebCore::LegacyPreloadScanner::scanningBody): (WebCore::LegacyPreloadScanner::write): (WebCore::LegacyPreloadScanner::clearLastCharacters): (WebCore::LegacyPreloadScanner::rememberCharacter): (WebCore::LegacyPreloadScanner::lastCharactersMatch): (WebCore::LegacyPreloadScanner::consumeEntity): (WebCore::LegacyPreloadScanner::tokenize): (WebCore::LegacyPreloadScanner::processAttribute): (WebCore::LegacyPreloadScanner::emitCharacter): (WebCore::LegacyPreloadScanner::tokenizeCSS): (WebCore::LegacyPreloadScanner::emitTag): (WebCore::LegacyPreloadScanner::emitCSSRule): * html/LegacyPreloadScanner.h: Copied from WebCore/html/PreloadScanner.h. * html/PreloadScanner.cpp: Removed. * html/PreloadScanner.h: Removed. * page/XSSAuditor.cpp: (WebCore::XSSAuditor::decodeHTMLEntities): 2010-06-23 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Yet more HTML5 => HTML renames https://bugs.webkit.org/show_bug.cgi?id=41051 This patch renames HTML5DocumentParser to HTMLDocumentParser and HTML5TreeBuilder to HTMLTreeBuilder. There was some discussion about whether to use the name HTMLTreeBuilder or HTMLTreeConstructor, but tree builder seems to be the dominate name in other implementations. * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * dom/DocumentFragment.cpp: (WebCore::DocumentFragment::parseHTML): * html/HTML5DocumentParser.cpp: Removed. * html/HTML5DocumentParser.h: Removed. * html/HTML5PreloadScanner.cpp: (WebCore::HTML5PreloadScanner::scan): (WebCore::HTML5PreloadScanner::processToken): * html/HTML5TreeBuilder.cpp: Removed. * html/HTML5TreeBuilder.h: Removed. * html/HTMLDocument.cpp: (WebCore::HTMLDocument::createParser): * html/HTMLDocumentParser.cpp: Copied from WebCore/html/HTML5DocumentParser.cpp. (WebCore::HTMLDocumentParser::HTMLDocumentParser): (WebCore::HTMLDocumentParser::~HTMLDocumentParser): (WebCore::HTMLDocumentParser::begin): (WebCore::HTMLDocumentParser::stopParsing): (WebCore::HTMLDocumentParser::processingData): (WebCore::HTMLDocumentParser::pumpTokenizerIfPossible): (WebCore::HTMLDocumentParser::isScheduledForResume): (WebCore::HTMLDocumentParser::resumeParsingAfterYield): (WebCore::HTMLDocumentParser::runScriptsForPausedTreeConstructor): (WebCore::HTMLDocumentParser::pumpTokenizer): (WebCore::HTMLDocumentParser::willPumpLexer): (WebCore::HTMLDocumentParser::didPumpLexer): (WebCore::HTMLDocumentParser::write): (WebCore::HTMLDocumentParser::end): (WebCore::HTMLDocumentParser::attemptToEnd): (WebCore::HTMLDocumentParser::endIfDelayed): (WebCore::HTMLDocumentParser::finish): (WebCore::HTMLDocumentParser::finishWasCalled): (WebCore::HTMLDocumentParser::executingScript): (WebCore::HTMLDocumentParser::inScriptExecution): (WebCore::HTMLDocumentParser::lineNumber): (WebCore::HTMLDocumentParser::columnNumber): (WebCore::HTMLDocumentParser::htmlTreeConstructor): (WebCore::HTMLDocumentParser::isWaitingForScripts): (WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution): (WebCore::HTMLDocumentParser::watchForLoad): (WebCore::HTMLDocumentParser::stopWatchingForLoad): (WebCore::HTMLDocumentParser::shouldLoadExternalScriptFromSrc): (WebCore::HTMLDocumentParser::notifyFinished): (WebCore::HTMLDocumentParser::executeScriptsWaitingForStylesheets): (WebCore::HTMLDocumentParser::script): * html/HTMLDocumentParser.h: Copied from WebCore/html/HTML5DocumentParser.h. * html/HTMLParserScheduler.cpp: (WebCore::HTMLParserScheduler::HTMLParserScheduler): * html/HTMLParserScheduler.h: * html/HTMLTreeBuilder.cpp: Copied from WebCore/html/HTML5TreeBuilder.cpp. (WebCore::HTMLTreeBuilder::HTMLTreeBuilder): (WebCore::HTMLTreeBuilder::~HTMLTreeBuilder): (WebCore::HTMLTreeBuilder::handleScriptStartTag): (WebCore::HTMLTreeBuilder::handleScriptEndTag): (WebCore::HTMLTreeBuilder::takeScriptToProcess): (WebCore::HTMLTreeBuilder::adjustedLexerState): (WebCore::HTMLTreeBuilder::passTokenToLegacyParser): (WebCore::HTMLTreeBuilder::constructTreeFromToken): (WebCore::HTMLTreeBuilder::processToken): (WebCore::HTMLTreeBuilder::finished): (WebCore::HTMLTreeBuilder::isScriptingFlagEnabled): * html/HTMLTreeBuilder.h: Copied from WebCore/html/HTML5TreeBuilder.h. 2010-06-23 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. More HTML5 => HTML renames https://bugs.webkit.org/show_bug.cgi?id=41049 This patch renames HTML5ScriptRunner, HTML5ScriptRunnerHost, and HTML5Token to remove the "5" from their names. These clases aren't specific to HTML5 and will be used going forward. * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * html/CSSPreloadScanner.cpp: (WebCore::CSSPreloadScanner::scan): * html/CSSPreloadScanner.h: * html/HTML5DocumentParser.cpp: (WebCore::HTML5DocumentParser::HTML5DocumentParser): (WebCore::HTML5DocumentParser::notifyFinished): * html/HTML5DocumentParser.h: * html/HTML5PreloadScanner.cpp: (WebCore::HTMLNames::PreloadTask::PreloadTask): (WebCore::HTMLNames::PreloadTask::processAttributes): (WebCore::HTML5PreloadScanner::processToken): * html/HTML5PreloadScanner.h: * html/HTML5ScriptRunner.cpp: Removed. * html/HTML5ScriptRunner.h: Removed. * html/HTML5ScriptRunnerHost.h: Removed. * html/HTML5Token.h: Removed. * html/HTML5TreeBuilder.cpp: (WebCore::convertToOldStyle): (WebCore::HTML5TreeBuilder::handleScriptEndTag): (WebCore::HTML5TreeBuilder::passTokenToLegacyParser): (WebCore::HTML5TreeBuilder::constructTreeFromToken): (WebCore::HTML5TreeBuilder::processToken): * html/HTML5TreeBuilder.h: * html/HTMLScriptRunner.cpp: Copied from WebCore/html/HTML5ScriptRunner.cpp. (WebCore::HTMLScriptRunner::HTMLScriptRunner): (WebCore::HTMLScriptRunner::~HTMLScriptRunner): (WebCore::HTMLScriptRunner::sourceFromPendingScript): (WebCore::HTMLScriptRunner::isPendingScriptReady): (WebCore::HTMLScriptRunner::executePendingScript): (WebCore::HTMLScriptRunner::executeScript): (WebCore::HTMLScriptRunner::hasScriptsWaitingForLoad): (WebCore::HTMLScriptRunner::watchForLoad): (WebCore::HTMLScriptRunner::stopWatchingForLoad): (WebCore::HTMLScriptRunner::execute): (WebCore::HTMLScriptRunner::haveParsingBlockingScript): (WebCore::HTMLScriptRunner::executeParsingBlockingScripts): (WebCore::HTMLScriptRunner::executeScriptsWaitingForLoad): (WebCore::HTMLScriptRunner::executeScriptsWaitingForStylesheets): (WebCore::HTMLScriptRunner::requestScript): (WebCore::HTMLScriptRunner::runScript): * html/HTMLScriptRunner.h: Copied from WebCore/html/HTML5ScriptRunner.h. * html/HTMLScriptRunnerHost.h: Copied from WebCore/html/HTML5ScriptRunnerHost.h. (WebCore::HTMLScriptRunnerHost::~HTMLScriptRunnerHost): * html/HTMLToken.h: Copied from WebCore/html/HTML5Token.h. (WebCore::HTMLToken::HTMLToken): * html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::nextToken): (WebCore::HTMLTokenizer::emitCharacter): (WebCore::HTMLTokenizer::emitCurrentToken): (WebCore::HTMLTokenizer::shouldEmitBufferedCharacterToken): * html/HTMLTokenizer.h: 2010-06-23 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Rename HTML5EntityParser to HTMLEntityParser https://bugs.webkit.org/show_bug.cgi?id=41048 Mostly the result of do-webcore-rename, but I tweaked the header guard and the name of the free function. * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * html/HTML5EntityParser.cpp: Removed. * html/HTML5EntityParser.h: Removed. * html/HTMLEntityParser.cpp: Copied from WebCore/html/HTML5EntityParser.cpp. (WebCore::consumeHTMLEntity): * html/HTMLEntityParser.h: Copied from WebCore/html/HTML5EntityParser.h. * html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::processEntity): (WebCore::HTMLTokenizer::nextToken): 2010-06-22 Yuta Kitamura <yutak@chromium.org> Reviewed by Alexey Proskuryakov. Add a new class that stores information about WebSocket handshake response. In the future, instances of the new class will be passed to the Web Inspector so that it will be able to display information about WebSocket handshake response. WebSocket: Add WebSocketHandshakeResponse https://bugs.webkit.org/show_bug.cgi?id=38728 Test: websocket/tests/handshake-fail-by-no-cr.html * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * websockets/WebSocketHandshake.cpp: (WebCore::trimConsoleMessage): (WebCore::WebSocketHandshake::readServerHandshake): (WebCore::WebSocketHandshake::serverHandshakeResponse): (WebCore::WebSocketHandshake::readStatusLine): Moved from extractResponseCode. Add more error checks and make error messages more descriptive. (WebCore::WebSocketHandshake::readHTTPHeaders): (WebCore::WebSocketHandshake::processHeaders): * websockets/WebSocketHandshake.h: * websockets/WebSocketHandshakeResponse.cpp: Added. (WebCore::WebSocketHandshakeResponse::ChallengeResponse::ChallengeResponse): (WebCore::WebSocketHandshakeResponse::ChallengeResponse::set): (WebCore::WebSocketHandshakeResponse::WebSocketHandshakeResponse): (WebCore::WebSocketHandshakeResponse::~WebSocketHandshakeResponse): (WebCore::WebSocketHandshakeResponse::statusCode): (WebCore::WebSocketHandshakeResponse::setStatusCode): (WebCore::WebSocketHandshakeResponse::statusText): (WebCore::WebSocketHandshakeResponse::setStatusText): (WebCore::WebSocketHandshakeResponse::headerFields): (WebCore::WebSocketHandshakeResponse::addHeaderField): (WebCore::WebSocketHandshakeResponse::clearHeaderFields): (WebCore::WebSocketHandshakeResponse::challengeResponse): (WebCore::WebSocketHandshakeResponse::setChallengeResponse): * websockets/WebSocketHandshakeResponse.h: Added. 2010-06-23 Yuzo Fujishima <yuzo@google.com> Reviewed by Shinichiro Hamaji. Implement page format data programming interface. The final goal is to implement CSS Paged Media Module Level 3 (http://dev.w3.org/csswg/css3-page/). To begin with, this change adds methods to know: - if page box is visible, - the page area rectangle, and - preferred page size. https://bugs.webkit.org/show_bug.cgi?id=37538 Test: printing/page-format-data.html * WebCore.base.exp: * css/CSSParser.cpp: (WebCore::CSSParser::parseSizeParameter): * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): (WebCore::CSSStyleSelector::applyPageSizeProperty): (WebCore::CSSStyleSelector::pageSizeFromName): (WebCore::CSSStyleSelector::mmLength): (WebCore::CSSStyleSelector::inchLength): * css/CSSStyleSelector.h: * css/html.css: (@page): * dom/Document.cpp: (WebCore::Document::isPageBoxVisible): (WebCore::Document::pageAreaRectInPixels): (WebCore::Document::preferredPageSizeInPixels): * dom/Document.h: * page/PrintContext.cpp: (WebCore::PrintContext::isPageBoxVisible): (WebCore::PrintContext::pageAreaRectInPixels): (WebCore::PrintContext::preferredPageSizeInPixels): * page/PrintContext.h: * rendering/style/RenderStyle.h: (WebCore::InheritedFlags::pageSize): (WebCore::InheritedFlags::setPageSize): * rendering/style/StyleRareNonInheritedData.h: 2010-06-23 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Rename lexer and m_lexer to tokenizer and m_tokenizer, respectively https://bugs.webkit.org/show_bug.cgi?id=41046 This is a follow up to the recent HTML5Lexer => HTMLTokenizer rename. * html/HTML5DocumentParser.cpp: (WebCore::HTML5DocumentParser::HTML5DocumentParser): (WebCore::HTML5DocumentParser::begin): (WebCore::HTML5DocumentParser::pumpLexer): (WebCore::HTML5DocumentParser::willPumpLexer): (WebCore::HTML5DocumentParser::didPumpLexer): (WebCore::HTML5DocumentParser::lineNumber): (WebCore::HTML5DocumentParser::columnNumber): * html/HTML5DocumentParser.h: * html/HTML5PreloadScanner.cpp: (WebCore::HTML5PreloadScanner::scan): (WebCore::HTML5PreloadScanner::processToken): * html/HTML5PreloadScanner.h: * html/HTML5TreeBuilder.cpp: (WebCore::HTML5TreeBuilder::HTML5TreeBuilder): (WebCore::HTML5TreeBuilder::handleScriptStartTag): (WebCore::HTML5TreeBuilder::passTokenToLegacyParser): * html/HTML5TreeBuilder.h: * html/HTMLTokenizer.h: * html/LegacyHTMLDocumentParser.h: 2010-06-23 Nikolas Zimmermann <nzimmermann@rim.com> Reviewed by Eric Seidel. Reproducible crash in com.apple.WebCore 0x01ed3784 WebCore::RenderLineBoxList::appendLineBox(WebCore::InlineFlowBox*) + 36 https://bugs.webkit.org/show_bug.cgi?id=40953 REGRESSION (r58209-58231): Memory corruption with invalid SVG https://bugs.webkit.org/show_bug.cgi?id=40173 Fix several crashes, all related to <foreignObject> and/or invalid SVG documents. - Only allow <svg> nodes, as direct children of a <foreignObject>, not any other "partial" SVG content. - Assure to create RenderSVGRoot objects for <svg> nodes in <foreignObject>, treat them as "outermost SVG elements". - Never allow any partial SVG content to appear in any document. Only <svg> elements are allowed. Tests: svg/custom/bug45331.svg svg/foreignObject/disallowed-svg-nodes-as-direct-children.svg svg/foreignObject/no-crash-with-svg-content-in-html-document.svg svg/foreignObject/svg-document-as-direct-child.svg svg/foreignObject/svg-document-in-html-document.svg svg/foreignObject/text-tref-02-b.svg * dom/Element.cpp: Added childShouldCreateRenderer, with ENABLE(SVG) guards. (WebCore::Element::childShouldCreateRenderer): Only create a renderer for a SVG child, if we're a SVG element, or if the child is a <svg> element. * dom/Element.h: Added childShouldCreateRenderer, with ENABLE(SVG) guards. * svg/SVGForeignObjectElement.cpp: (WebCore::SVGForeignObjectElement::childShouldCreateRenderer): Disallow arbitary SVG content, only <svg> elements are allowed as direct children of a <foreignObject> * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::isOutermostSVG): Be sure to create RenderSVGRoot objects for <svg> elements inside <foreignObject> 2010-06-22 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Rename HTML5Lexer to HTMLTokenizer https://bugs.webkit.org/show_bug.cgi?id=41045 This might be slightly confusing given that the old class was called HTMLTokenizer, but it matches the terminology in the HTML5 spec. * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * html/HTML5DocumentParser.cpp: (WebCore::HTML5DocumentParser::HTML5DocumentParser): (WebCore::HTML5DocumentParser::pumpLexer): * html/HTML5DocumentParser.h: * html/HTML5Lexer.cpp: Removed. * html/HTML5Lexer.h: Removed. * html/HTML5PreloadScanner.cpp: (WebCore::HTML5PreloadScanner::processToken): * html/HTML5PreloadScanner.h: * html/HTML5TreeBuilder.cpp: (WebCore::HTML5TreeBuilder::HTML5TreeBuilder): (WebCore::HTML5TreeBuilder::handleScriptStartTag): (WebCore::HTML5TreeBuilder::adjustedLexerState): * html/HTML5TreeBuilder.h: * html/HTMLTokenizer.cpp: Copied from WebCore/html/HTML5Lexer.cpp. (WebCore::HTMLNames::isEndTagBufferingState): (WebCore::HTMLTokenizer::HTMLTokenizer): (WebCore::HTMLTokenizer::~HTMLTokenizer): (WebCore::HTMLTokenizer::reset): (WebCore::HTMLTokenizer::processEntity): (WebCore::HTMLTokenizer::nextToken): (WebCore::HTMLTokenizer::temporaryBufferIs): (WebCore::HTMLTokenizer::addToPossibleEndTag): (WebCore::HTMLTokenizer::isAppropriateEndTag): (WebCore::HTMLTokenizer::emitCharacter): (WebCore::HTMLTokenizer::emitCodePoint): (WebCore::HTMLTokenizer::emitParseError): (WebCore::HTMLTokenizer::emitCurrentToken): (WebCore::HTMLTokenizer::shouldEmitBufferedCharacterToken): * html/HTMLTokenizer.h: Copied from WebCore/html/HTML5Lexer.h. 2010-06-22 Simon Hausmann <simon.hausmann@nokia.com> Unreviewed Qt/Symbian build fix. Fix "make clean" to not try to execute clean commands for the extra targets we use to simulate "make install". * WebCore.pro: Use no_clean in CONFIG of extra compilers. 2010-06-22 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. Run clean-header-guards to fix some header guards https://bugs.webkit.org/show_bug.cgi?id=41044 No functional changes, thus no tests. This entire change was generated by running clean-header-guards, and then reverting changes to files which shouldn't be changed. Those which are left all should be updated. Some of these changes are just fixing 755 permissions to be 644, since it seems various files have the wrong execute bit which don't need it. clean-header-guards made those (welcome) permission fixes unintentionally. * bindings/v8/custom/V8HTMLAudioElementConstructor.h: * bindings/v8/custom/V8HTMLImageElementConstructor.h: * bindings/v8/custom/V8HTMLOptionElementConstructor.h: * dom/Touch.h: * dom/TouchList.h: * dom/XMLDocumentParser.h: * dom/XMLDocumentParserScope.h: * html/HTML5DocumentParser.h: * html/LegacyHTMLTreeConstructor.h: * loader/CrossOriginPreflightResultCache.h: * page/OriginAccessEntry.h: * page/win/FrameWin.h: * platform/ThreadTimers.h: * platform/chromium/KeyboardCodes.h: * platform/graphics/chromium/FontPlatformDataChromiumWin.h: * platform/graphics/chromium/FontUtilsChromiumWin.h: * platform/graphics/filters/FEBlend.h: * platform/graphics/filters/FEColorMatrix.h: * platform/graphics/filters/FEComponentTransfer.h: * platform/graphics/filters/FEComposite.h: * platform/graphics/gstreamer/DataSourceGStreamer.h: * platform/graphics/gstreamer/VideoSinkGStreamer.h: - I checked, this crazy define was not referenced anywhere else. It's safe to change the name. :) * platform/graphics/haiku/FontPlatformData.h: * platform/graphics/qt/FontCustomPlatformData.h: * platform/graphics/skia/SkiaFontWin.h: * platform/graphics/win/GraphicsLayerCACF.h: * platform/graphics/win/QTMovieWinTimer.h: * platform/graphics/win/RefCountedGDIHandle.h: * platform/graphics/win/WebLayer.h: * platform/graphics/win/WebTiledLayer.h: * platform/graphics/wince/FontPlatformData.h: * platform/graphics/wx/FontPlatformData.h: * platform/network/CredentialStorage.h: * platform/network/cf/FormDataStreamCFNet.h: * platform/network/curl/FormDataStreamCurl.h: * platform/network/qt/DnsPrefetchHelper.h: * platform/network/qt/QNetworkReplyHandler.h: * platform/win/PlatformScrollBar.h: * plugins/PluginDatabase.h: * plugins/PluginPackage.h: * plugins/PluginStream.h: * plugins/qt/PluginContainerQt.h: * plugins/symbian/npinterface.h: * rendering/RenderSelectionInfo.h: * rendering/SVGRenderSupport.h: * storage/IDBObjectStoreImpl.h: * svg/animation/SMILTimeContainer.h: * wml/WMLErrorHandling.h: 2010-06-22 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Rename HTMLDocumentParser to LegacyHTMLDocumentParser https://bugs.webkit.org/show_bug.cgi?id=41043 As requested by Darin Adler. * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * css/CSSStyleSheet.cpp: (WebCore::CSSStyleSheet::checkLoaded): * dom/Document.cpp: (WebCore::Document::write): * dom/DocumentFragment.cpp: * dom/DocumentParser.h: (WebCore::DocumentParser::asHTMLDocumentParser): * dom/XMLDocumentParserLibxml2.cpp: * dom/XMLDocumentParserQt.cpp: * html/HTML5Lexer.h: (WebCore::HTML5Lexer::columnNumber): * html/HTML5TreeBuilder.cpp: * html/HTMLDocument.cpp: (WebCore::HTMLDocument::createParser): * html/HTMLDocumentParser.cpp: Removed. * html/HTMLDocumentParser.h: Removed. * html/HTMLFormControlElement.cpp: * html/HTMLParserScheduler.cpp: (WebCore::parserChunkSize): * html/HTMLViewSourceDocument.cpp: (WebCore::HTMLViewSourceDocument::createParser): (WebCore::HTMLViewSourceDocument::addViewSourceToken): * html/HTMLViewSourceDocument.h: * html/LegacyHTMLDocumentParser.cpp: Copied from WebCore/html/HTMLDocumentParser.cpp. (WebCore::LegacyHTMLDocumentParser::LegacyHTMLDocumentParser): (WebCore::LegacyHTMLDocumentParser::reset): (WebCore::LegacyHTMLDocumentParser::begin): (WebCore::LegacyHTMLDocumentParser::setForceSynchronous): (WebCore::LegacyHTMLDocumentParser::processListing): (WebCore::LegacyHTMLDocumentParser::parseNonHTMLText): (WebCore::LegacyHTMLDocumentParser::scriptHandler): (WebCore::LegacyHTMLDocumentParser::scriptExecution): (WebCore::LegacyHTMLDocumentParser::parseComment): (WebCore::LegacyHTMLDocumentParser::parseServer): (WebCore::LegacyHTMLDocumentParser::parseProcessingInstruction): (WebCore::LegacyHTMLDocumentParser::parseText): (WebCore::LegacyHTMLDocumentParser::parseEntity): (WebCore::LegacyHTMLDocumentParser::parseDoctype): (WebCore::LegacyHTMLDocumentParser::parseTag): (WebCore::LegacyHTMLDocumentParser::continueProcessing): (WebCore::LegacyHTMLDocumentParser::advance): (WebCore::LegacyHTMLDocumentParser::willWriteHTML): (WebCore::LegacyHTMLDocumentParser::didWriteHTML): (WebCore::LegacyHTMLDocumentParser::write): (WebCore::LegacyHTMLDocumentParser::stopParsing): (WebCore::LegacyHTMLDocumentParser::processingData): (WebCore::LegacyHTMLDocumentParser::timerFired): (WebCore::LegacyHTMLDocumentParser::end): (WebCore::LegacyHTMLDocumentParser::finish): (WebCore::LegacyHTMLDocumentParser::finishWasCalled): (WebCore::LegacyHTMLDocumentParser::processToken): (WebCore::LegacyHTMLDocumentParser::processDoctypeToken): (WebCore::LegacyHTMLDocumentParser::~LegacyHTMLDocumentParser): (WebCore::LegacyHTMLDocumentParser::enlargeBuffer): (WebCore::LegacyHTMLDocumentParser::enlargeScriptBuffer): (WebCore::LegacyHTMLDocumentParser::executeScriptsWaitingForStylesheets): (WebCore::LegacyHTMLDocumentParser::notifyFinished): (WebCore::LegacyHTMLDocumentParser::executeExternalScriptsIfReady): (WebCore::LegacyHTMLDocumentParser::executeExternalScriptsTimerFired): (WebCore::LegacyHTMLDocumentParser::continueExecutingExternalScripts): (WebCore::LegacyHTMLDocumentParser::isWaitingForScripts): (WebCore::LegacyHTMLDocumentParser::setSrc): (WebCore::parseLegacyHTMLDocumentFragment): * html/LegacyHTMLDocumentParser.h: Copied from WebCore/html/HTMLDocumentParser.h. (WebCore::LegacyHTMLDocumentParser::asHTMLDocumentParser): * html/LegacyHTMLTreeConstructor.cpp: (WebCore::LegacyHTMLTreeConstructor::reportErrorToConsole): * html/LegacyHTMLTreeConstructor.h: * loader/FTPDirectoryDocument.cpp: (WebCore::FTPDirectoryDocumentParser::FTPDirectoryDocumentParser): (WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate): (WebCore::FTPDirectoryDocumentParser::finish): * page/XSSAuditor.h: 2010-06-22 Shinichiro Hamaji <hamaji@chromium.org> Unreviewed attempt to fix the windows build. Split out HTML5DocumentParser yield/resume logic into a separate class https://bugs.webkit.org/show_bug.cgi?id=41018 * WebCore.vcproj/WebCore.vcproj: 2010-06-22 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. Split out HTML5DocumentParser yield/resume logic into a separate class https://bugs.webkit.org/show_bug.cgi?id=41018 The HTML5DocumentParser is just the coordinator, and shouldn't have any real parsing logic of his own. Continuing along that path, I'm moving the when-to-yield/resume logic out into a separate class. I could have create a new HTMLParserSchedulerHost virtual interface to allow the HTMLParserScheduler to talk back to the HTML5DocumentParser, but instead I just exposed the one method it needs (resumeParsing()) as a public method. Since no code besides HTMLDocument (and DocumentFrament) ever should know about the HTML5DocumentParser DocumentParser subclass, no class should ever see the resumeParsing() method anyway. Most of this change is just moving code from HTML5DocumentParser to the new HTMLParserScheduler. Some of this change is wrapping previous direct access to m_continueNextChunkTimer.isActive() with isScheduledForResume(). * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.xcodeproj/project.pbxproj: * html/HTML5DocumentParser.cpp: (WebCore::HTML5DocumentParser::HTML5DocumentParser): (WebCore::HTML5DocumentParser::stopParsing): (WebCore::HTML5DocumentParser::processingData): (WebCore::HTML5DocumentParser::pumpLexerIfPossible): (WebCore::HTML5DocumentParser::isScheduledForResume): (WebCore::HTML5DocumentParser::resumeParsing): (WebCore::HTML5DocumentParser::pumpLexer): (WebCore::HTML5DocumentParser::end): (WebCore::HTML5DocumentParser::attemptToEnd): (WebCore::HTML5DocumentParser::endIfDelayed): * html/HTML5DocumentParser.h: (WebCore::HTML5DocumentParser::document): - Exposed for HTMLParserScheduler. * html/HTMLParserScheduler.cpp: Added. (WebCore::parserTimeLimit): Moved from HTML5DocumentParser. (WebCore::parserChunkSize): ditto. (WebCore::HTMLParserScheduler::HTMLParserScheduler): (WebCore::HTMLParserScheduler::~HTMLParserScheduler): (WebCore::isLayoutTimerActive): (WebCore::HTMLParserScheduler::continueNextChunkTimerFired): - Moved from HTML5DocumentParser. * html/HTMLParserScheduler.h: Added. (WebCore::HTMLParserScheduler::PumpSession::PumpSession): - Moved from HTML5DocumentParser. (WebCore::HTMLParserScheduler::shouldContinueParsing): (WebCore::HTMLParserScheduler::isScheduledForResume): 2010-06-22 Pavel Feldman <pfeldman@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: move nodeByPath from InjectedScript to InspectorBackend. https://bugs.webkit.org/show_bug.cgi?id=40988 * inspector/InjectedScriptHost.cpp: * inspector/InjectedScriptHost.h: * inspector/InjectedScriptHost.idl: * inspector/InspectorBackend.cpp: (WebCore::InspectorBackend::pushNodeByPathToFrontend): * inspector/InspectorBackend.h: * inspector/InspectorBackend.idl: * inspector/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::pushNodeByPathToFrontend): (WebCore::InspectorDOMAgent::nodeForPath): * inspector/InspectorDOMAgent.h: * inspector/InspectorFrontend.cpp: (WebCore::InspectorFrontend::didPushNodeByPathToFrontend): * inspector/InspectorFrontend.h: * inspector/front-end/DOMAgent.js: * inspector/front-end/ElementsPanel.js: (WebInspector.ElementsPanel.prototype.setDocument): * inspector/front-end/InjectedScript.js: * inspector/front-end/InjectedScriptAccess.js: 2010-06-22 David Levin <levin@chromium.org> Reviewed by Alexey Proskuryakov. REGRESSION: (r47291): Upload progress events are not fired for simple cross-site XHR. https://bugs.webkit.org/show_bug.cgi?id=39029 Specifically, WebKit should fire upload events if one or more event listeners are registered on the XMLHttpRequestUpload object when send is called in an async manner. * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::createRequest): Allow upload events to be fired when there are handlers for them in the cross-origin simple request case. 2010-06-22 Kent Tamura <tkent@chromium.org> Reviewed by Adam Barth. Fix uninitialized SubframeLoader::m_containsPlugins https://bugs.webkit.org/show_bug.cgi?id=41035 * loader/SubframeLoader.cpp: (WebCore::SubframeLoader::SubframeLoader): Initialize m_containsPlugins with false. 2010-06-22 Kinuko Yasuda <kinuko@chromium.org> Reviewed by Adam Barth. Add BlobBuilder.idl to expose BlobBuilder interface https://bugs.webkit.org/show_bug.cgi?id=40593 (Resubmitting with the correct file set.) BlobBuilder is defined in FileAPI's FileWriter spec. (http://dev.w3.org/2009/dap/file-system/file-writer.html) Also removes the ENABLE_FILE_WRITER ifdef guard for BlobBuilder. Tests: http/tests/local/blob/send-data-blob.html http/tests/local/blob/send-hybrid-blob.html http/tests/local/blob/send-sliced-data-blob.html * Android.derived.jscbindings.mk: * Android.derived.v8bindings.mk: * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * GNUmakefile.am: * WebCore.gypi: * WebCore.pri: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * html/BlobBuilder.cpp: (WebCore::BlobBuilder::append): * html/BlobBuilder.h: * html/BlobBuilder.idl: Added. * page/DOMWindow.idl: 2010-06-22 Kent Tamura <tkent@chromium.org> Unreviewed, build fix for r61648. * platform/graphics/GraphicsContext3D.h: 2010-06-22 Vangelis Kokkevis <vangelis@chromium.org> Reviewed by Kent Tamura. Define GraphicsContext3D::platformLayer() for all remaining (non PLATFORM(MAC)) ports to get RenderLayerBacking.cpp compiling again. https://bugs.webkit.org/show_bug.cgi?id=41026 * platform/graphics/GraphicsContext3D.h: (WebCore::GraphicsContext3D::platformLayer): 2010-06-22 Eric Seidel <eric@webkit.org> Unreviewed. Rolling out http://trac.webkit.org/changeset/61638 made a few tests crash. Make PendingScript hold a CachedResourceClient open for its lifetime https://bugs.webkit.org/show_bug.cgi?id=40968 * html/HTML5DocumentParser.cpp: (WebCore::HTML5DocumentParser::watchForLoad): (WebCore::HTML5DocumentParser::notifyFinished): * html/HTML5ScriptRunner.cpp: (WebCore::HTML5ScriptRunner::~HTML5ScriptRunner): (WebCore::HTML5ScriptRunner::sourceFromPendingScript): (WebCore::HTML5ScriptRunner::isPendingScriptReady): (WebCore::HTML5ScriptRunner::executePendingScript): (WebCore::HTML5ScriptRunner::hasScriptsWaitingForLoad): (WebCore::HTML5ScriptRunner::watchForLoad): (WebCore::HTML5ScriptRunner::stopWatchingForLoad): (WebCore::HTML5ScriptRunner::executeScriptsWaitingForLoad): (WebCore::HTML5ScriptRunner::executeScriptsWaitingForStylesheets): (WebCore::HTML5ScriptRunner::requestScript): * html/HTML5ScriptRunner.h: (WebCore::HTML5ScriptRunner::PendingScript::): (WebCore::HTML5ScriptRunner::PendingScript::PendingScript): (WebCore::HTML5ScriptRunner::PendingScript::watchingForLoad): * html/HTML5ScriptRunnerHost.h: 2010-06-22 Adele Peterson <adele@apple.com> Reviewed by Darin Adler. Fix for Crash when the renderer for the button in <input type="number"> goes away during event handling https://bugs.webkit.org/show_bug.cgi?id=41013 Test: fast/forms/input-number-crash.html * rendering/TextControlInnerElements.cpp: (WebCore::SpinButtonElement::defaultEventHandler): Nil check the RenderBox since its possible the renderer has gone away during event handling. 2010-06-22 Tony Gentilcore <tonyg@chromium.org> Reviewed by Eric Seidel. Pull script line number from DocumentParser instead of pushing it to ScriptController https://bugs.webkit.org/show_bug.cgi?id=40649 This approach is cleaner and improves WebCore/benchmarks/parser/html-parser.html by ~2%. Tests: fast/js/script-line-number.html * bindings/js/ScriptController.cpp: (WebCore::ScriptController::ScriptController): (WebCore::ScriptController::eventHandlerLineNumber): * bindings/js/ScriptController.h: * bindings/v8/ScriptController.cpp: (WebCore::ScriptController::eventHandlerLineNumber): (WebCore::ScriptController::eventHandlerColumnNumber): * bindings/v8/ScriptController.h: * bindings/v8/ScriptEventListener.cpp: (WebCore::createAttributeEventListener): * bindings/v8/V8Proxy.h: * dom/XMLDocumentParserLibxml2.cpp: (WebCore::XMLDocumentParser::startElementNs): * html/HTML5DocumentParser.cpp: (WebCore::HTML5DocumentParser::pumpLexer): * html/HTMLDocumentParser.cpp: (WebCore::HTMLDocumentParser::processToken): 2010-06-22 Tony Gentilcore <tonyg@chromium.org> Reviewed by Eric Seidel. Make PendingScript hold a CachedResourceClient open for its lifetime https://bugs.webkit.org/show_bug.cgi?id=40968 This replaces the mechanism introduced in r61374 with a simpler approach from preventing unexpected purges; always keep a client open. This will approach will allow deferred scripts to add a client after the resource may have already been loaded without having to worry about the buffer being purged in the meantime. No new tests because making a CachedResource purge itself is not testable from a LayoutTest. * html/HTML5DocumentParser.cpp: (WebCore::HTML5DocumentParser::watchForLoad): (WebCore::HTML5DocumentParser::notifyFinished): * html/HTML5ScriptRunner.cpp: (WebCore::HTML5ScriptRunner::~HTML5ScriptRunner): (WebCore::HTML5ScriptRunner::sourceFromPendingScript): (WebCore::HTML5ScriptRunner::isPendingScriptReady): (WebCore::HTML5ScriptRunner::executePendingScript): (WebCore::HTML5ScriptRunner::watchForLoad): (WebCore::HTML5ScriptRunner::stopWatchingForLoad): (WebCore::HTML5ScriptRunner::executeScriptsWaitingForLoad): (WebCore::HTML5ScriptRunner::executeScriptsWaitingForStylesheets): (WebCore::HTML5ScriptRunner::requestScript): * html/HTML5ScriptRunner.h: (WebCore::HTML5ScriptRunner::PendingScript::PendingScript): (WebCore::HTML5ScriptRunner::PendingScript::~PendingScript): (WebCore::HTML5ScriptRunner::PendingScript::setCachedScript): (WebCore::HTML5ScriptRunner::PendingScript::cachedScript): (WebCore::HTML5ScriptRunner::PendingScript::notifyFinished): * html/HTML5ScriptRunnerHost.h: 2010-06-22 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. Fragment parsing needs to go through the HTML5 Parser code path https://bugs.webkit.org/show_bug.cgi?id=40645 Added a new HTML5DocumentParser::parseHTMLDocumentFragment codepath which optionally calls through to the old fragment parsing path, now renamed parseLegacyHTMLDocumentFragment. * dom/Element.cpp: (WebCore::Element::createContextualFragment): - Use document()->createDocumentFragment() instead of DocumentFragment::create() to match other callers (and not depend on DocumentFragment.h). - Update call to parseHTMLDocumentFragment to use the new HTML5 parser codepath. * dom/MappedAttributeEntry.h: - Add a FIXME about this horrible enum placement. Sadly this will cause a world-rebuild for everyone. * html/HTML5DocumentParser.cpp: (WebCore::HTML5DocumentParser::HTML5DocumentParser): (WebCore::HTML5DocumentParser::runScriptsForPausedTreeConstructor): - The main pumpLexer function has gotten to large. Move the script running logic into this new function. - Handle the case where we have no m_scriptRunner (fragment case). (WebCore::HTML5DocumentParser::pumpLexer): - Use new runScriptsForPausedTreeConstructor(). (WebCore::HTML5DocumentParser::executingScript): (WebCore::HTML5DocumentParser::inScriptExecution): - New function to handle the case where m_scriptRunner is null. (WebCore::HTML5DocumentParser::resumeParsingAfterScriptExecution): - Use inScriptExecution() instead of m_scriptRunner->inScriptExecution(). (WebCore::HTML5DocumentParser::executeScript): ditto. (WebCore::HTML5DocumentParser::notifyFinished): ditto. (WebCore::HTML5DocumentParser::executeScriptsWaitingForStylesheets): ditto. (WebCore::shouldUseLegacyParser): - Helper function to check the html5ParserEnabled() setting. (WebCore::HTML5DocumentParser::parseHTMLDocumentFragment): - Run HTML5DocumentParser in fragment mode, or optionally run the legacy parser if !html5ParserEnabled(). * html/HTML5DocumentParser.h: * html/HTML5TreeBuilder.cpp: (WebCore::HTML5TreeBuilder::HTML5TreeBuilder): (WebCore::HTML5TreeBuilder::passTokenToLegacyParser): - Implement the FragmentScriptingNotAllowed hack for platform/Pasteboard. * html/HTML5TreeBuilder.h: * html/HTMLDocumentParser.cpp: (WebCore::parseLegacyHTMLDocumentFragment): - Renamed from parseHTMLDocumentFragment * html/HTMLDocumentParser.h: * html/HTMLElement.cpp: (WebCore::HTMLElement::insertAdjacentHTML): - Call HTML5DocumentParser::parseHTMLDocumentFragment. * platform/mac/PasteboardMac.mm: (WebCore::Pasteboard::documentFragment): ditto. * xml/XSLTProcessor.cpp: (WebCore::createFragmentFromSource): ditto. 2010-06-22 Chris Marrin <cmarrin@apple.com> Reviewed by Simon Fraser. https://bugs.webkit.org/show_bug.cgi?id=40643 Final phase of moving ownership of WebGLLayer to GraphicsContext3D. As it turns out, I still have to have a separate CGLContextObj for rendering because Core Animation composites in a separate thread, so we need to disconnect WebGL rendering from CA compositing. But this change is still worthwhile because it reduces dependencies and makes it easier to port WebGL to other platforms. No new tests since this is just restructuring and the current tests are all still valid and do a sufficient test of WebGL functionality. * platform/graphics/GraphicsContext3D.h: (WebCore::GraphicsContext3D::platformLayer): * platform/graphics/GraphicsLayer.h: (WebCore::GraphicsLayer::setContentsToWebGL): (WebCore::GraphicsLayer::setWebGLNeedsDisplay): * platform/graphics/mac/GraphicsContext3DMac.mm: Add creation of WebGLLayer (WebCore::GraphicsContext3D::GraphicsContext3D): * platform/graphics/mac/GraphicsLayerCA.h: (WebCore::GraphicsLayerCA::): * platform/graphics/mac/GraphicsLayerCA.mm: Handle setting of WebGLLayer as content the same as for MediaLayer. Also changed WebGL related names for clarity (WebCore::GraphicsLayerCA::GraphicsLayerCA): (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): (WebCore::GraphicsLayerCA::updateContentsWebGLLayer): (WebCore::GraphicsLayerCA::setContentsToWebGL): (WebCore::GraphicsLayerCA::setWebGLNeedsDisplay): * platform/graphics/mac/WebGLLayer.h: * platform/graphics/mac/WebGLLayer.mm: Got rid of storage for context and texture, now just store GraphicsContext3D and get them from there when needed (-[WebGLLayer copyCGLPixelFormatForDisplayMask:]): (-[WebGLLayer copyCGLContextForPixelFormat:]): (-[WebGLLayer drawInCGLContext:pixelFormat:forLayerTime:displayTime:]): (-[WebGLLayer copyImageSnapshotWithColorSpace:]): * rendering/RenderLayerBacking.cpp: Changed init of WebGL contentsLayer to pass WebGLLayer rather than GraphicsContext3D (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): (WebCore::RenderLayerBacking::rendererContentChanged): 2010-06-22 Darin Adler <darin@apple.com> Reviewed by Dave Hyatt. * html/HTMLTableCellElement.cpp: (WebCore::HTMLTableCellElement::parseMappedAttribute): Removed incorrect FIXME comments. 2010-06-22 Dan Bernstein <mitz@apple.com> Reviewed by Anders Carlsson. <rdar://problem/8119403> REGRESSION (r61548): PLT is almost 1.5% slower, Google page cycler slower https://bugs.webkit.org/show_bug.cgi?id=41012 * rendering/RenderBlockLineLayout.cpp: (WebCore::RenderBlock::computeHorizontalPositionsForLine): Removed a redundant statement that was left over in the original patch and resulted in double the calls to RenderText::width() here. (WebCore::RenderBlock::findNextLineBreak): Changed the order of evaluating conditions for a potential speedup. 2010-06-22 Darin Adler <darin@apple.com> Reviewed by Alexey Proskuryakov. Alexey asked me to take out the autorelease pools because he believes that there is no code that should be running using Objective-C autorelease. Most likely, the code that is triggering these stderr messages is incorrect, and that bug should be fixed instead. * workers/WorkerRunLoop.cpp: (WebCore::WorkerRunLoop::run): Roll out use of AutodrainedPool. 2010-06-22 Darin Adler <darin@apple.com> Reviewed by Brady Eidson. Fix autorelease problem seen when running worker regression tests. We were seeing logs to stderr saying autorelease was used without an autorelease pool being set up. * workers/WorkerRunLoop.cpp: (WebCore::WorkerRunLoop::run): Use an AutodrainedPool as the file thread, icon database, and database thread do. No effect on platforms other than Mac. 2010-06-22 Chris Fleizach <cfleizach@apple.com> Reviewed by Darin Adler. AX: If an element that is a continuation is removed, its parent tree is not notified appropriately that their children have changed https://bugs.webkit.org/show_bug.cgi?id=41000 Test: accessibility/removed-continuation-element-causes-crash.html * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::updateChildrenIfNecessary): * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::childrenChanged): (WebCore::AccessibilityRenderObject::addChildren): * accessibility/AccessibilityRenderObject.h: 2010-06-22 Peter Kasting <pkasting@google.com> Reviewed by Adam Barth. Override setFailed() in each image decoder to clean up any temporary objects. https://bugs.webkit.org/show_bug.cgi?id=35411 In a few cases, we need to be careful to avoid deleting objects until after they're no longer needed. These cases usually mean some jumping through hoops, to the detriment of code simplicity. No layout tests because this does not change the visible output of decoding in any way. * platform/image-decoders/ImageDecoder.h: (WebCore::ImageDecoder::setData): * platform/image-decoders/bmp/BMPImageDecoder.cpp: (WebCore::BMPImageDecoder::setFailed): (WebCore::BMPImageDecoder::decode): * platform/image-decoders/bmp/BMPImageDecoder.h: * platform/image-decoders/bmp/BMPImageReader.cpp: (WebCore::BMPImageReader::decodeBMP): (WebCore::BMPImageReader::readInfoHeaderSize): (WebCore::BMPImageReader::processInfoHeader): (WebCore::BMPImageReader::readInfoHeader): (WebCore::BMPImageReader::processBitmasks): (WebCore::BMPImageReader::processColorTable): (WebCore::BMPImageReader::processRLEData): (WebCore::BMPImageReader::processNonRLEData): * platform/image-decoders/bmp/BMPImageReader.h: (WebCore::BMPImageReader::): * platform/image-decoders/gif/GIFImageDecoder.cpp: (WebCore::GIFImageDecoder::setFailed): (WebCore::GIFImageDecoder::decode): * platform/image-decoders/gif/GIFImageDecoder.h: * platform/image-decoders/ico/ICOImageDecoder.cpp: (WebCore::ICOImageDecoder::setFailed): (WebCore::ICOImageDecoder::decode): * platform/image-decoders/ico/ICOImageDecoder.h: * platform/image-decoders/jpeg/JPEGImageDecoder.cpp: (WebCore::JPEGImageReader::decode): (WebCore::JPEGImageDecoder::setFailed): (WebCore::JPEGImageDecoder::decode): * platform/image-decoders/jpeg/JPEGImageDecoder.h: * platform/image-decoders/png/PNGImageDecoder.cpp: (WebCore::PNGImageReader::decode): (WebCore::PNGImageDecoder::PNGImageDecoder): (WebCore::PNGImageDecoder::setFailed): (WebCore::PNGImageDecoder::headerAvailable): (WebCore::PNGImageDecoder::decode): * platform/image-decoders/png/PNGImageDecoder.h: 2010-06-04 Dimitri Glazkov <dglazkov@chromium.org> Reviewed by Darin Adler. Remove side effects of form submission and prepare FormDataBuilder for splitting up. https://bugs.webkit.org/show_bug.cgi?id=40184 Refactoring, covered by existing tests. * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::prepareFormSubmission): * Changed to use new accessors on FormDataBuilder; * Simplified the logic around action URL; * Removed form submission side effect of element's enctype property being updated when submitting a mailto form; * Removed unnecessary updating of action URL for mailto forms. (WebCore::HTMLFormElement::submit): Moved action URL check into prepareFormSubmission. (WebCore::HTMLFormElement::parseMappedAttribute): Updated to use new methods on FormDataBuilder. * html/HTMLFormElement.h: Removed decls for isMailtoForm and dataEncoding methods; moved m_target and m_url to FormDataBuilder. * platform/network/FormData.cpp: (WebCore::FormData::appendDOMFormData): Removed unnecessary instantiation of FormDataBuilder. * platform/network/FormDataBuilder.cpp: (WebCore::FormDataBuilder::parseAction): Moved from HTMLFormControl. * platform/network/FormDataBuilder.h: (WebCore::FormDataBuilder::action): Ditto. (WebCore::FormDataBuilder::target): Ditto. (WebCore::FormDataBuilder::setTarget): Ditto. 2010-06-22 Yuta Kitamura <yutak@chromium.org> Reviewed by Alexey Proskuryakov. Fix WebSocketHandshakeRequest so that it fits the new handshake protocol. The new WebSocket specification (draft 76 and later) allows a browser to send header fields in arbitrary order. Thus we can use a HTTPHeaderMap to store header fields instead of Vector of pairs of a field name and a field value. This patch also does refactoring of WebSocketHandshakeRequest class to make it simpler and easier to use. Fix WebSocketHandshakeRequest so that it fits the new handshake protocol https://bugs.webkit.org/show_bug.cgi?id=39864 No new tests, because there is no functional change. * websockets/WebSocketHandshake.cpp: (WebCore::WebSocketHandshake::clientHandshakeRequest): * websockets/WebSocketHandshakeRequest.cpp: (WebCore::WebSocketHandshakeRequest::Key3::Key3): (WebCore::WebSocketHandshakeRequest::Key3::set): (WebCore::WebSocketHandshakeRequest::WebSocketHandshakeRequest): (WebCore::WebSocketHandshakeRequest::requestMethod): (WebCore::WebSocketHandshakeRequest::url): (WebCore::WebSocketHandshakeRequest::addHeaderField): (WebCore::WebSocketHandshakeRequest::headerFields): (WebCore::WebSocketHandshakeRequest::key3): (WebCore::WebSocketHandshakeRequest::setKey3): * websockets/WebSocketHandshakeRequest.h: 2010-06-20 MORITA Hajime <morrita@google.com> Reviewed by Kent Tamura. <meter> should be yellow when min < value < low < optimum https://bugs.webkit.org/show_bug.cgi?id=40824 Fixed a wrong conditional on HTMLMeterElement::gaugeRegion(). * html/HTMLMeterElement.cpp: (WebCore::HTMLMeterElement::gaugeRegion): Tests: fast/dom/HTMLMeterElement/meter-appearances-capacity.html fast/dom/HTMLMeterElement/meter-optimums.html 2010-06-22 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Follow the HTML5 spec more closely w.r.t. when to save the insertion point https://bugs.webkit.org/show_bug.cgi?id=40976 The spec always increments the nesting level and saves the insertion point at the same time. In this patch, we now do those operations packaged as a RAII. As a side effect, the test case below no longer ASSERTs. (The output is wrong, but we'll get to that next.) Test: fast/tokenizer/write-on-load.html * html/HTML5ScriptRunner.cpp: (WebCore::NestScript::NestScript): (WebCore::NestScript::~NestScript): (WebCore::HTML5ScriptRunner::executePendingScript): (WebCore::HTML5ScriptRunner::executeScript): (WebCore::HTML5ScriptRunner::requestScript): (WebCore::HTML5ScriptRunner::runScript): * html/HTMLInputStream.h: 2010-06-22 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Expose HTMLInputStream to ScriptRunner so that ScriptRunner can save the insertion point itself https://bugs.webkit.org/show_bug.cgi?id=40975 This saves us having to call back into the HTML5DocumentParser each time we need to save the insertion point. This prepares us for another place we need to save the insertion point. * html/HTML5DocumentParser.cpp: * html/HTML5DocumentParser.h: (WebCore::HTML5DocumentParser::inputStream): * html/HTML5ScriptRunner.cpp: (WebCore::HTML5ScriptRunner::executeScript): (WebCore::HTML5ScriptRunner::requestScript): * html/HTML5ScriptRunnerHost.h: 2010-06-22 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Move HTMLInputStream to its own file https://bugs.webkit.org/show_bug.cgi?id=40974 No new tests, just code motion. * GNUmakefile.am: * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * html/HTML5DocumentParser.h: 2010-06-21 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Save the insertion point before beforeload events https://bugs.webkit.org/show_bug.cgi?id=40973 We need to save the insertion point before dispatching the beforeload event in case someone decides to document.write during beforeload. Prior to this patch, such writes would pump the lexer too much and tokenize the rest of the document before executing the script. * html/HTML5DocumentParser.cpp: (WebCore::HTML5DocumentParser::dispatchBeforeLoad): * html/HTML5DocumentParser.h: * html/HTML5ScriptRunner.cpp: (WebCore::HTML5ScriptRunner::requestScript): * html/HTML5ScriptRunnerHost.h: 2010-06-21 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. document.write from BeforeLoad should not assert https://bugs.webkit.org/show_bug.cgi?id=40971 We're setting the parse blocking script too early. It's not actually blocking parsing yet. Test: fast/tokenizer/write-before-load.html * html/HTML5ScriptRunner.cpp: (WebCore::HTML5ScriptRunner::requestScript): 2010-06-21 Chris Fleizach <cfleizach@apple.com> No review. QT build fix again. AX: VoiceOver does not announce WAI-ARIA state change of aria-expanded https://bugs.webkit.org/show_bug.cgi?id=40927 * accessibility/AXObjectCache.h: (WebCore::AXObjectCache::postNotification): 2010-06-21 Chris Fleizach <cfleizach@apple.com> No review. QT build fix. AX: VoiceOver does not announce WAI-ARIA state change of aria-expanded https://bugs.webkit.org/show_bug.cgi?id=40927 * accessibility/AXObjectCache.h: (WebCore::AXObjectCache::postNotification): 2010-06-21 Chris Fleizach <cfleizach@apple.com> Reviewed by Beth Dakin. AX: VoiceOver does not announce WAI-ARIA state change of aria-expanded https://bugs.webkit.org/show_bug.cgi?id=40927 Test: platform/mac/accessibility/aria-expanded-notifications.html * accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::handleAriaExpandedChange): * accessibility/AXObjectCache.h: (WebCore::AXObjectCache::handleAriaExpandedChange): * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::handleAriaExpandedChanged): * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::handleAriaExpandedChanged): * accessibility/AccessibilityRenderObject.h: * accessibility/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::postPlatformNotification): * dom/Element.cpp: (WebCore::Element::updateAfterAttributeChanged): 2010-06-21 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r61585. http://trac.webkit.org/changeset/61585 https://bugs.webkit.org/show_bug.cgi?id=40950 It broke builds (Requested by kinuko on #webkit). * Android.derived.jscbindings.mk: * Android.derived.v8bindings.mk: * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * GNUmakefile.am: * WebCore.gypi: * WebCore.pri: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * html/BlobBuilder.cpp: (WebCore::BlobBuilder::appendString): (WebCore::BlobBuilder::appendBlob): * html/BlobBuilder.h: * page/DOMWindow.idl: 2010-06-21 Kinuko Yasuda <kinuko@chromium.org> Reviewed by Adam Barth. Add BlobBuilder.idl to expose BlobBuilder interface https://bugs.webkit.org/show_bug.cgi?id=40593 BlobBuilder is defined in FileAPI's FileWriter spec. (http://dev.w3.org/2009/dap/file-system/file-writer.html) Also removes the ENABLE_FILE_WRITER ifdef guard for BlobBuilder. Tests: http/tests/local/blob/send-data-blob.html http/tests/local/blob/send-hybrid-blob.html http/tests/local/blob/send-sliced-data-blob.html * Android.derived.jscbindings.mk: * Android.derived.v8bindings.mk: * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * GNUmakefile.am: * WebCore.gypi: * WebCore.pri: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * html/BlobBuilder.cpp: (WebCore::BlobBuilder::append): * html/BlobBuilder.h: * html/BlobBuilder.idl: Added. * page/DOMWindow.idl: 2010-06-21 Nate Chapin <japhet@chromium.org> Reviewed by Adam Barth. FrameLoader cleanup: Split high level subframe and plugin loading functions into a separate class. https://bugs.webkit.org/show_bug.cgi?id=40453 Refactor only, no new tests. * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.base.exp: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * dom/DOMImplementation.cpp: * history/PageCache.cpp: * html/HTMLFrameElementBase.cpp: * html/HTMLMediaElement.cpp: * loader/FrameLoader.cpp: * loader/FrameLoader.h: (WebCore::FrameLoader::subframeLoader): * loader/PluginDocument.cpp: * loader/SubframeLoader.cpp: Added. (WebCore::SubframeLoader::SubframeLoader): (WebCore::toPlugInElement): (WebCore::SubframeLoader::clear): (WebCore::SubframeLoader::requestFrame): (WebCore::SubframeLoader::requestObject): (WebCore::FrameLoader::loadMediaPlayerProxyPlugin): (WebCore::SubframeLoader::createJavaAppletWidget): (WebCore::SubframeLoader::loadSubframe): (WebCore::SubframeLoader::allowPlugins): (WebCore::SubframeLoader::shouldUsePlugin): (WebCore::SubframeLoader::loadPlugin): (WebCore::SubframeLoader::completeURL): * loader/SubframeLoader.h: Added. (WebCore::SubframeLoader::containsPlugins): * page/Page.cpp: * page/XSSAuditor.h: * platform/graphics/wince/MediaPlayerProxy.cpp: * plugins/MimeType.cpp: * rendering/RenderApplet.cpp: * rendering/RenderEmbeddedObject.cpp: 2010-06-21 Nate Chapin <japhet@chromium.org> Unreviewed, build fix. Bad merge, left a reference to m_committedFirstRealDocumentLoad in http://trac.webkit.org/changeset/61568. * loader/FrameLoader.cpp: (WebCore::FrameLoader::transitionToCommitted): 2010-06-21 Nate Chapin <japhet@chromium.org> Reviewed by Adam Barth. Remove a couple of FrameLoader's unused boolean members (m_receivedData, m_cancellingWithLoadInProcess) and merge several more into a single state machine called FrameLoaderStateMachine (m_firstLayoutDone, m_creatingInitialEmptyDocument, m_isDisplayingInitialEmptyDocument, m_committedFirstRealDocumentLoad). https://bugs.webkit.org/show_bug.cgi?id=39695 Refactor only, so no new tests. * WebCore.base.exp: * WebCore.xcodeproj/project.pbxproj: * loader/DocumentWriter.cpp: (WebCore::DocumentWriter::createDocument): (WebCore::DocumentWriter::begin): * loader/FrameLoader.cpp: (WebCore::FrameLoader::FrameLoader): (WebCore::FrameLoader::init): (WebCore::FrameLoader::stopLoading): (WebCore::FrameLoader::didOpenURL): (WebCore::FrameLoader::didExplicitOpen): (WebCore::FrameLoader::clear): (WebCore::FrameLoader::didBeginDocument): (WebCore::FrameLoader::finishedParsing): (WebCore::FrameLoader::provisionalLoadStarted): (WebCore::FrameLoader::logCanCachePageDecision): (WebCore::FrameLoader::logCanCacheFrameDecision): (WebCore::FrameLoader::frameHasLoaded): (WebCore::FrameLoader::commitProvisionalLoad): (WebCore::FrameLoader::transitionToCommitted): (WebCore::FrameLoader::finishedLoadingDocument): (WebCore::FrameLoader::checkLoadCompleteForThisFrame): (WebCore::FrameLoader::didFirstLayout): (WebCore::FrameLoader::frameLoadCompleted): (WebCore::FrameLoader::dispatchDidCommitLoad): * loader/FrameLoader.h: (WebCore::FrameLoader::stateMachine): * loader/FrameLoaderStateMachine.cpp: Added. * loader/FrameLoaderStateMachine.h: Added. * loader/HistoryController.cpp: (WebCore::HistoryController::restoreScrollPositionAndViewState): (WebCore::HistoryController::saveDocumentState): * loader/ProgressTracker.cpp: (WebCore::ProgressTracker::incrementProgress): * loader/RedirectScheduler.cpp: (WebCore::RedirectScheduler::scheduleLocationChange): (WebCore::RedirectScheduler::scheduleFormSubmission): 2010-06-21 Kevin Ollivier <kevino@theolliviers.com> [wx] Build fix. Fix header includes for ENABLE(DATABASE) * bindings/js/JSExceptionBase.cpp: 2010-06-21 Anders Carlsson <andersca@apple.com> Fix clang++ build. * loader/FormSubmission.h: 2010-06-21 Dimitri Glazkov <dglazkov@chromium.org> Unreviewed, build fix. Add a missing include in AsyncImageResizer.h * html/AsyncImageResizer.h: Added the IntSize include. 2010-06-21 Adam Roben <aroben@apple.com> Call NotifyAddrChange again each time we are notified of a change NotifyAddrChange only notifies you of a single change. If you want to listen for subsequent changes, you have to call it again. Fixes <http://webkit.org/b/33004> NetworkStateNotifier ignores all state changes after the first. No test possible, as we don't have a way to modify the system's network adapters when running tests. Reviewed by Anders Carlsson. * platform/network/win/NetworkStateNotifierWin.cpp: (WebCore::NetworkStateNotifier::addrChangeCallback): Call registerForAddressChange as soon as we're notified of an address change, so we'll also get notified of the *next* address change. I added the call here instead of in addressChanged (which is called later on the main thread) to minimize the time between the callback and registering again (so that we won't miss changes that happen in rapid succession). 2010-06-21 Dan Bernstein <mitz@apple.com> Release build fix * rendering/RenderBlockLineLayout.cpp: (WebCore::tryHyphenating): 2010-06-21 Dan Bernstein <mitz@apple.com> Windows build fix * WebCore.vcproj/WebCore.vcproj: Fixed a typo. 2010-06-21 Dan Bernstein <mitz@apple.com> Reviewed by Darin Adler. CSS3: Implement the 'hyphens' and 'hyphenate-character' properties https://bugs.webkit.org/show_bug.cgi?id=10228 Tests: fast/text/hyphenate-character.html fast/text/hyphens.html Added -webkit-hyphens and -webkit-hyphenate-character as specified in <http://www.w3.org/TR/2010/WD-css3-gcpm-20100608/#hyphenation>. * Android.mk: Added Hyphenation.cpp. * CMakeLists.txt: Ditto. * GNUmakefile.am: Added Hyphenation.{cpp,h}. * WebCore.base.exp: Exported wkGetHyphenationLocationBeforeIndex(). * WebCore.gypi: Added Hyphenation.{cpp,h}. * WebCore.pro: Added Hyphenation.{cpp,h}. * WebCore.vcproj/WebCore.vcproj: Added Hyphenation.{cpp,h}. * WebCore.xcodeproj/project.pbxproj: Added Hyphenation.{cpp,h}. * css/CSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Added the -webkit-hyphenate-character and -webkit-hyphens cases. * css/CSSParser.cpp: (WebCore::CSSParser::parseValue): Validate values for the new properties. * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added. Maps from a Hyphens value to an identifier. (WebCore::CSSPrimitiveValue::operator Hyphens): Added. Maps from an identifier to a Hyphens value. * css/CSSPropertyNames.in: Added -webkit-hyphenate-character and -webkit-hyphens. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): Apply the new properties to the RenderStyle. * css/CSSValueKeywords.in: * platform/mac/WebCoreSystemInterface.h: Added wkGetHyphenationLocationBeforeIndex. * platform/mac/WebCoreSystemInterface.mm: Ditto. * platform/text/CharacterNames.h: Added the hyphen character. * platform/text/Hyphenation.cpp: Added. (WebCore::lastHyphenLocation): Added this default implementation for platforms that do not implement hyphenation yet. It calls notImplemented() and returns 0. * platform/text/Hyphenation.h: Added. * platform/text/cf/HyphenationCF.cpp: Added. (WebCore::lastHyphenLocation): Returns the last hyphenation location occurring in the given string before the given index. Uses the current search locale (which is based on the top language preference of the user) for hyphenation. * platform/text/mac/HyphenationMac.mm: Added. (WebCore::lastHyphenLocation): Returns the last hyphenation location occurring in the given string before the given index. Returns 0 if the current search locale is not "en", because the platform only knows how to hyphenate English. * rendering/BidiRun.h: (WebCore::BidiRun::BidiRun): Added a boolean member, m_hasHyphen, and initialized it to false in the constructor. * rendering/InlineBox.h: (WebCore::InlineBox::InlineBox): Renamed m_hasEllipsisBox to m_hasEllipsisBoxOrHyphen, because this bit is now shared by two subclass: RootInlineBox uses it for hasEllipsisBox(), while InlineTextBox uses it for hasHyphen(). * rendering/InlineTextBox.cpp: (WebCore::adjustCharactersAndLengthForHyphen): Added this helper function to get the hyphen string from the style and return a UChar* and length for the concatenation of the given text with the hyphen string. (WebCore::InlineTextBox::selectionRect): If the selected range touches the end and the box has a hyphen, compute the width of the text with the hyphen string concatenated to it. (WebCore::InlineTextBox::paint): If the box has a hyphen, draw the text with the hyphen string concatenated to it. (WebCore::InlineTextBox::paintSelection): Similarly concatenate the hyphen string. * rendering/InlineTextBox.h: (WebCore::InlineTextBox::hasHyphen): Added this accessor. (WebCore::InlineTextBox::setHasHyphen): Ditto. * rendering/RenderBlock.h: * rendering/RenderBlockLineLayout.cpp: (WebCore::RenderBlock::constructLine): Copy the m_hasHyphen flag from the run to its text box. (WebCore::RenderBlock::computeHorizontalPositionsForLine): Add the width of the hyphen string when computing the width of a box that has a hyphen. (WebCore::RenderBlock::layoutInlineChildren): If the line was hyphenated, set the m_hasHyphen flag on the logically last run. (WebCore::tryHyphenating): Added this helper function which checks if a piece of text that does not fit on the line could be hyphenated such that the part before the hyphen, including the hyphen, would fit. Given the amount of space remaining on the line, it finds the longest prefix that can fit in the remaining space (which leaving room for the hyphen), and then checks for a hyphenation location within that prefix. (WebCore::RenderBlock::findNextLineBreak): In the 'hyphens: none' case, prevent line breaks at soft hyphens. In the 'hyphens: auto' case, try hyphenating when a word will not fit in the remaining space on the line. * rendering/RootInlineBox.cpp: (WebCore::RootInlineBox::detachEllipsisBox): Changed to use hasEllipsisBox() and setHasEllipsisBox(). (WebCore::RootInlineBox::clearTruncation): Ditto. (WebCore::RootInlineBox::placeEllipsis): Ditto. (WebCore::RootInlineBox::paintEllipsisBox): Ditto. (WebCore::RootInlineBox::nodeAtPoint): Ditto. (WebCore::RootInlineBox::ellipsisBox): Ditto. * rendering/RootInlineBox.h: (WebCore::RootInlineBox::hasEllipsisBox): Added this accessor. (WebCore::RootInlineBox::setHasEllipsisBox): Ditto. * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::diff): Return a layout hint if the hyphens setting or hyphenate-character differs. (WebCore::RenderStyle::hyphenString): Added. For hyphenate-character: auto, returns the hyphen character. * rendering/style/RenderStyle.h: (WebCore::InheritedFlags::hyphens): Added this accessor. (WebCore::InheritedFlags::hyphenateCharacter): Ditto. (WebCore::InheritedFlags::setHyphens): Ditto. (WebCore::InheritedFlags::setHyphenateCharacter): Ditto. (WebCore::InheritedFlags::initialHyphens): Added. Returns HyphensManual. (WebCore::InheritedFlags::initialHyphenateCharacter): Added. Returns the null string, corresponding to a value of 'auto'. * rendering/style/RenderStyleConstants.h: Added a Hyphens enum. * rendering/style/StyleRareInheritedData.cpp: (WebCore::StyleRareInheritedData::StyleRareInheritedData): Initialize and copy the new members. (WebCore::StyleRareInheritedData::operator==): Compare the new members. * rendering/style/StyleRareInheritedData.h: Added two new members: hyphens and hyphenateCharacter. 2010-06-03 Dimitri Glazkov <dglazkov@chromium.org> Reviewed by Darin Adler. Plumb FormSubmission through to ScheduledFormSubmission. https://bugs.webkit.org/show_bug.cgi?id=40137 No behavior change, covered by existing tests. * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::prepareFormSubmission): Moved creation of action URL instance here from FrameLoader::submit, because it makes more sense here, also added a FIXME to investigate existing code later. * loader/FormSubmission.cpp: (WebCore::FormSubmission::FormSubmission): Changed action to be a KURL, not a String. (WebCore::FormSubmission::create): Ditto. (WebCore::FormSubmission::populateFrameLoadRequest): Added, moving the logic from FrameLoader::submit closer to the data. * loader/FormSubmission.h: (WebCore::FormSubmission::action): Changed type to KURL. (WebCore::FormSubmission::clearTarget): Added. (WebCore::FormSubmission::referrer): Added. (WebCore::FormSubmission::setReferrer): Added. (WebCore::FormSubmission::origin): Added. (WebCore::FormSubmission::setOrigin): Added. * loader/FrameLoader.cpp: (WebCore::FrameLoader::submitForm): Cleaned up to make it more about decision-making, not data manipulation. * loader/RedirectScheduler.cpp: (WebCore::ScheduledFormSubmission::ScheduledFormSubmission): Changed to accept FormSubmission as argument. (WebCore::ScheduledFormSubmission::fire): Changed to use FormSubmission. (WebCore::RedirectScheduler::scheduleFormSubmission): Removed assert that no longer makes sense, changed to use FormSubmission. * loader/RedirectScheduler.h: Updated ScheduledFormSubmission decl to hold FormSubmission ref. 2010-06-21 Satish Sampath <satish@chromium.org> Reviewed by Steve Block. Speech Input Patch 0: Added compilation argument to conditionally compile pending patches. https://bugs.webkit.org/show_bug.cgi?id=40878 No new tests are needed, because there is no new functionality. * Configurations/FeatureDefines.xcconfig: * GNUmakefile.am: * WebCore.pri: 2010-06-21 Hans Wennborg <hans@chromium.org> Reviewed by Jeremy Orlow. Delete DOM storage databases when they are empty. https://bugs.webkit.org/show_bug.cgi?id=40767 Even if a page clears its local storage, the database file for it stays around, and there is currently no mechanism that deletes them. After doing the "final sync" of a storage area, the StorageAreaSyncMaster should see if the database is empty, and in that case delete it. Tests: manual-tests/localstorage-empty-database.html * manual-tests/localstorage-empty-database.html: Added link to clear local storage for testing that the file is removed. * storage/LocalStorageTask.cpp: (WebCore::LocalStorageTask::LocalStorageTask): Added local storage task type DeleteEmptyDatabase. (WebCore::LocalStorageTask::performTask): Ditto. * storage/LocalStorageTask.h: (WebCore::LocalStorageTask::): Ditto. (WebCore::LocalStorageTask::createDeleteEmptyDatabase): Ditto. * storage/StorageAreaSync.cpp: (WebCore::StorageAreaSync::scheduleFinalSync): When scheduling final sync, also schedule DeleteEmptyDatabase. (WebCore::StorageAreaSync::sync): Return early if final sync has nothing to sync. (WebCore::StorageAreaSync::deleteEmptyDatabase): Added function to check if a database is empty and in that case delete it. * storage/StorageAreaSync.h: Ditto. * storage/StorageSyncManager.cpp: (WebCore::StorageSyncManager::scheduleDeleteEmptyDatabase): Added function for scheduling DeleteEmptyDatabase task. * storage/StorageSyncManager.h: Ditto. 2010-06-21 Balazs Kelemen <kb@inf.u-szeged.hu> Reviewed by Simon Hausmann. [Qt] Avoid unnecessary image conversion in RGBA32Buffer::zeroFill() https://bugs.webkit.org/show_bug.cgi?id=40910 * platform/image-decoders/qt/RGBA32BufferQt.cpp: (WebCore::RGBA32Buffer::zeroFill): 2010-06-21 Benjamin Poulain <benjamin.poulain@nokia.com> Reviewed by Kenneth Rohde Christiansen. [Qt] Decode images directly to QPixmap https://bugs.webkit.org/show_bug.cgi?id=40797 Decode images to QPixmap directly instead of QImage when possible. RGBA32Buffer transforms the pixmap back to image if necessary. This improve the performance with certain graphic system, and can reduce memory usage. * platform/graphics/qt/ImageDecoderQt.cpp: (WebCore::ImageDecoderQt::setData): (WebCore::ImageDecoderQt::internalHandleCurrentImage): * platform/image-decoders/ImageDecoder.h: (WebCore::RGBA32Buffer::getAddr): * platform/image-decoders/qt/RGBA32BufferQt.cpp: (WebCore::RGBA32Buffer::clear): (WebCore::RGBA32Buffer::zeroFill): (WebCore::RGBA32Buffer::copyBitmapData): (WebCore::RGBA32Buffer::setSize): (WebCore::RGBA32Buffer::asNewNativeImage): (WebCore::RGBA32Buffer::setPixmap): 2010-06-20 Dumitru Daniliuc <dumi@chromium.org> Reviewed by Adam Barth. Adding the SQLException class which will be used to report sync DB errors. https://bugs.webkit.org/show_bug.cgi?id=40607 * Android.derived.jscbindings.mk: * Android.derived.v8bindings.mk: * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * GNUmakefile.am: * WebCore.gypi: * WebCore.pri: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSDOMBinding.cpp: (WebCore::setDOMException): * bindings/js/JSExceptionBase.cpp: (WebCore::toExceptionBase): * bindings/v8/V8Proxy.cpp: (WebCore::V8Proxy::setDOMException): * bindings/v8/V8Proxy.h: * dom/ExceptionCode.cpp: (WebCore::): (WebCore::getExceptionCodeDescription): * dom/ExceptionCode.h: (WebCore::): * page/DOMWindow.idl: * storage/SQLException.h: Added. (WebCore::SQLException::create): (WebCore::SQLException::): (WebCore::SQLException::SQLException): * storage/SQLException.idl: Added. 2010-06-20 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. [v8] Web Inspector: don't add ScriptDebugServer as v8 listener if browser exposes v8 debugging protocol. https://bugs.webkit.org/show_bug.cgi?id=40844 * bindings/v8/ScriptDebugServer.cpp: (WebCore::ScriptDebugServer::ScriptDebugServer): (WebCore::ScriptDebugServer::addListener): (WebCore::ScriptDebugServer::setEnabled): (WebCore::ScriptDebugServer::isDebuggerAlwaysEnabled): * bindings/v8/ScriptDebugServer.h: 2010-06-20 Gyuyoung Kim <gyuyoung.kim@samsung.com> Unreviewed build fix. [EFL] Build break for r61527 https://bugs.webkit.org/post_bug.cgi * CMakeLists.txt: Add loader/FormSubmission.cpp 2010-06-20 Anders Carlsson <andersca@apple.com> Reviewed by Dan Bernstein. Remove bogus const qualifiers. * platform/mac/PasteboardHelper.h: 2010-06-20 Patrick Gansterer <paroga@paroga.com> Reviewed by Kent Tamura. Buildfix for NotificationCenter.h. https://bugs.webkit.org/show_bug.cgi?id=40890 ScriptExecutionContext::completeURL is used in header, but ScriptExecutionContext.h wasn't included. * notifications/NotificationCenter.h: 2010-06-20 Tony Gentilcore <tonyg@chromium.org> Reviewed by Eric Seidel. Recognize async attribute on HTML script tags. https://bugs.webkit.org/show_bug.cgi?id=39026 This does not implement async behavior, it only parses the async attribute for HTML script tags. SVG script tags continue to not support the async attribute. Tests: fast/dom/HTMLScriptElement/script-async-attr.html svg/dom/SVGScriptElement/script-async-attr.svg * dom/ScriptElement.cpp: (WebCore::ScriptElementData::isAsynchronous): (WebCore::ScriptElementData::isDeferred): * dom/ScriptElement.h: * html/HTMLAttributeNames.in: * html/HTMLScriptElement.cpp: (WebCore::HTMLScriptElement::async): (WebCore::HTMLScriptElement::setAsync): (WebCore::HTMLScriptElement::defer): (WebCore::HTMLScriptElement::asyncAttributeValue): (WebCore::HTMLScriptElement::deferAttributeValue): * html/HTMLScriptElement.h: * html/HTMLScriptElement.idl: * svg/SVGScriptElement.cpp: (WebCore::SVGScriptElement::asyncAttributeValue): (WebCore::SVGScriptElement::deferAttributeValue): * svg/SVGScriptElement.h: 2010-06-20 Nikita Vasilyev <me@elv1s.ru> Reviewed by Joseph Pecoraro. Web Inspector: Auto-completion for CSS property names in Styles pane https://bugs.webkit.org/show_bug.cgi?id=17374 Added autocompletion for CSS properties. A suggestion for a property shows when you type. You can also cycle through known property names using the Up and Down arrow keys. * WebCore.gypi: * inspector/front-end/CSSCompletions.js: Added. (WebInspector.CSSCompletions): (WebInspector.CSSCompletions.startsWith): (WebInspector.CSSCompletions.firstStartsWith): (WebInspector.CSSCompletions._firstIndexOfPrefix): (WebInspector.CSSCompletions.next): (WebInspector.CSSCompletions.previous): (WebInspector.CSSCompletions._closest): * inspector/front-end/StylesSidebarPane.js: (WebInspector.StylePropertyTreeElement.prototype): * inspector/front-end/WebKit.qrc: * inspector/front-end/inspector.html: * inspector/front-end/utilities.js: (Text.prototype.select): (): 2010-06-14 Dimitri Glazkov <dglazkov@chromium.org> Reviewed by Darin Adler. Introduce FormSubmission, the structure representing a form submission. https://bugs.webkit.org/show_bug.cgi?id=40084 No change in functionality, covered by existing tests. * GNUmakefile.am: Added FormSubmission.h/cpp. * WebCore.gypi: Ditto. * WebCore.pro: Ditto. * WebCore.vcproj/WebCore.vcproj: Ditto. * WebCore.xcodeproj/project.pbxproj: Ditto. * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::prepareFormSubmission): Renamed prepareFormData to prepareFormSubmission, added code for populating a FormSubmission instance, moved the loop of accumulating text input values into this functions (it belongs here logically). (WebCore::HTMLFormElement::submit): Modified to use prepareFormSubmission. * html/HTMLFormElement.h: * loader/FormSubmission.cpp: Added. * loader/FormSubmission.h: Added. * loader/FrameLoader.cpp: (WebCore::FrameLoader::submitForm): Modified to use FormSubmission. Stopped plumbing further to keep the patch size down. * loader/FrameLoader.h: Modified submitForm signature. 2010-06-20 Joseph Pecoraro <joepeck@webkit.org> Unreviewed rollout r61506, because it made 1 test crash. Causes crash. Will approach the solution in a different way. 2010-06-20 Joseph Pecoraro <joepeck@webkit.org> Reviewed by Timothy Hatcher. Web Inspector: Should Autocomplete Style Properties https://bugs.webkit.org/show_bug.cgi?id=38448 This Autocompletes style properties when in the console. * inspector/front-end/InjectedScript.js: (injectedScriptConstructor): 2010-06-20 Robert Hogan <robert@webkit.org> Reviewed by Simon Hausmann. [Qt] NPP_SetWindow seems to not be called when TestNetscapePlugin is moved https://bugs.webkit.org/show_bug.cgi?id=36702 setNPWindowIfNeeded() is called on paint() in PluginViewQt, which doesn't work for DRT. So call it if we are in DRT mode and the window geometry has changed. Unskips plugins/reentrant-update-widget-positions.html * plugins/qt/PluginViewQt.cpp: (WebCore::PluginView::updatePluginWidget): 2010-06-19 Tony Gentilcore <tonyg@chromium.org> Reviewed by Adam Barth. Persist V8's ScriptData to the memory cache. https://bugs.webkit.org/show_bug.cgi?id=38661 This stores V8's ScriptData in the memory cache and also causes the network platform layer to be notified of the available cacheable metadata. Chromium's morejs benchmark showed a ~7% improvement when this was originally submitted (before it had to be rolled back). Test: fast/js/parser-high-byte-character.html * bindings/v8/ScriptSourceCode.h: (WebCore::ScriptSourceCode::ScriptSourceCode): (WebCore::ScriptSourceCode::cachedScript): * bindings/v8/V8Proxy.cpp: (WebCore::V8Proxy::compileScript): (WebCore::V8Proxy::precompileScript): (WebCore::V8Proxy::evaluate): * bindings/v8/V8Proxy.h: 2010-06-19 Kwang Yul Seo <skyul@company100.net> Reviewed by Kent Tamura. [BREWMP] Port SocketStream https://bugs.webkit.org/show_bug.cgi?id=39671 Port SocketStream with BREW MP's ISocket interface. * platform/network/brew/SocketStreamError.h: Added. (WebCore::SocketStreamError::SocketStreamError): * platform/network/brew/SocketStreamHandle.h: Added. (WebCore::SocketStreamHandle::create): * platform/network/brew/SocketStreamHandleBrew.cpp: Added. (WebCore::socketStreamConnectCallback): (WebCore::getHostByNameCallback): (WebCore::socketReadableCallback): (WebCore::networkManager): (WebCore::SocketStreamHandlePrivate::SocketStreamHandlePrivate): (WebCore::SocketStreamHandlePrivate::~SocketStreamHandlePrivate): (WebCore::SocketStreamHandlePrivate::socketConnected): (WebCore::SocketStreamHandlePrivate::socketReadyRead): (WebCore::SocketStreamHandlePrivate::connect): (WebCore::SocketStreamHandlePrivate::send): (WebCore::SocketStreamHandlePrivate::close): (WebCore::SocketStreamHandlePrivate::socketClosed): (WebCore::SocketStreamHandlePrivate::socketError): (WebCore::SocketStreamHandle::SocketStreamHandle): (WebCore::SocketStreamHandle::~SocketStreamHandle): (WebCore::SocketStreamHandle::platformSend): (WebCore::SocketStreamHandle::platformClose): (WebCore::SocketStreamHandle::didReceiveAuthenticationChallenge): (WebCore::SocketStreamHandle::receivedCredential): (WebCore::SocketStreamHandle::receivedRequestToContinueWithoutCredential): (WebCore::SocketStreamHandle::receivedCancellation): * platform/network/brew/SocketStreamHandlePrivate.h: Added. 2010-06-19 Nikita Vasilyev <me@elv1s.ru> Reviewed by Pavel Feldman. Web Inspector: Prevent from copying "filename.css" in Styles pane https://bugs.webkit.org/show_bug.cgi?id=40420 * inspector/front-end/Section.js: (WebInspector.Section.prototype.set subtitle): (WebInspector.Section.prototype.get subtitleAsText): * inspector/front-end/StylesSidebarPane.js: (WebInspector.StylePropertiesSection): * inspector/front-end/inspector.css: (.styles-section .subtitle::before, .styles-section .subtitle a::before): 2010-06-19 Alex Milowski <alex@milowski.com> Reviewed by Darin Adler. A fix for a change in https://bugs.webkit.org/show_bug.cgi?id=39941 that caused a compile error in MathML. https://bugs.webkit.org/show_bug.cgi?id=40827 * mathml/MathMLElement.cpp: (WebCore::MathMLElement::MathMLElement): 2010-06-19 Kartikaya Gupta <kagupta@rim.com> Reviewed by Nikolas Zimmermann. CPP bindings missing some APIs https://bugs.webkit.org/show_bug.cgi?id=40570 Add missing C++ DOM API bindings. Specifically: - NodeFilter callback support - Missing custom method implementations in HTMLCollection and HTMLOptionsCollection - Missing EventTarget static type-determination methods - Fix CPP binding generator to not generate d-ptrs for classes that extend EventTarget and just use the parent's d-ptr instead - Switch binding generator to use DOMWindow instead of AbstractView so that necessary W3C-defined methods (e.g. getComputedStyle) are accessible. * bindings/cpp/WebDOMDOMWindowCustom.cpp: Added. (WebDOMDOMWindow::addEventListener): (WebDOMDOMWindow::removeEventListener): * bindings/cpp/WebDOMEventTarget.cpp: (toWebKit): * bindings/cpp/WebDOMEventTarget.h: * bindings/cpp/WebDOMHTMLCollectionCustom.cpp: Added. (WebDOMHTMLCollection::item): (WebDOMHTMLCollection::namedItem): * bindings/cpp/WebDOMHTMLOptionsCollectionCustom.cpp: Added. (WebDOMHTMLOptionsCollection::length): (WebDOMHTMLOptionsCollection::setLength): * bindings/cpp/WebDOMNodeFilterCustom.cpp: Added. (WebDOMNodeFilter::acceptNode): (toWebKit): * bindings/cpp/WebNativeNodeFilterCondition.cpp: Added. (WebNativeNodeFilterCondition::WebNativeNodeFilterCondition): (WebNativeNodeFilterCondition::~WebNativeNodeFilterCondition): (WebNativeNodeFilterCondition::acceptNode): * bindings/cpp/WebNativeNodeFilterCondition.h: Added. (WebNativeNodeFilterCondition::create): * bindings/scripts/CodeGeneratorCPP.pm: * dom/NodeFilter.idl: * page/DOMWindow.idl: 2010-06-19 Vangelis Kokkevis <vangelis@chromium.org> Reviewed by Dimitri Glazkov. [chromium] Adding a conditional gyp dependency for the WebCore target to the gles2_c_lib which is required by the gpu compositor. The dependency will only kick in if the accelerated_compositing path is enabled. https://bugs.webkit.org/show_bug.cgi?id=40801 * WebCore.gyp/WebCore.gyp: 2010-06-19 Yael Aharon <yael.aharon@nokia.com> Reviewed by Kenneth Rohde Christiansen. [Qt] Platform plugin's multi-select does not take OptGroup into account https://bugs.webkit.org/show_bug.cgi?id=40718 In multi-select elements, optgroup elements are counted in the index calculation, but in single-select they are not. Keep the same logic even when NO_LISTBOX_RENDERING is enabled. Added tests to the existing manual test, as testing this requires a special build, in which NO_LISTBOX_RENDERING is enabled. * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::listBoxSelectItem): * manual-tests/no-listbox-rendering.html: * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::listBoxSelectItem): 2010-06-19 Thomas Van Lenten <thomasvl@chromium.org> Reviewed by David Levin. Warnings from -Wextra in a Chromium Mac build 1. checks of unsigned >= 0 2. enumeral and non-enumeral type in conditional expression 3. copy ctors that don't call the super copy ctor or ctor No functionality change so no new tests. https://bugs.webkit.org/show_bug.cgi?id=40791 * platform/chromium/ChromiumDataObject.cpp: (WebCore::ChromiumDataObject::ChromiumDataObject): * platform/chromium/ThemeChromiumMac.mm: (WebCore::updateStates): * rendering/RenderThemeChromiumMac.mm: (WebCore::RenderThemeChromiumMac::updateActiveState): 2010-06-19 Ben Murdoch <benm@google.com> Reviewed by Pavel Feldman. Fix build break with inspector disabled. https://bugs.webkit.org/show_bug.cgi?id=40790 Replace a #include with a forward declaration. Fixing a build break so no new tests required. * inspector/InspectorController.h: Forward declare InspectorValue rather than #including its header which has its content guarded out. 2010-06-19 Zhe Su <suzhe@chromium.org> Reviewed by Darin Fisher. [chromium]Refactor input method related APIs. https://bugs.webkit.org/show_bug.cgi?id=40608 No new tests are needed, because there is no new functionality. * page/FocusController.cpp: (WebCore::FocusController::setFocusedNode): 2010-06-19 George Wright <gwright@rim.com> Reviewed by George Staikos. https://bugs.webkit.org/show_bug.cgi?id=40720 Make setWapInputFormat() public again as CSSStyleSelector.cpp calls this when WCSS is enabled. * html/HTMLInputElement.h: (WebCore::HTMLInputElement::data): 2010-06-02 Robert Hogan <robert@webkit.org> Reviewed by Adam Barth. [Qt] Support evaluateScriptInIsolatedWorld() https://bugs.webkit.org/show_bug.cgi?id=40079 getOwnPropertyNames() crashes if PropertyNameArray is size 0. This change allows http/tests/world-reuse.html and didClearWindowObject.html to fail instead of crash. * WebCore.pro: Add qwebscriptworld.* * bridge/qt/qt_runtime.cpp: (JSC::Bindings::convertValueToQVariant): 2010-06-19 Tony Gentilcore <tonyg@chromium.org> Reviewed by Eric Seidel. Some very minor cleanups for HTML5 Parser https://bugs.webkit.org/show_bug.cgi?id=40638 No new tests because no new functionality. * html/HTML5DocumentParser.cpp: (WebCore::): Make ctor explicit. * html/HTML5DocumentParser.h: (WebCore::HTML5DocumentParser::InsertionPointRecord::InsertionPointRecord): Make ctor explicit. * html/HTML5Lexer.cpp: (WebCore::HTMLNames::isEndTagBufferingState): Use switch to generate an efficient table with single branch. * html/HTML5Token.h: (WebCore::HTML5Token::forceQuirks): Add const. * html/HTML5TreeBuilder.h: (WebCore::HTML5TreeBuilder::isPaused): Add const. 2010-06-18 Aaron Boodman <aa@chromium.org> Remove WebKit::WebDocument::isXHTMLDocument. https://bugs.webkit.org/show_bug.cgi?id=40815 * dom/Document.h: remove isXHTML() getter. 2010-06-19 Aaron Boodman <aa@chromium.org> Unreviewed, rolling out r61466. http://trac.webkit.org/changeset/61466 https://bugs.webkit.org/show_bug.cgi?id=40816 Landed wrong change * bindings/v8/V8DOMWindowShell.cpp: (WebCore::V8DOMWindowShell::initContextIfNeeded): * bindings/v8/V8DOMWindowShell.h: 2010-06-18 Aaron Boodman <aa@chromium.org> WebKit API: Undo static hooks into V8 when WebKit is shut down. https://bugs.webkit.org/show_bug.cgi?id=40816 * bindings/v8/V8DOMWindowShell.cpp: (WebCore::V8DOMWindowShell::initContextIfNeeded): (WebCore::V8DOMWindowShell::initializeV8IfNeeded): (WebCore::V8DOMWindowShell::uninitializeV8IfNeeded): * bindings/v8/V8DOMWindowShell.h: 2010-06-18 Jessie Berlin <jberlin@webkit.org> Reviewed by Darin Adler. Bug 19509 - Database Tables in the Inspector should be sortable https://bugs.webkit.org/show_bug.cgi?id=19509 * inspector/front-end/StoragePanel.js: (WebInspector.StoragePanel.prototype.dataGridForResult): Make each column in the DataGrid sortable. (WebInspector.StoragePanel.prototype._sortDataGrid.comparator): Make sure to sort numeric columns by their numeric values, instead of lexicographically. (WebInspector.StoragePanel.prototype._sortDataGrid): Sort the entries in the DataGrid based on the selected column. 2010-06-18 Anders Carlsson <andersca@apple.com> Reviewed by Oliver Hunt. More clang++ warning fixes. * inspector/InspectorFrontendClientLocal.cpp: (WebCore::InspectorFrontendClientLocal::restoreAttachedWindowHeight): * platform/graphics/mac/FontPlatformData.h: * platform/graphics/mac/WebLayer.mm: (-[CALayer _descriptionWithPrefix:]): 2010-06-18 Dimitri Glazkov <dglazkov@chromium.org> Unreviewed, build fix. * WebCore.gyp/WebCore.gyp: Modified inclusion rule in to actually add WebSystemInterface.mm. 2010-06-18 Dimitri Glazkov <dglazkov@chromium.org> Unreviewed, build fix. * WebCore.gyp/WebCore.gyp: Renamed WebSystemInterface.m to WebSystemInterface.mm. 2010-06-18 Anders Carlsson <andersca@apple.com> Reviewed by Sam Weinig. Make WebCoreSystemInterface.h a C++ only header https://bugs.webkit.org/show_bug.cgi?id=40867 * platform/mac/WebCoreSystemInterface.h: 2010-06-18 Abhishek Arya <inferno@chromium.org> Reviewed by Adam Barth. Convert column span from an unsigned short type to an unsigned int type. Fixes a divide-by-zero crash arising from using a zero colspan value coming from a narrow cast of an int to an unsigned short. https://bugs.webkit.org/show_bug.cgi?id=40812 Test: fast/table/zero-colspan-crash.html * rendering/RenderTable.h: Change span from unsigned short to unsigned int. * rendering/RenderTableSection.cpp: Fix a compiler warning with comparing unsigned int with signed int. Value of an unsigned int here cannot be greater than maximum positive value of a signed int. (WebCore::RenderTableSection::addCell): 2010-06-18 Ananth Jasty <ext-ananth.jasty@nokia.com> Reviewed by Simon Hausmann. [Qt] Text spacing miscalculation when using wordSpacing. https://bugs.webkit.org/show_bug.cgi?id=40483 Removed wordSpacing compensation in FontQt whitespace width calculation. The QFontMetrics::width() overload that takes a character does not take QFont's word spacing into account. * platform/graphics/qt/FontQt.cpp: (WebCore::Font::floatWidthForComplexText): 2010-06-18 Anders Carlsson <andersca@apple.com> Reviewed by Darin Adler. Get rid of PluginDataMac.mm and use the plug-in strategy instead https://bugs.webkit.org/show_bug.cgi?id=40860 * WebCore.xcodeproj/project.pbxproj: * page/mac/WebCoreViewFactory.h: * plugins/PluginData.cpp: (WebCore::PluginData::refresh): (WebCore::PluginData::initPlugins): * plugins/PluginStrategy.h: * plugins/mac/PluginDataMac.mm: Removed. 2010-06-18 Anders Carlsson <andersca@apple.com> Reviewed by Dan Bernstein. Fix some (not all) clang++ warnings. * dom/Position.h: (WebCore::lastOffsetInNode): * editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::deleteInsignificantText): * loader/appcache/ApplicationCache.cpp: (WebCore::ApplicationCache::resourceForRequest): * platform/graphics/mac/ComplexTextController.cpp: (WebCore::ComplexTextController::offsetForPosition): (WebCore::ComplexTextController::collectComplexTextRuns): * platform/network/CredentialStorage.cpp: (WebCore::protectionSpaceMapKeyFromURL): * rendering/style/StyleRareNonInheritedData.h: 2010-06-18 Anders Carlsson <andersca@apple.com> Reviewed by Dan Bernstein. Add stubbed out WebPlatformStrategies class to WebKit. https://bugs.webkit.org/show_bug.cgi?id=40851 * WebCore.base.exp: * platform/PlatformStrategies.cpp: * platform/PlatformStrategies.h: (WebCore::PlatformStrategies::~PlatformStrategies): 2010-06-18 Anders Carlsson <andersca@apple.com> Reviewed by Darin Adler. Fix build errors when building with clang++. * loader/archive/cf/LegacyWebArchiveMac.mm: Move the const qualifier to the right place. * page/EditorClient.h: * platform/Pasteboard.h: Use @class when forward declaring Objective-C classes in Objective-C. 2010-06-18 Alexey Proskuryakov <ap@apple.com> Reviewed by Geoff Garen. https://bugs.webkit.org/show_bug.cgi?id=40852 <rdar://problem/8105498> Limit simultaneous DNS prefetch request number (40852) No change in functionality, so no tests. We still queue up to 64 names, but only make up to 8 requests at once. If there are names remaining in queue, we retry after a short timeout (which is easier than posting notifications from client callback). * platform/network/cf/DNSCFNet.cpp: (WebCore::DNSResolveQueue::add): (WebCore::DNSResolveQueue::fired): 2010-06-18 Zhenyao Mo <zmo@google.com> Reviewed by Simon Fraser. WebGL demos show bad flicker https://bugs.webkit.org/show_bug.cgi?id=38560 * platform/graphics/mac/GraphicsContext3DMac.mm: (WebCore::GraphicsContext3D::prepareTexture): Move ensureContext() out of if-block so it's always executed. 2010-06-18 Anders Carlsson <andersca@apple.com> Reviewed by Sam Weinig. Add PlatformStrategies and PluginStrategy classes. https://bugs.webkit.org/show_bug.cgi?id=40850 * WebCore.xcodeproj/project.pbxproj: * platform/PlatformStrategies.cpp: Added. (WebCore::PlatformStrategies::~PlatformStrategies): (WebCore::platformStrategies): (WebCore::setPlatformStrategies): * platform/PlatformStrategies.h: Added. (WebCore::PlatformStrategies::pluginStrategy): (WebCore::PlatformStrategies::PlatformStrategies): * plugins/PluginData.cpp: * plugins/PluginStrategy.h: Added. (WebCore::PluginStrategy::~PluginStrategy): 2010-06-18 Martin Robinson <mrobinson@igalia.com> Unreviewed. Fix the GTK+ build after r61413 and 61379. * bindings/scripts/CodeGeneratorGObject.pm: Produce a g_value_set that uses getterExpressionPrefix instead of the raw getter. * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: (webkit_dom_test_obj_get_property): Update expected test results. 2010-06-18 Leandro Pereira <leandro@profusion.mobi> [EFL] Unreviewed build fix. * CMakeLists.txt: Add inspector/ScriptBreakpoint.cpp. 2010-06-18 Andy Estes <aestes@apple.com> Rubber-stamped by Sam Weinig. Update copyright header. * html/HTMLLinkElement.h: 2010-06-17 Andy Estes <aestes@apple.com> Reviewed by Dan Bernstein. <rdar://problem/8091385> Prevent a crash in WebCore when removing a stylesheet link element in in a listener to its beforeload event. https://bugs.webkit.org/show_bug.cgi?id=40742 Postpone loading of link elements until after they have been inserted into the DOM and attached. This prevents DOM mutations triggered by beforeload handlers from firing in the midst of DOM insertion, which can lead to assertion failures and crashes. Test: fast/dom/beforeload/remove-link-in-beforeload-listener.html * html/HTMLLinkElement.cpp: (WebCore::HTMLLinkElement::HTMLLinkElement): Initialize m_shouldProcessAfterAttach to false. (WebCore::HTMLLinkElement::processCallback): Add a static callback function which calls HTMLLinkElement::process(). (WebCore::HTMLLinkElement::insertedIntoDocument): Instead of calling process() directly, set m_shouldProcessAfterAttach to true to indicate that process() should be called after attach(). (WebCore::HTMLLinkElement::removedFromDocument): Set m_shouldProcessAfterAttach to false. (WebCore::HTMLLinkElement::attach): If m_shouldProcessAfterAttach is true, register HTMLLinkElement::processCallback() as a post-attach callback. * html/HTMLLinkElement.h: Add m_shouldProcessAfterAttach. (WebCore::HTMLLinkElement::canLazyAttach): Override canLazyAttach() to return false to indicate that a full attach should be performed. This ensures the post-attach callbacks are fired. 2010-06-18 Chris Fleizach <cfleizach@apple.com> Unreviewed. Windows build fix. AX: presentational role needs to be inherited by required elements https://bugs.webkit.org/show_bug.cgi?id=40132 * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::inheritsPresentationalRole): 2010-06-18 Chris Fleizach <cfleizach@apple.com> Reviewed by David Kilzer. AX: presentational role needs to be inherited by required elements https://bugs.webkit.org/show_bug.cgi?id=40132 Test: platform/mac/accessibility/inherited-presentational-lists.html * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::accessibilityIsIgnored): (WebCore::AccessibilityRenderObject::inheritsPresentationalRole): * accessibility/AccessibilityRenderObject.h: (WebCore::AccessibilityRenderObject::node): 2010-06-18 Darin Adler <darin@apple.com> Fix GTK build after reflection change. * bindings/scripts/CodeGeneratorGObject.pm: Changed code that emits setters to convey the correct type of the attribute. The GObject code generator takes a different approach to attributes than the others, so it's hacked a bit to make it more like them. We should find a way to share more code between the different generators. * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: Updated to expect correct results. 2010-06-18 Yury Semikhatsky <yurys@chromium.org> Unreviewed: Qt build fix. * inspector/InspectorController.cpp: 2010-06-18 Justin Garcia <justin.garcia@apple.com> Reviewed by Ojan Vafai. https://bugs.webkit.org/show_bug.cgi?id=39798 No selection change notification for editing operation that doesn't change the selection's DOM position Some editing operations change the selection visually without affecting its position within the DOM. This was previously known to occur for certain typing commands, but it can also occur for some Pastes and changes to block style. * editing/Editor.cpp: (WebCore::Editor::appliedEditing): (WebCore::Editor::unappliedEditing): (WebCore::Editor::reappliedEditing): (WebCore::Editor::changeSelectionAfterCommand): * editing/Editor.h: 2010-06-18 Gyuyoung Kim <gyuyoung.kim@samsung.com> Unreviewed build fix. [EFL] Build break on Debug build. https://bugs.webkit.org/show_bug.cgi?id=40810 * CMakeLists.txt: Add CSSPreloadScanner.cpp 2010-06-18 Pavel Podivilov <podivilov@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: persist breakpoints in inspector settings. https://bugs.webkit.org/show_bug.cgi?id=14190 * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * inspector/InspectorController.cpp: (WebCore::InspectorController::InspectorController): (WebCore::InspectorController::setSessionSettings): (WebCore::InspectorController::didCommitLoad): (WebCore::InspectorController::setBreakpoint): (WebCore::InspectorController::removeBreakpoint): (WebCore::InspectorController::didParseSource): (WebCore::InspectorController::breakpointsSettingKey): (WebCore::InspectorController::loadBreakpoints): (WebCore::InspectorController::saveBreakpoints): * inspector/InspectorController.h: * inspector/InspectorValues.cpp: (WebCore::InspectorValue::parseJSON): * inspector/InspectorValues.h: * inspector/ScriptBreakpoint.cpp: Added. (WebCore::ScriptBreakpoint::sourceBreakpointsFromInspectorObject): (WebCore::ScriptBreakpoint::inspectorObjectFromSourceBreakpoints): * inspector/ScriptBreakpoint.h: * inspector/front-end/BreakpointManager.js: (WebInspector.BreakpointManager.prototype.addBreakpoint): (WebInspector.BreakpointManager.prototype.restoredBreakpoint): (WebInspector.BreakpointManager.prototype.breakpointsForSourceID): (WebInspector.BreakpointManager.prototype.breakpointsForURL): (WebInspector.BreakpointManager.prototype._addBreakpoint): * inspector/front-end/inspector.js: (WebInspector.restoredBreakpoint): 2010-06-18 Darin Adler <darin@apple.com> Reviewed by Sam Weinig. Implement additional DOM attribute reflection for bindings https://bugs.webkit.org/show_bug.cgi?id=39936 - Added support for [Reflect] for long, unsigned long, and boolean attributes. - Fixed code that set attributes like this: <video controls="controls"> to instead set them like this: <video controls>. - Added lots more uses of [Reflect]. - Removed now-unneeded [ConvertFromString]. - Made [Reflect] imply [ConvertNullToNullString] so we can get rid of most uses of the latter. - Made [Reflect] automatically lowercase the name of the reflected content attribute to minimize the need to specify a custom content attribute name. One thing this patch does *not* do is remove the unneeded functions in the various DOM classes that are no longer used by the bindings. We should do that in a followup. * bindings/scripts/CodeGenerator.pm: Added new functions so code can be shared across bindings, GetterExpressionPrefix and SetterExpressionPrefix. We can do a lot more refactoring like this in the future. * bindings/scripts/CodeGeneratorCPP.pm: Removed unneeded ConvertFromString handling, changed to use the new GetterExpressionPrefix and SetterExpressionPrefix functions to better handle reflected DOM attributes. * bindings/scripts/CodeGeneratorGObject.pm: Removed unneeded ConvertFromString handling, changed to use the new GetterExpressionPrefix and SetterExpressionPrefix functions to better handle reflected DOM attributes. Fixed a few things in the output so the .cpp file will have more WebKit style. The .h file should be GTK style, but the .cpp file can be the standard WebKit style eventually. * bindings/scripts/CodeGeneratorJS.pm: Changed to use the new GetterExpressionPrefix and SetterExpressionPrefix functions and removed a now-unneeded IsSVGAnimatedType special case since the new functions take care of it. Made reflected attributes automatically convert null to the null string without a separate ConvertNullToNullString attribute. * bindings/scripts/CodeGeneratorObjC.pm: Changed to use the new GetterExpressionPrefix and SetterExpressionPrefix functions and removed a now-unneeded IsSVGAnimatedType special case since the new functions take care of it. Redid the special cases for ownerDocument and for operator to fit better with the new code paths. Removed unneeded ConvertFromString handling. * bindings/scripts/CodeGeneratorV8.pm: Changed to use the new GetterExpressionPrefix and SetterExpressionPrefix functions and removed a now-unneeded IsSVGAnimatedType special case since the new functions take care of it. Made reflected attributes automatically convert null to the null string without a separate ConvertNullToNullString attribute. * bindings/scripts/test/TestObj.idl: Added some test cases for content attribute reflection and for exceptions in string-typed attributes. * bindings/scripts/test/CPP/WebKitDOMTestObj.cpp: Updated. * bindings/scripts/test/CPP/WebKitDOMTestObj.h: Ditto. * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: Ditto. * bindings/scripts/test/GObject/WebKitDOMTestObj.h: Ditto. * bindings/scripts/test/JS/JSTestObj.cpp: Ditto. * bindings/scripts/test/JS/JSTestObj.h: Ditto. * bindings/scripts/test/ObjC/DOMTestObj.h: Ditto. * bindings/scripts/test/ObjC/DOMTestObj.mm: Ditto. * bindings/scripts/test/V8/V8TestObj.cpp: Ditto. * dom/Element.cpp: (WebCore::Element::getIntegralAttribute): Added. (WebCore::Element::setIntegralAttribute): Added. (WebCore::Element::getUnsignedIntegralAttribute): Added. (WebCore::Element::setUnsignedIntegralAttribute): Added. * dom/Element.h: Added new attribute get/set functions for bindings. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::isURLAttribute): Added. Returns true for srcAttr. * html/HTMLMediaElement.h: Added isURLAttribute. * html/HTMLVideoElement.cpp: (WebCore::HTMLVideoElement::isURLAttribute): Changed to call HTMLMediaElement::isURLAttribute before checking for posterAttr. * html/HTMLAnchorElement.idl: * html/HTMLAppletElement.idl: * html/HTMLAreaElement.idl: * html/HTMLBRElement.idl: * html/HTMLBaseElement.idl: * html/HTMLBaseFontElement.idl: * html/HTMLBlockquoteElement.idl: * html/HTMLBodyElement.idl: * html/HTMLButtonElement.idl: * html/HTMLDListElement.idl: * html/HTMLDirectoryElement.idl: * html/HTMLDivElement.idl: * html/HTMLElement.idl: * html/HTMLEmbedElement.idl: * html/HTMLFontElement.idl: * html/HTMLFormElement.idl: * html/HTMLFrameElement.idl: * html/HTMLFrameSetElement.idl: * html/HTMLHRElement.idl: * html/HTMLHeadElement.idl: * html/HTMLHeadingElement.idl: * html/HTMLHtmlElement.idl: * html/HTMLIFrameElement.idl: * html/HTMLImageElement.idl: * html/HTMLInputElement.idl: * html/HTMLIsIndexElement.idl: * html/HTMLLIElement.idl: * html/HTMLLabelElement.idl: * html/HTMLLegendElement.idl: * html/HTMLLinkElement.idl: * html/HTMLMapElement.idl: * html/HTMLMediaElement.idl: * html/HTMLMenuElement.idl: * html/HTMLMetaElement.idl: * html/HTMLModElement.idl: * html/HTMLOListElement.idl: * html/HTMLObjectElement.idl: * html/HTMLOptGroupElement.idl: * html/HTMLOptionElement.idl: * html/HTMLParagraphElement.idl: * html/HTMLParamElement.idl: * html/HTMLPreElement.idl: * html/HTMLQuoteElement.idl: * html/HTMLScriptElement.idl: * html/HTMLStyleElement.idl: * html/HTMLTableCaptionElement.idl: * html/HTMLTableCellElement.idl: * html/HTMLTableColElement.idl: * html/HTMLTableElement.idl: * html/HTMLTableRowElement.idl: * html/HTMLTableSectionElement.idl: * html/HTMLTextAreaElement.idl: * html/HTMLUListElement.idl: * html/HTMLVideoElement.idl: * svg/SVGElement.idl: Added more uses of [Reflect]. Got rid of uses of [ConvertNullToNullString] that are now unneeded since [Reflect] now implies that. Changed formatting to be simpler and consistent without all the lining up and multiple lines. 2010-06-17 Dumitru Daniliuc <dumi@chromium.org> Reviewed by Dimitri Glazkov. Remove some unnecessary checks that cause compiler warnings. https://bugs.webkit.org/show_bug.cgi?id=40772 * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp: (WebCore::V8SQLResultSetRowList::itemCallback): * bindings/v8/npruntime.cpp: 2010-06-18 Mikhail Naganov <mnaganov@chromium.org> Reviewed by Yury Semikhatsky. Implement 'takeHeapSnapshot' in InspectorController. https://bugs.webkit.org/show_bug.cgi?id=40834 * bindings/js/ScriptProfiler.h: (WebCore::ScriptProfiler::takeHeapSnapshot): * bindings/v8/ScriptProfiler.cpp: (WebCore::ScriptProfiler::takeHeapSnapshot): * bindings/v8/ScriptProfiler.h: * inspector/InspectorBackend.cpp: (WebCore::InspectorBackend::takeHeapSnapshot): * inspector/InspectorBackend.h: * inspector/InspectorBackend.idl: * inspector/InspectorController.cpp: (WebCore::InspectorController::takeHeapSnapshot): * inspector/InspectorController.h: 2010-06-18 Dan Bernstein <mitz@apple.com> Reviewed by Anders Carlsson. REGRESSION (r61379?): Assertion failure in Element::getURLAttribute() when accessing the src attribute of a script element https://bugs.webkit.org/show_bug.cgi?id=40831 Test: fast/dom/HTMLScriptElement/isURLAttribute.html * html/HTMLScriptElement.cpp: (WebCore::HTMLScriptElement::isURLAttribute): Check for the 'src' attribute. 2010-06-18 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r61405. http://trac.webkit.org/changeset/61405 https://bugs.webkit.org/show_bug.cgi?id=40838 broke chromium mac compile (Requested by tonyg-cr1 on #webkit). * bindings/v8/ScriptSourceCode.h: (WebCore::ScriptSourceCode::ScriptSourceCode): * bindings/v8/V8Proxy.cpp: (WebCore::V8Proxy::compileScript): (WebCore::V8Proxy::evaluate): * bindings/v8/V8Proxy.h: 2010-06-18 Zhenyao Mo <zmo@google.com> Reviewed by Dimitri Glazkov. Fix WebGLRenderingContext helper functions find{Texture/Renderbuffer/Buffer} https://bugs.webkit.org/show_bug.cgi?id=40176 * html/canvas/WebGLBuffer.cpp: Remove constructor with existing name. * html/canvas/WebGLBuffer.h: Ditto. * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::getVertexAttrib): Use findBuffer instead of creating a new WebGLBuffer. (WebCore::WebGLRenderingContext::findTexture): Deal with name == 0 case and return raw pointer. (WebCore::WebGLRenderingContext::findRenderbuffer): Ditto. (WebCore::WebGLRenderingContext::findBuffer): Find WebGLBuffer object using given name. * html/canvas/WebGLRenderingContext.h: Add findBuffer function declaration, change return type to raw pointer. 2010-06-18 Tony Gentilcore <tonyg@chromium.org> Reviewed by David Levin. Persist V8's ScriptData to the memory cache. https://bugs.webkit.org/show_bug.cgi?id=38661 This stores V8's ScriptData in the memory cache and also causes the network platform layer to be notified of the available cacheable metadata. Chromium's morejs benchmark showed a ~7% improvement when this was originally submitted (before it had to be rolled back). Test: fast/js/parser-high-byte-character.html * bindings/v8/ScriptSourceCode.h: (WebCore::ScriptSourceCode::ScriptSourceCode): (WebCore::ScriptSourceCode::cachedScript): * bindings/v8/V8Proxy.cpp: (WebCore::V8Proxy::compileScript): (WebCore::V8Proxy::precompileScript): (WebCore::V8Proxy::evaluate): * bindings/v8/V8Proxy.h: 2010-06-18 Anton Muhin <antonm@chromium.org> Reviewed by Dimitri Glazkov. [v8] Finish migration to new named property query API https://bugs.webkit.org/show_bug.cgi?id=40771 Remove definition which allowed gradual transition to new API. See https://bugs.webkit.org/show_bug.cgi?id=40303 for first phase. * config.h: 2010-06-17 Pavel Feldman <pfeldman@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: bring XHR console records back. - adds "Enable XHR Monitor" / "Disable XHR Monitor" actions to the console's context menu - make the chosen option persist in the settings. https://bugs.webkit.org/show_bug.cgi?id=40799 * English.lproj/localizedStrings.js: * inspector/InspectorBackend.cpp: (WebCore::InspectorBackend::disableSearchingForNode): (WebCore::InspectorBackend::enableMonitoringXHR): (WebCore::InspectorBackend::disableMonitoringXHR): * inspector/InspectorBackend.h: * inspector/InspectorBackend.idl: * inspector/InspectorController.cpp: (WebCore::InspectorController::InspectorController): (WebCore::InspectorController::setMonitoringXHR): (WebCore::InspectorController::didLoadResourceFromMemoryCache): (WebCore::InspectorController::identifierForInitialRequest): (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest): (WebCore::InspectorController::ensureSettingsLoaded): * inspector/InspectorController.h: * inspector/InspectorFrontend.cpp: (WebCore::InspectorFrontend::monitoringXHRWasEnabled): (WebCore::InspectorFrontend::monitoringXHRWasDisabled): * inspector/InspectorFrontend.h: * inspector/front-end/ConsoleView.js: (WebInspector.ConsoleView.prototype._handleContextMenuEvent): (WebInspector.ConsoleView.prototype._registerShortcuts): * inspector/front-end/InjectedScript.js: (injectedScriptConstructor.): * inspector/front-end/InspectorBackendStub.js: (.WebInspector.InspectorBackendStub): (.WebInspector.InspectorBackendStub.prototype.enableMonitoringXHR): (.WebInspector.InspectorBackendStub.prototype.disableMonitoringXHR): * inspector/front-end/inspector.js: (WebInspector.monitoringXHRWasEnabled): (WebInspector.monitoringXHRWasDisabled): * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::didFinishLoading): 2010-06-18 Nikolas Zimmermann <nzimmermann@rim.com> Reviewed by Dirk Schulze. Modernize SVG Text code, following the HTML design https://bugs.webkit.org/show_bug.cgi?id=40663 SVG Text does not support subpixel positioning https://bugs.webkit.org/show_bug.cgi?id=12172 RenderSVGText can't do partial repaints https://bugs.webkit.org/show_bug.cgi?id=15386 HTML and SVG need to share more text painting code https://bugs.webkit.org/show_bug.cgi?id=15644 Rewrite SVG Text rendering, only keeping the layout of the actual characters/chunks as it was. We're now drawing SVG Text very similar to HTML Text, utilizing the SVGInlineFlowBox/SVGInlineTextBox structure, instead of painting all text content of a <text> element from the SVGRootInlineBox, as it was the last years. Rough overview of the changes: - Partial repainting support for text selections (startPos/endPos are respected), no more redrawing of the whole <text> content while selecting - Subpixel positioning (near pixel-perfect rendering for all W3C tests that contain text, finally!) -> much better textPath results, characters now align as expected, as all rounding hacks are disabled for SVG text runs, and subpixel precision is used while painting - No more custom handling of selection, the standard methods offsetFromPosition() / selectionRectForText() are used instead. - Selection works as expected on stretched/squeezed text (lengthAdjust="spacingAndGlyphs"), takes 'includePartialGlyphs' into account - just like HTML text - Correct text decoration drawing (proper with and positions and rendering-order, underline/overline before text, strike-through afterwards) - Proper sizing of all InlineBoxes, starting from the SVGRootInlineBox, down to every single flow & text box -> correct DRT results, no more weird negative offsets of text runs, etc. Looks exactly like the HTML text test results. - Rewritten SVGTextContentElement API to take per-character / per-chunk transformations into account. - Speeeeeed! Drawing is much faster now. Add 24 new testcases covering basic selection features and the SVGTextContentElement API. Each test draws a half-opaque red rectangle, calculated using SVGTextContentElement API to highlight the area that is supposed to be selected. Then eventSender API is utilized to move the mouse to the calculated start origin, holding it down and moving it to the end position. A detailed list of tests that show progression, can be found in the corresponding LayoutTests/ChangeLog. Note that this requires a rebaselining of all SVG tests containing text elements. Tests: svg/hixie/text/001.xml (moved from svg/hixie/text/001-broken.xml) svg/text/lengthAdjust-text-metrics.html svg/text/select-textLength-spacing-squeeze-1.svg svg/text/select-textLength-spacing-squeeze-2.svg svg/text/select-textLength-spacing-squeeze-3.svg svg/text/select-textLength-spacing-squeeze-4.svg svg/text/select-textLength-spacing-stretch-1.svg svg/text/select-textLength-spacing-stretch-2.svg svg/text/select-textLength-spacing-stretch-3.svg svg/text/select-textLength-spacing-stretch-4.svg svg/text/select-textLength-spacingAndGlyphs-squeeze-1.svg svg/text/select-textLength-spacingAndGlyphs-squeeze-2.svg svg/text/select-textLength-spacingAndGlyphs-squeeze-3.svg svg/text/select-textLength-spacingAndGlyphs-squeeze-4.svg svg/text/select-textLength-spacingAndGlyphs-stretch-1.svg svg/text/select-textLength-spacingAndGlyphs-stretch-2.svg svg/text/select-textLength-spacingAndGlyphs-stretch-3.svg svg/text/select-textLength-spacingAndGlyphs-stretch-4.svg svg/text/select-x-list-1.svg svg/text/select-x-list-2.svg svg/text/select-x-list-3.svg svg/text/select-x-list-4.svg svg/text/select-x-list-with-tspans-1.svg svg/text/select-x-list-with-tspans-2.svg svg/text/select-x-list-with-tspans-3.svg svg/text/select-x-list-with-tspans-4.svg * rendering/InlineBox.h: Remove not needed isInlineBox() method. (WebCore::InlineBox::isInlineTextBox): Constify this method. (WebCore::InlineBox::isSVGInlineTextBox): Added, with ENABLE(SVG) guards, just like the existing isSVGRootInlineBox(). (WebCore::InlineBox::isSVGRootInlineBox): Constify this method. (WebCore::InlineBox::calculateBoundaries): Added, with ENABLE(SVG) guards, used to calculate the whole boundaries of a InlineText/FlowBox, only used in SVG text. * rendering/InlineFlowBox.h: Devirtualize placeBoxesHorizontally(), SVG no more overrides it. * rendering/InlineTextBox.h: Virtualize selectionStartEnd() - SVGInlineTextBox needs to change start/endPositions based on the current text chunk part that it's rendering. SVGTextChunkLayoutInfo.h contains a detailed documentation what a SVGTextChunk/SVGTextChunkPart is, and why they are necessary. (WebCore::InlineTextBox::isInlineTextBox): Constify this method. * rendering/RenderBlock.h: (WebCore::RenderBlock::forceLayoutInlineChildren): Add helper method, used only by RenderSVGText, to use a simplified layout strategy, which is a big speed win. * rendering/RenderBlockLineLayout.cpp: (WebCore::RenderBlock::computeHorizontalPositionsForLine): Remove all isSVGText() special cases, as this function is not called anymore for SVG text. (WebCore::RenderBlock::layoutInlineChildren): Don't call computeHorizontalPositionsForLine() for SVG text. computePerCharacterLayoutInformation() overrides it anyway. * rendering/RenderSVGInline.cpp: Remove custom absoluteRects/absoluteQuads code, all shared with RenderInline now. (WebCore::RenderSVGInline::clippedOverflowRectForRepaint): Added, forward to SVGRenderBase, just like all other non-text SVG renderers do. (WebCore::RenderSVGInline::computeRectForRepaint): Ditto. (WebCore::RenderSVGInline::mapLocalToContainer): Ditto * rendering/RenderSVGInline.h: * rendering/RenderSVGInlineText.cpp: Remove destroy() hack, which called setNeedsLayoutAndPrefWidthsRecalc/repaint on destruction. As repaint rects work properly now, this hack is no longer necessary, it was only hiding the real problem. (WebCore::RenderSVGInlineText::styleDidChange): Don't skip RenderText::styleDidChange() anymore, which automatically schedules layout changes for us. (WebCore::RenderSVGInlineText::localCaretRect): Remove outdated comment, localCaretRect() is not yet needed in SVG text code. * rendering/RenderSVGInlineText.h: Remove custom absoluteRects/absoluteQuads/selectionRectForRepaint/positionForPoint/destroy/computeRectForRepaint* code, all shared with RenderText now. * rendering/RenderSVGText.cpp: (WebCore::RenderSVGText::mapLocalToContainer): Take x/y translation into account, but do NOT include in localToParentTransform(), as that would affect rendering. (WebCore::RenderSVGText::layout): Use super-simplified layout strategy, removing a lot of uncessary stuff done by RenderBlock, that SVG does not need. (WebCore::RenderSVGText::absoluteRects): Remove dead-code, retreving the RenderSVGRoot* object, not necessary since a longer time. (WebCore::RenderSVGText::absoluteQuads): Ditto. (WebCore::RenderSVGText::paint): Early exit if we're not in PaintPhaseForeground/PaintPhaseSelfOutline. We're not interessted in other phases. (WebCore::RenderSVGText::strokeBoundingBox): Fix stroke width calculation, no need to special case SVGFonts. * rendering/RenderSVGText.h: Remove updateFirstLineBlock/updateFirstLetter overrides, the new RenderSVGText::layout() code, doesn't use these methods at all. We asked RenderBlock to layout before, which was calling updateFirstLetter & co, this is gone now, as it was all not needed. (WebCore::RenderSVGText::objectBoundingBox): Directly return the frameRect here, inlined for speed. * rendering/RootInlineBox.cpp: (WebCore::RootInlineBox::verticallyAlignBoxes): Early-exit if we're a SVGRootInlineBox. SVG handles this on its own. * rendering/RootInlineBox.h: Devirtualize verticallyAlignBoxes(), SVG no longer overrides it. Remove virtual computePerCharacterLayoutInformation() method, only lives in SVGRootInlineBox now. * rendering/SVGCharacterData.h: Remove no longer needed SVGTextDecorationInfo. * rendering/SVGCharacterLayoutInfo.cpp: Don't pass a reference to a Vector<SVGChar> to SVGCharacterLayoutInfo, let it create it. (WebCore::SVGCharacterLayoutInfo::SVGCharacterLayoutInfo): * rendering/SVGCharacterLayoutInfo.h: * rendering/SVGInlineFlowBox.cpp: (WebCore::SVGInlineFlowBox::paint): Ask children to paint. (WebCore::SVGInlineFlowBox::calculateBoundaries): Calculate boundaries by uniting all direct children boundaries. * rendering/SVGInlineFlowBox.h: Remove placeBoxesHorizontally, which does not get called anymore, and does not need to be overriden. * rendering/SVGInlineTextBox.cpp: (WebCore::SVGInlineTextBox::SVGInlineTextBox): Don't use abbrevations for variable names, initialize new member variables. (WebCore::SVGInlineTextBox::measureCharacter): New helper function extracted from buildLayoutInformation, replacing calculateGlyphWidth/Height. (WebCore::SVGInlineTextBox::offsetForPosition): Implement this method by utilizing Font::offsetForPosition(), but respecting the text chunk parts. (WebCore::SVGInlineTextBox::positionForOffset): No change here, still not used. (WebCore::SVGInlineTextBox::selectionRect): Rewritten, utilizing Font::selectionRectForText(), taking text chunk parts into account, and the supplied startPos/endPos. (WebCore::SVGInlineTextBox::paint): Rewritten, to handle paint servers much more elegant, than the old solution. See code for details, too much to explain here. (WebCore::SVGInlineTextBox::acquirePaintingResource): Helper function, used from paint(). (WebCore::SVGInlineTextBox::releasePaintingResource): Ditto. (WebCore::SVGInlineTextBox::prepareGraphicsContextForTextPainting): Ditto. (WebCore::SVGInlineTextBox::restoreGraphicsContextAfterTextPainting): Ditto. (WebCore::SVGInlineTextBox::constructTextRun): Helper function centralizing the creation of a TextRun object, used to draw/measure SVG text. (WebCore::SVGInlineTextBox::mapStartEndPositionsIntoChunkPartCoordinates): Important helper function, mapping a startPos/endPos from InlineTextBox coordinate space to the SVGInlineTextBox, respecting the current text chunk part. (WebCore::SVGInlineTextBox::selectionStartEnd): Call InlineTextBox::selectionStartEnd(), and apply post fixes when m_currentChunkPart is set. (called when painting a selected chunk part) (WebCore::positionOffsetForDecoration): Refactored from old paintDecoration() code. (WebCore::thicknessForDecoration): Ditto. (WebCore::findRenderObjectDefininingTextDecoration): Ditto. (WebCore::SVGInlineTextBox::paintDecoration): Ditto. (Can not share the code with HTML, as we need floating point precision, and directly call fillRect, instead of drawHighlightForText.) (WebCore::SVGInlineTextBox::paintDecorationWithStyle): Ditto. (WebCore::SVGInlineTextBox::paintSelection): New method, painting text selections with floating-point precision. (WebCore::SVGInlineTextBox::paintText): New method, painting text with floating-point precision, correctly handling selected text, removing the need for special SVG text sub-paint phases. (GlyphFill/StrokeSelectionPhase, GlyphFill/StrokePhase) (WebCore::SVGInlineTextBox::buildLayoutInformation): Use new measureCharacter() helper function, renamed some variables, to avoid abbrevations. (WebCore::SVGInlineTextBox::calculateGlyphBoundaries): Rewritten to use new measureCharacter() helper function. (WebCore::SVGInlineTextBox::calculateBoundaries): Rewritten to take text chunk parts into account, serves as central method used to layout InlineBoxes (see SVGRootInlineBox.) * rendering/SVGInlineTextBox.h: (WebCore::SVGInlineTextBox::isSVGInlineTextBox): Added. (WebCore::SVGInlineTextBox::setHeight): Rename variable, to avoid abbrevations. (WebCore::SVGInlineTextBox::chunkTransformation): New helper function, returning the transformation, that gets applied to the complete text chunk, if any. (WebCore::SVGInlineTextBox::setChunkTransformation): New helper function used by SVGRrootInlineBox, to set the chunk transformation, during text chunk part propagation phase. (WebCore::SVGInlineTextBox::addChunkPartInformation): Ditto. (WebCore::SVGInlineTextBox::svgTextChunkParts): Ditto. * rendering/SVGRootInlineBox.cpp: Virtually rewritten, to be designed more like HTMLs RootInlineBox, diving into children for painting. (WebCore::SVGRootInlineBox::paint): Ask children to paint, nothing more. No more traversing through the SVGTextChunks, figuring out which part to render, this is done in layout phase now. (WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation): Completly redesigned, see SVGTextChunkLayoutInfo.h for a high-level overview. (WebCore::SVGRootInlineBox::buildLayoutInformation): Just small cleanups, nothing changed here. (WebCore::SVGRootInlineBox::layoutChildBoxes): New helper function, extracted from old layoutInlineBoxes(). (WebCore::SVGRootInlineBox::layoutRootBox): Ditto. (WebCore::SVGRootInlineBox::propagateTextChunkPartInformation): Key-concept of the new design, builds "text chunk parts" and propagates that knownledge to all child SVGInlineTextBoxes. * rendering/SVGRootInlineBox.h: (WebCore::SVGRootInlineBox::isSVGRootInlineBox): Constified method. (WebCore::SVGRootInlineBox::setHeight): Change variable name, to avoid abbrevations. * rendering/SVGTextChunkLayoutInfo.cpp: Remove if 0, enable compilation. * rendering/SVGTextChunkLayoutInfo.h: Add large comment explaining text chunk parts, the key concept of the new design. Remove SVGTextChunkWalker & friends, no longer used. (WebCore::SVGTextChunkPart::SVGTextChunkPart): (WebCore::SVGTextChunkPart::isValid): (WebCore::SVGTextChunk::SVGTextChunk): (WebCore::SVGTextChunkLayoutInfo::SVGTextChunkLayoutInfo): (WebCore::SVGTextChunkLayoutInfo::textChunks): * rendering/SVGTextLayoutUtilities.cpp: (WebCore::cummulatedWidthOfInlineBoxCharacterRange): (WebCore::cummulatedHeightOfInlineBoxCharacterRange): (WebCore::svgTextRunForInlineTextBox): Disable rounding hacks, explain parameters with comments, why they have which values. * rendering/SVGTextLayoutUtilities.h: Remove SVGTextPaintSubphase and SVGTextPaintInfo. * rendering/SVGTextQuery.cpp: Remove if 0, enable compilation. * rendering/SVGTextQuery.h: Ditto. * svg/SVGStyledElement.cpp: Very important change! Do not treat CSS attributes as recognized attributes, that would lead to setNeedsLayout() calls, reducing performance! This hack existed, as we were not dealing with text updates correctly, now that RenderSVGInlineText::styleDidChange is fixed, it's no longer necessary. (WebCore::SVGStyledElement::isKnownAttribute): * svg/SVGTextContentElement.cpp: Completely remove the SVGTextContentElement API, that manually traversed all text chunks, instead use the new SVGTextQuery API. (WebCore::SVGTextContentElement::getNumberOfChars): (WebCore::SVGTextContentElement::getComputedTextLength): (WebCore::SVGTextContentElement::getSubStringLength): (WebCore::SVGTextContentElement::getStartPositionOfChar): (WebCore::SVGTextContentElement::getEndPositionOfChar): (WebCore::SVGTextContentElement::getExtentOfChar): (WebCore::SVGTextContentElement::getRotationOfChar): (WebCore::SVGTextContentElement::getCharNumAtPosition): * svg/SVGTextElement.cpp: Very important change! Do not calls setNeedsLayout() on RenderSVGText, if childrenChanged() has been called. * svg/SVGTextElement.h: Completly remove childrenChanged() - no longer necessary, updates work as expected without it now. 2010-06-18 Lucas De Marchi <lucas.demarchi@profusion.mobi> Reviewed by David Levin. Fix compilation when filters are disabled. Revision r60689 changed the signature of SVGRenderBase::prepareToRenderSVGContent() but didn't change the unsused parameters when filters are disabled. https://bugs.webkit.org/show_bug.cgi?id=40625 No new tests. Compilation fix. * rendering/SVGRenderSupport.cpp: (WebCore::SVGRenderBase::prepareToRenderSVGContent): 2010-06-18 Adam Barth <abarth@webkit.org> Reviewed by Darin Adler. noAccess url schemes block access to inline stylesheets https://bugs.webkit.org/show_bug.cgi?id=32309 Instead of using baseURL() to grab the security context we should just use finalURL directly. When I wrote the original patch that added this security check, finalURL didn't exist yet. If finalURL is an empty URL, that means we generated the style sheet from text that didn't have a URL. It would be slightly safer to store a bit on CSSStyleSheet indicating whether it came from an inline style sheet, but I think this check is fairly accurate. Test: http/tests/security/data-url-inline.css.html * css/CSSStyleSheet.cpp: (WebCore::CSSStyleSheet::cssRules): 2010-06-18 Adam Barth <abarth@webkit.org> Reviewed by Darin Adler. Remove unneeded custom code for WebSocket.send https://bugs.webkit.org/show_bug.cgi?id=38180 We don't appear to require a custom binding here. The old function was wacky in two ways: 1) It required all of its arguments. 2) If the toString of its argument threw, it would catch the exception and re-throw a different exception. I've kept the first behavior but changed the second (and documented it with a test). Test: websocket/tests/send-throw.html * bindings/js/JSWebSocketCustom.cpp: * bindings/v8/custom/V8WebSocketCustom.cpp: * websockets/WebSocket.idl: 2010-06-15 Dumitru Daniliuc <dumi@chromium.org> Reviewed by Adam Barth. Move isAvailable()/setIsAvailable() from Database/DatabaseSync to AbstractDatabase. https://bugs.webkit.org/show_bug.cgi?id=39041 * WebCore.base.exp * bindings/generic/RuntimeEnabledFeatures.cpp: (WebCore::RuntimeEnabledFeatures::openDatabaseEnabled): (WebCore::RuntimeEnabledFeatures::openDatabaseSyncEnabled): * page/DOMWindow.cpp: (WebCore::DOMWindow::openDatabase): * storage/AbstractDatabase.cpp: (WebCore::AbstractDatabase::isAvailable): (WebCore::AbstractDatabase::setIsAvailable): * storage/AbstractDatabase.h: * storage/Database.cpp: * storage/Database.h: * storage/DatabaseSync.cpp: * storage/DatabaseSync.h: * workers/WorkerContext.cpp: (WebCore::WorkerContext::openDatabase): (WebCore::WorkerContext::openDatabaseSync): * workers/WorkerContext.h: 2010-06-18 Adam Barth <abarth@webkit.org> Rubber-stamped by Eric Seidel. Fix the namespace indent for HTML5Lexer. This patch changes white-space only. * html/HTML5Lexer.h: (WebCore::HTML5Lexer::): (WebCore::HTML5Lexer::lineNumber): (WebCore::HTML5Lexer::columnNumber): (WebCore::HTML5Lexer::state): (WebCore::HTML5Lexer::setState): (WebCore::HTML5Lexer::skipLeadingNewLineForListing): (WebCore::HTML5Lexer::InputStreamPreprocessor::InputStreamPreprocessor): (WebCore::HTML5Lexer::InputStreamPreprocessor::nextInputCharacter): (WebCore::HTML5Lexer::InputStreamPreprocessor::peek): (WebCore::HTML5Lexer::InputStreamPreprocessor::advance): 2010-06-18 Fumitoshi Ukai <ukai@chromium.org> Unreviewed test breakage fix. WebSocket: resume should not process buffer if already processing. https://bugs.webkit.org/show_bug.cgi?id=39340 MessageLoop runs in main thread, so we don't need to use timer in worker thread. Also, we should not use Timer in worker thread. * websockets/ThreadableWebSocketChannelClientWrapper.h: (WebCore::ThreadableWebSocketChannelClientWrapper::resume): (WebCore::ThreadableWebSocketChannelClientWrapper::ThreadableWebSocketChannelClientWrapper): 2010-06-17 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r61379. http://trac.webkit.org/changeset/61379 https://bugs.webkit.org/show_bug.cgi?id=40813 Broke multiple tests on all platforms (Requested by tkent on #webkit). * bindings/scripts/CodeGenerator.pm: * bindings/scripts/CodeGeneratorCPP.pm: * bindings/scripts/CodeGeneratorGObject.pm: * bindings/scripts/CodeGeneratorJS.pm: * bindings/scripts/CodeGeneratorObjC.pm: * bindings/scripts/CodeGeneratorV8.pm: * bindings/scripts/test/CPP/WebDOMTestObj.cpp: (WebDOMTestObj::attrWithException): (WebDOMTestObj::setAttrWithException): (WebDOMTestObj::attrWithSetterException): (WebDOMTestObj::attrWithGetterException): (WebDOMTestObj::setAttrWithGetterException): * bindings/scripts/test/CPP/WebDOMTestObj.h: * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp: (webkit_dom_test_callback_callback_with_class1param): (webkit_dom_test_callback_callback_with_class2param): (webkit_dom_test_callback_callback_with_non_bool_return_type): * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: (webkit_dom_test_obj_void_method): (webkit_dom_test_obj_void_method_with_args): (webkit_dom_test_obj_int_method): (webkit_dom_test_obj_int_method_with_args): (webkit_dom_test_obj_obj_method): (webkit_dom_test_obj_obj_method_with_args): (webkit_dom_test_obj_method_that_requires_all_args): (webkit_dom_test_obj_method_that_requires_all_args_and_throws): (webkit_dom_test_obj_serialized_value): (webkit_dom_test_obj_method_with_exception): (webkit_dom_test_obj_with_dynamic_frame): (webkit_dom_test_obj_with_dynamic_frame_and_arg): (webkit_dom_test_obj_with_dynamic_frame_and_optional_arg): (webkit_dom_test_obj_with_dynamic_frame_and_user_gesture): (webkit_dom_test_obj_with_dynamic_frame_and_user_gesture_asad): (webkit_dom_test_obj_with_script_state_void): (webkit_dom_test_obj_with_script_state_obj): (webkit_dom_test_obj_with_script_state_void_exception): (webkit_dom_test_obj_with_script_state_obj_exception): (webkit_dom_test_obj_with_script_execution_context): (webkit_dom_test_obj_method_with_optional_arg): (webkit_dom_test_obj_method_with_non_optional_arg_and_optional_arg): (webkit_dom_test_obj_method_with_non_optional_arg_and_two_optional_args): (webkit_dom_test_obj_get_read_only_int_attr): (webkit_dom_test_obj_get_read_only_string_attr): (webkit_dom_test_obj_get_read_only_test_obj_attr): (webkit_dom_test_obj_get_int_attr): (webkit_dom_test_obj_set_int_attr): (webkit_dom_test_obj_get_long_long_attr): (webkit_dom_test_obj_set_long_long_attr): (webkit_dom_test_obj_get_unsigned_long_long_attr): (webkit_dom_test_obj_set_unsigned_long_long_attr): (webkit_dom_test_obj_get_string_attr): (webkit_dom_test_obj_set_string_attr): (webkit_dom_test_obj_get_test_obj_attr): (webkit_dom_test_obj_set_test_obj_attr): (webkit_dom_test_obj_get_attr_with_exception): (webkit_dom_test_obj_set_attr_with_exception): (webkit_dom_test_obj_get_attr_with_setter_exception): (webkit_dom_test_obj_set_attr_with_setter_exception): (webkit_dom_test_obj_get_attr_with_getter_exception): (webkit_dom_test_obj_set_attr_with_getter_exception): (webkit_dom_test_obj_get_script_string_attr): (webkit_dom_test_obj_get_conditional_attr1): (webkit_dom_test_obj_set_conditional_attr1): (webkit_dom_test_obj_get_conditional_attr2): (webkit_dom_test_obj_set_conditional_attr2): (webkit_dom_test_obj_get_conditional_attr3): (webkit_dom_test_obj_set_conditional_attr3): (webkit_dom_test_obj_get_description): (webkit_dom_test_obj_get_id): (webkit_dom_test_obj_set_id): (webkit_dom_test_obj_get_hash): (webkit_dom_test_obj_set_property): (webkit_dom_test_obj_get_property): (webkit_dom_test_obj_class_init): * bindings/scripts/test/GObject/WebKitDOMTestObj.h: * bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::): (WebCore::jsTestObjAttrWithException): (WebCore::jsTestObjAttrWithSetterException): (WebCore::jsTestObjAttrWithGetterException): (WebCore::setJSTestObjAttrWithException): (WebCore::setJSTestObjAttrWithGetterException): (WebCore::jsTestObjPrototypeFunctionOverloadedMethod): * bindings/scripts/test/JS/JSTestObj.h: * bindings/scripts/test/ObjC/DOMTestObj.h: * bindings/scripts/test/ObjC/DOMTestObj.mm: (-[DOMTestObj attrWithException]): (-[DOMTestObj setAttrWithException:]): (-[DOMTestObj attrWithSetterException]): (-[DOMTestObj attrWithGetterException]): (-[DOMTestObj setAttrWithGetterException:]): * bindings/scripts/test/TestObj.idl: * bindings/scripts/test/V8/V8TestObj.cpp: (WebCore::TestObjInternal::attrWithExceptionAttrGetter): (WebCore::TestObjInternal::attrWithExceptionAttrSetter): (WebCore::TestObjInternal::attrWithSetterExceptionAttrGetter): (WebCore::TestObjInternal::attrWithGetterExceptionAttrGetter): (WebCore::TestObjInternal::attrWithGetterExceptionAttrSetter): (WebCore::TestObjInternal::overloadedMethodCallback): (WebCore::): * dom/Element.cpp: * dom/Element.h: * html/HTMLAnchorElement.idl: * html/HTMLAppletElement.idl: * html/HTMLAreaElement.idl: * html/HTMLBRElement.idl: * html/HTMLBaseElement.idl: * html/HTMLBaseFontElement.idl: * html/HTMLBlockquoteElement.idl: * html/HTMLBodyElement.idl: * html/HTMLButtonElement.idl: * html/HTMLDListElement.idl: * html/HTMLDirectoryElement.idl: * html/HTMLDivElement.idl: * html/HTMLElement.idl: * html/HTMLEmbedElement.idl: * html/HTMLFontElement.idl: * html/HTMLFormElement.idl: * html/HTMLFrameElement.idl: * html/HTMLFrameSetElement.idl: * html/HTMLHRElement.idl: * html/HTMLHeadElement.idl: * html/HTMLHeadingElement.idl: * html/HTMLHtmlElement.idl: * html/HTMLIFrameElement.idl: * html/HTMLImageElement.idl: * html/HTMLInputElement.idl: * html/HTMLIsIndexElement.idl: * html/HTMLLIElement.idl: * html/HTMLLabelElement.idl: * html/HTMLLegendElement.idl: * html/HTMLLinkElement.idl: * html/HTMLMapElement.idl: * html/HTMLMediaElement.idl: * html/HTMLMenuElement.idl: * html/HTMLMetaElement.idl: * html/HTMLModElement.idl: * html/HTMLOListElement.idl: * html/HTMLObjectElement.idl: * html/HTMLOptGroupElement.idl: * html/HTMLOptionElement.idl: * html/HTMLParagraphElement.idl: * html/HTMLParamElement.idl: * html/HTMLPreElement.idl: * html/HTMLQuoteElement.idl: * html/HTMLScriptElement.idl: * html/HTMLStyleElement.idl: * html/HTMLTableCaptionElement.idl: * html/HTMLTableCellElement.idl: * html/HTMLTableColElement.idl: * html/HTMLTableElement.idl: * html/HTMLTableRowElement.idl: * html/HTMLTableSectionElement.idl: * html/HTMLTextAreaElement.idl: * html/HTMLUListElement.idl: * html/HTMLVideoElement.idl: * svg/SVGElement.idl: 2010-06-17 Rob Buis <rwlbuis@gmail.com> Reviewed by Dave Hyatt. CSS3 "Property is declared twice in rule" test fails https://bugs.webkit.org/show_bug.cgi?id=36282 Filter out duplicate properties in style declaration. Test: fast/css/duplicate-property-in-rule.html * css/CSSMutableStyleDeclaration.cpp: Filter out duplicate properties (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration): * css/CSSParser.cpp: (WebCore::CSSParser::parseValue): Discard negative padding values * css/CSSStyleSelector.cpp: Remove negative padding check (WebCore::CSSStyleSelector::applyProperty): 2010-06-17 Darin Adler <darin@apple.com> Reviewed by Sam Weinig. Implement additional DOM attribute reflection for bindings https://bugs.webkit.org/show_bug.cgi?id=39936 - Added support for [Reflect] for long, unsigned long, and boolean attributes. - Fixed code that set attributes like this: <video controls="controls"> to instead set them like this: <video controls>. - Added lots more uses of [Reflect]. - Removed now-unneeded [ConvertFromString]. - Made [Reflect] imply [ConvertNullToNullString] so we can get rid of most uses of the latter. - Made [Reflect] automatically lowercase the name of the reflected content attribute to minimize the need to specify a custom content attribute name. One thing this patch does *not* do is remove the unneeded functions in the various DOM classes that are no longer used by the bindings. We should do that in a followup. * bindings/scripts/CodeGenerator.pm: Added new functions so code can be shared across bindings, GetterExpressionPrefix and SetterExpressionPrefix. We can do a lot more refactoring like this in the future. * bindings/scripts/CodeGeneratorCPP.pm: Removed unneeded ConvertFromString handling, changed to use the new GetterExpressionPrefix and SetterExpressionPrefix functions to better handle reflected DOM attributes. * bindings/scripts/CodeGeneratorGObject.pm: Removed unneeded ConvertFromString handling, changed to use the new GetterExpressionPrefix and SetterExpressionPrefix functions to better handle reflected DOM attributes. Fixed a few things in the output so the .cpp file will have more WebKit style. The .h file should be GTK style, but the .cpp file can be the standard WebKit style eventually. * bindings/scripts/CodeGeneratorJS.pm: Changed to use the new GetterExpressionPrefix and SetterExpressionPrefix functions and removed a now-unneeded IsSVGAnimatedType special case since the new functions take care of it. Made reflected attributes automatically convert null to the null string without a separate ConvertNullToNullString attribute. * bindings/scripts/CodeGeneratorObjC.pm: Changed to use the new GetterExpressionPrefix and SetterExpressionPrefix functions and removed a now-unneeded IsSVGAnimatedType special case since the new functions take care of it. Redid the special cases for ownerDocument and for operator to fit better with the new code paths. Removed unneeded ConvertFromString handling. * bindings/scripts/CodeGeneratorV8.pm: Changed to use the new GetterExpressionPrefix and SetterExpressionPrefix functions and removed a now-unneeded IsSVGAnimatedType special case since the new functions take care of it. Made reflected attributes automatically convert null to the null string without a separate ConvertNullToNullString attribute. * bindings/scripts/test/TestObj.idl: Added some test cases for content attribute reflection and for exceptions in string-typed attributes. * bindings/scripts/test/CPP/WebKitDOMTestObj.cpp: Updated. * bindings/scripts/test/CPP/WebKitDOMTestObj.h: Ditto. * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: Ditto. * bindings/scripts/test/GObject/WebKitDOMTestObj.h: Ditto. * bindings/scripts/test/JS/JSTestObj.cpp: Ditto. * bindings/scripts/test/JS/JSTestObj.h: Ditto. * bindings/scripts/test/ObjC/DOMTestObj.h: Ditto. * bindings/scripts/test/ObjC/DOMTestObj.mm: Ditto. * bindings/scripts/test/V8/V8TestObj.cpp: Ditto. * dom/Element.cpp: (WebCore::Element::getIntegralAttribute): Added. (WebCore::Element::setIntegralAttribute): Added. (WebCore::Element::getUnsignedIntegralAttribute): Added. (WebCore::Element::setUnsignedIntegralAttribute): Added. * dom/Element.h: Added new attribute get/set functions for bindings. * html/HTMLAnchorElement.idl: * html/HTMLAppletElement.idl: * html/HTMLAreaElement.idl: * html/HTMLBRElement.idl: * html/HTMLBaseElement.idl: * html/HTMLBaseFontElement.idl: * html/HTMLBlockquoteElement.idl: * html/HTMLBodyElement.idl: * html/HTMLButtonElement.idl: * html/HTMLDListElement.idl: * html/HTMLDirectoryElement.idl: * html/HTMLDivElement.idl: * html/HTMLElement.idl: * html/HTMLEmbedElement.idl: * html/HTMLFontElement.idl: * html/HTMLFormElement.idl: * html/HTMLFrameElement.idl: * html/HTMLFrameSetElement.idl: * html/HTMLHRElement.idl: * html/HTMLHeadElement.idl: * html/HTMLHeadingElement.idl: * html/HTMLHtmlElement.idl: * html/HTMLIFrameElement.idl: * html/HTMLImageElement.idl: * html/HTMLInputElement.idl: * html/HTMLIsIndexElement.idl: * html/HTMLLIElement.idl: * html/HTMLLabelElement.idl: * html/HTMLLegendElement.idl: * html/HTMLLinkElement.idl: * html/HTMLMapElement.idl: * html/HTMLMediaElement.idl: * html/HTMLMenuElement.idl: * html/HTMLMetaElement.idl: * html/HTMLModElement.idl: * html/HTMLOListElement.idl: * html/HTMLObjectElement.idl: * html/HTMLOptGroupElement.idl: * html/HTMLOptionElement.idl: * html/HTMLParagraphElement.idl: * html/HTMLParamElement.idl: * html/HTMLPreElement.idl: * html/HTMLQuoteElement.idl: * html/HTMLScriptElement.idl: * html/HTMLStyleElement.idl: * html/HTMLTableCaptionElement.idl: * html/HTMLTableCellElement.idl: * html/HTMLTableColElement.idl: * html/HTMLTableElement.idl: * html/HTMLTableRowElement.idl: * html/HTMLTableSectionElement.idl: * html/HTMLTextAreaElement.idl: * html/HTMLUListElement.idl: * html/HTMLVideoElement.idl: * svg/SVGElement.idl: Added more uses of [Reflect]. Got rid of uses of [ConvertNullToNullString] that are now unneeded since [Reflect] now implies that. Changed formatting to be simpler and consistent without all the lining up and multiple lines. 2010-06-17 MORITA Hajime <morrita@google.com> Unreviewd, fixed a build break. * css/CSSSelector.cpp: (WebCore::CSSSelector::pseudoId): 2010-06-16 MORITA Hajime <morrita@google.com> Reviewed by Kent Tamura. <meter> should allow styling for each gauge-level and component https://bugs.webkit.org/show_bug.cgi?id=40280 - Introduced following new pseudo classes for <meter> element. - -webkit-meter-horizontal-bar - -webkit-meter-vertical-bar - -webkit-meter-horizontal-optimum-value - -webkit-meter-vertical-optimum-value - -webkit-meter-horizontal-suboptimal-value - -webkit-meter-vertical-suboptimal-value - -webkit-meter-horizontal-even-less-good-value - -webkit-meter-vertical-even-less-good-value - Introduced 2 shadow nodes for RenderMeter to handle CSS styling. one for bar part and another for value part. - Removed RenderTheme::paintMeter() implementation because it can be handled by styled painting without RenderTheme. - Pulled RenderIndicator up to super class from RenderProgress, then make RenderMeter a subclass of it. - Moved shadow related methods from RenderProgress to ShadowBlockElement to share it with RenderMeter. - Added rules for html.css for new pseudo classes. Tests: fast/dom/HTMLMeterElement/meter-styles-changing-pseudo.html fast/dom/HTMLMeterElement/meter-styles.html * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * css/CSSSelector.cpp: (WebCore::CSSSelector::pseudoId): (WebCore::nameToPseudoTypeMap): (WebCore::CSSSelector::extractPseudoType): * css/CSSSelector.h: (WebCore::CSSSelector::): * css/html.css: (meter::-webkit-meter-horizontal-bar): (meter::-webkit-meter-vertical-bar): (meter::-webkit-meter-horizontal-optimum-value): (meter::-webkit-meter-horizontal-suboptimal-value): (meter::-webkit-meter-horizontal-even-less-good-value): (meter::-webkit-meter-vertical-optimum-value): (meter::-webkit-meter-vertical-suboptimal-value): (meter::-webkit-meter-vertical-even-less-good-value): * rendering/RenderIndicator.cpp: Added. (WebCore::RenderIndicator::RenderIndicator): (WebCore::RenderIndicator::~RenderIndicator): (WebCore::RenderIndicator::layout): (WebCore::RenderIndicator::styleDidChange): (WebCore::RenderIndicator::updateFromElement): (WebCore::RenderIndicator::hasParts): (WebCore::RenderIndicator::requestLayoutForParts): * rendering/RenderIndicator.h: Added. (WebCore::RenderIndicator::requiresForcedStyleRecalcPropagation): * rendering/RenderMeter.cpp: (WebCore::RenderMeter::RenderMeter): (WebCore::RenderMeter::~RenderMeter): (WebCore::RenderMeter::layoutParts): Added. (WebCore::RenderMeter::shouldHaveParts): Added. (WebCore::RenderMeter::valueRatio): Added. (WebCore::RenderMeter::barPartRect): Added. (WebCore::RenderMeter::valuePartRect): Added. (WebCore::RenderMeter::isHorizontal): Added. (WebCore::RenderMeter::valuePseudoId): Added. (WebCore::RenderMeter::barPseudoId): Added. (WebCore::RenderMeter::updatePartsState): Added. * rendering/RenderMeter.h: * rendering/RenderProgress.cpp: (WebCore::RenderProgress::RenderProgress): (WebCore::RenderProgress::updateFromElement): (WebCore::RenderProgress::paint): (WebCore::RenderProgress::layoutParts): Added. (WebCore::RenderProgress::shouldHaveParts): Added. (WebCore::RenderProgress::updatePartsState): (WebCore::RenderProgress::valuePartRect): * rendering/RenderProgress.h: * rendering/RenderTheme.cpp: (WebCore::RenderTheme::isControlStyled): (WebCore::RenderTheme::paintMeter): * rendering/RenderTheme.h: (WebCore::RenderTheme::supportsMeter): Added. * rendering/RenderThemeMac.h: * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::supportsMeter): Added. * rendering/ShadowElement.cpp: (WebCore::ShadowBlockElement::layoutAsPart): Added. (WebCore::ShadowBlockElement::updateStyleForPart): Added. (WebCore::ShadowBlockElement::createForPart): Added. (WebCore::ShadowBlockElement::createStyleForPart): Added. (WebCore::ShadowBlockElement::partShouldHaveStyle): Added. * rendering/ShadowElement.h: * rendering/style/RenderStyleConstants.h: (WebCore::): 2010-06-17 Fumitoshi Ukai <ukai@chromium.org> Reviewed by Alexey Proskuryakov. WebSocket: resume should not process buffer if already processing. https://bugs.webkit.org/show_bug.cgi?id=39340 Test: websocket/tests/alert-in-event-handler.html While running an event handler of WebSocket object, it may be suspended and resumed in various reason. e.g. alert() will suspend/resume ActiveDOM objects. In chromium, sending IPC message would also suspend/resume ActiveDOM objects. If resume process pending buffer in this case, another event might be fired while running the initial event handler. Thus, resume should not process pending buffer immediately. Pending buffer would be processed after the current task has been finished. * websockets/ThreadableWebSocketChannelClientWrapper.h: * websockets/WebSocketChannel.cpp: (WebCore::WebSocketChannel::WebSocketChannel): (WebCore::WebSocketChannel::resume): Just set one shot timer for resumeTimerFired() if not yet set. (WebCore::WebSocketChannel::resumeTimerFired): Process pending event after resume was called. * websockets/WebSocketChannel.h: 2010-06-17 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. REGRESSION(HTML5 parser): editing/selection/leave-requested-block.html can fail or crash https://bugs.webkit.org/show_bug.cgi?id=40764 HTML5ScriptRunner was careful to only call CachedResource::addClient for cases where the resource was not already loaded. This was to avoid getting synchronous notifyFinished callbacks from inside addClient. (The old HTMLDocumentParser also has hacks to work around addClient's synchronous notifyFinished behavior for already-loaded resources as well.) It turns out that CachedResource will mark itself as purgeable if it has no clients, thus it could have its data cleared (but itself not deleted) in the case where we yield back to the runloop to wait for CSS to load before executing the loaded script. The fix is to act more like the old parser and always call addClient on every CachedScript we load. But unlike the old parser, we're careful not to re-enter from addClient -> notifyFinished using guards in HTML5DocumentParser::watchForLoad. I do not know how to make a CachedResource purge itself from a LayoutTest, so this is not currently testable. If anyone knows how I'm happy to make a test. * html/HTML5DocumentParser.cpp: (WebCore::HTML5DocumentParser::watchForLoad): - It is now expected to call watchForLoad with a loaded script. (WebCore::HTML5DocumentParser::notifyFinished): - Now that watchForLoad is called with loaded scripts, notifyFinished may be be called from addClient, thus we may be in the middle of script execution when it's called. It's OK. We pass the call along to HTML5ScriptRunner::executeScriptsWaitingForLoad and it knows how to ignore the call in that case. * html/HTML5DocumentParser.h: - Document these member variables more. * html/HTML5ScriptRunner.cpp: (WebCore::HTML5ScriptRunner::~HTML5ScriptRunner): (WebCore::HTML5ScriptRunner::executePendingScript): (WebCore::HTML5ScriptRunner::hasScriptsWaitingForLoad): (WebCore::HTML5ScriptRunner::watchForLoad): - Set the pending script to RegisteringForWatch state before watching and WatchingForLoad after. (WebCore::HTML5ScriptRunner::stopWatchingForLoad): - Set the pending script to NotWatchingForLoad. (WebCore::HTML5ScriptRunner::executeScriptsWaitingForLoad): - Assert that callers checked hasScriptsWaitingForLoad() (WebCore::HTML5ScriptRunner::requestScript): * html/HTML5ScriptRunner.h: (WebCore::HTML5ScriptRunner::PendingScript::): (WebCore::HTML5ScriptRunner::PendingScript::PendingScript): (WebCore::HTML5ScriptRunner::PendingScript::watchingForLoad): * html/HTML5ScriptRunnerHost.h: - Document the new expectations of watchForLoad 2010-06-17 Tony Gentilcore <tonyg@chromium.org> Reviewed by Eric Seidel. Prevent HTML5PreloadScanner from loading resources in <noscript> tags. https://bugs.webkit.org/show_bug.cgi?id=40779 No new tests. Will create a layout test in a subsequent patch. * html/HTML5PreloadScanner.cpp: (WebCore::HTML5PreloadScanner::processToken): * html/HTML5TreeBuilder.cpp: (WebCore::HTML5TreeBuilder::adjustedLexerState): (WebCore::HTML5TreeBuilder::passTokenToLegacyParser): (WebCore::HTML5TreeBuilder::isScriptingFlagEnabled): * html/HTML5TreeBuilder.h: 2010-06-17 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. HTML5PreloadScanner parses <script> in DataState https://bugs.webkit.org/show_bug.cgi?id=40804 The ScriptDataState is handled separately from the rest of the lexer state changes because it's more complicted in the tree builder. The easiest thing is to just handle it separately in the preloader too. * html/HTML5PreloadScanner.cpp: (WebCore::HTML5PreloadScanner::processToken): 2010-06-17 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Add CSS scanning to HTML5PreloadScanner https://bugs.webkit.org/show_bug.cgi?id=40802 This patch just cribs the CSS preload scanning algorithm from the old preload scanner. We also invented a way of testing the preload scanner. Tests: fast/preloader/image.html fast/preloader/link.html fast/preloader/script.html fast/preloader/style.html * Android.mk: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * html/CSSPreloadScanner.cpp: Added. (WebCore::isWhitespace): (WebCore::CSSPreloadScanner::CSSPreloadScanner): (WebCore::CSSPreloadScanner::reset): (WebCore::CSSPreloadScanner::scan): (WebCore::CSSPreloadScanner::tokenize): (WebCore::CSSPreloadScanner::emitRule): * html/CSSPreloadScanner.h: Added. (WebCore::CSSPreloadScanner::): * html/HTML5PreloadScanner.cpp: (WebCore::HTML5PreloadScanner::HTML5PreloadScanner): (WebCore::HTML5PreloadScanner::processToken): (WebCore::HTML5PreloadScanner::scanningBody): * html/HTML5PreloadScanner.h: 2010-06-17 Abhishek Arya <inferno@chromium.org> Reviewed by David Kilzer. (Landed by Dirk Pranke). Check for a null frame before setting drag selection. https://bugs.webkit.org/show_bug.cgi?id=38893 Same Layout test as https://bugs.webkit.org/show_bug.cgi?id=37168. Test: editing/pasteboard/drag-drop-iframe-refresh-crash.html Note that you need to run the test manually 20-30 times for the crash to reproduce. * editing/SelectionController.cpp: (WebCore::SelectionController::setSelection): 2010-06-17 Benjamin Poulain <benjamin.poulain@nokia.com> Reviewed by Simon Hausmann. [Qt] Get rid of the the unused imageSize of ImageDecoderQt::internalHandleCurrentImage() https://bugs.webkit.org/show_bug.cgi?id=40620 Remove an unused variable. * platform/graphics/qt/ImageDecoderQt.cpp: (WebCore::ImageDecoderQt::internalHandleCurrentImage): 2010-06-17 Jeremy Moskovich <jeremy@chromium.org> Reviewed by Darin Fisher. [Chromium API] Implement WebSandboxSupport on OS X and add stubs to allow OOP loading of fonts. https://bugs.webkit.org/show_bug.cgi?id=40544 * platform/chromium/ChromiumBridge.h: Add prototype for loadFont() 2010-06-17 Nicolas Weber <thakis@chromium.org> Reviewed by Eric Seidel. Fix various warnings that are reported when building with clang https://bugs.webkit.org/show_bug.cgi?id=40503 * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::labelElementContainer): * accessibility/AccessibilityTableCell.cpp: (WebCore::AccessibilityTableCell::parentTable): * bindings/v8/NPV8Object.cpp: (WebCore::npObjectTypeInfo): * bindings/v8/custom/V8HTMLAudioElementConstructor.cpp: (WebCore::): * bindings/v8/custom/V8HTMLImageElementConstructor.cpp: (WebCore::): * bindings/v8/custom/V8HTMLOptionElementConstructor.cpp: (WebCore::): * css/CSSStyleSheet.h: * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::getNamedElements): * inspector/InspectorValues.cpp: (WebCore::InspectorObject::getObject): (WebCore::InspectorObject::getArray): * page/animation/AnimationBase.h: * platform/graphics/BitmapImage.h: (WTF::): * platform/graphics/mac/FontPlatformData.h: * rendering/RenderBlock.h: * rendering/RootInlineBox.cpp: (WebCore::RootInlineBox::ellipsisBox): * storage/StorageNamespaceImpl.cpp: (WebCore::StorageNamespaceImpl::storageArea): 2010-06-17 Kwang Yul Seo <skyul@company100.net> Reviewed by Pavel Feldman. Add ENABLE(INSPECTOR) guard for m_sessionSettings https://bugs.webkit.org/show_bug.cgi?id=40611 Build fix. * inspector/InspectorController.h: 2010-06-17 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. Add FIXME to explain HTMLDocumentParser's forceSynchronous bool https://bugs.webkit.org/show_bug.cgi?id=40609 No functional change, just adding comment. * dom/Document.cpp: (WebCore::Document::write): 2010-06-13 Robert Hogan <robert@webkit.org> Reviewed by Kenneth Rohde Christiansen. WebCore EventHandler needs to take account of onLoad events fired before layout() complete https://bugs.webkit.org/show_bug.cgi?id=40102 WebCore 'cheats' by firing onLoad events before the frame's layout has been performed. This can result in event listeners performing operations that depend on the document's final layout, such as scrolling operations. When scrolling a frameview in eventhandler ensure the layout is complete. * page/EventHandler.cpp: (WebCore::EventHandler::scrollRecursively): 2010-06-16 Dumitru Daniliuc <dumi@chromium.org> Reviewed by Dimitri Glazkov. Add the error codes defined in the async DB spec to SQLError.idl and SQLError.h. https://bugs.webkit.org/show_bug.cgi?id=40748 Test: storage/sql-error-codes.html * storage/SQLError.h: (WebCore::SQLError::): * storage/SQLError.idl: * storage/SQLStatement.cpp: (WebCore::SQLStatement::execute): (WebCore::SQLStatement::setDatabaseDeletedError): (WebCore::SQLStatement::setVersionMismatchedError): (WebCore::SQLStatement::setFailureDueToQuota): (WebCore::SQLStatement::lastExecutionFailedDueToQuota): * storage/SQLTransaction.cpp: (WebCore::SQLTransaction::openTransactionAndPreflight): (WebCore::SQLTransaction::deliverTransactionCallback): (WebCore::SQLTransaction::handleCurrentStatementError): (WebCore::SQLTransaction::deliverStatementCallback): (WebCore::SQLTransaction::postflightAndCommit): 2010-06-17 Kinuko Yasuda <kinuko@chromium.org> Reviewed by Jian Li. Fix CRLF ending conversion in StringBlobItem. https://bugs.webkit.org/show_bug.cgi?id=40736 Also: fix referencing uninitialized member bug and slice length bug in hybrid blob case. Tests will be added when we add BlobBuilder jsc bindings. * platform/BlobItem.cpp: (WebCore::StringBlobItem::convertToCString): (WebCore::DataRangeBlobItem::DataRangeBlobItem): 2010-06-17 Dimitri Glazkov <dglazkov@chromium.org> Unreviewed, rolling out r61340. http://trac.webkit.org/changeset/61340 https://bugs.webkit.org/show_bug.cgi?id=36282 Broke several editing tests. * css/CSSMutableStyleDeclaration.cpp: (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration): * css/CSSParser.cpp: (WebCore::CSSParser::parseValue): * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): 2010-06-17 Jian Li <jianli@chromium.org> Reviewed by David Levin. Add optional contentType parameter to Blob.slice per latest File API spec. https://bugs.webkit.org/show_bug.cgi?id=40647 Tested by http/tests/local/resources/send-sliced-dragged-file.html. * html/Blob.cpp: (WebCore::Blob::slice): * html/Blob.h: * html/Blob.idl: 2010-06-17 Jesus Sanchez-Palencia <jesus@webkit.org>, Kenneth Rohde Christiansen <kenneth@webkit.org> Reviewed by Simon Hausmann. [Qt] QtWebKit does not support viewport meta tag https://bugs.webkit.org/show_bug.cgi?id=39902 Add windowRect() to page client. * platform/qt/QWebPageClient.h: 2010-06-17 Stephen White <senorblanco@chromium.org> Reviewed by David Levin. Fix for slow multiple animated resize issue. https://bugs.webkit.org/show_bug.cgi?id=38233 The timer-based resize quality approach implemented in http://trac.webkit.org/changeset/34210 is a good idea, but doesn't scale to multiple images with animated resizes. This fix unifies all outstanding resize timers into a single timer, and removes the "use last quality" check (which doesn't work when images are overlapping). It also refactors the copy of this code implemented in RenderBoxModelObject in http://trac.webkit.org/changeset/53949. This improves Safari performance for the following IE9 platform demos on my C2D MacPro (10.5): http://ie.microsoft.com/testdrive/Performance/01FlyingImages/Default.html (4->60fps) http://ie.microsoft.com/testdrive/Performance/10FlickrExplorer/Default.html (3->16fps) http://ie.microsoft.com/testdrive/Performance/11BrowserFlip/Default.html (9->60fps) * rendering/RenderBoxModelObject.cpp: (WebCore::ImageQualityController::ImageQualityController): Unify all timers into a single timer, rename RenderBoxModelScaleObserver to ImageQualityController, and remove the resize quality "stickness", since it doesn't work with multiple outstanding resizes. (WebCore::ImageQualityController::objectDestroyed): gImages global is now m_lastPaintTimeMap member. (WebCore::ImageQualityController::highQualityRepaintTimerFired): Function made non-static; repaint all pending resizes (not just one). (WebCore::ImageQualityController::restartTimer): Added function to restart timer at 1.05x threshold. (WebCore::imageQualityController): Static function to return singleton. (WebCore::ImageQualityController::shouldPaintAtLowQuality): Use m_lastPaintTimeMap, not gImages global. Implement new timer algorithm. Remove resize "stickiness". (WebCore::RenderBoxModelObject::shouldPaintAtLowQuality): Implement shouldPaintAtLowQuality, which pulls out "this" and passes the call to the ImageQualityController. (WebCore::RenderBoxModelObject::~RenderBoxModelObject): Call ImageQualityController singleton's objectDestroyed() instead of old static function. (WebCore::RenderBoxModelObject::paintFillLayerExtended): Modify shouldPaintAtLowQuality() call to match new class name and function signature. * rendering/RenderBoxModelObject.h: Expose shouldPaintAtLowQuality as a member function. * rendering/RenderImage.cpp: (WebCore::RenderImage::~RenderImage): No need to call objectDestroyed() here anymore, since the RenderBoxModelObject destructor will do this for us. (WebCore::RenderImage::paintIntoRect): Rip out RenderImageScaleObserver, and call RenderBoxModelObject::shouldPaintAtLowQuality() instead. 2010-06-17 Rob Buis <rwlbuis@gmail.com> Reviewed by Dave Hyatt. CSS3 "Property is declared twice in rule" test fails https://bugs.webkit.org/show_bug.cgi?id=36282 Filter out duplicate properties in style declaration. Test: fast/css/duplicate-property-in-rule.html * css/CSSMutableStyleDeclaration.cpp: Filter out duplicate properties (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration): * css/CSSParser.cpp: (WebCore::CSSParser::parseValue): Discard negative padding values * css/CSSStyleSelector.cpp: Remove negative padding check (WebCore::CSSStyleSelector::applyProperty): 2010-06-17 Kenneth Russell <kbr@google.com> Reviewed by Dimitri Glazkov. Clean up error conditions for Typed Arrays https://bugs.webkit.org/show_bug.cgi?id=40755 * bindings/js/JSArrayBufferCustom.cpp: (WebCore::JSArrayBufferConstructor::constructJSArrayBuffer): - Fixed handling of NaN/+inf/-inf lengths. Throw RangeError for too-large or negative lengths. * bindings/js/JSArrayBufferViewHelper.h: (WebCore::constructArrayBufferView): - Changed all error code paths to throw exceptions. Clarified exception types. * bindings/js/JSFloat32ArrayCustom.cpp: (WebCore::JSFloat32ArrayConstructor::constructJSFloat32Array): - Removed throwing of INDEX_SIZE_ERROR, delegating responsibility to constructArrayBufferView. * bindings/js/JSInt16ArrayCustom.cpp: (WebCore::JSInt16ArrayConstructor::constructJSInt16Array): - Removed throwing of INDEX_SIZE_ERROR, delegating responsibility to constructArrayBufferView. * bindings/js/JSInt32ArrayCustom.cpp: (WebCore::JSInt32ArrayConstructor::constructJSInt32Array): - Removed throwing of INDEX_SIZE_ERROR, delegating responsibility to constructArrayBufferView. * bindings/js/JSInt8ArrayCustom.cpp: (WebCore::JSInt8ArrayConstructor::constructJSInt8Array): - Removed throwing of INDEX_SIZE_ERROR, delegating responsibility to constructArrayBufferView. * bindings/js/JSUint16ArrayCustom.cpp: (WebCore::JSUint16ArrayConstructor::constructJSUint16Array): - Removed throwing of INDEX_SIZE_ERROR, delegating responsibility to constructArrayBufferView. * bindings/js/JSUint32ArrayCustom.cpp: (WebCore::JSUint32ArrayConstructor::constructJSUint32Array): - Removed throwing of INDEX_SIZE_ERROR, delegating responsibility to constructArrayBufferView. * bindings/js/JSUint8ArrayCustom.cpp: (WebCore::JSUint8ArrayConstructor::constructJSUint8Array): - Removed throwing of INDEX_SIZE_ERROR, delegating responsibility to constructArrayBufferView. * bindings/v8/custom/V8ArrayBufferCustom.cpp: (WebCore::V8ArrayBuffer::constructorCallback): - Fixed handling of NaN/+inf/-inf lengths. Throw RangeError for too-large or negative lengths. Clarified exception types. * bindings/v8/custom/V8ArrayBufferViewCustom.h: (WebCore::constructWebGLArray): - Clarified exception types and throwing of exceptions along all error code paths. * html/canvas/TypedArrayBase.h: (WebCore::TypedArrayBase::create): - Added necessary null checks during allocation. 2010-06-17 Shu Chang <chang.shu@nokia.com> Reviewed by Kenneth Rohde Christiansen. [Qt] Fix the link error on symbian with ENABLE_JIT=0. 1. Add "#if ENABLE(JIT)" in the header file; 2. Put feature enable/disable logic to a common.pri so that both JavaScriptCore.pri and WebCore.pri can share. https://bugs.webkit.org/show_bug.cgi?id=40780 * WebCore.pri: 2010-06-17 Kenneth Russell <kbr@google.com> Reviewed by Oliver Hunt. Differences in error reporting for overloaded methods causing fast/canvas/webgl/texImageTest.html to fail https://bugs.webkit.org/show_bug.cgi?id=40750 Added V8Proxy::throwTypeError() and throwSyntaxError for parity with JSC::throwTypeError() and throwSyntaxError. Changed CodeGeneratorV8.pm to use throwTypeError for overload resolution failures. Revised CodeGeneratorJS.pm to use throwVMTypeError instead of manual call to JSValue::encode. Deleted now-unnecessary Chromium expectations for fast/canvas/webgl/texImageTest.html. * bindings/scripts/CodeGeneratorJS.pm: * bindings/scripts/CodeGeneratorV8.pm: * bindings/v8/V8Proxy.cpp: (WebCore::V8Proxy::throwTypeError): (WebCore::V8Proxy::throwSyntaxError): * bindings/v8/V8Proxy.h: 2010-06-17 Darin Fisher <darin@chromium.org> Reviewed by Brady Eidson. If Page::goToItem is passed a HistoryItem that is the current item, then the page should be loaded again. https://bugs.webkit.org/show_bug.cgi?id=40660 * loader/HistoryController.cpp: (WebCore::HistoryController::recursiveGoToItem): Add a check to recursiveGoToItem that matches the one in FrameLoader::loadItem. 2010-06-17 Kwang Yul Seo <skyul@company100.net> Reviewed by Kent Tamura. [BREWMP] Build fix for DragDataBrew https://bugs.webkit.org/show_bug.cgi?id=40610 http://trac.webkit.org/changeset/60957 was not applied to DragDataBrew.cpp. Add FilenameConversionPolicy argument to DragData::containsURL and DragData::asURL. * platform/brew/DragDataBrew.cpp: (WebCore::DragData::containsURL): (WebCore::DragData::asURL): 2010-06-17 Zhenyao Mo <zmo@google.com> Reviewed by David Levin. Rename internalformat to internalFormat https://bugs.webkit.org/show_bug.cgi?id=40149 * html/canvas/WebGLFramebuffer.cpp: Rename internalformat to internalFormat. (WebCore::WebGLFramebuffer::getColorBufferFormat): * html/canvas/WebGLRenderbuffer.cpp: Ditto. (WebCore::WebGLRenderbuffer::WebGLRenderbuffer): * html/canvas/WebGLRenderbuffer.h: Ditto. (WebCore::WebGLRenderbuffer::setInternalFormat): (WebCore::WebGLRenderbuffer::getInternalFormat): * html/canvas/WebGLRenderingContext.cpp: Ditto. (WebCore::WebGLRenderingContext::copyTexImage2D): (WebCore::WebGLRenderingContext::copyTexSubImage2D): (WebCore::WebGLRenderingContext::framebufferRenderbuffer): (WebCore::WebGLRenderingContext::getRenderbufferParameter): (WebCore::WebGLRenderingContext::renderbufferStorage): (WebCore::WebGLRenderingContext::texImage2DBase): (WebCore::WebGLRenderingContext::isTexInternalFormatColorBufferCombinationValid): * html/canvas/WebGLRenderingContext.h: Ditto. * html/canvas/WebGLTexture.cpp: Ditto. (WebCore::WebGLTexture::WebGLTexture): * html/canvas/WebGLTexture.h: Ditto. (WebCore::WebGLTexture::setInternalFormat): (WebCore::WebGLTexture::getInternalFormat): 2010-06-17 Zhenyao Mo <zmo@google.com> Reviewed by David Levin. Remove input parameter validation for "level" upper limit in *tex* functions https://bugs.webkit.org/show_bug.cgi?id=40603 * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::validateTexFuncParameters): Don't check for "level" upper limit. 2010-06-17 Lucas De Marchi <lucas.demarchi@profusion.mobi> Reviewed by Eric Seidel. Clean EFL header files in order to diminish the compilation time with EFL from subversion. We remove the EFL includes from header files and use forward declarations, including the headers in correspondent source files when needed. This causes only the needed source files to be recompiled in case a new version of EFL is installed instead of triggering a recompilation of almost all WebCore/WebKit. https://bugs.webkit.org/show_bug.cgi?id=40575 No new functionalities, so no new tests. * CMakeListsEfl.txt: * platform/PlatformKeyboardEvent.h: forward declaration. * platform/PlatformMouseEvent.h: forward declaration and change method signature to not require enum. * platform/PlatformWheelEvent.h: forward declaration. * platform/Widget.h: forward declaration. * platform/efl/PlatformKeyboardEventEfl.cpp: include needed header. * platform/efl/PlatformMouseEventEfl.cpp: (WebCore::PlatformMouseEvent::setClickCount): change method signature as mentioned above. * platform/efl/PlatformWheelEventEfl.cpp: include needed header. * platform/efl/RenderThemeEfl.cpp: include needed header * platform/efl/RenderThemeEfl.h: forward declaration. * platform/efl/ScrollbarEfl.cpp: include needed header. * platform/efl/ScrollbarEfl.h: forward declaration. * platform/efl/WidgetEfl.cpp: include needed header. * platform/graphics/FloatRect.h: remove unused method. * platform/graphics/Icon.h: forward declaration. * platform/graphics/IntRect.h: remove unused method. * platform/graphics/efl/FloatRectEfl.cpp: Removed. This file was implementing an unused method. * platform/graphics/efl/IntRectEfl.cpp: Removed. This file was implementing an unused method. 2010-06-17 Alex Milowski <alex@milowski.com> Reviewed by Darin Adler. Fixed a compile error in the paint() methods by making them use the new visitedDependentColor() method. https://bugs.webkit.org/show_bug.cgi?id=40327 * mathml/RenderMathMLRoot.cpp: (WebCore::RenderMathMLRoot::paint): (WebCore::RenderMathMLRoot::layout): Fixed a crash where every child was assumed to be a RenderMathMLBlock instance when that isn't the case. Also, layout() needed to mark the index for layout before calling layout() on the index. * mathml/RenderMathMLSquareRoot.cpp: (WebCore::RenderMathMLSquareRoot::paint): 2010-06-17 Darin Adler <darin@apple.com> Reviewed by Sam Weinig. Use adoptRef and create functions in more code paths https://bugs.webkit.org/show_bug.cgi?id=40760 This helps prepare for an assertion that fires if you ref or destroy an object before calling adoptRef on it. That will help us catch mistakes that can lead to storage leaks. * WebCore.base.exp: Updated export now that Frame::create is not an inline function. * css/CSSInitialValue.h: (WebCore::CSSInitialValue::createExplicit): Use create. (WebCore::CSSInitialValue::createImplicit): Ditto. (WebCore::CSSInitialValue::create): Added. * css/CSSPrimitiveValue.cpp: (WebCore::CSSPrimitiveValue::createUncachedIdentifier): Added. (WebCore::CSSPrimitiveValue::createUncachedColor): Added. (WebCore::CSSPrimitiveValue::createUncached): Added. (WebCore::CSSPrimitiveValue::createIdentifier): Use createUncachedIdentifier instead of using new directly. (WebCore::CSSPrimitiveValue::createColor): Use createUncachedColor instead of using new directly. (WebCore::CSSPrimitiveValue::create): Use createdUncached instead of using new directly. * css/CSSPrimitiveValue.h: Declare the new functions above. * css/CSSStyleSelector.cpp: (WebCore::loadFullDefaultStyle): Deref simpleDefaultStyleSheet instead of explicitly deleting it. * loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::SubresourceLoader): Move the call to addSubresourceLoader out of here. (WebCore::SubresourceLoader::create): Move it in here. This makes it so we don't ref the loader before finishing its creation and calling adoptRef. * page/Frame.cpp: (WebCore::Frame::Frame): Move the call to setMainFrame out of here. Also refactor the code so an assertion is easier to read. (WebCore::Frame::create): Move the call to setMainFrame in here. This makes it so we don't ref the frame before finishing its creation and calling adoptRef. * page/Frame.h: Made the create function non-inline. * platform/text/BidiContext.cpp: (WebCore::BidiContext::createUncached): Added. (WebCore::BidiContext::create): Call createUncached instead of callling new directly. * platform/text/BidiContext.h: Declare createUncached. * rendering/RenderSVGResourceFilter.cpp: (WebCore::RenderSVGResourceFilter::buildPrimitives): Use PassRefPtr and RefPtr instead of OwnPtr. And use the create function instead of new. * rendering/RenderSVGResourceFilter.h: Ditto. * rendering/SVGRenderTreeAsText.cpp: (WebCore::writeSVGResourceContainer): Ditto. * storage/StorageAreaImpl.cpp: (WebCore::StorageAreaImpl::StorageAreaImpl): Move the code that calls StorageAreaSync::create out of here. (WebCore::StorageAreaImpl::create): Move it in here. This makes it so we don't ref the storage area before finishing its creation and calling adoptRef. * svg/SVGPaint.cpp: (WebCore::SVGPaint::defaultFill): Use create instead of new. (WebCore::SVGPaint::defaultStroke): Ditto. * svg/graphics/filters/SVGFilterBuilder.h: Made the constructor private and added a create function since this is a reference counted object and should not be constructed directly. 2010-06-17 Lucas De Marchi <lucas.demarchi@profusion.mobi> Reviewed by Gustavo Noronha. Update CMake build system to use new script for generating source files with gperf (r61091). This updates also the build system to cope with recent changes to source files list. https://bugs.webkit.org/show_bug.cgi?id=40628 No new tests since it's just compilation fixes. * CMakeLists.txt: 2010-06-17 Darin Adler <darin@apple.com> Reviewed by Sam Weinig. Fix boolean reflected attributes to use empty string consistently for the content attribute value https://bugs.webkit.org/show_bug.cgi?id=40758 Test: fast/dom/boolean-attribute-reflection.html The HTML5 specification and other browsers are all consistent: When setting a boolean IDL attribute to true, the attribute value gets set to the empty string. The guidelines for authors allow either the empty string or the name of the attribute, but for implementers of the DOM, the reflected attribute gets empty string. * dom/Element.cpp: (WebCore::Element::setBooleanAttribute): Use emptyAtom to set the attribute to the empty string. * html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::setAutofocus): Use the empty string, not "autofocus". (WebCore::HTMLFormControlElement::setRequired): Use the empty string, not "required". 2010-06-17 Pavel Feldman <pfeldman@chromium.org> Unreviewed: chromium tests fix. Added InspectorBackend delegates for new inspector methods. * inspector/front-end/InspectorBackendStub.js: (.WebInspector.InspectorBackendStub.prototype.clearConsoleMessages): (.WebInspector.InspectorBackendStub.prototype.getOuterHTML): (.WebInspector.InspectorBackendStub.prototype.setOuterHTML): (.WebInspector.InspectorBackendStub.prototype.addInspectedNode): 2010-06-17 Mark Brand <mabrand@mabrand.nl> Reviewed by Simon Hausmann. [Qt] use "win32-g++*" scope to match all MinGW makespecs The scope "win32-g++" comes from the name of the makespec. However, it is frequently used to check for MinGW. This works fine as long as win32-g++ is the only makespec for MinGW. Now we need the wildcard to cover "win32-g++-cross" as well. * WebCore.pro: 2010-06-16 Pavel Feldman <pfeldman@chromium.org> Reviewed by Joe Pecoraro. Web Inspector: move get/setOuterHTML, addInspectedNode and clearConsole to native InspectorDOMAgent. This is done to allow inspected nodes array to store nodes from different domains, also moves outerhtml manipulation closer to the rest of the DOM operations. In addition to that, we are slowly getting rid of InjectedScriptAccess in favor of IDL-defined InspectorBackend interface for clearer remote debugging API. https://bugs.webkit.org/show_bug.cgi?id=40733 * inspector/InjectedScriptHost.cpp: (WebCore::InjectedScriptHost::inspectedNode): * inspector/InjectedScriptHost.h: * inspector/InspectorBackend.cpp: (WebCore::InspectorBackend::changeTagName): (WebCore::InspectorBackend::getOuterHTML): (WebCore::InspectorBackend::setOuterHTML): (WebCore::InspectorBackend::addInspectedNode): (WebCore::InspectorBackend::clearConsoleMessages): * inspector/InspectorBackend.h: * inspector/InspectorBackend.idl: * inspector/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::inspectedNode): (WebCore::InspectorDOMAgent::changeTagName): (WebCore::InspectorDOMAgent::getOuterHTML): (WebCore::InspectorDOMAgent::setOuterHTML): (WebCore::InspectorDOMAgent::addInspectedNode): * inspector/InspectorDOMAgent.h: * inspector/InspectorFrontend.cpp: (WebCore::InspectorFrontend::didGetOuterHTML): (WebCore::InspectorFrontend::didSetOuterHTML): * inspector/InspectorFrontend.h: * inspector/front-end/ConsoleView.js: (WebInspector.ConsoleView.prototype.requestClearMessages): * inspector/front-end/DOMAgent.js: * inspector/front-end/ElementsPanel.js: (WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged): (WebInspector.ElementsPanel): * inspector/front-end/ElementsTreeOutline.js: (WebInspector.ElementsTreeElement.prototype._tagNameEditingCommitted.changeTagNameCallback): (WebInspector.ElementsTreeElement.prototype._tagNameEditingCommitted): (): * inspector/front-end/InjectedScript.js: (injectedScriptConstructor): * inspector/front-end/InjectedScriptAccess.js: 2010-06-17 John Gregg <johnnyg@google.com> Reviewed by David Levin. Move the call to the notification presenter that a Notification is being destroyed from the destructor (not safe) to the ActiveDOMObject::contextDestroyed method. Also fix up an incorrect reference loss in the V8 bindings code for Notifications. https://bugs.webkit.org/show_bug.cgi?id=40097 No new tests; code paths are well-covered by existing tests. * bindings/v8/custom/V8NotificationCenterCustom.cpp: (WebCore::V8NotificationCenter::createHTMLNotificationCallback): (WebCore::V8NotificationCenter::createNotificationCallback): * notifications/Notification.cpp: (WebCore::Notification::~Notification): (WebCore::Notification::contextDestroyed): * notifications/Notification.h: 2010-06-17 Csaba Osztrogonác <ossy@webkit.org> Unreviewed rollout r61311, because it made 2 tests fail on Qt bot. [Qt] NPP_SetWindow seems to not be called when TestNetscapePlugin is moved https://bugs.webkit.org/show_bug.cgi?id=36702 * plugins/qt/PluginViewQt.cpp: (WebCore::PluginView::updatePluginWidget): 2010-05-28 Viatcheslav Ostapenko <ostapenko.viatcheslav@nokia.com> Reviewed by Simon Hausmann, Antti Koivisto Make repaint throttling parameters runtime configurable. https://bugs.webkit.org/show_bug.cgi?id=38401 REPAINT_THROTTLING now chooses default values for throttling parameters. Should be removed when applications start using runtime configuration. * page/FrameView.cpp: (WebCore::FrameView::reset): (WebCore::FrameView::updateDeferredRepaintDelay): (WebCore::FrameView::setRepaintThrottlingDeferredRepaintDelay): (WebCore::FrameView::setRepaintThrottlingnInitialDeferredRepaintDelayDuringLoading): (WebCore::FrameView::setRepaintThrottlingMaxDeferredRepaintDelayDuringLoading): (WebCore::FrameView::setRepaintThrottlingDeferredRepaintDelayIncrementDuringLoading): * page/FrameView.h: 2010-06-17 Robert Hogan <robert@webkit.org> Reviewed by Kenneth Rohde Christiansen. [Qt] NPP_SetWindow seems to not be called when TestNetscapePlugin is moved https://bugs.webkit.org/show_bug.cgi?id=36702 setNPWindowIfNeeded() is called on paint() in PluginViewQt, which doesn't work for DRT. So call it if we are in DRT mode and the window geometry has changed. Unskips plugins/reentrant-update-widget-positions.html * plugins/qt/PluginViewQt.cpp: (WebCore::PluginView::updatePluginWidget): 2010-06-17 Simon Hausmann <simon.hausmann@nokia.com> Reviewed by Kenneth Christiansen. [Qt] Avoid unnecessary calls to save() and restore() when drawing images Avoid calling the expensive save() and restore() on the GraphicsContext just for changing the composition mode. Instead save and restore it manually on QPainter. Change fac227f609e544f8f55aca8447b4328d6534407a in Qt makes sure that the call to QPainter::setCompositionMode doesn't do anything if the mode hasn't changed. * platform/graphics/GraphicsContext.h: * platform/graphics/qt/GraphicsContextQt.cpp: (WebCore::GraphicsContext::toQtCompositionMode): * platform/graphics/qt/ImageQt.cpp: (WebCore::BitmapImage::draw): 2010-06-16 Dawit Alemayehu <adawit@kde.org> Reviewed by Simon Hausmann. [Qt] QtWebKit crashes while initializing flash plugin 10.1.53.64. https://bugs.webkit.org/show_bug.cgi?id=40567 Avoid preventable crashes by ensuring gtk_init() is called in the flash viewer plugins before calling NP_Initialize. * plugins/qt/PluginPackageQt.cpp: (WebCore::PluginPackage::load): 2010-06-16 Tony Gentilcore <tonyg@chromium.org> Reviewed by David Levin. Guarantee that references are held for CachedScripts in HTMLDocumentParser. https://bugs.webkit.org/show_bug.cgi?id=40177 No new tests because no new functionality. * html/HTMLDocumentParser.cpp: (WebCore::HTMLDocumentParser::reset): (WebCore::HTMLDocumentParser::executeExternalScriptsIfReady): 2010-06-16 Qi Zhang <qi.2.zhang@nokia.com> Reviewed by Laszlo Gombos. [Qt] Repeat pattern should start from origin https://bugs.webkit.org/show_bug.cgi?id=39225 Patterns must be painted so that the top left of the first image is anchored at the origin of the coordinate space. * platform/graphics/qt/GraphicsContextQt.cpp: (WebCore::drawRepeatPattern): (WebCore::GraphicsContext::fillRect): 2010-06-16 Jarkko Sakkinen <jarkko.j.sakkinen@gmail.com> Reviewed by Simon Hausmann. [Qt] WebGL viewport does not show up on N900 https://bugs.webkit.org/show_bug.cgi?id=38528 With OGLES2 add default precision to the shader code. Use GLsizeiptr and GLintptr with OGLES2. Call paint() in beginPaint() so that drawTexture() is used whenever possible. * platform/graphics/qt/GraphicsContext3DQt.cpp: (WebCore::GraphicsContext3D::beginPaint): (WebCore::GraphicsContext3D::paint): (WebCore::GraphicsContext3D::shaderSource): 2010-06-16 Antonio Gomes <tonikitoo@webkit.org> Reviewed by Simon Fraser. Spatial Navigation: refactor scrollInDirection to work with scrollable content https://bugs.webkit.org/show_bug.cgi?id=39195 scrollInDirection now receives as parameter the node that the Spatial Navigation found as the more appropriated to move focus to. If it is in a scrollable container (e.g. <div> with clipped overflow content), it scrolls recursively starting from the container, not the current focused node. Test: fast/events/spatial-navigation/snav-only-clipped-overflow-content.html * page/FocusController.cpp: (WebCore::FocusController::advanceFocusDirectionally): * page/SpatialNavigation.cpp: (WebCore::scrollInDirection): * page/SpatialNavigation.h: 2010-06-16 Brady Eidson <beidson@apple.com> Reviewed by Eric Carlson <rdar://problem/7249553> and https://bugs.webkit.org/show_bug.cgi?id=40749 ResourceLoader::willCacheResponse() needs to null-check Frame::Settings() No new tests. (Discovered via crash reports, no reproducible cases noted) * loader/ResourceLoader.cpp: (WebCore::ResourceLoader::willCacheResponse): Null check m_frame->settings(), but also add an ASSERT so debug-build developers can learn more about why this might be happening. 2010-06-16 Darin Adler <darin@apple.com> Try to fix the MathML build. * mathml/MathMLMathElement.h: Added missing return type. 2010-06-16 Darin Adler <darin@apple.com> Reviewed by David Levin. Deploy adoptRef in more places, including all HTML and MathML elements https://bugs.webkit.org/show_bug.cgi?id=39941 * dom/Element.cpp: (WebCore::Element::dispatchAttrRemovalEvent): Use create instead of new in commented-out code. (WebCore::Element::dispatchAttrAdditionEvent): Ditto. * dom/Node.h: Removed now-unused CreateElementZeroRefCount and CreateHTMLElementZeroRefCount. * editing/InsertListCommand.cpp: (WebCore::InsertListCommand::insertList): Use create instead of new, fixing a storage leak. * editing/ModifySelectionListLevel.cpp: (WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevel): Removed "WithType" from function name. Use create instead of new, fixing a storage leak. (WebCore::DecreaseSelectionListLevelCommand::decreaseSelectionListLevel): Use create instead of new, fixing a storage leak. * storage/IndexedDatabaseImpl.cpp: (WebCore::IndexedDatabaseImpl::create): Use adoptRef, fixing a storage leak. * editing/ModifySelectionListLevel.h: Added create functions. * html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::HTMLAnchorElement): * html/HTMLFrameOwnerElement.cpp: (WebCore::HTMLFrameOwnerElement::HTMLFrameOwnerElement): * html/HTMLMeterElement.cpp: (WebCore::HTMLMeterElement::HTMLMeterElement): * html/HTMLProgressElement.cpp: (WebCore::HTMLProgressElement::HTMLProgressElement): Removed code to explicitly pass CreateHTMLElement construction type since that's now the type used for all HTML elements. * html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::HTMLFormControlElement): * html/HTMLFormControlElement.h: Removed construction type argument, since CreateHTMLElement is now the type used for all HTML elements. * mathml/MathMLElement.cpp: (WebCore::MathMLElement::MathMLElement): Removed construction type of CreateStyledElementZeroRefCount so we'll use the default construction type, CreateStyledElement. (WebCore::MathMLElement::create): Use adoptRef. * mathml/MathMLElement.h: Made isMathMLElement function private and removed unneeded override of createRenderer, because it did the same thing as the base class's createRenderer function. * mathml/MathMLInlineContainerElement.cpp: (WebCore::MathMLInlineContainerElement::create): Use adoptRef. (WebCore::MathMLInlineContainerElement::createRenderer): Removed unnecessarily initialization of local variable and removed the case for mathTag, since that uses a different derived class. * mathml/MathMLInlineContainerElement.h: Made createRenderrer override private. * mathml/MathMLMathElement.cpp: (WebCore::MathMLMathElement::MathMLMathElement): Marked inline since it is called in only one place. (WebCore::MathMLMathElement::create): Use adoptRef. (WebCore::MathMLMathElement::createRenderer): Added. Creates a RenderMathMLMath object. * mathml/MathMLMathElement.h: Made constructor private and added a private override of createRenderer. * mathml/MathMLTextElement.cpp: (WebCore::MathMLTextElement::MathMLTextElement): Marked inline since it is called in only one place. (WebCore::MathMLTextElement::create): Use adoptRef. (WebCore::MathMLTextElement::createRenderer): Changed to call through to the base class instead of calling RenderObject::createObject directly. * mathml/MathMLTextElement.h: Made the constructor and createRenderer function private. * rendering/RenderFileUploadControl.cpp: (WebCore::RenderFileUploadControl::RenderFileUploadControl): Removed an unneeded initializer. * rendering/RenderProgress.cpp: Tweaked includes. * rendering/ShadowElement.cpp: Added a "using namespace" directive. * rendering/ShadowElement.h: Tweaked formatting. Made more functions private. * editing/DeleteButton.cpp: (WebCore::DeleteButton::create): * html/HTMLAudioElement.cpp: (WebCore::HTMLAudioElement::create): (WebCore::HTMLAudioElement::createForJSConstructor): * html/HTMLBRElement.cpp: (WebCore::HTMLBRElement::create): * html/HTMLBaseElement.cpp: (WebCore::HTMLBaseElement::create): * html/HTMLBaseFontElement.cpp: (WebCore::HTMLBaseFontElement::create): * html/HTMLBlockquoteElement.cpp: (WebCore::HTMLBlockquoteElement::create): * html/HTMLBodyElement.cpp: (WebCore::HTMLBodyElement::create): * html/HTMLButtonElement.cpp: (WebCore::HTMLButtonElement::create): * html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::create): * html/HTMLDListElement.cpp: (WebCore::HTMLDListElement::create): * html/HTMLDataGridCellElement.cpp: (WebCore::HTMLDataGridCellElement::create): * html/HTMLDataGridColElement.cpp: (WebCore::HTMLDataGridColElement::create): * html/HTMLDataGridElement.cpp: (WebCore::HTMLDataGridElement::create): * html/HTMLDataGridRowElement.cpp: (WebCore::HTMLDataGridRowElement::create): * html/HTMLDataListElement.cpp: (WebCore::HTMLDataListElement::create): * html/HTMLDivElement.cpp: (WebCore::HTMLDivElement::create): * html/HTMLElement.cpp: (WebCore::HTMLElement::create): * html/HTMLElement.h: (WebCore::HTMLElement::HTMLElement): * html/HTMLFieldSetElement.cpp: (WebCore::HTMLFieldSetElement::create): * html/HTMLFontElement.cpp: (WebCore::HTMLFontElement::create): * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::create): * html/HTMLFrameSetElement.cpp: (WebCore::HTMLFrameSetElement::create): * html/HTMLHRElement.cpp: (WebCore::HTMLHRElement::create): * html/HTMLHeadElement.cpp: (WebCore::HTMLHeadElement::create): * html/HTMLHeadingElement.cpp: (WebCore::HTMLHeadingElement::create): * html/HTMLHtmlElement.cpp: (WebCore::HTMLHtmlElement::create): * html/HTMLImageElement.cpp: (WebCore::HTMLImageElement::create): (WebCore::HTMLImageElement::createForJSConstructor): * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::create): * html/HTMLIsIndexElement.cpp: (WebCore::HTMLIsIndexElement::create): * html/HTMLKeygenElement.cpp: (WebCore::HTMLKeygenElement::create): * html/HTMLLIElement.cpp: (WebCore::HTMLLIElement::create): * html/HTMLLabelElement.cpp: (WebCore::HTMLLabelElement::create): * html/HTMLLegendElement.cpp: (WebCore::HTMLLegendElement::create): * html/HTMLLinkElement.cpp: (WebCore::HTMLLinkElement::create): * html/HTMLMapElement.cpp: (WebCore::HTMLMapElement::create): * html/HTMLMarqueeElement.cpp: (WebCore::HTMLMarqueeElement::create): * html/HTMLMenuElement.cpp: (WebCore::HTMLMenuElement::create): * html/HTMLMetaElement.cpp: (WebCore::HTMLMetaElement::create): * html/HTMLModElement.cpp: (WebCore::HTMLModElement::create): * html/HTMLNoScriptElement.cpp: (WebCore::HTMLNoScriptElement::create): * html/HTMLOListElement.cpp: (WebCore::HTMLOListElement::create): * html/HTMLOptGroupElement.cpp: (WebCore::HTMLOptGroupElement::create): * html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::create): (WebCore::HTMLOptionElement::createForJSConstructor): * html/HTMLParagraphElement.cpp: (WebCore::HTMLParagraphElement::create): * html/HTMLParamElement.cpp: (WebCore::HTMLParamElement::create): * html/HTMLPreElement.cpp: (WebCore::HTMLPreElement::create): * html/HTMLQuoteElement.cpp: (WebCore::HTMLQuoteElement::create): * html/HTMLScriptElement.cpp: (WebCore::HTMLScriptElement::create): * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::create): * html/HTMLSourceElement.cpp: (WebCore::HTMLSourceElement::create): * html/HTMLStyleElement.cpp: (WebCore::HTMLStyleElement::create): * html/HTMLTableCaptionElement.cpp: (WebCore::HTMLTableCaptionElement::create): * html/HTMLTableCellElement.cpp: (WebCore::HTMLTableCellElement::create): * html/HTMLTableColElement.cpp: (WebCore::HTMLTableColElement::create): * html/HTMLTableElement.cpp: (WebCore::HTMLTableElement::create): * html/HTMLTableRowElement.cpp: (WebCore::HTMLTableRowElement::create): * html/HTMLTableSectionElement.cpp: (WebCore::HTMLTableSectionElement::create): * html/HTMLTextAreaElement.cpp: (WebCore::HTMLTextAreaElement::create): * html/HTMLTitleElement.cpp: (WebCore::HTMLTitleElement::create): * html/HTMLUListElement.cpp: (WebCore::HTMLUListElement::create): * html/HTMLVideoElement.cpp: (WebCore::HTMLVideoElement::create): * loader/ImageDocument.cpp: (WebCore::ImageDocumentElement::create): * rendering/MediaControlElements.cpp: (WebCore::MediaControlShadowRootElement::create): (WebCore::MediaControlElement::create): (WebCore::MediaControlTimelineContainerElement::create): (WebCore::MediaControlVolumeSliderContainerElement::create): (WebCore::MediaControlStatusDisplayElement::create): (WebCore::MediaControlMuteButtonElement::create): (WebCore::MediaControlPlayButtonElement::create): (WebCore::MediaControlSeekButtonElement::create): (WebCore::MediaControlRewindButtonElement::create): (WebCore::MediaControlReturnToRealtimeButtonElement::create): (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): (WebCore::MediaControlTimelineElement::create): (WebCore::MediaControlVolumeSliderElement::create): (WebCore::MediaControlFullscreenButtonElement::create): (WebCore::MediaControlTimeDisplayElement::create): * rendering/RenderSlider.cpp: (WebCore::SliderThumbElement::create): * rendering/TextControlInnerElements.cpp: (WebCore::TextControlInnerElement::create): (WebCore::TextControlInnerTextElement::create): (WebCore::SearchFieldResultsButtonElement::create): (WebCore::SearchFieldCancelButtonElement::create): (WebCore::SpinButtonElement::create): Use adoptRef. 2010-06-16 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. HTML5 parser crash when setTimeout document.write after slow script https://bugs.webkit.org/show_bug.cgi?id=40726 According to the HTML5 spec, we're supposed to open() a new document if we receive a document.write() after we've received EOF for the network. The old parser just dumped those bytes onto the end of the network stream. After this patch, our behavior matches Minefield. Test: http/tests/misc/write-while-waiting.html * WebCore.xcodeproj/project.pbxproj: * dom/Document.cpp: (WebCore::Document::write): * dom/DocumentParser.h: * dom/XMLDocumentParser.cpp: (WebCore::XMLDocumentParser::finishWasCalled): * dom/XMLDocumentParser.h: * html/HTML5DocumentParser.cpp: (WebCore::HTML5DocumentParser::finishWasCalled): * html/HTML5DocumentParser.h: (WebCore::HTML5DocumentParser::InputStream::isClosed): * html/HTMLDocumentParser.cpp: (WebCore::HTMLDocumentParser::finishWasCalled): * html/HTMLDocumentParser.h: * loader/ImageDocument.cpp: (WebCore::ImageTokenizer::finishWasCalled): * loader/MediaDocument.cpp: (WebCore::MediaDocumentParser::finishWasCalled): * loader/PluginDocument.cpp: (WebCore::PluginDocumentParser::finishWasCalled): * loader/SinkDocument.cpp: (WebCore::SinkDocumentParser::finishWasCalled): * loader/TextDocument.cpp: (WebCore::TextDocumentParser::finishWasCalled): 2010-06-16 Martin Robinson <mrobinson@igalia.com> Reviewed by Gustavo Noronha Silva. [GTK] ClipboardGtk::setURL does not match the behavior of other platforms https://bugs.webkit.org/show_bug.cgi?id=40640 Instead of writing URL labels to the text portion of the clipboard or drag-and-drop data, write the URL itself. Also escape the label text of URLs. Abstracts logic into DataObjectGtk, so ClipboardGtk and PasteboardGtk can share it. Tests for this issue will be activated when dropping support has been added to the GTK+ EventSender. * platform/gtk/ClipboardGtk.cpp: (WebCore::ClipboardGtk::writeURL): Use DataObjectGtk::setURL. * platform/gtk/DataObjectGtk.cpp: (WebCore::DataObjectGtk::setURL): Added. Write URL to the text portion and remember to escape the label when creating the markup portion. * platform/gtk/DataObjectGtk.h: Add declaration of new method. * platform/gtk/PasteboardGtk.cpp: (WebCore::Pasteboard::writeURL): Use DataObjectGtk::setURL. 2010-06-16 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Hit assertion in WebCore::HTML5Token::appendToSystemIdentifier https://bugs.webkit.org/show_bug.cgi?id=40729 This was a copy/paste error. Yay for ASSERTs. * html/HTML5Lexer.cpp: (WebCore::HTML5Lexer::nextToken): 2010-06-16 Stuart Morgan <stuartmorgan@chromium.org> Reviewed by Anders Carlsson. Bring npapi.h more in line with upstream npapi-headers version: - Remove obsolete XP_MAC sections. - Remove Metrowerks defines. - Add OS/2 defines. - Add Maemo defines. - Add new version of the custom Carbon event definitions. - Sync platform define style/details https://bugs.webkit.org/show_bug.cgi?id=38666 * bridge/npapi.h: 2010-06-16 Simon Fraser <simon.fraser@apple.com> Reviewed by Sam Weinig. Allow transitions and animations of clip: rect https://bugs.webkit.org/show_bug.cgi?id=38130 Make the CSS clip property animatable. Test: transitions/clip-transition.html * page/animation/AnimationBase.cpp: (WebCore::blendFunc): New blend function for LengthBox (WebCore::AnimationBase::ensurePropertyMap): Create a PropertyWrapper for LengthBoxes. * platform/LengthBox.h: (WebCore::LengthBox::LengthBox): New ctor that takes 4 length values. * rendering/style/RenderStyle.h: (WebCore::InheritedFlags::setClip): New method that takes a LengthBox. 2010-06-16 Simon Fraser <simon.fraser@apple.com> Reviewed by Dan Bernstein. Fix clipping via CSS clip: with composited descendants https://bugs.webkit.org/show_bug.cgi?id=40579 Consult the 'clip' style, as well as overflow, when creating clipping compositing layers. Tests: compositing/geometry/clip.html compositing/overflow/clip-descendents.html * rendering/RenderLayerBacking.cpp: (WebCore::clipBox): Utility function that returns the union of the clip and overflow boxes. (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Use clipBox() to get the correct clipping rectangle. * rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::enclosingNonStackingClippingLayer): Look for clip as well as overflow. (WebCore::RenderLayerCompositor::clipsCompositingDescendants): Ditto. 2010-06-16 Simon Fraser <simon.fraser@apple.com> Reviewed by Darin Adler. REGRESSION: Undocked inspector toolbar is white https://bugs.webkit.org/show_bug.cgi?id=40644 Make the html element 100% height so that we don't erase the background to white, after r61215. * inspector/front-end/inspector.css: (html): 2010-06-16 Brian Weinstein <bweinstein@apple.com> Reviewed by Darin Adler. User scripts injected on start are not run on image documents. https://bugs.webkit.org/show_bug.cgi?id=40722 <rdar://8087394> User scripts that are injected on start are run from FrameLoader::dispatchDocumentElementAvailable, but this is never called from ImageDocument, so call it when we create a document element for our image document. * loader/ImageDocument.cpp: (WebCore::ImageDocument::createDocumentStructure): Call FrameLoader::dispatchDocumentElementAvailable after creating our document element. 2010-06-16 Brady Eidson <beidson@apple.com> Reviewed by NOBODY (Build fix for Mac) * WebCore.xcodeproj/project.pbxproj: Make paths relative to the project root. 2010-06-16 Chris Marrin <cmarrin@apple.com> Reviewed by Eric Carlson. https://bugs.webkit.org/show_bug.cgi?id=40643 Second of three steps - rename Canvas3DLayer to WebGLLayer * WebCore.xcodeproj/project.pbxproj: * platform/graphics/mac/Canvas3DLayer.h: Removed. * platform/graphics/mac/Canvas3DLayer.mm: Removed. * platform/graphics/mac/GraphicsLayerCA.mm: (WebCore::GraphicsLayerCA::setContentsToGraphicsContext3D): * platform/graphics/mac/WebGLLayer.h: Copied from WebCore/platform/graphics/mac/Canvas3DLayer.h. * platform/graphics/mac/WebGLLayer.mm: Copied from WebCore/platform/graphics/mac/Canvas3DLayer.mm. 2010-06-16 Chris Marrin <cmarrin@apple.com> Reviewed by Simon Fraser. https://bugs.webkit.org/show_bug.cgi?id=40643 Rename GraphicsContext3DMac.cpp so it can interact with CALayer * platform/graphics/mac/GraphicsContext3DMac.cpp: Removed. * platform/graphics/mac/GraphicsContext3DMac.mm: Copied from WebCore/platform/graphics/mac/GraphicsContext3DMac.cpp. * WebCore.xcodeproj/project.pbxproj 2010-06-16 Nikolas Zimmermann <nzimmermann@rim.com> Reviewed by Dirk Schulze. Add new files, needed in SVG Text rewrite https://bugs.webkit.org/show_bug.cgi?id=40676 Land SVGTextChunkLayoutInfo.cpp and SVGTextQuery.(cpp|h), both with an "#if 0" on top, as they will be needed in a later patch, completing the SVG Text rewrite, that will enable them. Doesn't affect any code for now, it should just reduce the review amount. * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * rendering/SVGTextChunkLayoutInfo.cpp: Added. (WebCore::cummulatedWidthOrHeightOfTextChunk): (WebCore::cummulatedWidthOfTextChunk): (WebCore::cummulatedHeightOfTextChunk): (WebCore::calculateTextAnchorShiftForTextChunk): (WebCore::applyTextAnchorToTextChunk): (WebCore::calculateTextLengthCorrectionForTextChunk): (WebCore::applyTextLengthCorrectionToTextChunk): (WebCore::SVGTextChunkLayoutInfo::startTextChunk): (WebCore::SVGTextChunkLayoutInfo::closeTextChunk): (WebCore::SVGTextChunkLayoutInfo::buildTextChunks): (WebCore::SVGTextChunkLayoutInfo::recursiveBuildTextChunks): (WebCore::SVGTextChunkLayoutInfo::layoutTextChunks): * rendering/SVGTextChunkLayoutInfo.h: Add missing include, otherwhise compiling SVGTextChunkLayoutInfo.cpp will fail. * rendering/SVGTextQuery.cpp: Added. (WebCore::SVGTextQuery::Data::Data): (WebCore::flowBoxForRenderer): (WebCore::mapLengthThroughChunkTransformation): (WebCore::SVGTextQuery::SVGTextQuery): (WebCore::SVGTextQuery::collectTextBoxesInFlowBox): (WebCore::SVGTextQuery::executeQuery): (WebCore::SVGTextQuery::mapStartAndLengthIntoChunkPartCoordinates): (WebCore::SVGTextQuery::measureCharacterRange): (WebCore::NumberOfCharactersData::NumberOfCharactersData): (WebCore::SVGTextQuery::numberOfCharactersCallback): (WebCore::SVGTextQuery::numberOfCharacters): (WebCore::TextLengthData::TextLengthData): (WebCore::SVGTextQuery::textLengthCallback): (WebCore::SVGTextQuery::textLength): (WebCore::SubStringLengthData::SubStringLengthData): (WebCore::SVGTextQuery::subStringLengthCallback): (WebCore::SVGTextQuery::subStringLength): (WebCore::StartPositionOfCharacterData::StartPositionOfCharacterData): (WebCore::SVGTextQuery::startPositionOfCharacterCallback): (WebCore::SVGTextQuery::startPositionOfCharacter): (WebCore::EndPositionOfCharacterData::EndPositionOfCharacterData): (WebCore::SVGTextQuery::endPositionOfCharacterCallback): (WebCore::SVGTextQuery::endPositionOfCharacter): (WebCore::RotationOfCharacterData::RotationOfCharacterData): (WebCore::SVGTextQuery::rotationOfCharacterCallback): (WebCore::SVGTextQuery::rotationOfCharacter): (WebCore::ExtentOfCharacterData::ExtentOfCharacterData): (WebCore::SVGTextQuery::extentOfCharacterCallback): (WebCore::SVGTextQuery::extentOfCharacter): (WebCore::CharacterNumberAtPositionData::CharacterNumberAtPositionData): (WebCore::SVGTextQuery::characterNumberAtPositionCallback): (WebCore::SVGTextQuery::characterNumberAtPosition): * rendering/SVGTextQuery.h: Added. 2010-06-16 Nikolas Zimmermann <nzimmermann@rim.com> Reviewed by Dirk Schulze. Provide floating-point support for text selection framework https://bugs.webkit.org/show_bug.cgi?id=40665 This is the first chunk of the SVG Text rewrite patches. offsetForPosition() / selectionRectForText() should accept float/FloatPoint arguments instead of int/IntPoint. offsetForPosition() already worked with floats internally in Qt and Mac. selectionRectForText() was already returning a FloatRect, but the passed in origin was an integer. Fixing these problems in order to support sub-pixel positioning in the upcoming SVG Text rewrite patch. Add a glyphScale parameter to TextRun, that will be used to support text selection in lengthAdjust/textLength scenarios in SVG text, soon. Doesn't affect any testcases so far. HTML is not affected in any way, as it only ever passes integers to these functions. * platform/graphics/Font.cpp: (WebCore::Font::selectionRectForText): (WebCore::Font::offsetForPosition): * platform/graphics/Font.h: * platform/graphics/FontFastPath.cpp: (WebCore::Font::selectionRectForSimpleText): (WebCore::Font::offsetForPositionForSimpleText): * platform/graphics/TextRun.h: (WebCore::TextRun::TextRun): (WebCore::TextRun::glyphScale): (WebCore::TextRun::setGlyphScale): (WebCore::TextRun::applyGlyphScaling): * platform/graphics/WidthIterator.cpp: (WebCore::WidthIterator::advance): * platform/graphics/chromium/FontChromiumWin.cpp: (WebCore::Font::selectionRectForComplexText): (WebCore::Font::offsetForPositionForComplexText): * platform/graphics/chromium/FontLinux.cpp: (WebCore::Font::offsetForPositionForComplexText): (WebCore::Font::selectionRectForComplexText): * platform/graphics/efl/FontEfl.cpp: (WebCore::Font::offsetForPositionForComplexText): (WebCore::Font::selectionRectForComplexText): * platform/graphics/gtk/FontGtk.cpp: (WebCore::Font::offsetForPositionForComplexText): (WebCore::Font::selectionRectForComplexText): * platform/graphics/haiku/FontHaiku.cpp: (WebCore::Font::selectionRectForComplexText): (WebCore::Font::offsetForPositionForComplexText): * platform/graphics/mac/ComplexTextController.cpp: (WebCore::ComplexTextController::offsetForPosition): * platform/graphics/mac/ComplexTextController.h: * platform/graphics/mac/FontComplexTextMac.cpp: (WebCore::Font::selectionRectForComplexText): (WebCore::Font::offsetForPositionForComplexText): * platform/graphics/qt/FontQt.cpp: (WebCore::Font::offsetForPositionForSimpleText): (WebCore::Font::offsetForPositionForComplexText): (WebCore::Font::selectionRectForSimpleText): (WebCore::Font::selectionRectForComplexText): * platform/graphics/win/FontWin.cpp: (WebCore::Font::selectionRectForComplexText): (WebCore::Font::offsetForPositionForComplexText): * platform/graphics/wince/FontWince.cpp: (WebCore::Font::offsetForPositionForComplexText): (WebCore::Font::selectionRectForComplexText): * platform/graphics/wx/FontWx.cpp: (WebCore::Font::selectionRectForComplexText): (WebCore::Font::offsetForPositionForComplexText): * svg/SVGFont.cpp: (WebCore::Font::selectionRectForTextUsingSVGFont): (WebCore::Font::offsetForPositionForTextUsingSVGFont): 2010-06-16 Anton Muhin <antonm@chromium.org> Reviewed by Nate Chapin. [v8] Introduce single element caches for WebCore::String to v8::String conversions https://bugs.webkit.org/show_bug.cgi?id=40435 Measurements show that for some web apps (GMail, Wave) and some scenarios (intensive reading and/or keeping a tab open for a long time), hit rate lies in 30--50% interval. Inlining fast case gives another minor performance win. * bindings/v8/V8Binding.cpp: (WebCore::getStringCache): (WebCore::v8ExternalStringSlow): * bindings/v8/V8Binding.h: (WebCore::v8ExternalString): 2010-06-16 Antonio Gomes <tonikitoo@webkit.org> Reviewed by Kenneth Christiansen. Spatial Navigation: using offset{Left,Top} is not enough to get the proper inner frames position https://bugs.webkit.org/show_bug.cgi?id=39439 As pointed out by Darin Adler in https://bugs.webkit.org/show_bug.cgi?id=18662#c20, "It's not correct to use the offsetLeft and offsetTop of the frame owner element's renderer because that's just the distance from the offsetParent, not the absolute position". Patch fixes that behavior by now considering the offsetTop and offsetLeft the offsetParent recursively, starting from the HtmlFrameOwnerElement. Previously, only calling offsetTop and offsetLeft works because all tests were done in htmls where the {i}frame element was a directly a child of the body, e.g. <html>...<body><iframe src=xxx>....<body></html>. Test: fast/events/spatial-navigation/snav-iframe-recursive-offset-parent.html * page/SpatialNavigation.cpp: (WebCore::renderRectRelativeToRootDocument): 2010-06-16 Dan Bernstein <mitz@apple.com> Try to fix the Tiger build * platform/graphics/mac/SimpleFontDataMac.mm: (WebCore::SimpleFontData::platformBoundsForGlyph): 2010-06-16 Dan Bernstein <mitz@apple.com> Try to fix the Tiger build * platform/graphics/mac/SimpleFontDataMac.mm: (WebCore::SimpleFontData::platformBoundsForGlyph): 2010-06-16 Dan Bernstein <mitz@apple.com> Reviewed by Alexey Proskuryakov. <rdar://problem/8077119> REGRESSION (r60247): Google Reader contains the tops of pieces of unidentifiable text under feed headlines. https://bugs.webkit.org/show_bug.cgi?id=40386 Test: platform/mac/fast/text/x-height.html The result of platformBoundsForGlyph() is in flipped coordinates, whereas the result of -[NSFont boundingRectForGlyph:] was not. r60247 failed to account for this. * platform/graphics/mac/SimpleFontDataMac.mm: (WebCore::SimpleFontData::platformInit): Measure the height of the x glyph above the baseline correctly. (WebCore::SimpleFontData::platformBoundsForGlyph): Return a rect in flipped coordinates on Tiger as well. 2010-06-16 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Don't crash when a document ends with an entity https://bugs.webkit.org/show_bug.cgi?id=40658 When we SWITCH_TO a state, we're expecting our caller to have advanced the source. Rather than have all the callers check for empty, we do that ourselves. * html/HTML5Lexer.cpp: 2010-06-15 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Enable HTML5 lexer https://bugs.webkit.org/show_bug.cgi?id=40650 * page/Settings.cpp: (WebCore::Settings::Settings): 2010-06-15 Mark Rowe <mrowe@apple.com> Rubber-stamped by David Harrison. sqlite3_prepare16_v2 is not documented as always setting "tail" during error cases. Explicitly initialize it to null, just to be safe. * platform/sql/SQLiteStatement.cpp: (WebCore::SQLiteStatement::prepare): 2010-06-15 Mark Rowe <mrowe@apple.com> Reviewed by Brady Eidson. <rdar://problem/8091103> URLs not added to history when initial load happens via back/forward navigation Back/forward navigation currently does not create or update items in the global history. This is usually desirable, except for in the event where the back/forward list was created programmatically and attached to the WebView and the initial load in that WebView is being performed as a result of a back/forward navigation. In that situation it is preferable to ensure that global history item is created or updated. No test case is added because DumpRenderTree is not able to test the scenario where the initial load in a WebView occurs via a back/forward navigation. * loader/FrameLoader.cpp: (WebCore::FrameLoader::transitionToCommitted): If we're committing the first load in this frame as a back/forward navigation then we should update the history as if it were a standard load, with the exception of updating the back/forward list. * loader/HistoryController.cpp: (WebCore::HistoryController::updateForStandardLoad): Add a parameter to allow callers to skip updating the back/forward list. * loader/HistoryController.h: (WebCore::HistoryController::): 2010-06-15 Kinuko Yasuda <kinuko@chromium.org> Reviewed by David Levin. Fix compilation errors in BlobBuilder with FILE_WRITER enabled https://bugs.webkit.org/show_bug.cgi?id=40606 No functionality change so no new tests. * html/BlobBuilder.cpp: * html/BlobBuilder.h: 2010-06-15 Jian Li <jianli@chromium.org> Reviewed by David Levin. Move type attribute from File.idl to Blob.idl per latest File API spec. https://bugs.webkit.org/show_bug.cgi?id=40642 * html/Blob.idl: * html/File.idl: 2010-06-15 Darin Adler <darin@apple.com> Reviewed by Adam Barth. Move functions out of Frame class that were marked "move to Chrome" https://bugs.webkit.org/show_bug.cgi?id=39636 Refactoring that does not require new tests. * loader/FrameLoader.cpp: (WebCore::FrameLoader::didOpenURL): Call setStatus and setDefaultStatus on DOMWindow rather than going through Frame. (WebCore::FrameLoader::open): Ditto. (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): Call shouldClose on this object instead of going through Frame. * page/DOMWindow.cpp: (WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents): Call shouldClose on FrameLoader instead of going through Frame. (WebCore::DOMWindow::focus): Moved the code from Frame::focusWindow in here. (WebCore::DOMWindow::blur): Moved the code from Frame::unfocusWindow in here. (WebCore::DOMWindow::close): Moved the code from Frame::scheduleClose in here. (WebCore::DOMWindow::setStatus): Moved the code from Frame::setJSStatusBarText in here. (WebCore::DOMWindow::setDefaultStatus): Moved the code from Frame::setJSDefaultStatusBarText in here. * page/DOMWindow.h: Added m_status and m_defaultStatus members to store the status messages being set by the DOM. * page/Frame.cpp: Removed all the functions that were marked "to be moved into Chrome". * page/Frame.h: Ditto. 2010-06-15 Simon Fraser <simon.fraser@apple.com> Fix crashing tests; need to check for null documentElement(). * rendering/RenderView.cpp: (WebCore::RenderView::paintBoxDecorations): 2010-06-15 Simon Fraser <simon.fraser@apple.com> Reviewed by Dave Hyatt. Garbage shown outside HTML if HTML is absolutely positioned https://bugs.webkit.org/show_bug.cgi?id=36163 Add a check that the root renderer (the document element's renderer) covers the entire viewport before deciding that we don't need the RenderView to paint its background. Fixes lack of painting with positioned, floated, and display: table html elements. Test: fast/repaint/positioned-document-element.html * rendering/RenderView.cpp: (WebCore::RenderView::paintBoxDecorations): 2010-06-15 Simon Fraser <simon.fraser@apple.com> Reviewed by Dan Bernstein. Safari 5 does not clear background with transformed html element https://bugs.webkit.org/show_bug.cgi?id=40498 When the document element is composited, ensure that the FrameView paints the background, because the composited layer may be transparent, or might get moved via animation. Test: compositing/repaint/composited-document-element.html * rendering/RenderView.cpp: (WebCore::isComposited): (WebCore::rendererObscuresBackground): 2010-06-15 Xan Lopez <xlopez@igalia.com> Try to fix GTK+ build. * platform/gtk/GtkVersioning.h: 2010-06-15 Darin Fisher <darin@chromium.org> Reviewed by Brady Eidson. Introduce HistoryItem::itemSequenceNumber and use it to identify HistoryItems that are clones of one another. Changes HistoryController::recursiveGoToItem to use itemSequenceNumber equality instead of isTargetItem as the pre-requisite for not calling FrameLoader::loadItem. Changes FrameLoader::loadItem to require equivalent documentSequenceNumber before initiating a same document navigation. This alone would appear to fix the bug, but it does not go far enough since without the itemSequenceNumber equality check, we'd re-load more often than we should. Moves documentSequenceNumber assignment into createItemTree as cleanup and to ensure that it gets called properly whenever we create a cloned HistoryItem. (createItemTree's mission is to create clones up until or including the target frame depending on the value of the doClip parameter.) Removes the now unused HistoryController::urlsMatchItem. https://bugs.webkit.org/show_bug.cgi?id=40451 Test: fast/history/history-back-within-subframe.html http/tests/navigation/history-back-across-form-submission-to-fragment.html * history/HistoryItem.cpp: (WebCore::generateSequenceNumber): (WebCore::HistoryItem::HistoryItem): * history/HistoryItem.h: (WebCore::HistoryItem::setItemSequenceNumber): (WebCore::HistoryItem::itemSequenceNumber): * loader/FrameLoader.cpp: (WebCore::FrameLoader::loadItem): * loader/HistoryController.cpp: (WebCore::HistoryController::updateBackForwardListForFragmentScroll): (WebCore::HistoryController::createItemTree): (WebCore::HistoryController::recursiveGoToItem): (WebCore::HistoryController::pushState): * loader/HistoryController.h: 2010-06-15 Xan Lopez <xlopez@igalia.com> Reviewed by Gustavo Noronha. [GTK] Does not compile with -DGSEAL_ENABLE https://bugs.webkit.org/show_bug.cgi?id=37851 Fix compilation with GSEAL_ENABLE. * platform/gtk/GtkVersioning.h: * platform/gtk/PlatformScreenGtk.cpp: (WebCore::screenDepth): (WebCore::screenDepthPerComponent): * platform/gtk/PopupMenuGtk.cpp: (WebCore::PopupMenu::show): * platform/gtk/ScrollbarGtk.cpp: (ScrollbarGtk::detachAdjustment): (ScrollbarGtk::updateThumbPosition): (ScrollbarGtk::updateThumbProportion): * plugins/gtk/PluginViewGtk.cpp: (WebCore::PluginView::paint): (WebCore::PluginView::initXEvent): (WebCore::PluginView::platformGetValue): (WebCore::PluginView::platformStart): * plugins/gtk/gtk2xtbin.c: (gtk_xtbin_realize): (gtk_xtbin_new): (gtk_xtbin_set_position): (gtk_xtbin_unrealize): 2010-06-15 Xan Lopez <xlopez@igalia.com> Unreviewed build fix. Fix the build when WebSockets are disabled. * bindings/js/JSWorkerContextCustom.cpp: 2010-06-15 Simon Fraser <simon.fraser@apple.com> Reviewed by Dan Bernstein. YouTube thumbnail borders vanish during transition https://bugs.webkit.org/show_bug.cgi?id=40551 Turn off the direct image optimization if the image has a clip style, so that is is correctly rendered with the clip. Test: compositing/images/clip-on-directly-composited-image.html * rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::isDirectlyCompositedImage): 2010-06-15 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. [v8] Web Inspector: make ui tests pass when ScriptDebugServer is used https://bugs.webkit.org/show_bug.cgi?id=40623 * bindings/v8/JavaScriptCallFrame.cpp: (WebCore::JavaScriptCallFrame::functionName): return empty string for anonymous functions instead of [anonymous]. * bindings/v8/ScriptDebugServer.cpp: (WebCore::ScriptDebugServer::handleV8DebugEvent): autocontinue on syntax errors since there is no stack trace and not much to inspect. 2010-06-15 Adam Roben <aroben@apple.com> Make WebCore's and JavaScriptCore's DerivedSources available for debugging in production builds Fixes <http://webkit.org/b/40626> <rdar://problem/8094205>. Reviewed by Sam Weinig. * WebCore.vcproj/WebCore.make: Copy the contents of WebCore's DerivedSources directory to AppleInternal/Sources/WebCore. 2010-06-15 Zhenyao Mo <zmo@google.com> Reviewed by Dimitri Glazkov. Bring framebuffer functions to GLES2 conformance https://bugs.webkit.org/show_bug.cgi?id=40175 Test: fast/canvas/webgl/framebuffer-test.html * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::checkFramebufferStatus): Check input parameters and deal with default framebuffer situation. (WebCore::WebGLRenderingContext::framebufferRenderbuffer): Check input parameters. (WebCore::WebGLRenderingContext::framebufferTexture2D): Ditto. (WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter): Ditto. (WebCore::WebGLRenderingContext::validateFramebufferFuncParameters): Check input parameters. * html/canvas/WebGLRenderingContext.h: Add validateFramebufferFuncParameters. 2010-06-15 Patrick Gansterer <paroga@paroga.com> Reviewed by David Levin. Buildfix for ResourceHandleWin after r24202 and r55542. https://bugs.webkit.org/show_bug.cgi?id=32963 * platform/network/win/ResourceHandleWin.cpp: (WebCore::ResourceHandle::onHandleCreated): (WebCore::ResourceHandle::onRequestComplete): (WebCore::transferJobStatusCallback): (WebCore::ResourceHandle::start): 2010-06-12 Pavel Feldman <pfeldman@chromium.org> Reviewed by Joe Pecoraro. Web Inspector: Should not expose window.console._inspectorCommandLineAPI to the web. https://bugs.webkit.org/show_bug.cgi?id=40500 * inspector/front-end/InjectedScript.js: (injectedScriptConstructor): (injectedScriptConstructor.): 2010-06-15 Jocelyn Turcotte <jocelyn.turcotte@nokia.com> Reviewed by Simon Hausmann. [Qt] The qt_webkit_version.pri file gets overwritten on install https://bugs.webkit.org/show_bug.cgi?id=40487 Don't install qt_webkit_version.pri when building WebKit inside of Qt. The import of WebKit into Qt will take care of providing the file in mkspecs/modules and it'll be installed through projects.pro. * WebCore.pro: 2010-06-15 Tony Chang <tony@chromium.org> Reviewed by Ojan Vafai. resolve urls in text/html clipboard data https://bugs.webkit.org/show_bug.cgi?id=40044 Allow text/html data copied from a page to contain full URLs when dragging or copy/pasting. Tests: editing/pasteboard/copy-resolves-urls.html http/tests/misc/copy-resolves-urls.html * WebCore.base.exp: * editing/markup.cpp: (WebCore::appendStartMarkup): (WebCore::getStartMarkup): (WebCore::MarkupAccumulator::appendMarkup): (WebCore::createMarkup): * editing/markup.h: (WebCore::): * platform/chromium/ClipboardChromium.cpp: (WebCore::ClipboardChromium::writeRange): * platform/chromium/PasteboardChromium.cpp: (WebCore::Pasteboard::writeSelection): * platform/gtk/ClipboardGtk.cpp: (WebCore::ClipboardGtk::writeRange): * platform/gtk/DataObjectGtk.cpp: (WebCore::DataObjectGtk::markup): * platform/gtk/PasteboardGtk.cpp: (WebCore::Pasteboard::writeSelection): * platform/haiku/PasteboardHaiku.cpp: (WebCore::Pasteboard::writeSelection): * platform/qt/ClipboardQt.cpp: (WebCore::ClipboardQt::writeRange): * platform/qt/PasteboardQt.cpp: (WebCore::Pasteboard::writeSelection): 2010-06-14 Chris Fleizach <cfleizach@apple.com> No review. GTK build fix. AX: need ListItemRole and PresentationalRole https://bugs.webkit.org/show_bug.cgi?id=40133 Mostly speculative fix to make GTK unit tests work. * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: (atkRole): (webkit_accessible_get_role): 2010-06-14 Eric Carlson <eric.carlson@apple.com> Reviewed by Dan Bernstein. <rdar://problem/8090895> Update http streaming MIME types * platform/MIMETypeRegistry.cpp: (WebCore::TypeExtensionPair::): Add http streaming MIME synonyms. 2010-06-14 Eric Carlson <eric.carlson@apple.com> Reviewed by Oliver Hunt. audio/x-mp3 MIME type not recognized <rdar://problem/7875393> https://bugs.webkit.org/show_bug.cgi?id=40594 Allow MIMETypeRegistry to have more than one MIME type for a media file extension, and have the QTKit media engine register all MIME types it can find for each file type QTKit supports. Test: media/media-can-play-mp3.html * platform/MIMETypeRegistry.cpp: (WebCore::mediaMIMETypeMap): Update for new HashMap format. (WebCore::TypeExtensionPair::): Store String+Vector<String> (WebCore::MIMETypeRegistry::getMediaMIMETypeForExtension): Only consult mediaMIMETypeMap(), it has the canonical answer. (WebCore::MIMETypeRegistry::getMediaMIMETypesForExtension): New, return a Vector of all MIME types for an extension. * platform/MIMETypeRegistry.h: * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: (WebCore::addFileTypesToCache): Add all MIME types returned in the getMediaMIMETypesForExtension Vector. 2010-06-14 Mark Rowe <mrowe@apple.com> Reviewed by Brady Eidson. <rdar://problem/8071866> REGRESSION: Crash on launch on Tiger and Leopard with network home folder * platform/sql/SQLiteStatement.cpp: (WebCore::SQLiteStatement::prepare): Don't assume that tail is always non-null, since that may not be the case with some versions of SQLite. Instead we must null-check before dereferencing. 2010-06-14 Anders Carlsson <andersca@apple.com> Fix Tiger build. * plugins/mac/PluginDataMac.mm: 2010-06-14 Anders Carlsson <andersca@apple.com> Reviewed by Darin Adler. Use an array for extensions in MimeClassInfo https://bugs.webkit.org/show_bug.cgi?id=40602 Get rid of MimeClassInfo::suffixes and replace it with an array of extensions. * plugins/MimeType.cpp: (WebCore::MimeType::suffixes): Create a string of joined extensions. * plugins/MimeType.h: * plugins/PluginData.h: (WebCore::operator==): * plugins/chromium/PluginDataChromium.cpp: (WebCore::getPluginMimeTypeFromExtension): * plugins/gtk/PluginDataGtk.cpp: (WebCore::PluginData::initPlugins): * plugins/mac/PluginDataMac.mm: (WebCore::PluginData::initPlugins): * plugins/qt/PluginDataQt.cpp: (WebCore::PluginData::initPlugins): * plugins/win/PluginDataWin.cpp: (WebCore::PluginData::initPlugins): * plugins/wx/PluginDataWx.cpp: (WebCore::PluginData::initPlugins): 2010-06-14 Adam Barth <abarth@webkit.org> Unreviewed. Add an include to try to fix Chromium build. * html/HTML5DocumentParser.cpp: 2010-06-14 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. Safari beach-balls loading large pages with HTML5 parser https://bugs.webkit.org/show_bug.cgi?id=40596 Implement parser yielding, similar to how the old HTMLDocumentParser yields. This implementation re-uses the tokenizerTimeDelay and tokenizerChunkSize settings even though they don't map exactly to the token loop that the HTML5 parser uses. * dom/DocumentParser.h: - Add a FIXME for processingData() and clarify how the appendData flag is used by renaming it to isFromNetwork. * html/HTML5DocumentParser.cpp: (WebCore::parserTimeLimit): - Defaults accessor, probably belongs on Page. (WebCore::parserChunkSize): - Defaults accessor, probably belongs on Page. (WebCore::HTML5DocumentParser::HTML5DocumentParser): (WebCore::HTML5DocumentParser::stopParsing): - Stop the continue-parsing timer if active. (WebCore::HTML5DocumentParser::processingData): - Implement this poorly understood accessor to match the old parser's behavior. It's unclear what this does and it does not affect any layout tests to my knowledge but likely affects the WebKit API in some way. (WebCore::HTML5DocumentParser::pumpLexerIfPossible): - Pass SynchronousMode. - Do not ever pump if we've yielded to the timer. (WebCore::HTML5DocumentParser::PumpSession::PumpSession): - A struct for storing the yield counters. (WebCore::HTML5DocumentParser::shouldContinueParsing): - Mostly matches HTMLDocumentParser::shouldContinueParsing. (WebCore::HTML5DocumentParser::pumpLexer): - Respect SynchronousMode. - ASSERT that a timer is not scheduled if we're pumping. (WebCore::isLayoutTimerActive): - This belongs on Document. (WebCore::HTML5DocumentParser::continueNextChunkTimerFired): (WebCore::HTML5DocumentParser::write): (WebCore::HTML5DocumentParser::end): - We should never end() if a timer is still outstanding. (WebCore::HTML5DocumentParser::attemptToEnd): (WebCore::HTML5DocumentParser::endIfDelayed): (WebCore::HTML5DocumentParser::resumeParsingAfterScriptExecution): * html/HTML5DocumentParser.h: (WebCore::HTML5DocumentParser::): * html/HTMLDocumentParser.cpp: - Clarify the old TimeDelay and ChunkSize constants. 2010-06-14 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Add a preload scanner for the HTML5 parser https://bugs.webkit.org/show_bug.cgi?id=40557 This patch adds a simple preload scanner for the HTML5 parser. This preload scanner is not as awesome as the old one because it doesn't scan CSS, but it's much simpler. * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: - Build file torture. * html/HTML5DocumentParser.cpp: (WebCore::HTML5DocumentParser::write): - Call into the preload scanner when waiting for a script. * html/HTML5DocumentParser.h: * html/HTML5PreloadScanner.cpp: Copied from WebCore/html/PreloadScanner.cpp. (WebCore::HTML5PreloadScanner::HTML5PreloadScanner): (WebCore::HTML5PreloadScanner::scan): - A simple loop to pump the preload scanner's lexer. (WebCore::HTML5PreloadScanner::processToken): - Preload interesting resources. Stolen from the old preload scanner. (WebCore::HTML5PreloadScanner::scanningBody): * html/HTML5PreloadScanner.h: Copied from WebCore/html/PreloadScanner.h. 2010-06-14 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Constify some HTML5Token methods https://bugs.webkit.org/show_bug.cgi?id=40592 I keep wanting these methods to be const. Eric wanted this in a separate patch. * html/HTML5Lexer.h: (WebCore::HTML5Lexer::state): * html/HTML5Token.h: (WebCore::HTML5Token::attributes): (WebCore::HTML5Token::name): (WebCore::HTML5Token::characters): (WebCore::HTML5Token::comment): (WebCore::HTML5Token::publicIdentifier): (WebCore::HTML5Token::systemIdentifier): * html/HTML5TreeBuilder.cpp: (WebCore::convertToOldStyle): (WebCore::HTML5TreeBuilder::adjustedLexerState): - Technically, this might belong in the other patch, but I think it's fine here. (WebCore::HTML5TreeBuilder::passTokenToLegacyParser): * html/HTML5TreeBuilder.h: 2010-06-14 Dumitru Daniliuc <dumi@chromium.org> Unreviewed, build fix. * WebCore.xcodeproj/project.pbxproj: 2010-06-14 Dimitri Glazkov <dglazkov@chromium.org> Unreviewed, build fix. Remove accidental specifying of the class name twice. * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::prepareFormData): Removed my ghastly typo. 2010-06-14 Dumitru Daniliuc <dumi@chromium.org> Reviewed by Adam Barth. Get DatabaseTracker ready for sync DBs. https://bugs.webkit.org/show_bug.cgi?id=39041 * storage/AbstractDatabase.cpp: (WebCore::AbstractDatabase::~AbstractDatabase): * storage/AbstractDatabase.h: * storage/Database.cpp: (WebCore::Database::closeImmediately): * storage/Database.h: (WebCore::Database::scriptExecutionContext): * storage/DatabaseTracker.cpp: (WebCore::DatabaseTracker::getMaxSizeForDatabase): (WebCore::DatabaseTracker::databaseChanged): (WebCore::DatabaseTracker::addOpenDatabase): (WebCore::DatabaseTracker::removeOpenDatabase): (WebCore::DatabaseTracker::getOpenDatabases): (WebCore::DatabaseTracker::deleteDatabaseFile): * storage/DatabaseTracker.h: * storage/OriginQuotaManager.cpp: (WebCore::OriginQuotaManager::markDatabase): * storage/OriginQuotaManager.h: * storage/chromium/DatabaseObserver.h: * storage/chromium/DatabaseTrackerChromium.cpp: (WebCore::DatabaseTracker::addOpenDatabase): (WebCore::TrackerRemoveOpenDatabaseTask::create): (WebCore::TrackerRemoveOpenDatabaseTask::TrackerRemoveOpenDatabaseTask): (WebCore::DatabaseTracker::removeOpenDatabase): (WebCore::DatabaseTracker::getOpenDatabases): (WebCore::DatabaseTracker::getMaxSizeForDatabase): 2010-06-14 Alexey Proskuryakov <ap@apple.com> Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=40529 eventSender.keyDown("delete") incorrectly sends a backspace on some platforms * platform/mac/KeyEventMac.mm: (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Use virtual key code to force correct character code for clarity. Also, reworded comment, since saying that "backspace needs to always be 8" misleadingly implied that it could "sometimes" be such without this code. 2010-06-14 Dimitri Glazkov <dglazkov@chromium.org> Reviewed by Darin Adler. Refactor form submission code in HTMLFormElement to add clarity. https://bugs.webkit.org/show_bug.cgi?id=39430 Covered by existing tests in fast/forms/mailto. * html/HTMLFormElement.cpp: (WebCore::appendMailtoPostFormDataToURL): Renamed from transferMailtoPostFormDataToUrl, removed clearing out of the FormData and moved it to a new place (next to the call site). (WebCore::HTMLFormElement::prepareFormData): Renamed from createFormData, moved the logic of prepareing FormData here, including the use of appendMailtoPostFormDataToURL. (WebCore::HTMLFormElement::submit): Consolidated multiple invocations of submitForm(). * html/HTMLFormElement.h: Renamed createFormData to prepareFormData. 2010-06-14 Chris Fleizach <cfleizach@apple.com> Reviewed by Darin Adler. AX: need ListItemRole and PresentationalRole https://bugs.webkit.org/show_bug.cgi?id=40133 * accessibility/AccessibilityObject.cpp: (WebCore::createARIARoleMap): * accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::isListItem): * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::accessibilityIsIgnored): (WebCore::AccessibilityRenderObject::determineAccessibilityRole): * accessibility/mac/AccessibilityObjectWrapper.mm: (-[AccessibilityObjectWrapper accessibilityAttributeNames]): 2010-06-14 Anders Carlsson <andersca@apple.com> Reviewed by Sam Weinig. Remove pluginIndex from MimeClassInfo https://bugs.webkit.org/show_bug.cgi?id=40588 * plugins/PluginData.h: * plugins/gtk/PluginDataGtk.cpp: (WebCore::PluginData::initPlugins): * plugins/mac/PluginDataMac.mm: (WebCore::PluginData::initPlugins): * plugins/qt/PluginDataQt.cpp: (WebCore::PluginData::initPlugins): * plugins/win/PluginDataWin.cpp: (WebCore::PluginData::initPlugins): * plugins/wx/PluginDataWx.cpp: (WebCore::PluginData::initPlugins): 2010-06-14 Kinuko Yasuda <kinuko@chromium.org> Reviewed by Jian Li. Implement BlobBuilder internal class for BlobBuilder support as defined in FileWriter https://bugs.webkit.org/show_bug.cgi?id=36903 No new tests; they will be added when we add jsc bindings. * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * html/BlobBuilder.cpp: Added. * html/BlobBuilder.h: Added. (WebCore::BlobBuilder::create): * platform/BlobItem.cpp: (WebCore::StringBlobItem::convertToCString): Added EndingNative support. * platform/BlobItem.h: Added EndingNative line-ending type. (WebCore::): 2010-06-14 Anders Carlsson <andersca@apple.com> Reviewed by Darin Adler. Stop using MimeClassInfo::pluginIndex https://bugs.webkit.org/show_bug.cgi?id=40582 Add a pluginIndicies vector to PluginData and use it instead of MimeClassInfo::pluginIndex. * plugins/MimeType.cpp: (WebCore::MimeType::enabledPlugin): Get the plug-in index from the mimePluginIndices vector. * plugins/Plugin.cpp: (WebCore::Plugin::item): Compare the mime plugin index as well. * plugins/PluginData.cpp: (WebCore::PluginData::PluginData): Populate the m_mimePluginIndices vector. (WebCore::PluginData::pluginNameForMimeType): Get the plug-in index from the m_mimePluginIndices vector. * plugins/PluginData.h: (WebCore::operator==): Don't check for pluginIndex. (WebCore::PluginData::mimePluginIndices): Add getter for m_mimePluginIndices. 2010-06-14 Sam Weinig <sam@webkit.org> Better build fix. * bindings/js/JSBindingsAllInOne.cpp: 2010-06-14 Sam Weinig <sam@webkit.org> Another windows build fix. * bindings/js/JSBindingsAllInOne.cpp: 2010-06-14 Sam Weinig <sam@webkit.org> Another build fix. * bindings/js/JSDOMWindowCustom.cpp: 2010-06-14 Sam Weinig <sam@webkit.org> Add missing comma to fix GTK build. * xml/XSLTProcessor.idl: 2010-06-14 Sam Weinig <sam@webkit.org> Reviewed by Alexey Proskuryakov. Fix for https://bugs.webkit.org/show_bug.cgi?id=40581 Auto-generate most of the JS constructors - Auto-generates all the JS constructors that don't have custom names (eg, Not Image(), Audio() or Option()) - Fixes two typos. (new XSLTConstructor()).toString() [object XSLTProcessorConsructor] -> [object XSLTProcessorConstructor]) (new EventSource()).toString() [object EventSourceContructor] -> [object EventSourceConstructor]) * Android.jscbindings.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSArrayBufferConstructor.cpp: Removed. * bindings/js/JSArrayBufferConstructor.h: Removed. * bindings/js/JSArrayBufferCustom.cpp: Copied from WebCore/bindings/js/JSArrayBufferConstructor.cpp. (WebCore::JSArrayBufferConstructor::constructJSArrayBuffer): * bindings/js/JSArrayBufferViewHelper.h: (WebCore::constructArrayBufferView): * bindings/js/JSBindingsAllInOne.cpp: * bindings/js/JSDOMWindowCustom.cpp: * bindings/js/JSEventSourceConstructor.cpp: Removed. * bindings/js/JSEventSourceConstructor.h: Removed. * bindings/js/JSEventSourceCustom.cpp: Copied from WebCore/bindings/js/JSEventSourceConstructor.cpp. (WebCore::JSEventSourceConstructor::constructJSEventSource): * bindings/js/JSFloat32ArrayConstructor.cpp: Removed. * bindings/js/JSFloat32ArrayConstructor.h: Removed. * bindings/js/JSFloat32ArrayCustom.cpp: (WebCore::JSFloat32ArrayConstructor::constructJSFloat32Array): * bindings/js/JSInt16ArrayConstructor.cpp: Removed. * bindings/js/JSInt16ArrayConstructor.h: Removed. * bindings/js/JSInt16ArrayCustom.cpp: (WebCore::JSInt16ArrayConstructor::constructJSInt16Array): * bindings/js/JSInt32ArrayConstructor.cpp: Removed. * bindings/js/JSInt32ArrayConstructor.h: Removed. * bindings/js/JSInt32ArrayCustom.cpp: (WebCore::JSInt32ArrayConstructor::constructJSInt32Array): * bindings/js/JSInt8ArrayConstructor.cpp: Removed. * bindings/js/JSInt8ArrayConstructor.h: Removed. * bindings/js/JSInt8ArrayCustom.cpp: (WebCore::JSInt8ArrayConstructor::constructJSInt8Array): * bindings/js/JSMessageChannelConstructor.cpp: Removed. * bindings/js/JSMessageChannelConstructor.h: Removed. * bindings/js/JSMessageChannelCustom.cpp: (WebCore::JSMessageChannelConstructor::constructJSMessageChannel): * bindings/js/JSSharedWorkerConstructor.cpp: Removed. * bindings/js/JSSharedWorkerConstructor.h: Removed. * bindings/js/JSSharedWorkerCustom.cpp: (WebCore::JSSharedWorkerConstructor::constructJSSharedWorker): * bindings/js/JSUint16ArrayConstructor.cpp: Removed. * bindings/js/JSUint16ArrayConstructor.h: Removed. * bindings/js/JSUint16ArrayCustom.cpp: (WebCore::JSUint16ArrayConstructor::constructJSUint16Array): * bindings/js/JSUint32ArrayConstructor.cpp: Removed. * bindings/js/JSUint32ArrayConstructor.h: Removed. * bindings/js/JSUint32ArrayCustom.cpp: (WebCore::JSUint32ArrayConstructor::constructJSUint32Array): * bindings/js/JSUint8ArrayConstructor.cpp: Removed. * bindings/js/JSUint8ArrayConstructor.h: Removed. * bindings/js/JSUint8ArrayCustom.cpp: (WebCore::JSUint8ArrayConstructor::constructJSUint8Array): * bindings/js/JSWebKitCSSMatrixConstructor.cpp: Removed. * bindings/js/JSWebKitCSSMatrixConstructor.h: Removed. * bindings/js/JSWebKitCSSMatrixCustom.cpp: Copied from WebCore/bindings/js/JSWebKitCSSMatrixConstructor.cpp. (WebCore::JSWebKitCSSMatrixConstructor::constructJSWebKitCSSMatrix): * bindings/js/JSWebKitPointConstructor.cpp: Removed. * bindings/js/JSWebKitPointConstructor.h: Removed. * bindings/js/JSWebKitPointCustom.cpp: Copied from WebCore/bindings/js/JSWebKitPointConstructor.cpp. (WebCore::JSWebKitPointConstructor::constructJSWebKitPoint): * bindings/js/JSWebSocketConstructor.cpp: Removed. * bindings/js/JSWebSocketConstructor.h: Removed. * bindings/js/JSWebSocketCustom.cpp: (WebCore::JSWebSocketConstructor::constructJSWebSocket): * bindings/js/JSWorkerConstructor.cpp: Removed. * bindings/js/JSWorkerConstructor.h: Removed. * bindings/js/JSWorkerContextCustom.cpp: * bindings/js/JSWorkerCustom.cpp: (WebCore::JSWorkerConstructor::constructJSWorker): * bindings/js/JSXSLTProcessorConstructor.cpp: Removed. * bindings/js/JSXSLTProcessorConstructor.h: Removed. * bindings/js/JSXSLTProcessorCustom.cpp: (WebCore::JSXSLTProcessorConstructor::constructJSXSLTProcessor): * bindings/scripts/CodeGeneratorJS.pm: * css/WebKitCSSMatrix.idl: * dom/MessageChannel.idl: * html/canvas/ArrayBuffer.idl: * html/canvas/Float32Array.idl: * html/canvas/Int16Array.idl: * html/canvas/Int32Array.idl: * html/canvas/Int8Array.idl: * html/canvas/Uint16Array.idl: * html/canvas/Uint32Array.idl: * html/canvas/Uint8Array.idl: * page/EventSource.idl: * page/WebKitPoint.idl: * websockets/WebSocket.idl: * workers/SharedWorker.idl: * workers/Worker.idl: * xml/XSLTProcessor.idl: 2010-05-16 Antonio Gomes <tonikitoo@webkit.org> Unreviewed naming fixes of local variables used in Spatial Navigation methods. Summary: * "candidate" renamed to "node"; * "currentFocusCandidate" renamed to "candidate" * "closestFocusCandidate" renamed to "closest" That way naming is more consistent in the various Spatial Navigation methods. * page/FocusController.cpp: (WebCore::FocusController::findFocusableNodeInDirection): (WebCore::FocusController::deepFindFocusableNodeInDirection): 2010-06-14 Antonio Gomes <tonikitoo@webkit.org> Reviewed by Simon Fraser and Kenneth Christiansen. Spatial Navigation: make it work with focusable elements in overflow content https://bugs.webkit.org/show_bug.cgi?id=36463 This patch addresses the problem with Spatial Navigation. It currently does not properly traverse scrollable contents, including scrollable div's. For this to work, a new class member called scrollableEnclosingBox was introduced to FocusCandidate class which keeps track of the current scrollable box Node wrapping a FocusCandidate. To make use of enclosingScrollableBox of FocusCandidate, the DOM traversal routine (FocusController::findNextFocusableInDirection) was changed as follows: when it encounters a scrollable Node, each focusable node which is 'inner' keeps track of the container reference. By the time a sibling of the scrollable Node is encountered, there is no need to track this reference any more and the traversal algorithm continues normally. The common case is obviously that there is no scrollable container wrapping it. updateFocusCandiditeIfCloser logic was also adapted to fit the need of the newly introduced enclosingScrollableBox class member, getting simpler and more easily maintainable. Tests: fast/events/spatial-navigation/snav-div-scrollable-but-without-focusable-content.html fast/events/spatial-navigation/snav-clipped-overflow-content.html * page/FocusController.cpp: (WebCore::updateFocusCandidateInSameContainer): (WebCore::updateFocusCandidateIfCloser): (WebCore::FocusController::findFocusableNodeInDirection): (WebCore::FocusController::deepFindFocusableNodeInDirection): * page/SpatialNavigation.cpp: (WebCore::isScrollableContainerNode): * page/SpatialNavigation.h: (WebCore::FocusCandidate::FocusCandidate): (WebCore::FocusCandidate::isInScrollableContainer): 2010-06-14 Jian Li <jianli@chromium.org> Unreviewed. Fix build break in GTK. * bindings/scripts/CodeGeneratorGObject.pm: * bindings/scripts/test/GObject/WebKitDOMTestCallback.h: * bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h: * bindings/scripts/test/GObject/WebKitDOMTestInterface.h: * bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h: * bindings/scripts/test/GObject/WebKitDOMTestObj.h: 2010-06-14 Chris Fleizach <cfleizach@apple.com> Reviewed by Beth Dakin. AX: AXUnknown objects are being returned https://bugs.webkit.org/show_bug.cgi?id=40574 Test: platform/mac/accessibility/no-unknown-objects-when-title-attribute-present.html * accessibility/mac/AccessibilityObjectMac.mm: (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject): 2010-06-14 Jian Li <jianli@chromium.org> Reviewed by Darin Adler. Fix code generators to better support Conditional attribute and add test coverage for it. https://bugs.webkit.org/show_bug.cgi?id=39512 * bindings/scripts/CodeGeneratorGObject.pm: * bindings/scripts/CodeGeneratorObjC.pm: * bindings/scripts/CodeGeneratorV8.pm: * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp: * bindings/scripts/test/GObject/WebKitDOMTestCallback.h: * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp: * bindings/scripts/test/GObject/WebKitDOMTestInterface.h: * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: (webkit_dom_test_obj_get_conditional_attr1): (webkit_dom_test_obj_set_conditional_attr1): (webkit_dom_test_obj_get_conditional_attr2): (webkit_dom_test_obj_set_conditional_attr2): (webkit_dom_test_obj_get_conditional_attr3): (webkit_dom_test_obj_set_conditional_attr3): (webkit_dom_test_obj_set_property): (webkit_dom_test_obj_get_property): (webkit_dom_test_obj_class_init): * bindings/scripts/test/GObject/WebKitDOMTestObj.h: * bindings/scripts/test/JS/JSTestInterface.cpp: * bindings/scripts/test/JS/JSTestInterface.h: * bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::): (WebCore::jsTestObjConditionalAttr1): (WebCore::jsTestObjConditionalAttr2): (WebCore::jsTestObjConditionalAttr3): (WebCore::setJSTestObjConditionalAttr1): (WebCore::setJSTestObjConditionalAttr2): (WebCore::setJSTestObjConditionalAttr3): * bindings/scripts/test/JS/JSTestObj.h: * bindings/scripts/test/ObjC/DOMTestInterface.mm: * bindings/scripts/test/ObjC/DOMTestObj.h: * bindings/scripts/test/ObjC/DOMTestObj.mm: (-[DOMTestObj conditionalAttr1]): (-[DOMTestObj setConditionalAttr1:]): (-[DOMTestObj conditionalAttr2]): (-[DOMTestObj setConditionalAttr2:]): (-[DOMTestObj conditionalAttr3]): (-[DOMTestObj setConditionalAttr3:]): * bindings/scripts/test/TestInterface.idl: * bindings/scripts/test/TestObj.idl: * bindings/scripts/test/V8/V8TestInterface.cpp: * bindings/scripts/test/V8/V8TestInterface.h: * bindings/scripts/test/V8/V8TestObj.cpp: (WebCore::TestObjInternal::conditionalAttr1AttrGetter): (WebCore::TestObjInternal::conditionalAttr1AttrSetter): (WebCore::TestObjInternal::conditionalAttr2AttrGetter): (WebCore::TestObjInternal::conditionalAttr2AttrSetter): (WebCore::TestObjInternal::conditionalAttr3AttrGetter): (WebCore::TestObjInternal::conditionalAttr3AttrSetter): (WebCore::): 2010-06-14 Chang Shu <chang.shu@nokia.com> Reviewed by Kenneth Rohde Christiansen. Change the type of ShadowSize from IntSize to FloatSize in GraphicsContext. Using IntSize loses precision and fails the test. Note: This code change fixes Qt port but Mac is still failing due to platform issue. https://bugs.webkit.org/show_bug.cgi?id=40434 * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::applyShadow): * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::setShadow): (WebCore::GraphicsContext::getShadow): * platform/graphics/GraphicsContext.h: * platform/graphics/GraphicsContextPrivate.h: * platform/graphics/cairo/FontCairo.cpp: (WebCore::Font::drawGlyphs): * platform/graphics/cairo/GraphicsContextCairo.cpp: (WebCore::GraphicsContext::calculateShadowBufferDimensions): (WebCore::drawPathShadow): (WebCore::drawBorderlessRectShadow): (WebCore::GraphicsContext::setPlatformShadow): * platform/graphics/cairo/ImageCairo.cpp: (WebCore::BitmapImage::draw): * platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::GraphicsContext::setPlatformShadow): * platform/graphics/chromium/FontChromiumWin.cpp: (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::drawGlyphs): (WebCore::Font::drawComplexText): * platform/graphics/gtk/FontGtk.cpp: (WebCore::Font::drawComplexText): * platform/graphics/haiku/GraphicsContextHaiku.cpp: (WebCore::GraphicsContext::setPlatformShadow): * platform/graphics/mac/FontMac.mm: (WebCore::Font::drawGlyphs): * platform/graphics/openvg/GraphicsContextOpenVG.cpp: (WebCore::GraphicsContext::setPlatformShadow): * platform/graphics/qt/FontQt.cpp: (WebCore::drawTextCommon): * platform/graphics/qt/GraphicsContextQt.cpp: (WebCore::GraphicsContext::drawRect): (WebCore::GraphicsContext::drawLine): (WebCore::GraphicsContext::strokeArc): (WebCore::GraphicsContext::drawConvexPolygon): (WebCore::drawFilledShadowPath): (WebCore::GraphicsContext::strokePath): (WebCore::drawBorderlessRectShadow): (WebCore::GraphicsContext::setPlatformShadow): * platform/graphics/qt/ImageQt.cpp: (WebCore::BitmapImage::draw): * platform/graphics/skia/GraphicsContextSkia.cpp: (WebCore::GraphicsContext::setPlatformShadow): * platform/graphics/skia/SkiaFontWin.cpp: (WebCore::windowsCanHandleDrawTextShadow): * platform/graphics/win/FontCGWin.cpp: (WebCore::drawGDIGlyphs): (WebCore::Font::drawGlyphs): * platform/graphics/wince/GraphicsContextWince.cpp: (WebCore::GraphicsContext::fillRoundedRect): (WebCore::GraphicsContext::setPlatformShadow): (WebCore::GraphicsContext::drawText): * platform/graphics/wx/GraphicsContextWx.cpp: (WebCore::GraphicsContext::setPlatformShadow): 2010-06-14 Dan Bernstein <mitz@apple.com> Reviewed by Simon Fraser. <rdar://problem/7752961> Unevenly distributed space in justified text https://bugs.webkit.org/show_bug.cgi?id=36105 Test: fast/text/justify-padding-distribution.html * platform/graphics/WidthIterator.cpp: (WebCore::WidthIterator::WidthIterator): Initialize m_padPerSpace to the quotient of the total padding and the number of spaces rather than truncating it. (WebCore::WidthIterator::advance): Subtract m_padPerSpace from m_padding and add the difference between its old and new values, when rounded, to the advance. * platform/graphics/mac/ComplexTextController.cpp: (WebCore::ComplexTextController::ComplexTextController): (WebCore::ComplexTextController::adjustGlyphsAndAdvances): * platform/graphics/win/UniscribeController.cpp: (WebCore::UniscribeController::UniscribeController): (WebCore::UniscribeController::shapeAndPlaceItem): * platform/graphics/win/UniscribeController.h: 2010-06-14 Andreas Kling <andreas.kling@nokia.com> Reviewed by Tor Arne Vestbø. [Qt] Stack overflow when converting navigator object to QVariant https://bugs.webkit.org/show_bug.cgi?id=40572 Protect against infinite recursion in JSValue->QVariant conversion. This fixes a crash when trying to convert MimeType objects (they recurse infinitely and on-the-fly via the enabledPlugin property.) * bridge/qt/qt_runtime.cpp: (JSC::Bindings::convertValueToQVariant): 2010-06-14 Yong Li <yoli@rim.com> Test cases created by: Robin Cao <robin.cao@torchmobile.com.cn> Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=38910 Suspend Document::m_executeScriptSoonTimer objects when the page is deferred. There's no reason why we suspend all active DOM timers on the page but not suspend this one. Document::m_executeScriptSoonTimer can run JS and schedule more DOM Timers. It can only be tested manually. * manual-tests/load-deferrer-script-element.html: Added. * manual-tests/resources/load-deferrer-script-element.js: Added. * dom/Document.cpp: (WebCore::Document::executeScriptSoon): (WebCore::Document::suspendExecuteScriptSoonTimer): Added. (WebCore::Document::resumeExecuteScriptSoonTimer): Added. * dom/Document.h: * page/PageGroupLoadDeferrer.cpp: (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer): (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer): 2010-06-13 Yael Aharon <yael.aharon@nokia.com> Reviewed by Kenneth Rohde Christiansen. [Qt] Platform plugin support for Notifications UI https://bugs.webkit.org/show_bug.cgi?id=40005 To avoid race condition when GC is run during shutdown, disconnect the Notification from the NotificationPresenter when the presenter deletes itself. This cannot be tested by a layout test, the race condition happens only when GC is run during shutdown. It can be tested manually by loading manually any notification test and closing the browser. * notifications/Notification.cpp: (WebCore::Notification::~Notification): * notifications/Notification.h: (WebCore::Notification::detachPresenter): 2010-06-08 Marcus Bulach <bulach@chromium.org> Reviewed by Jeremy Orlow. Adds IndexedDB's KeyRange. https://bugs.webkit.org/show_bug.cgi?id=40250 Test: storage/indexeddb/idb-keyrange.html * Android.derived.jscbindings.mk: * Android.derived.v8bindings.mk: * Android.mk: * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * GNUmakefile.am: * WebCore.gypi: * WebCore.pri: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * storage/IDBKeyRange.cpp: Added. (WebCore::IDBKeyRange::IDBKeyRange): * storage/IDBKeyRange.h: Added. (WebCore::IDBKeyRange::): (WebCore::IDBKeyRange::create): (WebCore::IDBKeyRange::~IDBKeyRange): (WebCore::IDBKeyRange::left): (WebCore::IDBKeyRange::right): (WebCore::IDBKeyRange::flags): * storage/IDBKeyRange.idl: Added. * storage/IndexedDatabaseRequest.cpp: (WebCore::IndexedDatabaseRequest::makeSingleKeyRange): (WebCore::IndexedDatabaseRequest::makeLeftBoundKeyRange): (WebCore::IndexedDatabaseRequest::makeRightBoundKeyRange): (WebCore::IndexedDatabaseRequest::makeBoundKeyRange): * storage/IndexedDatabaseRequest.h: * storage/IndexedDatabaseRequest.idl: 2010-06-14 Jeremy Orlow <jorlow@chromium.org> And another. * storage/IndexedDatabaseRequest.h: 2010-06-14 Jeremy Orlow <jorlow@chromium.org> More build fixes. * storage/IndexedDatabaseRequest.h: 2010-06-14 Mahesh Kulkarni <mahesh.kulkarni@nokia.com> Reviewed by Laszlo Gombos. [Qt] navigator.geolocation support for Qt port https://bugs.webkit.org/show_bug.cgi?id=39724 Implemetion for Qt port of navigator.gelocation. Using qtmobility location service. * WebCore.pri: * WebCore.pro: * platform/qt/GeolocationServiceQt.cpp: Added. (WebCore::GeolocationServiceQt::create): (WebCore::GeolocationServiceQt::GeolocationServiceQt): (WebCore::GeolocationServiceQt::~GeolocationServiceQt): (WebCore::GeolocationServiceQt::positionUpdated): (WebCore::GeolocationServiceQt::startUpdating): (WebCore::GeolocationServiceQt::stopUpdating): * platform/qt/GeolocationServiceQt.h: Added. (WebCore::GeolocationServiceQt::lastPosition): (WebCore::GeolocationServiceQt::lastError): 2010-06-14 Jeremy Orlow <jorlow@chromium.org> 2 more build fixes. * storage/IDBDatabaseImpl.h: * storage/IndexedDatabaseRequest.h: 2010-06-14 Jeremy Orlow <jorlow@chromium.org> Unreviewed build fix for my last. * workers/WorkerScriptLoaderClient.h: 2010-06-14 Jeremy Orlow <jorlow@chromium.org> Reviewed by Darin Fisher. [V8] Clean up SerializedScriptValue https://bugs.webkit.org/show_bug.cgi?id=40482 SerializedScriptValue doesn't follow WebKit's style guidelines very well and needlessly inlines quite a bit within the .h file. This change cleans things up. No funcitonal changes. No change in behavior. * bindings/v8/SerializedScriptValue.cpp: (WebCore::SerializedScriptValue::deserializeAndSetProperty): (WebCore::SerializedScriptValue::create): (WebCore::SerializedScriptValue::createFromWire): (WebCore::SerializedScriptValue::release): (WebCore::SerializedScriptValue::SerializedScriptValue): * bindings/v8/SerializedScriptValue.h: 2010-06-14 Ilya Tikhonovsky <loislo@chromium.org> Reviewed by Pavel Feldman. WebInspector: On the way to Remote Debugging we want to transfer dom/timeline/etc data from inspected page to WebInspector as JSON string via http. The native serialization to JSON string is supported by InspectorValue's classes. This patch has the implementation of sendMessageToFrontend function. WebKit version of it still uses ScriptFunctionCall and will be switched to another transport a little bit later. https://bugs.webkit.org/show_bug.cgi?id=40134 * inspector/InspectorClient.h: * inspector/InspectorController.cpp: (WebCore::InspectorController::connectFrontend): (WebCore::InspectorController::disconnectFrontend): * inspector/InspectorController.h: * inspector/InspectorFrontend.cpp: (WebCore::InspectorFrontend::InspectorFrontend): * inspector/InspectorFrontend.h: * inspector/InspectorFrontendClientLocal.cpp: (WebCore::InspectorFrontendClientLocal::frontendLoaded): * inspector/InspectorValues.cpp: (WebCore::InspectorObject::writeJSON): * inspector/front-end/inspector.js: (WebInspector.dispatchMessageToFrontend): * loader/EmptyClients.h: (WebCore::EmptyInspectorClient::sendMessageToFrontend): 2010-06-14 Jeremy Orlow <jorlow@chromium.org> Reviewed by Darin Adler. Reenable IDBDatabaseRequest's description attribute https://bugs.webkit.org/show_bug.cgi?id=39826 On the 26th, Beth commented out the description attribute in IDBDatabaseRequest because it was causing problems with the objective c bindings. Turns out that this is the same bug as in http://trac.webkit.org/changeset/19486. (Thanks for the pointer, Mark!) The solution is to change the objective C bindings generator to change the name in the generated code. id and hash both just appended "Name" to them in the past. I couldn't think of anything else particularly better to append, so I just went with name as well. Test: building the world works on the first try. Layout test verifies description works again. * bindings/scripts/CodeGeneratorObjC.pm: * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: (webkit_dom_test_obj_get_description): (webkit_dom_test_obj_get_id): (webkit_dom_test_obj_set_id): (webkit_dom_test_obj_get_hash): (webkit_dom_test_obj_set_property): (webkit_dom_test_obj_get_property): (webkit_dom_test_obj_class_init): * bindings/scripts/test/GObject/WebKitDOMTestObj.h: * bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::): (WebCore::jsTestObjDescription): (WebCore::jsTestObjId): (WebCore::jsTestObjHash): (WebCore::setJSTestObjId): * bindings/scripts/test/JS/JSTestObj.h: * bindings/scripts/test/ObjC/DOMTestObj.h: * bindings/scripts/test/ObjC/DOMTestObj.mm: (-[DOMTestObj descriptionName]): (-[DOMTestObj idName]): (-[DOMTestObj setIdName:]): (-[DOMTestObj hashName]): * bindings/scripts/test/TestObj.idl: * bindings/scripts/test/V8/V8TestObj.cpp: (WebCore::TestObjInternal::descriptionAttrGetter): (WebCore::TestObjInternal::idAttrGetter): (WebCore::TestObjInternal::idAttrSetter): (WebCore::TestObjInternal::hashAttrGetter): (WebCore::): * storage/IDBDatabaseRequest.idl: 2010-06-13 Anders Bakken <agbakken@gmail.com> Reviewed by Eric Seidel. [Qt] ScreenQt.cpp has coding-style errors https://bugs.webkit.org/show_bug.cgi?id=39766 * platform/qt/ScreenQt.cpp: 2010-06-13 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. Rename HTMLParser to LegacyHTMLTreeConstructor https://bugs.webkit.org/show_bug.cgi?id=40554 This makes our old HTML parsing system closer match the HTML5 spec, and thus easier to compare to the new HTML5 parsing system. This rename was entirely automatic. Done by do-webcore-rename. * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * dom/Document.cpp: * dom/DocumentParser.h: (WebCore::DocumentParser::htmlTreeConstructor): * html/HTML5DocumentParser.cpp: (WebCore::HTML5DocumentParser::htmlTreeConstructor): * html/HTML5DocumentParser.h: * html/HTML5TreeBuilder.cpp: (WebCore::HTML5TreeBuilder::HTML5TreeBuilder): * html/HTML5TreeBuilder.h: (WebCore::HTML5TreeBuilder::legacyTreeConstructor): * html/HTMLDocumentParser.cpp: (WebCore::HTMLDocumentParser::HTMLDocumentParser): * html/HTMLDocumentParser.h: (WebCore::HTMLDocumentParser::htmlTreeConstructor): * html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::removedFromTree): * html/HTMLInputElement.cpp: * html/HTMLMeterElement.cpp: * html/HTMLProgressElement.cpp: * html/LegacyHTMLTreeConstructor.cpp: Renamed from WebCore/html/HTMLParser.cpp. (WebCore::addTags): (WebCore::HTMLStackElem::HTMLStackElem): (WebCore::HTMLStackElem::derefNode): (WebCore::LegacyHTMLTreeConstructor::LegacyHTMLTreeConstructor): (WebCore::LegacyHTMLTreeConstructor::~LegacyHTMLTreeConstructor): (WebCore::LegacyHTMLTreeConstructor::reset): (WebCore::LegacyHTMLTreeConstructor::setCurrent): (WebCore::tagPriorityOfNode): (WebCore::LegacyHTMLTreeConstructor::limitDepth): (WebCore::LegacyHTMLTreeConstructor::insertNodeAfterLimitDepth): (WebCore::LegacyHTMLTreeConstructor::parseToken): (WebCore::LegacyHTMLTreeConstructor::parseDoctypeToken): (WebCore::isTableSection): (WebCore::isTablePart): (WebCore::isTableRelated): (WebCore::isScopingTag): (WebCore::LegacyHTMLTreeConstructor::insertNode): (WebCore::LegacyHTMLTreeConstructor::handleError): (WebCore::LegacyHTMLTreeConstructor::textCreateErrorCheck): (WebCore::LegacyHTMLTreeConstructor::commentCreateErrorCheck): (WebCore::LegacyHTMLTreeConstructor::headCreateErrorCheck): (WebCore::LegacyHTMLTreeConstructor::bodyCreateErrorCheck): (WebCore::LegacyHTMLTreeConstructor::framesetCreateErrorCheck): (WebCore::LegacyHTMLTreeConstructor::formCreateErrorCheck): (WebCore::LegacyHTMLTreeConstructor::isindexCreateErrorCheck): (WebCore::LegacyHTMLTreeConstructor::selectCreateErrorCheck): (WebCore::LegacyHTMLTreeConstructor::ddCreateErrorCheck): (WebCore::LegacyHTMLTreeConstructor::dtCreateErrorCheck): (WebCore::LegacyHTMLTreeConstructor::rpCreateErrorCheck): (WebCore::LegacyHTMLTreeConstructor::rtCreateErrorCheck): (WebCore::LegacyHTMLTreeConstructor::nestedCreateErrorCheck): (WebCore::LegacyHTMLTreeConstructor::nestedPCloserCreateErrorCheck): (WebCore::LegacyHTMLTreeConstructor::nestedStyleCreateErrorCheck): (WebCore::LegacyHTMLTreeConstructor::tableCellCreateErrorCheck): (WebCore::LegacyHTMLTreeConstructor::tableSectionCreateErrorCheck): (WebCore::LegacyHTMLTreeConstructor::noembedCreateErrorCheck): (WebCore::LegacyHTMLTreeConstructor::noframesCreateErrorCheck): (WebCore::LegacyHTMLTreeConstructor::noscriptCreateErrorCheck): (WebCore::LegacyHTMLTreeConstructor::pCloserCreateErrorCheck): (WebCore::LegacyHTMLTreeConstructor::pCloserStrictCreateErrorCheck): (WebCore::LegacyHTMLTreeConstructor::mapCreateErrorCheck): (WebCore::mapTagToFunc): (WebCore::mapTagsToFunc): (WebCore::LegacyHTMLTreeConstructor::getNode): (WebCore::LegacyHTMLTreeConstructor::allowNestedRedundantTag): (WebCore::LegacyHTMLTreeConstructor::processCloseTag): (WebCore::LegacyHTMLTreeConstructor::isHeadingTag): (WebCore::LegacyHTMLTreeConstructor::isInline): (WebCore::LegacyHTMLTreeConstructor::isResidualStyleTag): (WebCore::LegacyHTMLTreeConstructor::isAffectedByResidualStyle): (WebCore::LegacyHTMLTreeConstructor::handleResidualStyleCloseTagAcrossBlocks): (WebCore::LegacyHTMLTreeConstructor::reopenResidualStyleTags): (WebCore::LegacyHTMLTreeConstructor::pushBlock): (WebCore::LegacyHTMLTreeConstructor::popBlock): (WebCore::LegacyHTMLTreeConstructor::popOneBlockCommon): (WebCore::LegacyHTMLTreeConstructor::popOneBlock): (WebCore::LegacyHTMLTreeConstructor::moveOneBlockToStack): (WebCore::LegacyHTMLTreeConstructor::checkIfHasPElementInScope): (WebCore::LegacyHTMLTreeConstructor::popInlineBlocks): (WebCore::LegacyHTMLTreeConstructor::freeBlock): (WebCore::LegacyHTMLTreeConstructor::createHead): (WebCore::LegacyHTMLTreeConstructor::handleIsindex): (WebCore::LegacyHTMLTreeConstructor::startBody): (WebCore::LegacyHTMLTreeConstructor::finished): (WebCore::LegacyHTMLTreeConstructor::reportErrorToConsole): (WebCore::shouldCreateImplicitHead): (WebCore::serializeForNumberType): (WebCore::parseToDoubleForNumberType): * html/LegacyHTMLTreeConstructor.h: Renamed from WebCore/html/HTMLParser.h. (WebCore::LegacyHTMLTreeConstructor::skipMode): (WebCore::LegacyHTMLTreeConstructor::isHandlingResidualStyleAcrossBlocks): (WebCore::LegacyHTMLTreeConstructor::setSkipMode): (WebCore::LegacyHTMLTreeConstructor::popBlock): (WebCore::LegacyHTMLTreeConstructor::hasPElementInScope): (WebCore::LegacyHTMLTreeConstructor::reportError): (WebCore::LegacyHTMLTreeConstructor::): (WebCore::shouldCreateImplicitHead): * html/StepRange.cpp: * html/ValidityState.cpp: * rendering/RenderSlider.cpp: 2010-06-13 Eric Seidel <eric@webkit.org> Reviewed by Darin Adler. Rename m_parser, htmlParser() to m_treeConstructor, htmlTreeConstructor() in preparation for renaming HTMLParser https://bugs.webkit.org/show_bug.cgi?id=40514 This rename was done by hand. I realize now I should have renamed HTMLParser to HTMLTreeConstructor before renaming HTMLTokenizer. No functional changes, thus no tests. * dom/DocumentParser.h: (WebCore::DocumentParser::htmlTreeConstructor): * html/HTML5DocumentParser.cpp: (WebCore::HTML5DocumentParser::HTML5DocumentParser): (WebCore::HTML5DocumentParser::pumpLexerIfPossible): (WebCore::HTML5DocumentParser::pumpLexer): (WebCore::HTML5DocumentParser::end): (WebCore::HTML5DocumentParser::htmlTreeConstructor): (WebCore::HTML5DocumentParser::isWaitingForScripts): (WebCore::HTML5DocumentParser::resumeParsingAfterScriptExecution): (WebCore::HTML5DocumentParser::notifyFinished): (WebCore::HTML5DocumentParser::executeScriptsWaitingForStylesheets): * html/HTML5DocumentParser.h: * html/HTML5TreeBuilder.cpp: (WebCore::HTML5TreeBuilder::HTML5TreeBuilder): (WebCore::HTML5TreeBuilder::passTokenToLegacyParser): (WebCore::HTML5TreeBuilder::finished): * html/HTML5TreeBuilder.h: (WebCore::HTML5TreeBuilder::legacyTreeConstructor): * html/HTMLDocumentParser.cpp: (WebCore::HTMLDocumentParser::HTMLDocumentParser): (WebCore::HTMLDocumentParser::scriptHandler): (WebCore::HTMLDocumentParser::parseTag): (WebCore::HTMLDocumentParser::end): (WebCore::HTMLDocumentParser::processToken): (WebCore::HTMLDocumentParser::processDoctypeToken): * html/HTMLDocumentParser.h: (WebCore::HTMLDocumentParser::htmlTreeConstructor): * html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::removedFromTree): 2010-06-13 Eric Seidel <eric@webkit.org> Reviewed by Darin Adler. Rename tok, asHTMLTokenizer to parser, asHTMLDocumentParser https://bugs.webkit.org/show_bug.cgi?id=40513 Last set of Tokenizer related renames, also done via do-webcore-rename: asHTMLTokenizer => asHTMLDocumentParser tok => parser No functional changes, thus no tests. * dom/Document.cpp: (WebCore::Document::write): * dom/DocumentParser.h: (WebCore::DocumentParser::asHTMLDocumentParser): * html/HTMLDocumentParser.cpp: (WebCore::parseHTMLDocumentFragment): * html/HTMLDocumentParser.h: (WebCore::HTMLDocumentParser::asHTMLDocumentParser): * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::isLoadingInAPISense): 2010-06-13 Eric Seidel <eric@webkit.org> Reviewed by Darin Adler. Fix the rest of the references to the old Tokenizer class (now DocumentParser) https://bugs.webkit.org/show_bug.cgi?id=40512 No functional changes, thus no new tests. This was mostly done by do-webcore-rename: tokenizer => parser m_tokenizer => m_parser createTextTokenizer => createTextDocumentParser createTokenizer => createParser getTokenizer => getParser However had to be careful to avoid renaming things related to css/tokenizer.flex (which we should later rename to CSSTokenizer.flex) Still a couple references with "tok" and "asHTMLTokenizer" which I'll get in the next patch. * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::isLoaded): * bindings/v8/ScriptEventListener.cpp: (WebCore::createAttributeEventListener): * dom/Document.cpp: (WebCore::Document::removedLastRef): (WebCore::Document::~Document): (WebCore::Document::createParser): (WebCore::Document::open): (WebCore::Document::cancelParsing): (WebCore::Document::implicitOpen): (WebCore::Document::implicitClose): (WebCore::Document::write): (WebCore::Document::finishParsing): (WebCore::Document::removePendingSheet): * dom/Document.h: (WebCore::Document::parser): * dom/DocumentParser.h: * dom/ViewportArguments.cpp: (WebCore::reportViewportWarning): * dom/XMLDocumentParserLibxml2.cpp: (WebCore::PendingCallbacks::callAndRemoveFirstCallback): (WebCore::PendingCallbacks::PendingStartElementNSCallback::call): (WebCore::PendingCallbacks::PendingEndElementNSCallback::call): (WebCore::PendingCallbacks::PendingCharactersCallback::call): (WebCore::PendingCallbacks::PendingProcessingInstructionCallback::call): (WebCore::PendingCallbacks::PendingCDATABlockCallback::call): (WebCore::PendingCallbacks::PendingCommentCallback::call): (WebCore::PendingCallbacks::PendingInternalSubsetCallback::call): (WebCore::PendingCallbacks::): (WebCore::getParser): (WebCore::startElementNsHandler): (WebCore::endElementNsHandler): (WebCore::charactersHandler): (WebCore::processingInstructionHandler): (WebCore::cdataBlockHandler): (WebCore::commentHandler): (WebCore::warningHandler): (WebCore::fatalErrorHandler): (WebCore::normalErrorHandler): (WebCore::getEntityHandler): (WebCore::startDocumentHandler): (WebCore::endDocumentHandler): (WebCore::internalSubsetHandler): (WebCore::externalSubsetHandler): (WebCore::parseXMLDocumentFragment): * dom/XMLDocumentParserQt.cpp: (WebCore::parseXMLDocumentFragment): * html/HTML5EntityParser.cpp: * html/HTMLDocument.cpp: (WebCore::HTMLDocument::createParser): * html/HTMLDocument.h: * html/HTMLDocumentParser.cpp: (WebCore::HTMLDocumentParser::write): (WebCore::HTMLDocumentParser::stopParsing): * html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::removedFromTree): * html/HTMLParser.cpp: (WebCore::HTMLParser::finished): (WebCore::HTMLParser::reportErrorToConsole): * html/HTMLViewSourceDocument.cpp: (WebCore::HTMLViewSourceDocument::createParser): (WebCore::HTMLViewSourceDocument::addLine): * html/HTMLViewSourceDocument.h: * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::isLoadingInAPISense): * loader/DocumentWriter.cpp: (WebCore::DocumentWriter::begin): (WebCore::DocumentWriter::addData): * loader/FTPDirectoryDocument.cpp: (WebCore::FTPDirectoryDocument::createParser): * loader/FTPDirectoryDocument.h: * loader/FrameLoader.cpp: (WebCore::FrameLoader::stopLoading): (WebCore::FrameLoader::stop): * loader/ImageDocument.cpp: (WebCore::ImageDocument::createParser): * loader/ImageDocument.h: * loader/MediaDocument.cpp: (WebCore::MediaDocument::createParser): * loader/MediaDocument.h: * loader/PluginDocument.cpp: (WebCore::PluginDocument::createParser): * loader/PluginDocument.h: * loader/SinkDocument.cpp: (WebCore::SinkDocument::createParser): * loader/SinkDocument.h: * loader/TextDocument.cpp: (WebCore::TextDocument::createParser): (WebCore::createTextDocumentParser): * loader/TextDocument.h: * svg/SVGDocumentExtensions.cpp: (WebCore::SVGDocumentExtensions::reportWarning): (WebCore::SVGDocumentExtensions::reportError): * wml/WMLDocument.cpp: (WebCore::WMLDocument::finishedParsing): * wml/WMLErrorHandling.cpp: (WebCore::reportWMLError): * wml/WMLTemplateElement.cpp: (WebCore::WMLTemplateElement::registerTemplatesInDocument): 2010-06-13 Chris Fleizach <cfleizach@apple.com> Reviewed by Darin Adler. AX: link won't return linked element if URL contains # https://bugs.webkit.org/show_bug.cgi?id=40192 Test: platform/mac/accessibility/internal-link-when-document-has-fragment.html * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::internalLinkElement): 2010-06-13 Sam Weinig <sam@webkit.org> Try and fix the chrome build. * bindings/scripts/CodeGeneratorV8.pm: * xml/XMLHttpRequest.idl: 2010-06-13 Sam Weinig <sam@webkit.org> Reviewed by Anders Carlsson. Fix for https://bugs.webkit.org/show_bug.cgi?id=40550 XMLHttpRequest constructor object should expose the constants from the IDL. Test: fast/dom/XMLHttpRequest-constants.html * Android.jscbindings.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSBindingsAllInOne.cpp: * bindings/js/JSDOMWindowCustom.cpp: * bindings/js/JSWorkerContextCustom.cpp: * bindings/js/JSXMLHttpRequestConstructor.cpp: Removed. * bindings/js/JSXMLHttpRequestConstructor.h: Removed. * bindings/js/JSXMLHttpRequestCustom.cpp: (WebCore::JSXMLHttpRequestConstructor::constructJSXMLHttpRequest): * bindings/scripts/CodeGeneratorJS.pm: * xml/XMLHttpRequest.idl: 2010-06-13 Simon Fraser <simon.fraser@apple.com> Reviewed by Dan Bernstein. -webkit-transition font-size and font-family https://bugs.webkit.org/show_bug.cgi?id=33429 When animating font-size, update the font with a saved version of the font selector to ensure that we don't clobber the font family. Test: transitions/font-family-during-transition.html * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::setBlendedFontSize): 2010-06-13 Tony Chang <tony@chromium.org> Build fix, not reviewed. fix chromium compile after r61094 (id attribute refactor) https://bugs.webkit.org/show_bug.cgi?id=40553 * bindings/v8/custom/V8NamedNodesCollection.cpp: (WebCore::V8NamedNodesCollection::itemWithName): 2010-06-13 Darin Adler <darin@apple.com> Reviewed by Alexey Proskuryakov. Partly done support for alternate ID attributes should be removed https://bugs.webkit.org/show_bug.cgi?id=39692 Removed the include of "HTMLNames.h" from "Element.h". This prevents near-world-rebuilds every time you change HTMLTagNames.in. Renamed the getIDAttribute function in the Element class to idForStyleResolution, since it returns a value of the id attribute that has been lowercased as appropriate for style matching, not the actual value of the attribute. With the old name it was easy to misuse it in non-style contexts. Got rid of the idAttributeName function on Element, since it is easy to use it wrong. Replace it with isIdAttributeName, getIdAttribute, and setIdAttribute functions, which are a good fit for the needs of most call sites that were dealing with the id attribute. Added an idAttributeName function to Document. This is for a future where a document can have a custom id attribute name specified in its doctype. It's possible this will be insufficient because the same document might have XHTML or SVG elements in it, and it's possible that on those elements we will want the attribute named "id" with no namespace to still work. We can deal with that when we implement the actual feature, though. For now, it seems OK to fetch the name of the id attribute from the document. * dom/DynamicNodeList.cpp: (WebCore::DynamicNodeList::itemWithName): * dom/StaticNodeList.cpp: (WebCore::StaticNodeList::itemWithName): * rendering/RenderSVGResourceContainer.h: (WebCore::RenderSVGResourceContainer::RenderSVGResourceContainer): (WebCore::RenderSVGResourceContainer::idChanged): * svg/SVGUseElement.cpp: (WebCore::SVGUseElement::handleDeepUseReferencing): * svg/animation/SMILTimeContainer.cpp: (WebCore::SMILTimeContainer::updateAnimations): Use the new idForStyleResolution function, which is the new name of the getIDAttribute function. There's a good chance these call sites are incorrect, which is something we should investigate later, so there's a FIXME at each call site. * dom/Document.cpp: (WebCore::Document::Document): Initialize m_idAttributeName to the standard id attribute from HTML. (WebCore::Document::getElementById): Use Element::getIdAttribute. * dom/Document.h: Added Document::idAttributeName. * dom/Element.cpp: (WebCore::Element::setAttribute): Use Document::idAttributeName. (WebCore::Element::setAttributeMap): Use Element::isIdAttributeName. (WebCore::Element::insertedIntoDocument): Use Document::idAttributeName. (WebCore::Element::removedFromDocument): Ditto. (WebCore::Element::formatForDebugger): Use Element::getIdAttribute. * dom/Element.h: Added isIdAttributeName, getIdAttribute, setIdAttribute, idForStyleResolution. Removed rareIDAttributeName. * dom/ElementRareData.h: Removed m_idAttributeName. * dom/NamedNodeMap.cpp: (WebCore::NamedNodeMap::setAttributes): Use Document::idAttributeName. * dom/NamedNodeMap.h: Renamed id, setID, and m_id to idForStyleResolution, setIdForStyleResolution, and m_idForStyleResolution since this is not the value of the id attribute because it gets lowercased for compatibility-mode documents. * rendering/RenderIFrame.cpp: * rendering/RenderLayerCompositor.cpp: * rendering/RenderProgress.cpp: Added include of HTMLNames.h now that Element.h no longer includes it. * editing/SetNodeAttributeCommand.h: * editing/markup.cpp: * html/HTMLParser.cpp: Removed unneeded includes. * html/HTMLParser.h: Sorted includes. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::matchRules): Use idForStyleResolution. (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): Use idForStyleResolution. * dom/Attr.cpp: (WebCore::Attr::isId): Use Document::idAttributeName. * dom/StyledElement.cpp: (WebCore::StyledElement::parseMappedAttribute): Use isIdAttributeName, and setIdForStyleResolution. * editing/DeleteButtonController.cpp: (WebCore::DeleteButtonController::createDeletionUI): Use setIdAttribute. * editing/EditorCommand.cpp: (WebCore::executeInsertHorizontalRule): Ditto. * html/HTMLAppletElement.cpp: (WebCore::HTMLAppletElement::parseMappedAttribute): Use isIdAttributeName. (WebCore::HTMLAppletElement::createRenderer): Use getIdAttribute. * html/HTMLCollection.cpp: (WebCore::HTMLCollection::checkForNameMatch): Use getIdAttribute. (WebCore::HTMLCollection::updateNameCache): Use getIdAttribute. * html/HTMLDataGridColElement.cpp: (WebCore::HTMLDataGridColElement::ensureColumn): Use getIdAttribute. (WebCore::HTMLDataGridColElement::parseMappedAttribute): Use isIdAttributeName. * html/HTMLElement.cpp: (WebCore::HTMLElement::parseMappedAttribute): Use isIdAttributeName. * html/HTMLFormCollection.cpp: (WebCore::HTMLFormCollection::nextNamedItem): Added missing braces. (WebCore::HTMLFormCollection::updateNameCache): Use getIdAttribute. * html/HTMLFrameElementBase.cpp: (WebCore::HTMLFrameElementBase::parseMappedAttribute): Use isIdAttributeName. (WebCore::HTMLFrameElementBase::setName): Use getIdAttribute. * html/HTMLImageElement.cpp: (WebCore::HTMLImageElement::parseMappedAttribute): Use isIdAttributeName. * html/HTMLMapElement.cpp: (WebCore::HTMLMapElement::parseMappedAttribute): Use isIdAttributeName. Also restructured the function a bit to make its structure clearer and added a comment pointing out that it can't be quite right. * html/HTMLNameCollection.cpp: (WebCore::HTMLNameCollection::itemAfter): Use getIdAttribute. * html/HTMLObjectElement.cpp: (WebCore::HTMLObjectElement::parseMappedAttribute): Use isIdAttributeName. * html/HTMLParamElement.cpp: (WebCore::HTMLParamElement::parseMappedAttribute): Use isIdAttributeName. * loader/CachedFont.cpp: (WebCore::CachedFont::getSVGFontById): Use getIdAttribute. * rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::nameForLayer): Use getIdAttribute. * rendering/SVGRenderTreeAsText.cpp: (WebCore::writeSVGPaintingResource): Use getIdAttribute. (WebCore::writeSVGResourceContainer): Ditto. * svg/SVGElement.cpp: (WebCore::SVGElement::insertedIntoDocument): Use getIdAttribute. * svg/SVGStyledElement.cpp: (WebCore::SVGStyledElement::isKnownAttribute): Use isIdAttributeName. (WebCore::SVGStyledElement::svgAttributeChanged): Use isIdAttributeName. * wml/WMLElement.cpp: (WebCore::WMLElement::parseMappedAttribute): Use isIdAttributeName. 2010-06-13 Dan Bernstein <mitz@apple.com> Reviewed by Darin Adler. <rdar://problem/8087385> REGRESSION (r60974): Continuous wheel scrolling is too fast in list boxes and in Safari Reader https://bugs.webkit.org/show_bug.cgi?id=40537 * platform/mac/WheelEventMac.mm: (WebCore::PlatformWheelEvent::PlatformWheelEvent): Only multiply by pixelsPerLineStep() if the event is not continuous, as was before r56012. 2010-06-13 Andras Becsi <abecsi@webkit.org> Reviewed by Darin Adler. Centralize the gperf code generation commands into make-hash-tools.pl to avoid redundancy across multiple build systems. Do this in preparation of refactoring the usage of these generated sources to fix the debug linking error on Linux with gcc >= 4.4.0. webkit.org/b/29244 No functionality change, so no new tests needed. * DerivedSources.make: * GNUmakefile.am: * WebCore.gyp/WebCore.gyp: * WebCore.gyp/scripts/rule_gperf.py: Removed. * WebCore.pri: * WebCore.xcodeproj/project.pbxproj: * css/CSSParser.cpp: (WebCore::cssPropertyID): (WebCore::cssValueKeywordID): * css/makeprop.pl: * css/makevalues.pl: * html/DocTypeStrings.gperf: * html/HTML5EntityParser.cpp: * html/HTMLDocumentParser.cpp: * html/HTMLEntityNames.gperf: * html/PreloadScanner.cpp: * make-hash-tools.pl: Added. * platform/ColorData.gperf: * platform/graphics/Color.cpp: 2010-06-13 Noam Rosenthal <noam.rosenthal@nokia.com> Reviewed by Kenneth Rohde Christiansen. [Qt] tests/hybridPixmap fails https://bugs.webkit.org/show_bug.cgi?id=37316 The problem was that JSC::Instance::createRuntimeObject was never called. This is fixed by overloading newRuntimeObject and calling Instance::createRuntimeObject in between, instead of creating the runtime object directly inside the static function QtPixmapInstance::createRuntimeObject, which had to be renamed as to not overshadow the virtual function. This fixes an existing test, tests/hybridPixmap * bridge/qt/qt_pixmapruntime.cpp: (JSC::Bindings::QtPixmapInstance::newRuntimeObject): (JSC::Bindings::QtPixmapInstance::createPixmapRuntimeObject): * bridge/qt/qt_pixmapruntime.h: * bridge/qt/qt_runtime.cpp: (JSC::Bindings::convertQVariantToValue): 2010-06-13 Noam Rosenthal <noam.rosenthal@nokia.com> Reviewed by Darin Adler. GraphicsContext3D.h in the Qt port includes too many unnecessary files https://bugs.webkit.org/show_bug.cgi?id=40536 Removed unncessary includes. No new tests; Compilation improvement. * platform/graphics/GraphicsContext3D.h: * platform/graphics/qt/GraphicsContext3DQt.cpp: 2010-06-13 Noam Rosenthal <noam.rosenthal@nokia.com> Reviewed by Eric Seidel. [Qt] GraphicsLayer: recaching images creates an unnecessary deep copy https://bugs.webkit.org/show_bug.cgi?id=40535 Made sure the painter ends its operation before copying the pixmap. No new tests: this is an optimization. * platform/graphics/qt/GraphicsLayerQt.cpp: (WebCore::GraphicsLayerQtImpl::recache): 2010-06-13 Clemmitt Sigler <cmsigler@gmail.com> Reviewed by Eric Seidel. Patch to fix missing references to RenderMathMLRoot, RenderMathMLSquareRoot when building GtkLauncher. https://bugs.webkit.org/show_bug.cgi?id=40326 No change in functionality so no new tests. * GNUmakefile.am: 2010-06-12 Brian Weinstein <bweinstein@apple.com> Reviewed by Dan Bernstein. https://bugs.webkit.org/show_bug.cgi?id=40538 Some machines have started to see the return of the dreaded: WebCore.lib : fatal error LNK1106: invalid file or disk full. Since we don't have the hotfix for VS2005, work around this in the meantime by creating an EditingAllInOne file, that includes all of the cpp files in the editing subdirectory. * WebCore.vcproj/WebCore.vcproj: Prevnt the editing cpp from building, so we only compile EditingAllInOne. * editing/EditingAllInOne.cpp: Added. Includes all of the editing cpp files. 2010-06-12 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r61031. http://trac.webkit.org/changeset/61031 https://bugs.webkit.org/show_bug.cgi?id=40539 Crashes Dromaeo jslib test in Release Chromium (Requested by dimich_ on #webkit). * bindings/v8/V8Binding.cpp: (WebCore::v8ExternalString): * bindings/v8/V8Binding.h: 2010-06-12 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. Rename the last few *Tokenizer classes (which don't have their own files) to *DocumentParser https://bugs.webkit.org/show_bug.cgi?id=40508 This was a very simple do-webcore-rename-generated patch. PluginTokenizer => PluginDocumentParser TextTokenizer => TextDocumentParser SinkTokenizer => SinkDocumentParser MediaTokenizer => MediaDocumentParser FTPDirectoryTokenizer => FTPDirectoryDocumentParser No functional changes, thus no tests. * html/HTMLViewSourceDocument.cpp: (WebCore::HTMLViewSourceDocument::createTokenizer): * html/HTMLViewSourceDocument.h: * loader/FTPDirectoryDocument.cpp: (WebCore::FTPDirectoryDocumentParser::FTPDirectoryDocumentParser): (WebCore::FTPDirectoryDocumentParser::appendEntry): (WebCore::FTPDirectoryDocumentParser::createTDForFilename): (WebCore::FTPDirectoryDocumentParser::parseAndAppendOneLine): (WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate): (WebCore::FTPDirectoryDocumentParser::createBasicDocument): (WebCore::FTPDirectoryDocumentParser::write): (WebCore::FTPDirectoryDocumentParser::finish): (WebCore::FTPDirectoryDocument::createTokenizer): * loader/MediaDocument.cpp: (WebCore::MediaDocumentParser::MediaDocumentParser): (WebCore::MediaDocumentParser::write): (WebCore::MediaDocumentParser::createDocumentStructure): (WebCore::MediaDocumentParser::writeRawData): (WebCore::MediaDocumentParser::finish): (WebCore::MediaDocumentParser::isWaitingForScripts): (WebCore::MediaDocument::createTokenizer): * loader/PluginDocument.cpp: (WebCore::PluginDocumentParser::PluginDocumentParser): (WebCore::PluginDocumentParser::pluginWidgetFromDocument): (WebCore::PluginDocumentParser::write): (WebCore::PluginDocumentParser::createDocumentStructure): (WebCore::PluginDocumentParser::writeRawData): (WebCore::PluginDocumentParser::finish): (WebCore::PluginDocumentParser::isWaitingForScripts): (WebCore::PluginDocument::createTokenizer): (WebCore::PluginDocument::pluginWidget): * loader/SinkDocument.cpp: (WebCore::SinkDocumentParser::SinkDocumentParser): (WebCore::SinkDocumentParser::finish): (WebCore::SinkDocument::createTokenizer): * loader/TextDocument.cpp: (WebCore::TextDocumentParser::TextDocumentParser): (WebCore::TextDocumentParser::~TextDocumentParser): (WebCore::TextDocumentParser::write): (WebCore::TextDocumentParser::finish): (WebCore::TextDocumentParser::isWaitingForScripts): (WebCore::TextDocument::createTokenizer): (WebCore::createTextTokenizer): 2010-06-12 Anders Bakken <agbakken@gmail.com> Reviewed by Eric Seidel. [Qt] EventHandlerQt.cpp has coding-style errors https://bugs.webkit.org/show_bug.cgi?id=40259 Coding style change only. * page/qt/EventHandlerQt.cpp: (WebCore::EventHandler::eventActivatedView): 2010-06-12 Kwang Yul Seo <skyul@company100.net> Reviewed by Darin Adler. Unify fileSystemRepresentation and filenameFromString https://bugs.webkit.org/show_bug.cgi?id=40201 Remove filenameFromString and use fileSystemRepresentation instead as they do the same job. * platform/FileSystem.cpp: Removed. * platform/FileSystem.h: * platform/efl/FileSystemEfl.cpp: (WebCore::fileSystemRepresentation): * platform/gtk/FileChooserGtk.cpp: (WebCore::FileChooser::basenameForWidth): * platform/gtk/FileSystemGtk.cpp: (WebCore::fileSystemRepresentation): (WebCore::filenameForDisplay): (WebCore::fileExists): (WebCore::deleteFile): (WebCore::deleteEmptyDirectory): (WebCore::getFileSize): (WebCore::getFileModificationTime): (WebCore::makeAllDirectories): (WebCore::pathGetFileName): (WebCore::directoryName): (WebCore::listDirectory): * platform/gtk/SharedBufferGtk.cpp: (WebCore::SharedBuffer::createWithContentsOfFile): * platform/network/soup/ResourceHandleSoup.cpp: (WebCore::startHttp): * platform/posix/SharedBufferPOSIX.cpp: (WebCore::SharedBuffer::createWithContentsOfFile): 2010-06-12 Patrick Gansterer <paroga@paroga.com> Reviewed by Eric Seidel. [Haiku] Cleanup SharedBuffer::createWithContentsOfFile https://bugs.webkit.org/show_bug.cgi?id=39003 * platform/haiku/SharedBufferHaiku.cpp: (WebCore::SharedBuffer::createWithContentsOfFile): 2010-06-12 Anders Bakken <agbakken@gmail.com> Reviewed by Eric Seidel. [Qt] WheelEventQt.cpp has coding-style errors https://bugs.webkit.org/show_bug.cgi?id=39760 * platform/qt/WheelEventQt.cpp: (WebCore::PlatformWheelEvent::PlatformWheelEvent): 2010-06-12 Kwang Yul Seo <skyul@company100.net> Reviewed by Kent Tamura. [BREWMP] Don't include POSIX headers in WebCorePrefix.h https://bugs.webkit.org/show_bug.cgi?id=39411 When building for BREW MP, don't include POSIX headers: <fcntl.h>, <pthread.h> and <sys/types.h>. * WebCorePrefix.h: 2010-06-11 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. Rename the rest of the *Tokenizer classes to *DocumentParser https://bugs.webkit.org/show_bug.cgi?id=40507 This search/replace was done by do-webcore-rename. Just looking for a rubber stamp. XMLTokenizer => XMLDocumentParser XMLTokenizerLibxml2 => XMLDocumentParserLibxml2 XMLTokenizerQt => XMLDocumentParserQt XMLTokenizerScope => XMLDocumentParserScope HTML5Tokenizer => HTML5DocumentParser HTMLTokenizer => HTMLDocumentParser No functional change, thus no tests. * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * css/CSSStyleSheet.cpp: (WebCore::CSSStyleSheet::checkLoaded): * dom/Document.cpp: (WebCore::Document::createTokenizer): (WebCore::Document::write): * dom/Document.h: (WebCore::Document::setXMLEncoding): * dom/DocumentParser.h: (WebCore::DocumentParser::asHTMLTokenizer): * dom/Element.cpp: * dom/ProcessingInstruction.cpp: * dom/XMLDocumentParser.cpp: Added. (WebCore::XMLDocumentParser::isWMLDocument): (WebCore::XMLDocumentParser::pushCurrentNode): (WebCore::XMLDocumentParser::popCurrentNode): (WebCore::XMLDocumentParser::clearCurrentNodeStack): (WebCore::XMLDocumentParser::write): (WebCore::XMLDocumentParser::handleError): (WebCore::XMLDocumentParser::enterText): (WebCore::toString): (WebCore::XMLDocumentParser::exitText): (WebCore::XMLDocumentParser::end): (WebCore::XMLDocumentParser::finish): (WebCore::createXHTMLParserErrorHeader): (WebCore::XMLDocumentParser::insertErrorMessageBlock): (WebCore::XMLDocumentParser::notifyFinished): (WebCore::XMLDocumentParser::isWaitingForScripts): (WebCore::XMLDocumentParser::pauseParsing): * dom/XMLDocumentParser.h: Added. (WebCore::XMLParserContext::context): (WebCore::XMLParserContext::XMLParserContext): (WebCore::XMLDocumentParser::): (WebCore::XMLDocumentParser::setIsXHTMLDocument): (WebCore::XMLDocumentParser::isXHTMLDocument): (WebCore::XMLDocumentParser::setIsXHTMLMPDocument): (WebCore::XMLDocumentParser::isXHTMLMPDocument): (WebCore::XMLDocumentParser::wellFormed): (WebCore::XMLDocumentParser::context): * dom/XMLDocumentParserLibxml2.cpp: Added. (WebCore::PendingCallbacks::~PendingCallbacks): (WebCore::PendingCallbacks::appendStartElementNSCallback): (WebCore::PendingCallbacks::appendEndElementNSCallback): (WebCore::PendingCallbacks::appendCharactersCallback): (WebCore::PendingCallbacks::appendProcessingInstructionCallback): (WebCore::PendingCallbacks::appendCDATABlockCallback): (WebCore::PendingCallbacks::appendCommentCallback): (WebCore::PendingCallbacks::appendInternalSubsetCallback): (WebCore::PendingCallbacks::appendErrorCallback): (WebCore::PendingCallbacks::callAndRemoveFirstCallback): (WebCore::PendingCallbacks::isEmpty): (WebCore::PendingCallbacks::PendingCallback::~PendingCallback): (WebCore::PendingCallbacks::PendingStartElementNSCallback::~PendingStartElementNSCallback): (WebCore::PendingCallbacks::PendingStartElementNSCallback::call): (WebCore::PendingCallbacks::PendingEndElementNSCallback::call): (WebCore::PendingCallbacks::PendingCharactersCallback::~PendingCharactersCallback): (WebCore::PendingCallbacks::PendingCharactersCallback::call): (WebCore::PendingCallbacks::PendingProcessingInstructionCallback::~PendingProcessingInstructionCallback): (WebCore::PendingCallbacks::PendingProcessingInstructionCallback::call): (WebCore::PendingCallbacks::PendingCDATABlockCallback::~PendingCDATABlockCallback): (WebCore::PendingCallbacks::PendingCDATABlockCallback::call): (WebCore::PendingCallbacks::PendingCommentCallback::~PendingCommentCallback): (WebCore::PendingCallbacks::PendingCommentCallback::call): (WebCore::PendingCallbacks::PendingInternalSubsetCallback::~PendingInternalSubsetCallback): (WebCore::PendingCallbacks::PendingInternalSubsetCallback::call): (WebCore::PendingCallbacks::): (WebCore::matchFunc): (WebCore::OffsetBuffer::OffsetBuffer): (WebCore::OffsetBuffer::readOutBytes): (WebCore::shouldAllowExternalLoad): (WebCore::openFunc): (WebCore::readFunc): (WebCore::writeFunc): (WebCore::closeFunc): (WebCore::errorFunc): (WebCore::XMLParserContext::createStringParser): (WebCore::XMLParserContext::createMemoryParser): (WebCore::XMLDocumentParser::XMLDocumentParser): (WebCore::XMLParserContext::~XMLParserContext): (WebCore::XMLDocumentParser::~XMLDocumentParser): (WebCore::XMLDocumentParser::doWrite): (WebCore::toString): (WebCore::handleElementNamespaces): (WebCore::handleElementAttributes): (WebCore::XMLDocumentParser::startElementNs): (WebCore::XMLDocumentParser::endElementNs): (WebCore::XMLDocumentParser::characters): (WebCore::XMLDocumentParser::error): (WebCore::XMLDocumentParser::processingInstruction): (WebCore::XMLDocumentParser::cdataBlock): (WebCore::XMLDocumentParser::comment): (WebCore::XMLDocumentParser::startDocument): (WebCore::XMLDocumentParser::endDocument): (WebCore::XMLDocumentParser::internalSubset): (WebCore::getTokenizer): (WebCore::hackAroundLibXMLEntityBug): (WebCore::startElementNsHandler): (WebCore::endElementNsHandler): (WebCore::charactersHandler): (WebCore::processingInstructionHandler): (WebCore::cdataBlockHandler): (WebCore::commentHandler): (WebCore::warningHandler): (WebCore::fatalErrorHandler): (WebCore::normalErrorHandler): (WebCore::): (WebCore::sharedXHTMLEntity): (WebCore::getXHTMLEntity): (WebCore::getEntityHandler): (WebCore::startDocumentHandler): (WebCore::endDocumentHandler): (WebCore::internalSubsetHandler): (WebCore::externalSubsetHandler): (WebCore::ignorableWhitespaceHandler): (WebCore::XMLDocumentParser::initializeParserContext): (WebCore::XMLDocumentParser::doEnd): (WebCore::xmlDocPtrForString): (WebCore::XMLDocumentParser::lineNumber): (WebCore::XMLDocumentParser::columnNumber): (WebCore::XMLDocumentParser::stopParsing): (WebCore::XMLDocumentParser::resumeParsing): (WebCore::parseXMLDocumentFragment): (WebCore::attributesStartElementNsHandler): (WebCore::parseAttributes): * dom/XMLDocumentParserQt.cpp: Added. (WebCore::EntityResolver::resolveUndeclaredEntity): (WebCore::XMLDocumentParser::XMLDocumentParser): (WebCore::XMLDocumentParser::~XMLDocumentParser): (WebCore::XMLDocumentParser::doWrite): (WebCore::XMLDocumentParser::initializeParserContext): (WebCore::XMLDocumentParser::doEnd): (WebCore::XMLDocumentParser::lineNumber): (WebCore::XMLDocumentParser::columnNumber): (WebCore::XMLDocumentParser::stopParsing): (WebCore::XMLDocumentParser::resumeParsing): (WebCore::parseXMLDocumentFragment): (WebCore::attributesStartElementNsHandler): (WebCore::parseAttributes): (WebCore::prefixFromQName): (WebCore::handleElementNamespaces): (WebCore::handleElementAttributes): (WebCore::XMLDocumentParser::parse): (WebCore::XMLDocumentParser::startDocument): (WebCore::XMLDocumentParser::parseStartElement): (WebCore::XMLDocumentParser::parseEndElement): (WebCore::XMLDocumentParser::parseCharacters): (WebCore::XMLDocumentParser::parseProcessingInstruction): (WebCore::XMLDocumentParser::parseCdata): (WebCore::XMLDocumentParser::parseComment): (WebCore::XMLDocumentParser::endDocument): (WebCore::XMLDocumentParser::hasError): (WebCore::XMLDocumentParser::parseDtd): * dom/XMLDocumentParserScope.cpp: Added. (WebCore::XMLDocumentParserScope::XMLDocumentParserScope): (WebCore::XMLDocumentParserScope::~XMLDocumentParserScope): * dom/XMLDocumentParserScope.h: Added. * dom/XMLTokenizer.cpp: Removed. * dom/XMLTokenizer.h: Removed. * dom/XMLTokenizerLibxml2.cpp: Removed. * dom/XMLTokenizerQt.cpp: Removed. * dom/XMLTokenizerScope.cpp: Removed. * dom/XMLTokenizerScope.h: Removed. * html/HTML5DocumentParser.cpp: Added. (WebCore::): (WebCore::HTML5DocumentParser::HTML5DocumentParser): (WebCore::HTML5DocumentParser::~HTML5DocumentParser): (WebCore::HTML5DocumentParser::begin): (WebCore::HTML5DocumentParser::pumpLexerIfPossible): (WebCore::HTML5DocumentParser::pumpLexer): (WebCore::HTML5DocumentParser::write): (WebCore::HTML5DocumentParser::end): (WebCore::HTML5DocumentParser::attemptToEnd): (WebCore::HTML5DocumentParser::endIfDelayed): (WebCore::HTML5DocumentParser::finish): (WebCore::HTML5DocumentParser::executingScript): (WebCore::HTML5DocumentParser::lineNumber): (WebCore::HTML5DocumentParser::columnNumber): (WebCore::HTML5DocumentParser::htmlParser): (WebCore::HTML5DocumentParser::isWaitingForScripts): (WebCore::HTML5DocumentParser::resumeParsingAfterScriptExecution): (WebCore::HTML5DocumentParser::watchForLoad): (WebCore::HTML5DocumentParser::stopWatchingForLoad): (WebCore::HTML5DocumentParser::shouldLoadExternalScriptFromSrc): (WebCore::HTML5DocumentParser::executeScript): (WebCore::HTML5DocumentParser::notifyFinished): (WebCore::HTML5DocumentParser::executeScriptsWaitingForStylesheets): (WebCore::HTML5DocumentParser::script): * html/HTML5DocumentParser.h: Added. (WebCore::HTML5DocumentParser::InputStream::InputStream): (WebCore::HTML5DocumentParser::InputStream::appendToEnd): (WebCore::HTML5DocumentParser::InputStream::insertAtCurrentInsertionPoint): (WebCore::HTML5DocumentParser::InputStream::close): (WebCore::HTML5DocumentParser::InputStream::current): (WebCore::HTML5DocumentParser::InputStream::splitInto): (WebCore::HTML5DocumentParser::InputStream::mergeFrom): (WebCore::HTML5DocumentParser::InsertionPointRecord::InsertionPointRecord): (WebCore::HTML5DocumentParser::InsertionPointRecord::~InsertionPointRecord): (WebCore::HTML5DocumentParser::inWrite): * html/HTML5Lexer.h: (WebCore::HTML5Lexer::columnNumber): * html/HTML5Tokenizer.cpp: Removed. * html/HTML5Tokenizer.h: Removed. * html/HTML5TreeBuilder.cpp: * html/HTMLDocument.cpp: (WebCore::HTMLDocument::createTokenizer): * html/HTMLDocumentParser.cpp: Added. (WebCore::): (WebCore::fixUpChar): (WebCore::tagMatch): (WebCore::Token::addAttribute): (WebCore::HTMLDocumentParser::HTMLDocumentParser): (WebCore::HTMLDocumentParser::reset): (WebCore::HTMLDocumentParser::begin): (WebCore::HTMLDocumentParser::setForceSynchronous): (WebCore::HTMLDocumentParser::processListing): (WebCore::HTMLDocumentParser::parseNonHTMLText): (WebCore::HTMLDocumentParser::scriptHandler): (WebCore::HTMLDocumentParser::scriptExecution): (WebCore::HTMLDocumentParser::parseComment): (WebCore::HTMLDocumentParser::parseServer): (WebCore::HTMLDocumentParser::parseProcessingInstruction): (WebCore::HTMLDocumentParser::parseText): (WebCore::HTMLDocumentParser::parseEntity): (WebCore::HTMLDocumentParser::parseDoctype): (WebCore::HTMLDocumentParser::parseTag): (WebCore::HTMLDocumentParser::continueProcessing): (WebCore::HTMLDocumentParser::advance): (WebCore::HTMLDocumentParser::willWriteHTML): (WebCore::HTMLDocumentParser::didWriteHTML): (WebCore::HTMLDocumentParser::write): (WebCore::HTMLDocumentParser::stopParsing): (WebCore::HTMLDocumentParser::processingData): (WebCore::HTMLDocumentParser::timerFired): (WebCore::HTMLDocumentParser::end): (WebCore::HTMLDocumentParser::finish): (WebCore::HTMLDocumentParser::processToken): (WebCore::HTMLDocumentParser::processDoctypeToken): (WebCore::HTMLDocumentParser::~HTMLDocumentParser): (WebCore::HTMLDocumentParser::enlargeBuffer): (WebCore::HTMLDocumentParser::enlargeScriptBuffer): (WebCore::HTMLDocumentParser::executeScriptsWaitingForStylesheets): (WebCore::HTMLDocumentParser::notifyFinished): (WebCore::HTMLDocumentParser::executeExternalScriptsIfReady): (WebCore::HTMLDocumentParser::executeExternalScriptsTimerFired): (WebCore::HTMLDocumentParser::continueExecutingExternalScripts): (WebCore::HTMLDocumentParser::isWaitingForScripts): (WebCore::HTMLDocumentParser::setSrc): (WebCore::parseHTMLDocumentFragment): (WebCore::decodeNamedEntity): * html/HTMLDocumentParser.h: Added. (WebCore::Token::Token): (WebCore::Token::~Token): (WebCore::Token::isOpenTag): (WebCore::Token::isCloseTag): (WebCore::Token::reset): (WebCore::Token::addViewSourceChar): (WebCore::): (WebCore::DoctypeToken::DoctypeToken): (WebCore::DoctypeToken::reset): (WebCore::DoctypeToken::state): (WebCore::DoctypeToken::setState): (WebCore::HTMLDocumentParser::forceSynchronous): (WebCore::HTMLDocumentParser::executingScript): (WebCore::HTMLDocumentParser::lineNumber): (WebCore::HTMLDocumentParser::columnNumber): (WebCore::HTMLDocumentParser::processingContentWrittenByScript): (WebCore::HTMLDocumentParser::htmlParser): (WebCore::HTMLDocumentParser::asHTMLTokenizer): (WebCore::HTMLDocumentParser::checkBuffer): (WebCore::HTMLDocumentParser::checkScriptBuffer): (WebCore::HTMLDocumentParser::): (WebCore::HTMLDocumentParser::State::State): (WebCore::HTMLDocumentParser::State::tagState): (WebCore::HTMLDocumentParser::State::setTagState): (WebCore::HTMLDocumentParser::State::entityState): (WebCore::HTMLDocumentParser::State::setEntityState): (WebCore::HTMLDocumentParser::State::inScript): (WebCore::HTMLDocumentParser::State::setInScript): (WebCore::HTMLDocumentParser::State::inStyle): (WebCore::HTMLDocumentParser::State::setInStyle): (WebCore::HTMLDocumentParser::State::inXmp): (WebCore::HTMLDocumentParser::State::setInXmp): (WebCore::HTMLDocumentParser::State::inTitle): (WebCore::HTMLDocumentParser::State::setInTitle): (WebCore::HTMLDocumentParser::State::inIFrame): (WebCore::HTMLDocumentParser::State::setInIFrame): (WebCore::HTMLDocumentParser::State::inPlainText): (WebCore::HTMLDocumentParser::State::setInPlainText): (WebCore::HTMLDocumentParser::State::inProcessingInstruction): (WebCore::HTMLDocumentParser::State::setInProcessingInstruction): (WebCore::HTMLDocumentParser::State::inComment): (WebCore::HTMLDocumentParser::State::setInComment): (WebCore::HTMLDocumentParser::State::inDoctype): (WebCore::HTMLDocumentParser::State::setInDoctype): (WebCore::HTMLDocumentParser::State::inTextArea): (WebCore::HTMLDocumentParser::State::setInTextArea): (WebCore::HTMLDocumentParser::State::escaped): (WebCore::HTMLDocumentParser::State::setEscaped): (WebCore::HTMLDocumentParser::State::inServer): (WebCore::HTMLDocumentParser::State::setInServer): (WebCore::HTMLDocumentParser::State::skipLF): (WebCore::HTMLDocumentParser::State::setSkipLF): (WebCore::HTMLDocumentParser::State::startTag): (WebCore::HTMLDocumentParser::State::setStartTag): (WebCore::HTMLDocumentParser::State::discardLF): (WebCore::HTMLDocumentParser::State::setDiscardLF): (WebCore::HTMLDocumentParser::State::allowYield): (WebCore::HTMLDocumentParser::State::setAllowYield): (WebCore::HTMLDocumentParser::State::loadingExtScript): (WebCore::HTMLDocumentParser::State::setLoadingExtScript): (WebCore::HTMLDocumentParser::State::forceSynchronous): (WebCore::HTMLDocumentParser::State::setForceSynchronous): (WebCore::HTMLDocumentParser::State::inAnyNonHTMLText): (WebCore::HTMLDocumentParser::State::hasTagState): (WebCore::HTMLDocumentParser::State::hasEntityState): (WebCore::HTMLDocumentParser::State::needsSpecialWriteHandling): (WebCore::HTMLDocumentParser::State::): (WebCore::HTMLDocumentParser::State::setBit): (WebCore::HTMLDocumentParser::State::testBit): * html/HTMLElement.cpp: * html/HTMLFormControlElement.cpp: * html/HTMLParser.cpp: (WebCore::HTMLParser::reportErrorToConsole): * html/HTMLParser.h: * html/HTMLTokenizer.cpp: Removed. * html/HTMLTokenizer.h: Removed. * html/HTMLViewSourceDocument.cpp: (WebCore::HTMLViewSourceDocument::createTokenizer): (WebCore::HTMLViewSourceDocument::addViewSourceToken): * html/HTMLViewSourceDocument.h: * loader/DocumentLoader.cpp: * loader/FTPDirectoryDocument.cpp: (WebCore::FTPDirectoryTokenizer::FTPDirectoryTokenizer): (WebCore::FTPDirectoryTokenizer::loadDocumentTemplate): (WebCore::FTPDirectoryTokenizer::finish): * loader/FrameLoader.cpp: * loader/ImageDocument.cpp: * loader/MediaDocument.cpp: * loader/PluginDocument.cpp: * loader/TextDocument.cpp: * page/XSSAuditor.h: * svg/SVGDocumentExtensions.cpp: * wml/WMLErrorHandling.cpp: (WebCore::reportWMLError): * xml/XSLStyleSheetLibxslt.cpp: (WebCore::XSLStyleSheet::parseString): * xml/XSLTProcessor.cpp: * xml/XSLTProcessorLibxslt.cpp: 2010-06-12 Andreas Kling <andreas.kling@nokia.com> Reviewed by Darin Adler. Window object should have CanvasGradient and CanvasPattern https://bugs.webkit.org/show_bug.cgi?id=40394 This fixes the following tests: - canvas/philip/tests/2d.gradient.object.return.html - canvas/philip/tests/2d.pattern.basic.type.html * html/canvas/CanvasGradient.idl: * html/canvas/CanvasPattern.idl: * page/DOMWindow.idl: 2010-06-12 Dan Bernstein <mitz@apple.com> Reviewed by Oliver Hunt. <rdar://problem/8025267> REGRESSION (Safari 4-TOT): Crash when a frame’s resize handler removes the frame https://bugs.webkit.org/show_bug.cgi?id=40534 Test: fast/replaced/frame-removed-during-resize.html * rendering/RenderWidget.cpp: (WebCore::RenderWidget::updateWidgetPosition): Null-check m_widget, since resizing the widget may trigger an iframe’s resize handler, which may destroy the widget. 2010-06-12 Dean Jackson <dino@apple.com> Reviewed by Darin Adler. Animation keyframe timing functions are applying incorrectly https://bugs.webkit.org/show_bug.cgi?id=38963 When copying RenderStyles, we have to clone the AnimationList so that each keyframe can have its own timing function. Tests: animations/keyframe-timing-functions-transform.html animations/keyframe-timing-functions2.html * platform/animation/Animation.h: (WebCore::Animation::create): * platform/animation/AnimationList.cpp: (WebCore::AnimationList::AnimationList): * platform/animation/AnimationList.h: (WebCore::AnimationList::AnimationList): 2010-06-12 Dan Bernstein <mitz@apple.com> Reviewed by Dave Hyatt. <rdar://problem/7882140> -webkit-column-break-* properties don’t do anything https://bugs.webkit.org/show_bug.cgi?id=40531 Test: fast/multicol/break-properties.html * rendering/RenderBlock.cpp: (WebCore::RenderBlock::paintChildren): Check for -webkit-column-break-{before,after}: always and -webkit-column-break-inside: avoid when doing column layout. 2010-06-13 Robert Hogan <robert@webkit.org> Reviewed by Alexey Proskuryakov. FrameLoader::clear() clears JS objects that cached pages later rely on https://bugs.webkit.org/show_bug.cgi?id=37725 https://bugs.webkit.org/show_bug.cgi?id=31626 Fix the following tests for Qt: fast/events/pageshow-pagehide-on-back-cached.html fast/events/pageshow-pagehide-on-back-cached-with-frames.html fast/loader/input-element-page-cache-crash.html fast/dom/Window/timer-resume-on-navigation-back.html loader/go-back-to-different-window-size.html fast/dom/javascript-url-crash-function.html fast/dom/location-new-window-no-crash.html http/tests/security/javascriptURL/xss-ALLOWED-from-javascript-url-window-open.html which currently fail because the page's Qt-bindings runtime objects are cleared when navigating away from the page containing them. Track Qt-bindings objects in a separate ScriptController::cacheableRootBindingObject(). RuntimeObjects tracked by this root object will not get invalidated on page navigations, so they will still be available when the pages containing them are retrieved from the b/f cache. This means the Qt bindings objects will only get cleared on Frame::pageDestroyed(). * bindings/js/ScriptController.cpp: (WebCore::ScriptController::~ScriptController): (WebCore::ScriptController::cacheableBindingRootObject): * bindings/js/ScriptController.h: 2010-06-12 Kent Tamura <tkent@chromium.org> Reviewed by Darin Adler. REGRESSION: Can't submit a form with <input type=radio required> https://bugs.webkit.org/show_bug.cgi?id=40429 Validity state was not updated correctly for radio buttons, and it prevents form submission even if a radio button group has a checked radio button. Test: fast/forms/interactive-validation-required-radio.html * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::updateCheckedRadioButtons): Call setNeedsValidityCheck() for all of radio buttons in the same group to update validity state. (WebCore::HTMLInputElement::setChecked): Remove setNeedsValidityCheck() call because it is called in updateCheckedRadioButtons(). 2010-06-12 Kent Tamura <tkent@chromium.org> Reviewed by Dimitri Glazkov. Disable interactive form validation in non-strict modes https://bugs.webkit.org/show_bug.cgi?id=40218 The interactive validation feature of HTML5 is not compatible with HTML4, and users and page authors don't expect existing sites work differently in WebKit. For example, maxlength and required attributes in existing sites unexpectedly prevented form submission. So, we disable the interactive validation feature in non-strict modes to improve compatibility. Test: fast/forms/interactive-validation-compat-mode.html fast/forms/interactive-validation-html4.html * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::validateInteractively): Process interactive validation only in the strict mode. 2010-06-12 Eric Seidel <eric@webkit.org> Reviewed by David Levin. Rename Tokenizer to DocumentParser to match what it actually does https://bugs.webkit.org/show_bug.cgi?id=40504 The rename was entirely done by do-webcore-rename. The only manual changes were removing out-dated comments and fixing Tokenizer_h to DocumentParser_h in the header guards. I'll do all the rest of the renames (like the tokenizer subclasses and the tokenizer() createTokenizer() methods) in separate changes. No functional change, thus no tests. * GNUmakefile.am: * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSHTMLDocumentCustom.cpp: * bindings/v8/ScriptEventListener.cpp: * dom/Document.cpp: (WebCore::Document::createTokenizer): * dom/Document.h: (WebCore::Document::tokenizer): * dom/DocumentParser.h: Added. (WebCore::DocumentParser::~DocumentParser): (WebCore::DocumentParser::stopParsing): (WebCore::DocumentParser::processingData): (WebCore::DocumentParser::executingScript): (WebCore::DocumentParser::wantsRawData): (WebCore::DocumentParser::writeRawData): (WebCore::DocumentParser::inViewSourceMode): (WebCore::DocumentParser::setInViewSourceMode): (WebCore::DocumentParser::wellFormed): (WebCore::DocumentParser::lineNumber): (WebCore::DocumentParser::columnNumber): (WebCore::DocumentParser::executeScriptsWaitingForStylesheets): (WebCore::DocumentParser::htmlParser): (WebCore::DocumentParser::asHTMLTokenizer): (WebCore::DocumentParser::xssAuditor): (WebCore::DocumentParser::setXSSAuditor): (WebCore::DocumentParser::DocumentParser): * dom/Tokenizer.h: Removed. * dom/ViewportArguments.cpp: (WebCore::reportViewportWarning): * dom/XMLTokenizer.h: * dom/XMLTokenizerLibxml2.cpp: (WebCore::XMLTokenizer::stopParsing): * dom/XMLTokenizerQt.cpp: (WebCore::XMLTokenizer::stopParsing): * html/HTML5Tokenizer.cpp: (WebCore::HTML5Tokenizer::HTML5Tokenizer): * html/HTML5Tokenizer.h: * html/HTMLDocument.cpp: (WebCore::HTMLDocument::createTokenizer): * html/HTMLDocument.h: * html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::removedFromTree): * html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::HTMLTokenizer): (WebCore::HTMLTokenizer::stopParsing): * html/HTMLTokenizer.h: * html/HTMLViewSourceDocument.cpp: (WebCore::HTMLViewSourceDocument::createTokenizer): * html/HTMLViewSourceDocument.h: * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::isLoadingInAPISense): * loader/DocumentWriter.cpp: (WebCore::DocumentWriter::addData): * loader/FTPDirectoryDocument.cpp: (WebCore::FTPDirectoryDocument::createTokenizer): * loader/FTPDirectoryDocument.h: * loader/ImageDocument.cpp: (WebCore::ImageDocument::createTokenizer): * loader/ImageDocument.h: * loader/MediaDocument.cpp: (WebCore::MediaDocument::createTokenizer): * loader/MediaDocument.h: * loader/PluginDocument.cpp: (WebCore::PluginDocument::createTokenizer): * loader/PluginDocument.h: * loader/SinkDocument.cpp: (WebCore::SinkDocument::createTokenizer): * loader/SinkDocument.h: * loader/TextDocument.cpp: (WebCore::TextTokenizer::TextTokenizer): (WebCore::TextDocument::createTokenizer): (WebCore::createTextTokenizer): * loader/TextDocument.h: * wml/WMLDocument.cpp: (WebCore::WMLDocument::finishedParsing): 2010-06-12 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. HTML5Tokenizer needs to tell the InspectorTimelineAgent before and after it writes https://bugs.webkit.org/show_bug.cgi?id=40417 This "fixes" inspector/timeline-script-tag-1.html. HTML5 results differ from the old parser for expected reasons. HTML5Tokenizer calls InspectorTimelineAgent::will/didWriteHTML every time we pump the lexer instead of every write() call. We end up pumping the lexer slightly more often than the old code called write() in order to cleanly handle unclosed-entities, unclosed tags, buffered characters, etc. at the end of a document. I discussed this extensively with James Robinson in #webkit and we decided that it was better for the HTML5Tokenizer to call for every pump and that the Inspector should later filter out empty pumps. We can't filter out empty pumps yet, because the number of parsed characters is passed in willWrite instead of didWrite and thus is speculative (and wrong). This is a problem independent of this change as willWrite's "length" argument is wrong in different ways for the old parser, including always being 0 when the old parser resumes. Tested by inspector/timeline-script-tag-1.html * html/HTML5Tokenizer.cpp: (WebCore::HTML5Tokenizer::willPumpLexer): - Notify the InspectorTimelineAgent we're about to process input. (WebCore::HTML5Tokenizer::didPumpLexer): - Notify the InspectorTimelineAgent we did process tokens. (WebCore::HTML5Tokenizer::pumpLexer): - Call willPump and didPump * html/HTML5Tokenizer.h: * inspector/InspectorTimelineAgent.h: - Add a FIXME about passing length to didWrite instead of willWrite. 2010-06-11 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r61052. http://trac.webkit.org/changeset/61052 https://bugs.webkit.org/show_bug.cgi?id=40517 "Broke fast/forms/caret-rtl.html on Mac bots" (Requested by eseidel on #webkit). * html/HTMLElement.cpp: (WebCore::HTMLElement::mapToEntry): (WebCore::HTMLElement::parseMappedAttribute): 2010-06-11 Maciej Stachowiak <mjs@apple.com> Reviewed by Ojan Vafai. Implement HTML5 hidden attribute https://bugs.webkit.org/show_bug.cgi?id=40511 Test: fast/html/hidden-attr.html Note: I used the mapped attribute mechanism for this instead of a rule in the UA stylesheet to avoid a performance hit from adding a global attribute rule to the UA stylesheet. * html/HTMLElement.cpp: (WebCore::HTMLElement::mapToEntry): Pick up hidden as a global mapped attribute. (WebCore::HTMLElement::parseMappedAttribute): Map hidden attribute to display: none. 2010-06-10 Abhishek Arya <inferno@chromium.org> Reviewed by Dave Hyatt. Do not render CSS Styles :first-letter and :first-line in a SVG text element context. https://bugs.webkit.org/show_bug.cgi?id=40031 Test: svg/text/text-style-invalid.svg * rendering/RenderSVGText.cpp: (WebCore::RenderSVGText::firstLineBlock): (WebCore::RenderSVGText::updateFirstLetter): * rendering/RenderSVGText.h: 2010-06-11 Kenneth Russell <kbr@google.com> Reviewed by Dimitri Glazkov. getParameter with UNPACK_FLIP_Y_WEBGL and UNPACK_PREMULTIPLY_ALPHA_WEBGL is buggy https://bugs.webkit.org/show_bug.cgi?id=40506 Return the data members of WebGLRenderingContext for these parameter queries rather than asking OpenGL, which knows nothing about them. * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::getParameter): 2010-06-11 Simon Fraser <simon.fraser@apple.com> Reviewed by Dr Dan Bernstein. REGRESSION: crash when unloading an iFrame with Flash from the DOM https://bugs.webkit.org/show_bug.cgi?id=40161 <rdar://problem/7994710> Null-check the ownerElement of the RenderView's document when unhooking the compositing root of an iframe whose layers are parented via the enclosing document. Fixes a crash when dynamically removing such an iframe. Test: compositing/iframes/remove-iframe-crash.html * rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::detachRootPlatformLayer): 2010-06-11 Abhishek Arya <inferno@chromium.org> Reviewed by David Hyatt. Don't process floats if parent node is not a RenderBlock. https://bugs.webkit.org/show_bug.cgi?id=40033 Test: svg/text/clear-floats-crash.svg * rendering/RenderBlock.cpp: (WebCore::RenderBlock::clearFloats): 2010-06-11 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r61036. http://trac.webkit.org/changeset/61036 https://bugs.webkit.org/show_bug.cgi?id=40499 broke chromium compile (Requested by jamesr on #webkit). * bindings/v8/SerializedScriptValue.cpp: * bindings/v8/SerializedScriptValue.h: (WebCore::SerializedScriptValue::deserializeAndSetProperty): (WebCore::SerializedScriptValue::create): (WebCore::SerializedScriptValue::createFromWire): (WebCore::SerializedScriptValue::release): (WebCore::SerializedScriptValue::SerializedScriptValue): 2010-06-11 Kenneth Russell <kbr@google.com> Reviewed by Dimitri Glazkov. Add texImage2D and texSubImage2D signatures with internal format, etc. https://bugs.webkit.org/show_bug.cgi?id=40318 Added new texImage2D and texSubImage2D entry points following WebGL specification changes. Added UNPACK_FLIP_Y_WEBGL and UNPACK_PREMULTIPLY_ALPHA_WEBGL pixelStorei parameters, honored them for the new entry points taking HTML elements, and added support to getParameter. Added warnings to the console for calls to the obsolete entry points, which will be removed in a few weeks. Updated all layout tests to use the new entry points and pixelStorei parameters, and associated expectations. No other new tests. * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::WebGLRenderingContext): (WebCore::WebGLRenderingContext::getParameter): (WebCore::WebGLRenderingContext::pixelStorei): (WebCore::WebGLRenderingContext::texImage2DImpl): (WebCore::WebGLRenderingContext::texImage2D): (WebCore::WebGLRenderingContext::texSubImage2DImpl): (WebCore::WebGLRenderingContext::texSubImage2D): (WebCore::WebGLRenderingContext::printWarningToConsole): * html/canvas/WebGLRenderingContext.h: * html/canvas/WebGLRenderingContext.idl: * platform/graphics/GraphicsContext3D.h: (WebCore::GraphicsContext3D::): 2010-06-11 James Robinson <jamesr@chromium.org> Reviewed by Dimitri Glazkov. [chromium] Skia mispaints pages with border-radius https://bugs.webkit.org/show_bug.cgi?id=40456 Skia mispaints pages that have border radius set in some cases. The bug is in the anti aliased clip path logic used to implement anti aliased curves in Skia. Since Skia internally only supports 1-bit clips, anti aliased clipping is emulated by creating a new alpha layer, storing a set of clip paths on the side, and then 'erasing' the regions outside the clip. See r49641. PlatformContextSkia maintains a stack of PlatformContextSkia::State objects that preserve information like fill color, drawing mode, etc that is manipulated by GraphicsContext::save() / GraphicsContext::restore() calls as well some internal functions. Whenever a new State object is pushed a new copy of the current State object is pushed onto the top of this stack using the copy c'tor. The set of anti alias clip paths is also stored on the State object, but not copied when new entries are added as the paths only apply to that entry on the stack. The bug is that the state stack is stored in a WTF::Vector. When this vector exceeds its capacity (by default at 16 elements) all of the existing State entries are copied into the new buffer using State's copy constructor. This does not preserve the anti alias clip paths, so when the State entries are popped the anti aliasing info is lost. This corrupts all further paint operations since it results in inbalanced save/restore calls to the underlying SkCanvas. The fix is to make the PlatformContextSkia::State copy constructor copy all fields and to add a new function PlatformContextSkia::State::cloneInheritedProperties to use when pushing new State entries that copies everything except for the anti aliased clip paths. Test: fast/css/nested-rounded-corners.html * platform/graphics/skia/PlatformContextSkia.cpp: (PlatformContextSkia::State::State): (PlatformContextSkia::State::cloneInheritedProperties): (PlatformContextSkia::save): 2010-06-11 Jeremy Orlow <jorlow@chromium.org> Reviewed by Darin Fisher. [V8] Clean up SerializedScriptValue https://bugs.webkit.org/show_bug.cgi?id=40482 SerializedScriptValue doesn't follow WebKit's style guidelines very well and needlessly inlines quite a bit within the .h file. This change cleans things up. No funcitonal changes. No change in behavior. * bindings/v8/SerializedScriptValue.cpp: (WebCore::SerializedScriptValue::deserializeAndSetProperty): (WebCore::SerializedScriptValue::create): (WebCore::SerializedScriptValue::createFromWire): (WebCore::SerializedScriptValue::release): (WebCore::SerializedScriptValue::SerializedScriptValue): * bindings/v8/SerializedScriptValue.h: 2010-06-11 Anton Muhin <antonm@chromium.org> Reviewed by Adam Barth. [v8] Introduce single element caches for WebCore::String to v8::String conversions https://bugs.webkit.org/show_bug.cgi?id=40435 Measurements show that for some web apps (GMail, Wave) and some scenarios (intensive reading and/or keeping a tab open for a long time), hit rate lies in 30--50% interval. Inlining fast case gives another minor performance win. * bindings/v8/V8Binding.cpp: (WebCore::getStringCache): (WebCore::v8ExternalStringSlow): * bindings/v8/V8Binding.h: (WebCore::v8ExternalString): 2010-06-11 Leandro Pereira <leandro@profusion.mobi> Reviewed by Gustavo Noronha Silva. [EFL] Build fix: remove unneeded file (npapi.cpp) and add other files that got added to the tree. http://webkit.org/b/40331 * CMakeLists.txt: * CMakeListsEfl.txt: 2010-06-11 Tony Gentilcore <tonyg@chromium.org> Reviewed by Eric Seidel. Fix fast/forms/preserveFormDuringResidualStyle.html for HTML5 Parser. https://bugs.webkit.org/show_bug.cgi?id=40454 This required exposing the HTMLParser which we definitely don't want to do, but the good news is that it can go away when the HTMLParser goes away. No new tests because covered by fast/forms/preserve/FormDuringResidualStyle.html. * dom/Tokenizer.h: (WebCore::Tokenizer::htmlParser): * html/HTML5Tokenizer.cpp: (WebCore::HTML5Tokenizer::htmlParser): * html/HTML5Tokenizer.h: * html/HTML5TreeBuilder.h: (WebCore::HTML5TreeBuilder::htmlParser): * html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::removedFromTree): * html/HTMLTokenizer.h: (WebCore::HTMLTokenizer::htmlParser): 2010-06-11 Kenneth Russell <kbr@google.com> Reviewed by Dimitri Glazkov. Delete custom JSC bindings for bufferData, texImage2D and texSubImage2D https://bugs.webkit.org/show_bug.cgi?id=40443 Deleted custom JSC bindings for bufferData, texImage2D and texSubImage2D and fixed minor associated issues in code generator and IDL. Updated fast/canvas/webgl/texImageTest-expected.txt, which now runs as intended. Ran all layout tests, including WebGL tests, in Safari. * bindings/js/JSWebGLRenderingContextCustom.cpp: - Deleted custom bindings. * bindings/scripts/CodeGeneratorJS.pm: - Made overload helper functions static to fix compiler warnings. - Added needed isObject check for overloads between object and non-object arguments. - Added JSValue::encode to exception return path, needed on Leopard in particular. * html/HTMLCanvasElement.idl: * html/HTMLImageElement.idl: * html/HTMLVideoElement.idl: - Added GenerateNativeConverter extended attribute. * html/canvas/WebGLRenderingContext.idl: - Deleted #ifdefs for custom JSC bindings. 2010-06-11 Kevin Ollivier <kevino@theolliviers.com> [wx] Build fix, add KillRingNone.cpp until we can implement it. * wscript: 2010-06-11 Hans Wennborg <hans@chromium.org> Reviewed by Jeremy Orlow. DOM storage should only create databases when needed https://bugs.webkit.org/show_bug.cgi?id=40301 As soon as a page attempts to use localstorage, StorageAreaSync will create an empty database if one doesn't already exist. This can lead to lots of unnecessary database files. In particular, they are created even when the privacy settings or private browsing mode disallow localstorage data, which may seem odd to the user. Database creation should be put off in StorageAreaSync until it is time to actually write something to the database. Tests: manual-tests/localstorage-empty-database.html * manual-tests/localstorage-empty-database.html: Added. * storage/StorageAreaSync.cpp: (WebCore::StorageAreaSync::StorageAreaSync): (WebCore::StorageAreaSync::openDatabase): (WebCore::StorageAreaSync::performImport): (WebCore::StorageAreaSync::sync): * storage/StorageAreaSync.h: (WebCore::StorageAreaSync::): 2010-06-11 Ilya Tikhonovsky <loislo@chromium.org> Reviewed by Eric Seidel. Perl scripts for bindings don't use strict keyword. As result some problems in the script code were not detected at compile stage. https://bugs.webkit.org/show_bug.cgi?id=40468 * bindings/scripts/CodeGenerator.pm: * bindings/scripts/IDLParser.pm: * bindings/scripts/IDLStructure.pm: 2010-06-11 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. HTML5Tokenizer should not delete itself while running scripts https://bugs.webkit.org/show_bug.cgi?id=40458 Tested by fast/dom/document-clear.html * html/HTML5Tokenizer.cpp: (WebCore::HTML5Tokenizer::attemptToEnd): - Don't ever end() while running scripts. This matches the old HTMLTokenizer.cpp 2010-06-11 Zhenyao Mo <zmo@google.com> Reviewed by Dimitri Glazkov. getActiveUniform must ensure names of arrays end in "[0]" https://bugs.webkit.org/show_bug.cgi?id=38709 Test: fast/canvas/webgl/get-active-test.html * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::getActiveAttrib): Append "[0]" to the name if needed. 2010-06-11 Zhenyao Mo <zmo@google.com> Reviewed by Dimitri Glazkov. readPixels with negative width/height should generate INVALID_VALUE and return https://bugs.webkit.org/show_bug.cgi?id=39704 * html/canvas/WebGLRenderingContext.cpp: Deal with negative width/height. (WebCore::WebGLRenderingContext::readPixels): * html/canvas/WebGLRenderingContext.h: Change width/height type from unsigned long to long. * html/canvas/WebGLRenderingContext.idl: Ditto. 2010-06-11 Zhenyao Mo <zmo@google.com> Reviewed by Dimitri Glazkov. uniform* entry points must ignore the call if a null WebGLUniformLocation is passed https://bugs.webkit.org/show_bug.cgi?id=38707 * html/canvas/WebGLRenderingContext.cpp: uniform* entry points ignore the call if a null WebGLUniformLocation is passed. (WebCore::WebGLRenderingContext::uniform1f): (WebCore::WebGLRenderingContext::uniform1fv): (WebCore::WebGLRenderingContext::uniform1i): (WebCore::WebGLRenderingContext::uniform1iv): (WebCore::WebGLRenderingContext::uniform2f): (WebCore::WebGLRenderingContext::uniform2fv): (WebCore::WebGLRenderingContext::uniform2i): (WebCore::WebGLRenderingContext::uniform2iv): (WebCore::WebGLRenderingContext::uniform3f): (WebCore::WebGLRenderingContext::uniform3fv): (WebCore::WebGLRenderingContext::uniform3i): (WebCore::WebGLRenderingContext::uniform3iv): (WebCore::WebGLRenderingContext::uniform4f): (WebCore::WebGLRenderingContext::uniform4fv): (WebCore::WebGLRenderingContext::uniform4i): (WebCore::WebGLRenderingContext::uniform4iv): (WebCore::WebGLRenderingContext::uniformMatrix2fv): (WebCore::WebGLRenderingContext::uniformMatrix3fv): (WebCore::WebGLRenderingContext::uniformMatrix4fv): 2010-06-11 Zhenyao Mo <zmo@google.com> Reviewed by Dimitri Glazkov. drawElements/drawArrays should validate input parameters according to GLES2 spec https://bugs.webkit.org/show_bug.cgi?id=38700 Tests: fast/canvas/webgl/draw-arrays-out-of-bounds.html fast/canvas/webgl/draw-elements-out-of-bounds.html * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::drawArrays): Validate input parameters. (WebCore::WebGLRenderingContext::drawElements): Ditto. (WebCore::WebGLRenderingContext::validateDrawMode): Validate mode for draw{Arrays/Elements}. * html/canvas/WebGLRenderingContext.h: Add validateDrawMode, fix incorrect parameter types. * html/canvas/WebGLRenderingContext.idl: Fix incorrect parameter types. 2010-06-11 Luiz Agostini <luiz.agostini@openbossa.org> Reviewed by Antti Koivisto. CSS3 Media Queries are not serialized according to CSSOM https://bugs.webkit.org/show_bug.cgi?id=39220 MediaQuery serialization according to specification http://dev.w3.org/csswg/cssom/#serializing-media-queries. MediaQuery objects now ignore duplicated expressions. MediaQueryEvaluator::eval() now does not proccess MediaQuery objects that are known to be invalid. Test: fast/media/media-query-serialization.html * css/MediaQuery.cpp: (WebCore::stringCompare): (WebCore::MediaQuery::serialize): (WebCore::MediaQuery::MediaQuery): (WebCore::MediaQuery::~MediaQuery): (WebCore::MediaQuery::operator==): (WebCore::MediaQuery::cssText): (WebCore::MediaQuery::append): * css/MediaQuery.h: (WebCore::MediaQuery::ignored): (WebCore::MediaQuery::begin): (WebCore::MediaQuery::end): * css/MediaQueryExp.cpp: (WebCore::MediaQueryExp::serialize): * css/MediaQueryExp.h: * css/MediaQueryEvaluator.cpp: (WebCore::MediaQueryEvaluator::eval): 2010-06-10 Jeremy Orlow <jorlow@chromium.org> Reviewed by Steve Block. Implement more of IndexedDB's Indexes and ObjectStores https://bugs.webkit.org/show_bug.cgi?id=40424 Clean up both of these classes a bit and add create/open/remove methods as needed. Tests in a future patch (promise). * storage/IDBDatabase.h: * storage/IDBDatabaseImpl.cpp: (WebCore::IDBDatabaseImpl::objectStores): (WebCore::IDBDatabaseImpl::createObjectStore): (WebCore::IDBDatabaseImpl::objectStore): (WebCore::IDBDatabaseImpl::removeObjectStore): * storage/IDBDatabaseImpl.h: (WebCore::IDBDatabaseImpl::name): (WebCore::IDBDatabaseImpl::description): (WebCore::IDBDatabaseImpl::version): * storage/IDBDatabaseRequest.cpp: (WebCore::IDBDatabaseRequest::IDBDatabaseRequest): (WebCore::IDBDatabaseRequest::createObjectStore): (WebCore::IDBDatabaseRequest::objectStore): (WebCore::IDBDatabaseRequest::removeObjectStore): * storage/IDBDatabaseRequest.h: (WebCore::IDBDatabaseRequest::create): (WebCore::IDBDatabaseRequest::name): (WebCore::IDBDatabaseRequest::description): (WebCore::IDBDatabaseRequest::version): (WebCore::IDBDatabaseRequest::objectStores): * storage/IDBDatabaseRequest.idl: * storage/IDBObjectStore.h: * storage/IDBObjectStoreImpl.h: * storage/IDBObjectStoreRequest.cpp: (WebCore::IDBObjectStoreRequest::get): (WebCore::IDBObjectStoreRequest::add): (WebCore::IDBObjectStoreRequest::modify): (WebCore::IDBObjectStoreRequest::addOrModify): (WebCore::IDBObjectStoreRequest::remove): (WebCore::IDBObjectStoreRequest::createIndex): (WebCore::IDBObjectStoreRequest::index): (WebCore::IDBObjectStoreRequest::removeIndex): * storage/IDBObjectStoreRequest.h: * storage/IDBObjectStoreRequest.idl: 2010-06-11 Alexander Pavlov <apavlov@chromium.org> Reviewed by Pavel Feldman. Web Inspector: Enable serialization/deserialization of the frontend state https://bugs.webkit.org/show_bug.cgi?id=40228 * inspector/InspectorBackend.cpp: (WebCore::InspectorBackend::saveApplicationSettings): (WebCore::InspectorBackend::saveSessionSettings): * inspector/InspectorBackend.h: * inspector/InspectorBackend.idl: * inspector/InspectorController.cpp: (WebCore::InspectorController::InspectorController): (WebCore::InspectorController::setSessionSettings): (WebCore::InspectorController::populateScriptObjects): (WebCore::InspectorController::didCommitLoad): * inspector/InspectorController.h: * inspector/InspectorFrontend.cpp: (WebCore::InspectorFrontend::populateApplicationSettings): (WebCore::InspectorFrontend::populateSessionSettings): * inspector/InspectorFrontend.h: * inspector/front-end/ConsoleView.js: (WebInspector.ConsoleView.prototype._settingsLoaded): (WebInspector.ConsoleView.prototype._enterKeyPressed.printResult): (WebInspector.ConsoleView.prototype._enterKeyPressed): * inspector/front-end/EventListenersSidebarPane.js: (WebInspector.EventListenersSidebarPane.prototype._settingsLoaded): (WebInspector.EventListenersSidebarPane.prototype): (): * inspector/front-end/InspectorBackendStub.js: (.WebInspector.InspectorBackendStub.prototype.saveApplicationSettings): (.WebInspector.InspectorBackendStub.prototype.saveSessionSettings): * inspector/front-end/ResourceView.js: (WebInspector.ResourceView.prototype._selectTab): (WebInspector.ResourceView.prototype._selectHeadersTab): (WebInspector.ResourceView.prototype.selectContentTab): * inspector/front-end/ResourcesPanel.js: (WebInspector.ResourcesPanel.prototype._createStatusbarButtons): (WebInspector.ResourcesPanel.prototype._settingsLoaded): (WebInspector.ResourcesPanel.prototype._toggleLargerResources): * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype._showScriptOrResource): (WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu): * inspector/front-end/Settings.js: (WebInspector.populateApplicationSettings): (WebInspector.populateSessionSettings): (WebInspector.Settings): (WebInspector.Settings.prototype.reset): (WebInspector.Settings.prototype._load): (WebInspector.Settings.prototype._set): * inspector/front-end/StylesSidebarPane.js: (WebInspector.StylesSidebarPane.prototype._settingsLoaded): (WebInspector.StylesSidebarPane.prototype.update): (WebInspector.StylesSidebarPane.prototype._changeSetting): (WebInspector.StylesSidebarPane.prototype._changeColorFormat): (WebInspector.ComputedStyleSidebarPane.settingsLoaded): (WebInspector.ComputedStyleSidebarPane.showInheritedToggleFunction): (WebInspector.ComputedStyleSidebarPane): * inspector/front-end/WatchExpressionsSidebarPane.js: (WebInspector.WatchExpressionsSidebarPane): (WebInspector.WatchExpressionsSidebarPane.prototype._settingsLoaded): (WebInspector.WatchExpressionsSection): (WebInspector.WatchExpressionsSection.prototype.saveExpressions): * inspector/front-end/inspector.js: (WebInspector.loaded): (WebInspector.reset): 2010-06-10 Pavel Feldman <pfeldman@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: Port performSearch from InjectedScript to InspectorDOMAgent. https://bugs.webkit.org/show_bug.cgi?id=40422 * inspector/InjectedScriptHost.cpp: (WebCore::InjectedScriptHost::addNodesToSearchResult): * inspector/InspectorBackend.cpp: (WebCore::InspectorBackend::performSearch): (WebCore::InspectorBackend::searchCanceled): * inspector/InspectorBackend.h: * inspector/InspectorBackend.idl: * inspector/InspectorDOMAgent.cpp: (WebCore::): (WebCore::InspectorDOMAgent::InspectorDOMAgent): (WebCore::InspectorDOMAgent::~InspectorDOMAgent): (WebCore::InspectorDOMAgent::performSearch): (WebCore::InspectorDOMAgent::searchCanceled): (WebCore::InspectorDOMAgent::onMatchJobsTimer): (WebCore::InspectorDOMAgent::reportNodesAsSearchResults): * inspector/InspectorDOMAgent.h: (WebCore::MatchJob::~MatchJob): (WebCore::MatchJob::MatchJob): (WebCore::MatchJob::addNodesToResults): * inspector/InspectorFrontend.cpp: (WebCore::InspectorFrontend::addNodesToSearchResult): * inspector/InspectorFrontend.h: * inspector/InspectorResource.cpp: (WebCore::InspectorResource::updateScriptObject): * inspector/front-end/ElementsPanel.js: (WebInspector.ElementsPanel.prototype.searchCanceled): (WebInspector.ElementsPanel.prototype.performSearch): (WebInspector.ElementsPanel.prototype.addNodesToSearchResult): * inspector/front-end/InjectedScript.js: (injectedScriptConstructor): * inspector/front-end/InjectedScriptAccess.js: 2010-06-11 Mikhail Naganov <mnaganov@chromium.org> Reviewed by Pavel Feldman. [Chromium] Restore 'console.profiles' access. https://bugs.webkit.org/show_bug.cgi?id=39840 * bindings/v8/ScriptProfiler.cpp: (WebCore::ScriptProfiler::stop): * bindings/v8/custom/V8ConsoleCustom.cpp: (WebCore::V8Console::profilesAccessorGetter): * inspector/InspectorController.cpp: (WebCore::InspectorController::stopUserInitiatedProfiling): 2010-06-10 Nikita Vasilyev <me@elv1s.ru> Reviewed by Pavel Feldman. Web Inspector: Make a close brace in Styles pane selectable. https://bugs.webkit.org/show_bug.cgi?id=40157 * inspector/front-end/inspector.css: (.styles-selector): (.styles-section .properties li): (.styles-section): 2010-06-11 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. Web Inspector: localize missing script source message https://bugs.webkit.org/show_bug.cgi?id=40467 * English.lproj/localizedStrings.js: * inspector/InspectorController.cpp: (WebCore::InspectorController::didParseSource): fixed typo in comment. 2010-06-11 Zhenyao Mo <zmo@google.com> Reviewed by Dimitri Glazkov. Vertex attributes enabled as arrays but not bound to buffers must generate INVALID_OPERATION https://bugs.webkit.org/show_bug.cgi?id=40315 * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::validateRenderingState): Check if an enabled vertext attribs is bound to a buffer. (WebCore::WebGLRenderingContext::vertexAttribPointer): Set bound buffer in vertex attrib state. * html/canvas/WebGLRenderingContext.h: Add a member in vertex attrib state to track bound buffer. 2010-05-31 Jocelyn Turcotte <jocelyn.turcotte@nokia.com> Reviewed by Simon Hausmann. [Qt] Implement the simple text code path. https://bugs.webkit.org/show_bug.cgi?id=40077 Remove the FONT_FAST_PATH macro and use the Qt's fast text implementation instead of the one of WebKit. The Qt::TextBypassShaping flag is used to tell Qt to only use the glyph advances. Qt 4.7 is needed to get this flag thus the complex path is always used if QtWebKit is compiled against an earlier version. Contrary to the WebKit's implementation, the complex code path is taken if the text is RightToLeft, justified or is formatted with non-zero letter or word spacing. * platform/graphics/Font.cpp: (WebCore::Font::drawText): (WebCore::Font::floatWidth): (WebCore::Font::selectionRectForText): (WebCore::Font::offsetForPosition): * platform/graphics/Font.h: (WebCore::Font::isRoundingHackCharacter): * platform/graphics/qt/FontQt.cpp: (WebCore::fromRawDataWithoutRef): (WebCore::needComplexCodePath): (WebCore::setupPlatformContext): (WebCore::Font::canReturnFallbackFontsForComplexText): (WebCore::Font::drawSimpleText): (WebCore::Font::drawComplexText): (WebCore::Font::floatWidthForSimpleText): (WebCore::Font::offsetForPositionForSimpleText): (WebCore::Font::selectionRectForSimpleText): 2010-06-03 Jocelyn Turcotte <jocelyn.turcotte@nokia.com> Reviewed by Simon Hausmann. Move the text code path detection code from FontFastPath.cpp to Font.cpp. https://bugs.webkit.org/show_bug.cgi?id=40077 This is a patch preliminary to the implementation of the simple font code path for the Qt port. * platform/graphics/Font.cpp: (WebCore::Font::setCodePath): (WebCore::Font::codePath): * platform/graphics/Font.h: * platform/graphics/FontFastPath.cpp: 2010-06-11 Sterling Swigart <sswigart@google.com> Reviewed by Dmitry Titov. Added AsyncImageResizer and ImageResizerThread classes, which after further patches will be capable of resizing images. https://bugs.webkit.org/show_bug.cgi?id=40018 * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * html/AsyncImageResizer.cpp: Added. (WebCore::AsyncImageResizer::create): (WebCore::AsyncImageResizer::AsyncImageResizer): (WebCore::AsyncImageResizer::~AsyncImageResizer): (WebCore::AsyncImageResizer::notifyFinished): * html/AsyncImageResizer.h: Added. (WebCore::AsyncImageResizer::CallbackInfo::CallbackInfo): (WebCore::AsyncImageResizer::): (WebCore::AsyncImageResizer::resizeComplete): (WebCore::AsyncImageResizer::resizeError): * html/ImageResizerThread.cpp: Added. (WebCore::returnBlobOrError): (WebCore::ImageResizerThread::start): (WebCore::ImageResizerThread::ImageResizerThread): (WebCore::ImageResizerThread::~ImageResizerThread): (WebCore::ImageResizerThread::imageResizerThreadStart): (WebCore::ImageResizerThread::imageResizerThread): * html/ImageResizerThread.h: Added. 2010-06-11 Steve Block <steveblock@google.com> Reviewed by Alexey Proskuryakov. Client-based Geolocation does not handle multiple simultaneous requests https://bugs.webkit.org/show_bug.cgi?id=40148 Test: fast/dom/Geolocation/multiple-requests.html The Geolocation must handle multiple calls to addObserver() from the same Geolocation object. * page/GeolocationController.cpp: (WebCore::GeolocationController::addObserver): 2010-06-11 Nikita Vasilyev <me@elv1s.ru> Reviewed by Pavel Feldman. Web Inspector: When completing using a tab key, select very first value, not a second. https://bugs.webkit.org/show_bug.cgi?id=40409 * inspector/front-end/TextPrompt.js: (WebInspector.TextPrompt.prototype._completionsReady): 2010-06-10 Yuzo Fujishima <yuzo@google.com> Reviewed by Shinichiro Hamaji. Implement render style selection for pages to support CSS3 Paged Media. https://bugs.webkit.org/show_bug.cgi?id=35961 Test: printing/page-rule-selection.html * WebCore.base.exp: * css/CSSGrammar.y: * css/CSSSelector.cpp: (WebCore::CSSSelector::specificity): (WebCore::CSSSelector::specificityForPage): * css/CSSSelector.h: (WebCore::CSSSelector::CSSSelector): (WebCore::CSSSelector::isForPage): (WebCore::CSSSelector::setForPage): * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::styleForPage): (WebCore::CSSStyleSelector::matchPageRules): (WebCore::CSSStyleSelector::matchPageRulesForList): (WebCore::CSSStyleSelector::isLeftPage): (WebCore::CSSStyleSelector::isFirstPage): (WebCore::CSSStyleSelector::pageName): * css/CSSStyleSelector.h: (WebCore::CSSStyleSelector::isRightPage): * css/html.css: (@page): * dom/Document.cpp: (WebCore::Document::styleForPage): * dom/Document.h: * page/PrintContext.cpp: (WebCore::PrintContext::pageProperty): * page/PrintContext.h: 2010-06-10 Yuzo Fujishima <yuzo@google.com> Reviewed by Shinichiro Hamaji. Fix Bug 40452: REGRESSION: printing is broken if stylesheet has @page https://bugs.webkit.org/show_bug.cgi?id=40452 Test: printing/page-rule-in-media-query.html * css/CSSStyleSelector.cpp: (WebCore::CSSRuleSet::addRulesFromSheet): (WebCore::CSSRuleSet::addStyleRule): 2010-06-10 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r60989. http://trac.webkit.org/changeset/60989 https://bugs.webkit.org/show_bug.cgi?id=40462 It makes things crash (Requested by abarth on #webkit). * dom/Tokenizer.h: (WebCore::Tokenizer::isHTMLTokenizer): * html/HTML5Tokenizer.cpp: * html/HTML5Tokenizer.h: * html/HTML5TreeBuilder.h: * html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::removedFromTree): * html/HTMLTokenizer.h: (WebCore::HTMLTokenizer::isHTMLTokenizer): (WebCore::HTMLTokenizer::htmlParser): 2010-06-10 Tony Gentilcore <tonyg@chromium.org> Reviewed by Eric Seidel. Fix fast/forms/preserveFormDuringResidualStyle.html for HTML5 Parser. https://bugs.webkit.org/show_bug.cgi?id=40454 This required exposing the HTMLParser which we definitely don't want to do, but the good news is that it can go away when the HTMLParser goes away. No new tests because covered by fast/forms/preserve/FormDuringResidualStyle.html. * dom/Tokenizer.h: (WebCore::Tokenizer::htmlParser): * html/HTML5Tokenizer.cpp: (WebCore::HTML5Tokenizer::htmlParser): * html/HTML5Tokenizer.h: * html/HTML5TreeBuilder.h: (WebCore::HTML5TreeBuilder::htmlParser): * html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::removedFromTree): * html/HTMLTokenizer.h: (WebCore::HTMLTokenizer::htmlParser): 2010-06-10 Tony Chang <tony@chromium.org> Reviewed by Kent Tamura. crash when focus is changed while trying to focus next element https://bugs.webkit.org/show_bug.cgi?id=40407 Test: fast/events/focus-change-crash.html * dom/Element.cpp: (WebCore::Element::focus): 2010-06-10 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r60979. http://trac.webkit.org/changeset/60979 https://bugs.webkit.org/show_bug.cgi?id=40450 Broke build on Leopard (Requested by kbr_google on #webkit). * bindings/js/JSWebGLRenderingContextCustom.cpp: (WebCore::JSWebGLRenderingContext::bufferData): (WebCore::JSWebGLRenderingContext::bufferSubData): (WebCore::JSWebGLRenderingContext::texImage2D): (WebCore::JSWebGLRenderingContext::texSubImage2D): * bindings/scripts/CodeGeneratorJS.pm: * html/HTMLCanvasElement.idl: * html/HTMLImageElement.idl: * html/HTMLVideoElement.idl: * html/canvas/WebGLRenderingContext.idl: 2010-06-10 Kenneth Russell <kbr@google.com> Reviewed by Dimitri Glazkov. Delete custom JSC bindings for bufferData, texImage2D and texSubImage2D https://bugs.webkit.org/show_bug.cgi?id=40443 Deleted custom JSC bindings for bufferData, texImage2D and texSubImage2D and fixed minor associated issues in code generator and IDL. Updated fast/canvas/webgl/texImageTest-expected.txt, which now runs as intended. Ran all layout tests, including WebGL tests, in Safari. * bindings/js/JSWebGLRenderingContextCustom.cpp: - Deleted custom bindings. * bindings/scripts/CodeGeneratorJS.pm: - Made overload helper functions static to fix compiler warnings. - Added needed isObject check for overloads between object and non-object arguments. * html/HTMLCanvasElement.idl: * html/HTMLImageElement.idl: * html/HTMLVideoElement.idl: - Added GenerateNativeConverter extended attribute. * html/canvas/WebGLRenderingContext.idl: - Deleted #ifdefs for custom JSC bindings. 2010-06-10 David Hyatt <hyatt@apple.com> Reviewed by John Sullivan. https://bugs.webkit.org/show_bug.cgi?id=40441, back out the original fix for 29601, since it has broken continuous wheel delta values. * platform/mac/WebCoreSystemInterface.h: * platform/mac/WebCoreSystemInterface.mm: * platform/mac/WheelEventMac.mm: (WebCore::PlatformWheelEvent::PlatformWheelEvent): 2010-06-10 Abhishek Arya <inferno@chromium.org> Reviewed by Dimitri Glazkov. Add null pointer checks for nativeImageForCurrentFrame function calls. https://bugs.webkit.org/show_bug.cgi?id=39797 * platform/chromium/PasteboardChromium.cpp: (WebCore::Pasteboard::writeImage): * platform/graphics/qt/GraphicsContext3DQt.cpp: (WebCore::GraphicsContext3D::getImageData): * platform/qt/PasteboardQt.cpp: (WebCore::Pasteboard::writeImage): 2010-06-09 Kenneth Russell <kbr@google.com> Reviewed by Dimitri Glazkov. Implement TypedArray BYTES_PER_ELEMENT https://bugs.webkit.org/show_bug.cgi?id=39100 Implemented BYTES_PER_ELEMENT on all ArrayBufferView subclasses. Required bug fixes to JSC bindings' custom constructors. Updated fast/canvas/webgl/array-unit-tests.html to verify. Ran all WebGL layout tests in Safari and Chromium. * bindings/js/JSFloat32ArrayConstructor.cpp: (WebCore::JSFloat32ArrayConstructor::JSFloat32ArrayConstructor): (WebCore::JSFloat32ArrayConstructor::getOwnPropertySlot): (WebCore::JSFloat32ArrayConstructor::getOwnPropertyDescriptor): * bindings/js/JSFloat32ArrayConstructor.h: (WebCore::JSFloat32ArrayConstructor::createStructure): * bindings/js/JSInt16ArrayConstructor.cpp: (WebCore::JSInt16ArrayConstructor::JSInt16ArrayConstructor): (WebCore::JSInt16ArrayConstructor::getOwnPropertySlot): (WebCore::JSInt16ArrayConstructor::getOwnPropertyDescriptor): * bindings/js/JSInt16ArrayConstructor.h: (WebCore::JSInt16ArrayConstructor::createStructure): * bindings/js/JSInt32ArrayConstructor.cpp: (WebCore::JSInt32ArrayConstructor::JSInt32ArrayConstructor): (WebCore::JSInt32ArrayConstructor::getOwnPropertySlot): (WebCore::JSInt32ArrayConstructor::getOwnPropertyDescriptor): * bindings/js/JSInt32ArrayConstructor.h: (WebCore::JSInt32ArrayConstructor::createStructure): * bindings/js/JSInt8ArrayConstructor.cpp: (WebCore::JSInt8ArrayConstructor::JSInt8ArrayConstructor): (WebCore::JSInt8ArrayConstructor::getOwnPropertySlot): (WebCore::JSInt8ArrayConstructor::getOwnPropertyDescriptor): * bindings/js/JSInt8ArrayConstructor.h: (WebCore::JSInt8ArrayConstructor::createStructure): * bindings/js/JSUint16ArrayConstructor.cpp: (WebCore::JSUint16ArrayConstructor::JSUint16ArrayConstructor): (WebCore::JSUint16ArrayConstructor::getOwnPropertySlot): (WebCore::JSUint16ArrayConstructor::getOwnPropertyDescriptor): * bindings/js/JSUint16ArrayConstructor.h: (WebCore::JSUint16ArrayConstructor::createStructure): * bindings/js/JSUint32ArrayConstructor.cpp: (WebCore::JSUint32ArrayConstructor::JSUint32ArrayConstructor): (WebCore::JSUint32ArrayConstructor::getOwnPropertySlot): (WebCore::JSUint32ArrayConstructor::getOwnPropertyDescriptor): * bindings/js/JSUint32ArrayConstructor.h: (WebCore::JSUint32ArrayConstructor::createStructure): * bindings/js/JSUint8ArrayConstructor.cpp: (WebCore::JSUint8ArrayConstructor::JSUint8ArrayConstructor): (WebCore::JSUint8ArrayConstructor::getOwnPropertySlot): (WebCore::JSUint8ArrayConstructor::getOwnPropertyDescriptor): * bindings/js/JSUint8ArrayConstructor.h: (WebCore::JSUint8ArrayConstructor::createStructure): * html/canvas/Float32Array.idl: * html/canvas/Int16Array.idl: * html/canvas/Int32Array.idl: * html/canvas/Int8Array.idl: * html/canvas/Uint16Array.idl: * html/canvas/Uint32Array.idl: * html/canvas/Uint8Array.idl: 2010-06-10 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. HTML5 Parser should continue parsing after script execution https://bugs.webkit.org/show_bug.cgi?id=40416 The previous code was just wrong. We were always blocking the parser after any script execution. Now we correctly continue parsing after a successful script execution and only block the parser when we weren't able to execute the script immediately. Added a new haveParsingBlockingScript() function to HTML5ScriptRunner to make some of the code more self-documenting. Test: fast/tokenizer/write-multiple-scripts.html fast/js/implicit-call-with-global-reentry.html * html/HTML5ScriptRunner.cpp: (WebCore::HTML5ScriptRunner::execute): - Remove some old (now bogus) FIXMEs and notImplemented() calls. - Fix the logic to match the HTML5 spec by continuing parsing after script execution and only blocking the parser when the script wasn't able to immediately run. (WebCore::HTML5ScriptRunner::haveParsingBlockingScript): - New function to make some of the code read better. (WebCore::HTML5ScriptRunner::executeParsingBlockingScripts): - Use haveParsingBlockingScript(). (WebCore::HTML5ScriptRunner::executeScriptsWaitingForLoad): - Use haveParsingBlockingScript(). (WebCore::HTML5ScriptRunner::runScript): - Use haveParsingBlockingScript(). * html/HTML5ScriptRunner.h: 2010-06-10 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. Web Inspector: to reduce the front end start up time don't push script sources to frontend if debugger is always enabled, instead request script content lazily at the moment it should be displyed. It is critical for always enabled debugger because in that case lots of script may have already been parsed when the front end is opening and pushing all of them at once may slow things down(even though the script sources will never be used if scripts panel isn't open). https://bugs.webkit.org/show_bug.cgi?id=40364 * inspector/InspectorBackend.cpp: (WebCore::InspectorBackend::getScriptSource): * inspector/InspectorBackend.h: * inspector/InspectorBackend.idl: * inspector/InspectorController.cpp: (WebCore::InspectorController::didCommitLoad): (WebCore::InspectorController::getScriptSource): (WebCore::InspectorController::didParseSource): * inspector/InspectorController.h: * inspector/InspectorFrontend.cpp: (WebCore::InspectorFrontend::didGetScriptSource): * inspector/InspectorFrontend.h: * inspector/front-end/InspectorBackendStub.js: (.WebInspector.InspectorBackendStub.prototype.editScriptSource): (.WebInspector.InspectorBackendStub.prototype.getScriptSource): * inspector/front-end/ScriptView.js: (WebInspector.ScriptView.prototype.setupSourceFrameIfNeeded): (WebInspector.ScriptView.prototype._didGetScriptSource): (WebInspector.ScriptView.prototype._sourceFrameSetupFinished): 2010-06-10 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Use allowRequestIfNoIllegalURICharacters instead of context for XSSAuditor::canLoadExternalScriptFromSrc https://bugs.webkit.org/show_bug.cgi?id=40404 We originally added the context parameter to canLoadExternalScriptFromSrc to work around some false positives caused by folks checking external script URLs on the server. Our thought was that we could tell these were not real XSS attacks because the surrounding context wouldn't match in the URL and the document. Implementing this feature in the HTML5 parser is hard because it pierces a layer of abstraction (the token abstraction of the input stream). We could hack this into the new parser, but instead I think it's better to switch to using the allowRequestIfNoIllegalURICharacters heuristic. We designed the allowRequestIfNoIllegalURICharacters after the context heuristic to deal with other cases where the server was validating input before echoing it. However, we never tried applying it to canLoadExternalScriptFromSrc. It's possible that this will cause false positives and will need to be reverted, which is why I've left in some of the infrustructure for computing context. We don't have a good way to know if that will happen except to try. We do know, however, that this heuristic will work for the original false positives we saw. * html/HTML5Tokenizer.cpp: (WebCore::HTML5Tokenizer::shouldLoadExternalScriptFromSrc): * html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::parseTag): * page/XSSAuditor.cpp: (WebCore::XSSAuditor::canLoadExternalScriptFromSrc): * page/XSSAuditor.h: 2010-06-10 Kwang Yul Seo <skyul@company100.net> Reviewed by Kent Tamura. Add ENABLE(DATABASE) guard for DatabaseAuthorizer.cpp https://bugs.webkit.org/show_bug.cgi?id=40399 Build fix for ENABLE(DATABASE)=0. * storage/DatabaseAuthorizer.cpp: 2010-06-10 Shu Chang <chang.shu@nokia.com> Reviewed by Kenneth Rohde Christiansen. Change the type of ShadowBlur from int to float in GraphicsContext. Using int for ShadowBlur loses precision and fails the test. Note: This code change fixes Qt port but Mac is still failing due to platform issue. Function CGContextSetShadowWithColor() does not take a blur value less than 0.5. https://bugs.webkit.org/show_bug.cgi?id=40370 * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::setShadow): (WebCore::GraphicsContext::getShadow): * platform/graphics/GraphicsContext.h: * platform/graphics/GraphicsContextPrivate.h: * platform/graphics/cairo/FontCairo.cpp: (WebCore::Font::drawGlyphs): * platform/graphics/cairo/GraphicsContextCairo.cpp: (WebCore::GraphicsContext::calculateShadowBufferDimensions): (WebCore::drawPathShadow): (WebCore::drawBorderlessRectShadow): (WebCore::GraphicsContext::setPlatformShadow): * platform/graphics/cairo/ImageCairo.cpp: (WebCore::BitmapImage::draw): * platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::GraphicsContext::setPlatformShadow): * platform/graphics/chromium/FontChromiumWin.cpp: (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::drawGlyphs): (WebCore::Font::drawComplexText): * platform/graphics/gtk/FontGtk.cpp: (WebCore::Font::drawComplexText): * platform/graphics/haiku/GraphicsContextHaiku.cpp: (WebCore::GraphicsContext::setPlatformShadow): * platform/graphics/mac/FontMac.mm: (WebCore::Font::drawGlyphs): * platform/graphics/openvg/GraphicsContextOpenVG.cpp: (WebCore::GraphicsContext::setPlatformShadow): * platform/graphics/qt/FontQt.cpp: (WebCore::Font::drawComplexText): * platform/graphics/qt/GraphicsContextQt.cpp: (WebCore::GraphicsContext::drawRect): (WebCore::GraphicsContext::drawLine): (WebCore::GraphicsContext::strokeArc): (WebCore::GraphicsContext::drawConvexPolygon): (WebCore::drawFilledShadowPath): (WebCore::GraphicsContext::strokePath): (WebCore::drawBorderlessRectShadow): (WebCore::GraphicsContext::setPlatformShadow): * platform/graphics/qt/ImageQt.cpp: (WebCore::BitmapImage::draw): * platform/graphics/skia/GraphicsContextSkia.cpp: (WebCore::GraphicsContext::setPlatformShadow): * platform/graphics/skia/SkiaFontWin.cpp: (WebCore::windowsCanHandleDrawTextShadow): * platform/graphics/win/FontCGWin.cpp: (WebCore::drawGDIGlyphs): (WebCore::Font::drawGlyphs): * platform/graphics/wince/GraphicsContextWince.cpp: (WebCore::GraphicsContext::fillRoundedRect): (WebCore::GraphicsContext::setPlatformShadow): (WebCore::GraphicsContext::drawText): * platform/graphics/wx/GraphicsContextWx.cpp: (WebCore::GraphicsContext::setPlatformShadow): 2010-06-10 Yael Aharon <yael.aharon@nokia.com> Reviewed by Kenneth Rohde Christiansen. Support for loading notification icons https://bugs.webkit.org/show_bug.cgi?id=40396 Make notification objects download the icon needed for displaying the notification before calling the NotificationPresenter to display the notification. An error during the download would cause the notification to be displayed without an icon. If a notification is in the process of download, and a new notification is created with the same ReplaceId, the download is not cancelled immediately and the notification is removed only after the download is complete. Tests: http/tests/notifications/icon-does-not-exist.html http/tests/notifications/icon-exists-cancel.html http/tests/notifications/icon-exists-show-alert-during-load.html http/tests/notifications/icon-exists.html http/tests/notifications/icon-requires-auth.html * notifications/Notification.cpp: (WebCore::Notification::Notification): (WebCore::Notification::~Notification): (WebCore::Notification::show): (WebCore::Notification::cancel): (WebCore::Notification::startLoading): (WebCore::Notification::stopLoading): (WebCore::Notification::didReceiveResponse): (WebCore::Notification::didReceiveData): (WebCore::Notification::didFinishLoading): (WebCore::Notification::didFail): (WebCore::Notification::didFailRedirectCheck): (WebCore::Notification::didReceiveAuthenticationCancellation): (WebCore::Notification::finishLoading): * notifications/Notification.h: (WebCore::Notification::iconData): (WebCore::Notification::releaseIconData): (WebCore::Notification::): 2010-06-10 Raine Makelainen <raine.makelainen@nokia.com> Reviewed by Kenneth Rohde Christiansen. Impossible to set input method hints based HTML5 input types https://bugs.webkit.org/show_bug.cgi?id=40107 Helper methods for checking "tel", "number", "email", and "url" input element types. * html/HTMLInputElement.h: (WebCore::HTMLInputElement::isTelephoneField): (WebCore::HTMLInputElement::isNumberField): (WebCore::HTMLInputElement::isEmailField): (WebCore::HTMLInputElement::isUrlField): 2010-06-10 Daniel Cheng <dcheng@chromium.org> Reviewed by Jian Li. Don't convert filenames to URLs in edit drags. https://bugs.webkit.org/show_bug.cgi?id=38826 For security reasons, we don't want to expose file system paths to web content, so we filter them out of edit drags. Test: editing/pasteboard/file-drag-to-editable.html * page/DragController.cpp: (WebCore::documentFragmentFromDragData): * platform/DragData.h: (WebCore::DragData::): * platform/android/DragDataAndroid.cpp: (WebCore::DragData::containsURL): (WebCore::DragData::asURL): * platform/chromium/DragDataChromium.cpp: (WebCore::DragData::containsURL): (WebCore::DragData::asURL): * platform/efl/DragDataEfl.cpp: (WebCore::DragData::containsURL): (WebCore::DragData::asURL): * platform/gtk/DragDataGtk.cpp: (WebCore::DragData::containsURL): (WebCore::DragData::asURL): * platform/haiku/DragDataHaiku.cpp: (WebCore::DragData::containsURL): (WebCore::DragData::asURL): * platform/mac/DragDataMac.mm: (WebCore::DragData::containsURL): (WebCore::DragData::asURL): * platform/qt/DragDataQt.cpp: (WebCore::DragData::asPlainText): (WebCore::DragData::containsURL): (WebCore::DragData::asURL): * platform/win/ClipboardUtilitiesWin.cpp: (WebCore::getURL): (WebCore::getPlainText): * platform/win/ClipboardUtilitiesWin.h: * platform/win/ClipboardWin.cpp: (WebCore::ClipboardWin::getData): * platform/win/DragDataWin.cpp: (WebCore::DragData::containsURL): (WebCore::DragData::asURL): * platform/wince/DragDataWince.cpp: (WebCore::DragData::containsURL): (WebCore::DragData::asURL): * platform/wx/DragDataWx.cpp: (WebCore::DragData::containsURL): (WebCore::DragData::asURL): 2010-06-10 Mike Belshe <mbelshe@chromium.org> Reviewed by David Levin Track whether a resource is loaded via a proxy. https://bugs.webkit.org/show_bug.cgi?id=40312 * platform/network/chromium/ResourceResponse.h: (WebCore::ResourceResponse::wasFetchedViaProxy): (WebCore::ResourceResponse::setWasFetchedViaProxy): 2010-06-10 Jungshik Shin <jshin@chromium.org> Reviewed by Kent Tamura Bug 38224 - [chromium] Enable rendering of Ethiopic, Lao, Tibetan and a few other scripts on Win XP https://bugs.webkit.org/show_bug.cgi?id=38224 Make it possible to specify a list of fonts for per-script fallback instead of a single font per script. This is necessary for Malayalam (for which Windows font doesn't support Unicode 5.x fully on Vista or earlier), Ethiopic (we want to support on XP with a 3rd party font because XP doesn't have any Ethiopic font out of the box) and some other scripts. This is a short-term 'fix' until we have per-script font preferences. No layout test is added because the test results would be dependent on which fonts are present. * platform/graphics/chromium/FontUtilsChromiumWin.cpp: (WebCore::): (WebCore::FontMap::ScriptToFontFamilies::): 2010-06-09 Andrei Popescu <andreip@google.com> Reviewed by Adam Barth. CodeGeneratorJS.pm incorrectly increments $paramIndex when a method is declared with [CallWith] https://bugs.webkit.org/show_bug.cgi?id=40372 Use two variables to keep track of the number of arguments passed from JavaScript vs the number of arguments passed to the corresponding C++ method. These numbers can be different since the parameter declared via [CallWith] is generated in the bindings instead of being passed from JavaScript. Test: storage/indexeddb/idb-objectstore-request.html * bindings/scripts/CodeGeneratorJS.pm: * bindings/scripts/test/CPP/WebDOMTestObj.cpp: (WebDOMTestObj::withScriptExecutionContext): * bindings/scripts/test/CPP/WebDOMTestObj.h: * bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndArg): (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndOptionalArg): (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndUserGesture): (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndUserGestureASAD): 2010-06-09 MORITA Hajime <morrita@google.com> Reviewed by Kent Tamura. Refactoring: Simple shadow elements should be factored out . https://bugs.webkit.org/show_bug.cgi?id=40400 Pulled ShadowElement class up from SliderThumbElement, ProgressValueElement, ShadowInputElement. And renamed ProgressValueElement to ShadowBlockElement. No new tests. Because there is no functional change. * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * rendering/RenderFileUploadControl.cpp: * rendering/RenderProgress.cpp: (WebCore::RenderProgress::updateValuePartState): * rendering/RenderProgress.h: * rendering/RenderSlider.cpp: (WebCore::SliderThumbElement::SliderThumbElement): (WebCore::SliderThumbElement::defaultEventHandler): (WebCore::SliderThumbElement::detach): * rendering/ShadowElement.cpp: Added. (WebCore::ShadowBlockElement::create): (WebCore::ShadowBlockElement::ShadowBlockElement): (WebCore::ShadowInputElement::create): (WebCore::ShadowInputElement::ShadowInputElement): * rendering/ShadowElement.h: Added. (WebCore::ShadowElement::ShadowElement): (WebCore::ShadowElement::isShadowNode): (WebCore::ShadowElement::shadowParentNode): 2010-06-10 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. Reduce FrameView.h includes to speed up build times https://bugs.webkit.org/show_bug.cgi?id=40408 Another fix for Qt. * page/Frame.h: - Include CSSMutableStyleDeclaration.h since it's used by m_typingStyle = 0; 2010-06-10 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. Reduce FrameView.h includes to speed up build times https://bugs.webkit.org/show_bug.cgi?id=40408 More attempted build fixes for Tiger and Qt. * page/Frame.cpp: * page/Frame.h: 2010-06-10 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. Reduce FrameView.h includes to speed up build times https://bugs.webkit.org/show_bug.cgi?id=40408 Add a few more RenderLayer.h includes to fix non-mac builds. * page/FrameView.cpp: * rendering/RenderObject.cpp: * rendering/RenderTreeAsText.cpp: 2010-06-10 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. Reduce FrameView.h includes to speed up build times https://bugs.webkit.org/show_bug.cgi?id=40408 Cleaned up FrameView.h includes and then propagated the cascade of includes to the necessary .cpp files. This should reduce the set of files rebuilt every time FrameView.h changes, and should also reduce the size of some .o files. No functional changes, thus no tests. * accessibility/AccessibilityRenderObject.cpp: * dom/ContainerNode.cpp: * dom/Document.cpp: * dom/Element.cpp: * dom/EventTarget.h: * dom/Node.cpp: * editing/EditorCommand.cpp: * editing/SelectionController.cpp: * html/HTML5Tokenizer.cpp: (WebCore::HTML5Tokenizer::script): - No need for this to be inline. Being inline required Frame.h in the header, which causes huge include cascade. * html/HTML5Tokenizer.h: * page/DragController.cpp: * page/EventHandler.cpp: * page/Frame.h: * page/FrameView.h: * page/PrintContext.cpp: * page/SpatialNavigation.cpp: * rendering/RenderBlock.cpp: * rendering/RenderBlockLineLayout.cpp: * rendering/RenderImage.cpp: * rendering/RenderInline.cpp: * rendering/RenderObject.h: * rendering/RenderTextControlSingleLine.cpp: * rendering/RenderWidget.cpp: * rendering/SVGRenderSupport.cpp: 2010-06-10 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Move HTML5 entity parser to its own file https://bugs.webkit.org/show_bug.cgi?id=40406 Moving this algorithm to its own file better encapsulates its dependencies and makes it callable from other parts of WebCore. * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * html/HTML5EntityParser.cpp: Copied from WebCore/html/HTML5Lexer.cpp. (WebCore::): (WebCore::consumeHTML5Entity): * html/HTML5EntityParser.h: Copied from WebCore/html/HTML5Lexer.h. * html/HTML5Lexer.cpp: (WebCore::HTML5Lexer::processEntity): (WebCore::HTML5Lexer::nextToken): * html/HTML5Lexer.h: 2010-06-09 Tony Gentilcore <tonyg@chromium.org> Reviewed by Adam Barth. HTML5 Parser: Fix fast/profiler tests that depend on event handler line numbers https://bugs.webkit.org/show_bug.cgi?id=40393 This emulated the old behavior in HTMLTokenizer:processToken() No new tests because covered by: - fast/profiler/dead-time.html - fast/profiler/inline-event-handler.html - fast/profiler/stop-profiling-after-setTimeout.html - fast/profiler/throw-exception-from-eval.html * html/HTML5Tokenizer.cpp: (WebCore::HTML5Tokenizer::pumpLexer): 2010-06-09 Alexey Proskuryakov <ap@apple.com> Reviewed by Dan Bernstein. https://bugs.webkit.org/show_bug.cgi?id=9504 img tag rewritten by innerHTML doesn't use image map Test: fast/dom/replaced-image-map.html * html/HTMLMapElement.cpp: (WebCore::HTMLMapElement::~HTMLMapElement): Destructor is not a good place to make changes that affect page behavior, because destructors are called by garbage collector. Don't undregister the image map from here. (WebCore::HTMLMapElement::parseMappedAttribute): Only tell document about the map if it's actually in document. A map in a detached subtree isn't used by Firefox at least. (WebCore::HTMLMapElement::insertedIntoDocument): Register the map. (WebCore::HTMLMapElement::removedFromDocument): Unregister the map. * html/HTMLMapElement.h: Added insertedIntoDocument/removedFromDocument overrides. 2010-06-09 Roland Steiner <rolandsteiner@chromium.org> Reviewed by Ojan Vafai. Bug 35632 - htmlediting.cpp : isEmptyTableCell() is incomplete https://bugs.webkit.org/show_bug.cgi?id=35632 Correct isEmptyTableCell to check for the presence of other renderer children. Test: editing/deleting/delete-br-in-last-table-cell.html * editing/htmlediting.cpp: (WebCore::isEmptyTableCell): 2010-06-09 Qi Zhang <qi.2.zhang@nokia.com> Reviewed by Laszlo Gombos. [Qt] Failed at http://philip.html5.org/tests/canvas/suite/tests/2d.path.arcTo.transformation.html https://bugs.webkit.org/show_bug.cgi?id=38598 In path transform function handle path only have moveElement case. * platform/graphics/qt/PathQt.cpp: (WebCore::Path::transform): 2010-06-09 Anton Muhin <antonm@chromium.org> Reviewed by Nate Chapin. [v8] First phase of switching to new named property query API https://bugs.webkit.org/show_bug.cgi?id=40303 To allow better management of attributes of intercepted properties, we're starting to switch to new named property query API which now could return attributes instead of simple property present/absent flag. The next step would remove USE_NEW_QUERY_CALLBACK, then v8 would have them enabled by default. * bindings/scripts/CodeGeneratorV8.pm: * bindings/v8/NPV8Object.cpp: * bindings/v8/ScriptArray.cpp: * bindings/v8/ScriptCallStack.cpp: * bindings/v8/SerializedScriptValue.cpp: * bindings/v8/V8Binding.cpp: * bindings/v8/V8DOMWrapper.cpp: * bindings/v8/V8GCController.cpp: * bindings/v8/V8IsolatedContext.cpp: * bindings/v8/V8NPObject.cpp: (WebCore::npObjectQueryProperty): * bindings/v8/V8Proxy.cpp: * bindings/v8/custom/V8PopStateEventCustom.cpp: * bindings/v8/custom/V8StorageCustom.cpp: (WebCore::V8Storage::namedPropertyQuery): * config.h: 2010-06-09 Steve Block <steveblock@google.com> Reviewed by Jeremy Orlow. Need to include V8Proxy.h in V8 generated bindings for toV8Context() https://bugs.webkit.org/show_bug.cgi?id=40290 No new tests, build fix only. * bindings/scripts/CodeGeneratorV8.pm: 2010-06-09 Jarkko Sakkinen <jarkko.j.sakkinen@gmail.com> Reviewed by Kenneth Rohde Christiansen. WebGL rendering context does not activate unless accelerated compositing is enabled from settings. https://bugs.webkit.org/show_bug.cgi?id=37772 * html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::getContext): 2010-06-09 Yong Li <yoli@rim.com> Reviewed by George Staikos. https://bugs.webkit.org/show_bug.cgi?id=40252 Make image down-sampling threshold runtime adjustable. No new test needed. * platform/graphics/ImageSource.cpp: (WebCore::ImageSource::setData): * platform/graphics/ImageSource.h: (WebCore::ImageSource::maxPixelsPerDecodedImage): (WebCore::ImageSource::setMaxPixelsPerDecodedImage): 2010-06-09 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Fix handling of bytes received from the network while in document.write https://bugs.webkit.org/show_bug.cgi?id=40356 The old tokenizer has specially logic for handling the case of receiving bytes from the network while in a nested call to document.write. This patch implements similar logic for the HTML5 tokenizer. Also, this patch abstracts the tricky shuffling of SegmentedStrings behind a simple API. I'm not sure how to trigger this case. My guess is we can trigger it using a nested event loop, e.g., via alert(), but I'm not sure how to test that in a LayoutTest. There don't appear to be any LayoutTests that currently test this behavior despite it being present in the old tokenizer. * html/HTML5Tokenizer.cpp: (WebCore::HTML5Tokenizer::pumpLexer): (WebCore::HTML5Tokenizer::write): - Added a branch for the |append| argument. (WebCore::HTML5Tokenizer::end): (WebCore::HTML5Tokenizer::finish): (WebCore::HTML5Tokenizer::executeScript): - Switch over to using a RAII pattern for recording and restoring insertion points. * html/HTML5Tokenizer.h: (WebCore::HTML5Tokenizer::InputStream::InputStream): (WebCore::HTML5Tokenizer::InputStream::appendToEnd): (WebCore::HTML5Tokenizer::InputStream::insertAtCurrentInsertionPoint): (WebCore::HTML5Tokenizer::InputStream::close): - Putting the close() method on InputStream makes it much easier to handle EOF. We now just close the last buffer in the stream when the network says it's done. (WebCore::HTML5Tokenizer::InputStream::current): - This class could be moved to its own file, but it shouldn't be used outside of the tokenizer. (WebCore::HTML5Tokenizer::InsertionPointRecord::InsertionPointRecord): (WebCore::HTML5Tokenizer::InsertionPointRecord::~InsertionPointRecord): - A simple RAII class for managing saved insertion points. * platform/text/SegmentedString.cpp: (WebCore::SegmentedString::operator=): - Fix a related bug where m_closed was not being copied properly in the assignment operator. 2010-06-09 Tony Gentilcore <tonyg@chromium.org> Reviewed by Adam Barth. Fix fast/parser/hex-entities-length.html for HTML5 parser https://bugs.webkit.org/show_bug.cgi?id=40385 Stripping surrogate pair values appears to be a problem with the spec in "Preprocessing the input stream." Minefield doesn't appear to implement the part in question. So this patch removes that guard and adds a FIXME to track the issue. No new tests because covered by fast/parser/hex-entities-length.html * html/HTML5Lexer.h: (WebCore::HTML5Lexer::InputStreamPreprocessor::peek): 2010-06-09 Kenneth Russell <kbr@google.com> Reviewed by Dimitri Glazkov. Update readPixels to take ArrayBufferView rather than returning it https://bugs.webkit.org/show_bug.cgi?id=40322 No new tests; covered by existing tests, which have been modified. * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::readPixels): * html/canvas/WebGLRenderingContext.h: * html/canvas/WebGLRenderingContext.idl: 2010-06-09 Enrico Ros <eros@codeaurora.org> Reviewed by Ariya Hidayat. Fix drawing zero-sized gradients on Canvas. https://bugs.webkit.org/show_bug.cgi?id=40340 HTML5 draft says that nothing must be painted if the gradient start point equals the stop point. This commit fixes the following canvas test: http://philip.html5.org/tests/canvas/suite/tests/2d.gradient.interpolate.zerosize.html * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::fillRect): skip zero-sized linear gradients * platform/graphics/Gradient.h: (WebCore::Gradient::isRadial): made public (WebCore::Gradient::isZeroSize): true if start == stop 2010-06-09 Leandro Pereira <leandro@profusion.mobi> Reviewed by Adam Treat. [EFL] Allow building core libraries as shared objects to speed up linking time on machines with small amounts of memory. http://webkit.org/b/39899 * CMakeLists.txt: If building with shared core, install the lib. Remove npapi.cpp (causes conflicts when linking dynamically). * CMakeListsEfl.txt: EFL libraries are needed to link dynamically. 2010-06-09 Mark Rowe <mrowe@apple.com> Reviewed by Adele Peterson. <rdar://problem/8070662> REGRESSION (r51629): WebBackForwardList created via -init crashes when -addItem: is called. A WebBackForwardList created via -init results in a BackForwardList being created with a null m_page. BackForwardList needs to be careful not to dereference m_page without first ensuring it's not null. * history/BackForwardList.cpp: (WebCore::BackForwardList::addItem): Null-check m_page. (WebCore::BackForwardList::goBack): Ditto. (WebCore::BackForwardList::goForward): Ditto. (WebCore::BackForwardList::goToItem): Ditto. (WebCore::BackForwardList::setCapacity): Ditto. 2010-06-09 Kwang Yul Seo <skyul@company100.net> Reviewed by Kent Tamura. [BREWMP] Add dummy Context Menu implementation https://bugs.webkit.org/show_bug.cgi?id=40223 Brew MP does not use Context Menu. Add dummy implementation. * platform/brew/ContextMenuBrew.cpp: Added. (WebCore::ContextMenu::ContextMenu): (WebCore::ContextMenu::~ContextMenu): (WebCore::ContextMenu::itemCount): (WebCore::ContextMenu::insertItem): (WebCore::ContextMenu::appendItem): (WebCore::ContextMenu::itemWithAction): (WebCore::ContextMenu::itemAtIndex): (WebCore::ContextMenu::setPlatformDescription): (WebCore::ContextMenu::platformDescription): (WebCore::ContextMenu::releasePlatformDescription): * platform/brew/ContextMenuItemBrew.cpp: Added. (WebCore::ContextMenuItem::ContextMenuItem): (WebCore::ContextMenuItem::~ContextMenuItem): (WebCore::ContextMenuItem::releasePlatformDescription): (WebCore::ContextMenuItem::type): (WebCore::ContextMenuItem::action): (WebCore::ContextMenuItem::title): (WebCore::ContextMenuItem::platformSubMenu): (WebCore::ContextMenuItem::setType): (WebCore::ContextMenuItem::setAction): (WebCore::ContextMenuItem::setTitle): (WebCore::ContextMenuItem::setSubMenu): (WebCore::ContextMenuItem::setChecked): (WebCore::ContextMenuItem::setEnabled): (WebCore::ContextMenuItem::enabled): 2010-06-09 Kwang Yul Seo <skyul@company100.net> Reviewed by Kent Tamura. [BREWMP] Port Clipboard https://bugs.webkit.org/show_bug.cgi?id=35734 Add dummy Clipboard. * platform/brew/ClipboardBrew.cpp: Added. (WebCore::ClipboardBrew::ClipboardBrew): (WebCore::ClipboardBrew::~ClipboardBrew): (WebCore::ClipboardBrew::clearData): (WebCore::ClipboardBrew::clearAllData): (WebCore::ClipboardBrew::getData): (WebCore::ClipboardBrew::setData): (WebCore::ClipboardBrew::types): (WebCore::ClipboardBrew::files): (WebCore::ClipboardBrew::setDragImage): (WebCore::ClipboardBrew::setDragImageElement): (WebCore::ClipboardBrew::createDragImage): (WebCore::ClipboardBrew::declareAndWriteDragImage): (WebCore::ClipboardBrew::writeURL): (WebCore::ClipboardBrew::writeRange): (WebCore::ClipboardBrew::writePlainText): (WebCore::ClipboardBrew::hasData): * platform/brew/ClipboardBrew.h: Added. 2010-06-09 Anders Bakken <agbakken@gmail.com> Reviewed by David Levin. [Qt] ClipboardQt.cpp has coding-style errors https://bugs.webkit.org/show_bug.cgi?id=39781 * platform/qt/ClipboardQt.cpp: (WebCore::ClipboardQt::declareAndWriteDragImage): 2010-06-09 Kenneth Russell <kbr@google.com> Reviewed by Dimitri Glazkov. Rename FloatArray to Float32Array https://bugs.webkit.org/show_bug.cgi?id=40323 Used do-webcore-rename to perform renaming. Manually undid incorrect changes to WebCore/bridge/jni/jsc/JNIBridgeJSC.cpp, WebCore/manual-tests/resources/ArrayParameterTestApplet.java and ArrayParameterTestApplet.class. Updated LayoutTests. Built and ran all layout tests on Safari; built Chromium and ran selected WebGL tests. * CMakeLists.txt: * DerivedSources.make: * GNUmakefile.am: * WebCore.gypi: * WebCore.pri: * WebCore.pro: * WebCore.xcodeproj/project.pbxproj: * bindings/generic/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::float32ArrayEnabled): * bindings/js/JSArrayBufferViewCustom.cpp: (WebCore::toJS): * bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::float32Array): (WebCore::JSDOMWindow::webGLFloatArray): * bindings/js/JSFloat32ArrayConstructor.cpp: Copied from WebCore/bindings/js/JSFloatArrayConstructor.cpp. (WebCore::): (WebCore::JSFloat32ArrayConstructor::JSFloat32ArrayConstructor): (WebCore::constructCanvasFloatArray): (WebCore::JSFloat32ArrayConstructor::getConstructData): * bindings/js/JSFloat32ArrayConstructor.h: Copied from WebCore/bindings/js/JSFloatArrayConstructor.h. * bindings/js/JSFloat32ArrayCustom.cpp: Copied from WebCore/bindings/js/JSFloatArrayCustom.cpp. (WebCore::JSFloat32Array::indexSetter): (WebCore::toJS): (WebCore::JSFloat32Array::set): * bindings/js/JSFloatArrayConstructor.cpp: Removed. * bindings/js/JSFloatArrayConstructor.h: Removed. * bindings/js/JSFloatArrayCustom.cpp: Removed. * bindings/js/JSWebGLRenderingContextCustom.cpp: (WebCore::dataFunctionf): (WebCore::dataFunctionMatrix): * bindings/v8/custom/V8ArrayBufferViewCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8DOMWindowCustom.cpp: (WebCore::V8DOMWindow::WebGLFloatArrayAccessorGetter): * bindings/v8/custom/V8Float32ArrayCustom.cpp: Copied from WebCore/bindings/v8/custom/V8FloatArrayCustom.cpp. (WebCore::V8Float32Array::constructorCallback): (WebCore::V8Float32Array::setCallback): (WebCore::toV8): * bindings/v8/custom/V8FloatArrayCustom.cpp: Removed. * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp: (WebCore::vertexAttribAndUniformHelperf): (WebCore::uniformMatrixHelper): * html/canvas/Float32Array.cpp: Copied from WebCore/html/canvas/FloatArray.cpp. (WebCore::Float32Array::create): (WebCore::Float32Array::Float32Array): (WebCore::Float32Array::slice): * html/canvas/Float32Array.h: Copied from WebCore/html/canvas/FloatArray.h. * html/canvas/Float32Array.idl: Copied from WebCore/html/canvas/FloatArray.idl. * html/canvas/FloatArray.cpp: Removed. * html/canvas/FloatArray.h: Removed. * html/canvas/FloatArray.idl: Removed. * html/canvas/WebGLGetInfo.cpp: (WebCore::WebGLGetInfo::WebGLGetInfo): (WebCore::WebGLGetInfo::getWebGLFloatArray): * html/canvas/WebGLGetInfo.h: * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::getUniform): (WebCore::WebGLRenderingContext::getVertexAttrib): (WebCore::WebGLRenderingContext::uniform1fv): (WebCore::WebGLRenderingContext::uniform2fv): (WebCore::WebGLRenderingContext::uniform3fv): (WebCore::WebGLRenderingContext::uniform4fv): (WebCore::WebGLRenderingContext::uniformMatrix2fv): (WebCore::WebGLRenderingContext::uniformMatrix3fv): (WebCore::WebGLRenderingContext::uniformMatrix4fv): (WebCore::WebGLRenderingContext::vertexAttrib1fv): (WebCore::WebGLRenderingContext::vertexAttrib2fv): (WebCore::WebGLRenderingContext::vertexAttrib3fv): (WebCore::WebGLRenderingContext::vertexAttrib4fv): (WebCore::WebGLRenderingContext::getWebGLFloatArrayParameter): * html/canvas/WebGLRenderingContext.h: * html/canvas/WebGLRenderingContext.idl: * page/DOMWindow.idl: * platform/graphics/GraphicsContext3D.h: * platform/graphics/mac/GraphicsContext3DMac.cpp: * platform/graphics/qt/GraphicsContext3DQt.cpp: 2010-06-09 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. HTML5 Parser needs to integrate with the XSSAuditor https://bugs.webkit.org/show_bug.cgi?id=40287 This fixes most of the XSSAuditor tests, except for the ones which rely on the srcValue "context". The previous HTMLTokenizer implementation was both Lexer and ScriptRunner and thus could provide the XSSAuditor with the un-modified attribute source. This naive implementation will fail the context-sensitive tests but Adam Barth says he'll just have to find a new way to provide the required information to the XSSAuditor in a later patch. Covered by numerous http/tests/security/xssAuditor tests. * html/HTML5ScriptRunner.cpp: (WebCore::HTML5ScriptRunner::requestScript): - Ask the HTML5ScriptRunner host before running any scripts. * html/HTML5ScriptRunnerHost.h: - Add a shouldLoadExternalScriptFromSrc declaration. * html/HTML5Tokenizer.cpp: (WebCore::HTML5Tokenizer::shouldLoadExternalScriptFromSrc): - Ask the XSSAuditor if we're allowed to run the passed script. * html/HTML5Tokenizer.h: 2010-06-09 Tony Gentilcore <tonyg@chromium.org> Reviewed by Adam Barth. Fix script-after-frameset test in HTML5 parser https://bugs.webkit.org/show_bug.cgi?id=40274 The old HTMLTokenizer enforced this in scriptHandler(). We don't use that code anymore, so it needs to be implemented. The spec does this as a part of "insertion mode"->"after frameset", so this adds an InsertionMode enum instead of a one-off boolean. No new tests because covered by fast/tokenizer/script-after-frameset.html * html/HTML5TreeBuilder.cpp: (WebCore::HTML5TreeBuilder::HTML5TreeBuilder): (WebCore::HTML5TreeBuilder::passTokenToLegacyParser): * html/HTML5TreeBuilder.h: (WebCore::HTML5TreeBuilder::): (WebCore::HTML5TreeBuilder::setInsertionMode): (WebCore::HTML5TreeBuilder::insertionMode): 2010-06-09 Kwang Yul Seo <skyul@company100.net> Reviewed by Kent Tamura. [BREWMP] Add EventLoop https://bugs.webkit.org/show_bug.cgi?id=39401 BREW MP does not have an explicit event loop. Add dummy EventLoop::cycle. * platform/brew/EventLoopBrew.cpp: Added. (WebCore::EventLoop::cycle): 2010-06-09 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r60889. http://trac.webkit.org/changeset/60889 https://bugs.webkit.org/show_bug.cgi?id=40365 gtk bot has some kind of memory corruption (Requested by loislo on #webkit). * inspector/InspectorClient.h: * inspector/InspectorController.cpp: (WebCore::InspectorController::setFrontend): * inspector/InspectorController.h: * inspector/InspectorFrontend.cpp: (WebCore::InspectorFrontend::InspectorFrontend): * inspector/InspectorFrontend.h: * inspector/InspectorFrontendClientLocal.cpp: (WebCore::InspectorFrontendClientLocal::frontendLoaded): * inspector/InspectorValues.cpp: (WebCore::InspectorObject::writeJSON): * inspector/front-end/inspector.js: * loader/EmptyClients.h: 2010-06-09 Kent Tamura <tkent@chromium.org> Reviewed by Eric Carlson. [Windows] Build fix on Japanese Windows https://bugs.webkit.org/show_bug.cgi?id=40358 cl.exe on Japanese Windows assumes files with invalid CP932 sequences broken and doesn't build them at all. * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp: Remove non-ASCII characters * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h: ditto. * platform/graphics/win/WKCAImageQueue.cpp: ditto. * platform/graphics/win/WKCAImageQueue.h: ditto. 2010-06-09 Pavel Podivilov <podivilov@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: Add isDebuggerAlwaysEnabled method to ScriptDebugServer. This method returns true if debugger should always be enabled when frontend is attached. https://bugs.webkit.org/show_bug.cgi?id=40289 * bindings/js/ScriptDebugServer.cpp: (WebCore::ScriptDebugServer::isDebuggerAlwaysEnabled): * bindings/js/ScriptDebugServer.h: * bindings/v8/ScriptDebugServer.cpp: (WebCore::ScriptDebugServer::isDebuggerAlwaysEnabled): * bindings/v8/ScriptDebugServer.h: * inspector/InspectorController.cpp: (WebCore::InspectorController::setFrontend): 2010-06-07 Ilya Tikhonovsky <loislo@chromium.org> Reviewed by Pavel Feldman. WebInspector: On the way to Remote Debugging we want to transfer dom/timeline/etc data from inspected page to WebInspector as JSON string via http. The native serialization to JSON string is supported by InspectorValue's classes. This patch has the implementation of sendMessageToFrontend function. WebKit version of it still uses ScriptFunctionCall and will be switched to another transport a little bit later. https://bugs.webkit.org/show_bug.cgi?id=40134 * inspector/InspectorClient.h: * inspector/InspectorController.cpp: (WebCore::InspectorController::connectFrontend): (WebCore::InspectorController::disconnectFrontend): * inspector/InspectorController.h: * inspector/InspectorFrontend.cpp: (WebCore::InspectorFrontend::InspectorFrontend): * inspector/InspectorFrontend.h: * inspector/InspectorFrontendClientLocal.cpp: (WebCore::InspectorFrontendClientLocal::frontendLoaded): * inspector/InspectorValues.cpp: (WebCore::InspectorObject::writeJSON): * inspector/front-end/inspector.js: (WebInspector.dispatchMessageToFrontend): * loader/EmptyClients.h: (WebCore::EmptyInspectorClient::sendMessageToFrontend): 2010-06-09 Csaba Osztrogonác <ossy@webkit.org> Reviewed by Dirk Schulze. [Qt] Imperfect dependency for generated SVGNames.cpp https://bugs.webkit.org/show_bug.cgi?id=40359 * WebCore.pri: Missing dependency added. 2010-06-08 Dirk Schulze <krit@webkit.org> Reviewed by Nikolas Zimmermann. Implement non-scaling-stroke (from SVG Tiny 1.2, also in Opera) https://bugs.webkit.org/show_bug.cgi?id=31438 This is the implementation of the SVG property vector-effect according to the specification of SVG Tiny 1.2. getScreenCTM() was not able to calculate the transformation matrix in comparison to the host coordinate system for objects, that get refereced by a use element. This is fixed and covered by the the new test as well. This patch is based upon a patch of Jeff Schiller. Test: svg/custom/non-scaling-stroke.svg * css/CSSComputedStyleDeclaration.cpp: Added CSSPropertyVectorEffect. (WebCore::): * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): (WebCore::CSSPrimitiveValue::operator EVectorEffect): * css/SVGCSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue): * css/SVGCSSParser.cpp: (WebCore::CSSParser::parseSVGValue): * css/SVGCSSPropertyNames.in: * css/SVGCSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applySVGProperty): * css/SVGCSSValueKeywords.in: Add vector-effect value non-scaling-stroke. * rendering/RenderPath.cpp: Revert transformations to ctm and transform path instead. (WebCore::fillAndStrokePath): * rendering/RenderSVGResourceContainer.h: (WebCore::RenderSVGResourceContainer::transformOnNonScalingStroke): * rendering/RenderSVGResourceGradient.cpp: Transform the gradient with the screenCTM. (WebCore::RenderSVGResourceGradient::applyResource): * rendering/RenderSVGResourcePattern.cpp: Transform the pattern with the screenCTM. (WebCore::RenderSVGResourcePattern::applyResource): * rendering/style/SVGRenderStyle.h: Added vector-effect property, not interited. (WebCore::SVGRenderStyle::NonInheritedFlags::): (WebCore::SVGRenderStyle::setBitDefaults): * rendering/style/SVGRenderStyleDefs.h: Added enums for vector-effect. (WebCore::): * svg/SVGLocatable.cpp: Calculate screenCTM for <use> referenced objects. (WebCore::SVGLocatable::computeCTM): * svg/SVGStyledElement.cpp: (WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName): * svg/svgattrs.in: 2010-06-08 Mark Rowe <mrowe@apple.com> Reviewed by Adele Peterson. <rdar://problem/8072136> REGRESSION (r56051): Inspect Element context menu does nothing in applications linked against 10.4 SDK Revert the change to ContextMenu::addInspectElementItem from r56051. It was made without explanation and broke a reliance that WebKit has on the presence of a separator before the Inspect Element menu item. This also restores the context menu item to the correct location at the bottom of the context menu in applications built against the Mac OS X 10.4 SDK. * platform/ContextMenu.cpp: (WebCore::ContextMenu::addInspectElementItem): 2010-06-08 Roland Steiner <rolandsteiner@chromium.org> Unreviewed build fix Bug 38145 - Validate *tex* functions input parameters according to ES2 conformance https://bugs.webkit.org/show_bug.cgi?id=38145 https://bugs.webkit.org/show_bug.cgi?id=40346 Fix for 38145 broke the build ('log2 not found' on Windows), the fix from 40346 also didn't catch ('log ambiguous'). 2nd quick fix: add explicit casts to double and use double constants. No new tests. * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::validateTexFuncParameters): 2010-05-18 Yuzo Fujishima <yuzo@google.com> Reviewed by Shinichiro Hamaji. Fix for Bug 34529 - [CSSOM] issues with cssText and selectorText Serialize selector as per http://dev.w3.org/csswg/cssom/#serializing-selectors Without this patch, for example, selectors containing ':' or '.' are not properly serialized. https://bugs.webkit.org/show_bug.cgi?id=34529 Test: fast/css/selector-text-escape.html * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * css/CSSOMUtils.cpp: Added. (WebCore::appendCharacter): (WebCore::serializeCharacter): (WebCore::serializeCharacterAsCodePoint): (WebCore::serializeIdentifier): (WebCore::serializeString): * css/CSSOMUtils.h: Added. * css/CSSSelector.cpp: (WebCore::CSSSelector::selectorText): 2010-06-08 Ryosuke Niwa <rniwa@webkit.org> Reviewed by Justin Garcia InsertListCommand needs cleanup https://bugs.webkit.org/show_bug.cgi?id=36430 Separated code for listifying and unlistifying paragraphs. Also isolated the dependency on the selection in doApply. No test is added since this is a cleanup. * editing/InsertListCommand.cpp: (WebCore::InsertListCommand::doApply): isolated code to listify / unlistify paragraphs (WebCore::InsertListCommand::unlistifyParagraph): ditto (WebCore::InsertListCommand::listifyParagraph): ditto * editing/InsertListCommand.h: 2010-06-08 Kenneth Russell <kbr@google.com> Unreviewed, build fix. Fix build breakage from 38145 https://bugs.webkit.org/show_bug.cgi?id=40346 The fix for bug 38145 broke the Chromium Win build because Microsoft's cmath doesn't define log2. Suggested fix by zmo is to change log2(x) to log(x) / log(2). Built and ran WebGL layout tests in Safari on Mac OS X. Changed download mirrors for python-irclib to working ones. * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::validateTexFuncParameters): 2010-06-08 Zhenyao Mo <zmo@google.com> Reviewed by Dimitri Glazkov. Validate *tex* functions input parameters according to ES2 conformance https://bugs.webkit.org/show_bug.cgi?id=38145 Test: fast/canvas/webgl/tex-input-validation.html * html/canvas/WebGLFramebuffer.cpp: (WebCore::WebGLFramebuffer::getColorBufferFormat): Get color buffer internalformat. * html/canvas/WebGLFramebuffer.h: Ditto. * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::WebGLRenderingContext): Deal with max tex units and max texture size. (WebCore::WebGLRenderingContext::copyTexImage2D): Validate input parameters. (WebCore::WebGLRenderingContext::copyTexSubImage2D): Ditto. (WebCore::WebGLRenderingContext::texImage2DBase): Ditto. (WebCore::WebGLRenderingContext::texParameterf): Ditto. (WebCore::WebGLRenderingContext::texParameteri): Ditto. (WebCore::WebGLRenderingContext::texSubImage2DBase): Ditto. (WebCore::WebGLRenderingContext::handleNPOTTextures): Deal with max tex units. (WebCore::WebGLRenderingContext::isTexInternalformatColorBufferCombinationValid): Check whether the texture format and framebuffer color buffer internalformat combination is valid. (WebCore::WebGLRenderingContext::getTextureBinding): get the current bound texture for given target. (WebCore::WebGLRenderingContext::validateTexFuncFormatAndType): Validate input format/type for *tex* functions. (WebCore::WebGLRenderingContext::validateTexFuncParameters): Validate input parameters for *tex* functions. (WebCore::WebGLRenderingContext::texParameter): Base function for texParameteri and texParameterf. * html/canvas/WebGLRenderingContext.h: Deal with max tex units. * html/canvas/WebGLTexture.cpp: (WebCore::WebGLTexture::WebGLTexture): Cache internalformat. * html/canvas/WebGLTexture.h: Ditto. (WebCore::WebGLTexture::setInternalformat): (WebCore::WebGLTexture::getInternalformat): * platform/graphics/GraphicsContext3D.cpp: internalformat and format need to be the same. (WebCore::GraphicsContext3D::extractImageData): 2010-06-08 Erik Arvidsson <arv@chromium.org> Reviewed by Ojan Vafai. REGRESSION: Weird focus behavior affects quoting on University of Washington message board system https://bugs.webkit.org/show_bug.cgi?id=38548 Test: editing/selection/click-in-focusable-link-should-not-clear-selection.html * page/FocusController.cpp: (WebCore::clearSelectionIfNeeded): Make sure we do not clear selection when canStartSelection returns false. 2010-06-08 Enrico Ros <eros@codeaurora.org> Reviewed by Ariya Hidayat. [Qt] Crashfix on Path::contains https://bugs.webkit.org/show_bug.cgi?id=40253 Fix accessing the first item of an empty vector, that happens when CanvasRenderingContext2D::isPointInPath is invoked over a borderless path (e.g. a path made of just a MoveTo operation). * platform/graphics/qt/PathQt.cpp: (WebCore::isPointOnPathBorder): 2010-06-08 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r60859. http://trac.webkit.org/changeset/60859 https://bugs.webkit.org/show_bug.cgi?id=40334 Included debugging statements. Caused a test to fail. (Requested by ojan on #webkit). * page/FocusController.cpp: (WebCore::clearSelectionIfNeeded): 2010-06-08 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r60858. http://trac.webkit.org/changeset/60858 https://bugs.webkit.org/show_bug.cgi?id=40325 Qt needs a clean build. Rolling out the patch for now and fix it tomorrow (Requested by krit on #webkit). * css/CSSComputedStyleDeclaration.cpp: (WebCore::): * css/CSSPrimitiveValueMappings.h: * css/SVGCSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue): * css/SVGCSSParser.cpp: (WebCore::CSSParser::parseSVGValue): * css/SVGCSSPropertyNames.in: * css/SVGCSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applySVGProperty): * css/SVGCSSValueKeywords.in: * rendering/RenderPath.cpp: (WebCore::fillAndStrokePath): * rendering/RenderSVGResourceContainer.h: * rendering/RenderSVGResourceGradient.cpp: (WebCore::RenderSVGResourceGradient::applyResource): * rendering/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::applyResource): * rendering/style/SVGRenderStyle.h: (WebCore::SVGRenderStyle::NonInheritedFlags::): (WebCore::SVGRenderStyle::setBitDefaults): * rendering/style/SVGRenderStyleDefs.h: (WebCore::): * svg/SVGLocatable.cpp: (WebCore::SVGLocatable::computeCTM): * svg/SVGStyledElement.cpp: (WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName): * svg/svgattrs.in: 2010-06-08 Daniel Bates <dbates@rim.com> Unreviewed, fix Xcode project file after change-set 60841. Xcode is not happy about the entries for files EditingBehavior.h and EditingBehaviorTypes.h that were added in change-set 60841 (Bug # 39854). Lets make Xcode happy. Also, lets place these entries in alphabetic order. * WebCore.xcodeproj/project.pbxproj: 2010-06-08 Erik Arvidsson <arv@chromium.org> Reviewed by Ojan Vafai. REGRESSION: Weird focus behavior affects quoting on University of Washington message board system https://bugs.webkit.org/show_bug.cgi?id=38548 We should not clear the selection when canStartSelection returns false. Test: editing/selection/click-in-focusable-link-should-not-clear-selection.html * page/FocusController.cpp: (WebCore::clearSelectionIfNeeded): Make sure we do not clear selection when canStartSelection returns false. 2010-06-08 Dirk Schulze <krit@webkit.org> Reviewed by Nikolas Zimmermann. Implement non-scaling-stroke (from SVG Tiny 1.2, also in Opera) https://bugs.webkit.org/show_bug.cgi?id=31438 This is the implementation of the SVG property vector-effect according to the specification of SVG Tiny 1.2. getScreenCTM() was not able to calculate the transformation matrix in comparison to the host coordinate system for objects, that get refereced by a use element. This is fixed and covered by the the new test as well. This patch is based upon a patch of Jeff Schiller. Test: svg/custom/non-scaling-stroke.svg * css/CSSComputedStyleDeclaration.cpp: Added CSSPropertyVectorEffect. (WebCore::): * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): (WebCore::CSSPrimitiveValue::operator EVectorEffect): * css/SVGCSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue): * css/SVGCSSParser.cpp: (WebCore::CSSParser::parseSVGValue): * css/SVGCSSPropertyNames.in: * css/SVGCSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applySVGProperty): * css/SVGCSSValueKeywords.in: Add vector-effect value non-scaling-stroke. * rendering/RenderPath.cpp: Revert transformations to ctm and transform path instead. (WebCore::fillAndStrokePath): * rendering/RenderSVGResourceContainer.h: (WebCore::RenderSVGResourceContainer::transformOnNonScalingStroke): * rendering/RenderSVGResourceGradient.cpp: Transform the gradient with the screenCTM. (WebCore::RenderSVGResourceGradient::applyResource): * rendering/RenderSVGResourcePattern.cpp: Transform the pattern with the screenCTM. (WebCore::RenderSVGResourcePattern::applyResource): * rendering/style/SVGRenderStyle.h: Added vector-effect property, not interited. (WebCore::SVGRenderStyle::NonInheritedFlags::): (WebCore::SVGRenderStyle::setBitDefaults): * rendering/style/SVGRenderStyleDefs.h: Added enums for vector-effect. (WebCore::): * svg/SVGLocatable.cpp: Calculate screenCTM for <use> referenced objects. (WebCore::SVGLocatable::computeCTM): * svg/SVGStyledElement.cpp: (WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName): * svg/svgattrs.in: 2010-06-08 Alexey Proskuryakov <ap@apple.com> * GNUmakefile.am: Also adding platform/Cursor.cpp to Gtk build. 2010-06-08 Csaba Osztrogonác <ossy@webkit.org> [Qt] Unreviewed buildfix after r60849. * WebCore.pro: platform/Cursor.cpp is added to Qt build system. 2010-06-08 Kenneth Rohde Christiansen <kenneth.christiansen@openbossa.org> Unreviewed Buildbot fix. Reset the Qt TextBreakIterator when reusing it. * platform/text/qt/TextBreakIteratorQt.cpp: (WebCore::setUpIterator): 2010-06-04 Alexey Proskuryakov <ap@apple.com> Reviewed by John Sullivan. https://bugs.webkit.org/show_bug.cgi?id=15779 <rdar://problem/8002964> Custom CSS .cur cursor anchor point is ignored Test: manual-tests/cur-hotspot.html Currently, this patch only has effect in Safari 5 on Windows. Other platforms will need to implement getting hot spot information from .cur files. * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: Added Cursor.cpp. Looks like TextWrangler fixed line endings in vcproj file. * css/CSSCursorImageValue.cpp: (WebCore::CSSCursorImageValue::CSSCursorImageValue): Renamed "hotspot" to "hotSpot" to match other code. (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed): Ditto. Added a FIXME about possibly incorrect code for resolving differences with CSS specified hotspot. * css/CSSCursorImageValue.h: (WebCore::CSSCursorImageValue::create): (WebCore::CSSCursorImageValue::hotSpot): Renamed "hotspot" to "hotSpot" to match other code. * css/CSSParser.cpp: (WebCore::CSSParser::parseValue): Start with an invalid value for hot spot, so that we can differentiate between missing and (0, 0) CSS hot spots. Missing and invalid (-1, -1) are treated identically by Firefox, so we don't need to differentiate these. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): Renamed "hotspot" to "hotSpot" to match other code. * page/EventHandler.cpp: (WebCore::EventHandler::selectCursor): Don't ignore cursors with invalid CSS hot spots. Firefox ignores only the hot spot, not the whole cursor in this case (and IE doesn't support CSS3 cursor declarations). * platform/Cursor.cpp: Added. (WebCore::determineHotSpot): Added a function that decides where hot spot is, provided an image and a possible out of band coordinate specification. * platform/Cursor.h: Added determineHotSpot(). * platform/graphics/BitmapImage.cpp: (WebCore::BitmapImage::getHotSpot): * platform/graphics/BitmapImage.h: * platform/graphics/Image.h: (WebCore::Image::getHotSpot): * platform/graphics/ImageSource.cpp: (WebCore::ImageSource::getHotSpot): * platform/graphics/ImageSource.h: Added plumbing to get hot spot data from an image provider. * platform/graphics/cg/ImageSourceCG.cpp: (WebCore::ImageSource::getHotSpot): CG implemantation. * platform/mac/CursorMac.mm: (WebCore::createCustomCursor): Call determineHotSpot() to determine where hot spot should be. (WebCore::Cursor::Cursor): Renamed "hotspot" to "hotSpot" to match other code. * platform/win/CursorWin.cpp: (WebCore::Cursor::Cursor): Call determineHotSpot() to determine where hot spot should be. * platform/gtk/CursorGtk.cpp: (WebCore::Cursor::Cursor): Ditto. This must be done despite this platform not having an implementation for ImageSource::getHotSpot(), because we no longer check for out of bounds hot spots in EventHandler::selectCursor(). * platform/qt/CursorQt.cpp: (WebCore::Cursor::Cursor): Ditto. 2010-06-08 Kenneth Rohde Christiansen <kenneth.christiansen@openbossa.org> Reviewed by Antti Koivisto. [Qt] TextBreakIterator Qt performance https://bugs.webkit.org/show_bug.cgi?id=39958 Rework TextBreakIteratorQt to be more in line with the ICU version. We now reuse iterators where ever possible. The string data is compared with memcmp, which should be faster than using a hash, as you need to traverse the full buffer in the case the strings don't match, where as the compare would fail quickly. * platform/text/qt/TextBreakIteratorQt.cpp: (WebCore::TextBreakIterator::TextBreakIterator): (WebCore::setUpIterator): (WebCore::wordBreakIterator): (WebCore::characterBreakIterator): (WebCore::lineBreakIterator): (WebCore::sentenceBreakIterator): 2010-06-08 Andras Becsi <abecsi@webkit.org> Unreviewed build fix after r60785. [GTK] Add missing GtkVersioning.h include to fix the build on older GTK+ versions. No new tests needed. * platform/gtk/WidgetGtk.cpp: 2010-06-08 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. Web Inspector: extend ScriptDebugServer to support script source editing https://bugs.webkit.org/show_bug.cgi?id=40297 * bindings/js/ScriptDebugServer.cpp: (WebCore::ScriptDebugServer::editScriptSource): * bindings/js/ScriptDebugServer.h: * bindings/v8/ScriptDebugServer.cpp: (WebCore::ScriptDebugServer::editScriptSource): * bindings/v8/ScriptDebugServer.h: * inspector/InspectorBackend.cpp: (WebCore::InspectorBackend::editScriptSource): * inspector/InspectorBackend.h: * inspector/InspectorBackend.idl: * inspector/InspectorController.cpp: (WebCore::InspectorController::InspectorController): (WebCore::InspectorController::disableDebugger): (WebCore::InspectorController::editScriptSource): (WebCore::InspectorController::currentCallFrames): (WebCore::InspectorController::didPause): (WebCore::InspectorController::didContinue): * inspector/InspectorController.h: * inspector/InspectorFrontend.cpp: (WebCore::InspectorFrontend::didEditScriptSource): * inspector/InspectorFrontend.h: * inspector/front-end/Script.js: * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype.canEditScripts): (WebInspector.ScriptsPanel.prototype.editScriptSource.mycallback): (WebInspector.ScriptsPanel.prototype.editScriptSource): * inspector/front-end/Settings.js: * inspector/front-end/SourceView.js: (WebInspector.SourceView.prototype._editLine): * inspector/front-end/TextViewer.js: (WebInspector.TextViewer.prototype._handleDoubleClick): (WebInspector.TextViewer.prototype._commitEditingLine): * inspector/front-end/inspector.css: (#scripts-files option.extension-script): 2010-06-08 Antonio Gomes <tonikitoo@webkit.org> Reviewed by Ojan Vafai and Darin Adler. Refactor platform dependent editing behavior code out of Settings https://bugs.webkit.org/show_bug.cgi?id=39854 As per discussion in bug 36627, Darin Adler suggested: "before the addition of any new EditingBehavior, I think we to add functions to translate the overall behavior policy into specific behaviors rather than directly saying 'behavior == Mac' or 'behavior == Windows'. Helper functions that expression the different rules in plain language.". Patch addresses this request. No behavior change, so no new tests. * GNUmakefile.am: * WebCore.pro: * WebCore/WebCore.vcproj/WebCore.vcproj * WebCore/WebCore.xcodeproj/project.pbxproj * page/Settings.cpp: (WebCore::Settings::Settings): * page/Settings.h: Moved out EditingBehavior enum to WebCore/editing/EditingBehaviorTypes.h, and renamed to EditingBehaviorTypes. (WebCore::Settings::setEditingBehaviorType): Renamed from setEditingBehavior. (WebCore::Settings::editingBehaviorType): Renamed from editingBehavior. * editing/EditingBehavior.h: Added. (WebCore::EditingBehavior::EditingBehavior): Class to work as a central point for editing behavior that might have to be handled differently in the different platforms/ports. Class should be not used or instantiated directly, but rather implicitly constructed through the Editor class. (WebCore::EditingBehavior::shouldMoveCaretToHorizontalBoundaryWhenPastTopOrBottom): (WebCore::EditingBehavior::shouldConsiderSelectionAsDirectional): (WebCore::EditingBehavior::shouldCenterAlignWhenSelectionIsRevealed): * editing/EditingBehaviorTypes.h: Added. (WebCore::): * editing/Editor.cpp: (WebCore::Editor::behavior): Getter for EditingBehavior class. * editing/Editor.h: * editing/EditorCommand.cpp: (WebCore::executeToggleStyle): * editing/SelectionController.cpp: (WebCore::SelectionController::setSelection): (WebCore::SelectionController::setIsDirectional): (WebCore::SelectionController::positionForPlatform): (WebCore::SelectionController::modify): * page/EventHandler.cpp: (WebCore::EventHandler::handleMousePressEventSingleClick): * rendering/RenderBlock.cpp: (WebCore::RenderBlock::positionForPointWithInlineChildren): - Call sites will look like: if (frame->editor()->behavior().shouldThisIfThat())) // do something 2010-06-08 Steve Block <steveblock@google.com> Reviewed by Jeremy Orlow. Prevent Geolocation making callbacks to a ScriptExecutionContext that no longer exists https://bugs.webkit.org/show_bug.cgi?id=40162 Before making callbacks, we check that the relevant ScriptExecutionContext still exists. To achieve this, the callbacks inherit from ActiveDOMObject. The ScriptExecutionContext is ref'ed from script, so may not be GC'ed for some time after it is disconnected from its frame. Making the callback currently involves accessing the Frame, so an additional check for the Frame is required. This change also prevents the V8 bindings from incorrectly holding a reference to the Frame. Test: fast/dom/Geolocation/callback-to-deleted-context.html * bindings/js/JSCallbackData.cpp: (WebCore::JSCallbackData::invokeCallback): * bindings/js/JSCustomPositionCallback.cpp: (WebCore::JSCustomPositionCallback::JSCustomPositionCallback): (WebCore::JSCustomPositionCallback::handleEvent): * bindings/js/JSCustomPositionErrorCallback.cpp: (WebCore::JSCustomPositionErrorCallback::JSCustomPositionErrorCallback): (WebCore::JSCustomPositionErrorCallback::handleEvent): * bindings/v8/custom/V8CustomPositionCallback.cpp: (WebCore::V8CustomPositionCallback::V8CustomPositionCallback): (WebCore::V8CustomPositionCallback::handleEvent): * bindings/v8/custom/V8CustomPositionCallback.h: (WebCore::V8CustomPositionCallback::create): * bindings/v8/custom/V8CustomPositionErrorCallback.cpp: (WebCore::V8CustomPositionErrorCallback::V8CustomPositionErrorCallback): (WebCore::V8CustomPositionErrorCallback::handleEvent): * bindings/v8/custom/V8CustomPositionErrorCallback.h: (WebCore::V8CustomPositionErrorCallback::create): * bindings/v8/custom/V8GeolocationCustom.cpp: (WebCore::createPositionCallback): (WebCore::createPositionErrorCallback): * page/PositionCallback.h: (WebCore::PositionCallback::PositionCallback): * page/PositionErrorCallback.h: (WebCore::PositionErrorCallback::PositionErrorCallback): 2010-06-08 Xan Lopez <xlopez@igalia.com> Reviewed by Gustavo Noronha. [GTK] Avoid duplicated signals in DOM bindings https://bugs.webkit.org/show_bug.cgi?id=40170 Do not create duplicated event signals between a class and its ancestor. * bindings/scripts/CodeGeneratorGObject.pm: 2010-06-08 MORITA Hajime <morrita@google.com> Unreviewd. Touched the file to force rebuild. * html/HTMLMeterElement.idl: 2010-06-08 Vangelis Kokkevis <vangelis@chromium.org> Reviewed by Dimitri Glazkov. [Chromium] Fix the math for transform matrices of composited layers. There were problems both with how content layers were setting their position and how the overal matrix stack was computed when the layer anchor isn't at the center of the layer. https://bugs.webkit.org/post_bug.cgi * platform/graphics/chromium/GraphicsLayerChromium.cpp: (WebCore::GraphicsLayerChromium::updateContentsRect): * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::updateLayersRecursive): (WebCore::LayerRendererChromium::drawLayer): 2010-06-07 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. HTML5Lexer does not handle <div FOO ><img><img></div> correctly https://bugs.webkit.org/show_bug.cgi?id=40283 Fix a typo in the AfterAttributeNameState. The compiler really should have caught this since the typo resulted in unreachable code. Tests: 10 tables/mozilla/marvin/colgroup* tests. Also added a new sub-test in html5lib/resources/webkit01.dat * html/HTML5Lexer.cpp: (WebCore::HTML5Lexer::nextToken): - Fix typo of = instead of > 2010-06-08 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Implement HTML5's forceQuirks flag https://bugs.webkit.org/show_bug.cgi?id=40284 I didn't implement this before because I didn't know how to test it, but now I do. Tests: * fast/doctypes/doctype-parsing.html. When we actually implement the quirks mode handling in the tree builder, we'll probably want to add to this test. * html/HTML5Lexer.cpp: (WebCore::HTML5Lexer::nextToken): * html/HTML5Token.h: (WebCore::HTML5Token::forceQuirks): (WebCore::HTML5Token::setForceQuirks): * html/HTML5TreeBuilder.cpp: (WebCore::HTML5TreeBuilder::passTokenToLegacyParser): * html/HTMLParser.cpp: (WebCore::HTMLParser::parseDoctypeToken): * html/HTMLTokenizer.h: (WebCore::DoctypeToken::reset): 2010-06-08 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Remove ASSERT in ~HTML5Tokenizer https://bugs.webkit.org/show_bug.cgi?id=40282 We thought this ASSERT would be a good idea, but the problem is that this object is deleted without warning in some circumstances, so there's no way to know whether it has reached the end of its state machine. * html/HTML5Tokenizer.cpp: (WebCore::HTML5Tokenizer::~HTML5Tokenizer): 2010-06-07 MORITA Hajime <morrita@google.com> Reviewed by Kent Tamura. [Mac] <meter> elements should be rendered as level indicators. https://bugs.webkit.org/show_bug.cgi?id=40217 Implemented RenderThemeMac::paintMeter() using NSLevelIndicatorCell. This change also added new -webkit-appearance values to select the style of level indicators: - relevancy-level-indicator, - continuous-capacity-level-indicator, - discrete-capacity-level-indicator, and - rating-level-indicator. The size of elements are adjusted based on the bounds of the indicator to make room for painting whole indicator cells. Tests: fast/dom/HTMLMeterElement/meter-appearances-capacity.html fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy.html fast/dom/HTMLMeterElement/meter-optimums.html * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): * css/CSSValueKeywords.in: * html/HTMLMeterElement.cpp: (WebCore::HTMLMeterElement::gaugeRegion): * html/HTMLMeterElement.h: (WebCore::HTMLMeterElement::): * platform/ThemeTypes.h: (WebCore::): * rendering/RenderMeter.cpp: (WebCore::RenderMeter::calcWidth): (WebCore::RenderMeter::calcHeight): * rendering/RenderMeter.h: * rendering/RenderTheme.cpp: (WebCore::RenderTheme::adjustStyle): (WebCore::RenderTheme::paint): (WebCore::RenderTheme::paintBorderOnly): (WebCore::RenderTheme::paintDecorations): (WebCore::RenderTheme::meterSizeForBounds): * rendering/RenderTheme.h: * rendering/RenderThemeMac.h: * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::meterSizeForBounds): (WebCore::RenderThemeMac::paintMeter): (WebCore::RenderThemeMac::levelIndicatorStyleFor): (WebCore::RenderThemeMac::levelIndicatorFor): 2010-06-07 MORITA Hajime <morrita@google.com> Reviewed by Kent Tamura. [Mac] ENABLE_METER_TAG should be enabled. https://bugs.webkit.org/show_bug.cgi?id=40219 * Configurations/FeatureDefines.xcconfig: * WebCore.xcodeproj/project.pbxproj: 2010-06-07 Eric Seidel <eric@webkit.org> Unreviewed. Just commit an edit Xcode keeps making automatically. It appears someone hand-edited the file, Xcode no-like. * WebCore.xcodeproj/project.pbxproj: 2010-06-07 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. HTML5 Parser fails script-tests which use document.write https://bugs.webkit.org/show_bug.cgi?id=40276 We were leaving the TreeBuilder paused when executing the scripts resulting in document.write() calls being ignored. I don't see a good way to ASSERT this correct behavior, since the HTML5ScriptRunner and the HTML5TreeBuilder do not know about each other. We should never have document.write() called while the HTML5TreeBuilder is paused, however both document.write and the network call the same HTML5Tokenizer::write method. It's OK to be paused when the network writes, but during document.write (or any other script execution). Tested by all of fast/url and numerous other tests. * html/HTML5Tokenizer.cpp: (WebCore::HTML5Tokenizer::notifyFinished): - Unpause the treebuilder before executing scripts. (WebCore::HTML5Tokenizer::executeScriptsWaitingForStylesheets): - Unpause the treebuilder before executing scripts. 2010-06-07 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. HTML5 Parser hits ASSERT in fast/events/stop-load-in-unload-handler-using-document-write.html https://bugs.webkit.org/show_bug.cgi?id=40268 Teach HTML5Tokenizer about m_parserStopped. While tracking down how m_parserStopped was used, I found several useless implementations of stopParsing() which I removed. I also found a comment in HTMLTokenizer which still talks about the "part" (an old class now split into Frame, Page, FrameLoader, etc.) and an nearly empty FrameLoader::tokenizerProcessedData which I just inlined into its one caller. Tests: fast/events/stop-load-in-unload-handler-using-document-write.html http/tests/security/xssAuditor/full-block-base-href.html * html/HTML5Tokenizer.cpp: (WebCore::HTML5Tokenizer::pumpLexerIfPossible): - New method used instead of direct calls to pumpLexer for when callers would like to pump the lexer if possible, but don't want to check if the parser is stopped, etc. (WebCore::HTML5Tokenizer::pumpLexer): - Added an ASSERT that the parser is not stopped. - Stop pumping if the parser is stopped. (WebCore::HTML5Tokenizer::write): - Ignore the write if the parser is already stopped. (WebCore::HTML5Tokenizer::end): (WebCore::HTML5Tokenizer::attemptToEnd): - Move comment back to finish() which was incorrectly moved here. (WebCore::HTML5Tokenizer::endIfDelayed): (WebCore::HTML5Tokenizer::finish): - Move comment back here from attemptToEnd() (WebCore::HTML5Tokenizer::resumeParsingAfterScriptExecution): - Remove a bogus ASSERT. The lexer will stop when it needs more data, which may not necessarily mean m_source.isEmpty(). * html/HTML5Tokenizer.h: - Add pumpLexerIfPossible(). * html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::stopParsing): - Add a FIXME about if we really should call checkCompleted() here. - Inline FrameLoader::tokenizerProcessedData() since this was the only caller. * loader/FrameLoader.cpp: - Remove tokenizerProcessedData() * loader/FrameLoader.h: - Remove tokenizerProcessedData() * loader/MediaDocument.cpp: - Remove unneeded Tokenizer::stopParsing() override. * loader/PluginDocument.cpp: - Remove unneeded Tokenizer::stopParsing() override. * loader/SinkDocument.cpp: - Remove unneeded Tokenizer::stopParsing() override. 2010-06-07 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Fix XFrameOptions and xssAuditor crashes in HTML5 parser https://bugs.webkit.org/show_bug.cgi?id=40265 We're not supposed to call end() while the tokenizer's write() method. This causes a bunch of LayoutTests to crash. In particular, this patch fixes crashes in the following tests: Tests: * http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body.html * http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny.html * http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag.html * http/tests/security/xssAuditor/full-block-base-href.html * http/tests/security/xssAuditor/full-block-get-from-iframe.html * http/tests/security/xssAuditor/full-block-iframe-javascript-url.html * http/tests/security/xssAuditor/full-block-link-onclick.html * http/tests/security/xssAuditor/full-block-post-from-iframe.html * http/tests/security/xssAuditor/full-block-script-tag.html * http/tests/security/xssAuditor/xss-protection-parsing-01.html * html/HTML5Tokenizer.cpp: (WebCore::): (WebCore::HTML5Tokenizer::HTML5Tokenizer): (WebCore::HTML5Tokenizer::write): (WebCore::HTML5Tokenizer::attemptToEnd): (WebCore::HTML5Tokenizer::endIfDelayed): (WebCore::HTML5Tokenizer::finish): (WebCore::HTML5Tokenizer::resumeParsingAfterScriptExecution): * html/HTML5Tokenizer.h: (WebCore::HTML5Tokenizer::inWrite): 2010-06-07 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. HTML5 parser hits ASSERT in http/tests/misc/window-dot-stop.html https://bugs.webkit.org/show_bug.cgi?id=40264 * html/HTML5Tokenizer.cpp: (WebCore::HTML5Tokenizer::executeScript): 2010-06-07 Kinuko Yasuda <kinuko@chromium.org> Unreviewed. Avoid "warning: no previous prototype for" in Snow Leopard compilation. * platform/BlobItem.cpp: Added static to getFileSnapshotModificationTime(). 2010-06-07 Kinuko Yasuda <kinuko@chromium.org> Reviewed by Jian Li. Refactor FormData and Blob for better support of Blobs synthesized by BlobBuilder. https://bugs.webkit.org/show_bug.cgi?id=39083 - Introduces a new class BlobItem as a basic component of Blob and FormDataList. - File would become a special type of Blob that contains only one FileBlobItem. - Fix the dependency violation in FormData so that the files under platform/ do not include any html/ files. The patch doesn't support the latest File API changes (e.g. type, url and slice's type parameters) and should not change any of its existing behaviors. The existing tests should be able to be used for regression. * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * html/Blob.cpp: (WebCore::Blob::Blob): (WebCore::Blob::size): (WebCore::Blob::path): (WebCore::Blob::append): (WebCore::Blob::slice): * html/Blob.h: (WebCore::Blob::create): (WebCore::Blob::type): (WebCore::Blob::items): (WebCore::Blob::Blob): * html/File.cpp: (WebCore::File::File): (WebCore::File::name): * html/File.h: (WebCore::File::fileName): * html/FileReader.cpp: (WebCore::FileReader::readAsBinaryString): (WebCore::FileReader::readAsText): * html/FileStream.cpp: (WebCore::FileStream::openForRead): * html/FormDataList.cpp: (WebCore::FormDataList::appendString): Moved the line ending fix logic to StringBlobItem::convertToCString. (WebCore::FormDataList::appendBlob): * html/FormDataList.h: (WebCore::FormDataList::items): * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::createFormData): * html/HTMLProgressElement.cpp: * platform/BlobItem.cpp: Added. * platform/BlobItem.h: Added. * platform/network/FormData.cpp: (WebCore::FormDataElement::FormDataElement): (WebCore::FormData::create): (WebCore::FormData::createMultiPart): (WebCore::FormData::deepCopy): (WebCore::FormData::appendData): (WebCore::FormData::appendString): (WebCore::FormData::appendFile): (WebCore::FormData::appendFileRange): (WebCore::FormData::appendItems): (WebCore::FormData::appendItem): (WebCore::FormData::appendKeyValuePairItems): * platform/network/FormData.h: (WebCore::operator!=): * platform/network/mac/FormDataStreamMac.mm: (WebCore::closeCurrentStream): (WebCore::advanceCurrentStream): (WebCore::formCreate): (WebCore::formRead): (WebCore::setHTTPBody): * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::send): 2010-06-07 Vangelis Kokkevis <vangelis@chromium.org> Reviewed by Dimitri Glazkov. [chromium] Decoupled transform matrix update of composited layers from drawing and interposed a sorting step so that the layers are now composited back to front to get transparency working correctly. Also added missing code for the preserves3D CSS property. * platform/graphics/chromium/GraphicsLayerChromium.cpp: (WebCore::GraphicsLayerChromium::updateLayerPreserves3D): * platform/graphics/chromium/LayerChromium.h: (WebCore::LayerChromium::setDrawTransform): (WebCore::LayerChromium::drawTransform): (WebCore::LayerChromium::setDrawOpacity): (WebCore::LayerChromium::drawOpacity): (WebCore::LayerChromium::preserves3D): * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::compareLayerZ): (WebCore::LayerRendererChromium::drawLayers): (WebCore::LayerRendererChromium::updateLayersRecursive): (WebCore::LayerRendererChromium::drawLayer): * platform/graphics/chromium/LayerRendererChromium.h: 2010-06-07 Anton Muhin <antonm@chromium.org> Reviewed by Nate Chapin. [Chromium] convert a key to AtomicString in V8NodeList::namedPropertyGetter https://bugs.webkit.org/show_bug.cgi?id=40238 Comparison to "length" below could be performed faster in this (major) case as it would only require direct pointer comparison (cf. to full text comparison if key is converted to WebCore::String.) * bindings/v8/custom/V8NodeListCustom.cpp: (WebCore::V8NodeList::namedPropertyGetter): 2010-06-07 Ariya Hidayat <ariya.hidayat@codeaurora.org> Reviewed by Kenneth Rohde Christiansen. [Qt] Fix GraphicsContext::clipOut to take the transformation matrix into account. * platform/graphics/qt/GraphicsContextQt.cpp: (WebCore::GraphicsContext::clipOut): 2010-06-07 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> Reviewed by Xan Lopez. [gtk] web fonts not loaded properly in scribd html5 reader https://bugs.webkit.org/show_bug.cgi?id=38758 Avoid always giving a positive reply in createFontPlatformData. We do not want every non-existing family name to be considered a hit, or weird usage of local sources in @font-face rules will make WebKitGTK+ never consider the online fonts. * GNUmakefile.am: * platform/graphics/cairo/FontCacheCairo.cpp: (WebCore::isWellKnownFontName): (WebCore::FontCache::createFontPlatformData): * platform/graphics/cairo/GOwnPtrCairo.cpp: Added. (WTF::FcPattern): (WTF::FcObjectSet): (WTF::FcFontSet): * platform/graphics/cairo/GOwnPtrCairo.h: Added. 2010-06-07 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. "Fix" fast/dom/stripNullFromTextNodes.html in HTML5 parser https://bugs.webkit.org/show_bug.cgi?id=40200 The proper handling of null characters is to replace them with U+FFFD. This patch "fixes" fast/dom/stripNullFromTextNodes.html in the sense that it makes it give the proper output w.r.t. HTML5. However, that doesn't match the behavior of the old parser, which just stripped the nulls. * html/HTML5Lexer.h: (WebCore::HTML5Lexer::InputStreamPreprocessor::peek): 2010-06-07 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. HTML5 parser should normalize line endings https://bugs.webkit.org/show_bug.cgi?id=40199 When reading characters from the source, we need to normalize line endings, which means treating \r as \n and folding \r\n sequences into a single \n. Doing this requires a slightly tighter pattern for advancing the source (to make sure we update our state machine correctly). Fixes fast/css/first-child-pseudo-class.html and hundreds of other LayoutTests in the HTML5 parser. * html/HTML5Lexer.cpp: (WebCore::HTML5Lexer::nextToken): * html/HTML5Lexer.h: (WebCore::HTML5Lexer::InputStreamPreprocessor::LineEndingNormalizer): - Introduced InputStreamPreprocessor to keep track of our line endings state machine. This class will grow to eventually do all the input stream preprocessing required by the HTML5 spec. (WebCore::HTML5Lexer::InputStreamPreprocessor::nextInputCharacter): - We need to be careful not to read *source more than once because we need to know whether we've transformed the character. Keeping the next input character in this state machine requires some careful coding, but seems advantageous. (WebCore::HTML5Lexer::InputStreamPreprocessor::peek): (WebCore::HTML5Lexer::InputStreamPreprocessor::advance): 2010-06-07 Andrei Popescu <andreip@google.com> Reviewed by Jeremy Orlow. run-bindings-tests results broken by Changeset 60776 https://bugs.webkit.org/show_bug.cgi?id=40230 The change to CodeGeneratorJS.pm in http://trac.webkit.org/changeset/60776/trunk/WebCore/bindings/scripts/CodeGeneratorJS.pm added the possibility to use [CallWith=ScriptExecutionContext] in idl files. Before the above change was submitted, CodeGeneratorJS.pm was modified so that native functions return EncodedJSValue instead of JSValues. This was done in http://trac.webkit.org/changeset/60631/trunk/WebCore/bindings/scripts/CodeGeneratorJS.pm This CL updates the CodeGeneratorJS.pm to correctly return an EncodedJSValue in the case where the ScriptExecutionContext pointer is 0 at the time when the native function is invoked. No new tests, just fixing run-bindings-tests. * bindings/scripts/CodeGeneratorJS.pm: * bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContext): * bindings/scripts/test/JS/JSTestObj.h: 2010-06-07 Kwang Yul Seo <skyul@company100.net> Reviewed by Eric Seidel. [BREWMP] Add dummy SearchPopupMenu implementation https://bugs.webkit.org/show_bug.cgi?id=40224 Add dummy implementation of SearchPopupMenu. * platform/brew/SearchPopupMenuBrew.cpp: Added. (WebCore::SearchPopupMenu::saveRecentSearches): (WebCore::SearchPopupMenu::loadRecentSearches): (WebCore::SearchPopupMenu::SearchPopupMenu): (WebCore::SearchPopupMenu::enabled): 2010-06-07 Julien Chaffraix <jchaffraix@webkit.org> Unreviewed, reverting my HTML comment parsing change as it breaks Gtk and Qt. * html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::parseComment): (WebCore::HTMLTokenizer::parseTag): * html/HTMLTokenizer.h: 2010-06-07 Martin Robinson <mrobinson@igalia.com> Reviewed by Oliver Hunt. [GTK] HTML5 input type=range is not drawn https://bugs.webkit.org/show_bug.cgi?id=39561 Support HTML5 range widgets. They are now drawn using the standard GTK+ theme drawing mechanism. * platform/gtk/RenderThemeGtk.cpp: (WebCore::supportsFocus): Add focus support for parts of sliders. (WebCore::setMozillaState): Add the GtkThemeWidgetType argument and honor depressed states for slider thumbs. (WebCore::paintMozillaGtkWidget): Pass in the widget type to setMozillaState. (WebCore::RenderThemeGtk::paintSliderTrack): Added. (WebCore::RenderThemeGtk::adjustSliderTrackStyle): Added. (WebCore::RenderThemeGtk::paintSliderThumb): Added. (WebCore::RenderThemeGtk::adjustSliderThumbStyle): Added. (WebCore::RenderThemeGtk::adjustSliderThumbSize): Added support for non-media sliders. * platform/gtk/RenderThemeGtk.h: Added new method declarations. 2010-06-07 Martin Robinson <mrobinson@igalia.com> Reviewed by Xan Lopez. [GTK] gtk_widget_get_window should replace widget->window https://bugs.webkit.org/show_bug.cgi?id=40180 Replace all uses of widget->window with gtk_widget_get_window. For older GTK+ versions, #define gtk_widget_get_window in GtkVersioning.h. No tests necessary as functionality has not changed. * platform/gtk/GtkPluginWidget.cpp: (WebCore::GtkPluginWidget::invalidateRect): Replace widget->window use. * platform/gtk/GtkVersioning.h: Add gtk_widget_get_window for old GTK+ versions. * platform/gtk/PlatformScreenGtk.cpp: (WebCore::getVisual): Replace widget->window use. (WebCore::screenRect): Ditto. * platform/gtk/PopupMenuGtk.cpp: (WebCore::PopupMenu::show): Ditto. * platform/gtk/WidgetGtk.cpp: (WebCore::gdkDrawable): Ditto. (WebCore::Widget::setCursor): Ditto. 2010-06-07 Nikolas Zimmermann <nzimmermann@rim.com> Reviewed by Sam Weinig. Add CPP bindings generator https://bugs.webkit.org/show_bug.cgi?id=38279 Add CPP bindings generator used in Olympia platform. We can succesfully generate cpp bindings for all IDLs except: - DOMWindow.idl / EventTarget.idl (filtered out in the IDL list in DerivedSources.make for non-jsc/v8 generators anyways, so no problem at all) - inspector/ (not needed for us at all) - svg/ (needs custom handling, related to animated attributes) All generated files are free of style issues: "Total errors found: 0 in 510 files" Not integrated in any build system so far, though I've successfully tested on Mac and inside Olympia, of course. * bindings/cpp: Added. * bindings/cpp/WebDOMCString.cpp: Added. (WebDOMCString::reset): (WebDOMCString::assign): (WebDOMCString::length): (WebDOMCString::data): (WebDOMCString::utf16): (WebDOMCString::fromUTF16): (WebDOMCString::WebDOMCString): (WebDOMCString::operator=): (WebDOMCString::operator WTF::CString): * bindings/cpp/WebDOMCString.h: Added. (WebDOMCString::~WebDOMCString): (WebDOMCString::WebDOMCString): (WebDOMCString::operator=): (WebDOMCString::isEmpty): (WebDOMCString::isNull): * bindings/cpp/WebDOMEventListenerCustom.cpp: Added. (WebDOMEventListener::handleEvent): (toWebKit): * bindings/cpp/WebDOMEventTarget.cpp: Added. (WebDOMEventTarget::WebDOMEventTargetPrivate::WebDOMEventTargetPrivate): (WebDOMEventTarget::WebDOMEventTarget): (WebDOMEventTarget::~WebDOMEventTarget): (WebDOMEventTarget::impl): (toWebCore): (toWebKit): * bindings/cpp/WebDOMEventTarget.h: Added. * bindings/cpp/WebDOMHTMLDocumentCustom.cpp: Added. (documentWrite): (WebDOMHTMLDocument::write): (WebDOMHTMLDocument::writeln): * bindings/cpp/WebDOMNodeCustom.cpp: Added. (WebDOMNode::insertBefore): (WebDOMNode::replaceChild): (WebDOMNode::removeChild): (WebDOMNode::appendChild): (WebDOMNode::addEventListener): (WebDOMNode::removeEventListener): * bindings/cpp/WebDOMObject.h: Added. (WebDOMObject::WebDOMObject): (WebDOMObject::~WebDOMObject): * bindings/cpp/WebDOMString.cpp: Added. (WebDOMString::reset): (WebDOMString::assign): (WebDOMString::length): (WebDOMString::data): (WebDOMString::utf8): (WebDOMString::fromUTF8): (WebDOMString::WebDOMString): (WebDOMString::operator=): (WebDOMString::operator WebCore::String): (WebDOMString::operator WebCore::AtomicString): (WebDOMString::equals): * bindings/cpp/WebDOMString.h: Added. (WebDOMString::~WebDOMString): (WebDOMString::WebDOMString): (WebDOMString::operator=): (WebDOMString::isEmpty): (WebDOMString::isNull): * bindings/cpp/WebExceptionHandler.cpp: Added. (globalExceptionHandler): (webInstallExceptionHandler): (webRaiseDOMException): * bindings/cpp/WebExceptionHandler.h: Added. (webDOMRaiseError): * bindings/cpp/WebNativeEventListener.cpp: Added. (WebNativeEventListener::WebNativeEventListener): (WebNativeEventListener::~WebNativeEventListener): (WebNativeEventListener::handleEvent): (WebNativeEventListener::reportError): (WebNativeEventListener::operator==): * bindings/cpp/WebNativeEventListener.h: Added. (WebNativeEventListener::create): (WebNativeEventListener::cast): * bindings/scripts/CodeGeneratorCPP.pm: Added. * bindings/scripts/test/CPP: Added. * bindings/scripts/test/CPP/WebDOMTestCallback.cpp: Added. (WebDOMTestCallback::WebDOMTestCallbackPrivate::WebDOMTestCallbackPrivate): (WebDOMTestCallback::WebDOMTestCallback): (WebDOMTestCallback::impl): (WebDOMTestCallback::~WebDOMTestCallback): (WebDOMTestCallback::callbackWithClass1Param): (WebDOMTestCallback::callbackWithClass2Param): (WebDOMTestCallback::callbackWithNonBoolReturnType): (toWebCore): (toWebKit): * bindings/scripts/test/CPP/WebDOMTestCallback.h: Added. * bindings/scripts/test/CPP/WebDOMTestInterface.cpp: Added. (WebDOMTestInterface::WebDOMTestInterfacePrivate::WebDOMTestInterfacePrivate): (WebDOMTestInterface::WebDOMTestInterface): (WebDOMTestInterface::impl): (WebDOMTestInterface::~WebDOMTestInterface): (toWebCore): (toWebKit): * bindings/scripts/test/CPP/WebDOMTestInterface.h: Added. * bindings/scripts/test/CPP/WebDOMTestObj.cpp: Added. (WebDOMTestObj::WebDOMTestObjPrivate::WebDOMTestObjPrivate): (WebDOMTestObj::WebDOMTestObj): (WebDOMTestObj::impl): (WebDOMTestObj::~WebDOMTestObj): (WebDOMTestObj::readOnlyIntAttr): (WebDOMTestObj::readOnlyStringAttr): (WebDOMTestObj::readOnlyTestObjAttr): (WebDOMTestObj::intAttr): (WebDOMTestObj::setIntAttr): (WebDOMTestObj::longLongAttr): (WebDOMTestObj::setLongLongAttr): (WebDOMTestObj::unsignedLongLongAttr): (WebDOMTestObj::setUnsignedLongLongAttr): (WebDOMTestObj::stringAttr): (WebDOMTestObj::setStringAttr): (WebDOMTestObj::testObjAttr): (WebDOMTestObj::setTestObjAttr): (WebDOMTestObj::attrWithException): (WebDOMTestObj::setAttrWithException): (WebDOMTestObj::attrWithSetterException): (WebDOMTestObj::setAttrWithSetterException): (WebDOMTestObj::attrWithGetterException): (WebDOMTestObj::setAttrWithGetterException): (WebDOMTestObj::scriptStringAttr): (WebDOMTestObj::voidMethod): (WebDOMTestObj::voidMethodWithArgs): (WebDOMTestObj::intMethod): (WebDOMTestObj::intMethodWithArgs): (WebDOMTestObj::objMethod): (WebDOMTestObj::objMethodWithArgs): (WebDOMTestObj::methodThatRequiresAllArgs): (WebDOMTestObj::methodThatRequiresAllArgsAndThrows): (WebDOMTestObj::serializedValue): (WebDOMTestObj::methodWithException): (WebDOMTestObj::addEventListener): (WebDOMTestObj::removeEventListener): (WebDOMTestObj::withDynamicFrame): (WebDOMTestObj::withDynamicFrameAndArg): (WebDOMTestObj::withDynamicFrameAndOptionalArg): (WebDOMTestObj::withScriptStateVoid): (WebDOMTestObj::withScriptStateObj): (WebDOMTestObj::withScriptStateVoidException): (WebDOMTestObj::withScriptStateObjException): (WebDOMTestObj::methodWithOptionalArg): (WebDOMTestObj::methodWithNonOptionalArgAndOptionalArg): (WebDOMTestObj::methodWithNonOptionalArgAndTwoOptionalArgs): (toWebCore): (toWebKit): * bindings/scripts/test/CPP/WebDOMTestObj.h: Added. * css/StyleSheet.idl: Export helper method isCSSStyleSheet() for cpp bindings only. * dom/CustomEvent.idl: Disabled for cpp bindings, needs arbitary input parameter handling support ('DOMObject' type). * dom/Document.idl: Ignore getCSSCanvasContext() for cpp bindings and export helper method isHTMLDocument() (cpp bindings only). * dom/Event.idl: Export isMutationEvent()/isMouseEvent()/isUIEvent() helpers for cpp bindings only. * dom/EventListener.h: Add CPPEventListenerType. * dom/Node.idl: addEventListener/removeEventListener need [Custom] flag for cpp bindings. * dom/PopStateEvent.idl: Disabled just like CustomEvent, for the same reason ("any" argument type handling). * html/HTMLCanvasElement.idl: Disable getContext() method for cpp bindings, as it's done for objc bindings. * html/HTMLDocument.idl: Add [NoCPPCustom] marker for open(), as we're just autogenerating it. * html/HTMLInputElement.idl: Disable valueAsDate() method for cpp bindings, as we're missing native 'Date' type support. * html/TextMetrics.h: Add missing PassRefPtr.h include. * html/canvas/CanvasRenderingContext2D.idl: Disable methods (setLineCap, etc..) for cpp bindings whose names clash with property setters. * page/AbstractView.idl: Rename 'Media' type to 'StyleMedia' - this should have been done before. * page/Location.idl: Disable several methods which would need a custom implementation for the cpp bindings. * page/WebKitPoint.h: Add missing PassRefPtr.h include. * storage/SQLResultSet.idl: Correct type from 'long' to 'long long', for cpp bindings only though as it wouldn't build on Chromium/V8. * workers/DedicatedWorkerContext.idl: Disable postMessage() for now when using cpp bindings, would need custom code for us. * workers/WorkerContext.idl: Hide constructors from cpp bindings. 2010-06-07 Julien Chaffraix <jchaffraix@webkit.org> Reviewed by Alexey Proskuryakov. Space should be allowed between -- and > in comment end https://bugs.webkit.org/show_bug.cgi?id=21945 Implemented the HTML comment parsing algorithm so that we match HTML5 and FF when parsing comments. Missing from this patch is the parser errors, which will be added in a follow up patch. Added tests cases for broken comments. Tests: fast/parser/broken-comment-1.html fast/parser/broken-comment-2.html fast/parser/broken-comment-3.html fast/parser/broken-comment-4.html fast/parser/broken-comment-5.html fast/parser/broken-comment-6.html fast/parser/broken-comment-in-head-1.html fast/parser/broken-comment-in-head-2.html fast/parser/broken-comment-in-head-3.html fast/parser/broken-comment-in-head-4.html fast/parser/broken-comment-in-head-5.html * html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::parseComment): Now we use a state machine that matches the HTML5 specification. (WebCore::HTMLTokenizer::emitCommentToken): This emits the comment token and keep some of the original behavior as parseComment is called in wrong context (inside a <title> for example). Added a more explicit comment about this. (WebCore::HTMLTokenizer::parseTag): Remove the handling of <!--> in quirks mode. HTML5 specifies that we should accept this in strict mode too. * html/HTMLTokenizer.h: (WebCore::HTMLTokenizer::): Added a new enum for the comment parsing state. 2010-06-07 Mahesh Kulakrni <mahesh.kulkarni@nokia.com> Reviewed by Simon Hausmann. [QT] QT_BEARER flag is not enabled on S60 properly https://bugs.webkit.org/show_bug.cgi?id=39357 enable QT_BEARER for all platform based on qtmobility + bearer module availability or for qt 4.7+ * WebCore.pri: 2010-06-07 Leon Clarke <leonclarke@google.com> Reviewed by Jeremy Orlow. Fix indexeddb idls in android makefile https://bugs.webkit.org/show_bug.cgi?id=40169 No new tests. Android-specific build fix. * Android.derived.v8bindings.mk: 2010-06-07 Andrei Popescu <andreip@google.com> Reviewed by Jeremy Orlow. [indexedDB] It is impossible to create object stores https://bugs.webkit.org/show_bug.cgi?id=40054 No new tests. Layout tests will be added separately. * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/scripts/CodeGeneratorJS.pm: * bindings/scripts/CodeGeneratorV8.pm: * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: (webkit_dom_test_obj_with_script_execution_context): * bindings/scripts/test/GObject/WebKitDOMTestObj.h: * bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::): (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContext): * bindings/scripts/test/JS/JSTestObj.h: * bindings/scripts/test/ObjC/DOMTestObj.h: * bindings/scripts/test/ObjC/DOMTestObj.mm: (-[DOMTestObj withScriptExecutionContext]): * bindings/scripts/test/TestObj.idl: * bindings/scripts/test/V8/V8TestObj.cpp: (WebCore::TestObjInternal::withScriptExecutionContextCallback): (WebCore::): * page/DOMWindow.cpp: (WebCore::DOMWindow::clear): (WebCore::DOMWindow::indexedDB): * storage/IDBCallbacks.h: * storage/IDBDatabase.h: * storage/IDBDatabaseImpl.cpp: (WebCore::IDBDatabaseImpl::createObjectStore): * storage/IDBDatabaseImpl.h: * storage/IDBDatabaseRequest.cpp: (WebCore::IDBDatabaseRequest::IDBDatabaseRequest): (WebCore::IDBDatabaseRequest::createObjectStore): * storage/IDBDatabaseRequest.h: * storage/IDBDatabaseRequest.idl: * storage/IDBObjectStore.cpp: Removed. * storage/IDBObjectStore.h: (WebCore::IDBObjectStore::~IDBObjectStore): * storage/IDBObjectStoreImpl.cpp: Added. (WebCore::IDBObjectStoreImpl::~IDBObjectStoreImpl): (WebCore::IDBObjectStoreImpl::IDBObjectStoreImpl): (WebCore::IDBObjectStoreImpl::indexNames): (WebCore::IDBObjectStoreImpl::createIndex): (WebCore::IDBObjectStoreImpl::index): (WebCore::IDBObjectStoreImpl::removeIndex): * storage/IDBObjectStoreImpl.h: Added. (WebCore::IDBObjectStoreImpl::create): (WebCore::IDBObjectStoreImpl::name): (WebCore::IDBObjectStoreImpl::keyPath): * storage/IDBObjectStoreRequest.cpp: (WebCore::IDBObjectStoreRequest::IDBObjectStoreRequest): * storage/IDBObjectStoreRequest.h: (WebCore::IDBObjectStoreRequest::create): * storage/IDBRequest.cpp: (WebCore::IDBRequest::onSuccess): * storage/IDBRequest.h: * storage/IndexedDatabaseRequest.cpp: (WebCore::IndexedDatabaseRequest::IndexedDatabaseRequest): (WebCore::IndexedDatabaseRequest::open): * storage/IndexedDatabaseRequest.h: (WebCore::IndexedDatabaseRequest::create): * storage/IndexedDatabaseRequest.idl: 2010-06-07 Nikolas Zimmermann <nzimmermann@rim.com> Not reviewed. Updated run-bindings-tests results. * bindings/scripts/test/JS/JSTestInterface.cpp: (WebCore::JSTestInterfaceConstructor::constructTestInterface): * bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::jsTestObjPrototypeFunctionVoidMethod): (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs): (WebCore::jsTestObjPrototypeFunctionIntMethod): (WebCore::jsTestObjPrototypeFunctionIntMethodWithArgs): (WebCore::jsTestObjPrototypeFunctionObjMethod): (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs): (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgs): (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows): (WebCore::jsTestObjPrototypeFunctionSerializedValue): (WebCore::jsTestObjPrototypeFunctionMethodWithException): (WebCore::jsTestObjPrototypeFunctionCustomMethod): (WebCore::jsTestObjPrototypeFunctionCustomMethodWithArgs): (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::jsTestObjPrototypeFunctionMethodWithOptionalArg): (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg): (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs): (WebCore::jsTestObjPrototypeFunctionOverloadedMethod1): (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2): (WebCore::jsTestObjPrototypeFunctionOverloadedMethod3): (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4): (WebCore::jsTestObjPrototypeFunctionOverloadedMethod): * bindings/scripts/test/JS/JSTestObj.h: 2010-06-07 Pavel Podivilov <podivilov@chromium.org> Reviewed by Pavel Feldman. Web Inspector: Implement JSON parsing for InspectorValue. https://bugs.webkit.org/show_bug.cgi?id=40064 * inspector/InspectorValues.cpp: (WebCore::): (WebCore::InspectorValue::asBool): (WebCore::InspectorValue::asNumber): (WebCore::InspectorValue::asString): (WebCore::InspectorValue::asObject): (WebCore::InspectorValue::asArray): (WebCore::InspectorValue::readJSON): (WebCore::InspectorValue::writeJSON): (WebCore::InspectorBasicValue::asBool): (WebCore::InspectorBasicValue::asNumber): (WebCore::InspectorBasicValue::writeJSON): (WebCore::InspectorString::asString): (WebCore::InspectorObject::asObject): (WebCore::InspectorObject::getBool): (WebCore::InspectorObject::getNumber): (WebCore::InspectorObject::getString): (WebCore::InspectorObject::getObject): (WebCore::InspectorObject::getArray): (WebCore::InspectorObject::get): (WebCore::InspectorArray::asArray): * inspector/InspectorValues.h: (WebCore::InspectorObject::begin): (WebCore::InspectorObject::end): 2010-06-07 Jocelyn Turcotte <jocelyn.turcotte@nokia.com> Reviewed by Simon Hausmann. [Qt] Fix text selection drawing. https://bugs.webkit.org/show_bug.cgi?id=40221 The regression was introduced in r60169. * platform/graphics/qt/FontQt.cpp: (WebCore::drawTextCommon): 2010-06-07 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. Web Inspector: should be possible to distinguish extension scripts from main world scripts https://bugs.webkit.org/show_bug.cgi?id=40220 * bindings/js/ScriptDebugServer.cpp: remove global listeners set which is not used anymore. (WebCore::ScriptDebugServer::dispatchDidParseSource): pass script wrold type to the listeners. (WebCore::currentWorldType): (WebCore::ScriptDebugServer::sourceParsed): * bindings/js/ScriptDebugServer.h: * bindings/v8/ScriptDebugServer.cpp: (WebCore::ScriptDebugServer::dispatchDidParseSource): * inspector/InspectorController.cpp: (WebCore::InspectorController::didParseSource): * inspector/InspectorController.h: * inspector/InspectorFrontend.cpp: (WebCore::InspectorFrontend::parsedScriptSource): * inspector/InspectorFrontend.h: * inspector/ScriptDebugListener.h: pass type of the isolated world where the script was compiled to didParseSource. (WebCore::): * inspector/front-end/InjectedScript.js: (injectedScriptConstructor): * inspector/front-end/Script.js: (WebInspector.Script): * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype.addScript): (WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu): use different style to highlight content scripts. * inspector/front-end/inspector.css: (#scripts-files option.extension-script): * inspector/front-end/inspector.js: (WebInspector.parsedScriptSource): 2010-06-06 MORITA Hajime <morrita@google.com> Unreviewd, Chromium windows build fix. * rendering/RenderThemeChromiumWin.cpp: (WebCore::RenderThemeChromiumWin::paintProgressBar): 2010-06-06 MORITA Hajime <morrita@google.com> Reviewed by Kent Tamura. ASSERTION FAILED with -webkit-appearance:progress-bar for non <progress> elements https://bugs.webkit.org/show_bug.cgi?id=40158 paintProgressBar() and paintMeter() assumed given RenderObject is RenderProgress or RenderMeter respectively, but arbitrary elements can have -webkit-appearance: progress-bar and such elements violates that assumption. So this change added type check before downcasting the RenderObject. * platform/qt/RenderThemeQt.cpp: (WebCore::RenderThemeQt::paintProgressBar): * rendering/RenderTheme.cpp: (WebCore::RenderTheme::paintMeter): * rendering/RenderThemeChromiumSkia.cpp: (WebCore::RenderThemeChromiumSkia::paintProgressBar): * rendering/RenderThemeChromiumWin.cpp: (WebCore::RenderThemeChromiumWin::paintProgressBar): * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::paintProgressBar): 2010-06-06 Gavin Barraclough <barraclough@apple.com> Reviewed by NOBODY (Qt build fix pt 2). * bridge/qt/qt_runtime.cpp: (JSC::Bindings::findMethodIndex): (JSC::Bindings::QtRuntimeMetaMethod::call): (JSC::Bindings::QtRuntimeConnectionMethod::call): 2010-06-06 Gavin Barraclough <barraclough@apple.com> Reviewed by NOBODY (Qt build fix). * bridge/qt/qt_runtime.cpp: (JSC::Bindings::findMethodIndex): (JSC::Bindings::QtRuntimeMetaMethod::call): (JSC::Bindings::QtRuntimeConnectionMethod::call): 2010-06-06 Gavin Barraclough <barraclough@apple.com> Reviewed by Sam Weinig. Bug 40214 - Clean up error construction / throwing in JSC. The one egregious insanity here is that creating an error requires a VM-entry-esqe-host call (the string argument is wrapped as a JS object & pushed on the RegisterFile, then unwrapped back to a UString). Changing this also means you only require a global object, not an ExecState, to create an error. The methods to create error objects are also parameterized requiring a switch on the type, which can be made cleaner and faster by moving to a separate method per error type. Code to add divot information to error had been duplicated, and is coalesced back into a single function. Convenience methods added to create & throw type & syntax error with a default error message, since this is a common case. Also, errors are currently thrown either using "throwError(exec, error)" or "exec->setException(error)" - unify on the former, since this is more commonly used. Add "throwVMError(exec, error)" equivalents, as a convenience for cases where the result was being wrapped in "JSValue::encode(...)". * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSArrayBufferConstructor.h: (WebCore::construct): * bindings/js/JSArrayBufferViewHelper.h: (WebCore::setWebGLArrayHelper): * bindings/js/JSAudioConstructor.cpp: (WebCore::constructAudio): * bindings/js/JSCanvasRenderingContext2DCustom.cpp: (WebCore::JSCanvasRenderingContext2D::setFillColor): (WebCore::JSCanvasRenderingContext2D::setStrokeColor): (WebCore::JSCanvasRenderingContext2D::drawImage): (WebCore::JSCanvasRenderingContext2D::drawImageFromRect): (WebCore::JSCanvasRenderingContext2D::setShadow): (WebCore::JSCanvasRenderingContext2D::createPattern): (WebCore::JSCanvasRenderingContext2D::fillText): (WebCore::JSCanvasRenderingContext2D::strokeText): * bindings/js/JSClipboardCustom.cpp: (WebCore::JSClipboard::clearData): (WebCore::JSClipboard::getData): (WebCore::JSClipboard::setDragImage): * bindings/js/JSDOMBinding.cpp: (WebCore::setDOMException): (WebCore::toJSSequence): * bindings/js/JSDOMWrapper.cpp: (WebCore::DOMObject::defineOwnProperty): * bindings/js/JSDesktopNotificationsCustom.cpp: (WebCore::JSNotificationCenter::requestPermission): * bindings/js/JSEventSourceConstructor.cpp: (WebCore::constructEventSource): * bindings/js/JSHTMLDocumentCustom.cpp: (WebCore::JSHTMLDocument::open): * bindings/js/JSHTMLInputElementCustom.cpp: (WebCore::JSHTMLInputElement::selectionStart): (WebCore::JSHTMLInputElement::setSelectionStart): (WebCore::JSHTMLInputElement::selectionEnd): (WebCore::JSHTMLInputElement::setSelectionEnd): (WebCore::JSHTMLInputElement::setSelectionRange): * bindings/js/JSImageConstructor.cpp: (WebCore::constructImage): * bindings/js/JSJavaScriptCallFrameCustom.cpp: (WebCore::JSJavaScriptCallFrame::evaluate): * bindings/js/JSMessageChannelConstructor.cpp: (WebCore::JSMessageChannelConstructor::construct): * bindings/js/JSMessagePortCustom.cpp: (WebCore::fillMessagePortArray): * bindings/js/JSOptionConstructor.cpp: (WebCore::constructHTMLOptionElement): * bindings/js/JSSVGMatrixCustom.cpp: (WebCore::JSSVGMatrix::multiply): * bindings/js/JSSharedWorkerConstructor.cpp: (WebCore::constructSharedWorker): * bindings/js/JSWebGLRenderingContextCustom.cpp: (WebCore::JSWebGLRenderingContext::bufferData): (WebCore::JSWebGLRenderingContext::bufferSubData): (WebCore::getObjectParameter): (WebCore::JSWebGLRenderingContext::getFramebufferAttachmentParameter): (WebCore::JSWebGLRenderingContext::getParameter): (WebCore::JSWebGLRenderingContext::getProgramParameter): (WebCore::JSWebGLRenderingContext::getShaderParameter): (WebCore::JSWebGLRenderingContext::getUniform): (WebCore::JSWebGLRenderingContext::texImage2D): (WebCore::JSWebGLRenderingContext::texSubImage2D): (WebCore::dataFunctionf): (WebCore::dataFunctioni): (WebCore::dataFunctionMatrix): * bindings/js/JSWebSocketConstructor.cpp: (WebCore::constructWebSocket): * bindings/js/JSWebSocketCustom.cpp: (WebCore::JSWebSocket::send): * bindings/js/JSWorkerConstructor.cpp: (WebCore::constructWorker): * bindings/js/JSXMLHttpRequestConstructor.cpp: (WebCore::constructXMLHttpRequest): * bindings/js/JSXMLHttpRequestCustom.cpp: (WebCore::JSXMLHttpRequest::open): * bindings/js/SerializedScriptValue.cpp: (WebCore::BaseWalker::throwStackOverflow): (WebCore::BaseWalker::throwInterruptedException): (WebCore::SerializingTreeWalker::startArray): (WebCore::SerializingTreeWalker::startObject): * bindings/js/WorkerScriptController.cpp: (WebCore::WorkerScriptController::setException): * bindings/scripts/CodeGeneratorJS.pm: * bridge/c/c_instance.cpp: (JSC::Bindings::CInstance::moveGlobalExceptionToExecState): (JSC::Bindings::CInstance::invokeMethod): (JSC::Bindings::CInstance::invokeDefaultMethod): (JSC::Bindings::CInstance::invokeConstruct): * bridge/jni/jsc/JNIBridgeJSC.cpp: (JavaField::dispatchValueFromInstance): (JavaField::dispatchSetValueToInstance): * bridge/jni/jsc/JavaInstanceJSC.cpp: (JavaInstance::invokeMethod): * bridge/objc/objc_instance.mm: (ObjcInstance::moveGlobalExceptionToExecState): (ObjcInstance::invokeMethod): * bridge/objc/objc_runtime.mm: (JSC::Bindings::ObjcField::valueFromInstance): (JSC::Bindings::ObjcField::setValueToInstance): (JSC::Bindings::ObjcArray::setValueAt): (JSC::Bindings::ObjcArray::valueAt): (JSC::Bindings::callObjCFallbackObject): * bridge/objc/objc_utility.h: * bridge/objc/objc_utility.mm: (JSC::Bindings::throwError): * bridge/runtime_array.cpp: (JSC::RuntimeArray::put): * bridge/runtime_method.cpp: (JSC::callRuntimeMethod): * bridge/runtime_object.cpp: (JSC::Bindings::RuntimeObject::throwInvalidAccessError): 2010-06-06 Dirk Schulze <krit@webkit.org> Reviewed by Nikolas Zimmermann. hit testing does not respect clip paths https://bugs.webkit.org/show_bug.cgi?id=15162 Test: svg/dynamic-updates/SVGClipPath-influences-hitTesting.html Added a check, if a float point is not only in the shape/object boundaries but also is not in the clipped away area of a clipPath. * rendering/HitTestRequest.h: (WebCore::HitTestRequest::): (WebCore::HitTestRequest::svgClipContent): * rendering/RenderPath.cpp: (WebCore::RenderPath::fillContains): (WebCore::RenderPath::nodeAtFloatPoint): * rendering/RenderPath.h: * rendering/RenderSVGContainer.cpp: (WebCore::RenderSVGContainer::nodeAtFloatPoint): * rendering/RenderSVGImage.cpp: (WebCore::RenderSVGImage::nodeAtFloatPoint): * rendering/RenderSVGResourceClipper.cpp: (WebCore::RenderSVGResourceClipper::hitTestClipContent): * rendering/RenderSVGResourceClipper.h: * rendering/RenderSVGText.cpp: (WebCore::RenderSVGText::nodeAtFloatPoint): * rendering/SVGRenderSupport.cpp: (WebCore::pointInClippingArea): * rendering/SVGRenderSupport.h: 2010-06-06 Dirk Schulze <krit@webkit.org> Reviewed by Nikolas Zimmermann. SVG Pattern/Gradient clean-up https://bugs.webkit.org/show_bug.cgi?id=40205 Transformations of SVG Patterns and Gradients can be bundeled. This calculation also needs just to be calculated once. It's not a great speed-up for most platforms, but a clean-up and preparation for new features like vectorEffects and others. Now, that we don't recalucluate the gradient and its transformations, it was necessary to add a way to transform alreday existing gradients on Cairo. This is done in the same way like Skia transforms gradients after they were created. This patch doesn't change functionality, so no new tests added. * platform/graphics/Gradient.cpp: * platform/graphics/cairo/GradientCairo.cpp: (WebCore::Gradient::setPlatformGradientSpaceTransform): * rendering/RenderSVGResourceGradient.cpp: (WebCore::RenderSVGResourceGradient::applyResource): * rendering/RenderSVGResourceGradient.h: * rendering/RenderSVGResourcePattern.cpp: (WebCore::RenderSVGResourcePattern::applyResource): (WebCore::RenderSVGResourcePattern::createTileImage): (WebCore::RenderSVGResourcePattern::buildPattern): * rendering/RenderSVGResourcePattern.h: 2010-06-05 Dumitru Daniliuc <dumi@chromium.org> Unreviewed, typo/build fix. * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp: (WebCore::V8SQLStatementErrorCallback::handleEvent): 2010-05-28 Dumitru Daniliuc <dumi@chromium.org> Reviewed by Adam Barth. Do not pass empty handles to v8. https://bugs.webkit.org/show_bug.cgi?id=39896 Passing an empty handle to v8 results in a crash with a stack trace that doesn't give us much information about the cause of the crash. Instead, if we check the handles we pass to v8 and crash when they are empty, we do not make things worse, and should get a more informative stack trace. * bindings/scripts/CodeGeneratorV8.pm: * bindings/scripts/test/V8/V8TestCallback.cpp: (WebCore::V8TestCallback::callbackWithClass1Param): (WebCore::V8TestCallback::callbackWithClass2Param): * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp: (WebCore::V8SQLStatementErrorCallback::handleEvent): 2010-05-30 Antonio Gomes <tonikitoo@webkit.org> Reviewed by Darin Adler. Add a convenient helper getter for Frame* to RenderObject https://bugs.webkit.org/show_bug.cgi?id=39928 document()->frame() is being called enough from RenderObject derivated classes that it worth adding a helper Frame getter as a shortcut. No behavior change, so no new tests. * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::isOffScreen): (WebCore::AccessibilityRenderObject::stringValue): (WebCore::AccessibilityRenderObject::selection): (WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange): * page/EventHandler.cpp: (WebCore::canAutoscroll): * rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::paint): (WebCore::InlineTextBox::paintCustomHighlight): (WebCore::InlineTextBox::paintTextMatchMarker): * rendering/RenderBlock.cpp: (WebCore::RenderBlock::paintCaret): * rendering/RenderBox.cpp: (WebCore::RenderBox::paintCustomHighlight): * rendering/RenderDataGrid.cpp: (WebCore::RenderDataGrid::isActive): * rendering/RenderFrameSet.cpp: (WebCore::RenderFrameSet::flattenFrameSet): * rendering/RenderImage.cpp: (WebCore::RenderImage::paintFocusRings): * rendering/RenderInline.cpp: (WebCore::RenderInline::addDashboardRegions): * rendering/RenderLayer.cpp: (WebCore::RenderLayer::~RenderLayer): (WebCore::RenderLayer::panScrollFromPoint): (WebCore::RenderLayer::scrollByRecursively): (WebCore::RenderLayer::scrollToOffset): (WebCore::RenderLayer::autoscroll): (WebCore::RenderLayer::isActive): (showLayerTree): * rendering/RenderLayerBacking.cpp: (WebCore::inspectorTimelineAgent): * rendering/RenderListBox.cpp: (WebCore::RenderListBox::paintItemForeground): (WebCore::RenderListBox::paintItemBackground): (WebCore::RenderListBox::panScroll): (WebCore::RenderListBox::autoscroll): (WebCore::RenderListBox::isActive): * rendering/RenderObject.cpp: (WebCore::RenderObject::~RenderObject): (WebCore::RenderObject::selectionBackgroundColor): (WebCore::RenderObject::selectionForegroundColor): (WebCore::RenderObject::destroy): (WebCore::RenderObject::addDashboardRegions): (WebCore::RenderObject::animation): * rendering/RenderObject.h: (WebCore::RenderObject::document): (WebCore::RenderObject::frame): 2010-06-05 Jonathan Kliegman <kliegs@chromium.org> Reviewed by Dirk Schulze. SVG doesn't support rgba colors https://bugs.webkit.org/show_bug.cgi?id=16183 Enabled processing of rgba, hsl and hsla color specifications for SVG files. SVG spec calls for CSS2 but common usage and other browsers suppor CSS3 colors being used in SVG files Removed unused svg paramater from CSSParser::parseColorFromValue Tests: svg/custom/fill-opacity-hsl.svg svg/custom/fill-opacity-rgba.svg * css/CSSParser.cpp: (WebCore::CSSParser::parseColorFromValue): * css/CSSParser.h: * css/SVGCSSParser.cpp: (WebCore::CSSParser::parseSVGValue): (WebCore::CSSParser::parseSVGPaint): (WebCore::CSSParser::parseSVGColor): * svg/SVGColor.cpp: (WebCore::SVGColor::colorFromRGBColorString): 2010-06-05 Anders Bakken <agbakken@gmail.com> Reviewed by Eric Seidel. [Qt] ContextMenuItemQt.cpp has coding-style errors https://bugs.webkit.org/show_bug.cgi?id=39780 * platform/qt/ContextMenuItemQt.cpp: 2010-06-05 Anders Bakken <agbakken@gmail.com> Reviewed by Eric Seidel. [Qt] ContextMenuQt.cpp has coding-style errors https://bugs.webkit.org/show_bug.cgi?id=39779 * platform/qt/ContextMenuQt.cpp: 2010-06-05 Anders Bakken <agbakken@gmail.com> Reviewed by Eric Seidel. [Qt] DragDataQt.cpp has coding-style errors https://bugs.webkit.org/show_bug.cgi?id=39777 * platform/qt/DragDataQt.cpp: 2010-06-05 Anders Bakken <agbakken@gmail.com> Reviewed by Eric Seidel. [Qt] FileChooserQt.cpp has coding-style errors https://bugs.webkit.org/show_bug.cgi?id=39776 * platform/qt/FileChooserQt.cpp: 2010-06-05 Anders Bakken <agbakken@gmail.com> Reviewed by Eric Seidel. [Qt] FileSystemQt.cpp has coding-style errors https://bugs.webkit.org/show_bug.cgi?id=39775 * platform/qt/FileSystemQt.cpp: 2010-06-05 Anders Bakken <agbakken@gmail.com> Reviewed by Eric Seidel. [Qt] KURLQt.cpp has coding-style errors https://bugs.webkit.org/show_bug.cgi?id=39774 * platform/qt/KURLQt.cpp: 2010-06-05 Anders Bakken <agbakken@gmail.com> Reviewed by Eric Seidel. [Qt] LoggingQt.cpp has coding-style errors https://bugs.webkit.org/show_bug.cgi?id=39772 * platform/qt/LoggingQt.cpp: 2010-06-05 Anders Bakken <agbakken@gmail.com> Reviewed by Eric Seidel. [Qt] PlatformKeyboardEventQt.cpp has coding-style errors https://bugs.webkit.org/show_bug.cgi?id=39770 * platform/qt/PlatformKeyboardEventQt.cpp: (WebCore::keyIdentifierForQtKeyCode): (WebCore::windowsKeyCodeForKeyEvent): (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): 2010-06-05 Anders Bakken <agbakken@gmail.com> Reviewed by Eric Seidel. [Qt] PlatformScreenQt.cpp has coding-style errors https://bugs.webkit.org/show_bug.cgi?id=39768 * platform/qt/PlatformMouseEventQt.cpp: (WebCore::PlatformMouseEvent::PlatformMouseEvent): 2010-06-05 Anders Bakken <agbakken@gmail.com> Reviewed by Eric Seidel. [Qt] RenderThemeQt.cpp has coding-style errors https://bugs.webkit.org/show_bug.cgi?id=39767 * platform/qt/RenderThemeQt.cpp: 2010-06-05 Anders Bakken <agbakken@gmail.com> Reviewed by Eric Seidel. [Qt] ScrollbarQt.cpp has coding-style errors https://bugs.webkit.org/show_bug.cgi?id=39765 * platform/qt/ScrollbarQt.cpp: 2010-06-04 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Make HTML5Lexer go fast https://bugs.webkit.org/show_bug.cgi?id=40048 This patch changes us from using a jump table for each character to using absolute jumps between parser states. This appears to be about a 1% improvement on the parser bench mark (which is 1/10th of what we need to catch the old parser). I've kept the underlying logic as close to the old logic as possible. This new form will make it easier to handle the input stream part of the spec and to make further performance improvements. * html/HTML5Lexer.cpp: (WebCore::HTML5Lexer::reset): (WebCore::HTML5Lexer::nextToken): (WebCore::HTML5Lexer::emitCurrentToken): * html/HTML5Lexer.h: 2010-06-04 Adam Barth <abarth@webkit.org> Reviewed by Darin Adler. HTML5 parser should be within 1% of old parser performance https://bugs.webkit.org/show_bug.cgi?id=40172 Stop using adopt(). I think this function is cause us to do extra mallocs that are hurting performance. Instead of caching AtomicString on HTML5Token, just use the AtomicString on the old token. Also, reserve inline capacity for 10 attributes. * html/HTML5Lexer.cpp: (WebCore::HTML5Lexer::isAppropriateEndTag): * html/HTML5Lexer.h: * html/HTML5Token.h: (WebCore::HTML5Token::beginStartTag): (WebCore::HTML5Token::beginEndTag): (WebCore::HTML5Token::beginCharacter): (WebCore::HTML5Token::beginComment): (WebCore::HTML5Token::beginDOCTYPE): (WebCore::HTML5Token::name): (WebCore::HTML5Token::characters): (WebCore::HTML5Token::comment): * html/HTML5TreeBuilder.cpp: (WebCore::convertToOldStyle): (WebCore::HTML5TreeBuilder::passTokenToLegacyParser): 2010-06-04 Anders Bakken <agbakken@gmail.com> Reviewed by Eric Seidel. [Qt] ScrollbarThemeQt.cpp has coding-style errors https://bugs.webkit.org/show_bug.cgi?id=39764 * platform/qt/ScrollbarThemeQt.cpp: (WebCore::scPart): (WebCore::scrollbarPart): (WebCore::styleOptionSlider): 2010-06-04 Anders Bakken <agbakken@gmail.com> Reviewed by Eric Seidel. [Qt] SharedTimerQt.cpp has coding-style errors https://bugs.webkit.org/show_bug.cgi?id=39763 * platform/qt/SharedTimerQt.cpp: 2010-06-04 Anders Bakken <agbakken@gmail.com> Reviewed by Eric Seidel. WidgetQt.cpp has coding-style errors https://bugs.webkit.org/show_bug.cgi?id=39759 * platform/qt/WidgetQt.cpp: 2010-06-04 Anders Bakken <agbakken@gmail.com> Reviewed by Eric Seidel. TemporaryLinkStubsQt.cpp has coding-style errors https://bugs.webkit.org/show_bug.cgi?id=39761 * platform/qt/TemporaryLinkStubsQt.cpp: 2010-06-04 Anders Bakken <agbakken@gmail.com> Reviewed by Eric Seidel. [Qt] SoundQt.cpp has coding-style errors https://bugs.webkit.org/show_bug.cgi?id=39762 * platform/qt/SoundQt.cpp: 2010-06-04 Andreas Kling <andreas.kling@nokia.com> Reviewed by Dirk Schulze. Canvas createPattern(img, repetition) shouldn't throw INVALID_STATE_ERR when !img.complete https://bugs.webkit.org/show_bug.cgi?id=40166 Spec link: http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-createpattern Test: http/tests/misc/canvas-pattern-from-incremental-image.html (updated) * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::createPattern): 2010-06-04 Anders Bakken <agbakken@gmail.com> Reviewed by David Levin. [Qt] Localizations.cpp has coding-style errors https://bugs.webkit.org/show_bug.cgi?id=39773 * platform/qt/Localizations.cpp: (WebCore::localizedMediaTimeDescription): 2010-06-04 Lyon Chen <liachen@rim.com> Reviewed by Darin Adler. ApplicationCacheStorage::storeNewestCache() Crash WebKit when openDatabase(true) failed https://bugs.webkit.org/show_bug.cgi?id=40074 Adding m_database.isOpen() check for every openDatabase(true) call, this is needed because openDatabase(true) could still fail, for example when cacheStorage is full or no longer available. * loader/appcache/ApplicationCacheStorage.cpp: (WebCore::ApplicationCacheStorage::store): (WebCore::ApplicationCacheStorage::storeNewestCache): 2010-06-04 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r60684. http://trac.webkit.org/changeset/60684 https://bugs.webkit.org/show_bug.cgi?id=40196 This patch broke chromium reliability tests (Requested by tonyg-cr on #webkit). * bindings/v8/ScriptSourceCode.h: (WebCore::ScriptSourceCode::ScriptSourceCode): * bindings/v8/V8Proxy.cpp: (WebCore::V8Proxy::compileScript): (WebCore::V8Proxy::evaluate): * bindings/v8/V8Proxy.h: 2010-06-04 Chris Fleizach <cfleizach@apple.com> Reviewed by David Kilzer. AX: need an aria-help https://bugs.webkit.org/show_bug.cgi?id=40010 Test: accessibility/aria-help.html * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::helpText): * html/HTMLAttributeNames.in: 2010-06-04 Andreas Kling <andreas.kling@nokia.com> Reviewed by Tor Arne Vestbø. [Qt] Canvas arc() with zero radius should draw a line to the start point https://bugs.webkit.org/show_bug.cgi?id=40164 Spec link: http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-arc * platform/graphics/qt/PathQt.cpp: (WebCore::Path::addArc): 2010-06-04 Martin Robinson <mrobinson@igalia.com> Reviewed by Xan Lopez. [GTK] RenderThemeGtk leaks memory https://bugs.webkit.org/show_bug.cgi?id=40168 Call gtk_widget_destroy in the RenderThemeGtk destructor. This cleans up all widget resources when a theme is destroyed. No new tests, because functionality has not changed. * platform/gtk/RenderThemeGtk.cpp: (WebCore::RenderThemeGtk::~RenderThemeGtk): Call gtk_widget_destroy on m_gtkWindow. 2010-06-04 Martin Robinson <mrobinson@igalia.com> Reviewed by Xan Lopez. [GTK] RenderThemeGtk leaks memory https://bugs.webkit.org/show_bug.cgi?id=40168 Remove the use of releaseRef to assign a value to a RefPtr. This results in the original pointer taking an extra reference. * platform/gtk/RenderThemeGtk.cpp: (WebCore::RenderThemeGtk::initMediaStyling): Remove the use of releaseRef here. 2010-06-04 Adam Barth <abarth@webkit.org> Reviewed by Gavin Barraclough. Try to fix the windows build https://bugs.webkit.org/show_bug.cgi?id=40189 Suppress the "unreachable code" warning because we want to assert that we don't reach certain code points. * html/HTML5Lexer.cpp: 2010-06-04 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Make HTML5Lexer go fast https://bugs.webkit.org/show_bug.cgi?id=40048 A couple more cases like the previous patch that I missed. * html/HTML5Lexer.cpp: (WebCore::HTML5Lexer::nextToken): 2010-06-04 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Make HTML5Lexer go fast https://bugs.webkit.org/show_bug.cgi?id=40048 Make all the state transitions in the machine explicit. This allows us to remove all the break statements, which won't work correctly after we change the macro definitions. Also, while I was looking at every line of code, I fixed a bunch of the one-line-if style errors introduces in my previous patches. * html/HTML5Lexer.cpp: (WebCore::HTML5Lexer::nextToken): 2010-06-04 Gavin Barraclough <barraclough@apple.com> Reviewed by Oliver Hunt. Bug 40187 - Change function signature of NativeConstructor to match NativeFunction Mostly for consistency, but constructor & args arguments are redundant, and this will help if we wish to be able to JIT calls to more constructors. * bindings/js/JSArrayBufferConstructor.cpp: (WebCore::constructCanvasArrayBuffer): * bindings/js/JSAudioConstructor.cpp: (WebCore::constructAudio): * bindings/js/JSEventSourceConstructor.cpp: (WebCore::constructEventSource): * bindings/js/JSFloatArrayConstructor.cpp: (WebCore::constructCanvasFloatArray): * bindings/js/JSImageConstructor.cpp: (WebCore::constructImage): * bindings/js/JSInt16ArrayConstructor.cpp: (WebCore::constructCanvasShortArray): * bindings/js/JSInt32ArrayConstructor.cpp: (WebCore::constructCanvasIntArray): * bindings/js/JSInt8ArrayConstructor.cpp: (WebCore::constructCanvasByteArray): * bindings/js/JSMessageChannelConstructor.cpp: (WebCore::JSMessageChannelConstructor::construct): * bindings/js/JSMessageChannelConstructor.h: * bindings/js/JSOptionConstructor.cpp: (WebCore::constructHTMLOptionElement): * bindings/js/JSSharedWorkerConstructor.cpp: (WebCore::constructSharedWorker): * bindings/js/JSUint16ArrayConstructor.cpp: (WebCore::constructCanvasUnsignedShortArray): * bindings/js/JSUint32ArrayConstructor.cpp: (WebCore::constructCanvasUnsignedIntArray): * bindings/js/JSUint8ArrayConstructor.cpp: (WebCore::constructCanvasUnsignedByteArray): * bindings/js/JSWebKitCSSMatrixConstructor.cpp: (WebCore::constructWebKitCSSMatrix): * bindings/js/JSWebKitPointConstructor.cpp: (WebCore::constructWebKitPoint): * bindings/js/JSWebSocketConstructor.cpp: (WebCore::constructWebSocket): * bindings/js/JSWorkerConstructor.cpp: (WebCore::constructWorker): * bindings/js/JSXMLHttpRequestConstructor.cpp: (WebCore::constructXMLHttpRequest): * bindings/js/JSXSLTProcessorConstructor.cpp: (WebCore::constructXSLTProcessor): * bindings/scripts/CodeGeneratorJS.pm: * bridge/runtime_object.cpp: (JSC::Bindings::callRuntimeConstructor): 2010-06-04 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Make HTML5Lexer go fast https://bugs.webkit.org/show_bug.cgi?id=40048 Change the intent of the loop to match what it's going to be once we remove the loop. This is a whitespace only change that will make the final diff much, much smaller. Sorry for the transient ugly style. * html/HTML5Lexer.cpp: (WebCore::HTML5Lexer::nextToken): 2010-06-04 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Make HTML5Lexer go fast https://bugs.webkit.org/show_bug.cgi?id=40048 Introduce ADVANCE_TO macro. This is the last macro we need to introduce. * html/HTML5Lexer.cpp: (WebCore::HTML5Lexer::nextToken): 2010-06-04 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Make HTML5Lexer go fast https://bugs.webkit.org/show_bug.cgi?id=40048 Fix the rest of the RECONSUME_IN cases that were missed by our script. Also, reorder some assigment to prepare for the ADVANCE_TO patch. * html/HTML5Lexer.cpp: (WebCore::HTML5Lexer::nextToken): 2010-06-04 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Make HTML5Lexer go fast https://bugs.webkit.org/show_bug.cgi?id=40048 This patch handles the FLUSH_AND_ADVANCE_TO case. Again, this patch introduces style errors that will be fixed shortly. * html/HTML5Lexer.cpp: (WebCore::HTML5Lexer::nextToken): 2010-06-04 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Make HTML5Lexer go fast https://bugs.webkit.org/show_bug.cgi?id=40048 This patch handles the FLUSH_EMIT_AND_RESUME_IN case. This patch introduces some bad style w.r.t. one-line if statements, but we'll fix them all automatically in cleanup patch when we're done. * html/HTML5Lexer.cpp: (WebCore::HTML5Lexer::nextToken): 2010-06-04 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Make HTML5Lexer go fast https://bugs.webkit.org/show_bug.cgi?id=40048 More small steps. This patch deals with emitting tokens. * html/HTML5Lexer.cpp: (WebCore::HTML5Lexer::nextToken): 2010-06-04 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Make HTML5Lexer go fast https://bugs.webkit.org/show_bug.cgi?id=40048 The next step: using macros to delimit each state. Evetually, we're going to change what these macros expand to. * html/HTML5Lexer.cpp: (WebCore::HTML5Lexer::nextToken): 2010-06-04 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Make HTML5Lexer go fast https://bugs.webkit.org/show_bug.cgi?id=40048 We're going to do this patch in small steps to make it easier to verify correctness. * html/HTML5Lexer.cpp: (WebCore::HTML5Lexer::nextToken): 2010-06-04 Jay Civelli <jcivelli@chromium.org> Reviewed by David Levin. [chromium] Adding support for the left and right Windows keys to the NativeWebKeyboardEvent. https://bugs.webkit.org/show_bug.cgi?id=39752 * platform/chromium/KeyCodeConversionGtk.cpp: (WebCore::windowsKeyCodeForKeyEvent): 2010-06-04 Dirk Schulze <krit@webkit.org> Reviewed by Nikolas Zimmermann. SVG filter on filter don't work https://bugs.webkit.org/show_bug.cgi?id=32708 Any child of <text> was not allowed to use the same filter as the text root. I couldn't found any reason in the SVG specification that legimitate this. Only batik also doesn't allow the same filter on the text root as on it's childs, while any other effect is still allowed. I removed this limitation so that the result looks like the result on Firefox. Test: svg/filters/filter-on-filter-for-text.svg * rendering/SVGRenderSupport.cpp: (WebCore::SVGRenderBase::prepareToRenderSVGContent): * rendering/SVGRenderSupport.h: * rendering/SVGRootInlineBox.cpp: (WebCore::SVGRootInlineBoxPaintWalker::SVGRootInlineBoxPaintWalker): (WebCore::SVGRootInlineBoxPaintWalker::chunkStartCallback): (WebCore::SVGRootInlineBox::paint): 2010-06-04 Nate Chapin <japhet@chromium.org> Reviewed by Adam Barth. Factor PageCache functionality out of FrameLoader and into PageCache itself. https://bugs.webkit.org/show_bug.cgi?id=39382 Refactor only, so no new tests. * history/PageCache.cpp: (WebCore::pageCacheLogPrefix): (WebCore::pageCacheLog): (WebCore::logCanCacheFrameDecision): (WebCore::logCanCachePageDecision): (WebCore::PageCache::canCachePageContainingThisFrame): (WebCore::PageCache::canCache): (WebCore::PageCache::add): (WebCore::PageCache::get): * history/PageCache.h: * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::commitIfReady): * loader/FrameLoader.cpp: (WebCore::FrameLoader::commitProvisionalLoad): (WebCore::FrameLoader::prepareForCachedPageRestore): (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): (WebCore::FrameLoader::loadProvisionalItemFromCachedPage): (WebCore::FrameLoader::navigateToDifferentDocument): * loader/FrameLoader.h: (WebCore::FrameLoader::quickRedirectComing): * svg/graphics/SVGImage.cpp: (WebCore::SVGImage::dataChanged): 2010-06-04 Ilya Tikhonovsky <loislo@chromium.org> Reviewed by Pavel Feldman. WebInspector: Web Inspector: it would be better to push object properties to JSON string in order of insertion. https://bugs.webkit.org/show_bug.cgi?id=40140 * inspector/InspectorValues.cpp: (WebCore::InspectorObject::writeJSON): * inspector/InspectorValues.h: (WebCore::InspectorObject::setBool): (WebCore::InspectorObject::setNumber): (WebCore::InspectorObject::setString): (WebCore::InspectorObject::set): 2010-06-04 Tony Gentilcore <tonyg@chromium.org> Reviewed by Adam Barth. Persist V8's ScriptData to the memory cache. https://bugs.webkit.org/show_bug.cgi?id=38661 This stores V8's ScriptData in the memory cache and also causes the network platform layer to be notified of the available cacheable metadata. Chromium's morejs benchmark shows a 3-4% improvement on fast hardware. No new tests because no new functionality. * bindings/v8/ScriptSourceCode.h: (WebCore::ScriptSourceCode::ScriptSourceCode): (WebCore::ScriptSourceCode::cachedScript): * bindings/v8/V8Proxy.cpp: (WebCore::V8Proxy::compileScript): (WebCore::V8Proxy::precompileScript): (WebCore::V8Proxy::evaluate): * bindings/v8/V8Proxy.h: 2010-06-04 Tony Gentilcore <tonyg@chromium.org> Reviewed by Adam Barth. Utilize new takeFirst() method where appropriate. https://bugs.webkit.org/show_bug.cgi?id=40089 No new tests because no new functionality. * css/CSSStyleSheet.cpp: (WebCore::CSSStyleSheet::addSubresourceStyleURLs): * dom/XMLTokenizerLibxml2.cpp: (WebCore::PendingCallbacks::callAndRemoveFirstCallback): * html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::reset): (WebCore::HTMLTokenizer::executeExternalScriptsIfReady): * platform/text/SegmentedString.cpp: (WebCore::SegmentedString::advanceSubstring): * storage/Database.cpp: (WebCore::Database::scheduleTransaction): * storage/SQLTransaction.cpp: (WebCore::SQLTransaction::getNextStatement): * storage/SQLTransactionCoordinator.cpp: (WebCore::SQLTransactionCoordinator::processPendingTransactions): 2010-06-04 Nikita Vasilyev <me@elv1s.ru> Reviewed by Pavel Feldman. Web Inspector: better Function.prototype.bind for the internal code. In the "Event Listeners" pane show handler function instead of Function.prototype.bind. https://bugs.webkit.org/show_bug.cgi?id=40080 * inspector/front-end/utilities.js: (Function.prototype.bind.bound): (Function.prototype.bind.bound.toString): (Function.prototype.bind): 2010-06-04 Alexander Pavlov <apavlov@chromium.org> Unreviewed, fix Qt build. Add references to a new file. * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * inspector/front-end/WebKit.qrc: 2010-06-04 Alexander Pavlov <apavlov@chromium.org> Reviewed by Pavel Feldman. Web Inspector: Eliminate direct dependency of StylesSidebarPane on InspectorBackend https://bugs.webkit.org/show_bug.cgi?id=40069 No new tests are needed, as this is a refactoring. * inspector/front-end/CSSStyleModel.js: Added. (WebInspector.CSSStyleModel): (WebInspector.CSSStyleModel.prototype.getStylesAsync): (WebInspector.CSSStyleModel.prototype.getComputedStyleAsync): (WebInspector.CSSStyleModel.prototype.setRuleSelector): (WebInspector.CSSStyleModel.prototype.addRule): (WebInspector.CSSStyleModel.prototype.toggleStyleEnabled): (WebInspector.CSSStyleModel.prototype.setCSSText): (WebInspector.CSSStyleModel.prototype.applyStyleText): * inspector/front-end/StylesSidebarPane.js: (WebInspector.StylesSidebarPane.prototype.update.stylesCallback): (WebInspector.StylesSidebarPane.prototype.update.computedStyleCallback): (WebInspector.StylesSidebarPane.prototype.update): (WebInspector.StylesSidebarPane.prototype._arrayContainsInheritedProperty): (WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted.successCallback): (WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted): (WebInspector.BlankStylePropertiesSection.prototype.editingSelectorCommitted.successCallback): (WebInspector.BlankStylePropertiesSection.prototype.editingSelectorCommitted): (WebInspector.StylePropertyTreeElement.prototype.): (WebInspector.StylePropertyTreeElement.prototype): * inspector/front-end/inspector.html: * inspector/front-end/inspector.js: (WebInspector.loaded): 2010-06-04 Simon Hausmann <simon.hausmann@nokia.com> Reviewed by Tor Arne Vestbø. [Qt] Compilation fails when compiling against Qt 4.7 and Qt Mobility is installed https://bugs.webkit.org/show_bug.cgi?id=40116 CONFIG += mobility has the side-effect of pulling in mobility includes, which conflict with Qt 4.7's bearer managenent includes and break the build. * WebCore.pro: 2010-06-04 Vangelis Kokkevis <vangelis@chromium.org> Reviewed by Dimitri Glazkov. [chromium] Fix scrolling bug with pages using accelerated compositing. https://bugs.webkit.org/show_bug.cgi?id=40037 * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::LayerRendererChromium): (WebCore::LayerRendererChromium::drawLayers): 2010-06-04 Matthew Delaney <mdelaney@apple.com> Reviewed by Darin Adler. CG implementation needed for compression quality in canvas.toDataURL https://bugs.webkit.org/show_bug.cgi?id=38492 Took toDataURL.jpeg.quality.basic.html test off of Skipped list. Passes. Went the route of avoiding in-band signaling to flag the use of a quality parameter or not. So, instead of simply passing the quality down as a double, instead I pass a reference to the quality parameter from where it comes in just after the JS bindings. Thus, no need for any global constants to signify when the quality is not specified. Updated the other platforms to support this (qt was on the only one currently with any implementation). * bindings/js/JSHTMLCanvasElementCustom.cpp: Moved range check logic for quality parameter down lower. Updated call to toDataURL to use double* instead of just passing the quality directly. (WebCore::JSHTMLCanvasElement::toDataURL): * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp: Updated toDataURL call to pass double* (WebCore::V8HTMLCanvasElement::toDataURLCallback): * dom/CanvasSurface.cpp: Updated method prototype. (WebCore::CanvasSurface::toDataURL): * dom/CanvasSurface.h: Updated method prototype. (WebCore::CanvasSurface::toDataURL): * platform/graphics/ImageBuffer.h: Updated method signature to use double* for quality param. * platform/graphics/cairo/ImageBufferCairo.cpp: Updated prototype for consistency. (WebCore::ImageBuffer::toDataURL): * platform/graphics/cg/ImageBufferCG.cpp: Implemented support for quality parametejr when jpeg MIME type used. (WebCore::jpegUTI): (WebCore::utiFromMIMEType): (WebCore::ImageBuffer::toDataURL): * platform/graphics/haiku/ImageBufferHaiku.cpp: Updated prototype for consistency. (WebCore::ImageBuffer::toDataURL): * platform/graphics/qt/ImageBufferQt.cpp: Updated prototype for consistency. (WebCore::ImageBuffer::toDataURL): * platform/graphics/skia/ImageBufferSkia.cpp: Updated prototype for consistency. (WebCore::ImageBuffer::toDataURL): * platform/graphics/wince/ImageBufferWince.cpp: Updated prototype for consistency. (WebCore::ImageBuffer::toDataURL): * platform/graphics/wx/ImageBufferWx.cpp: Updated prototype for consistency. (WebCore::ImageBuffer::toDataURL): 2010-06-04 Alejandro G. Castro <alex@igalia.com> Reviewed by Xan Lopez. Leaks in listDirectory https://bugs.webkit.org/show_bug.cgi?id=40008 Fixed both leaks. * platform/gtk/FileSystemGtk.cpp: (WebCore::listDirectory): 2010-06-04 Anton Muhin <antonm@chromium.org> Reviewed by Nate Chapin. [Chromium] get rid of named interceptor on HTMLDocument and introduce/remove accessors when named items get deleted/removed https://bugs.webkit.org/show_bug.cgi?id=39877 This patch makes callbacks invoked on named items addition/removal install API accessors and thus there is no more need in named and indexed interceptors on HTMLDocument which speeds up invocation of methods on document. * bindings/scripts/CodeGeneratorV8.pm: * bindings/v8/ScriptController.cpp: (WebCore::ScriptController::namedItemAdded): (WebCore::ScriptController::namedItemRemoved): * bindings/v8/V8DOMWindowShell.cpp: (WebCore::checkDocumentWrapper): (WebCore::V8DOMWindowShell::updateDocumentWrapperCache): (WebCore::getter): (WebCore::V8DOMWindowShell::namedItemAdded): (WebCore::V8DOMWindowShell::namedItemRemoved): * bindings/v8/V8DOMWindowShell.h: * bindings/v8/V8DOMWrapper.cpp: (WebCore::V8DOMWrapper::instantiateV8Object): * bindings/v8/custom/V8HTMLDocumentCustom.cpp: (WebCore::V8HTMLDocument::WrapInShadowObject): (WebCore::V8HTMLDocument::GetNamedProperty): (WebCore::V8HTMLDocument::allAccessorSetter): (WebCore::toV8): 2010-06-04 Kwang Yul Seo <skyul@company100.net> Reviewed by Kent Tamura. Change filenameFromString to return CString https://bugs.webkit.org/show_bug.cgi?id=39494 filenameFromString returns a newly allocated string and the caller must free the string. GTK and EFL ports use g_free while all others ports use fastFree. This is confusing because the same function behaves differently with respect to ports. Change filenameFromString to return CString. * platform/FileSystem.cpp: (WebCore::filenameFromString): * platform/FileSystem.h: * platform/efl/FileSystemEfl.cpp: (WebCore::filenameFromString): * platform/gtk/FileChooserGtk.cpp: (WebCore::FileChooser::basenameForWidth): * platform/gtk/FileSystemGtk.cpp: (WebCore::filenameFromString): (WebCore::filenameForDisplay): (WebCore::fileExists): (WebCore::deleteFile): (WebCore::deleteEmptyDirectory): (WebCore::getFileSize): (WebCore::getFileModificationTime): (WebCore::makeAllDirectories): (WebCore::pathGetFileName): (WebCore::directoryName): (WebCore::listDirectory): * platform/gtk/SharedBufferGtk.cpp: (WebCore::SharedBuffer::createWithContentsOfFile): * platform/network/soup/ResourceHandleSoup.cpp: (WebCore::startHttp): * platform/posix/SharedBufferPOSIX.cpp: (WebCore::SharedBuffer::createWithContentsOfFile): 2010-06-04 No'am Rosenthal <noam.rosenthal@nokia.com> Reviewed by Kenneth Rohde Christiansen. [Qt] Fix compilation with QT_NO_FEATURE https://bugs.webkit.org/show_bug.cgi?id=38324 The #ifdef QT_NO_GRAPHICSEFFECT was in the wrong place, would have made AC not work at all. No new tests. * platform/graphics/qt/GraphicsLayerQt.cpp: (WebCore::GraphicsLayerQtImpl::flushChanges): 2010-06-04 Qi Zhang <qi.2.zhang@nokia.com> Reviewed by Laszlo Gombos. [Qt] Failed at http://philip.html5.org/tests/canvas/suite/tests/2d.path.arcTo.ensuresubpath.1.html https://bugs.webkit.org/show_bug.cgi?id=38645 Path arcto function need to ensure there is subpath before it. * platform/graphics/qt/PathQt.cpp: (WebCore::Path::addArcTo): 2010-06-04 Qi Zhang <qi.2.zhang@nokia.com> Reviewed by Laszlo Gombos. [Qt] failed at http://philip.html5.org/tests/canvas/suite/tests/2d.path.arc.angle.3.html https://bugs.webkit.org/show_bug.cgi?id=38537 For path.arc function handle span > 2PI * platform/graphics/qt/PathQt.cpp: (WebCore::Path::addArc): 2010-06-04 Zhenyao Mo <zmo@google.com> Reviewed by Dimitri Glazkov. Set attributes.stencil to false by default at context creation https://bugs.webkit.org/show_bug.cgi?id=40090 * platform/graphics/GraphicsContext3D.h: Set default attributes.stencil to false. (WebCore::GraphicsContext3D::Attributes::Attributes): 2010-06-03 Abhishek Arya <inferno@chromium.org> Reviewed by Eric Carlson. Fix a crash when trying to use an invalid media src url by moving the isValid url checks to a central location in isSafeToLoadURL function. Also added an empty string check in DocumentLoader::didTellClientAboutLoad. Test: media/invalid-media-url-crash.html * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::isSafeToLoadURL): (WebCore::HTMLMediaElement::selectNextSourceChild): (WebCore::HTMLMediaElement::getPluginProxyParams): * loader/DocumentLoader.h: (WebCore::DocumentLoader::didTellClientAboutLoad): 2010-06-03 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r60642. http://trac.webkit.org/changeset/60642 https://bugs.webkit.org/show_bug.cgi?id=40151 Broke rendering of border images on rotated elements (Requested by jamesr on #webkit). * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::drawImage): (WebCore::GraphicsContext::drawTiledImage): * platform/graphics/GraphicsContext.h: * rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::paintNinePieceImage): 2010-06-03 Damian Kaleta <dkaleta@apple.com> Reviewed by Beth Dakin. Pixel cracks in border images when drawing with a scale factor > 1 <rdar://problem/7994266>pixel cracks in border images https://bugs.webkit.org/show_bug.cgi?id=15720 * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::drawImage): (WebCore::GraphicsContext::drawTiledImage): * platform/graphics/GraphicsContext.h: Added two new methods to support drawing using FloatRect. If the boolean flag roundToPixels is true, the pixels are adjusted with the pixel boundaries. * rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::paintNinePieceImage): 2010-06-03 James Robinson <jamesr@chromium.org> Reviewed by Dan Bernstein. Take container's scroll offset and clip into account when initializing LayoutState https://bugs.webkit.org/show_bug.cgi?id=38506 When doing a subtree layout, the initial LayoutState creation needs to take the layout root container's offset and its scroll offset into account to create the initial offset. Otherwise if a subtree layout occurs for a layout root whose container has a non-zero scroll offset the LayoutState's offset and clip are wrong, resulting in a mispaint. See the test cases for examples. Tests: fast/repaint/layout-state-scrolloffset.html fast/repaint/layout-state-scrolloffset2.html fast/repaint/layout-state-scrolloffset3.html * rendering/LayoutState.cpp: (WebCore::LayoutState::LayoutState): 2010-06-03 Gavin Barraclough <barraclough@apple.com> Reviewed by NOBODY (speculative Qt build fix II). * bridge/qt/qt_runtime.cpp: (JSC::Bindings::QtRuntimeMetaMethod::call): (JSC::Bindings::QtRuntimeConnectionMethod::call): 2010-06-03 Gavin Barraclough <barraclough@apple.com> Reviewed by NOBODY (speculative Qt build fix). * bridge/qt/qt_runtime.cpp: (JSC::Bindings::QtRuntimeMetaMethod::call): (JSC::Bindings::QtRuntimeConnectionMethod::call): 2010-06-02 Gavin Barraclough <barraclough@apple.com> Reviewed by Oliver Hunt. Bug 40094 - The return type of NativeFunction should be EncodedJSValue On Windows & Linux, using JSVALUE32_64, EncodedJSValue is returned in registers, but JSValue is not. * bindings/js/JSCallbackData.cpp: (WebCore::JSCallbackData::invokeCallback): * bindings/js/JSCustomXPathNSResolver.cpp: (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI): * bindings/js/JSEventListener.cpp: (WebCore::JSEventListener::handleEvent): * bindings/js/JSHTMLAllCollectionCustom.cpp: (WebCore::callHTMLAllCollection): * bindings/js/JSHTMLCollectionCustom.cpp: (WebCore::callHTMLCollection): * bindings/js/JSHTMLDocumentCustom.cpp: (WebCore::JSHTMLDocument::open): * bindings/js/JSInjectedScriptHostCustom.cpp: (WebCore::InjectedScriptHost::createInjectedScript): * bindings/js/JSNodeFilterCondition.cpp: (WebCore::JSNodeFilterCondition::acceptNode): * bindings/js/JSNodeListCustom.cpp: (WebCore::callNodeList): * bindings/js/JSPluginElementFunctions.cpp: (WebCore::callPlugin): * bindings/js/ScheduledAction.cpp: (WebCore::ScheduledAction::create): (WebCore::ScheduledAction::executeFunctionInContext): * bindings/js/ScriptFunctionCall.cpp: (WebCore::ScriptFunctionCall::call): * bindings/js/SerializedScriptValue.cpp: (WebCore::SerializingTreeWalker::convertIfTerminal): * bindings/objc/WebScriptObject.mm: (-[WebScriptObject callWebScriptMethod:withArguments:]): * bindings/scripts/CodeGeneratorJS.pm: * bridge/NP_jsobject.cpp: (_NPN_InvokeDefault): (_NPN_Invoke): (_NPN_Construct): * bridge/jni/jni_jsobject.mm: (JavaJSObject::call): * bridge/objc/objc_runtime.mm: (JSC::Bindings::callObjCFallbackObject): * bridge/runtime_method.cpp: (JSC::callRuntimeMethod): * bridge/runtime_object.cpp: (JSC::Bindings::callRuntimeObject): 2010-06-03 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r60614. http://trac.webkit.org/changeset/60614 https://bugs.webkit.org/show_bug.cgi?id=40123 It made fast/dom/Window/window-postmessage-clone.html fail on Mac bots (Requested by Ossy on #webkit). * Android.derived.jscbindings.mk: * Android.derived.v8bindings.mk: * Android.mk: * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * GNUmakefile.am: * WebCore.gypi: * WebCore.pri: * WebCore.pro: * bindings/generic/RuntimeEnabledFeatures.cpp: * bindings/generic/RuntimeEnabledFeatures.h: * bindings/js/JSEventCustom.cpp: (WebCore::toJS): * bindings/v8/custom/V8EventCustom.cpp: (WebCore::toV8): * dom/Document.cpp: (WebCore::Document::createEvent): (WebCore::Document::addListenerTypeIfNeeded): * dom/Document.h: (WebCore::Document::): * dom/Document.idl: * dom/Element.h: * dom/Element.idl: * dom/Event.cpp: (WebCore::Event::fromUserGesture): * dom/Event.h: * dom/EventNames.h: * dom/TransformActionEvent.cpp: Removed. * dom/TransformActionEvent.h: Removed. * dom/TransformActionEvent.idl: Removed. * html/HTMLAttributeNames.in: * html/HTMLElement.cpp: (WebCore::HTMLElement::parseMappedAttribute): * page/DOMWindow.h: * page/DOMWindow.idl: 2010-06-03 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. [v8] Web Inspector: show "Object" as description for values with anonymous constructor https://bugs.webkit.org/show_bug.cgi?id=40121 * inspector/front-end/InjectedScript.js: (injectedScriptConstructor): 2010-06-03 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> Reviewed by Simon Hausmann. [Qt] Fix NPAPI support on Mac OS X/Cocoa-32 qt_mac_window_for() returns a NSWindow on Cocoa, so we were passing in a NSWindow instead of a WindowRef as part of the NP_CGContext. https://bugs.webkit.org/show_bug.cgi?id=38762 * WebCore.gypi: Reflect rename * WebCore.pro: Reflect rename * plugins/mac/PluginViewMac.cpp: Renamed to PluginViewMac.mm and fix bug by getting the Carbon windowRef from the NSWindow. * wscript: Reflect rename 2010-06-03 Kim Grönholm <kim.1.gronholm@nokia.com> Reviewed by Simon Hausmann. Add TransformActionEvent support https://bugs.webkit.org/show_bug.cgi?id=39757 Added only the necessary TransformAction event interfaces and not e.g. any eventhandler hooks that generate and dispatch them. Test: fast/events/transformaction/create-transformaction-event.html More tests will be added with the machinery that generates and dispatches these events. * Android.derived.jscbindings.mk: * Android.derived.v8bindings.mk: * Android.mk: * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * GNUmakefile.am: * WebCore.gypi: * WebCore.pri: * WebCore.pro: * bindings/generic/RuntimeEnabledFeatures.cpp: * bindings/generic/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::transformactionEnabled): (WebCore::RuntimeEnabledFeatures::setTransformActionEnabled): (WebCore::RuntimeEnabledFeatures::ontransformactionstartEnabled): (WebCore::RuntimeEnabledFeatures::ontransformactionupdateEnabled): (WebCore::RuntimeEnabledFeatures::ontransformactionendEnabled): * bindings/js/JSEventCustom.cpp: (WebCore::toJS): * bindings/v8/custom/V8EventCustom.cpp: (WebCore::toV8): * dom/Document.cpp: (WebCore::Document::createEvent): (WebCore::Document::addListenerTypeIfNeeded): * dom/Document.h: (WebCore::Document::): * dom/Document.idl: * dom/Element.h: * dom/Element.idl: * dom/Event.cpp: (WebCore::Event::isTransformActionEvent): (WebCore::Event::fromUserGesture): * dom/Event.h: * dom/EventNames.h: * dom/TransformActionEvent.cpp: Added. (WebCore::TransformActionEvent::TransformActionEvent): (WebCore::TransformActionEvent::initTransformActionEvent): * dom/TransformActionEvent.h: Added. (WebCore::TransformActionEvent::create): (WebCore::TransformActionEvent::translateX): (WebCore::TransformActionEvent::translateY): (WebCore::TransformActionEvent::translateSpeedX): (WebCore::TransformActionEvent::translateSpeedY): (WebCore::TransformActionEvent::scale): (WebCore::TransformActionEvent::scaleSpeed): (WebCore::TransformActionEvent::rotate): (WebCore::TransformActionEvent::rotateSpeed): (WebCore::TransformActionEvent::TransformActionEvent): (WebCore::TransformActionEvent::isTransformActionEvent): * dom/TransformActionEvent.idl: Added. * html/HTMLAttributeNames.in: * html/HTMLElement.cpp: (WebCore::HTMLElement::parseMappedAttribute): * page/DOMWindow.h: * page/DOMWindow.idl: 2010-06-03 Pavel Feldman <pfeldman@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: a number of fixes that make InspectorController happy with null redirects. https://bugs.webkit.org/show_bug.cgi?id=40109 * inspector/InspectorController.cpp: (WebCore::InspectorController::willSendRequest): (WebCore::InspectorController::didReceiveResponse): (WebCore::InspectorController::didReceiveContentLength): (WebCore::InspectorController::didFinishLoading): (WebCore::InspectorController::didFailLoading): 2010-06-03 Pavel Feldman <pfeldman@chromium.org> Not reviewed. Rolling out aggressive cache part of the r60391 described in the bug below. It was orthogonal to the rest of the patch and caused regression. https://bugs.webkit.org/show_bug.cgi?id=37364 * platform/graphics/skia/ImageSkia.cpp: (WebCore::drawResampledBitmap): 2010-06-02 Darin Fisher <darin@chromium.org> Reviewed by Brady Eidson. location.href and outgoing referrer not updated properly by pushState/replaceState https://bugs.webkit.org/show_bug.cgi?id=40027 Tests: fast/loader/stateobjects/pushstate-updates-location.html fast/loader/stateobjects/replacestate-updates-location.html http/tests/navigation/pushstate-updates-referrer.html http/tests/navigation/replacestate-updates-referrer.html * dom/Document.cpp: (WebCore::Document::updateURLForPushOrReplaceState): Update the FrameLoader's notion of the current URL as well! * loader/FrameLoader.cpp: (WebCore::FrameLoader::loadInSameDocument): Use the 'url' parameter instead of m_URL since m_URL might have changed during the handling of the PopState event. Eventually, this will become irrelevant since the PopState event should be dispatched asynchronously, but just in case we patch HashChange to be asynchronous before PopState, this change would be needed. 2010-06-02 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. REGRESSION(60409): document.write is not synchronous when using the HTML5 parser https://bugs.webkit.org/show_bug.cgi?id=40047 The HTML5 spec states that we should "spin the event loop" while waiting for stylesheets to load. Currently we do that by yielding out of the parser when stylesheets are loading. Because it was easy we made inline <scripts> yield for stylesheet loads as well. However, this caused document.write() to return after encountering the first inline <script> tag in many cases which is incorrect. document.write is supposed to block until the entire document is parsed (including) executing inline script tags. To match the exiting parser, we'll just make inline <script> tags not block on stylesheets for now. This is tested by WebCore/benchmarks/html-parser.html as well as likely several other tests in LayoutTests which we haven't triaged yet. * html/HTML5ScriptRunner.cpp: (WebCore::HTML5ScriptRunner::executeScript): - ASSERT that either stylesheets have loaded or we're executing an inline <script> tag. (WebCore::HTML5ScriptRunner::runScript): - Remove the code to block inline <script> tags on stylesheet loads. 2010-06-02 MORITA Hajime <morrita@google.com> Unreviewd, Chromium windows build fix. * rendering/RenderThemeChromiumWin.cpp: (WebCore::RenderThemeChromiumWin::paintProgressBar): 2010-06-02 MORITA Hajime <morrita@google.com> Reviewed by Kent Tamura. [Chromium] Linux: progress bar image pieces should be painted with same resampling mode https://bugs.webkit.org/show_bug.cgi?id=40045 computeResamplingMode(), used by Image::drawPattern() and BitmapImage::draw(), chooses an image resampling mode based on the size of given image and the destination rectangle. But when painting single component (i.e. a progress bar) from multiple images, it can choose different resampling modes for images of same component. That difference creates unexpected visual artifacts like seams between images of single component. This change introduced "image resampling hint" to allow callers to control the resampling mode. Using the hint, RenderThemeChromiumSkia now able to hold same resampling mode during draw a progress bar. No new tests. Expectations will come after ENABLE_PROGRESS_BAR get enabled on chromium. * platform/graphics/skia/ImageSkia.cpp: (WebCore::computeResamplingMode): * platform/graphics/skia/PlatformContextSkia.cpp: (PlatformContextSkia::save): (PlatformContextSkia::setImageResamplingHint): Added (PlatformContextSkia::clearImageResamplingHint): Added (PlatformContextSkia::hasImageResamplingHint): Added (PlatformContextSkia::imageResamplingHint): Added * platform/graphics/skia/PlatformContextSkia.h: * rendering/RenderThemeChromiumSkia.cpp: (WebCore::RenderThemeChromiumSkia::paintProgressBar): 2010-06-03 MORITA Hajime <morrita@google.com> Reviewed by Kent Tamura. [Chromium] Support HTML5 <progress> element on Linux. https://bugs.webkit.org/show_bug.cgi?id=37310 Implemented RenderThemeChromiumSkia::paintProgressBar(), extracing determinateProgressValueRectFor() from RenderThemeChromiumWin to RenderThemeChromiumSkia No new tests. Expectations will come after ENABLE_PROGRESS_BAR get enabled on chromium. * rendering/RenderThemeChromiumSkia.cpp: (WebCore::RenderThemeChromiumSkia::determinateProgressValueRectFor): (WebCore::RenderThemeChromiumSkia::indeterminateProgressValueRectFor): (WebCore::RenderThemeChromiumSkia::animationRepeatIntervalForProgressBar): (WebCore::RenderThemeChromiumSkia::animationDurationForProgressBar): (WebCore::RenderThemeChromiumSkia::paintProgressBar): (WebCore::RenderThemeChromiumSkia::progressValueRectFor): * rendering/RenderThemeChromiumSkia.h: * rendering/RenderThemeChromiumWin.cpp: (WebCore::RenderThemeChromiumWin::paintProgressBar): 2010-06-02 Nico Weber <thakis@chromium.org> Reviewed by Simon Fraser. Scroll events are sent twice per keypress for ports that don't have a platformWidget scrollbar https://bugs.webkit.org/show_bug.cgi?id=39918 This was regressed by http://trac.webkit.org/changeset/58615 . Fix this by slightly tweaking that patch. Test: editing/input/page-up-down-scrolls.html * page/FrameView.cpp: (WebCore::FrameView::scrollPositionChanged): * page/FrameView.h: * platform/ScrollView.cpp: (WebCore::ScrollView::valueChanged): * platform/ScrollView.h: (WebCore::ScrollView::repaintFixedElementsAfterScrolling): 2010-06-02 Andrey Kosyakov <caseq@chromium.org> Reviewed by Pavel Feldman. Web Inspector: use platform-specific key designations in shortcuts help for mac https://bugs.webkit.org/show_bug.cgi?id=39158 * inspector/front-end/KeyboardShortcut.js: (WebInspector.KeyboardShortcut.shortcutToString): (WebInspector.KeyboardShortcut._keyName): (WebInspector.KeyboardShortcut._modifiersToString): * inspector/front-end/inspector.js: (WebInspector._registerShortcuts): 2010-06-02 Kenneth Russell <kbr@google.com> Reviewed by Darin Fisher. Enable WebGL on more platforms even if accelerated compositing is disabled https://bugs.webkit.org/show_bug.cgi?id=40085 Conditionalize the code which prevents a WebGL rendering context from being created if accelerated compositing is disabled. Currently Chromium is the only port which will create a context if accelerated compositing is disabled; other ports may opt in to this code path if desired. Tested with existing WebGL layout tests in Safari and Chromium on Mac OS X. * html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::getContext): 2010-06-02 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r60580. http://trac.webkit.org/changeset/60580 https://bugs.webkit.org/show_bug.cgi?id=40087 This broke dragging links if the selection was in a contentEditable element. (Requested by arv on #webkit). * page/FocusController.cpp: (WebCore::clearSelectionIfNeeded): 2010-06-02 Erik Arvidsson <arv@chromium.org> Reviewed by Ojan Vafai. REGRESSION: Weird focus behavior affects quoting on University of Washington message board system https://bugs.webkit.org/show_bug.cgi?id=38548 Test: editing/selection/click-in-focusable-link-should-not-clear-selection.html * page/FocusController.cpp: (WebCore::clearSelectionIfNeeded): 2010-06-02 David Hyatt <hyatt@apple.com> Reviewed by Anders Carlsson. Just disable the current version of multi-column layout completely when the new pagination model is in effect. * rendering/RenderBlock.cpp: (WebCore::RenderBlock::setDesiredColumnCountAndWidth): 2010-06-02 David Hyatt <hyatt@apple.com> Reviewed by Anders Carlsson. Turn off unforced page breaking at paint time when the new page breaking model is being used. * rendering/RenderLineBoxList.cpp: (WebCore::RenderLineBoxList::paint): 2010-06-02 David Hyatt <hyatt@apple.com> Reviewed by Anders Carlsson. Don't check page break properties at paint time if we're using the new page breaking model. * rendering/RenderBlock.cpp: (WebCore::RenderBlock::paintChildren): 2010-06-02 Nate Chapin <japhet@chromium.org> Reviewed by Dimitri Glazkov. [V8] Fix an infinite recursion crash when trying to wrap media elements without a media player. No test because there isn't a good way to ensure the media player is off. * dom/make_names.pl: Call, e.g., V8HTMLElement::wrap(HTMLElement*) instead of toV8(HTMLElement*). 2010-06-02 Yael Aharon <yael.aharon@nokia.com> Reviewed by Darin Adler. Notification object ref counting is not correct. https://bugs.webkit.org/show_bug.cgi?id=39998 Return PassRefPtr<Notification> instead of a raw pointer from the create methods for Web Notifications. No new tests are needed, as existing tests show the problem when sending the "display" event asynchronously. * notifications/Notification.h: (WebCore::Notification::create): * notifications/NotificationCenter.h: (WebCore::NotificationCenter::createHTMLNotification): (WebCore::NotificationCenter::createNotification): 2010-06-02 Mikhail Naganov <mnaganov@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: add Console API for retrieving memory stats Add 'console.memory' property which returns an object. Currently it has two fields: totalJSHeapSize and usedJSHeapSize. Later, it can be extended for reporting total browser's memory consumption. https://bugs.webkit.org/show_bug.cgi?id=39646 * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * GNUmakefile.am: * WebCore.gypi: * WebCore.pri: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSBindingsAllInOne.cpp: * bindings/js/JSConsoleCustom.cpp: (WebCore::JSConsole::memory): * bindings/v8/custom/V8ConsoleCustom.cpp: (WebCore::V8Console::memoryAccessorGetter): * page/Console.h: * page/Console.idl: * page/MemoryInfo.cpp: Added. (WebCore::MemoryInfo::MemoryInfo): * page/MemoryInfo.h: Added. (WebCore::MemoryInfo::create): (WebCore::MemoryInfo::totalJSHeapSize): (WebCore::MemoryInfo::usedJSHeapSize): * page/MemoryInfo.idl: Added. 2010-06-02 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. Web Inspector: support "Continue to Here" in debugger https://bugs.webkit.org/show_bug.cgi?id=39953 * English.lproj/localizedStrings.js: * inspector/front-end/BreakpointManager.js: (WebInspector.BreakpointManager.prototype.setOneTimeBreakpoint): (WebInspector.BreakpointManager.prototype.removeOneTimeBreakpoint): (WebInspector.BreakpointManager.prototype.addBreakpoint): * inspector/front-end/ScriptView.js: (WebInspector.ScriptView): (WebInspector.ScriptView.prototype._continueToLine): * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype.continueToLine): (WebInspector.ScriptsPanel.prototype.debuggerPaused): * inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame): * inspector/front-end/SourceView.js: (WebInspector.SourceView): (WebInspector.SourceView.prototype._continueToLine): (WebInspector.SourceView.prototype.updateLocalContent): 2010-06-02 Mikhail Naganov <mnaganov@chromium.org> Unreviewed, rolling out r60563. http://trac.webkit.org/changeset/60563 https://bugs.webkit.org/show_bug.cgi?id=39646 windows build failed * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * GNUmakefile.am: * WebCore.gypi: * WebCore.pri: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSConsoleCustom.cpp: * bindings/v8/custom/V8ConsoleCustom.cpp: * page/Console.h: * page/Console.idl: * page/MemoryInfo.cpp: Removed. * page/MemoryInfo.h: Removed. * page/MemoryInfo.idl: Removed. 2010-06-02 Mikhail Naganov <mnaganov@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: add Console API for retrieving memory stats Add 'console.memory' property which returns an object. Currently it has two fields: totalJSHeapSize and usedJSHeapSize. Later, it can be extended for reporting total browser's memory consumption. https://bugs.webkit.org/show_bug.cgi?id=39646 * CMakeLists.txt: * DerivedSources.cpp: * DerivedSources.make: * GNUmakefile.am: * WebCore.gypi: * WebCore.pri: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSConsoleCustom.cpp: (WebCore::JSConsole::memory): * bindings/v8/custom/V8ConsoleCustom.cpp: (WebCore::V8Console::memoryAccessorGetter): * page/Console.h: * page/Console.idl: * page/MemoryInfo.cpp: Added. (WebCore::MemoryInfo::MemoryInfo): * page/MemoryInfo.h: Added. (WebCore::MemoryInfo::create): (WebCore::MemoryInfo::totalJSHeapSize): (WebCore::MemoryInfo::usedJSHeapSize): * page/MemoryInfo.idl: Added. 2010-06-02 Pavel Feldman <pfeldman@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: add test for resource parameters. https://bugs.webkit.org/show_bug.cgi?id=40026 Test: http/tests/inspector/resource-parameters.html * inspector/front-end/HAREntry.js: (WebInspector.HAREntry.prototype._buildParameters): * inspector/front-end/Resource.js: (WebInspector.Resource.prototype._parseParameters): * inspector/front-end/ResourceView.js: (WebInspector.ResourceView.prototype._refreshParms): 2010-06-02 Jocelyn Turcotte <jocelyn.turcotte@nokia.com> Reviewed by Simon Hausmann. [Qt] Fix make install on Symbian for headers in package builds when INSTALL_HEADERS is not defined First we wrote inst_headers.output with $$[QT_INSTALL_HEADERS] and then overwrote it with the $$INSTALL_HEADERS variant without checking if the variable was set. Fixed and cleaned up the logic of falling back to $$[QT_INSTALL_HEADERS]. * WebCore.pro: 2010-06-02 Xan Lopez <xlopez@igalia.com> Reviewed by Gustavo Noronha. [GTK] Style fixes for the generated code in DOM bindings https://bugs.webkit.org/show_bug.cgi?id=39949 Get rid of extra spaces and wrong indentation in the generated code. * bindings/scripts/CodeGeneratorGObject.pm: * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp: (webkit_dom_test_callback_callback_with_class1param): (webkit_dom_test_callback_callback_with_class2param): (webkit_dom_test_callback_callback_with_non_bool_return_type): (webkit_dom_test_callback_set_property): (webkit_dom_test_callback_get_property): * bindings/scripts/test/GObject/WebKitDOMTestCallback.h: * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp: (webkit_dom_test_interface_set_property): (webkit_dom_test_interface_get_property): * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: (webkit_dom_test_obj_void_method): (webkit_dom_test_obj_void_method_with_args): (webkit_dom_test_obj_int_method): (webkit_dom_test_obj_int_method_with_args): (webkit_dom_test_obj_obj_method): (webkit_dom_test_obj_obj_method_with_args): (webkit_dom_test_obj_method_that_requires_all_args): (webkit_dom_test_obj_method_that_requires_all_args_and_throws): (webkit_dom_test_obj_serialized_value): (webkit_dom_test_obj_method_with_exception): (webkit_dom_test_obj_with_dynamic_frame): (webkit_dom_test_obj_with_dynamic_frame_and_arg): (webkit_dom_test_obj_with_dynamic_frame_and_optional_arg): (webkit_dom_test_obj_with_dynamic_frame_and_user_gesture): (webkit_dom_test_obj_with_dynamic_frame_and_user_gesture_asad): (webkit_dom_test_obj_with_script_state_void): (webkit_dom_test_obj_with_script_state_obj): (webkit_dom_test_obj_with_script_state_void_exception): (webkit_dom_test_obj_with_script_state_obj_exception): (webkit_dom_test_obj_method_with_optional_arg): (webkit_dom_test_obj_method_with_non_optional_arg_and_optional_arg): (webkit_dom_test_obj_method_with_non_optional_arg_and_two_optional_args): (webkit_dom_test_obj_get_read_only_int_attr): (webkit_dom_test_obj_get_read_only_string_attr): (webkit_dom_test_obj_get_read_only_test_obj_attr): (webkit_dom_test_obj_get_int_attr): (webkit_dom_test_obj_set_int_attr): (webkit_dom_test_obj_get_long_long_attr): (webkit_dom_test_obj_set_long_long_attr): (webkit_dom_test_obj_get_unsigned_long_long_attr): (webkit_dom_test_obj_set_unsigned_long_long_attr): (webkit_dom_test_obj_get_string_attr): (webkit_dom_test_obj_set_string_attr): (webkit_dom_test_obj_get_test_obj_attr): (webkit_dom_test_obj_set_test_obj_attr): (webkit_dom_test_obj_get_attr_with_exception): (webkit_dom_test_obj_set_attr_with_exception): (webkit_dom_test_obj_get_attr_with_setter_exception): (webkit_dom_test_obj_set_attr_with_setter_exception): (webkit_dom_test_obj_get_attr_with_getter_exception): (webkit_dom_test_obj_set_attr_with_getter_exception): (webkit_dom_test_obj_get_script_string_attr): (webkit_dom_test_obj_set_property): (webkit_dom_test_obj_get_property): (webkit_dom_test_obj_class_init): * bindings/scripts/test/GObject/WebKitDOMTestObj.h: 2010-06-02 Andrey Kosyakov <caseq@chromium.org> Reviewed by Pavel Feldman. WebInspector: Added conversion of inspector's resource representation into HAR. Moved common resource accessors from ResourceView to Resource. https://bugs.webkit.org/show_bug.cgi?id=30567 Test: http/tests/inspector/resource-har-conversion.html * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * inspector/front-end/HAREntry.js: Added. (WebInspector.HAREntry): (WebInspector.HAREntry.prototype.build): (WebInspector.HAREntry.prototype._buildRequest): (WebInspector.HAREntry.prototype._buildResponse): (WebInspector.HAREntry.prototype._buildContent): (WebInspector.HAREntry.prototype._buildTimings): (WebInspector.HAREntry.prototype._buildHeaders): (WebInspector.HAREntry.prototype._buildPostData): (WebInspector.HAREntry.prototype._buildParameters): (WebInspector.HAREntry.prototype._buildParameter): (WebInspector.HAREntry.prototype._toMilliseconds): * inspector/front-end/Resource.js: (WebInspector.Resource): (WebInspector.Resource.prototype.set url): (WebInspector.Resource.prototype.get receiveDuration): (WebInspector.Resource.prototype.requestHeaderValue): (WebInspector.Resource.prototype.get requestFormData): (WebInspector.Resource.prototype.set requestFormData): (WebInspector.Resource.prototype.responseHeaderValue): (WebInspector.Resource.prototype.get queryParameters): (WebInspector.Resource.prototype.get formParameters): (WebInspector.Resource.prototype._parseParameters): (WebInspector.Resource.prototype._headerValue): * inspector/front-end/ResourceView.js: (WebInspector.ResourceView.prototype._refreshQueryString): (WebInspector.ResourceView.prototype._refreshFormData): (WebInspector.ResourceView.prototype._refreshParms): * inspector/front-end/WebKit.qrc: * inspector/front-end/inspector.html: 2010-06-02 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r60547. http://trac.webkit.org/changeset/60547 https://bugs.webkit.org/show_bug.cgi?id=40051 It made fast/overflow/overflow-with-local-background- attachment.html crash (Requested by Ossy on #webkit). * notifications/Notification.h: (WebCore::Notification::create): * notifications/NotificationCenter.h: (WebCore::NotificationCenter::createHTMLNotification): (WebCore::NotificationCenter::createNotification): 2010-06-02 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. HTML5 parser does not track line numbers https://bugs.webkit.org/show_bug.cgi?id=39984 This adds rudimentary line-number tracking to the HTML5Lexer. We'll still need to handle \r\n cases eventually, but this fixes the vast majority of our line-number related failures. Fixes 268 layout tests. :) * html/HTML5Lexer.cpp: (WebCore::HTML5Lexer::reset): - Reset m_lineNumber to 0. (WebCore::HTML5Lexer::consumeEntity): - Pass m_lineNumber to advance(). (WebCore::HTML5Lexer::nextToken): - Pass m_lineNumber to advance(). * html/HTML5Lexer.h: (WebCore::HTML5Lexer::lineNumber): - Expose m_lineNumber for HTML5Tokenizer. (WebCore::HTML5Lexer::columnNumber): - Mirrors the implementation in the old HTMLTokenizer. we might some day support column number tracking in the Lexer. It certainly would be possible. * html/HTML5ScriptRunner.cpp: (WebCore::HTML5ScriptRunner::HTML5ScriptRunner): - ASSERT we're passed a host. (WebCore::HTML5ScriptRunner::sourceFromPendingScript): - Use PendingScript.startingLineNumber when PendingScript is an inline script. (WebCore::HTML5ScriptRunner::execute): - Now expects a start line number passed from the TreeBuilder. (WebCore::HTML5ScriptRunner::runScript): - Now expects a start line number. * html/HTML5ScriptRunner.h: (WebCore::HTML5ScriptRunner::PendingScript::PendingScript): - Track startingLineNumber for any inline script. * html/HTML5Tokenizer.cpp: (WebCore::HTML5Tokenizer::begin): - Add a FIXME. The old HTMLTokenizer resets its "lexer" state here. (WebCore::HTML5Tokenizer::pumpLexer): - Pass scriptStartLine to the HTML5ScriptRunner (WebCore::HTML5Tokenizer::lineNumber): - Implementation for Tokenizer.h (WebCore::HTML5Tokenizer::columnNumber): - Implementation for Tokenizer.h * html/HTML5Tokenizer.h: * html/HTML5TreeBuilder.cpp: (WebCore::HTML5TreeBuilder::HTML5TreeBuilder): - Initialize the new line number tracking variables. (WebCore::HTML5TreeBuilder::handleScriptEndTag): - Save off the line number from the start tag to pass to the ScriptRunner. (WebCore::HTML5TreeBuilder::takeScriptToProcess): - Return the line number from the start tag. (WebCore::HTML5TreeBuilder::passTokenToLegacyParser): - Save off the line number of ever script start tag we see. * html/HTML5TreeBuilder.h: - Keep both the line number of the last start tag, and the line number of the script we know we're expecting our caller to run before resuming parsing. These are separate to keep the code clean, especially since the last script start tag line number is a hack specific to using the old HTMLParser. 2010-06-02 Joseph Pecoraro <joepeck@webkit.org> Reviewed by Pavel Feldman. Web Inspector: Timeline should nicely format the Timer timeout https://bugs.webkit.org/show_bug.cgi?id=40040 * inspector/front-end/TimelinePanel.js: (WebInspector.TimelinePanel.FormattedRecord.prototype._generatePopupContent): Format the Timer's timeout time. 2010-06-02 Vangelis Kokkevis <vangelis@chromium.org> Reviewed by Dimitri Glazkov. [Chromium] Clamp dirtyRect updates of composited layer contents to the size of the layer to avoid writing outside texture bounds. https://bugs.webkit.org/show_bug.cgi?id=40030 * platform/graphics/chromium/LayerChromium.cpp: (WebCore::LayerChromium::updateTextureContents): 2010-06-02 Yael Aharon <yael.aharon@nokia.com> Reviewed by Darin Adler. Notification object ref counting is not correct. https://bugs.webkit.org/show_bug.cgi?id=39998 Return PassRefPtr<Notification> instead of a raw pointer from the create methods for Web Notifications. No new tests are needed, as existing tests show the problem when sending the "display" event asynchronously. * notifications/Notification.h: (WebCore::Notification::create): * notifications/NotificationCenter.h: (WebCore::NotificationCenter::createHTMLNotification): (WebCore::NotificationCenter::createNotification): 2010-06-02 Qi Zhang <qi.2.zhang@nokia.com> Reviewed by Dirk Schulze. [Qt] Image shadow doesn't work https://bugs.webkit.org/show_bug.cgi?id=37804 Implement the code for image shadow * platform/graphics/qt/ImageQt.cpp: (WebCore::BitmapImage::draw): 2010-06-02 Vangelis Kokkevis <vangelis@chromium.org> Reviewed by Darin Fisher. Adding the precision qualifier to fragment shaders used by the GL compositor in chromium to turn them into valid GLSL ES. https://bugs.webkit.org/show_bug.cgi?id=40022 * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::initializeSharedGLObjects): 2010-06-02 Laszlo Gombos <laszlo.1.gombos@nokia.com> Reviewed by David Levin. Fix type qualifier is meaningless on cast type in SVGFEColorMatrixElement::build https://bugs.webkit.org/show_bug.cgi?id=40015 No new tests as there is no new functionality. Remove const from the cast type. * svg/SVGFEColorMatrixElement.cpp: (WebCore::SVGFEColorMatrixElement::build): 2010-06-02 Sterling Swigart <sswigart@google.com> Reviewed by David Levin. Image Resizer Patch 0: Added compilation argument to conditionally compile pending patches. https://bugs.webkit.org/show_bug.cgi?id=39906 * Configurations/FeatureDefines.xcconfig: * GNUmakefile.am: * WebCore.pri: 2010-06-01 Dirk Schulze <krit@webkit.org> Reviewed by Nikolas Zimmermann. SVG repaintRect should be empty if content got clipped away https://bugs.webkit.org/show_bug.cgi?id=39965 The SVG repaintRect of the renderer was not empty, if the content got clipped away. The MaskerData/ClipperData <-> RenderObject mapping is set up during the layout phase now, to be able to relayout a RenderObject, if it's repaintRect is empty. This has the following reason: We apply the object to the resource on painting at the moment. With an empty repaintRect, paint() quits earlier and therefore the object doesn't get applied to the resource. This can cause problems, if the resource get changed by animations or scripts. On a change, the resource tells all it's callers to relayout. If the reference to the caller (our RenderObject) is missing, the object won't ever update and therefore won't get drawn. We already have LayoutTests that cover this problem. The complete repaintRect calculation (including the smallest clipping area and shadow size calculation) moved from the renderers to SVGRenderSupport. This eliminates redundant code. * rendering/RenderPath.cpp: (WebCore::RenderPath::updateCachedBoundaries): * rendering/RenderSVGContainer.cpp: (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates): * rendering/RenderSVGImage.cpp: (WebCore::RenderSVGImage::repaintRectInLocalCoordinates): * rendering/RenderSVGResource.h: * rendering/RenderSVGResourceClipper.cpp: (WebCore::RenderSVGResourceClipper::resourceBoundingBox): * rendering/RenderSVGResourceClipper.h: * rendering/RenderSVGResourceFilter.cpp: (WebCore::RenderSVGResourceFilter::resourceBoundingBox): * rendering/RenderSVGResourceFilter.h: * rendering/RenderSVGResourceGradient.h: (WebCore::RenderSVGResourceGradient::resourceBoundingBox): * rendering/RenderSVGResourceMarker.h: (WebCore::RenderSVGResourceMarker::resourceBoundingBox): * rendering/RenderSVGResourceMasker.cpp: (WebCore::RenderSVGResourceMasker::resourceBoundingBox): * rendering/RenderSVGResourceMasker.h: * rendering/RenderSVGResourcePattern.h: (WebCore::RenderSVGResourcePattern::resourceBoundingBox): * rendering/RenderSVGResourceSolidColor.h: (WebCore::RenderSVGResourceSolidColor::resourceBoundingBox): * rendering/RenderSVGText.cpp: (WebCore::RenderSVGText::strokeBoundingBox): (WebCore::RenderSVGText::repaintRectInLocalCoordinates): * rendering/SVGRenderSupport.cpp: (WebCore::SVGRenderBase::intersectRepaintRectWithResources): * rendering/SVGRenderSupport.h: * rendering/SVGRenderTreeAsText.cpp: (WebCore::writeResources): * rendering/style/SVGRenderStyle.h: (WebCore::SVGRenderStyle::hasClipper): (WebCore::SVGRenderStyle::hasMasker): (WebCore::SVGRenderStyle::hasFilter): 2010-06-01 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r60539. http://trac.webkit.org/changeset/60539 https://bugs.webkit.org/show_bug.cgi?id=40043 Accidentally added an unreviewed and invalid change to the patch. (Requested by krit on #webkit). * rendering/RenderPath.cpp: (WebCore::RenderPath::updateCachedBoundaries): * rendering/RenderSVGContainer.cpp: (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates): * rendering/RenderSVGImage.cpp: (WebCore::RenderSVGImage::repaintRectInLocalCoordinates): * rendering/RenderSVGResource.h: * rendering/RenderSVGResourceClipper.cpp: (WebCore::RenderSVGResourceClipper::resourceBoundingBox): * rendering/RenderSVGResourceClipper.h: * rendering/RenderSVGResourceFilter.cpp: (WebCore::RenderSVGResourceFilter::resourceBoundingBox): * rendering/RenderSVGResourceFilter.h: * rendering/RenderSVGResourceGradient.h: (WebCore::RenderSVGResourceGradient::resourceBoundingBox): * rendering/RenderSVGResourceMarker.h: (WebCore::RenderSVGResourceMarker::resourceBoundingBox): * rendering/RenderSVGResourceMasker.cpp: (WebCore::RenderSVGResourceMasker::resourceBoundingBox): * rendering/RenderSVGResourceMasker.h: * rendering/RenderSVGResourcePattern.h: (WebCore::RenderSVGResourcePattern::resourceBoundingBox): * rendering/RenderSVGResourceSolidColor.h: (WebCore::RenderSVGResourceSolidColor::resourceBoundingBox): * rendering/RenderSVGText.cpp: (WebCore::RenderSVGText::strokeBoundingBox): (WebCore::RenderSVGText::repaintRectInLocalCoordinates): * rendering/SVGRenderSupport.cpp: (WebCore::SVGRenderBase::filterBoundingBoxForRenderer): (WebCore::SVGRenderBase::clipperBoundingBoxForRenderer): (WebCore::SVGRenderBase::maskerBoundingBoxForRenderer): * rendering/SVGRenderSupport.h: * rendering/SVGRenderTreeAsText.cpp: (WebCore::writeResources): * rendering/style/SVGRenderStyle.h: * svg/SVGColor.cpp: (WebCore::SVGColor::colorFromRGBColorString): 2010-06-01 Dirk Schulze <krit@webkit.org> Reviewed by Nikolas Zimmermann. SVG repaintRect should be empty if content got clipped away https://bugs.webkit.org/show_bug.cgi?id=39965 The SVG repaintRect of the renderer was not empty, if the content got clipped away. The MaskerData/ClipperData <-> RenderObject mapping is set up during the layout phase now, to be able to relayout a RenderObject, if it's repaintRect is empty. This has the following reason: We apply the object to the resource on painting at the moment. With an empty repaintRect, paint() quits earlier and therefore the object doesn't get applied to the resource. This can cause problems, if the resource get changed by animations or scripts. On a change, the resource tells all it's callers to relayout. If the reference to the caller (our RenderObject) is missing, the object won't ever update and therefore won't get drawn. We already have LayoutTests that cover this problem. The complete repaintRect calculation (including the smallest clipping area and shadow size calculation) moved from the renderers to SVGRenderSupport. This eliminates redundant code. * rendering/RenderPath.cpp: (WebCore::RenderPath::updateCachedBoundaries): * rendering/RenderSVGContainer.cpp: (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates): * rendering/RenderSVGImage.cpp: (WebCore::RenderSVGImage::repaintRectInLocalCoordinates): * rendering/RenderSVGResource.h: * rendering/RenderSVGResourceClipper.cpp: (WebCore::RenderSVGResourceClipper::resourceBoundingBox): * rendering/RenderSVGResourceClipper.h: * rendering/RenderSVGResourceFilter.cpp: (WebCore::RenderSVGResourceFilter::resourceBoundingBox): * rendering/RenderSVGResourceFilter.h: * rendering/RenderSVGResourceGradient.h: (WebCore::RenderSVGResourceGradient::resourceBoundingBox): * rendering/RenderSVGResourceMarker.h: (WebCore::RenderSVGResourceMarker::resourceBoundingBox): * rendering/RenderSVGResourceMasker.cpp: (WebCore::RenderSVGResourceMasker::resourceBoundingBox): * rendering/RenderSVGResourceMasker.h: * rendering/RenderSVGResourcePattern.h: (WebCore::RenderSVGResourcePattern::resourceBoundingBox): * rendering/RenderSVGResourceSolidColor.h: (WebCore::RenderSVGResourceSolidColor::resourceBoundingBox): * rendering/RenderSVGText.cpp: (WebCore::RenderSVGText::strokeBoundingBox): (WebCore::RenderSVGText::repaintRectInLocalCoordinates): * rendering/SVGRenderSupport.cpp: (WebCore::SVGRenderBase::intersectRepaintRectWithResources): * rendering/SVGRenderSupport.h: * rendering/SVGRenderTreeAsText.cpp: (WebCore::writeResources): * rendering/style/SVGRenderStyle.h: (WebCore::SVGRenderStyle::hasClipper): (WebCore::SVGRenderStyle::hasMasker): (WebCore::SVGRenderStyle::hasFilter): 2010-06-01 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r60530. http://trac.webkit.org/changeset/60530 https://bugs.webkit.org/show_bug.cgi?id=40041 resource-har-conversion failed on GTK (Requested by abarth on #webkit). * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * inspector/front-end/HAREntry.js: Removed. * inspector/front-end/Resource.js: (WebInspector.Resource): (WebInspector.Resource.prototype.set url): * inspector/front-end/ResourceView.js: (WebInspector.ResourceView.prototype._refreshQueryString): (WebInspector.ResourceView.prototype._refreshFormData): (WebInspector.ResourceView.prototype._refreshParms): * inspector/front-end/WebKit.qrc: * inspector/front-end/inspector.html: 2010-06-01 No'am Rosenthal <noam.rosenthal@nokia.com> Reviewed by Kenneth Rohde Christiansen. [Qt] GraphicsLayer: warnings when reloading page https://bugs.webkit.org/show_bug.cgi?id=39694 Made sure recaching and masks aren't attempted on zero-size layers. No new tests. Old tests (e.g. LayoutTests/compositing/masks) show the problem. * platform/graphics/qt/GraphicsLayerQt.cpp: (WebCore::MaskEffectQt::draw): (WebCore::GraphicsLayerQtImpl::recache): 2010-06-01 anton muhin <antonm@google.com> Reviewed by Nate Chapin. [Chromium] enforce presence of named property query callback if named property enumerator is present https://bugs.webkit.org/show_bug.cgi?id=40006 We need to be able to distinguish between enumerable and not enumerable properties in the presence of named interceptor. V8 is migrating to use query callback to report enumerable properties and fallback check--- using getter callback---would report properties as not enumerable. Thus if there is an enumerator callback, there should be query callback as well. (see V8's r4751). * bindings/scripts/CodeGeneratorV8.pm: * bindings/v8/V8NPObject.cpp: (WebCore::npObjectQueryProperty): (WebCore::createV8ObjectForNPObject): * bindings/v8/custom/V8StorageCustom.cpp: (WebCore::V8Storage::namedPropertyQuery): 2010-06-01 Andrey Kosyakov <caseq@chromium.org> Reviewed by Pavel Feldman. WebInspector: Added conversion of inspector's resource representation into HAR. Moved common resource accessors from ResourceView to Resource. https://bugs.webkit.org/show_bug.cgi?id=30567 Test: http/tests/inspector/resource-har-conversion.html * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * inspector/front-end/HAREntry.js: Added. (WebInspector.HAREntry): (WebInspector.HAREntry.prototype.build): (WebInspector.HAREntry.prototype._buildRequest): (WebInspector.HAREntry.prototype._buildResponse): (WebInspector.HAREntry.prototype._buildContent): (WebInspector.HAREntry.prototype._buildTimings): (WebInspector.HAREntry.prototype._buildHeaders): (WebInspector.HAREntry.prototype._buildPostData): (WebInspector.HAREntry.prototype._buildParameters): (WebInspector.HAREntry.prototype._buildParameter): (WebInspector.HAREntry.prototype._toMilliseconds): * inspector/front-end/Resource.js: (WebInspector.Resource): (WebInspector.Resource.prototype.set url): (WebInspector.Resource.prototype.get receiveDuration): (WebInspector.Resource.prototype.requestHeaderValue): (WebInspector.Resource.prototype.get requestFormData): (WebInspector.Resource.prototype.set requestFormData): (WebInspector.Resource.prototype.responseHeaderValue): (WebInspector.Resource.prototype.get queryParameters): (WebInspector.Resource.prototype.get formParameters): (WebInspector.Resource.prototype._parseParameters): (WebInspector.Resource.prototype._headerValue): * inspector/front-end/ResourceView.js: (WebInspector.ResourceView.prototype._refreshQueryString): (WebInspector.ResourceView.prototype._refreshFormData): (WebInspector.ResourceView.prototype._refreshParms): * inspector/front-end/WebKit.qrc: * inspector/front-end/inspector.html: 2010-06-01 Laszlo Gombos <laszlo.1.gombos@nokia.com> Reviewed by Kenneth Rohde Christiansen. Fix "variable may be used before being set" warning in TextResourceDecoder::checkForHeadCharset https://bugs.webkit.org/show_bug.cgi?id=40001 No new tests as there is no new functionality. Initialize len to 0 just to eliminate the compiler warning. * loader/TextResourceDecoder.cpp: (WebCore::TextResourceDecoder::checkForHeadCharset): 2010-06-01 Ilya Tikhonovsky <loislo@chromium.org> Reviewed by Pavel Feldman. WebInspector: Safari specific files InspectorFrontendClientLocal were removed from chromium project. https://bugs.webkit.org/show_bug.cgi?id=39993 * WebCore.gypi: 2010-06-01 Andreas Kling <andreas.kling@nokia.com> Reviewed by Darin Adler. Fix broken code generation in GenerateParametersCheckExpression. https://bugs.webkit.org/show_bug.cgi?id=39960 * bindings/scripts/CodeGeneratorJS.pm: * bindings/scripts/test/JS/JSTestObj.cpp: Updated baseline. 2010-06-01 Mark Rowe <mrowe@apple.com> Rubber-stamped by Adam Roben. Remove Breakpoint.js. It was emptied in r60450 but for some reason it was not deleted at that time. The presence of empty files within the inspector's resource folder causes Mac OS X production builds to fail. * inspector/front-end/Breakpoint.js: Removed. 2010-05-24 James Hawkins <jhawkins@chromium.org> Reviewed by Darin Fisher. Added ability for PopupMenuClient to signal when * selection changed, and * selection cleared. https://bugs.webkit.org/show_bug.cgi?id=39639 No new tests because this functionality is intentionally hidden from everything other than renderer. * platform/PopupMenuClient.h: * platform/chromium/PopupMenuChromium.cpp: (WebCore::PopupListBox::selectIndex): (WebCore::PopupListBox::clearSelection): * rendering/RenderMenuList.h: (WebCore::RenderMenuList::RenderMenuList::selectionChanged): (WebCore::RenderMenuList::RenderMenuList::selectionCleared): * rendering/RenderTextControlSingleLine.h: (WebCore::RenderTextControlSingleLine::selectionChanged): (WebCore::RenderTextControlSingleLine::selectionCleared): 2010-06-01 Dumitru Daniliuc <dumi@chromium.org> Reviewed by Dimitri Glazkov. Check if a database needs to be auto-vacuumed only after transactions that have deleted something. https://bugs.webkit.org/show_bug.cgi?id=39688 * storage/Database.cpp: (WebCore::Database::resetDeletes): (WebCore::Database::hadDeletes): * storage/Database.h: * storage/DatabaseAuthorizer.cpp: (WebCore::DatabaseAuthorizer::resetDeletes): (WebCore::DatabaseAuthorizer::dropTable): (WebCore::DatabaseAuthorizer::dropTempTable): (WebCore::DatabaseAuthorizer::dropIndex): (WebCore::DatabaseAuthorizer::dropTempIndex): (WebCore::DatabaseAuthorizer::dropTrigger): (WebCore::DatabaseAuthorizer::dropTempTrigger): (WebCore::DatabaseAuthorizer::dropView): (WebCore::DatabaseAuthorizer::dropTempView): (WebCore::DatabaseAuthorizer::dropVTable): (WebCore::DatabaseAuthorizer::allowDelete): (WebCore::DatabaseAuthorizer::updateDeletesBasedOnTableName): Added. * storage/DatabaseAuthorizer.h: (WebCore::DatabaseAuthorizer::hadDeletes): * storage/SQLTransaction.cpp: (WebCore::SQLTransaction::openTransactionAndPreflight): (WebCore::SQLTransaction::postflightAndCommit): 2010-06-01 David Hyatt <hyatt@apple.com> Reviewed by Anders Carlsson. Add a preference for paginating during layout (the new model for computing page breaks). * page/Settings.cpp: (WebCore::Settings::Settings): * page/Settings.h: (WebCore::Settings::setPaginateDuringLayoutEnabled): (WebCore::Settings::paginateDuringLayoutEnabled): 2010-06-01 Dumitru Daniliuc <dumi@chromium.org> Reviewed by Adam Barth. Clean up the DB classes in preparation for a bigger refactoring. https://bugs.webkit.org/show_bug.cgi?id=39041 * storage/ChangeVersionWrapper.cpp: * storage/ChangeVersionWrapper.h: * storage/Database.cpp: (WebCore::Database::Database): (WebCore::Database::lastActionChangedDatabase): (WebCore::Database::lastActionWasInsert): (WebCore::Database::inProgressTransactionCompleted): (WebCore::Database::securityOrigin): * storage/Database.h: (WebCore::Database::sqliteDatabase): (WebCore::Database::databaseDebugName): * storage/DatabaseTask.cpp: (WebCore::DatabaseTransactionTask::doPerformTask): * storage/DatabaseTask.h: * storage/SQLStatement.cpp: (WebCore::SQLStatement::execute): * storage/SQLStatement.h: * storage/SQLTransaction.cpp: (WebCore::SQLTransaction::SQLTransaction): (WebCore::SQLTransaction::openTransactionAndPreflight): (WebCore::SQLTransaction::runStatements): (WebCore::SQLTransaction::runCurrentStatement): (WebCore::SQLTransaction::postflightAndCommit): (WebCore::SQLTransaction::cleanupAfterSuccessCallback): (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): * storage/SQLTransaction.h: 2010-06-01 Rob Buis <rwlbuis@gmail.com> Reviewed by Nikolas Zimmermann. Large SVG rect with shadow fails to render https://bugs.webkit.org/show_bug.cgi?id=38851 Store intermediate shadow calculation in floats to prevent integer overflow. Test: svg/filters/shadow-on-rect-large.svg * rendering/style/SVGRenderStyle.cpp: (WebCore::getSVGShadowExtent): (WebCore::SVGRenderStyle::inflateForShadow): 2010-06-01 Jer Noble <jer.noble@apple.com> Reviewed by Sam Weinig. QuickTime 7.6.4 + Safari Nightly = Crash https://bugs.webkit.org/show_bug.cgi?id=40019 rdar://problem/8035443 Check the return value of QTCFPropertyListCreateXMLData before calling CFDataGetLength(). * platform/graphics/win/QTCFDictionary.cpp: (QTCFDictionaryCreateCopyWithDataCallback): 2010-06-01 Rob Buis <rwlbuis@gmail.com> Reviewed by Dirk Schulze. Manipulating SVG element attributes in Javascript does not work as expected https://bugs.webkit.org/show_bug.cgi?id=34328 Reset the viewBox to be empty when removing the viewBox attribute. Test: svg/custom/svg-viewBox-dynamic.html * svg/SVGFitToViewBox.cpp: (WebCore::SVGFitToViewBox::parseViewBox): (WebCore::SVGFitToViewBox::parseMappedAttribute): * svg/SVGFitToViewBox.h: * svg/SVGViewSpec.cpp: (WebCore::SVGViewSpec::setViewBoxString): (WebCore::SVGViewSpec::parseViewSpec): 2010-06-01 Chris Fleizach <cfleizach@apple.com> Reviewed by Beth Dakin. AX: WebKit doesn't call [super -accessibilityAttributeValue:attribute forParameter:] when it encounters a parameterized attribute that it doesn't handle. https://bugs.webkit.org/show_bug.cgi?id=39324 There are some parameters that super handles that are not explicitly returned by the list of the element's attributes. In those cases, super should handle. * accessibility/mac/AccessibilityObjectWrapper.mm: (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]): 2010-05-28 David Hyatt <hyatt@apple.com> Reviewed by Beth Dakin. https://bugs.webkit.org/show_bug.cgi?id=15550, complete implementation of column-span. Add support for nested column spans. When a column span is nested inside multiple enclosing blocks, the blocks have to be split around the column-span. We do this using block element continuations, the same kind of solution we employed for blocks inside inlines. The code for block continuations is very similar to the code for inline continuations. It may be possible to refactor the code into RenderBoxModelObject so that more of it can be shared, but this first pass avoids that so as not to risk causing any regressions in core rendering. Note also that - just as with inline continuations - you can't unsplit block continuations yet. There is no technical limitation here... the functions just need to be written to handle it. Added new tests in fast/multicol/span. * rendering/RenderBlock.cpp: (WebCore::RenderBlock::styleDidChange): (WebCore::RenderBlock::continuationBefore): (WebCore::RenderBlock::addChildToContinuation): (WebCore::RenderBlock::containingColumnsBlock): (WebCore::RenderBlock::clone): (WebCore::RenderBlock::splitBlocks): (WebCore::RenderBlock::splitFlow): (WebCore::RenderBlock::splitAnonymousBlocksAroundChild): (WebCore::RenderBlock::makeChildrenAnonymousColumnBlocks): (WebCore::RenderBlock::columnsBlockForSpanningElement): (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks): (WebCore::RenderBlock::addChild): (WebCore::RenderBlock::addChildIgnoringContinuation): (WebCore::RenderBlock::blockElementContinuation): (WebCore::RenderBlock::layoutColumns): * rendering/RenderBlock.h: 2010-06-01 Alexey Proskuryakov <ap@apple.com> Build fix. Hopefully, touching WebCore.base.exp will actually rebuild the export file. * WebCore.Geolocation.exp: * WebCore.base.exp: 2010-06-01 Dumitru Daniliuc <dumi@chromium.org> Reviewed by Adam Barth. Execute void callbacks in the context they were created in. https://bugs.webkit.org/show_bug.cgi?id=39145 * bindings/v8/custom/V8CustomVoidCallback.cpp: (WebCore::V8CustomVoidCallback::V8CustomVoidCallback): (WebCore::V8CustomVoidCallback::handleEvent): * bindings/v8/custom/V8CustomVoidCallback.h: 2010-06-01 Alexey Proskuryakov <ap@apple.com> Reviewed by Sam Weinig. https://bugs.webkit.org/show_bug.cgi?id=39434 REGRESSION (r59811): Geolocation callbacks cannot be created * DerivedSources.make: Don't append both WebCore.Geolocation.exp and WebCore.ClientBasedGeolocation.exp, they are mutually exclusive. * WebCore.Geolocation.exp: Touched to force .exp file rebuild. * WebCore.xcodeproj/project.pbxproj: Removed GeolocationService related files. * bindings/js/JSGeolocationCustom.cpp: (WebCore::createPositionCallback): Functions defined in JavaScript code no longer inherit from InternalFunction, they inherit from JSFunction. This check is still imperfect, because it's not clear what definition of "function" should really be used, if any - other bindings code never checks callback type. (WebCore::createPositionErrorCallback): Ditto. * page/Geolocation.h: Don't include GeolocationService.h unless it's going to be used. 2010-06-01 Jeremy Orlow <jorlow@chromium.org> Reviewed by Darin Fisher. IndexedDB cleanup https://bugs.webkit.org/show_bug.cgi?id=40007 Remove the exception code parameter since this function can no longer cause an exception. * storage/IDBObjectStoreRequest.idl: * storage/IndexedDatabase.h: * storage/IndexedDatabaseImpl.cpp: (WebCore::IndexedDatabaseImpl::open): * storage/IndexedDatabaseImpl.h: * storage/IndexedDatabaseRequest.cpp: (WebCore::IndexedDatabaseRequest::open): * storage/IndexedDatabaseRequest.h: * storage/IndexedDatabaseRequest.idl: 2010-06-01 Martin Robinson <mrobinson@igalia.com> Reviewed by Xan Lopez. [GTK] Double clicks cause three button press events https://bugs.webkit.org/show_bug.cgi?id=38853 Add GOwnPtr wrapper for GdkEvent and expose a setter for PlatformMouseEvent::m_clickCount. * GNUmakefile.am: Add GOwnPtrGtk.{cpp,h} to the sources list. * platform/PlatformMouseEvent.h: (WebCore::PlatformMouseEvent::setClickCount): Added. * platform/gtk/GOwnPtrGtk.cpp: Added. (WTF::GdkEvent): * platform/gtk/GOwnPtrGtk.h: Added. 2010-06-01 Adam Langley <agl@chromium.org> Reviewed by Eric Seidel. [chromium] respect the user's embedded bitmap settings on Linux. We plumbed everything through Skia and Chrome, but forgot to connect the two wires inside WebCore. (Note: no layout test because test_shell forces this option off. Also, the test font which triggers this behaviour is 32MB.) https://bugs.webkit.org/show_bug.cgi?id=39894 http://code.google.com/p/chromium/issues/detail?id=21149 * platform/graphics/chromium/FontPlatformDataLinux.cpp: (WebCore::FontPlatformData::setupPaint): 2010-06-01 Simon Hausmann <simon.hausmann@nokia.com> Reviewed by Laszlo Gombos. [Qt] Fix installation of the QtWebKit module .pri file when building inside of Qt * WebCore.pro: 2010-06-01 Jocelyn Turcotte <jocelyn.turcotte@nokia.com> Reviewed by Simon Hausmann. [Qt] Fix a QtWebKit.pc corruption problem. https://bugs.webkit.org/show_bug.cgi?id=36826 The problem occurs while installing QtWebKit from trunk or a source package. * WebCore.pro: 2010-06-01 Simon Hausmann <simon.hausmann@nokia.com> Reviewed by Laszlo Gombos. [Qt] Fix Symbian package dependencies of apps against QtWebKit when installing into Qt Install the versioning qt_webkit_version.pri into $$[QMAKE_MKSPECS]/modules, which is where mkspecs/features/qt.prf expects it. * WebCore.pro: 2010-06-01 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r60470. http://trac.webkit.org/changeset/60470 https://bugs.webkit.org/show_bug.cgi?id=39990 Need to rollout until bot can be updated (Requested by jorlow on #webkit). * bindings/scripts/CodeGeneratorV8.pm: * bindings/v8/ScriptController.cpp: (WebCore::ScriptController::namedItemAdded): (WebCore::ScriptController::namedItemRemoved): * bindings/v8/V8DOMWindowShell.cpp: (WebCore::V8DOMWindowShell::updateDocumentWrapperCache): * bindings/v8/V8DOMWindowShell.h: * bindings/v8/V8DOMWrapper.cpp: (WebCore::V8DOMWrapper::instantiateV8Object): * bindings/v8/custom/V8HTMLDocumentCustom.cpp: (WebCore::V8HTMLDocument::namedPropertyDeleter): (WebCore::V8HTMLDocument::namedPropertyGetter): (WebCore::V8HTMLDocument::indexedPropertyGetter): (WebCore::V8HTMLDocument::allAccessorSetter): (WebCore::toV8): 2010-06-01 Anton Muhin <antonm@chromium.org> Reviewed by Nate Chapin. [Chromium] get rid of named interceptor on HTMLDocument and introduce/remove accessors when named items get deleted/removed https://bugs.webkit.org/show_bug.cgi?id=39877 This patch makes callbacks invoked on named items addition/removal install API accessors and thus there is no more need in named and indexed interceptors on HTMLDocument which speeds up invocation of methods on document. * bindings/scripts/CodeGeneratorV8.pm: * bindings/v8/ScriptController.cpp: (WebCore::ScriptController::namedItemAdded): (WebCore::ScriptController::namedItemRemoved): * bindings/v8/V8DOMWindowShell.cpp: (WebCore::checkDocumentWrapper): (WebCore::V8DOMWindowShell::updateDocumentWrapperCache): (WebCore::getter): (WebCore::V8DOMWindowShell::namedItemAdded): (WebCore::V8DOMWindowShell::namedItemRemoved): * bindings/v8/V8DOMWindowShell.h: * bindings/v8/V8DOMWrapper.cpp: (WebCore::V8DOMWrapper::instantiateV8Object): * bindings/v8/custom/V8HTMLDocumentCustom.cpp: (WebCore::V8HTMLDocument::WrapInShadowObject): (WebCore::V8HTMLDocument::GetNamedProperty): (WebCore::V8HTMLDocument::allAccessorSetter): (WebCore::toV8): 2010-06-01 Zoltan Herczeg <zherczeg@webkit.org> Reviewed by Dirk Schulze. Make the spot light anti-alias effect look similar to SVG expected values. https://bugs.webkit.org/show_bug.cgi?id=39477 The W3 standard only mention, that the edge of the spotlight should be anti-aliased but it does not specify how. The provided expected values gives some hint about their intentions. The algorithm uses a fixed range, which computed as follows: let a = cos(spot light cutoff range) the light fades off in the [a-0.016, a] range. Test: svg/W3C-SVG-1.1/filters-light-04-f.svg Updated pixel test: svg/W3C-SVG-1.1/filters-light-01-f.svg * svg/graphics/filters/SVGLightSource.cpp: (WebCore::SpotLightSource::initPaintingData): 2010-05-31 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Fix default action for EndTagOpenState https://bugs.webkit.org/show_bug.cgi?id=39982 Add a test for a bogus end tag to webkit01.dat and update expected results now that we pass some more tests. Adding this test revealed a bug in resuming the bogus comment state. I've left these broken expectations, but I'll fix the bug in a future patch. (The bug existed prior to this patch, just not the test.) * html5lib/resources/webkit01.dat: * html5lib/runner-expected-html5.txt: * html5lib/webkit-resumer-expected-html5.txt: 2010-05-31 Lyon Chen <liachen@rim.com> Reviewed by Kent Tamura. Enum value FORWARD, BACKWARD, RIGHT, LEFT are causing macro conflicts. https://bugs.webkit.org/show_bug.cgi?id=35530 Change enum EAlteration from { MOVE, EXTEND } to { AlterationMove, AlterationExtend } and enum EDirection { FORWARD, BACKWARD, RIGHT, LEFT} to { DirectionForward, DirectionBackward, DirectionRight, DirectionLeft } to avoid macro conflict, and also better coding style conformance. * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::visiblePositionRangeForLine): (WebCore::AccessibilityRenderObject::doAXRangeForLine): * editing/Editor.cpp: (WebCore::Editor::deleteWithDirection): (WebCore::Editor::markMisspellingsAfterTypingToPosition): (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): * editing/EditorCommand.cpp: (WebCore::executeDeleteBackward): (WebCore::executeDeleteBackwardByDecomposingPreviousCharacter): (WebCore::executeDeleteForward): (WebCore::executeDeleteToBeginningOfLine): (WebCore::executeDeleteToBeginningOfParagraph): (WebCore::executeDeleteToEndOfLine): (WebCore::executeDeleteToEndOfParagraph): (WebCore::executeDeleteWordBackward): (WebCore::executeDeleteWordForward): (WebCore::executeForwardDelete): (WebCore::executeMoveBackward): (WebCore::executeMoveBackwardAndModifySelection): (WebCore::executeMoveDown): (WebCore::executeMoveDownAndModifySelection): (WebCore::executeMoveForward): (WebCore::executeMoveForwardAndModifySelection): (WebCore::executeMoveLeft): (WebCore::executeMoveLeftAndModifySelection): (WebCore::executeMovePageDown): (WebCore::executeMovePageDownAndModifySelection): (WebCore::executeMovePageUp): (WebCore::executeMovePageUpAndModifySelection): (WebCore::executeMoveRight): (WebCore::executeMoveRightAndModifySelection): (WebCore::executeMoveToBeginningOfDocument): (WebCore::executeMoveToBeginningOfDocumentAndModifySelection): (WebCore::executeMoveToBeginningOfLine): (WebCore::executeMoveToBeginningOfLineAndModifySelection): (WebCore::executeMoveToBeginningOfParagraph): (WebCore::executeMoveToBeginningOfParagraphAndModifySelection): (WebCore::executeMoveToBeginningOfSentence): (WebCore::executeMoveToBeginningOfSentenceAndModifySelection): (WebCore::executeMoveToEndOfDocument): (WebCore::executeMoveToEndOfDocumentAndModifySelection): (WebCore::executeMoveToEndOfSentence): (WebCore::executeMoveToEndOfSentenceAndModifySelection): (WebCore::executeMoveToEndOfLine): (WebCore::executeMoveToEndOfLineAndModifySelection): (WebCore::executeMoveToEndOfParagraph): (WebCore::executeMoveToEndOfParagraphAndModifySelection): (WebCore::executeMoveParagraphBackwardAndModifySelection): (WebCore::executeMoveParagraphForwardAndModifySelection): (WebCore::executeMoveUp): (WebCore::executeMoveUpAndModifySelection): (WebCore::executeMoveWordBackward): (WebCore::executeMoveWordBackwardAndModifySelection): (WebCore::executeMoveWordForward): (WebCore::executeMoveWordForwardAndModifySelection): (WebCore::executeMoveWordLeft): (WebCore::executeMoveWordLeftAndModifySelection): (WebCore::executeMoveWordRight): (WebCore::executeMoveWordRightAndModifySelection): (WebCore::executeMoveToLeftEndOfLine): (WebCore::executeMoveToLeftEndOfLineAndModifySelection): (WebCore::executeMoveToRightEndOfLine): (WebCore::executeMoveToRightEndOfLineAndModifySelection): * editing/SelectionController.cpp: (WebCore::SelectionController::willBeModified): (WebCore::SelectionController::modify): * editing/SelectionController.h: (WebCore::SelectionController::): * editing/TypingCommand.cpp: (WebCore::TypingCommand::deleteKeyPressed): (WebCore::TypingCommand::forwardDeleteKeyPressed): * page/DOMSelection.cpp: (WebCore::DOMSelection::modify): (WebCore::DOMSelection::deleteFromDocument): * page/EventHandler.cpp: (WebCore::EventHandler::handleKeyboardSelectionMovement): 2010-05-31 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. REGRESSION(60409): window.onload never fires when using HTML5 parser https://bugs.webkit.org/show_bug.cgi?id=39981 * html/HTML5Tokenizer.cpp: (WebCore::HTML5Tokenizer::finish): - The logic was just wrong here. We should only be setting m_wasWaitingOnScriptsDuringFinish if isWaitingForScripts() is true, and we should be calling end() when it is not. (WebCore::HTML5Tokenizer::resumeParsingAfterScriptExecution): - Add another ASSERT to catch cases like this. * html/HTML5TreeBuilder.cpp: (WebCore::HTML5TreeBuilder::finished): - Add a comment about why we don't need to call m_document->finishedParsing() 2010-05-31 Tony Chang <tony@chromium.org> Reviewed by Dan Bernstein. REGRESSION (r58665): Infinite recursion in Position::getInlineBoxAndOffset() https://bugs.webkit.org/show_bug.cgi?id=39946 r58665 added an infinite recursion check, but didn't take into consideration recursion between two Positions. This adds a check for when downstreamIgnoringEditingBoundaries(p1) == p2 and upstreamIgnoringEditingBoundaries(p2) == p1 Test: editing/selection/mixed-editability-12.html * dom/Position.cpp: (WebCore::Position::getInlineBoxAndOffset): 2010-05-31 Leo Yang <leo.yang@torchmobile.com.cn> Reviewed by George Staikos. Fix canvas.toDataURL(type, quality, ...) to let it support quality parameter. And implement it in Qt port. https://bugs.webkit.org/show_bug.cgi?id=37304 Tests: platform/qt/fast/canvas/toDataURL-jpeg-alpha.html platform/qt/fast/canvas/toDataURL-jpeg-primarycolors.html platform/qt/fast/canvas/toDataURL-jpeg-quality-basic.html platform/qt/fast/canvas/toDataURL-jpeg-quality-notnumber.html platform/qt/fast/canvas/toDataURL-jpeg-quality-outsiderange.html * bindings/js/JSHTMLCanvasElementCustom.cpp: (WebCore::JSHTMLCanvasElement::toDataURL): * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp: (WebCore::V8HTMLCanvasElement::toDataURLCallback): * dom/CanvasSurface.cpp: (WebCore::CanvasSurface::toDataURL): * dom/CanvasSurface.h: (WebCore::CanvasSurface::toDataURL): * html/HTMLCanvasElement.idl: * platform/graphics/ImageBuffer.h: * platform/graphics/cairo/ImageBufferCairo.cpp: (WebCore::ImageBuffer::toDataURL): * platform/graphics/cg/ImageBufferCG.cpp: (WebCore::ImageBuffer::toDataURL): * platform/graphics/haiku/ImageBufferHaiku.cpp: (WebCore::ImageBuffer::toDataURL): * platform/graphics/qt/ImageBufferQt.cpp: (WebCore::ImageBuffer::toDataURL): * platform/graphics/skia/ImageBufferSkia.cpp: (WebCore::ImageBuffer::toDataURL): * platform/graphics/wince/ImageBufferWince.cpp: (WebCore::ImageBuffer::toDataURL): * platform/graphics/wx/ImageBufferWx.cpp: (WebCore::ImageBuffer::toDataURL): 2010-05-31 Lucas De Marchi <lucas.demarchi@profusion.mobi> Reviewed by Kenneth Rohde Christiansen. [EFL] Add Context Menu implementation https://bugs.webkit.org/show_bug.cgi?id=39821 * platform/ContextMenu.h: add port-specific attributes. * platform/ContextMenuItem.h: create PlatformMenuItemDescription as in other ports (WebCore::PlatformMenuItemDescription::PlatformMenuItemDescription): * platform/efl/ContextMenuEfl.cpp:implement needed methods for this port. (WebCore::ContextMenu::ContextMenu): (WebCore::ContextMenu::~ContextMenu): (WebCore::ContextMenu::appendItem): (WebCore::ContextMenu::setPlatformDescription): (WebCore::ContextMenu::releasePlatformDescription): * platform/efl/ContextMenuItemEfl.cpp: implement needed methods for this port. (WebCore::ContextMenuItem::ContextMenuItem): (WebCore::ContextMenuItem::~ContextMenuItem): (WebCore::ContextMenuItem::releasePlatformDescription): (WebCore::ContextMenuItem::type): (WebCore::ContextMenuItem::setType): (WebCore::ContextMenuItem::action): (WebCore::ContextMenuItem::setAction): (WebCore::ContextMenuItem::title): (WebCore::ContextMenuItem::setTitle): (WebCore::ContextMenuItem::platformSubMenu): (WebCore::ContextMenuItem::setSubMenu): (WebCore::ContextMenuItem::checked): (WebCore::ContextMenuItem::setChecked): (WebCore::ContextMenuItem::enabled): (WebCore::ContextMenuItem::setEnabled): 2010-05-31 Ilya Tikhonovsky <loislo@chromium.org> Reviewed by Pavel Feldman. WebInspector: Classes for native serialization to JSON were implemented. https://bugs.webkit.org/show_bug.cgi?id=34204 * GNUmakefile.am: * WebCore.Inspector.exp: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * inspector/InspectorValues.cpp: Added. (WebCore::escapeChar): (WebCore::doubleQuoteString): (WebCore::InspectorBaseValue::toJSONString): (WebCore::InspectorBaseValue::writeJSON): (WebCore::InspectorValue::writeJSON): (WebCore::InspectorString::writeJSON): (WebCore::InspectorObject::writeJSON): (WebCore::InspectorArray::writeJSON): * inspector/InspectorValues.h: Added. (WebCore::InspectorBaseValue::InspectorBaseValue): (WebCore::InspectorBaseValue::~InspectorBaseValue): (WebCore::InspectorBaseValue::null): (WebCore::InspectorBaseValue::): (WebCore::InspectorBaseValue::type): (WebCore::InspectorValue::create): (WebCore::InspectorValue::InspectorValue): (WebCore::InspectorValue::): (WebCore::InspectorString::create): (WebCore::InspectorString::InspectorString): (WebCore::InspectorObject::create): (WebCore::InspectorObject::~InspectorObject): (WebCore::InspectorObject::InspectorObject): (WebCore::InspectorArray::create): (WebCore::InspectorArray::~InspectorArray): (WebCore::InspectorArray::length): (WebCore::InspectorArray::InspectorArray): (WebCore::InspectorObject::setBool): (WebCore::InspectorObject::setNumber): (WebCore::InspectorObject::setString): (WebCore::InspectorObject::set): (WebCore::InspectorArray::pushBool): (WebCore::InspectorArray::pushNumber): (WebCore::InspectorArray::pushString): (WebCore::InspectorArray::push): 2010-05-31 Olivier Goffart <olivier.goffart@nokia.com> Reviewed by Oliver Hunt. [PATCH] compilation error with clang in JSDOMBinding.h https://bugs.webkit.org/show_bug.cgi?id=39945 JSNode is only forward declared at this point. And since neither "wrapper" nor JSValue are type-dependent. Compilers should report errors at the first compilation pass. The fix is to move the conversion the line above, as the call to the function getCachedDOMNodeWrapper is type-dependent, the conversion will happen at template-instantiation time. See also http://llvm.org/bugs/show_bug.cgi?id=7244 * bindings/js/JSDOMBinding.h: (WebCore::getDOMNodeWrapper): 2010-05-31 Pavel Podivilov <podivilov@chromium.org> Reviewed by Pavel Feldman. Web Inspector: Moved breakpoints add/remove logic to the BreakpointManager. https://bugs.webkit.org/show_bug.cgi?id=14190 * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * inspector/front-end/Breakpoint.js: * inspector/front-end/BreakpointManager.js: Added. (WebInspector.BreakpointManager): (WebInspector.BreakpointManager.prototype.addBreakpoint): (WebInspector.BreakpointManager.prototype.removeBreakpoint): (WebInspector.BreakpointManager.prototype.breakpointsForSourceID): (WebInspector.BreakpointManager.prototype.breakpointsForURL): (WebInspector.BreakpointManager.prototype.reset): (WebInspector.BreakpointManager.prototype._saveBreakpointOnBackend): (WebInspector.BreakpointManager.prototype._removeBreakpointFromBackend): (WebInspector.Breakpoint): (WebInspector.Breakpoint.prototype.get enabled): (WebInspector.Breakpoint.prototype.set enabled): (WebInspector.Breakpoint.prototype.get sourceText): (WebInspector.Breakpoint.prototype.set sourceText): (WebInspector.Breakpoint.prototype.get label): (WebInspector.Breakpoint.prototype.get id): (WebInspector.Breakpoint.prototype.get condition): (WebInspector.Breakpoint.prototype.set condition): * inspector/front-end/BreakpointsSidebarPane.js: (WebInspector.BreakpointsSidebarPane): (WebInspector.BreakpointsSidebarPane.prototype.reset): (WebInspector.BreakpointsSidebarPane.prototype._breakpointAdded): (WebInspector.BreakpointsSidebarPane.prototype._breakpointRemoved): (WebInspector.BreakpointsSidebarPane.prototype._breakpointEnableChanged): * inspector/front-end/Object.js: (WebInspector.Object.prototype.dispatchEventToListeners): * inspector/front-end/ScriptView.js: (WebInspector.ScriptView.prototype._addBreakpoint): * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel): (WebInspector.ScriptsPanel.prototype._breakpointAdded): (WebInspector.ScriptsPanel.prototype._breakpointRemoved): (WebInspector.ScriptsPanel.prototype.editScriptSource.mycallback): (WebInspector.ScriptsPanel.prototype.editScriptSource): (WebInspector.ScriptsPanel.prototype._showScriptOrResource): * inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame.prototype._contextMenu): * inspector/front-end/SourceView.js: (WebInspector.SourceView.prototype._addBreakpoint): (WebInspector.SourceView.prototype._removeBreakpoint): * inspector/front-end/WebKit.qrc: * inspector/front-end/inspector.html: * inspector/front-end/inspector.js: (WebInspector.loaded): (WebInspector.restoredBreakpoint): (WebInspector.reset): 2010-05-31 Alexander Pavlov <apavlov@chromium.org> Unreviewed, build fix. Add references to inspector/front-end/TabbedPane.js wherever applicable. * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * inspector/front-end/WebKit.qrc: 2010-05-31 Alexander Pavlov <apavlov@chromium.org> Unreviewed, add a file not added in r60445. * inspector/front-end/TabbedPane.js: Added 2010-05-31 Martin Robinson <mrobinson@igalia.com> Reviewed by Gustavo Noronha Silva. [GTK] Text copied from a WebView cannot be pasted into gnome-terminal https://bugs.webkit.org/show_bug.cgi?id=39827 Switch all methods in Pasteboard to use the PasteboardHelper + DataObjectGtk approach used in other parts of WebKit GTK+. * platform/gtk/PasteboardGtk.cpp: (WebCore::Pasteboard::writeSelection): Switch to using PasteboardHelper. (WebCore::Pasteboard::writePlainText): Ditto. (WebCore::Pasteboard::writeURL): Ditto. (WebCore::Pasteboard::writeImage): Ditto. (WebCore::Pasteboard::clear): Small cleanup. (WebCore::Pasteboard::documentFragment): Switch to using PasteboardHelper. (WebCore::Pasteboard::plainText): Ditto. 2010-05-31 Darin Adler <darin@apple.com> Updated bindings test results for change in JavaScript host calling convention change from 2 days ago. * bindings/scripts/test/JS/JSTestObj.cpp: Regenerated and inspected to see that the new result is correct. * bindings/scripts/test/JS/JSTestObj.h: Ditto. 2010-05-31 Alexander Pavlov <apavlov@chromium.org> Reviewed by Pavel Feldman. Web Inspector: Implement additional tabs support in ResourceView https://bugs.webkit.org/show_bug.cgi?id=39822 * inspector/front-end/ResourceView.js: (WebInspector.ResourceView): (WebInspector.ResourceView.prototype._selectHeadersTab): (WebInspector.ResourceView.prototype._innerSelectContentTab): * inspector/front-end/SourceView.js: (WebInspector.SourceView.prototype.show): (WebInspector.SourceView.prototype.hide): (WebInspector.SourceView.prototype.resize): (WebInspector.SourceView.prototype.updateLocalContent): (WebInspector.SourceView.prototype.selectLocalContentTab): * inspector/front-end/TabbedPane.js: Added. (WebInspector.TabbedPane): (WebInspector.TabbedPane.prototype.appendTab): (WebInspector.TabbedPane.prototype.tabObjectForId): (WebInspector.TabbedPane.prototype.hideTab): (WebInspector.TabbedPane.prototype.selectTabById): * inspector/front-end/TextViewer.js: (WebInspector.TextViewer.prototype._getSelection): * inspector/front-end/inspector.html: 2010-05-31 Alexander Pavlov <apavlov@chromium.org> Reviewed by Pavel Feldman. Web Inspector: Implement retrieval of CSS stylesheets for source editing https://bugs.webkit.org/show_bug.cgi?id=39833 Test: inspector/styles-source-offsets.html * css/CSSParser.cpp: (WebCore::CSSParser::CSSParser): (WebCore::CSSParser::parseSheet): (WebCore::CSSParser::createStyleRule): * css/CSSParser.h: * inspector/InspectorBackend.cpp: (WebCore::InspectorBackend::getStyleSheet): (WebCore::InspectorBackend::getRuleRangesForStyleSheetId): * inspector/InspectorBackend.h: * inspector/InspectorBackend.idl: * inspector/InspectorCSSStore.cpp: (WebCore::InspectorCSSStore::getRuleRangesForStyleSheet): (WebCore::InspectorCSSStore::asCSSStyleRule): (WebCore::InspectorCSSStore::styleSheetForId): * inspector/InspectorCSSStore.h: * inspector/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::getStyleSheet): (WebCore::InspectorDOMAgent::getRuleRangesForStyleSheetId): (WebCore::InspectorDOMAgent::buildObjectForStyle): (WebCore::InspectorDOMAgent::populateObjectWithStyleProperties): (WebCore::InspectorDOMAgent::buildObjectForStyleSheet): (WebCore::InspectorDOMAgent::buildObjectForRule): (WebCore::InspectorDOMAgent::getParentStyleSheet): * inspector/InspectorDOMAgent.h: * inspector/InspectorFrontend.cpp: (WebCore::InspectorFrontend::didGetStyleSheet): * inspector/InspectorFrontend.h: * inspector/front-end/DOMAgent.js: (WebInspector.CSSStyleDeclaration): 2010-05-31 Philippe Normand <pnormand@igalia.com> Reviewed by Xan Lopez. [GStreamer] float variables misused https://bugs.webkit.org/show_bug.cgi?id=38842 Use 0.0f for float variables instead of 0.0. Also added some missing casts around GST_SECOND. * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::playbackPosition): (WebCore::MediaPlayerPrivateGStreamer::duration): (WebCore::MediaPlayerPrivateGStreamer::currentTime): (WebCore::MediaPlayerPrivateGStreamer::seek): (WebCore::MediaPlayerPrivateGStreamer::naturalSize): (WebCore::MediaPlayerPrivateGStreamer::setRate): (WebCore::MediaPlayerPrivateGStreamer::maxTimeSeekable): (WebCore::MediaPlayerPrivateGStreamer::maxTimeLoaded): (WebCore::MediaPlayerPrivateGStreamer::totalBytes): 2010-05-31 Steve Block <steveblock@google.com> Unreviewed, rolling out r60069. http://trac.webkit.org/changeset/60069 https://bugs.webkit.org/show_bug.cgi?id=39288 Roll out r60069 while the need for Geolocation::stop() is investigated. * loader/FrameLoader.cpp: (WebCore::FrameLoader::stopLoading): * page/Geolocation.cpp: (WebCore::Geolocation::disconnectFrame): * page/Geolocation.h: 2010-05-31 Olivier Tilloy <olivier@tilloy.net> Reviewed by Gustavo Noronha Silva. [Gtk] Implement RenderThemeGtk::systemColor to apply the correct colors from the current GTK theme. https://bugs.webkit.org/show_bug.cgi?id=37779 * platform/gtk/RenderThemeGtk.cpp: (WebCore::RenderThemeGtk::RenderThemeGtk): (WebCore::RenderThemeGtk::systemColor): (WebCore::RenderThemeGtk::gtkButton): * platform/gtk/RenderThemeGtk.h: 2010-05-31 Dirk Schulze <krit@webkit.org> Reviewed by Nikolas Zimmermann. SVG Filter: Crash if parent and child elements use the same filter https://bugs.webkit.org/show_bug.cgi?id=39536 If a parent and a child used the same filter, the temporary saved context reference got overwritten by the child. The reference is stored in FilterData now. FilterData depends to the target object and avoids overwriting any reference. Test: svg/filters/parent-children-with-same-filter.svg * rendering/RenderSVGResourceFilter.cpp: (WebCore::RenderSVGResourceFilter::RenderSVGResourceFilter): (WebCore::RenderSVGResourceFilter::applyResource): (WebCore::RenderSVGResourceFilter::postApplyResource): * rendering/RenderSVGResourceFilter.h: 2010-05-31 Xan Lopez <xlopez@igalia.com> Reviewed by Gustavo Noronha. Fix all compiler warnings. * plugins/gtk/gtk2xtbin.c: (xt_event_dispatch): (gtk_xtbin_get_type): (gtk_xtbin_set_position): (xt_add_focus_listener): (xt_remove_focus_listener): 2010-05-31 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed by Simon Hausmann. [Qt] Escape backslashes in the .pro files qmake in Qt 4.7 warns about unescaped backspaces and deprecates them. * WebCore.pro: 2010-05-31 Anton Muhin <antonm@chromium.org> Reviewed by Darin Adler. Make NodeList getters take AtomicString instead of plain String https://bugs.webkit.org/show_bug.cgi?id=39892 Those methods turn String into AtomicString later. And this conversion is faster if underlying string is already atomic. That buys small (~2-3%) speed up for Chromium on Dromaeo DOM Core. I don't know if Safari benefits from it. * dom/Node.cpp: (WebCore::Node::getElementsByTagName): (WebCore::Node::getElementsByTagNameNS): * dom/Node.h: 2010-05-30 Adam Barth <abarth@webkit.org> Reviewed by Darin Adler. Fix LayoutTests/fast/parser/xml-declaration-missing-ending-mark.html in HTML5 parser https://bugs.webkit.org/show_bug.cgi?id=39939 Turns out we need to implement the bogus comment state. :) * html/HTML5Lexer.cpp: (WebCore::HTML5Lexer::nextToken): 2010-05-30 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. fast/tokenizer/write-partial-entity.html hits ASSERT SegmentedString in the HTML5 Parser https://bugs.webkit.org/show_bug.cgi?id=39935 Test: fast/tokenizer/write-partial-entity.html * html/HTML5Tokenizer.cpp: (WebCore::HTML5Tokenizer::executeScript): - Use m_source.append(oldInsertionPoint) instead of oldInsertionPoint.prepend(m_source) because m_source may have had characters pushed onto it and prepend() does not handle that case. 2010-05-30 Lyon Chen <liachen@rim.com> Reviewed by Kent Tamura. This is a coding style cleanup before fixing to bug 35530. Enum value FORWARD, BACKWARD, RIGHT, LEFT are causing macro conflicts. https://bugs.webkit.org/show_bug.cgi?id=35530 * editing/Editor.cpp: (WebCore::Editor::deleteWithDirection): (WebCore::Editor::fontForSelection): (WebCore::Editor::applyStyle): (WebCore::Editor::applyParagraphStyle): (WebCore::Editor::applyStyleToSelection): (WebCore::Editor::applyParagraphStyleToSelection): (WebCore::triStateOfStyleInComputedStyle): (WebCore::Editor::selectionStartHasStyle): (WebCore::Editor::selectionHasStyle): (WebCore::Editor::paste): (WebCore::Editor::ignoreSpelling): (WebCore::Editor::learnSpelling): (WebCore::findFirstMisspellingInRange): (WebCore::findFirstGrammarDetailInRange): (WebCore::findFirstBadGrammarInRange): (WebCore::findFirstMisspellingOrBadGrammarInRange): (WebCore::Editor::advanceToNextMisspelling): (WebCore::Editor::isSelectionMisspelled): (WebCore::isRangeUngrammatical): (WebCore::Editor::guessesForMisspelledSelection): (WebCore::guessesForMisspelledOrUngrammaticalRange): (WebCore::Editor::markMisspellingsAfterTypingToPosition): (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): * editing/EditorCommand.cpp: (WebCore::applyCommandToFrame): (WebCore::executeToggleStyleInList): (WebCore::executeApplyParagraphStyle): (WebCore::executeDelete): (WebCore::executeForwardDelete): (WebCore::executeInsertLineBreak): (WebCore::supportedCopyCut): (WebCore::supportedPaste): (WebCore::enabledDelete): * editing/SelectionController.cpp: (WebCore::SelectionController::modifyExtendingRight): (WebCore::SelectionController::modifyExtendingForward): (WebCore::SelectionController::modifyMovingRight): (WebCore::SelectionController::modifyMovingForward): (WebCore::SelectionController::modifyExtendingLeft): (WebCore::SelectionController::modifyExtendingBackward): (WebCore::SelectionController::modifyMovingLeft): (WebCore::SelectionController::modifyMovingBackward): (WebCore::SelectionController::modify): (WebCore::SelectionController::xPosForVerticalArrowNavigation): (WebCore::SelectionController::debugRenderer): * editing/TypingCommand.cpp: (WebCore::TypingCommand::deleteKeyPressed): (WebCore::TypingCommand::forwardDeleteKeyPressed): (WebCore::TypingCommand::insertLineBreak): (WebCore::TypingCommand::insertParagraphSeparatorInQuotedContent): (WebCore::TypingCommand::insertParagraphSeparator): (WebCore::TypingCommand::doApply): (WebCore::TypingCommand::insertText): (WebCore::TypingCommand::updatePreservesTypingStyle): * page/EventHandler.cpp: (WebCore::EventHandler::handleMousePressEvent): (WebCore::EventHandler::handleMouseReleaseEvent): (WebCore::EventHandler::selectCursor): (WebCore::EventHandler::canHandleDragAndDropForTarget): (WebCore::EventHandler::dispatchMouseEvent): (WebCore::EventHandler::sendContextMenuEvent): (WebCore::EventHandler::handleKeyboardSelectionMovement): (WebCore::EventHandler::handleDrag): 2010-05-30 Daniel Bates <dbates@rim.com> Unreviewed, attempt to fix the build after http://trac.webkit.org/changeset/60418. * html/HTMLFormControlElement.h: (WebCore::HTMLFormControlElement::isEnabledFormControl): (WebCore::HTMLFormControlElement::isReadOnlyFormControl): (WebCore::HTMLFormControlElement::isFormControlElement): * html/HTMLInputElement.h: (WebCore::HTMLInputElement::isPasswordField): 2010-05-30 Darin Adler <darin@apple.com> Reviewed by Sam Weinig. Make more HTML DOM members private, especially constructors, third and final batch https://bugs.webkit.org/show_bug.cgi?id=39916 * dom/Document.cpp: (WebCore::Document::implicitClose): * editing/DeleteButtonController.cpp: (WebCore::DeleteButtonController::createDeletionUI): * editing/EditorCommand.cpp: (WebCore::executeInsertHorizontalRule): (WebCore::executeInsertImage): * editing/htmlediting.cpp: (WebCore::createDefaultParagraphElement): (WebCore::createListItemElement): * html/HTMLParser.cpp: (WebCore::HTMLParser::handleError): (WebCore::HTMLParser::headCreateErrorCheck): (WebCore::HTMLParser::formCreateErrorCheck): (WebCore::HTMLParser::createHead): (WebCore::HTMLParser::handleIsindex): (WebCore::HTMLParser::finished): * html/HTMLViewSourceDocument.cpp: (WebCore::HTMLViewSourceDocument::createContainingTable): * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::createSubtreeIfNeeded): * rendering/RenderTextControlSingleLine.cpp: (WebCore::RenderTextControlSingleLine::createSubtreeIfNeeded): Use create instead of new to create HTML elements. * html/HTMLFormCollection.cpp: (WebCore::HTMLFormCollection::formCollectionInfo): (WebCore::HTMLFormCollection::item): (WebCore::HTMLFormCollection::getNamedFormItem): (WebCore::HTMLFormCollection::updateNameCache): * html/HTMLFormControlElement.h: Updated for name and privacy changes in HTMLFormElement. * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::HTMLFormElement): (WebCore::HTMLFormElement::create): (WebCore::HTMLFormElement::~HTMLFormElement): (WebCore::HTMLFormElement::length): (WebCore::HTMLFormElement::submitImplicitly): (WebCore::HTMLFormElement::createFormData): (WebCore::HTMLFormElement::submit): (WebCore::HTMLFormElement::reset): (WebCore::HTMLFormElement::formElementIndex): (WebCore::HTMLFormElement::registerFormElement): (WebCore::HTMLFormElement::removeFormElement): (WebCore::HTMLFormElement::registerImgElement): (WebCore::HTMLFormElement::removeImgElement): (WebCore::HTMLFormElement::defaultButton): (WebCore::HTMLFormElement::collectUnhandledInvalidControls): (WebCore::HTMLFormElement::addElementAlias): (WebCore::HTMLFormElement::documentDidBecomeActive): * html/HTMLFormElement.h: Added create functions. Made constructors and other members private. Used an OwnPtr for m_elementAliases. Renamed collectionInfo to m_collectionCache and used an OwnPtr for it. Renamed formElements to m_associatedElements (since its contents are what HTML5 calls "form-associated element", not form elements). Renamed imgElements to m_imageElements. * html/HTMLFrameSetElement.cpp: (WebCore::HTMLFrameSetElement::HTMLFrameSetElement): (WebCore::HTMLFrameSetElement::create): (WebCore::HTMLFrameSetElement::parseMappedAttribute): * html/HTMLFrameSetElement.h: Added create functions. Made constructors and other members private. Renamed m_rows and m_cols to m_rowLengths and m_colLengths and used OwnArrayPtr for both. * html/HTMLLabelElement.cpp: (WebCore::nodeAsLabelableFormControl): Made this cast to Element instead of HTMLElement, since isFormControlElement is available on Element. (WebCore::HTMLLabelElement::HTMLLabelElement): (WebCore::HTMLLabelElement::create): * html/HTMLLabelElement.h: Added create functions. Made constructors and other members private. * html/HTMLLegendElement.cpp: (WebCore::HTMLLegendElement::HTMLLegendElement): (WebCore::HTMLLegendElement::create): (WebCore::HTMLLegendElement::associatedControl): (WebCore::HTMLLegendElement::focus): (WebCore::HTMLLegendElement::accessKeyAction): * html/HTMLLegendElement.h: Added create functions. Made constructors and other members private. Renamed formElement to associatedControl since hte control associated with this legend is not a "form element". * editing/DeleteButton.cpp: (WebCore::DeleteButton::DeleteButton): (WebCore::DeleteButton::create): * editing/DeleteButton.h: * html/HTMLDivElement.cpp: (WebCore::HTMLDivElement::HTMLDivElement): (WebCore::HTMLDivElement::create): * html/HTMLDivElement.h: * html/HTMLFontElement.cpp: (WebCore::HTMLFontElement::create): * html/HTMLFontElement.h: * html/HTMLHRElement.cpp: (WebCore::HTMLHRElement::HTMLHRElement): (WebCore::HTMLHRElement::create): * html/HTMLHRElement.h: * html/HTMLHeadElement.cpp: (WebCore::HTMLHeadElement::HTMLHeadElement): (WebCore::HTMLHeadElement::create): * html/HTMLHeadElement.h: * html/HTMLHeadingElement.cpp: (WebCore::HTMLHeadingElement::HTMLHeadingElement): (WebCore::HTMLHeadingElement::create): * html/HTMLHeadingElement.h: * html/HTMLHtmlElement.cpp: (WebCore::HTMLHtmlElement::HTMLHtmlElement): (WebCore::HTMLHtmlElement::create): * html/HTMLHtmlElement.h: * html/HTMLImageElement.cpp: (WebCore::HTMLImageElement::HTMLImageElement): (WebCore::HTMLImageElement::create): * html/HTMLImageElement.h: * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::HTMLInputElement): (WebCore::HTMLInputElement::create): (WebCore::HTMLInputElement::createTemporaryFormForIsIndex): * html/HTMLInputElement.h: * html/HTMLIsIndexElement.cpp: (WebCore::HTMLIsIndexElement::HTMLIsIndexElement): (WebCore::HTMLIsIndexElement::create): * html/HTMLIsIndexElement.h: * html/HTMLLIElement.cpp: (WebCore::HTMLLIElement::HTMLLIElement): (WebCore::HTMLLIElement::create): * html/HTMLLIElement.h: * html/HTMLLinkElement.cpp: (WebCore::HTMLLinkElement::HTMLLinkElement): (WebCore::HTMLLinkElement::create): * html/HTMLLinkElement.h: Added create functions. Made constructors and other members private. * html/HTMLTagNames.in: Removed the createWithNew flag from all the tags that were still using it: div, font, form, frameset, h1, h2, h3, h4, h5, h6, head, hr, html, image, img, input, ins, isindex, label, legend, li, and link. * html/HTMLTextAreaElement.h: Removed unneeded definition of the readOnly function, since the one in HTMLFormElement does the same thing. * loader/ImageDocument.cpp: (WebCore::ImageDocumentElement::ImageDocumentElement): (WebCore::ImageDocumentElement::create): (WebCore::ImageDocument::createDocumentStructure): Added create functions. Made constructors and other members private. * page/DragController.cpp: (WebCore::DragController::concludeEditDrag): Use the non-virtual disabled function instead of the virtual isEnabledFormControl function, which just turns around and calls the disabled function. * rendering/MediaControlElements.cpp: (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement): (WebCore::MediaControlShadowRootElement::create): (WebCore::MediaControlElement::MediaControlElement): (WebCore::MediaControlElement::create): (WebCore::MediaControlTimelineContainerElement::MediaControlTimelineContainerElement): (WebCore::MediaControlTimelineContainerElement::create): (WebCore::MediaControlTimelineContainerElement::rendererIsNeeded): (WebCore::MediaControlVolumeSliderContainerElement::MediaControlVolumeSliderContainerElement): (WebCore::MediaControlVolumeSliderContainerElement::create): (WebCore::MediaControlStatusDisplayElement::MediaControlStatusDisplayElement): (WebCore::MediaControlStatusDisplayElement::create): (WebCore::MediaControlStatusDisplayElement::update): (WebCore::MediaControlStatusDisplayElement::rendererIsNeeded): (WebCore::MediaControlInputElement::MediaControlInputElement): (WebCore::MediaControlInputElement::styleForElement): (WebCore::MediaControlInputElement::rendererIsNeeded): (WebCore::MediaControlInputElement::attach): (WebCore::MediaControlInputElement::updateStyle): (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement): (WebCore::MediaControlMuteButtonElement::create): (WebCore::MediaControlMuteButtonElement::defaultEventHandler): (WebCore::MediaControlMuteButtonElement::updateDisplayType): (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement): (WebCore::MediaControlPlayButtonElement::create): (WebCore::MediaControlPlayButtonElement::defaultEventHandler): (WebCore::MediaControlPlayButtonElement::updateDisplayType): (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement): (WebCore::MediaControlSeekButtonElement::create): (WebCore::MediaControlSeekButtonElement::isForwardButton): (WebCore::MediaControlSeekButtonElement::defaultEventHandler): (WebCore::MediaControlSeekButtonElement::seekTimerFired): (WebCore::MediaControlRewindButtonElement::MediaControlRewindButtonElement): (WebCore::MediaControlRewindButtonElement::create): (WebCore::MediaControlRewindButtonElement::defaultEventHandler): (WebCore::MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement): (WebCore::MediaControlReturnToRealtimeButtonElement::create): (WebCore::MediaControlReturnToRealtimeButtonElement::defaultEventHandler): (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement): (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler): (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType): (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): (WebCore::MediaControlTimelineElement::create): (WebCore::MediaControlTimelineElement::defaultEventHandler): (WebCore::MediaControlTimelineElement::update): (WebCore::MediaControlVolumeSliderElement::MediaControlVolumeSliderElement): (WebCore::MediaControlVolumeSliderElement::create): (WebCore::MediaControlVolumeSliderElement::defaultEventHandler): (WebCore::MediaControlVolumeSliderElement::update): (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement): (WebCore::MediaControlFullscreenButtonElement::create): (WebCore::MediaControlFullscreenButtonElement::defaultEventHandler): (WebCore::MediaControlTimeDisplayElement::MediaControlTimeDisplayElement): (WebCore::MediaControlTimeDisplayElement::create): * rendering/MediaControlElements.h: Added create functions. Made constructors and other members private. * rendering/RenderFileUploadControl.cpp: (WebCore::ShadowInputElement::ShadowInputElement): (WebCore::ShadowInputElement::create): (WebCore::RenderFileUploadControl::updateFromElement): Added create functions. Made constructors and other members private. * rendering/RenderMedia.cpp: (WebCore::RenderMedia::createControlsShadowRoot): (WebCore::RenderMedia::createPanel): (WebCore::RenderMedia::createMuteButton): (WebCore::RenderMedia::createPlayButton): (WebCore::RenderMedia::createSeekBackButton): (WebCore::RenderMedia::createSeekForwardButton): (WebCore::RenderMedia::createRewindButton): (WebCore::RenderMedia::createReturnToRealtimeButton): (WebCore::RenderMedia::createToggleClosedCaptionsButton): (WebCore::RenderMedia::createStatusDisplay): (WebCore::RenderMedia::createTimelineContainer): (WebCore::RenderMedia::createTimeline): (WebCore::RenderMedia::createVolumeSliderContainer): (WebCore::RenderMedia::createVolumeSlider): (WebCore::RenderMedia::createCurrentTimeDisplay): (WebCore::RenderMedia::createTimeRemainingDisplay): (WebCore::RenderMedia::createFullscreenButton): Use create instead of new. * rendering/RenderProgress.cpp: (WebCore::ProgressValueElement::ProgressValueElement): (WebCore::ProgressValueElement::create): (WebCore::RenderProgress::updateValuePartState): * rendering/RenderSlider.cpp: (WebCore::SliderThumbElement::SliderThumbElement): (WebCore::SliderThumbElement::create): (WebCore::RenderSlider::updateFromElement): Added create functions. Made constructors and other members private. * rendering/TextControlInnerElements.cpp: (WebCore::TextControlInnerElement::TextControlInnerElement): (WebCore::TextControlInnerElement::create): (WebCore::TextControlInnerTextElement::TextControlInnerTextElement): (WebCore::TextControlInnerTextElement::create): (WebCore::TextControlInnerTextElement::defaultEventHandler): (WebCore::SearchFieldResultsButtonElement::SearchFieldResultsButtonElement): (WebCore::SearchFieldResultsButtonElement::create): (WebCore::SearchFieldResultsButtonElement::defaultEventHandler): (WebCore::SearchFieldCancelButtonElement::SearchFieldCancelButtonElement): (WebCore::SearchFieldCancelButtonElement::create): (WebCore::SearchFieldCancelButtonElement::defaultEventHandler): (WebCore::SpinButtonElement::SpinButtonElement): (WebCore::SpinButtonElement::create): (WebCore::SpinButtonElement::defaultEventHandler): * rendering/TextControlInnerElements.h: Added create functions. Made constructors and other members private. 2010-05-30 Xan Lopez <xlopez@igalia.com> Reviewed by Darin Adler. Incorrect build dependencies for GObject DOM Bindings https://bugs.webkit.org/show_bug.cgi?id=39932 -include does not execute the implicit % expansion, we have to do it manually. * GNUmakefile.am: 2010-05-30 Robert Hogan <robert@webkit.org> Reviewed by Kenneth Rohde Christiansen. [Qt] Enhance Qt DRT implementation to support platform scroll wheel events. https://bugs.webkit.org/show_bug.cgi?id=36004 Fix the bug in webkit.org/b/29601 for Qt. A delta not divisible by 120 indicates a device that is sending fine-resolution scroll events, so use the delta as the number of pixels to scroll. * platform/qt/WheelEventQt.cpp: (WebCore::PlatformWheelEvent::applyDelta): 2010-05-30 Jessie Berlin <jberlin@webkit.org> Reviewed by Pavel Feldman. https://bugs.webkit.org/show_bug.cgi?id=39224 Bug 39224 - Web Inspector: There should be a way to clean up profiles Adds a button to clear the profiles from the profiles panel like that used for the console, the audits panel, and the timeline panel. Consolidates the css rules, since they all use the same image. Also allows for individual profiles to be deleted via the keyboard (U+0008 or U+007F) and uses this new schema for the Elements Tree. * English.lproj/localizedStrings.js: Add tooltip text for the button to clear the profiles pane. * inspector/InspectorBackend.idl: Add ability to remove the profiles from the backend when they are deleted or cleared in the frontend. * inspector/InspectorBackend.cpp: (WebCore::InspectorBackend::removeProfile): (WebCore::InspectorBackend::clearProfiles): * inspector/InspectorBackend.h: * inspector/InspectorController.cpp: (WebCore::InspectorController::removeProfile): (WebCore::InspectorController::clearProfiles): * inspector/InspectorController.h: * inspector/front-end/AuditsPanel.js: (WebInspector.AuditsPanel): Use the 'clear-status-bar-item' class. * inspector/front-end/ChangesView.js: (WebInspector.ChangesView): * inspector/front-end/TimelinePanel.js: (WebInspector.TimelinePanel.prototype._createStatusbarButtons): * inspector/front-end/audits.css: * inspector/front-end/inspector.css: (.clear-status-bar-item .glyph): * inspector/front-end/inspector.html: * inspector/front-end/ElementsTreeOutline.js: Replace the keyDown handler on the Outline with specific methods to handle delete and enter on the TreeElements. (WebInspector.ElementsTreeOutline): (WebInspector.ElementsTreeOutline.prototype.get editing): Return whether or not an element in the tree is currently being edited. (WebInspector.ElementsTreeElement.prototype.ondelete): (WebInspector.ElementsTreeElement.prototype.onenter): * inspector/front-end/Panel.js: (WebInspector.Panel.prototype.createSidebar): Make the TreeOutline for a Panel's sidebar aware of its enclosing Panel. * inspector/front-end/ProfilesPanel.js: (WebInspector.ProfilesPanel): Add the clear button. (WebInspector.ProfilesPanel.prototype.get statusBarItems): (WebInspector.ProfilesPanel.prototype._clearProfiles): Remove the profiles from the backend, the reset the frontend interface. (WebInspector.ProfilesPanel.prototype.removeProfileHeader): Remove the profile from both the frontend and the backend, and clear the view when the last profile is removed. (WebInspector.ProfilesPanel.prototype._updateInterface): Hide the clear button when profiling is disabled. (WebInspector.ProfileSidebarTreeElement.prototype.onselect): Replace access to global variable with reference to the Panel held by the TreeOutline. (WebInspector.ProfileSidebarTreeElement.prototype.ondelete): Remove the profile corresponding the tree element when the user deletes that tree element. * inspector/front-end/treeoutline.js: (TreeOutline.prototype._treeKeyDown): Allow the selected tree element to handle the user pressing a delete key or enter key. 2010-05-29 Lucas De Marchi <lucas.demarchi@profusion.mobi> Reviewed by Darin Adler. Check if a CC environment variable is defined before hard-coding gcc's path. Simply hard-coding it breaks cross-compilation and Linux distributions with more than one gcc installed (or not in the default path). https://bugs.webkit.org/show_bug.cgi?id=35551 No new functionality, so no new tests. * bindings/scripts/CodeGeneratorObjC.pm: * bindings/scripts/IDLParser.pm: * dom/make_names.pl: 2010-05-29 Pavel Feldman <pfeldman@chromium.org> Reviewed by Timothy Hatcher. Web Inspector: [REGRESSION] caller locations are not shown on Timeline Panel. https://bugs.webkit.org/show_bug.cgi?id=39923 * inspector/front-end/TimelinePanel.js: (WebInspector.TimelinePanel.FormattedRecord): (WebInspector.TimelinePanel.FormattedRecord.prototype._generatePopupContent): (WebInspector.TimelinePanel.FormattedRecord.prototype._getRecordDetails): 2010-05-29 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. HTML5 parser should block script execution until stylesheets load https://bugs.webkit.org/show_bug.cgi?id=39903 All <script> tag execution now blocks on stylesheet load, including inline <script> content which the old parser doesn't support blocking. Hyatt says we could now get rid of updateLayoutIgnorePendingStylesheets once our primary parser knows how to wait for stylesheets before executing inline <script> content. All of http/tests/local passes in --html5-parser mode now. Also fixed fast/parser/tokenizer-close-during-document-write.html. * html/HTML5ScriptRunner.cpp: (WebCore::HTML5ScriptRunner::HTML5ScriptRunner): - Added a m_hasScriptsWaitingForStylesheets bool so that we can detect when we're actually waiting on stylesheets or not. If we're not waiting on stylesheets then we're still parsing and executing scripts would cause parser/script reentrancy and bad news bears. (WebCore::HTML5ScriptRunner::isPendingScriptReady): - Re-enable the check that the stylesheets have loaded. (WebCore::HTML5ScriptRunner::executePendingScript): - ASSERT that stylesheets have loaded. (WebCore::HTML5ScriptRunner::executeScriptsWaitingForLoad): - ASSERT that this is never called reentrantly. (WebCore::HTML5ScriptRunner::executeScriptsWaitingForStylesheets): - Execute any scripts which were blocked on stylesheet loads. - ASSERT (in two ways) that this is never called reentrantly. * html/HTML5ScriptRunner.h: (WebCore::HTML5ScriptRunner::hasScriptsWaitingForStylesheets): - Callers need to check this before calling executeScriptsWaitingForLoad. (WebCore::HTML5ScriptRunner::inScriptExecution): - Used by callers to ASSERT that we're not called re-entrantly. * html/HTML5Tokenizer.cpp: (WebCore::HTML5Tokenizer::HTML5Tokenizer): - Add m_hasScriptsWaitingForStylesheets for tracking if we've paused due to stylesheets or not. Callers need to know this to know if they should ignore executeScriptsWaitingForStylesheets calls from Document (which may be generated when parsing </script> tags). We only care about executeScriptsWaitingForStylesheets calls when we've actually blocked the parser due to waiting on a stylesheet load. (WebCore::HTML5Tokenizer::end): - Move m_source.close() back to this method now that I understand more about when finish() is called. This should fix several layout test ASSERTS. (WebCore::HTML5Tokenizer::finish): - This should not close m_source since scripts may still write to the document. Set m_wasWaitingOnScriptsDuringFinish to indicate that we were not able to end parsing during finish. (WebCore::HTML5Tokenizer::resumeParsingAfterScriptExecution): - ASSERT that this is never caller re-entrantly. (WebCore::HTML5Tokenizer::executeScript): - ASSERT that the ScriptRunner always thinks we're running scripts when this is called. (WebCore::HTML5Tokenizer::executingScript): - Added implementation to fix fast/parser/tokenizer-close-during-document-write.html (WebCore::HTML5Tokenizer::notifyFinished): - ASSERT that this is never called re-entrantly. (WebCore::HTML5Tokenizer::executeScriptsWaitingForStylesheets): - Call the ScriptRunner to tell it that stylesheets have loaded if it is blocked on stylesheet loads. - ASSERT(m_hasScriptsWaitingForStylesheets). We can't just assert isPaused() since we may be paused for script loads. * html/HTML5Tokenizer.h: 2010-05-29 Laszlo Gombos <laszlo.1.gombos@nokia.com> Reviewed by Darin Adler. Remove set but never used variables https://bugs.webkit.org/show_bug.cgi?id=35252 No new tests as there is no new functionality. * accessibility/AccessibilityRenderObject.cpp: (WebCore::lastChildConsideringContinuation): * css/CSSFontSelector.cpp: (WebCore::CSSFontSelector::addFontFaceRule): * css/CSSParser.cpp: (WebCore::CSSParser::parseFontFaceUnicodeRange): * editing/InsertParagraphSeparatorCommand.cpp: (WebCore::InsertParagraphSeparatorCommand::doApply): * loader/appcache/ApplicationCacheStorage.cpp: (WebCore::ApplicationCacheStorage::loadManifestHostHashes): * page/EventHandler.cpp: (WebCore::EventHandler::handleWheelEvent): * page/animation/AnimationBase.cpp: (WebCore::AnimationBase::getTimeToNextEvent): * rendering/AutoTableLayout.cpp: (WebCore::AutoTableLayout::recalcColumn): (WebCore::AutoTableLayout::layout): * rendering/RenderBlock.cpp: (WebCore::RenderBlock::calcInlinePrefWidths): * rendering/RenderSVGResourceClipper.cpp: (WebCore::RenderSVGResourceClipper::createClipData): * storage/DatabaseTracker.cpp: (WebCore::DatabaseTracker::canEstablishDatabase): 2010-05-29 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r60405. http://trac.webkit.org/changeset/60405 https://bugs.webkit.org/show_bug.cgi?id=39921 It broke GTK build. (Requested by Ossy on #webkit). * dom/Node.cpp: (WebCore::Node::getElementsByTagName): (WebCore::Node::getElementsByTagNameNS): * dom/Node.h: 2010-05-29 Anton Muhin <antonm@chromium.org> Reviewed by Darin Adler. Make NodeList getters take AtomicString instead of plain String https://bugs.webkit.org/show_bug.cgi?id=39892 Those methods turn String into AtomicString later. And this conversion is faster if underlying string is already atomic. That buys small (~2-3%) speed up for Chromium on Dromaeo DOM Core. I don't know if Safari benefits from it. * dom/Node.cpp: (WebCore::Node::getElementsByTagName): (WebCore::Node::getElementsByTagNameNS): * dom/Node.h: 2010-05-29 Justin Schuh <jschuh@chromium.org> Reviewed by Adam Barth. Allow descendant frame navigation for file URLs when allowFileAccessFromFileURLs is false https://bugs.webkit.org/show_bug.cgi?id=39750 Fix for local HTML package breakage when each file is its own origin. In this case we should allow descendant file: frames to navigate each other when they share the same top frame. Test: fast/frames/location-change-no-file-access.html * loader/FrameLoader.cpp: (WebCore::FrameLoader::shouldAllowNavigation): 2010-05-29 Geoffrey Garen <ggaren@apple.com> Qt build fix: Updated for ArgList changes. * bridge/qt/qt_runtime.cpp: (JSC::Bindings::QtRuntimeConnectionMethod::call): 2010-05-29 Geoffrey Garen <ggaren@apple.com> Qt build fix: Updated for ArgList changes. * bridge/qt/qt_runtime.cpp: (JSC::Bindings::QtRuntimeMetaMethod::call): (JSC::Bindings::QtRuntimeConnectionMethod::call): 2010-05-29 Geoffrey Garen <ggaren@apple.com> Qt build fix: Updated for ArgList changes. * bridge/qt/qt_pixmapruntime.cpp: (JSC::Bindings::QtPixmapInstance::invokeMethod): * bridge/qt/qt_runtime.cpp: (JSC::Bindings::findMethodIndex): (JSC::Bindings::QtRuntimeMetaMethod::call): (JSC::Bindings::QtRuntimeConnectionMethod::call): * bridge/qt/qt_runtime.h: 2010-05-29 Geoffrey Garen <ggaren@apple.com> Qt build fix: Updated for ArgList changes. * bridge/qt/qt_pixmapruntime.cpp: (JSC::Bindings::QtPixmapAssignToElementMethod::invoke): (JSC::Bindings::QtPixmapToDataUrlMethod::invoke): (JSC::Bindings::QtPixmapToStringMethod::invoke): (JSC::Bindings::QtPixmapInstance::invokeMethod): * bridge/qt/qt_pixmapruntime.h: 2010-05-29 Geoffrey Garen <ggaren@apple.com> Qt build fix: Keep this borken class limping along. * bridge/qt/qt_instance.cpp: (JSC::Bindings::QtInstance::invokeMethod): * bridge/qt/qt_instance.h: 2010-05-28 Geoffrey Garen <ggaren@apple.com> Reviewed by Sam Weinig, Gavin Barraclough, Oliver Hunt. Simplified the host calling convention. PART ONE: Functional code changes. [ None in WebCore ] PART TWO: Global search and replace. In the areas below, I used global search-and-replace to change (ExecState*, JSObject*, JSValue, const ArgList&) => (ExecState*) args.size() => exec->argumentCount() args.at(i) => exec->argument(i) * bindings/js/JSArrayBufferViewCustom.cpp: (WebCore::JSArrayBufferView::slice): * bindings/js/JSArrayBufferViewHelper.h: (WebCore::setWebGLArrayHelper): * bindings/js/JSCanvasRenderingContext2DCustom.cpp: (WebCore::JSCanvasRenderingContext2D::setFillColor): (WebCore::JSCanvasRenderingContext2D::setStrokeColor): (WebCore::JSCanvasRenderingContext2D::strokeRect): (WebCore::JSCanvasRenderingContext2D::drawImage): (WebCore::JSCanvasRenderingContext2D::drawImageFromRect): (WebCore::JSCanvasRenderingContext2D::setShadow): (WebCore::JSCanvasRenderingContext2D::createPattern): (WebCore::JSCanvasRenderingContext2D::createImageData): (WebCore::JSCanvasRenderingContext2D::putImageData): (WebCore::JSCanvasRenderingContext2D::fillText): (WebCore::JSCanvasRenderingContext2D::strokeText): * bindings/js/JSClipboardCustom.cpp: (WebCore::JSClipboard::clearData): (WebCore::JSClipboard::getData): (WebCore::JSClipboard::setDragImage): * bindings/js/JSDOMApplicationCacheCustom.cpp: (WebCore::JSDOMApplicationCache::hasItem): (WebCore::JSDOMApplicationCache::add): (WebCore::JSDOMApplicationCache::remove): * bindings/js/JSDOMFormDataCustom.cpp: (WebCore::JSDOMFormData::append): * bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::open): (WebCore::JSDOMWindow::showModalDialog): (WebCore::JSDOMWindow::postMessage): (WebCore::JSDOMWindow::setTimeout): (WebCore::JSDOMWindow::setInterval): (WebCore::JSDOMWindow::addEventListener): (WebCore::JSDOMWindow::removeEventListener): (WebCore::JSDOMWindow::openDatabase): * bindings/js/JSDatabaseCustom.cpp: (WebCore::JSDatabase::changeVersion): (WebCore::createTransaction): (WebCore::JSDatabase::transaction): (WebCore::JSDatabase::readTransaction): * bindings/js/JSDatabaseSyncCustom.cpp: (WebCore::JSDatabaseSync::changeVersion): (WebCore::createTransaction): (WebCore::JSDatabaseSync::transaction): (WebCore::JSDatabaseSync::readTransaction): * bindings/js/JSDedicatedWorkerContextCustom.cpp: (WebCore::JSDedicatedWorkerContext::postMessage): * bindings/js/JSDesktopNotificationsCustom.cpp: (WebCore::JSNotificationCenter::requestPermission): * bindings/js/JSFloatArrayCustom.cpp: (WebCore::JSFloatArray::set): * bindings/js/JSGeolocationCustom.cpp: (WebCore::JSGeolocation::getCurrentPosition): (WebCore::JSGeolocation::watchPosition): * bindings/js/JSHTMLAllCollectionCustom.cpp: (WebCore::callHTMLAllCollection): (WebCore::JSHTMLAllCollection::item): (WebCore::JSHTMLAllCollection::namedItem): * bindings/js/JSHTMLCanvasElementCustom.cpp: (WebCore::JSHTMLCanvasElement::getContext): * bindings/js/JSHTMLCollectionCustom.cpp: (WebCore::callHTMLCollection): (WebCore::JSHTMLCollection::item): (WebCore::JSHTMLCollection::namedItem): * bindings/js/JSHTMLDocumentCustom.cpp: (WebCore::JSHTMLDocument::open): (WebCore::documentWrite): (WebCore::JSHTMLDocument::write): (WebCore::JSHTMLDocument::writeln): * bindings/js/JSHTMLInputElementCustom.cpp: (WebCore::JSHTMLInputElement::setSelectionRange): * bindings/js/JSHTMLOptionsCollectionCustom.cpp: (WebCore::JSHTMLOptionsCollection::add): (WebCore::JSHTMLOptionsCollection::remove): * bindings/js/JSHTMLSelectElementCustom.cpp: (WebCore::JSHTMLSelectElement::remove): * bindings/js/JSHistoryCustom.cpp: (WebCore::JSHistory::pushState): (WebCore::JSHistory::replaceState): * bindings/js/JSInjectedScriptHostCustom.cpp: (WebCore::JSInjectedScriptHost::databaseForId): (WebCore::JSInjectedScriptHost::currentCallFrame): (WebCore::JSInjectedScriptHost::nodeForId): (WebCore::JSInjectedScriptHost::pushNodePathToFrontend): (WebCore::JSInjectedScriptHost::selectDatabase): (WebCore::JSInjectedScriptHost::selectDOMStorage): (WebCore::JSInjectedScriptHost::reportDidDispatchOnInjectedScript): * bindings/js/JSInspectorFrontendHostCustom.cpp: (WebCore::JSInspectorFrontendHost::platform): (WebCore::JSInspectorFrontendHost::port): (WebCore::JSInspectorFrontendHost::showContextMenu): * bindings/js/JSInt16ArrayCustom.cpp: (WebCore::JSInt16Array::set): * bindings/js/JSInt32ArrayCustom.cpp: (WebCore::JSInt32Array::set): * bindings/js/JSInt8ArrayCustom.cpp: (WebCore::JSInt8Array::set): * bindings/js/JSJavaScriptCallFrameCustom.cpp: (WebCore::JSJavaScriptCallFrame::evaluate): (WebCore::JSJavaScriptCallFrame::scopeType): * bindings/js/JSLocationCustom.cpp: (WebCore::JSLocation::replace): (WebCore::JSLocation::reload): (WebCore::JSLocation::assign): (WebCore::JSLocation::toString): * bindings/js/JSMessageEventCustom.cpp: (WebCore::JSMessageEvent::initMessageEvent): * bindings/js/JSMessagePortCustom.cpp: (WebCore::JSMessagePort::postMessage): * bindings/js/JSMessagePortCustom.h: (WebCore::handlePostMessage): * bindings/js/JSNodeCustom.cpp: (WebCore::JSNode::insertBefore): (WebCore::JSNode::replaceChild): (WebCore::JSNode::removeChild): (WebCore::JSNode::appendChild): * bindings/js/JSNodeListCustom.cpp: (WebCore::callNodeList): * bindings/js/JSPluginElementFunctions.cpp: (WebCore::callPlugin): * bindings/js/JSSQLResultSetRowListCustom.cpp: (WebCore::JSSQLResultSetRowList::item): * bindings/js/JSSQLTransactionCustom.cpp: (WebCore::JSSQLTransaction::executeSql): * bindings/js/JSSQLTransactionSyncCustom.cpp: (WebCore::JSSQLTransactionSync::executeSql): * bindings/js/JSSVGLengthCustom.cpp: (WebCore::JSSVGLength::convertToSpecifiedUnits): * bindings/js/JSSVGMatrixCustom.cpp: (WebCore::JSSVGMatrix::multiply): (WebCore::JSSVGMatrix::inverse): (WebCore::JSSVGMatrix::rotateFromVector): * bindings/js/JSSVGPODListCustom.h: (WebCore::JSSVGPODListCustom::clear): (WebCore::JSSVGPODListCustom::initialize): (WebCore::JSSVGPODListCustom::getItem): (WebCore::JSSVGPODListCustom::insertItemBefore): (WebCore::JSSVGPODListCustom::replaceItem): (WebCore::JSSVGPODListCustom::removeItem): (WebCore::JSSVGPODListCustom::appendItem): * bindings/js/JSSVGPathSegListCustom.cpp: (WebCore::JSSVGPathSegList::clear): (WebCore::JSSVGPathSegList::initialize): (WebCore::JSSVGPathSegList::getItem): (WebCore::JSSVGPathSegList::insertItemBefore): (WebCore::JSSVGPathSegList::replaceItem): (WebCore::JSSVGPathSegList::removeItem): (WebCore::JSSVGPathSegList::appendItem): * bindings/js/JSUint16ArrayCustom.cpp: (WebCore::JSUint16Array::set): * bindings/js/JSUint32ArrayCustom.cpp: (WebCore::JSUint32Array::set): * bindings/js/JSUint8ArrayCustom.cpp: (WebCore::JSUint8Array::set): * bindings/js/JSWebGLRenderingContextCustom.cpp: (WebCore::JSWebGLRenderingContext::bufferData): (WebCore::JSWebGLRenderingContext::bufferSubData): (WebCore::getObjectParameter): (WebCore::JSWebGLRenderingContext::getBufferParameter): (WebCore::JSWebGLRenderingContext::getFramebufferAttachmentParameter): (WebCore::JSWebGLRenderingContext::getParameter): (WebCore::JSWebGLRenderingContext::getProgramParameter): (WebCore::JSWebGLRenderingContext::getRenderbufferParameter): (WebCore::JSWebGLRenderingContext::getShaderParameter): (WebCore::JSWebGLRenderingContext::getTexParameter): (WebCore::JSWebGLRenderingContext::getUniform): (WebCore::JSWebGLRenderingContext::getVertexAttrib): (WebCore::JSWebGLRenderingContext::texImage2D): (WebCore::JSWebGLRenderingContext::texSubImage2D): (WebCore::dataFunctionf): (WebCore::dataFunctioni): (WebCore::dataFunctionMatrix): (WebCore::JSWebGLRenderingContext::uniform1fv): (WebCore::JSWebGLRenderingContext::uniform1iv): (WebCore::JSWebGLRenderingContext::uniform2fv): (WebCore::JSWebGLRenderingContext::uniform2iv): (WebCore::JSWebGLRenderingContext::uniform3fv): (WebCore::JSWebGLRenderingContext::uniform3iv): (WebCore::JSWebGLRenderingContext::uniform4fv): (WebCore::JSWebGLRenderingContext::uniform4iv): (WebCore::JSWebGLRenderingContext::uniformMatrix2fv): (WebCore::JSWebGLRenderingContext::uniformMatrix3fv): (WebCore::JSWebGLRenderingContext::uniformMatrix4fv): (WebCore::JSWebGLRenderingContext::vertexAttrib1fv): (WebCore::JSWebGLRenderingContext::vertexAttrib2fv): (WebCore::JSWebGLRenderingContext::vertexAttrib3fv): (WebCore::JSWebGLRenderingContext::vertexAttrib4fv): * bindings/js/JSWebSocketCustom.cpp: (WebCore::JSWebSocket::send): * bindings/js/JSWorkerContextCustom.cpp: (WebCore::JSWorkerContext::importScripts): (WebCore::JSWorkerContext::setTimeout): (WebCore::JSWorkerContext::setInterval): (WebCore::JSWorkerContext::openDatabase): (WebCore::JSWorkerContext::openDatabaseSync): * bindings/js/JSWorkerCustom.cpp: (WebCore::JSWorker::postMessage): * bindings/js/JSXMLHttpRequestCustom.cpp: (WebCore::JSXMLHttpRequest::open): (WebCore::JSXMLHttpRequest::send): * bindings/js/JSXSLTProcessorCustom.cpp: (WebCore::JSXSLTProcessor::importStylesheet): (WebCore::JSXSLTProcessor::transformToFragment): (WebCore::JSXSLTProcessor::transformToDocument): (WebCore::JSXSLTProcessor::setParameter): (WebCore::JSXSLTProcessor::getParameter): (WebCore::JSXSLTProcessor::removeParameter): * bindings/js/ScheduledAction.cpp: (WebCore::ScheduledAction::create): (WebCore::ScheduledAction::ScheduledAction): * bindings/js/ScheduledAction.h: * bindings/js/ScriptCallFrame.cpp: (WebCore::ScriptCallFrame::ScriptCallFrame): * bindings/js/ScriptCallFrame.h: * bindings/js/ScriptCallStack.cpp: (WebCore::ScriptCallStack::ScriptCallStack): (WebCore::ScriptCallStack::initialize): * bindings/js/ScriptCallStack.h: * bindings/scripts/CodeGeneratorJS.pm: * bridge/c/c_instance.cpp: (JSC::Bindings::CInstance::invokeMethod): (JSC::Bindings::CInstance::invokeDefaultMethod): * bridge/c/c_instance.h: * bridge/jni/jsc/JavaInstanceJSC.cpp: (JavaInstance::invokeMethod): * bridge/jni/jsc/JavaInstanceJSC.h: * bridge/jsc/BridgeJSC.h: (JSC::Bindings::Instance::invokeDefaultMethod): * bridge/objc/objc_instance.h: * bridge/objc/objc_instance.mm: (ObjcInstance::invokeMethod): (ObjcInstance::invokeObjcMethod): (ObjcInstance::invokeDefaultMethod): * bridge/objc/objc_runtime.mm: (JSC::Bindings::callObjCFallbackObject): * bridge/runtime_method.cpp: (JSC::callRuntimeMethod): * bridge/runtime_object.cpp: (JSC::Bindings::callRuntimeObject): 2010-05-28 Stephen White <senorblanco@chromium.org> Reviewed by Darin Fisher. Implement GraphicsContext::setImageInterpolation() for the Chromium port. This is preparatory work for bug 38233. A number of background-resize tests will need a rebaseline, since the images are taken during the initial "low quality" phase (<800ms). [CHROMIUM] Chromium port should support image interpolation quality https://bugs.webkit.org/show_bug.cgi?id=38686 Covered by fast/backgrounds/size/backgroundSize15.html, and others. * platform/graphics/skia/GraphicsContextSkia.cpp: Implement WebCore::GraphicsContext::setImageInterpolationQuality. * platform/graphics/skia/ImageSkia.cpp: (WebCore::computeResamplingMode): Only enable high quality interpolation if it has been requested in the GraphicsContext. (WebCore::drawResampledBitmap): Enable cacheing of resampled images even if the size is not full (fix from Brett Wilson). (WebCore::paintSkBitmap): Pass in the PlatformContextSkia to computeResamplingMode, so it can query it for interpolation quality. (WebCore::Image::drawPattern): Ibid. * platform/graphics/skia/PlatformContextSkia.cpp: (PlatformContextSkia::State::State): (PlatformContextSkia::interpolationQuality): (PlatformContextSkia::setInterpolationQuality): * platform/graphics/skia/PlatformContextSkia.h: Add a member fn and accessors to retain the image interpolation quality in the platform context, and to save/restore it with the state. 2010-05-28 Lucas De Marchi <lucas.demarchi@profusion.mobi> Reviewed by Kenneth Rohde Christiansen. [EFL] Remove compiler warnings about uninitialized variable. https://bugs.webkit.org/show_bug.cgi?id=39871 No new tests, just cosmetic changes. * platform/efl/WidgetEfl.cpp: (WebCore::Widget::applyCursor): 2010-05-28 Vangelis Kokkevis <vangelis@chromium.org> Reviewed by Dimitri Glazkov. Prevent chromium composited layers from rendering on top of the scrollbars. https://bugs.webkit.org/show_bug.cgi?id=39851 * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::drawLayers): 2010-05-28 Aaron Boodman <aa@chromium.org> Reviewed by Darin Fisher. Added isXHTMLDocument() to WebCore::Document. https://bugs.webkit.org/show_bug.cgi?id=39887 * dom/Document.h: Add isXHTMLDocument(). (WebCore::Document::isXHTMLDocument): Ditto. 2010-05-28 Peter Kasting <pkasting@google.com> Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=39857 Make GIFs loop the correct number of times. Previously, everyone looped one time too few for non-infinitely-looping GIFs. Modified a Qt manual test to be correct and moved it to the general manual test directory. * manual-tests/animated-gif-looping.html: Copied from WebCore/manual-tests/qt/qt-gif-test.html. * manual-tests/qt/qt-10loop-anim.gif: Removed. * manual-tests/qt/qt-anim.gif: Removed. * manual-tests/qt/qt-gif-test.html: Removed. * manual-tests/qt/qt-noanim.gif: Removed. * manual-tests/resources/animated-10x.gif: Copied from WebCore/manual-tests/qt/qt-10loop-anim.gif and modified. * manual-tests/resources/animated-infinite.gif: Copied from WebCore/manual-tests/qt/qt-anim.gif. * manual-tests/resources/non-animated.gif: Copied from WebCore/manual-tests/qt/qt-noanim.gif. * platform/graphics/BitmapImage.cpp: (WebCore::BitmapImage::internalAdvanceAnimation): For a loop count of n, show a total of n + 1 animation cycles. * platform/graphics/ImageSource.h: * platform/graphics/cg/ImageSourceCG.cpp: (WebCore::ImageSource::repetitionCount): * platform/graphics/qt/ImageDecoderQt.cpp: (WebCore::ImageDecoderQt::repetitionCount): Remove translation code now that WebCore matches Qt's internal handling of the loop count. Qt itself may still have a bug here. * platform/image-decoders/gif/GIFImageDecoder.cpp: (WebCore::GIFImageDecoder::repetitionCount): * platform/image-decoders/gif/GIFImageReader.cpp: (GIFImageReader::read): Translate loop count 0 to "loop infinitely" (by restoring one piece of the Mozilla code we'd removed). 2010-05-28 Ben Murdoch <benm@google.com> Reviewed by Darin Adler. openFile(...) in FIleSystemPOSIX does not call fileSystemRepresentation https://bugs.webkit.org/show_bug.cgi?id=39882 No new tests. Existing tests in fast/files should suffice. * platform/posix/FileSystemPOSIX.cpp: (WebCore::openFile): pass the path parameter through fileSystemRepresentation before using it. 2010-05-28 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Named entities in attributes aren't parsed correctly by HTML5 parser https://bugs.webkit.org/show_bug.cgi?id=39873 I misplaced this if statement when writing this code originally. Now that we have test coverage for this paragraph in the spec, we can see and fix the bug. * html/HTML5Lexer.cpp: (WebCore::HTML5Lexer::consumeEntity): 2010-05-28 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Handle edge cases in HTML5 entity parsing https://bugs.webkit.org/show_bug.cgi?id=39823 The HTML5 specification tells us to handle HTML entities in a somewhat complicated way. This patch attempts to correctly handle numeric entities. Some of this code is duplicated from HTMLTokenizer. * html/HTML5Lexer.cpp: (WebCore::HTMLNames::): (WebCore::HTMLNames::adjustEntity): (WebCore::HTMLNames::legalEntityFor): (WebCore::HTML5Lexer::consumeEntity): (WebCore::HTML5Lexer::processEntity): (WebCore::HTML5Lexer::nextToken): (WebCore::HTML5Lexer::emitCodePoint): * html/HTML5Lexer.h: 2010-05-28 Chris Fleizach <cfleizach@apple.com> Reviewed by Beth Dakin. AX: stop prepping value conversion in accessibilityAttributeValueForParameter https://bugs.webkit.org/show_bug.cgi?id=39880 Cleaning up a FIXME so that all values are not converted before they're needed in accessibilityAttributeValue:forParameter: * accessibility/mac/AccessibilityObjectWrapper.mm: (visiblePositionForTextMarker): (-[AccessibilityObjectWrapper visiblePositionRangeForTextMarkerRange:]): (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]): 2010-05-28 Adam Treat <atreat@rim.com> Reviewed by Daniel Bates. RIM Bug #293 and https://bugs.webkit.org/show_bug.cgi?id=39859 Layout is not dependent upon ScrollView::frameRect when useFixedLayout is true. No reason to set the needs layout flag in this case. * platform/ScrollView.cpp: (WebCore::ScrollView::setFrameRect): 2010-05-28 Mikhail Naganov <mnaganov@chromium.org> Unreviewed. Revert 60353 -- immature. https://bugs.webkit.org/show_bug.cgi?id=39646 * bindings/js/JSConsoleCustom.cpp: * bindings/v8/custom/V8ConsoleCustom.cpp: * page/Console.cpp: * page/Console.h: * page/Console.idl: 2010-05-27 Darin Adler <darin@apple.com> Reviewed by David Levin. Make more HTML DOM members private, especially constructors, batch 2 https://bugs.webkit.org/show_bug.cgi?id=39706 Refactoring so no new tests. Worked my way up from the bottom of HTMLTagNames.in. * html/HTMLTagNames.in: Removed createWithNew from keygen, listing, map, marquee, menu, meta, ol, optgroup, option, p, param, pre, script, select, source, style, table, tbody, td, textarea, tfoot, th, thead, title, tr, ul, video, xmp, and noscript. * editing/htmlediting.cpp: (WebCore::createOrderedListElement): Use create function instead of new. (WebCore::createUnorderedListElement): Ditto. * html/HTMLParser.cpp: (WebCore::HTMLParser::handleError): Ditto. (WebCore::HTMLParser::mapCreateErrorCheck): Ditto. * html/HTMLViewSourceDocument.cpp: (WebCore::HTMLViewSourceDocument::createContainingTable): Ditto. (WebCore::HTMLViewSourceDocument::addLine): Ditto. * html/HTMLKeygenElement.cpp: (WebCore::HTMLKeygenElement::HTMLKeygenElement): Use create function instead of new. (WebCore::HTMLKeygenElement::create): Added. * html/HTMLKeygenElement.h: Made constructor and virtual function overrides private, added create function. * html/HTMLMapElement.cpp: (WebCore::HTMLMapElement::HTMLMapElement): (WebCore::HTMLMapElement::create): * html/HTMLMapElement.h: * html/HTMLMarqueeElement.cpp: (WebCore::HTMLMarqueeElement::HTMLMarqueeElement): (WebCore::HTMLMarqueeElement::create): * html/HTMLMarqueeElement.h: * html/HTMLMenuElement.cpp: (WebCore::HTMLMenuElement::HTMLMenuElement): (WebCore::HTMLMenuElement::create): * html/HTMLMenuElement.h: * html/HTMLMetaElement.cpp: (WebCore::HTMLMetaElement::HTMLMetaElement): (WebCore::HTMLMetaElement::create): * html/HTMLMetaElement.h: * html/HTMLNoScriptElement.cpp: (WebCore::HTMLNoScriptElement::HTMLNoScriptElement): (WebCore::HTMLNoScriptElement::create): (WebCore::HTMLNoScriptElement::childShouldCreateRenderer): * html/HTMLNoScriptElement.h: * html/HTMLOListElement.cpp: (WebCore::HTMLOListElement::HTMLOListElement): (WebCore::HTMLOListElement::create): * html/HTMLOListElement.h: * html/HTMLOptGroupElement.cpp: (WebCore::HTMLOptGroupElement::HTMLOptGroupElement): (WebCore::HTMLOptGroupElement::create): * html/HTMLOptGroupElement.h: * html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::HTMLOptionElement): (WebCore::HTMLOptionElement::create): * html/HTMLOptionElement.h: * html/HTMLParagraphElement.cpp: (WebCore::HTMLParagraphElement::HTMLParagraphElement): (WebCore::HTMLParagraphElement::create): * html/HTMLParagraphElement.h: * html/HTMLParamElement.cpp: (WebCore::HTMLParamElement::HTMLParamElement): (WebCore::HTMLParamElement::create): * html/HTMLParamElement.h: * html/HTMLPreElement.cpp: (WebCore::HTMLPreElement::HTMLPreElement): (WebCore::HTMLPreElement::create): * html/HTMLPreElement.h: * html/HTMLQuoteElement.cpp: (WebCore::HTMLQuoteElement::HTMLQuoteElement): (WebCore::HTMLQuoteElement::create): * html/HTMLQuoteElement.h: * html/HTMLScriptElement.cpp: (WebCore::HTMLScriptElement::HTMLScriptElement): (WebCore::HTMLScriptElement::create): * html/HTMLScriptElement.h: * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::create): * html/HTMLSelectElement.h: * html/HTMLSourceElement.cpp: (WebCore::HTMLSourceElement::HTMLSourceElement): (WebCore::HTMLSourceElement::create): * html/HTMLSourceElement.h: * html/HTMLStyleElement.cpp: (WebCore::HTMLStyleElement::HTMLStyleElement): (WebCore::HTMLStyleElement::create): * html/HTMLStyleElement.h: * html/HTMLTableRowElement.cpp: (WebCore::HTMLTableRowElement::HTMLTableRowElement): (WebCore::HTMLTableRowElement::create): (WebCore::HTMLTableRowElement::insertCell): * html/HTMLTableRowElement.h: * html/HTMLTableSectionElement.cpp: (WebCore::HTMLTableSectionElement::HTMLTableSectionElement): (WebCore::HTMLTableSectionElement::create): (WebCore::HTMLTableSectionElement::insertRow): * html/HTMLTableSectionElement.h: * html/HTMLTextAreaElement.cpp: (WebCore::HTMLTextAreaElement::create): * html/HTMLTextAreaElement.h: * html/HTMLTitleElement.cpp: (WebCore::HTMLTitleElement::HTMLTitleElement): (WebCore::HTMLTitleElement::create): * html/HTMLTitleElement.h: * html/HTMLUListElement.cpp: (WebCore::HTMLUListElement::HTMLUListElement): (WebCore::HTMLUListElement::create): * html/HTMLUListElement.h: * html/HTMLVideoElement.cpp: (WebCore::HTMLVideoElement::HTMLVideoElement): (WebCore::HTMLVideoElement::create): * html/HTMLVideoElement.h: Made constructors and virtual function overrides private, added create function. * html/HTMLTableCellElement.cpp: (WebCore::HTMLTableCellElement::HTMLTableCellElement): Updated names of data members. Renamed _row to m_row, _col to m_col, rSpan to m_rowSpan, cSpan to m_colSpan, and removed unused rowHeight and m_solid. (WebCore::HTMLTableCellElement::create): Added. (WebCore::HTMLTableCellElement::parseMappedAttribute): Updated names. * html/HTMLTableCellElement.h: Ditto. * html/HTMLTableElement.cpp: (WebCore::HTMLTableElement::create): Added. (WebCore::HTMLTableElement::createTHead): Used create instead of new. (WebCore::HTMLTableElement::createTFoot): Ditto. (WebCore::HTMLTableElement::insertRow): Ditto. * html/HTMLTableElement.h: * html/HTMLTablePartElement.h: Made members protected instead of public. 2010-05-28 Andreas Kling <andreas.kling@nokia.com> Reviewed by Kenneth Rohde Christiansen. [Qt] REGRESSION(r59837): Incorrect clipping of TransparencyLayers https://bugs.webkit.org/show_bug.cgi?id=39784 Move coordinate transformation from TransparencyLayer to clipToImageBuffer() * platform/graphics/qt/GraphicsContextQt.cpp: (WebCore::TransparencyLayer::TransparencyLayer): (WebCore::GraphicsContext::clipToImageBuffer): 2010-05-28 Lucas De Marchi <lucas.demarchi@profusion.mobi> Reviewed by Kenneth Rohde Christiansen. [EF] Implement methods for supporting PopupMenu https://bugs.webkit.org/show_bug.cgi?id=39629 * platform/PopupMenu.h: add needed attribute * platform/efl/PopupMenuEfl.cpp: implement methods to show/hide popup menu (WebCore::PopupMenu::PopupMenu): initialize new attribute (WebCore::PopupMenu::show): ditto. (WebCore::PopupMenu::hide): ditto. 2010-05-28 Lucas De Marchi <lucas.demarchi@profusion.mobi> Reviewed by Kenneth Rohde Christiansen. Reorder class initializers to remove compiler warnings. https://bugs.webkit.org/show_bug.cgi?id=39596 * platform/efl/PlatformKeyboardEventEfl.cpp: ditto. (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): ditto. * platform/efl/PlatformMouseEventEfl.cpp: ditto. (WebCore::PlatformMouseEvent::PlatformMouseEvent): ditto. * platform/efl/PlatformWheelEventEfl.cpp: ditto (WebCore::PlatformWheelEvent::PlatformWheelEvent): ditto. 2010-05-27 Jeremy Orlow <jorlow@chromium.org> Reviewed by Steve Block. Add IndexedDB's IDBIndex https://bugs.webkit.org/show_bug.cgi?id=39850 Flesh out IDBIndex as much as possible until Andrei finishes his patch to get around passing Frame*'s all around. I also cleaned up a bunch of existing files as I noticed style violations (while basing my new files off of the old). Not hooked up enough to test. Will add tests soon. * Android.derived.jscbindings.mk * Android.derived.v8bindings.mk * Android.mk * CMakeLists.txt * DerivedSources.cpp * DerivedSources.make * GNUmakefile.am * WebCore.pri * WebCore.pro * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj * WebCore.xcodeproj/project.pbxproj * bindings/js/JSIDBAnyCustom.cpp: (WebCore::toJS): * bindings/v8/custom/V8IDBAnyCustom.cpp: (WebCore::toV8): * storage/IDBAny.cpp: (WebCore::IDBAny::idbIndexRequest): (WebCore::IDBAny::set): * storage/IDBAny.h: (WebCore::IDBAny::): * storage/IDBCallbacks.h: * storage/IDBDatabase.h: * storage/IDBDatabaseError.h: (WebCore::IDBDatabaseError::): * storage/IDBDatabaseError.idl: * storage/IDBDatabaseException.h: * storage/IDBDatabaseException.idl: * storage/IDBDatabaseImpl.cpp: * storage/IDBDatabaseImpl.h: * storage/IDBDatabaseRequest.cpp: * storage/IDBDatabaseRequest.h: * storage/IDBDatabaseRequest.idl: * storage/IDBIndex.h: Added. (WebCore::IDBIndex::~IDBIndex): * storage/IDBIndexImpl.cpp: Added. (WebCore::IDBIndexImpl::IDBIndexImpl): (WebCore::IDBIndexImpl::~IDBIndexImpl): * storage/IDBIndexImpl.h: Added. (WebCore::IDBIndexImpl::create): (WebCore::IDBIndexImpl::name): (WebCore::IDBIndexImpl::keyPath): (WebCore::IDBIndexImpl::unique): * storage/IDBIndexRequest.cpp: Added. (WebCore::IDBIndexRequest::IDBIndexRequest): (WebCore::IDBIndexRequest::~IDBIndexRequest): * storage/IDBIndexRequest.h: Added. (WebCore::IDBIndexRequest::create): (WebCore::IDBIndexRequest::name): (WebCore::IDBIndexRequest::keyPath): (WebCore::IDBIndexRequest::unique): * storage/IDBIndexRequest.idl: Added. * storage/IDBObjectStore.cpp: (WebCore::IDBObjectStore::IDBObjectStore): (WebCore::IDBObjectStore::~IDBObjectStore): (WebCore::IDBObjectStore::indexNames): (WebCore::IDBObjectStore::createIndex): (WebCore::IDBObjectStore::index): (WebCore::IDBObjectStore::removeIndex): * storage/IDBObjectStore.h: * storage/IDBObjectStoreRequest.cpp: (WebCore::IDBObjectStoreRequest::IDBObjectStoreRequest): (WebCore::IDBObjectStoreRequest::name): (WebCore::IDBObjectStoreRequest::keyPath): (WebCore::IDBObjectStoreRequest::indexNames): (WebCore::IDBObjectStoreRequest::createIndex): (WebCore::IDBObjectStoreRequest::index): (WebCore::IDBObjectStoreRequest::removeIndex): * storage/IDBObjectStoreRequest.h: * storage/IDBObjectStoreRequest.idl: * storage/IDBRequest.cpp: (WebCore::IDBRequest::onSuccess): * storage/IDBRequest.h: * storage/IndexedDatabaseRequest.idl: 2010-05-28 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. Web Inspector: hide node highlight when inspected page closes. https://bugs.webkit.org/show_bug.cgi?id=39872 * inspector/InspectorController.cpp: (WebCore::InspectorController::~InspectorController): (WebCore::InspectorController::inspectedPageDestroyed): 2010-05-28 Mikhail Naganov <mnaganov@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: add Console API for retrieving memory stats Add 'console.memory' property which returns an object. Currently it has two fields: totalHeapSize and usedHeapSize. Later, it can be extended for reporting total browser's memory consumption. https://bugs.webkit.org/show_bug.cgi?id=39840 * bindings/js/JSConsoleCustom.cpp: (WebCore::JSConsole::memory): * bindings/v8/custom/V8ConsoleCustom.cpp: (WebCore::V8Console::memoryAccessorGetter): * page/Console.cpp: (WebCore::Console::memory): * page/Console.h: * page/Console.idl: 2010-05-28 Xan Lopez <xlopez@igalia.com> Add new file to the build system. * GNUmakefile.am: 2010-05-28 Antti Koivisto <koivisto@iki.fi> Reviewed by Kenneth Rohde Christiansen. https://bugs.webkit.org/show_bug.cgi?id=39874 [Qt] Make tiled backing store more configurable Make tile size, tile creation delay and tiling area dynamically configurable. * platform/graphics/TiledBackingStore.cpp: (WebCore::TiledBackingStore::TiledBackingStore): (WebCore::TiledBackingStore::setTileSize): (WebCore::TiledBackingStore::setTileCreationDelay): (WebCore::TiledBackingStore::setKeepAndCoverAreaMultipliers): (WebCore::TiledBackingStore::createTiles): * platform/graphics/TiledBackingStore.h: (WebCore::TiledBackingStore::tileSize): (WebCore::TiledBackingStore::tileCreationDelay): (WebCore::TiledBackingStore::getKeepAndCoverAreaMultipliers): 2010-05-28 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. document.write does not work correctly in the HTML5 parser https://bugs.webkit.org/show_bug.cgi?id=39828 Added a new HTML5ScriptRunnerHost interface which HTML5Tokenizer implements. This allows HTML5ScriptController to delegate the actual ScriptController::executeScript back to HTML5Tokenizer. HTML5Tokenizer saves off the current m_source before calling ScriptController::executeScript to allow safe reentrancy through document.write(). * WebCore.xcodeproj/project.pbxproj: - Added HTML5ScriptRunnerHost.h * html/HTML5ScriptRunner.cpp: (WebCore::HTML5ScriptRunner::HTML5ScriptRunner): (WebCore::HTML5ScriptRunner::~HTML5ScriptRunner): - Unregister m_parsingBlockingScript if stopped before load completion. This was probably causing some of the crashes on page navigation we saw during LayoutTest runs. (WebCore::documentURLForScriptExecution): - Unify our documentURL handling so all callsites get it right. (WebCore::HTML5ScriptRunner::sourceFromPendingScript): - Use documentURLForScriptExecution (WebCore::HTML5ScriptRunner::executePendingScript): - Call stopWatchingForLoad instead of removeClient() - Call executeScript instead of ScriptController directly. (WebCore::HTML5ScriptRunner::executeScript): - Wraps calls to HTML5ScriptRunnerHost::executeScript (WebCore::HTML5ScriptRunner::watchForLoad): - Wraps calls to HTML5ScriptRunnerHost::watchForLoad (WebCore::HTML5ScriptRunner::stopWatchingForLoad): - Wraps calls to HTML5ScriptRunnerHost::stopWatchingForLoad (WebCore::HTML5ScriptRunner::requestScript): - Only watch for load if the CachedScript isn't already loaded. This gets rid of rentrancy due to addClient calls, and as a result also stops us from hitting ASSERT(m_scriptNestingLevel) in executePendingScript. (WebCore::HTML5ScriptRunner::runScript): - Use the new fancy documentURLForScriptExecution and executeScript. * html/HTML5ScriptRunner.h: (WebCore::HTML5ScriptRunner::PendingScript::PendingScript): - Add a watchingForLoad bool so we know if we ever called watchForLoad with this CachedScript*. * html/HTML5ScriptRunnerHost.h: Added. (WebCore::HTML5ScriptRunnerHost::~HTML5ScriptRunnerHost): * html/HTML5Tokenizer.cpp: (WebCore::HTML5Tokenizer::HTML5Tokenizer): - Store an m_document pointer since we need to access m_document->frame()->script() for script execution. (WebCore::HTML5Tokenizer::pumpLexer): - Always pause or unpause the TreeBuilder after script execution. Previously nested script execution would leave the TreeBuilder paused even though the top-level loop wanted to resume parsing. Now whenever m_scriptRunner->execute returns "continue parsing" parsing will actually continue. This fixed cases where we would ignore the rest of the document after document.write() of a script tag. (WebCore::HTML5Tokenizer::write): - Explain how document.write() reentrancy is safe in the new world. (WebCore::HTML5Tokenizer::watchForLoad): - HTML5ScriptRunnerHost implementation. We assert that this call will never cause script execution since that's our current design. (WebCore::HTML5Tokenizer::stopWatchingForLoad): - HTML5ScriptRunnerHost implementation. (WebCore::HTML5Tokenizer::executeScript): - HTML5ScriptRunnerHost implementation. Save off the current source before executing scripts in case document.write is called during script execution. * html/HTML5Tokenizer.h: - Implement HTML5ScriptRunnerHost. 2010-05-28 Nathan Lawrence <nlawrence@apple.com> Reviewed by Geoffrey Garen. https://bugs.webkit.org/show_bug.cgi?id=39460 Because not just <img> and <image> elements can preload images, we dont want to restrict the element associated with the loader. No new tests. Should share the same tests as the last patch. * html/HTMLImageLoader.cpp: (WebCore::HTMLImageLoader::notifyFinished): 2010-05-27 MORITA Hajime <morrita@google.com> Reviewed by Ojan Vafai. Cursor movement and text selection does not work well if a block is followed by an inline. https://bugs.webkit.org/show_bug.cgi?id=32123 RenderInline::setSelectionState() missed selection state propagation for ancestors. This fix pulled RenderBlock::setSelectionState() up to RenderBoxModelObject, to share it with RenderInline. Test: editing/selection/range-between-block-and-inline.html: Added. * rendering/RenderBlock.cpp: * rendering/RenderBlock.h: * rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::setSelectionState): * rendering/RenderBoxModelObject.h: Moved setSelectionState() from RenderBlock to RenderBoxModelObject. 2010-05-27 MORITA Hajime <morrita@google.com> Not reviewed. Fixed typo * rendering/RenderTheme.cpp: (WebCore::RenderTheme::adjustStyle): 2010-05-27 Darin Adler <darin@apple.com> Reviewed by David Levin. Make more HTML DOM members private, especially constructors https://bugs.webkit.org/show_bug.cgi?id=39697 Refactoring, so no new tests needed. Working my way through HTMLTagNames.in from top to bottom, skipping any that are non-trivial for some reason. * html/HTMLTagNames.in: Removed createWithNew from audio, base, basefont, blockquote, body, br, button, canvas, caption, col, colgroup, datagrid, datalist, dcell, dcol, drow, del, dir, dl, and fieldset. * mathml/mathtags.in: Removed createWithNew from msub, and msup. * dom/Document.cpp: (WebCore::Document::implicitClose): Use create function instead of new. (WebCore::Document::getCSSCanvasElement): Ditto. * editing/IndentOutdentCommand.cpp: (WebCore::createIndentBlockquoteElement): Ditto. * editing/htmlediting.cpp: (WebCore::createBreakElement): Ditto. * html/HTMLTableElement.cpp: (WebCore::HTMLTableElement::createCaption): Ditto. * html/HTMLViewSourceDocument.cpp: (WebCore::HTMLViewSourceDocument::createContainingTable): Ditto. * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::setInnerTextValue): Ditto. * html/HTMLParser.cpp: (WebCore::HTMLParser::handleError): Use create function instead of new. Required reordering the code slightly, but the new order works fine. * html/HTMLAudioElement.cpp: (WebCore::HTMLAudioElement::create): * html/HTMLAudioElement.h: * html/HTMLBRElement.cpp: (WebCore::HTMLBRElement::create): * html/HTMLBRElement.h: * html/HTMLBaseElement.cpp: (WebCore::HTMLBaseElement::create): * html/HTMLBaseElement.h: * html/HTMLBaseFontElement.cpp: (WebCore::HTMLBaseFontElement::create): * html/HTMLBaseFontElement.h: * html/HTMLBlockquoteElement.cpp: (WebCore::HTMLBlockquoteElement::create): * html/HTMLBlockquoteElement.h: * html/HTMLBodyElement.cpp: (WebCore::HTMLBodyElement::create): * html/HTMLBodyElement.h: * html/HTMLButtonElement.cpp: (WebCore::HTMLButtonElement::create): * html/HTMLButtonElement.h: * html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::create): * html/HTMLCanvasElement.h: * html/HTMLDListElement.cpp: (WebCore::HTMLDListElement::create): * html/HTMLDListElement.h: * html/HTMLDataGridCellElement.cpp: (WebCore::HTMLDataGridCellElement::create): * html/HTMLDataGridCellElement.h: * html/HTMLDataGridColElement.cpp: (WebCore::HTMLDataGridColElement::create): * html/HTMLDataGridColElement.h: * html/HTMLDataGridElement.cpp: (WebCore::HTMLDataGridElement::create): * html/HTMLDataGridElement.h: * html/HTMLDataGridRowElement.cpp: (WebCore::HTMLDataGridRowElement::create): * html/HTMLDataGridRowElement.h: * html/HTMLDataListElement.cpp: (WebCore::HTMLDataListElement::create): * html/HTMLDataListElement.h: * html/HTMLElement.cpp: (WebCore::HTMLElement::setInnerText): * html/HTMLFieldSetElement.cpp: (WebCore::HTMLFieldSetElement::create): * html/HTMLFieldSetElement.h: * html/HTMLModElement.cpp: (WebCore::HTMLModElement::HTMLModElement): (WebCore::HTMLModElement::create): * html/HTMLModElement.h: * html/HTMLTableCaptionElement.cpp: (WebCore::HTMLTableCaptionElement::create): * html/HTMLTableCaptionElement.h: Made constructors and virtual function overrides private, added create functions. Made constructors inline in cases where they were called in only one place. * html/HTMLTableColElement.cpp: (WebCore::HTMLTableColElement::HTMLTableColElement): Changed data member name from _span to m_span. (WebCore::HTMLTableColElement::create): Added. (WebCore::HTMLTableColElement::parseMappedAttribute): Updated to use m_span. * html/HTMLTableColElement.h: Made constructor and virtual function overrides private, added create function. Renamed _span to m_span. 2010-05-27 Kwang Yul Seo <skyul@company100.net> Reviewed by Darin Adler. wx port: build fix for Linux https://bugs.webkit.org/show_bug.cgi?id=39860 Use uint16_t instead of uint16. * plugins/PluginPackageNone.cpp: (WebCore::PluginPackage::NPVersion): 2010-05-27 Nathan Lawrence <nlawrence@apple.com> Reviewed by Geoffrey Garen. https://bugs.webkit.org/show_bug.cgi?id=39460 Fixes the issue where images prefetched by JavaScript do not report their memory usage to the GC. There is a new test manual-tests/image-prefetch-stress.html that loads a new 4MB image every half a second. * html/HTMLImageLoader.cpp: (WebCore::HTMLImageLoader::notifyFinished): * manual-tests/image-prefetch-stress.html: Added. 2010-05-27 Eric Uhrhane <ericu@chromium.org> Reviewed by Adam Barth. Add v8 bindings for async DB API in workers https://bugs.webkit.org/show_bug.cgi?id=39145 No new tests. This should share layout tests with JSC. Tweak the callback generation to switch lots of Frame* to ScriptExecutionContext*, and use the context passed in to handleEvent where possible. * bindings/scripts/CodeGeneratorV8.pm: As with CodeGeneratorV8; these are pretty much all tiny tweaks. We do have to use a slightly different patch for callback invocation in invokeCallback, as V8Proxy::retrieve() doesn't work in the worker context. * bindings/v8/custom/V8CustomPositionCallback.cpp: (WebCore::V8CustomPositionCallback::handleEvent): * bindings/v8/custom/V8CustomPositionErrorCallback.cpp: (WebCore::V8CustomPositionErrorCallback::handleEvent): * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp: (WebCore::V8SQLStatementErrorCallback::handleEvent): * bindings/v8/custom/V8CustomVoidCallback.cpp: (WebCore::V8CustomVoidCallback::V8CustomVoidCallback): (WebCore::V8CustomVoidCallback::handleEvent): (WebCore::invokeCallback): * bindings/v8/custom/V8CustomVoidCallback.h: (WebCore::V8CustomVoidCallback::create): * bindings/v8/custom/V8DOMWindowCustom.cpp: (WebCore::V8DOMWindow::openDatabaseCallback): * bindings/v8/custom/V8DatabaseCustom.cpp: (WebCore::V8Database::changeVersionCallback): (WebCore::createTransaction): * bindings/v8/custom/V8DatabaseSyncCustom.cpp: (WebCore::V8DatabaseSync::changeVersionCallback): (WebCore::createTransaction): * bindings/v8/custom/V8NotificationCenterCustom.cpp: (WebCore::V8NotificationCenter::requestPermissionCallback): * bindings/v8/custom/V8SQLTransactionCustom.cpp: (WebCore::V8SQLTransaction::executeSqlCallback): Add openDatabaseCallback. * bindings/v8/custom/V8WorkerContextCustom.cpp: (WebCore::V8WorkerContext::openDatabaseCallback): Remove an obsolete parameter. (WebCore::V8WorkerContext::openDatabaseSyncCallback): 2010-05-27 Pavel Feldman <pfeldman@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: [REGRESSION] Query parameters are not displayed in the resources headers section. https://bugs.webkit.org/show_bug.cgi?id=39848 * inspector/front-end/ResourceView.js: (WebInspector.ResourceView): (WebInspector.ResourceView.prototype._refreshRequestPayload): 2010-05-27 Nico Weber <thakis@chromium.org> Reviewed by Eric Seidel https://bugs.webkit.org/show_bug.cgi?id=39092 Add Yank support to chromium mac. Do this by moving WebKit Mac's implementation of Editor::yankFromKillRing() into its own class and then using that. * editing/Editor.cpp: Use new KillRing class. * editing/Editor.h: (WebCore::Editor::killRing): Use new KillRing class. * editing/EditorCommand.cpp: (WebCore::executeYankAndSelect): Use new KillRing class. * platform/KillRing.h: Add new KillRing class, which acts as null object. (WebCore::KillRing::~KillRing): * platform/mac/KillRingMac.h: Add new KillRingMac class, which writes to the mac's kill ring. * platform/mac/KillRingMac.mm: Add new KillRingMac class, which writes to the mac's kill ring. 2010-05-27 Ben Murdoch <benm@google.com> Reviewed by Jian Li. Build break in FileStream.cpp https://bugs.webkit.org/show_bug.cgi?id=39841 When ENABLE_BLOB_SLICE is not defined, an undefined variable is used in FileStream.cpp:114. Fix by using the correct variable. Build fix so no new tests. * html/FileStream.cpp: (WebCore::FileStream::openForRead): Replace undefined variable with a defined one. 2010-05-27 Hans Wennborg <hans@chromium.org> Reviewed by Jeremy Orlow. [Chromium] Default popup window size should not depend on zoom level https://bugs.webkit.org/show_bug.cgi?id=39835 V8DOMWindow::openCallback should not set width and height of new window unless specified in the function's arguments. There is already code to reset the new window's origin coordinates, but the same thing should be done to its dimensions as well. Otherwise, a new popup with unspecified size will have its size depending on the parent's zoom level, which is not desirable. This is the same as what is done in bindings/js/JSDOMWindowCustom.cpp:826. * bindings/v8/custom/V8DOMWindowCustom.cpp: (WebCore::V8DOMWindow::openCallback): 2010-05-27 Anders Bakken <agbakken@gmail.com> Reviewed by David Levin. qt_instance.cpp has coding-style errors https://bugs.webkit.org/show_bug.cgi?id=39744 Fix webkit coding style issues in qt_instance.cpp * bridge/qt/qt_instance.cpp: (JSC::Bindings::QtInstance::getQtInstance): (JSC::Bindings::QtInstance::removeCachedMethod): (JSC::Bindings::QtInstance::markAggregate): (JSC::Bindings::QtInstance::getPropertyNames): (JSC::Bindings::QtInstance::stringValue): (JSC::Bindings::QtField::name): (JSC::Bindings::QtField::valueFromInstance): 2010-05-27 Anders Bakken <agbakken@gmail.com> Reviewed by David Levin. qt_instance.h has coding-style errors https://bugs.webkit.org/show_bug.cgi?id=39743 Fix webkit coding style issues in qt_instance.h * bridge/qt/qt_instance.h: 2010-05-27 Anders Bakken <agbakken@gmail.com> Reviewed by David Levin. qt_class.h has coding-style errors https://bugs.webkit.org/show_bug.cgi?id=39742 Fix webkit coding style issues in qt_class.h * bridge/qt/qt_class.h: 2010-05-27 Eric Carlson <eric.carlson@apple.com> Reviewed by Darin Adler. <rdar://problem/8016158> Crash in CVPixelBufferCreateResolvedAttributesDictionary with RLE compressed movie. Configure the visual context to generate Direct3D compatible pixel buffers when we are able to use a CAImageQueue so there will be less conversion required before display. This change also works around the issue that causes the RLE compressed movie to crash. * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp: (WebCore::MediaPlayerPrivateQuickTimeVisualContext::load): Pass enum to QTMovieVisualContext constructor instead of CFDictionary. * platform/graphics/win/QTMovieVisualContext.cpp: (SetNumberValue): (getPixelBufferCreationOptions): New, create options dictionary appropriate for the visual context type. (pixelBufferCreationOptions): New, return options dictionary appropriate for the visual context type. (QTMovieVisualContextPriv::QTMovieVisualContextPriv): Get the options dictionary from getPixelBufferCreationOptions insteaad of taking it as a parameter. (QTMovieVisualContext::QTMovieVisualContext): Take enum instead of CFDictionary for visual context configuration type. * platform/graphics/win/QTMovieVisualContext.h: 2010-05-27 Anders Carlsson <andersca@apple.com> Reviewed by Adam Roben. [Qt] REGRESSION(r60258): It broke 10 tests. https://bugs.webkit.org/show_bug.cgi?id=39819 * plugins/qt/PluginDataQt.cpp: (WebCore::PluginData::initPlugins): Append the MimeClassInfo object after it's been initialized. 2010-05-27 Kevin Ollivier <kevino@theolliviers.com> [wx] Build fixes for Windows after recent changes. * platform/graphics/wx/FontWx.cpp: * wscript: 2010-05-27 Chris Fleizach <cfleizach@apple.com> No review, build fixage. Bug 39324 - AX: WebKit doesn't call [super -accessibilityAttributeValue:attribute forParameter:] when it encounters a parameterized attribute that it doesn't handle. https://bugs.webkit.org/show_bug.cgi?id=39324 Rolling out change from r60307 until a better fix is ready. * accessibility/mac/AccessibilityObjectWrapper.mm: (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]): 2010-05-27 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. [v8] Web Inspector: check that ScriptDebugListener was not removed while messages were dispatched in the nested loop. https://bugs.webkit.org/show_bug.cgi?id=39838 * bindings/v8/ScriptDebugServer.cpp: (WebCore::ScriptDebugServer::handleV8DebugEvent): 2010-05-27 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. [v8] Web Inspector: undefined script URL value should be converted to an emtpy WebCore::String instead of "undefined" string. Otherwise it's shown in the Scripts panel with "undefined:<line no>" URL. https://bugs.webkit.org/show_bug.cgi?id=39845 * bindings/v8/ScriptDebugServer.cpp: (WebCore::ScriptDebugServer::dispatchDidParseSource): 2010-05-27 Chris Fleizach <cfleizach@apple.com> Reviewed by Darin Adler. AX: WebKit doesn't call [super -accessibilityAttributeValue:attribute forParameter:] when it encounters a parameterized attribute that it doesn't handle. https://bugs.webkit.org/show_bug.cgi?id=39324 Make sure that accessibilityAttributeValue:forParameter: will default to its super's implementation. This is how AppKit expects objects to behave. * accessibility/mac/AccessibilityObjectWrapper.mm: (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]): 2010-05-27 Xan Lopez <xlopez@igalia.com> More GTK+ distcheck fixes. * GNUmakefile.am: 2010-05-27 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. [v8] Web Inspector: notify ScriptDebugListener when execution is resumed https://bugs.webkit.org/show_bug.cgi?id=39838 * bindings/v8/ScriptDebugServer.cpp: (WebCore::ScriptDebugServer::handleV8DebugEvent): 2010-05-27 Anders Bakken <agbakken@gmail.com> Reviewed by David Levin. qt_pixmapruntime.cpp has coding-style errors https://bugs.webkit.org/show_bug.cgi?id=39745 Fix webkit coding style issues in qt_pixmapruntime.cpp * bridge/qt/qt_pixmapruntime.cpp: 2010-05-26 Jeremy Orlow <jorlow@chromium.org> Reviewed by Steve Block. Clean up IndexedDB layout tests https://bugs.webkit.org/show_bug.cgi?id=39748 Remove an assert that always fires. Tests: storage/indexeddb/idb-database-request.html storage/indexeddb/indexed-database-request.html * storage/IDBDatabaseImpl.cpp: (WebCore::IDBDatabaseImpl::objectStores): 2010-05-27 Pavel Feldman <pfeldman@chromium.org> Reviewed by Yury Semikhatsky. Web Inspector: Get CSS rule offsets lazily. https://bugs.webkit.org/show_bug.cgi?id=39832 * inspector/InspectorCSSStore.cpp: (WebCore::InspectorCSSStore::getStartEndOffsets): * inspector/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::buildObjectForRule): 2010-05-27 Anders Bakken <agbakken@gmail.com> Reviewed by David Levin. qt_class.cpp has coding-style errors https://bugs.webkit.org/show_bug.cgi?id=39741 Fix webkit coding style issues in qt_class.cpp * bridge/qt/qt_class.cpp: (JSC::Bindings::QtClass::fieldNamed): 2010-05-27 Eric Seidel <eric@webkit.org> Reviewed by Darin Adler. Remove bit-rotten INSTRUMENT_LAYOUT_SCHEDULING code from HTMLTokenizer https://bugs.webkit.org/show_bug.cgi?id=39714 This came from a discussion on #webkit with Hyatt about this code being old and no longer used to either of our knowledge. No functional changes, thus no tests. I also removed a bogus FIXME I had added in an earlier patch before I understood what the HTMLTokenizer was trying to do. * html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::scriptHandler): (WebCore::HTMLTokenizer::scriptExecution): (WebCore::HTMLTokenizer::continueProcessing): (WebCore::HTMLTokenizer::willWriteHTML): (WebCore::HTMLTokenizer::didWriteHTML): (WebCore::HTMLTokenizer::timerFired): (WebCore::HTMLTokenizer::executeExternalScriptsIfReady): 2010-05-27 Anton Muhin <antonm@chromium.org> Reviewed by Adam Barth. Add callbacks to ScriptController to allow notifications on named items additions and removals https://bugs.webkit.org/show_bug.cgi?id=39679 * bindings/js/ScriptController.h: Callbacks with empty implementation added. (WebCore::ScriptController::namedItemAdded): (WebCore::ScriptController::namedItemRemoved): * bindings/v8/ScriptController.cpp: Empty implementation of callbacks. (WebCore::ScriptController::namedItemAdded): (WebCore::ScriptController::namedItemRemoved): * bindings/v8/ScriptController.h: Callbacks added. * html/HTMLDocument.cpp: Hooking in callbacks. (WebCore::HTMLDocument::addItemToMap): (WebCore::HTMLDocument::removeItemFromMap): * html/HTMLDocument.h: 2010-05-27 Zhenyao Mo <zmo@google.com> Reviewed by Dimitri Glazkov. Implement lazy clearing of renderbuffers https://bugs.webkit.org/show_bug.cgi?id=36248 Test: fast/canvas/webgl/renderbuffer-initialization.html * html/canvas/WebGLFramebuffer.cpp: (WebCore::WebGLFramebuffer::WebGLFramebuffer): Init added members. (WebCore::WebGLFramebuffer::setAttachment): Set attachment object. (WebCore::WebGLFramebuffer::onBind): Perform buffer clearing if needed. (WebCore::WebGLFramebuffer::onAttachedObjectChange): Ditto. (WebCore::WebGLFramebuffer::isUninitialized): Check whether an attached object is uninitialized renderbuffer. (WebCore::WebGLFramebuffer::setInitialized): After initialize a renderbuffer, set the flag. (WebCore::WebGLFramebuffer::initializeRenderbuffers): Clear un-initialized renderbuffers if framebuffer is complete. * html/canvas/WebGLFramebuffer.h: (WebCore::WebGLFramebuffer::isDepthAttached): Changed to check object. (WebCore::WebGLFramebuffer::isStencilAttached): Ditto. (WebCore::WebGLFramebuffer::isDepthStencilAttached): Ditto. * html/canvas/WebGLRenderbuffer.cpp: (WebCore::WebGLRenderbuffer::WebGLRenderbuffer): Init added members. * html/canvas/WebGLRenderbuffer.h: (WebCore::WebGLRenderbuffer::isInitialized): As the function name. (WebCore::WebGLRenderbuffer::setInitialized): Ditto. * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::bindFramebuffer): Call onBind(). (WebCore::WebGLRenderingContext::copyTexImage2D): Call onAttachedObjectChange(). (WebCore::WebGLRenderingContext::deleteRenderbuffer): Ditto. (WebCore::WebGLRenderingContext::deleteTexture): Ditto. (WebCore::WebGLRenderingContext::framebufferRenderbuffer): Call setAttachment. (WebCore::WebGLRenderingContext::framebufferTexture2D): Call onAttachedObjectChange(). (WebCore::WebGLRenderingContext::renderbufferStorage): Ditto. (WebCore::WebGLRenderingContext::texImage2DBase): Ditto. * platform/graphics/mac/GraphicsContext3DMac.cpp: (WebCore::GraphicsContext3D::reshape): Initialize internal buffers. 2010-05-27 Kristian Monsen <kristianm@google.com> Reviewed by Darin Adler. Compile fix for Android, added include for Refcounted.h, this did not get included through Threading.h in Android. https://bugs.webkit.org/show_bug.cgi?id=39678 Build fix only, no new tests. * storage/SQLTransactionSyncCallback.h: 2010-05-27 Joone Hur <joone@kldp.org> Reviewed by Xan Lopez. Add GtkVersioning.h in ScrollbackGtk.cpp for maintaining compatibility with the previous GTK+ https://bugs.webkit.org/show_bug.cgi?id=39567 * platform/gtk/ScrollbarGtk.cpp: 2010-05-27 Hans Wennborg <hans@chromium.org> Reviewed by Alexey Proskuryakov. Increase limit on number of (i)frames from 200 to 1000. https://bugs.webkit.org/show_bug.cgi?id=39427 The limit on number of iframes was introduced in r3707 back in 2003. An example of a page that is broken because of this is: http://vimcolorschemetest.googlecode.com/svn/html/index-c.html Neither Firefox nor IE has such a limit. It seems that WebKit can handle a significantly higher number of frames, and the original reasons for imposing the limit are believed to be gone. Tests: compositing/iframes/lots-of-iframes.html compositing/iframes/lots-of-objects.html * html/HTMLFrameElementBase.cpp: (WebCore::HTMLFrameElementBase::isURLAllowed): * page/FrameTree.cpp: (WebCore::FrameTree::uniqueChildName): * page/Page.h: * rendering/RenderEmbeddedObject.cpp: (WebCore::isURLAllowed): 2010-05-27 Kwang Yul Seo <skyul@company100.net> Reviewed by Xan Lopez. [GTK] writeToFile fails when length is large https://bugs.webkit.org/show_bug.cgi?id=39666 writeToFile forgot to increment data pointer. * platform/gtk/FileSystemGtk.cpp: (WebCore::writeToFile): 2010-05-26 David Hyatt <hyatt@apple.com> Reviewed by Sam Weinig. https://bugs.webkit.org/show_bug.cgi?id=39783, clean up the moveChild functions on RenderBlock. Eliminate the need to pass the toChildrenList to the moveChild functions by tightening up the type of the |to| argument to be a RenderBlock. Add a moveChildrenTo function that can move a range of children, and patch places that were doing this by hand. Make the append forms of the functions just use the insert forms with a beforeChild of 0. Patch insertChildNode in RenderObjectChildList so that it passes the fullInsert parameter through in the case where it does an append. Add an assert to RenderLayer that catches bad structure built when the fullInsert/Remove parameters are messed up when using append/insertChildNode. * rendering/RenderBlock.cpp: (WebCore::RenderBlock::splitAnonymousBlocksAroundChild): (WebCore::RenderBlock::makeChildrenAnonymousColumnBlocks): (WebCore::RenderBlock::createAndAppendRootInlineBox): (WebCore::RenderBlock::moveChildTo): (WebCore::RenderBlock::moveChildrenTo): (WebCore::RenderBlock::makeChildrenNonInline): (WebCore::RenderBlock::removeChild): * rendering/RenderBlock.h: (WebCore::RenderBlock::moveChildTo): (WebCore::RenderBlock::moveAllChildrenTo): (WebCore::RenderBlock::moveChildrenTo): * rendering/RenderLayer.cpp: (WebCore::RenderLayer::addChild): * rendering/RenderObjectChildList.cpp: (WebCore::RenderObjectChildList::insertChildNode): * rendering/RenderRubyBase.cpp: (WebCore::RenderRubyBase::moveInlineChildren): 2010-05-27 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. Add <pre>/<listing> hack to HTML5Lexer to fix the last remaining HTML5 test suite regressions https://bugs.webkit.org/show_bug.cgi?id=39818 HTML parsers are supposed to ignore the first \n after a <pre> or <listing> tag for authoring convenience. Our new HTML5Lexer didn't have this hack yet so there were 4 HTML5 tests failing. Fixing this fixed the last of the HTML5 test suite regressions using the HTML5Lexer vs the old lexer. * html/HTML5Lexer.cpp: (WebCore::HTML5Lexer::reset): (WebCore::HTML5Lexer::nextToken): * html/HTML5Lexer.h: (WebCore::HTML5Lexer::skipLeadingNewLineForListing): * html/HTML5TreeBuilder.cpp: (WebCore::HTML5TreeBuilder::passTokenToLegacyParser): 2010-05-26 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. Teach the HTML5 parser how to handle external scripts https://bugs.webkit.org/show_bug.cgi?id=39716 Make it possible for the HTML5Tokenizer to run external scripts. I created a new class HTML5ScriptRunner to hold all of the script-logic which is scattered throughout the old HTMLTokenizer. The design is for the HTML5Tokenizer (the "controller") to hold the Lexer, TreeBuilder and ScriptRunner. The Lexer returns back to the controller, which passes tokens to the TreeBuilder. When the treebuilder encounters a </script> tag it pauses itself and returns back to the controller which calls the ScriptRunner. The TreeBuilder is un-paused when the HTML5Tokenizer calls takeScriptToProcess(). The ScriptRunner attempts to process the passed script, and additionally any blocked scripts it can. It returns to the controller indicating if parsing should continue. If not, callbacks when external scripts load or when stylesheets are finished parsing will cause the controller to kick off script execution and parsing again at a later point. * WebCore.xcodeproj/project.pbxproj: - Add HTML5ScriptRunner.* * bindings/js/CachedScriptSourceProvider.h: - Add missing include discovered while building. * dom/ScriptElement.cpp: (WebCore::ScriptElement::finishParsingChildren): - Remove previous hack for inline <script> execution. * dom/ScriptElement.h: - Explain the HTML5 spec names for m_evaluated and m_createdByParser. * html/HTML5ScriptRunner.cpp: Added. (WebCore::HTML5ScriptRunner::HTML5ScriptRunner): - The HTML5Tokenizer is passed to the HTML5ScriptRunner as a CachedResourceClient. The HTML5ScriptRunner will register the HTML5Tokenizer for notifyFinished callbacks when the scripts load. The HTML5Tokenizer is expected to call the HTML5ScriptRunner to execute any loaded scripts at that point. (WebCore::HTML5ScriptRunner::~HTML5ScriptRunner): (WebCore::HTML5ScriptRunner::frame): Helper method. (WebCore::createScriptLoadEvent): Helper method. (WebCore::createScriptErrorEvent): Helper method. (WebCore::HTML5ScriptRunner::sourceFromPendingScript): - Helper method for dealing with both inline and external script types. (WebCore::HTML5ScriptRunner::isPendingScriptReady): - Helper for dealing with both inline and external scripts. (WebCore::HTML5ScriptRunner::executePendingScript): - Execute one script. Both external and inline scripts can become m_parsingBlockingScript if they can't be executed immediately after parsing. (WebCore::HTML5ScriptRunner::execute): - Takes a script element from the tree builder and tries to process it. (WebCore::HTML5ScriptRunner::executeParsingBlockingScripts): - Runs the current parsing blocking script if ready. - Running a script could add another parsing blocking script so we loop until there is no ready-to-run parsing blocking script. (WebCore::HTML5ScriptRunner::executeScriptsWaitingForLoad): - Called by HTML5Tokenizer when a script loads. (WebCore::HTML5ScriptRunner::executeScriptsWaitingForStylesheets): - Called by HTML5Tokenizer when stylesheets complete. (WebCore::HTML5ScriptRunner::requestScript): - Transcription of the HTML5 spec. (WebCore::HTML5ScriptRunner::runScript): - Transcription of the HTML5 spec. * html/HTML5ScriptRunner.h: Added. - New class to handle script loading and execution for the HTML5 parser. * html/HTML5Tokenizer.cpp: (WebCore::HTML5Tokenizer::HTML5Tokenizer): - Create a HTML5ScriptRunner and pass it "this" as the CachedResourceClient. (WebCore::HTML5Tokenizer::pumpLexer): - When the parser is paused, try to run scripts. (WebCore::HTML5Tokenizer::write): - Only pump the lexer when the parser is not paused. (WebCore::HTML5Tokenizer::end): - finish() tells us that we've reached EOF, not end() - Only pump the lexer when the parser is not paused. (WebCore::HTML5Tokenizer::finish): - Mark EOF, and end() if we're not waiting on scripts. (WebCore::HTML5Tokenizer::isWaitingForScripts): - isPaused() seems to mean isPausedForExternalScripts(). (WebCore::HTML5Tokenizer::resumeParsingAfterScriptExecution): (WebCore::HTML5Tokenizer::notifyFinished): (WebCore::HTML5Tokenizer::executeScriptsWaitingForStylesheets): * html/HTML5Tokenizer.h: * html/HTML5TreeBuilder.cpp: (WebCore::HTML5TreeBuilder::HTML5TreeBuilder): - Add an m_isPaused flag. (WebCore::HTML5TreeBuilder::handleScriptStartTag): (WebCore::HTML5TreeBuilder::handleScriptEndTag): (WebCore::HTML5TreeBuilder::takeScriptToProcess): - Acknowledge that the caller has received the script element. It is the caller's responsibility to execute the script if necessary and re-pause the tree builder if necessary. (WebCore::HTML5TreeBuilder::passTokenToLegacyParser): - Save off the current script tag so that it can be passed to the HTML5ScriptRunner when we're paused. * html/HTML5TreeBuilder.h: (WebCore::HTML5TreeBuilder::setPaused): (WebCore::HTML5TreeBuilder::isPaused): 2010-05-26 Adam Barth <abarth@webkit.org> Reviewed by Darin Adler. Implement SegmentedString::lookAheadSlowCase https://bugs.webkit.org/show_bug.cgi?id=39802 The slow case is need by the resumer test suite. Sadly, the resumer test suite is really slow and produces infinite errors (many of which are false positives). I'll land more of the resumer test suite in a future patch. * platform/text/SegmentedString.cpp: (WebCore::SegmentedString::advance): * platform/text/SegmentedString.h: (WebCore::SegmentedString::lookAhead): (WebCore::SegmentedString::lookAheadIgnoringCase): (WebCore::SegmentedString::equalsLiterally): (WebCore::SegmentedString::equalsIgnoringCase): (WebCore::SegmentedString::lookAheadInline): (WebCore::SegmentedString::lookAheadSlowCase): 2010-05-26 Jer Noble <jer.noble@apple.com> Patch edited by Adele Peterson and Mark Rowe. Reviewed by Eric Carlson Video elements show no video on Windows machines that do not support accelerated compositing https://bugs.webkit.org/show_bug.cgi?id=39446 rdar://problem/7999794 Create the visual context in setUpVideoRendering (as opposed to in load), and destroy it in tearDownVideoRendering (as opposed to in the destructor.) * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp: (WebCore::MediaPlayerPrivateQuickTimeVisualContext::~MediaPlayerPrivateQuickTimeVisualContext): (WebCore::MediaPlayerPrivateQuickTimeVisualContext::load): Moved creation of the visual context to setUpVideoRendering. (WebCore::MediaPlayerPrivateQuickTimeVisualContext::paint): Return early if the visual context isn't set up. (WebCore::MediaPlayerPrivateQuickTimeVisualContext::currentRenderingMode): If the visual context isn't set up, return MediaRenderingNone. (WebCore::MediaPlayerPrivateQuickTimeVisualContext::setUpVideoRendering): Create the visual context. (WebCore::MediaPlayerPrivateQuickTimeVisualContext::tearDownVideoRendering): Destroy the visual context. (WebCore::MediaPlayerPrivateQuickTimeVisualContext::hasSetUpVideoRendering): For software rendering mode, make sure the visual context has been set up when saying the setup has been done. * platform/graphics/win/QTMovieVisualContext.cpp: (QTMovieVisualContextPriv::~QTMovieVisualContextPriv): Destruction moved to tearDownVideoRendering. Also, make sure to cancel the visual context's newImageAvailable callback in the visual context's destructor. (QTMovieVisualContext::create): Added. * platform/graphics/win/QTMovieVisualContext.h: 2010-05-26 Gustavo Noronha Silva <gns@gnome.org> Build fixes for make distcheck. * GNUmakefile.am: 2010-05-26 Zelidrag Hornung <zelidrag@chromium.org> Reviewed by Ojan Vafai. Fixed frame page up/down scrolling calculation. Made sure that the cursor moves with page up/down event. Please note that now for mac editing behavior we will scroll the content to center the cursor on page up/down while other platforms will align the cursor with the top of displayed frame. https://bugs.webkit.org/show_bug.cgi?id=38213 Tests: editing/input/option-page-up-down.html (fixed) editing/input/scroll-viewport-page-up-down.html * WebCore.base.exp: * editing/EditorCommand.cpp: (WebCore::verticalScrollDistance): Fixed page scroll calculation. Now scroll height is calculated only from the visible portion not the entire frame height. (WebCore::executeMovePageDown): Now it can tell SelectionController to move the cursor with the page scroll up/down events. (WebCore::executeMovePageDownAndModifySelection): Ditto. (WebCore::executeMovePageUp): Ditto. (WebCore::executeMovePageUpAndModifySelection): Ditto. * editing/SelectionController.cpp: * editing/SelectionController.cpp: Exposed an enum param that lets EditorCommand.cpp control how cursor position will be aligned when page moves. (WebCore::SelectionController::setSelection): Ditto. (WebCore::SelectionController::modify): Ditto. * editing/SelectionController.h: Ditto. (WebCore::SelectionController::): Ditto. (WebCore::SelectionController::setSelection): Ditto. 2010-05-26 Jaime Yap <jaimeyap@google.com> Reviewed by Pavel Feldman. ScriptCallStack::callLocation() sometimes passed an empty handle to toWebCoreString() causing a null pointer deref. https://bugs.webkit.org/show_bug.cgi?id=39681 * bindings/v8/ScriptCallStack.cpp: (WebCore::ScriptCallStack::callLocation): 2010-05-26 Brian Weinstein <bweinstein@apple.com> Reviewed by Mark Rowe. Web Inspector: Tooltip on Pause on Exceptions doesn't show up until it is clicked. https://bugs.webkit.org/show_bug.cgi?id=39804 Initialize the title attribute of the Pause on Exceptions button when we initialize other information about it. * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel): 2010-05-26 Adam Barth <abarth@webkit.org> Unreviewed, rolling out r60262. http://trac.webkit.org/changeset/60262 https://bugs.webkit.org/show_bug.cgi?id=39783 Broke every build and is blocking me from working. :( * rendering/RenderBlock.cpp: (WebCore::RenderBlock::splitAnonymousBlocksAroundChild): (WebCore::RenderBlock::makeChildrenAnonymousColumnBlocks): (WebCore::RenderBlock::moveChildTo): (WebCore::RenderBlock::moveAllChildrenTo): (WebCore::RenderBlock::makeChildrenNonInline): (WebCore::RenderBlock::removeChild): * rendering/RenderBlock.h: * rendering/RenderLayer.cpp: (WebCore::RenderLayer::addChild): * rendering/RenderObjectChildList.cpp: (WebCore::RenderObjectChildList::insertChildNode): * rendering/RenderRubyBase.cpp: (WebCore::RenderRubyBase::moveInlineChildren): (WebCore::RenderRubyBase::moveBlockChildren): (WebCore::RenderRubyBase::mergeBlockChildren): 2010-05-26 Anders Carlsson <andersca@apple.com> Unreviewed, rolling out r60256. http://trac.webkit.org/changeset/60256 https://bugs.webkit.org/show_bug.cgi?id=39382 Causes fast/dom/prototype-inheritance-2.html to start crashing. * history/PageCache.cpp: (WebCore::PageCache::PageCache): (WebCore::PageCache::add): * history/PageCache.h: (WebCore::PageCache::get): * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::commitIfReady): * loader/FrameLoader.cpp: (WebCore::FrameLoader::canCachePageContainingThisFrame): (WebCore::FrameLoader::canCachePage): (WebCore::pageCacheLogPrefix): (WebCore::pageCacheLog): (WebCore::FrameLoader::logCanCachePageDecision): (WebCore::FrameLoader::logCanCacheFrameDecision): (WebCore::FrameLoader::commitProvisionalLoad): (WebCore::FrameLoader::open): (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): (WebCore::FrameLoader::loadProvisionalItemFromCachedPage): (WebCore::FrameLoader::cachePageForHistoryItem): (WebCore::FrameLoader::navigateToDifferentDocument): * loader/FrameLoader.h: * svg/graphics/SVGImage.cpp: (WebCore::SVGImage::dataChanged): 2010-05-26 David Hyatt <hyatt@apple.com> Reviewed by Sam Weinig. https://bugs.webkit.org/show_bug.cgi?id=39783, clean up the moveChild functions on RenderBlock. Eliminate the need to pass the toChildrenList to the moveChild functions by tightening up the type of the |to| argument to be a RenderBlock. Add a moveChildrenTo function that can move a range of children, and patch places that were doing this by hand. Make the append forms of the functions just use the insert forms with a beforeChild of 0. Patch insertChildNode in RenderObjectChildList so that it passes the fullInsert parameter through in the case where it does an append. Add an assert to RenderLayer that catches bad structure built when the fullInsert/Remove parameters are messed up when using append/insertChildNode. * rendering/RenderBlock.cpp: (WebCore::RenderBlock::splitAnonymousBlocksAroundChild): (WebCore::RenderBlock::makeChildrenAnonymousColumnBlocks): (WebCore::RenderBlock::createAndAppendRootInlineBox): (WebCore::RenderBlock::moveChildTo): (WebCore::RenderBlock::moveChildrenTo): (WebCore::RenderBlock::makeChildrenNonInline): (WebCore::RenderBlock::removeChild): * rendering/RenderBlock.h: (WebCore::RenderBlock::moveChildTo): (WebCore::RenderBlock::moveAllChildrenTo): (WebCore::RenderBlock::moveChildrenTo): * rendering/RenderLayer.cpp: (WebCore::RenderLayer::addChild): * rendering/RenderObjectChildList.cpp: (WebCore::RenderObjectChildList::insertChildNode): * rendering/RenderRubyBase.cpp: (WebCore::RenderRubyBase::moveInlineChildren): 2010-05-26 Anders Carlsson <andersca@apple.com> Fix GTK+ test failures. * plugins/gtk/PluginDataGtk.cpp: (WebCore::PluginData::initPlugins): * plugins/win/PluginDataWin.cpp: (WebCore::PluginData::initPlugins): 2010-05-25 Anders Carlsson <andersca@apple.com> Reviewed by Darin Adler. Clean up MimeClassInfo and PluginInfo https://bugs.webkit.org/show_bug.cgi?id=39700 This gets rid of all the heap allocation from MimeClassInfo and PluginInfo. It also changes the m_plugins and m_mimes vectors in PluginData to not hold heap allocated MimeClassInfo and PluginClassInfo objects. * page/Page.cpp: (WebCore::Page::refreshPlugins): * plugins/MimeType.cpp: (WebCore::MimeType::type): (WebCore::MimeType::suffixes): (WebCore::MimeType::description): (WebCore::MimeType::enabledPlugin): * plugins/MimeType.h: (WebCore::MimeType::mimeClassInfo): * plugins/MimeTypeArray.cpp: (WebCore::MimeTypeArray::item): (WebCore::MimeTypeArray::canGetItemsForName): (WebCore::MimeTypeArray::namedItem): * plugins/Plugin.cpp: (WebCore::Plugin::name): (WebCore::Plugin::filename): (WebCore::Plugin::description): (WebCore::Plugin::length): (WebCore::Plugin::item): (WebCore::Plugin::canGetItemsForName): (WebCore::Plugin::namedItem): * plugins/Plugin.h: (WebCore::Plugin::pluginInfo): * plugins/PluginArray.cpp: (WebCore::PluginArray::length): (WebCore::PluginArray::item): (WebCore::PluginArray::canGetItemsForName): (WebCore::PluginArray::namedItem): (WebCore::PluginArray::pluginData): * plugins/PluginArray.h: * plugins/PluginData.cpp: (WebCore::PluginData::PluginData): (WebCore::PluginData::~PluginData): (WebCore::PluginData::supportsMimeType): (WebCore::PluginData::pluginNameForMimeType): * plugins/PluginData.h: (WebCore::operator==): (WebCore::PluginData::create): (WebCore::PluginData::disconnectPage): (WebCore::PluginData::page): (WebCore::PluginData::plugins): (WebCore::PluginData::mimes): * plugins/chromium/PluginDataChromium.cpp: (WebCore::PluginCache::reset): (WebCore::PluginCache::plugins): (WebCore::PluginData::initPlugins): (WebCore::getPluginMimeTypeFromExtension): * plugins/gtk/PluginDataGtk.cpp: (WebCore::PluginData::initPlugins): * plugins/mac/PluginDataMac.mm: (WebCore::PluginData::initPlugins): * plugins/qt/PluginDataQt.cpp: (WebCore::PluginData::initPlugins): * plugins/win/PluginDataWin.cpp: (WebCore::PluginData::initPlugins): * plugins/wx/PluginDataWx.cpp: (WebCore::PluginData::initPlugins): 2010-05-26 Nate Chapin <japhet@chromium.org> Reviewed by Adam Barth. Factor PageCache functionality out of FrameLoader and into PageCache. https://bugs.webkit.org/show_bug.cgi?id=39382 Refactor only, so no new tests. * history/PageCache.cpp: (WebCore::pageCacheLogPrefix): (WebCore::pageCacheLog): (WebCore::logCanCacheFrameDecision): (WebCore::logCanCachePageDecision): (WebCore::PageCache::canCachePageContainingThisFrame): (WebCore::PageCache::canCache): (WebCore::PageCache::add): (WebCore::PageCache::get): * history/PageCache.h: * loader/DocumentLoader.cpp: * loader/FrameLoader.cpp: (WebCore::FrameLoader::commitProvisionalLoad): (WebCore::FrameLoader::prepareForCachedPageRestore): (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): (WebCore::FrameLoader::loadProvisionalItemFromCachedPage): (WebCore::FrameLoader::navigateToDifferentDocument): * loader/FrameLoader.h: (WebCore::FrameLoader::quickRedirectComing): * svg/graphics/SVGImage.cpp: 2010-05-26 Peter Kasting <pkasting@google.com> Reviewed by Adam Barth. https://bugs.webkit.org/show_bug.cgi?id=39786 Properly reset |bytes_to_consume| when reaching the "gif_done" state in the open-source GIF decoder. No tests, since there's no test harness support for checking the internal ImageDecoder state values. * platform/image-decoders/gif/GIFImageReader.cpp: (GIFImageReader::read): Use a macro to perform the state change, like we do everywhere else in the file. Also correctly return "failure" for certain corrupt GIFs, since that doesn't prevent their display (due to WebKit's different use of this code compared to Mozilla). 2010-05-26 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r60251. http://trac.webkit.org/changeset/60251 https://bugs.webkit.org/show_bug.cgi?id=39788 broke tests (Requested by dhyatt on #webkit). * rendering/RenderBlock.cpp: (WebCore::RenderBlock::moveChildTo): (WebCore::RenderBlock::moveAllChildrenTo): (WebCore::RenderBlock::makeChildrenNonInline): (WebCore::RenderBlock::removeChild): * rendering/RenderBlock.h: * rendering/RenderRubyBase.cpp: (WebCore::RenderRubyBase::moveInlineChildren): (WebCore::RenderRubyBase::moveBlockChildren): (WebCore::RenderRubyBase::mergeBlockChildren): * rendering/RenderRubyRun.cpp: (WebCore::RenderRubyRun::removeChild): 2010-05-26 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Fix webkit01.dat resumer tests in HTML5 parser https://bugs.webkit.org/show_bug.cgi?id=39796 To match the old tokenizer, we should only flush character tokens when we reach EOF. Added a notion of a "closed" segmented string that cannot be appended to, which models EOF. * html/HTML5Lexer.cpp: (WebCore::HTML5Lexer::nextToken): (WebCore::HTML5Lexer::shouldEmitBufferedCharacterToken): * html/HTML5Lexer.h: * html/HTML5Tokenizer.cpp: (WebCore::HTML5Tokenizer::pumpLexer): (WebCore::HTML5Tokenizer::write): (WebCore::HTML5Tokenizer::end): * html/HTML5Tokenizer.h: * platform/text/SegmentedString.cpp: (WebCore::SegmentedString::SegmentedString): (WebCore::SegmentedString::clear): (WebCore::SegmentedString::append): * platform/text/SegmentedString.h: (WebCore::SegmentedString::SegmentedString): (WebCore::SegmentedString::close): (WebCore::SegmentedString::isClosed): 2010-05-26 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Make HTML5 lexer not ASSERT when resuming partial parses https://bugs.webkit.org/show_bug.cgi?id=39755 I'm working through a variation of the webkit-runner.html test suite that stops the parser at every character to make sure we can resume parsing correctly. This patch fixes some errors caught by ASSERTs, which prevent the basic tests from running to completion. There's a bunch more work to do, however. Test: html5lib/webkit-resumer.html * html/HTML5Lexer.cpp: (WebCore::HTMLNames::isEndTagBufferingState): (WebCore::HTML5Lexer::nextToken): (WebCore::HTML5Lexer::addToPossibleEndTag): * html/HTML5Lexer.h: * html/HTML5Tokenizer.cpp: (WebCore::HTML5Tokenizer::write): * html/HTML5Tokenizer.h: 2010-05-26 Alexey Proskuryakov <ap@apple.com> Mac 32 bit build fix. * platform/graphics/mac/SimpleFontDataMac.mm: (WebCore::SimpleFontData::platformInit): Use static_cast instead of narrowPrecisionToFloat - the latter can't convert from float to float. 2010-05-26 David Hyatt <hyatt@apple.com> Reviewed by Ojan. https://bugs.webkit.org/show_bug.cgi?id=39783, clean up moveChild functions in RenderBlock. Cut out the need to pass the to block's child list by tightening up the type of the to object from RenderObject to RenderBlock. Implement the "append" versions of the move functions using their "insert" counterparts, since insertChildNode just calls appendChildNode when beforeChild is 0 anyway. Add comments explaining why the default for fullRemoveInsert is false, and make sure all forms of the move functions have the optional parameter for consistency. * rendering/RenderBlock.cpp: (WebCore::RenderBlock::createAndAppendRootInlineBox): (WebCore::RenderBlock::moveChildTo): (WebCore::RenderBlock::moveAllChildrenTo): (WebCore::RenderBlock::makeChildrenNonInline): (WebCore::RenderBlock::removeChild): * rendering/RenderBlock.h: (WebCore::RenderBlock::moveChildTo): (WebCore::RenderBlock::moveAllChildrenTo): * rendering/RenderRubyBase.cpp: (WebCore::RenderRubyBase::moveInlineChildren): (WebCore::RenderRubyBase::moveBlockChildren): (WebCore::RenderRubyBase::mergeBlockChildren): * rendering/RenderRubyRun.cpp: (WebCore::RenderRubyRun::removeChild): 2010-05-26 Dan Bernstein <mitz@apple.com> Typed and reviewed by Alexey Proskuryakov. https://bugs.webkit.org/show_bug.cgi?id=39682 <rdar://problem/8026774> REGRESSION: WebKit nightly adding insane height to div at random Test: fast/css/custom-font-xheight.html * platform/graphics/mac/SimpleFontDataMac.mm: (WebCore::SimpleFontData::platformInit): Calling an Objective C method that returns a structure with a null object can leave garbage in returned value. Custom fonts don't have an NSFont, they only have a CGFont. Call platformBoundsForGlyph() function instead, which works with CGFont. (WebCore::SimpleFontData::platformBoundsForGlyph): Fixed to work on Tiger (for fonts that have an NSFont), since this is now used in more cases. 2010-05-26 Beth Dakin <bdakin@apple.com> Build fix for Mac clean builds. * storage/IDBDatabaseRequest.idl: 2010-05-26 Eric Carlson <eric.carlson@apple.com> Reviewed by Dan Bernstein. Must not cast between CFNumberRef and CFBooleanRef. <rdar://problem/8030739> https://bugs.webkit.org/show_bug.cgi?id=39756 * platform/graphics/win/QTMovieVisualContext.cpp: (QTMovieVisualContext::getCGImageOptions): QuickTime assumes the value associated with kCVPixelBufferCGImageCompatibilityKey is a CFBoolean, so add one. 2010-05-26 Xan Lopez <xlopez@igalia.com> GTK+ build fix, strike two. * bindings/gobject/WebKitDOMEventTarget.cpp: (webkit_dom_event_target_get_type): (webkit_dom_event_target_default_init): 2010-05-26 Jeremy Orlow <jorlow@chromium.org> Unreviewed build fix for Windows + clean up the Visual Studio project. * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: 2010-05-26 Andrei Popescu <andreip@google.com> Reviewed by Jeremy Orlow. Indexed Database component is missing IDBObjectStoreRequest interface https://bugs.webkit.org/show_bug.cgi?id=39490 Adding IDL and stub implementation for IDBObjectStoreRequest. No new tests, indexed database isn't yet testable. * DerivedSources.cpp: * DerivedSources.make: * GNUmakefile.am: * WebCore.gypi: * WebCore.pri: * WebCore.pro: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSIDBObjectStoreRequestCustom.cpp: Added. (WebCore::JSIDBObjectStoreRequest::remove): (WebCore::JSIDBObjectStoreRequest::addOrModify): (WebCore::JSIDBObjectStoreRequest::modify): (WebCore::JSIDBObjectStoreRequest::add): (WebCore::JSIDBObjectStoreRequest::get): * bindings/v8/custom/V8IDBObjectStoreRequestCustom.cpp: Added. (WebCore::V8IDBObjectStoreRequest::removeCallback): (WebCore::V8IDBObjectStoreRequest::addOrModifyCallback): (WebCore::V8IDBObjectStoreRequest::modifyCallback): (WebCore::V8IDBObjectStoreRequest::addCallback): (WebCore::V8IDBObjectStoreRequest::getCallback): * storage/IDBObjectStore.cpp: Added. * storage/IDBObjectStore.h: Added. (WebCore::IDBObjectStore::~IDBObjectStore): * storage/IDBObjectStoreRequest.cpp: Added. (WebCore::IDBObjectStoreRequest::name): (WebCore::IDBObjectStoreRequest::keyPath): (WebCore::IDBObjectStoreRequest::IDBObjectStoreRequest): * storage/IDBObjectStoreRequest.h: Added. (WebCore::IDBObjectStoreRequest::create): (WebCore::IDBObjectStoreRequest::~IDBObjectStoreRequest): * storage/IDBObjectStoreRequest.idl: Added. 2010-05-26 Xan Lopez <xlopez@igalia.com> Unreviewed GTK+ build fix. Use G_DEFINE_INTERFACE only if it's available. * bindings/gobject/WebKitDOMEventTarget.cpp: (webkit_dom_event_target_get_type): (webkit_dom_event_target_default_init): 2010-05-26 Jeremy Orlow <jorlow@chromium.org> Reviewed by Darin Fisher. Implement WebDOMStorageList and make WebIDBDatabase use it https://bugs.webkit.org/show_bug.cgi?id=39731 Remove unused function. * dom/DOMStringList.h: 2010-05-26 Jessie Berlin <jberlin@webkit.org> Reviewed by Pavel Feldman Bug 31296 - Web Inspector: Should support console.groupCollapsed https://bugs.webkit.org/show_bug.cgi?id=31296 * inspector/InspectorController.cpp: (WebCore::InspectorController::startGroup): Set the message type based on whether or not it should be initially collapsed. * inspector/InspectorController.h: * inspector/front-end/ConsoleView.js: Treat a StartGroupCollapsed message the same way as a StartGroup message, but display the tree for the group as collapsed. (WebInspector.ConsoleView.prototype.addMessage): (WebInspector.ConsoleMessage.prototype.toMessageElement): (WebInspector.ConsoleMessage.prototype.toString): (WebInspector.ConsoleGroup.prototype.addMessage): * page/Console.cpp: (WebCore::Console::groupCollapsed): Create a group and indicate that it should be collapsed. * page/Console.h: Add the StartGroupCollapsed message type. (WebCore::): * page/Console.idl: Create the JS bindings for groupCollapsed. 2010-05-26 yael aharon <yael.aharon@nokia.com> Reviewed by Kent Tamura. Support the labels attribute in labelable form controls https://bugs.webkit.org/show_bug.cgi?id=38713 Added a new cache type in NodeRareData to store the new cache type. This cache is created on demand. Added the "labels" attribute to all form controls that support this attribute. Tests: fast/forms/labels-add-htmlFor-label.html fast/forms/labels-add-parent-label.html fast/forms/labels-change-htmlFor-attribute.html fast/forms/labels-item-index.html fast/forms/labels-remove-htmlFor-attribute.html fast/forms/labels-remove-htmlFor-label.html fast/forms/labels-remove-parent-label.html fast/forms/labels-set-htmlFor-attribute.html * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * dom/Node.cpp: (WebCore::Node::notifyLocalNodeListsLabelChanged): (WebCore::Node::removeCachedLabelsNodeList): (WebCore::NodeListsNodeData::invalidateCaches): (WebCore::NodeListsNodeData::invalidateCachesThatDependOnAttributes): (WebCore::NodeListsNodeData::isEmpty): * dom/Node.h: * dom/NodeRareData.h: (WebCore::NodeListsNodeData::NodeListsNodeData): * html/HTMLButtonElement.idl: * html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::isLabelable): (WebCore::HTMLFormControlElement::labels): * html/HTMLFormControlElement.h: * html/HTMLInputElement.idl: * html/HTMLLabelElement.cpp: (WebCore::HTMLLabelElement::parseMappedAttribute): * html/HTMLLabelElement.h: * html/HTMLMeterElement.idl: * html/HTMLProgressElement.idl: * html/HTMLSelectElement.idl: * html/HTMLTextAreaElement.idl: * html/LabelsNodeList.cpp: Added. (WebCore::LabelsNodeList::LabelsNodeList): (WebCore::LabelsNodeList::~LabelsNodeList): (WebCore::LabelsNodeList::nodeMatches): * html/LabelsNodeList.h: Added. (WebCore::LabelsNodeList::create): 2010-05-26 Xan Lopez <xlopez@igalia.com> Reviewed by Jeremy Orlow. Style fix in JSEventCustom.cpp https://bugs.webkit.org/show_bug.cgi?id=39727 Conditional includes should be all together after the unconditional includes. * bindings/js/JSEventCustom.cpp: 2010-05-24 Jeremy Orlow <jorlow@chromium.org> Reviewed by Steve Block. Add IDBDatabase's attributes https://bugs.webkit.org/show_bug.cgi?id=39602 Add the attributes (like name, description, etc) for IDBDatabaseRequest. Plumb that back to the IDBDatabase object which stores the data. CMake and Android build changes in another CL (that fixes other stuff too). Updated the layout test, but there's some further testing that needs to be added once the Chromium side of this lands. * GNUmakefile.am * WebCore.gypi: * WebCore.pro * WebCore.vcproj/WebCore.vcproj * WebCore.xcodeproj/project.pbxproj * dom/DOMStringList.h: (WebCore::DOMStringList::strings): * storage/IDBDatabase.cpp: Removed. * storage/IDBDatabase.h: * storage/IDBDatabaseImpl.cpp: Added. (WebCore::IDBDatabaseImpl::IDBDatabaseImpl): (WebCore::IDBDatabaseImpl::~IDBDatabaseImpl): (WebCore::IDBDatabaseImpl::objectStores): * storage/IDBDatabaseImpl.h: Added. (WebCore::IDBDatabaseImpl::create): (WebCore::IDBDatabaseImpl::name): (WebCore::IDBDatabaseImpl::description): (WebCore::IDBDatabaseImpl::version): * storage/IDBDatabaseRequest.h: (WebCore::IDBDatabaseRequest::name): (WebCore::IDBDatabaseRequest::description): (WebCore::IDBDatabaseRequest::version): (WebCore::IDBDatabaseRequest::objectStores): * storage/IDBDatabaseRequest.idl: * storage/IDBSuccessEvent.cpp: (WebCore::IDBSuccessEvent::IDBSuccessEvent): * storage/IndexedDatabaseImpl.cpp: (WebCore::IndexedDatabaseImpl::open): * storage/IndexedDatabaseImpl.h: 2010-05-26 Xan Lopez <xlopez@igalia.com> Reviewed by NOBODY Gustavo Noronha. [GTK] Add support for DOM events in the GObject DOM bindings https://bugs.webkit.org/show_bug.cgi?id=38844 Add actual GObject event objects to the DOM event signals. * GNUmakefile.am: * bindings/gobject/GObjectEventListener.cpp: (WebCore::GObjectEventListener::handleEvent): * bindings/gobject/WebKitDOMBinding.cpp: (WebKit::wrapEventTarget): (WebKit::kit): * bindings/gobject/WebKitDOMBinding.h: * bindings/gobject/WebKitDOMEventTarget.cpp: Added. (webkit_dom_event_target_default_init): (webkit_dom_event_target_dispatch_event): * bindings/gobject/WebKitDOMEventTarget.h: Added. * bindings/scripts/CodeGeneratorGObject.pm: 2010-05-24 Jeremy Orlow <jorlow@chromium.org> Reviewed by Steve Block. [Android] Add IndexedDB to the build https://bugs.webkit.org/show_bug.cgi?id=39593 Add the current list of build files to Android's make files. From now on, I'll try to be sure to update these along with the rest. Also, fix a nit in the gypi file. No tests..just changing build files. * Android.derived.jscbindings.mk: * Android.derived.v8bindings.mk: * Android.mk: * WebCore.gypi: 2010-05-26 Alexander Pavlov <apavlov@chromium.org> Reviewed by Pavel Feldman. Expose CSS rule body start/end offsets in the parent stylesheet https://bugs.webkit.org/show_bug.cgi?id=38906 CSSParser::parseSheet() accepts an optional external Vector where the start/end offsets of the CSSStyleRule bodies, relative to the beginning of the stylesheet, will be stored. This Vector is only used when the Web Inspector needs the body ranges, thus there is no memory overhead until the user starts editing styles via the Web Inspector. Additionally, fixed an issue with a single inspectorStyleSheet for all frames in the page. Test: inspector/styles-source-offsets.html * css/CSSGrammar.y: * css/CSSParser.cpp: (WebCore::CSSParser::CSSParser): (WebCore::CSSParser::setupParser): (WebCore::CSSParser::parseSheet): (WebCore::CSSParser::createStyleRule): (WebCore::CSSParser::updateLastSelectorLineAndPosition): (WebCore::CSSParser::markRuleBodyStart): (WebCore::CSSParser::markRuleBodyEnd): * css/CSSParser.h: (WebCore::CSSParser::resetRuleBodyMarks): * inspector/InspectorCSSStore.cpp: (WebCore::InspectorCSSStore::InspectorCSSStore): (WebCore::InspectorCSSStore::reset): (WebCore::InspectorCSSStore::removeDocument): (WebCore::InspectorCSSStore::inspectorStyleSheet): (WebCore::InspectorCSSStore::getStartEndOffsets): (WebCore::InspectorCSSStore::getIndexInStyleRules): (WebCore::InspectorCSSStore::disabledStyleForId): (WebCore::InspectorCSSStore::styleForId): (WebCore::InspectorCSSStore::ruleForId): (WebCore::InspectorCSSStore::bindStyle): (WebCore::InspectorCSSStore::bindStyleSheet): (WebCore::InspectorCSSStore::bindRule): * inspector/InspectorCSSStore.h: * inspector/InspectorController.cpp: (WebCore::InspectorController::InspectorController): (WebCore::InspectorController::resourceForURL): * inspector/InspectorController.h: (WebCore::InspectorController::inspectorFrontend): * inspector/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::InspectorDOMAgent): (WebCore::InspectorDOMAgent::unbind): (WebCore::InspectorDOMAgent::getStyles): (WebCore::InspectorDOMAgent::getAllStyles): (WebCore::InspectorDOMAgent::buildArrayForCSSRules): (WebCore::InspectorDOMAgent::buildArrayForPseudoElements): (WebCore::InspectorDOMAgent::applyStyleText): (WebCore::InspectorDOMAgent::setStyleText): (WebCore::InspectorDOMAgent::setStyleProperty): (WebCore::InspectorDOMAgent::toggleStyleEnabled): (WebCore::InspectorDOMAgent::setRuleSelector): (WebCore::InspectorDOMAgent::addRule): (WebCore::InspectorDOMAgent::buildObjectForStyle): (WebCore::InspectorDOMAgent::buildArrayForDisabledStyleProperties): (WebCore::InspectorDOMAgent::buildObjectForStyleSheet): (WebCore::InspectorDOMAgent::buildObjectForRule): * inspector/InspectorDOMAgent.h: * inspector/front-end/DOMAgent.js: (WebInspector.CSSStyleDeclaration): 2010-05-26 Xan Lopez <xlopez@igalia.com> Reviewed by Gustavo Noronha. [GTK] Add support for DOM events in the GObject DOM bindings https://bugs.webkit.org/show_bug.cgi?id=38844 Use GObject-like names for the DOM event signals. Basically go from 'mousewheel' to 'mouse-wheel-event'. * bindings/scripts/CodeGeneratorGObject.pm: 2010-05-26 Nikolas Zimmermann <nzimmermann@rim.com> Not reviewed. Sort Xcode project file. * WebCore.xcodeproj/project.pbxproj: 2010-05-26 Xan Lopez <xlopez@igalia.com> Reviewed by Gustavo Noronha. [GTK] Add support for DOM events in the GObject DOM bindings https://bugs.webkit.org/show_bug.cgi?id=38844 First step towards DOM events support. We create one signal per event supported in the DOM classes, and create a custom GObjectEventListener that will emit a GObject signal when an event is dispatched to the object. There is no event object at the moment (we just pass NULL), and no support for hooking into the capture phase. * GNUmakefile.am: * bindings/gobject/GObjectEventListener.cpp: Added. (WebCore::GObjectEventListener::handleEvent): (WebCore::GObjectEventListener::operator==): * bindings/gobject/GObjectEventListener.h: Added. (WebCore::GObjectEventListener::create): (WebCore::GObjectEventListener::cast): (WebCore::GObjectEventListener::GObjectEventListener): * bindings/scripts/CodeGeneratorGObject.pm: * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp: (WebKit::core): (webkit_dom_test_callback_finalize): (webkit_dom_test_callback_class_init): (WebKit::wrapTestCallback): * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp: (WebKit::core): (webkit_dom_test_interface_finalize): (webkit_dom_test_interface_class_init): (WebKit::wrapTestInterface): * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: (WebKit::core): (webkit_dom_test_obj_finalize): (webkit_dom_test_obj_class_init): (WebKit::wrapTestObj): * dom/EventListener.h: (WebCore::EventListener::): 2010-05-26 Xan Lopez <xlopez@igalia.com> Reviewed by Gustavo Noronha. [GTK] GObject DOM bindings https://bugs.webkit.org/show_bug.cgi?id=33590 We need to protect the body of some methods with #ifdefs, since the availability of the code they call into is decided at compile time. * bindings/scripts/CodeGeneratorGObject.pm: 2010-05-26 Kent Tamura <tkent@chromium.org> Reviewed by Shinichiro Hamaji. Move date/time limit values to DateComponents.h from HTMLInputElement.cpp https://bugs.webkit.org/show_bug.cgi?id=39423 The minimum and maximum values for date, datetime, datetime-local, month, time, and week types depend on the implementation of DateComponents. So move them to DateComponents. * html/DateComponents.h: * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::minimum): (WebCore::HTMLInputElement::maximum): 2010-05-26 Csaba Osztrogonác <ossy@webkit.org> Reviewed by Simon Hausmann. Buildfix for build without ENABLE(RUBY) after r60201. * rendering/RenderBlock.cpp: (WebCore::canMergeContiguousAnonymousBlocks): Missing #if ENABLE(RUBY) guard added. 2010-05-26 Nikolas Zimmermann <nzimmermann@rim.com> Not reviewed. Update test expectations for JS generator, when using run-webkit-tests. This has been forgotten. * bindings/scripts/test/JS/JSTestInterface.cpp: (WebCore::JSTestInterfaceConstructor::JSTestInterfaceConstructor): (WebCore::JSTestInterface::createPrototype): * bindings/scripts/test/JS/JSTestInterface.h: (WebCore::JSTestInterfacePrototype::JSTestInterfacePrototype): * bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::JSTestObjConstructor::JSTestObjConstructor): (WebCore::JSTestObj::createPrototype): * bindings/scripts/test/JS/JSTestObj.h: (WebCore::JSTestObjPrototype::JSTestObjPrototype): 2010-05-25 Philippe Normand <pnormand@igalia.com> Reviewed by Gustavo Noronha Silva. [GStreamer] Apple trailers not playing https://bugs.webkit.org/show_bug.cgi?id=37390 Set the AppleTrailer User-Agent workaround after FrameLoader::addExtraFieldsToSubresourceRequest has been called because that method sets the global User-Agent. * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: (webKitWebSrcStart): 2010-05-25 Dumitru Daniliuc <dumi@chromium.org> Unreviewed, changing "fts2" to "fts3" in one location I missed in r60188. * storage/DatabaseAuthorizer.cpp: (WebCore::DatabaseAuthorizer::dropVTable): 2010-05-25 Mark Rowe <mrowe@apple.com> Build fix. * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp: 2010-05-25 Yuta Kitamura <yutak@chromium.org> Reviewed by Pavel Feldman. Web Inspector: Show HTTP status message sent from server in Resources tab. This patch obtains an HTTP status message of each resource and pass it to the front end of Web Inspector. The status message is shown in "Headers" tab in the detail view of that resource, along with the HTTP status code. Web Inspector does not respect HTTP status message https://bugs.webkit.org/show_bug.cgi?id=39595 * inspector/InspectorResource.cpp: (WebCore::InspectorResource::updateResponse): (WebCore::InspectorResource::updateScriptObject): * inspector/InspectorResource.h: * inspector/front-end/Resource.js: (WebInspector.Resource.CompareByTransferSize): * inspector/front-end/ResourceView.js: (WebInspector.ResourceView.prototype._refreshHTTPInformation): * inspector/front-end/inspector.js: (WebInspector.updateResource): * inspector/front-end/utilities.js: (String.prototype.escapeHTML): Escape '"' so that we can escape messages that may occur inside HTML attributes. 2010-05-24 David Hyatt <hyatt@apple.com> Reviewed by Dan Bernstein. https://bugs.webkit.org/show_bug.cgi?id=39615, implement basic support for -webkit-column-span. This patch adds support for -webkit-column-span elements that can span across all of the columns in a multi-column block. In this first stage, column span support is limited to only immediate children of the multi-column block, so no elements actually have to split across a span yet. Two new kinds of anonymous blocks have been added: anonymous columns blocks and anonymous column span blocks. When a span gets inserted into a multicol block, the block is split, with the column portions of the multicol getting wrapped in anonymous columns blocks and the spans getting wrapped in anonymous column span blocks. The multicol block then stops being multicol and lets the anonymous multicol blocks take over column layout. Many new tests added in fast/multicol/span. * dom/Node.cpp: (WebCore::Node::diff): Changes to column span result in a detach/attach, since spanning elements don't typically have much content. * rendering/RenderBlock.cpp: (WebCore::RenderBlock::styleDidChange): Make sure to inherit the appropriate new styles into the anonymous column and column span blocks. (WebCore::RenderBlock::addChildToAnonymousColumnBlocks): This method handles the insertion of new children into the block after it has had to wrap its children in anonymous column/column-span blocks. (WebCore::RenderBlock::splitAnonymousBlocksAroundChild): A helper method for splitting all anonymous blocks between beforeChild and this block so that a new element with an incompatible type can be inserted between them. (WebCore::RenderBlock::makeChildrenAnonymousColumnBlocks): This method does the initial split of a block into anonymous components. This happens the first time a column-span element gets inserted into the block. (WebCore::columnsBlockForSpanningElement): This function checks whether or not the column-span element is actually being inserted into a viable columns block. (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks): This is the original RenderBlock::addChild. It handles everything else just like it used to. (WebCore::RenderBlock::addChild): Patched to now call addChildToAnonymousColumnBlocks if the block has wrapped its current children in anonymous column/column-span blocks already. (WebCore::RenderBlock::moveAllChildrenTo): moveAllChildrenTo has been enhanced to support doing a full remove/append in the case where elements are shifting across layers. (This should arguably be the default behavior, but that can happen in a future patch.) (WebCore::RenderBlock::removeLeftoverAnonymousBlock): Patched to fix a bug when the leftover block is empty and to prevent anonymous column/column-span block from being coalesced with a parent if they are non-empty. (WebCore::canMergeContiguousAnonymousBlocks): Whether or not two contiguous anonymous blocks can merge after the removal of a child. (WebCore::RenderBlock::removeChild): removeChild has been patched to handle more cases of merging/deletion than it did before. It can now destroy empty anonymous block chains and can now merge two contiguous anonymous blocks that don't share the same childrenInline() setting (by putting one inside the other). It also makes sure to do full appends/moves/inserts in the cases where the affected blocks have layers. (WebCore::RenderBlock::fillSelectionGaps): Don't let the selection extend outside of a column-span. (WebCore::RenderBlock::setDesiredColumnCountAndWidth): Turn off multi-column layout on the outermost block if it has wrapped its children in anonymous column/column-span blocks. (WebCore::RenderBlock::createAnonymousBlockWithSameTypeAs): (WebCore::RenderBlock::createAnonymousColumnsBlock): (WebCore::RenderBlock::createAnonymousColumnSpanBlock): New helper functions for anonymous block creation. (WebCore::RenderBlock::renderName): Patched to dump anonymous column and column-span blocks so that they can be distinguished from regular anonymous blocks. * rendering/RenderBlock.h: * rendering/RenderObject.h: (WebCore::RenderObject::isAnonymousColumnsBlock): (WebCore::RenderObject::isAnonymousColumnSpanBlock): New helper functions for asking the type of an anonymous block. * rendering/style/RenderStyle.h: (WebCore::InheritedFlags::inheritColumnPropertiesFrom): A helper function to allow anonymous column blocks to easily inherit all column properties for rendering. 2010-05-25 Dirk Pranke <dpranke@chromium.org> Reviewed by Dimitri Glazkov. Re-commit r58765 - it had been rolled out to see if it was causing a perf regression (in r59787), but that does not seem to have been the case. Tests: fast/notifications/notifications-replace.html fast/notifications/notifications-rtl.html https://bugs.webkit.org/show_bug.cgi?id=39605 * notifications/Notification.h: (WebCore::Notification::dir): (WebCore::Notification::setDir): (WebCore::Notification::replaceId): (WebCore::Notification::setReplaceId): * notifications/Notification.idl: 2010-05-22 Jer Noble <jer.noble@apple.com> Reviewed by Adam Roben. Full screen doesn't work for video elements https://bugs.webkit.org/show_bug.cgi?id=39557 rdar://problem/8011813 Add fullscreen support for MediaPlayerPrivateVisualContext. A new class, MediaPlayerPrivateFullscreenWindow, provides the fullscreen hwnd and layer renderer. Any WKCACFLayer can be provided to MediaPlayerPrivateFullscreenWindow so future additional MediaPlayerPrivate implementations can use the fullscreen window. Minor additions have been made to the FloatSize and IntSize classes. MediaPlayerPrivateQuickTimeVisualContext now calls retrieveCurrentImage after creating a new videoLayer; this is an existing bug that was never really exposed before now. * WebCore.vcproj/WebCore.vcproj: * platform/graphics/FloatSize.h: Added aspectRatio() and scale(float). (WebCore::FloatSize::aspectRatio): (WebCore::FloatSize::scale): * platform/graphics/IntSize.h: Added aspectRatio(). (WebCore::IntSize::aspectRatio): * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp: Added. * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h: Added. * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp: Call retrieveCurrentImage() after creating the videoLayer. (WebCore::MediaPlayerPrivateQuickTimeVisualContext::supportsFullscreen): (WebCore::MediaPlayerPrivateQuickTimeVisualContext::retrieveCurrentImage): (WebCore::MediaPlayerPrivateQuickTimeVisualContext::createLayerForMovie): * platform/graphics/win/WKCACFLayer.cpp: (WebCore::WKCACFLayer::WKCACFLayer): (WebCore::WKCACFLayer::removeFromSuperlayer): (WebCore::WKCACFLayer::setFrame): (WebCore::WKCACFLayer::internalSetNeedsDisplay): (WebCore::WKCACFLayer::setLayoutClient): (WebCore::WKCACFLayer::layoutSublayersProc): (WebCore::WKCACFLayer::layoutClient): (WebCore::WKCACFLayer::setNeedsLayout): * platform/graphics/win/WKCACFLayer.h: Add layout client class. (WebCore::WKCACFLayerLayoutClient::~WKCACFLayerLayoutClient): (WebCore::WKCACFLayer::frame): Added back frame()/setFrame(). * platform/graphics/win/WebTiledLayer.cpp: (WebCore::WebTiledLayer::setFrame): Implamented setFrame() in subclass of WKCACFLayer * platform/graphics/win/WebTiledLayer.h: * platform/graphics/win/WebTiledLayer.cpp: Added setFrame() overriding WKCACFLayer's implementation (WebCore::WebTiledLayer::setFrame): * platform/graphics/win/WebTiledLayer.h: 2010-05-25 Dumitru Daniliuc <dumi@chromium.org> Reviewed by Brady Eidson. Allow FTS3 functions. https://bugs.webkit.org/show_bug.cgi?id=38003 * storage/DatabaseAuthorizer.cpp: (WebCore::DatabaseAuthorizer::addWhitelistedFunctions): (WebCore::DatabaseAuthorizer::createVTable): 2010-05-25 Anders Carlsson <andersca@apple.com> Reviewed by Sam Weinig. Get rid of PluginDatabaseClient https://bugs.webkit.org/show_bug.cgi?id=39685 PluginDatabaseClient isn't used anywhere so just remove it. * GNUmakefile.am: * plugins/PluginDatabase.cpp: (WebCore::PluginDatabase::PluginDatabase): (WebCore::PluginDatabase::refresh): * plugins/PluginDatabase.h: * plugins/PluginDatabaseClient.h: Removed. 2010-05-25 Alexey Proskuryakov <ap@apple.com> Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=18595 REGRESSION (r20766): Setting display:none on an iframe causes the ownerDocument to freeze Test: fast/events/frame-detached-in-mousedown.html * page/EventHandler.h: Added a boolean tracking whether EventHandler needs to reset capturing node on mouse up. It's only done for nodes that hold subframes - elements that capture events are responsible for resetting the state. * page/EventHandler.cpp: (WebCore::EventHandler::EventHandler): Don't initialize m_capturingMouseEventsNode, it's a RefPtr and is initialized automatically. (WebCore::EventHandler::handleMousePressEvent): Remember that EventHandler should reset capturing node on its own. (WebCore::EventHandler::handleMouseDoubleClickEvent): The code here looked like it was copied from the below in r21156. Copied correct code instead. (WebCore::EventHandler::handleMouseReleaseEvent): We only clear the capturing node when it holds a subframe, but the frame may be already detached by the time mouse up is handled, so the check was wrong - and return code of passMouseReleaseEventToSubframe() is obviously irrelevant. (WebCore::EventHandler::setCapturingMouseEventsNode): Remember that EventHandler should not reset capturing node on its own. 2010-05-25 Kevin Ollivier <kevino@theolliviers.com> [wx] Build fix for missing symbol. * wscript: 2010-05-25 Darin Adler <darin@apple.com> * dom/Element.cpp: (WebCore::Element::getIDAttribute): Added comments about problems with this function. 2010-05-25 Leandro Pereira <leandro@profusion.mobi> Reviewed by Gustavo Noronha Silva. [EFL] Build fix. http://webkit.org/b/39598 * CMakeLists.txt: 2010-05-25 Enrica Casucci <enrica@apple.com> Reviewed by Darin Adler. REGRESSION(51522): typing at the end of a line in designMode documents is *very* slow. https://bugs.webkit.org/show_bug.cgi?id=36037 <rdar://problem/8022887> The performance regression was traced to r51522 but this is not entirely true. That revision introduced, among other things, additional checks in the method isCandidate of both Position and PositionIterator classes to support scenarios of mixed editability that were not allowed before. This change uncovered an underlying issue with the decrement method of PositionIterator, that in some cases would iterate through every position as offset in a block before moving to the last child in the block. This was exactly the case of the attached test case, where, trying to check if the caret was placed at the end of a block, we were examining every position in the block before considering the last true position in the block. The performance was linear with the number of child nodes in the block, instead of constant. * dom/PositionIterator.cpp: (WebCore::PositionIterator::decrement): 2010-05-25 Alexey Proskuryakov <ap@apple.com> Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=39621 <rdar://problem/8009738> Extreme memory growth on DOM Hanoi test The largest cause of memory growth on this test were autoreleased DOMNode objects created to make webView:formStateDidChangeForNode: delegate calls. * html/HTMLTextAreaElement.cpp: (WebCore::HTMLTextAreaElement::HTMLTextAreaElement): Don't call notifyFormStateChanged() - since the element starts with refcount 0, it's not safe to call functions that are likely to create temporary wrappers (wrapper destructor would bring refcount back to 0, and destroy HTMLTextAreaElement from within its constructor). 2010-05-25 Kent Tamura <tkent@chromium.org> Reviewed by Dimitri Glazkov. [DRT/Chromium] Enable 3D_CANVAS, FILTERS, METER_TAG and PROGRESS_TAG https://bugs.webkit.org/show_bug.cgi?id=39652 * rendering/RenderTheme.cpp: (WebCore::RenderTheme::paintMeter): Fix narrowPrecisionToFloat() usage. 2010-05-25 Darin Adler <darin@apple.com> Sort ".exp" files with the sort tool. This makes later merging easier. These Mac-specific files should probably move into a subdirectory at some point. * WebCore.Inspector.exp: Sorted. * WebCore.PluginHostProcess.exp: Removed blank line. * WebCore.VideoProxy.exp: Sorted. * WebCore.base.exp: Ditto. 2010-05-25 Vangelis Kokkevis <vangelis@chromium.org> Reviewed by Darin Fisher. Removing the persistent GraphicsContext from LayerChromium to save on memory and simplify code. Layers now create a temporary context, draw into it, update the GL texture and discard the context. https://bugs.webkit.org/show_bug.cgi?id=39640 * platform/graphics/chromium/GraphicsLayerChromium.cpp: (WebCore::GraphicsLayerChromium::updateLayerDrawsContent): * platform/graphics/chromium/LayerChromium.cpp: (WebCore::LayerChromium::LayerChromium): (WebCore::LayerChromium::~LayerChromium): (WebCore::LayerChromium::setLayerRenderer): (WebCore::LayerChromium::updateTextureContents): (WebCore::LayerChromium::setContents): (WebCore::LayerChromium::setBounds): (WebCore::LayerChromium::setNeedsDisplay): * platform/graphics/chromium/LayerChromium.h: * platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::~LayerRendererChromium): (WebCore::LayerRendererChromium::setRootLayerCanvasSize): (WebCore::LayerRendererChromium::drawLayers): (WebCore::LayerRendererChromium::assignTextureForLayer): (WebCore::LayerRendererChromium::compositeLayersRecursive): * platform/graphics/chromium/LayerRendererChromium.h: (WebCore::LayerRendererChromium::rootLayerGraphicsContext): 2010-05-24 Kenneth Rohde Christiansen <kenneth@webkit.org> Reviewed by Simon Hausmann. [Qt] Make text filling work together with text stroke. When the text has stroke a new QPen was set, overriding the pen set for text filling. This patch fixes that by storing the two pens and using where appropriate. * platform/graphics/qt/FontQt.cpp: (WebCore::Font::drawComplexText): 2010-05-17 Antonio Gomes <tonikitoo@webkit.org> Reviewed by Darin Adler. Add an optional "starting node' parameter to scrollRecursively and scrollOverflow of EventHandler https://bugs.webkit.org/show_bug.cgi?id=39217 It would be usefull if scrollOverflow and scrollRecursively methods of EventHandler could receive a parameter to specify where to start scrolling from. Currently they start scrolling from either the current focused node or the node where mouse last pressed on. Patch proposes an aditional starting point as an optional parameter. Since it is optional, all call sites can remain as are, and if a Null node is passed in, both methods work as previously. * page/EventHandler.cpp: (WebCore::EventHandler::scrollOverflow): (WebCore::EventHandler::scrollRecursively): * page/EventHandler.h: 2010-05-25 Yury Semikhatsky <yurys@chromium.org> Reviewed by Timothy Hatcher. Web Inspector: localize heap graph strings. https://bugs.webkit.org/show_bug.cgi?id=39674 * English.lproj/localizedStrings.js: 2010-05-25 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Switch HTML parsing benchmark to use document.write instead of innerHTML https://bugs.webkit.org/show_bug.cgi?id=39661 We'd like to exercise the main parsing pipeline instead of the fragment parsing pipeline. * benchmarks/parser/html-parser.html: 2010-05-25 Kenneth Rohde Christiansen <kenneth.christiansen@openbossa.org> Reviewed by Laszlo Gombos. [Qt] Running with accelerated compositing enabled sometimes result in a crash https://bugs.webkit.org/show_bug.cgi?id=39609 Check if we have a scene before applying the workaround for the QGraphicsScene bug where opacity change doesn't always have immediate effect. * platform/graphics/qt/GraphicsLayerQt.cpp: (WebCore::OpacityAnimationQt::applyFrame): 2010-05-25 Yury Semikhatsky <yurys@chromium.org> Unreviewed. Fix Chromium Mac Release build. * bindings/v8/ScriptDebugServer.cpp: 2010-05-24 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. ScriptDebugServer is now implemented as DebugEventListener which means it doesn't depend on v8 debugging protocol, instead it uses ExecState to collect debugging info and pass it to the listeners. New implementation of ScriptDebugServer uses methods provided by client to dispatch its messages while JS is paused(previously the messages was dispatched in a callback passed to v8 along with DebugEventHandler). https://bugs.webkit.org/show_bug.cgi?id=39594 * bindings/js/ScriptDebugServer.cpp: (WebCore::ScriptDebugServer::dispatchDidPause): (WebCore::ScriptDebugServer::dispatchDidContinue): (WebCore::ScriptDebugServer::dispatchFunctionToListeners): Changed method signature to allow invocation of ScriptDebugListener methods that have non-empty argument list. (WebCore::ScriptDebugServer::pauseIfNeeded): * bindings/js/ScriptDebugServer.h: * bindings/v8/ScriptDebugServer.cpp: (WebCore::retrieveFrame): (WebCore::ScriptDebugServer::ScriptDebugServer): (WebCore::ScriptDebugServer::addListener): (WebCore::ScriptDebugServer::removeListener): Execution is resumed(nested message loop is terminated) when corresponding debugger window closes. (WebCore::ScriptDebugServer::clearBreakpoints): (WebCore::ScriptDebugServer::pauseOnExceptionsState): (WebCore::ScriptDebugServer::setPauseOnExceptionsState): (WebCore::ScriptDebugServer::continueProgram): (WebCore::ScriptDebugServer::stepIntoStatement): (WebCore::ScriptDebugServer::stepOverStatement): (WebCore::ScriptDebugServer::stepOutOfFunction): (WebCore::ScriptDebugServer::v8DebugEventCallback): (WebCore::ScriptDebugServer::handleV8DebugEvent): (WebCore::ScriptDebugServer::didResume): * bindings/v8/ScriptDebugServer.h: (WebCore::ScriptDebugServer::ClientMessageLoop::~ClientMessageLoop): (WebCore::ScriptDebugServer::setClientMessageLoop): * inspector/InspectorController.cpp: (WebCore::InspectorController::didPause): * inspector/InspectorController.h: * inspector/ScriptDebugListener.h: Changed didPause signature to explicitly pass ScriptState where execution is paused. 2010-05-25 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Clear attributes for each tag in the HTML5 parser https://bugs.webkit.org/show_bug.cgi?id=39660 Yes, I did screw this up. * html/HTML5Token.h: (WebCore::HTML5Token::beginStartTag): (WebCore::HTML5Token::beginEndTag): 2010-05-25 Anders Bakken <agbakken@gmail.com> Reviewed by Darin Adler. Remove warning for GCC 4.4.3 GCC suggest parentheses around && within || * dom/Element.cpp: (WebCore::Element::recalcStyle): 2010-05-25 Xan Lopez <xlopez@igalia.com> Fix the GTK+ build, PluginInfoStore was removed. * GNUmakefile.am: 2010-05-25 Ada Chan <adachan@apple.com> Reviewed by Steve Falkenburg. Add a base class for DOMTimer called SuspendableTimer which captures just the basic functionality of TimerBase and ActiveDOMObject combined. It does not contain functionality specific to scripting timers. SuspendableTimer is used in fixing https://bugs.webkit.org/show_bug.cgi?id=39651 * Android.mk: * CMakeLists.txt: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * page/DOMTimer.cpp: (WebCore::DOMTimer::DOMTimer): (WebCore::DOMTimer::contextDestroyed): (WebCore::DOMTimer::stop): * page/DOMTimer.h: * page/SuspendableTimer.cpp: Added. (WebCore::SuspendableTimer::SuspendableTimer): (WebCore::SuspendableTimer::~SuspendableTimer): (WebCore::SuspendableTimer::hasPendingActivity): (WebCore::SuspendableTimer::stop): (WebCore::SuspendableTimer::suspend): (WebCore::SuspendableTimer::resume): (WebCore::SuspendableTimer::canSuspend): * page/SuspendableTimer.h: Added. 2010-05-25 Justin Schuh <jschuh@chromium.org> Reviewed by Nate Chapin. Remove custom bindings for Element.SetAttribute* https://bugs.webkit.org/show_bug.cgi?id=39604 Custom bindings are no longer needed because origin checks were moved out of the bindings by: http://trac.webkit.org/changeset/59866 Behavior isn't changed and is covered by existing tests. * bindings/js/JSElementCustom.cpp: * bindings/v8/custom/V8ElementCustom.cpp: * dom/Element.idl: 2010-05-25 Yury Semikhatsky <yurys@chromium.org> Reviewed by Pavel Feldman. Add memory graph to Timeline overview pane. https://bugs.webkit.org/show_bug.cgi?id=37879 * inspector/front-end/Drawer.js: (WebInspector.Drawer): (WebInspector.Drawer.prototype.show.animationFinished): (WebInspector.Drawer.prototype.show): (WebInspector.Drawer.prototype.hide): (WebInspector.Drawer.prototype.set currentPanelCounters): * inspector/front-end/Panel.js: * inspector/front-end/TimelineOverviewPane.js: (WebInspector.TimelineOverviewPane): (WebInspector.TimelineOverviewPane.prototype.showTimelines): (WebInspector.TimelineOverviewPane.prototype.showMemoryGraph): (WebInspector.TimelineOverviewPane.prototype._forAllRecords): (WebInspector.TimelineOverviewPane.prototype.update): (WebInspector.TimelineOverviewPane.prototype.updateMainViewWidth): (WebInspector.TimelineOverviewPane.prototype._endWindowDragging): (WebInspector.TimelineOverviewPane.prototype._createTimelineCategoryStatusBarCheckbox): (WebInspector.HeapGraph): (WebInspector.HeapGraph.prototype.get element): (WebInspector.HeapGraph.prototype.get visible): (WebInspector.HeapGraph.prototype.show): (WebInspector.HeapGraph.prototype.hide): (WebInspector.HeapGraph.prototype.setSize): (WebInspector.HeapGraph.prototype.update): (WebInspector.HeapGraph.prototype._clear): (WebInspector.HeapGraph.prototype._drawScale): * inspector/front-end/TimelinePanel.js: (WebInspector.TimelinePanel): (WebInspector.TimelinePanel.prototype.toolbarItemClass._createTopPane): (WebInspector.TimelinePanel.prototype.get statusBarItems): (WebInspector.TimelinePanel.prototype._timelinesOverviewItemSelected): (WebInspector.TimelinePanel.prototype._memoryOverviewItemSelected): (WebInspector.TimelinePanel.prototype.setSidebarWidth): (WebInspector.TimelinePanel.prototype.show): (WebInspector.TimelinePanel.prototype.hide): * inspector/front-end/inspector.css: (#counters): (#timeline-overview-sidebar): (.timeline-category-statusbar-item): (.timeline-category-statusbar-item .timeline-category-checkbox): (.timeline-category-statusbar-item .timeline-category-checkbox:checked): (.timeline-category-statusbar-item.timeline-category-loading .timeline-category-checkbox): (.timeline-category-statusbar-item.timeline-category-scripting .timeline-category-checkbox): (.timeline-category-statusbar-item.timeline-category-rendering .timeline-category-checkbox): (#timeline-overview-memory): (.timeline-records-counter): (#main-status-bar > .timeline-records-counter): (#counters > .timeline-records-counter): * inspector/front-end/inspector.html: * inspector/front-end/utilities.js: (): 2010-05-25 Adam Barth <abarth@webkit.org> Unreviewed. Fix typo pointed out by Maciej. * html/HTML5Lexer.cpp: (WebCore::HTMLNames::unconsumeCharacters): (WebCore::HTML5Lexer::consumeEntity): 2010-05-25 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Fix <noembed> and <plaintext> content models https://bugs.webkit.org/show_bug.cgi?id=39653 PLAINTEXTState is my favorite lexer state. :) * html/HTML5TreeBuilder.cpp: (WebCore::HTML5TreeBuilder::passTokenToLegacyParser): 2010-05-24 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. First cut at HTML5 entities https://bugs.webkit.org/show_bug.cgi?id=39649 There's still a bunch more work to do to get our entity parsing fully up to spec. This patch contains the bulk of the implementation however. The basics are covered by the existing html5lib tests. I'll add more detailed tests in a followup patch. * html/HTML5Lexer.cpp: (WebCore::HTMLNames::legalEntityFor): (WebCore::HTMLNames::isHexDigit): (WebCore::HTMLNames::isAlphaNumeric): (WebCore::HTMLNames::uncomsumeCharacters): (WebCore::HTML5Lexer::consumeEntity): (WebCore::HTML5Lexer::nextToken): (WebCore::HTML5Lexer::haveBufferedCharacterToken): * html/HTML5Lexer.h: (WebCore::HTML5Lexer::): * html/HTML5Tokenizer.cpp: (WebCore::HTML5Tokenizer::write): 2010-05-24 Tasuku Suzuki <tasuku.suzuki@nokia.com> Reviewed by Kenneth Rohde Christiansen. [Qt] Fix compilation with QT_NO_TEMPORARYFILE https://bugs.webkit.org/show_bug.cgi?id=38324 * platform/qt/FileSystemQt.cpp: (WebCore::openTemporaryFile): 2010-05-24 Andrey Kosyakov <caseq@chromium.org> Reviewed by Yury Semikhatsky. Fixed handling of bare '/' and '?' at console prompt. https://bugs.webkit.org/show_bug.cgi?id=39585 * inspector/front-end/inspector.js: (WebInspector.documentKeyDown): 2010-05-24 Andreas Kling <andreas.kling@nokia.com> Reviewed by Sam Weinig. The 'prototype' property on generated Web IDL interfaces should be { DontDelete | ReadOnly }. Spec link: http://www.w3.org/TR/WebIDL/#interface-object https://bugs.webkit.org/show_bug.cgi?id=39436 Test: fast/dom/prototype-property.html * bindings/scripts/CodeGeneratorJS.pm: 2010-05-24 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. Add RCDATA and RAWTEXT suport to the HTML5 parser https://bugs.webkit.org/show_bug.cgi?id=39642 Adam Barth wrote half of this patch. * html/HTML5TreeBuilder.cpp: (WebCore::HTML5TreeBuilder::passTokenToLegacyParser): 2010-05-24 Tony Chang <tony@chromium.org> Not reviewed, build fix. Fix the chromium compile due to pageZoomFactor refactoring. * page/EventHandler.cpp: (WebCore::pageZoomFactor): 2010-05-24 Jer Noble <jer.noble@apple.com> Reviewed by Eric Carlson. HTML5 <video> tag performance worse than Flash https://bugs.webkit.org/show_bug.cgi?id=39577 rdar://problem/7982458 Added attachments() back to QTPixelBuffer, as they are necessary for CAImageQueue. WKCACFLayer contents()/setContents() now return/take a CFTypeRef instead of a CGImageRef, which allows a CAImageQueueRef to be set as a layer's contents. WKCAImageQueue is a simple C++ wrapper around the WebKitSystemInterface CAImageQueue functions. MediaPlayerPrivateQuickTimeVisualContext will now use a CAImageQueue to display movie frames if certain prerequisites are met (QuartzCore.dll and CoreVideo.dll version numbers must meet a certain threshold defined in MediaPlayerPrivateQuickTimeVisualContext.cpp). * WebCore.vcproj/WebCore.vcproj: * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp: * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h: * platform/graphics/win/QTPixelBuffer.cpp: * platform/graphics/win/QTPixelBuffer.h: * platform/graphics/win/WKCACFLayer.cpp: * platform/graphics/win/WKCACFLayer.h: * platform/graphics/win/WKCAImageQueue.cpp: Added. * platform/graphics/win/WKCAImageQueue.h: Added. 2010-05-24 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Teach the HTML5 parser how to lex escaped script data https://bugs.webkit.org/show_bug.cgi?id=39630 * html/HTML5Lexer.cpp: (WebCore::HTMLNames::vectorEqualsString): (WebCore::HTML5Lexer::nextToken): (WebCore::HTML5Lexer::temporaryBufferIs): (WebCore::HTML5Lexer::isAppropriateEndTag): (WebCore::HTML5Lexer::maybeFlushBufferedEndTag): (WebCore::HTML5Lexer::flushBufferedEndTag): * html/HTML5Lexer.h: 2010-05-24 Eric Seidel <eric@webkit.org> Unreviewed. Trick MSVC into ignoring our unused code for the moment. Prepare HTML5TreeBuilder for addition of new HTML5 parser code https://bugs.webkit.org/show_bug.cgi?id=39623 * html/HTML5TreeBuilder.cpp: (WebCore::HTML5TreeBuilder::constructTreeFromToken): 2010-05-24 Darin Adler <darin@apple.com> Fix build on platforms with touch code enabled. * page/EventHandler.cpp: (WebCore::pageZoomFactor): Added. (WebCore::EventHandler::handleTouchEvent): Use pageZoomFactor. 2010-05-24 Darin Adler <darin@apple.com> Reviewed by Eric Seidel. Move view-related functions from Frame to FrameView https://bugs.webkit.org/show_bug.cgi?id=39366 Refactoring only so adds no new tests. * WebCore.base.exp: Updated. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::styleForDocument): Call zoom factor function on FrameView. (WebCore::CSSStyleSelector::applyProperty): Ditto. (WebCore::CSSStyleSelector::getComputedSizeFromSpecifiedSize): Ditto. * dom/Document.cpp: (WebCore::Document::elementFromPoint): Ditto. (WebCore::Document::caretRangeFromPoint): Ditto. * dom/MouseRelatedEvent.cpp: (WebCore::contentsX): Ditto. (WebCore::contentsY): Ditto. (WebCore::pageZoomFactor): Added helper function. (WebCore::MouseRelatedEvent::computePageLocation): Use helper. (WebCore::MouseRelatedEvent::receivedTarget): Ditto. * dom/Node.cpp: (WebCore::Node::dispatchMouseEvent): Call zoom factor function on FrameView. (WebCore::Node::dispatchWheelEvent): Ditto. * dom/Touch.cpp: (WebCore::contentsX): Call zoom factor function on FrameView. (WebCore::contentsY): Ditto. * html/HTMLBodyElement.cpp: (WebCore::adjustForZoom): Ditto. (WebCore::HTMLBodyElement::setScrollLeft): Ditto. (WebCore::HTMLBodyElement::setScrollTop): Ditto. * html/HTMLImageElement.cpp: (WebCore::HTMLImageElement::width): Ditto. (WebCore::HTMLImageElement::height): Ditto. * loader/ImageDocument.cpp: (WebCore::pageZoomFactor): Added helper function. (WebCore::ImageTokenizer::finish): Use helper function (WebCore::ImageDocument::scale): Ditto. (WebCore::ImageDocument::resizeImageToFit): Ditto. (WebCore::ImageDocument::imageChanged): Ditto. (WebCore::ImageDocument::restoreImageSize): Ditto. (WebCore::ImageDocument::imageFitsInWindow): Ditto. * page/DOMWindow.cpp: (WebCore::DOMWindow::innerHeight): Ditto. (WebCore::DOMWindow::innerWidth): Ditto. (WebCore::DOMWindow::scrollX): Ditto. (WebCore::DOMWindow::scrollY): Ditto. (WebCore::DOMWindow::scrollTo): Ditto. * page/DragController.cpp: (WebCore::elementUnderMouse): Ditto. * page/Frame.cpp: (WebCore::Frame::Frame): Removed code to initialize m_zoomFactor. * page/Frame.h: Moved functions to FrameView. Moved all #if to the left margin to make the style consistent. Removed empty function removeEditingStyleFromBodyElement. * page/FrameView.cpp: (WebCore::parentZoomFactor): Added helper function for constructor. (WebCore::FrameView::FrameView): Added initialization of m_zoomFactor. (WebCore::FrameView::shouldApplyTextZoom): Moved this here from Frame. (WebCore::FrameView::shouldApplyPageZoom): Ditto. (WebCore::FrameView::setZoomFactor): Ditto. * page/FrameView.h: Added members moved here from Frame. * rendering/RenderView.cpp: (WebCore::RenderView::zoomFactor): Call FrameView instead of Frame. * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::currentScale): Ditto. (WebCore::SVGSVGElement::setCurrentScale): Ditto. 2010-05-24 Jer Noble <jer.noble@apple.com> No review; build fix only. Roll-out changes r60094, 60096-60097. * WebCore.vcproj/WebCore.vcproj: * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp: (WebCore::MediaPlayerPrivateQuickTimeVisualContext::load): (WebCore::MediaPlayerPrivateQuickTimeVisualContext::retrieveCurrentImage): (WebCore::MediaPlayerPrivateQuickTimeVisualContext::destroyLayerForMovie): * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h: * platform/graphics/win/QTPixelBuffer.cpp: * platform/graphics/win/QTPixelBuffer.h: * platform/graphics/win/WKCACFLayer.cpp: (WebCore::WKCACFLayer::printLayer): * platform/graphics/win/WKCACFLayer.h: (WebCore::WKCACFLayer::setContents): (WebCore::WKCACFLayer::contents): (WebCore::WKCACFLayer::speed): (WebCore::WKCACFLayer::timeOffset): * platform/graphics/win/WKCAImageQueue.cpp: Removed. * platform/graphics/win/WKCAImageQueue.h: Removed. 2010-05-24 Eric Seidel <eric@webkit.org> Unreviewed. Add wtf/UnusedParam.h include to make Chromium happy. Chromium does not use a prefix header in order to support distcc3. Other ports all do. The real fix is to remove wtf/UnusedParam.h from the prefix header. * html/HTML5TreeBuilder.cpp: 2010-05-24 Jer Noble <jer.noble@apple.com> No review; build fix only. Second half of previous build fix, in which I add the include in the correct place. * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp: 2010-05-24 Jer Noble <jer.noble@apple.com> No review; build fix only. Include WKCAImageQueue.h outside the ACCELERATED_COMPOSITING check. * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp: 2010-05-24 Eric Seidel <eric@webkit.org> Reviewed by Adam Barth. Prepare HTML5TreeBuilder for addition of new HTML5 parser code https://bugs.webkit.org/show_bug.cgi?id=39623 Before we start transcribing the parser, we need a place to put it. This also cleans up HTML5 token to not convert comment and character data into AtomicStrings (which makes no sense). No functionality change, so no new tests. * html/HTML5Token.h: (WebCore::HTML5Token::beginStartTag): (WebCore::HTML5Token::beginEndTag): (WebCore::HTML5Token::beginCharacter): (WebCore::HTML5Token::beginComment): (WebCore::HTML5Token::name): (WebCore::HTML5Token::adoptDataAsStringImpl): (WebCore::HTML5Token::characters): (WebCore::HTML5Token::commentData): (WebCore::HTML5Token::clearData): * html/HTML5TreeBuilder.cpp: (WebCore::convertToOldStyle): (WebCore::HTML5TreeBuilder::constructTreeFromToken): (WebCore::HTML5TreeBuilder::processToken): * html/HTML5TreeBuilder.h: 2010-05-23 Jer Noble <jer.noble@apple.com> Reviewed by Eric Carlson. HTML5 <video> tag performance worse than Flash https://bugs.webkit.org/show_bug.cgi?id=39577 rdar://problem/7982458 Added attachments() back to QTPixelBuffer, as they are necessary for CAImageQueue. WKCACFLayer contents()/setContents() now return/take a CFTypeRef instead of a CGImageRef, which allows a CAImageQueueRef to be set as a layer's contents. WKCAImageQueue is a simple C++ wrapper around the WebKitSystemInterface CAImageQueue functions. MediaPlayerPrivateQuickTimeVisualContext will now use a CAImageQueue to display movie frames if certain prerequisites are met (QuartzCore.dll and CoreVideo.dll version numbers must meet a certain threshold defined in MediaPlayerPrivateQuickTimeVisualContext.cpp). * WebCore.vcproj/WebCore.vcproj: * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp: * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h: * platform/graphics/win/QTPixelBuffer.cpp: * platform/graphics/win/QTPixelBuffer.h: * platform/graphics/win/WKCACFLayer.cpp: * platform/graphics/win/WKCACFLayer.h: * platform/graphics/win/WKCAImageQueue.cpp: Added. * platform/graphics/win/WKCAImageQueue.h: Added. 2010-05-24 Brady Eidson <beidson@apple.com> Reviewed by Darin Adler. Database origins aren't populated at launch (missing db in prefs sheet, possible other symptoms) <rdar://problem/8013233> and https://bugs.webkit.org/show_bug.cgi?id=39486 Currently, a Tracker needs to know it's path before origins are populated. Testing databases and related features is made very difficult with this regression, so instead of changing things in a complicated way to make this not the case, I've added an "initialize Tracker with this path" function that calls the DatabaseTracker constructor with the initial path. I checked the other platforms besides Mac and Win, and none of them seem to perform the "initialize databases if necessary" step in their init routines, so this change shouldn't effect them. No new tests. (API specific layout test in DRT is forthcoming) * WebCore.base.exp: * storage/DatabaseTracker.cpp: (WebCore::DatabaseTracker::initializeTracker): Added to create the tracker with its initial path. (WebCore::DatabaseTracker::tracker): Move the static tracker out so tracker() and initializeTracker() can share it. Add a fallback to not change behavior of platforms that don't call the new "initializeTracker()" method. (WebCore::DatabaseTracker::DatabaseTracker): Changed to take the initial path as an argument. * storage/DatabaseTracker.h: * storage/chromium/DatabaseTrackerChromium.cpp: (WebCore::DatabaseTracker::tracker): Adapt to new c'tor. (WebCore::DatabaseTracker::DatabaseTracker): Ditto. 2010-05-24 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Teach the HTML5 parser to lex DOCTYPEs https://bugs.webkit.org/show_bug.cgi?id=39571 * html/HTML5Lexer.cpp: (WebCore::HTML5Lexer::nextToken): * html/HTML5Lexer.h: * html/HTML5Token.h: (WebCore::HTML5Token::beginDOCTYPE): (WebCore::HTML5Token::publicIdentifier): (WebCore::HTML5Token::systemIdentifier): (WebCore::HTML5Token::setPublicIdentifierToEmptyString): (WebCore::HTML5Token::setSystemIdentifierToEmptyString): (WebCore::HTML5Token::appendToPublicIdentifier): (WebCore::HTML5Token::appendToSystemIdentifier): (WebCore::HTML5Token::DoctypeData::DoctypeData): * html/HTML5TreeBuilder.cpp: (WebCore::convertToOldStyle): (WebCore::HTML5TreeBuilder::passTokenToLegacyParser): * platform/text/SegmentedString.h: (WebCore::SegmentedString::lookAheadIgnoringCase): (WebCore::SegmentedString::advanceAndASSERTIgnoringCase): == Rolled over to ChangeLog-2010-05-24 ==