1. 12 May, 2011 1 commit
    • tonyg@chromium.org's avatar
      2011-05-10 Tony Gentilcore <tonyg@chromium.org> · 4b0a55f4
      tonyg@chromium.org authored
              Reviewed by Darin Adler.
      
              Perform some forward declarations suggested by include-what-you-use
              https://bugs.webkit.org/show_bug.cgi?id=60545
      
              * accessibility/AccessibilityObject.cpp:
              * accessibility/AccessibilityRenderObject.cpp:
              * accessibility/mac/AccessibilityObjectWrapper.mm:
              * dom/DocumentMarkerController.cpp:
              * dom/Position.cpp:
              * dom/PositionIterator.cpp:
              * dom/Range.cpp:
              * editing/ApplyBlockElementCommand.cpp:
              * editing/ApplyStyleCommand.cpp:
              * editing/Editor.cpp:
              * editing/EditorCommand.cpp:
              * editing/FrameSelection.cpp:
              * editing/HTMLInterchange.cpp:
              * editing/IndentOutdentCommand.cpp:
              * editing/ReplaceSelectionCommand.cpp:
              * editing/SpellChecker.h:
              * editing/SpellingCorrectionCommand.cpp:
              * editing/SpellingCorrectionController.h:
              * editing/TextCheckingHelper.cpp:
              * editing/TextIterator.h:
              * editing/htmlediting.h:
              * editing/markup.cpp:
              * editing/visible_units.cpp:
              * editing/visible_units.h:
              * fileapi/DOMFileSystem.cpp:
              * fileapi/DirectoryReaderSync.cpp:
              * fileapi/DirectoryReaderSync.h:
              * fileapi/FileEntry.h:
              * fileapi/FileWriter.h:
              * fileapi/FileWriterBase.h:
              * fileapi/FileWriterSync.h:
              * history/CachedFrame.cpp:
              * history/CachedPage.cpp:
              * history/HistoryItem.cpp:
              * history/HistoryItem.h:
              * history/PageCache.h:
              * loader/HistoryController.h:
              * loader/PingLoader.h:
              * loader/ResourceLoader.h:
              * loader/appcache/DOMApplicationCache.h:
              * loader/cache/CachedCSSStyleSheet.h:
              * loader/cache/CachedFont.cpp:
              * loader/cache/CachedFont.h:
              * loader/cache/CachedResourceRequest.cpp:
              * loader/cache/CachedResourceRequest.h:
              * loader/cache/MemoryCache.h:
              * notifications/Notification.cpp:
              * notifications/Notification.h:
              * notifications/NotificationCenter.cpp:
              * notifications/NotificationCenter.h:
              * page/Chrome.cpp:
              * page/Chrome.h:
              * page/DOMSelection.cpp:
              * page/DOMTimer.h:
              * page/DOMWindow.cpp:
              * page/EventHandler.cpp:
              * page/FocusController.h:
              * page/Geolocation.cpp:
              * page/Geolocation.h:
              * page/History.cpp:
              * rendering/RenderListBox.cpp:
              * workers/WorkerContext.cpp:
      2011-05-10  Tony Gentilcore  <tonyg@chromium.org>
      
              Reviewed by Darin Adler.
      
              Perform some forward declarations suggested by include-what-you-use
              https://bugs.webkit.org/show_bug.cgi?id=60545
      
              * src/WebHistoryItem.cpp:
              * src/WebNotification.cpp:
              * src/WebTextCheckingCompletionImpl.cpp:
              * src/mac/WebSubstringUtil.mm:
      2011-05-10  Tony Gentilcore  <tonyg@chromium.org>
      
              Reviewed by Darin Adler.
      
              Perform some forward declarations suggested by include-what-you-use
              https://bugs.webkit.org/show_bug.cgi?id=60545
      
              * Plugins/Hosted/WebHostedNetscapePluginView.mm:
              * WebView/WebFrame.mm:
      2011-05-10  Tony Gentilcore  <tonyg@chromium.org>
      
              Reviewed by Darin Adler.
      
              Perform some forward declarations suggested by include-what-you-use
              https://bugs.webkit.org/show_bug.cgi?id=60545
      
              * WebProcess/WebPage/mac/WebPageMac.mm:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@86325 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4b0a55f4
  2. 16 Apr, 2011 1 commit
    • weinig@apple.com's avatar
      2011-04-16 Sam Weinig <sam@webkit.org> · e05abc52
      weinig@apple.com authored
              Reviewed by Simon Fraser.
      
              Pages in the PageCache don't have the correct visited link coloring after being restored
              https://bugs.webkit.org/show_bug.cgi?id=58721
      
              * WebCore.exp.in:
              Add export of markPagesForVistedLinkStyleRecalc for use by WebKit2.
      
              * history/CachedPage.cpp:
              (WebCore::CachedPage::CachedPage):
              (WebCore::CachedPage::restore):
              (WebCore::CachedPage::clear):
              * history/CachedPage.h:
              (WebCore::CachedPage::markForVistedLinkStyleRecalc):
              Add bit, set by calling markForVistedLinkStyleRecalc, which forces a visited link
              style recalc when being restored.
      
              * history/PageCache.h:
              * history/PageCache.cpp:
              (WebCore::PageCache::markPagesForVistedLinkStyleRecalc):
              Mark all pages in the page cache as requiring visited link style recalc.
      
              * page/PageGroup.cpp:
              (WebCore::PageGroup::addVisitedLink):
              (WebCore::PageGroup::removeVisitedLinks):
              (WebCore::PageGroup::removeAllVisitedLinks):
              Set dirty bit when changing any visited link information.
              
      2011-04-16  Sam Weinig  <sam@webkit.org>
      
              Reviewed by Simon Fraser.
      
              Pages in the PageCache don't have the correct visited link coloring after being restored
              https://bugs.webkit.org/show_bug.cgi?id=58721
      
              * WebProcess/WebProcess.cpp:
              (WebKit::WebProcess::visitedLinkStateChanged):
              (WebKit::WebProcess::allVisitedLinkStateChanged):
              Mark all pages in the page cache as needing visited link style recalc
              whenever visited link information changes.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@84091 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e05abc52
  3. 08 Jan, 2011 1 commit
  4. 14 Jan, 2010 1 commit
    • ap@apple.com's avatar
      Reviewed by Brady Eidson. · 334c049b
      ap@apple.com authored
              https://bugs.webkit.org/show_bug.cgi?id=33652
              REGRESSION: Frames stop appearing after browsing for a while
      
              <rdar://problem/7308312> REGRESSION: iBench gets slower after several runs
      
              I do not know how not creating renderers for frames could make iBench slower, but it did.
      
              Test: fast/frames/cached-frame-counter.html
      
              * history/CachedFrame.cpp:
              (WebCore::CachedFrame::CachedFrame): A frame that's cached is moved away from Page,
              so decrement frame count here.
              (WebCore::CachedFrame::open): Increase frame count when a frame is restored.
      
              * history/CachedFrame.h: Remove unneeded forward declarations.
      
              * history/CachedPage.h: Ditto.
      
              * history/CachedPage.cpp: (WebCore::CachedPage::restore): Assert that page frame count is
              zero prior to restoring a page from b/f cache.
              
              * page/Page.cpp: (WebCore::Page::checkFrameCountConsistency): A debug-only method to
              check that frame count stored in Page matches the number of frames in frame tree.
      
              * page/Page.h:
              (WebCore::Page::decrementFrameCount): Assert that frame count is positive.
              (WebCore::Page::frameCount): Call checkFrameCountConsistency().
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@53274 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      334c049b
  5. 02 Sep, 2009 2 commits
    • beidson@apple.com's avatar
      Forget to rename openInFrameloader() to open(), which was requested in Darin's... · 31ec7b9c
      beidson@apple.com authored
      Forget to rename openInFrameloader() to open(), which was requested in Darin's review of my last patch.
      
      * history/CachedFrame.cpp:
      (WebCore::CachedFrameBase::restore):
      (WebCore::CachedFrame::open):
      * history/CachedFrame.h:
      * history/CachedPage.cpp:
      (WebCore::CachedPage::restore):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@47990 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      31ec7b9c
    • beidson@apple.com's avatar
      In http://trac.webkit.org/changeset/47943 I added new header dependencies to FrameLoader.h. · 913c7f8a
      beidson@apple.com authored
      Removing them is a little trouble, but worth it going forward.
      The pattern of creating a "CachedFrameBase" as the interface CachedFrame provides to FrameLoader
      was suggested by Darin Adler.
      
      Reviewed by Darin Adler.
      
      No new tests. (No change in behavior)
      
      Make CachedFrame inherit privately from CachedFrameBase, which becomes the interface FrameLoader uses:
      * history/CachedFrame.cpp:
      (WebCore::CachedFrameBase::CachedFrameBase):
      (WebCore::CachedFrameBase::~CachedFrameBase):
      (WebCore::CachedFrameBase::restore):
      (WebCore::CachedFrame::CachedFrame):
      (WebCore::CachedFrame::openInFrameLoader):
      * history/CachedFrame.h:
      (WebCore::CachedFrameBase::document):
      (WebCore::CachedFrameBase::view):
      (WebCore::CachedFrameBase::domWindow):
      (WebCore::CachedFrame::create):
      (WebCore::CachedFrame::documentLoader):
      (WebCore::CachedFrame::mousePressNode):
      
      Call the new ::openInFrameLoader() method on the CachedFrame, as CachedFrameBase is now the only
      thing capable of interacting with FrameLoader::open(CachedFrameBase):
      * history/CachedPage.cpp:
      (WebCore::CachedPage::restore):
      * history/CachedPage.h:
      (WebCore::CachedPage::documentLoader):
      
      Make ::open(CachedFrame) public, and change it to ::open(CachedFrameBase):
      * loader/FrameLoader.cpp:
      (WebCore::FrameLoader::open):
      * loader/FrameLoader.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@47989 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      913c7f8a
  6. 01 Sep, 2009 1 commit
    • beidson@apple.com's avatar
      Page Cache should support pages with frames · 00113e61
      beidson@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=13631
      
      Reviewed by Sam Weinig.
      
      Things learned in the full task that this patch addresses:
      - The notions of clearing a CachedFrame and destroying a CachedFrame were two concepts that 
        needed to be managed separately.
      - Once we start restoring pages with multiple CachedFrames, we'll have to be calling
        FrameLoader::open(CachedFrame&) multiple times with different CachedFrames, and this process
        will be guided by the CachedFrames themselves.
      
      No new tests. (No change in behavior, current layout tests pass)
              
      * history/CachedFrame.cpp:
      (WebCore::CachedFrame::CachedFrame):
      (WebCore::CachedFrame::~CachedFrame):
      (WebCore::CachedFrame::clear): Only clear pointers out.
      (WebCore::CachedFrame::destroy): Perform the destructive cleanup work here - Things that shouldn't
        occur simply by navigating back to a page with a CachedFrame.
      * history/CachedFrame.h:
      
      * history/CachedPage.cpp:
      (WebCore::CachedPage::~CachedPage):
      (WebCore::CachedPage::restore): Call clear() after restoring.
      (WebCore::CachedPage::clear):
      (WebCore::CachedPage::destroy):
      * history/CachedPage.h:
      
      * history/PageCache.cpp:
      (WebCore::PageCache::releaseAutoreleasedPagesNow): destroy() CachedPages that are being pruned,
        instead of clearing them.
      
      * loader/FrameLoader.cpp:
      (WebCore::FrameLoader::commitProvisionalLoad): Let the CachedPage clear() itself after restoring.
      (WebCore::FrameLoader::open): Don't ::open() the CachedFrame, as the CachedPage does that now.
      * loader/FrameLoader.h:  Add the friending so CachedPage and CachedFrame can better guide the process.
        Even though CachedFrame::restore() isn't used for now, it will be soon.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@47943 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      00113e61
  7. 25 Aug, 2009 1 commit
  8. 29 Mar, 2009 1 commit
  9. 04 Feb, 2009 1 commit
    • beidson@apple.com's avatar
      2009-02-04 Brady Eidson <beidson@apple.com> · 358104e1
      beidson@apple.com authored
              Reviewed by Sam Weinig
      
              <rdar://problem/3541409> - Further HistoryItem / BF cache cleanup
      
              * history/CachedFrame.cpp:
              (WebCore::CachedFrame::CachedFrame):
              (WebCore::CachedFrame::restore):
              * history/CachedFrame.h:
      
              * history/CachedPage.cpp:
              (WebCore::CachedPage::restore):
              * history/CachedPage.h:
              (WebCore::CachedPage::mainFrameView):
      
              * history/HistoryItem.cpp:
              (WebCore::HistoryItem::HistoryItem):
              (WebCore::HistoryItem::~HistoryItem):
              * history/HistoryItem.h:
              (WebCore::HistoryItem::isInPageCache):
      
              * loader/FrameLoader.cpp:
              (WebCore::FrameLoader::open):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@40642 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      358104e1
  10. 27 Jan, 2009 2 commits
    • beidson@apple.com's avatar
      2009-01-27 Brady Eidson <beidson@apple.com> · ad3587cd
      beidson@apple.com authored
              Reviewed by Darin Adler
      
              <rdar://problem/3541409> - More groundwork and cleanup for CachedFrames
      
              * history/CachedFrame.cpp:
              (WebCore::CachedFrame::CachedFrame): Make the savePlatformDataToCachedFrame() client call here,
                and add the code for caching subframes.
              (WebCore::CachedFrame::clear):
              * history/CachedFrame.h: Change to be RefCounted
              (WebCore::CachedFrame::create):
              (WebCore::CachedFrame::url):
      
              * history/CachedPage.cpp:
              (WebCore::CachedPage::CachedPage):
              (WebCore::CachedPage::restore):
              * history/CachedPage.h:
              (WebCore::CachedPage::document):
              (WebCore::CachedPage::documentLoader):
              (WebCore::CachedPage::view):
              (WebCore::CachedPage::url):
              (WebCore::CachedPage::domWindow):
              (WebCore::CachedPage::cachedMainFrame):
      
              * loader/FrameLoader.cpp:
              (WebCore::FrameLoader::cachePageForHistoryItem): Move the platform data saving into the
                CachedFrame itself.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@40302 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ad3587cd
    • beidson@apple.com's avatar
      WebCore: · 3a5e3b93
      beidson@apple.com authored
      2009-01-27  Brady Eidson  <beidson@apple.com>
      
              Reviewed by Dan Bernstein
      
              Rework FrameLoaderClient to work on a CachedFrame basis instead of CachedPage
      
              * WebCore.base.exp:
              * history/CachedPage.cpp:
              * history/CachedPage.h:
              (WebCore::CachedPage::cachedMainFrame):
      
              * loader/EmptyClients.h:
              (WebCore::EmptyFrameLoaderClient::savePlatformDataToCachedFrame):
              (WebCore::EmptyFrameLoaderClient::transitionToCommittedFromCachedFrame):
      
              * loader/FrameLoader.cpp:
              (WebCore::FrameLoader::restoreDocumentState):
              (WebCore::FrameLoader::commitProvisionalLoad):
              (WebCore::FrameLoader::transitionToCommitted):
              (WebCore::FrameLoader::cachePageForHistoryItem):
              * loader/FrameLoaderClient.h:
      
      WebKit/gtk:
      
      2009-01-27  Brady Eidson  <beidson@apple.com>
      
              Reviewed by Dan Bernstein
      
              Rework FrameLoaderClient to work on a CachedFrame basis instead of CachedPage
      
              * WebCoreSupport/FrameLoaderClientGtk.cpp:
              (WebKit::FrameLoaderClient::savePlatformDataToCachedFrame):
              (WebKit::FrameLoaderClient::transitionToCommittedFromCachedFrame):
              * WebCoreSupport/FrameLoaderClientGtk.h:
      
      WebKit/mac:
      
      2009-01-27  Brady Eidson  <beidson@apple.com>
      
              Reviewed by Dan Bernstein
      
              Rework FrameLoaderClient to work on a CachedFrame basis instead of CachedPage
      
              * History/WebHistoryItem.mm:
      
              * WebCoreSupport/WebFrameLoaderClient.h:
              * WebCoreSupport/WebFrameLoaderClient.mm:
              (WebFrameLoaderClient::savePlatformDataToCachedFrame):
              (WebFrameLoaderClient::transitionToCommittedFromCachedFrame):
              * WebKit.order:
      
      WebKit/qt:
      
      2009-01-27  Brady Eidson  <beidson@apple.com>
      
              Reviewed by Dan Bernstein
      
              Rework FrameLoaderClient to work on a CachedFrame basis instead of CachedPage
      
              * WebCoreSupport/FrameLoaderClientQt.cpp:
              (WebCore::FrameLoaderClientQt::savePlatformDataToCachedFrame):
              (WebCore::FrameLoaderClientQt::transitionToCommittedFromCachedFrame):
              * WebCoreSupport/FrameLoaderClientQt.h:
      
      WebKit/win:
      
      2009-01-27  Brady Eidson  <beidson@apple.com>
      
              Reviewed by Dan Bernstein
      
              Rework FrameLoaderClient to work on a CachedFrame basis instead of CachedPage
      
              * WebCoreSupport/WebFrameLoaderClient.cpp:
              (WebFrameLoaderClient::savePlatformDataToCachedFrame):
              (WebFrameLoaderClient::transitionToCommittedFromCachedFrame):
              * WebCoreSupport/WebFrameLoaderClient.h:
      
              * WebFrame.cpp:
              * WebFrame.h:
      
      WebKit/wx:
      
      2009-01-27  Brady Eidson  <beidson@apple.com>
      
              Reviewed by Dan Bernstein
      
              Rework FrameLoaderClient to work on a CachedFrame basis instead of CachedPage
      
              * WebKitSupport/FrameLoaderClientWx.cpp:
              (WebCore::FrameLoaderClientWx::savePlatformDataToCachedFrame):
              (WebCore::FrameLoaderClientWx::transitionToCommittedFromCachedFrame):
              * WebKitSupport/FrameLoaderClientWx.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@40289 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3a5e3b93
  11. 26 Jan, 2009 1 commit
  12. 23 Jan, 2009 3 commits
    • beidson@apple.com's avatar
      2009-01-23 Brady Eidson <beidson@apple.com> · 9c206a9b
      beidson@apple.com authored
              Reviewed by Darin Adler
      
              In CachedPage, break off per-Frame pieces of data into a CachedFrame object.
      
              * GNUmakefile.am:
              * WebCore.base.exp:
              * WebCore.pro:
              * WebCore.scons:
              * WebCore.vcproj/WebCore.vcproj:
              * WebCore.xcodeproj/project.pbxproj:
              * WebCoreSources.bkl:
      
              * history/CachedFrame.cpp: Added.
              (WebCore::cachedFrameCounter):
              (WebCore::CachedFrame::CachedFrame):
              (WebCore::CachedFrame::~CachedFrame):
              (WebCore::CachedFrame::restore):
              (WebCore::CachedFrame::clear):
              (WebCore::CachedFrame::setCachedFramePlatformData):
              (WebCore::CachedFrame::cachedFramePlatformData):
              * history/CachedFrame.h: Added.
              (WebCore::CachedFrame::document):
              (WebCore::CachedFrame::documentLoader):
              (WebCore::CachedFrame::view):
              (WebCore::CachedFrame::mousePressNode):
              (WebCore::CachedFrame::url):
              (WebCore::CachedFrame::domWindow):
      
              * history/CachedPage.cpp:
              (WebCore::CachedPage::CachedPage):
              (WebCore::CachedPage::restore):
              (WebCore::CachedPage::clear):
              (WebCore::CachedPage::setCachedFramePlatformData):
              (WebCore::CachedPage::cachedFramePlatformData):
              * history/CachedPage.h:
              (WebCore::CachedPage::document):
              (WebCore::CachedPage::documentLoader):
              (WebCore::CachedPage::view):
              (WebCore::CachedPage::mousePressNode):
              (WebCore::CachedPage::url):
              (WebCore::CachedPage::domWindow):
      
              * loader/FrameLoader.cpp:
              (WebCore::FrameLoader::cachePageForHistoryItem): Setting the DocumentLoader independently of
                creating a CachedPage was a historical relic.  Take the opportunity to clean that up.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@40210 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9c206a9b
    • beidson@apple.com's avatar
      WebCore: · 94faeb95
      beidson@apple.com authored
      2009-01-23  Brady Eidson  <beidson@apple.com>
      
              Rubberstamped by Darin Adler
      
              Rename CachedPagePlatformData to CachedFramePlatformData to more accurately reflect its true role.
      
              * GNUmakefile.am:
              * WebCore.base.exp:
              * WebCore.order:
              * WebCore.xcodeproj/project.pbxproj:
      
              * history/CachedFramePlatformData.h: Copied from WebCore/history/CachedPagePlatformData.h.
              (WebCore::CachedFramePlatformData::~CachedFramePlatformData):
              * history/CachedPagePlatformData.h: Removed.
      
              * history/CachedPage.cpp:
              (WebCore::CachedPage::clear):
              (WebCore::CachedPage::setCachedFramePlatformData):
              (WebCore::CachedPage::cachedFramePlatformData):
              * history/CachedPage.h:
      
      WebKit:
      
      2009-01-23  Brady Eidson  <beidson@apple.com>
      
              Rubberstamped by Darin Adler
      
              Rename CachedPagePlatformData to CachedFramePlatformData to more accurately reflect its true role.
      
              * WebKit.xcodeproj/project.pbxproj:
      
      WebKit/mac:
      
      2009-01-23  Brady Eidson  <beidson@apple.com>
      
              Rubberstamped by Darin Adler
      
              Rename CachedPagePlatformData to CachedFramePlatformData to more accurately reflect its true role.
      
              * WebCoreSupport/WebCachedFramePlatformData.h: Copied from WebKit/mac/WebCoreSupport/WebCachedPagePlatformData.h.
              (WebCachedFramePlatformData::WebCachedFramePlatformData):
              * WebCoreSupport/WebCachedPagePlatformData.h: Removed.
      
              * WebCoreSupport/WebFrameLoaderClient.mm:
              (WebFrameLoaderClient::savePlatformDataToCachedPage):
              (WebFrameLoaderClient::transitionToCommittedFromCachedPage):
      
              * WebKit.order:
      
      WebKit/win:
      
      2009-01-23  Brady Eidson  <beidson@apple.com>
      
              Rubberstamped by Darin Adler
      
              Rename CachedPagePlatformData to CachedFramePlatformData to more accurately reflect its true role.
      
              * WebCachedFramePlatformData.h: Copied from WebKit/win/WebCachedPagePlatformData.h.
              (WebCachedFramePlatformData::WebCachedFramePlatformData):
              * WebCachedPagePlatformData.h: Removed.
      
              * WebCoreSupport/WebFrameLoaderClient.cpp:
              (WebFrameLoaderClient::savePlatformDataToCachedPage):
      
              * WebKit.vcproj/WebKit.vcproj:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@40198 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      94faeb95
    • beidson@apple.com's avatar
      2009-01-23 Brady Eidson <beidson@apple.com> · 80c19358
      beidson@apple.com authored
              Rubberstamped by Sam Weinig
      
              Rework ScriptCachedPageData to ScriptCachedFrameData to more accurately reflect its true purpose
      
              * GNUmakefile.am:
              * WebCore.vcproj/WebCore.vcproj:
              * WebCore.xcodeproj/project.pbxproj:
              * WebCoreSources.bkl:
      
              * bindings/js/ScriptCachedFrameData.cpp: Copied from bindings/js/ScriptCachedPageData.cpp.
              (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
              (WebCore::ScriptCachedFrameData::domWindow):
              (WebCore::ScriptCachedFrameData::~ScriptCachedFrameData):
              (WebCore::ScriptCachedFrameData::restore):
              (WebCore::ScriptCachedFrameData::clear):
              * bindings/js/ScriptCachedFrameData.h: Copied from bindings/js/ScriptCachedPageData.h.
              * bindings/js/ScriptCachedPageData.cpp: Removed.
              * bindings/js/ScriptCachedPageData.h: Removed.
      
              * history/CachedPage.cpp:
              (WebCore::CachedPage::CachedPage):
              (WebCore::CachedPage::restore):
              * history/CachedPage.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@40168 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      80c19358
  13. 11 Jan, 2009 1 commit
  14. 18 Dec, 2008 1 commit
    • darin@chromium.org's avatar
      2008-12-18 Dimitri Glazkov <dglazkov@chromium.org> · f7b0ea5e
      darin@chromium.org authored
              Reviewed by Geoffrey Garen.
      
              https://bugs.webkit.org/show_bug.cgi?id=22859
              Abstract away the use of JSDOMWindow in CachedPage and introduce
              ScriptCachedPageData abstraction.
      
              * GNUmakefile.am: Added ScriptCachedPageData to project.
              * WebCore.pro: Added ScriptCachedPageData to project.
              * WebCore.vcproj/WebCore.vcproj: Added ScriptCachedPageData to project.
              * WebCore.xcodeproj/project.pbxproj: Added ScriptCachedPageData to
                  project.
              * bindings/js/ScriptCachedPageData.cpp: Added.
              (WebCore::ScriptCachedPageData::ScriptCachedPageData):
              (WebCore::ScriptCachedPageData::~ScriptCachedPageData):
              (WebCore::ScriptCachedPageData::restore):
              (WebCore::ScriptCachedPageData::clear):
              * bindings/js/ScriptCachedPageData.h: Added.
              * history/CachedPage.cpp: Replaced JSDOMWindow and ProtectedPtr with
                  ScriptCachedPageData.
              (WebCore::CachedPage::CachedPage):
              (WebCore::CachedPage::domWindow):
              (WebCore::CachedPage::restore):
              (WebCore::CachedPage::clear):
              * history/CachedPage.h: Replaced JSDOMWindow and ProtectedPtr with
                  ScriptCachedPageData.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39379 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f7b0ea5e
  15. 15 Dec, 2008 1 commit
    • cwzwarich@webkit.org's avatar
      2008-12-15 Cameron Zwarich <zwarich@apple.com> · f00db1fa
      cwzwarich@webkit.org authored
              Reviewed by Darin Adler.
      
              Bug 22562: REGRESSION (r37971): events not firing after going back in back/forward cache
              <https://bugs.webkit.org/show_bug.cgi?id=22562>
              <rdar://problem/6414593>
      
              Restore the Frame's DOMWindow to its previous value when going back in
              the back/forward cache. The fact that it was not getting set before may
              have always caused some subtle bugs with the back/forward cache, but
              after r37971, it causes no events to fire after restoring a page.
      
              Previously, ScriptController::clearScriptObjects() was calling
              clearPlatformScriptObjects(), which was not actually clearing any
              objects, only updating them to reflect some change in state. Since the
              window shell was not updated until after the call to clearScriptObjects(),
              this didn't actually make that much sense.
      
              We rename clearPlatformScriptObjects() to reflect its actual purpose and
              call it after the window shell has been updated rather than before.
      
              Unfortunately, there is no way to test this with a layout test because
              it involves the back/forward cache.
      
              * bindings/js/ScriptController.cpp:
              (WebCore::ScriptController::updatePlatformScriptObjects): Renamed from
              clearPlatformScriptObjects(), because the only nonempty implementation
              doesn't actually clear any objects, it updates them. Also made public.
              (WebCore::ScriptController::clearScriptObjects): Remove the call to
              clearPlatformScriptObjects().
              * bindings/js/ScriptController.h:
              * bindings/js/ScriptControllerMac.mm:
              (WebCore::ScriptController::updatePlatformScriptObjects):
              * history/CachedPage.cpp:
              (WebCore::CachedPage::domWindow): Added.
              * history/CachedPage.h:
              * loader/FrameLoader.cpp:
              (WebCore::FrameLoader::cancelAndClear): Added call to updatePlatformScriptObjects().
              (WebCore::FrameLoader::begin): Added call to updatePlatformScriptObjects().
              (WebCore::FrameLoader::open): Added call to updatePlatformScriptObjects().
              * page/Frame.cpp:
              (WebCore::Frame::setDOMWindow): Added.
              (WebCore::Frame::pageDestroyed): Added call to updatePlatformScriptObjects().
              * page/Frame.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39306 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f00db1fa
  16. 04 Dec, 2008 1 commit
    • ap@webkit.org's avatar
      2008-12-03 Dmitry Titov <dimich@chromium.org> · efccd59c
      ap@webkit.org authored
              Reviewed by Alexey Proskuryakov.
      
              Using ActiveDOMObject as base class for DOMTimer.
              https://bugs.webkit.org/show_bug.cgi?id=22620
      
              Using ActiveDOMObject simplifies the code because ActiveDOMObject
              is wired for stop/pause/resume on loading/unloading/caching the page etc
              so the timer-specific code that does the same can be removed.
              In addition, timers can be now paused/resumed 'in place' which
              makes it unnecessary to 'serialize' them into special PausedTimeouts
              instance, so pause/resumeTimeouts implementation in JSDOMWindowBase can also be removed.
              Also, moving TimeoutMap from JSDOMWindowBase to Document matches lifetime
              of timeouts and makes it possible to not roundtrip them via PausedTimeouts 
              every time when JSDOMWindow wrapper is destroyed while the page is in the b/f cache.
      
              Timeouts are now paused with other ActiveDOMObjects:
              - before creating CachedPage in FrameLoader::commitProvisionalLoad()
              - in JavaScriptDebugServer::setJavaScriptPaused
              - during modal UI operations in Chrome::*
              this is equivalent to previous usage of JSDOMWindowBase::pauseTimeouts()
      
              Timeouts are stopped to prevent future firing from:
              - FrameLoader::clear()
              - FrameLoader::frameDetached()
              this is equivalent to previous usage of JSDOMWindowBase::clearAllTimeouts()
      
              This is also one of the steps to having timers in Workers. See the plan of
              the next steps in the bug above.
      
              * bindings/js/DOMTimer.cpp:
              (WebCore::DOMTimer::DOMTimer):
              (WebCore::DOMTimer::fired):
              (WebCore::DOMTimer::hasPendingActivity):
              (WebCore::DOMTimer::contextDestroyed):
              (WebCore::DOMTimer::stop):
              (WebCore::DOMTimer::suspend):
              (WebCore::DOMTimer::resume):
              (WebCore::DOMTimer::canSuspend): Implemented ActiveDOMObject methods.
      
              * bindings/js/DOMTimer.h:
              * bindings/js/JSDOMBinding.cpp: ActiveDOMObject can have no JS wrapper
              (WebCore::markActiveObjectsForContext): 
      
              * bindings/js/JSDOMWindowBase.cpp:
              (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
              (WebCore::JSDOMWindowBase::clear):
              (WebCore::JSDOMWindowBase::installTimeout):
              (WebCore::JSDOMWindowBase::removeTimeout):
              (WebCore::JSDOMWindowBase::timerFired):
              (WebCore::JSDOMWindowBase::disconnectFrame):
              * bindings/js/JSDOMWindowBase.h:
              * bindings/js/ScriptController.cpp:
              * bindings/js/ScriptController.h:
      
              * dom/Document.cpp: Document now holds a hash map id->timeout
              (WebCore::Document::addTimeout):
              (WebCore::Document::removeTimeout):
              (WebCore::Document::findTimeout):
              * dom/Document.h:
              * history/CachedPage.cpp:
              (WebCore::CachedPage::CachedPage):
              (WebCore::CachedPage::restore):
              (WebCore::CachedPage::clear):
              * history/CachedPage.h:
              * inspector/JavaScriptDebugServer.cpp:
              (WebCore::JavaScriptDebugServer::~JavaScriptDebugServer):
              (WebCore::JavaScriptDebugServer::setJavaScriptPaused):
              * inspector/JavaScriptDebugServer.h:
      
              * loader/FrameLoader.cpp:
              (WebCore::FrameLoader::commitProvisionalLoad): 
              removed clearAllTimeouts since all ActiveDOMObjects will be stopped in FrameLoader::clear();
              I don't see how the old comment can be correct - the code in the same method proceeds to invoke 'onunload'
              and then calls into client which can be external code and can cause any active object created in onunload
              to fire. We can stop them all before firing onunload but it does not make a lot of sense.
              I have a test to go with the next patch which verifies that timers set in onunload do not fire.
      
              (WebCore::FrameLoader::open):
              * page/Chrome.cpp:
              (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
              (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38985 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      efccd59c
  17. 04 Nov, 2008 1 commit
    • cwzwarich@webkit.org's avatar
      2008-11-03 Cameron Zwarich <zwarich@apple.com> · b91210c0
      cwzwarich@webkit.org authored
              Rubber-stamped by Maciej Stachowiak.
      
              Move more files into the runtime subdirectory of JavaScriptCore.
      
              JavaScriptCore:
      
              * API/JSBase.cpp:
              * API/JSCallbackConstructor.cpp:
              * API/JSCallbackFunction.cpp:
              * API/JSClassRef.cpp:
              * API/OpaqueJSString.cpp:
              * GNUmakefile.am:
              * JavaScriptCore.pri:
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * JavaScriptCoreSources.bkl:
              * kjs/AllInOneFile.cpp:
              * kjs/ArgList.cpp: Removed.
              * kjs/ArgList.h: Removed.
              * kjs/Arguments.cpp: Removed.
              * kjs/Arguments.h: Removed.
              * kjs/BatchedTransitionOptimizer.h: Removed.
              * kjs/CollectorHeapIterator.h: Removed.
              * kjs/CommonIdentifiers.cpp: Removed.
              * kjs/CommonIdentifiers.h: Removed.
              * kjs/ExecState.cpp: Removed.
              * kjs/ExecState.h: Removed.
              * kjs/GetterSetter.cpp: Removed.
              * kjs/GetterSetter.h: Removed.
              * kjs/InitializeThreading.cpp: Removed.
              * kjs/InitializeThreading.h: Removed.
              * kjs/JSActivation.cpp: Removed.
              * kjs/JSActivation.h: Removed.
              * kjs/JSGlobalData.cpp: Removed.
              * kjs/JSGlobalData.h: Removed.
              * kjs/JSLock.cpp: Removed.
              * kjs/JSLock.h: Removed.
              * kjs/JSStaticScopeObject.cpp: Removed.
              * kjs/JSStaticScopeObject.h: Removed.
              * kjs/JSType.h: Removed.
              * kjs/PropertyNameArray.cpp: Removed.
              * kjs/PropertyNameArray.h: Removed.
              * kjs/ScopeChain.cpp: Removed.
              * kjs/ScopeChain.h: Removed.
              * kjs/ScopeChainMark.h: Removed.
              * kjs/SymbolTable.h: Removed.
              * kjs/Tracing.d: Removed.
              * kjs/Tracing.h: Removed.
              * runtime/ArgList.cpp: Copied from kjs/ArgList.cpp.
              * runtime/ArgList.h: Copied from kjs/ArgList.h.
              * runtime/Arguments.cpp: Copied from kjs/Arguments.cpp.
              * runtime/Arguments.h: Copied from kjs/Arguments.h.
              * runtime/BatchedTransitionOptimizer.h: Copied from kjs/BatchedTransitionOptimizer.h.
              * runtime/CollectorHeapIterator.h: Copied from kjs/CollectorHeapIterator.h.
              * runtime/CommonIdentifiers.cpp: Copied from kjs/CommonIdentifiers.cpp.
              * runtime/CommonIdentifiers.h: Copied from kjs/CommonIdentifiers.h.
              * runtime/ExecState.cpp: Copied from kjs/ExecState.cpp.
              * runtime/ExecState.h: Copied from kjs/ExecState.h.
              * runtime/GetterSetter.cpp: Copied from kjs/GetterSetter.cpp.
              * runtime/GetterSetter.h: Copied from kjs/GetterSetter.h.
              * runtime/InitializeThreading.cpp: Copied from kjs/InitializeThreading.cpp.
              * runtime/InitializeThreading.h: Copied from kjs/InitializeThreading.h.
              * runtime/JSActivation.cpp: Copied from kjs/JSActivation.cpp.
              * runtime/JSActivation.h: Copied from kjs/JSActivation.h.
              * runtime/JSGlobalData.cpp: Copied from kjs/JSGlobalData.cpp.
              * runtime/JSGlobalData.h: Copied from kjs/JSGlobalData.h.
              * runtime/JSLock.cpp: Copied from kjs/JSLock.cpp.
              * runtime/JSLock.h: Copied from kjs/JSLock.h.
              * runtime/JSStaticScopeObject.cpp: Copied from kjs/JSStaticScopeObject.cpp.
              * runtime/JSStaticScopeObject.h: Copied from kjs/JSStaticScopeObject.h.
              * runtime/JSType.h: Copied from kjs/JSType.h.
              * runtime/PropertyNameArray.cpp: Copied from kjs/PropertyNameArray.cpp.
              * runtime/PropertyNameArray.h: Copied from kjs/PropertyNameArray.h.
              * runtime/ScopeChain.cpp: Copied from kjs/ScopeChain.cpp.
              * runtime/ScopeChain.h: Copied from kjs/ScopeChain.h.
              * runtime/ScopeChainMark.h: Copied from kjs/ScopeChainMark.h.
              * runtime/SymbolTable.h: Copied from kjs/SymbolTable.h.
              * runtime/Tracing.d: Copied from kjs/Tracing.d.
              * runtime/Tracing.h: Copied from kjs/Tracing.h.
      
              WebCore:
      
              * ForwardingHeaders/kjs/ArgList.h: Removed.
              * ForwardingHeaders/kjs/CollectorHeapIterator.h: Removed.
              * ForwardingHeaders/kjs/ExecState.h: Removed.
              * ForwardingHeaders/kjs/InitializeThreading.h: Removed.
              * ForwardingHeaders/kjs/JSGlobalData.h: Removed.
              * ForwardingHeaders/kjs/JSLock.h: Removed.
              * ForwardingHeaders/kjs/SymbolTable.h: Removed.
              * ForwardingHeaders/runtime/ArgList.h: Copied from ForwardingHeaders/kjs/ArgList.h.
              * ForwardingHeaders/runtime/CollectorHeapIterator.h: Copied from ForwardingHeaders/kjs/CollectorHeapIterator.h.
              * ForwardingHeaders/runtime/ExecState.h: Copied from ForwardingHeaders/kjs/ExecState.h.
              * ForwardingHeaders/runtime/InitializeThreading.h: Copied from ForwardingHeaders/kjs/InitializeThreading.h.
              * ForwardingHeaders/runtime/JSGlobalData.h: Copied from ForwardingHeaders/kjs/JSGlobalData.h.
              * ForwardingHeaders/runtime/JSLock.h: Copied from ForwardingHeaders/kjs/JSLock.h.
              * ForwardingHeaders/runtime/SymbolTable.h: Copied from ForwardingHeaders/kjs/SymbolTable.h.
              * bindings/js/GCController.cpp:
              * bindings/js/JSCustomPositionCallback.cpp:
              * bindings/js/JSCustomPositionErrorCallback.cpp:
              * bindings/js/JSCustomSQLStatementCallback.cpp:
              * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
              * bindings/js/JSCustomSQLTransactionCallback.cpp:
              * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
              * bindings/js/JSCustomVoidCallback.cpp:
              * bindings/js/JSCustomXPathNSResolver.cpp:
              * bindings/js/JSDOMWindowBase.cpp:
              * bindings/js/JSEventCustom.cpp:
              * bindings/js/JSEventListener.cpp:
              * bindings/js/JSNodeFilterCondition.cpp:
              * bindings/js/ScheduledAction.cpp:
              * bindings/js/ScriptController.cpp:
              * bindings/js/ScriptControllerMac.mm:
              * bindings/objc/WebScriptObject.mm:
              * bridge/NP_jsobject.cpp:
              * bridge/c/c_class.cpp:
              * bridge/c/c_instance.cpp:
              * bridge/c/c_runtime.cpp:
              * bridge/c/c_utility.cpp:
              * bridge/jni/jni_class.cpp:
              * bridge/jni/jni_instance.cpp:
              * bridge/jni/jni_jsobject.mm:
              * bridge/jni/jni_objc.mm:
              * bridge/jni/jni_runtime.cpp:
              * bridge/jni/jni_runtime.h:
              * bridge/jni/jni_utility.cpp:
              * bridge/npruntime.cpp:
              * bridge/objc/objc_instance.mm:
              * bridge/objc/objc_runtime.mm:
              * bridge/objc/objc_utility.mm:
              * bridge/runtime.cpp:
              * dom/Document.cpp:
              * dom/Node.cpp:
              * dom/NodeFilter.cpp:
              * dom/NodeIterator.cpp:
              * dom/TreeWalker.cpp:
              * history/CachedPage.cpp:
              * inspector/InspectorController.cpp:
              * inspector/JavaScriptCallFrame.cpp:
              * inspector/JavaScriptCallFrame.h:
              * inspector/JavaScriptDebugServer.cpp:
              * inspector/JavaScriptProfileNode.cpp:
              * loader/FrameLoader.cpp:
              * loader/icon/IconDatabase.cpp:
              * page/Console.cpp:
              * page/Page.cpp:
              * page/mac/FrameMac.mm:
              * plugins/PluginView.cpp:
              * plugins/gtk/PluginViewGtk.cpp:
              * plugins/qt/PluginViewQt.cpp:
              * plugins/win/PluginViewWin.cpp:
              * storage/Database.cpp:
              * xml/XMLHttpRequest.cpp:
      
              WebKit/gtk:
      
              * webkit/webkitprivate.cpp:
      
              WebKit/mac:
      
              * ForwardingHeaders/kjs/JSLock.h: Removed.
              * ForwardingHeaders/kjs/SymbolTable.h: Removed.
              * ForwardingHeaders/runtime/JSLock.h: Copied from ForwardingHeaders/kjs/JSLock.h.
              * ForwardingHeaders/runtime/SymbolTable.h: Copied from ForwardingHeaders/kjs/SymbolTable.h.
              * Misc/WebCoreStatistics.mm:
              * Plugins/WebBaseNetscapePluginStream.mm:
              * Plugins/WebBaseNetscapePluginView.mm:
              * Plugins/WebPluginController.mm:
              * WebView/WebFrame.mm:
              * WebView/WebScriptDebugDelegate.mm:
              * WebView/WebView.mm:
      
              WebKit/qt:
      
              * Api/qwebpage.cpp:
      
              WebKit/win:
      
              * WebJavaScriptCollector.cpp:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38087 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b91210c0
  18. 26 Sep, 2008 1 commit
    • eric.carlson@apple.com's avatar
      2008-09-26 Eric Carlson <eric.carlson@apple.com> · f6546a91
      eric.carlson@apple.com authored
              Reviewed by Antti
      
              https://bugs.webkit.org/show_bug.cgi?id=21116
              <rdar://problem/5726325> Audio from <video> can still be heard after navigating 
              back to page with <video>, then closing tab
      
              Rename willSaveToCache/didRestoreFromCache callbacks to documentWillBecomeInactive/
              documentDidBecomeActive, and post documentWillBecomeInactive when a page is marked for
              deletion.
      
              * dom/Document.cpp:
              (WebCore::Document::documentWillBecomeInactive):
              (WebCore::Document::documentDidBecomeActive):
              (WebCore::Document::registerForDocumentActivationCallbacks):
              (WebCore::Document::unregisterForDocumentActivationCallbacks):
              * dom/Document.h:
              * dom/Element.h:
              (WebCore::Element::documentWillBecomeInactive):
              (WebCore::Element::documentDidBecomeActive):
              * history/CachedPage.cpp:
              (WebCore::CachedPage::CachedPage):
              * html/HTMLFormElement.cpp:
              (WebCore::HTMLFormElement::~HTMLFormElement):
              (WebCore::HTMLFormElement::parseMappedAttribute):
              (WebCore::HTMLFormElement::documentDidBecomeActive):
              (WebCore::HTMLFormElement::willMoveToNewOwnerDocument):
              (WebCore::HTMLFormElement::didMoveToNewOwnerDocument):
              * html/HTMLFormElement.h:
              * html/HTMLInputElement.cpp:
              (WebCore::HTMLInputElement::~HTMLInputElement):
              (WebCore::HTMLInputElement::setInputType):
              (WebCore::HTMLInputElement::parseMappedAttribute):
              (WebCore::HTMLInputElement::needsActivationCallback):
              (WebCore::HTMLInputElement::registerForActivationCallbackIfNeeded):
              (WebCore::HTMLInputElement::unregisterForActivationCallbackIfNeeded):
              (WebCore::HTMLInputElement::documentDidBecomeActive):
              (WebCore::HTMLInputElement::willMoveToNewOwnerDocument):
              (WebCore::HTMLInputElement::didMoveToNewOwnerDocument):
              * html/HTMLInputElement.h:
              * html/HTMLMediaElement.cpp:
              (WebCore::HTMLMediaElement::HTMLMediaElement):
              (WebCore::HTMLMediaElement::~HTMLMediaElement):
              (WebCore::HTMLMediaElement::documentWillBecomeInactive):
              (WebCore::HTMLMediaElement::documentDidBecomeActive):
              * html/HTMLMediaElement.h:
              (WebCore::HTMLMediaElement::inActiveDocument):
              * loader/FrameLoader.cpp:
              (WebCore::FrameLoader::opened):
              * page/Page.cpp:
              (WebCore::Page::~Page):
              * rendering/RenderMedia.cpp:
              (WebCore::RenderMedia::updateControls):
              * rendering/RenderVideo.cpp:
              (WebCore::RenderVideo::updatePlayer):
              * svg/SVGSVGElement.cpp:
              (WebCore::SVGSVGElement::SVGSVGElement):
              (WebCore::SVGSVGElement::~SVGSVGElement):
              (WebCore::SVGSVGElement::documentWillBecomeInactive):
              (WebCore::SVGSVGElement::documentDidBecomeActive):
              * svg/SVGSVGElement.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36957 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f6546a91
  19. 19 Sep, 2008 1 commit
    • darin@apple.com's avatar
      JavaScriptCore: · 39a180f1
      darin@apple.com authored
      2008-09-19  Darin Adler  <darin@apple.com>
      
              Reviewed by Sam Weinig.
      
              - part 2 of https://bugs.webkit.org/show_bug.cgi?id=20858
                make each distinct C++ class get a distinct JSC::Structure
      
              * JavaScriptCore.exp: Exported constructEmptyObject for use in WebCore.
      
              * kjs/JSGlobalObject.h: Changed the protected constructor to take a
              structure instead of a prototype.
      
              * kjs/JSVariableObject.h: Removed constructor that takes a prototype.
      
      WebCore:
      
      2008-09-19  Darin Adler  <darin@apple.com>
      
              Reviewed by Sam Weinig.
      
              - part 2 of https://bugs.webkit.org/show_bug.cgi?id=20858
                make each distinct C++ class get a distinct JSC::Structure
      
                + Fixed all cases where we were using a shared structure for multiple
                  C++ classes in WebCore. This still has to be done in JavaScriptCore.
      
                + Got rid of cacheGlobalObject.
      
                + Improved use of PassRefPtr in bindings code.
      
                + Removed a couple cases where we were potentially allocating prototypes
                  inside a JSObject's construction process -- this can lead to trouble if
                  we do a garbage collection while an object is only partly constructed.
      
              * bindings/js/JSAudioConstructor.cpp:
              (WebCore::JSAudioConstructor::JSAudioConstructor): Create a structure explicitly
              so we don't implicitly share the structure with other objects that use the object
              prototype.
      
              * bindings/js/JSDOMBinding.cpp:
              (WebCore::getCachedDOMConstructor): Added. To be used for constructors so we
              don't need cacheGlobalObject any more.
              (WebCore::cacheDOMConstructor): Ditto.
      
              * bindings/js/JSDOMBinding.h: Removed DOMObject constructor that takes a prototype.
              Added functions and a function template for getting cached DOM constructors.
              Removed cacheGlobalObject function template.
      
              * bindings/js/JSDOMWindowBase.cpp:
              (WebCore::JSDOMWindowBase::JSDOMWindowBase): Take a PassRefPtr<DOMWindow> since
              we're taking ownership.
              * bindings/js/JSDOMWindowBase.h: Changed constructor to take PassRefPtr, since
              we're taking ownership. Added constructor map.
              * bindings/js/JSDOMWindowCustom.cpp:
              (WebCore::JSDOMWindow::mark): Mark the constructors in the map.
      
              * bindings/js/JSDOMWindowShell.cpp:
              (WebCore::JSDOMWindowShell::JSDOMWindowShell): Take a PassRefPtr<DOMWindow> since
              we're taking ownership. Use the new setWindow function to create the JSDOMWindow;
              this is now done in only that one place.
              (WebCore::JSDOMWindowShell::setWindow): Added. Creates the JSDOMWindow based on
              the passed-in DOMWindow. Code was moved here and changed to allocate unique
              structures for both the window prototype and the window.
              * bindings/js/JSDOMWindowShell.h: Ditto.
      
              * bindings/js/JSEventTargetBase.h: Changed class template argument so it doesn't
              have the same name (JSEventTarget) as an actual class. Removed unhelpful use of
              private/friend in JSEventTargetBase. Removed comments referring to defunct
              macros. Changed JSEventTargetBasePrototype to get the prototype with the new
              rather than its own copy of cacheGlobalObject (I missed this during pass 1).
              Changed JSEventTargetBasePrototype so it doesn't have so many template arguments.
      
              * bindings/js/JSEventTargetNode.cpp: Added s_info; needed for the new scheme
              for caching structures and prototypes.
              (WebCore::JSEventTargetNode::JSEventTargetNode): Use PassRefPtr.
              (WebCore::JSEventTargetNode::createPrototype): Added.
              * bindings/js/JSEventTargetNode.h: Updated for above changes.
      
              * bindings/js/JSHTMLAllCollection.h:
              (WebCore::JSHTMLAllCollection::JSHTMLAllCollection): Use PassRefPtr.
              * bindings/js/JSHTMLCollectionCustom.cpp:
              (WebCore::getNamedItems): Pass ExecState instead of prototype.
              * bindings/js/JSHTMLFormElementCustom.cpp:
              (WebCore::JSHTMLFormElement::nameGetter): Ditto.
              * bindings/js/JSHTMLInputElementBase.cpp:
              (WebCore::JSHTMLInputElementBase::JSHTMLInputElementBase): Use PassRefPtr.
              * bindings/js/JSHTMLInputElementBase.h: Ditto.
              * bindings/js/JSHTMLOptionElementConstructor.cpp:
              (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
              Create a unique structure instead of sharing.
              * bindings/js/JSImageConstructor.cpp:
              (WebCore::JSImageConstructor::JSImageConstructor): Ditto.
      
              * bindings/js/JSInspectedObjectWrapper.cpp:
              (WebCore::JSInspectedObjectWrapper::wrap): Removed overload that takes
              a prototype rather than a structure. Made the use of inheritorID() here
              explicit.
              * bindings/js/JSInspectedObjectWrapper.h: Ditto.
              * bindings/js/JSInspectorCallbackWrapper.cpp:
              (WebCore::JSInspectorCallbackWrapper::wrap): Ditto.
              * bindings/js/JSInspectorCallbackWrapper.h: Ditto.
      
              * bindings/js/JSNamedNodesCollection.cpp:
              (WebCore::JSNamedNodesCollection::JSNamedNodesCollection): Changed to
              take an ExecState argument instead of a prototype. Create a unique
              StructureID instead of sharing.
              * bindings/js/JSNamedNodesCollection.h: Ditto.
      
              * bindings/js/JSQuarantinedObjectWrapper.cpp: Removed overloaded
              constructor that takes a prototype instead of a structure.
              * bindings/js/JSQuarantinedObjectWrapper.h: Ditto.
      
              * bindings/js/JSRGBColor.cpp:
              (WebCore::JSRGBColor::JSRGBColor): Take ExecState instead of a
              prototype; create a unique structure.
              (WebCore::getJSRGBColor): Ditto.
              * bindings/js/JSRGBColor.h: Ditto.
      
              * bindings/js/JSSQLResultSetRowListCustom.cpp:
              (WebCore::JSSQLResultSetRowList::item): Use constructEmptyObject instead
              of explicit coding the idiom for making a new object.
      
              * bindings/js/JSXMLHttpRequestConstructor.cpp:
              (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor):
              Create a unique structure instead of the shared one.
              * bindings/js/JSXSLTProcessorConstructor.cpp:
              (WebCore::JSXSLTProcessorConstructor::JSXSLTProcessorConstructor):
              Ditto.
      
              * bindings/js/ScriptController.cpp:
              (WebCore::ScriptController::clearWindowShell): Let the window shell's
              setWindow function create the JSDOMWindow instead of doing it here.
      
              * bindings/scripts/CodeGeneratorJS.pm: Changed to use PassRefPtr for
              the structure and the wrapped object when creating wrappers.
              Simplified some of the special cases for DOMWindow so they are
              different only in ways the need to be. Eliminated the
              JSDOMWindow::createPrototype and JSDOMWindowPrototype::self
              functions. Moved responsibility for creating the structure and
              parent prototype out of the prototype constructor into the
              createPrototype function. Removed the unused "DoNotCache" flag for
              objects other than DOMWindow. Use getDOMConstructor instead of
              cacheGlobalObject for constructors. Make each constructor have
              a unique structure ID.
      
              * bridge/objc/objc_runtime.h: Added createPrototype and changed the
              name of the info member to s_info so we can use the standard DOM
              binding macros to handl the prototype.
              * bridge/objc/objc_runtime.mm: Fixed namespacing a bit.
              (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
              Create a unique structure using getDOMStructure.
      
              * bridge/runtime_array.cpp: Fixed namespacing a bit.
              (JSC::RuntimeArray::RuntimeArray): Create a unique structure using
              getDOMStructure.
              * bridge/runtime_array.h: Added createPrototype so getDOMStructure
              will work.
      
              * bridge/runtime_object.cpp:
              (JSC::RuntimeObjectImp::RuntimeObjectImp): Create a unique structure using
              getDOMStructure.
              * bridge/runtime_object.h: Added createPrototype so getDOMStructure
              will work.
      
              * history/CachedPage.cpp:
              (WebCore::CachedPage::restore): Let the window shell's
              setWindow function create the JSDOMWindow instead of doing it here.
      
              * page/DOMWindow.idl: Removed DoNotCache, which is no longer used.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36675 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      39a180f1
  20. 07 Sep, 2008 1 commit
    • cwzwarich@webkit.org's avatar
      2008-09-07 Cameron Zwarich <cwzwarich@uwaterloo.ca> · 3f782f6a
      cwzwarich@webkit.org authored
              Reviewed by Maciej Stachowiak.
      
              Bug 20704: Replace the KJS namespace
              <https://bugs.webkit.org/show_bug.cgi?id=20704>
      
              Rename the KJS namespace to JSC. There are still some uses of KJS in
              preprocessor macros and comments, but these will also be changed some
              time in the near future. There are also some uses in the names of JNI
              functions, but I will check if these are safe to change as well.
      
              JavaScriptCore:
      
              * API/APICast.h:
              (toJS):
              (toRef):
              (toGlobalRef):
              * API/JSBase.cpp:
              * API/JSCallbackConstructor.cpp:
              * API/JSCallbackConstructor.h:
              * API/JSCallbackFunction.cpp:
              * API/JSCallbackFunction.h:
              * API/JSCallbackObject.cpp:
              * API/JSCallbackObject.h:
              * API/JSCallbackObjectFunctions.h:
              * API/JSClassRef.cpp:
              (OpaqueJSClass::staticValues):
              (OpaqueJSClass::staticFunctions):
              * API/JSClassRef.h:
              * API/JSContextRef.cpp:
              * API/JSObjectRef.cpp:
              * API/JSProfilerPrivate.cpp:
              * API/JSStringRef.cpp:
              * API/JSValueRef.cpp:
              (JSValueGetType):
              * API/OpaqueJSString.cpp:
              * API/OpaqueJSString.h:
              * JavaScriptCore.Debug.exp:
              * JavaScriptCore.base.exp:
              * VM/CTI.cpp:
              (JSC::):
              * VM/CTI.h:
              * VM/CodeBlock.cpp:
              * VM/CodeBlock.h:
              * VM/CodeGenerator.cpp:
              * VM/CodeGenerator.h:
              * VM/ExceptionHelpers.cpp:
              * VM/ExceptionHelpers.h:
              * VM/Instruction.h:
              * VM/JSPropertyNameIterator.cpp:
              * VM/JSPropertyNameIterator.h:
              * VM/LabelID.h:
              * VM/Machine.cpp:
              * VM/Machine.h:
              * VM/Opcode.cpp:
              * VM/Opcode.h:
              * VM/Register.h:
              (WTF::):
              * VM/RegisterFile.cpp:
              * VM/RegisterFile.h:
              * VM/RegisterID.h:
              (WTF::):
              * VM/SamplingTool.cpp:
              * VM/SamplingTool.h:
              * VM/SegmentedVector.h:
              * kjs/ArgList.cpp:
              * kjs/ArgList.h:
              * kjs/Arguments.cpp:
              * kjs/Arguments.h:
              * kjs/ArrayConstructor.cpp:
              * kjs/ArrayConstructor.h:
              * kjs/ArrayPrototype.cpp:
              * kjs/ArrayPrototype.h:
              * kjs/BatchedTransitionOptimizer.h:
              * kjs/BooleanConstructor.cpp:
              * kjs/BooleanConstructor.h:
              * kjs/BooleanObject.cpp:
              * kjs/BooleanObject.h:
              * kjs/BooleanPrototype.cpp:
              * kjs/BooleanPrototype.h:
              * kjs/CallData.cpp:
              * kjs/CallData.h:
              * kjs/ClassInfo.h:
              * kjs/CommonIdentifiers.cpp:
              * kjs/CommonIdentifiers.h:
              * kjs/ConstructData.cpp:
              * kjs/ConstructData.h:
              * kjs/DateConstructor.cpp:
              * kjs/DateConstructor.h:
              * kjs/DateInstance.cpp:
              (JSC::DateInstance::msToGregorianDateTime):
              * kjs/DateInstance.h:
              * kjs/DateMath.cpp:
              * kjs/DateMath.h:
              * kjs/DatePrototype.cpp:
              * kjs/DatePrototype.h:
              * kjs/DebuggerCallFrame.cpp:
              * kjs/DebuggerCallFrame.h:
              * kjs/Error.cpp:
              * kjs/Error.h:
              * kjs/ErrorConstructor.cpp:
              * kjs/ErrorConstructor.h:
              * kjs/ErrorInstance.cpp:
              * kjs/ErrorInstance.h:
              * kjs/ErrorPrototype.cpp:
              * kjs/ErrorPrototype.h:
              * kjs/ExecState.cpp:
              * kjs/ExecState.h:
              * kjs/FunctionConstructor.cpp:
              * kjs/FunctionConstructor.h:
              * kjs/FunctionPrototype.cpp:
              * kjs/FunctionPrototype.h:
              * kjs/GetterSetter.cpp:
              * kjs/GetterSetter.h:
              * kjs/GlobalEvalFunction.cpp:
              * kjs/GlobalEvalFunction.h:
              * kjs/IndexToNameMap.cpp:
              * kjs/IndexToNameMap.h:
              * kjs/InitializeThreading.cpp:
              * kjs/InitializeThreading.h:
              * kjs/InternalFunction.cpp:
              * kjs/InternalFunction.h:
              (JSC::InternalFunction::InternalFunction):
              * kjs/JSActivation.cpp:
              * kjs/JSActivation.h:
              * kjs/JSArray.cpp:
              * kjs/JSArray.h:
              * kjs/JSCell.cpp:
              * kjs/JSCell.h:
              * kjs/JSFunction.cpp:
              * kjs/JSFunction.h:
              (JSC::JSFunction::JSFunction):
              * kjs/JSGlobalData.cpp:
              (JSC::JSGlobalData::JSGlobalData):
              * kjs/JSGlobalData.h:
              * kjs/JSGlobalObject.cpp:
              * kjs/JSGlobalObject.h:
              * kjs/JSGlobalObjectFunctions.cpp:
              * kjs/JSGlobalObjectFunctions.h:
              * kjs/JSImmediate.cpp:
              * kjs/JSImmediate.h:
              * kjs/JSLock.cpp:
              * kjs/JSLock.h:
              * kjs/JSNotAnObject.cpp:
              * kjs/JSNotAnObject.h:
              * kjs/JSNumberCell.cpp:
              * kjs/JSNumberCell.h:
              * kjs/JSObject.cpp:
              * kjs/JSObject.h:
              * kjs/JSStaticScopeObject.cpp:
              * kjs/JSStaticScopeObject.h:
              * kjs/JSString.cpp:
              * kjs/JSString.h:
              * kjs/JSType.h:
              * kjs/JSValue.cpp:
              * kjs/JSValue.h:
              * kjs/JSVariableObject.cpp:
              * kjs/JSVariableObject.h:
              * kjs/JSWrapperObject.cpp:
              * kjs/JSWrapperObject.h:
              * kjs/LabelStack.cpp:
              * kjs/LabelStack.h:
              * kjs/MathObject.cpp:
              * kjs/MathObject.h:
              * kjs/NativeErrorConstructor.cpp:
              * kjs/NativeErrorConstructor.h:
              * kjs/NativeErrorPrototype.cpp:
              * kjs/NativeErrorPrototype.h:
              * kjs/NodeInfo.h:
              * kjs/NumberConstructor.cpp:
              * kjs/NumberConstructor.h:
              * kjs/NumberObject.cpp:
              * kjs/NumberObject.h:
              * kjs/NumberPrototype.cpp:
              * kjs/NumberPrototype.h:
              * kjs/ObjectConstructor.cpp:
              * kjs/ObjectConstructor.h:
              * kjs/ObjectPrototype.cpp:
              * kjs/ObjectPrototype.h:
              * kjs/Parser.cpp:
              * kjs/Parser.h:
              * kjs/PropertyMap.cpp:
              (JSC::PropertyMapStatisticsExitLogger::~PropertyMapStatisticsExitLogger):
              * kjs/PropertyMap.h:
              * kjs/PropertyNameArray.cpp:
              * kjs/PropertyNameArray.h:
              * kjs/PropertySlot.cpp:
              * kjs/PropertySlot.h:
              * kjs/PrototypeFunction.cpp:
              * kjs/PrototypeFunction.h:
              * kjs/PutPropertySlot.h:
              * kjs/RegExpConstructor.cpp:
              * kjs/RegExpConstructor.h:
              * kjs/RegExpObject.cpp:
              * kjs/RegExpObject.h:
              * kjs/RegExpPrototype.cpp:
              * kjs/RegExpPrototype.h:
              * kjs/ScopeChain.cpp:
              * kjs/ScopeChain.h:
              * kjs/ScopeChainMark.h:
              * kjs/Shell.cpp:
              (jscmain):
              * kjs/SmallStrings.cpp:
              * kjs/SmallStrings.h:
              * kjs/SourceProvider.h:
              * kjs/SourceRange.h:
              * kjs/StringConstructor.cpp:
              * kjs/StringConstructor.h:
              * kjs/StringObject.cpp:
              * kjs/StringObject.h:
              * kjs/StringObjectThatMasqueradesAsUndefined.h:
              * kjs/StringPrototype.cpp:
              * kjs/StringPrototype.h:
              * kjs/StructureID.cpp:
              * kjs/StructureID.h:
              * kjs/SymbolTable.h:
              * kjs/collector.cpp:
              * kjs/collector.h:
              * kjs/completion.h:
              * kjs/create_hash_table:
              * kjs/debugger.cpp:
              * kjs/debugger.h:
              * kjs/dtoa.cpp:
              * kjs/dtoa.h:
              * kjs/grammar.y:
              * kjs/identifier.cpp:
              * kjs/identifier.h:
              (JSC::Identifier::equal):
              * kjs/interpreter.cpp:
              * kjs/interpreter.h:
              * kjs/lexer.cpp:
              (JSC::Lexer::Lexer):
              (JSC::Lexer::clear):
              (JSC::Lexer::makeIdentifier):
              * kjs/lexer.h:
              * kjs/lookup.cpp:
              * kjs/lookup.h:
              * kjs/nodes.cpp:
              * kjs/nodes.h:
              * kjs/nodes2string.cpp:
              * kjs/operations.cpp:
              * kjs/operations.h:
              * kjs/protect.h:
              * kjs/regexp.cpp:
              * kjs/regexp.h:
              * kjs/ustring.cpp:
              * kjs/ustring.h:
              (JSC::operator!=):
              (JSC::IdentifierRepHash::hash):
              (WTF::):
              * masm/MacroAssembler.h:
              * masm/MacroAssemblerWin.cpp:
              * masm/X86Assembler.h:
              * pcre/pcre_exec.cpp:
              * profiler/CallIdentifier.h:
              (WTF::):
              * profiler/HeavyProfile.cpp:
              * profiler/HeavyProfile.h:
              * profiler/Profile.cpp:
              * profiler/Profile.h:
              * profiler/ProfileGenerator.cpp:
              * profiler/ProfileGenerator.h:
              * profiler/ProfileNode.cpp:
              * profiler/ProfileNode.h:
              * profiler/Profiler.cpp:
              * profiler/Profiler.h:
              * profiler/TreeProfile.cpp:
              * profiler/TreeProfile.h:
              * wrec/WREC.cpp:
              * wrec/WREC.h:
              * wtf/AVLTree.h:
      
              WebCore:
      
              * WebCore.base.exp:
              * bindings/js/GCController.cpp:
              * bindings/js/JSAttrCustom.cpp:
              * bindings/js/JSAudioConstructor.cpp:
              * bindings/js/JSAudioConstructor.h:
              (WebCore::JSAudioConstructor::classInfo):
              * bindings/js/JSCSSRuleCustom.cpp:
              * bindings/js/JSCSSStyleDeclarationCustom.cpp:
              * bindings/js/JSCSSValueCustom.cpp:
              * bindings/js/JSCanvasPixelArrayCustom.cpp:
              * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
              * bindings/js/JSClipboardCustom.cpp:
              * bindings/js/JSConsoleCustom.cpp:
              * bindings/js/JSCustomSQLStatementCallback.cpp:
              (WebCore::JSCustomSQLStatementCallback::handleEvent):
              * bindings/js/JSCustomSQLStatementCallback.h:
              (WebCore::JSCustomSQLStatementCallback::create):
              * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
              (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
              * bindings/js/JSCustomSQLStatementErrorCallback.h:
              (WebCore::JSCustomSQLStatementErrorCallback::create):
              * bindings/js/JSCustomSQLTransactionCallback.cpp:
              (WebCore::JSCustomSQLTransactionCallback::handleEvent):
              * bindings/js/JSCustomSQLTransactionCallback.h:
              (WebCore::JSCustomSQLTransactionCallback::create):
              * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
              (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
              * bindings/js/JSCustomSQLTransactionErrorCallback.h:
              (WebCore::JSCustomSQLTransactionErrorCallback::create):
              * bindings/js/JSCustomVoidCallback.cpp:
              (WebCore::JSCustomVoidCallback::handleEvent):
              * bindings/js/JSCustomVoidCallback.h:
              (WebCore::JSCustomVoidCallback::create):
              * bindings/js/JSCustomXPathNSResolver.cpp:
              (WebCore::JSCustomXPathNSResolver::create):
              * bindings/js/JSCustomXPathNSResolver.h:
              * bindings/js/JSDOMApplicationCacheCustom.cpp:
              (WebCore::JSDOMApplicationCache::dispatchEvent):
              * bindings/js/JSDOMBinding.cpp:
              (WebCore::jsOwnedStringOrNull):
              * bindings/js/JSDOMBinding.h:
              (WebCore::DOMObject::DOMObject):
              (WebCore::cacheDOMObject):
              (WebCore::cacheSVGDOMObject):
              (WebCore::DOMExceptionTranslator::DOMExceptionTranslator):
              (WebCore::toJS):
              * bindings/js/JSDOMWindowBase.cpp:
              * bindings/js/JSDOMWindowBase.h:
              (WebCore::JSDOMWindowBase::classInfo):
              (WebCore::JSDOMWindowBase::d):
              * bindings/js/JSDOMWindowCustom.cpp:
              (WebCore::JSDOMWindow::getPropertyAttributes):
              * bindings/js/JSDOMWindowCustom.h:
              (WebCore::asJSDOMWindow):
              (WebCore::JSDOMWindow::customGetOwnPropertySlot):
              (WebCore::JSDOMWindow::customPut):
              (WebCore::JSDOMWindowBase::allowsAccessFrom):
              (WebCore::JSDOMWindowBase::allowsAccessFromNoErrorMessage):
              * bindings/js/JSDOMWindowShell.cpp:
              (WebCore::JSDOMWindowShell::getPropertyAttributes):
              * bindings/js/JSDOMWindowShell.h:
              (WebCore::JSDOMWindowShell::classInfo):
              * bindings/js/JSDatabaseCustom.cpp:
              * bindings/js/JSDocumentCustom.cpp:
              * bindings/js/JSDocumentFragmentCustom.cpp:
              * bindings/js/JSElementCustom.cpp:
              * bindings/js/JSEventCustom.cpp:
              * bindings/js/JSEventListener.cpp:
              * bindings/js/JSEventListener.h:
              (WebCore::JSUnprotectedEventListener::create):
              (WebCore::JSEventListener::create):
              * bindings/js/JSEventTargetBase.cpp:
              * bindings/js/JSEventTargetBase.h:
              (WebCore::JSEventTargetBase::getValueProperty):
              (WebCore::JSEventTargetBase::putValueProperty):
              (WebCore::JSEventTargetBase::getOwnPropertySlot):
              (WebCore::JSEventTargetBase::put):
              (WebCore::JSEventTargetPrototype::JSEventTargetPrototype):
              (WebCore::JSEventTargetPrototype::self):
              (WebCore::JSEventTargetPrototype::getOwnPropertySlot):
              (WebCore::JSEventTargetPrototype::classInfo):
              * bindings/js/JSEventTargetNode.cpp:
              * bindings/js/JSEventTargetNode.h:
              (WebCore::JSEventTargetNode::getOwnPropertySlot):
              (WebCore::JSEventTargetNode::getValueProperty):
              (WebCore::JSEventTargetNode::put):
              (WebCore::JSEventTargetNode::putValueProperty):
              * bindings/js/JSHTMLAllCollection.h:
              (WebCore::JSHTMLAllCollection::JSHTMLAllCollection):
              (WebCore::JSHTMLAllCollection::toBoolean):
              * bindings/js/JSHTMLAppletElementCustom.cpp:
              * bindings/js/JSHTMLCollectionCustom.cpp:
              * bindings/js/JSHTMLDocumentCustom.cpp:
              * bindings/js/JSHTMLElementCustom.cpp:
              * bindings/js/JSHTMLEmbedElementCustom.cpp:
              * bindings/js/JSHTMLFormElementCustom.cpp:
              * bindings/js/JSHTMLFrameElementCustom.cpp:
              * bindings/js/JSHTMLFrameSetElementCustom.cpp:
              * bindings/js/JSHTMLIFrameElementCustom.cpp:
              * bindings/js/JSHTMLInputElementBase.cpp:
              (WebCore::JSHTMLInputElementBase::JSHTMLInputElementBase):
              (WebCore::JSHTMLInputElementBase::getOwnPropertySlot):
              * bindings/js/JSHTMLInputElementBase.h:
              (WebCore::JSHTMLInputElementBase::classInfo):
              * bindings/js/JSHTMLObjectElementCustom.cpp:
              * bindings/js/JSHTMLOptionElementConstructor.cpp:
              * bindings/js/JSHTMLOptionElementConstructor.h:
              (WebCore::JSHTMLOptionElementConstructor::classInfo):
              * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
              * bindings/js/JSHTMLSelectElementCustom.cpp:
              (WebCore::selectIndexSetter):
              (WebCore::JSHTMLSelectElement::indexSetter):
              * bindings/js/JSHTMLSelectElementCustom.h:
              * bindings/js/JSHistoryCustom.cpp:
              * bindings/js/JSImageConstructor.cpp:
              * bindings/js/JSImageConstructor.h:
              (WebCore::JSImageConstructor::classInfo):
              * bindings/js/JSInspectedObjectWrapper.cpp:
              * bindings/js/JSInspectedObjectWrapper.h:
              (WebCore::JSInspectedObjectWrapper::wrapOutgoingValue):
              (WebCore::JSInspectedObjectWrapper::classInfo):
              * bindings/js/JSInspectorCallbackWrapper.cpp:
              * bindings/js/JSInspectorCallbackWrapper.h:
              (WebCore::JSInspectorCallbackWrapper::classInfo):
              (WebCore::JSInspectorCallbackWrapper::wrapOutgoingValue):
              * bindings/js/JSJavaScriptCallFrameCustom.cpp:
              * bindings/js/JSLocationCustom.cpp:
              * bindings/js/JSMimeTypeArrayCustom.cpp:
              * bindings/js/JSNSResolver.cpp:
              * bindings/js/JSNSResolver.h:
              (WebCore::JSNSResolver::create):
              * bindings/js/JSNamedNodeMapCustom.cpp:
              * bindings/js/JSNamedNodesCollection.cpp:
              (WebCore::JSNamedNodesCollection::JSNamedNodesCollection):
              * bindings/js/JSNamedNodesCollection.h:
              (WebCore::JSNamedNodesCollection::classInfo):
              * bindings/js/JSNavigatorCustom.cpp:
              * bindings/js/JSNodeCustom.cpp:
              * bindings/js/JSNodeFilterCondition.cpp:
              (WebCore::JSNodeFilterCondition::acceptNode):
              * bindings/js/JSNodeFilterCondition.h:
              (WebCore::JSNodeFilterCondition::create):
              * bindings/js/JSNodeFilterCustom.cpp:
              * bindings/js/JSNodeIteratorCustom.cpp:
              * bindings/js/JSNodeListCustom.cpp:
              * bindings/js/JSPluginArrayCustom.cpp:
              * bindings/js/JSPluginCustom.cpp:
              * bindings/js/JSPluginElementFunctions.cpp:
              (WebCore::getRuntimeObject):
              * bindings/js/JSPluginElementFunctions.h:
              * bindings/js/JSQuarantinedObjectWrapper.cpp:
              (WebCore::JSQuarantinedObjectWrapper::construct):
              (WebCore::JSQuarantinedObjectWrapper::call):
              * bindings/js/JSQuarantinedObjectWrapper.h:
              (WebCore::JSQuarantinedObjectWrapper::unwrappedObject):
              (WebCore::JSQuarantinedObjectWrapper::unwrappedGlobalObject):
              (WebCore::JSQuarantinedObjectWrapper::className):
              * bindings/js/JSRGBColor.cpp:
              * bindings/js/JSRGBColor.h:
              (WebCore::JSRGBColor::classInfo):
              * bindings/js/JSSQLResultSetRowListCustom.cpp:
              * bindings/js/JSSQLTransactionCustom.cpp:
              * bindings/js/JSSVGLazyEventListener.cpp:
              * bindings/js/JSSVGLazyEventListener.h:
              * bindings/js/JSSVGLengthCustom.cpp:
              * bindings/js/JSSVGMatrixCustom.cpp:
              (WebCore::JSSVGMatrix::inverse):
              (WebCore::JSSVGMatrix::rotateFromVector):
              * bindings/js/JSSVGPathSegCustom.cpp:
              * bindings/js/JSSVGPathSegListCustom.cpp:
              (WebCore::JSSVGPathSegList::initialize):
              (WebCore::JSSVGPathSegList::getItem):
              (WebCore::JSSVGPathSegList::insertItemBefore):
              (WebCore::JSSVGPathSegList::replaceItem):
              (WebCore::JSSVGPathSegList::removeItem):
              (WebCore::JSSVGPathSegList::appendItem):
              * bindings/js/JSSVGPointListCustom.cpp:
              * bindings/js/JSSVGTransformListCustom.cpp:
              * bindings/js/JSStorageCustom.cpp:
              * bindings/js/JSStyleSheetCustom.cpp:
              * bindings/js/JSStyleSheetListCustom.cpp:
              * bindings/js/JSTextCustom.cpp:
              * bindings/js/JSTreeWalkerCustom.cpp:
              * bindings/js/JSXMLHttpRequestConstructor.cpp:
              * bindings/js/JSXMLHttpRequestConstructor.h:
              (WebCore::JSXMLHttpRequestConstructor::classInfo):
              * bindings/js/JSXMLHttpRequestCustom.cpp:
              * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
              * bindings/js/JSXSLTProcessorConstructor.cpp:
              * bindings/js/JSXSLTProcessorConstructor.h:
              (WebCore::JSXSLTProcessorConstructor::classInfo):
              * bindings/js/JSXSLTProcessorCustom.cpp:
              * bindings/js/ScheduledAction.cpp:
              * bindings/js/ScheduledAction.h:
              * bindings/js/ScriptController.cpp:
              (WebCore::ScriptController::attachDebugger):
              (WebCore::ScriptController::windowScriptNPObject):
              * bindings/js/ScriptController.h:
              * bindings/js/ScriptControllerGtk.cpp:
              (WebCore::ScriptController::createScriptInstanceForWidget):
              * bindings/js/ScriptControllerMac.mm:
              (WebCore::ScriptController::createScriptInstanceForWidget):
              (WebCore::ScriptController::windowScriptObject):
              (WebCore::ScriptController::clearPlatformScriptObjects):
              (WebCore::updateRenderingForBindings):
              (WebCore::ScriptController::initJavaJSBindings):
              * bindings/js/ScriptControllerQt.cpp:
              (WebCore::ScriptController::createScriptInstanceForWidget):
              * bindings/js/ScriptControllerWin.cpp:
              (WebCore::ScriptController::createScriptInstanceForWidget):
              * bindings/js/ScriptControllerWx.cpp:
              (WebCore::ScriptController::createScriptInstanceForWidget):
              * bindings/js/StringSourceProvider.h:
              (WebCore::StringSourceProvider::getRange):
              * bindings/objc/DOM.mm:
              (-[DOMNode JSC::Bindings::]):
              * bindings/objc/DOMInternal.h:
              * bindings/objc/DOMInternal.mm:
              (-[WebScriptObject _initializeScriptDOMNodeImp]):
              * bindings/objc/DOMUtility.mm:
              (JSC::createDOMWrapper):
              (WebCore::createDOMWrapper):
              * bindings/objc/WebScriptObject.mm:
              (WebCore::createJSWrapper):
              (-[WebScriptObject _initWithJSObject:JSC::originRootObject:JSC::Bindings::rootObject:JSC::Bindings::]):
              * bindings/objc/WebScriptObjectPrivate.h:
              * bindings/scripts/CodeGeneratorJS.pm:
              * bridge/NP_jsobject.cpp:
              * bridge/NP_jsobject.h:
              * bridge/c/c_class.cpp:
              * bridge/c/c_class.h:
              * bridge/c/c_instance.cpp:
              * bridge/c/c_instance.h:
              * bridge/c/c_runtime.cpp:
              * bridge/c/c_runtime.h:
              * bridge/c/c_utility.cpp:
              * bridge/c/c_utility.h:
              * bridge/jni/jni_class.cpp:
              * bridge/jni/jni_class.h:
              * bridge/jni/jni_instance.cpp:
              * bridge/jni/jni_instance.h:
              * bridge/jni/jni_jsobject.h:
              * bridge/jni/jni_jsobject.mm:
              (JavaJSObject::call):
              (JavaJSObject::convertJObjectToValue):
              * bridge/jni/jni_objc.mm:
              (JSC::Bindings::dispatchJNICall):
              * bridge/jni/jni_runtime.cpp:
              * bridge/jni/jni_runtime.h:
              * bridge/jni/jni_utility.cpp:
              * bridge/jni/jni_utility.h:
              * bridge/npruntime.cpp:
              (_NPN_GetStringIdentifier):
              * bridge/objc/WebScriptObject.h:
              * bridge/objc/objc_class.h:
              * bridge/objc/objc_class.mm:
              * bridge/objc/objc_instance.h:
              * bridge/objc/objc_instance.mm:
              * bridge/objc/objc_runtime.h:
              * bridge/objc/objc_runtime.mm:
              * bridge/objc/objc_utility.h:
              * bridge/objc/objc_utility.mm:
              * bridge/qt/qt_class.cpp:
              * bridge/qt/qt_class.h:
              * bridge/qt/qt_instance.cpp:
              * bridge/qt/qt_instance.h:
              * bridge/qt/qt_runtime.cpp:
              (JSC::Bindings::convertQVariantToValue):
              (JSC::Bindings::):
              * bridge/qt/qt_runtime.h:
              * bridge/runtime.cpp:
              * bridge/runtime.h:
              * bridge/runtime_array.cpp:
              * bridge/runtime_array.h:
              * bridge/runtime_method.cpp:
              * bridge/runtime_method.h:
              * bridge/runtime_object.cpp:
              * bridge/runtime_object.h:
              * bridge/runtime_root.cpp:
              (JSC::Bindings::RootObject::invalidate):
              (JSC::Bindings::RootObject::gcProtect):
              (JSC::Bindings::RootObject::gcUnprotect):
              * bridge/runtime_root.h:
              * bridge/testbindings.cpp:
              * bridge/testbindings.mm:
              * bridge/testqtbindings.cpp:
              * dom/Document.cpp:
              (WebCore::Document::~Document):
              * dom/NSResolver.h:
              * dom/Node.cpp:
              (WebCore::Node::setDocument):
              (WebCore::ResolveNamespaceFunctor::ResolveNamespaceFunctor):
              (WebCore::resolveNamespacesForSelector):
              (WebCore::Node::querySelector):
              (WebCore::Node::querySelectorAll):
              * dom/Node.h:
              * dom/NodeFilter.cpp:
              * dom/NodeFilter.h:
              * dom/NodeFilterCondition.cpp:
              * dom/NodeFilterCondition.h:
              * dom/NodeIterator.cpp:
              * dom/NodeIterator.h:
              * dom/Traversal.cpp:
              * dom/Traversal.h:
              * dom/TreeWalker.cpp:
              * dom/TreeWalker.h:
              * dom/make_names.pl:
              * history/CachedPage.cpp:
              * history/CachedPage.h:
              * html/HTMLPlugInElement.cpp:
              (WebCore::HTMLPlugInElement::getInstance):
              * html/HTMLPlugInElement.h:
              * loader/FrameLoader.cpp:
              * loader/FrameLoader.h:
              * loader/icon/IconDatabase.cpp:
              (WebCore::iconDatabase):
              * page/Console.cpp:
              * page/Console.h:
              * page/InspectorController.cpp:
              (WebCore::XMLHttpRequestResource::XMLHttpRequestResource):
              (WebCore::XMLHttpRequestResource::~XMLHttpRequestResource):
              (WebCore::InspectorResource::setXMLHttpRequestProperties):
              (WebCore::InspectorResource::sourceString):
              (WebCore::getResourceDocumentNode):
              (WebCore::search):
              (WebCore::InspectorController::focusNode):
              (WebCore::InspectorController::inspectedWindowScriptObjectCleared):
              (WebCore::InspectorController::addDatabaseScriptResource):
              (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest):
              * page/InspectorController.h:
              (WebCore::InspectorController::profiles):
              * page/JavaScriptCallFrame.cpp:
              (WebCore::JavaScriptCallFrame::scopeChain):
              * page/JavaScriptCallFrame.h:
              (WebCore::JavaScriptCallFrame::create):
              (WebCore::JavaScriptCallFrame::update):
              * page/JavaScriptDebugListener.h:
              * page/JavaScriptDebugServer.cpp:
              (WebCore::dispatchDidParseSource):
              * page/JavaScriptDebugServer.h:
              * page/JavaScriptProfile.cpp:
              * page/JavaScriptProfile.h:
              * page/JavaScriptProfileNode.cpp:
              (WebCore::getTotalTime):
              (WebCore::getSelfTime):
              (WebCore::getTotalPercent):
              (WebCore::getSelfPercent):
              (WebCore::getNumberOfCalls):
              (WebCore::getChildren):
              (WebCore::getVisible):
              * page/JavaScriptProfileNode.h:
              * page/Page.cpp:
              (WebCore::Page::setDebuggerForAllPages):
              (WebCore::Page::setDebugger):
              * page/Page.h:
              (WebCore::Page::debugger):
              * page/mac/FrameMac.mm:
              * platform/KURL.h:
              (WebCore::KURL::operator JSC::UString):
              * platform/text/AtomicString.cpp:
              (WebCore::AtomicString::add):
              (WebCore::AtomicString::find):
              * platform/text/AtomicString.h:
              (WebCore::AtomicString::AtomicString):
              * platform/text/PlatformString.h:
              * platform/text/String.cpp:
              (WebCore::charactersToDouble):
              * platform/win/BString.cpp:
              * platform/win/BString.h:
              * plugins/MimeTypeArray.h:
              * plugins/Plugin.h:
              * plugins/PluginArray.h:
              * plugins/PluginView.cpp:
              (WebCore::PluginView::start):
              (WebCore::PluginView::performRequest):
              (WebCore::PluginView::bindingInstance):
              * plugins/PluginView.h:
              * plugins/gtk/PluginViewGtk.cpp:
              (WebCore::PluginView::paint):
              (WebCore::PluginView::handleKeyboardEvent):
              (WebCore::PluginView::handleMouseEvent):
              (WebCore::PluginView::setNPWindowRect):
              (WebCore::PluginView::stop):
              (WebCore::PluginView::init):
              * plugins/qt/PluginViewQt.cpp:
              (WebCore::PluginView::setNPWindowRect):
              (WebCore::PluginView::stop):
              (WebCore::PluginView::init):
              * plugins/win/PluginViewWin.cpp:
              (WebCore::PluginView::dispatchNPEvent):
              (WebCore::PluginView::handleKeyboardEvent):
              (WebCore::PluginView::handleMouseEvent):
              (WebCore::PluginView::setNPWindowRect):
              (WebCore::PluginView::stop):
              * storage/Database.cpp:
              (WebCore::Database::Database):
              * xml/XMLHttpRequest.cpp:
              (WebCore::XMLHttpRequest::responseText):
              (WebCore::XMLHttpRequest::loadRequestAsynchronously):
              (WebCore::XMLHttpRequest::clearResponse):
              (WebCore::XMLHttpRequest::dropProtection):
              (WebCore::XMLHttpRequest::didFinishLoading):
              (WebCore::XMLHttpRequest::didReceiveData):
              * xml/XMLHttpRequest.h:
      
              WebKit/gtk:
      
              * webkit/webkitprivate.cpp:
              (webkit_init):
      
              WebKit/mac:
      
              * Misc/WebCoreStatistics.mm:
              * Plugins/WebBaseNetscapePluginStream.mm:
              (-[WebBaseNetscapePluginStream wantsAllStreams]):
              * Plugins/WebBaseNetscapePluginView.mm:
              (-[WebBaseNetscapePluginView sendEvent:isDrawRect:]):
              (-[WebBaseNetscapePluginView setWindowIfNecessary]):
              (-[WebBaseNetscapePluginView start]):
              (-[WebBaseNetscapePluginView createPluginScriptableObject]):
              (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:]):
              (-[WebBaseNetscapePluginView webFrame:didFinishLoadWithReason:]):
              (-[WebBaseNetscapePluginView loadPluginRequest:]):
              (-[WebBaseNetscapePluginView _printedPluginBitmap]):
              * Plugins/WebPluginController.mm:
              (+[WebPluginController plugInViewWithArguments:fromPluginPackage:]):
              (-[WebPluginController startAllPlugins]):
              (-[WebPluginController stopAllPlugins]):
              (-[WebPluginController addPlugin:]):
              (-[WebPluginController destroyPlugin:]):
              (-[WebPluginController destroyAllPlugins]):
              * WebView/WebFrame.mm:
              * WebView/WebScriptDebugDelegate.mm:
              * WebView/WebScriptDebugger.h:
              * WebView/WebScriptDebugger.mm:
              * WebView/WebView.mm:
              (-[WebViewPrivate init]):
      
              WebKit/qt:
              
              * Api/qwebframe.cpp:
              (QWebFrame::addToJavaScriptWindowObject):
              (QWebFrame::evaluateJavaScript):
      
              WebKit/win:
      
              * WebCoreStatistics.cpp:
              * WebJavaScriptCollector.cpp:
              * WebScriptCallFrame.cpp:
              (WebScriptCallFrame::jsValueToString):
              * WebScriptCallFrame.h:
              (WebScriptCallFrame::state):
              * WebView.cpp:
              (WebView::WebView):
              (WebView::stringByEvaluatingJavaScriptFromString):
      
              WebKit/wx:
      
              * WebFrame.cpp:
              (wxWebFrame::RunScript):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36263 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3f782f6a
  21. 28 Aug, 2008 1 commit
    • eric@webkit.org's avatar
      Reviewed by Darin and Alexey. · 70b099f1
      eric@webkit.org authored
              Close a leak of PausedTimeouts if the JavaScriptDebugServer was destroyed
              with timeouts paused.
              https://bugs.webkit.org/show_bug.cgi?id=20469
      
              I attempted to clean up the memory management of PausedTimeouts, I'm not
              sure the solution I came up with is "cleaner", but it's in some ways
              "safer", since it no longer uses raw pointers and manual new/delete.
      
              This also now prevents CachedPage from needlessly creating Window
              objects when caching pages which didn't already have one. :)
      
              I also made Chrome.cpp no longer depend on the JavaScript bindings
              (aka JSDOMWindowBase.h), since there was no real reason for it to.
      
              * bindings/js/JSDOMWindowBase.cpp:
              (WebCore::JSDOMWindowBase::pauseTimeouts):
              (WebCore::JSDOMWindowBase::resumeTimeouts):
              * bindings/js/JSDOMWindowBase.h:
              * bindings/js/ScriptController.cpp:
              (WebCore::ScriptController::pauseTimeouts):
              (WebCore::ScriptController::resumeTimeouts):
              * bindings/js/ScriptController.h:
              * history/CachedPage.cpp:
              (WebCore::CachedPage::CachedPage):
              (WebCore::CachedPage::restore):
              * page/Chrome.cpp:
              (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
              (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
              * page/JavaScriptDebugServer.cpp:
              (WebCore::JavaScriptDebugServer::~JavaScriptDebugServer):
              (WebCore::JavaScriptDebugServer::setJavaScriptPaused):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@35964 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      70b099f1
  22. 20 Aug, 2008 1 commit
  23. 04 Aug, 2008 1 commit
    • dino@apple.com's avatar
      2008-08-04 Dean Jackson <dino@apple.com> · bb12e44a
      dino@apple.com authored
              Reviewed by Dave Hyatt.
      
              Improve AnimationController
              https://bugs.webkit.org/show_bug.cgi?id=19938
      
              - Transition class is now called Animation
              - new state-based AnimationController that can support CSS Animations
              - add support for -webkit-transition-delay
              - remove -webkit-transition-repeat-count (since it never existed officially)
              - updates the -webkit-transition shorthand to reflect removing repeat count
              - updates the Transition class so that properties can be shared with animations
              - adds a "now" keyword for -webkit-transition-delay
              - adds a new change type for style (changed by animation)
              - adds new event names (although they are not dispatched yet)
              - makes text stroke and text fill colors returned by RenderStyle const
      
              Tests:
              - manual-tests/transition-left.html
              - manual-tests/transition-delay.html
              - manual-tests/transition-timing-functions.html
      
              * css/CSSComputedStyleDeclaration.cpp:
              * css/CSSParser.cpp:
              * css/CSSParser.h:
              * css/CSSPropertyNames.in:
              * css/CSSStyleSelector.cpp:
              * css/CSSStyleSelector.h:
              * css/CSSTimingFunctionValue.h:
              * css/CSSValue.h:
              * css/CSSValueKeywords.in:
              * css/WebKitCSSTransformValue.cpp:
              * dom/Document.cpp:
              * dom/Document.h:
              * dom/Element.cpp:
              * dom/EventNames.h:
              * dom/Node.cpp:
              * dom/Node.h:
              * history/CachedPage.cpp:
              * page/AnimationController.cpp:
              * page/AnimationController.h:
              * page/Frame.cpp:
              * rendering/RenderObject.cpp:
              * rendering/RenderWidget.cpp:
              * rendering/style/RenderStyle.cpp:
              * rendering/style/RenderStyle.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@35545 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bb12e44a
  24. 31 Jul, 2008 1 commit
  25. 15 Jul, 2008 1 commit
    • kmccullough@apple.com's avatar
      JavaScriptCore: · 7c4a1bea
      kmccullough@apple.com authored
      2008-07-15  Kevin McCullough  <kmccullough@apple.com>
      
              Reviewed by Geoff.
      
              Rename pageGroupIdentifier to profileGroup to keep mention of a
              pageGroup out of JavaScriptCore.
      
              * kjs/JSGlobalObject.cpp:
              (KJS::JSGlobalObject::init):
              * kjs/JSGlobalObject.h:
              (KJS::JSGlobalObject::setProfileGroup):
              (KJS::JSGlobalObject::profileGroup):
              * profiler/ProfileGenerator.cpp:
              (KJS::ProfileGenerator::create):
              (KJS::ProfileGenerator::ProfileGenerator):
              * profiler/ProfileGenerator.h:
              (KJS::ProfileGenerator::profileGroup):
              * profiler/Profiler.cpp:
              (KJS::Profiler::startProfiling):
              (KJS::dispatchFunctionToProfiles):
              (KJS::Profiler::willExecute):
              (KJS::Profiler::didExecute):
      
      WebCore:
      
      2008-07-15  Kevin McCullough  <kmccullough@apple.com>
      
              Reviewed by Geoff.
      
              Rename pageGroupIdentifier to profileGroup to keep mention of a
              pageGroup out of JavaScriptCore.
      
              * bindings/js/JSQuarantinedObjectWrapper.cpp:
              (WebCore::JSQuarantinedObjectWrapper::allowsUnwrappedAccessFrom):
              * bindings/js/ScriptController.cpp:
              (WebCore::ScriptController::clear):
              (WebCore::ScriptController::initScript):
              * history/CachedPage.cpp:
              (WebCore::CachedPage::restore):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@35184 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7c4a1bea
  26. 14 Jul, 2008 1 commit
  27. 11 Jul, 2008 1 commit
    • slewis@apple.com's avatar
      2008-07-11 Stephanie Lewis <slewis@apple.com> · a7615caa
      slewis@apple.com authored
              Reviewed by Darin Adler and Oliver Hunt.
      
      JavaScriptCore:
              Refactor RefCounting Leak counting code into a common class.
      
              In order to export the symbols I needed to put the debug defines inside the function names
              
              Before we had a separate channel for each Logging each Leak type.  Since the leak channels were only used in one location, and only at quit for simplicity I combined them all into one leak channel.
      
              * JavaScriptCore.exp:
              * JavaScriptCore.xcodeproj/project.pbxproj: add new class
              * kjs/nodes.cpp: remove old leak counting code
              * wtf/RefCountedLeakCounter.cpp: Added. create a common leak counting class
              * wtf/RefCountedLeakCounter.h: Added.
      
      WebCore:
              No Functionality Changed.  Change all the leak counting code to use the new WTF leak counter class.
      
              * bindings/js/JSCustomSQLTransactionCallback.cpp:
              (WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback):
              (WebCore::JSCustomSQLTransactionCallback::~JSCustomSQLTransactionCallback):
              * bindings/js/JSEventListener.cpp:
              (WebCore::JSEventListener::JSEventListener):
              (WebCore::JSEventListener::~JSEventListener):
              * dom/Node.cpp:
              (WebCore::Node::Node):
              (WebCore::Node::~Node):
              * dom/Range.cpp:
              (WebCore::Range::Range):
              (WebCore::Range::~Range):
              * history/CachedPage.cpp:
              (WebCore::CachedPage::CachedPage):
              (WebCore::CachedPage::~CachedPage):
              * loader/SubresourceLoader.cpp:
              (WebCore::SubresourceLoader::SubresourceLoader):
              (WebCore::SubresourceLoader::~SubresourceLoader):
              * page/Frame.cpp:
              (WebCore::Frame::Frame):
              (WebCore::Frame::~Frame):
              * page/Page.cpp:
              (WebCore::Page::Page):
              (WebCore::Page::~Page):
              * rendering/RenderObject.cpp:
              (WebCore::RenderObject::RenderObject):
              (WebCore::RenderObject::~RenderObject):
              * rendering/bidi.cpp:
              (WebCore::throw):
              (WebCore::BidiRun::operator delete):
      
      WebKit
      
              Move WebPreferences.m to objc++ so it can include the new WTF leak counting class.
      
              * WebKit.xcodeproj/project.pbxproj:
      
              Disable WTF leak messages when using fast teardown.  Use full document teardown while running in debug.
      
              * WebView/WebPreferences.m: Removed.
              * WebView/WebPreferences.mm: Copied from http:/svn.webkit.org/repository/webkit/trunk/WebKit/mac/WebView/WebPreferences.m.
              (+[WebPreferences initialize]): if running in Default enable full  document teardown
              (-[WebPreferences editableLinkBehavior]):
              (-[WebPreferences setFullDocumentTeardownEnabled:]):
              * WebView/WebView.mm:
              (-[WebView _close]): disable leak messages if using fast teardown
      
      WebKitTools:
              Make sure we read WebCore Leak messages.  Force full document teardown for DumpRenderTree.
      
              Up timeout limit, some slower machines were timing out before crashtracer finished writing out to disk and quitting DRT.
      
              * DumpRenderTree/mac/DumpRenderTree.mm:
              (setDefaultsToConsistentValuesForTesting):
              (resetWebViewToConsistentStateBeforeTesting):
              * Scripts/run-webkit-tests:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@35148 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a7615caa
  28. 02 Jul, 2008 1 commit
    • ap@webkit.org's avatar
      Reviewed by Darin. · 32dab944
      ap@webkit.org authored
              Disable JSLock for per-thread contexts.
      
              No change on SunSpider.
      
              * kjs/JSGlobalData.h:
              * kjs/JSGlobalData.cpp:
              (KJS::JSGlobalData::JSGlobalData):
              (KJS::JSGlobalData::sharedInstance):
              Added isSharedInstance as a better way to tell whether the instance is shared (legacy).
      
              * kjs/JSLock.cpp:
              (KJS::createJSLockCount):
              (KJS::JSLock::lockCount):
              (KJS::setLockCount):
              (KJS::JSLock::JSLock):
              (KJS::JSLock::lock):
              (KJS::JSLock::unlock):
              (KJS::JSLock::currentThreadIsHoldingLock):
              (KJS::JSLock::DropAllLocks::DropAllLocks):
              (KJS::JSLock::DropAllLocks::~DropAllLocks):
              * kjs/JSLock.h:
              (KJS::JSLock::JSLock):
              (KJS::JSLock::~JSLock):
              Made JSLock and JSLock::DropAllLocks constructors take a parameter to decide whether to
              actually lock a mutex, or only to increment recursion count. We cannot turn it into no-op
              if we want to keep existing assertions working.
              Made recursion count per-thread, now that locks may not lock.
      
              * API/JSBase.cpp:
              (JSEvaluateScript): Take JSLock after casting JSContextRef to ExecState* (which doesn't need
              locking in any case), so that a decision whether to actually lock can be made.
              (JSCheckScriptSyntax): Ditto.
              (JSGarbageCollect): Only lock while collecting the shared heap, not the per-thread one.
      
              * API/JSObjectRef.cpp:
              (JSClassCreate): Don't lock, as there is no reason to.
              (JSClassRetain): Ditto.
              (JSClassRelease): Ditto.
              (JSPropertyNameArrayRetain): Ditto.
              (JSPropertyNameArrayRelease): Only lock while deleting the array, as that may touch
              identifier table.
              (JSPropertyNameAccumulatorAddName): Adding a string also involves an identifier table
              lookup, and possibly modification.
      
              * API/JSStringRef.cpp:
              (JSStringCreateWithCharacters):
              (JSStringCreateWithUTF8CString):
              (JSStringRetain):
              (JSStringRelease):
              (JSStringGetUTF8CString):
              (JSStringIsEqual):
              * API/JSStringRefCF.cpp:
              (JSStringCreateWithCFString):
              JSStringRef operations other than releasing do not need locking.
      
              * VM/Machine.cpp: Don't include unused JSLock.h.
      
              * kjs/CollectorHeapIntrospector.cpp: (KJS::CollectorHeapIntrospector::statistics):
              Don't take the lock for real, as heap introspection pauses the process anyway. It seems that
              the existing code could cause deadlocks.
      
              * kjs/Shell.cpp:
              (functionGC):
              (main):
              (jscmain):
              The test tool uses a per-thread context, so no real locking is required.
      
              * kjs/collector.h:
              (KJS::Heap::setGCProtectNeedsLocking): Optionally protect m_protectedValues access with a
              per-heap mutex. This is only needed for WebCore Database code, which violates the "no data
              migration between threads" by using ProtectedPtr on a background thread.
              (KJS::Heap::isShared): Keep a shared flag here, as well.
      
              * kjs/protect.h:
              (KJS::::ProtectedPtr):
              (KJS::::~ProtectedPtr):
              (KJS::::operator):
              (KJS::operator==):
              (KJS::operator!=):
              ProtectedPtr is ony used from WebCore, so it doesn't need to take JSLock. An assertion in
              Heap::protect/unprotect guards agains possible future unlocked uses of ProtectedPtr in JSC.
      
              * kjs/collector.cpp:
              (KJS::Heap::Heap): Initialize m_isShared.
              (KJS::Heap::~Heap): No need to lock for real during destruction, but must keep assertions
              in sweep() working.
              (KJS::destroyRegisteredThread): Registered thread list is only accessed for shared heap,
              so locking is always needed here.
              (KJS::Heap::registerThread): Ditto.
              (KJS::Heap::markStackObjectsConservatively): Use m_isShared instead of comparing to a shared
              instance for a small speedup.
              (KJS::Heap::setGCProtectNeedsLocking): Create m_protectedValuesMutex. There is currently no
              way to undo this - and ideally, Database code will be fixed to lo longer require this quirk.
              (KJS::Heap::protect): Take m_protectedValuesMutex (if it exists) while accessing
              m_protectedValues.
              (KJS::Heap::unprotect): Ditto.
              (KJS::Heap::markProtectedObjects): Ditto.
              (KJS::Heap::protectedGlobalObjectCount): Ditto.
              (KJS::Heap::protectedObjectCount): Ditto.
              (KJS::Heap::protectedObjectTypeCounts): Ditto.
      
              * kjs/ustring.cpp:
              * kjs/ustring.h:
              Don't include JSLock.h, which is no longer used here. As a result, an explicit include had
              to be added to many files in JavaScriptGlue, WebCore and WebKit.
      
              * kjs/JSGlobalObject.cpp:
              (KJS::JSGlobalObject::init):
              * API/JSCallbackConstructor.cpp:
              (KJS::constructJSCallback):
              * API/JSCallbackFunction.cpp:
              (KJS::JSCallbackFunction::call):
              * API/JSCallbackObjectFunctions.h:
              (KJS::::init):
              (KJS::::getOwnPropertySlot):
              (KJS::::put):
              (KJS::::deleteProperty):
              (KJS::::construct):
              (KJS::::hasInstance):
              (KJS::::call):
              (KJS::::getPropertyNames):
              (KJS::::toNumber):
              (KJS::::toString):
              (KJS::::staticValueGetter):
              (KJS::::callbackGetter):
              * API/JSContextRef.cpp:
              (JSGlobalContextCreate):
              (JSGlobalContextRetain):
              (JSGlobalContextRelease):
              * API/JSValueRef.cpp:
              (JSValueIsEqual):
              (JSValueIsStrictEqual):
              (JSValueIsInstanceOfConstructor):
              (JSValueMakeNumber):
              (JSValueMakeString):
              (JSValueToNumber):
              (JSValueToStringCopy):
              (JSValueToObject):
              (JSValueProtect):
              (JSValueUnprotect):
              * JavaScriptCore.exp:
              * kjs/PropertyNameArray.h:
              (KJS::PropertyNameArray::globalData):
              * kjs/interpreter.cpp:
              (KJS::Interpreter::checkSyntax):
              (KJS::Interpreter::evaluate):
              Pass a parameter to JSLock/JSLock::DropAllLocks to decide whether the lock needs to be taken.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34947 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      32dab944
  29. 16 Jun, 2008 1 commit
    • darin@apple.com's avatar
      WebCore: · 60d3e9f9
      darin@apple.com authored
      2008-06-15  Darin Adler  <darin@apple.com>
      
              - give Frame object functions shorter names: scriptProxy() -> script(),
                selectionController() -> selection(), animationController() -> animation()
      
              * WebCore.base.exp:
              * bindings/js/JSCustomSQLStatementCallback.cpp:
              (WebCore::JSCustomSQLStatementCallback::handleEvent):
              * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
              (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
              * bindings/js/JSCustomSQLTransactionCallback.cpp:
              (WebCore::JSCustomSQLTransactionCallback::handleEvent):
              * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
              (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
              * bindings/js/JSCustomVoidCallback.cpp:
              (WebCore::JSCustomVoidCallback::handleEvent):
              * bindings/js/JSCustomXPathNSResolver.cpp:
              (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
              * bindings/js/JSDOMWindowBase.cpp:
              (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
              (WebCore::allowPopUp):
              (WebCore::createWindow):
              (WebCore::windowProtoFuncOpen):
              (WebCore::toJS):
              (WebCore::toJSDOMWindow):
              * bindings/js/JSDOMWindowCustom.cpp:
              (WebCore::JSDOMWindow::setLocation):
              * bindings/js/JSDOMWindowShell.cpp:
              (WebCore::toJS):
              (WebCore::toJSDOMWindowShell):
              * bindings/js/JSDocumentCustom.cpp:
              (WebCore::JSDocument::setLocation):
              * bindings/js/JSLocationCustom.cpp:
              (WebCore::navigateIfAllowed):
              (WebCore::JSLocation::reload):
              * bindings/js/JSNodeFilterCondition.cpp:
              (WebCore::JSNodeFilterCondition::acceptNode):
              * bindings/js/ScheduledAction.cpp:
              (WebCore::ScheduledAction::execute):
              * bindings/js/kjs_events.cpp:
              (WebCore::JSAbstractEventListener::handleEvent):
              (WebCore::JSLazyEventListener::parseCode):
              * bindings/js/kjs_html.cpp:
              (WebCore::runtimeObjectImplementsCall):
              * bindings/objc/DOMInternal.mm:
              (-[WebScriptObject _initializeScriptDOMNodeImp]):
              * bridge/jni/jni_jsobject.mm:
              (createRootObject):
              * css/CSSStyleSelector.cpp:
              (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
              * dom/Document.cpp:
              (WebCore::Document::nodeWillBeRemoved):
              (WebCore::Document::createHTMLEventListener):
              * dom/Element.cpp:
              (WebCore::Element::updateFocusAppearance):
              * dom/EventTarget.cpp:
              (WebCore::EventTarget::dispatchGenericEvent):
              * dom/XMLTokenizer.cpp:
              (WebCore::XMLTokenizer::startElementNs):
              * editing/DeleteButtonController.cpp:
              (WebCore::DeleteButtonController::respondToChangedSelection):
              (WebCore::DeleteButtonController::enable):
              (WebCore::DeleteButtonController::deleteTarget):
              * editing/EditCommand.cpp:
              (WebCore::EditCommand::EditCommand):
              * editing/Editor.cpp:
              (WebCore::Editor::selectionForCommand):
              (WebCore::Editor::canEdit):
              (WebCore::Editor::canEditRichly):
              (WebCore::Editor::canDHTMLCut):
              (WebCore::Editor::canDHTMLCopy):
              (WebCore::Editor::canCopy):
              (WebCore::Editor::canDelete):
              (WebCore::Editor::deleteWithDirection):
              (WebCore::Editor::deleteSelectionWithSmartDelete):
              (WebCore::Editor::replaceSelectionWithFragment):
              (WebCore::Editor::selectedRange):
              (WebCore::Editor::tryDHTMLCopy):
              (WebCore::Editor::tryDHTMLCut):
              (WebCore::Editor::fontForSelection):
              (WebCore::Editor::selectionUnorderedListState):
              (WebCore::Editor::selectionOrderedListState):
              (WebCore::Editor::increaseSelectionListLevel):
              (WebCore::Editor::increaseSelectionListLevelOrdered):
              (WebCore::Editor::increaseSelectionListLevelUnordered):
              (WebCore::Editor::decreaseSelectionListLevel):
              (WebCore::Editor::dispatchCPPEvent):
              (WebCore::Editor::applyStyle):
              (WebCore::Editor::applyParagraphStyle):
              (WebCore::Editor::applyStyleToSelection):
              (WebCore::Editor::applyParagraphStyleToSelection):
              (WebCore::Editor::selectionHasStyle):
              (WebCore::Editor::appliedEditing):
              (WebCore::Editor::unappliedEditing):
              (WebCore::Editor::reappliedEditing):
              (WebCore::Editor::insertLineBreak):
              (WebCore::Editor::insertParagraphSeparator):
              (WebCore::Editor::paste):
              (WebCore::Editor::selectComposition):
              (WebCore::Editor::confirmComposition):
              (WebCore::Editor::setComposition):
              (WebCore::Editor::advanceToNextMisspelling):
              (WebCore::Editor::isSelectionUngrammatical):
              (WebCore::Editor::guessesForUngrammaticalSelection):
              (WebCore::Editor::getCompositionSelection):
              (WebCore::Editor::transpose):
              * editing/EditorCommand.cpp:
              (WebCore::expandSelectionToGranularity):
              (WebCore::executeDeleteToMark):
              (WebCore::executeMoveBackward):
              (WebCore::executeMoveBackwardAndModifySelection):
              (WebCore::executeMoveDown):
              (WebCore::executeMoveDownAndModifySelection):
              (WebCore::executeMoveForward):
              (WebCore::executeMoveForwardAndModifySelection):
              (WebCore::executeMoveLeft):
              (WebCore::executeMoveLeftAndModifySelection):
              (WebCore::executeMovePageDown):
              (WebCore::executeMovePageDownAndModifySelection):
              (WebCore::executeMovePageUp):
              (WebCore::executeMovePageUpAndModifySelection):
              (WebCore::executeMoveRight):
              (WebCore::executeMoveRightAndModifySelection):
              (WebCore::executeMoveToBeginningOfDocument):
              (WebCore::executeMoveToBeginningOfDocumentAndModifySelection):
              (WebCore::executeMoveToBeginningOfLine):
              (WebCore::executeMoveToBeginningOfLineAndModifySelection):
              (WebCore::executeMoveToBeginningOfParagraph):
              (WebCore::executeMoveToBeginningOfParagraphAndModifySelection):
              (WebCore::executeMoveToBeginningOfSentence):
              (WebCore::executeMoveToBeginningOfSentenceAndModifySelection):
              (WebCore::executeMoveToEndOfDocument):
              (WebCore::executeMoveToEndOfDocumentAndModifySelection):
              (WebCore::executeMoveToEndOfSentence):
              (WebCore::executeMoveToEndOfSentenceAndModifySelection):
              (WebCore::executeMoveToEndOfLine):
              (WebCore::executeMoveToEndOfLineAndModifySelection):
              (WebCore::executeMoveToEndOfParagraph):
              (WebCore::executeMoveToEndOfParagraphAndModifySelection):
              (WebCore::executeMoveParagraphBackwardAndModifySelection):
              (WebCore::executeMoveParagraphForwardAndModifySelection):
              (WebCore::executeMoveUp):
              (WebCore::executeMoveUpAndModifySelection):
              (WebCore::executeMoveWordBackward):
              (WebCore::executeMoveWordBackwardAndModifySelection):
              (WebCore::executeMoveWordForward):
              (WebCore::executeMoveWordForwardAndModifySelection):
              (WebCore::executeMoveWordLeft):
              (WebCore::executeMoveWordLeftAndModifySelection):
              (WebCore::executeMoveWordRight):
              (WebCore::executeMoveWordRightAndModifySelection):
              (WebCore::executeSelectAll):
              (WebCore::executeSelectToMark):
              (WebCore::executeSetMark):
              (WebCore::executeSwapWithMark):
              (WebCore::executeUnselect):
              (WebCore::enabledAnySelection):
              (WebCore::enabledAnySelectionAndMark):
              (WebCore::enabledInRichlyEditableText):
              (WebCore::enabledRangeInEditableText):
              (WebCore::enabledRangeInRichlyEditableText):
              * editing/ModifySelectionListLevel.cpp:
              (WebCore::IncreaseSelectionListLevelCommand::canIncreaseSelectionListLevel):
              (WebCore::DecreaseSelectionListLevelCommand::canDecreaseSelectionListLevel):
              * editing/RemoveFormatCommand.cpp:
              (WebCore::RemoveFormatCommand::doApply):
              * editing/SelectionController.cpp:
              (WebCore::SelectionController::setSelection):
              (WebCore::SelectionController::selectFrameElementInParentIfFullySelected):
              * editing/TypingCommand.cpp:
              (WebCore::TypingCommand::deleteSelection):
              (WebCore::TypingCommand::insertText):
              (WebCore::TypingCommand::deleteKeyPressed):
              (WebCore::TypingCommand::forwardDeleteKeyPressed):
              * history/CachedPage.cpp:
              (WebCore::CachedPage::CachedPage):
              (WebCore::CachedPage::restore):
              * html/HTMLAnchorElement.cpp:
              (WebCore::HTMLAnchorElement::defaultEventHandler):
              (WebCore::HTMLAnchorElement::setActive):
              * html/HTMLInputElement.cpp:
              (WebCore::HTMLInputElement::defaultEventHandler):
              * html/HTMLPlugInElement.cpp:
              (WebCore::HTMLPlugInElement::createNPObject):
              * html/HTMLScriptElement.cpp:
              (WebCore::HTMLScriptElement::evaluateScript):
              * html/HTMLTokenizer.cpp:
              (WebCore::HTMLTokenizer::parseTag):
              (WebCore::HTMLTokenizer::processToken):
              * loader/FrameLoader.cpp:
              (WebCore::FrameLoader::executeScript):
              (WebCore::FrameLoader::clear):
              (WebCore::FrameLoader::userGestureHint):
              (WebCore::FrameLoader::open):
              (WebCore::FrameLoader::dispatchWindowObjectAvailable):
              (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
              * loader/archive/cf/LegacyWebArchive.cpp:
              (WebCore::LegacyWebArchive::createFromSelection):
              * page/AccessibilityRenderObject.cpp:
              (WebCore::AccessibilityRenderObject::selection):
              (WebCore::AccessibilityRenderObject::setSelectedTextRange):
              (WebCore::AccessibilityRenderObject::isFocused):
              (WebCore::AccessibilityRenderObject::doAXTextMarkerRangeForLine):
              (WebCore::AccessibilityRenderObject::doSetAXSelectedTextMarkerRange):
              (WebCore::AccessibilityRenderObject::doAXRangeForLine):
              (WebCore::AccessibilityRenderObject::handleActiveDescendantChanged):
              * page/ContextMenuController.cpp:
              (WebCore::ContextMenuController::contextMenuItemSelected):
              * page/DOMSelection.cpp:
              (WebCore::DOMSelection::anchorNode):
              (WebCore::DOMSelection::baseNode):
              (WebCore::DOMSelection::anchorOffset):
              (WebCore::DOMSelection::baseOffset):
              (WebCore::DOMSelection::focusNode):
              (WebCore::DOMSelection::extentNode):
              (WebCore::DOMSelection::focusOffset):
              (WebCore::DOMSelection::extentOffset):
              (WebCore::DOMSelection::isCollapsed):
              (WebCore::DOMSelection::type):
              (WebCore::DOMSelection::rangeCount):
              (WebCore::DOMSelection::collapse):
              (WebCore::DOMSelection::collapseToEnd):
              (WebCore::DOMSelection::collapseToStart):
              (WebCore::DOMSelection::empty):
              (WebCore::DOMSelection::setBaseAndExtent):
              (WebCore::DOMSelection::setPosition):
              (WebCore::DOMSelection::modify):
              (WebCore::DOMSelection::extend):
              (WebCore::DOMSelection::getRangeAt):
              (WebCore::DOMSelection::removeAllRanges):
              (WebCore::DOMSelection::addRange):
              (WebCore::DOMSelection::deleteFromDocument):
              (WebCore::DOMSelection::containsNode):
              (WebCore::DOMSelection::toString):
              * page/DragController.cpp:
              (WebCore::DragController::dragIsMove):
              (WebCore::DragController::tryDocumentDrag):
              (WebCore::setSelectionToDragCaret):
              (WebCore::DragController::concludeDrag):
              (WebCore::prepareClipboardForImageDrag):
              (WebCore::DragController::startDrag):
              * page/EventHandler.cpp:
              (WebCore::EventHandler::selectClosestWordFromMouseEvent):
              (WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent):
              (WebCore::EventHandler::handleMousePressEventDoubleClick):
              (WebCore::EventHandler::handleMousePressEventTripleClick):
              (WebCore::EventHandler::handleMousePressEventSingleClick):
              (WebCore::EventHandler::handleMousePressEvent):
              (WebCore::EventHandler::updateSelectionForMouseDrag):
              (WebCore::EventHandler::handleMouseReleaseEvent):
              (WebCore::nodeIsNotBeingEdited):
              (WebCore::EventHandler::selectCursor):
              (WebCore::EventHandler::dispatchMouseEvent):
              (WebCore::EventHandler::sendContextMenuEvent):
              (WebCore::EventHandler::handleKeyboardSelectionMovement):
              (WebCore::EventHandler::handleDrag):
              * page/FocusController.cpp:
              (WebCore::FocusController::setFocusedFrame):
              (WebCore::clearSelectionIfNeeded):
              (WebCore::FocusController::setActive):
              * page/Frame.cpp:
              (WebCore::Frame::~Frame):
              (WebCore::Frame::script):
              (WebCore::Frame::setDocument):
              (WebCore::Frame::selectedText):
              (WebCore::Frame::selection):
              (WebCore::Frame::animation):
              (WebCore::Frame::notifyRendererOfSelectionChange):
              (WebCore::Frame::invalidateSelection):
              (WebCore::Frame::clearCaretRectIfNeeded):
              (WebCore::Frame::setFocusedNodeIfNeeded):
              (WebCore::Frame::selectionLayoutChanged):
              (WebCore::Frame::caretBlinkTimerFired):
              (WebCore::Frame::paintCaret):
              (WebCore::Frame::shouldChangeSelection):
              (WebCore::Frame::updateSecureKeyboardEntryIfActive):
              (WebCore::Frame::computeAndSetTypingStyle):
              (WebCore::Frame::selectionComputedStyle):
              (WebCore::Frame::bindingRootObject):
              (WebCore::Frame::windowScriptNPObject):
              (WebCore::Frame::clearScriptController):
              (WebCore::Frame::selectionTextRects):
              (WebCore::Frame::currentForm):
              (WebCore::Frame::revealSelection):
              (WebCore::Frame::revealCaret):
              (WebCore::Frame::clearTimers):
              (WebCore::Frame::styleForSelectionStart):
              (WebCore::Frame::setSelectionFromNone):
              (WebCore::Frame::findString):
              (WebCore::Frame::pageDestroyed):
              (WebCore::Frame::respondToChangedSelection):
              (WebCore::FramePrivate::FramePrivate):
              * page/Frame.h:
              * page/FramePrivate.h:
              * page/InspectorController.cpp:
              (WebCore::canPassNodeToJavaScript):
              (WebCore::InspectorController::windowScriptObjectAvailable):
              * page/JavaScriptDebugServer.cpp:
              (WebCore::JavaScriptDebugServer::setJavaScriptPaused):
              * page/Page.cpp:
              (WebCore::Page::findString):
              (WebCore::Page::selection):
              (WebCore::Page::setDebugger):
              * page/mac/FrameMac.mm:
              (WebCore::Frame::baseWritingDirectionForSelectionStart):
              (WebCore::Frame::dragImageForSelection):
              (WebCore::Frame::createScriptInstanceForWidget):
              (WebCore::Frame::windowScriptObject):
              * page/win/FrameWin.cpp:
              (WebCore::Frame::dragImageForSelection):
              * platform/ContextMenu.cpp:
              (WebCore::selectionContainsPossibleWord):
              (WebCore::ContextMenu::populate):
              (WebCore::ContextMenu::checkOrEnableIfNeeded):
              * plugins/PluginView.cpp:
              (WebCore::PluginView::performRequest):
              (WebCore::PluginView::bindingInstance):
              * rendering/HitTestResult.cpp:
              (WebCore::HitTestResult::isSelected):
              * rendering/RenderBlock.cpp:
              (WebCore::RenderBlock::paintCaret):
              * rendering/RenderListBox.cpp:
              (WebCore::RenderListBox::paintItemForeground):
              (WebCore::RenderListBox::paintItemBackground):
              * rendering/RenderObject.cpp:
              (WebCore::RenderObject::selectionBackgroundColor):
              (WebCore::RenderObject::selectionForegroundColor):
              (WebCore::RenderObject::setAnimatableStyle):
              (WebCore::RenderObject::destroy):
              (WebCore::RenderObject::animation):
              * rendering/RenderObject.h:
              * rendering/RenderTextControl.cpp:
              (WebCore::RenderTextControl::selectionStart):
              (WebCore::RenderTextControl::selectionEnd):
              (WebCore::RenderTextControl::setSelectionRange):
              (WebCore::RenderTextControl::selectionChanged):
              (WebCore::RenderTextControl::capsLockStateMayHaveChanged):
              * rendering/RenderTheme.cpp:
              (WebCore::RenderTheme::isFocused):
              * rendering/RenderTreeAsText.cpp:
              (WebCore::writeSelection):
              * rendering/RenderWidget.cpp:
              (WebCore::RenderWidget::destroy):
              * svg/SVGDocumentExtensions.cpp:
              (WebCore::SVGDocumentExtensions::createSVGEventListener):
              * svg/SVGSVGElement.cpp:
              (WebCore::SVGSVGElement::deselectAll):
              * svg/SVGTextContentElement.cpp:
              (WebCore::SVGTextContentElement::selectSubString):
      
      WebKit/gtk:
      
      2008-06-15  Darin Adler  <darin@apple.com>
      
              - give Frame object functions shorter names: scriptProxy() -> script(),
                selectionController() -> selection(), animationController() -> animation()
      
              * WebCoreSupport/EditorClientGtk.cpp:
              (WebKit::EditorClient::handleKeyboardEvent):
              * WebCoreSupport/FrameLoaderClientGtk.cpp:
              (WebKit::FrameLoaderClient::windowObjectCleared):
              * webkit/webkitwebframe.cpp:
              * webkit/webkitwebview.cpp:
      
      WebKit/mac:
      
      2008-06-15  Darin Adler  <darin@apple.com>
      
              - give Frame object functions shorter names: scriptProxy() -> script(),
                selectionController() -> selection(), animationController() -> animation()
      
              * Plugins/WebPluginController.mm:
              (-[WebPluginController webPlugInContainerSelectionColor]):
              * WebView/WebFrame.mm:
              (-[WebFrame _attachScriptDebugger]):
              (-[WebFrame _hasSelection]):
              (-[WebFrame _stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
              (-[WebFrame _rangeByAlteringCurrentSelection:SelectionController::direction:SelectionController::granularity:]):
              (-[WebFrame _convertToNSRange:]):
              (-[WebFrame _convertToDOMRange:]):
              (-[WebFrame _replaceSelectionWithFragment:selectReplacement:smartReplace:matchStyle:]):
              (-[WebFrame _replaceSelectionWithText:selectReplacement:smartReplace:]):
              (-[WebFrame _insertParagraphSeparatorInQuotedContent]):
              (-[WebFrame _selectedNSRange]):
              (-[WebFrame _selectNSRange:]):
              (-[WebFrame globalContext]):
              * WebView/WebHTMLView.mm:
              (-[WebHTMLView _selectedRange]):
              (-[WebHTMLView _hasSelection]):
              (-[WebHTMLView _hasSelectionOrInsertionPoint]):
              (-[WebHTMLView _hasInsertionPoint]):
              (-[WebHTMLView _isEditable]):
              (-[WebHTMLView _updateFocusedAndActiveState]):
              (-[WebHTMLView readSelectionFromPasteboard:]):
              (-[WebHTMLView validateUserInterfaceItemWithoutDelegate:]):
              (-[WebHTMLView maintainsInactiveSelection]):
              (-[WebHTMLView paste:]):
              (isTextInput):
              (-[WebHTMLView inputContext]):
              (-[WebTextCompleteController doCompletion]):
              (-[WebHTMLView selectAll]):
              (-[WebHTMLView deselectAll]):
              (-[WebHTMLView selectedAttributedString]):
              * WebView/WebView.mm:
              (-[WebView aeDescByEvaluatingJavaScriptFromString:]):
              (-[WebView setSelectedDOMRange:affinity:]):
              (-[WebView selectedDOMRange]):
              (-[WebView selectionAffinity]):
      
      WebKit/qt:
      
      2008-06-15  Darin Adler  <darin@apple.com>
      
              - give Frame object functions shorter names: scriptProxy() -> script(),
                selectionController() -> selection(), animationController() -> animation()
      
              * Api/qwebframe.cpp:
              (QWebFrame::evaluateJavaScript):
              * Api/qwebpage.cpp:
              (QWebPagePrivate::focusInEvent):
              (QWebPagePrivate::focusOutEvent):
              (QWebPage::inputMethodQuery):
              * WebCoreSupport/EditorClientQt.cpp:
              (WebCore::EditorClientQt::handleKeyboardEvent):
      
      WebKit/win:
      
      2008-06-15  Darin Adler  <darin@apple.com>
      
              - give Frame object functions shorter names: scriptProxy() -> script(),
                selectionController() -> selection(), animationController() -> animation()
      
              * WebFrame.cpp:
              (WebFrame::globalContext):
              (WebFrame::windowObjectCleared):
              * WebView.cpp:
              (WebView::handleContextMenuEvent):
              (WebViewWndProc):
              (WebView::updateFocusedAndActiveState):
              (WebView::hasSelectedRange):
              (WebView::replaceSelectionWithText):
              (WebView::clearSelection):
              (WebView::prepareCandidateWindow):
              (WebView::onIMERequestCharPosition):
              (WebView::onIMERequestReconvertString):
      
      WebKit/wx:
      
      2008-06-15  Darin Adler  <darin@apple.com>
      
              - give Frame object functions shorter names: scriptProxy() -> script(),
                selectionController() -> selection(), animationController() -> animation()
      
              * WebKitSupport/EditorClientWx.cpp:
              (WebCore::EditorClientWx::handleKeyboardEvent):
              * WebView.cpp:
              (wxWebView::RunScript):
              (wxWebView::OnSetFocus):
              (wxWebView::OnKillFocus):
      
      WebKitTools:
      
      2008-06-15  Darin Adler  <darin@apple.com>
      
              * Scripts/do-webcore-rename: Updated for the latest round of renaming.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34589 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      60d3e9f9
  30. 15 Jun, 2008 1 commit
    • darin@apple.com's avatar
      WebCore: · 92aaa2a0
      darin@apple.com authored
      2008-06-14  Darin Adler  <darin@apple.com>
      
              Rubber stamped by Sam.
      
              - new names for kjs_binding.h and kjs_proxy.h
      
              * GNUmakefile.am:
              * WebCore.pro:
              * WebCore.vcproj/WebCore.vcproj:
              * WebCore.xcodeproj/project.pbxproj:
              * WebCoreSources.bkl:
              * bindings/js/JSAudioConstructor.h:
              * bindings/js/JSCustomSQLStatementCallback.cpp:
              * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
              * bindings/js/JSCustomSQLTransactionCallback.cpp:
              * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
              * bindings/js/JSCustomVoidCallback.cpp:
              * bindings/js/JSCustomXPathNSResolver.cpp:
              * bindings/js/JSDOMBinding.cpp: Copied from WebCore/bindings/js/kjs_binding.cpp.
              * bindings/js/JSDOMBinding.h: Copied from WebCore/bindings/js/kjs_binding.h.
              * bindings/js/JSDOMWindowBase.cpp:
              * bindings/js/JSDOMWindowBase.h:
              * bindings/js/JSDOMWindowCustom.cpp:
              * bindings/js/JSDOMWindowShell.cpp:
              * bindings/js/JSDOMWindowShell.h:
              * bindings/js/JSDocumentCustom.cpp:
              * bindings/js/JSHTMLCollectionCustom.cpp:
              * bindings/js/JSHTMLFrameElementCustom.cpp:
              * bindings/js/JSHTMLFrameSetElementCustom.cpp:
              * bindings/js/JSHTMLIFrameElementCustom.cpp:
              * bindings/js/JSHTMLInputElementBase.h:
              * bindings/js/JSHTMLOptionElementConstructor.h:
              * bindings/js/JSImageConstructor.h:
              * bindings/js/JSLocationCustom.cpp:
              * bindings/js/JSNamedNodeMapCustom.cpp:
              * bindings/js/JSNamedNodesCollection.h:
              * bindings/js/JSNodeFilterCondition.cpp:
              * bindings/js/JSNodeFilterCustom.cpp:
              * bindings/js/JSRGBColor.h:
              * bindings/js/JSSVGPathSegCustom.cpp:
              * bindings/js/JSXMLHttpRequestConstructor.h:
              * bindings/js/JSXSLTProcessorConstructor.h:
              * bindings/js/JSXSLTProcessorCustom.cpp:
              * bindings/js/ScheduledAction.cpp:
              (WebCore::ScheduledAction::execute):
              * bindings/js/ScriptController.cpp: Copied from WebCore/bindings/js/kjs_proxy.cpp.
              * bindings/js/ScriptController.h: Copied from WebCore/bindings/js/kjs_proxy.h.
              * bindings/js/kjs_binding.cpp: Removed.
              * bindings/js/kjs_binding.h: Removed.
              * bindings/js/kjs_events.cpp:
              (WebCore::JSAbstractEventListener::handleEvent):
              * bindings/js/kjs_html.cpp:
              * bindings/js/kjs_html.h:
              * bindings/js/kjs_proxy.cpp: Removed.
              * bindings/js/kjs_proxy.h: Removed.
              * bindings/objc/DOMInternal.mm:
              * bindings/scripts/CodeGeneratorJS.pm:
              * bridge/jni/jni_jsobject.mm:
              * dom/Document.cpp:
              * dom/EventTarget.cpp:
              * dom/Node.cpp:
              * dom/XMLTokenizer.cpp:
              (WebCore::XMLTokenizer::startElementNs):
              * history/CachedPage.cpp:
              (WebCore::CachedPage::CachedPage):
              (WebCore::CachedPage::restore):
              * html/HTMLPlugInElement.cpp:
              * html/HTMLScriptElement.cpp:
              * html/HTMLTokenizer.cpp:
              (WebCore::HTMLTokenizer::processToken):
              * loader/FrameLoader.cpp:
              (WebCore::FrameLoader::executeScript):
              * page/Frame.cpp:
              (WebCore::Frame::scriptProxy):
              * page/Frame.h:
              * page/FramePrivate.h:
              * page/InspectorController.cpp:
              * page/JavaScriptDebugServer.cpp:
              * page/JavaScriptProfileNode.cpp:
              * page/Page.cpp:
              * page/gtk/FrameGtk.cpp:
              * page/mac/FrameMac.mm:
              * page/qt/FrameQt.cpp:
              * page/win/FrameWin.cpp:
              * plugins/PluginView.cpp:
              (WebCore::getString):
              * plugins/gtk/PluginViewGtk.cpp:
              * plugins/qt/PluginViewQt.cpp:
              * plugins/win/PluginViewWin.cpp:
              * svg/SVGDocumentExtensions.cpp:
              * xml/XMLHttpRequest.cpp:
      
      WebKit/gtk:
      
      2008-06-14  Darin Adler  <darin@apple.com>
      
              Rubber stamped by Sam.
      
              - new names for kjs_binding.h and kjs_proxy.h
      
              * WebCoreSupport/FrameLoaderClientGtk.cpp:
              * webkit/webkitwebframe.cpp:
      
      WebKit/mac:
      
      2008-06-14  Darin Adler  <darin@apple.com>
      
              Rubber stamped by Sam.
      
              - new names for kjs_binding.h and kjs_proxy.h
      
              * WebView/WebFrame.mm:
              * WebView/WebScriptDebugDelegate.mm:
              * WebView/WebView.mm:
      
      WebKit/qt:
      
      2008-06-14  Darin Adler  <darin@apple.com>
      
              Rubber stamped by Sam.
      
              - new names for kjs_binding.h and kjs_proxy.h
      
              * Api/qwebframe.cpp:
              (QWebFrame::evaluateJavaScript):
              * WebKit_pch.h:
      
      WebKit/win:
      
      2008-06-14  Darin Adler  <darin@apple.com>
      
              Rubber stamped by Sam.
      
              - new names for kjs_binding.h and kjs_proxy.h
      
              * WebFrame.cpp:
      
      WebKit/wx:
      
      2008-06-14  Darin Adler  <darin@apple.com>
      
              Rubber stamped by Sam.
      
              - new names for kjs_binding.h and kjs_proxy.h
      
              * WebView.cpp:
      
      WebKitTools:
      
      2008-06-14  Darin Adler  <darin@apple.com>
      
              * Scripts/do-webcore-rename: Moved planned renames into a separate hash
              from the actual renames. Removed many renames that are either done or
              no longer planned.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34561 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      92aaa2a0
  31. 04 Jun, 2008 1 commit
    • andersca@apple.com's avatar
      2008-06-04 Anders Carlsson <andersca@apple.com> · 0f509b13
      andersca@apple.com authored
              Reviewed by Sam.
      
              Convert more classes to start with a ref count of 1.
              
              * bindings/js/JSCustomVoidCallback.cpp:
              (WebCore::toVoidCallback):
              * bindings/js/JSCustomVoidCallback.h:
              (WebCore::JSCustomVoidCallback::create):
              * css/StyleSheetList.cpp:
              (WebCore::StyleSheetList::StyleSheetList):
              * css/StyleSheetList.h:
              (WebCore::StyleSheetList::create):
              * dom/Document.cpp:
              (WebCore::Document::Document):
              (WebCore::Document::createNodeIterator):
              (WebCore::Document::createTreeWalker):
              * dom/NodeIterator.h:
              (WebCore::NodeIterator::create):
              * dom/Traversal.cpp:
              (WebCore::Traversal::Traversal):
              * dom/Traversal.h:
              * dom/TreeWalker.h:
              (WebCore::TreeWalker::create):
              * history/CachedPage.cpp:
              (WebCore::CachedPage::create):
              (WebCore::CachedPage::CachedPage):
              * html/CanvasGradient.cpp:
              (WebCore::CanvasGradient::CanvasGradient):
              * html/CanvasGradient.h:
              (WebCore::CanvasGradient::create):
              * html/CanvasRenderingContext2D.cpp:
              (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):
              (WebCore::CanvasRenderingContext2D::createLinearGradient):
              (WebCore::CanvasRenderingContext2D::createRadialGradient):
              * html/CanvasRenderingContext2D.h:
              (WebCore::CanvasRenderingContext2D::create):
              * html/HTMLCanvasElement.cpp:
              (WebCore::HTMLCanvasElement::getContext):
              * html/VoidCallback.h:
              (WebCore::VoidCallback::VoidCallback):
              * loader/FormState.cpp:
              (WebCore::FormState::create):
              (WebCore::FormState::FormState):
              * platform/text/RegularExpression.cpp:
              (WebCore::RegularExpression::Private::create):
              (WebCore::RegularExpression::Private::Private):
              (WebCore::RegularExpression::RegularExpression):
              * storage/SQLResultSet.cpp:
              (WebCore::SQLResultSet::SQLResultSet):
              * storage/SQLResultSetRowList.h:
              (WebCore::SQLResultSetRowList::create):
              (WebCore::SQLResultSetRowList::SQLResultSetRowList):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34366 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0f509b13
  32. 03 May, 2008 1 commit
  33. 29 Apr, 2008 1 commit
  34. 25 Apr, 2008 1 commit
    • weinig@apple.com's avatar
      2008-04-24 Sam Weinig <sam@webkit.org> · 9c06cb5b
      weinig@apple.com authored
              Reviewed by Geoffrey Garen.
      
              Replace the JSDOMWindow with a new one instead of clearing it.
      
              * bindings/js/JSDOMWindowBase.cpp:
              (WebCore::JSDOMWindowBase::clear):
              Don't reset the window.
      
              * bindings/js/kjs_proxy.cpp:
              (WebCore::KJSProxy::clear):
              Replace the current JSDOMWindow stored in the wrapper window
              with a new one.
      
              * history/CachedPage.cpp:
              (WebCore::CachedPage::CachedPage):
              (WebCore::CachedPage::restore):
              (WebCore::CachedPage::clear):
              * history/CachedPage.h:
              Instead of storing the builtins, properties and localstorage in
              special holding structs, store the entire JSDOMWindow.
      
              For the case of a page that has no JSDOMWindow before it's first
              navigation, has one created while it is in the cache and is then
              navigated back, create a new JSDOMWindow to keep the assumption
              in JSDOMWindowWrapper that it always has the correct window.
      
              * loader/FrameLoader.cpp:
              (WebCore::FrameLoader::clear):
              We must clear the DOMWindow first, so that we create a new JSDOMWindow,
              it gets a new one.
      
              * page/Frame.cpp:
              (WebCore::Frame::clearDOMWindow):
              Null out the domWindow so that on the next access, a new one is
              created.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@32585 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9c06cb5b
  35. 18 Apr, 2008 1 commit
  36. 11 Apr, 2008 1 commit
    • antti@apple.com's avatar
      2008-04-10 Antti Koivisto <antti@apple.com> · ef20b03f
      antti@apple.com authored
              Reviewed by Eric.
      
              Redo the SVG animation support.
              
              It does
              - Full SMIL interval timing model including syncbase and event base timing (the hard part).
              - CSS and XML attribute animation.
              - Linear, discrete and spline calcModes.
              - Values animation with keyTimes and keySplines.
              - Link activated animations.
              - Pretty good support for <animate> and <set> animations
              - Basic support for <animateColor>, <animateMotion> and <animateTransform>.
      
              This passes some 35 of the 56 tests in W3C SVG animation test suite, a bunch more
              with some subtest failures.
      
              What is still missing
              - Additive animation with multiple animations operating on the same property. This is a
                major architectural feature in animation code. It shouldn't be too hard to add.
              - Only <animate> implements accumulate.
              - <animateMotion> does not do paths, keypoints, rotate.
              - <animateTransform> does not work correctly in all cases
              - calcMode paced is missing.
              - repeat, beginEvent, endEvent are missing.
              - accesskey() is missing.
              - JS does not see correct values for baseVal/animVal, changing values that are being
                animted for a script produces wrong results. This problem needs to be solved outside
                the animation code.
              - Some other stuff I forgot or do not know about.
      
              * GNUmakefile.am:
              * WebCore.pro:
              * WebCore.vcproj/WebCore.vcproj:
              * WebCore.xcodeproj/project.pbxproj:
              * dom/Document.cpp:
              * history/CachedPage.cpp:
              (WebCore::CachedPage::CachedPage):
              
              Use cache notification mechanism to start/stop animations.
      
              * svg/SVGAElement.cpp:
              (WebCore::SVGAElement::defaultEventHandler):
              
              Start target animation on link activation.
              
              * svg/SVGAnimateColorElement.cpp:
              (WebCore::SVGAnimateColorElement::applyAnimatedValueToElement):
              (WebCore::SVGAnimateColorElement::updateAnimatedValue):
              (WebCore::SVGAnimateColorElement::calculateFromAndToValues):
              (WebCore::SVGAnimateColorElement::calculateFromAndByValues):
              * svg/SVGAnimateColorElement.h:
              * svg/SVGAnimateElement.cpp:
              (WebCore::SVGAnimateElement::SVGAnimateElement):
              (WebCore::parseNumberValueAndUnit):
              (WebCore::SVGAnimateElement::applyAnimatedValueToElement):
              (WebCore::SVGAnimateElement::updateAnimatedValue):
              (WebCore::isColorAttribute):
              (WebCore::SVGAnimateElement::calculateFromAndToValues):
              (WebCore::SVGAnimateElement::calculateFromAndByValues):
              * svg/SVGAnimateElement.h:
              (WebCore::SVGAnimateElement::):
              * svg/SVGAnimateMotionElement.cpp:
              (WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement):
              (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
              (WebCore::SVGAnimateMotionElement::updateAnimatedValue):
              (WebCore::parsePoint):
              (WebCore::SVGAnimateMotionElement::calculateFromAndToValues):
              (WebCore::SVGAnimateMotionElement::calculateFromAndByValues):
              (WebCore::SVGAnimateMotionElement::applyAnimatedValueToElement):
              (WebCore::SVGAnimateMotionElement::startedActiveInterval):
              * svg/SVGAnimateMotionElement.h:
              * svg/SVGAnimateTransformElement.cpp:
              (WebCore::SVGAnimateTransformElement::SVGAnimateTransformElement):
              (WebCore::SVGAnimateTransformElement::hasValidTarget):
              (WebCore::SVGAnimateTransformElement::updateAnimatedValue):
              (WebCore::transformListFor):
              (WebCore::SVGAnimateTransformElement::applyAnimatedValueToElement):
              (WebCore::SVGAnimateTransformElement::calculateFromAndToValues):
              (WebCore::SVGAnimateTransformElement::calculateFromAndByValues):
              (WebCore::SVGAnimateTransformElement::startedActiveInterval):
              (WebCore::SVGAnimateTransformElement::parseTransformValue):
              * svg/SVGAnimateTransformElement.h:
              
              Concrete anmation element classes.
              
              * svg/SVGAnimationElement.cpp:
              (WebCore::SVGAnimationElement::SVGAnimationElement):
              (WebCore::SVGAnimationElement::~SVGAnimationElement):
              (WebCore::parseKeyTimes):
              (WebCore::parseKeySplines):
              (WebCore::SVGAnimationElement::parseMappedAttribute):
              (WebCore::SVGAnimationElement::attributeChanged):
              (WebCore::SVGAnimationElement::getStartTime):
              (WebCore::SVGAnimationElement::getCurrentTime):
              (WebCore::SVGAnimationElement::getSimpleDuration):
              (WebCore::SVGAnimationElement::beginElement):
              (WebCore::SVGAnimationElement::beginElementAt):
              (WebCore::SVGAnimationElement::endElement):
              (WebCore::SVGAnimationElement::endElementAt):
              (WebCore::SVGAnimationElement::animationMode):
              (WebCore::SVGAnimationElement::calcMode):
              (WebCore::SVGAnimationElement::attributeType):
              (WebCore::SVGAnimationElement::toValue):
              (WebCore::SVGAnimationElement::byValue):
              (WebCore::SVGAnimationElement::fromValue):
              (WebCore::SVGAnimationElement::attributeName):
              (WebCore::SVGAnimationElement::isAdditive):
              (WebCore::SVGAnimationElement::isAccumulated):
              (WebCore::SVGAnimationElement::hasValidTarget):
              (WebCore::SVGAnimationElement::targetAttributeIsCSS):
              (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue):
              (WebCore::SVGAnimationElement::targetAttributeBaseValue):
              (WebCore::solveEpsilon):
              (WebCore::SVGAnimationElement::currentValuesForValuesAnimation):
              (WebCore::SVGAnimationElement::startedActiveInterval):
              (WebCore::SVGAnimationElement::applyAnimation):
              (WebCore::SVGAnimationElement::unapplyAnimation):
              (WebCore::SVGAnimationElement::endedActiveInterval):
              * svg/SVGAnimationElement.h:
              (WebCore::SVGAnimationElement::):
              
              This is pretty much a complete rewrite of the SVGAnimationElement. Timing related functionality
              was refactored to SMILTimingElement class that this class now inherits.
              
              * svg/SVGDocumentExtensions.cpp:
              (WebCore::SVGDocumentExtensions::startAnimations):
              * svg/SVGElement.cpp:
              (WebCore::SVGElement::ownerSVGElement):
              * svg/SVGSVGElement.cpp:
              
              We need to reach the <svg> element from <use> too so go out from the shadow tree.
              
              (WebCore::SVGSVGElement::SVGSVGElement):
              (WebCore::SVGSVGElement::~SVGSVGElement):
              (WebCore::SVGSVGElement::pauseAnimations):
              (WebCore::SVGSVGElement::unpauseAnimations):
              (WebCore::SVGSVGElement::animationsPaused):
              (WebCore::SVGSVGElement::getCurrentTime):
              (WebCore::SVGSVGElement::willSaveToCache):
              (WebCore::SVGSVGElement::willRestoreFromCache):
              * svg/SVGSVGElement.h:
              (WebCore::SVGSVGElement::timeContainer):
              * svg/SVGSetElement.cpp:
              (WebCore::SVGSetElement::applyAnimatedValueToElement):
              (WebCore::SVGSetElement::calculateFromAndToValues):
              (WebCore::SVGSetElement::calculateFromAndByValues):
              (WebCore::SVGSetElement::updateAnimatedValue):
              * svg/SVGSetElement.h:
              
              Concrete anmation element classes.
              
              * svg/SVGTimer.cpp: Removed.
              * svg/SVGTimer.h: Removed.
              * svg/SVGUseElement.cpp:
              (WebCore::SVGUseElement::removedFromDocument):
              * svg/TimeScheduler.cpp: Removed.
              * svg/TimeScheduler.h: Removed.
              
              Replaced these with SMILTimeContainer class.
              
              * svg/animation: Added.
              * svg/animation/SMILTime.cpp: Added.
              (WebCore::operator+):
              (WebCore::operator-):
              (WebCore::operator*):
              * svg/animation/SMILTime.h: Added.
              (WebCore::SMILTime::SMILTime):
              (WebCore::SMILTime::unresolved):
              (WebCore::SMILTime::indefinite):
              (WebCore::SMILTime::operator=):
              (WebCore::SMILTime::value):
              (WebCore::SMILTime::isFinite):
              (WebCore::SMILTime::isIndefinite):
              (WebCore::SMILTime::isUnresolved):
              (WebCore::operator==):
              (WebCore::operator!=):
              (WebCore::operator>):
              (WebCore::operator<):
              (WebCore::operator>=):
              (WebCore::operator<=):
              (WebCore::max):
              (WebCore::min):
              
              A floating point number with special values "indefinite" and "unresolved". Defines math for those.
              
              * svg/animation/SMILTimeContainer.cpp: Added.
              (WebCore::SMILTimeContainer::SMILTimeContainer):
              (WebCore::SMILTimeContainer::schedule):
              (WebCore::SMILTimeContainer::unschedule):
              (WebCore::SMILTimeContainer::elapsed):
              (WebCore::SMILTimeContainer::isActive):
              (WebCore::SMILTimeContainer::isPaused):
              (WebCore::SMILTimeContainer::begin):
              (WebCore::SMILTimeContainer::pause):
              (WebCore::SMILTimeContainer::resume):
              (WebCore::SMILTimeContainer::startTimer):
              (WebCore::SMILTimeContainer::timerFired):
              (WebCore::SMILTimeContainer::updateAnimations):
              * svg/animation/SMILTimeContainer.h: Added.
              
              Manages the clock and time line for active animations in a document.
              
              * svg/animation/SVGSMILElement.cpp: Added.
              (WebCore::ConditionEventListener::ConditionEventListener):
              (WebCore::ConditionEventListener::handleEvent):
              (WebCore::SVGSMILElement::Condition::Condition):
              (WebCore::SVGSMILElement::SVGSMILElement):
              (WebCore::SVGSMILElement::~SVGSMILElement):
              (WebCore::SVGSMILElement::insertedIntoDocument):
              (WebCore::SVGSMILElement::removedFromDocument):
              (WebCore::SVGSMILElement::finishParsingChildren):
              (WebCore::SVGSMILElement::parseOffsetValue):
              (WebCore::SVGSMILElement::parseClockValue):
              (WebCore::smilTimeSortFunction):
              (WebCore::sortTimeList):
              (WebCore::SVGSMILElement::parseCondition):
              (WebCore::SVGSMILElement::isTimingElement):
              (WebCore::SVGSMILElement::parseBeginOrEnd):
              (WebCore::SVGSMILElement::parseMappedAttribute):
              (WebCore::SVGSMILElement::attributeChanged):
              (WebCore::SVGSMILElement::connectConditions):
              (WebCore::SVGSMILElement::disconnectConditions):
              (WebCore::SVGSMILElement::reschedule):
              (WebCore::SVGSMILElement::targetElement):
              (WebCore::SVGSMILElement::elapsed):
              (WebCore::SVGSMILElement::restart):
              (WebCore::SVGSMILElement::fill):
              (WebCore::SVGSMILElement::xlinkHref):
              (WebCore::SVGSMILElement::dur):
              (WebCore::SVGSMILElement::repeatDur):
              (WebCore::SVGSMILElement::repeatCount):
              (WebCore::SVGSMILElement::maxValue):
              (WebCore::SVGSMILElement::minValue):
              (WebCore::SVGSMILElement::simpleDuration):
              (WebCore::SVGSMILElement::addBeginTime):
              (WebCore::SVGSMILElement::addEndTime):
              (WebCore::SVGSMILElement::findInstanceTime):
              (WebCore::SVGSMILElement::repeatingDuration):
              (WebCore::SVGSMILElement::resolveActiveEnd):
              (WebCore::SVGSMILElement::resolveInterval):
              (WebCore::SVGSMILElement::resolveFirstInterval):
              (WebCore::SVGSMILElement::resolveNextInterval):
              (WebCore::SVGSMILElement::nextProgressTime):
              (WebCore::SVGSMILElement::beginListChanged):
              (WebCore::SVGSMILElement::endListChanged):
              (WebCore::SVGSMILElement::checkRestart):
              (WebCore::SVGSMILElement::calculateAnimationPercentAndRepeat):
              (WebCore::SVGSMILElement::calculateNextProgressTime):
              (WebCore::SVGSMILElement::determineActiveState):
              (WebCore::SVGSMILElement::progress):
              (WebCore::SVGSMILElement::notifyDependentsIntervalChanged):
              (WebCore::SVGSMILElement::createInstanceTimesFromSyncbase):
              (WebCore::SVGSMILElement::addTimeDependent):
              (WebCore::SVGSMILElement::removeTimeDependent):
              (WebCore::SVGSMILElement::handleConditionEvent):
              (WebCore::SVGSMILElement::beginByLinkActivation):
              * svg/animation/SVGSMILElement.h: Added.
              (WebCore::SVGSMILElement::timeContainer):
              (WebCore::SVGSMILElement::):
              (WebCore::SVGSMILElement::intervalBegin):
              (WebCore::SVGSMILElement::intervalEnd):
              (WebCore::SVGSMILElement::Condition::):
              
                  This abstract class implements the SMIL timing model. As an output it produces calls
                  to these virtual functions:
              
                  virtual void startedActiveInterval() = 0;
                  virtual void applyAnimation(float percent, unsigned repeat) = 0;
                  virtual void unapplyAnimation() = 0;
                  virtual void endedActiveInterval() = 0;
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31801 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ef20b03f