1. 18 Apr, 2013 1 commit
    • andersca@apple.com's avatar
      Change storage factory functions to take a PageGroup and Page respectively · e44d33f5
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=114776
      
      Reviewed by Beth Dakin.
      
      Source/WebCore:
      
      Change StorageNamespace::localStorageNamespace to take a PageGroup since WebKit2 needs
      to know which local storage namespace belongs to which page group. Also remove the quota parameter from
      the sessionStorageNamespace function since that's trivial to get from the Page.
      
      * WebCore.exp.in:
      * page/Page.cpp:
      (WebCore::Page::sessionStorage):
      * page/PageGroup.cpp:
      (WebCore::PageGroup::localStorage):
      * storage/StorageNamespace.cpp:
      (WebCore::StorageNamespace::localStorageNamespace):
      (WebCore::StorageNamespace::sessionStorageNamespace):
      * storage/StorageNamespace.h:
      * storage/StorageNamespaceImpl.cpp:
      (WebCore::StorageNamespaceImpl::localStorageNamespace):
      (WebCore::StorageNamespaceImpl::sessionStorageNamespace):
      * storage/StorageNamespaceImpl.h:
      * storage/StorageStrategy.cpp:
      (WebCore::StorageStrategy::localStorageNamespace):
      (WebCore::StorageStrategy::sessionStorageNamespace):
      * storage/StorageStrategy.h:
      
      Source/WebKit2:
      
      Update for WebCore changes.
      
      * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
      (WebKit::WebPlatformStrategies::localStorageNamespace):
      (WebKit::WebPlatformStrategies::sessionStorageNamespace):
      * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
      (WebPlatformStrategies):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148683 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e44d33f5
  2. 16 Apr, 2013 1 commit
    • andersca@apple.com's avatar
      Clone storage namespaces for window.open · 55fda687
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=114703
      
      Reviewed by Sam Weinig.
      
      Source/WebCore:
      
      Pass the new page to StorageNamespace::copy.
      
      * page/Chrome.cpp:
      (WebCore::Chrome::createWindow):
      * storage/StorageNamespace.h:
      (StorageNamespace):
      * storage/StorageNamespaceImpl.cpp:
      (WebCore::StorageNamespaceImpl::copy):
      * storage/StorageNamespaceImpl.h:
      (WebCore):
      (StorageNamespaceImpl):
      
      Source/WebKit2:
      
      * UIProcess/Storage/StorageManager.cpp:
      (WebKit::StorageManager::StorageArea::clone):
      New helper function for cloning a storage area.
      
      (WebKit::StorageManager::StorageArea::setItem):
      Correctly handle the copy-on-write feature of StorageMap if it has multiple storage areas pointing to it.
      
      (WebKit::StorageManager::StorageArea::removeItem):
      Ditto.
      
      (WebKit::StorageManager::SessionStorageNamespace::cloneTo):
      Add cloned storage areas.
      
      * WebProcess/Storage/StorageNamespaceImpl.cpp:
      (WebKit::StorageNamespaceImpl::copy):
      Create a new session storage namespace for the new page.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148585 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      55fda687
  3. 22 Jan, 2013 1 commit
    • andersca@apple.com's avatar
      Source/WebCore: Use a platform strategy for local storage · 89cf38d9
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=107600
      
      Reviewed by Andreas Kling.
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * WebCore.exp.in:
      * WebCore.gypi:
      * WebCore.vcproj/WebCore.vcproj:
      * WebCore.xcodeproj/project.pbxproj:
      Add new files.
      
      * platform/PlatformStrategies.h:
      Add a way to create/get the storage strategy.
      
      * storage/StorageNamespace.cpp:
      (WebCore::StorageNamespace::localStorageNamespace):
      (WebCore::StorageNamespace::sessionStorageNamespace):
      Call the storage strategy.
      
      * storage/StorageNamespace.h:
      * storage/StorageStrategy.cpp: Added.
      (WebCore::StorageStrategy::localStorageNamespace):
      (WebCore::StorageStrategy::sessionStorageNamespace):
      Call through to StorageNamespaceImpl.
      
      * storage/StorageStrategy.h: Added.
      
      Source/WebKit/efl: Use a platforom strategy for local storage
      https://bugs.webkit.org/show_bug.cgi?id=107600
      
      Reviewed by Andreas Kling.
      
      Update for new storage strategy.
      
      * WebCoreSupport/PlatformStrategiesEfl.cpp:
      (PlatformStrategiesEfl::createStorageStrategy):
      * WebCoreSupport/PlatformStrategiesEfl.h:
      (PlatformStrategiesEfl):
      
      Source/WebKit/gtk: Use a platforom strategy for local storage
      https://bugs.webkit.org/show_bug.cgi?id=107600
      
      Reviewed by Andreas Kling.
      
      Update for new storage strategy.
      
      * WebCoreSupport/PlatformStrategiesGtk.cpp:
      (PlatformStrategiesGtk::createStorageStrategy):
      * WebCoreSupport/PlatformStrategiesGtk.h:
      (PlatformStrategiesGtk):
      
      Source/WebKit/mac: Use a platforom strategy for local storage
      https://bugs.webkit.org/show_bug.cgi?id=107600
      
      Reviewed by Andreas Kling.
      
      Update for new storage strategy.
      
      * WebCoreSupport/WebPlatformStrategies.h:
      (WebPlatformStrategies):
      * WebCoreSupport/WebPlatformStrategies.mm:
      (WebPlatformStrategies::createStorageStrategy):
      
      Source/WebKit/qt: Use a platforom strategy for local storage
      https://bugs.webkit.org/show_bug.cgi?id=107600
      
      Reviewed by Andreas Kling.
      
      Update for new storage strategy.
      
      * WebCoreSupport/PlatformStrategiesQt.cpp:
      (PlatformStrategiesQt::createStorageStrategy):
      * WebCoreSupport/PlatformStrategiesQt.h:
      (PlatformStrategiesQt):
      
      Source/WebKit/win: Use a platforom strategy for local storage
      https://bugs.webkit.org/show_bug.cgi?id=107600
      
      Reviewed by Andreas Kling.
      
      Update for new storage strategy.
      
      * WebCoreSupport/WebPlatformStrategies.cpp:
      (WebPlatformStrategies::createStorageStrategy):
      * WebCoreSupport/WebPlatformStrategies.h:
      (WebPlatformStrategies):
      
      Source/WebKit/wince: Use a platforom strategy for local storage
      https://bugs.webkit.org/show_bug.cgi?id=107600
      
      Reviewed by Andreas Kling.
      
      Update for new storage strategy.
      
      * WebCoreSupport/PlatformStrategiesWinCE.cpp:
      (PlatformStrategiesWinCE::createStorageStrategy):
      * WebCoreSupport/PlatformStrategiesWinCE.h:
      (PlatformStrategiesWinCE):
      
      Source/WebKit2: Use a platforom strategy for local storage
      https://bugs.webkit.org/show_bug.cgi?id=107600
      
      Reviewed by Andreas Kling.
      
      Update for new storage strategy.
      
      * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
      (WebKit::WebPlatformStrategies::createStorageStrategy):
      (WebKit):
      * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
      (WebPlatformStrategies):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@140498 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      89cf38d9
  4. 02 Dec, 2012 1 commit
    • commit-queue@webkit.org's avatar
      Need a method to close all idle localstorage databases immediately. · eb3a703e
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=103469
      
      Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2012-12-02
      Reviewed by David Kilzer.
      
      Source/WebCore:
      
      Add a new PageGroup method closeIdleLocalStorageDatabases, which walks through
      all local storage areas that don't have document referencing to them and closes
      their underlying databases.
      
      Test: storage/domstorage/localstorage/close-idle-localstorage-databases-immediately.html
      
      * WebCore.exp.in:
      * page/PageGroup.cpp:
      (WebCore::PageGroup::clearLocalStorageForOrigin):
      (WebCore):
      (WebCore::PageGroup::closeIdleLocalStorageDatabases): walking through all idle local storages and
          closing their databases.
      * page/PageGroup.h:
      (PageGroup):
      * storage/StorageArea.h:
      (WebCore::StorageArea::closeDatabaseIfIdle):
      * storage/StorageAreaImpl.cpp:
      (WebCore::StorageAreaImpl::closeDatabaseIfIdle): close the database if it is idle.
      (WebCore):
      * storage/StorageAreaImpl.h:
      (StorageAreaImpl):
      * storage/StorageNamespace.h:
      (StorageNamespace):
      * storage/StorageNamespaceImpl.cpp:
      (WebCore::StorageNamespaceImpl::closeIdleLocalStorageDatabases):
      (WebCore):
      * storage/StorageNamespaceImpl.h:
      (StorageNamespaceImpl):
      
      Source/WebKit/mac:
      
      Add a new method to WebStorageManager that we can call to close all
      idle local storage databases.
      
      * Storage/WebStorageManager.mm:
      (+[WebStorageManager closeIdleLocalStorageDatabases]):
      * Storage/WebStorageManagerPrivate.h:
      
      Tools:
      
      Add an JS method to TestRunner, to enable testing closing idle local storage databases in
      DumpRenderTree layout tests.
      
      * DumpRenderTree/TestRunner.cpp:
      (closeIdleLocalStorageDatabasesCallback):
      (TestRunner::staticFunctions):
      * DumpRenderTree/TestRunner.h:
      (TestRunner):
      * DumpRenderTree/blackberry/TestRunnerBlackBerry.cpp:
      (TestRunner::closeIdleLocalStorageDatabases):
      * DumpRenderTree/efl/TestRunnerEfl.cpp:
      (TestRunner::closeIdleLocalStorageDatabases):
      * DumpRenderTree/gtk/TestRunnerGtk.cpp:
      (TestRunner::closeIdleLocalStorageDatabases):
      * DumpRenderTree/mac/TestRunnerMac.mm:
      (TestRunner::closeIdleLocalStorageDatabases):
      * DumpRenderTree/win/TestRunnerWin.cpp:
      (TestRunner::closeIdleLocalStorageDatabases):
      * DumpRenderTree/wx/TestRunnerWx.cpp:
      (TestRunner::closeIdleLocalStorageDatabases):
      
      LayoutTests:
      
      * storage/domstorage/localstorage/close-idle-localstorage-databases-immediately-expected.txt: Added.
      * storage/domstorage/localstorage/close-idle-localstorage-databases-immediately.html: Added.
      * storage/resources/storage-close-idle-localstorage-databases-immediately.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@136323 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      eb3a703e
  5. 06 Sep, 2012 1 commit
    • weinig@apple.com's avatar
      Part 2 of removing PlatformString.h, remove PlatformString.h · 3f5ab024
      weinig@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=95931
      
      Reviewed by Adam Barth.
      
      Remove PlatformString.h
      
      Source/WebCore:
      
      * GNUmakefile.list.am:
      * Modules/filesystem/AsyncFileWriter.h:
      * Modules/filesystem/DOMFilePath.h:
      * Modules/filesystem/DOMFileSystemBase.h:
      * Modules/filesystem/DirectoryEntry.h:
      * Modules/filesystem/DirectoryEntrySync.h:
      * Modules/filesystem/DirectoryReader.h:
      * Modules/filesystem/DirectoryReaderBase.h:
      * Modules/filesystem/DirectoryReaderSync.h:
      * Modules/filesystem/EntryBase.cpp:
      * Modules/filesystem/EntrySync.h:
      * Modules/filesystem/FileEntrySync.h:
      * Modules/filesystem/FileSystemCallbacks.h:
      * Modules/filesystem/LocalFileSystem.h:
      * Modules/geolocation/GeolocationError.h:
      * Modules/geolocation/Geoposition.h:
      * Modules/geolocation/PositionError.h:
      * Modules/indexeddb/IDBAny.h:
      * Modules/indexeddb/IDBDatabaseBackendInterface.h:
      * Modules/indexeddb/IDBDatabaseCallbacks.h:
      * Modules/indexeddb/IDBDatabaseCallbacksImpl.h:
      * Modules/indexeddb/IDBDatabaseError.h:
      * Modules/indexeddb/IDBFactory.h:
      * Modules/indexeddb/IDBFactoryBackendInterface.h:
      * Modules/indexeddb/IDBIndex.h:
      * Modules/indexeddb/IDBIndexBackendInterface.h:
      * Modules/indexeddb/IDBKey.h:
      * Modules/indexeddb/IDBKeyPath.h:
      * Modules/indexeddb/IDBMetadata.h:
      * Modules/indexeddb/IDBObjectStore.h:
      * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
      * Modules/indexeddb/IDBTransactionBackendInterface.h:
      * Modules/indexeddb/IDBUpgradeNeededEvent.h:
      * Modules/indexeddb/IDBVersionChangeEvent.h:
      * Modules/mediastream/MediaStreamTrack.h:
      * Modules/networkinfo/NetworkInfoConnection.h:
      * Modules/notifications/DOMWindowNotifications.h:
      * Modules/speech/SpeechGrammar.h:
      * Modules/speech/SpeechRecognition.h:
      * Modules/speech/SpeechRecognitionAlternative.h:
      * Modules/speech/SpeechRecognitionClient.h:
      * Modules/speech/SpeechRecognitionError.h:
      * Modules/webaudio/AudioContext.cpp:
      * Modules/webaudio/AudioParam.h:
      * Modules/webdatabase/AbstractDatabase.h:
      * Modules/webdatabase/ChangeVersionWrapper.h:
      * Modules/webdatabase/DOMWindowWebDatabase.h:
      * Modules/webdatabase/Database.h:
      * Modules/webdatabase/DatabaseAuthorizer.cpp:
      * Modules/webdatabase/DatabaseAuthorizer.h:
      * Modules/webdatabase/DatabaseDetails.h:
      * Modules/webdatabase/DatabaseSync.h:
      * Modules/webdatabase/DatabaseTask.h:
      * Modules/webdatabase/DatabaseTracker.h:
      * Modules/webdatabase/OriginUsageRecord.h:
      * Modules/webdatabase/SQLError.h:
      * Modules/webdatabase/SQLStatement.h:
      * Modules/webdatabase/SQLStatementSync.h:
      * Modules/webdatabase/SQLTransaction.cpp:
      * Modules/webdatabase/SQLTransactionSync.cpp:
      * Modules/webdatabase/SQLTransactionSync.h:
      * Modules/webdatabase/WorkerContextWebDatabase.h:
      * Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
      * Modules/webdatabase/chromium/QuotaTracker.h:
      * Modules/websockets/ThreadableWebSocketChannel.cpp:
      * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
      * Modules/websockets/WebSocketHandshake.h:
      * Modules/websockets/WebSocketHandshakeResponse.h:
      * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
      * Modules/websockets/WorkerThreadableWebSocketChannel.h:
      * WebCore.gypi:
      * WebCore.vcproj/WebCore.vcproj:
      * WebCore.xcodeproj/project.pbxproj:
      * bindings/gobject/ConvertToUTF8String.cpp:
      * bindings/js/JSCSSStyleDeclarationCustom.cpp:
      * bindings/js/JSClipboardCustom.cpp:
      * bindings/js/JSImageDataCustom.cpp:
      * bindings/js/JSInspectorFrontendHostCustom.cpp:
      * bindings/js/JSLazyEventListener.h:
      * bindings/js/JSStorageCustom.cpp:
      * bindings/js/JSXSLTProcessorCustom.cpp:
      * bindings/js/JavaScriptCallFrame.cpp:
      * bindings/js/ScheduledAction.h:
      * bindings/js/ScriptDebugServer.h:
      * bindings/js/ScriptHeapSnapshot.h:
      * bindings/js/ScriptValue.h:
      * bindings/js/SerializedScriptValue.h:
      * bindings/objc/DOMCustomXPathNSResolver.mm:
      * bindings/objc/DOMXPath.mm:
      * bindings/objc/WebScriptObject.mm:
      * bindings/scripts/CodeGeneratorJS.pm:
      (AddIncludesForTypeInImpl):
      (AddIncludesForSVGAnimatedType):
      * bindings/scripts/CodeGeneratorV8.pm:
      (AddIncludesForType):
      * bindings/v8/Dictionary.h:
      * bindings/v8/JavaScriptCallFrame.h:
      * bindings/v8/NPV8Object.cpp:
      * bindings/v8/ScriptDebugServer.h:
      * bindings/v8/ScriptFunctionCall.h:
      * bindings/v8/ScriptHeapSnapshot.h:
      * bindings/v8/ScriptProfile.h:
      * bindings/v8/ScriptProfileNode.h:
      * bindings/v8/ScriptProfiler.h:
      * bindings/v8/ScriptSourceCode.h:
      * bindings/v8/V8Binding.cpp:
      * bindings/v8/V8DOMWrapper.h:
      * bindings/v8/V8LazyEventListener.h:
      * bindings/v8/V8NPUtils.cpp:
      * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
      * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
      * bindings/v8/custom/V8LocationCustom.cpp:
      * bridge/IdentifierRep.cpp:
      * bridge/NP_jsobject.cpp:
      * bridge/c/c_utility.cpp:
      * css/CSSBasicShapes.h:
      * css/CSSBorderImageSliceValue.cpp:
      * css/CSSCharsetRule.h:
      * css/CSSCursorImageValue.cpp:
      * css/CSSFontFaceSrcValue.h:
      * css/CSSGradientValue.cpp:
      * css/CSSInheritedValue.cpp:
      * css/CSSInitialValue.cpp:
      * css/CSSLineBoxContainValue.cpp:
      * css/CSSMediaRule.h:
      * css/CSSProperty.cpp:
      * css/CSSPropertySourceData.cpp:
      * css/CSSPropertySourceData.h:
      * css/CSSReflectValue.cpp:
      * css/CSSTimingFunctionValue.cpp:
      * css/CSSUnicodeRangeValue.cpp:
      * css/CSSValueList.cpp:
      * css/Counter.h:
      * css/FontFeatureValue.h:
      * css/FontValue.cpp:
      * css/MediaQuery.h:
      * css/MediaQueryEvaluator.h:
      * css/MediaQueryListListener.h:
      * css/ShadowValue.cpp:
      * css/StyleMedia.h:
      * css/StyleSheet.h:
      * css/StyleSheetList.cpp:
      * css/WebKitCSSMatrix.h:
      * css/WebKitCSSTransformValue.cpp:
      * dom/DOMStringList.h:
      * dom/DOMStringMap.h:
      * dom/DocumentMarker.h:
      * dom/ErrorEvent.h:
      * dom/ExceptionBase.h:
      * dom/MessagePortChannel.h:
      * dom/MutationRecord.h:
      * dom/TransformSource.h:
      * dom/ViewportArguments.cpp:
      * editing/DOMTransactionStep.h:
      * editing/EditingStyle.h:
      * editing/MarkupAccumulator.h:
      * editing/SmartReplaceICU.cpp:
      * editing/SpellChecker.h:
      * editing/SurroundingText.h:
      * fileapi/AsyncFileStream.cpp:
      * fileapi/Blob.h:
      * fileapi/BlobURL.cpp:
      * fileapi/File.h:
      * history/HistoryItem.h:
      * history/blackberry/HistoryItemViewState.h:
      * history/cf/HistoryPropertyList.h:
      * html/DOMFormData.cpp:
      * html/DOMURL.h:
      * html/MicroDataItemValue.h:
      * html/PublicURLManager.h:
      * html/canvas/CanvasPattern.cpp:
      * html/canvas/CanvasRenderingContext2D.h:
      * html/canvas/CanvasStyle.h:
      * html/canvas/WebGLActiveInfo.h:
      * html/canvas/WebGLGetInfo.h:
      * html/canvas/WebGLRenderingContext.h:
      * html/parser/CSSPreloadScanner.h:
      * html/parser/HTMLEntitySearch.h:
      * html/parser/HTMLEntityTable.h:
      * html/parser/HTMLMetaCharsetParser.cpp:
      * inspector/CodeGeneratorInspector.py:
      (InspectorFrontend_h):
      * inspector/ContentSearchUtils.h:
      * inspector/InjectedScript.cpp:
      * inspector/InjectedScriptBase.cpp:
      * inspector/InjectedScriptManager.h:
      * inspector/InjectedScriptModule.h:
      * inspector/InjectedScriptWebGLModule.h:
      * inspector/InspectorAgent.h:
      * inspector/InspectorCSSAgent.h:
      * inspector/InspectorController.h:
      * inspector/InspectorDOMDebuggerAgent.h:
      * inspector/InspectorDOMStorageAgent.h:
      * inspector/InspectorDatabaseAgent.h:
      * inspector/InspectorDatabaseResource.h:
      * inspector/InspectorFrontendClientLocal.cpp:
      * inspector/InspectorFrontendClientLocal.h:
      * inspector/InspectorFrontendHost.h:
      * inspector/InspectorIndexedDBAgent.h:
      * inspector/InspectorPageAgent.h:
      * inspector/InspectorProfilerAgent.h:
      * inspector/InspectorResourceAgent.h:
      * inspector/InspectorState.h:
      * inspector/InspectorStyleSheet.h:
      * inspector/InspectorStyleTextEditor.h:
      * inspector/InspectorValues.h:
      * inspector/InspectorWebGLAgent.h:
      * inspector/InspectorWorkerResource.h:
      * inspector/ScriptArguments.h:
      * inspector/ScriptBreakpoint.h:
      * inspector/ScriptCallFrame.h:
      * inspector/ScriptDebugListener.h:
      * inspector/TimelineRecordFactory.h:
      * inspector/generate-inspector-protocol-version:
      (main):
      * loader/DocumentLoader.cpp:
      * loader/DocumentWriter.h:
      * loader/FTPDirectoryParser.h:
      * loader/FormState.h:
      * loader/HistoryController.h:
      * loader/PolicyChecker.h:
      * loader/ResourceLoadScheduler.h:
      * loader/SubframeLoader.h:
      * loader/SubstituteData.h:
      * loader/WorkerThreadableLoader.h:
      * loader/appcache/ApplicationCache.h:
      * loader/appcache/ApplicationCacheGroup.h:
      * loader/archive/ArchiveFactory.cpp:
      * loader/archive/ArchiveResourceCollection.h:
      * loader/cache/CachedResource.h:
      * loader/cache/MemoryCache.h:
      * loader/icon/IconRecord.h:
      * loader/icon/PageURLRecord.h:
      * loader/mac/LoaderNSURLExtras.mm:
      * loader/win/DocumentLoaderWin.cpp:
      * page/Console.cpp:
      * page/Coordinates.h:
      * page/DOMSelection.cpp:
      * page/EventSource.cpp:
      * page/GroupSettings.h:
      * page/NavigatorBase.cpp:
      * page/OriginAccessEntry.h:
      * page/Page.h:
      * page/SecurityOrigin.h:
      * page/SpeechInputResult.h:
      * page/UserContentURLPattern.h:
      * page/WindowFeatures.cpp:
      * page/WindowFeatures.h:
      * page/WorkerNavigator.h:
      * page/animation/AnimationControllerPrivate.h:
      * platform/AsyncFileSystem.h:
      * platform/AsyncFileSystemCallbacks.h:
      * platform/ContentType.h:
      * platform/ContextMenu.h:
      * platform/ContextMenuItem.h:
      * platform/Cookie.h:
      * platform/CrossThreadCopier.cpp:
      * platform/DateComponents.cpp:
      * platform/FileChooser.h:
      * platform/FileStream.cpp:
      * platform/FileSystem.h:
      * platform/KURL.cpp:
      (WebCore):
      * platform/KURL.h:
      * platform/KURLHash.h:
      * platform/KillRing.h:
      * platform/Language.cpp:
      * platform/Length.cpp:
      * platform/LinkHash.cpp:
      * platform/Logging.cpp:
      * platform/MIMETypeRegistry.h:
      * platform/SSLKeyGenerator.h:
      * platform/SchemeRegistry.h:
      * platform/SharedBuffer.h:
      * platform/Theme.h:
      * platform/UUID.h:
      * platform/animation/Animation.h:
      * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.h:
      * platform/blackberry/CookieManager.h:
      * platform/blackberry/CookieMap.h:
      * platform/blackberry/DragDataBlackBerry.cpp:
      * platform/blackberry/KURLBlackBerry.cpp:
      * platform/blackberry/LocalizedStringsBlackBerry.cpp:
      * platform/blackberry/SSLKeyGeneratorBlackBerry.cpp:
      * platform/blackberry/TemporaryLinkStubs.cpp:
      * platform/cf/FileSystemCF.cpp:
      * platform/cf/SchedulePair.h:
      * platform/chromium/ChromiumDataObject.h:
      * platform/chromium/ClipboardUtilitiesChromium.cpp:
      * platform/chromium/DragDataChromium.cpp:
      * platform/chromium/FileSystemChromium.cpp:
      * platform/chromium/FileSystemChromiumMac.mm:
      * platform/chromium/LanguageChromium.cpp:
      * platform/chromium/SSLKeyGeneratorChromium.cpp:
      * platform/cocoa/KeyEventCocoa.mm:
      * platform/efl/ErrorsEfl.h:
      * platform/efl/LanguageEfl.cpp:
      * platform/efl/LocalizedStringsEfl.cpp:
      * platform/efl/LoggingEfl.cpp:
      * platform/efl/PasteboardEfl.cpp:
      * platform/efl/PlatformScreenEfl.cpp:
      * platform/graphics/ANGLEWebKitBridge.h:
      * platform/graphics/BitmapImage.cpp:
      * platform/graphics/FontPlatformData.cpp:
      * platform/graphics/GlyphPageTreeNode.cpp:
      * platform/graphics/GraphicsContext3D.h:
      * platform/graphics/GraphicsTypes.cpp:
      * platform/graphics/SegmentedFontData.cpp:
      * platform/graphics/blackberry/IconBlackBerry.cpp:
      * platform/graphics/blackberry/LayerData.h:
      * platform/graphics/blackberry/LayerFilterRenderer.cpp:
      * platform/graphics/blackberry/LayerRenderer.cpp:
      * platform/graphics/blackberry/skia/PlatformSupport.h:
      * platform/graphics/ca/PlatformCALayer.h:
      * platform/graphics/ca/PlatformCALayerClient.h:
      * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
      * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
      * platform/graphics/cairo/ImageBufferCairo.cpp:
      * platform/graphics/cairo/PathCairo.cpp:
      * platform/graphics/cg/ImageSourceCGMac.mm:
      * platform/graphics/cg/PathCG.cpp:
      * platform/graphics/chromium/FontUtilsChromiumWin.cpp:
      * platform/graphics/chromium/GraphicsLayerChromium.cpp:
      * platform/graphics/chromium/IconChromium.cpp:
      * platform/graphics/chromium/IconChromiumAndroid.cpp:
      * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
      * platform/graphics/efl/IconEfl.cpp:
      * platform/graphics/filters/FEComposite.h:
      * platform/graphics/filters/FEDisplacementMap.h:
      * platform/graphics/filters/SourceAlpha.cpp:
      * platform/graphics/filters/SourceAlpha.h:
      * platform/graphics/filters/SourceGraphic.cpp:
      * platform/graphics/filters/SourceGraphic.h:
      * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
      * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
      * platform/graphics/mac/IconMac.mm:
      * platform/graphics/mac/ImageMac.mm:
      * platform/graphics/opentype/OpenTypeUtilities.h:
      * platform/graphics/openvg/PathOpenVG.cpp:
      * platform/graphics/pango/FontPlatformDataPango.cpp:
      * platform/graphics/qt/FontCacheQt.cpp:
      * platform/graphics/qt/FontPlatformDataQt.cpp:
      * platform/graphics/qt/IconQt.cpp:
      * platform/graphics/qt/ImageQt.cpp:
      * platform/graphics/qt/PathQt.cpp:
      * platform/graphics/skia/FontCustomPlatformData.h:
      * platform/graphics/skia/ImageSkia.cpp:
      * platform/graphics/win/FontCustomPlatformData.h:
      * platform/graphics/win/FontPlatformDataCGWin.cpp:
      * platform/graphics/win/FontPlatformDataCairoWin.cpp:
      * platform/graphics/win/FontPlatformDataWin.cpp:
      * platform/graphics/win/IconWin.cpp:
      * platform/graphics/win/ImageCGWin.cpp:
      * platform/graphics/win/ImageCairoWin.cpp:
      * platform/graphics/win/SimpleFontDataCGWin.cpp:
      * platform/graphics/wince/FontCustomPlatformData.h:
      * platform/graphics/wince/FontPlatformData.cpp:
      * platform/graphics/wince/ImageWinCE.cpp:
      * platform/graphics/wince/MediaPlayerProxy.cpp:
      * platform/graphics/wince/PathWinCE.cpp:
      * platform/graphics/wince/PlatformPathWinCE.cpp:
      * platform/graphics/wx/FontCacheWx.cpp:
      * platform/graphics/wx/FontPlatformDataWx.cpp:
      * platform/graphics/wx/IconWx.cpp:
      * platform/graphics/wx/PathWx.cpp:
      * platform/gtk/ErrorsGtk.h:
      * platform/gtk/FileSystemGtk.cpp:
      * platform/gtk/GtkPopupMenu.h:
      * platform/gtk/KeyBindingTranslator.h:
      * platform/gtk/LanguageGtk.cpp:
      * platform/gtk/LocalizedStringsGtk.cpp:
      * platform/gtk/LoggingGtk.cpp:
      * platform/gtk/PasteboardGtk.cpp:
      * platform/image-decoders/ImageDecoder.h:
      * platform/leveldb/LevelDBSlice.h:
      * platform/mac/FileSystemMac.mm:
      * platform/mediastream/MediaStreamSource.h:
      * platform/mock/GeolocationClientMock.h:
      * platform/network/BlobData.h:
      * platform/network/BlobRegistryImpl.h:
      * platform/network/BlobResourceHandle.h:
      * platform/network/Credential.h:
      * platform/network/FormData.h:
      * platform/network/FormDataBuilder.h:
      * platform/network/HTTPParsers.cpp:
      * platform/network/HTTPRequest.h:
      * platform/network/HTTPValidation.cpp:
      * platform/network/ProtectionSpace.h:
      * platform/network/ResourceErrorBase.h:
      * platform/network/SocketStreamErrorBase.h:
      * platform/network/blackberry/DNSBlackBerry.cpp:
      * platform/network/blackberry/DeferredData.h:
      * platform/network/blackberry/NetworkJob.h:
      * platform/network/cf/CookieJarCFNet.cpp:
      * platform/network/curl/CookieJarCurl.cpp:
      * platform/network/curl/ResourceHandleManager.h:
      * platform/network/qt/DnsPrefetchHelper.cpp:
      * platform/network/soup/ResourceRequestSoup.cpp:
      * platform/network/soup/ResourceResponseSoup.cpp:
      * platform/network/win/CookieJarWin.cpp:
      * platform/posix/FileSystemPOSIX.cpp:
      * platform/qt/ClipboardQt.cpp:
      * platform/qt/CookieJarQt.cpp:
      * platform/qt/FileSystemQt.cpp:
      * platform/qt/LanguageQt.cpp:
      * platform/qt/LocalizedStringsQt.cpp:
      * platform/qt/LoggingQt.cpp:
      * platform/qt/PlatformSupport.h:
      * platform/sql/SQLValue.h:
      * platform/sql/SQLiteDatabase.h:
      * platform/sql/SQLiteFileSystem.h:
      * platform/text/DecodeEscapeSequences.h:
      * platform/text/LineEnding.cpp:
      * platform/text/ParserUtilities.h:
      * platform/text/PlatformString.h: Removed.
      * platform/text/RegularExpression.h:
      * platform/text/SegmentedString.h:
      * platform/text/StringWithDirection.h:
      * platform/text/SuffixTree.h:
      * platform/text/TextBreakIteratorICU.cpp:
      * platform/text/TextCodec.cpp:
      * platform/text/TextCodec.h:
      * platform/text/TextCodecLatin1.cpp:
      * platform/text/TextCodecUTF16.cpp:
      * platform/text/TextCodecUserDefined.cpp:
      * platform/text/TextEncoding.cpp:
      * platform/text/blackberry/StringBlackBerry.cpp:
      * platform/text/cf/StringCF.cpp:
      * platform/text/chromium/TextBreakIteratorInternalICUChromium.cpp:
      * platform/text/gtk/TextCodecGtk.cpp:
      * platform/text/mac/StringMac.mm:
      * platform/text/mac/TextCodecMac.cpp:
      * platform/text/qt/TextCodecQt.cpp:
      * platform/text/win/TextCodecWin.h:
      * platform/text/wince/TextBreakIteratorWinCE.cpp:
      * platform/win/BString.cpp:
      * platform/win/DragDataWin.cpp:
      * platform/win/GDIObjectCounter.h:
      * platform/win/LoggingWin.cpp:
      * platform/win/WCDataObject.cpp:
      * platform/wince/DragDataWinCE.cpp:
      * platform/wx/ClipboardWx.cpp:
      * platform/wx/FileSystemWx.cpp:
      * platform/wx/LanguageWx.cpp:
      * platform/wx/LocalizedStringsWx.cpp:
      * platform/wx/LoggingWx.cpp:
      * platform/wx/PasteboardWx.cpp:
      * platform/wx/PopupMenuWx.cpp:
      * plugins/PluginData.h:
      * plugins/PluginDatabase.h:
      * plugins/PluginDebug.cpp:
      * plugins/PluginPackage.h:
      * plugins/PluginStream.h:
      * rendering/style/StyleDashboardRegion.h:
      * storage/Storage.cpp:
      * storage/StorageArea.h:
      * storage/StorageEvent.h:
      * storage/StorageEventDispatcher.h:
      * storage/StorageMap.h:
      * storage/StorageNamespace.h:
      * storage/StorageNamespaceImpl.h:
      * storage/StorageSyncManager.h:
      * storage/StorageTask.h:
      * storage/StorageTracker.h:
      * svg/SVGPathByteStreamBuilder.h:
      * svg/SVGPathParser.h:
      * svg/SVGPathStringSource.h:
      * svg/SVGStyledElement.cpp:
      * svg/animation/SMILTimeContainer.h:
      * svg/graphics/filters/SVGFilterBuilder.cpp:
      * svg/graphics/filters/SVGFilterBuilder.h:
      * testing/Internals.h:
      * workers/DefaultSharedWorkerRepository.cpp:
      * workers/WorkerLocation.cpp:
      * workers/WorkerThread.cpp:
      * xml/DOMParser.cpp:
      * xml/NativeXPathNSResolver.cpp:
      * xml/XMLSerializer.cpp:
      * xml/XMLSerializer.h:
      * xml/XPathExpression.cpp:
      * xml/XPathValue.h:
      * xml/XSLTUnicodeSort.cpp:
      
      Source/WebKit/blackberry:
      
      * Api/DumpRenderTreeClient.h:
      * WebCoreSupport/ChromeClientBlackBerry.cpp:
      * WebCoreSupport/InspectorClientBlackBerry.h:
      * WebCoreSupport/JavaScriptDebuggerBlackBerry.cpp:
      * WebKitSupport/AboutData.h:
      
      Source/WebKit/cf:
      
      * WebCoreSupport/WebInspectorClientCF.cpp:
      (WebInspectorClient::createFrontendSettings):
      
      Source/WebKit/chromium:
      
      * src/ContextMenuClientImpl.cpp:
      * src/EditorClientImpl.cpp:
      * src/InspectorFrontendClientImpl.cpp:
      * src/LocalFileSystemChromium.cpp:
      * src/SpeechInputClientImpl.cpp:
      * src/SpeechRecognitionClientProxy.h:
      * src/WebDevToolsAgentImpl.cpp:
      * src/WebDevToolsFrontendImpl.cpp:
      * src/WebDevToolsFrontendImpl.h:
      * src/WebEntities.h:
      * src/WebFrameImpl.h:
      * src/WorkerFileSystemCallbacksBridge.h:
      * tests/UniscribeHelperTest.cpp:
      
      Source/WebKit/efl:
      
      * WebCoreSupport/ChromeClientEfl.cpp:
      * WebCoreSupport/InspectorClientEfl.cpp:
      
      Source/WebKit/gtk:
      
      * WebCoreSupport/ChromeClientGtk.cpp:
      * WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
      * WebCoreSupport/InspectorClientGtk.cpp:
      * gdom/ConvertToGCharPrivate.h:
      * webkit/webkitsecurityorigin.cpp:
      * webkit/webkitwebdatasource.cpp:
      * webkit/webkitwebhistoryitem.cpp:
      * webkit/webkitwebresource.cpp:
      
      Source/WebKit/mac:
      
      * History/WebHistoryItem.mm:
      * Misc/WebStringTruncator.mm:
      * Plugins/Hosted/NetscapePluginHostManager.h:
      (NetscapePluginHostManager):
      * Plugins/WebPluginController.mm:
      * Storage/WebStorageTrackerClient.mm:
      * WebCoreSupport/WebChromeClient.mm:
      * WebCoreSupport/WebEditorClient.mm:
      * WebCoreSupport/WebFrameLoaderClient.mm:
      * WebCoreSupport/WebIconDatabaseClient.mm:
      * WebCoreSupport/WebInspectorClient.h:
      (WebInspectorClient):
      (WebInspectorFrontendClient):
      * WebView/WebRenderLayer.mm:
      * WebView/WebViewData.h:
      
      Source/WebKit/qt:
      
      * Api/qwebdatabase_p.h:
      * Api/qwebframe_p.h:
      * Api/qwebhistory.cpp:
      * Api/qwebhistoryinterface.cpp:
      * Api/qwebpage_p.h:
      * Api/qwebsettings.cpp:
      * WebCoreSupport/ChromeClientQt.h:
      * WebCoreSupport/InspectorClientQt.cpp:
      
      Source/WebKit/win:
      
      * DOMCSSClasses.cpp:
      * DefaultPolicyDelegate.cpp:
      * MarshallingHelpers.cpp:
      * WebCoreSupport/WebInspectorClient.h:
      * WebDownload.h:
      * WebFrame.h:
      * WebHistoryItem.h:
      * WebIconDatabase.cpp:
      * WebKitDLL.h:
      * WebKitGraphics.cpp:
      * WebKitSystemBits.cpp:
      * WebLocalizableStrings.cpp:
      * WebNotificationCenter.cpp:
      * WebResource.h:
      
      Source/WebKit/wx:
      
      * WebFrame.cpp:
      * WebKitSupport/ChromeClientWx.cpp:
      * WebKitSupport/EditorClientWx.cpp:
      * WebKitSupport/FrameLoaderClientWx.cpp:
      * WebKitSupport/InspectorClientWx.cpp:
      * WebSettings.cpp:
      * WebView.cpp:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127757 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3f5ab024
  6. 11 Nov, 2011 1 commit
    • adamk@chromium.org's avatar
      Remove no-op StorageNamespace::unlock method · 89bf0b74
      adamk@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=72181
      
      Reviewed by Darin Adler.
      
      Source/WebCore:
      
      The method was meant to support the localStorage mutex,
      but the approach of using a mutex for localStorage has never been
      implemented (and almost certainly won't be). Even if it were implemented,
      it's not being called at the right time, due to bugs in the V8 bindings'
      use of V8Proxy (see http://webkit.org/b/72063 for details).
      
      If, in the future, some replacement for a mutex is used to synchronize
      localStorage access, it can easily be re-added to the (hopefully
      fixed-by-then) replacement for V8Proxy::didLeaveScriptContext.
      
      * bindings/v8/V8Proxy.cpp:
      (WebCore::V8Proxy::didLeaveScriptContext): Stop calling unlock().
      * page/Navigator.cpp:
      (WebCore::Navigator::getStorageUpdates): Remove implementation (a call to unlock), but leave code as it's exposed to the platform.
      * page/Navigator.idl: Added a FIXME to remove getStorageUpdates from the platform.
      * storage/StorageNamespace.h:
      * storage/StorageNamespaceImpl.cpp:
      * storage/StorageNamespaceImpl.h:
      
      Source/WebKit/chromium:
      
      * src/StorageNamespaceProxy.cpp:
      * src/StorageNamespaceProxy.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@100041 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      89bf0b74
  7. 16 Oct, 2011 1 commit
    • abarth@webkit.org's avatar
      Always enable ENABLE(DOM_STORAGE) · 2eb9f99c
      abarth@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=70189
      
      Reviewed by Eric Seidel.
      
      .:
      
      * Source/cmake/OptionsEfl.cmake:
      * Source/cmake/OptionsWinCE.cmake:
      * Source/cmakeconfig.h.cmake:
      * configure.ac:
      
      Source/JavaScriptCore:
      
      * Configurations/FeatureDefines.xcconfig:
      
      Source/WebCore:
      
      As discussed on webkit-dev, we are reducing the complexity of WebKit by
      removing unnecessary configuration options.  DOMStorage is not a core
      part of the web platform.  It should always be enabled.
      
      * CMakeLists.txt:
      * Configurations/FeatureDefines.xcconfig:
      * GNUmakefile.am:
      * GNUmakefile.list.am:
      * UseJSC.cmake:
      * WebCore.exp.in:
      * WebCore.pro:
      * bindings/js/JSEventCustom.cpp:
      * bindings/js/JSInjectedScriptHostCustom.cpp:
      * bindings/js/JSStorageCustom.cpp:
      * bindings/v8/custom/V8EventCustom.cpp:
      (WebCore::toV8):
      * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
      (WebCore::V8InjectedScriptHost::storageIdCallback):
      * bindings/v8/custom/V8StorageCustom.cpp:
      * dom/Document.cpp:
      (WebCore::Document::createEvent):
      * dom/Event.cpp:
      (WebCore::Event::isStorageEvent):
      * dom/Event.h:
      * dom/Node.cpp:
      * features.pri:
      * inspector/InjectedScriptHost.cpp:
      (WebCore::InjectedScriptHost::InjectedScriptHost):
      (WebCore::InjectedScriptHost::disconnect):
      (WebCore::InjectedScriptHost::storageIdImpl):
      * inspector/InjectedScriptHost.h:
      (WebCore::InjectedScriptHost::init):
      * inspector/InspectorController.cpp:
      (WebCore::InspectorController::InspectorController):
      (WebCore::InspectorController::connectFrontend):
      (WebCore::InspectorController::disconnectFrontend):
      (WebCore::InspectorController::restoreInspectorStateFromCookie):
      * inspector/InspectorController.h:
      * inspector/InspectorDOMStorageAgent.cpp:
      * inspector/InspectorDOMStorageResource.cpp:
      * inspector/InspectorDOMStorageResource.h:
      * inspector/InspectorInstrumentation.cpp:
      (WebCore::InspectorInstrumentation::didCommitLoadImpl):
      (WebCore::InspectorInstrumentation::didUseDOMStorageImpl):
      * inspector/InspectorInstrumentation.h:
      (WebCore::InspectorInstrumentation::didUseDOMStorage):
      * inspector/InstrumentingAgents.h:
      (WebCore::InstrumentingAgents::InstrumentingAgents):
      * inspector/WorkerInspectorController.cpp:
      (WebCore::WorkerInspectorController::WorkerInspectorController):
      (WebCore::WorkerInspectorController::connectFrontend):
      * inspector/generate-inspector-idl:
      * page/Chrome.cpp:
      * page/DOMWindow.cpp:
      (WebCore::DOMWindow::~DOMWindow):
      (WebCore::DOMWindow::clear):
      (WebCore::DOMWindow::localStorage):
      * page/DOMWindow.h:
      * page/DOMWindow.idl:
      * page/Navigator.cpp:
      (WebCore::Navigator::getStorageUpdates):
      * page/Navigator.h:
      * page/Navigator.idl:
      * page/Page.cpp:
      * page/Page.h:
      * page/PageGroup.cpp:
      (WebCore::PageGroup::closeLocalStorage):
      * page/PageGroup.h:
      * page/Settings.cpp:
      (WebCore::Settings::Settings):
      (WebCore::Settings::setSessionStorageQuota):
      * page/Settings.h:
      (WebCore::Settings::sessionStorageQuota):
      * storage/LocalStorageTask.cpp:
      * storage/LocalStorageTask.h:
      * storage/LocalStorageThread.cpp:
      * storage/LocalStorageThread.h:
      * storage/Storage.cpp:
      * storage/Storage.h:
      * storage/Storage.idl:
      * storage/StorageArea.h:
      * storage/StorageAreaImpl.cpp:
      * storage/StorageAreaImpl.h:
      * storage/StorageAreaSync.cpp:
      (WebCore::StorageAreaSync::scheduleSync):
      * storage/StorageAreaSync.h:
      * storage/StorageEvent.cpp:
      * storage/StorageEvent.h:
      * storage/StorageEvent.idl:
      * storage/StorageEventDispatcher.cpp:
      * storage/StorageEventDispatcher.h:
      * storage/StorageMap.cpp:
      * storage/StorageMap.h:
      * storage/StorageNamespace.cpp:
      * storage/StorageNamespace.h:
      * storage/StorageNamespaceImpl.cpp:
      * storage/StorageNamespaceImpl.h:
      * storage/StorageSyncManager.cpp:
      (WebCore::StorageSyncManager::scheduleDeleteEmptyDatabase):
      * storage/StorageSyncManager.h:
      * storage/StorageTracker.cpp:
      * storage/StorageTracker.h:
      
      Source/WebKit/chromium:
      
      * features.gypi:
      * src/StorageAreaProxy.cpp:
      * src/StorageAreaProxy.h:
      * src/StorageEventDispatcherChromium.cpp:
      * src/StorageEventDispatcherImpl.cpp:
      * src/StorageEventDispatcherImpl.h:
      * src/StorageNamespaceProxy.cpp:
      * src/StorageNamespaceProxy.h:
      * src/WebRuntimeFeatures.cpp:
      (WebKit::WebRuntimeFeatures::enableLocalStorage):
      (WebKit::WebRuntimeFeatures::isLocalStorageEnabled):
      (WebKit::WebRuntimeFeatures::enableSessionStorage):
      (WebKit::WebRuntimeFeatures::isSessionStorageEnabled):
      * src/WebStorageAreaImpl.cpp:
      * src/WebStorageAreaImpl.h:
      * src/WebStorageEventDispatcherImpl.cpp:
      * src/WebStorageEventDispatcherImpl.h:
      * src/WebStorageNamespaceImpl.cpp:
      * src/WebStorageNamespaceImpl.h:
      
      Source/WebKit/mac:
      
      * Configurations/FeatureDefines.xcconfig:
      * Storage/WebStorageManager.mm:
      * Storage/WebStorageManagerInternal.h:
      * Storage/WebStorageTrackerClient.h:
      * Storage/WebStorageTrackerClient.mm:
      (WebStorageTrackerClient::dispatchDidModifyOrigin):
      * WebView/WebView.mm:
      (-[WebView _commonInitializationWithFrameName:groupName:]):
      
      Source/WebKit2:
      
      * Configurations/FeatureDefines.xcconfig:
      * WebProcess/WebPage/WebPage.cpp:
      (WebKit::WebPage::updatePreferences):
      * WebProcess/WebProcess.cpp:
      (WebKit::WebProcess::initializeWebProcess):
      
      Tools:
      
      * Scripts/build-webkit:
      * waf/build/settings.py:
      
      WebKitLibraries:
      
      * win/tools/vsprops/FeatureDefines.vsprops:
      * win/tools/vsprops/FeatureDefinesCairo.vsprops:
      
      LayoutTests:
      
      * fast/events/event-creation.html:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@97574 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2eb9f99c
  8. 11 Mar, 2011 1 commit
    • beidson@apple.com's avatar
      Reviewed and landed by Brady Eidson. · c763e4c4
      beidson@apple.com authored
      Source/WebCore: 
      
      Patch by Anton D'Auria <adauria@apple.com> on 2011-03-11
      Add WebKit1 API to view and delete local storage
      https://bugs.webkit.org/show_bug.cgi?id=51878
      
      Created StorageTracker as a central point for tracking and deleting LocalStorage per origin.
      StorageTracker maintains its own database of origin identifiers and backing db paths,
      and this allows it to contain more relational data in the future, like variable quotas per origin.
      
      On initialization, StorageTracker syncs its database with LocalStorage files on disk. It adds
      an origin entry when StorageAreaSync performs a first sync for an origin.
      
      All StorageTracker file operations are performed on one background thread with a task queue.
      
      Tests: storage/domstorage/localstorage/storagetracker/storage-tracker-1-prepare.html
             storage/domstorage/localstorage/storagetracker/storage-tracker-2-create.html
             storage/domstorage/localstorage/storagetracker/storage-tracker-3-delete-all.html
             storage/domstorage/localstorage/storagetracker/storage-tracker-4-create.html
             storage/domstorage/localstorage/storagetracker/storage-tracker-5-delete-one.html
      
      * GNUmakefile.am:
      * WebCore.exp.in:
      * WebCore.gypi:
      * WebCore.pro:
      * WebCore.vcproj/WebCore.vcproj:
      * WebCore.xcodeproj/project.pbxproj:
      * page/PageGroup.cpp:
      (WebCore::PageGroup::clearLocalStorageForAllOrigins):
      (WebCore::PageGroup::clearLocalStorageForOrigin):
      (WebCore::PageGroup::syncLocalStorage):
      (WebCore::PageGroup::numberOfPageGroups):
      * page/PageGroup.h:
      * platform/chromium/FileSystemChromium.cpp:
      (WebCore::listDirectory):
      * platform/posix/FileSystemPOSIX.cpp:
      (WebCore::listDirectory):
      * storage/LocalStorageTask.cpp:
      (WebCore::LocalStorageTask::LocalStorageTask):
      (WebCore::LocalStorageTask::performTask):
      * storage/LocalStorageTask.h:
      (WebCore::LocalStorageTask::createOriginIdentifiersImport):
      (WebCore::LocalStorageTask::createSetOriginDetails):
      (WebCore::LocalStorageTask::createDeleteOrigin):
      (WebCore::LocalStorageTask::createDeleteAllOrigins):
      * storage/StorageAreaImpl.cpp:
      (WebCore::StorageAreaImpl::clearForOriginDeletion):
      (WebCore::StorageAreaImpl::sync):
      * storage/StorageAreaImpl.h:
      * storage/StorageAreaSync.cpp:
      (WebCore::StorageAreaSync::scheduleCloseDatabase):
      (WebCore::StorageAreaSync::openDatabase):
      (WebCore::StorageAreaSync::sync):
      (WebCore::StorageAreaSync::deleteEmptyDatabase):
      (WebCore::StorageAreaSync::scheduleSync):
      * storage/StorageAreaSync.h:
      * storage/StorageNamespace.h:
      * storage/StorageNamespaceImpl.cpp:
      (WebCore::StorageNamespaceImpl::clearOriginForDeletion):
      (WebCore::StorageNamespaceImpl::clearAllOriginsForDeletion):
      (WebCore::StorageNamespaceImpl::sync):
      * storage/StorageNamespaceImpl.h:
      * storage/StorageTracker.cpp: Added.
      (WebCore::StorageTracker::initializeTracker):
      (WebCore::StorageTracker::tracker):
      (WebCore::StorageTracker::StorageTracker):
      (WebCore::StorageTracker::setStorageDirectoryPath):
      (WebCore::StorageTracker::trackerDatabasePath):
      (WebCore::StorageTracker::openTrackerDatabase):
      (WebCore::StorageTracker::importOriginIdentifiers):
      (WebCore::StorageTracker::syncImportOriginIdentifiers):
      (WebCore::StorageTracker::syncFileSystemAndTrackerDatabase):
      (WebCore::StorageTracker::setOriginDetails):
      (WebCore::StorageTracker::scheduleTask):
      (WebCore::StorageTracker::syncSetOriginDetails):
      (WebCore::StorageTracker::origins):
      (WebCore::StorageTracker::deleteAllOrigins):
      (WebCore::StorageTracker::syncDeleteAllOrigins):
      (WebCore::StorageTracker::deleteOrigin):
      (WebCore::StorageTracker::syncDeleteOrigin):
      (WebCore::StorageTracker::willDeleteAllOrigins):
      (WebCore::StorageTracker::willDeleteOrigin):
      (WebCore::StorageTracker::canDeleteOrigin):
      (WebCore::StorageTracker::cancelDeletingOrigin):
      (WebCore::StorageTracker::setClient):
      (WebCore::StorageTracker::syncLocalStorage):
      * storage/StorageTracker.h: Added.
      * storage/StorageTrackerClient.h: Added.
      (WebCore::StorageTrackerClient::~StorageTrackerClient):
      
      Source/WebKit: 
      
      Patch by Anton D'Auria <adauria@apple.com> on 2011-03-11
      Add WebKit1 API to view and delete local storage
      https://bugs.webkit.org/show_bug.cgi?id=51878
      
      * WebKit.xcodeproj/project.pbxproj:
      
      Source/WebKit/chromium: 
      
      Patch by Anton D'Auria <adauria@apple.com> on 2011-03-11
      Add WebKit1 API to view and delete local storage
      https://bugs.webkit.org/show_bug.cgi?id=51878
      
      * src/StorageNamespaceProxy.cpp:
      (WebCore::StorageNamespaceProxy::clearOriginForDeletion):
      (WebCore::StorageNamespaceProxy::clearAllOriginsForDeletion):
      (WebCore::StorageNamespaceProxy::sync):
      * src/StorageNamespaceProxy.h:
      
      Source/WebKit/mac: 
      
      Patch by Anton D'Auria <adauria@apple.com> on 2011-03-11
      https://bugs.webkit.org/show_bug.cgi?id=51878
      Add WebKit1 API to view and delete local storage
      
      * Storage/WebStorageManager.mm: Added.
      (+[WebStorageManager sharedWebStorageManager]):
      (-[WebStorageManager origins]):
      (-[WebStorageManager deleteAllOrigins]):
      (-[WebStorageManager deleteOrigin:]):
      (-[WebStorageManager syncLocalStorage]):
      (-[WebStorageManager syncFileSystemAndTrackerDatabase]):
      (storageDirectoryPath):
      (WebKitInitializeStorageIfNecessary):
      * Storage/WebStorageManagerInternal.h: Added.
      * Storage/WebStorageManagerPrivate.h: Added.
      * Storage/WebStorageTrackerClient.h: Added.
      * Storage/WebStorageTrackerClient.mm: Added.
      (WebStorageTrackerClient::sharedWebStorageTrackerClient):
      (WebStorageTrackerClient::WebStorageTrackerClient):
      (WebStorageTrackerClient::~WebStorageTrackerClient):
      (WebStorageTrackerClient::dispatchDidModifyOriginOnMainThread):
      (WebStorageTrackerClient::dispatchDidModifyOrigin):
      * WebCoreSupport/WebSecurityOrigin.mm:
      (-[WebSecurityOrigin protocol]):
      (-[WebSecurityOrigin host]):
      (-[WebSecurityOrigin databaseIdentifier]):
      (-[WebSecurityOrigin domain]):
      (-[WebSecurityOrigin _initWithWebCoreSecurityOrigin:]):
      * WebCoreSupport/WebSecurityOriginPrivate.h:
      * WebKit.exp:
      * WebView/WebView.mm:
      (-[WebView _commonInitializationWithFrameName:groupName:usesDocumentViews:]):
      
      Tools: 
      
      Patch by Anton D'Auria <adauria@apple.com> on 2011-03-11
      https://bugs.webkit.org/show_bug.cgi?id=51878
      Add WebKit1 API to view and delete local storage
      
      Added tests that write to LocalStorage, delete one origin, get list of origins with local storage, delete all origins.
      
      * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
      * DumpRenderTree/LayoutTestController.cpp:
      (syncLocalStorageCallback):
      (observeStorageTrackerNotificationsCallback):
      (deleteAllLocalStorageCallback):
      (deleteLocalStorageForOriginCallback):
      (originsWithLocalStorageCallback):
      (LayoutTestController::staticFunctions):
      * DumpRenderTree/LayoutTestController.h:
      * DumpRenderTree/StorageTrackerDelegate.h: Added.
      * DumpRenderTree/StorageTrackerDelegate.mm: Added.
      (-[StorageTrackerDelegate init]):
      (-[StorageTrackerDelegate logNotifications:controller:]):
      (-[StorageTrackerDelegate originModified:]):
      (-[StorageTrackerDelegate dealloc]):
      (-[StorageTrackerDelegate setControllerToNotifyDone:]):
      * DumpRenderTree/chromium/LayoutTestController.cpp:
      (LayoutTestController::LayoutTestController):
      (LayoutTestController::deleteAllLocalStorage):
      (LayoutTestController::originsWithLocalStorage):
      (LayoutTestController::deleteLocalStorageForOrigin):
      (observeStorageTrackerNotifications):
      (syncLocalStorage):
      * DumpRenderTree/chromium/LayoutTestController.h:
      * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp:
      (LayoutTestController::originsWithLocalStorage):
      (LayoutTestController::deleteAllLocalStorage):
      (LayoutTestController::deleteLocalStorageForOrigin):
      (LayoutTestController::observeStorageTrackerNotifications):
      (LayoutTestController::syncLocalStorage):
      * DumpRenderTree/mac/DumpRenderTree.mm:
      (resetDefaultsToConsistentValues):
      (allocateGlobalControllers):
      (releaseGlobalControllers):
      * DumpRenderTree/mac/DumpRenderTreeMac.h:
      * DumpRenderTree/mac/LayoutTestControllerMac.mm:
      (LayoutTestController::syncLocalStorage):
      (LayoutTestController::observeStorageTrackerNotifications):
      (LayoutTestController::deleteAllLocalStorage):
      (LayoutTestController::originsWithLocalStorage):
      (LayoutTestController::deleteLocalStorageForOrigin):
      * DumpRenderTree/qt/LayoutTestControllerQt.cpp:
      (LayoutTestController::originsWithLocalStorage):
      (LayoutTestController::deleteAllLocalStorage):
      (LayoutTestController::deleteLocalStorageForOrigin):
      (LayoutTestController::observeStorageTrackerNotifications):
      (LayoutTestController::syncLocalStorage):
      * DumpRenderTree/qt/LayoutTestControllerQt.h:
      * DumpRenderTree/win/LayoutTestControllerWin.cpp:
      (LayoutTestController::clearAllApplicationCaches):
      (LayoutTestController::syncLocalStorage):
      (LayoutTestController::observeStorageTrackerNotifications):
      (LayoutTestController::clearAllDatabases):
      (LayoutTestController::deleteAllLocalStorage):
      (LayoutTestController::originsWithLocalStorage):
      (LayoutTestController::deleteLocalStorageForOrigin):
      * DumpRenderTree/wx/LayoutTestControllerWx.cpp:
      (LayoutTestController::syncLocalStorage):
      (LayoutTestController::observeStorageTrackerNotifications):
      (LayoutTestController::clearAllDatabases):
      (LayoutTestController::deleteAllLocalStorage):
      (LayoutTestController::originsWithLocalStorage):
      (LayoutTestController::deleteLocalStorageForOrigin):
      
      LayoutTests: 
      
      Patch by Anton D'Auria <adauria@apple.com> on 2011-03-11
      Add WebKit1 API to view and delete local storage
      https://bugs.webkit.org/show_bug.cgi?id=51878
      
      * platform/chromium/test_expectations.txt:
      * storage/domstorage/localstorage/storagetracker: Added.
      * storage/domstorage/localstorage/storagetracker/storage-tracker-1-prepare-expected.txt: Added.
      * storage/domstorage/localstorage/storagetracker/storage-tracker-1-prepare.html: Added.
      * storage/domstorage/localstorage/storagetracker/storage-tracker-2-create-expected.txt: Added.
      * storage/domstorage/localstorage/storagetracker/storage-tracker-2-create.html: Added.
      * storage/domstorage/localstorage/storagetracker/storage-tracker-3-delete-all-expected.txt: Added.
      * storage/domstorage/localstorage/storagetracker/storage-tracker-3-delete-all.html: Added.
      * storage/domstorage/localstorage/storagetracker/storage-tracker-4-create-expected.txt: Added.
      * storage/domstorage/localstorage/storagetracker/storage-tracker-4-create.html: Added.
      * storage/domstorage/localstorage/storagetracker/storage-tracker-5-delete-one-expected.txt: Added.
      * storage/domstorage/localstorage/storagetracker/storage-tracker-5-delete-one.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@80892 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c763e4c4
  9. 08 Jan, 2011 1 commit
  10. 19 Apr, 2010 1 commit
    • adachan@apple.com's avatar
      WebCore: https://bugs.webkit.org/show_bug.cgi?id=37717 · 19fb571c
      adachan@apple.com authored
      Allow clients concerned with memory consumption to set a quota on session storage
      since the memory used won't be released until the Page is destroyed.
      The default is noQuota, which matches the current behavior.
      
      Reviewed by Jeremy Orlow.
      
      * WebCore.base.exp: Export Settings::setSessionStorageQuota().
      * page/Page.cpp:
      (WebCore::Page::sessionStorage):
      * page/Settings.cpp:
      (WebCore::Settings::Settings):
      (WebCore::Settings::setSessionStorageQuota):
      * page/Settings.h:
      (WebCore::Settings::sessionStorageQuota):
      * storage/StorageNamespace.cpp:
      (WebCore::StorageNamespace::sessionStorageNamespace):
      * storage/StorageNamespace.h:
      * storage/StorageNamespaceImpl.cpp:
      (WebCore::StorageNamespaceImpl::sessionStorageNamespace):
      * storage/StorageNamespaceImpl.h:
      
      WebKit/chromium: https://bugs.webkit.org/show_bug.cgi?id=37717
      Changes needed now that StorageNamespaceImpl::sessionStorageNamespace() and
      StorageNamespace::sessionStorageNamespace() take in a quota parameter.
      
      Reviewed by Jeremy Orlow.
      
      * src/StorageNamespaceProxy.cpp:
      (WebCore::StorageNamespace::sessionStorageNamespace):
      * src/WebStorageNamespaceImpl.cpp:
      (WebKit::WebStorageNamespace::createSessionStorageNamespace):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@57822 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      19fb571c
  11. 13 Jan, 2010 2 commits
    • jorlow@chromium.org's avatar
      2010-01-13 Jeremy Orlow <jorlow@chromium.org> · e518e01d
      jorlow@chromium.org authored
              Reviewed by Darin Fisher.
      
              [Chromium] Move getSessionStorageNamespace from WebKitClient to WebViewClient
              https://bugs.webkit.org/show_bug.cgi?id=33492
      
              * public/WebKitClient.h:
              * public/WebViewClient.h:
              (WebKit::WebViewClient::createSessionStorageNamespace):
              * src/StorageNamespaceProxy.cpp:
              (WebCore::StorageNamespace::sessionStorageNamespace):
      2010-01-13  Jeremy Orlow  <jorlow@chromium.org>
      
              Reviewed by Darin Fisher.
      
              [Chromium] Move getSessionStorageNamespace from WebKitClient to WebViewClient
              https://bugs.webkit.org/show_bug.cgi?id=33492
      
              * page/Page.cpp:
              (WebCore::Page::sessionStorage):
              * storage/StorageNamespace.cpp:
              (WebCore::StorageNamespace::sessionStorageNamespace):
              * storage/StorageNamespace.h:
              (WebCore::StorageNamespace::~StorageNamespace):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@53210 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e518e01d
    • jorlow@chromium.org's avatar
      WebCore: No reviewer. More or less a build fix. My 53180 broke some · e38df662
      jorlow@chromium.org authored
      stuff on the Chromium port so I'm reverting.
      
      Patch by Jeremy Orlow <jorlow@chromium.org> on 2010-01-13
      * page/Page.cpp:
      (WebCore::Page::sessionStorage):
      * storage/StorageNamespace.cpp:
      (WebCore::StorageNamespace::sessionStorageNamespace):
      * storage/StorageNamespace.h:
      (WebCore::StorageNamespace::~StorageNamespace):
      
      WebKit/chromium: No reviewer.  More or less a build fix.  My 53180 broke some 
      stuff on the Chromium port so I'm reverting.
      
      Patch by Jeremy Orlow <jorlow@chromium.org> on 2010-01-13
      * public/WebKitClient.h:
      * public/WebViewClient.h:
      * src/StorageNamespaceProxy.cpp:
      (WebCore::StorageNamespace::sessionStorageNamespace):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@53194 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e38df662
  12. 12 Jan, 2010 1 commit
  13. 02 Oct, 2009 1 commit
    • jorlow@chromium.org's avatar
      2009-10-02 Jeremy Orlow <jorlow@chromium.org> · f9c57a32
      jorlow@chromium.org authored
              Reviewed by Dimitri Glazkov.
      
              Implement per-storage-area quotas for LocalStorage
              https://bugs.webkit.org/show_bug.cgi?id=29991
      
              I put 90% of the code in StorageMap since the decision to allow an update is
              closely tied to quota tracking.  The quota is set via a page's Settings class.
              Like with the local storage path and whether it's enabled, it's assumed that
              all pages in the same group will have the same settings.  The setting defaults
              to 5mb which is what the spec suggests, but it can easily be changed to
              anything else--including StorageMap::noQuota.  Any values in LocalStorage are
              grandfathered in regarudless of quota, so importItem only tracks (and will
              never block) imports.
      
              I believe this change is a good transition to more complex quota management.
              For example, if we wanted to track quotas in the SQLite DB, then we'd just add
              a function to the StorageMap that sets the quota.  This would be fine since all
              use of LocalStorage is blocked on the import completing, so you'd never hit a
              quota error in the mean time.  Also, if embedders wanted to ask the user
              whether to expand the quota whenever it's hit (before deciding whether or not
              to raise an exception), a callback via the chrome client should be fairly easy.
              That said, I think it's best to add these features in steps rather than one
              huge patch.  (Both of these are on my TODO list, btw.)
      
              Included is a layout test that verifies the behavior.  It assumes the default
              quota is 5mb (since that's what Settings defaults to).
      
              Test: storage/domstorage/localstorage/quota.html
      
              * page/PageGroup.cpp:
              (WebCore::PageGroup::localStorage):
              * page/Settings.cpp:
              (WebCore::Settings::Settings):
              (WebCore::Settings::setLocalStorageQuota):
              * page/Settings.h:
              (WebCore::Settings::localStorageQuota):
              * storage/StorageAreaImpl.cpp:
              (WebCore::StorageAreaImpl::create):
              (WebCore::StorageAreaImpl::StorageAreaImpl):
              (WebCore::StorageAreaImpl::setItem):
              (WebCore::StorageAreaImpl::clear):
              * storage/StorageAreaImpl.h:
              * storage/StorageMap.cpp:
              (WebCore::StorageMap::create):
              (WebCore::StorageMap::StorageMap):
              (WebCore::StorageMap::copy):
              (WebCore::StorageMap::setItem):
              (WebCore::StorageMap::removeItem):
              (WebCore::StorageMap::importItem):
              * storage/StorageMap.h:
              (WebCore::StorageMap::quota):
              * storage/StorageNamespace.cpp:
              (WebCore::StorageNamespace::localStorageNamespace):
              * storage/StorageNamespace.h:
              * storage/StorageNamespaceImpl.cpp:
              (WebCore::StorageNamespaceImpl::localStorageNamespace):
              (WebCore::StorageNamespaceImpl::sessionStorageNamespace):
              (WebCore::StorageNamespaceImpl::StorageNamespaceImpl):
              (WebCore::StorageNamespaceImpl::copy):
              (WebCore::StorageNamespaceImpl::storageArea):
              * storage/StorageNamespaceImpl.h:
      2009-10-02  Jeremy Orlow  <jorlow@chromium.org>
      
              Reviewed by Dimitri Glazkov.
      
              Implement per-storage-area quotas for LocalStorage
              https://bugs.webkit.org/show_bug.cgi?id=29991
      
              I put 90% of the code in StorageMap since the decision to allow an update is
              closely tied to quota tracking.  The quota is set via a page's Settings class. 
              Like with the local storage path and whether it's enabled, it's assumed that
              all pages in the same group will have the same settings.  The setting defaults
              to 5mb which is what the spec suggests, but it can easily be changed to
              anything else--including StorageMap::noQuota.  Any values in LocalStorage are
              grandfathered in regarudless of quota, so importItem only tracks (and will
              never block) imports.
      
              I believe this change is a good transition to more complex quota management. 
              For example, if we wanted to track quotas in the SQLite DB, then we'd just add
              a function to the StorageMap that sets the quota.  This would be fine since all
              use of LocalStorage is blocked on the import completing, so you'd never hit a
              quota error in the mean time.  Also, if embedders wanted to ask the user
              whether to expand the quota whenever it's hit (before deciding whether or not
              to raise an exception), a callback via the chrome client should be fairly easy.
              That said, I think it's best to add these features in steps rather than one
              huge patch.  (Both of these are on my TODO list, btw.)
      
              Included is a layout test that verifies the behavior.  It assumes the default
              quota is 5mb (since that's what Settings defaults to).
      
              * storage/domstorage/localstorage/quota-expected.txt: Added.
              * storage/domstorage/localstorage/quota.html: Added.
              * storage/domstorage/script-tests/quota.js: Added.
              (runTest):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@49040 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f9c57a32
  14. 24 Sep, 2009 1 commit
  15. 17 Aug, 2009 1 commit
  16. 15 Jul, 2009 1 commit
    • darin@chromium.org's avatar
      2009-07-15 Jeremy Orlow <jorlow@chromium.org> · 9f6f6a90
      darin@chromium.org authored
              Reviewed by Darin Fisher.
      
              Cleanup DOM Storage dependencies.
              https://bugs.webkit.org/show_bug.cgi?id=27180
      
              DOM Storage had several unnecessary (and probably unintended)
              dependencies.  This patch replaces many includes of header files with
              forward declaration of classes, making some destructors explicit, and
              taking some factories out of the header files.
      
              This will allow things like StorageAreaSync to take a StorageAreaImpl*
              (as it should) rather than a StorageArea* which previously weren't
              possible because the dependencies were such a tangled mess.
      
              * storage/LocalStorageTask.cpp:
              (WebCore::LocalStorageTask::~LocalStorageTask):
              * storage/LocalStorageTask.h:
              * storage/Storage.cpp:
              (WebCore::Storage::~Storage):
              * storage/Storage.h:
              * storage/StorageArea.cpp:
              * storage/StorageArea.h:
              * storage/StorageAreaImpl.cpp:
              * storage/StorageAreaImpl.h:
              * storage/StorageAreaSync.cpp:
              (WebCore::StorageAreaSync::~StorageAreaSync):
              * storage/StorageAreaSync.h:
              * storage/StorageEvent.cpp:
              (WebCore::StorageEvent::create):
              (WebCore::StorageEvent::StorageEvent):
              * storage/StorageEvent.h:
              * storage/StorageNamespace.h:
              * storage/StorageNamespaceImpl.cpp:
              * storage/StorageNamespaceImpl.h:
              * storage/StorageSyncManager.cpp:
              (WebCore::StorageSyncManager::~StorageSyncManager):
              * storage/StorageSyncManager.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@45954 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9f6f6a90
  17. 14 Jul, 2009 2 commits
    • bfulgham@webkit.org's avatar
      2009-07-14 Brent Fulgham <bfulgham@webkit.org> · 22f338f5
      bfulgham@webkit.org authored
              Revert http://trac.webkit.org/changeset/45864 after
              breaking of Windows build.
      
              * storage/LocalStorageTask.cpp:
              * storage/LocalStorageTask.h:
              * storage/Storage.cpp:
              * storage/Storage.h:
              * storage/StorageArea.cpp:
              * storage/StorageArea.h:
              * storage/StorageAreaImpl.cpp:
              * storage/StorageAreaImpl.h:
              * storage/StorageAreaSync.cpp:
              * storage/StorageAreaSync.h:
              * storage/StorageEvent.cpp:
              * storage/StorageEvent.h:
              (WebCore::StorageEvent::create):
              (WebCore::StorageEvent::StorageEvent):
              * storage/StorageNamespace.h:
              * storage/StorageNamespaceImpl.cpp:
              * storage/StorageNamespaceImpl.h:
              * storage/StorageSyncManager.cpp:
              * storage/StorageSyncManager.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@45866 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      22f338f5
    • bfulgham@webkit.org's avatar
      2009-07-11 Jeremy Orlow <jorlow@chromium.org> · 24e4bf0b
      bfulgham@webkit.org authored
              Reviewed by Darin Adler.
      
              Cleanup DOM Storage dependencies.
              https://bugs.webkit.org/show_bug.cgi?id=27180
      
              DOM Storage had several unnecessary (and probably unintended)
              dependencies.  This patch replaces many includes of header files with
              forward declaration of classes, making some destructors explicit, and
              taking some factories out of the header files.
      
              This will allow things like StorageAreaSync to take a StorageAreaImpl*
              (as it should) rather than a StorageArea* which previously weren't
              possible because the dependencies were such a tangled mess.
      
              * storage/LocalStorageTask.cpp:
              (WebCore::LocalStorageTask::~LocalStorageTask):
              * storage/LocalStorageTask.h:
              * storage/Storage.cpp:
              (WebCore::Storage::~Storage):
              * storage/Storage.h:
              * storage/StorageArea.cpp:
              * storage/StorageArea.h:
              * storage/StorageAreaImpl.cpp:
              * storage/StorageAreaImpl.h:
              * storage/StorageAreaSync.cpp:
              (WebCore::StorageAreaSync::~StorageAreaSync):
              * storage/StorageAreaSync.h:
              * storage/StorageEvent.cpp:
              (WebCore::StorageEvent::create):
              (WebCore::StorageEvent::StorageEvent):
              * storage/StorageEvent.h:
              * storage/StorageNamespace.h:
              * storage/StorageNamespaceImpl.cpp:
              * storage/StorageNamespaceImpl.h:
              * storage/StorageSyncManager.cpp:
              (WebCore::StorageSyncManager::~StorageSyncManager):
              * storage/StorageSyncManager.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@45864 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      24e4bf0b
  18. 08 Jul, 2009 3 commits
    • darin@chromium.org's avatar
      2009-07-08 Jeremy Orlow <jorlow@chromium.org> · aa0cdca8
      darin@chromium.org authored
              Reviewed by Darin Fisher.
      
              Split StorageArea and StorageNamespace into an interface and implementation.
              https://bugs.webkit.org/show_bug.cgi?id=27072
      
              I need to split StorageNamespace and StorageArea into an interface and
              implementation.  In a later patch, I'll implement a proxy interface
              that'll run inside the Chromium renderer process.
      
              Additionally, fix the alphabetical ordering of files I recently added
              in the project files.
      
              This is a continuation of other refactoring work:
              https://bugs.webkit.org/show_bug.cgi?id=25376
      
              * GNUmakefile.am:
              * WebCore.vcproj/WebCore.vcproj:
              * WebCore.xcodeproj/project.pbxproj:
              * WebCoreSources.bkl:
              * storage/StorageArea.cpp:
              (WebCore::StorageArea::create):
              * storage/StorageArea.h:
              (WebCore::StorageArea::~StorageArea):
              * storage/StorageAreaImpl.cpp: Copied from WebCore/storage/StorageArea.cpp.
              (WebCore::StorageAreaImpl::create):
              (WebCore::StorageAreaImpl::~StorageAreaImpl):
              (WebCore::StorageAreaImpl::StorageAreaImpl):
              (WebCore::StorageAreaImpl::copy):
              (WebCore::StorageAreaImpl::length):
              (WebCore::StorageAreaImpl::key):
              (WebCore::StorageAreaImpl::getItem):
              (WebCore::StorageAreaImpl::setItem):
              (WebCore::StorageAreaImpl::removeItem):
              (WebCore::StorageAreaImpl::clear):
              (WebCore::StorageAreaImpl::contains):
              (WebCore::StorageAreaImpl::importItem):
              (WebCore::StorageAreaImpl::securityOrigin):
              (WebCore::StorageAreaImpl::close):
              (WebCore::StorageAreaImpl::blockUntilImportComplete):
              (WebCore::StorageAreaImpl::dispatchStorageEvent):
              * storage/StorageAreaImpl.h: Copied from WebCore/storage/StorageArea.h.
              * storage/StorageAreaSync.h:
              * storage/StorageNamespace.cpp:
              (WebCore::StorageNamespace::localStorageNamespace):
              (WebCore::StorageNamespace::sessionStorageNamespace):
              * storage/StorageNamespace.h:
              (WebCore::StorageNamespace::~StorageNamespace):
              * storage/StorageNamespaceImpl.cpp: Copied from WebCore/storage/StorageNamespace.cpp.
              (WebCore::StorageNamespaceImpl::localStorageNamespace):
              (WebCore::StorageNamespaceImpl::sessionStorageNamespace):
              (WebCore::StorageNamespaceImpl::StorageNamespaceImpl):
              (WebCore::StorageNamespaceImpl::~StorageNamespaceImpl):
              (WebCore::StorageNamespaceImpl::copy):
              (WebCore::StorageNamespaceImpl::storageArea):
              (WebCore::StorageNamespaceImpl::close):
              * storage/StorageNamespaceImpl.h: Copied from WebCore/storage/StorageNamespace.h.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@45651 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      aa0cdca8
    • darin@chromium.org's avatar
      Reverting r45643 due to build bustage. · eed366ee
      darin@chromium.org authored
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@45644 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      eed366ee
    • darin@chromium.org's avatar
      2009-07-08 Jeremy Orlow <jorlow@chromium.org> · 0c62dd00
      darin@chromium.org authored
              Reviewed by Darin Fisher.
      
              Split StorageArea and StorageNamespace into an interface and implementation.
              https://bugs.webkit.org/show_bug.cgi?id=27072
      
              I need to split StorageNamespace and StorageArea into an interface and
              implementation.  In a later patch, I'll implement a proxy interface
              that'll run inside the Chromium renderer process.
      
              Additionally, fix the alphabetical ordering of files I recently added
              in the project files.
      
              This is a continuation of other refactoring work:
              https://bugs.webkit.org/show_bug.cgi?id=25376
      
              * WebCore.xcodeproj/project.pbxproj:
              * storage/StorageArea.cpp:
              (WebCore::StorageArea::create):
              (WebCore::StorageArea::~StorageArea):
              * storage/StorageArea.h:
              * storage/StorageAreaImpl.cpp: Copied from WebCore/storage/StorageArea.cpp.
              (WebCore::StorageAreaImpl::create):
              (WebCore::StorageAreaImpl::~StorageAreaImpl):
              (WebCore::StorageAreaImpl::StorageAreaImpl):
              (WebCore::StorageAreaImpl::copy):
              (WebCore::StorageAreaImpl::length):
              (WebCore::StorageAreaImpl::key):
              (WebCore::StorageAreaImpl::getItem):
              (WebCore::StorageAreaImpl::setItem):
              (WebCore::StorageAreaImpl::removeItem):
              (WebCore::StorageAreaImpl::clear):
              (WebCore::StorageAreaImpl::contains):
              (WebCore::StorageAreaImpl::importItem):
              (WebCore::StorageAreaImpl::securityOrigin):
              (WebCore::StorageAreaImpl::close):
              (WebCore::StorageAreaImpl::blockUntilImportComplete):
              (WebCore::StorageAreaImpl::dispatchStorageEvent):
              * storage/StorageAreaImpl.h: Copied from WebCore/storage/StorageArea.h.
              * storage/StorageAreaSync.cpp:
              (WebCore::StorageAreaSync::create):
              (WebCore::StorageAreaSync::StorageAreaSync):
              * storage/StorageAreaSync.h:
              * storage/StorageNamespace.cpp:
              (WebCore::StorageNamespace::localStorageNamespace):
              (WebCore::StorageNamespace::sessionStorageNamespace):
              (WebCore::StorageNamespace::~StorageNamespace):
              * storage/StorageNamespace.h:
              * storage/StorageNamespaceImpl.cpp: Copied from WebCore/storage/StorageNamespace.cpp.
              (WebCore::StorageNamespaceImpl::localStorageNamespace):
              (WebCore::StorageNamespaceImpl::sessionStorageNamespace):
              (WebCore::StorageNamespaceImpl::StorageNamespaceImpl):
              (WebCore::StorageNamespaceImpl::~StorageNamespaceImpl):
              (WebCore::StorageNamespaceImpl::copy):
              (WebCore::StorageNamespaceImpl::storageArea):
              (WebCore::StorageNamespaceImpl::close):
              * storage/StorageNamespaceImpl.h: Copied from WebCore/storage/StorageNamespace.h.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@45643 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0c62dd00
  19. 26 Jun, 2009 1 commit
    • dglazkov@chromium.org's avatar
      2009-06-26 Jeremy Orlow <jorlow@chromium.org> · 5626dd64
      dglazkov@chromium.org authored
              Reviewed by Darin Fisher.
      
              https://bugs.webkit.org/show_bug.cgi?id=26732
      
              For the final step of https://bugs.webkit.org/show_bug.cgi?id=25376,
              combine LocalStorage and SessionStorage into StorageNamespace. The
              synching code (for LocalStorage) has already been removed, so these
              classes are now very similar.  All they do is essentially contain a
              logical grouping of origins that are attached to specific contexts
              (be it PageGroups for LocalStorage and Page for SessionStorage).
      
              * GNUmakefile.am:
              * WebCore.vcproj/WebCore.vcproj:
              * WebCore.xcodeproj/project.pbxproj:
              * WebCoreSources.bkl:
              * page/Chrome.cpp:
              (WebCore::Chrome::createWindow):
              * page/DOMWindow.cpp:
              (WebCore::DOMWindow::localStorage):
              * page/DOMWindow.h:
              * page/Page.cpp:
              (WebCore::Page::sessionStorage):
              (WebCore::Page::setSessionStorage):
              * page/Page.h:
              * page/PageGroup.cpp:
              (WebCore::PageGroup::localStorage):
              * page/PageGroup.h:
              * storage/LocalStorage.cpp: Removed.
              * storage/LocalStorage.h: Removed.
              * storage/LocalStorageTask.cpp:
              * storage/LocalStorageThread.cpp:
              * storage/SessionStorage.cpp: Removed.
              * storage/SessionStorage.h: Removed.
              * storage/StorageArea.cpp:
              (WebCore::StorageArea::create):
              (WebCore::StorageArea::StorageArea):
              (WebCore::StorageArea::copy):
              (WebCore::StorageArea::length):
              (WebCore::StorageArea::key):
              (WebCore::StorageArea::getItem):
              (WebCore::StorageArea::setItem):
              (WebCore::StorageArea::removeItem):
              (WebCore::StorageArea::clear):
              (WebCore::StorageArea::contains):
              (WebCore::StorageArea::importItem):
              (WebCore::StorageArea::close):
              (WebCore::StorageArea::dispatchStorageEvent):
              * storage/StorageArea.h:
              (WebCore::):
              * storage/StorageAreaSync.cpp:
              (WebCore::StorageAreaSync::scheduleFinalSync):
              * storage/StorageNamespace.cpp: Copied from WebCore/storage/LocalStorage.cpp.
              (WebCore::localStorageNamespaceMap):
              (WebCore::StorageNamespace::localStorageNamespace):
              (WebCore::StorageNamespace::sessionStorageNamespace):
              (WebCore::StorageNamespace::StorageNamespace):
              (WebCore::StorageNamespace::~StorageNamespace):
              (WebCore::StorageNamespace::copy):
              (WebCore::StorageNamespace::storageArea):
              (WebCore::StorageNamespace::close):
              * storage/StorageNamespace.h: Copied from WebCore/storage/LocalStorage.h.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@45290 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5626dd64
  20. 25 Jun, 2009 3 commits
    • darin@chromium.org's avatar
      2009-06-25 Jeremy Orlow <jorlow@chromium.org> · c8e3b9e2
      darin@chromium.org authored
              Reviewed by Darin Fisher.
      
              https://bugs.webkit.org/show_bug.cgi?id=26698
      
              Combined LocalStorageArea and SessionStorageArea into StorageArea since
              (after my other refactorings) there are no longer substantial
              differences between the two.
      
              * GNUmakefile.am:
              * WebCore.vcproj/WebCore.vcproj:
              * WebCore.xcodeproj/project.pbxproj:
              * WebCoreSources.bkl:
              * storage/LocalStorage.cpp:
              (WebCore::LocalStorage::storageArea):
              * storage/LocalStorage.h:
              * storage/LocalStorageArea.cpp: Removed.
              * storage/LocalStorageArea.h: Removed.
              * storage/SessionStorage.cpp:
              (WebCore::SessionStorage::copy):
              (WebCore::SessionStorage::storageArea):
              * storage/SessionStorage.h:
              * storage/SessionStorageArea.cpp: Removed.
              * storage/SessionStorageArea.h: Removed.
              * storage/StorageArea.cpp:
              (WebCore::StorageArea::createLocalStorage):
              (WebCore::StorageArea::StorageArea):
              (WebCore::StorageArea::createSessionStorage):
              (WebCore::StorageArea::copy):
              (WebCore::StorageArea::setItem):
              (WebCore::StorageArea::removeItem):
              (WebCore::StorageArea::clear):
              (WebCore::StorageArea::scheduleFinalSync):
              (WebCore::StorageArea::blockUntilImportComplete):
              (WebCore::StorageArea::dispatchStorageEvent):
              * storage/StorageArea.h:
              * storage/StorageAreaSync.cpp:
              (WebCore::StorageAreaSync::StorageAreaSync):
              (WebCore::StorageAreaSync::scheduleFinalSync):
              (WebCore::StorageAreaSync::syncTimerFired):
              (WebCore::StorageAreaSync::performImport):
              * storage/StorageAreaSync.h:
              * storage/StorageSyncManager.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@45183 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c8e3b9e2
    • eric@webkit.org's avatar
      2009-06-25 Eric Seidel <eric@webkit.org> · 9f168ac6
      eric@webkit.org authored
              No review, reverting r45144 only.
      
              Roll out r45144 after 18 test failures appeared on the bots.
              https://bugs.webkit.org/show_bug.cgi?id=26698
      
              * GNUmakefile.am:
              * WebCore.vcproj/WebCore.vcproj:
              * WebCore.xcodeproj/project.pbxproj:
              * WebCoreSources.bkl:
              * storage/LocalStorage.cpp:
              (WebCore::LocalStorage::storageArea):
              * storage/LocalStorage.h:
              * storage/SessionStorage.cpp:
              (WebCore::SessionStorage::copy):
              (WebCore::SessionStorage::storageArea):
              * storage/SessionStorage.h:
              * storage/StorageArea.cpp:
              (WebCore::StorageArea::StorageArea):
              (WebCore::StorageArea::~StorageArea):
              (WebCore::StorageArea::setItem):
              (WebCore::StorageArea::removeItem):
              (WebCore::StorageArea::clear):
              * storage/StorageArea.h:
              * storage/StorageAreaSync.cpp:
              (WebCore::StorageAreaSync::StorageAreaSync):
              (WebCore::StorageAreaSync::scheduleFinalSync):
              (WebCore::StorageAreaSync::syncTimerFired):
              (WebCore::StorageAreaSync::performImport):
              * storage/StorageAreaSync.h:
              * storage/StorageSyncManager.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@45162 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9f168ac6
    • darin@chromium.org's avatar
      2009-06-24 Jeremy Orlow <jorlow@chromium.org> · 89dfd160
      darin@chromium.org authored
              Reviewed by Darin Fisher.
      
              https://bugs.webkit.org/show_bug.cgi?id=26698
      
              Combined LocalStorageArea and SessionStorageArea into StorageArea since
              (after my other refactorings) there are no longer substantial
              differences between the two.
      
              * GNUmakefile.am:
              * WebCore.vcproj/WebCore.vcproj:
              * WebCore.xcodeproj/project.pbxproj:
              * WebCoreSources.bkl:
              * storage/LocalStorage.cpp:
              (WebCore::LocalStorage::storageArea):
              * storage/LocalStorage.h:
              * storage/LocalStorageArea.cpp: Removed.
              * storage/LocalStorageArea.h: Removed.
              * storage/SessionStorage.cpp:
              (WebCore::SessionStorage::copy):
              (WebCore::SessionStorage::storageArea):
              * storage/SessionStorage.h:
              * storage/SessionStorageArea.cpp: Removed.
              * storage/SessionStorageArea.h: Removed.
              * storage/StorageArea.cpp:
              (WebCore::StorageArea::createLocalStorage):
              (WebCore::StorageArea::StorageArea):
              (WebCore::StorageArea::createSessionStorage):
              (WebCore::StorageArea::copy):
              (WebCore::StorageArea::setItem):
              (WebCore::StorageArea::removeItem):
              (WebCore::StorageArea::clear):
              (WebCore::StorageArea::scheduleFinalSync):
              (WebCore::StorageArea::blockUntilImportComplete):
              (WebCore::StorageArea::dispatchStorageEvent):
              * storage/StorageArea.h:
              * storage/StorageAreaSync.cpp:
              (WebCore::StorageAreaSync::StorageAreaSync):
              (WebCore::StorageAreaSync::scheduleFinalSync):
              (WebCore::StorageAreaSync::syncTimerFired):
              (WebCore::StorageAreaSync::performImport):
              * storage/StorageAreaSync.h:
              * storage/StorageSyncManager.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@45144 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      89dfd160
  21. 22 Jun, 2009 1 commit
    • darin@chromium.org's avatar
      2009-06-22 Jeremy Orlow <jorlow@chromium.org> · 893d9f35
      darin@chromium.org authored
              Reviewed by Darin Fisher.
      
              First step in https://bugs.webkit.org/show_bug.cgi?id=25376
      
              Add StorageSyncManager.cpp/h
      
              * GNUmakefile.am:
              * WebCore.pro:
              * WebCore.vcproj/WebCore.vcproj:
              * WebCore.xcodeproj/project.pbxproj:
              * WebCoreSources.bkl:
      
              In preparation for combining SessionStorage and LocalStorage into a
              single StorageManager, move the syncing bits out of LocalStorage and
              into its own class.
      
              The next step is to combine LocalStorageArea and SessionStorageArea
              into one.  Then SessionStorage and LocalStorage can be combined.
      
              Note that combining them will cut down on code paths that must be
              proxied, eliminate virtual dispatch, and allow Chromium to (eventually)
              write historical sessionStorage to disk when memory is getting tight.
      
              Also remove a couple bits of cruft including code for quotas which is
              unnecessary (since a meta-data db is unnecessary since you can just
              count bytes as you read the local storage databases into memory).
      
              * storage/LocalStorage.cpp:
              (WebCore::LocalStorage::LocalStorage):
              (WebCore::LocalStorage::storageArea):
              (WebCore::LocalStorage::close):
              * storage/LocalStorage.h:
              * storage/LocalStorageArea.cpp:
              (WebCore::LocalStorageArea::LocalStorageArea):
              (WebCore::LocalStorageArea::scheduleFinalSync):
              (WebCore::LocalStorageArea::syncTimerFired):
              (WebCore::LocalStorageArea::performImport):
              * storage/LocalStorageArea.h:
              (WebCore::LocalStorageArea::create):
              * storage/LocalStorageTask.cpp:
              (WebCore::LocalStorageTask::performTask):
              * storage/LocalStorageTask.h:
              (WebCore::LocalStorageTask::):
              (WebCore::LocalStorageTask::createImport):
              * storage/LocalStorageThread.cpp:
              * storage/LocalStorageThread.h:
              * storage/SessionStorage.h:
              * storage/StorageSyncManager.cpp: Copied from WebCore/storage/LocalStorage.cpp.
              (WebCore::StorageSyncManager::create):
              (WebCore::StorageSyncManager::StorageSyncManager):
              (WebCore::StorageSyncManager::fullDatabaseFilename):
              (WebCore::StorageSyncManager::close):
              (WebCore::StorageSyncManager::scheduleImport):
              (WebCore::StorageSyncManager::scheduleSync):
              * storage/StorageSyncManager.h: Copied from WebCore/storage/LocalStorage.h.
              (WebCore::):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44959 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      893d9f35
  22. 13 Jun, 2009 1 commit
    • abarth@webkit.org's avatar
      2009-06-13 Ben Murdoch <benm@google.com> · 1095f23d
      abarth@webkit.org authored
              Reviewed by Eric Seidel.  Landed by Adam Barth.
      
              https://bugs.webkit.org/show_bug.cgi?id=26189
      
              Add ENABLE(DOM_STORAGE) guards to the dom storage source files.
      
              * storage/LocalStorage.cpp: Add ENABLE(DOM_STORAGE) guards to the file.
              * storage/LocalStorage.h: Ditto
              * storage/LocalStorageArea.cpp: Ditto
              * storage/LocalStorageArea.h: Ditto
              * storage/LocalStorageTask.cpp: Ditto
              * storage/LocalStorageTask.h: Ditto
              * storage/LocalStorageThread.cpp: Ditto
              * storage/LocalStorageThread.h: Ditto
              * storage/SessionStorage.cpp: Ditto
              * storage/SessionStorage.h: Ditto
              * storage/SessionStorageArea.cpp: Ditto
              * storage/SessionStorageArea.h: Ditto
              * storage/Storage.cpp: Ditto
              * storage/Storage.h: Ditto
              * storage/StorageArea.cpp: Ditto
              * storage/StorageArea.h: Ditto
              * storage/StorageEvent.cpp: Ditto
              * storage/StorageEvent.h: Ditto
              * storage/StorageMap.cpp: Ditto
              * storage/StorageMap.h: Ditto
              * storage/StorageEvent.idl: Add Conditional=DOM_STORAGE attribute.
              * storage/Storage.idl: Ditto
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44662 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1095f23d
  23. 12 Jan, 2009 1 commit
    • darin@apple.com's avatar
      2009-01-11 Darin Adler <darin@apple.com> · faced26e
      darin@apple.com authored
              Reviewed by Oliver Hunt.
      
              Bug 23102: turn on unused parameter warnings in WebCore
              https://bugs.webkit.org/show_bug.cgi?id=23102
      
              Fourth step: Remove arguments entirely in the many cases where they are not
              needed at all. This step is a little less mechanical than the earlier ones.
      
              * dom/DOMImplementation.cpp:
              (WebCore::DOMImplementation::isXMLMIMEType): Pass TextCaseSensitive when creating
              the regular expression, since we already specify a-zA-Z in our expression.
      
              * dom/Document.cpp:
              (WebCore::Document::databaseThread): Don't pass in the document when creating
              a DatabaseThread.
      
              * dom/Element.cpp:
              (WebCore::Element::createRareData): Don't pass the element when creating an
              ElementRareData.
              (WebCore::Element::detach): Don't pass the element when calling resetComputedStyle.
              (WebCore::Element::recalcStyle): Ditto.
      
              * dom/ElementRareData.h: Remove the unused Element* from the constructor and
              the resetComputedStyle function.
      
              * dom/EventTargetNode.cpp:
              (WebCore::EventTargetNode::dispatchEvent): Don't pass ec to dispatchGenericEvent.
              (WebCore::EventTargetNode::dispatchGenericEvent): Remove the unused ec argument.
              (WebCore::EventTargetNode::dispatchWindowEvent): Don't pass ec to dispatchGenericEvent.
              * dom/EventTargetNode.h: Remove the ExceptionCode& argument form disaptchGenericEvent.
      
              * editing/ApplyStyleCommand.cpp: Remove the empty removeBlockStyle function.
              (WebCore::ApplyStyleCommand::pushDownTextDecorationStyleAroundNode): Remove the unused
              start and end arguments.
              (WebCore::ApplyStyleCommand::pushDownTextDecorationStyleAtBoundaries): Don't pass start
              and end to pushDownTextDecorationStyleAroundNode.
      
              * editing/ApplyStyleCommand.h: Remove the empty removeBlockStyle function. Removed the
              unused start and end arguments from pushDownTextDecorationStyleAroundNode.
      
              * editing/htmlediting.cpp: Removed include of unused RegularExpression.h header.
      
              * html/HTMLTokenizer.cpp:
              (WebCore::Token::addAttribute): Removed unused Document* argument.
              (WebCore::HTMLTokenizer::parseTag): Don't pass document to addAttribute.
      
              * html/HTMLTokenizer.h: Removed unused Document* argument to to addAttribute.
      
              * page/DOMWindow.cpp:
              (WebCore::DOMWindow::localStorage): Don't pass the frame to storageArea.
      
              * page/DragController.cpp:
              (WebCore::DragController::dragIsMove): Removed unused DragData argument.
              (WebCore::DragController::performDrag): Call concludeEditDrag rather than
              concludeDrag.
              (WebCore::DragController::tryDocumentDrag): Don't pass dragData to dragIsMove.
              (WebCore::DragController::concludeEditDrag): Renamed to make it clear this
              should only be called for edit drags. Removed the action mask argument. Also
              changed dragIsMove call sites to not pass dragData.
      
              * page/DragController.h: Updated for above changes and tweaked comment format.
      
              * page/Frame.cpp:
              (WebCore::createRegExpForLabels): Pass TextCaseSensitive and TextCaseInsensitive
              when creating regular expressions for clarity. Call match instead of search,
              since both do the same thing except for with negative start offsets, and none
              used here are negative.
              (WebCore::Frame::matchLabelsAgainstElement): Ditto.
      
              * page/Page.h: Moved TextCaseSensitivity from here to StringImpl.h in platform.
      
              * page/mac/AccessibilityObjectWrapper.mm:
              (AXAttributeStringSetHeadingLevel): Removed unused object argument.
              (AXAttributedStringAppendText): Ditto.
              (-[AccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:]): Ditto.
      
              * page/mac/FrameMac.mm:
              (WebCore::regExpForLabels): Pass TextCaseSensitive and TextCaseInsensitive
              when creating regular expressions for clarity. Call match instead of search,
              since both do the same thing except for with negative start offsets, and none
              used here are negative.
              (WebCore::Frame::matchLabelsAgainstElement): Ditto.
      
              * platform/graphics/SegmentedFontData.cpp:
              (WebCore::SegmentedFontData::containsCharacter): Added.
              (WebCore::SegmentedFontData::containsCharacters): Updated to check all characters
              instead of just the first one, using containsCharacter.
      
              * platform/graphics/SegmentedFontData.h: Made more members private.
              Added containsCharacter function member.
      
              * platform/mac/DragImageMac.mm:
              (WebCore::dragImageSize): Changed to use RetainPtr<NSImage> directly instead of
              DragImageRef for clarity, since this is platform-specific code.
              (WebCore::deleteDragImage): Ditto. Also remove argument name to get rid of unused
              variable warning.
              (WebCore::scaleDragImage): Ditto.
              (WebCore::dissolveDragImageToFraction): Ditto.
              (WebCore::createDragImageFromImage): Ditto.
              (WebCore::createDragImageIconForCachedImage): Ditto.
      
              * platform/mac/WebFontCache.mm:
              (acceptableChoice): Removed the unused weight-related arguments.
              (betterChoice): Ditto.
              (+[WebFontCache internalFontWithFamily:traits:weight:size:]): Ditto.
      
              * platform/posix/FileSystemPOSIX.cpp: Removed the implementation of listDirectory
              because we'd rather get a link error rather than a runtime error if we use it
              for anything, and right now it's not used.
      
              * platform/text/RegularExpression.cpp: Removed unused private data,
              including pattern, lastMatchString, lastMatchOffsets, lastMatchCount,
              and lastMatchPos. Made the RegularExpression::Private::regex be private
              and use an accessor function to get at it.
              (WebCore::RegularExpression::RegularExpression): Removed the const char* version
              of the constructor because it's not any more efficient. Changed the boolean
              constructor argument to use TextCaseSensitivity instead to make it less likely
              we'll use it wrong.
              (WebCore::RegularExpression::operator=): Since the only member is a single RefPtr,
              just use plain old assignment on it. The only reason we do this instead of using
              the compiler generated assignment operator is that we want the Private structure
              to be internal to the .cpp file.
              (WebCore::RegularExpression::match): Added a null check so we won't crash if
              we fail to compile the regular expression. Removed the code to handle multiple
              match strings, since that was unused.
      
              * platform/text/RegularExpression.h: Changed the case sensitivity argument to use
              TextCaseSensitivity and not have a default value. Removed the default constructor,
              and the pattern, match, and pos functions.
      
              * platform/text/StringImpl.h: Moved the TextCaseSensitivity enum here from
              Page.h, because we should eventually use it in all the places where we have
              an argument to control case sensitivity, starting with the functions in this
              class.
      
              * platform/text/mac/ShapeArabic.c:
              (shapeUnicode): Removed the unused options and pErrorCode arguments. Even though
              this is code borrowed from ICU, this seems like a simple safe change to make.
              (shapeArabic): Don't pass options or pErrorCode in to shapeUnicode.
      
              * rendering/RenderPath.cpp:
              (WebCore::RenderPath::RenderPath): Removed the unused style argument.
              Also removed the type check. The argument already has the correct type,
              so it's not helpful to upcast it and then check its type again, unless
              we have some reason to believe the type is not reliable. And we don't.
      
              * rendering/RenderPath.h: Removed the RenderStyle* argument to the
              constructor. Also removed the explicit declaration of the destructor.
              It's not helpful or needed.
      
              * rendering/RenderSVGInlineText.cpp:
              (WebCore::RenderSVGInlineText::localCaretRect): Updated the comment here to
              make it clear that just returning an empty rect is not a good implementation.
              Removed the argument names to get rid of the warning.
      
              * rendering/RenderTreeAsText.cpp:
              (WebCore::printBorderStyle): Removed the unused RenderObject argument.
              (WebCore::operator<<): Updated for the change to printBorderStyle function.
      
              * storage/DatabaseThread.cpp:
              (WebCore::DatabaseThread::DatabaseThread): Removed the unused document argument.
              * storage/DatabaseThread.h: Ditto.
      
              * storage/LocalStorage.cpp:
              (WebCore::LocalStorage::storageArea): Removed the unused Frame* argument.
              * storage/LocalStorage.h: Ditto.
      
              * svg/SVGElement.cpp:
              (WebCore::SVGElement::sendSVGLoadEventIfPossible): Don't pass an exception
              code location to dispatchGenericEvent.
              * svg/SVGElementInstance.cpp:
              (WebCore::SVGElementInstance::dispatchEvent): Ditto.
      
              * svg/SVGStyledTransformableElement.cpp: Removed include of unused RegularExpression.h.
              (WebCore::SVGStyledTransformableElement::createRenderer): Don't pass style in to
              the RenderPath constructor.
      
              * svg/SVGTransformable.cpp: Removed include of unused RegularExpression.h.
      
              * xml/XSLTProcessor.cpp:
              (WebCore::createFragmentFromSource): Removed unused sourceNode argument.
              (WebCore::XSLTProcessor::transformToFragment): Don't pass sourceNode to createFragmentFromSource.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39818 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      faced26e
  24. 06 Aug, 2008 1 commit
    • beidson@apple.com's avatar
      2008-08-06 Brady Eidson <beidson@apple.com> · df1fd513
      beidson@apple.com authored
              Reviewed by MitzPettel
      
              <rdar://problem/6078543> - Many LocalStorageThreads may be started
      
              The original decision to key LocalStorage sets to PageGroups was a poor one.
      
              It seems a much better solution is to key them to the actual path of on-disk storage,
              which also solves all of the avenues that could lead to a boundless number of threads.
      
              In this patch, I am not attempting to completely sever the attachment of LocalStorage
              to PageGroups as that would require a more substantial re-working of the lifetime
              between pages, groups, and local storage threads.
      
              * page/PageGroup.cpp:
              (WebCore::PageGroup::addPage):
      
              * storage/LocalStorage.cpp:
              (WebCore::localStorageMap):  Map paths to LocalStorage objects here.
              (WebCore::LocalStorage::localStorage): Return the shared LocalStorage object for this path,
                or create a new one if it doesn't yet exist.
              (WebCore::LocalStorage::LocalStorage):
              (WebCore::LocalStorage::~LocalStorage):  Add to remove the path->LocalStorage mapping
              * storage/LocalStorage.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@35614 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      df1fd513
  25. 28 May, 2008 1 commit
    • beidson@apple.com's avatar
      2008-05-28 Brady Eidson <beidson@apple.com> · 1501d1c5
      beidson@apple.com authored
              Reviewed by Adam
      
              Fix hang I introduced to WebKit clients without their LocalStorage paths set
              Such as DRT...
      
              * storage/LocalStorage.cpp:
              (WebCore::LocalStorage::scheduleImport): Return a bool, namely to signify
                whether or not there is a LocalStorageThread to schedule the import on.
              * storage/LocalStorage.h:
      
              * storage/LocalStorageArea.cpp:
              (WebCore::LocalStorageArea::LocalStorageArea): If the scheduleImport failed,
                mark the imported flag as true so the LocalStorageArea doesn't wait around
                locking the main thread.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34186 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1501d1c5
  26. 06 May, 2008 4 commits
    • beidson@apple.com's avatar
      2008-05-06 Brady Eidson <beidson@apple.com> · 5eb92b21
      beidson@apple.com authored
              Reviewed by Sam Weinig
      
              Fix a few bugs with the final sync'ing of LocalStorageAreas when the thread is shut down.
              1 - A sync task actually needs to be scheduled for each LocalStorageArea when the shut down occurs.
              2 - Pending sync timers all need to be cancelled.
      
              * storage/LocalStorage.cpp:
              (WebCore::LocalStorage::storageArea):
              (WebCore::LocalStorage::close): Tell each LocalStorageArea to schedule it's final sync before scheduling
                thread termination.
              * storage/LocalStorage.h:  Change the map to be of LocalStorageAreas instead of StorageAreas
      
              * storage/LocalStorageArea.cpp:
              (WebCore::LocalStorageArea::LocalStorageArea):
              (WebCore::LocalStorageArea::~LocalStorageArea): ASSERT the timer has been cancelled, but make SURE it is
                in release builds.
              (WebCore::LocalStorageArea::scheduleFinalSync): Cancel the sync timer, schedule the final sync, and set the
                "final sync scheduled" flag
              (WebCore::LocalStorageArea::scheduleItemForSync): ASSERT that the final sync hasn't already been scheduled
              (WebCore::LocalStorageArea::scheduleClear): Ditto
              * storage/LocalStorageArea.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@32942 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5eb92b21
    • beidson@apple.com's avatar
      2008-05-06 Brady Eidson <beidson@apple.com> · 826f416a
      beidson@apple.com authored
              Reviewed by Darin, Sam Weinig, and Anders
      
              Preparation for upcoming work making LocalStorage persistent.
      
              The final step before code that actually does storage and retrieval of LocalStorage items.
      
              The LocalStorage set is responsible for controlling the path and filenames that individual
              LocalStorageAreas will use for their persistent store.  This adds the ability to return that
              filename.
      
              Also, add the scheduling methods that LocalStorageArea will use for importing and syncing 
              it's persistent items.
      
              * storage/LocalStorage.cpp:
              (WebCore::LocalStorage::storageArea):  Add some comments re: the future direction of this
                method once we actually do quota tracking.
              (WebCore::LocalStorage::fullDatabaseFilename):
              (WebCore::LocalStorage::scheduleImport):
              (WebCore::LocalStorage::scheduleSync):
              * storage/LocalStorage.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@32928 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      826f416a
    • beidson@apple.com's avatar
      2008-05-06 Brady Eidson <beidson@apple.com> · 7783de5a
      beidson@apple.com authored
              Reviewed by Darin Adler
      
              Preparation for upcoming work making LocalStorage persistent.
      
              Writing persistent values for LocalStorage will take place on a background thread.
              Here is that background thread, as well as most of the hooks that will be utilized to
              make the whole song and dance work.
      
              The thread itself is very simple and MessageQueue based.  LocalStorageTasks are what 
              mark the work that needs to be done and come in 5 flavors:  Import and Sync a LocalStorage set,
              Import and Sync a LocalStorageArea, and terminate the thread.
      
              This patch accomplished 2 things:
              
              1 - Each PageGroup has its own LocalStorage set.  Upon its creation its LocalStorageThread is 
                  created and started.
      
              2 - At application shutdown, each thread is synchronously terminated.
      
              What happens between steps 1 and 2 will come later.
      
              * GNUmakefile.am:
              * WebCore.pro:
              * WebCore.vcproj/WebCore.vcproj:
              * WebCore.xcodeproj/project.pbxproj:
              * WebCoreSources.bkl:
      
              * storage/LocalStorage.cpp: Add some threading ASSERTs to make it clear which thread each
                method is meant to be called from.
              (WebCore::LocalStorage::LocalStorage):
              (WebCore::LocalStorage::storageArea):
              (WebCore::LocalStorage::performImport): Placeholder for importing known origins and quotas
              (WebCore::LocalStorage::performSync): Placeholder for writing out updated origins and quotas
              (WebCore::LocalStorage::close): Synchronously terminate the thread.
              * storage/LocalStorage.h:
      
              * storage/LocalStorageArea.cpp: Add some threading ASSERTs to make it clear which thread each
                method is meant to be called from.
              (WebCore::LocalStorageArea::itemChanged):
              (WebCore::LocalStorageArea::itemRemoved):
              (WebCore::LocalStorageArea::areaCleared):
              (WebCore::LocalStorageArea::dispatchStorageEvent):
              (WebCore::LocalStorageArea::performImport): Placeholder for importing all items for this 
                LocalStorageArea to prime the page before the items are needed
              (WebCore::LocalStorageArea::performSync): Placeholder for writing out dirty items to disk
              * storage/LocalStorageArea.h:
      
              * storage/LocalStorageTask.cpp: Added.
              (WebCore::LocalStorageTask::LocalStorageTask):
              (WebCore::LocalStorageTask::performTask):
              * storage/LocalStorageTask.h: Added.
              (WebCore::LocalStorageTask::):
              (WebCore::LocalStorageTask::createImport):
              (WebCore::LocalStorageTask::createSync):
              (WebCore::LocalStorageTask::createTerminate):
      
              * storage/LocalStorageThread.cpp: Added.
              (WebCore::LocalStorageThread::create):
              (WebCore::LocalStorageThread::LocalStorageThread):
              (WebCore::LocalStorageThread::start):
              (WebCore::LocalStorageThread::localStorageThreadStart):
              (WebCore::LocalStorageThread::localStorageThread):
              (WebCore::LocalStorageThread::scheduleImport):
              (WebCore::LocalStorageThread::scheduleSync):
              (WebCore::LocalStorageThread::terminate): 
              (WebCore::LocalStorageThread::performTerminate):
              * storage/LocalStorageThread.h: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@32918 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7783de5a
    • beidson@apple.com's avatar
      WebCore: · 18ed1cdf
      beidson@apple.com authored
      2008-05-06  Brady Eidson  <beidson@apple.com>
      
              Reviewed by Darin Adler
      
              Preparation for upcoming work making LocalStorage persistent.
      
              When the application terminates, all pending local storage writes need to be
              sync'ed out to disk.
              This works n combination with platform specific code in WebKit that calls it.
      
              * WebCore.base.exp:
      
              * page/PageGroup.cpp:
              (WebCore::PageGroup::closeLocalStorage): Close all open LocalStorage objects
              * page/PageGroup.h:
      
              * storage/LocalStorage.cpp:
              (WebCore::LocalStorage::close): Placeholder for what will sync and terminate the
                local storage thread in the future.
              * storage/LocalStorage.h:
      
      WebKit/mac:
      
      2008-05-06  Brady Eidson  <beidson@apple.com>
      
              Reviewed by Darin Adler
      
              Preparation for upcoming work making LocalStorage persistent.
      
              When the application terminates, all LocalStorage areas must be sync'ed out to disk first.
      
              * WebView/WebView.mm:
              (+[WebView _applicationWillTerminate]):  Close all LocalStorage areas before quitting.
      
      WebKit/win:
      
      2008-05-06  Brady Eidson  <beidson@apple.com>
      
              Reviewed by Darin Adler
      
              Preparation for upcoming work making LocalStorage persistent.
      
              When the application terminates, all LocalStorage areas must be sync'ed out to disk first.
      
              * WebKitDLL.cpp:
              (shutDownWebKit): Close all LocalStorage areas before quitting.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@32906 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      18ed1cdf
  27. 05 May, 2008 1 commit
    • beidson@apple.com's avatar
      2008-05-05 Brady Eidson <beidson@apple.com> · 06c8e74b
      beidson@apple.com authored
              Reviewed by Mitz Pettel RTL
      
              Preparation for upcoming work making LocalStorage persistent.
      
              - Create the LocalStorage object for a PageGroup the moment the first Page is added to it
                The Settings of the first Page define what persistent path the LocalStorage will use
              - Add a Frame argument for the LocalStorageArea request - this will allow a client object
                to be queried before the LocalStorageArea is established
      
              * page/DOMWindow.cpp:
              (WebCore::DOMWindow::localStorage):
      
              * page/PageGroup.cpp:
              (WebCore::PageGroup::addPage):
              (WebCore::PageGroup::localStorage):
      
              * storage/LocalStorage.cpp:
              (WebCore::LocalStorage::LocalStorage): Take the path as a constructor argument.  Deep copy
                the path as it will be used from another thread.
              (WebCore::LocalStorage::storageArea):
              * storage/LocalStorage.h:
              (WebCore::LocalStorage::create):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@32899 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      06c8e74b
  28. 27 Apr, 2008 1 commit
    • darin@apple.com's avatar
      JavaScriptCore: · 3beb3006
      darin@apple.com authored
      2008-04-25  Darin Adler  <darin@apple.com>
      
              Reviewed by Maciej.
      
              - fix <rdar://problem/5657459> REGRESSION: JavaScriptCore no longer builds with
                GCC 4.2 due to pointer aliasing warnings
      
              Fix this by removing the HashTable optimizations that allowed us to share a back end
              implementation between hash tables with integers, pointers, RefPtr, and String objects
              as keys. The way it worked was incompatible with strict aliasing.
      
              This increases code size. On Mac OS X we'll have to regenerate .order files to avoid
              slowing down Safari startup times.
      
              This creates a slight slowdown in SunSpider, mitigated by the following four speedups:
      
              - speed up array put slightly by moving a branch (was already done for get)
      
              - speed up symbol table access by adding a function named inlineGet to HashMap
                and using that in symbolTableGet/Put
      
              - speed up PropertyNameArray creation by reducing the amount of reference count
                churn and uniqueness checking when adding names and not doing any allocation at
                all when building small arrays
      
              - speed up conversion of strings to floating point numbers by eliminating the
                malloc/free of the buffer for the ASCII copy of the string; a way to make
                things even faster would be to change strtod to take a UTF-16 string
      
              Note that there is considerable unused complexity now in HashSet/Map/Table to support
              "storage types", which is no longer used. Will do in a separate patch.
      
              * API/JSCallbackObjectFunctions.h:
              (KJS::JSCallbackObject<Base>::getPropertyNames): Removed explicit cast to Identifier to
              take advantage of the new PropertyNameArray::add overload and avoid reference count churn.
              * API/JSObjectRef.cpp:
              (JSPropertyNameAccumulatorAddName): Ditto.
              * JavaScriptCore.exp: Updated PropertyNameArray::add entry point name.
      
              * kjs/JSVariableObject.cpp: Removed now-unneeded IdentifierRepHashTraits::nullRepPtr
              definition (see below).
              (KJS::JSVariableObject::getPropertyNames): Removed explicit cast to Identifier.
      
              * kjs/JSVariableObject.h:
              (KJS::JSVariableObject::symbolTableGet): Use inlineGet for speed. Also changed to do
              early exit instead of nesting the body inside an if.
              (KJS::JSVariableObject::symbolTablePut): Ditto.
      
              * kjs/PropertyNameArray.cpp:
              (KJS::PropertyNameArray::add): Changed implementation to take a raw pointer instead of
              a reference to an identifier. Do uniqueness checking by searching the vector when the
              vector is short, only building the set once the vector is large enough.
      
              * kjs/PropertyNameArray.h: Added an overload of add for a raw pointer, and made the old
              add function call that one. Added an addKnownUnique function for use when the new
              name is known to be different from any other in the array. Changed the vector to have
              an inline capacity of 20.
      
              * kjs/SymbolTable.h: Changed IdentifierRepHash to inherit from the default hash for
              a RefPtr so we don't have to define so much. Added an overload of the hash function for
              a raw pointer as required by the new RefPtrHashMap. Got rid of the now-unneeded
              IdentifierRepHashTraits -- the default traits now work fine. Added a definition of
              empthValueIsZero to SymbolTableIndexHashTraits; not having it was incorrect, but harmless.
      
              * kjs/array_instance.cpp:
              (KJS::ArrayInstance::put): Move the maxArrayIndex check inside the branch that checks
              the index against the length, as done in the get function.
      
              * kjs/function.cpp:
              (KJS::globalFuncKJSPrint): Changed to use the new getCString instead of cstring.
      
              * kjs/internal.cpp: Removed printInfo debugging function, a client of cstring.
              If we need a debugging function we can easily make a better one and we haven't
              used this one in a long time.
              * kjs/internal.h: Ditto.
      
              * kjs/object.cpp:
              (KJS::JSObject::getPropertyNames): Removed explicit cast to Identifier.
              * kjs/property_map.cpp:
              (KJS::PropertyMap::getEnumerablePropertyNames): Ditto. Also added a special case for
              the case where the propertyNames array is empty -- in that case we know we're adding
              a set of names that are non-overlapping so we can use addKnownUnique.
              * kjs/ustring.cpp:
              (KJS::UString::getCString): Replaces cstring. Puts the C string into a CStringBuffer,
              which is a char Vector with an inline capacity. Also returns a boolean to indicate if
              the converion was lossy, which eliminates the need for a separate is8Bit call.
              (KJS::UString::toDouble): Changed to call getCString instead of cstring.
              * kjs/ustring.h: Ditto.
      
              * wtf/HashFunctions.h: Overload the hash and equal functions for RefPtr's default
              hash to take raw pointers. This works with the changes to RefPtrHashMap to avoid
              introducing refcount churn.
      
              * wtf/HashMap.h: Removed special code to convert the deleted value to the empty value
              when writing a new value into the map. This is now handled elsewhere.
              (WTF::HashMap::get): Removed code that checks for an empty hash table before calling
              HashTable::lookup; it's slightly more efficient to do this check inside lookup.
      
              * wtf/HashTable.h:
              (WTF::HashTable::isDeletedBucket): Changed to use isDeletedValue instead of using
              deletedValue and the equality operator.
              (WTF::HashTable::deleteBucket): Changed to use constructDeletedValue instead of
              using deletedValue and the assignment operator.
              (WTF::HashTable::checkKey): Added. Factors out the check for values that are empty
              or deleted keys that's used in various functions below.
              (WTF::HashTable::lookup): Changed to use checkKey, check for a 0 table, and also
              made public for use by RefPtrHashMap.
              (WTF::HashTable::lookupForWriting): Changed to use checkKey.
              (WTF::HashTable::fullLookupForWriting): Changed to use checkKey.
              (WTF::HashTable::add): Changed to use checkKey, and call initializeBucket on a
              deleted bucket before putting a new entry into it.
              (WTF::HashTable::addPassingHashCode): Ditto.
              (WTF::HashTable::deallocateTable): Check isDeletedBucket before calling ~ValueType.
      
              * wtf/HashTraits.h: Got ridd of all the HashTraits specialization for the integer
              types, since GeneicHashTraitsBase already deals with integers separately. Put the
              deleted value support into GenericHashTraitsBase. Changed FloatHashTraits to
              inherit from GenericHashTraits, and define construct/isDeletedValue rather than
              deletedValue. Removed the ref and deref functions from RefPtr's HashTraits, and
              defined construct/isDeletedValue. Eliminated DeletedValueAssigner. Changed
              PairHashTraits to define construct/isDeletedValue, and also merged
              PairBaseHashTraits in with PairHashTraits. Got rid of all specialization of
              HashKeyStorageTraits. We'll remove that, and the needsRef data member, later.
      
              * wtf/RefPtr.h: Added HashTableDeletedValueType, an enum type with a single value,
              HashTableDeletedValue. Used that type to make a new constructor to construct
              deleted values and also added an isHashTableDeletedValue function.
      
              * wtf/RefPtrHashMap.h: Added RefPtrHashMapRawKeyTranslator and used it to implement
              the raw pointer functions. This is a way to continue to avoid refcount thrash. We
              can't use the old way because it depended on the underlying map using a non-RefPtr
              type.
              (WTF::HashMap::find): Use find with RefPtrHashMapRawKeyTranslator.
              (WTF::HashMap::contains): Use contains with RefPtrHashMapRawKeyTranslator.
              (WTF::HashMap::inlineAdd): Use add with RefPtrHashMapRawKeyTranslator.
              (WTF::HashMap::get): Removed code that checks for an empty hash table before calling
              HashTable::lookup; it's slightly more efficient to do this check inside lookup.
              (WTF::HashMap::inlineGet): Added. Just like get, but marked inline for use in the
              symbol table code.
      
      WebCore:
      
      2008-04-25  Darin Adler  <darin@apple.com>
      
              Reviewed by Maciej.
      
              - update for compatibility with HashTable that no longer has optimization to share
                implementation between hash tables with integers, pointers, RefPtr, and String
                objects as keys
      
              * bindings/js/JSSVGPODTypeWrapper.h:
              (WebCore::PODTypeReadWriteHashInfo::PODTypeReadWriteHashInfo): Added constructor
              for HashTableDeletedValue.
              (WebCore::PODTypeReadWriteHashInfo::isHashTableDeletedValue): Added.
              (WebCore::PODTypeReadWriteHashInfoTraits::constructDeletedValue): Added.
              (WebCore::PODTypeReadWriteHashInfoTraits::isDeletedValue): Added.
      
              * dom/Document.cpp: Made changedDocuments internal to the file rather than a
              static data member of Document.
              (WebCore::FormElementKey::ref): Removed unneeded check for deleted value -- this
              will never be called on a deleted element.
              (WebCore::FormElementKey::deref): Ditto.
      
              * dom/Document.h: Added HashTableDeletedValue constructor and isHashTableDeletedValue
              to FormElementKey. Changed FormElementKeyHashTraits to use construct/isDeletedValue.
              Got rid of the changedDocuments data member. Changed iconURL to be an inline that
              returns a const String&.
      
              * dom/StyledElement.cpp: Changed MappedAttributeKeyTraits to use
              construct/isDeletedValue.
      
              * page/mac/AXObjectCacheMac.mm:
              (WebCore::AXObjectCache::getAXID): Call isDeletedValue instead of deletedValue.
      
              * platform/SecurityOriginHash.h: Added overload so that SecurityOriginHash can work
              with raw pointers as well as RefPt (helpful with the new RefPtrHashMap). Eliminated
              SecurityOriginTraits, since we can now use the default traits. Changed the value of
              safeToCompareToEmptyOrDeleted to false, since it's not safe to compare a deleted
              value using this hash function. I don't think it was safe before either; I'm not sure
              why it didn't cause a problem before.
      
              * platform/cf/SchedulePair.h: Removed SchedulePairTraits -- custom traits are no
              longer needed.
      
              * platform/graphics/FontCache.cpp:
              (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey): Added constructor
              for HashTableDeletedValue.
              (WebCore::FontPlatformDataCacheKey::isHashTableDeletedValue): Added.
              (WebCore::FontPlatformDataCacheKey::hashTableDeletedSize): Added.
              (WebCore::FontPlatformDataCacheKeyTraits::constructDeletedValue): Added.
              (WebCore::FontPlatformDataCacheKeyTraits::isDeletedValue): Added.
              (WebCore::FontDataCacheKeyTraits::constructDeletedValue): Added.
              (WebCore::FontDataCacheKeyTraits::isDeletedValue): Added.
      
              * platform/graphics/IntSizeHash.h: Changed HashTraits<IntSize> to use
              construct/isDeletedValue.
      
              * platform/graphics/mac/FontPlatformData.h:
              (WebCore::FontPlatformData::FontPlatformData): Added constructor for
              HashTableDeletedValue.
              (WebCore::FontPlatformData::isHashTableDeletedValue): Added.
              (WebCore::FontPlatformData::hashTableDeletedFontValue): Added.
      
              * platform/text/PlatformString.h:
              (WebCore::String::swap): Added. Avoids any refcount churn when swapping two strings.
              (WebCore::String::String): Added constructor for HashTableDeletedValue.
              (WebCore::String::isHashTableDeletedValue): Added.
              (WebCore::swap): Added. Avoids any refcount churn when swapping two strings.
      
              * platform/text/StringHash.h: Changed specialization of HashTraits for
              WebCore::String to use the deleted value now defined in that class and removed
              the code to do ref/deref. Removed HashKeyStorageTraits specializations.
              
              * platform/win/COMPtr.h: Changed specialization of HashTraits for
              COMPtr to use the deleted value now defined in that class and removed
              the code to do ref/deref. Removed HashKeyStorageTraits specializations.
              (COMPtr::COMPtr): Added constructor for HashTableDeletedValue.
              (COMPtr::isHashTableDeletedValue): Added.
              (COMPtr::query): Removed inline keyword not needed since functions defined in the
              class definition are automatically marked inline.
              (COMPtr::hashTableDeletedValue): Added.
      
              * storage/DatabaseTracker.h: Removed now-unneeded SecurityOriginTraits.
              * storage/LocalStorage.h: Ditto.
              * storage/OriginQuotaManager.h: Ditto.
              * storage/SessionStorage.h: Ditto.
      
              * svg/SVGAnimatedTemplate.h:
              (WebCore::SVGAnimatedTypeWrapperKey::SVGAnimatedTypeWrapperKey): Added constructor
              for HashTableDeletedValue.
              (WebCore::SVGAnimatedTypeWrapperKey::isHashTableDeletedValue): Added.
              (WebCore::SVGAnimatedTypeWrapperKeyHashTraits::constructDeletedValue): Added.
              (WebCore::SVGAnimatedTypeWrapperKeyHashTraits::isDeletedValue): Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@32609 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3beb3006
  29. 18 Apr, 2008 1 commit
  30. 17 Apr, 2008 1 commit
    • beidson@apple.com's avatar
      2008-04-17 Brady Eidson <beidson@apple.com> · 653985c6
      beidson@apple.com authored
              Reviewed by the Mitzpettel
      
              Before things get much more intertwined, move away from a global LocalStorage model
              to a per-PageGroup LocalStorage model.
      
              * page/DOMWindow.cpp:
              (WebCore::DOMWindow::localStorage): Get it from the current PageGroup, not the global
                LocalStorage (which doesn't exist anymore).
      
              * page/Page.cpp:
              * page/PageGroup.cpp:
              (WebCore::PageGroup::localStorage): Create a LocalStorage object on demand.
              * page/PageGroup.h:
      
              * storage/LocalStorage.cpp:
              (WebCore::LocalStorage::LocalStorage): Hold a back pointer to the owning PageGroup.
              (WebCore::LocalStorage::storageArea):
              * storage/LocalStorage.h:
              (WebCore::LocalStorage::create):
      
              * storage/LocalStorageArea.cpp:
              (WebCore::LocalStorageArea::LocalStorageArea): Hold a back pointer to the owning LocalStorage.
              * storage/LocalStorageArea.h:
              (WebCore::LocalStorageArea::create):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@32020 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      653985c6
  31. 16 Apr, 2008 1 commit
    • beidson@apple.com's avatar
      2008-04-16 Brady Eidson <beidson@apple.com> · bb69e1eb
      beidson@apple.com authored
              Reviewed by Darin Adler
      
              Merge the StorageAreaClient into the StorageArea class itself as pure virtual methods.
              Add "LocalStorageArea" add "SessionStorageArea" implementations, and have SessionStorage
              and LocalStorage instantiate the appropriate type of StorageArea object.
      
              This purpose of this change is because while adding the persistent store to LocalStorage,
              it became obvious that the client approach wasn't scaling well.  Additionally, a StorageArea
              backing a local storage area required vastly different data members compared to one backing
              a session storage area.
      
              This will be much cleaner going forward.
      
              * GNUmakefile.am:
              * WebCore.pro:
              * WebCore.vcproj/WebCore.vcproj:
              * WebCore.xcodeproj/project.pbxproj:
              * WebCoreSources.bkl:
      
              * storage/LocalStorage.cpp:
              (WebCore::LocalStorage::storageArea):
              * storage/LocalStorage.h:
      
              * storage/LocalStorageArea.cpp: Added.
              (WebCore::LocalStorageArea::LocalStorageArea):
              (WebCore::LocalStorageArea::itemChanged):
              (WebCore::LocalStorageArea::itemRemoved):
              (WebCore::LocalStorageArea::dispatchStorageEvent):
              * storage/LocalStorageArea.h: Added.
              (WebCore::LocalStorageArea::create):
      
              * storage/SessionStorage.cpp:
              (WebCore::SessionStorage::copy):
              (WebCore::SessionStorage::storageArea):
              * storage/SessionStorage.h:
      
              * storage/SessionStorageArea.cpp: Added.
              (WebCore::SessionStorageArea::copy):
              (WebCore::SessionStorageArea::SessionStorageArea):
              (WebCore::SessionStorageArea::itemChanged):
              (WebCore::SessionStorageArea::itemRemoved):
              (WebCore::SessionStorageArea::dispatchStorageEvent):
              * storage/SessionStorageArea.h: Added.
              (WebCore::SessionStorageArea::create):
              (WebCore::SessionStorageArea::page):
      
              * storage/StorageArea.cpp:
              (WebCore::StorageArea::StorageArea):
              (WebCore::StorageArea::setItem):
              (WebCore::StorageArea::removeItem):
              (WebCore::StorageArea::storageMap):
              * storage/StorageArea.h:
      
              * storage/StorageAreaClient.h: Removed.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31983 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bb69e1eb