Changeset 78321 in webkit
- Timestamp:
- Feb 11, 2011 12:37:36 AM (13 years ago)
- Location:
- trunk
- Files:
-
- 6 added
- 21 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r78318 r78321 1 2011-02-10 Adam Barth <abarth@webkit.org> 2 3 Reviewed by Eric Seidel. 4 5 WebKit should have a cryptographic RNG 6 https://bugs.webkit.org/show_bug.cgi?id=22049 7 8 Test crypto.getRandomValues API. It's pretty hard to write a 9 deterministic API for a randomized API, but this test should catch some 10 regressions. 11 12 * security/crypto-random-values-expected.txt: Added. 13 * security/crypto-random-values.html: Added. 14 1 15 2011-02-10 Maciej Stachowiak <mjs@apple.com> 2 16 -
trunk/Source/JavaScriptCore/ChangeLog
r78312 r78321 1 2011-02-10 Adam Barth <abarth@webkit.org> 2 3 Reviewed by Eric Seidel. 4 5 WebKit should have a cryptographic RNG 6 https://bugs.webkit.org/show_bug.cgi?id=22049 7 8 Teach JavaScriptCore how to export this function. 9 10 * JavaScriptCore.exp: 11 * JavaScriptCore.xcodeproj/project.pbxproj: 12 1 13 2011-02-10 Geoffrey Garen <ggaren@apple.com> 2 14 -
trunk/Source/JavaScriptCore/JavaScriptCore.exp
r78297 r78321 434 434 __ZN3WTF27releaseFastMallocFreeMemoryEv 435 435 __ZN3WTF28setMainThreadCallbacksPausedEb 436 __ZN3WTF29cryptographicallyRandomValuesEPvm 436 437 __ZN3WTF36lockAtomicallyInitializedStaticMutexEv 437 438 __ZN3WTF37parseDateFromNullTerminatedCharactersEPKc -
trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
r78211 r78321 337 337 97941A5A13029ACC004A3447 /* OSRandomSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 97941A40130299DB004A3447 /* OSRandomSource.h */; }; 338 338 97941A7E1302A098004A3447 /* CryptographicallyRandomNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 97941A7C1302A098004A3447 /* CryptographicallyRandomNumber.cpp */; }; 339 97941A7F1302A098004A3447 /* CryptographicallyRandomNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 97941A7D1302A098004A3447 /* CryptographicallyRandomNumber.h */; };339 97941A7F1302A098004A3447 /* CryptographicallyRandomNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 97941A7D1302A098004A3447 /* CryptographicallyRandomNumber.h */; settings = {ATTRIBUTES = (Private, ); }; }; 340 340 A1712B3B11C7B212007A5315 /* RegExpCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1712B3A11C7B212007A5315 /* RegExpCache.cpp */; }; 341 341 A1712B3F11C7B228007A5315 /* RegExpCache.h in Headers */ = {isa = PBXBuildFile; fileRef = A1712B3E11C7B228007A5315 /* RegExpCache.h */; settings = {ATTRIBUTES = (Private, ); }; }; -
trunk/Source/WebCore/Android.mk
r78194 r78321 410 410 page/ContentSecurityPolicy.cpp \ 411 411 page/ContextMenuController.cpp \ 412 page/Crypto.cpp \ 412 413 page/DOMSelection.cpp \ 413 414 page/DOMTimer.cpp \ -
trunk/Source/WebCore/CMakeLists.txt
r78234 r78321 320 320 page/Console.idl 321 321 page/Coordinates.idl 322 page/Crypto.idl 322 323 page/DOMSelection.idl 323 324 page/DOMWindow.idl … … 1111 1112 page/ContentSecurityPolicy.cpp 1112 1113 page/ContextMenuController.cpp 1114 page/Crypto.cpp 1113 1115 page/DOMSelection.cpp 1114 1116 page/DOMTimer.cpp -
trunk/Source/WebCore/ChangeLog
r78320 r78321 1 2011-02-10 Adam Barth <abarth@webkit.org> 2 3 Reviewed by Eric Seidel. 4 5 WebKit should have a cryptographic RNG 6 https://bugs.webkit.org/show_bug.cgi?id=22049 7 8 Add crypto.getRandomValues. Yes, all these diffs are required to 9 expose a single function to the DOM. 10 11 Test: security/crypto-random-values.html 12 13 * Android.mk: 14 * CMakeLists.txt: 15 * DerivedSources.cpp: 16 * DerivedSources.make: 17 * ForwardingHeaders/wtf/CryptographicallyRandomNumber.h: Added. 18 * GNUmakefile.am: 19 * WebCore.gypi: 20 * WebCore.pri: 21 * WebCore.pro: 22 * WebCore.vcproj/WebCore.vcproj: 23 * WebCore.xcodeproj/project.pbxproj: 24 * bindings/js/JSDOMWindowCustom.cpp: 25 * bindings/v8/custom/V8DOMWindowCustom.cpp: 26 * config.h: 27 * page/Crypto.cpp: Added. 28 (WebCore::Crypto::Crypto): 29 (WebCore::Crypto::getRandomValues): 30 * page/Crypto.h: Added. 31 (WebCore::Crypto::create): 32 * page/Crypto.idl: Added. 33 * page/DOMWindow.cpp: 34 (WebCore::DOMWindow::clear): 35 (WebCore::DOMWindow::crypto): 36 * page/DOMWindow.h: 37 (WebCore::DOMWindow::optionalCrypto): 38 * page/DOMWindow.idl: 39 1 40 2011-02-11 Ryuan Choi <ryuan.choi@samsung.com> 2 41 -
trunk/Source/WebCore/DerivedSources.cpp
r76600 r78321 51 51 #include "JSCoordinates.cpp" 52 52 #include "JSCounter.cpp" 53 #include "JSCrypto.cpp" 53 54 #include "JSCSSCharsetRule.cpp" 54 55 #include "JSCSSFontFaceRule.cpp" -
trunk/Source/WebCore/DerivedSources.make
r77389 r78321 128 128 Coordinates \ 129 129 Counter \ 130 Crypto \ 130 131 CustomEvent \ 131 132 DataGridColumn \ -
trunk/Source/WebCore/GNUmakefile.am
r78234 r78321 163 163 DerivedSources/WebCore/JSCounter.cpp \ 164 164 DerivedSources/WebCore/JSCounter.h \ 165 DerivedSources/WebCore/JSCrypto.cpp \ 166 DerivedSources/WebCore/JSCrypto.h \ 165 167 DerivedSources/WebCore/JSCSSCharsetRule.cpp \ 166 168 DerivedSources/WebCore/JSCSSCharsetRule.h \ … … 2174 2176 Source/WebCore/page/BarInfo.cpp \ 2175 2177 Source/WebCore/page/BarInfo.h \ 2176 Source/WebCore/page/ChromeClient.h \2177 2178 Source/WebCore/page/Chrome.cpp \ 2178 2179 Source/WebCore/page/Chrome.h \ 2180 Source/WebCore/page/ChromeClient.h \ 2179 2181 Source/WebCore/page/Console.cpp \ 2180 2182 Source/WebCore/page/Console.h \ … … 2186 2188 Source/WebCore/page/ContextMenuProvider.h \ 2187 2189 Source/WebCore/page/Coordinates.h \ 2190 Source/WebCore/page/Crypto.cpp \ 2191 Source/WebCore/page/Crypto.h \ 2188 2192 Source/WebCore/page/DOMSelection.cpp \ 2189 2193 Source/WebCore/page/DOMSelection.h \ … … 2214 2218 Source/WebCore/page/Geolocation.h \ 2215 2219 Source/WebCore/page/GeolocationClient.h \ 2216 Source/WebCore/page/GeolocationError.h \2217 2220 Source/WebCore/page/GeolocationController.cpp \ 2218 2221 Source/WebCore/page/GeolocationController.h \ 2222 Source/WebCore/page/GeolocationError.h \ 2219 2223 Source/WebCore/page/GeolocationPosition.h \ 2220 2224 Source/WebCore/page/GeolocationPositionCache.cpp \ … … 2233 2237 Source/WebCore/page/MouseEventWithHitTestResults.cpp \ 2234 2238 Source/WebCore/page/MouseEventWithHitTestResults.h \ 2239 Source/WebCore/page/Navigator.cpp \ 2240 Source/WebCore/page/Navigator.h \ 2235 2241 Source/WebCore/page/NavigatorBase.cpp \ 2236 2242 Source/WebCore/page/NavigatorBase.h \ 2237 Source/WebCore/page/Navigator.cpp \2238 Source/WebCore/page/Navigator.h \2239 2243 Source/WebCore/page/OriginAccessEntry.cpp \ 2240 2244 Source/WebCore/page/OriginAccessEntry.h \ 2241 2245 Source/WebCore/page/Page.cpp \ 2246 Source/WebCore/page/Page.h \ 2242 2247 Source/WebCore/page/PageGroup.cpp \ 2243 2248 Source/WebCore/page/PageGroup.h \ 2244 2249 Source/WebCore/page/PageGroupLoadDeferrer.cpp \ 2245 2250 Source/WebCore/page/PageGroupLoadDeferrer.h \ 2246 Source/WebCore/page/Page.h \2247 2251 Source/WebCore/page/Performance.cpp \ 2248 2252 Source/WebCore/page/Performance.h \ … … 2251 2255 Source/WebCore/page/PerformanceTiming.cpp \ 2252 2256 Source/WebCore/page/PerformanceTiming.h \ 2253 Source/WebCore/page/PluginHalterClient.h \2254 2257 Source/WebCore/page/PluginHalter.cpp \ 2255 2258 Source/WebCore/page/PluginHalter.h \ 2259 Source/WebCore/page/PluginHalterClient.h \ 2256 2260 Source/WebCore/page/PositionCallback.h \ 2261 Source/WebCore/page/PositionError.h \ 2257 2262 Source/WebCore/page/PositionErrorCallback.h \ 2258 Source/WebCore/page/PositionError.h \2259 2263 Source/WebCore/page/PositionOptions.h \ 2260 2264 Source/WebCore/page/PrintContext.cpp \ -
trunk/Source/WebCore/WebCore.gypi
r78234 r78321 246 246 'page/Console.idl', 247 247 'page/Coordinates.idl', 248 'page/Crypto.idl', 248 249 'page/DOMSelection.idl', 249 250 'page/DOMWindow.idl', … … 2280 2281 'page/ContextMenuController.h', 2281 2282 'page/ContextMenuProvider.h', 2283 'page/Crypto.cpp', 2284 'page/Crypto.h', 2282 2285 'page/DOMSelection.cpp', 2283 2286 'page/DOMSelection.h', -
trunk/Source/WebCore/WebCore.pri
r76496 r78321 309 309 page/Console.idl \ 310 310 page/Coordinates.idl \ 311 page/Crypto.idl \ 311 312 page/DOMSelection.idl \ 312 313 page/DOMWindow.idl \ -
trunk/Source/WebCore/WebCore.pro
r78273 r78321 1129 1129 page/ContentSecurityPolicy.cpp \ 1130 1130 page/ContextMenuController.cpp \ 1131 page/Crypto.cpp \ 1131 1132 page/DOMSelection.cpp \ 1132 1133 page/DOMTimer.cpp \ 1133 1134 page/DOMWindow.cpp \ 1134 page/Navigator.cpp \1135 page/NavigatorBase.cpp \1136 1135 page/DragController.cpp \ 1137 1136 page/EventHandler.cpp \ … … 1149 1148 page/MemoryInfo.cpp \ 1150 1149 page/MouseEventWithHitTestResults.cpp \ 1150 page/Navigator.cpp \ 1151 page/NavigatorBase.cpp \ 1151 1152 page/OriginAccessEntry.cpp \ 1152 1153 page/Page.cpp \ … … 1158 1159 page/PluginHalter.cpp \ 1159 1160 page/PrintContext.cpp \ 1161 page/Screen.cpp \ 1160 1162 page/SecurityOrigin.cpp \ 1161 page/Screen.cpp \1162 1163 page/Settings.cpp \ 1163 1164 page/SpatialNavigation.cpp \ -
trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj
r78234 r78321 1755 1755 </File> 1756 1756 <File 1757 RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSCrypto.cpp" 1758 > 1759 <FileConfiguration 1760 Name="Debug|Win32" 1761 ExcludedFromBuild="true" 1762 > 1763 <Tool 1764 Name="VCCLCompilerTool" 1765 /> 1766 </FileConfiguration> 1767 <FileConfiguration 1768 Name="Release|Win32" 1769 ExcludedFromBuild="true" 1770 > 1771 <Tool 1772 Name="VCCLCompilerTool" 1773 /> 1774 </FileConfiguration> 1775 <FileConfiguration 1776 Name="Debug_Cairo_CFLite|Win32" 1777 ExcludedFromBuild="true" 1778 > 1779 <Tool 1780 Name="VCCLCompilerTool" 1781 /> 1782 </FileConfiguration> 1783 <FileConfiguration 1784 Name="Release_Cairo_CFLite|Win32" 1785 ExcludedFromBuild="true" 1786 > 1787 <Tool 1788 Name="VCCLCompilerTool" 1789 /> 1790 </FileConfiguration> 1791 <FileConfiguration 1792 Name="Debug_All|Win32" 1793 ExcludedFromBuild="true" 1794 > 1795 <Tool 1796 Name="VCCLCompilerTool" 1797 /> 1798 </FileConfiguration> 1799 <FileConfiguration 1800 Name="Release_LTCG|Win32" 1801 ExcludedFromBuild="true" 1802 > 1803 <Tool 1804 Name="VCCLCompilerTool" 1805 /> 1806 </FileConfiguration> 1807 </File> 1808 <File 1809 RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSCrypto.h" 1810 > 1811 </File> 1812 <File 1757 1813 RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSCSSCharsetRule.cpp" 1758 1814 > -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r78234 r78321 3033 3033 973E325610883B7C005BC493 /* ResourceLoadNotifier.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 973E325410883B7C005BC493 /* ResourceLoadNotifier.cpp */; }; 3034 3034 973E325710883B7C005BC493 /* ResourceLoadNotifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 973E325510883B7C005BC493 /* ResourceLoadNotifier.h */; settings = {ATTRIBUTES = (Private, ); }; }; 3035 975CA28A130365F800E99AD9 /* Crypto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 975CA287130365F800E99AD9 /* Crypto.cpp */; }; 3036 975CA28B130365F800E99AD9 /* Crypto.h in Headers */ = {isa = PBXBuildFile; fileRef = 975CA288130365F800E99AD9 /* Crypto.h */; }; 3037 975CA2A11303679D00E99AD9 /* JSCrypto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 975CA29F1303679D00E99AD9 /* JSCrypto.cpp */; }; 3038 975CA2A21303679D00E99AD9 /* JSCrypto.h in Headers */ = {isa = PBXBuildFile; fileRef = 975CA2A01303679D00E99AD9 /* JSCrypto.h */; }; 3035 3039 976D6C77122B8A3D001FD1F7 /* AsyncFileWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 976D6C58122B8A3D001FD1F7 /* AsyncFileWriter.h */; }; 3036 3040 976D6C78122B8A3D001FD1F7 /* Blob.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 976D6C59122B8A3D001FD1F7 /* Blob.cpp */; }; … … 9417 9421 973E325410883B7C005BC493 /* ResourceLoadNotifier.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ResourceLoadNotifier.cpp; sourceTree = "<group>"; }; 9418 9422 973E325510883B7C005BC493 /* ResourceLoadNotifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResourceLoadNotifier.h; sourceTree = "<group>"; }; 9423 975CA287130365F800E99AD9 /* Crypto.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Crypto.cpp; sourceTree = "<group>"; }; 9424 975CA288130365F800E99AD9 /* Crypto.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Crypto.h; sourceTree = "<group>"; }; 9425 975CA289130365F800E99AD9 /* Crypto.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Crypto.idl; sourceTree = "<group>"; }; 9426 975CA29F1303679D00E99AD9 /* JSCrypto.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCrypto.cpp; sourceTree = "<group>"; }; 9427 975CA2A01303679D00E99AD9 /* JSCrypto.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCrypto.h; sourceTree = "<group>"; }; 9419 9428 976D6C58122B8A3D001FD1F7 /* AsyncFileWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AsyncFileWriter.h; path = fileapi/AsyncFileWriter.h; sourceTree = "<group>"; }; 9420 9429 976D6C59122B8A3D001FD1F7 /* Blob.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Blob.cpp; path = fileapi/Blob.cpp; sourceTree = "<group>"; }; … … 13957 13966 FE6FD4850F676E5700092873 /* Coordinates.h */, 13958 13967 FE6FD4860F676E5700092873 /* Coordinates.idl */, 13968 975CA287130365F800E99AD9 /* Crypto.cpp */, 13969 975CA288130365F800E99AD9 /* Crypto.h */, 13970 975CA289130365F800E99AD9 /* Crypto.idl */, 13959 13971 BC5A86810C33676000EEA649 /* DOMSelection.cpp */, 13960 13972 BC5A86820C33676000EEA649 /* DOMSelection.h */, … … 18034 18046 BC98543B0CD3D98B00069BC1 /* JSConsole.cpp */, 18035 18047 BC98543C0CD3D98B00069BC1 /* JSConsole.h */, 18048 975CA29F1303679D00E99AD9 /* JSCrypto.cpp */, 18049 975CA2A01303679D00E99AD9 /* JSCrypto.h */, 18036 18050 BC5A86B30C3367E800EEA649 /* JSDOMSelection.cpp */, 18037 18051 BC5A86B40C3367E800EEA649 /* JSDOMSelection.h */, … … 22445 22459 9343CB8212F25E510033C5EE /* TextCodecUTF8.h in Headers */, 22446 22460 977E2E0F12F0FC9C00C13379 /* XSSFilter.h in Headers */, 22461 975CA28B130365F800E99AD9 /* Crypto.h in Headers */, 22462 975CA2A21303679D00E99AD9 /* JSCrypto.h in Headers */, 22447 22463 ); 22448 22464 runOnlyForDeploymentPostprocessing = 0; … … 25128 25144 977E2E0E12F0FC9C00C13379 /* XSSFilter.cpp in Sources */, 25129 25145 0F29C16E1300C2E2002D794E /* AccessibilityAllInOne.cpp in Sources */, 25146 975CA28A130365F800E99AD9 /* Crypto.cpp in Sources */, 25147 975CA2A11303679D00E99AD9 /* JSCrypto.cpp in Sources */, 25130 25148 A1E1154413015C3D0054AC8C /* DistantLightSource.cpp in Sources */, 25131 25149 A1E1154613015C4E0054AC8C /* PointLightSource.cpp in Sources */, -
trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp
r77151 r78321 490 490 } 491 491 492 JSValue JSDOMWindow::crypto(ExecState*) const493 {494 return jsUndefined();495 }496 497 492 JSValue JSDOMWindow::event(ExecState* exec) const 498 493 { -
trunk/Source/WebCore/bindings/v8/custom/V8DOMWindowCustom.cpp
r74646 r78321 184 184 } 185 185 186 v8::Handle<v8::Value> V8DOMWindow::cryptoAccessorGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)187 {188 // FIXME: Implement me.189 return v8::Undefined();190 }191 192 186 void V8DOMWindow::locationAccessorSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info) 193 187 { -
trunk/Source/WebCore/config.h
r75619 r78321 172 172 #endif 173 173 174 #if OS(DARWIN) || OS(UNIX) || OS(WINDOWS) 175 #define WTF_USE_OS_RANDOMNESS 1 176 #endif 177 174 178 #if PLATFORM(CHROMIUM) 175 179 -
trunk/Source/WebCore/page/DOMWindow.cpp
r77357 r78321 38 38 #include "Chrome.h" 39 39 #include "Console.h" 40 #include "Crypto.h" 40 41 #include "DOMApplicationCache.h" 41 42 #include "DOMSelection.h" … … 434 435 m_history = 0; 435 436 437 m_crypto = 0; 438 436 439 if (m_locationbar) 437 440 m_locationbar->disconnectFrame(); … … 529 532 m_history = History::create(m_frame); 530 533 return m_history.get(); 534 } 535 536 Crypto* DOMWindow::crypto() const 537 { 538 if (!m_crypto) 539 m_crypto = Crypto::create(); 540 return m_crypto.get(); 531 541 } 532 542 -
trunk/Source/WebCore/page/DOMWindow.h
r76278 r78321 38 38 class CSSStyleDeclaration; 39 39 class Console; 40 class Crypto; 40 41 class DOMApplicationCache; 41 42 class DOMSelection; … … 115 116 Screen* screen() const; 116 117 History* history() const; 118 Crypto* crypto() const; 117 119 BarInfo* locationbar() const; 118 120 BarInfo* menubar() const; … … 341 343 DOMSelection* optionalSelection() const { return m_selection.get(); } 342 344 History* optionalHistory() const { return m_history.get(); } 345 Crypto* optionalCrypto() const { return m_crypto.get(); } 343 346 BarInfo* optionalLocationbar() const { return m_locationbar.get(); } 344 347 BarInfo* optionalMenubar() const { return m_menubar.get(); } … … 442 445 mutable RefPtr<DOMSelection> m_selection; 443 446 mutable RefPtr<History> m_history; 447 mutable RefPtr<Crypto> m_crypto; 444 448 mutable RefPtr<BarInfo> m_locationbar; 445 449 mutable RefPtr<BarInfo> m_menubar; -
trunk/Source/WebCore/page/DOMWindow.idl
r76600 r78321 59 59 attribute [Replaceable, CustomGetter, V8CustomSetter] Event event; 60 60 61 readonly attribute [Custom]Crypto crypto;61 readonly attribute Crypto crypto; 62 62 63 63 DOMSelection getSelection();
Note: See TracChangeset
for help on using the changeset viewer.