2007-10-26  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        http://bugs.webkit.org/show_bug.cgi?id=15693
        [GTK] Paging does not work when widget is added to a GtkScrolledWindow

        Eliminate MagicGtkScrollConstant in favour of the same calculations as
        GtkTextView for step and page increments. This also makes paging work,
        as the page increment was previously always 0.

        * platform/gtk/ScrollViewGtk.cpp:
        (WebCore::ScrollView::updateScrollbars):

2007-10-25  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt and Sam Weinig.

        Build fix

        * platform/graphics/cg/ImageCG.cpp:
        (WebCore::Image::drawPattern):

2007-10-23  Jan Michael Alonzo  <jmalonzo@unpluggable.com>

        Reviewed by Alp.

        http://bugs.webkit.org/show_bug.cgi?id=15656
        [GTK] Implement WebCore::Widget::isEnabled/setEnabled

        * platform/gtk/WidgetGtk.cpp:
        (WebCore::Widget::isEnabled):
        (WebCore::Widget::setEnabled): Implemented.

2007-10-25  David Hyatt  <hyatt@apple.com>

        Fix for bug 15672, background images don't tile properly inside transforms.  This patch fixes background
        tiling to work in the presence of transforms and fixes bugs in both SVG and CSS transforms.

        Reviewed by aroben and mitz

        * WebCore.base.exp:
        * platform/graphics/Image.cpp:
        (WebCore::Image::setData):
        * platform/graphics/cg/ImageCG.cpp:
        (WebCore::ImageInfo::ImageInfo):
        (WebCore::Image::drawPatternCallback):
        (WebCore::Image::drawPattern):
        * platform/graphics/mac/GraphicsContextMac.mm:
        (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
        * platform/mac/WebCoreSystemInterface.h:
        * platform/mac/WebCoreSystemInterface.mm:

2007-10-25  Brady Eidson  <beidson@apple.com>

        Blind build fix attempt

        * WebCore.pro:

2007-10-25  Brady Eidson  <beidson@apple.com>

        Reviewed by Anders and Sam

        Bulk rename of platform/sql/SQL* to platform/sql/SQLite*
        
        This is more accurate in that there is no realistic "SQL" abstraction, the classes are obviously
        tied extremely close to SQLite, and is necessitated by the introduction of "SQLTransaction" in 
        the HTML5 database API which we are adopting.

        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * loader/icon/IconDatabase.cpp:
        (WebCore::IconDatabase::iconDatabaseSyncThread):
        (WebCore::databaseVersionNumber):
        (WebCore::isValidDatabase):
        (WebCore::createDatabaseTables):
        (WebCore::IconDatabase::performOpenInitialization):
        (WebCore::IconDatabase::checkIntegrity):
        (WebCore::IconDatabase::performURLImport):
        (WebCore::IconDatabase::writeToDatabase):
        (WebCore::IconDatabase::pruneUnretainedIcons):
        (WebCore::IconDatabase::checkForDanglingPageURLs):
        (WebCore::IconDatabase::imported):
        (WebCore::IconDatabase::setImported):
        (WebCore::readySQLiteStatement):
        (WebCore::IconDatabase::setIconIDForPageURLInSQLDatabase):
        (WebCore::IconDatabase::removePageURLFromSQLDatabase):
        (WebCore::IconDatabase::getIconIDForIconURLFromSQLDatabase):
        (WebCore::IconDatabase::addIconURLToSQLDatabase):
        (WebCore::IconDatabase::getImageDataForIconURLFromSQLDatabase):
        (WebCore::IconDatabase::removeIconFromSQLDatabase):
        (WebCore::IconDatabase::writeIconSnapshotToSQLDatabase):
        * loader/icon/IconDatabase.h:
        * loader/icon/IconRecord.cpp:
        * platform/sql/SQLAuthorizer.cpp: Removed.
        * platform/sql/SQLAuthorizer.h: Removed.
        * platform/sql/SQLDatabase.cpp: Removed.
        * platform/sql/SQLDatabase.h: Removed.
        * platform/sql/SQLStatement.cpp: Removed.
        * platform/sql/SQLStatement.h: Removed.
        * platform/sql/SQLTransaction.cpp: Removed.
        * platform/sql/SQLTransaction.h: Removed.
        * platform/sql/SQLiteAuthorizer.cpp: Copied from platform/sql/SQLAuthorizer.cpp.
        * platform/sql/SQLiteAuthorizer.h: Copied from platform/sql/SQLAuthorizer.h.
        (WebCore::SQLiteAuthorizer::~SQLiteAuthorizer):
        * platform/sql/SQLiteDatabase.cpp: Copied from platform/sql/SQLDatabase.cpp.
        (WebCore::SQLiteDatabase::SQLiteDatabase):
        (WebCore::SQLiteDatabase::~SQLiteDatabase):
        (WebCore::SQLiteDatabase::open):
        (WebCore::SQLiteDatabase::close):
        (WebCore::SQLiteDatabase::setFullsync):
        (WebCore::SQLiteDatabase::setSynchronous):
        (WebCore::SQLiteDatabase::setBusyTimeout):
        (WebCore::SQLiteDatabase::setBusyHandler):
        (WebCore::SQLiteDatabase::executeCommand):
        (WebCore::SQLiteDatabase::returnsAtLeastOneResult):
        (WebCore::SQLiteDatabase::tableExists):
        (WebCore::SQLiteDatabase::clearAllTables):
        (WebCore::SQLiteDatabase::runVacuumCommand):
        (WebCore::SQLiteDatabase::lastInsertRowID):
        (WebCore::SQLiteDatabase::lastChanges):
        (WebCore::SQLiteDatabase::lastError):
        (WebCore::SQLiteDatabase::lastErrorMsg):
        (WebCore::SQLiteDatabase::authorizerFunction):
        (WebCore::SQLiteDatabase::setAuthorizer):
        (WebCore::SQLiteDatabase::lock):
        (WebCore::SQLiteDatabase::unlock):
        * platform/sql/SQLiteDatabase.h: Copied from platform/sql/SQLDatabase.h.
        * platform/sql/SQLiteStatement.cpp: Copied from platform/sql/SQLStatement.cpp.
        (WebCore::SQLiteStatement::SQLiteStatement):
        (WebCore::SQLiteStatement::~SQLiteStatement):
        (WebCore::SQLiteStatement::prepare):
        * platform/sql/SQLiteStatement.h: Copied from platform/sql/SQLStatement.h.
        (WebCore::SQLiteStatement::database):
        * platform/sql/SQLiteTransaction.cpp: Copied from platform/sql/SQLTransaction.cpp.
        (WebCore::SQLiteTransaction::SQLiteTransaction):
        (WebCore::SQLiteTransaction::~SQLiteTransaction):
        (WebCore::SQLiteTransaction::begin):
        (WebCore::SQLiteTransaction::commit):
        (WebCore::SQLiteTransaction::rollback):
        * platform/sql/SQLiteTransaction.h: Copied from platform/sql/SQLTransaction.h.
        * storage/Database.cpp:
        (WebCore::retrieveTextResultFromDatabase):
        (WebCore::setTextValueInDatabase):
        (WebCore::Database::performExecuteSql):
        (WebCore::Database::performGetTableNames):
        (WebCore::Database::executeSql):
        * storage/Database.h:
        * storage/DatabaseAuthorizer.h:
        * storage/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::fullPathForDatabase):
        (WebCore::DatabaseTracker::populateOrigins):
        (WebCore::DatabaseTracker::databaseNamesForOrigin):
        (WebCore::DatabaseTracker::addDatabase):
        * storage/DatabaseTracker.h:

2007-10-25  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=15650
        XML attribute nodes are not importable

        Tests: fast/dom/import-attribute-node.html
               fast/dom/import-document-fragment.html

        * dom/Document.cpp:
        (WebCore::Document::importNode): Implemented for Attribute and DocumentFragment nodes.

2007-10-25  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15362
          <rdar://problem/5558715> Safari Crashes when opening a JS TreeGrid widget

        Test: fast/dynamic/insert-before-table-part-in-continuation.html

        * rendering/RenderFlow.cpp:
        (WebCore::RenderFlow::addChildWithContinuation): If beforeChild's
        parent is an anonymous table part, let the table figure out where to
        insert the new child.

2007-10-25  Alp Toker  <alp@atoker.com>

        Reviewed by Brady.

        http://bugs.webkit.org/show_bug.cgi?id=15686
        GtkLauncher aborts on launch due to uninitialized threading subsystem

        Re-enable database support in the GTK+ port, with a fix.

        * WebCore.pro:

2007-10-25  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Steve.

        <rdar://5548217>: [NTS] Java 6 update 3 crashes Safari when loading a 
        java page

        Previous patch erroneously compared a path and a
        path-including-filename. This corrects that. It also caches the result
        of safariPluginsPath() and uses shell API funcs for determining filename
        and parent directory from a full path.

        * ChangeLog:
        * plugins/win/PluginDatabaseWin.cpp:
        (WebCore::safariPluginsPath): Cache return value. Use API functions to
        build the path
        (WebCore::PluginDatabaseWin::pluginForMIMEType): Compare again plugin's
        parent directory, not full path
        (WebCore::PluginDatabaseWin::pluginForExtension): Same
        * plugins/win/PluginPackageWin.cpp:
        (WebCore::PluginPackageWin::PluginPackageWin): Store parent directory
        * plugins/win/PluginPackageWin.h:
        (WebCore::PluginPackageWin::parentDirectory):
        * plugins/win/PluginStreamWin.cpp:
        (WebCore::PluginStreamWin::didReceiveData):

2007-10-25  Alp Toker  <alp@atoker.com>

        Unreviewed fix to make the GTK+ port run.

        http://bugs.webkit.org/show_bug.cgi?id=15686
        GtkLauncher aborts on launch due to uninitialized threading subsystem

        Disable database support until #15686 is fixed.

        * WebCore.pro:

2007-10-25  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Lars.

        Fixed a crash in the Qt 4.4 based text iterators when they're called with a null string.

        * platform/qt/TextBreakIteratorQt.cpp:
        (WebCore::wordBreakIterator):
        (WebCore::characterBreakIterator):
        (WebCore::lineBreakIterator):
        (WebCore::sentenceBreakIterator):

2007-10-25  Holger Freyther  <zecke@selfish.org>

        Reviewed by Simon Hausmann <hausmann@kde.org>.

        * We need to set a != 0 status code for the fast/loader/xmlhttprequest-missing-file-exception.html
        * libxml2 has the semantic that when writing an empty string and finishing it will report an error. For QXmlStreamReader this is valid.
        * This is causing some regressions...
        

        * dom/XMLTokenizer.cpp:
        (WebCore::XMLTokenizer::XMLTokenizer):
        (WebCore::XMLTokenizer::write):
        (WebCore::XMLTokenizer::end):
        * dom/XMLTokenizer.h:

2007-10-25  Holger Freyther  <zecke@selfish.org>

        Reviewed by Simon Hausmann <hausmann@kde.org>.

        * fast/dom/onerror-img.html regressed due checking the JobStates because in case of error (e.g. not being able to connect) the job will no be started.
        * Use the error message from Qt. It might or might not be translated.
        

        WARNING: NO TEST CASES ADDED OR CHANGED

        * platform/network/qt/ResourceHandleQt.cpp:
        (WebCore::WebCoreSynchronousLoader::didFail):

2007-10-25  Holger Freyther  <zecke@selfish.org>

        Reviewed by Simon Hausmann <hausmann@kde.org>.

        * Implement our own queuing of network jobs to allow special handling of synchronous jobs. This makes us pass the fast/dom/xmlhttprequest-html-response-encoding.html test without a crash. Sync jobs will get a special treatment over the normals ones and in theory more than one sync job is supported.
        * This should be thread-safe besides QWebNetworkJob::{ref,deref}
        

        * platform/network/qt/ResourceHandleQt.cpp:
        (WebCore::ResourceHandle::loadResourceSynchronously):

2007-10-25  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        Add support for list box theme colors and styled menu list buttons.

        Remove obsolete FIXMEs.

        * platform/gtk/RenderThemeGtk.cpp:
        (WebCore::RenderThemeGtk::RenderThemeGtk):
        (WebCore::RenderThemeGtk::paintCheckbox):
        (WebCore::RenderThemeGtk::paintRadio):
        (WebCore::RenderThemeGtk::paintButton):
        (WebCore::RenderThemeGtk::adjustMenuListStyle):
        (WebCore::RenderThemeGtk::paintMenuList):
        (WebCore::RenderThemeGtk::activeListBoxSelectionBackgroundColor):
        (WebCore::RenderThemeGtk::inactiveListBoxSelectionBackgroundColor):
        (WebCore::RenderThemeGtk::activeListBoxSelectionForegroundColor):
        (WebCore::RenderThemeGtk::inactiveListBoxSelectionForegroundColor):
        (WebCore::RenderThemeGtk::gtkTreeView):
        * platform/gtk/RenderThemeGtk.h:

2007-10-25  Eric Seidel  <eric@webkit.org>

        Reviewed by Geoff.

        * bindings/js/kjs_window.h: fix bogus comment, s/DOMNode/DOMObject/

2007-10-24  Eric Seidel  <eric@webkit.org>

        Reviewed by Maciej.
        
        Make Window subclass from JSGlobalObject (for a .5% win in Sunspider)
        http://bugs.webkit.org/show_bug.cgi?id=15681

        No test cases necessary, no functional changes.

        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/kjs_binding.cpp:
        (KJS::ScriptInterpreter::ScriptInterpreter):
        * bindings/js/kjs_binding.h:
        * bindings/js/kjs_proxy.cpp:
        (WebCore::KJSProxy::initScriptIfNeeded):
        * bindings/js/kjs_window.cpp:
        (KJS::Window::Window):
        * bindings/js/kjs_window.h:
        * bindings/objc/WebScriptObject.mm:
        (_didExecute):
        * bridge/mac/WebCoreScriptDebugger.mm:

2007-10-24  Adam Roben  <aroben@apple.com>

        Add font database initialization code to WebCore

        Reviewed by Ada.

        * WebCore.vcproj/WebCore.vcproj: Added FontDatabase.{cpp,h}.
        * platform/win/FontDatabase.cpp: Added.
        (WebCore::systemFontsDirectory):
        (WebCore::fontsPlistPath):
        (WebCore::systemHasFontsNewerThanFontsPlist):
        (WebCore::readFontPlist):
        (WebCore::populateFontDatabaseFromPlist):
        (WebCore::populateFontDatabaseFromFileSystem):
        (WebCore::writeFontDatabaseToPlist):
        (WebCore::populateFontDatabase): This is the only function callable
        from outside this file. It populates the font database once, either
        from the fonts plist, or from the filesystem (and then saves a new
        fonts plist).
        * platform/win/FontDatabase.h: Added.

2007-10-24  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Darin Adler.

        Correcting the fix for:
        <rdar://problem/5544856> 
        REGRESSION: After typing 2-byte text, undo only undoes one keystroke at a time
        
        Made removal of the previous composition part of the current Undo step in the 
        case where the new composition is the empty string, too.

        * editing/Editor.cpp:
        (WebCore::Editor::confirmComposition): Call the new TypingCommand::deleteSelection,
        which either has the currently open typing command delete the current selection, or
        opens a new typing command (of type DeleteSelection) if one is not already open.
        (WebCore::Editor::setComposition): Ditto.
        * editing/TypingCommand.cpp:
        (WebCore::TypingCommand::deleteSelection): Added.
        (WebCore::TypingCommand::doApply): Handle DeleteSelection.
        (WebCore::TypingCommand::deleteKeyPressed): Clarified which deleteSelection
        is called.
        (WebCore::TypingCommand::forwardDeleteKeyPressed): Ditto.
        (WebCore::TypingCommand::preservesTypingStyle): Handle DeleteSelection.
        * editing/TypingCommand.h:

2007-10-24  Sam Weinig  <sam@webkit.org>

        Build fix.

        * WebCore.vcproj/WebCore.vcproj:

2007-10-24  Alice Liu  <alice.liu@apple.com>

        Reviewed by Oliver.

        Fix <rdar://5410959>  editing/selection/drag-to-contenteditable-iframe.html fails on Windows
        
        * page/win/EventHandlerWin.cpp:
        (WebCore::EventHandler::passMouseMoveEventToSubframe):
        Some mouse move events are actually drags, which on mac return early from this function.
        Adding the same logic to its Windows equivalent.  

2007-10-24  Brady Eidson  <beidson@apple.com>

        Reviewed by Anders

        <rdar://5554130> DatabaseTracker.o has a global initializer

        Since DatabaseTracker is a singleton, it makes much more sense to keep the database path as a member variable.
        Now constructing the shared DatabaseTracker no longer implicitly opens it - It is only opened when the databases 
        path is set.
        
        * WebCore.vcproj/WebCore.vcproj: Copy WebCore/storage headers for WebKit build
        
        * storage/Database.cpp:
        (WebCore::Database::~Database): Remove bogus assertion
        
        * storage/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::DatabaseTracker): Does nothing now!  Move this code to openTrackerDatabase
        (WebCore::DatabaseTracker::setDatabasePath): Set the member variable, also closing/opening the database if needed
        (WebCore::DatabaseTracker::databasePath):
        (WebCore::DatabaseTracker::openTrackerDatabase): To open and validate the Databases db, moved from the c'tor
        (WebCore::DatabaseTracker::fullPathForDatabase): Return the member variable
        * storage/DatabaseTracker.h:

2007-10-24  David Hyatt  <hyatt@apple.com>

        Don't try to gap fill transformed selections.  Fix the invalidation of selection to use the clip to visible content
        code path so that it works with multi-column layouts and transforms.

        Reviewed by aroben

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::isSelectionRoot):
        (WebCore::RenderBlock::fillSelectionGaps):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::setSelection):

2007-10-24  Eric Seidel  <eric@webkit.org>

        No review, I want to tickle the CIA bot to test changes,
        and took this as an opportunity to clean up some old change logs.

        * ChangeLog-2005-08-23: update email address
        * ChangeLog-2006-12-31: fix spelling mistakes

2007-10-24  Dan Bernstein  <mitz@apple.com>

        Reviewed by Oliver Hunt.

        - add "(anonymous)" to the renderName of anonymous table cells, rows and sections

        * rendering/RenderTableCell.h:
        (WebCore::RenderTableCell::renderName):
        * rendering/RenderTableRow.h:
        (WebCore::RenderTableRow::renderName):
        * rendering/RenderTableSection.h:
        (WebCore::RenderTableSection::renderName):

2007-10-24  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam.

        Bug 15476: DOM tree fully expands some elements when arrowing up
        http://bugs.webkit.org/show_bug.cgi?id=15476

        Add a new expandTreeElementsWhenArrowing option to TreeOutline. This option
        is used only for the sidebar and search results.

        * page/inspector/inspector.js: Opt-in for the sidebar and search results.
        * page/inspector/treeoutline.js: Add expandTreeElementsWhenArrowing and pass
          this option to traverseNextTreeElement and traversePreviousTreeElement.

2007-10-24  Anders Carlsson  <andersca@apple.com>

        Reviewed by Geoff and Mitz.

        <rdar://problem/5493833>
        REGRESSION: ~5MB of image data leaked @ cuteoverload.com (often seen while browsing other sites, too)

        * bindings/js/kjs_binding.cpp:
        (KJS::ScriptInterpreter::markDOMNodesForDocument):
        If an image element that is currently loading an image is not in the document,
        it should still be marked.
        
        * bindings/js/kjs_html.cpp:
        (WebCore::ImageConstructorImp::construct):
        Force the document wrapper to be created.
        
        * html/HTMLImageElement.h:
        (WebCore::HTMLImageElement::haveFiredLoadEvent):
        New method which calls down to the image loader.
        
        * html/HTMLImageLoader.cpp:
        (WebCore::HTMLImageLoader::HTMLImageLoader):
        (WebCore::HTMLImageLoader::~HTMLImageLoader):
        (WebCore::HTMLImageLoader::setLoadingImage):
        (WebCore::HTMLImageLoader::dispatchLoadEvent):
        Remove code that's not needed anymore.
        
        * html/HTMLImageLoader.h:
        (WebCore::HTMLImageLoader::haveFiredLoadEvent):
        Make this public.

2007-10-23  Adam Roben  <aroben@apple.com>

        Move Windows safe file creation code into WebCore from WebPreferences

        Reviewed by Brady.

        * platform/FileSystem.h:
        * platform/win/FileSystemWin.cpp:
        (WebCore::safeCreateFile): Moved here from WebKit/win/WebPreferences.cpp.

2007-10-23  Adam Roben  <aroben@apple.com>

        Add methods to FileSystemWin to get some user profile directories

        These directories are used to hold things like preferences, caches,
        etc.

        Reviewed by Brady.

        * platform/FileSystem.h: Added new method declarations for Windows
        only.
        * platform/win/FileSystemWin.cpp:
        (WebCore::bundleName): Added.
        (WebCore::storageDirectory): Added.
        (WebCore::cachedStorageDirectory): Added.
        (WebCore::localUserSpecificStorageDirectory): Added. Returns the
        directory where WebKit should store any user-specific data that should
        stay local to the current machine (i.e., shouldn't be stored in a
        roaming profile).
        (WebCore::roamingUserSpecificStorageDirectory): Added. Returns the
        directory where WebKit should store any user-specific data that should
        move with the user from machine to machine (i.e., should be stored in
        a roaming profile).

2007-10-24  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        http://bugs.webkit.org/show_bug.cgi?id=15659
        InlineTextBox does not setStrokeStyle() as needed

        GraphicsContextCairo workaround to support a GraphicsContextCG quirk:

        Save and restore the StrokeStyle manually.

        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        (WebCore::GraphicsContext::drawLineForText):

2007-10-24  Julien Chaffraix  <julien.chaffraix@gmail.com>

        Reviewed by Darin.

        Patch for http://bugs.webkit.org/show_bug.cgi?id=15356
        Bug 15356: getResponseHeader and getAllResponseHeaders do not throw exceptions

        - getAllResponseHeaders and getResponseHeader throws INVALID_STATE_ERR exception as specified in the specification

        - Add the check to field-name production in getResponseHeader (call to isValidToken) and returns an empty string if the header is not valid (Opera and IE behaviour)

        - Updated XMLHttpRequest::responseMIMEType() to keep its behaviour

        Tests: http/tests/xmlhttprequest/xmlhttprequest-InvalidStateException-getAllRequestHeaders.html
               http/tests/xmlhttprequest/xmlhttprequest-InvalidStateException-getRequestHeader.html
               http/tests/xmlhttprequest/xmlhttprequest-invalidHeader-getRequestHeader.html

        * bindings/js/JSXMLHttpRequest.cpp:
        (KJS::JSXMLHttpRequestPrototypeFunction::callAsFunction):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::getAllResponseHeaders):
        (WebCore::XMLHttpRequest::getResponseHeader):
        (WebCore::XMLHttpRequest::responseMIMEType):
        * xml/XMLHttpRequest.h:

2007-10-24  Lars Knoll  <lars@trolltech.com>

        Reviewed by Simon.

        implement most of DragData.

        WARNING: NO TEST CASES ADDED OR CHANGED

        * platform/qt/DragDataQt.cpp:
        (WebCore::DragData::containsColor):
        (WebCore::DragData::containsFiles):
        (WebCore::DragData::asFilenames):
        (WebCore::DragData::containsPlainText):
        (WebCore::DragData::asPlainText):
        (WebCore::DragData::asColor):
        (WebCore::DragData::containsCompatibleContent):
        (WebCore::DragData::containsURL):

2007-10-24  Lars Knoll  <lars@trolltech.com>

        Reviewed by Simon.

        remove a stupid notImplemented() warning and implement PasteBoad::clear().

        WARNING: NO TEST CASES ADDED OR CHANGED

        * platform/qt/PasteboardQt.cpp:

2007-10-24  Lars Knoll  <lars@trolltech.com>

        Reviewed by Simon.

        implement Pasteboard::documentFragment(), and fix a mem leak.

        WARNING: NO TEST CASES ADDED OR CHANGED

        * platform/qt/PasteboardQt.cpp:
        (WebCore::Pasteboard::generalPasteboard):
        (WebCore::Pasteboard::documentFragment):

2007-10-24  Lars Knoll  <lars@trolltech.com>

        Reviewed by Simon.

        Simplify the PlatformKeyEvent constructor. No need to have an extra boolean for isKeyUp in there, as the QKeyEvent has the information.

        WARNING: NO TEST CASES ADDED OR CHANGED

        * platform/PlatformKeyboardEvent.h:
        * platform/qt/PlatformKeyboardEventQt.cpp:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):

2007-10-24  Lars Knoll  <lars@trolltech.com>

        Reviewed by Simon.

        use the new QTextBoundaryFinder class in Qt.

        WARNING: NO TEST CASES ADDED OR CHANGED

        * platform/qt/TextBoundaries.cpp:
        (WebCore::findNextWordFromIndex):
        (WebCore::findWordBoundary):
        * platform/qt/TextBreakIteratorQt.cpp:
        (WebCore::wordBreakIterator):
        (WebCore::characterBreakIterator):
        (WebCore::lineBreakIterator):
        (WebCore::sentenceBreakIterator):
        (WebCore::textBreakFirst):
        (WebCore::textBreakNext):
        (WebCore::textBreakPreceding):
        (WebCore::textBreakFollowing):
        (WebCore::textBreakCurrent):
        (WebCore::isTextBreak):

2007-10-24  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - http://bugs.webkit.org/show_bug.cgi?id=15657
          change static hash tables to use powers of two for speed

        * bindings/scripts/CodeGeneratorJS.pm: Updated to generate new format.

2007-10-24  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Lars.

        Make the implementation of pathByAppendingComponent use QDir.

        * platform/qt/FileSystemQt.cpp:

2007-10-24  David Hyatt  <hyatt@apple.com>

        Make repainting work with transforms.

        Reviewed by John Sullivan

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computeAbsoluteRepaintRect):

2007-10-23  Alp Toker  <alp@atoker.com>

        Reviewed by Maciej.

        http://bugs.webkit.org/show_bug.cgi?id=14412
        [GDK] Clipboard support

        Initial clipboard implementation for the GTK+ port.

        * platform/gtk/ClipboardGtk.cpp:
        (WebCore::Editor::newGeneralClipboard):
        * platform/gtk/PasteboardGtk.cpp:
        (WebCore::Pasteboard::generalPasteboard):
        (WebCore::Pasteboard::Pasteboard):
        (WebCore::Pasteboard::~Pasteboard):
        (WebCore::Pasteboard::writeSelection):
        (WebCore::Pasteboard::writeImage):
        (WebCore::Pasteboard::clear):
        (WebCore::Pasteboard::plainText):
        * platform/gtk/TemporaryLinkStubs.cpp:

2007-10-23  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam.

        Fixes the Network panel so that it refreshes as needed.

        * page/inspector/ConsolePanel.js: Call the base class show() and hide() first.
        * page/inspector/NetworkPanel.js: Add refreshNeeded and refreshIfNeeded back. Ditto.

2007-10-23  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Oliver Hunt.

        <rdar://problem/5544856> 
        REGRESSION: After typing 2-byte text, undo only undoes one keystroke at a time
        
        No layout test for now because I'm having trouble getting Undo during a layout
        test to only undo the last Undo step, and I want to write a test that fails
        without the code change.

        * editing/Editor.cpp:
        (WebCore::Editor::confirmComposition): When we replace the previous composition,
        delete it with a sub-command of the command used to insert the new composition,
        instead of with a separate command.  No new code was added because insertText
        already deletes the current selection.
        (WebCore::Editor::setComposition): Ditto.

2007-10-23  Adam Roben  <aroben@apple.com>

        Fix the behavior of pathByAppendingComponent when path is empty

        We now use the Windows Shell API function PathAppendW instead of
        rolling our own broken implementation.

        Reviewed by Anders.

        * platform/win/FileSystemWin.cpp:
        (WebCore::pathByAppendingComponent):

2007-10-23  Adele Peterson  <adele@apple.com>

        Reviewed by Darin.

        Fix for <rdar://problem/5543228> CrashTracer: [USER] 2 crashes in Safari at com.apple.WebCore: WebCore::HTMLInputElement::defaultEventHandler + 872

        Test: fast/forms/textfield-onchange-deletion.html

        * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler):
          Refetch the renderer since arbitrary JS code run during onchange can do anything, including destroying it.

2007-10-23  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Sam Weinig.

        - Made seperate files for the various classes in ResourcePanel.js.
        - Broke up ResourcePanel.js and created seperate panel classes for different resource types.
        - Moved View code down to the Panel base-class.
        - Reduced code duplication in DatabasePanel.js by sub-classing from the new ResourcePanel.

        * page/inspector/DatabasePanel.js:
        * page/inspector/DocumentPanel.js: Added.
        * page/inspector/FontPanel.js: Added.
        * page/inspector/ImagePanel.js: Added.
        * page/inspector/Panel.js: Added.
        * page/inspector/PropertiesSection.js: Added.
        * page/inspector/Resource.js:
        * page/inspector/ResourcePanel.js:
        * page/inspector/SidebarPane.js: Added.
        * page/inspector/SourcePanel.js: Added.
        * page/inspector/inspector.css:
        * page/inspector/inspector.html:
        * page/inspector/inspector.js:

2007-10-23  Anders Carlsson  <andersca@apple.com>

        Correct the version #if check.
        
        * platform/sql/SQLDatabase.cpp:
        (WebCore::SQLDatabase::authorizerFunction):

2007-10-23  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Anders.

        <rdar://5548217>: [NTS] Java 6 update 3 crashes Safari when loading a 
        java page

        It is possible to load Mozilla's Java plugin instead of our own, which
        can lead to a crash. The fix is to prefer plugins in our own Plugins
        directory when searching for a plugin.

        * plugins/win/PluginDatabaseWin.cpp:
        (WebCore::safariPluginsPath): Return the path to our own Plugins
        directory
        (WebCore::PluginDatabaseWin::defaultPluginPaths): Use new method
        safariPluginsPath()
        (WebCore::PluginDatabaseWin::pluginForMIMEType): If the plugin's path is
        our Plugins path, return this plugin. Otherwise, continue scanning the
        list of plugins
        (WebCore::PluginDatabaseWin::pluginForExtension): Same
        * plugins/win/PluginPackageWin.h:
        (WebCore::PluginPackageWin::path): Return this plugin's path

2007-10-23  Jasper Bryant-Greene  <m@ni.ac.nz>

        Reviewed by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=15058
        Precedence fault in KeyEventGdk causes shift, control, alt etc to work incorrectly

        Corrected precendence fault which was causing Shift, Alt, Control and
        Meta to behave incorrectly on GTK.

        Coding style fix by Alp.

        * platform/gtk/KeyEventGtk.cpp:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):

2007-10-23  Sam Weinig  <sam@webkit.org>

        Reviewed by Tim Hatcher.

        Add resizing of the DOM view right sidebar.  This allows us to actually see the values now.

        * page/inspector/ResourcePanel.js:
        * page/inspector/inspector.css:
        * page/inspector/inspector.js:
        * page/inspector/utilities.js:

2007-10-23  David Hyatt  <hyatt@apple.com>

        Get basic hit testing right for transforms.

        Reviewed by ollliej

        * platform/graphics/AffineTransform.cpp:
        (WebCore::AffineTransform::mapPoint):
        * platform/graphics/AffineTransform.h:
        * rendering/InlineBox.cpp:
        (WebCore::InlineBox::nodeAtPoint):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::nodeAtPoint):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayer):
        (WebCore::RenderLayer::hitTest):
        (WebCore::RenderLayer::hitTestLayer):
        * rendering/RenderLayer.h:
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::hitTest):
        * rendering/RenderObject.h:

2007-10-23  Eric Seidel  <eric@webkit.org>

        Reviewed by Mark Rowe.

        Fix leaks seen on TOT from new font-face code.

        * ksvg2/svg/SVGFontFaceElement.cpp:
        (WebCore::SVGFontFaceElement::rebuildFontFace): use a stack allocated CSSProperty instead of mallocing

2007-10-23  Eric Seidel  <eric@webkit.org>

        Build fix only, no review.

        Sacrifice three virgin hours upon the altar of the heathen XCode gods
        and pray that our build troubles are finally over. :(

        * DerivedSources.make: add DOMSVGException.h
        * WebCore.xcodeproj/project.pbxproj: Remove DOMSVG*Interal.h files from "Copy Generated Headers" phase. Why?  Who knows.

2007-10-22  Steve Falkenburg  <sfalken@apple.com>

        Fix build.

        * plugins/win/PluginViewWin.cpp:

2007-10-22  Eric Seidel  <eric@webkit.org>

        Build fix only, no review.

        * WebCore.xcodeproj/project.pbxproj: re-add all DOMSVG headers to copy-files phase to make sure.

2007-10-22  Eric Seidel  <eric@webkit.org>

        Build fix only, no review.

        * WebCore.xcodeproj/project.pbxproj: make sure DOMSVGAnimateElement.h is copied into headers.

2007-10-22  Eric Seidel  <eric@webkit.org>

        Reviewed by Maciej.

        Fix build by properly exposing SVG font-face dom bindings.

        * DerivedSources.make:
        * WebCore.vcproj/WebCore.vcproj: add font-face files to build
        * WebCore.xcodeproj/project.pbxproj: add missing DOM bindings files
        * bindings/js/JSSVGElementWrapperFactory.cpp:
        * bindings/objc/DOM.mm:
        (WebCore::createElementClassMap):
        * bindings/objc/DOMSVG.h:
        * ksvg2/svg/SVGDefinitionSrcElement.idl: inherit from SVGElement

2007-10-22  Mark Rowe  <mrowe@apple.com>

        Gtk build fix.

        * WebCore.pro:

2007-10-22  Darin Adler  <darin@apple.com>

        - a first cut at fixing the Qt and GTK builds

        * WebCore.pro: Add new .idl and .cpp files.
        * DerivedSources.make: Re-sorted.

2007-10-22  Eric Seidel  <eric@webkit.org>

        Reviewed by hyatt.

        Implement <font-face> and friends for SVG.
        http://bugs.webkit.org/show_bug.cgi?id=10652

        * DerivedSources.make:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSSVGElementWrapperFactory.cpp:
        * dom/Document.cpp:
        (WebCore::Document::mappedElementSheet):
        (WebCore::Document::recalcStyleSelector):
        * dom/Document.h:
        * ksvg2/scripts/make_names.pl:
        * ksvg2/svg/SVGDefinitionSrcElement.cpp: Added.
        (WebCore::SVGDefinitionSrcElement::SVGDefinitionSrcElement):
        (WebCore::SVGDefinitionSrcElement::~SVGDefinitionSrcElement):
        (WebCore::SVGDefinitionSrcElement::childrenChanged):
        * ksvg2/svg/SVGDefinitionSrcElement.h: Added.
        * ksvg2/svg/SVGDefinitionSrcElement.idl: Added.
        * ksvg2/svg/SVGFontFaceElement.cpp: Added.
        (WebCore::SVGFontFaceElement::SVGFontFaceElement):
        (WebCore::SVGFontFaceElement::~SVGFontFaceElement):
        (WebCore::cssPropertyIdForName):
        (WebCore::mapAttributeToCSSProperty):
        (WebCore::cssPropertyIdForSVGAttributeName):
        (WebCore::SVGFontFaceElement::parseMappedAttribute):
        (WebCore::SVGFontFaceElement::rebuildFontFace):
        (WebCore::SVGFontFaceElement::childrenChanged):
        * ksvg2/svg/SVGFontFaceElement.h: Added.
        * ksvg2/svg/SVGFontFaceElement.idl: Added.
        * ksvg2/svg/SVGFontFaceFormatElement.cpp: Added.
        (WebCore::SVGFontFaceFormatElement::SVGFontFaceFormatElement):
        (WebCore::SVGFontFaceFormatElement::~SVGFontFaceFormatElement):
        (WebCore::SVGFontFaceFormatElement::childrenChanged):
        * ksvg2/svg/SVGFontFaceFormatElement.h: Added.
        * ksvg2/svg/SVGFontFaceFormatElement.idl: Added.
        * ksvg2/svg/SVGFontFaceNameElement.cpp: Added.
        (WebCore::SVGFontFaceNameElement::SVGFontFaceNameElement):
        (WebCore::SVGFontFaceNameElement::~SVGFontFaceNameElement):
        (WebCore::SVGFontFaceNameElement::srcValue):
        * ksvg2/svg/SVGFontFaceNameElement.h: Added.
        * ksvg2/svg/SVGFontFaceNameElement.idl: Added.
        * ksvg2/svg/SVGFontFaceSrcElement.cpp: Added.
        (WebCore::SVGFontFaceSrcElement::SVGFontFaceSrcElement):
        (WebCore::SVGFontFaceSrcElement::~SVGFontFaceSrcElement):
        (WebCore::SVGFontFaceSrcElement::srcValue):
        (WebCore::SVGFontFaceSrcElement::childrenChanged):
        * ksvg2/svg/SVGFontFaceSrcElement.h: Added.
        * ksvg2/svg/SVGFontFaceSrcElement.idl: Added.
        * ksvg2/svg/SVGFontFaceUriElement.cpp: Added.
        (WebCore::SVGFontFaceUriElement::SVGFontFaceUriElement):
        (WebCore::SVGFontFaceUriElement::~SVGFontFaceUriElement):
        (WebCore::SVGFontFaceUriElement::srcValue):
        (WebCore::SVGFontFaceUriElement::childrenChanged):
        * ksvg2/svg/SVGFontFaceUriElement.h: Added.
        * ksvg2/svg/SVGFontFaceUriElement.idl: Added.
        * ksvg2/svg/svgtags.in:

2007-10-22  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Anders.

        <rdar://5548217>: [NTS] Java 6 update 3 crashes Safari when loading a 
        java page

        We purposefully do not destroy our Java VM when its reference count
        reaches 0, but we were unloading our JavaPlugin.dll when its reference
        count reached 0, which lost the reference to the VM. This led to our
        process trying to create a new VM the next time a page using Java was
        loaded, and the JNI spec states that a single process is not allowed to
        create more than one VM. The fix is to avoid unloading the Java plugin
        via our PluginQuirkDontUnloadPlugin. 

        * plugins/win/PluginViewWin.cpp:
        (WebCore::PluginViewWin::determineQuirks):

2007-10-22  David Hyatt  <hyatt@apple.com>

        Fix for bug 15624, make transforms work properly with opacity.

        Make sure a unitless 0 is allowed as an angle argument to rotation/skew.

        Reviewed by Mitz Pettel

        fast/transforms/transforms-with-opacity.html
        fast/transforms/skew-with-unitless-zero.html

        * css/CSSParser.cpp:
        (WebCore::CSSParser::validUnit):
        * rendering/RenderLayer.cpp:
        (WebCore::transparencyClipBox):
        (WebCore::RenderLayer::beginTransparencyLayers):
        (WebCore::RenderLayer::paintLayer):
        (WebCore::RenderLayer::calculateClipRects):
        * rendering/RenderLayer.h:
        (WebCore::RenderLayer::transform):

2007-10-22  Adam Roben  <aroben@apple.com>

        Windows build fix

        Reviewed by NOBODY.

        * WebCore.vcproj/WebCore.vcproj: Copy header files from platform/sql.
        * page/Page.cpp: Touched to force the header files to be copied.

2007-10-22  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Simon.

        Move textPath related SVGChar data in it's own structure SVGCharOnPath.
        Store a pointer to that datastructure inside SVGChar, instead of 4 floats & one bool.

        Saves space for the common case. And allows me to add more data (another float) to support
        glyph-orientation-* on textPath later on...

        * rendering/SVGCharacterLayoutInfo.cpp:
        (WebCore::SVGChar::characterTransform):
        * rendering/SVGCharacterLayoutInfo.h:
        * rendering/SVGRootInlineBox.cpp:
        (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
        (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):

2007-10-22  Alp Toker  <alp@atoker.com>

        Reviewed by Nikolas Zimmermann.

        Implement more GraphicsContextCairo stubs.

        Remove a hack "to work around no current point bug" that was breaking
        canvas tests.

        Fix warnings.

        * platform/graphics/cairo/CairoPath.h:
        (WebCore::CairoPath::CairoPath):
        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        (WebCore::GraphicsContext::addInnerRoundedRectClip):
        (WebCore::GraphicsContext::strokeRect):
        * platform/graphics/cairo/PathCairo.cpp:
        (WebCore::Path::isEmpty):
        * platform/graphics/svg/cairo/SVGPaintServerGradientCairo.cpp:
        (WebCore::SVGPaintServerGradient::setup):
        * platform/graphics/svg/cairo/SVGPaintServerSolidCairo.cpp:
        (WebCore::SVGPaintServerSolid::setup):

2007-10-22  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Nikolas.

        Fix compilation from a clean build with the database feature disabled.
        JSCustomVersionChangeCallback.cpp doesn't actually need the SQL header file, just ScriptInterpreter.

        * bindings/js/JSCustomVersionChangeCallback.cpp:
        * page/InspectorController.cpp:

2007-10-22  Andrew Wellington  <proton@wiretapped.net>

        Reviewed by Mark Rowe.

        Fix for local database support after r26879
        Ensure that ENABLE_DATABASE and ENABLE_ICONDATABASE are correctly set

        * Configurations/WebCore.xcconfig:
        * WebCore.pro:
        * WebCore.vcproj/build-generated-files.sh:

2007-10-22  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Lars.

        Disable the Database feature for the qmake build for now.

        * WebCore.pro:

2007-10-22  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Lars.

        Make disabling the database feature (ENABLE_DATABASE=0) work by
        placing various #ifdefs into the code and making the compilation of
        some files optional.

        * WebCore.pro:
        * dom/Document.cpp:
        (WebCore::Document::~Document):
        (WebCore::Document::defaultEventHandler):
        * dom/Document.h:
        * page/DOMWindow.cpp:
        * page/DOMWindow.h:
        * page/DOMWindow.idl:
        * page/InspectorController.cpp:
        (WebCore::InspectorController::windowScriptObjectAvailable):
        (WebCore::InspectorController::populateScriptResources):
        (WebCore::InspectorController::clearDatabaseScriptResources):
        (WebCore::InspectorController::didCommitLoad):
        * page/InspectorController.h:

2007-10-22  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        http://bugs.webkit.org/show_bug.cgi?id=15611
        [GTK] Text selection behaviour different in Debug and Release builds

        http://bugs.webkit.org/show_bug.cgi?id=15578
        [GTK] Text editor caret does not blink

        Never allow control to reach the end of non-void functions.

        Return more sensible values, or in some cases, nulls.

        * page/gtk/EventHandlerGtk.cpp:
        (WebCore::isKeyboardOptionTab):
        (WebCore::EventHandler::tabsToAllControls):
        (WebCore::EventHandler::eventActivatedView):

2007-10-22  Holger Freyther  <zecke@selfish.org>

        Reviewed by Simon Hausmann <hausmann@kde.org>.

        Implement ResourceHandle::loadResourceSynchronously using ResourceHandle and a special ResourceHandleClient. This approach has the possible danger of reentrancy.

        * platform/network/qt/ResourceHandleQt.cpp:
        (WebCore::WebCoreSynchronousLoader::resourceResponse):
        (WebCore::WebCoreSynchronousLoader::resourceError):
        (WebCore::WebCoreSynchronousLoader::data):
        (WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader):
        (WebCore::WebCoreSynchronousLoader::didReceiveResponse):
        (WebCore::WebCoreSynchronousLoader::didReceiveData):
        (WebCore::WebCoreSynchronousLoader::didFinishLoading):
        (WebCore::WebCoreSynchronousLoader::didFail):
        (WebCore::WebCoreSynchronousLoader::waitForCompletion):
        (WebCore::ResourceHandle::loadResourceSynchronously):

2007-10-22  Holger Hans Peter Freyther <zecke@selfish.org>

        Reviewed by Lars Knoll <lars@trolltech.com>.

        Style fix. It is allowed to attempt to delete 0.

        * platform/qt/ClipboardQt.cpp:

2007-10-22  Holger Hans Peter Freyther <zecke@selfish.org>

        Reviewed by Lars Knoll <lars@trolltech.com>.

        Make it actually localizable....

        * platform/qt/Localizations.cpp:
        (WebCore::submitButtonDefaultLabel):
        (WebCore::inputElementAltText):
        (WebCore::searchableIndexIntroduction):
        (WebCore::fileButtonChooseFileLabel):
        (WebCore::fileButtonNoFileSelectedLabel):
        (WebCore::contextMenuItemTagOpenLinkInNewWindow):
        (WebCore::contextMenuItemTagDownloadLinkToDisk):
        (WebCore::contextMenuItemTagCopyLinkToClipboard):
        (WebCore::contextMenuItemTagOpenImageInNewWindow):
        (WebCore::contextMenuItemTagDownloadImageToDisk):
        (WebCore::contextMenuItemTagCopyImageToClipboard):
        (WebCore::contextMenuItemTagOpenFrameInNewWindow):
        (WebCore::contextMenuItemTagCopy):
        (WebCore::contextMenuItemTagGoBack):
        (WebCore::contextMenuItemTagGoForward):
        (WebCore::contextMenuItemTagStop):
        (WebCore::contextMenuItemTagReload):
        (WebCore::contextMenuItemTagCut):
        (WebCore::contextMenuItemTagPaste):
        (WebCore::contextMenuItemTagNoGuessesFound):
        (WebCore::contextMenuItemTagIgnoreSpelling):
        (WebCore::contextMenuItemTagLearnSpelling):
        (WebCore::contextMenuItemTagSearchWeb):
        (WebCore::contextMenuItemTagLookUpInDictionary):
        (WebCore::contextMenuItemTagOpenLink):
        (WebCore::contextMenuItemTagIgnoreGrammar):
        (WebCore::contextMenuItemTagSpellingMenu):
        (WebCore::contextMenuItemTagShowSpellingPanel):
        (WebCore::contextMenuItemTagCheckSpelling):
        (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
        (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
        (WebCore::contextMenuItemTagFontMenu):
        (WebCore::contextMenuItemTagBold):
        (WebCore::contextMenuItemTagItalic):
        (WebCore::contextMenuItemTagUnderline):
        (WebCore::contextMenuItemTagOutline):
        (WebCore::contextMenuItemTagWritingDirectionMenu):
        (WebCore::contextMenuItemTagDefaultDirection):
        (WebCore::contextMenuItemTagLeftToRight):
        (WebCore::contextMenuItemTagRightToLeft):
        (WebCore::contextMenuItemTagInspectElement):
        (WebCore::searchMenuNoRecentSearchesText):
        (WebCore::searchMenuRecentSearchesText):

2007-10-22  Holger Hans Peter Freyther <zecke@selfish.org>

        Reviewed by Lars Knoll <lars@trolltech.com>.

        Adjust the code to obey the Coding Style.

        * platform/qt/Localizations.cpp:
        (WebCore::submitButtonDefaultLabel):
        (WebCore::inputElementAltText):
        (WebCore::resetButtonDefaultLabel):
        (WebCore::defaultLanguage):
        (WebCore::searchableIndexIntroduction):
        (WebCore::fileButtonChooseFileLabel):
        (WebCore::fileButtonNoFileSelectedLabel):
        (WebCore::contextMenuItemTagOpenLinkInNewWindow):
        (WebCore::contextMenuItemTagDownloadLinkToDisk):
        (WebCore::contextMenuItemTagCopyLinkToClipboard):
        (WebCore::contextMenuItemTagOpenImageInNewWindow):
        (WebCore::contextMenuItemTagDownloadImageToDisk):
        (WebCore::contextMenuItemTagCopyImageToClipboard):
        (WebCore::contextMenuItemTagOpenFrameInNewWindow):
        (WebCore::contextMenuItemTagCopy):
        (WebCore::contextMenuItemTagGoBack):
        (WebCore::contextMenuItemTagGoForward):
        (WebCore::contextMenuItemTagStop):
        (WebCore::contextMenuItemTagReload):
        (WebCore::contextMenuItemTagCut):
        (WebCore::contextMenuItemTagPaste):
        (WebCore::contextMenuItemTagNoGuessesFound):
        (WebCore::contextMenuItemTagIgnoreSpelling):
        (WebCore::contextMenuItemTagLearnSpelling):
        (WebCore::contextMenuItemTagSearchWeb):
        (WebCore::contextMenuItemTagLookUpInDictionary):
        (WebCore::contextMenuItemTagOpenLink):
        (WebCore::contextMenuItemTagIgnoreGrammar):
        (WebCore::contextMenuItemTagSpellingMenu):
        (WebCore::contextMenuItemTagShowSpellingPanel):
        (WebCore::contextMenuItemTagCheckSpelling):
        (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
        (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
        (WebCore::contextMenuItemTagFontMenu):
        (WebCore::contextMenuItemTagBold):
        (WebCore::contextMenuItemTagItalic):
        (WebCore::contextMenuItemTagUnderline):
        (WebCore::contextMenuItemTagOutline):
        (WebCore::contextMenuItemTagWritingDirectionMenu):
        (WebCore::contextMenuItemTagDefaultDirection):
        (WebCore::contextMenuItemTagLeftToRight):
        (WebCore::contextMenuItemTagRightToLeft):
        (WebCore::contextMenuItemTagInspectElement):
        (WebCore::searchMenuNoRecentSearchesText):
        (WebCore::searchMenuRecentSearchesText):
        (WebCore::searchMenuClearRecentSearchesText):
        (WebCore::AXWebAreaText):
        (WebCore::AXLinkText):
        (WebCore::AXListMarkerText):
        (WebCore::AXImageMapText):
        (WebCore::AXHeadingText):
        (WebCore::unknownFileSizeText):

2007-10-22 Holger Hans Peter Freyther <zecke@selfish.org>

        Reviewed by Lars Knoll <lars@trolltech.com>.

        Return a non empty string in more functions.

        * platform/qt/Localizations.cpp:
        (WebCore::contextMenuItemTagShowSpellingPanel):

2007-10-22  Holger Hans Peter Freyther <zecke@selfish.org>

        Reviewed by Lars Knoll <lars@trolltech.com>.

        Shrink the TemporaryLinkStubs and move the
        Frame::setNeedsReapplyStyles stub to FrameQt.cpp

        * page/qt/FrameQt.cpp:
        (WebCore::Frame::setNeedsReapplyStyles):
        * platform/qt/TemporaryLinkStubs.cpp:

2007-10-22  Holger Freyther  <zecke@selfish.org>

        Reviewed by Lars Knoll <lars@trolltech.com>.

        Implement the WebCore::fileSize function. The
        implementation assumes that QFileInfo will cache
        the result of the stat so that info.size() and
        info.exists() use the same stat result.

        * platform/qt/FileSystemQt.cpp:
        (WebCore::deleteFile):
        * platform/qt/TemporaryLinkStubs.cpp:

2007-10-21  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        Use the portable GLib time function.

        Use event timestamps rather than the current time where available.

        Rename SharedTimerLinux.cpp since it isn't Linux-specific.

        * WebCore.pro:
        * platform/gtk/MouseEventGtk.cpp:
        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
        * platform/gtk/SystemTimeGtk.cpp: Added.
        (WebCore::currentTime):
        * platform/gtk/SharedTimerGtk.cpp: Copied from platform/gtk/SharedTimerLinux.cpp.
        * platform/gtk/SharedTimerLinux.cpp: Removed.

2007-10-22  David Hyatt  <hyatt@apple.com>

        Fix for 15596, regression from my transform changes.  Preserve null checks on the clip rects calls for parent(),
        since the method is called on orphaned layers.  This is not very well understood.

        Reviewed by eric

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::calculateClipRects):
        (WebCore::RenderLayer::calculateRects):

2007-10-21  Mark Rowe  <mrowe@apple.com>

        Reviewed by Alp.

        http://bugs.webkit.org/show_bug.cgi?id=15575
        Bug 15575: [GTK] Implement threading using GThread

        * WebCore.pro: Remove ThreadingPthreads.cpp from the Gtk build and link against libgthreads.
        * loader/icon/IconDatabase.cpp: Initialize threading before the mutex is created to be compatible with gthreads.
        (WebCore::iconDatabase):
        (WebCore::IconDatabase::open):
        * platform/Threading.h:
        * platform/gtk/ThreadingGtk.cpp: Threading implementation in terms of GThread, based heavily on the pthreads implementation.
        (WebCore::initializeThreading):
        (WebCore::threadMapMutex):
        (WebCore::threadMap):
        (WebCore::establishIdentifierForThread):
        (WebCore::threadForIdentifier):
        (WebCore::clearThreadForIdentifier):
        (WebCore::createThread):
        (WebCore::waitForThreadCompletion):
        (WebCore::detachThread):
        (WebCore::Mutex::Mutex):
        (WebCore::Mutex::~Mutex):
        (WebCore::Mutex::lock):
        (WebCore::Mutex::tryLock):
        (WebCore::Mutex::unlock):
        (WebCore::ThreadCondition::ThreadCondition):
        (WebCore::ThreadCondition::~ThreadCondition):
        (WebCore::ThreadCondition::wait):
        (WebCore::ThreadCondition::signal):
        (WebCore::ThreadCondition::broadcast):
        * storage/Database.cpp:
        (WebCore::Database::Database): Initialize threading when Database is used so that it will be initialized even
        if the icon database is compiled out

2007-10-21  Mark Rowe  <mrowe@apple.com>

        Build fix.

        * ksvg2/css/SVGCSSStyleSelector.cpp: Use fabsf when dealing with a float to prevent the
        implicit conversion warning.

2007-10-21  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        Implement spelling and grammar mistake underlining with Pango/Cairo.

        This change does not add any actual support for spelling or grammar
        checking to any port.

        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):

2007-10-21  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        Cairo canvas fixes:

        Fix a refcounting issue leading to leaks and crashes on canvas
        content.

        Delegate memory management of canvas images to Cairo.

        Mark unhandled conditions with notImplemented() instead of silently
        ignoring them.

        * html/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::drawImage):
        * html/CanvasStyle.cpp:
        (WebCore::CanvasStyle::applyStrokeColor):
        * html/CanvasStyle.h:
        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::HTMLCanvasElement):
        (WebCore::HTMLCanvasElement::~HTMLCanvasElement):
        (WebCore::HTMLCanvasElement::reset):
        (WebCore::HTMLCanvasElement::paint):
        (WebCore::HTMLCanvasElement::createDrawingContext):
        (WebCore::HTMLCanvasElement::createPlatformImage):

2007-10-21  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Eric.

        Handle glyph-orientation-vertical / glyph-orientation-horizontal SVG CSS properties.

        The SVG layouting code itself doesn't handle these properties yet,
        it's just about recognizing them in the SVG CSS engine.

        * ksvg2/css/SVGCSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
        * ksvg2/css/SVGCSSParser.cpp:
        (WebCore::CSSParser::parseSVGValue):
        * ksvg2/css/SVGCSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applySVGProperty):
        * ksvg2/css/SVGRenderStyle.h:
        (WebCore::SVGRenderStyle::InheritedFlags::operator==):
        (WebCore::SVGRenderStyle::InheritedFlags::operator!=):
        (WebCore::SVGRenderStyle::setBitDefaults):
        * ksvg2/css/SVGRenderStyleDefs.h:

2007-10-21  Christian Dywan  <christian@twotoasts.de>

        Reviewed by Alp.

        http://bugs.webkit.org/show_bug.cgi?id=15589
        Use glib's path separator on gtk

        * platform/gtk/FileSystemGtk.cpp:
        (WebCore::pathByAppendingComponent):

2007-10-21  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15259
          <rdar://problem/5499902> REGRESSION: Text overflows when using word spacing and centering (affects myspace.com music videos page)

        Test: fast/text/word-space.html

        * rendering/RenderBlock.cpp:
        (WebCore::stripTrailingSpace): Added word-spacing to the width of the
        space being stripped out.
        * rendering/RenderText.cpp:
        (WebCore::RenderText::trimmedPrefWidths): Changed handling of
        leading space. Since Font::width includes leading space width but not
        leading word spacing, this method needs to either remove the width of a
        space character or add word spacing,
        depending on stripFrontSpaces. 
        (WebCore::RenderText::calcPrefWidths): Corrected the check for adding
        trailing word spacing so that it would work in the case where the last
        space is ignored.
        * rendering/bidi.cpp:
        (WebCore::RenderBlock::computeHorizontalPositionsForLine): Changed to
        actually add word spacing to the total width.

2007-10-20  David Hyatt  <hyatt@apple.com>

        Land support for the transform CSS property.  Basic painting now works properly. There are many open issues
        that will have to be covered by individual bugs.

        Reviewed by olliej

        * css/CSSParser.cpp:
        (WebCore::CSSParser::validUnit):
        (WebCore::CSSParser::parseTransform):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::RenderLayer):
        (WebCore::RenderLayer::~RenderLayer):
        (WebCore::RenderLayer::updateLayerPositions):
        (WebCore::RenderLayer::updateTransform):
        (WebCore::transparencyClipBox):
        (WebCore::RenderLayer::beginTransparencyLayers):
        (WebCore::RenderLayer::paintLayer):
        (WebCore::RenderLayer::calculateClipRects):
        (WebCore::RenderLayer::calculateRects):
        (WebCore::RenderLayer::childrenClipRect):
        (WebCore::RenderLayer::selfClipRect):
        (WebCore::RenderLayer::intersectsDamageRect):
        (WebCore::RenderLayer::boundingBox):
        * rendering/RenderLayer.h:
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::containingBlock):
        (WebCore::RenderObject::container):
        * rendering/RenderStyle.cpp:
        (WebCore::RenderStyle::applyTransform):
        * rendering/RenderStyle.h:
        (WebCore::TransformOperation::isScaleOperation):
        (WebCore::TransformOperation::isRotateOperation):
        (WebCore::TransformOperation::isSkewOperation):
        (WebCore::TransformOperation::isTranslateOperation):
        (WebCore::TransformOperation::isMatrixOperation):
        (WebCore::ScaleTransformOperation::isScaleOperation):
        (WebCore::RotateTransformOperation::isRotateOperation):
        (WebCore::SkewTransformOperation::isSkewOperation):
        (WebCore::TranslateTransformOperation::isTranslateOperation):
        (WebCore::MatrixTransformOperation::isMatrixOperation):
        * rendering/RenderTableRow.h:
        (WebCore::RenderTableRow::requiresLayer):
        * rendering/RenderTreeAsText.cpp:
        (WebCore::writeLayers):

2007-10-20  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam.

        Add basic @font-face to the Web Inspector.

        * page/InspectorController.cpp:
        (WebCore::InspectorResource::type): Check for CachedResource::FontResource.
        * page/inspector/Resource.js: Add support for Font types and font preview in the icon.
        * page/inspector/ResourcePanel.js: Show a font preview for font resources.
        * page/inspector/inspector.css: Style for the font preview and font icon.
        * page/inspector/inspector.js: Add font mime types.

2007-10-20  Sam Weinig  <sam@webkit.org>

        Reviewed by Mark Rowe.

        Fixes:
            - http://bugs.webkit.org/show_bug.cgi?id=14393
              Column on the left side of the Web Inspector should have a smaller minimum width for resizing
            - http://bugs.webkit.org/show_bug.cgi?id=14394
              Left pane of the Web Inspector "shakes" when resizing it to maximum width

        * page/inspector/inspector.js: Change the constraint logic to only enforce a 100px min-width
          and window.innerWidth - 100 max-width for the sidebar.  The change also makes the viewbuttons
          move with the sidebar.

2007-10-20  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15208
          display:table causes the collapsed text to show at a different position when expanded

        Test: fast/table/insert-before-anonymous-ancestors.html

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::addChild): Rolled out r11579. I think whatever
        that change was supposed to accomplish has since been done in other
        places in the code.

2007-10-20  Mark Rowe  <mrowe@apple.com>

        Reviewed by Dave Hyatt.

        Fix http://bugs.webkit.org/show_bug.cgi?id=15584
        Bug 15584: REGRESSION(r26696): GtkLauncher segfaults on WebCore::WidthIterator::advance

        * platform/Font.cpp:
        (WebCore::Font::glyphDataForCharacter): If the fallback page exists but does not have a
        glyph for the character, fall back to the missing glyph data rather than returning an
        invalid GlyphData.

2007-10-20  Jasper Bryant-Greene  <m@ni.ac.nz>

        Reviewed by Maciej.

        Changed the hard-coded scroll delta in WheelEventGtk from 120 to 0.25,
        as suggested by George Wright in #15108 (which this patch will
        resolve).

        This gives a more sane scrolling behaviour, rather than the
        jumping to the end or start of the document as occurred previously.

        * platform/gtk/WheelEventGtk.cpp:
        (WebCore::PlatformWheelEvent::PlatformWheelEvent):

2007-10-20  Alp Toker  <alp@atoker.com>

        Reviewed by Eric.

        Support text boundary detection.
        Move TextBoundariesWin.cpp to platform/ since it's portable and useful.
        Split out and implement some TemporaryLinkStubs.

        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * platform/TextBoundariesICU.cpp: Copied from WebCore/platform/win/TextBoundariesWin.cpp.
        * platform/gtk/Language.cpp: Added.
        (WebCore::defaultLanguage):
        * platform/gtk/TemporaryLinkStubs.cpp:
        * platform/gtk/TextBreakIteratorInternalICUGtk.cpp: Added.
        (WebCore::currentTextBreakLocaleID):
        * platform/win/TextBoundariesWin.cpp: Removed.

2007-10-20  Mark Rowe  <mrowe@apple.com>

        Reviewed by Tim Hatcher.

        Workaround for http://bugs.webkit.org/show_bug.cgi?id=15574
        Bug 15574: Web Inspector doesn't work with the new Database feature

        The executeSql callback is executed in the security domain of the web page that owns the database,
        while the inspector's window object is in the callback functions scope chain.  This is leading to a
        security violation when the callback attempts to access "document".  We can work around this by
        ensuring that "document" can be found in the scope chain before the window object.

        * page/inspector/DatabasePanel.js:

2007-10-20  Darin Adler  <darin@apple.com>

        Reviewed by Maciej.

        - http://bugs.webkit.org/show_bug.cgi?id=15567
          speed up hashing const char* by removing call to strlen

        This includes one other fix as well. Both were from a day where I did some
        profiling to find hot spots when running the page load test.

        * platform/StringImpl.cpp:
        (WebCore::StringImpl::computeHash): Compute the hash without calling strlen.
        Also change the argument names to not confusingly use m_ prefixes.
        (WebCore::StringImpl::createStrippingNull): Added a faster case for strings that
        don't have null.

2007-10-20  Mark Rowe  <mrowe@apple.com>

        Reviewed by Alp.

        Gtk changes needed to enable HTML 5 client-side database storage.

        * WebCore.pro: Have Gtk use ThreadingPthreads.cpp.
        * platform/pthreads/ThreadingPthreads.cpp: Include errno so that EDEADLK and EBUSY are available.

2007-10-20  Mark Rowe  <mrowe@apple.com>

        Reviewed by Alp.

        Implement callOnMainThread for Gtk+ via a one-shot zero-delay timer that will be dispatched
        from the main event loop.

        * WebCore.pro:
        * platform/gtk/TemporaryLinkStubs.cpp:
        * platform/gtk/ThreadingGtk.cpp: Added.
        (WebCore::callFunctionOnMainThread):
        (WebCore::callOnMainThread):

2007-10-20  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Eric.

        Fix non-functional display="inline" / display="none" for SVG text.

        Fixes: svg/W3C-SVG-1.1/animate-elem-39-t.svg (display="inline" support)
        Fixes: svg/batik/text/textProperties2.svg (display="inline/none" support)
        Fixes: svg/carto.net/tabgroup.svg (display="none" support, stray content before layouting)
        
        * css/svg.css: Remove "important" flag on text/foreignObject display: block property
        * rendering/RenderSVGBlock.cpp:
        (WebCore::RenderSVGBlock::setStyle):

2007-10-20  Mark Rowe  <mrowe@apple.com>

        Reviewed by Alp.

        Replace #ifdef'd code with the appropriate use of a forwarding header.

        * ForwardingHeaders/kjs/array_instance.h: Added.
        * bindings/js/JSDatabaseCustom.cpp:

2007-10-20  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Oliver.

        Add support for 'kerning' property in SVG text layout code.
        Support all textLength/lengthAdjust modes on normal text & textPaths.

        Support letter & word spacing on textPath.
        Fix text selection when any spacing (letter/word/kerning) is involved.

        Fixes: http://bugs.webkit.org/show_bug.cgi?id=15571
        Fixes: svg/batik/text/textOnPathSpaces.svg (spacing)
               svg/batik/text/textLayout.svg (kerning support)
               svg/text/text-spacing-01-b.svg (text selection)

        * platform/Font.cpp:
        (WebCore::WidthIterator::advance):
        * platform/TextStyle.h:
        (WebCore::TextStyle::TextStyle):
        (WebCore::TextStyle::spacingDisabled):
        (WebCore::TextStyle::disableSpacing):
        * rendering/SVGCharacterLayoutInfo.cpp:
        (WebCore::SVGCharacterLayoutInfo::SVGCharacterLayoutInfo):
        (WebCore::SVGCharacterLayoutInfo::nextPathLayoutPointAndAngle):
        (WebCore::SVGCharacterLayoutInfo::setInPathLayout):
        (WebCore::SVGCharacterLayoutInfo::addLayoutInformation):
        (WebCore::SVGChar::characterTransform):
        * rendering/SVGCharacterLayoutInfo.h:
        (WebCore::SVGTextChunkLayoutInfo::SVGTextChunkLayoutInfo):
        * rendering/SVGRootInlineBox.cpp:
        (WebCore::closeTextChunk):
        (WebCore::calculateKerning):
        (WebCore::SVGRootInlineBox::placeBoxesHorizontally):
        (WebCore::svgTextStyleForInlineTextBox):
        (WebCore::calculateTextAnchorShiftForTextChunk):
        (WebCore::applyTextAnchorToTextChunk):
        (WebCore::calculateTextLengthCorrectionForTextChunk):
        (WebCore::applyTextLengthCorrectionToTextChunk):
        (WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation):
        (WebCore::SVGRootInlineBox::buildLayoutInformation):
        (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
        (WebCore::SVGRootInlineBox::buildTextChunks):
        (WebCore::SVGRootInlineBox::layoutTextChunks):
        * rendering/SVGRootInlineBox.h:

2007-10-20  Rodney Dawes  <dobey@wayofthemonkey.com>

        Reviewd by Darin.

        http://bugs.webkit.org/show_bug.cgi?id=15563
        Fix conflict with X11 Window type in WebCore

        * WebCore/bindings/js/JSDocumentCustom.cpp:
        * WebCore/bindings/js/JSHTMLDocumentCustom.cpp:
        * WebCore/bindings/js/JSHTMLFrameSetElementCustom.cpp:
        * WebCore/bindings/js/kjs_dom.cpp:
        * WebCore/bindings/js/kjs_events.cpp:
        * WebCore/bindings/js/kjs_proxy.cpp:
        * WebCore/history/CachedPage.cpp:
        * WebCore/page/Chrome.cpp:
        * WebCore/page/Frame.cpp:

2007-10-20  Simon Hausmann  <hausmann@kde.org>

        Build fix, not reviewed.

        Fix the Qt build by adding the two missing FileSystem functions.

        * platform/qt/FileSystemQt.cpp:
        (WebCore::makeAllDirectories):
        (WebCore::pathByAppendingComponent):

2007-10-19  Alp Toker  <alp@atoker.com>

        Reviewed by Oliver.

        GTK+ build fix enabling the new local database storage feature.
        There is also a prospective Qt build fix.

        * WebCore.pro:
        * bindings/js/JSDatabaseCustom.cpp:
        * platform/gtk/FileSystemGtk.cpp:
        (WebCore::pathByAppendingComponent):
        (WebCore::makeAllDirectories):

2007-10-19  Andrew Wellington  <proton@wiretapped.net>

        Reviewed by Brady Eidson.

        Mac build fix.

        * WebCore.xcodeproj/project.pbxproj:

2007-10-19  Alp Toker  <alp@atoker.com>

        Reviewed by Oliver.

        Use platform colors for text selection.
        Update the cache when the GTK style is changed.

        * platform/gtk/RenderThemeGtk.cpp:
        (WebCore::RenderThemeGtk::platformActiveSelectionBackgroundColor):
        (WebCore::RenderThemeGtk::platformInactiveSelectionBackgroundColor):
        (WebCore::RenderThemeGtk::platformActiveSelectionForegroundColor):
        (WebCore::RenderThemeGtk::platformInactiveSelectionForegroundColor):
        (WebCore::RenderThemeGtk::gtkStyleSet):
        (WebCore::RenderThemeGtk::gtkEntry):
        * platform/gtk/RenderThemeGtk.h:

2007-10-19  Adele Peterson  <adele@apple.com>

        Reviewed by Beth.

        Fix for: <rdar://problem/5518461> REGRESSION (2.0.4-3): Popup arrows are missing in small popups at homedepot.com

        Test: fast/forms/menulist-no-overflow.html

        * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::setStyle): Don't allow overflow on menu lists.

2007-10-19  Anders Carlsson  <andersca@apple.com>

        Reviewed by Brady.

        Move some SQL-related classes to platform/sql.
        
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * loader/icon/SQLDatabase.cpp: Removed.
        * loader/icon/SQLDatabase.h: Removed.
        * loader/icon/SQLStatement.cpp: Removed.
        * loader/icon/SQLStatement.h: Removed.
        * loader/icon/SQLTransaction.cpp: Removed.
        * loader/icon/SQLTransaction.h: Removed.
        * platform/sql/SQLDatabase.cpp: Copied from loader/icon/SQLDatabase.cpp.
        * platform/sql/SQLDatabase.h: Copied from loader/icon/SQLDatabase.h.
        * platform/sql/SQLStatement.cpp: Copied from loader/icon/SQLStatement.cpp.
        * platform/sql/SQLStatement.h: Copied from loader/icon/SQLStatement.h.
        * platform/sql/SQLTransaction.cpp: Copied from loader/icon/SQLTransaction.cpp.
        * platform/sql/SQLTransaction.h: Copied from loader/icon/SQLTransaction.h.

2007-10-19  Anders Carlsson  <andersca@apple.com>

        Reviewed by Adam.

        Update to match the latest version of the spec. Now, executeSQL takes an array
        of SQL parameters instead of them being passed as arguments.
        
        * bindings/js/JSDatabaseCustom.cpp:
        (WebCore::JSDatabase::executeSql):
        * page/inspector/DatabasePanel.js:
        * storage/Database.idl:

2007-10-19  Brady Eidson  <beidson@apple.com>

        Reviewed by Tim

        Tiger's SQLite doesn't support CREATE TABLE IF NOT EXISTS :(

        * storage/Database.cpp:
        (WebCore::Database::performOpenAndVerify):
        * storage/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::DatabaseTracker):

2007-10-19  Anders Carlsson  <andersca@apple.com>

        Release build fix.
        
        * WebCore.vcproj/WebCore.vcproj:

2007-10-19  Brady Eidson  <beidson@apple.com>

        Remove stray printfs

        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::~Document):

2007-10-19  Anders Carlsson  <andersca@apple.com>

        Reviewed by Brady.

        Apparently the Win32 pthreads impl we use does not allow unlocking a mutex that has not
        already been locked, so lock the mutex first.
        
        * storage/DatabaseThread.cpp:
        (WebCore::DatabaseThread::databaseThread):

2007-10-19  Brady Eidson  <beidson@apple.com>

        Better build fix

        * loader/icon/SQLDatabase.cpp:
        (WebCore::SQLDatabase::authorizerFunction):  Definite works by 3.3.13

2007-10-19  Brady Eidson  <beidson@apple.com>

        Build fix

        * loader/icon/SQLDatabase.cpp:
        (WebCore::SQLDatabase::authorizerFunction): I don't know *when* these constants were
          added to SQLite, but I know they were by 3.4.0

2007-10-19  Brady Eidson  <beidson@apple.com>
        Reviewed by Anders

        Windows specific changes, as well as renaming Queue -> Deque

        * ForwardingHeaders/wtf/Deque.h: Added.
        * ForwardingHeaders/wtf/Queue.h: Removed.
        * platform/win/FileSystemWin.cpp:
        (WebCore::fileSize):
        (WebCore::fileExists):
        (WebCore::deleteFile):
        (WebCore::pathByAppendingComponent):
        (WebCore::fileSystemRepresentation):
        (WebCore::makeAllDirectories):
        (WebCore::homeDirectoryPath):
        * storage/Database.h:
        * storage/DatabaseThread.cpp:
        (WebCore::DatabaseThread::documentGoingAway):
        (WebCore::DatabaseThread::databaseGoingAway):
        (WebCore::DatabaseThread::dispatchNextTaskIdentifier):
        (WebCore::DatabaseThread::scheduleTask):
        (WebCore::DatabaseThread::scheduleImmediateTask):
        * storage/DatabaseThread.h:

2007-10-19  Brady Eidson <beidson@apple.com>

        Reviewed by Tim and Anders

        Preliminary support for HTML5 local database storage (http://www.whatwg.org/specs/web-apps/current-work/)

        The specification is still in flux but the fundamentals are pretty solid and we can start using and testing 
        this implementation even while filing bugs to track changes in the spec as it becomes more final

        There are some implementation details in this patch that seem unused or useless, but they remain in place 
        while the spec is in flux and might go one way or another.

        * platform/Logging.cpp: Add StorageAPI logging channel
        * platform/Logging.h:

        * storage/Database.cpp: Added.
        (WebCore::Database::databaseInfoTableName):
        (WebCore::databaseVersionKey):
        (WebCore::Database::openDatabase): C++ version of the window.openDatabase() javascript API
        (WebCore::Database::Database):
        (WebCore::Database::~Database):
        (WebCore::Database::openAndVerifyVersion):
        (WebCore::retrieveTextResultFromDatabase):
        (WebCore::Database::getVersionFromDatabase):
        (WebCore::setTextValueInDatabase):
        (WebCore::Database::setVersionInDatabase):
        (WebCore::Database::databaseThreadGoingAway): May be removed in the future
        (WebCore::Database::disableAuthorizer): For internal (WebInspector) use to get around the authorizer's restrictions
        (WebCore::Database::enableAuthorizer):
        (WebCore::Database::guidForOriginAndName): Candidate for refactoring and/or moving to the database tracker.  
          The GUID for each database identifier is currently for tracking the database version, but might be rescoped in the future
        (WebCore::Database::resetAuthorizer):
        (WebCore::Database::performPolicyChecks): Currently, the only post-executeSql policy check planned is the origin size usage 
        (WebCore::Database::scheduleDatabaseCallback):
        (WebCore::Database::performOpenAndVerify): 
        (WebCore::Database::performChangeVersion):
        (WebCore::Database::performExecuteSql):
        (WebCore::Database::performCloseTransaction):
        (WebCore::Database::performGetTableNames):
        (WebCore::Database::version): C++ version of the javascript API
        (WebCore::Database::changeVersion): Ditto
        (WebCore::Database::executeSql): Ditto
        (WebCore::Database::closeTransaction): Ditto
        (WebCore::Database::tableNames): For internal (WebInspector) use
        (WebCore::Database::deliverAllPendingCallbacks):
        (WebCore::Database::deliverPendingCallbacks):
        * storage/Database.h: Added.
        (WebCore::Database::databaseDebugName): For debug logging purposes
        * storage/Database.idl: Added.

        * storage/DatabaseAuthorizer.cpp: Added.
          The DatabaseAuthorizer is used to both prevent the script from doing "illegal" things in sql as well as
          tracking when effects certain sql statements might have (such as increasing the size of the database)
        (WebCore::DatabaseAuthorizer::DatabaseAuthorizer):
        (WebCore::DatabaseAuthorizer::reset):
        (WebCore::DatabaseAuthorizer::createTable):
        (WebCore::DatabaseAuthorizer::createTempTable):
        (WebCore::DatabaseAuthorizer::dropTable):
        (WebCore::DatabaseAuthorizer::dropTempTable):
        (WebCore::DatabaseAuthorizer::allowAlterTable):
        (WebCore::DatabaseAuthorizer::createIndex):
        (WebCore::DatabaseAuthorizer::createTempIndex):
        (WebCore::DatabaseAuthorizer::dropIndex):
        (WebCore::DatabaseAuthorizer::dropTempIndex):
        (WebCore::DatabaseAuthorizer::createTrigger):
        (WebCore::DatabaseAuthorizer::createTempTrigger):
        (WebCore::DatabaseAuthorizer::dropTrigger):
        (WebCore::DatabaseAuthorizer::dropTempTrigger):
        (WebCore::DatabaseAuthorizer::createVTable):
        (WebCore::DatabaseAuthorizer::dropVTable):
        (WebCore::DatabaseAuthorizer::allowDelete):
        (WebCore::DatabaseAuthorizer::allowInsert):
        (WebCore::DatabaseAuthorizer::allowUpdate):
        (WebCore::DatabaseAuthorizer::allowRead):
        (WebCore::DatabaseAuthorizer::allowAnalyze):
        (WebCore::DatabaseAuthorizer::allowPragma):
        (WebCore::DatabaseAuthorizer::allowAttach):
        (WebCore::DatabaseAuthorizer::allowDetach):
        (WebCore::DatabaseAuthorizer::allowFunction):
        (WebCore::DatabaseAuthorizer::disable):
        (WebCore::DatabaseAuthorizer::enable):
        (WebCore::DatabaseAuthorizer::denyBasedOnTableName): Don't allow access to the __WebKit meta info table as
          it should be invisible to scripts
        * storage/DatabaseAuthorizer.h: Added.
        (WebCore::DatabaseAuthorizer::lastActionWasInsert):
        (WebCore::DatabaseAuthorizer::lastActionIncreasedSize):

        * storage/DatabaseCallback.cpp: Added.
          Generic item to queue up for callbacks on the main thread for database activities that take place on 
          a secondary thread
        (WebCore::DatabaseChangeVersionCallback::DatabaseChangeVersionCallback):
        (WebCore::DatabaseChangeVersionCallback::performCallback):
        (WebCore::DatabaseExecuteSqlCallback::DatabaseExecuteSqlCallback):
        (WebCore::DatabaseExecuteSqlCallback::performCallback):
        * storage/DatabaseCallback.h: Added.
        (WebCore::DatabaseCallback::~DatabaseCallback):
        (WebCore::DatabaseChangeVersionCallback::~DatabaseChangeVersionCallback):
        (WebCore::DatabaseExecuteSqlCallback::~DatabaseExecuteSqlCallback):

        * storage/DatabaseTask.h: Added.
          Generic work-item to be queued up on the background database thread
        (WebCore::DatabaseTask::isComplete):
        (WebCore::DatabaseOpenTask::exceptionCode):
        (WebCore::DatabaseOpenTask::openSuccessful):
        (WebCore::DatabaseTableNamesTask::tableNames):
        * storage/DatabaseTask.cpp: Added.
        (WebCore::DatabaseTask::DatabaseTask):
        (WebCore::DatabaseTask::~DatabaseTask):
        (WebCore::DatabaseTask::performTask):
        (WebCore::DatabaseTask::lockForSynchronousScheduling): Used when the main thread needs this task accomplished 
          synchronously
        (WebCore::DatabaseTask::waitForSynchronousCompletion):

        (WebCore::DatabaseOpenTask::DatabaseOpenTask):
        (WebCore::DatabaseOpenTask::doPerformTask):

        (WebCore::DatabaseExecuteSqlTask::DatabaseExecuteSqlTask):
        (WebCore::DatabaseExecuteSqlTask::doPerformTask):

        (WebCore::DatabaseChangeVersionTask::DatabaseChangeVersionTask):
        (WebCore::DatabaseChangeVersionTask::doPerformTask):

        (WebCore::DatabaseTableNamesTask::DatabaseTableNamesTask):
        (WebCore::DatabaseTableNamesTask::doPerformTask):

        * storage/DatabaseThread.cpp: Added.
          The current design is that each Document will have its own DatabaseThread.  This makes scripts on each
          individual document more response at the cost of adding more threads and potentially creating concurrency
          issues when the same database is open twice from two different documents
        (WebCore::DatabaseThread::DatabaseThread):
        (WebCore::DatabaseThread::~DatabaseThread):
        (WebCore::DatabaseThread::start):
        (WebCore::DatabaseThread::documentGoingAway): Called to shut the thread down when the document is destroyed
        (WebCore::DatabaseThread::databaseGoingAway): Remove all pending tasks for this database
        (WebCore::DatabaseThread::databaseThreadStart):
        (WebCore::DatabaseThread::databaseThread):
        (WebCore::DatabaseThread::dispatchNextTaskIdentifier):
        (WebCore::DatabaseThread::scheduleTask):
        (WebCore::DatabaseThread::scheduleImmediateTask): Schedule a task that gets to "cut to the front of the line" when
          the main thread requires a task be performed synchronously
        (WebCore::DatabaseThread::wakeWorkThread):
        * storage/DatabaseThread.h: Added.

        * storage/DatabaseTracker.cpp: Added.
          The DatabaseTracker is the master management of all databases.  It will keep track of the filename for a given
          unique database, keep track of the total disk usage per-origin, and policys per database/origin
        (WebCore::DatabaseTracker::setDatabasePath):
        (WebCore::DatabaseTracker::databasePath):
        (WebCore::DatabaseTracker::tracker):
        (WebCore::DatabaseTracker::DatabaseTracker):
        (WebCore::DatabaseTracker::fullPathForDatabase):
        (WebCore::DatabaseTracker::populateOrigins):
        (WebCore::DatabaseTracker::origins):
        (WebCore::DatabaseTracker::databaseNamesForOrigin):
        (WebCore::DatabaseTracker::addDatabase):
        (WebCore::DatabaseTracker::deleteAllDatabases):
        (WebCore::DatabaseTracker::deleteAllDatabasesForOrigin):
        * storage/DatabaseTracker.h: Added.

        * storage/SQLCallback.h: Added. C++ version of the javascript executeSql() callback
        (WebCore::SQLCallback::~SQLCallback):
        * storage/SQLCallback.idl: Added.

        * storage/SQLResultSet.cpp: Added. C++ version of the javascript SQLResultSet object
        (WebCore::SQLResultSet::SQLResultSet):
        (WebCore::SQLResultSet::insertId):
        (WebCore::SQLResultSet::rowsAffected):
        (WebCore::SQLResultSet::errorCode):
        (WebCore::SQLResultSet::error):
        (WebCore::SQLResultSet::rows):
        (WebCore::SQLResultSet::setInsertId):
        (WebCore::SQLResultSet::setRowsAffected):
        (WebCore::SQLResultSet::setErrorCode):
        (WebCore::SQLResultSet::setErrorMessage):
        * storage/SQLResultSet.h: Added.
        * storage/SQLResultSet.idl: Added.

        * storage/SQLResultSetRowList.cpp: Added. C++ version of the javascript SQLResultSetRowList object
        (WebCore::SQLResultSetRowList::length):
        * storage/SQLResultSetRowList.h: Added.
        (WebCore::SQLResultSetRowList::columnNames):
        (WebCore::SQLResultSetRowList::values):
        (WebCore::SQLResultSetRowList::addColumn):
        (WebCore::SQLResultSetRowList::addResult):
        * storage/SQLResultSetRowList.idl: Added.

        * storage/VersionChangeCallback.h: Added. C++ version of the javascript changeVersion() callback
        (WebCore::VersionChangeCallback::~VersionChangeCallback):
        * storage/VersionChangeCallback.idl: Added.

2007-10-19  Brady Eidson <beidson@apple.com>

        Reviewed by Oliver + Same

        Forwarding header for the new wtf/Queue.h

        * ForwardingHeaders/wtf/Queue.h: Added.

2007-10-19  Anders Carlsson <beidson@apple.com>

        Reviewed by Sam Weinig

        Most of the Javascript binding support for the Storage API

        * bindings/js/JSCustomSQLCallback.cpp: Added.
        (WebCore::JSCustomSQLCallback::JSCustomSQLCallback):
        (WebCore::JSCustomSQLCallback::handleEvent):
        * bindings/js/JSCustomSQLCallback.h: Added.
                Add JSCustomSQLCallback which is an SQLCallback implementation that dispatches
                handleEvent to a JS function or a JS object with a handleEvent function.

        * bindings/js/JSCustomVersionChangeCallback.cpp: Added.
        (WebCore::JSCustomVersionChangeCallback::JSCustomVersionChangeCallback):
        (WebCore::JSCustomVersionChangeCallback::handleEvent):
        * bindings/js/JSCustomVersionChangeCallback.h: Added.
                Add JSCustomSQLCallback which is an SQLCallback implementation that dispatches
                handleEvent to a JS function or a JS object with a handleEvent function.

        * bindings/js/JSDatabaseCustom.cpp: Added.
        (WebCore::JSDatabase::executeSql):
                Custom implementation of executeSql that takes an array of parameters.
                
        (WebCore::JSDatabase::changeVersion):
                Custom implementation of changeVersion.
                
        * bindings/js/JSSQLResultSetRowListCustom.cpp: Added.
        (WebCore::JSSQLResultSetRowList::item):
                Custom method that returns a JS object that corresponds to a given row in the database.

        * bindings/scripts/CodeGeneratorJS.pm:

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::openDatabase):
        * page/DOMWindow.h:
        * page/DOMWindow.idl:
                Add openDatabase implementation.

2007-10-19  Brady Eidson <beidson@apple.com>

        Reviewed by Oliver

        Added tons of utility to the FileSystem abstractions, including moving
        some stuff over from IconDatabase

        * platform/FileSystem.h:

        * platform/cf/FileSystemCF.cpp: Added.
        (WebCore::fileSystemRepresentation):

        * platform/mac/FileSystemMac.mm:

        * platform/posix/FileSystemPOSIX.cpp: Added.
        (WebCore::fileExists):
        (WebCore::deleteFile):
        (WebCore::fileSize):
        (WebCore::pathByAppendingComponent):
        (WebCore::makeAllDirectories):

2007-10-19  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Adam Roben

        Preliminary Web Inspector support for the Storage API
        (This patch does not include the support artwork)

        * page/InspectorController.cpp:
        (WebCore::InspectorDatabaseResource::InspectorDatabaseResource):
        (WebCore::InspectorDatabaseResource::setScriptObject):
        (WebCore::databaseTableNames): Return the table names for a Database object.
        (WebCore::InspectorController::setWindowVisible):
        (WebCore::InspectorController::windowScriptObjectAvailable):
        (WebCore::InspectorController::populateScriptResources):
        (WebCore::InspectorController::addDatabaseScriptResource): Add the script object for the database.
        (WebCore::InspectorController::removeDatabaseScriptResource): Remove the script object for the database.
        (WebCore::InspectorController::clearDatabaseScriptResources): Remove all the database resources.
        (WebCore::InspectorController::didCommitLoad): Call clearDatabaseScriptResources().
        (WebCore::InspectorController::didOpenDatabase): Make a new InspectorDatabaseResource and add it to m_databaseResources.
        * page/InspectorController.h:
        * page/inspector/Database.js: Added.
        * page/inspector/DatabasePanel.js: Added.
        * page/inspector/ResourceCategory.js: Make resource categories assume less about the resource.
        * page/inspector/inspector.css: Add styles for the database panel.
        * page/inspector/inspector.html: Include DatabasePanel.js
        * page/inspector/inspector.js: Support for adding and removing Database resources.

2007-10-19  Brady Eidson <beidson@apple.com>

        Reviewed by Tim Hatcher

        Added support for Chrome prompts required by the Storage API

        * page/Chrome.cpp:
        (WebCore::Chrome::runDatabaseSizeLimitPrompt):
        * page/Chrome.h:
        * page/ChromeClient.h:
        * platform/graphics/svg/SVGImageEmptyClients.h:

2007-10-19  Brady Eidson <beidson@apple.com>

        Contributions and Review by Anders

        Various SQLite tweaks in preparation for the storage API

        * loader/icon/SQLDatabase.cpp:
        (WebCore::SQLDatabase::~SQLDatabase):
        (WebCore::SQLDatabase::authorizerFunction): Static callback from sqlite for authorizer functions
        (WebCore::SQLDatabase::setAuthorizer):
        (WebCore::SQLDatabase::lock):
        (WebCore::SQLDatabase::unlock):
        * loader/icon/SQLDatabase.h:

        * loader/icon/SQLStatement.cpp:
        (WebCore::SQLStatement::prepare): Switch to prepare16_v2
        (WebCore::SQLStatement::bindDouble): Added
        (WebCore::SQLStatement::bindValue): Bind a wrapped SQLValue object (described later)
        (WebCore::SQLStatement::bindParameterCount): Accessor to the sqlite3 API for validating statements
        * loader/icon/SQLStatement.h:
        (WebCore::SQLStatement::isPrepared):

        * platform/sql/SQLAuthorizer.cpp: Added.  Fully virtual interface to implement your own SQLite authorizer
        * platform/sql/SQLAuthorizer.h: Added.
        (WebCore::SQLAuthorizer::~SQLAuthorizer):
        (WebCore::SQLAuthorizer::createTable):
        (WebCore::SQLAuthorizer::createTempTable):
        (WebCore::SQLAuthorizer::dropTable):
        (WebCore::SQLAuthorizer::dropTempTable):
        (WebCore::SQLAuthorizer::allowAlterTable):
        (WebCore::SQLAuthorizer::createIndex):
        (WebCore::SQLAuthorizer::createTempIndex):
        (WebCore::SQLAuthorizer::dropIndex):
        (WebCore::SQLAuthorizer::dropTempIndex):
        (WebCore::SQLAuthorizer::createTrigger):
        (WebCore::SQLAuthorizer::createTempTrigger):
        (WebCore::SQLAuthorizer::dropTrigger):
        (WebCore::SQLAuthorizer::dropTempTrigger):
        (WebCore::SQLAuthorizer::createView):
        (WebCore::SQLAuthorizer::createTempView):
        (WebCore::SQLAuthorizer::dropView):
        (WebCore::SQLAuthorizer::dropTempView):
        (WebCore::SQLAuthorizer::createVTable):
        (WebCore::SQLAuthorizer::dropVTable):
        (WebCore::SQLAuthorizer::allowDelete):
        (WebCore::SQLAuthorizer::allowInsert):
        (WebCore::SQLAuthorizer::allowUpdate):
        (WebCore::SQLAuthorizer::allowTransaction):
        (WebCore::SQLAuthorizer::allowSelect):
        (WebCore::SQLAuthorizer::allowRead):
        (WebCore::SQLAuthorizer::allowAttach):
        (WebCore::SQLAuthorizer::allowDetach):
        (WebCore::SQLAuthorizer::allowReindex):
        (WebCore::SQLAuthorizer::allowAnalyze):
        (WebCore::SQLAuthorizer::allowFunction):

        * platform/sql/SQLValue.cpp: Added.  Contains a value for a SQLite database that can be one of a few types.  
          For now, just a String or a double
        (WebCore::SQLValue::SQLValue):
        (WebCore::SQLValue::string):
        (WebCore::SQLValue::number):
        * platform/sql/SQLValue.h: Added.
        (WebCore::SQLValue::):
        (WebCore::SQLValue::SQLValue):
        (WebCore::SQLValue::type):

2007-10-19  Brady Eidson <beidson@apple.com>

        Reviewed by Maciej

        Changed IconDatabase over to use new FileSystem apis

        * loader/icon/IconDatabase.cpp:
        (WebCore::IconDatabase::open):

2007-10-19  David Hyatt  <hyatt@apple.com>

        Fix for ebay parser crash.

        Reviewed by Beth

        fast/invalid/table-residual-style-crash.html added as a test

        * html/HTMLParser.cpp:
        (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks):

2007-10-19  Sam Weinig  <sam@webkit.org>

        Fix Windows, Qt and GTK builds.

        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:

2007-10-19  Sam Weinig  <sam@webkit.org>

        Reviewed by Darin.

        Encapsulate the same origin check into the new SecurityOrigin class.

        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/kjs_window.cpp:
        (KJS::Window::isSafeScript):
        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::defaultEventHandler):
        * dom/Document.h:
        (WebCore::Document::securityOrigin):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::begin):
        (WebCore::FrameLoader::setOpener):
        * loader/FrameLoader.h:
        * platform/SecurityOrigin.cpp: Added.
        (WebCore::SecurityOrigin::SecurityOrigin):
        (WebCore::SecurityOrigin::clear):
        (WebCore::SecurityOrigin::isEmpty):
        (WebCore::SecurityOrigin::setForFrame):
        (WebCore::SecurityOrigin::setDomainFromDOM):
        (WebCore::SecurityOrigin::allowsAccessFrom):
        (WebCore::SecurityOrigin::isSecureTransitionTo):
        * platform/SecurityOrigin.h: Added.

2007-10-19  Simon Hausmann  <hausmann@kde.org>

        Fix the Qt/Windows build: Added missing FontSelector.h include.

        * platform/qt/FontQt.cpp:

2007-10-19  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Lars.

        Qt/Windows build fix: Threading.h uses int32_t but doesn't include stdint.h.

        * platform/Threading.h:

2007-10-19  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Lars.

        Fix the Qt/Windows build, don't use cat but use the perl print trick
        instead.

        * WebCore.pro:

2007-10-18  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Kevin McCullough.

        <rdar://problem/5483526> 
        GoogleDocs: A hang occurs when applying list styling to a selection containing a table and line breaks

        * editing/TextIterator.cpp:
        (WebCore::TextIterator::exitNode): For selection preservation, we must emit a character
        between every VisiblePosition.  We weren't emitting a space after some tables, because
        we won't try to emit a space if shouldEmitNewlineAFterNode is true, even if no newline
        was emitted.

2007-10-18  Dan Bernstein  <dan.bernstein@apple.com>

        Reviewed by Adam Roben.

        - fix <rdar://problem/5313523>
        REGRESSION(Leopard): http/tests/incremental/slow-utf8-text.pl fails on Leopard

        * platform/network/mac/ResourceResponseMac.mm:
        (WebCore::ResourceResponse::doUpdateResourceResponse): Work around
        <rdar://problem/5321972> by testing for the case of a response
        with a MIME type of application/octet-stream and a Content-Type header
        starting with text/plain and setting the MIME type to text/plain in
        that case.

2007-10-18  Mark Rowe  <mrowe@apple.com>

        Fix the no-SVG build.

        * css/CSSPrimitiveValueMappings.h: Move the CSSPrimitiveValue implementations for
        LineCap, LineJoin and WindRule inside #if ENABLE(SVG).

2007-10-18  Darin Adler  <darin@apple.com>

        Reviewed by Anders.

        - some small tweaks to the threading implementation

        I had trouble building on Windows. Either the problem went away by itself
        or one of these changes fixed it.

        * platform/Threading.h: Eliminated the use of friend, and shared a single
        declaration for the initializeThreading function.

        * platform/pthreads/ThreadingPthreads.cpp: (WebCore::ThreadCondition::wait):
        Call impl() here.

        * platform/win/ThreadingWin.cpp: Got rid of two globals here with static
        constructors. Also added a typedef for the type of the function queue.
        (WebCore::functionQueueMutex): Added function.
        (WebCore::functionQueue): Ditto.
        (WebCore::callFunctionsOnMainThread): Use functions instead of using the
        globals directly.
        (WebCore::callOnMainThread): Ditto.

        * css/CSSParser.cpp: Had to touch this file to make things build.

2007-10-18  Adam Roben  <aroben@apple.com>

        Fix <rdar://5547462> Need to copy Inspector resources in Production builds

        I also added an excludes file for the xcopy command to avoid copying
        .svn folders.

        Reviewed by Geoff.

        * WebCore.vcproj/WebCore.make: Make sure we copy the Inspector
        resources.
        * WebCore.vcproj/WebCore.vcproj: Pass /exclude:xcopy.excludes to
        xcopy.
        * WebCore.vcproj/xcopy.excludes: Added.

2007-10-18  Darin Adler  <darin@apple.com>

        Reviewed by Sam.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15541
          REGRESSION (r26616): prompt with one argument uses the literal "undefined" as default reply

        * page/DOMWindow.idl: Add ConvertUndefinedOrNullToNullString back for defaultValue.

2007-10-18  Nikolas Zimmermann  <zimmermann@kde.org>

        Build fix. Not reviewed.

        Hopefully fix win build by including wtf/MathExtras.h.

        * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:

2007-10-18  Dan Bernstein  <dan.bernstein@apple.com>

        Reviewed by Nikolas Zimmermann.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15367
          Assertion failure inspecting a document including soft hyphen code (0xad)

        Test: fast/text/word-break-soft-hyphen.html

        * rendering/RenderText.cpp:
        (WebCore::RenderText::calcPrefWidths): Changed to treat soft hyphens as 
        word boundaries. This fixes the bug and is consistent with the fact that
        run rounding does occur at soft hyphens.

2007-10-18  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Anders.

        Fix last layout test failure seen on buildbot "trunk-mac-ppc-release".
        Problem: "svg/custom/mask-excessive-malloc.svg -> crashed"

        Clamp any ImageBuffer allocation within SVG to the RenderView's visibleSize
        to avoid excessive mallocs (in the testcase above 1000000x1000000)

        * ksvg2/svg/SVGMaskElement.cpp:
        (WebCore::SVGMaskElement::drawMaskerContent):
        * ksvg2/svg/SVGPatternElement.cpp:
        (WebCore::SVGPatternElement::buildPattern):
        * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
        (WebCore::SVGPaintServerGradient::teardown):
        (WebCore::SVGPaintServerGradient::setup):
        * platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
        (WebCore::SVGResourceMasker::applyMask):
        * rendering/SVGRenderSupport.cpp:
        (WebCore::clampImageBufferSizeToViewport):
        * rendering/SVGRenderSupport.h:

2007-10-18  Alexey Proskuryakov  <ap@webkit.org>

        Windows build fix.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty): Add braces around cases that have local variables now.

2007-10-18  Alexey Proskuryakov  <ap@webkit.org>

        Release build fix.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty): 

2007-10-18  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin.

        Split most of CSSPrimitiveValue enum mapping out of CSSComputedStyleDeclaration::getPropertyCSSValue()
        and CSSStyleSelector::applyProperty() (and their SVG counterparts). This should make the code more readable.

        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::getPositionOffsetValue):
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSPrimitiveValue.cpp:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::init):
        * css/CSSPrimitiveValue.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        * css/CSSPrimitiveValueMappings.h: Added.
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator EBorderStyle):
        (WebCore::CSSPrimitiveValue::operator CompositeOperator):
        (WebCore::CSSPrimitiveValue::operator EAppearance):
        (WebCore::CSSPrimitiveValue::operator EBackgroundBox):
        (WebCore::CSSPrimitiveValue::operator EBackgroundRepeat):
        (WebCore::CSSPrimitiveValue::operator EBoxAlignment):
        (WebCore::CSSPrimitiveValue::operator EBoxDirection):
        (WebCore::CSSPrimitiveValue::operator EBoxLines):
        (WebCore::CSSPrimitiveValue::operator EBoxOrient):
        (WebCore::CSSPrimitiveValue::operator ECaptionSide):
        (WebCore::CSSPrimitiveValue::operator EClear):
        (WebCore::CSSPrimitiveValue::operator ECursor):
        (WebCore::CSSPrimitiveValue::operator EDisplay):
        (WebCore::CSSPrimitiveValue::operator EEmptyCell):
        (WebCore::CSSPrimitiveValue::operator EFloat):
        (WebCore::CSSPrimitiveValue::operator EKHTMLLineBreak):
        (WebCore::CSSPrimitiveValue::operator EListStylePosition):
        (WebCore::CSSPrimitiveValue::operator EListStyleType):
        (WebCore::CSSPrimitiveValue::operator EMarginCollapse):
        (WebCore::CSSPrimitiveValue::operator EMarqueeBehavior):
        (WebCore::CSSPrimitiveValue::operator EMarqueeDirection):
        (WebCore::CSSPrimitiveValue::operator EMatchNearestMailBlockquoteColor):
        (WebCore::CSSPrimitiveValue::operator ENBSPMode):
        (WebCore::CSSPrimitiveValue::operator EOverflow):
        (WebCore::CSSPrimitiveValue::operator EPageBreak):
        (WebCore::CSSPrimitiveValue::operator EPosition):
        (WebCore::CSSPrimitiveValue::operator EResize):
        (WebCore::CSSPrimitiveValue::operator ETableLayout):
        (WebCore::CSSPrimitiveValue::operator ETextAlign):
        (WebCore::CSSPrimitiveValue::operator ETextSecurity):
        (WebCore::CSSPrimitiveValue::operator ETextTransform):
        (WebCore::CSSPrimitiveValue::operator EUnicodeBidi):
        (WebCore::CSSPrimitiveValue::operator EUserDrag):
        (WebCore::CSSPrimitiveValue::operator EUserModify):
        (WebCore::CSSPrimitiveValue::operator EUserSelect):
        (WebCore::CSSPrimitiveValue::operator EVisibility):
        (WebCore::CSSPrimitiveValue::operator EWhiteSpace):
        (WebCore::CSSPrimitiveValue::operator EWordBreak):
        (WebCore::CSSPrimitiveValue::operator EWordWrap):
        (WebCore::CSSPrimitiveValue::operator LineCap):
        (WebCore::CSSPrimitiveValue::operator LineJoin):
        (WebCore::CSSPrimitiveValue::operator TextDirection):
        (WebCore::CSSPrimitiveValue::operator WindRule):
        (WebCore::CSSPrimitiveValue::operator EAlignmentBaseline):
        (WebCore::CSSPrimitiveValue::operator EColorInterpolation):
        (WebCore::CSSPrimitiveValue::operator EColorRendering):
        (WebCore::CSSPrimitiveValue::operator EDominantBaseline):
        (WebCore::CSSPrimitiveValue::operator EImageRendering):
        (WebCore::CSSPrimitiveValue::operator EPointerEvents):
        (WebCore::CSSPrimitiveValue::operator EShapeRendering):
        (WebCore::CSSPrimitiveValue::operator ETextAnchor):
        (WebCore::CSSPrimitiveValue::operator ETextRendering):
        (WebCore::CSSPrimitiveValue::operator EWritingMode):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::checkSelector):
        (WebCore::CSSStyleSelector::checkOneSelector):
        (WebCore::CSSRuleSet::addRulesFromSheet):
        (WebCore::convertToLength):
        (WebCore::CSSStyleSelector::applyDeclarations):
        (WebCore::CSSStyleSelector::applyProperty):
        (WebCore::CSSStyleSelector::mapBackgroundAttachment):
        (WebCore::CSSStyleSelector::mapBackgroundClip):
        (WebCore::CSSStyleSelector::mapBackgroundComposite):
        (WebCore::CSSStyleSelector::mapBackgroundOrigin):
        (WebCore::CSSStyleSelector::mapBackgroundRepeat):
        (WebCore::CSSStyleSelector::mapBackgroundXPosition):
        (WebCore::CSSStyleSelector::mapBackgroundYPosition):
        * ksvg2/css/SVGCSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
        * ksvg2/css/SVGCSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applySVGProperty):

2007-10-18  Eric Seidel  <eric@webkit.org>

        Reviewed by Maciej.

        Fix crashers in SVGViewSpec::parseViewSpec
        http://bugs.webkit.org/show_bug.cgi?id=15504

        Test is blocked by bug 15503, landed as:
        * svg/dom/viewspec-parser.html-disabled

        * bindings/scripts/CodeGeneratorObjC.pm: support classes where all parents are interfaces
        * ksvg2/svg/SVGViewSpec.cpp:
        (WebCore::SVGViewSpec::parseViewSpec):
        * ksvg2/svg/SVGViewSpec.idl: Added.

2007-10-17  Rob Buis  <buis@kde.org>

        Reviewed by Darin, Adam, and Maciej.

        http://bugs.webkit.org/show_bug.cgi?id=12988
        First element (in document order) is not returned when other duplicate ID-ed elements were created first

        Reset the element id cache when an id is added and there is a duplicate for that id.

        * dom/Document.cpp:
        (WebCore::Document::addElementById):

2007-10-17  Mark Rowe  <mrowe@apple.com>

        Mac build fix.

        * Configurations/WebCore.xcconfig:  Make it possible to include CoreGraphics header files.

2007-10-17  Adam Roben  <aroben@apple.com>

        Fix an ASSERT on launch on Windows

        Fix dictated to me by Brady.

        * loader/icon/IconDatabase.cpp:
        (WebCore::IconDatabase::syncThreadMainLoop): Make sure we hold
        m_syncLock before going into the loop.

2007-10-17  Adam Roben  <aroben@apple.com>

        Windows build fix

        Reviewed by NOBODY.

        * platform/graphics/AffineTransform.h: Don't #include
        ApplicationServices.h.
        * platform/graphics/cg/GraphicsContextCG.cpp: Add an #include that's
        needed now that we're not #including ApplicationServices.h.

2007-10-17  Mark Rowe  <mrowe@apple.com>

        Gtk build fix.  Move non-pthread stubs from Threading.h to ThreadingNone.cpp to prevent
        multiple-definition link errors.

        * WebCore.pro:
        * platform/Threading.h:
        * platform/ThreadingNone.cpp: Added.
        (WebCore::createThread):
        (WebCore::waitForThreadCompletion):
        (WebCore::detachThread):
        (WebCore::Mutex::Mutex):
        (WebCore::Mutex::~Mutex):
        (WebCore::Mutex::lock):
        (WebCore::Mutex::tryLock):
        (WebCore::Mutex::unlock):
        (WebCore::ThreadCondition::ThreadCondition):

2007-10-17  Anders Carlsson  <andersca@apple.com>

        Reviewed by Oliver.

        * WebCore.xcodeproj/project.pbxproj:
        * WebCore.vcproj/WebCore.vcproj:
        
        * config.h:
        #define USE_PTHREADS on Windows.
        
        * loader/icon/IconDatabase.cpp:
        (WebCore::IconDatabase::getOrCreateIconRecord):
        (WebCore::IconDatabase::getOrCreatePageURLRecord):
        Update for mutex changes.
        
        * platform/Threading.h:
        (WebCore::):
        (WebCore::ThreadSafeShared::ThreadSafeShared):
        (WebCore::ThreadSafeShared::ref):
        (WebCore::ThreadSafeShared::deref):
        (WebCore::ThreadSafeShared::hasOneRef):
        (WebCore::ThreadSafeShared::refCount):
        (WebCore::ThreadSafeShared::isThreadSafe):
        Add a new Shared base class that uses a mutex to manage its refcount.
        
        (WebCore::createThread):
        (WebCore::waitForThreadCompletion):
        (WebCore::detachThread):
        New functions for thread creation.
        
        (WebCore::Mutex::Mutex):
        (WebCore::Mutex::~Mutex):
        (WebCore::Mutex::lock):
        (WebCore::Mutex::tryLock):
        (WebCore::Mutex::unlock):
        Move the definitions to ThreadingPthreads.cpp
        
        (WebCore::ThreadCondition::ThreadCondition):
        (WebCore::ThreadCondition::~ThreadCondition):
        (WebCore::ThreadCondition::wait):
        (WebCore::ThreadCondition::signal):
        (WebCore::ThreadCondition::broadcast):
        Move the definitions to ThreadingPthreads.cpp
        
        * platform/pthreads: Added.
        * platform/pthreads/ThreadingPthreads.cpp: Added.
        Add pthread specific implementation of the thread creation functions, Mutex and ThreadCondition.

2007-10-17  David Hyatt  <hyatt@apple.com>

        Add support for creating a layer when a transform is in effect.  Add support to RenderStyle for
        handing back a computed AffineTransform.

        Reviewed by Mitz Pettel

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::adjustRenderStyle):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::setStyle):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::RenderObject):
        (WebCore::RenderObject::requiresLayer):
        (WebCore::RenderObject::setStyle):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::hasTransform):
        (WebCore::RenderObject::setHasTransform):
        * rendering/RenderStyle.cpp:
        (WebCore::RenderStyle::applyTransform):
        * rendering/RenderStyle.h:
        (WebCore::RenderStyle::hasTransform):
        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::requiresLayer):
        * rendering/RenderTableRow.h:
        (WebCore::RenderTableRow::requiresLayer):

2007-10-17  David Hyatt  <hyatt@apple.com>

        Add support for mapping of the transform CSS property into RenderStyles.  Everything is now ready for the front
        end to use.

        Reviewed by Mitz Pettel

        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * css/CSSTransformValue.h:
        (WebCore::CSSTransformValue::type):
        (WebCore::CSSTransformValue::values):
        * platform/graphics/AffineTransform.cpp:
        (WebCore::AffineTransform::skew):
        * platform/graphics/AffineTransform.h:
        * rendering/RenderStyle.cpp:
        (WebCore::StyleTransformData::StyleTransformData):
        (WebCore::StyleTransformData::operator==):
        (WebCore::StyleTransformData::transformDataEquivalent):
        * rendering/RenderStyle.h:
        (WebCore::TransformOperation::~TransformOperation):
        (WebCore::TransformOperation::operator!=):
        (WebCore::TransformOperation::isScaleOperation):
        (WebCore::TransformOperation::isRotateOperation):
        (WebCore::TransformOperation::isSkewOperation):
        (WebCore::TransformOperation::isTranslateOperation):
        (WebCore::TransformOperation::isMatrixOperation):
        (WebCore::ScaleTransformOperation::ScaleTransformOperation):
        (WebCore::ScaleTransformOperation::isScaleOperation):
        (WebCore::ScaleTransformOperation::operator==):
        (WebCore::ScaleTransformOperation::apply):
        (WebCore::RotateTransformOperation::RotateTransformOperation):
        (WebCore::RotateTransformOperation::isRotateOperation):
        (WebCore::RotateTransformOperation::operator==):
        (WebCore::RotateTransformOperation::apply):
        (WebCore::SkewTransformOperation::SkewTransformOperation):
        (WebCore::SkewTransformOperation::isSkewOperation):
        (WebCore::SkewTransformOperation::operator==):
        (WebCore::SkewTransformOperation::apply):
        (WebCore::TranslateTransformOperation::TranslateTransformOperation):
        (WebCore::TranslateTransformOperation::isTranslateOperation):
        (WebCore::TranslateTransformOperation::operator==):
        (WebCore::TranslateTransformOperation::apply):
        (WebCore::MatrixTransformOperation::MatrixTransformOperation):
        (WebCore::MatrixTransformOperation::isMatrixOperation):
        (WebCore::MatrixTransformOperation::operator==):
        (WebCore::MatrixTransformOperation::apply):
        (WebCore::StyleTransformData::operator!=):
        (WebCore::RenderStyle::transform):
        (WebCore::RenderStyle::setTransform):
        (WebCore::RenderStyle::initialTransform):

2007-10-17  Adam Roben  <aroben@apple.com>

        * page/Frame.cpp: I had to touch this file when fixing the Windows
        build. Checking it in in case it helps others, too.

2007-10-17  Eric Seidel  <eric@webkit.org>

        Reviewed by Mark Rowe.
        
        Remove a couple more uses of svg_dynamic_cast.

        No functional changes, no tests.

        * ksvg2/svg/SVGPatternElement.cpp:
        (WebCore::SVGPatternElement::buildPattern):

2007-10-17  Mark Rowe  <mrowe@apple.com>

        Reviewed by Eric and Geoff.

        <rdar://problem/5453743> Repro ASSERT in CachedResource::setEncodedSize() loading image in background tab
        http://bugs.webkit.org/show_bug.cgi?id=15191

        * loader/DocLoader.cpp:
        (WebCore::DocLoader::setAutoLoadImages): Don't start a load if the CachedImage is already loading.

2007-10-17  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Harrison.
        
        <rdar://problem/5481523> 
        GoogleDocs: Safari hangs when indenting a particular table twice
        
        Fixed by fixing problems with the selection preservation done by IndentOutdentCommand.
        It is now more difficult to create selections that cause hangs.  Those are covered by:
        <rdar://problem/5543472>

        * editing/IndentOutdentCommand.cpp:
        (WebCore::indexForVisiblePosition): Compute indices from the first VisiblePosition
        in the document, instead of the first Position.
        Use rangeCompliantEquivalents when creating the Range that we pass to rangeLength.
        Tell TextIterator::rangeLength that we're doing selection preservation, so that it
        will emit characters between all VisiblePositions.
        (WebCore::IndentOutdentCommand::indentRegion): Fixed a bug where the range and location
        passed to rangeFromLocationAndLength were reversed.
        Tell rangeFromLocationAndLength that we're doing doing selection preservation, as
        above.
        * editing/TextIterator.cpp:
        (WebCore::CharacterIterator::CharacterIterator): 
        (WebCore::TextIterator::rangeLength): Rename emitSpacesForReplacedElements
        to forSelectionPreservation, to match the name of the boolean inside TextIterator and
        to match its meaning after r25522.
        (WebCore::TextIterator::rangeFromLocationAndLength): Ditto.

2007-10-16  Darin Adler  <darin@apple.com>

        Reviewed by Mitz.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15536
          need to cache missing glyph so we're not slow on pages that show missing glyphs

        - <rdar://problem/5404359> UI thread stall (>60sec) in MLANG running stress test
          (related to font data caching)

        * platform/Font.cpp: (WebCore::Font::glyphDataForCharacter): Check for a null value
        for fontData rather than for glyph to detect non-cached entries in the glyph data.

        * platform/gtk/GlyphPageTreeNodeGtk.cpp: (WebCore::GlyphPage::fill):
        * platform/mac/GlyphPageTreeNodeMac.cpp: (WebCore::GlyphPage::fill):
        * platform/win/GlyphPageTreeNodeWin.cpp: (WebCore::GlyphPage::fill):
        Set fontData to 0 for missing glyph entries. Also fixed the Windows and GTK versions
        to return the proper value for haveGlyphs.

2007-10-16  Mark Rowe  <mrowe@apple.com>

        Gtk build fix.  Replace use of assert with ASSERT_NOT_REACHED.

        * platform/gtk/FontCacheGtk.cpp:
        (WebCore::FontCache::platformInit):

2007-10-16  Darin Adler  <darin@apple.com>

        Reviewed by Adam.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15534
          WebScriptObject.h has some formatting and editorial mistakes

        * bindings/objc/WebScriptObject.h: Fix wording and formatting.

2007-10-16  Darin Adler  <darin@apple.com>

        - try to fix the Qt build

        * config.h: Don't use DisallowCType.h, since it's incompatible with some C++ headers
        that are used in some Qt-specific source files.

2007-10-16  Darin Adler  <darin@apple.com>

        Reviewed by Adele.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15525
          transpose (control-T) should do the last two characters on a line if at end of line
        - remove unused CommandByName class
        - move transpose command implementation here from Mac OS X WebKit

        * editing/Editor.h:
        * editing/Editor.cpp:
        (WebCore::execTranspose): Added.
        (WebCore::Editor::transpose): Added. This has the transpose implementation from
        WebCoreFrameBridge and WebHTMLView, translated into WebCore-style C++ and with
        a special case for the end of a paragraph.

        * page/Frame.h: Removed unused command() function member.
        * page/FramePrivate.h: Removed unused m_command data member.
        * page/Frame.cpp: Ditto.

        * page/mac/WebCoreFrameBridge.h: Removed rangeOfCharactersAroundCaret method.
        * page/mac/WebCoreFrameBridge.mm: Ditto.

        * WebCore.pro: Removed CommandByName.h/cpp.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.

        * editing/CommandByName.cpp: Removed.
        * editing/CommandByName.h: Removed.

2007-10-16  Darin Adler  <darin@apple.com>

        Reviewed by Maciej and Geoff (and looked over by Eric).

        - http://bugs.webkit.org/show_bug.cgi?id=15519
          eliminate use of <ctype.h> for processing ASCII

        * ForwardingHeaders/wtf/ASCIICType.h: Added.
        * ForwardingHeaders/wtf/DisallowCType.h: Added.

        * WebCorePrefix.h: Get rid of inclusion of <ctype.h>.
        * config.h: Include DisallowCType.h.

        * css/CSSParser.cpp:
        (WebCore::ParseString::lower):
        * css/CSSPrimitiveValue.cpp:
        (WebCore::isCSSTokenizerIdentifier):
        * css/CSSStyleDeclaration.cpp:
        (WebCore::propertyID):
        * html/HTMLSelectElement.cpp:
        (WebCore::stripLeadingWhiteSpace):
        * html/HTMLTokenizer.cpp:
        (WebCore::tagMatch):
        * loader/FTPDirectoryParser.cpp:
        (WebCore::parseOneFTPLine):
        * loader/TextResourceDecoder.cpp:
        (WebCore::TextResourceDecoder::checkForHeadCharset):
        * platform/DeprecatedCString.cpp:
        (WebCore::DeprecatedCString::lower):
        (WebCore::DeprecatedCString::upper):
        (WebCore::DeprecatedCString::find):
        (WebCore::DeprecatedCString::contains):
        * platform/DeprecatedString.cpp:
        (WebCore::equalCaseInsensitive):
        (WebCore::isCharacterAllowedInBase):
        (WebCore::DeprecatedString::find):
        (WebCore::DeprecatedString::contains):
        (WebCore::toIntegralType):
        * platform/DeprecatedString.h:
        (WebCore::DeprecatedChar::isSpace):
        (WebCore::DeprecatedChar::lower):
        (WebCore::DeprecatedChar::upper):
        * platform/KURL.cpp:
        (WebCore::KURL::parse):
        * platform/StringImpl.cpp:
        (WebCore::isSpace):
        (WebCore::StringImpl::containsOnlyWhitespace):
        (WebCore::StringImpl::isLower):
        (WebCore::StringImpl::lower):
        (WebCore::StringImpl::find):
        (WebCore::StringImpl::reverseFind):
        (WebCore::equalIgnoringCase):
        * platform/TextEncodingRegistry.cpp:
        (WebCore::TextEncodingNameHash::equal):
        (WebCore::TextEncodingNameHash::hash):
        (WebCore::atomicCanonicalTextEncodingName):
        * platform/mac/KeyEventMac.mm:
        (WebCore::keyIdentifierForKeyEvent):
        * platform/win/KeyEventWin.cpp:
        (WebCore::keyIdentifierForWindowsKeyCode):
        * platform/win/PopupMenuWin.cpp:
        (WebCore::isASCIIPrintable):
        (WebCore::PopupWndProc):
        * plugins/win/PluginViewWin.cpp:
        (WebCore::capitalizeRFC822HeaderFieldName):
        * rendering/RenderText.cpp:
        (WebCore::RenderText::widthFromCache):
        Use ASCIICType.h functions instead of ctype.h ones.

2007-10-16  Mitz Pettel  <mitz@webkit.org>

        Reviewed by Dave Hyatt.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15296
          REGRESSION (r19716-r19719): width not specified for <marquee> tag is causing the alignment issue.

        Test: fast/block/float/marquee-shrink-to-avoid-floats.html

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::shrinkToAvoidFloats): Changed to return 'true' for <marquee>s with auto width.

2007-10-16  Beth Dakin  <bdakin@apple.com>

        Reviewed by Darin.

        Fix for <rdar://problem/5517118> REGRESSION: 9A570 - Safari renders 
        Amazon seller page way too small

        The font size at Amazon was way too small because the calls to 
        getComputedStyle and getPropertyValue did not cause the div to 
        attach because there was a pending stylesheet. The fix is to call 
        updateLayoutIgnorePendingStylesheets() instead of just 
        updateLayout().

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):

2007-10-16  David Hyatt  <hyatt@apple.com>

        Get transform-origin(x/y) mapped into the front end RenderStyle.  Adds a new StyleTransformData struct that
        holds transform-origin (and that will also eventually hold the parsed transform operations as well).

        Reviewed by Beth

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * rendering/RenderStyle.cpp:
        (WebCore::StyleTransformData::StyleTransformData):
        (WebCore::StyleTransformData::operator==):
        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
        (WebCore::StyleRareNonInheritedData::operator==):
        (WebCore::RenderStyle::RenderStyle):
        (WebCore::RenderStyle::diff):
        * rendering/RenderStyle.h:
        (WebCore::StyleTransformData::operator!=):
        (WebCore::RenderStyle::transformOriginX):
        (WebCore::RenderStyle::transformOriginY):
        (WebCore::RenderStyle::setTransformOriginX):
        (WebCore::RenderStyle::setTransformOriginY):
        (WebCore::RenderStyle::initialTransformOriginX):
        (WebCore::RenderStyle::initialTransformOriginY):

2007-10-16  Adele Peterson  <adele@apple.com>

        Reviewed by Alice.

        Fix for <rdar://problem/5538793> REGRESSION: Failing layout test: fast/forms/select-change-listbox-to-popup.html (due to landing feature branch)

        * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::parseMappedAttribute):  When switching between types of select elements, call setRecalcListItems
          since recalcListItems updates the default selection in different ways for the different controls. 

2007-10-16  Alice Liu  <alice.liu@apple.com>

        rubber-stamped by Darin.

        flipping my previous fix around so that mac is special-cased instead of win.

        * dom/Document.cpp:
        (WebCore::Document::defaultEventHandler):

2007-10-16  David Hyatt  <hyatt@apple.com>

        Clean up transform parsing.  Fix a crash, ditch the extra parse context class, and use RefPtr/PassRefPtr more
        to simplify the code.

        Reviewed by aroben

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::parseTransform):
        * css/CSSParser.h:

2007-10-16  Alice Liu  <alice.liu@apple.com>

        Reviewed by Adele.

        fixed <rdar://5085596> Accesskeys don't work
        
        * dom/Document.cpp:
        (WebCore::Document::defaultEventHandler):
        accesskey modifier is platform-depedent.

2007-10-15  Mark Rowe  <mrowe@apple.com>

        Reviewed by John.

        <rdar://problem/5494040> Reproducible assertion failure in WebCore::IconDatabase::iconForPageURL

        A race condition between icon database import and Safari asking for an icon for the empty URL
        was resulting in a PageURLRecord being created for a URL that can never be retained.  By enforcing
        that PageURLRecord's cannot be created for the empty URL we can prevent the assertion from failing.

        * loader/icon/IconDatabase.cpp:
        (WebCore::IconDatabase::iconForPageURL):
        (WebCore::IconDatabase::getOrCreatePageURLRecord): Bail out early if the URL is empty.
        (WebCore::IconDatabase::performURLImport): Don't create the PageURLRecord if the URL is empty.

2007-10-15  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Ollie.

        Use OwnPtr for m_deliveryData, and fix a bug where we were memmove()ing
        over m_deliveryData instead of its data buffer

        * plugins/win/PluginStreamWin.cpp:
        (WebCore::PluginStreamWin::~PluginStreamWin): Don't delete
        m_deliveryData
        (WebCore::PluginStreamWin::deliverData): Fix memmove() call
        (WebCore::PluginStreamWin::didReceiveData): Assign using OwnPtr::set()
        * plugins/win/PluginStreamWin.h: Use OwnPtr

2007-10-15  Steve Falkenburg  <sfalken@apple.com>

        Reviewed by Oliver.

        Add missing null check.

        * platform/network/cf/AuthenticationCF.cpp:
        (WebCore::core):

2007-10-15  Mark Rowe  <mrowe@apple.com>

        Fix the no-SVG build again.  Add new transform CSS properties to the switch statements.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):

2007-10-15  Darin Adler  <darin@apple.com>

        Reviewed by Mitz.

        - http://bugs.webkit.org/show_bug.cgi?id=15518
          Remove the unused attemptFontSubstitution feature and do some
          cleanup of glyphDataForCharacter.

        * platform/Font.h:
        * platform/Font.cpp:
        (WebCore::WidthIterator::advance): Eliminated uneeded attemptFontSubstitution
        and cluster parameters to the glyphDataForCharacter function.
        (WebCore::Font::glyphDataForCharacter): Removed the cluster parameter and
        attemptFontSubstitution parameter. Removed the isUpper check before calling
        toUpper in the small caps code path. Split up the inner loop into separate
        copies for non-small-caps and small caps. Broke out the system fallback
        page handling so it's not inside the loop. Changed system fallback so it uses
        the character and breaks it up into UTF-16 as needed, instead of using a
        passed-in "character cluster".

        * platform/TextStyle.h:
        (WebCore::TextStyle::TextStyle): Removed attemptFontSubstitution.
        (WebCore::TextStyle::applyWordRounding): Ditto.

2007-10-15  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Ollie.

        Remove an operator precedence warning on Windows

        * editing/markup.cpp:
        (WebCore::escapeContentText): Use (a) | (b)
        (WebCore::appendEscapedContent): Use (a) | (b)

2007-10-15  Kevin McCullough  <kmccullough@apple.com>

        Reviewed by Darin.

        - <rdar://problem/5238818> window.resizeTo doesn't restrict the resized window to the size of the screen
        - Now we take the doc into account when resizing.
        - Also I found an issue where we would resize to outside the window, because
          the resize would be smaller than the window size but the location of the
          window would make the resize go off-screen. Now we move the window back into the screen.

        * bindings/js/kjs_window.cpp:
        (KJS::adjustWindowRect):
        (KJS::WindowFunc::callAsFunction):

2007-10-15  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Anders.

        <rdar://5510700> Repro crash loading embedded Windows Media Player
        content

        Anders noticed that the older Windows Media Player plugin (npdsplay.dll)
        will crash if it receives its resource requests out of order, whereas we
        were immediately fulfilling untargeted, non-JavaScript requests and
        scheduling targeted or JavaScript resource requests. Implement his
        suggested fix, which is to schedule PluginRequests for all resource
        requests 

        * plugins/win/PluginViewWin.cpp:
        (WebCore::getString):
        (WebCore::PluginViewWin::performRequest): If this non-JavaScript request
        has no target, create a stream for it
        (WebCore::PluginViewWin::load): Schedule PluginRequests for all resource
        requests

2007-10-15  Mark Rowe  <mrowe@apple.com>

        Gtk and Qt build fix.  Add new .cpp file to project.

        * WebCore.pro:

2007-10-15  John Sullivan  <sullivan@apple.com>

        * platform/mac/FontDataMac.mm:
        D'oh! Added missing #import to fix build

2007-10-15  John Sullivan  <sullivan@apple.com>

        Reviewed by Geoff

        * platform/mac/FontDataMac.mm:
        (WebCore::FontData::smallCapsFontData):
        replace NS_DURING/NS_HANDLER with WebCore-style BEGIN/END_BLOCK_OBJC_EXCEPTIONS

2007-10-15  David Hyatt  <hyatt@apple.com>

        The CSS WG has been discussing the concept of rotation.  In the latest draft specification, two properties
        have been introduced: rotation and rotation-point.  I believe these properties should be generalized to
        allow for arbitrary transformations (e.g., translation, skew, rotate, scale).

        This patch adds support for the back-end parsing of two new CSS properties: transform and transform-origin.
        They are directly analogous to the properties specified by the CSS WG, except that they are designed to allow
        for arbitrary affine transforms rather than just rotation.

        Reviewed by Beth Dakin

        * WebCore.xcodeproj/project.pbxproj:
        * WebCore.vcproj/WebCore.vcproj:
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        (WebCore::TransformParseContext:::m_list):
        (WebCore::TransformParseContext::list):
        (WebCore::TransformParseContext::failed):
        (WebCore::TransformParseContext::addValue):
        (WebCore::TransformOperationInfo::TransformOperationInfo):
        (WebCore::TransformOperationInfo::type):
        (WebCore::TransformOperationInfo::argCount):
        (WebCore::TransformOperationInfo::unit):
        (WebCore::TransformOperationInfo::unknown):
        (WebCore::TransformOperationInfo::hasCorrectArgCount):
        (WebCore::CSSParser::parseTransform):
        (WebCore::CSSParser::parseTransformOrigin):
        * css/CSSParser.h:
        * css/CSSPropertyNames.in:
        * css/CSSTransformValue.cpp: Added.
        (WebCore::CSSTransformValue::CSSTransformValue):
        (WebCore::CSSTransformValue::~CSSTransformValue):
        (WebCore::CSSTransformValue::addValue):
        (WebCore::CSSTransformValue::cssText):
        * css/CSSTransformValue.h: Added.
        (WebCore::CSSTransformValue::):

2007-10-15  Mark Rowe  <mrowe@apple.com>

        Reviewed by Oliver.

        Fix the no-SVG build.

        * DerivedSources.make: Use the correct file as input to generate CSSPropertyNames.h.
        * rendering/RenderObject.cpp:
        (WebCore::objectIsRelayoutBoundary):

2007-10-15  Darin Adler  <darin@apple.com>

        Reviewed by Sam.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15520
          alert(undefined) should say "undefined" in the alert

        Test: fast/dom/Window/alert-undefined.html

        * page/DOMWindow.idl: Remove ConvertUndefinedOrNullToNullString from alert, confirm, and prompt.
        It turns out that the default behavior is what the other browsers do (browsers tested: IE 7,
        Firefox 2).

2007-10-15  Adele Peterson  <adele@apple.com>

        Reviewed by Darin.

        Fix for http://bugs.webkit.org/show_bug.cgi?id=15252
        <rdar://problem/5498184> REGRESSION: <select multiple> doesn't scroll to top when old options are removed and new ones are added, leaving listbox empty-looking

        * rendering/RenderListBox.cpp: (WebCore::RenderListBox::calcHeight): If the scrollbar is disabled, make sure the scroll offset gets reset to 0.  In general,
          we don't want to unnecessarily adjust the scroll offset, but in this case, there won't be an obvious way for the user to adjust the scroller position once it's disabled.

2007-10-15  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Maciej.

        Return a more appropriate error from NPN_RequestRange, which is
        currently unimplemented

        * plugins/win/npapi.cpp: return NPERR_STREAM_NOT_SEEKABLE 
        (NPN_RequestRead):

2007-10-15  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Maciej.

        Add a missing function pointer to the m_browserFuncs structure

        * plugins/win/PluginPackageWin.cpp:
        (WebCore::PluginPackageWin::load):

2007-10-15  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Lars.

        Fix the compilation of the Font code in the Qt port by adding the necessary stubs to support downloadable fonts through the @font-face rules.

        * WebCore.pro:
        * loader/CachedFont.cpp:
        * platform/qt/FontCacheQt.cpp: Removed.
        * platform/qt/FontCustomPlatformData.cpp: Removed.
        * platform/qt/FontCustomPlatformData.h: Removed.
        * platform/qt/FontDataQt.cpp: Removed.
        * platform/qt/FontPlatformData.h: Removed.
        * platform/qt/FontQt.cpp:
        * platform/qt/GlyphPageTreeNodeQt.cpp: Removed.

2007-10-15  Simon Hausmann  <hausmann@kde.org>

        Reviewed by Lars.

        Adapt to the latest API changes in the SVG API/Code.

        * platform/graphics/svg/qt/RenderPathQt.cpp:
        (WebCore::RenderPath::strokeContains):
        (WebCore::getPathStroke):
        * platform/graphics/svg/qt/SVGPaintServerQt.cpp:
        (WebCore::SVGPaintServer::setPenProperties):
        * platform/graphics/svg/qt/SVGResourceMaskerQt.cpp:

2007-10-14  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Eric.

        Fix bad abstraction in ImageBuffer class.
        While the class itself is platform-aware and thus it's location in platform/graphics
        is fine, it contains the "renderSubtreeToImage" method which operates on RenderObject.

        As it's SVG specific I decided to move this method into SVGRenderSupport, to avoid
        implicit platform/ <-> rendering/ dependencies.

        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * ksvg2/svg/SVGMaskElement.cpp:
        (WebCore::SVGMaskElement::drawMaskerContent):
        * ksvg2/svg/SVGPatternElement.cpp:
        (WebCore::SVGPatternElement::buildPattern):
        * platform/graphics/ImageBuffer.cpp: Removed.
        * platform/graphics/ImageBuffer.h:
        (WebCore::ImageBuffer::size):
        * platform/graphics/svg/SVGImage.cpp:
        (WebCore::SVGImage::nativeImageForCurrentFrame):
        * rendering/SVGRenderSupport.cpp:
        (WebCore::renderSubtreeToImage):
        * rendering/SVGRenderSupport.h:

2007-10-14  Peter Kasting  <zerodpx@gmail.com>

        Reviewed by Maciej.

        http://bugs.webkit.org/show_bug.cgi?id=15210
        Draw the image outline even for broken images.

        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::paint):

2007-10-14  Kevin Ollivier  <kevino@theolliviers.com>

        Reviewed by Adam.

        Add support for MSVC7, and fix cases where PLATFORM(WIN) should
        be PLATFORM(WIN_OS) for other ports building on Windows.

        * dom/XMLTokenizer.cpp:
        * page/FrameTree.cpp:
        * platform/StaticConstructors.h:
        * platform/String.cpp:

2007-10-14  Maxime Britto  <mbritto@pleyo.com>

        Reviewed by Mitz.

        Fix an error in the goBackOrForward() function : confusion between forwardListCount and backListCount.
        http://bugs.webkit.org/show_bug.cgi?id=15212

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::goBackOrForward):

2007-10-14  Mitz Pettel  <mitz@webkit.org>

        Reviewed by Darin.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15181
          text-transform: uppercase not working in input (submit, reset, button) elements
          <rdar://problem/5474647>

        Test: fast/forms/button-text-transform.html

        Text transformations require access to the original text. The button's inner
        text was an anonymous RenderText, meaning it did not have a node to retrieve
        the original text from. The patch fixes this by changing the inner text into a
        RenderTextFragment, which stores its own original text.

        * rendering/RenderButton.cpp:
        (WebCore::RenderButton::setText):
        * rendering/RenderButton.h:

2007-10-14  Eric Seidel  <eric@webkit.org>

        Reviewed by Maciej.

        REGRESSION: Javascript bug in getElementsByName
        http://bugs.webkit.org/show_bug.cgi?id=15274

        Test: fast/dom/getelementbyname-invalidation.html

        * dom/NameNodeList.h: remove empty rootNodeChildrenChanged override

2007-10-14  Mitz Pettel  <mitz@webkit.org>

        Reviewed by Maciej.

        - http://bugs.webkit.org/show_bug.cgi?id=15303
          Remove now-redundant code to restore dialog arguments after clear

        This patch reverts the kjs_window.* parts of r25576 because following
        r25783, window properties, including dialog arguments, are not cleared
        when the newly created modal dialog transitions to the document.

        * bindings/js/kjs_window.cpp:
        (KJS::WindowPrivate::WindowPrivate):
        (KJS::createWindow):
        (KJS::showModalDialog):
        (KJS::Window::clear):
        (KJS::WindowFunc::callAsFunction):
        (KJS::Window::setReturnValueSlot):
        * bindings/js/kjs_window.h:

2007-10-14  Mitz Pettel  <mitz@webkit.org>

        Reviewed by Dave Hyatt.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15309
          <rdar://problem/5512020> Crash due to infinite recursion in RenderTable::addChild

        Test: fast/table/generated-caption.html

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::addChild): Changed to make sure that the child is
        not added into generated after content. Also made adding a child before
        a table caption work correctly instead of adding the child after the caption.

2007-10-14  Peter Kasting  <zerodpx@gmail.com>

        Reviewed by Maciej.

        http://bugs.webkit.org/show_bug.cgi?id=15141
        Feed GIF reader data from the point in the stream it expects.  Also,
        mirror the reader's failure state up to the wrapping decoder.

        * platform/image-decoders/gif/GIFImageReader.cpp:
        (GIFImageReader::read):

2007-10-14  Peter Kasting  <zerodpx@gmail.com>

        Reviewed by Maciej.

        http://bugs.webkit.org/show_bug.cgi?id=15142
        Return correct frame count in GIFImageDecoder::frameBufferAtIndex(),
        even if more data has arrived since the last decoding pass.

        * platform/image-decoders/gif/GIFImageDecoder.cpp:
        (WebCore::GIFImageDecoder::frameBufferAtIndex):

== Rolled over to ChangeLog-2007-10-14 ==
