1. 28 Mar, 2008 1 commit
    • ap@webkit.org's avatar
      Reviewed by Sam Weinig. · 8027278e
      ap@webkit.org authored
              Fix a dtoa thread safety issue.
      
              WebCore can call kjs_strtod without holding JS lock, but we didn't have thread safety
              compiled in for dtoa.
      
              This is a 0.5% regression on SunSpider, which Sam Weinig has volunteered to cover with
              his recent improvement.
      
              * kjs/dtoa.cpp:
              (Bigint::Balloc):
              (Bigint::Bfree):
              Changed to use fastMalloc/fastDelete - they are much faster than the dtoa custom version was
              in the presence of locking (but somewhat slower in single-threaded case).
              (Bigint::pow5mult): Got rid of the dreaded double-checked locking anti-pattern (had to
              restructure the code to avoid significant performance implications).
              (Bigint::lshift): Rewrote to avoid an allocation, if possible.
      
              (Bigint::rv_alloc):
              (Bigint::kjs_freedtoa):
              (Bigint::kjs_dtoa):
              Check for USE(MULTIPLE_THREADS), not dtoa legacy MULTIPLE_THREADS.
      
              * kjs/InitializeThreading.cpp: Added.
              (KJS::initializeThreading):
              * kjs/InitializeThreading.h: Added.
              Initialize threading at KJS level, if enabled.
      
              * kjs/dtoa.h: Expose dtoa mutex for KJS::initializeThreading.
      
              * kjs/testkjs.cpp: (kjsmain): Call initializeThreading.
      
              * JavaScriptCore.exp: Export KJS::initializeThreading.
      
              * GNUmakefile.am:
              * JavaScriptCore.exp:
              * JavaScriptCore.pri:
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
              * JavaScriptCoreSources.bkl:
              * JavaScriptCore.xcodeproj/project.pbxproj:
              Added InitializeThreading.{h,cpp}.
      
              * wtf/Threading.h: Removed a using directive for WTF::initializeThreading - it is only
              to be called from KJS::initializeThreading, and having it in the global namespace is useless.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31404 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8027278e
  2. 06 Mar, 2008 1 commit
    • darin@apple.com's avatar
      WebCore: · 2060803d
      darin@apple.com authored
              Reviewed by Mitz.
      
              - fix http://bugs.webkit.org/show_bug.cgi?id=17526
                REGRESSION: iframes are added to Safari's History menu
                by separating the visited link machinery from global history
      
              This should also make page loading faster due to more efficient visited link coloring.
      
              * WebCore.base.exp: Updated.
              * WebCore.vcproj/WebCore.vcproj: Added PageGroup.h/cpp, removed GlobalHistory.h/cpp.
              * WebCore.xcodeproj/project.pbxproj: Ditto. Also removed WebCoreHistory.h/m.
      
              * css/CSSStyleSelector.cpp: Updated includes.
              (WebCore::CSSStyleSelector::initElementAndPseudoState): Eliminated code to set
              currentEncodedURL.
              (WebCore::checkPseudoState): Moved most of the code inside a new
              PageGroup::isLinkVisited function.
              (WebCore::CSSStyleSelector::canShareStyleWithElement): Tightened code a bit by using
              references and only getting colors when needed.
              (WebCore::CSSStyleSelector::getColorFromPrimitiveValue): Ditto.
              * css/CSSStyleSelector.h: Removed EncodedURL, m_encodedURL, and setEncodedURL.
      
              * dom/Document.cpp:
              (WebCore::Document::attach): Removed call to setEncodedURL.
              (WebCore::Document::setURL): Ditto.
              (WebCore::Document::recalcStyleSelector): Ditto.
      
              * loader/FrameLoader.cpp:
              (WebCore::FrameLoader::addBackForwardItemClippedAtTarget): Changed code to use
              early exit idiom to be a little more readable.
              (WebCore::FrameLoader::urlsMatchItem): Change to use a reference for slightly
              better efficiency.
              (WebCore::FrameLoader::goToItem): Use early exit idiom to be a little more
              readable.
              (WebCore::FrameLoader::updateHistoryForStandardLoad): Moved history code back
              in here and got rid of the helper function updateGlobalHistory, restoring the
              logic before r30549. Also added a call to the new addVisitedLink function.
              (WebCore::FrameLoader::updateHistoryForClientRedirect): Added code to call
              addVisitedLink here.
              (WebCore::FrameLoader::updateHistoryForBackForwardNavigation): Removed comment.
              (WebCore::FrameLoader::updateHistoryForReload): Removed call to
              updateGlobalHistory; we can just go without updating global history or
              visited links here, at least for now, since it's not clear that a reload
              is a "history event".
              (WebCore::FrameLoader::updateHistoryForRedirectWithLockedHistory): Moved
              history code back where it was, and added the call to addVisitedLink, just
              as in updateHistoryForStandardLoad above.
              * loader/FrameLoader.h: Removed updateGlobalHistory function.
      
              * page/Chrome.cpp:
              (WebCore::ChromeClient::populateVisitedLinks): Added. Empty placeholder so we
              don't have to implement this for every port all at once.
              (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer): Changed to use the
              new PageGroup class.
              * page/ChromeClient.h: Added populateVisitedLinks function, used to fill the
              visited links set from the global history at application startup time.
      
              * page/FrameTree.cpp:
              (WebCore::FrameTree::find): Updated to use the new PageGroup class.
      
              * page/GlobalHistory.h: Removed.
              * page/win/GlobalHistoryWin.cpp: Removed.
              * page/mac/GlobalHistoryMac.mm: Removed.
              * platform/mac/WebCoreHistory.h: Removed.
              * platform/mac/WebCoreHistory.m: Removed.
              * platform/win/WebCoreHistory.cpp: Removed.
              * platform/win/WebCoreHistory.h: Removed.
      
              * page/Page.cpp:
              (WebCore::Page::Page): Set m_group to 0.
              (WebCore::Page::setGroupName): Set up m_group. If the page is not in any
              group, set it to 0 for now to postpone the cost of creating a group.
              (WebCore::Page::initGroup): Added. Sets m_group to point to a single-page
              group; used when getting a group.
              (WebCore::Page::removeAllVisitedLinks): Added. Calls removeVisitedLinks
              on all page groups.
              * page/Page.h: Moved enums inside the WebCore namespace. Removed the
              frameNamespace function and instead added the group and groupPtr functions.
      
              * page/PageGroup.cpp: Added. Contains all the visited code from the
              CSSStyleSelector in the isVisitedLink function, but more efficient because
              we don't allocate memory for the buffer.
              * page/PageGroup.h: Added.
      
              * platform/gtk/TemporaryLinkStubs.cpp: Removed historyContains.
              * platform/qt/TemporaryLinkStubs.cpp: Removed unneeded include.
              * platform/wx/TemporaryLinkStubs.cpp: Removed historyContains.
      
      WebKit:
      
              * WebKit.xcodeproj/project.pbxproj: Added WebHistoryInternal.h.
      
      WebKit/mac:
      
              Reviewed by Mitz.
      
              - fix http://bugs.webkit.org/show_bug.cgi?id=17526
                REGRESSION: iframes are added to Safari's History menu
                by separating the visited link machinery from global history
      
              * History/WebHistory.mm: Moved WebHistoryPrivate inside this file.
              (-[WebHistoryPrivate removeItemFromDateCaches:]): Removed the underscore from this
              method name, since it's on a private object.
              (-[WebHistoryPrivate removeItemForURLString:]): Added a call to the
              PageGroup::removeAllVisitedLinks function if the last URL was removed.
              (-[WebHistoryPrivate addItemToDateCaches:]): Removed the underscore from this
              method name, since it's on a private object.
              (-[WebHistoryPrivate removeAllItems]): Call PageGroup::removeAllVisitedLinks.
              (-[WebHistoryPrivate ageLimitDate]): Removed the underscore from this
              method name, since it's on a private object.
              (-[WebHistoryPrivate loadHistoryGutsFromURL:savedItemsCount:collectDiscardedItemsInto:error:]):
              Ditto.
              (-[WebHistoryPrivate saveHistoryGuts:URL:error:]): Ditto. Also changed this
              to correctly return the error by using the newer version of writeToURL: and
              removed the FIXME about that.
              (-[WebHistoryPrivate addVisitedLinksToPageGroup:]): Added. Calls addVisitedLink
              for every link in the history.
              (-[WebHistory saveToURL:error:]): Removed the FIXME, since we do get the error now.
              (-[WebHistory addItem:]): Moved into the WebPrivate category.
              (-[WebHistory addItemForURL:]): Ditto.
              (-[WebHistory _addItemForURL:title:]): Added. Used for the normal case where we
              create an item and already know its title.
              (-[WebHistory ageLimitDate]): Moved into the WebPrivate category.
              (-[WebHistory containsItemForURLString:]): Ditto.
              (-[WebHistory removeItem:]): Ditto.
              (-[WebHistory setLastVisitedTimeInterval:forItem:]): Ditto.
              (-[WebHistory _itemForURLString:]): Ditto.
              (-[WebHistory _addVisitedLinksToPageGroup:]): Added. For use only inside WebKit.
      
              * History/WebHistoryInternal.h: Added.
              * History/WebHistoryItemInternal.h: Tweaked formatting and includes.
              * History/WebHistoryPrivate.h: Moved the WebHistoryPrivate class out of this header.
              Also reorganized what was left behind.
      
              * WebCoreSupport/WebChromeClient.h: Added populateVisitedLinks.
              * WebCoreSupport/WebChromeClient.mm:
              (WebChromeClient::populateVisitedLinks): Added a call to the new
              -[WebHistory _addVisitedLinksToPageGroup:] method.
      
              * WebCoreSupport/WebFrameLoaderClient.mm:
              (WebFrameLoaderClient::updateGlobalHistory): Changed code to use the new
              -[WebHistory _addItemForURL:title:] method.
      
      WebKit/win:
      
              Reviewed by Mitz.
      
              - fix http://bugs.webkit.org/show_bug.cgi?id=17526
                REGRESSION: iframes are added to Safari's History menu
                by separating the visited link machinery from global history
      
              * WebCoreSupport/WebChromeClient.cpp:
              (WebChromeClient::populateVisitedLinks): Added a call to the new
              WebHistory::addVisitedLinksToPageGroup function.
              * WebCoreSupport/WebChromeClient.h: Added populateVisitedLinks.
              Also fixed the webView function to be non-virtual.
      
              * WebCoreSupport/WebFrameLoaderClient.cpp:
              (WebFrameLoaderClient::updateGlobalHistory): Changed to use the
              new WebHistory::addItem function.
              (WebFrameLoaderClient::webHistory): Changed to return a WebHistory*,
              there's no reason to AddRef the result from this function.
              * WebCoreSupport/WebFrameLoaderClient.h: Ditto.
      
              * WebHistory.cpp: Removed IWebHistoryPrivate and _WebCoreHistoryProvider.
              (WebHistory::QueryInterface): Removed IWebHistoryPrivate.
              (sharedHistoryStorage): Added.
              (WebHistory::sharedHistory): Added.
              (WebHistory::optionalSharedHistory): Changed to use sharedHistory().
              (WebHistory::setOptionalSharedHistory): Changed to require a WebHistory
              object, not just an IWebHistory.
              (WebHistory::removeAllItems): Call PageGroup::removeAllVisitedLinks.
              (WebHistory::addItem): Changed parameter types since this is called with
              arguments from WebCore -- at some point this could allow better efficiency.
              (WebHistory::removeItemForURLString):  Call PageGroup::removeAllVisitedLinks
              if the last URL is being removed.
              (addVisitedLinkToPageGroup): Added. Helper. Adds a single link to a group's
              visited link set.
              (WebHistory::addVisitedLinksToPageGroup): Added. Adds all links to a group's
              visited link.
              * WebHistory.h: Removed IWebHistoryPrivate. Removed optionalSharedHistoryInternal
              and added sharedHistory. Replaced addItemForURL and containsItemForURLString with
              non-virtual addItem and addVisitedLinksToPageGroup functions.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@30840 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2060803d
  3. 15 Feb, 2008 1 commit
    • mitz@apple.com's avatar
      WebCore: · 7f60f6b7
      mitz@apple.com authored
              Reviewed by Alexey Proskuryakov.
      
              - WebCore part of fixing http://bugs.webkit.org/show_bug.cgi?id=17360
                <rdar://problem/5743131> REGRESSION: mp4 file downloaded from server is downloaded as html
      
              Test: http/tests/loading/text-content-type-with-binary-extension.html
      
              Refined the workaround for <rdar://problem/5321972> to exclude files
              with extensions that are known to be associated with binary MIME types.
      
              * WebCore.xcodeproj/project.pbxproj: Added WebCoreURLResponse.{h,mm}.
              * platform/network/mac/ResourceResponseMac.mm:
              (WebCore::ResourceResponse::doUpdateResourceResponse): Moved the
              workaround logic into WebCoreURLResponse.
              * platform/network/mac/WebCoreURLResponse.h: Added.
              * platform/network/mac/WebCoreURLResponse.mm: Added.
              (createBinaryExtensionsSet): Returns a set of extensions known to
              belong to MIME types of binary data.
              (-[NSURLResponse _webcore_MIMEType]):
              (-[NSHTTPURLResponse _webcore_MIMEType]): Forces the MIME type from
              application/octet-stream to text/plain if that is the specified
              Content-Type, unless the extension is in the binary extensions set.
      
      WebKit/mac:
      
              Reviewed by Alexey Proskuryakov.
      
              - WebKit part of fixing http://bugs.webkit.org/show_bug.cgi?id=17360
                <rdar://problem/5743131> REGRESSION: mp4 file downloaded from server is downloaded as html
      
              * WebView/WebDataSource.mm:
              (+[WebDataSource _representationClassForMIMEType:]):
              (-[WebDataSource _responseMIMEType]):
              (-[WebDataSource subresources]):
              (-[WebDataSource subresourceForURL:]):
              * WebView/WebResource.mm:
              (-[WebResource _initWithData:URL:response:]):
              * WebView/WebResourcePrivate.h:
      
      LayoutTests:
      
              Reviewed by Alexey Proskuryakov.
      
              - test for http://bugs.webkit.org/show_bug.cgi?id=17360
                <rdar://problem/5743131> REGRESSION: mp4 file downloaded from server is downloaded as html
      
              * http/tests/loading/resources/.htaccess: Added.
              * http/tests/loading/resources/binaryData.m4a: Added.
              * http/tests/loading/text-content-type-with-binary-extension-expected.txt: Added.
              * http/tests/loading/text-content-type-with-binary-extension.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@30323 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7f60f6b7
  4. 12 Feb, 2008 1 commit
  5. 15 Nov, 2007 1 commit
    • beidson@apple.com's avatar
      WebCore: · 705db6e6
      beidson@apple.com authored
              Reviewed by John and Sam
      
              Stubbing out everything required for a WebKit API for databases
      
              Biggest change in WebCore is that we passed around SecurityOriginData as the representation
              of a SecurityOrigin, instead of a String or a SecurityOrigin itself (which is an opaque object
              that has a different purpose besides just hanging on to the data)
      
              * WebCore.base.exp:
              * WebCore.xcodeproj/project.pbxproj:
      
              * platform/SecurityOrigin.cpp:
              * platform/SecurityOrigin.h:
              * platform/SecurityOriginData.h: Added.  Simple object to encapsulate the 3
                pieces of data in the SecurityOrigin tuple
              (WebCore::SecurityOriginData::SecurityOriginData):
              (WebCore::SecurityOriginData::protocol):
              (WebCore::SecurityOriginData::host):
              (WebCore::SecurityOriginData::port):
              (WebCore::SecurityOriginData::toString): Simple concatenation of the 3 components,
                colon separated
      
              * storage/Database.cpp:
              (WebCore::Database::Database): Use SecurityOriginData instead
      
              * storage/DatabaseTracker.cpp:
              (WebCore::DatabaseTracker::fullPathForDatabase):
              (WebCore::DatabaseTracker::databaseNamesForOrigin):
              (WebCore::DatabaseTracker::deleteDatabasesWithOrigin):
              (WebCore::DatabaseTracker::deleteDatabase):
              * storage/DatabaseTracker.h:
      
              * storage/DatabaseTrackerClient.h: Added.  For dispatching notifications up to WebKit
              (WebCore::DatabaseTrackerClient::~DatabaseTrackerClient):
      
      WebKit:
      
              Reviewed by John
      
              Stubbing out everything required for a WebKit API for databases
      
              * WebKit.xcodeproj/project.pbxproj:
      
      WebKit/mac:
      
              Reviewed by John
      
              Stubbing out everything required for a WebKit API for databases
      
              These interfaces seem to provide everything we need for UI and management at the browser level
      
              * Misc/WebDatabaseManager.h: Removed.
              * Misc/WebDatabaseManager.mm: Removed.
              * Misc/WebDatabaseManagerPrivate.h: Removed.
      
              * Misc/WebSecurityOrigin.mm: Added. Object that acts as a container for the "SecurityOrigin tuple"
                (protocol, domain, and port)
              (-[WebSecurityOriginPrivate initWithProtocol:domain:port:]):
              (-[WebSecurityOriginPrivate dealloc]):
              (-[WebSecurityOrigin initWithProtocol:domain:]):
              (-[WebSecurityOrigin initWithProtocol:domain:port:]):
              (-[WebSecurityOrigin protocol]):
              (-[WebSecurityOrigin domain]):
              (-[WebSecurityOrigin port]):
              (-[WebSecurityOrigin dealloc]):
              (-[WebSecurityOrigin _initWithWebCoreSecurityOriginData:WebCore::]):
              * Misc/WebSecurityOriginInternal.h: Added.
              * Misc/WebSecurityOriginPrivate.h: Added.
      
              * Storage/WebDatabaseManager.mm: Added.
              (+[WebDatabaseManager sharedWebDatabaseManager]):
              (-[WebDatabaseManager origins]):  Get a list of all origins currently tracked
              (-[WebDatabaseManager detailsForOrigin:]): Get the current usage and current quota for the given origin
              (-[WebDatabaseManager databasesWithOrigin:]): Get all databases for a certain origin
              (-[WebDatabaseManager detailsForDatabase:withOrigin:]): Get all details about a specific database
              (-[WebDatabaseManager setQuota:forOrigin:]): Change origin-wide quota
              (-[WebDatabaseManager deleteAllDatabases]):
              (-[WebDatabaseManager deleteAllDatabasesWithOrigin:]):
              (-[WebDatabaseManager deleteDatabase:withOrigin:]):
              * Storage/WebDatabaseManagerPrivate.h: Added.
              * Storage/WebDatabaseManagerInternal.h: Added.
              (WebKitInitializeDatabasesIfNecessary): One-time initialization of database-related things
      
              * Storage/WebDatabaseTrackerClient.h: Added. Stubbed out client for notifications
              * Storage/WebDatabaseTrackerClient.mm: Added.
              (WebDatabaseTrackerClient::sharedWebDatabaseTrackerClient):
              (WebDatabaseTrackerClient::WebDatabaseTrackerClient):
              (WebDatabaseTrackerClient::~WebDatabaseTrackerClient):
              (WebDatabaseTrackerClient::dispatchDidModifyOrigin):
              (WebDatabaseTrackerClient::dispatchDidModifyDatabase):
      
              * WebView/WebView.mm:
              (-[WebView _commonInitializationWithFrameName:groupName:]): Do one-time initialization of
                Database-related things here
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@27821 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      705db6e6
  6. 06 Nov, 2007 1 commit
  7. 19 Oct, 2007 1 commit
    • beidson's avatar
      JavaScriptCore: · e5def340
      beidson authored
      2007-10-19  Brady Eidson  <beidson@apple.com>
      
              Reviewed by Sam
      
              Queue -> Deque! and small style tweaks
      
              * JavaScriptCore.vcproj/WTF/WTF.vcproj:
              * JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
              * wtf/Deque.h: Added.
              (WTF::DequeNode::DequeNode):
              (WTF::Deque::Deque):
              (WTF::Deque::~Deque):
              (WTF::Deque::size):
              (WTF::Deque::isEmpty):
              (WTF::Deque::append):
              (WTF::Deque::prepend):
              (WTF::Deque::first):
              (WTF::Deque::last):
              (WTF::Deque::removeFirst):
              (WTF::Deque::clear):
              * wtf/Queue.h: Removed.
      
      2007-10-19  Brady Eidson <beidson@apple.com>
      
              Reviewed by Oliver
      
              Added a simple LinkedList based Queue to wtf
              We can make a better, more sophisticated an efficient one later, but have
              needed one for some time, now!
      
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * wtf/Queue.h: Added.
              (WTF::QueueNode::QueueNode):
              (WTF::Queue::Queue):
              (WTF::Queue::~Queue):
              (WTF::Queue::size):
              (WTF::Queue::isEmpty):
              (WTF::Queue::append):
              (WTF::Queue::prepend):
              (WTF::Queue::first):
              (WTF::Queue::last):
              (WTF::Queue::removeFirst):
              (WTF::Queue::clear):
      
      WebCore:
      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):
      
      WebKit:
      
              Reviewed by Tim Hatcher
      
              Added support for Chrome prompts required by the Storage API
              Added support API for future managing of databases from the WebKit client
              Added preference and initialization for the databases path
      
              * Misc/WebDatabaseManager.h: Added.  WebDatabaseManager is how a WebKit application can list and
                remove the current available databases
              * Misc/WebDatabaseManager.mm: Added.
              (+[WebDatabaseManager origins]):
              (+[WebDatabaseManager databasesWithOrigin:]):
              (+[WebDatabaseManager deleteAllDatabases]):
              (+[WebDatabaseManager deleteAllDatabasesWithOrigin:]):
              (+[WebDatabaseManager deleteDatabaseWithOrigin:named:]):
              (WebKitSetWebDatabasesPathIfNecessary): Setup the database path
              * Misc/WebDatabaseManagerPrivate.h: Added.
      
              * WebCoreSupport/WebChromeClient.h: Support for calling the delegate to run the prompt for
                an origin exceeding its size limit
              * WebCoreSupport/WebChromeClient.mm:
              (WebChromeClient::runDatabaseSizeLimitPrompt):
              * WebKit.xcodeproj/project.pbxproj:
              * WebView/WebUIDelegate.h:
      
              * WebView/WebView.mm:
              (-[WebView _commonInitializationWithFrameName:groupName:]): Setup the database path
              * WebView/WebViewInternal.h:
      
      WebKitSite:
      
              Reviewed by Tim Hatcher
      
              Sample database API usage
      
              * misc/DatabaseExample.html: Added.
      
      WebKit/win:
      
              Reviewed by Anders
      
              Keep windows building with new Chrome additions
      
              * WebChromeClient.cpp:
              * WebChromeClient.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@26787 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e5def340
  8. 16 Jul, 2007 1 commit
    • kmccullo's avatar
      Reviewed by Sam. · c8d72539
      kmccullo authored
              - Modified files to use cross-platform code.
      
              * Drosera/DebuggerDocument.cpp: Added.
              (DebuggerDocument::breakpointEditorHTML):
              (DebuggerDocument::isPaused):
              (DebuggerDocument::pause):
              (DebuggerDocument::resume):
              (DebuggerDocument::stepInto):
              (DebuggerDocument::evaluateScript):
              (DebuggerDocument::currentFunctionStack):
              (DebuggerDocument::localScopeVariableNamesForCallFrame):
              (DebuggerDocument::valueForScopeVariableNamed):
              * Drosera/DebuggerDocument.h: Added.
              (DebuggerDocument::DebuggerDocument):
              * Drosera/config.h: Added.
              * Drosera/mac/DebuggerApplication.mm:
              (-[DebuggerApplication attach:]):
              * Drosera/mac/DebuggerDocument.h: Removed.
              * Drosera/mac/DebuggerDocument.mm: Removed.
              * Drosera/mac/DebuggerDocumentMac.h: Copied from Drosera/mac/DebuggerDocument.h.
              * Drosera/mac/DebuggerDocumentMac.mm: Copied from Drosera/mac/DebuggerDocument.mm.
              (-[DebuggerDocumentMac initWithServerName:]):
              (-[DebuggerDocumentMac dealloc]):
              (-[DebuggerDocumentMac breakpointEditorHTML]):
              (-[DebuggerDocumentMac isPaused]):
              (-[DebuggerDocumentMac pause]):
              (-[DebuggerDocumentMac resume]):
              * Drosera/mac/Drosera.xcodeproj/project.pbxproj:
              * Drosera/win/DebuggerApplication.cpp:
              * Drosera/win/DebuggerObjectCallbacks.cpp:
              (breakpointEditorHTMLCallback):
              (currentFunctionStackCallback):
              (evaluateScript_inCallFrame_Callback):
              (isPausedCallback):
              (localScopeVariableNamesForCallFrame_Callback):
              (pauseCallback):
              (resumeCallback):
              (stepIntoCallback):
              (valueForScopeVariableNamed_inCallFrame_Callback):
              (staticFunctions):
              * Drosera/win/Drosera.cpp:
              * Drosera/win/DroseraPrefix.cpp: Added.
              * Drosera/win/DroseraPrefix.h: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@24329 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c8d72539
  9. 18 Jun, 2007 2 commits
    • weinig's avatar
      WebCore: · 8b5bc0db
      weinig authored
              Reviewed by Beth.
      
              Fix build and update licenses. 
      
              * WebCore.xcodeproj/project.pbxproj:
              * page/BarInfo.cpp:
              * page/BarInfo.h:
              * page/BarInfo.idl:
              * page/Screen.cpp:
              (WebCore::Screen::height):
              (WebCore::Screen::width):
              (WebCore::Screen::colorDepth):
              (WebCore::Screen::pixelDepth):
              (WebCore::Screen::availLeft):
              (WebCore::Screen::availTop):
              (WebCore::Screen::availHeight):
              (WebCore::Screen::availWidth):
              * page/Screen.h:
              * page/Screen.idl:
      
      WebKit:
      
              Reviewed by Beth.
      
              Build fix.
      
              * WebCoreSupport/WebChromeClient.mm:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@23579 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8b5bc0db
    • weinig's avatar
      Reviewed by Geoff. · 6f399844
      weinig authored
              Patch for http://bugs.webkit.org/show_bug.cgi?id=14211
              Move the BarInfo object out of the JS bindings
      
              * DerivedSources.make:
              * WebCore.pro:
              * WebCore.vcproj/WebCore.vcproj:
              * WebCore.xcodeproj/project.pbxproj:
              * bindings/js/kjs_window.cpp:
              (KJS::WindowPrivate::WindowPrivate):
              (KJS::Window::mark):
              (KJS::Window::getValueProperty):
              (KJS::Window::clearHelperObjectProperties):
              (KJS::Window::disconnectFrame):
              * bindings/js/kjs_window.h:
              (KJS::Window::):
              * page/BarInfo.cpp: Added.
              (WebCore::BarInfo::BarInfo):
              (WebCore::BarInfo::disconnectFrame):
              (WebCore::BarInfo::visible):
              * page/BarInfo.h: Added.
              (WebCore::BarInfo::):
              * page/BarInfo.idl: Added.
              * page/DOMWindow.cpp:
              (WebCore::DOMWindow::~DOMWindow):
              (WebCore::DOMWindow::disconnectFrame):
              (WebCore::DOMWindow::locationbar):
              (WebCore::DOMWindow::menubar):
              (WebCore::DOMWindow::personalbar):
              (WebCore::DOMWindow::scrollbars):
              (WebCore::DOMWindow::statusbar):
              (WebCore::DOMWindow::toolbar):
              * page/DOMWindow.h:
              * page/DOMWindow.idl:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@23573 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6f399844
  10. 12 Jun, 2007 1 commit
  11. 07 Jul, 2006 1 commit
    • darin's avatar
      Reviewed by Adele. · 22a690e4
      darin authored
              - fix some license mistakes
      
              * LICENSE-APPLE: Added more years of publication to the copyright here.
      
              * html/CanvasGradient.idl: Corrected license on this file. It had the wrong one.
              * html/CanvasPattern.idl: Ditto.
              * html/CanvasRenderingContext2D.idl: Ditto.
              * html/HTMLCanvasElement.idl: Ditto.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@15215 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      22a690e4
  12. 20 Mar, 2006 2 commits
    • darin's avatar
      Reviewed by Geoff. · d18e72a9
      darin authored
              - http://bugzilla.opendarwin.org/show_bug.cgi?id=7867
                get rid of macro hacks for DOM, KDOM, KSVG, khtml, DOMString, QString
      
              * config.h: Remove the defines for DOM, KDOM, KSVG, khtml, DOMString, QString,
              and qstring().
      
              * WebCore.xcodeproj/project.pbxproj: Pass in WebCore instead of KSVG as the
              namespace for SVG names.
              * ksvg2/scripts/make_names.pl: Made a couple changes to trick the SVG names into
              recompiling, since they are in a different namespace now.
      
              * ForwardingHeaders/kjs/identifier.h: Added.
      
              * dom/PlatformWheelEvent.idl: Removed.
              * dom/WheelEvent.idl: Added. This file was renamed by accident.
      
              * bindings/js/JSDOMCore.cpp:
              * bindings/js/JSDOMEvents.cpp:
              * bindings/js/JSDOMHTML.cpp:
              * dom/Attr.idl:
              * dom/CharacterData.idl:
              * dom/DOMImplementation.idl:
              * dom/DocumentType.idl:
              * dom/Element.idl:
              * dom/Entity.idl:
              * dom/MutationEvent.idl:
              * dom/Notation.idl:
              * dom/ProcessingInstruction.idl:
              * dom/Text.idl:
              * html/CanvasGradient.idl:
              * html/CanvasPattern.idl:
              * html/CanvasRenderingContext2D.idl:
              Touched, to get CodeGeneratorJS.pm changes to take effect.
       
              * css/CSSGrammar.y:
              * css/css_valueimpl.cpp: (WebCore::propertyID):
              Changed calls to get CSS property values to use an explicit SVG:: namespace,
              to match what the script writes out.
      
              * khtml/ecma/kjs_binding.h: Added forward declaration of WebCore::String.
      
              * ksvg2/scripts/cssmakeget rid of macro hacks for DOM, KDOM, KSVG, khtml, DOMString, QString
                props: Made this compile with warnings and strict turned on.
              Really just a trick to get properties to recompile, which turned out to be unneeded.
              * ksvg2/scripts/cssmakevalues: Ditto.
      
              * ksvg2/svg/SVGAElement.cpp:
              (SVGAElement::parseMappedAttribute):
              (SVGAElement::defaultEventHandler):
              * ksvg2/svg/SVGAnimateTransformElement.cpp:
              (SVGAnimateTransformElement::parseMappedAttribute):
              * ksvg2/svg/SVGAnimationElement.cpp:
              (SVGAnimationElement::parseMappedAttribute):
              * ksvg2/svg/SVGClipPathElement.cpp:
              (SVGClipPathElement::parseMappedAttribute):
              * ksvg2/svg/SVGComponentTransferFunctionElement.cpp:
              (SVGComponentTransferFunctionElement::parseMappedAttribute):
              * ksvg2/svg/SVGExternalResourcesRequired.cpp:
              (SVGExternalResourcesRequired::parseMappedAttribute):
              * ksvg2/svg/SVGFEBlendElement.cpp:
              (SVGFEBlendElement::parseMappedAttribute):
              * ksvg2/svg/SVGFEColorMatrixElement.cpp:
              (SVGFEColorMatrixElement::parseMappedAttribute):
              * ksvg2/svg/SVGFEComponentTransferElement.cpp:
              (SVGFEComponentTransferElement::parseMappedAttribute):
              * ksvg2/svg/SVGFECompositeElement.cpp:
              (SVGFECompositeElement::parseMappedAttribute):
              * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
              (WebCore::SVGFEDiffuseLightingElement::parseMappedAttribute):
              * ksvg2/svg/SVGFEDisplacementMapElement.cpp:
              (SVGFEDisplacementMapElement::SVGFEDisplacementMapElement):
              (SVGFEDisplacementMapElement::stringToChannel):
              (SVGFEDisplacementMapElement::parseMappedAttribute):
              (SVGFEDisplacementMapElement::filterEffect):
              * ksvg2/svg/SVGFEDisplacementMapElement.h:
              * ksvg2/svg/SVGFEFloodElement.cpp:
              (SVGFEFloodElement::parseMappedAttribute):
              * ksvg2/svg/SVGFEGaussianBlurElement.cpp:
              (SVGFEGaussianBlurElement::parseMappedAttribute):
              * ksvg2/svg/SVGFEImageElement.cpp:
              (SVGFEImageElement::parseMappedAttribute):
              * ksvg2/svg/SVGFELightElement.cpp:
              (SVGFELightElement::parseMappedAttribute):
              * ksvg2/svg/SVGFEMergeNodeElement.cpp:
              (SVGFEMergeNodeElement::parseMappedAttribute):
              * ksvg2/svg/SVGFEOffsetElement.cpp:
              (SVGFEOffsetElement::parseMappedAttribute):
              * ksvg2/svg/SVGFESpecularLightingElement.cpp:
              (SVGFESpecularLightingElement::parseMappedAttribute):
              * ksvg2/svg/SVGFETileElement.cpp:
              (SVGFETileElement::parseMappedAttribute):
              * ksvg2/svg/SVGFETurbulenceElement.cpp:
              (SVGFETurbulenceElement::parseMappedAttribute):
              * ksvg2/svg/SVGFilterElement.cpp:
              (SVGFilterElement::parseMappedAttribute):
              * ksvg2/svg/SVGGradientElement.cpp:
              (SVGGradientElement::parseMappedAttribute):
              * ksvg2/svg/SVGMaskElement.cpp:
              (WebCore::SVGMaskElement::parseMappedAttribute):
              * ksvg2/svg/SVGPolyElement.cpp:
              (SVGPolyElement::parseMappedAttribute):
              * ksvg2/svg/SVGStopElement.cpp:
              (SVGStopElement::parseMappedAttribute):
              * ksvg2/svg/SVGStyledElement.cpp:
              (WebCore::SVGStyledElement::parseMappedAttribute):
              * ksvg2/svg/SVGTests.cpp:
              (WebCore::SVGTests::parseMappedAttribute):
              * ksvg2/svg/SVGTextContentElement.cpp:
              (SVGTextContentElement::parseMappedAttribute):
              * ksvg2/svg/SVGTextPositioningElement.cpp:
              (SVGTextPositioningElement::parseMappedAttribute):
              * ksvg2/svg/SVGViewElement.cpp:
              (SVGViewElement::parseMappedAttribute):
              * ksvg2/svg/SVGZoomAndPan.cpp:
              (SVGZoomAndPan::parseMappedAttribute):
              Changed code that converts an AtomicString to a String to do it in a
              more-efficient fashion that works even with all the new conversions.
      
              * page/Frame.cpp:
              (WebCore::getString): Removed unneeded .deprecatedString().
              (WebCore::Frame::begin): Removed the only use of QSTRING_NULL.
      
              * platform/AtomicString.h: Added conversion to and from KJS::Identifier
              and KJS::UString.
              * platform/AtomicString.cpp:
              (WebCore::AtomicString::add): Added overloads for Identifier and UString.
              (WebCore::AtomicString::operator Identifier): Added.
              (WebCore::AtomicString::operator UString): Added.
      
              * platform/DeprecatedString.h: Added conversion to and from KJS::Identifier
              and KJS::UString.
              * platform/DeprecatedString.cpp:
              (DeprecatedString::DeprecatedString): Added overloads for Identifier and UString.
              (DeprecatedString::operator Identifier): Added.
              (DeprecatedString::operator UString): Added.
      
              * platform/PlatformString.h: Added conversion to and from KJS::Identifier
              and KJS::UString.
              * platform/String.cpp:
              (WebCore::String::String): Added overloads for Identifier and UString.
              (WebCore::String::operator Identifier): Added.
              (WebCore::String::operator UString): Added.
      
              * platform/StringImpl.h: Added constructors that take KJS::Identifier
              and KJS::UString
              * platform/StringImpl.cpp:
              (WebCore::getWordBreakIterator): Changed a use of UChar to say ::UChar
              instead because of ambiguity with KJS::UChar.
              (WebCore::StringImpl::StringImpl): Added overloads for Identifier and String.
      
              * bindings/js/JSCanvasRenderingContext2DBase.cpp:
              (WebCore::JSCanvasRenderingContext2DBaseProtoFunc::callAsFunction):
              (WebCore::toHTMLCanvasStyle):
              * bindings/scripts/CodeGeneratorJS.pm:
              * bridge/mac/WebCoreFrameBridge.mm:
              (aeDescFromJSValue):
              (-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
              * dom/QualifiedName.cpp:
              (WebCore::QualifiedName::toString):
              * khtml/ecma/JSDOMParser.cpp:
              (KJS::DOMParserProtoFunc::callAsFunction):
              * khtml/ecma/JSXMLHttpRequest.cpp:
              (KJS::JSXMLHttpRequestProtoFunc::callAsFunction):
              * khtml/ecma/JSXSLTProcessor.cpp:
              (KJS::XSLTProcessorProtoFunc::callAsFunction):
              * khtml/ecma/kjs_binding.cpp:
              (KJS::valueToStringWithNullCheck):
              * khtml/ecma/kjs_css.cpp:
              (KJS::cssPropertyName):
              (KJS::DOMCSSStyleDeclaration::put):
              (KJS::DOMCSSStyleDeclarationProtoFunc::callAsFunction):
              (KJS::DOMStyleSheetList::nameGetter):
              (KJS::DOMStyleSheetList::getOwnPropertySlot):
              (KJS::DOMMediaList::put):
              (KJS::KJS::DOMMediaListProtoFunc::callAsFunction):
              (KJS::DOMCSSStyleSheetProtoFunc::callAsFunction):
              (KJS::DOMCSSRule::putValueProperty):
              (KJS::DOMCSSRuleFunc::callAsFunction):
              (KJS::DOMCSSValue::put):
              (KJS::DOMCSSPrimitiveValueProtoFunc::callAsFunction):
              * khtml/ecma/kjs_dom.cpp:
              (KJS::DOMNode::putValueProperty):
              (KJS::DOMNode::toString):
              (KJS::DOMNodeProtoFunc::callAsFunction):
              (KJS::DOMEventTargetNodeProtoFunc::callAsFunction):
              (KJS::DOMNodeList::nameGetter):
              (KJS::DOMNodeList::getOwnPropertySlot):
              (KJS::DOMDocument::putValueProperty):
              (KJS::DOMDocumentProtoFunc::callAsFunction):
              (KJS::DOMElement::attributeGetter):
              (KJS::DOMElement::getOwnPropertySlot):
              (KJS::DOMNamedNodeMap::nameGetter):
              (KJS::DOMNamedNodeMap::getOwnPropertySlot):
              (KJS::DOMNamedNodeMapProtoFunc::callAsFunction):
              (KJS::DOMNamedNodesCollection::getOwnPropertySlot):
              * khtml/ecma/kjs_events.cpp:
              (KJS::JSAbstractEventListener::handleEvent):
              (KJS::DOMEvent::getValueProperty):
              (KJS::DOMEventProtoFunc::callAsFunction):
              (KJS::DOMUIEventProtoFunc::callAsFunction):
              (KJS::DOMMouseEventProtoFunc::callAsFunction):
              (KJS::DOMKeyboardEventProtoFunc::callAsFunction):
              (KJS::Clipboard::putValueProperty):
              (KJS::ClipboardProtoFunc::callAsFunction):
              * khtml/ecma/kjs_html.cpp:
              (KJS::HTMLDocFunction::callAsFunction):
              (KJS::JSHTMLDocument::namedItemGetter):
              (KJS::JSHTMLDocument::getOwnPropertySlot):
              (KJS::JSHTMLDocument::putValueProperty):
              (KJS::JSHTMLElement::framesetNameGetter):
              (KJS::JSHTMLElement::getOwnPropertySlot):
              (KJS::HTMLElementFunction::callAsFunction):
              (KJS::JSHTMLElement::putValueProperty):
              (KJS::JSHTMLCollection::callAsFunction):
              (KJS::JSHTMLCollection::getNamedItems):
              (KJS::HTMLCollectionProtoFunc::callAsFunction):
              (KJS::OptionConstructorImp::construct):
              * khtml/ecma/kjs_navigator.cpp:
              (KJS::Plugins::nameGetter):
              (KJS::Plugins::getOwnPropertySlot):
              (KJS::MimeTypes::nameGetter):
              (KJS::MimeTypes::getOwnPropertySlot):
              (KJS::Plugin::nameGetter):
              (KJS::Plugin::getOwnPropertySlot):
              * khtml/ecma/kjs_proxy.cpp:
              (WebCore::KJSProxy::evaluate):
              * khtml/ecma/kjs_range.cpp:
              (KJS::DOMRangeProtoFunc::callAsFunction):
              * khtml/ecma/kjs_views.cpp:
              (KJS::DOMAbstractViewProtoFunc::callAsFunction):
              * khtml/ecma/kjs_window.cpp:
              (KJS::parseModalDialogFeatures):
              (KJS::showModalDialog):
              (KJS::Window::childFrameGetter):
              (KJS::Window::namedFrameGetter):
              (KJS::Window::namedItemGetter):
              (KJS::Window::getOwnPropertySlot):
              (KJS::Window::put):
              (KJS::WindowFunc::callAsFunction):
              (KJS::ScheduledAction::execute):
              (KJS::Window::installTimeout):
              (KJS::FrameArray::nameGetter):
              (KJS::FrameArray::getOwnPropertySlot):
              (KJS::Location::put):
              (KJS::LocationFunc::callAsFunction):
              (KJS::SelectionFunc::callAsFunction):
              Removed explicit calls to domString(), sometimes replacing with explicit calls to the
              String() constructor. Other similar changes for AtomicString and DeprecatedString use.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@13405 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d18e72a9
    • darin's avatar
      Reviewed by Anders. · bd62eba1
      darin authored
              - http://bugzilla.opendarwin.org/show_bug.cgi?id=7875
                autogenerate bindings for Range
      
              * dom/Range.idl: Added.
              * khtml/ecma/kjs_range.cpp: Removed.
              * khtml/ecma/kjs_range.h: Removed.
      
              * WebCore.vcproj/WebCore/build-generated-files.sh: Removed code to generate
              kjs_range.lut.h.
      
              * WebCore.xcodeproj/project.pbxproj: Added Range.idl source file.
              Removed kjs_range.h and kjs_range.cpp source files. Sorted the "dom" group.
              Removed rule to generate kjs_range.lut.h.
      
              * bindings/js/JSDOMCore.cpp: Added include of JSRange.cpp.
      
              * bindings/scripts/CodeGeneratorJS.pm: Added DocumentFragment, Range, CompareHow,
              and short to the types this script can handle. Added code to generate toRange
              functions and the like. Added separate code to handle exceptions for getters
              vs. setters for attributes. Changed return values for the "bad ID" case to 0
              -- there's no need to generate the extra code to return jsUndefined() in such
              cases, which should be unreachable. Changed exception handling to use setDOMException
              directly instead of DOMExceptionTranslator; DOMExceptionTranslator was a trick
              to make it easier to convert existing bindings and shouldn't be used going
              forward. Fixed names of constructors to use the JavaScript class name (the
              interface name), not the name of the C++ implementation class. Fixed generation
              of code for functions that have no parameters but do raise exceptions.
      
              * bindings/scripts/IDLParser.pm: Added parsing for separate getter and setter
              exceptions in attributes. The syntax is not real IDL, but real IDL doesn't support
              declaring exceptions on attributes at all. We'll probably want to revisit our
              syntax for this some day.
      
              * bindings/scripts/IDLStructure.pm: Removed unused exceptionName field from
              domAttribute, and replaced raisesExceptions field with getterExceptions and
              setterExceptions. Added regular expressions for parsing getter/setter syntax.
              We'll probably have to redo this whole thing parse in a better way at some
              point -- the regular expressions allow any invalid syntax in between them.
      
              * dom/Attr.idl: Change exception declaration for setting the value attribute
              to use setter-specific exception syntax.
              * dom/CharacterData.idl: Change exception declaration for setting the data
              attribute to use setter-specific exception syntax.
              * dom/ProcessingInstruction.idl: Change exception declaration for setting the
              data attribute to use setter-specific exception syntax.
      
              * khtml/ecma/kjs_dom.cpp: Include JSRange.h instead of kjs_range.h.
              * khtml/ecma/kjs_window.cpp: Include JSRange.h instead of kjs_range.h.
              (KJS::Window::getValueProperty): Use JSRange::getConstructor instead of
              getRangeConstructor.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@13400 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bd62eba1
  13. 19 Mar, 2006 1 commit
  14. 16 Mar, 2006 2 commits
    • darin's avatar
      Oops, these files were supposed to go in. · ecc95eb8
      darin authored
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@13330 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ecc95eb8
    • darin's avatar
      Reviewed by Hyatt. · 991c938e
      darin authored
              - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7749
                canvas should be in DOM, not implemented in the JS bindings
      
              * WebCore.xcodeproj/project.pbxproj: Added new files.
              Changed bindings-generation code to work on the new html directory
              as well as the dom one.
      
              * bindings/js/JSCanvasRenderingContext2DBase.cpp: Added.
              * bindings/js/JSCanvasRenderingContext2DBase.h: Added.
              * bindings/js/JSDOMHTML.cpp: Added.
              * html: Added.
              * html/CanvasGradient.cpp: Added.
              * html/CanvasGradient.h: Added.
              * html/CanvasGradient.idl: Added.
              * html/CanvasPattern.cpp: Added.
              * html/CanvasPattern.h: Added.
              * html/CanvasPattern.idl: Added.
              * html/CanvasRenderingContext2D.cpp: Added.
              * html/CanvasRenderingContext2D.h: Added.
              * html/CanvasRenderingContext2D.idl: Added.
              * html/CanvasStyle.cpp: Added.
              * html/CanvasStyle.h: Added.
      
              * bindings/js/JSDOMCore.cpp: Touched so that it will recompile.
              * bindings/js/JSDOMEvents.cpp: Ditto.
              * dom/Attr.idl: Ditto.
              * dom/DOMImplementation.idl: Ditto.
              * dom/DocumentType.idl: Ditto.
              * dom/MutationEvent.idl: Ditto.
              * dom/ProcessingInstruction.idl: Ditto.
              * dom/Text.idl: Ditto.
      
              * khtml/ecma/kjs_binding.h: (KJS::toJS): Added. Template so that you can call
              toJS on a PassRefPtr as well as on a raw pointer.
      
              * bindings/scripts/CodeGeneratorJS.pm: Fixed handling of a class that has only
              a legacy parent, no conventional parents. Added JSCanvasRenderingContext2DBase
              as a legacy parent, and html as a legacy module. Added CanvasRenderingContext2D,
              CanvasGradient, and CanvasPattern to the "waht to include". Added a special
              case for strings beginning with Canvas to not add an "Impl" suffix. Made the
              generated impl() function be a const member function. Made m_mimpl be private
              instead of protected. Generate a toJS function for each class. Added flaot as
              a type. Generate String, not DOMString. Made the HashTable const.
      
              * bindings/scripts/IDLParser.pm: Fix a couple small things. I had started to
              try to make a missing semicolon trigger an error, but ended up giving up on
              that for now.
      
              * khtml/html/html_canvasimpl.h:
              * khtml/html/html_canvasimpl.cpp:
              (WebCore::HTMLCanvasElementImpl::HTMLCanvasElementImpl): Set m_2DContext to 0.
              (WebCore::HTMLCanvasElementImpl::~HTMLCanvasElementImpl): Call detachCanvas
              on m_2DContext, if any.
              (WebCore::HTMLCanvasElementImpl::detach): Call reset on m_2DContext, if any.
              (WebCore::HTMLCanvasElementImpl::getContext): Added.
              (WebCore::HTMLCanvasElementImpl::size): Added.
              (WebCore::HTMLCanvasElementImpl::createPlatformImage): Added.
      
              * platform/Image.h:
              * platform/Image.cpp: (WebCore::Image::compositeOperatorFromString):
              Changed to take a String instead of a const char*.
      
              * khtml/html/html_imageimpl.h:
              * khtml/html/html_imageimpl.cpp: (WebCore::HTMLMapElementImpl::areas):
              Tweaked formatting. Changed to use PassRefPtr.
      
              * bindings/objc/DOMInternal.mm: (-[WebScriptObject _initializeScriptDOMNodeImp]):
              * khtml/ecma/JSXMLHttpRequest.cpp: (KJS::JSXMLHttpRequest::getValueProperty):
              * khtml/ecma/XSLTProcessor.cpp: (KJS::XSLTProcessorProtoFunc::callAsFunction):
              * khtml/ecma/domparser.cpp: (KJS::DOMParserProtoFunc::callAsFunction):
              * khtml/ecma/kjs_css.cpp:
              (KJS::DOMCSSStyleDeclaration::getValueProperty):
              (KJS::DOMCSSStyleDeclarationProtoFunc::callAsFunction):
              (KJS::toJS):
              (KJS::DOMStyleSheet::getValueProperty):
              (KJS::DOMStyleSheetList::indexGetter):
              (KJS::DOMStyleSheetList::nameGetter):
              (KJS::DOMStyleSheetListFunc::callAsFunction):
              (KJS::DOMCSSStyleSheet::getValueProperty):
              (KJS::DOMCSSRuleList::indexGetter):
              (KJS::DOMCSSRuleListFunc::callAsFunction):
              (KJS::DOMCSSRule::getValueProperty):
              (KJS::DOMCSSPrimitiveValueProtoFunc::callAsFunction):
              (KJS::DOMCSSValueList::indexGetter):
              (KJS::DOMCSSValueListFunc::callAsFunction):
              (KJS::DOMRect::getValueProperty):
              * khtml/ecma/kjs_css.h:
              * khtml/ecma/kjs_dom.cpp:
              (KJS::DOMNode::getValueProperty):
              (KJS::DOMNodeProtoFunc::callAsFunction):
              (KJS::DOMNodeList::indexGetter):
              (KJS::DOMNodeList::nameGetter):
              (KJS::DOMNodeList::callAsFunction):
              (KJS::DOMNodeListFunc::callAsFunction):
              (KJS::DOMDocument::getValueProperty):
              (KJS::DOMDocumentProtoFunc::callAsFunction):
              (KJS::DOMNamedNodeMap::indexGetter):
              (KJS::DOMNamedNodeMap::nameGetter):
              (KJS::DOMNamedNodeMapProtoFunc::callAsFunction):
              (KJS::toJS):
              (KJS::DOMNamedNodesCollection::indexGetter):
              * khtml/ecma/kjs_dom.h:
              * khtml/ecma/kjs_events.cpp:
              (KJS::JSAbstractEventListener::handleEvent):
              (KJS::JSLazyEventListener::parseCode):
              (KJS::DOMEvent::getValueProperty):
              (KJS::toJS):
              (KJS::DOMUIEvent::getValueProperty):
              (KJS::DOMMouseEvent::getValueProperty):
              * khtml/ecma/kjs_events.h:
              * khtml/ecma/kjs_html.cpp:
              (KJS::HTMLDocFunction::callAsFunction):
              (KJS::HTMLDocument::namedItemGetter):
              (KJS::HTMLDocument::getValueProperty):
              (KJS::HTMLDocument::put):
              (KJS::HTMLDocument::putValueProperty):
              (KJS::HTMLElement::classInfo):
              (KJS::HTMLElement::formIndexGetter):
              (KJS::HTMLElement::selectIndexGetter):
              (KJS::HTMLElement::implementsCall):
              (KJS::HTMLElement::callAsFunction):
              (KJS::HTMLElement::linkGetter):
              (KJS::HTMLElement::isIndexGetter):
              (KJS::HTMLElement::styleGetter):
              (KJS::HTMLElement::selectGetter):
              (KJS::HTMLElement::optionGetter):
              (KJS::HTMLElement::inputGetter):
              (KJS::HTMLElement::textAreaGetter):
              (KJS::HTMLElement::buttonGetter):
              (KJS::HTMLElement::labelGetter):
              (KJS::HTMLElement::fieldSetGetter):
              (KJS::HTMLElement::legendGetter):
              (KJS::HTMLElement::objectGetter):
              (KJS::HTMLElement::tableGetter):
              (KJS::HTMLElement::frameGetter):
              (KJS::HTMLElement::iFrameGetter):
              (KJS::HTMLElement::getValueProperty):
              (KJS::HTMLElement::toString):
              (KJS::HTMLElement::pushEventHandlerScope):
              (KJS::toJS):
              (KJS::HTMLElementFunction::callAsFunction):
              (KJS::HTMLElement::put):
              (KJS::HTMLCollection::indexGetter):
              (KJS::HTMLCollection::callAsFunction):
              (KJS::HTMLCollection::getNamedItems):
              (KJS::HTMLCollectionProtoFunc::callAsFunction):
              (KJS::HTMLSelectCollection::put):
              (KJS::OptionConstructorImp::construct):
              (KJS::ImageConstructorImp::construct):
              * khtml/ecma/kjs_html.h:
              * khtml/ecma/kjs_proxy.cpp: (WebCore::KJSProxyImpl::evaluate):
              * khtml/ecma/kjs_range.cpp:
              (KJS::DOMRange::getValueProperty):
              (KJS::DOMRangeProtoFunc::callAsFunction):
              (KJS::toJS):
              * khtml/ecma/kjs_range.h:
              * khtml/ecma/kjs_traversal.cpp:
              (KJS::DOMNodeIterator::getValueProperty):
              (KJS::DOMNodeIteratorProtoFunc::callAsFunction):
              (KJS::toJS):
              (KJS::DOMTreeWalker::getValueProperty):
              (KJS::DOMTreeWalkerProtoFunc::callAsFunction):
              (KJS::JSNodeFilterCondition::acceptNode):
              * khtml/ecma/kjs_traversal.h:
              * khtml/ecma/kjs_views.cpp:
              (KJS::DOMAbstractView::getValueProperty):
              (KJS::DOMAbstractViewProtoFunc::callAsFunction):
              (KJS::toJS):
              * khtml/ecma/kjs_views.h:
              * khtml/ecma/kjs_window.cpp:
              (KJS::Window::getValueProperty):
              (KJS::Window::namedItemGetter):
              (KJS::Selection::getValueProperty):
              (KJS::SelectionFunc::callAsFunction):
              Rename uses and definitions of all the various converstions to JavaScript
              wrappers to the new common overloaded name: "toJS".
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@13329 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      991c938e
  15. 06 Mar, 2006 1 commit
    • darin's avatar
      Reviewed by Maciej. · 8d1badc7
      darin authored
              - moved all the remnants of the public C++ DOM API out of khtml/dom
              - changed from "int" to "ExceptionCode" for DOM exceptions
              - removed unused CSS_HTML_RELATIVE
              - changed offsetInCharacters to be a member function of NodeImpl
              - changed DOM functions that take a NodeType to use NodeType instead of
                unsigned short for clarity (will still be unsigned short in bindings)
              - changed exception constants so they can be used directly in the
                implementation code (added in the offsets for different types of exceptions)
              - replaced the eventListenerType function with an isHTMLEventListener function
              - got rid of EventListenerEvent, which is a synonym for EventImpl*
              - eliminated handleEventImpl, whish is now the same as handleEvent
      
              - did other preparation for the "remove Impl suffix" renaming
                (tested by using a script that does the renaming)
      
              * khtml/dom/css_rule.h: Removed.
              * khtml/dom/css_stylesheet.h: Removed.
              * khtml/dom/css_value.h: Removed.
              * khtml/dom/dom2_events.cpp: Removed.
              * khtml/dom/dom2_events.h: Removed.
              * khtml/dom/dom2_range.h: Removed.
              * khtml/dom/dom2_traversal.cpp: Removed.
              * khtml/dom/dom2_traversal.h: Removed.
              * khtml/dom/dom_exception.h: Removed.
              * khtml/dom/dom_node.h: Removed.
      
              * dom/EventListener.h: Added.
              * dom/ExceptionCode.h: Added.
      
              * WebCore+SVG/kdom.h: Removed NodeType and ExceptionCodes
              * WebCore+SVG/kdomevents.h: Removed.
      
              * WebCore.xcodeproj/project.pbxproj: Updated for file changes.
              * WebCore.xcodeproj/project.pbxproj: Updated for file changes.
      
              * bindings/scripts/CodeGeneratorJS.pm: Removed unneeded DOM:: prefix. Updated file
              names and exception prefix for changes in DOM exceptions.
      
              * bindings/js/JSDOMCore.cpp: Touched to cause auto-generated code to be
              recompiled. We need to get this fixed!
              * bindings/js/JSDOMEvents.cpp: Ditto.
      
              * dom/Attr.idl:
              * dom/CharacterData.idl:
              * dom/DOMImplementation.idl:
              * dom/DocumentType.idl:
              * dom/Element.idl:
              * dom/Entity.idl:
              * dom/MutationEvent.idl:
              * dom/Notation.idl:
              * dom/ProcessingInstruction.idl:
              * dom/Text.idl:
              * dom/WheelEvent.idl:
              Touched all IDL files so that changes in CodeGeneratorJS.pm would take effect.
              Added license headers.
      
              * bindings/objc/DOM.mm: Fixed garbled license agreement. Updated includes.
              Changed from a single "using namespace WebCore" to individual using statements
              because of the imminent conflict between DOMImplementation in Objective C
              and WebCore::DOMImplementation (currently has an Impl suffix). Added a typedef
              for WebCore::DOMImplementationImpl. Changed to use ExceptionCode instead of int.
      
              * bindings/objc/DOMCSS.h: Removed DOMCSSException and the special CSS exception
              codes. This is a feature of DOM Level 1 only. In DOM Level 2 these were eliminated
              and use basic DOM exception codes instead. We might have to do something for binary
              compatibility eventually, but perhaps not.
      
              * bindings/objc/DOMCSS.mm:
              * bindings/objc/DOMEvents.mm:
              * bindings/objc/DOMEventsInternal.h:
              * bindings/objc/DOMHTML.mm:
              * bindings/objc/DOMHTMLInternal.h:
              * bindings/objc/DOMViews.mm:
              * bindings/objc/DOMViewsInternal.h:
              Fixed garbled license agreements.
              Changed to use ExceptionCode instead of int and name the variable "ec".
      
              * bindings/objc/DOMInternal.h: Changed addDOMWrapperImpl to take NSObject* instead
              of id. This helps with overload resolution when addDOMWrapperImpl is renamed to be
              addDOMWrapper. Changed ALLOW_DOM_CAST to always use "class" in from of the type name
              of the WebCore class. This helps work around what seems like a bug in namespace support
              in Objective-C mode, although the bug only happens after the "remove Impl" renaming.
              * bindings/objc/DOMInternal.mm:
              (getDOMWrapperImpl): Changed to use HashMap.
              (addDOMWrapperImpl): Ditto.
              (removeDOMWrapper): Ditto.
              (raiseDOMException): Update to use new names for exception number ranges.
      
              * bridge/mac/WebCoreFrameBridge.mm:
              * khtml/ecma/xmlserializer.cpp:
              * kwq/KWQAccObject.mm:
              Removed unneeded includes.
      
              * css/css_ruleimpl.h: Moved "rule type" into this header.
      
              * dom/CommentImpl.h:
              * dom/CommentImpl.cpp: (WebCore::CommentImpl::offsetInCharacters): Added. Returns true.
      
              * khtml/ecma/XSLTProcessor.cpp: (KJS::XSLTProcessorProtoFunc::callAsFunction):
              Changed this around so we don't have a local variable named docImpl.
      
              * khtml/ecma/kjs_binding.cpp: (KJS::setDOMException): Updated for new form of exception
              constants.
      
              * khtml/ecma/kjs_events.h:
              * khtml/ecma/kjs_events.cpp:
              (KJS::JSAbstractEventListener::handleEvent): Changed to no longer use EventListenerEvent.
              (KJS::JSAbstractEventListener::isHTMLEventListener): Added.
      
              * rendering/RenderTextField.h: Updated includes. Tweaked the code formatting of
              InputMutationListener. (Might be unnecessary since this class might be deleted soon.)
      
              * bridge/mac/MacFrame.mm:
              * css/css_computedstyle.cpp:
              * css/css_computedstyle.h:
              * css/css_ruleimpl.cpp:
              * css/css_stylesheetimpl.cpp:
              * css/css_stylesheetimpl.h:
              * css/css_valueimpl.cpp:
              * css/css_valueimpl.cpp:
              * css/css_valueimpl.h:
              * css/css_valueimpl.h:
              * css/cssparser.cpp:
              * css/cssstyleselector.cpp:
              * dom/CDATASectionImpl.cpp:
              * dom/CDATASectionImpl.h:
              * dom/CharacterDataImpl.cpp:
              * dom/CharacterDataImpl.h:
              * dom/ContainerNodeImpl.cpp:
              * dom/DOMImplementationImpl.cpp:
              * dom/DocumentFragmentImpl.cpp:
              * dom/DocumentFragmentImpl.h:
              * dom/DocumentImpl.cpp:
              * dom/DocumentImpl.h:
              * dom/DocumentTypeImpl.cpp:
              * dom/DocumentTypeImpl.h:
              * dom/NamedNodeMapImpl.h:
              * dom/NodeImpl.cpp:
              * dom/NodeImpl.h:
              * dom/NodeListImpl.cpp:
              * dom/TextImpl.cpp:
              * dom/TextImpl.h:
              * dom/dom2_eventsimpl.cpp:
              * dom/dom2_eventsimpl.h:
              * dom/dom2_rangeimpl.cpp:
              * dom/dom2_rangeimpl.h:
              * dom/dom2_traversalimpl.cpp:
              * dom/dom2_traversalimpl.h:
              * dom/dom_elementimpl.cpp:
              * dom/dom_elementimpl.h:
              * dom/dom_position.cpp:
              * dom/dom_xmlimpl.cpp:
              * dom/dom_xmlimpl.h:
              * dom/xml_tokenizer.cpp:
              * editing/AppendNodeCommand.cpp:
              * editing/ApplyStyleCommand.cpp:
              * editing/CompositeEditCommand.cpp:
              * editing/DeleteFromTextNodeCommand.cpp:
              * editing/InsertIntoTextNodeCommand.cpp:
              * editing/InsertLineBreakCommand.cpp:
              * editing/InsertNodeBeforeCommand.cpp:
              * editing/InsertParagraphSeparatorCommand.cpp:
              * editing/JoinTextNodesCommand.cpp:
              * editing/MergeIdenticalElementsCommand.cpp:
              * editing/RemoveNodeAttributeCommand.cpp:
              * editing/RemoveNodeCommand.cpp:
              * editing/ReplaceSelectionCommand.cpp:
              * editing/Selection.cpp:
              * editing/SelectionController.cpp:
              * editing/SelectionController.h:
              * editing/SetNodeAttributeCommand.cpp:
              * editing/SplitElementCommand.cpp:
              * editing/SplitTextNodeCommand.cpp:
              * editing/VisiblePosition.cpp:
              * editing/WrapContentsInDummySpanCommand.cpp:
              * editing/htmlediting.cpp:
              * editing/markup.cpp:
              * editing/visible_text.cpp:
              * khtml/ecma/kjs_binding.h:
              * khtml/ecma/kjs_css.cpp:
              * khtml/ecma/kjs_dom.cpp:
              * khtml/ecma/kjs_html.cpp:
              * khtml/ecma/kjs_range.cpp:
              * khtml/ecma/kjs_traversal.cpp:
              * khtml/ecma/kjs_traversal.h:
              * khtml/ecma/kjs_window.cpp:
              * khtml/html/HTMLElementImpl.cpp:
              * khtml/html/HTMLOptionElementImpl.cpp:
              * khtml/html/HTMLOptionElementImpl.h:
              * khtml/html/HTMLOptionsCollectionImpl.cpp:
              * khtml/html/HTMLSelectElementImpl.cpp:
              * khtml/html/HTMLTextAreaElementImpl.cpp:
              * khtml/html/html_documentimpl.cpp:
              * khtml/html/html_documentimpl.h:
              * khtml/html/html_headimpl.cpp:
              * khtml/html/html_tableimpl.cpp:
              * khtml/html/html_tableimpl.h:
              * khtml/html/htmlparser.cpp:
              * khtml/xbl/xbl_tokenizer.cpp:
              * khtml/xsl/xsl_stylesheetimpl.cpp:
              * ksvg2/misc/SVGDocumentExtensions.cpp:
              * ksvg2/svg/SVGAnimationElementImpl.cpp:
              * ksvg2/svg/SVGDOMImplementationImpl.cpp:
              * ksvg2/svg/SVGDOMImplementationImpl.h:
              * ksvg2/svg/SVGDocumentImpl.cpp:
              * ksvg2/svg/SVGDocumentImpl.h:
              * ksvg2/svg/SVGElementImpl.cpp:
              * ksvg2/svg/SVGLengthImpl.cpp:
              * ksvg2/svg/SVGLocatableImpl.cpp:
              * ksvg2/svg/SVGPolyElementImpl.cpp:
              * ksvg2/svg/SVGSVGElementImpl.cpp:
              * ksvg2/svg/SVGStyleElementImpl.cpp:
              * ksvg2/svg/SVGStyleElementImpl.h:
              * ksvg2/svg/SVGUseElementImpl.cpp:
              * page/Frame.cpp:
              * page/FrameView.cpp:
              * rendering/render_object.cpp:
              * xml/xmlhttprequest.cpp:
              Changed to use ExceptionCode instead of int and name the variable "ec".
              Also updated use of exception codes and other constants to get them from
              their new locations.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@13167 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8d1badc7
  16. 05 Mar, 2006 1 commit
    • ggaren's avatar
      JavaScriptCore: · 77d8fc4c
      ggaren authored
              Reviewed by Maciej.
      
              - JSC support for the fix for <rdar://problem/4467143> JavaScript 
              enumeration of HTML element properties skips DOM node properties
      
              * kjs/lookup.h: 
              (1) Added the KJS_DEFINE_PROTOTYPE_WITH_PROTOTYPE macro. The 
              class definiton macro needs to know about the prototype's prototype so 
              that the class constructor properly sets it. 
              (2) Removed the KJS_IMPLEMENT_PROTOTYPE_WITH_PARENT macro. The class
              implementation macro does not need to know about the prototype's
              prototype, since getOwnPropertySlot should only look in the current 
              object's property map, and not its prototype's.
      
      LayoutTests:
      
              Reviewed by Maciej.
      
              - Layout test for <rdar://problem/4467143> JavaScript enumeration of 
              HTML element properties skips DOM node properties
      
              * fast/dom/prototype-chain-expected.txt: Added.
              * fast/dom/prototype-chain.html: Added.
      
      WebCore:
      
              Reviewed by Maciej.
      
              - Second cut at fixing <rdar://problem/4467143> JavaScript enumeration 
              of HTML element properties skips DOM node properties
       
              The approach here is for prototypes, in their constructor methods, 
              to set their own prototypes, preserving the prototype 
              chain in cases of multiple levels of inheritance. (Previously, our
              code assumed that a prototype never had a prototype of its own,
              and always used an empty object as a prototype's prototype).
      
              * bindings/scripts/CodeGeneratorJS.pm: Use the new
              DEFINE_PROTOTYPE_WITH_PROTOTYPE macro in place of the  
              KJS_IMPLEMENT_PROTOTYPE_WITH_PARENT macro.
              * khtml/ecma/kjs_dom.cpp: Ditto.
              * khtml/ecma/kjs_dom.h: Ditto.
              * khtml/ecma/kjs_events.cpp: Ditto.
      
              Touched these files to force a rebuild:
      
              * bindings/js/JSDOMCore.cpp:
              * bindings/js/JSDOMEvents.cpp:
              * dom/Attr.idl:
              * dom/CharacterData.idl:
              * dom/DOMImplementation.idl:
              * dom/DocumentType.idl:
              * dom/Element.idl:
              * dom/Entity.idl:
              * dom/MutationEvent.idl:
              * dom/Notation.idl:
              * dom/ProcessingInstruction.idl:
              * dom/Text.idl:
              * dom/WheelEvent.idl:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@13150 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      77d8fc4c
  17. 09 Feb, 2006 1 commit
    • mjs's avatar
      Rubber-stamped by Hyatt. · b1742373
      mjs authored
              
              - moved khtml/xml to dom
      
              * dom: moved from khtml/xml
              * WebCore.xcodeproj/project.pbxproj: Updated for new file locations.
              * WebCore+SVG/KDOMHeaders.h: Updated for new header locations.
              * dom/dom2_rangeimpl.cpp: ditto
              * dom/dom2_traversalimpl.cpp: ditto
              * dom/dom_textimpl.cpp: ditto
              * dom/dom_xmlimpl.cpp: ditto
              * khtml/dom/dom2_events.cpp: ditto
              * khtml/ecma/kjs_binding.cpp: ditto
              * khtml/ecma/kjs_dom.cpp: ditto
              * khtml/ecma/kjs_events.cpp: ditto
              * khtml/ecma/kjs_html.cpp: ditto
              * khtml/ecma/kjs_range.cpp: ditto
              * khtml/ecma/kjs_views.cpp: ditto
              * khtml/editing/Selection.cpp: ditto
              * khtml/editing/SelectionController.cpp: ditto
              * khtml/editing/delete_from_text_node_command.cpp: ditto
              * khtml/editing/edit_command.cpp: ditto
              * khtml/editing/insert_into_text_node_command.cpp: ditto
              * khtml/editing/insert_line_break_command.cpp: ditto
              * khtml/editing/insert_paragraph_separator_command.cpp: ditto
              * khtml/editing/insert_text_command.cpp: ditto
              * khtml/editing/join_text_nodes_command.cpp: ditto
              * khtml/editing/markup.cpp: ditto
              * khtml/editing/merge_identical_elements_command.cpp: ditto
              * khtml/editing/rebalance_whitespace_command.cpp: ditto
              * khtml/editing/remove_node_attribute_command.cpp: ditto
              * khtml/editing/set_node_attribute_command.cpp: ditto
              * khtml/editing/split_element_command.cpp: ditto
              * khtml/editing/split_text_node_command.cpp: ditto
              * khtml/editing/split_text_node_containing_element.cpp: ditto
              * khtml/editing/visible_position.cpp: ditto
              * khtml/editing/visible_position.h: ditto
              * khtml/editing/visible_text.cpp: ditto
              * khtml/editing/visible_text.h: ditto
              * khtml/editing/visible_units.cpp: ditto
              * khtml/editing/wrap_contents_in_dummy_span_command.cpp: ditto
              * khtml/html/HTMLElementImpl.h: ditto
              * khtml/html/html_documentimpl.cpp: ditto
              * khtml/html/html_headimpl.cpp: ditto
              * khtml/xbl/xbl_binding_manager.cpp: ditto
              * khtml/xbl/xbl_tokenizer.cpp: ditto
              * khtml/xbl/xbl_tokenizer.h: ditto
              * ksvg2/svg/SVGAElementImpl.cpp: ditto
              * rendering/InlineTextBox.cpp: ditto
              * rendering/RenderContainer.cpp: ditto
              * rendering/RenderText.h: ditto
              * rendering/RenderTextField.cpp: ditto
              * rendering/render_frames.cpp: ditto
              * rendering/render_layer.cpp: ditto
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@12715 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b1742373
  18. 06 Feb, 2006 1 commit
    • andersca's avatar
      2006-02-05 Anders Carlsson <andersca@mac.com> · 555a6d7b
      andersca authored
              Reviewed by Maciej.
      
              - http://bugzilla.opendarwin.org/show_bug.cgi?id=7091
              Autogenerate even more.
      
              * JSCore.cpp:
              Add new generated files.
              
              * bindings/scripts/CodeGeneratorJS.pm:
              Add "IsIndex" extended attribute for parameters. Any parameter that is "unsigned long" 
              and has this attribute will be checked to make sure that it's not < 0. If it is, an index size error
              exception will be thrown.
              
              * khtml/ecma/kjs_dom.cpp:
              (KJS::toAttr):
              Use JSAttr::info.
              
              (KJS::getDOMNode):
              Use new constructors.
              
              * khtml/ecma/kjs_dom.h:
              Remove classes that are generated now.
              
              * khtml/xml/Attr.idl: Added.
              * khtml/xml/CharacterData.idl: Added.
              * khtml/xml/Entity.idl: Added.
              * khtml/xml/Notation.idl: Added.
              * khtml/xml/ProcessingInstruction.idl: Added.
              * khtml/xml/Text.idl: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@12591 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      555a6d7b