passenger 2.2.15 → 3.0.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- data/DEVELOPERS.TXT +21 -12
- data/LICENSE +1 -1
- data/NEWS +8 -1
- data/PACKAGING.TXT +25 -0
- data/Rakefile +28 -891
- data/bin/passenger +32 -0
- data/bin/passenger-config +5 -5
- data/bin/passenger-install-apache2-module +37 -24
- data/bin/passenger-install-nginx-module +48 -46
- data/bin/passenger-make-enterprisey +8 -9
- data/bin/passenger-memory-stats +20 -150
- data/bin/passenger-status +130 -44
- data/bin/passenger-stress-test +5 -4
- data/build/agents.rb +73 -0
- data/build/apache2.rb +165 -0
- data/build/basics.rb +81 -0
- data/build/common_library.rb +198 -0
- data/build/config.rb +35 -0
- data/{misc/rake/cplusplus.rb → build/cplusplus_support.rb} +1 -1
- data/build/cxx_tests.rb +205 -0
- data/build/documentation.rb +77 -0
- data/{misc/rake → build}/gempackagetask.rb +1 -1
- data/build/integration_tests.rb +57 -0
- data/build/misc.rb +146 -0
- data/build/nginx.rb +64 -0
- data/build/oxt_tests.rb +52 -0
- data/{misc/rake → build}/packagetask.rb +0 -0
- data/build/packaging.rb +189 -0
- data/{misc/rake/extensions.rb → build/rake_extensions.rb} +1 -1
- data/{misc/rake → build}/rdoctask.rb +0 -0
- data/build/ruby_extension.rb +46 -0
- data/build/ruby_tests.rb +42 -0
- data/build/test_basics.rb +31 -0
- data/doc/ApplicationPool algorithm.txt +447 -234
- data/doc/Architectural overview.html +47 -56
- data/doc/Doxyfile +1 -1
- data/doc/Security of user switching support.html +46 -57
- data/doc/Users guide Apache.html +1033 -306
- data/doc/Users guide Apache.txt +419 -99
- data/doc/Users guide Nginx.html +1252 -253
- data/doc/Users guide Nginx.txt +711 -87
- data/doc/Users guide Standalone.html +603 -0
- data/doc/Users guide Standalone.txt +40 -0
- data/doc/cxxapi/AbstractSpawnManager_8h_source.html +141 -0
- data/doc/cxxapi/Account_8h_source.html +206 -0
- data/doc/cxxapi/AccountsDatabase_8h_source.html +161 -0
- data/doc/cxxapi/AgentBase_8h_source.html +70 -0
- data/doc/cxxapi/AgentsStarter_8h_source.html +112 -0
- data/doc/cxxapi/BCrypt_8h_source.html +104 -0
- data/doc/cxxapi/Blowfish_8h_source.html +134 -0
- data/doc/cxxapi/Bucket_8h_source.html +4 -3
- data/doc/cxxapi/Constants_8h_source.html +79 -0
- data/doc/cxxapi/ContentHandler_8h_source.html +95 -0
- data/doc/cxxapi/DirectoryMapper_8h_source.html +9 -8
- data/doc/cxxapi/EventedClient_8h_source.html +629 -0
- data/doc/cxxapi/EventedMessageServer_8h_source.html +358 -0
- data/doc/cxxapi/EventedServer_8h_source.html +326 -0
- data/doc/cxxapi/Exceptions_8h_source.html +366 -0
- data/doc/cxxapi/FileDescriptor_8h_source.html +260 -0
- data/doc/cxxapi/Hooks_8h_source.html +2 -1
- data/doc/cxxapi/HttpStatusExtractor_8h_source.html +382 -0
- data/doc/cxxapi/Logging_8h_source.html +726 -0
- data/doc/cxxapi/MessageChannel_8h_source.html +852 -0
- data/doc/cxxapi/MessageClient_8h_source.html +328 -0
- data/doc/cxxapi/MessageReadersWriters_8h_source.html +539 -0
- data/doc/cxxapi/MessageServer_8h_source.html +606 -0
- data/doc/cxxapi/PoolOptions_8h_source.html +548 -0
- data/doc/cxxapi/Process_8h_source.html +286 -0
- data/doc/cxxapi/RandomGenerator_8h_source.html +191 -0
- data/doc/cxxapi/ResourceLocator_8h_source.html +115 -0
- data/doc/cxxapi/ScgiRequestParser_8h_source.html +406 -0
- data/doc/cxxapi/ServerInstanceDir_8h_source.html +374 -0
- data/doc/cxxapi/Session_8h_source.html +501 -0
- data/doc/cxxapi/SpawnManager_8h_source.html +647 -0
- data/doc/cxxapi/StaticContentHandler_8h_source.html +68 -0
- data/doc/cxxapi/StaticString_8h_source.html +254 -0
- data/doc/cxxapi/StringListCreator_8h_source.html +114 -0
- data/doc/cxxapi/Utils_8h_source.html +442 -0
- data/doc/cxxapi/annotated.html +46 -0
- data/doc/cxxapi/apache2_2Configuration_8h_source.html +82 -0
- data/doc/cxxapi/classAgentWatcher-members.html +30 -26
- data/doc/cxxapi/classAgentWatcher.html +168 -194
- data/doc/cxxapi/classClient-members.html +14 -11
- data/doc/cxxapi/classClient.html +35 -35
- data/doc/cxxapi/classHooks-members.html +2 -0
- data/doc/cxxapi/classHooks.html +2 -0
- data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager-members.html +16 -13
- data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager.html +78 -82
- data/doc/cxxapi/classPassenger_1_1ArgumentException-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1ArgumentException.html +26 -22
- data/doc/cxxapi/classPassenger_1_1ArrayMessage-members.html +37 -0
- data/doc/cxxapi/classPassenger_1_1ArrayMessage.html +113 -0
- data/doc/cxxapi/classPassenger_1_1BufferedUpload-members.html +14 -11
- data/doc/cxxapi/classPassenger_1_1BufferedUpload.html +41 -42
- data/doc/cxxapi/classPassenger_1_1BusyException-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1BusyException.html +24 -20
- data/doc/cxxapi/classPassenger_1_1ConfigurationException-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1ConfigurationException.html +23 -19
- data/doc/cxxapi/classPassenger_1_1DirectoryMapper-members.html +2 -0
- data/doc/cxxapi/classPassenger_1_1DirectoryMapper.html +8 -6
- data/doc/cxxapi/classPassenger_1_1EOFException-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1EOFException.html +27 -23
- data/doc/cxxapi/classPassenger_1_1EventFd-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1EventFd.html +24 -21
- data/doc/cxxapi/classPassenger_1_1EventedClient-members.html +54 -0
- data/doc/cxxapi/classPassenger_1_1EventedClient.html +436 -0
- data/doc/cxxapi/classPassenger_1_1EventedMessageServer-members.html +37 -0
- data/doc/cxxapi/classPassenger_1_1EventedMessageServer.html +59 -0
- data/doc/cxxapi/classPassenger_1_1EventedMessageServer__inherit__graph.map +3 -0
- data/doc/cxxapi/classPassenger_1_1EventedMessageServer__inherit__graph.md5 +1 -0
- data/doc/cxxapi/classPassenger_1_1EventedMessageServer__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1EventedServer-members.html +37 -0
- data/doc/cxxapi/classPassenger_1_1EventedServer.html +93 -0
- data/doc/cxxapi/classPassenger_1_1EventedServer__inherit__graph.map +3 -0
- data/doc/cxxapi/classPassenger_1_1EventedServer__inherit__graph.md5 +1 -0
- data/doc/cxxapi/classPassenger_1_1EventedServer__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1FileDescriptor-members.html +16 -13
- data/doc/cxxapi/classPassenger_1_1FileDescriptor.html +63 -70
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException.html +26 -22
- data/doc/cxxapi/classPassenger_1_1FileSystemException-members.html +17 -14
- data/doc/cxxapi/classPassenger_1_1FileSystemException.html +32 -30
- data/doc/cxxapi/classPassenger_1_1HttpStatusExtractor-members.html +15 -12
- data/doc/cxxapi/classPassenger_1_1HttpStatusExtractor.html +59 -59
- data/doc/cxxapi/classPassenger_1_1IOException-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1IOException.html +27 -23
- data/doc/cxxapi/classPassenger_1_1MessageChannel-members.html +36 -33
- data/doc/cxxapi/classPassenger_1_1MessageChannel.html +326 -344
- data/doc/cxxapi/classPassenger_1_1MessageServer-members.html +25 -22
- data/doc/cxxapi/classPassenger_1_1MessageServer.html +160 -191
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext.html +29 -27
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.map +3 -1
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.md5 +1 -1
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext-members.html +17 -14
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext.html +69 -79
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.map +3 -1
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.md5 +1 -1
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler-members.html +15 -12
- data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler.html +60 -63
- data/doc/cxxapi/classPassenger_1_1Process-members.html +20 -17
- data/doc/cxxapi/classPassenger_1_1Process.html +88 -95
- data/doc/cxxapi/classPassenger_1_1RandomGenerator-members.html +13 -10
- data/doc/cxxapi/classPassenger_1_1RandomGenerator.html +36 -35
- data/doc/cxxapi/classPassenger_1_1RuntimeException-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1RuntimeException.html +24 -20
- data/doc/cxxapi/classPassenger_1_1ScalarMessage-members.html +37 -0
- data/doc/cxxapi/classPassenger_1_1ScalarMessage.html +76 -0
- data/doc/cxxapi/classPassenger_1_1ScgiRequestParser-members.html +26 -23
- data/doc/cxxapi/classPassenger_1_1ScgiRequestParser.html +121 -138
- data/doc/cxxapi/classPassenger_1_1SecurityException-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1SecurityException.html +26 -22
- data/doc/cxxapi/classPassenger_1_1Session-members.html +29 -26
- data/doc/cxxapi/classPassenger_1_1Session.html +219 -240
- data/doc/cxxapi/classPassenger_1_1SpawnException-members.html +14 -11
- data/doc/cxxapi/classPassenger_1_1SpawnException.html +36 -37
- data/doc/cxxapi/classPassenger_1_1SpawnManager-members.html +18 -15
- data/doc/cxxapi/classPassenger_1_1SpawnManager.html +115 -110
- data/doc/cxxapi/classPassenger_1_1StandardSession-members.html +30 -27
- data/doc/cxxapi/classPassenger_1_1StandardSession.html +163 -184
- data/doc/cxxapi/classPassenger_1_1StaticString-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1StaticString.html +27 -25
- data/doc/cxxapi/classPassenger_1_1SystemException-members.html +16 -13
- data/doc/cxxapi/classPassenger_1_1SystemException.html +65 -67
- data/doc/cxxapi/classPassenger_1_1TimeRetrievalException-members.html +16 -13
- data/doc/cxxapi/classPassenger_1_1TimeRetrievalException.html +27 -23
- data/doc/cxxapi/classPassenger_1_1TimeoutException-members.html +12 -9
- data/doc/cxxapi/classPassenger_1_1TimeoutException.html +24 -20
- data/doc/cxxapi/classPassenger_1_1Uint16Message-members.html +36 -0
- data/doc/cxxapi/classPassenger_1_1Uint16Message.html +51 -0
- data/doc/cxxapi/classPassenger_1_1Uint32Message-members.html +36 -0
- data/doc/cxxapi/classPassenger_1_1Uint32Message.html +51 -0
- data/doc/cxxapi/classServer-members.html +12 -9
- data/doc/cxxapi/classServer.html +23 -20
- data/doc/cxxapi/classServerInstanceDirToucher-members.html +12 -9
- data/doc/cxxapi/classServerInstanceDirToucher.html +21 -17
- data/doc/cxxapi/classes.html +18 -4
- data/doc/cxxapi/definitions_8h_source.html +1 -0
- data/doc/cxxapi/files.html +36 -1
- data/doc/cxxapi/functions.html +53 -21
- data/doc/cxxapi/functions_0x62.html +82 -0
- data/doc/cxxapi/functions_0x63.html +99 -0
- data/doc/cxxapi/functions_0x64.html +95 -0
- data/doc/cxxapi/functions_0x65.html +88 -0
- data/doc/cxxapi/functions_0x66.html +100 -0
- data/doc/cxxapi/functions_0x67.html +170 -0
- data/doc/cxxapi/functions_0x68.html +88 -0
- data/doc/cxxapi/functions_0x69.html +93 -0
- data/doc/cxxapi/functions_0x6b.html +80 -0
- data/doc/cxxapi/functions_0x6c.html +88 -0
- data/doc/cxxapi/functions_0x6d.html +88 -0
- data/doc/cxxapi/functions_0x6e.html +86 -0
- data/doc/cxxapi/functions_0x6f.html +94 -0
- data/doc/cxxapi/functions_0x70.html +94 -0
- data/doc/cxxapi/functions_0x72.html +110 -0
- data/doc/cxxapi/functions_0x73.html +171 -0
- data/doc/cxxapi/functions_0x74.html +85 -0
- data/doc/cxxapi/functions_0x75.html +85 -0
- data/doc/cxxapi/functions_0x77.html +92 -0
- data/doc/cxxapi/functions_0x7e.html +79 -0
- data/doc/cxxapi/functions_enum.html +14 -12
- data/doc/cxxapi/functions_eval.html +22 -16
- data/doc/cxxapi/functions_func.html +460 -1
- data/doc/cxxapi/functions_vars.html +163 -63
- data/doc/cxxapi/graph_legend.html +1 -0
- data/doc/cxxapi/graph_legend.png +0 -0
- data/doc/cxxapi/group__Core.html +2 -2
- data/doc/cxxapi/group__Core.map +1 -2
- data/doc/cxxapi/group__Core.png +0 -0
- data/doc/cxxapi/group__Exceptions.html +32 -40
- data/doc/cxxapi/group__Hooks.html +2 -1
- data/doc/cxxapi/group__Hooks.map +1 -1
- data/doc/cxxapi/group__Hooks.png +0 -0
- data/doc/cxxapi/group__Support.html +509 -0
- data/doc/cxxapi/hierarchy.html +66 -62
- data/doc/cxxapi/inherit__graph__10.map +3 -1
- data/doc/cxxapi/inherit__graph__10.md5 +1 -1
- data/doc/cxxapi/inherit__graph__10.png +0 -0
- data/doc/cxxapi/inherit__graph__11.map +4 -1
- data/doc/cxxapi/inherit__graph__11.md5 +1 -1
- data/doc/cxxapi/inherit__graph__11.png +0 -0
- data/doc/cxxapi/inherit__graph__12.map +3 -1
- data/doc/cxxapi/inherit__graph__12.md5 +1 -1
- data/doc/cxxapi/inherit__graph__12.png +0 -0
- data/doc/cxxapi/inherit__graph__13.map +3 -1
- data/doc/cxxapi/inherit__graph__13.md5 +1 -1
- data/doc/cxxapi/inherit__graph__13.png +0 -0
- data/doc/cxxapi/inherit__graph__14.map +3 -1
- data/doc/cxxapi/inherit__graph__14.md5 +1 -1
- data/doc/cxxapi/inherit__graph__14.png +0 -0
- data/doc/cxxapi/inherit__graph__15.map +5 -1
- data/doc/cxxapi/inherit__graph__15.md5 +1 -1
- data/doc/cxxapi/inherit__graph__15.png +0 -0
- data/doc/cxxapi/inherit__graph__16.map +3 -3
- data/doc/cxxapi/inherit__graph__16.md5 +1 -1
- data/doc/cxxapi/inherit__graph__16.png +0 -0
- data/doc/cxxapi/inherit__graph__17.map +3 -1
- data/doc/cxxapi/inherit__graph__17.md5 +1 -1
- data/doc/cxxapi/inherit__graph__17.png +0 -0
- data/doc/cxxapi/inherit__graph__18.map +4 -1
- data/doc/cxxapi/inherit__graph__18.md5 +1 -1
- data/doc/cxxapi/inherit__graph__18.png +0 -0
- data/doc/cxxapi/inherit__graph__19.map +3 -1
- data/doc/cxxapi/inherit__graph__19.md5 +1 -1
- data/doc/cxxapi/inherit__graph__19.png +0 -0
- data/doc/cxxapi/inherit__graph__20.map +3 -2
- data/doc/cxxapi/inherit__graph__20.md5 +1 -1
- data/doc/cxxapi/inherit__graph__20.png +0 -0
- data/doc/cxxapi/inherit__graph__21.map +3 -1
- data/doc/cxxapi/inherit__graph__21.md5 +1 -1
- data/doc/cxxapi/inherit__graph__21.png +0 -0
- data/doc/cxxapi/inherit__graph__22.map +3 -1
- data/doc/cxxapi/inherit__graph__22.md5 +1 -1
- data/doc/cxxapi/inherit__graph__22.png +0 -0
- data/doc/cxxapi/inherit__graph__23.map +3 -1
- data/doc/cxxapi/inherit__graph__23.md5 +1 -1
- data/doc/cxxapi/inherit__graph__23.png +0 -0
- data/doc/cxxapi/inherit__graph__24.map +3 -1
- data/doc/cxxapi/inherit__graph__24.md5 +1 -1
- data/doc/cxxapi/inherit__graph__24.png +0 -0
- data/doc/cxxapi/inherit__graph__25.map +3 -1
- data/doc/cxxapi/inherit__graph__25.md5 +1 -1
- data/doc/cxxapi/inherit__graph__25.png +0 -0
- data/doc/cxxapi/inherit__graph__26.map +3 -1
- data/doc/cxxapi/inherit__graph__26.md5 +1 -1
- data/doc/cxxapi/inherit__graph__26.png +0 -0
- data/doc/cxxapi/inherit__graph__27.map +3 -1
- data/doc/cxxapi/inherit__graph__27.md5 +1 -1
- data/doc/cxxapi/inherit__graph__27.png +0 -0
- data/doc/cxxapi/inherit__graph__28.map +4 -1
- data/doc/cxxapi/inherit__graph__28.md5 +1 -1
- data/doc/cxxapi/inherit__graph__28.png +0 -0
- data/doc/cxxapi/inherit__graph__29.map +3 -1
- data/doc/cxxapi/inherit__graph__29.md5 +1 -1
- data/doc/cxxapi/inherit__graph__29.png +0 -0
- data/doc/cxxapi/inherit__graph__30.map +3 -2
- data/doc/cxxapi/inherit__graph__30.md5 +1 -1
- data/doc/cxxapi/inherit__graph__30.png +0 -0
- data/doc/cxxapi/inherit__graph__31.map +3 -1
- data/doc/cxxapi/inherit__graph__31.md5 +1 -1
- data/doc/cxxapi/inherit__graph__31.png +0 -0
- data/doc/cxxapi/inherit__graph__32.map +5 -1
- data/doc/cxxapi/inherit__graph__32.md5 +1 -1
- data/doc/cxxapi/inherit__graph__32.png +0 -0
- data/doc/cxxapi/inherit__graph__33.map +3 -1
- data/doc/cxxapi/inherit__graph__33.md5 +1 -1
- data/doc/cxxapi/inherit__graph__33.png +0 -0
- data/doc/cxxapi/inherit__graph__34.map +3 -3
- data/doc/cxxapi/inherit__graph__34.md5 +1 -1
- data/doc/cxxapi/inherit__graph__34.png +0 -0
- data/doc/cxxapi/inherit__graph__35.map +3 -1
- data/doc/cxxapi/inherit__graph__35.md5 +1 -1
- data/doc/cxxapi/inherit__graph__35.png +0 -0
- data/doc/cxxapi/inherit__graph__36.map +3 -1
- data/doc/cxxapi/inherit__graph__36.md5 +1 -1
- data/doc/cxxapi/inherit__graph__36.png +0 -0
- data/doc/cxxapi/inherit__graph__37.map +3 -1
- data/doc/cxxapi/inherit__graph__37.md5 +1 -1
- data/doc/cxxapi/inherit__graph__37.png +0 -0
- data/doc/cxxapi/inherit__graph__4.map +3 -1
- data/doc/cxxapi/inherit__graph__4.md5 +1 -1
- data/doc/cxxapi/inherit__graph__4.png +0 -0
- data/doc/cxxapi/inherit__graph__5.map +3 -1
- data/doc/cxxapi/inherit__graph__5.md5 +1 -1
- data/doc/cxxapi/inherit__graph__5.png +0 -0
- data/doc/cxxapi/inherit__graph__6.map +3 -1
- data/doc/cxxapi/inherit__graph__6.md5 +1 -1
- data/doc/cxxapi/inherit__graph__6.png +0 -0
- data/doc/cxxapi/inherit__graph__7.map +3 -1
- data/doc/cxxapi/inherit__graph__7.md5 +1 -1
- data/doc/cxxapi/inherit__graph__7.png +0 -0
- data/doc/cxxapi/inherit__graph__8.map +3 -1
- data/doc/cxxapi/inherit__graph__8.md5 +1 -1
- data/doc/cxxapi/inherit__graph__8.png +0 -0
- data/doc/cxxapi/inherit__graph__9.map +3 -1
- data/doc/cxxapi/inherit__graph__9.md5 +1 -1
- data/doc/cxxapi/inherit__graph__9.png +0 -0
- data/doc/cxxapi/inherits.html +123 -126
- data/doc/cxxapi/main.html +1 -0
- data/doc/cxxapi/modules.html +2 -1
- data/doc/cxxapi/namespacePassenger.html +263 -492
- data/doc/cxxapi/namespacemembers.html +68 -96
- data/doc/cxxapi/namespacemembers_enum.html +14 -12
- data/doc/cxxapi/namespacemembers_eval.html +20 -15
- data/doc/cxxapi/namespacemembers_func.html +52 -88
- data/doc/cxxapi/namespacemembers_type.html +18 -14
- data/doc/cxxapi/namespaces.html +12 -9
- data/doc/cxxapi/nginx_2Configuration_8h_source.html +125 -0
- data/doc/cxxapi/ngx__http__passenger__module_8h_source.html +94 -0
- data/doc/cxxapi/structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard-members.html +12 -9
- data/doc/cxxapi/structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard.html +24 -22
- data/doc/cxxapi/structPassenger_1_1PoolOptions-members.html +43 -38
- data/doc/cxxapi/structPassenger_1_1PoolOptions.html +275 -325
- data/doc/cxxapi/structPassenger_1_1StaticString_1_1Hash-members.html +12 -9
- data/doc/cxxapi/structPassenger_1_1StaticString_1_1Hash.html +24 -22
- data/doc/cxxapi/tree.html +152 -7
- data/doc/users_guide_snippets/{analysis_and_system_maintenance_tools.txt → analysis_and_system_maintenance.txt} +58 -1
- data/doc/users_guide_snippets/appendix_c_spawning_methods.txt +1 -2
- data/doc/users_guide_snippets/global_queueing_explained.txt +1 -5
- data/doc/users_guide_snippets/{rails_spawn_method.txt → passenger_spawn_method.txt} +9 -8
- data/doc/users_guide_snippets/tips.txt +12 -6
- data/doc/users_guide_snippets/under_the_hood/page_caching_support.txt +22 -0
- data/ext/apache2/Bucket.cpp +4 -4
- data/ext/apache2/Bucket.h +3 -3
- data/ext/apache2/Configuration.cpp +278 -381
- data/ext/apache2/Configuration.h +3 -357
- data/ext/apache2/Configuration.hpp +461 -0
- data/ext/apache2/DirectoryMapper.h +3 -3
- data/ext/apache2/HelperAgent.cpp +359 -0
- data/ext/apache2/Hooks.cpp +339 -226
- data/ext/apache2/Hooks.h +1 -1
- data/ext/apache2/mod_passenger.c +10 -4
- data/ext/boost/algorithm/string/case_conv.hpp +4 -4
- data/ext/boost/algorithm/string/concept.hpp +2 -2
- data/ext/boost/algorithm/string/detail/case_conv.hpp +18 -9
- data/ext/boost/algorithm/string/detail/find_format.hpp +44 -43
- data/ext/boost/algorithm/string/detail/find_format_all.hpp +56 -56
- data/ext/boost/algorithm/string/detail/find_format_store.hpp +7 -0
- data/ext/boost/algorithm/string/detail/finder.hpp +14 -14
- data/ext/boost/algorithm/string/detail/formatter.hpp +2 -2
- data/ext/boost/algorithm/string/detail/replace_storage.hpp +3 -3
- data/ext/boost/algorithm/string/detail/sequence.hpp +3 -3
- data/ext/boost/algorithm/string/erase.hpp +98 -98
- data/ext/boost/algorithm/string/find_format.hpp +56 -38
- data/ext/boost/algorithm/string/finder.hpp +6 -6
- data/ext/boost/algorithm/string/formatter.hpp +1 -1
- data/ext/boost/algorithm/string/replace.hpp +99 -99
- data/ext/boost/bind.hpp +5 -1670
- data/ext/boost/bind/bind.hpp +1751 -0
- data/ext/boost/bind/bind_mf2_cc.hpp +228 -0
- data/ext/boost/bind/mem_fn.hpp +389 -0
- data/ext/boost/bind/mem_fn_template.hpp +54 -27
- data/ext/boost/bind/placeholders.hpp +3 -2
- data/ext/boost/concept_check.hpp +10 -0
- data/ext/boost/config/abi/msvc_prefix.hpp +15 -1
- data/ext/boost/config/abi_prefix.hpp +1 -1
- data/ext/boost/config/abi_suffix.hpp +3 -2
- data/ext/boost/config/auto_link.hpp +6 -1
- data/ext/boost/config/compiler/borland.hpp +75 -17
- data/ext/boost/config/compiler/codegear.hpp +163 -0
- data/ext/boost/config/compiler/common_edg.hpp +35 -0
- data/ext/boost/config/compiler/digitalmars.hpp +26 -0
- data/ext/boost/config/compiler/gcc.hpp +69 -14
- data/ext/boost/config/compiler/hp_acc.hpp +32 -0
- data/ext/boost/config/compiler/intel.hpp +13 -2
- data/ext/boost/config/compiler/kai.hpp +0 -2
- data/ext/boost/config/compiler/metrowerks.hpp +29 -1
- data/ext/boost/config/compiler/mpw.hpp +30 -0
- data/ext/boost/config/compiler/pgi.hpp +37 -0
- data/ext/boost/config/compiler/sgi_mipspro.hpp +1 -0
- data/ext/boost/config/compiler/sunpro_cc.hpp +39 -7
- data/ext/boost/config/compiler/vacpp.hpp +31 -3
- data/ext/boost/config/compiler/visualc.hpp +72 -5
- data/ext/boost/config/no_tr1/cmath.hpp +28 -0
- data/ext/boost/config/platform/bsd.hpp +16 -3
- data/ext/boost/config/platform/hpux.hpp +3 -0
- data/ext/boost/config/platform/macos.hpp +8 -0
- data/ext/boost/config/platform/solaris.hpp +7 -0
- data/ext/boost/config/platform/vxworks.hpp +31 -0
- data/ext/boost/config/select_compiler_config.hpp +4 -0
- data/ext/boost/config/select_platform_config.hpp +6 -2
- data/ext/boost/config/select_stdlib_config.hpp +17 -8
- data/ext/boost/config/stdlib/dinkumware.hpp +34 -2
- data/ext/boost/config/stdlib/libcomo.hpp +25 -0
- data/ext/boost/config/stdlib/libstdcpp3.hpp +56 -2
- data/ext/boost/config/stdlib/modena.hpp +25 -0
- data/ext/boost/config/stdlib/msl.hpp +24 -0
- data/ext/boost/config/stdlib/roguewave.hpp +26 -0
- data/ext/boost/config/stdlib/sgi.hpp +25 -0
- data/ext/boost/config/stdlib/stlport.hpp +36 -1
- data/ext/boost/config/stdlib/vacpp.hpp +25 -0
- data/ext/boost/config/suffix.hpp +67 -32
- data/ext/boost/config/warning_disable.hpp +47 -0
- data/ext/boost/cstdint.hpp +62 -36
- data/ext/boost/date_time/c_time.hpp +28 -12
- data/ext/boost/date_time/compiler_config.hpp +27 -5
- data/ext/boost/date_time/constrained_value.hpp +36 -13
- data/ext/boost/date_time/date.hpp +44 -33
- data/ext/boost/date_time/date_duration.hpp +13 -14
- data/ext/boost/date_time/date_facet.hpp +215 -226
- data/ext/boost/date_time/date_generator_formatter.hpp +22 -20
- data/ext/boost/date_time/date_generator_parser.hpp +52 -51
- data/ext/boost/date_time/date_generators.hpp +16 -16
- data/ext/boost/date_time/date_parsing.hpp +115 -98
- data/ext/boost/date_time/filetime_functions.hpp +133 -41
- data/ext/boost/date_time/format_date_parser.hpp +22 -10
- data/ext/boost/date_time/gregorian/conversion.hpp +32 -39
- data/ext/boost/date_time/gregorian/greg_calendar.hpp +15 -14
- data/ext/boost/date_time/gregorian/greg_date.hpp +19 -18
- data/ext/boost/date_time/gregorian/greg_duration.hpp +106 -10
- data/ext/boost/date_time/gregorian/greg_duration_types.hpp +16 -7
- data/ext/boost/date_time/gregorian/greg_weekday.hpp +2 -2
- data/ext/boost/date_time/gregorian/gregorian_io.hpp +11 -4
- data/ext/boost/date_time/gregorian_calendar.hpp +8 -8
- data/ext/boost/date_time/gregorian_calendar.ipp +30 -30
- data/ext/boost/date_time/int_adapter.hpp +4 -2
- data/ext/boost/date_time/microsec_time_clock.hpp +39 -117
- data/ext/boost/date_time/period_parser.hpp +17 -15
- data/ext/boost/date_time/posix_time/conversion.hpp +28 -29
- data/ext/boost/date_time/posix_time/posix_time_config.hpp +19 -19
- data/ext/boost/date_time/posix_time/posix_time_io.hpp +31 -38
- data/ext/boost/date_time/posix_time/time_formatters.hpp +32 -32
- data/ext/boost/date_time/string_parse_tree.hpp +46 -46
- data/ext/boost/date_time/strings_from_facet.hpp +7 -5
- data/ext/boost/date_time/time.hpp +7 -6
- data/ext/boost/date_time/time_defs.hpp +12 -2
- data/ext/boost/date_time/time_duration.hpp +27 -26
- data/ext/boost/date_time/time_facet.hpp +386 -321
- data/ext/boost/date_time/time_formatting_streams.hpp +8 -5
- data/ext/boost/date_time/time_resolution_traits.hpp +29 -25
- data/ext/boost/date_time/time_system_split.hpp +7 -13
- data/ext/boost/date_time/wrapping_int.hpp +21 -15
- data/ext/boost/detail/call_traits.hpp +1 -1
- data/ext/boost/detail/endian.hpp +4 -4
- data/ext/boost/detail/no_exceptions_support.hpp +87 -0
- data/ext/boost/detail/sp_typeinfo.hpp +50 -4
- data/ext/boost/detail/workaround.hpp +63 -3
- data/ext/boost/enable_shared_from_this.hpp +4 -59
- data/ext/boost/exception/current_exception_cast.hpp +43 -0
- data/ext/boost/exception/detail/attribute_noreturn.hpp +17 -0
- data/ext/boost/exception/detail/error_info_impl.hpp +75 -0
- data/ext/boost/exception/detail/exception_ptr.hpp +490 -0
- data/ext/boost/exception/detail/is_output_streamable.hpp +47 -0
- data/ext/boost/exception/detail/object_hex_dump.hpp +50 -0
- data/ext/boost/exception/detail/type_info.hpp +79 -0
- data/ext/boost/exception/diagnostic_information.hpp +182 -0
- data/ext/boost/exception/exception.hpp +422 -0
- data/ext/boost/exception/get_error_info.hpp +130 -0
- data/ext/boost/exception/info.hpp +167 -0
- data/ext/boost/exception/to_string.hpp +83 -0
- data/ext/boost/exception/to_string_stub.hpp +109 -0
- data/ext/boost/exception_ptr.hpp +11 -0
- data/ext/boost/function/detail/prologue.hpp +2 -1
- data/ext/boost/function/function_base.hpp +270 -128
- data/ext/boost/function/function_fwd.hpp +70 -0
- data/ext/boost/function/function_template.hpp +319 -130
- data/ext/boost/get_pointer.hpp +5 -1
- data/ext/boost/integer.hpp +253 -0
- data/ext/boost/integer_fwd.hpp +174 -0
- data/ext/boost/integer_traits.hpp +26 -1
- data/ext/boost/io/ios_state.hpp +8 -0
- data/ext/boost/iterator/detail/config_def.hpp +4 -2
- data/ext/boost/iterator/iterator_adaptor.hpp +7 -2
- data/ext/boost/iterator/iterator_facade.hpp +1 -2
- data/ext/boost/lexical_cast.hpp +113 -105
- data/ext/boost/limits.hpp +1 -1
- data/ext/boost/mem_fn.hpp +5 -370
- data/ext/boost/memory_order.hpp +53 -0
- data/ext/boost/mpl/always.hpp +3 -3
- data/ext/boost/mpl/and.hpp +3 -3
- data/ext/boost/mpl/apply.hpp +3 -3
- data/ext/boost/mpl/apply_fwd.hpp +3 -3
- data/ext/boost/mpl/apply_wrap.hpp +37 -6
- data/ext/boost/mpl/arg.hpp +3 -3
- data/ext/boost/mpl/arg_fwd.hpp +3 -3
- data/ext/boost/mpl/assert.hpp +6 -6
- data/ext/boost/mpl/aux_/adl_barrier.hpp +3 -3
- data/ext/boost/mpl/aux_/arg_typedef.hpp +3 -3
- data/ext/boost/mpl/aux_/arity.hpp +3 -3
- data/ext/boost/mpl/aux_/arity_spec.hpp +3 -3
- data/ext/boost/mpl/aux_/common_name_wknd.hpp +3 -3
- data/ext/boost/mpl/aux_/config/adl.hpp +4 -4
- data/ext/boost/mpl/aux_/config/arrays.hpp +4 -4
- data/ext/boost/mpl/aux_/config/bcc.hpp +28 -0
- data/ext/boost/mpl/aux_/config/bind.hpp +4 -4
- data/ext/boost/mpl/aux_/config/compiler.hpp +8 -6
- data/ext/boost/mpl/aux_/config/ctps.hpp +3 -3
- data/ext/boost/mpl/aux_/config/dtp.hpp +5 -5
- data/ext/boost/mpl/aux_/config/eti.hpp +3 -3
- data/ext/boost/mpl/aux_/config/gcc.hpp +3 -3
- data/ext/boost/mpl/aux_/config/has_apply.hpp +3 -3
- data/ext/boost/mpl/aux_/config/has_xxx.hpp +3 -3
- data/ext/boost/mpl/aux_/config/integral.hpp +4 -4
- data/ext/boost/mpl/aux_/config/intel.hpp +3 -3
- data/ext/boost/mpl/aux_/config/lambda.hpp +3 -3
- data/ext/boost/mpl/aux_/config/msvc.hpp +3 -3
- data/ext/boost/mpl/aux_/config/msvc_typename.hpp +3 -3
- data/ext/boost/mpl/aux_/config/nttp.hpp +3 -3
- data/ext/boost/mpl/aux_/config/overload_resolution.hpp +3 -3
- data/ext/boost/mpl/aux_/config/pp_counter.hpp +3 -3
- data/ext/boost/mpl/aux_/config/preprocessor.hpp +4 -4
- data/ext/boost/mpl/aux_/config/static_constant.hpp +3 -3
- data/ext/boost/mpl/aux_/config/ttp.hpp +4 -4
- data/ext/boost/mpl/aux_/config/use_preprocessed.hpp +3 -3
- data/ext/boost/mpl/aux_/config/workaround.hpp +3 -3
- data/ext/boost/mpl/aux_/full_lambda.hpp +3 -3
- data/ext/boost/mpl/aux_/has_apply.hpp +3 -3
- data/ext/boost/mpl/aux_/has_type.hpp +3 -3
- data/ext/boost/mpl/aux_/include_preprocessed.hpp +3 -3
- data/ext/boost/mpl/aux_/integral_wrapper.hpp +3 -3
- data/ext/boost/mpl/aux_/lambda_arity_param.hpp +3 -3
- data/ext/boost/mpl/aux_/lambda_support.hpp +4 -4
- data/ext/boost/mpl/aux_/msvc_never_true.hpp +3 -3
- data/ext/boost/mpl/aux_/na.hpp +3 -3
- data/ext/boost/mpl/aux_/na_assert.hpp +3 -3
- data/ext/boost/mpl/aux_/na_fwd.hpp +3 -3
- data/ext/boost/mpl/aux_/na_spec.hpp +3 -3
- data/ext/boost/mpl/aux_/nested_type_wknd.hpp +3 -3
- data/ext/boost/mpl/aux_/nttp_decl.hpp +3 -3
- data/ext/boost/mpl/aux_/preprocessor/def_params_tail.hpp +3 -3
- data/ext/boost/mpl/aux_/preprocessor/enum.hpp +3 -3
- data/ext/boost/mpl/aux_/preprocessor/filter_params.hpp +3 -3
- data/ext/boost/mpl/aux_/preprocessor/params.hpp +3 -3
- data/ext/boost/mpl/aux_/preprocessor/sub.hpp +3 -3
- data/ext/boost/mpl/aux_/static_cast.hpp +3 -3
- data/ext/boost/mpl/aux_/template_arity.hpp +3 -3
- data/ext/boost/mpl/aux_/template_arity_fwd.hpp +3 -3
- data/ext/boost/mpl/aux_/type_wrapper.hpp +3 -3
- data/ext/boost/mpl/aux_/value_wknd.hpp +3 -3
- data/ext/boost/mpl/aux_/yes_no.hpp +3 -3
- data/ext/boost/mpl/bind.hpp +3 -3
- data/ext/boost/mpl/bind_fwd.hpp +3 -3
- data/ext/boost/mpl/bool.hpp +3 -3
- data/ext/boost/mpl/bool_fwd.hpp +3 -3
- data/ext/boost/mpl/eval_if.hpp +3 -3
- data/ext/boost/mpl/has_xxx.hpp +10 -8
- data/ext/boost/mpl/identity.hpp +3 -3
- data/ext/boost/mpl/if.hpp +3 -3
- data/ext/boost/mpl/int.hpp +3 -3
- data/ext/boost/mpl/int_fwd.hpp +3 -3
- data/ext/boost/mpl/integral_c.hpp +3 -3
- data/ext/boost/mpl/integral_c_fwd.hpp +3 -3
- data/ext/boost/mpl/integral_c_tag.hpp +3 -3
- data/ext/boost/mpl/lambda.hpp +3 -3
- data/ext/boost/mpl/lambda_fwd.hpp +3 -3
- data/ext/boost/mpl/limits/arity.hpp +3 -3
- data/ext/boost/mpl/logical.hpp +3 -3
- data/ext/boost/mpl/next.hpp +3 -3
- data/ext/boost/mpl/next_prior.hpp +3 -3
- data/ext/boost/mpl/not.hpp +3 -3
- data/ext/boost/mpl/or.hpp +3 -3
- data/ext/boost/mpl/placeholders.hpp +3 -3
- data/ext/boost/mpl/protect.hpp +3 -3
- data/ext/boost/mpl/quote.hpp +18 -7
- data/ext/boost/mpl/size_t.hpp +3 -3
- data/ext/boost/mpl/size_t_fwd.hpp +3 -3
- data/ext/boost/mpl/void.hpp +3 -3
- data/ext/boost/mpl/void_fwd.hpp +3 -3
- data/ext/boost/non_type.hpp +27 -27
- data/ext/boost/operators.hpp +51 -18
- data/ext/boost/preprocessor/arithmetic/detail/div_base.hpp +61 -0
- data/ext/boost/preprocessor/arithmetic/mod.hpp +39 -0
- data/ext/boost/preprocessor/comparison/less_equal.hpp +39 -0
- data/ext/boost/preprocessor/control/deduce_d.hpp +22 -0
- data/ext/boost/preprocessor/logical/not.hpp +30 -0
- data/ext/boost/preprocessor/seq/cat.hpp +48 -0
- data/ext/boost/preprocessor/seq/fold_left.hpp +1070 -0
- data/ext/boost/preprocessor/seq/transform.hpp +48 -0
- data/ext/boost/range/as_literal.hpp +10 -14
- data/ext/boost/range/begin.hpp +4 -4
- data/ext/boost/range/detail/implementation_help.hpp +4 -0
- data/ext/boost/range/end.hpp +4 -4
- data/ext/boost/range/iterator_range.hpp +31 -15
- data/ext/boost/ref.hpp +12 -1
- data/ext/boost/scoped_array.hpp +16 -0
- data/ext/boost/scoped_ptr.hpp +16 -0
- data/ext/boost/shared_ptr.hpp +2 -602
- data/ext/boost/{detail → smart_ptr}/bad_weak_ptr.hpp +4 -4
- data/ext/boost/{detail → smart_ptr/detail}/atomic_count.hpp +14 -19
- data/ext/boost/{detail → smart_ptr/detail}/atomic_count_gcc.hpp +13 -9
- data/ext/boost/{detail → smart_ptr/detail}/atomic_count_gcc_x86.hpp +5 -12
- data/ext/boost/{detail → smart_ptr/detail}/atomic_count_pthreads.hpp +5 -5
- data/ext/boost/{detail → smart_ptr/detail}/atomic_count_solaris.hpp +3 -3
- data/ext/boost/{detail → smart_ptr/detail}/atomic_count_sync.hpp +9 -5
- data/ext/boost/{detail → smart_ptr/detail}/atomic_count_win32.hpp +3 -3
- data/ext/boost/smart_ptr/detail/operator_bool.hpp +56 -0
- data/ext/boost/{detail → smart_ptr/detail}/shared_count.hpp +86 -17
- data/ext/boost/smart_ptr/detail/sp_convertible.hpp +76 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base.hpp +70 -0
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_acc_ia64.hpp +4 -4
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_cw_ppc.hpp +4 -4
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_cw_x86.hpp +4 -4
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_gcc_ia64.hpp +4 -4
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +172 -0
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_gcc_ppc.hpp +4 -4
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_gcc_sparc.hpp +7 -7
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_gcc_x86.hpp +4 -4
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_nt.hpp +4 -4
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_pt.hpp +4 -4
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_solaris.hpp +4 -4
- data/ext/boost/smart_ptr/detail/sp_counted_base_spin.hpp +131 -0
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_sync.hpp +8 -4
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_w32.hpp +4 -4
- data/ext/boost/{detail → smart_ptr/detail}/sp_counted_impl.hpp +5 -5
- data/ext/boost/smart_ptr/detail/sp_has_sync.hpp +49 -0
- data/ext/boost/smart_ptr/detail/spinlock.hpp +53 -0
- data/ext/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +85 -0
- data/ext/boost/smart_ptr/detail/spinlock_nt.hpp +89 -0
- data/ext/boost/smart_ptr/detail/spinlock_pool.hpp +87 -0
- data/ext/boost/smart_ptr/detail/spinlock_pt.hpp +79 -0
- data/ext/boost/smart_ptr/detail/spinlock_sync.hpp +87 -0
- data/ext/boost/smart_ptr/detail/yield_k.hpp +149 -0
- data/ext/boost/smart_ptr/enable_shared_from_this.hpp +79 -0
- data/ext/boost/smart_ptr/scoped_array.hpp +107 -0
- data/ext/boost/smart_ptr/scoped_ptr.hpp +131 -0
- data/ext/boost/smart_ptr/shared_ptr.hpp +701 -0
- data/ext/boost/smart_ptr/weak_ptr.hpp +230 -0
- data/ext/boost/src/pthread/thread.cpp +115 -203
- data/ext/boost/src/tss_null.cpp +1 -1
- data/ext/boost/static_assert.hpp +14 -4
- data/ext/boost/thread.hpp +7 -2
- data/ext/boost/thread/barrier.hpp +63 -0
- data/ext/boost/thread/detail/force_cast.hpp +39 -0
- data/ext/boost/thread/detail/move.hpp +29 -2
- data/ext/boost/thread/detail/platform.hpp +3 -3
- data/ext/boost/thread/detail/singleton.hpp +59 -0
- data/ext/boost/thread/detail/thread.hpp +496 -0
- data/ext/boost/thread/detail/thread_group.hpp +105 -0
- data/ext/boost/thread/detail/thread_heap_alloc.hpp +23 -0
- data/ext/boost/thread/detail/thread_interruption.hpp +35 -0
- data/ext/boost/thread/detail/tss_hooks.hpp +82 -0
- data/ext/boost/thread/exceptions.hpp +174 -60
- data/ext/boost/thread/future.hpp +1364 -0
- data/ext/boost/thread/locks.hpp +899 -32
- data/ext/boost/thread/once.hpp +4 -0
- data/ext/boost/thread/pthread/condition_variable.hpp +16 -21
- data/ext/boost/thread/pthread/condition_variable_fwd.hpp +37 -3
- data/ext/boost/thread/pthread/mutex.hpp +20 -7
- data/ext/boost/thread/pthread/once.hpp +7 -2
- data/ext/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +5 -1
- data/ext/boost/thread/pthread/recursive_mutex.hpp +22 -5
- data/ext/boost/thread/pthread/shared_mutex.hpp +303 -0
- data/ext/boost/thread/pthread/thread_data.hpp +37 -10
- data/ext/boost/thread/pthread/thread_heap_alloc.hpp +242 -0
- data/ext/boost/thread/pthread/timespec.hpp +11 -3
- data/ext/boost/thread/shared_mutex.hpp +21 -0
- data/ext/boost/thread/thread.hpp +8 -3
- data/ext/boost/thread/thread_time.hpp +4 -0
- data/ext/boost/thread/tss.hpp +106 -13
- data/ext/boost/thread/xtime.hpp +6 -2
- data/ext/boost/throw_exception.hpp +36 -7
- data/ext/boost/token_functions.hpp +1 -1
- data/ext/boost/tokenizer.hpp +1 -1
- data/ext/boost/type_traits/add_pointer.hpp +1 -1
- data/ext/boost/type_traits/add_volatile.hpp +47 -0
- data/ext/boost/type_traits/alignment_of.hpp +29 -1
- data/ext/boost/type_traits/config.hpp +1 -1
- data/ext/boost/type_traits/conversion_traits.hpp +1 -1
- data/ext/boost/type_traits/has_trivial_destructor.hpp +42 -0
- data/ext/boost/type_traits/intrinsics.hpp +88 -1
- data/ext/boost/type_traits/is_abstract.hpp +14 -5
- data/ext/boost/type_traits/is_arithmetic.hpp +8 -0
- data/ext/boost/type_traits/is_array.hpp +3 -2
- data/ext/boost/type_traits/is_base_and_derived.hpp +254 -0
- data/ext/boost/type_traits/is_base_of.hpp +51 -0
- data/ext/boost/type_traits/is_class.hpp +12 -0
- data/ext/boost/type_traits/is_const.hpp +6 -2
- data/ext/boost/type_traits/is_convertible.hpp +14 -2
- data/ext/boost/type_traits/is_enum.hpp +10 -1
- data/ext/boost/type_traits/is_function.hpp +11 -3
- data/ext/boost/type_traits/is_fundamental.hpp +45 -0
- data/ext/boost/type_traits/is_integral.hpp +5 -0
- data/ext/boost/type_traits/is_member_function_pointer.hpp +5 -3
- data/ext/boost/type_traits/is_member_pointer.hpp +4 -2
- data/ext/boost/type_traits/is_pointer.hpp +3 -1
- data/ext/boost/type_traits/is_reference.hpp +4 -2
- data/ext/boost/type_traits/is_signed.hpp +135 -0
- data/ext/boost/type_traits/is_unsigned.hpp +130 -0
- data/ext/boost/type_traits/is_void.hpp +5 -0
- data/ext/boost/type_traits/is_volatile.hpp +4 -2
- data/ext/boost/type_traits/make_unsigned.hpp +137 -0
- data/ext/boost/type_traits/remove_reference.hpp +1 -1
- data/ext/boost/type_traits/type_with_alignment.hpp +106 -1
- data/ext/boost/utility.hpp +2 -1
- data/ext/boost/utility/addressof.hpp +61 -17
- data/ext/boost/utility/binary.hpp +708 -0
- data/ext/boost/utility/enable_if.hpp +2 -2
- data/ext/boost/weak_ptr.hpp +4 -174
- data/ext/common/AbstractSpawnManager.h +110 -0
- data/ext/common/Account.h +175 -0
- data/ext/common/AccountsDatabase.cpp +81 -0
- data/ext/common/AccountsDatabase.h +130 -0
- data/ext/common/AgentBase.cpp +323 -0
- data/ext/common/{Version.h → AgentBase.h} +14 -6
- data/ext/common/AgentsStarter.cpp +154 -0
- data/ext/common/AgentsStarter.h +81 -0
- data/ext/common/AgentsStarter.hpp +619 -0
- data/ext/common/ApplicationPool/Client.h +796 -0
- data/ext/common/{ApplicationPool.h → ApplicationPool/Interface.h} +108 -18
- data/ext/common/ApplicationPool/Pool.h +1315 -0
- data/ext/common/ApplicationPool/Server.h +475 -0
- data/ext/common/BCrypt.cpp +343 -0
- data/ext/common/BCrypt.h +73 -0
- data/ext/common/Blowfish.c +685 -0
- data/ext/common/Blowfish.h +103 -0
- data/ext/common/Constants.h +48 -0
- data/ext/common/EventedClient.h +598 -0
- data/ext/common/EventedMessageServer.h +327 -0
- data/ext/common/EventedServer.h +295 -0
- data/ext/common/Exceptions.h +78 -1
- data/ext/common/FileDescriptor.h +229 -0
- data/ext/common/HelperAgent/BacktracesServer.h +59 -0
- data/ext/common/Logging.cpp +8 -9
- data/ext/common/Logging.h +593 -21
- data/ext/common/LoggingAgent/ChangeNotifier.h +63 -0
- data/ext/common/LoggingAgent/DataStoreId.h +177 -0
- data/ext/common/LoggingAgent/LoggingServer.h +1343 -0
- data/ext/common/LoggingAgent/Main.cpp +278 -0
- data/ext/common/LoggingAgent/RemoteSender.h +457 -0
- data/ext/common/MessageChannel.h +196 -34
- data/ext/common/MessageClient.h +297 -0
- data/ext/common/MessageReadersWriters.h +508 -0
- data/ext/common/MessageServer.h +575 -0
- data/ext/common/PoolOptions.h +279 -117
- data/ext/common/Process.h +255 -0
- data/ext/common/RandomGenerator.h +160 -0
- data/ext/common/ResourceLocator.h +84 -0
- data/ext/common/ServerInstanceDir.h +343 -0
- data/ext/common/Session.h +470 -0
- data/ext/common/SpawnManager.h +256 -201
- data/ext/common/StaticString.h +79 -4
- data/ext/common/StringListCreator.h +2 -2
- data/ext/common/Utils.cpp +385 -397
- data/ext/common/Utils.h +79 -165
- data/ext/common/{Base64.cpp → Utils/Base64.cpp} +0 -0
- data/ext/common/{Base64.h → Utils/Base64.h} +27 -1
- data/ext/common/Utils/BlockingQueue.h +136 -0
- data/ext/common/Utils/BlockingScalar.h +50 -0
- data/ext/common/{CachedFileStat.cpp → Utils/CachedFileStat.cpp} +1 -1
- data/ext/common/{CachedFileStat.h → Utils/CachedFileStat.h} +1 -1
- data/ext/common/{CachedFileStat.hpp → Utils/CachedFileStat.hpp} +1 -1
- data/ext/common/{FileChangeChecker.h → Utils/FileChangeChecker.h} +1 -1
- data/ext/common/Utils/FileHandleGuard.h +81 -0
- data/ext/common/Utils/IOUtils.cpp +754 -0
- data/ext/common/Utils/IOUtils.h +253 -0
- data/ext/common/Utils/MD5.cpp +406 -0
- data/ext/common/Utils/MD5.h +98 -0
- data/ext/common/Utils/MemZeroGuard.h +103 -0
- data/ext/common/Utils/ProcessMetricsCollector.h +462 -0
- data/ext/common/Utils/ScopeGuard.h +72 -0
- data/ext/common/Utils/StrIntUtils.cpp +329 -0
- data/ext/common/Utils/StrIntUtils.h +228 -0
- data/ext/common/{SystemTime.cpp → Utils/SystemTime.cpp} +5 -1
- data/ext/common/Utils/SystemTime.h +201 -0
- data/ext/common/{Timer.h → Utils/Timer.h} +58 -18
- data/ext/common/Utils/VariantMap.h +363 -0
- data/ext/common/Utils/foo.cpp +10 -0
- data/ext/common/Watchdog.cpp +1034 -0
- data/ext/google/COPYING +28 -0
- data/ext/google/ChangeLog +167 -0
- data/ext/google/dense_hash_map +310 -0
- data/ext/google/dense_hash_set +287 -0
- data/ext/google/sparse_hash_map +294 -0
- data/ext/google/sparse_hash_set +275 -0
- data/ext/google/sparsehash/densehashtable.h +1062 -0
- data/ext/google/sparsehash/sparseconfig.h +55 -0
- data/ext/google/sparsehash/sparsehashtable.h +1015 -0
- data/ext/google/sparsetable +1468 -0
- data/ext/google/type_traits.h +250 -0
- data/ext/libev/Changes +302 -0
- data/ext/libev/LICENSE +36 -0
- data/ext/libev/Makefile.am +18 -0
- data/ext/libev/Makefile.in +685 -0
- data/ext/libev/README +58 -0
- data/ext/libev/aclocal.m4 +7549 -0
- data/ext/libev/autogen.sh +6 -0
- data/ext/libev/config.guess +1526 -0
- data/ext/libev/config.h +122 -0
- data/ext/libev/config.h.in +121 -0
- data/ext/libev/config.sub +1658 -0
- data/ext/libev/configure +22156 -0
- data/ext/libev/configure.ac +18 -0
- data/ext/libev/ev++.h +800 -0
- data/ext/libev/ev.c +3694 -0
- data/ext/libev/ev.h +705 -0
- data/ext/libev/ev_epoll.c +228 -0
- data/ext/libev/ev_kqueue.c +196 -0
- data/ext/libev/ev_poll.c +144 -0
- data/ext/libev/ev_port.c +165 -0
- data/ext/libev/ev_select.c +308 -0
- data/ext/libev/ev_vars.h +187 -0
- data/ext/libev/ev_win32.c +153 -0
- data/ext/libev/ev_wrap.h +178 -0
- data/ext/libev/event.c +401 -0
- data/ext/libev/event.h +158 -0
- data/ext/libev/install-sh +294 -0
- data/ext/libev/libev.m4 +38 -0
- data/ext/libev/ltmain.sh +6871 -0
- data/ext/libev/missing +336 -0
- data/ext/libev/mkinstalldirs +111 -0
- data/ext/nginx/Configuration.c +532 -182
- data/ext/nginx/Configuration.h +33 -10
- data/ext/nginx/ContentHandler.c +188 -53
- data/ext/nginx/ContentHandler.h +1 -1
- data/ext/nginx/{HelperServer.cpp → HelperAgent.cpp} +433 -299
- data/ext/nginx/HttpStatusExtractor.h +1 -1
- data/ext/nginx/ScgiRequestParser.h +68 -11
- data/ext/nginx/StaticContentHandler.c +4 -1
- data/ext/nginx/StaticContentHandler.h +1 -1
- data/ext/nginx/config +5 -5
- data/ext/nginx/ngx_http_passenger_module.c +315 -469
- data/ext/nginx/ngx_http_passenger_module.h +8 -17
- data/ext/oxt/backtrace.cpp +49 -41
- data/ext/oxt/backtrace.hpp +1 -1
- data/ext/oxt/detail/backtrace_disabled.hpp +1 -1
- data/ext/oxt/detail/backtrace_enabled.hpp +16 -15
- data/ext/oxt/detail/spin_lock_darwin.hpp +69 -0
- data/ext/oxt/detail/spin_lock_gcc_x86.hpp +3 -4
- data/ext/oxt/detail/spin_lock_portable.hpp +1 -1
- data/ext/oxt/detail/spin_lock_pthreads.hpp +1 -1
- data/ext/oxt/detail/tracable_exception_disabled.hpp +1 -1
- data/ext/oxt/detail/tracable_exception_enabled.hpp +1 -1
- data/ext/oxt/dynamic_thread_group.hpp +195 -0
- data/ext/oxt/macros.hpp +1 -1
- data/ext/oxt/spin_lock.hpp +4 -2
- data/ext/oxt/system_calls.cpp +129 -13
- data/ext/oxt/system_calls.hpp +16 -2
- data/ext/oxt/thread.cpp +1 -1
- data/ext/oxt/thread.hpp +49 -14
- data/ext/oxt/tracable_exception.cpp +5 -5
- data/ext/oxt/tracable_exception.hpp +1 -1
- data/ext/phusion_passenger/extconf.rb +7 -2
- data/ext/phusion_passenger/native_support.c +733 -33
- data/{bin → helper-scripts}/passenger-spawn-server +50 -12
- data/helper-scripts/prespawn +63 -0
- data/lib/phusion_passenger.rb +113 -0
- data/lib/phusion_passenger/abstract_installer.rb +50 -12
- data/lib/phusion_passenger/abstract_request_handler.rb +432 -171
- data/lib/phusion_passenger/abstract_server.rb +125 -122
- data/lib/phusion_passenger/abstract_server_collection.rb +51 -22
- data/lib/phusion_passenger/admin_tools.rb +1 -1
- data/lib/phusion_passenger/admin_tools/memory_stats.rb +299 -0
- data/lib/phusion_passenger/admin_tools/server_instance.rb +334 -0
- data/lib/phusion_passenger/analytics_logger.rb +342 -0
- data/lib/phusion_passenger/{application.rb → app_process.rb} +73 -24
- data/lib/phusion_passenger/classic_rails/application_spawner.rb +344 -0
- data/lib/phusion_passenger/{railz → classic_rails}/cgi_fixed.rb +2 -2
- data/lib/phusion_passenger/{railz → classic_rails}/framework_spawner.rb +75 -98
- data/lib/phusion_passenger/{railz → classic_rails}/request_handler.rb +8 -6
- data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ac_base_extension.rb +65 -0
- data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ac_benchmarking_extension.rb +48 -0
- data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ac_rescue_extension.rb +59 -0
- data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ar_abstract_adapter_extension.rb +54 -0
- data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/as_cache_extension.rb +130 -0
- data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/av_benchmark_helper_extension.rb +47 -0
- data/lib/phusion_passenger/classic_rails_extensions/init.rb +123 -0
- data/lib/phusion_passenger/console_text_template.rb +1 -1
- data/lib/phusion_passenger/constants.rb +9 -5
- data/lib/phusion_passenger/debug_logging.rb +104 -0
- data/lib/phusion_passenger/dependencies.rb +187 -4
- data/lib/phusion_passenger/exceptions.rb +4 -4
- data/lib/phusion_passenger/html_template.rb +6 -8
- data/lib/phusion_passenger/message_channel.rb +137 -21
- data/lib/phusion_passenger/message_client.rb +173 -0
- data/lib/phusion_passenger/native_support.rb +108 -0
- data/lib/phusion_passenger/packaging.rb +82 -13
- data/lib/phusion_passenger/platform_info.rb +84 -475
- data/lib/phusion_passenger/platform_info/apache.rb +329 -0
- data/lib/phusion_passenger/platform_info/binary_compatibility.rb +187 -0
- data/lib/phusion_passenger/platform_info/compiler.rb +154 -0
- data/lib/phusion_passenger/{events.rb → platform_info/curl.rb} +26 -23
- data/lib/phusion_passenger/platform_info/documentation_tools.rb +35 -0
- data/lib/phusion_passenger/platform_info/linux.rb +77 -0
- data/lib/phusion_passenger/platform_info/operating_system.rb +51 -0
- data/lib/phusion_passenger/platform_info/ruby.rb +198 -0
- data/lib/phusion_passenger/platform_info/zlib.rb +38 -0
- data/lib/phusion_passenger/plugin.rb +96 -0
- data/lib/phusion_passenger/public_api.rb +112 -0
- data/lib/phusion_passenger/rack/application_spawner.rb +146 -71
- data/lib/phusion_passenger/rack/request_handler.rb +36 -13
- data/lib/phusion_passenger/rails3_extensions/init.rb +204 -0
- data/lib/phusion_passenger/simple_benchmarking.rb +1 -1
- data/lib/phusion_passenger/spawn_manager.rb +137 -141
- data/lib/phusion_passenger/standalone/app_finder.rb +153 -0
- data/lib/phusion_passenger/standalone/command.rb +237 -0
- data/lib/phusion_passenger/standalone/config_file.rb +119 -0
- data/lib/phusion_passenger/standalone/help_command.rb +57 -0
- data/lib/phusion_passenger/standalone/main.rb +101 -0
- data/lib/phusion_passenger/standalone/package_runtime_command.rb +92 -0
- data/lib/phusion_passenger/standalone/runtime_installer.rb +466 -0
- data/lib/phusion_passenger/standalone/start_command.rb +510 -0
- data/lib/phusion_passenger/standalone/status_command.rb +62 -0
- data/lib/phusion_passenger/standalone/stop_command.rb +74 -0
- data/lib/phusion_passenger/standalone/utils.rb +42 -0
- data/lib/phusion_passenger/standalone/version_command.rb +42 -0
- data/lib/phusion_passenger/templates/framework_init_error.html.erb +1 -1
- data/lib/phusion_passenger/templates/standalone/cannot_write_to_dir.txt.erb +11 -0
- data/lib/phusion_passenger/templates/standalone/config.erb +69 -0
- data/lib/phusion_passenger/templates/standalone/possible_solutions_for_download_and_extraction_problems.txt.erb +17 -0
- data/lib/phusion_passenger/templates/standalone/run_installer_as_root.txt.erb +8 -0
- data/lib/phusion_passenger/templates/standalone/welcome.txt.erb +8 -0
- data/lib/phusion_passenger/templates/standalone_default_root/index.html +1 -0
- data/lib/phusion_passenger/templates/version_not_found.html.erb +2 -2
- data/lib/phusion_passenger/utils.rb +476 -125
- data/lib/phusion_passenger/utils/file_system_watcher.rb +186 -0
- data/lib/phusion_passenger/utils/hosts_file_parser.rb +130 -0
- data/lib/phusion_passenger/utils/tmpdir.rb +70 -0
- data/lib/phusion_passenger/utils/unseekable_socket.rb +196 -0
- data/lib/phusion_passenger/wsgi/application_spawner.rb +24 -20
- data/lib/phusion_passenger/wsgi/request_handler.py +1 -1
- data/misc/copy_boost_headers.rb +36 -9
- data/misc/find_owner_pipe_leaks.rb +1 -1
- data/misc/render_error_pages.rb +1 -1
- data/misc/union_station_gateway.crt +32 -0
- data/test/config.yml.example +24 -13
- data/test/cxx/ApplicationPool_PoolTest.cpp +33 -0
- data/test/cxx/ApplicationPool_PoolTestCases.cpp +1029 -0
- data/test/cxx/ApplicationPool_ServerTest.cpp +308 -0
- data/test/cxx/ApplicationPool_Server_PoolTest.cpp +80 -0
- data/test/{Base64Test.cpp → cxx/Base64Test.cpp} +4 -2
- data/test/{CachedFileStatTest.cpp → cxx/CachedFileStatTest.cpp} +3 -3
- data/test/{CxxTestMain.cpp → cxx/CxxTestMain.cpp} +6 -27
- data/test/cxx/EventedClientTest.cpp +386 -0
- data/test/{FileChangeCheckerTest.cpp → cxx/FileChangeCheckerTest.cpp} +3 -5
- data/test/cxx/FileDescriptorTest.cpp +69 -0
- data/test/{HttpStatusExtractorTest.cpp → cxx/HttpStatusExtractorTest.cpp} +1 -1
- data/test/cxx/IOUtilsTest.cpp +398 -0
- data/test/cxx/LoggingTest.cpp +914 -0
- data/test/cxx/MessageChannelTest.cpp +672 -0
- data/test/cxx/MessageReadersWritersTest.cpp +574 -0
- data/test/cxx/MessageServerTest.cpp +383 -0
- data/test/{PoolOptionsTest.cpp → cxx/PoolOptionsTest.cpp} +2 -3
- data/test/{ScgiRequestParserTest.cpp → cxx/ScgiRequestParserTest.cpp} +53 -1
- data/test/cxx/ServerInstanceDirTest.cpp +186 -0
- data/test/cxx/SpawnManagerTest.cpp +161 -0
- data/test/cxx/StaticStringTest.cpp +86 -0
- data/test/{SystemTimeTest.cpp → cxx/SystemTimeTest.cpp} +2 -2
- data/test/cxx/TestSupport.cpp +166 -0
- data/test/cxx/TestSupport.h +254 -0
- data/test/cxx/UtilsTest.cpp +521 -0
- data/test/cxx/VariantMapTest.cpp +179 -0
- data/test/integration_tests/apache2_tests.rb +198 -127
- data/test/integration_tests/cgi_environment_spec.rb +26 -0
- data/test/integration_tests/mycook_spec.rb +2 -28
- data/test/integration_tests/nginx_tests.rb +125 -16
- data/test/integration_tests/spec_helper.rb +19 -0
- data/test/oxt/backtrace_test.cpp +19 -59
- data/test/oxt/counter.hpp +55 -0
- data/test/oxt/dynamic_thread_group_test.cpp +131 -0
- data/test/oxt/oxt_test_main.cpp +2 -2
- data/test/oxt/spin_lock_test.cpp +59 -0
- data/test/oxt/syscall_interruption_test.cpp +1 -1
- data/test/ruby/abstract_request_handler_spec.rb +346 -25
- data/test/ruby/abstract_server_collection_spec.rb +4 -3
- data/test/ruby/abstract_server_spec.rb +37 -27
- data/test/ruby/admin_tools_spec.rb +362 -0
- data/test/ruby/analytics_logger_spec.rb +253 -0
- data/test/ruby/{application_spec.rb → app_process_spec.rb} +14 -14
- data/test/ruby/classic_rails/application_spawner_spec.rb +89 -0
- data/test/ruby/classic_rails/framework_spawner_spec.rb +92 -0
- data/test/ruby/debug_logging_spec.rb +141 -0
- data/test/ruby/message_channel_spec.rb +51 -25
- data/test/ruby/rack/application_spawner_spec.rb +99 -82
- data/test/ruby/shared/abstract_server_spec.rb +23 -0
- data/test/ruby/shared/rails/analytics_logging_extensions_spec.rb +375 -0
- data/test/ruby/shared/spawners/classic_rails/framework_spawner_spec.rb +38 -0
- data/test/ruby/shared/spawners/classic_rails/lack_of_rails_gem_version_spec.rb +19 -0
- data/test/ruby/shared/spawners/classic_rails/spawner_spec.rb +15 -0
- data/test/ruby/shared/spawners/non_preloading_spawner_spec.rb +27 -0
- data/test/ruby/shared/spawners/preloading_spawner_spec.rb +29 -0
- data/test/ruby/shared/spawners/reload_all_spec.rb +36 -0
- data/test/ruby/shared/spawners/reload_single_spec.rb +52 -0
- data/test/ruby/shared/spawners/spawn_server_spec.rb +28 -0
- data/test/ruby/shared/spawners/spawner_spec.rb +273 -0
- data/test/ruby/shared/utils/pseudo_io_spec.rb +60 -0
- data/test/ruby/spawn_manager_spec.rb +104 -175
- data/test/ruby/spec_helper.rb +104 -0
- data/test/ruby/utils/file_system_watcher_spec.rb +221 -0
- data/test/ruby/utils/hosts_file_parser.rb +258 -0
- data/test/ruby/utils/unseekable_socket_spec.rb +66 -0
- data/test/ruby/utils_spec.rb +410 -59
- data/test/ruby/wsgi/application_spawner_spec.rb +16 -20
- data/test/stub/apache2/httpd.conf.erb +11 -6
- data/test/stub/message_channel.rb +3 -1
- data/test/stub/message_channel_2.rb +3 -1
- data/test/stub/message_channel_3.rb +5 -3
- data/test/stub/nginx/nginx.conf.erb +3 -2
- data/test/stub/rails_apps/1.2/empty/Rakefile +10 -0
- data/test/stub/rails_apps/1.2/empty/app/controllers/application.rb +7 -0
- data/test/stub/rails_apps/{foobar → 1.2/empty}/app/helpers/application_helper.rb +0 -0
- data/test/stub/rails_apps/{mycook → 1.2/empty}/config/boot.rb +3 -3
- data/test/stub/rails_apps/1.2/empty/config/database.yml +31 -0
- data/test/stub/rails_apps/1.2/empty/config/environment.rb +66 -0
- data/test/stub/rails_apps/1.2/empty/config/environments/development.rb +21 -0
- data/test/stub/rails_apps/{foobar → 1.2/empty}/config/environments/production.rb +0 -0
- data/test/stub/rails_apps/1.2/empty/config/environments/staging.rb +18 -0
- data/test/stub/rails_apps/1.2/empty/config/environments/test.rb +19 -0
- data/test/stub/rails_apps/1.2/empty/config/routes.rb +23 -0
- data/test/stub/rails_apps/1.2/empty/doc/README_FOR_APP +2 -0
- data/test/stub/rails_apps/{mycook → 1.2/empty}/public/404.html +0 -0
- data/test/stub/rails_apps/1.2/empty/public/500.html +30 -0
- data/test/stub/rails_apps/1.2/empty/public/dispatch.cgi +10 -0
- data/test/stub/rails_apps/1.2/empty/public/dispatch.fcgi +24 -0
- data/test/stub/rails_apps/1.2/empty/public/dispatch.rb +10 -0
- data/test/stub/rails_apps/{mycook → 1.2/empty}/public/favicon.ico +0 -0
- data/test/stub/rails_apps/{mycook → 1.2/empty}/public/images/rails.png +0 -0
- data/test/stub/rails_apps/1.2/empty/public/robots.txt +1 -0
- data/test/stub/rails_apps/1.2/empty/script/about +3 -0
- data/test/stub/rails_apps/1.2/empty/script/breakpointer +3 -0
- data/test/stub/rails_apps/1.2/empty/script/console +3 -0
- data/test/stub/rails_apps/1.2/empty/script/destroy +3 -0
- data/test/stub/rails_apps/1.2/empty/script/generate +3 -0
- data/test/stub/rails_apps/1.2/empty/script/performance/benchmarker +3 -0
- data/test/stub/rails_apps/1.2/empty/script/performance/profiler +3 -0
- data/test/stub/rails_apps/1.2/empty/script/plugin +3 -0
- data/test/stub/rails_apps/1.2/empty/script/process/inspector +3 -0
- data/test/stub/rails_apps/1.2/empty/script/process/reaper +3 -0
- data/test/stub/rails_apps/1.2/empty/script/process/spawner +3 -0
- data/test/stub/rails_apps/1.2/empty/script/runner +3 -0
- data/test/stub/rails_apps/1.2/empty/script/server +3 -0
- data/test/stub/rails_apps/1.2/empty/test/test_helper.rb +28 -0
- data/test/stub/rails_apps/2.0/empty/Rakefile +10 -0
- data/test/stub/rails_apps/2.0/empty/app/controllers/application.rb +10 -0
- data/test/stub/rails_apps/{mycook → 2.0/empty}/app/helpers/application_helper.rb +0 -0
- data/test/stub/rails_apps/{foobar → 2.0/empty}/config/boot.rb +3 -3
- data/test/stub/rails_apps/2.0/empty/config/database.yml +31 -0
- data/test/stub/rails_apps/2.0/empty/config/environment.rb +59 -0
- data/test/stub/rails_apps/{mycook → 2.0/empty}/config/environments/development.rb +1 -1
- data/test/stub/rails_apps/2.0/empty/config/environments/production.rb +18 -0
- data/test/stub/rails_apps/2.0/empty/config/environments/staging.rb +18 -0
- data/test/stub/rails_apps/2.0/empty/config/environments/test.rb +22 -0
- data/test/stub/rails_apps/{foobar → 2.0/empty}/config/initializers/inflections.rb +0 -0
- data/test/stub/rails_apps/{foobar → 2.0/empty}/config/initializers/mime_types.rb +0 -0
- data/test/stub/rails_apps/{foobar → 2.0/empty}/config/routes.rb +0 -0
- data/test/stub/rails_apps/2.0/empty/doc/README_FOR_APP +2 -0
- data/test/stub/rails_apps/2.0/empty/public/404.html +30 -0
- data/test/stub/rails_apps/{mycook → 2.0/empty}/public/422.html +0 -0
- data/test/stub/rails_apps/{mycook → 2.0/empty}/public/500.html +0 -0
- data/test/stub/rails_apps/2.0/empty/public/dispatch.cgi +10 -0
- data/test/stub/rails_apps/2.0/empty/public/dispatch.fcgi +24 -0
- data/test/stub/rails_apps/2.0/empty/public/dispatch.rb +10 -0
- data/test/stub/rails_apps/2.0/empty/public/favicon.ico +0 -0
- data/test/stub/rails_apps/2.0/empty/public/images/rails.png +0 -0
- data/test/stub/rails_apps/{mycook → 2.0/empty}/public/robots.txt +0 -0
- data/test/stub/rails_apps/2.0/empty/script/about +3 -0
- data/test/stub/rails_apps/2.0/empty/script/console +3 -0
- data/test/stub/rails_apps/2.0/empty/script/destroy +3 -0
- data/test/stub/rails_apps/2.0/empty/script/generate +3 -0
- data/test/stub/rails_apps/2.0/empty/script/performance/benchmarker +3 -0
- data/test/stub/rails_apps/2.0/empty/script/performance/profiler +3 -0
- data/test/stub/rails_apps/2.0/empty/script/performance/request +3 -0
- data/test/stub/rails_apps/2.0/empty/script/plugin +3 -0
- data/test/stub/rails_apps/2.0/empty/script/process/inspector +3 -0
- data/test/stub/rails_apps/2.0/empty/script/process/reaper +3 -0
- data/test/stub/rails_apps/2.0/empty/script/process/spawner +3 -0
- data/test/stub/rails_apps/2.0/empty/script/runner +3 -0
- data/test/stub/rails_apps/2.0/empty/script/server +3 -0
- data/test/stub/rails_apps/2.0/empty/test/test_helper.rb +38 -0
- data/test/stub/rails_apps/2.2/empty/Rakefile +10 -0
- data/test/stub/rails_apps/2.2/empty/app/controllers/application.rb +15 -0
- data/test/stub/rails_apps/2.2/empty/app/helpers/application_helper.rb +3 -0
- data/test/stub/rails_apps/2.2/empty/config/boot.rb +109 -0
- data/test/stub/rails_apps/2.2/empty/config/database.yml +31 -0
- data/test/stub/rails_apps/2.2/empty/config/environment.rb +75 -0
- data/test/stub/rails_apps/{foobar → 2.2/empty}/config/environments/development.rb +0 -0
- data/test/stub/rails_apps/2.2/empty/config/environments/production.rb +24 -0
- data/test/stub/rails_apps/2.2/empty/config/environments/staging.rb +24 -0
- data/test/stub/rails_apps/2.2/empty/config/environments/test.rb +22 -0
- data/test/stub/rails_apps/2.2/empty/config/initializers/inflections.rb +10 -0
- data/test/stub/rails_apps/{mycook → 2.2/empty}/config/initializers/mime_types.rb +0 -0
- data/test/stub/rails_apps/2.2/empty/config/initializers/new_rails_defaults.rb +17 -0
- data/test/stub/rails_apps/2.2/empty/config/locales/en.yml +5 -0
- data/test/stub/rails_apps/2.2/empty/config/routes.rb +43 -0
- data/test/stub/rails_apps/2.2/empty/doc/README_FOR_APP +5 -0
- data/test/stub/rails_apps/2.2/empty/public/404.html +30 -0
- data/test/stub/rails_apps/2.2/empty/public/422.html +30 -0
- data/test/stub/rails_apps/2.2/empty/public/500.html +33 -0
- data/test/stub/rails_apps/2.2/empty/public/dispatch.cgi +10 -0
- data/test/stub/rails_apps/2.2/empty/public/dispatch.fcgi +24 -0
- data/test/stub/rails_apps/2.2/empty/public/dispatch.rb +10 -0
- data/test/stub/rails_apps/2.2/empty/public/favicon.ico +0 -0
- data/test/stub/rails_apps/2.2/empty/public/images/rails.png +0 -0
- data/test/stub/rails_apps/2.2/empty/public/robots.txt +5 -0
- data/test/stub/rails_apps/2.2/empty/script/about +4 -0
- data/test/stub/rails_apps/2.2/empty/script/console +3 -0
- data/test/stub/rails_apps/2.2/empty/script/dbconsole +3 -0
- data/test/stub/rails_apps/2.2/empty/script/destroy +3 -0
- data/test/stub/rails_apps/2.2/empty/script/generate +3 -0
- data/test/stub/rails_apps/2.2/empty/script/performance/benchmarker +3 -0
- data/test/stub/rails_apps/2.2/empty/script/performance/profiler +3 -0
- data/test/stub/rails_apps/2.2/empty/script/performance/request +3 -0
- data/test/stub/rails_apps/2.2/empty/script/plugin +3 -0
- data/test/stub/rails_apps/2.2/empty/script/process/inspector +3 -0
- data/test/stub/rails_apps/2.2/empty/script/process/reaper +3 -0
- data/test/stub/rails_apps/2.2/empty/script/process/spawner +3 -0
- data/test/stub/rails_apps/2.2/empty/script/runner +3 -0
- data/test/stub/rails_apps/2.2/empty/script/server +3 -0
- data/test/stub/rails_apps/2.2/empty/test/performance/browsing_test.rb +9 -0
- data/test/stub/rails_apps/2.2/empty/test/test_helper.rb +38 -0
- data/test/stub/rails_apps/2.3/empty/Rakefile +10 -0
- data/test/stub/rails_apps/2.3/empty/app/controllers/application_controller.rb +10 -0
- data/test/stub/rails_apps/2.3/empty/app/helpers/application_helper.rb +3 -0
- data/test/stub/rails_apps/2.3/empty/config/boot.rb +110 -0
- data/test/stub/rails_apps/2.3/empty/config/database.yml +31 -0
- data/test/stub/rails_apps/2.3/empty/config/environment.rb +41 -0
- data/test/stub/rails_apps/2.3/empty/config/environments/development.rb +17 -0
- data/test/stub/rails_apps/2.3/empty/config/environments/production.rb +28 -0
- data/test/stub/rails_apps/2.3/empty/config/environments/staging.rb +28 -0
- data/test/stub/rails_apps/2.3/empty/config/environments/test.rb +28 -0
- data/test/stub/rails_apps/2.3/empty/config/initializers/backtrace_silencers.rb +7 -0
- data/test/stub/rails_apps/2.3/empty/config/initializers/inflections.rb +10 -0
- data/test/stub/rails_apps/2.3/empty/config/initializers/mime_types.rb +5 -0
- data/test/stub/rails_apps/2.3/empty/config/initializers/new_rails_defaults.rb +21 -0
- data/test/stub/rails_apps/2.3/empty/config/initializers/session_store.rb +15 -0
- data/test/stub/rails_apps/2.3/empty/config/locales/en.yml +5 -0
- data/test/stub/rails_apps/2.3/empty/config/routes.rb +43 -0
- data/test/stub/rails_apps/2.3/empty/db/seeds.rb +7 -0
- data/test/stub/rails_apps/2.3/empty/doc/README_FOR_APP +2 -0
- data/test/stub/rails_apps/2.3/empty/public/404.html +30 -0
- data/test/stub/rails_apps/2.3/empty/public/422.html +30 -0
- data/test/stub/rails_apps/2.3/empty/public/500.html +30 -0
- data/test/stub/rails_apps/2.3/empty/public/favicon.ico +0 -0
- data/test/stub/rails_apps/2.3/empty/public/images/rails.png +0 -0
- data/test/stub/rails_apps/2.3/empty/public/robots.txt +5 -0
- data/test/stub/rails_apps/2.3/empty/script/about +4 -0
- data/test/stub/rails_apps/2.3/empty/script/console +3 -0
- data/test/stub/rails_apps/2.3/empty/script/dbconsole +3 -0
- data/test/stub/rails_apps/2.3/empty/script/destroy +3 -0
- data/test/stub/rails_apps/2.3/empty/script/generate +3 -0
- data/test/stub/rails_apps/2.3/empty/script/performance/benchmarker +3 -0
- data/test/stub/rails_apps/2.3/empty/script/performance/profiler +3 -0
- data/test/stub/rails_apps/2.3/empty/script/plugin +3 -0
- data/test/stub/rails_apps/2.3/empty/script/runner +3 -0
- data/test/stub/rails_apps/2.3/empty/script/server +3 -0
- data/test/stub/rails_apps/2.3/empty/test/performance/browsing_test.rb +9 -0
- data/test/stub/rails_apps/2.3/empty/test/test_helper.rb +38 -0
- data/test/stub/rails_apps/2.3/foobar/Rakefile +10 -0
- data/test/stub/rails_apps/{foobar/app/controllers/application.rb → 2.3/foobar/app/controllers/application_controller.rb} +0 -0
- data/test/stub/rails_apps/{foobar → 2.3/foobar}/app/controllers/bar_controller_1.rb +0 -0
- data/test/stub/rails_apps/{foobar → 2.3/foobar}/app/controllers/bar_controller_2.rb +0 -0
- data/test/stub/rails_apps/{foobar → 2.3/foobar}/app/controllers/foo_controller.rb +0 -0
- data/test/stub/rails_apps/2.3/foobar/app/helpers/application_helper.rb +3 -0
- data/test/stub/rails_apps/2.3/foobar/config/boot.rb +110 -0
- data/test/stub/rails_apps/{foobar → 2.3/foobar}/config/database.yml +0 -0
- data/test/stub/rails_apps/{foobar → 2.3/foobar}/config/environment.rb +1 -1
- data/test/stub/rails_apps/2.3/foobar/config/environments/development.rb +17 -0
- data/test/stub/rails_apps/2.3/foobar/config/environments/production.rb +18 -0
- data/test/stub/rails_apps/2.3/foobar/config/environments/staging.rb +18 -0
- data/test/stub/rails_apps/{mycook → 2.3/foobar}/config/initializers/inflections.rb +0 -0
- data/test/stub/rails_apps/2.3/foobar/config/initializers/mime_types.rb +5 -0
- data/test/stub/rails_apps/2.3/foobar/config/routes.rb +35 -0
- data/test/stub/rails_apps/2.3/foobar/script/about +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/console +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/dbconsole +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/destroy +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/generate +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/performance/benchmarker +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/performance/profiler +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/performance/request +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/plugin +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/process/inspector +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/process/reaper +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/process/spawner +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/runner +3 -0
- data/test/stub/rails_apps/2.3/foobar/script/server +3 -0
- data/test/stub/rails_apps/2.3/mycook/Rakefile +10 -0
- data/test/stub/rails_apps/{mycook/app/controllers/application.rb → 2.3/mycook/app/controllers/application_controller.rb} +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/controllers/recipes_controller.rb +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/controllers/uploads_controller.rb +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/controllers/welcome_controller.rb +0 -0
- data/test/stub/rails_apps/2.3/mycook/app/helpers/application_helper.rb +3 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/layouts/default.rhtml +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/recipes/create.rhtml +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/recipes/index.rhtml +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/recipes/new.rhtml +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/uploads/index.rhtml +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/uploads/new.html.erb +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/welcome/cached.rhtml +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/welcome/index.rhtml +0 -0
- data/test/stub/rails_apps/2.3/mycook/config/boot.rb +110 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/config/database.yml +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/config/environment.rb +1 -1
- data/test/stub/rails_apps/2.3/mycook/config/environments/development.rb +18 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/config/environments/production.rb +0 -0
- data/test/stub/rails_apps/2.3/mycook/config/initializers/inflections.rb +10 -0
- data/test/stub/rails_apps/2.3/mycook/config/initializers/mime_types.rb +5 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/config/routes.rb +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/log/useless.txt +0 -0
- data/test/stub/rails_apps/2.3/mycook/public/404.html +30 -0
- data/test/stub/rails_apps/2.3/mycook/public/422.html +30 -0
- data/test/stub/rails_apps/2.3/mycook/public/500.html +30 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/dispatch.cgi +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/dispatch.fcgi +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/dispatch.rb +1 -1
- data/test/stub/rails_apps/2.3/mycook/public/favicon.ico +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/images/angrywizard.gif +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/images/cookbook.gif +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/images/header.png +0 -0
- data/test/stub/rails_apps/2.3/mycook/public/images/rails.png +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/application.js +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/controls.js +73 -73
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/dragdrop.js +166 -165
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/effects.js +174 -166
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/prototype.js +362 -267
- data/test/stub/rails_apps/2.3/mycook/public/robots.txt +5 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/uploads.html +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/welcome/cached.html +0 -0
- data/test/stub/rails_apps/2.3/mycook/script/about +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/console +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/dbconsole +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/destroy +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/generate +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/performance/benchmarker +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/performance/profiler +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/performance/request +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/plugin +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/process/inspector +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/process/reaper +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/process/spawner +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/runner +3 -0
- data/test/stub/rails_apps/2.3/mycook/script/server +3 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/sites/some.site/public/uploads.html +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/sites/some.site/public/welcome/cached.html +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/tmp/cache/useless.txt +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/tmp/pids/useless.txt +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/tmp/sessions/useless.txt +0 -0
- data/test/stub/rails_apps/{mycook → 2.3/mycook}/tmp/sockets/useless.txt +0 -0
- data/test/stub/rails_apps/3.0/empty/Gemfile +22 -0
- data/test/stub/rails_apps/3.0/empty/Rakefile +10 -0
- data/test/stub/rails_apps/3.0/empty/app/controllers/application_controller.rb +4 -0
- data/test/stub/rails_apps/3.0/empty/app/helpers/application_helper.rb +2 -0
- data/test/stub/rails_apps/3.0/empty/app/views/layouts/application.html.erb +14 -0
- data/test/stub/rails_apps/3.0/empty/config.ru +4 -0
- data/test/stub/rails_apps/3.0/empty/config/application.rb +48 -0
- data/test/stub/rails_apps/3.0/empty/config/boot.rb +13 -0
- data/test/stub/rails_apps/3.0/empty/config/database.yml +22 -0
- data/test/stub/rails_apps/3.0/empty/config/environment.rb +5 -0
- data/test/stub/rails_apps/3.0/empty/config/environments/development.rb +19 -0
- data/test/stub/rails_apps/3.0/empty/config/environments/production.rb +48 -0
- data/test/stub/rails_apps/3.0/empty/config/environments/test.rb +32 -0
- data/test/stub/rails_apps/3.0/empty/config/initializers/backtrace_silencers.rb +7 -0
- data/test/stub/rails_apps/3.0/empty/config/initializers/inflections.rb +10 -0
- data/test/stub/rails_apps/3.0/empty/config/initializers/mime_types.rb +5 -0
- data/test/stub/rails_apps/3.0/empty/config/initializers/passenger.rb +1 -0
- data/test/stub/rails_apps/3.0/empty/config/initializers/secret_token.rb +7 -0
- data/test/stub/rails_apps/3.0/empty/config/initializers/session_store.rb +8 -0
- data/test/stub/rails_apps/3.0/empty/config/locales/en.yml +5 -0
- data/test/stub/rails_apps/3.0/empty/config/routes.rb +58 -0
- data/test/stub/rails_apps/3.0/empty/db/seeds.rb +7 -0
- data/test/stub/rails_apps/3.0/empty/doc/README_FOR_APP +2 -0
- data/test/stub/rails_apps/3.0/empty/log/development.log +3 -0
- data/test/stub/rails_apps/3.0/empty/public/404.html +26 -0
- data/test/stub/rails_apps/3.0/empty/public/422.html +26 -0
- data/test/stub/rails_apps/3.0/empty/public/500.html +26 -0
- data/test/stub/rails_apps/3.0/empty/public/favicon.ico +0 -0
- data/test/stub/rails_apps/3.0/empty/public/index.html +279 -0
- data/test/stub/rails_apps/3.0/empty/public/robots.txt +5 -0
- data/test/stub/rails_apps/3.0/empty/script/rails +9 -0
- data/test/stub/rails_apps/3.0/empty/test/performance/browsing_test.rb +9 -0
- data/test/stub/rails_apps/3.0/empty/test/test_helper.rb +13 -0
- data/test/stub/spawn_server.rb +4 -2
- data/test/stub/vendor_rails/minimal/actionpack/lib/action_controller.rb +3 -0
- data/test/stub/vendor_rails/minimal/railties/lib/initializer.rb +7 -2
- data/test/support/apache2_controller.rb +10 -2
- data/test/support/nginx_controller.rb +3 -2
- data/test/support/test_helper.rb +282 -46
- data/test/{support → tut}/tut.h +6 -0
- data/test/{support → tut}/tut_reporter.h +0 -0
- metadata +824 -266
- data/benchmark/ApplicationPool.cpp +0 -52
- data/benchmark/accept_vs_socketpair_vs_named_pipes.rb +0 -126
- data/benchmark/dispatcher.rb +0 -42
- data/benchmark/overhead_of_password_checking.rb +0 -81
- data/benchmark/socket_connections_vs_persistent_pipe.rb +0 -99
- data/benchmark/unix_sockets_vs_pipes.rb +0 -83
- data/ext/boost/LICENSE.TXT +0 -23
- data/ext/boost/VERSION.TXT +0 -1
- data/ext/boost/detail/sp_counted_base.hpp +0 -81
- data/ext/boost/src/pthread/exceptions.cpp +0 -146
- data/ext/boost/src/win32/exceptions.cpp +0 -124
- data/ext/boost/src/win32/thread.cpp +0 -629
- data/ext/boost/src/win32/timeconv.inl +0 -130
- data/ext/boost/src/win32/tss_dll.cpp +0 -72
- data/ext/boost/src/win32/tss_pe.cpp +0 -269
- data/ext/boost/thread/pthread/thread.hpp +0 -339
- data/ext/boost/thread/pthread/tss.hpp +0 -103
- data/ext/common/Application.h +0 -511
- data/ext/common/ApplicationPoolServer.h +0 -794
- data/ext/common/ApplicationPoolServerExecutable.cpp +0 -743
- data/ext/common/ApplicationPoolStatusReporter.h +0 -336
- data/ext/common/DummySpawnManager.h +0 -108
- data/ext/common/StandardApplicationPool.h +0 -821
- data/ext/common/SystemTime.h +0 -88
- data/lib/phusion_passenger/admin_tools/control_process.rb +0 -150
- data/lib/phusion_passenger/railz/application_spawner.rb +0 -463
- data/lib/phusion_passenger/templates/invalid_app_root.html.erb +0 -9
- data/test/ApplicationPoolServerTest.cpp +0 -114
- data/test/ApplicationPoolServer_ApplicationPoolTest.cpp +0 -33
- data/test/ApplicationPoolTest.cpp +0 -599
- data/test/MessageChannelTest.cpp +0 -320
- data/test/SpawnManagerTest.cpp +0 -64
- data/test/StandardApplicationPoolTest.cpp +0 -27
- data/test/StaticStringTest.cpp +0 -51
- data/test/UtilsTest.cpp +0 -257
- data/test/ruby/rails/application_spawner_spec.rb +0 -159
- data/test/ruby/rails/framework_spawner_spec.rb +0 -133
- data/test/ruby/rails/minimal_spawner_spec.rb +0 -93
- data/test/ruby/rails/spawner_error_handling_spec.rb +0 -107
- data/test/ruby/rails/spawner_privilege_lowering_spec.rb +0 -97
- data/test/ruby/spawn_server_spec.rb +0 -26
- data/test/stub/MessageServer.dSYM/Contents/Info.plist +0 -25
- data/test/stub/MessageServer.dSYM/Contents/Resources/DWARF/MessageServer +0 -0
- data/test/support/Support.cpp +0 -84
- data/test/support/Support.h +0 -118
- data/test/support/config.rb +0 -38
- data/test/support/run_rspec_tests.rb +0 -10
@@ -1,5 +1,5 @@
|
|
1
|
-
/* Prototype JavaScript framework, version 1.6.0.
|
2
|
-
* (c) 2005-
|
1
|
+
/* Prototype JavaScript framework, version 1.6.0.3
|
2
|
+
* (c) 2005-2008 Sam Stephenson
|
3
3
|
*
|
4
4
|
* Prototype is freely distributable under the terms of an MIT-style license.
|
5
5
|
* For details, see the Prototype web site: http://www.prototypejs.org/
|
@@ -7,23 +7,26 @@
|
|
7
7
|
*--------------------------------------------------------------------------*/
|
8
8
|
|
9
9
|
var Prototype = {
|
10
|
-
Version: '1.6.0.
|
10
|
+
Version: '1.6.0.3',
|
11
11
|
|
12
12
|
Browser: {
|
13
|
-
IE: !!(window.attachEvent &&
|
14
|
-
|
13
|
+
IE: !!(window.attachEvent &&
|
14
|
+
navigator.userAgent.indexOf('Opera') === -1),
|
15
|
+
Opera: navigator.userAgent.indexOf('Opera') > -1,
|
15
16
|
WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
|
16
|
-
Gecko: navigator.userAgent.indexOf('Gecko') > -1 &&
|
17
|
+
Gecko: navigator.userAgent.indexOf('Gecko') > -1 &&
|
18
|
+
navigator.userAgent.indexOf('KHTML') === -1,
|
17
19
|
MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
|
18
20
|
},
|
19
21
|
|
20
22
|
BrowserFeatures: {
|
21
23
|
XPath: !!document.evaluate,
|
24
|
+
SelectorsAPI: !!document.querySelector,
|
22
25
|
ElementExtensions: !!window.HTMLElement,
|
23
26
|
SpecificElementExtensions:
|
24
|
-
document.createElement('div')
|
25
|
-
document.createElement('div')
|
26
|
-
document.createElement('form')
|
27
|
+
document.createElement('div')['__proto__'] &&
|
28
|
+
document.createElement('div')['__proto__'] !==
|
29
|
+
document.createElement('form')['__proto__']
|
27
30
|
},
|
28
31
|
|
29
32
|
ScriptFragment: '<script[^>]*>([\\S\\s]*?)<\/script>',
|
@@ -83,12 +86,13 @@ Class.Methods = {
|
|
83
86
|
var property = properties[i], value = source[property];
|
84
87
|
if (ancestor && Object.isFunction(value) &&
|
85
88
|
value.argumentNames().first() == "$super") {
|
86
|
-
var method = value
|
89
|
+
var method = value;
|
90
|
+
value = (function(m) {
|
87
91
|
return function() { return ancestor[m].apply(this, arguments) };
|
88
|
-
})(property).wrap(method)
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
+
})(property).wrap(method);
|
93
|
+
|
94
|
+
value.valueOf = method.valueOf.bind(method);
|
95
|
+
value.toString = method.toString.bind(method);
|
92
96
|
}
|
93
97
|
this.prototype[property] = value;
|
94
98
|
}
|
@@ -110,7 +114,7 @@ Object.extend(Object, {
|
|
110
114
|
try {
|
111
115
|
if (Object.isUndefined(object)) return 'undefined';
|
112
116
|
if (object === null) return 'null';
|
113
|
-
return object.inspect ? object.inspect() : object
|
117
|
+
return object.inspect ? object.inspect() : String(object);
|
114
118
|
} catch (e) {
|
115
119
|
if (e instanceof RangeError) return '...';
|
116
120
|
throw e;
|
@@ -167,11 +171,12 @@ Object.extend(Object, {
|
|
167
171
|
},
|
168
172
|
|
169
173
|
isElement: function(object) {
|
170
|
-
return object && object.nodeType == 1;
|
174
|
+
return !!(object && object.nodeType == 1);
|
171
175
|
},
|
172
176
|
|
173
177
|
isArray: function(object) {
|
174
|
-
return object && object
|
178
|
+
return object != null && typeof object == "object" &&
|
179
|
+
'splice' in object && 'join' in object;
|
175
180
|
},
|
176
181
|
|
177
182
|
isHash: function(object) {
|
@@ -197,7 +202,8 @@ Object.extend(Object, {
|
|
197
202
|
|
198
203
|
Object.extend(Function.prototype, {
|
199
204
|
argumentNames: function() {
|
200
|
-
var names = this.toString().match(/^[\s\(]*function[^(]*\((
|
205
|
+
var names = this.toString().match(/^[\s\(]*function[^(]*\(([^\)]*)\)/)[1]
|
206
|
+
.replace(/\s+/g, '').split(',');
|
201
207
|
return names.length == 1 && !names[0] ? [] : names;
|
202
208
|
},
|
203
209
|
|
@@ -231,6 +237,11 @@ Object.extend(Function.prototype, {
|
|
231
237
|
}, timeout);
|
232
238
|
},
|
233
239
|
|
240
|
+
defer: function() {
|
241
|
+
var args = [0.01].concat($A(arguments));
|
242
|
+
return this.delay.apply(this, args);
|
243
|
+
},
|
244
|
+
|
234
245
|
wrap: function(wrapper) {
|
235
246
|
var __method = this;
|
236
247
|
return function() {
|
@@ -247,8 +258,6 @@ Object.extend(Function.prototype, {
|
|
247
258
|
}
|
248
259
|
});
|
249
260
|
|
250
|
-
Function.prototype.defer = Function.prototype.delay.curry(0.01);
|
251
|
-
|
252
261
|
Date.prototype.toJSON = function() {
|
253
262
|
return '"' + this.getUTCFullYear() + '-' +
|
254
263
|
(this.getUTCMonth() + 1).toPaddedString(2) + '-' +
|
@@ -529,7 +538,7 @@ if (Prototype.Browser.WebKit || Prototype.Browser.IE) Object.extend(String.proto
|
|
529
538
|
return this.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>');
|
530
539
|
},
|
531
540
|
unescapeHTML: function() {
|
532
|
-
return this.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>');
|
541
|
+
return this.stripTags().replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>');
|
533
542
|
}
|
534
543
|
});
|
535
544
|
|
@@ -546,7 +555,7 @@ Object.extend(String.prototype.escapeHTML, {
|
|
546
555
|
text: document.createTextNode('')
|
547
556
|
});
|
548
557
|
|
549
|
-
|
558
|
+
String.prototype.escapeHTML.div.appendChild(String.prototype.escapeHTML.text);
|
550
559
|
|
551
560
|
var Template = Class.create({
|
552
561
|
initialize: function(template, pattern) {
|
@@ -578,7 +587,7 @@ var Template = Class.create({
|
|
578
587
|
}
|
579
588
|
|
580
589
|
return before + String.interpret(ctx);
|
581
|
-
}
|
590
|
+
});
|
582
591
|
}
|
583
592
|
});
|
584
593
|
Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/;
|
@@ -588,10 +597,9 @@ var $break = { };
|
|
588
597
|
var Enumerable = {
|
589
598
|
each: function(iterator, context) {
|
590
599
|
var index = 0;
|
591
|
-
iterator = iterator.bind(context);
|
592
600
|
try {
|
593
601
|
this._each(function(value) {
|
594
|
-
iterator(value, index++);
|
602
|
+
iterator.call(context, value, index++);
|
595
603
|
});
|
596
604
|
} catch (e) {
|
597
605
|
if (e != $break) throw e;
|
@@ -600,47 +608,46 @@ var Enumerable = {
|
|
600
608
|
},
|
601
609
|
|
602
610
|
eachSlice: function(number, iterator, context) {
|
603
|
-
iterator = iterator ? iterator.bind(context) : Prototype.K;
|
604
611
|
var index = -number, slices = [], array = this.toArray();
|
612
|
+
if (number < 1) return array;
|
605
613
|
while ((index += number) < array.length)
|
606
614
|
slices.push(array.slice(index, index+number));
|
607
615
|
return slices.collect(iterator, context);
|
608
616
|
},
|
609
617
|
|
610
618
|
all: function(iterator, context) {
|
611
|
-
iterator = iterator
|
619
|
+
iterator = iterator || Prototype.K;
|
612
620
|
var result = true;
|
613
621
|
this.each(function(value, index) {
|
614
|
-
result = result && !!iterator(value, index);
|
622
|
+
result = result && !!iterator.call(context, value, index);
|
615
623
|
if (!result) throw $break;
|
616
624
|
});
|
617
625
|
return result;
|
618
626
|
},
|
619
627
|
|
620
628
|
any: function(iterator, context) {
|
621
|
-
iterator = iterator
|
629
|
+
iterator = iterator || Prototype.K;
|
622
630
|
var result = false;
|
623
631
|
this.each(function(value, index) {
|
624
|
-
if (result = !!iterator(value, index))
|
632
|
+
if (result = !!iterator.call(context, value, index))
|
625
633
|
throw $break;
|
626
634
|
});
|
627
635
|
return result;
|
628
636
|
},
|
629
637
|
|
630
638
|
collect: function(iterator, context) {
|
631
|
-
iterator = iterator
|
639
|
+
iterator = iterator || Prototype.K;
|
632
640
|
var results = [];
|
633
641
|
this.each(function(value, index) {
|
634
|
-
results.push(iterator(value, index));
|
642
|
+
results.push(iterator.call(context, value, index));
|
635
643
|
});
|
636
644
|
return results;
|
637
645
|
},
|
638
646
|
|
639
647
|
detect: function(iterator, context) {
|
640
|
-
iterator = iterator.bind(context);
|
641
648
|
var result;
|
642
649
|
this.each(function(value, index) {
|
643
|
-
if (iterator(value, index)) {
|
650
|
+
if (iterator.call(context, value, index)) {
|
644
651
|
result = value;
|
645
652
|
throw $break;
|
646
653
|
}
|
@@ -649,17 +656,16 @@ var Enumerable = {
|
|
649
656
|
},
|
650
657
|
|
651
658
|
findAll: function(iterator, context) {
|
652
|
-
iterator = iterator.bind(context);
|
653
659
|
var results = [];
|
654
660
|
this.each(function(value, index) {
|
655
|
-
if (iterator(value, index))
|
661
|
+
if (iterator.call(context, value, index))
|
656
662
|
results.push(value);
|
657
663
|
});
|
658
664
|
return results;
|
659
665
|
},
|
660
666
|
|
661
667
|
grep: function(filter, iterator, context) {
|
662
|
-
iterator = iterator
|
668
|
+
iterator = iterator || Prototype.K;
|
663
669
|
var results = [];
|
664
670
|
|
665
671
|
if (Object.isString(filter))
|
@@ -667,7 +673,7 @@ var Enumerable = {
|
|
667
673
|
|
668
674
|
this.each(function(value, index) {
|
669
675
|
if (filter.match(value))
|
670
|
-
results.push(iterator(value, index));
|
676
|
+
results.push(iterator.call(context, value, index));
|
671
677
|
});
|
672
678
|
return results;
|
673
679
|
},
|
@@ -695,9 +701,8 @@ var Enumerable = {
|
|
695
701
|
},
|
696
702
|
|
697
703
|
inject: function(memo, iterator, context) {
|
698
|
-
iterator = iterator.bind(context);
|
699
704
|
this.each(function(value, index) {
|
700
|
-
memo = iterator(memo, value, index);
|
705
|
+
memo = iterator.call(context, memo, value, index);
|
701
706
|
});
|
702
707
|
return memo;
|
703
708
|
},
|
@@ -710,10 +715,10 @@ var Enumerable = {
|
|
710
715
|
},
|
711
716
|
|
712
717
|
max: function(iterator, context) {
|
713
|
-
iterator = iterator
|
718
|
+
iterator = iterator || Prototype.K;
|
714
719
|
var result;
|
715
720
|
this.each(function(value, index) {
|
716
|
-
value = iterator(value, index);
|
721
|
+
value = iterator.call(context, value, index);
|
717
722
|
if (result == null || value >= result)
|
718
723
|
result = value;
|
719
724
|
});
|
@@ -721,10 +726,10 @@ var Enumerable = {
|
|
721
726
|
},
|
722
727
|
|
723
728
|
min: function(iterator, context) {
|
724
|
-
iterator = iterator
|
729
|
+
iterator = iterator || Prototype.K;
|
725
730
|
var result;
|
726
731
|
this.each(function(value, index) {
|
727
|
-
value = iterator(value, index);
|
732
|
+
value = iterator.call(context, value, index);
|
728
733
|
if (result == null || value < result)
|
729
734
|
result = value;
|
730
735
|
});
|
@@ -732,10 +737,10 @@ var Enumerable = {
|
|
732
737
|
},
|
733
738
|
|
734
739
|
partition: function(iterator, context) {
|
735
|
-
iterator = iterator
|
740
|
+
iterator = iterator || Prototype.K;
|
736
741
|
var trues = [], falses = [];
|
737
742
|
this.each(function(value, index) {
|
738
|
-
(iterator(value, index) ?
|
743
|
+
(iterator.call(context, value, index) ?
|
739
744
|
trues : falses).push(value);
|
740
745
|
});
|
741
746
|
return [trues, falses];
|
@@ -750,19 +755,20 @@ var Enumerable = {
|
|
750
755
|
},
|
751
756
|
|
752
757
|
reject: function(iterator, context) {
|
753
|
-
iterator = iterator.bind(context);
|
754
758
|
var results = [];
|
755
759
|
this.each(function(value, index) {
|
756
|
-
if (!iterator(value, index))
|
760
|
+
if (!iterator.call(context, value, index))
|
757
761
|
results.push(value);
|
758
762
|
});
|
759
763
|
return results;
|
760
764
|
},
|
761
765
|
|
762
766
|
sortBy: function(iterator, context) {
|
763
|
-
iterator = iterator.bind(context);
|
764
767
|
return this.map(function(value, index) {
|
765
|
-
return {
|
768
|
+
return {
|
769
|
+
value: value,
|
770
|
+
criteria: iterator.call(context, value, index)
|
771
|
+
};
|
766
772
|
}).sort(function(left, right) {
|
767
773
|
var a = left.criteria, b = right.criteria;
|
768
774
|
return a < b ? -1 : a > b ? 1 : 0;
|
@@ -806,20 +812,24 @@ Object.extend(Enumerable, {
|
|
806
812
|
function $A(iterable) {
|
807
813
|
if (!iterable) return [];
|
808
814
|
if (iterable.toArray) return iterable.toArray();
|
809
|
-
var length = iterable.length, results = new Array(length);
|
815
|
+
var length = iterable.length || 0, results = new Array(length);
|
810
816
|
while (length--) results[length] = iterable[length];
|
811
817
|
return results;
|
812
818
|
}
|
813
819
|
|
814
820
|
if (Prototype.Browser.WebKit) {
|
815
|
-
|
821
|
+
$A = function(iterable) {
|
816
822
|
if (!iterable) return [];
|
817
|
-
|
818
|
-
|
819
|
-
|
823
|
+
// In Safari, only use the `toArray` method if it's not a NodeList.
|
824
|
+
// A NodeList is a function, has an function `item` property, and a numeric
|
825
|
+
// `length` property. Adapted from Google Doctype.
|
826
|
+
if (!(typeof iterable === 'function' && typeof iterable.length ===
|
827
|
+
'number' && typeof iterable.item === 'function') && iterable.toArray)
|
828
|
+
return iterable.toArray();
|
829
|
+
var length = iterable.length || 0, results = new Array(length);
|
820
830
|
while (length--) results[length] = iterable[length];
|
821
831
|
return results;
|
822
|
-
}
|
832
|
+
};
|
823
833
|
}
|
824
834
|
|
825
835
|
Array.from = $A;
|
@@ -962,8 +972,8 @@ Object.extend(Number.prototype, {
|
|
962
972
|
return this + 1;
|
963
973
|
},
|
964
974
|
|
965
|
-
times: function(iterator) {
|
966
|
-
$R(0, this, true).each(iterator);
|
975
|
+
times: function(iterator, context) {
|
976
|
+
$R(0, this, true).each(iterator, context);
|
967
977
|
return this;
|
968
978
|
},
|
969
979
|
|
@@ -1010,7 +1020,9 @@ var Hash = Class.create(Enumerable, (function() {
|
|
1010
1020
|
},
|
1011
1021
|
|
1012
1022
|
get: function(key) {
|
1013
|
-
|
1023
|
+
// simulating poorly supported hasOwnProperty
|
1024
|
+
if (this._object[key] !== Object.prototype[key])
|
1025
|
+
return this._object[key];
|
1014
1026
|
},
|
1015
1027
|
|
1016
1028
|
unset: function(key) {
|
@@ -1050,14 +1062,14 @@ var Hash = Class.create(Enumerable, (function() {
|
|
1050
1062
|
},
|
1051
1063
|
|
1052
1064
|
toQueryString: function() {
|
1053
|
-
return this.
|
1065
|
+
return this.inject([], function(results, pair) {
|
1054
1066
|
var key = encodeURIComponent(pair.key), values = pair.value;
|
1055
1067
|
|
1056
1068
|
if (values && typeof values == 'object') {
|
1057
1069
|
if (Object.isArray(values))
|
1058
|
-
return values.map(toQueryPair.curry(key))
|
1059
|
-
}
|
1060
|
-
return
|
1070
|
+
return results.concat(values.map(toQueryPair.curry(key)));
|
1071
|
+
} else results.push(toQueryPair(key, values));
|
1072
|
+
return results;
|
1061
1073
|
}).join('&');
|
1062
1074
|
},
|
1063
1075
|
|
@@ -1298,7 +1310,7 @@ Ajax.Request = Class.create(Ajax.Base, {
|
|
1298
1310
|
|
1299
1311
|
var contentType = response.getHeader('Content-type');
|
1300
1312
|
if (this.options.evalJS == 'force'
|
1301
|
-
|| (this.options.evalJS && contentType
|
1313
|
+
|| (this.options.evalJS && this.isSameOrigin() && contentType
|
1302
1314
|
&& contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i)))
|
1303
1315
|
this.evalResponse();
|
1304
1316
|
}
|
@@ -1316,9 +1328,18 @@ Ajax.Request = Class.create(Ajax.Base, {
|
|
1316
1328
|
}
|
1317
1329
|
},
|
1318
1330
|
|
1331
|
+
isSameOrigin: function() {
|
1332
|
+
var m = this.url.match(/^\s*https?:\/\/[^\/]*/);
|
1333
|
+
return !m || (m[0] == '#{protocol}//#{domain}#{port}'.interpolate({
|
1334
|
+
protocol: location.protocol,
|
1335
|
+
domain: document.domain,
|
1336
|
+
port: location.port ? ':' + location.port : ''
|
1337
|
+
}));
|
1338
|
+
},
|
1339
|
+
|
1319
1340
|
getHeader: function(name) {
|
1320
1341
|
try {
|
1321
|
-
return this.transport.getResponseHeader(name);
|
1342
|
+
return this.transport.getResponseHeader(name) || null;
|
1322
1343
|
} catch (e) { return null }
|
1323
1344
|
},
|
1324
1345
|
|
@@ -1391,7 +1412,8 @@ Ajax.Response = Class.create({
|
|
1391
1412
|
if (!json) return null;
|
1392
1413
|
json = decodeURIComponent(escape(json));
|
1393
1414
|
try {
|
1394
|
-
return json.evalJSON(this.request.options.sanitizeJSON
|
1415
|
+
return json.evalJSON(this.request.options.sanitizeJSON ||
|
1416
|
+
!this.request.isSameOrigin());
|
1395
1417
|
} catch (e) {
|
1396
1418
|
this.request.dispatchException(e);
|
1397
1419
|
}
|
@@ -1404,7 +1426,8 @@ Ajax.Response = Class.create({
|
|
1404
1426
|
this.responseText.blank())
|
1405
1427
|
return null;
|
1406
1428
|
try {
|
1407
|
-
return this.responseText.evalJSON(options.sanitizeJSON
|
1429
|
+
return this.responseText.evalJSON(options.sanitizeJSON ||
|
1430
|
+
!this.request.isSameOrigin());
|
1408
1431
|
} catch (e) {
|
1409
1432
|
this.request.dispatchException(e);
|
1410
1433
|
}
|
@@ -1546,6 +1569,7 @@ if (!Node.ELEMENT_NODE) {
|
|
1546
1569
|
return Element.writeAttribute(cache[tagName].cloneNode(false), attributes);
|
1547
1570
|
};
|
1548
1571
|
Object.extend(this.Element, element || { });
|
1572
|
+
if (element) this.Element.prototype = element.prototype;
|
1549
1573
|
}).call(window);
|
1550
1574
|
|
1551
1575
|
Element.cache = { };
|
@@ -1562,12 +1586,14 @@ Element.Methods = {
|
|
1562
1586
|
},
|
1563
1587
|
|
1564
1588
|
hide: function(element) {
|
1565
|
-
$(element)
|
1589
|
+
element = $(element);
|
1590
|
+
element.style.display = 'none';
|
1566
1591
|
return element;
|
1567
1592
|
},
|
1568
1593
|
|
1569
1594
|
show: function(element) {
|
1570
|
-
$(element)
|
1595
|
+
element = $(element);
|
1596
|
+
element.style.display = '';
|
1571
1597
|
return element;
|
1572
1598
|
},
|
1573
1599
|
|
@@ -1608,24 +1634,28 @@ Element.Methods = {
|
|
1608
1634
|
Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML)))
|
1609
1635
|
insertions = {bottom:insertions};
|
1610
1636
|
|
1611
|
-
var content,
|
1637
|
+
var content, insert, tagName, childNodes;
|
1612
1638
|
|
1613
|
-
for (position in insertions) {
|
1639
|
+
for (var position in insertions) {
|
1614
1640
|
content = insertions[position];
|
1615
1641
|
position = position.toLowerCase();
|
1616
|
-
|
1642
|
+
insert = Element._insertionTranslations[position];
|
1617
1643
|
|
1618
1644
|
if (content && content.toElement) content = content.toElement();
|
1619
1645
|
if (Object.isElement(content)) {
|
1620
|
-
|
1646
|
+
insert(element, content);
|
1621
1647
|
continue;
|
1622
1648
|
}
|
1623
1649
|
|
1624
1650
|
content = Object.toHTML(content);
|
1625
1651
|
|
1626
|
-
|
1627
|
-
|
1628
|
-
|
1652
|
+
tagName = ((position == 'before' || position == 'after')
|
1653
|
+
? element.parentNode : element).tagName.toUpperCase();
|
1654
|
+
|
1655
|
+
childNodes = Element._getContentFromAnonymousElement(tagName, content.stripScripts());
|
1656
|
+
|
1657
|
+
if (position == 'top' || position == 'after') childNodes.reverse();
|
1658
|
+
childNodes.each(insert.curry(element));
|
1629
1659
|
|
1630
1660
|
content.evalScripts.bind(content).defer();
|
1631
1661
|
}
|
@@ -1670,7 +1700,7 @@ Element.Methods = {
|
|
1670
1700
|
},
|
1671
1701
|
|
1672
1702
|
descendants: function(element) {
|
1673
|
-
return $(element).
|
1703
|
+
return $(element).select("*");
|
1674
1704
|
},
|
1675
1705
|
|
1676
1706
|
firstDescendant: function(element) {
|
@@ -1709,32 +1739,31 @@ Element.Methods = {
|
|
1709
1739
|
element = $(element);
|
1710
1740
|
if (arguments.length == 1) return $(element.parentNode);
|
1711
1741
|
var ancestors = element.ancestors();
|
1712
|
-
return expression ?
|
1713
|
-
ancestors
|
1742
|
+
return Object.isNumber(expression) ? ancestors[expression] :
|
1743
|
+
Selector.findElement(ancestors, expression, index);
|
1714
1744
|
},
|
1715
1745
|
|
1716
1746
|
down: function(element, expression, index) {
|
1717
1747
|
element = $(element);
|
1718
1748
|
if (arguments.length == 1) return element.firstDescendant();
|
1719
|
-
|
1720
|
-
|
1721
|
-
descendants[index || 0];
|
1749
|
+
return Object.isNumber(expression) ? element.descendants()[expression] :
|
1750
|
+
Element.select(element, expression)[index || 0];
|
1722
1751
|
},
|
1723
1752
|
|
1724
1753
|
previous: function(element, expression, index) {
|
1725
1754
|
element = $(element);
|
1726
1755
|
if (arguments.length == 1) return $(Selector.handlers.previousElementSibling(element));
|
1727
1756
|
var previousSiblings = element.previousSiblings();
|
1728
|
-
return expression ?
|
1729
|
-
previousSiblings
|
1757
|
+
return Object.isNumber(expression) ? previousSiblings[expression] :
|
1758
|
+
Selector.findElement(previousSiblings, expression, index);
|
1730
1759
|
},
|
1731
1760
|
|
1732
1761
|
next: function(element, expression, index) {
|
1733
1762
|
element = $(element);
|
1734
1763
|
if (arguments.length == 1) return $(Selector.handlers.nextElementSibling(element));
|
1735
1764
|
var nextSiblings = element.nextSiblings();
|
1736
|
-
return expression ?
|
1737
|
-
nextSiblings
|
1765
|
+
return Object.isNumber(expression) ? nextSiblings[expression] :
|
1766
|
+
Selector.findElement(nextSiblings, expression, index);
|
1738
1767
|
},
|
1739
1768
|
|
1740
1769
|
select: function() {
|
@@ -1848,23 +1877,16 @@ Element.Methods = {
|
|
1848
1877
|
|
1849
1878
|
descendantOf: function(element, ancestor) {
|
1850
1879
|
element = $(element), ancestor = $(ancestor);
|
1851
|
-
var originalAncestor = ancestor;
|
1852
1880
|
|
1853
1881
|
if (element.compareDocumentPosition)
|
1854
1882
|
return (element.compareDocumentPosition(ancestor) & 8) === 8;
|
1855
1883
|
|
1856
|
-
if (
|
1857
|
-
|
1858
|
-
nextAncestor = ancestor.nextSibling;
|
1859
|
-
if (!nextAncestor) {
|
1860
|
-
do { ancestor = ancestor.parentNode; }
|
1861
|
-
while (!(nextAncestor = ancestor.nextSibling) && ancestor.parentNode);
|
1862
|
-
}
|
1863
|
-
if (nextAncestor) return (e > a && e < nextAncestor.sourceIndex);
|
1864
|
-
}
|
1884
|
+
if (ancestor.contains)
|
1885
|
+
return ancestor.contains(element) && ancestor !== element;
|
1865
1886
|
|
1866
1887
|
while (element = element.parentNode)
|
1867
|
-
if (element ==
|
1888
|
+
if (element == ancestor) return true;
|
1889
|
+
|
1868
1890
|
return false;
|
1869
1891
|
},
|
1870
1892
|
|
@@ -1879,7 +1901,7 @@ Element.Methods = {
|
|
1879
1901
|
element = $(element);
|
1880
1902
|
style = style == 'float' ? 'cssFloat' : style.camelize();
|
1881
1903
|
var value = element.style[style];
|
1882
|
-
if (!value) {
|
1904
|
+
if (!value || value == 'auto') {
|
1883
1905
|
var css = document.defaultView.getComputedStyle(element, null);
|
1884
1906
|
value = css ? css[style] : null;
|
1885
1907
|
}
|
@@ -1918,7 +1940,7 @@ Element.Methods = {
|
|
1918
1940
|
|
1919
1941
|
getDimensions: function(element) {
|
1920
1942
|
element = $(element);
|
1921
|
-
var display =
|
1943
|
+
var display = element.getStyle('display');
|
1922
1944
|
if (display != 'none' && display != null) // Safari bug
|
1923
1945
|
return {width: element.offsetWidth, height: element.offsetHeight};
|
1924
1946
|
|
@@ -1947,7 +1969,7 @@ Element.Methods = {
|
|
1947
1969
|
element.style.position = 'relative';
|
1948
1970
|
// Opera returns the offset relative to the positioning context, when an
|
1949
1971
|
// element is position relative but top and left have not been defined
|
1950
|
-
if (
|
1972
|
+
if (Prototype.Browser.Opera) {
|
1951
1973
|
element.style.top = 0;
|
1952
1974
|
element.style.left = 0;
|
1953
1975
|
}
|
@@ -2002,9 +2024,9 @@ Element.Methods = {
|
|
2002
2024
|
valueL += element.offsetLeft || 0;
|
2003
2025
|
element = element.offsetParent;
|
2004
2026
|
if (element) {
|
2005
|
-
if (element.tagName == 'BODY') break;
|
2027
|
+
if (element.tagName.toUpperCase() == 'BODY') break;
|
2006
2028
|
var p = Element.getStyle(element, 'position');
|
2007
|
-
if (p
|
2029
|
+
if (p !== 'static') break;
|
2008
2030
|
}
|
2009
2031
|
} while (element);
|
2010
2032
|
return Element._returnOffset(valueL, valueT);
|
@@ -2012,7 +2034,7 @@ Element.Methods = {
|
|
2012
2034
|
|
2013
2035
|
absolutize: function(element) {
|
2014
2036
|
element = $(element);
|
2015
|
-
if (element.getStyle('position') == 'absolute') return;
|
2037
|
+
if (element.getStyle('position') == 'absolute') return element;
|
2016
2038
|
// Position.prepare(); // To be done manually by Scripty when it needs it.
|
2017
2039
|
|
2018
2040
|
var offsets = element.positionedOffset();
|
@@ -2036,7 +2058,7 @@ Element.Methods = {
|
|
2036
2058
|
|
2037
2059
|
relativize: function(element) {
|
2038
2060
|
element = $(element);
|
2039
|
-
if (element.getStyle('position') == 'relative') return;
|
2061
|
+
if (element.getStyle('position') == 'relative') return element;
|
2040
2062
|
// Position.prepare(); // To be done manually by Scripty when it needs it.
|
2041
2063
|
|
2042
2064
|
element.style.position = 'relative';
|
@@ -2087,7 +2109,7 @@ Element.Methods = {
|
|
2087
2109
|
|
2088
2110
|
element = forElement;
|
2089
2111
|
do {
|
2090
|
-
if (!Prototype.Browser.Opera || element.tagName == 'BODY') {
|
2112
|
+
if (!Prototype.Browser.Opera || (element.tagName && (element.tagName.toUpperCase() == 'BODY'))) {
|
2091
2113
|
valueT -= element.scrollTop || 0;
|
2092
2114
|
valueL -= element.scrollLeft || 0;
|
2093
2115
|
}
|
@@ -2153,46 +2175,6 @@ Element._attributeTranslations = {
|
|
2153
2175
|
}
|
2154
2176
|
};
|
2155
2177
|
|
2156
|
-
|
2157
|
-
if (!document.createRange || Prototype.Browser.Opera) {
|
2158
|
-
Element.Methods.insert = function(element, insertions) {
|
2159
|
-
element = $(element);
|
2160
|
-
|
2161
|
-
if (Object.isString(insertions) || Object.isNumber(insertions) ||
|
2162
|
-
Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML)))
|
2163
|
-
insertions = { bottom: insertions };
|
2164
|
-
|
2165
|
-
var t = Element._insertionTranslations, content, position, pos, tagName;
|
2166
|
-
|
2167
|
-
for (position in insertions) {
|
2168
|
-
content = insertions[position];
|
2169
|
-
position = position.toLowerCase();
|
2170
|
-
pos = t[position];
|
2171
|
-
|
2172
|
-
if (content && content.toElement) content = content.toElement();
|
2173
|
-
if (Object.isElement(content)) {
|
2174
|
-
pos.insert(element, content);
|
2175
|
-
continue;
|
2176
|
-
}
|
2177
|
-
|
2178
|
-
content = Object.toHTML(content);
|
2179
|
-
tagName = ((position == 'before' || position == 'after')
|
2180
|
-
? element.parentNode : element).tagName.toUpperCase();
|
2181
|
-
|
2182
|
-
if (t.tags[tagName]) {
|
2183
|
-
var fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts());
|
2184
|
-
if (position == 'top' || position == 'after') fragments.reverse();
|
2185
|
-
fragments.each(pos.insert.curry(element));
|
2186
|
-
}
|
2187
|
-
else element.insertAdjacentHTML(pos.adjacency, content.stripScripts());
|
2188
|
-
|
2189
|
-
content.evalScripts.bind(content).defer();
|
2190
|
-
}
|
2191
|
-
|
2192
|
-
return element;
|
2193
|
-
};
|
2194
|
-
}
|
2195
|
-
|
2196
2178
|
if (Prototype.Browser.Opera) {
|
2197
2179
|
Element.Methods.getStyle = Element.Methods.getStyle.wrap(
|
2198
2180
|
function(proceed, element, style) {
|
@@ -2237,12 +2219,36 @@ if (Prototype.Browser.Opera) {
|
|
2237
2219
|
}
|
2238
2220
|
|
2239
2221
|
else if (Prototype.Browser.IE) {
|
2240
|
-
|
2222
|
+
// IE doesn't report offsets correctly for static elements, so we change them
|
2223
|
+
// to "relative" to get the values, then change them back.
|
2224
|
+
Element.Methods.getOffsetParent = Element.Methods.getOffsetParent.wrap(
|
2225
|
+
function(proceed, element) {
|
2226
|
+
element = $(element);
|
2227
|
+
// IE throws an error if element is not in document
|
2228
|
+
try { element.offsetParent }
|
2229
|
+
catch(e) { return $(document.body) }
|
2230
|
+
var position = element.getStyle('position');
|
2231
|
+
if (position !== 'static') return proceed(element);
|
2232
|
+
element.setStyle({ position: 'relative' });
|
2233
|
+
var value = proceed(element);
|
2234
|
+
element.setStyle({ position: position });
|
2235
|
+
return value;
|
2236
|
+
}
|
2237
|
+
);
|
2238
|
+
|
2239
|
+
$w('positionedOffset viewportOffset').each(function(method) {
|
2241
2240
|
Element.Methods[method] = Element.Methods[method].wrap(
|
2242
2241
|
function(proceed, element) {
|
2243
2242
|
element = $(element);
|
2243
|
+
try { element.offsetParent }
|
2244
|
+
catch(e) { return Element._returnOffset(0,0) }
|
2244
2245
|
var position = element.getStyle('position');
|
2245
|
-
if (position
|
2246
|
+
if (position !== 'static') return proceed(element);
|
2247
|
+
// Trigger hasLayout on the offset parent so that IE6 reports
|
2248
|
+
// accurate offsetTop and offsetLeft values for position: fixed.
|
2249
|
+
var offsetParent = element.getOffsetParent();
|
2250
|
+
if (offsetParent && offsetParent.getStyle('position') === 'fixed')
|
2251
|
+
offsetParent.setStyle({ zoom: 1 });
|
2246
2252
|
element.setStyle({ position: 'relative' });
|
2247
2253
|
var value = proceed(element);
|
2248
2254
|
element.setStyle({ position: position });
|
@@ -2251,6 +2257,14 @@ else if (Prototype.Browser.IE) {
|
|
2251
2257
|
);
|
2252
2258
|
});
|
2253
2259
|
|
2260
|
+
Element.Methods.cumulativeOffset = Element.Methods.cumulativeOffset.wrap(
|
2261
|
+
function(proceed, element) {
|
2262
|
+
try { element.offsetParent }
|
2263
|
+
catch(e) { return Element._returnOffset(0,0) }
|
2264
|
+
return proceed(element);
|
2265
|
+
}
|
2266
|
+
);
|
2267
|
+
|
2254
2268
|
Element.Methods.getStyle = function(element, style) {
|
2255
2269
|
element = $(element);
|
2256
2270
|
style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize();
|
@@ -2324,7 +2338,10 @@ else if (Prototype.Browser.IE) {
|
|
2324
2338
|
};
|
2325
2339
|
|
2326
2340
|
Element._attributeTranslations.write = {
|
2327
|
-
names: Object.
|
2341
|
+
names: Object.extend({
|
2342
|
+
cellpadding: 'cellPadding',
|
2343
|
+
cellspacing: 'cellSpacing'
|
2344
|
+
}, Element._attributeTranslations.read.names),
|
2328
2345
|
values: {
|
2329
2346
|
checked: function(element, value) {
|
2330
2347
|
element.checked = !!value;
|
@@ -2339,7 +2356,7 @@ else if (Prototype.Browser.IE) {
|
|
2339
2356
|
Element._attributeTranslations.has = {};
|
2340
2357
|
|
2341
2358
|
$w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' +
|
2342
|
-
'encType maxLength readOnly longDesc').each(function(attr) {
|
2359
|
+
'encType maxLength readOnly longDesc frameBorder').each(function(attr) {
|
2343
2360
|
Element._attributeTranslations.write.names[attr.toLowerCase()] = attr;
|
2344
2361
|
Element._attributeTranslations.has[attr.toLowerCase()] = attr;
|
2345
2362
|
});
|
@@ -2392,7 +2409,7 @@ else if (Prototype.Browser.WebKit) {
|
|
2392
2409
|
(value < 0.00001) ? 0 : value;
|
2393
2410
|
|
2394
2411
|
if (value == 1)
|
2395
|
-
if(element.tagName == 'IMG' && element.width) {
|
2412
|
+
if(element.tagName.toUpperCase() == 'IMG' && element.width) {
|
2396
2413
|
element.width++; element.width--;
|
2397
2414
|
} else try {
|
2398
2415
|
var n = document.createTextNode(' ');
|
@@ -2444,7 +2461,7 @@ if (Prototype.Browser.IE || Prototype.Browser.Opera) {
|
|
2444
2461
|
};
|
2445
2462
|
}
|
2446
2463
|
|
2447
|
-
if (document.createElement('div')
|
2464
|
+
if ('outerHTML' in document.createElement('div')) {
|
2448
2465
|
Element.Methods.replace = function(element, content) {
|
2449
2466
|
element = $(element);
|
2450
2467
|
|
@@ -2482,45 +2499,25 @@ Element._returnOffset = function(l, t) {
|
|
2482
2499
|
|
2483
2500
|
Element._getContentFromAnonymousElement = function(tagName, html) {
|
2484
2501
|
var div = new Element('div'), t = Element._insertionTranslations.tags[tagName];
|
2485
|
-
|
2486
|
-
|
2502
|
+
if (t) {
|
2503
|
+
div.innerHTML = t[0] + html + t[1];
|
2504
|
+
t[2].times(function() { div = div.firstChild });
|
2505
|
+
} else div.innerHTML = html;
|
2487
2506
|
return $A(div.childNodes);
|
2488
2507
|
};
|
2489
2508
|
|
2490
2509
|
Element._insertionTranslations = {
|
2491
|
-
before: {
|
2492
|
-
|
2493
|
-
insert: function(element, node) {
|
2494
|
-
element.parentNode.insertBefore(node, element);
|
2495
|
-
},
|
2496
|
-
initializeRange: function(element, range) {
|
2497
|
-
range.setStartBefore(element);
|
2498
|
-
}
|
2510
|
+
before: function(element, node) {
|
2511
|
+
element.parentNode.insertBefore(node, element);
|
2499
2512
|
},
|
2500
|
-
top: {
|
2501
|
-
|
2502
|
-
insert: function(element, node) {
|
2503
|
-
element.insertBefore(node, element.firstChild);
|
2504
|
-
},
|
2505
|
-
initializeRange: function(element, range) {
|
2506
|
-
range.selectNodeContents(element);
|
2507
|
-
range.collapse(true);
|
2508
|
-
}
|
2513
|
+
top: function(element, node) {
|
2514
|
+
element.insertBefore(node, element.firstChild);
|
2509
2515
|
},
|
2510
|
-
bottom: {
|
2511
|
-
|
2512
|
-
insert: function(element, node) {
|
2513
|
-
element.appendChild(node);
|
2514
|
-
}
|
2516
|
+
bottom: function(element, node) {
|
2517
|
+
element.appendChild(node);
|
2515
2518
|
},
|
2516
|
-
after: {
|
2517
|
-
|
2518
|
-
insert: function(element, node) {
|
2519
|
-
element.parentNode.insertBefore(node, element.nextSibling);
|
2520
|
-
},
|
2521
|
-
initializeRange: function(element, range) {
|
2522
|
-
range.setStartAfter(element);
|
2523
|
-
}
|
2519
|
+
after: function(element, node) {
|
2520
|
+
element.parentNode.insertBefore(node, element.nextSibling);
|
2524
2521
|
},
|
2525
2522
|
tags: {
|
2526
2523
|
TABLE: ['<table>', '</table>', 1],
|
@@ -2532,7 +2529,6 @@ Element._insertionTranslations = {
|
|
2532
2529
|
};
|
2533
2530
|
|
2534
2531
|
(function() {
|
2535
|
-
this.bottom.initializeRange = this.top.initializeRange;
|
2536
2532
|
Object.extend(this.tags, {
|
2537
2533
|
THEAD: this.tags.TBODY,
|
2538
2534
|
TFOOT: this.tags.TBODY,
|
@@ -2544,7 +2540,7 @@ Element.Methods.Simulated = {
|
|
2544
2540
|
hasAttribute: function(element, attribute) {
|
2545
2541
|
attribute = Element._attributeTranslations.has[attribute] || attribute;
|
2546
2542
|
var node = $(element).getAttributeNode(attribute);
|
2547
|
-
return node && node.specified;
|
2543
|
+
return !!(node && node.specified);
|
2548
2544
|
}
|
2549
2545
|
};
|
2550
2546
|
|
@@ -2553,9 +2549,9 @@ Element.Methods.ByTag = { };
|
|
2553
2549
|
Object.extend(Element, Element.Methods);
|
2554
2550
|
|
2555
2551
|
if (!Prototype.BrowserFeatures.ElementExtensions &&
|
2556
|
-
document.createElement('div')
|
2552
|
+
document.createElement('div')['__proto__']) {
|
2557
2553
|
window.HTMLElement = { };
|
2558
|
-
window.HTMLElement.prototype = document.createElement('div')
|
2554
|
+
window.HTMLElement.prototype = document.createElement('div')['__proto__'];
|
2559
2555
|
Prototype.BrowserFeatures.ElementExtensions = true;
|
2560
2556
|
}
|
2561
2557
|
|
@@ -2570,7 +2566,7 @@ Element.extend = (function() {
|
|
2570
2566
|
element.nodeType != 1 || element == window) return element;
|
2571
2567
|
|
2572
2568
|
var methods = Object.clone(Methods),
|
2573
|
-
tagName = element.tagName, property, value;
|
2569
|
+
tagName = element.tagName.toUpperCase(), property, value;
|
2574
2570
|
|
2575
2571
|
// extend methods for specific tags
|
2576
2572
|
if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]);
|
@@ -2666,7 +2662,7 @@ Element.addMethods = function(methods) {
|
|
2666
2662
|
if (window[klass]) return window[klass];
|
2667
2663
|
|
2668
2664
|
window[klass] = { };
|
2669
|
-
window[klass].prototype = document.createElement(tagName)
|
2665
|
+
window[klass].prototype = document.createElement(tagName)['__proto__'];
|
2670
2666
|
return window[klass];
|
2671
2667
|
}
|
2672
2668
|
|
@@ -2692,12 +2688,18 @@ Element.addMethods = function(methods) {
|
|
2692
2688
|
|
2693
2689
|
document.viewport = {
|
2694
2690
|
getDimensions: function() {
|
2695
|
-
var dimensions = { };
|
2696
|
-
var B = Prototype.Browser;
|
2691
|
+
var dimensions = { }, B = Prototype.Browser;
|
2697
2692
|
$w('width height').each(function(d) {
|
2698
2693
|
var D = d.capitalize();
|
2699
|
-
|
2700
|
-
|
2694
|
+
if (B.WebKit && !document.evaluate) {
|
2695
|
+
// Safari <3.0 needs self.innerWidth/Height
|
2696
|
+
dimensions[d] = self['inner' + D];
|
2697
|
+
} else if (B.Opera && parseFloat(window.opera.version()) < 9.5) {
|
2698
|
+
// Opera <9.5 needs document.body.clientWidth/Height
|
2699
|
+
dimensions[d] = document.body['client' + D]
|
2700
|
+
} else {
|
2701
|
+
dimensions[d] = document.documentElement['client' + D];
|
2702
|
+
}
|
2701
2703
|
});
|
2702
2704
|
return dimensions;
|
2703
2705
|
},
|
@@ -2716,14 +2718,24 @@ document.viewport = {
|
|
2716
2718
|
window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop);
|
2717
2719
|
}
|
2718
2720
|
};
|
2719
|
-
/* Portions of the Selector class are derived from Jack Slocum
|
2721
|
+
/* Portions of the Selector class are derived from Jack Slocum's DomQuery,
|
2720
2722
|
* part of YUI-Ext version 0.40, distributed under the terms of an MIT-style
|
2721
2723
|
* license. Please see http://www.yui-ext.com/ for more information. */
|
2722
2724
|
|
2723
2725
|
var Selector = Class.create({
|
2724
2726
|
initialize: function(expression) {
|
2725
2727
|
this.expression = expression.strip();
|
2726
|
-
|
2728
|
+
|
2729
|
+
if (this.shouldUseSelectorsAPI()) {
|
2730
|
+
this.mode = 'selectorsAPI';
|
2731
|
+
} else if (this.shouldUseXPath()) {
|
2732
|
+
this.mode = 'xpath';
|
2733
|
+
this.compileXPathMatcher();
|
2734
|
+
} else {
|
2735
|
+
this.mode = "normal";
|
2736
|
+
this.compileMatcher();
|
2737
|
+
}
|
2738
|
+
|
2727
2739
|
},
|
2728
2740
|
|
2729
2741
|
shouldUseXPath: function() {
|
@@ -2738,16 +2750,29 @@ var Selector = Class.create({
|
|
2738
2750
|
|
2739
2751
|
// XPath can't do namespaced attributes, nor can it read
|
2740
2752
|
// the "checked" property from DOM nodes
|
2741
|
-
if ((/(\[[\w-]*?:|:checked)/).test(
|
2753
|
+
if ((/(\[[\w-]*?:|:checked)/).test(e))
|
2742
2754
|
return false;
|
2743
2755
|
|
2744
2756
|
return true;
|
2745
2757
|
},
|
2746
2758
|
|
2747
|
-
|
2748
|
-
if (
|
2749
|
-
|
2759
|
+
shouldUseSelectorsAPI: function() {
|
2760
|
+
if (!Prototype.BrowserFeatures.SelectorsAPI) return false;
|
2761
|
+
|
2762
|
+
if (!Selector._div) Selector._div = new Element('div');
|
2763
|
+
|
2764
|
+
// Make sure the browser treats the selector as valid. Test on an
|
2765
|
+
// isolated element to minimize cost of this check.
|
2766
|
+
try {
|
2767
|
+
Selector._div.querySelector(this.expression);
|
2768
|
+
} catch(e) {
|
2769
|
+
return false;
|
2770
|
+
}
|
2750
2771
|
|
2772
|
+
return true;
|
2773
|
+
},
|
2774
|
+
|
2775
|
+
compileMatcher: function() {
|
2751
2776
|
var e = this.expression, ps = Selector.patterns, h = Selector.handlers,
|
2752
2777
|
c = Selector.criteria, le, p, m;
|
2753
2778
|
|
@@ -2765,7 +2790,7 @@ var Selector = Class.create({
|
|
2765
2790
|
p = ps[i];
|
2766
2791
|
if (m = e.match(p)) {
|
2767
2792
|
this.matcher.push(Object.isFunction(c[i]) ? c[i](m) :
|
2768
|
-
|
2793
|
+
new Template(c[i]).evaluate(m));
|
2769
2794
|
e = e.replace(m[0], '');
|
2770
2795
|
break;
|
2771
2796
|
}
|
@@ -2804,8 +2829,27 @@ var Selector = Class.create({
|
|
2804
2829
|
|
2805
2830
|
findElements: function(root) {
|
2806
2831
|
root = root || document;
|
2807
|
-
|
2808
|
-
|
2832
|
+
var e = this.expression, results;
|
2833
|
+
|
2834
|
+
switch (this.mode) {
|
2835
|
+
case 'selectorsAPI':
|
2836
|
+
// querySelectorAll queries document-wide, then filters to descendants
|
2837
|
+
// of the context element. That's not what we want.
|
2838
|
+
// Add an explicit context to the selector if necessary.
|
2839
|
+
if (root !== document) {
|
2840
|
+
var oldId = root.id, id = $(root).identify();
|
2841
|
+
e = "#" + id + " " + e;
|
2842
|
+
}
|
2843
|
+
|
2844
|
+
results = $A(root.querySelectorAll(e)).map(Element.extend);
|
2845
|
+
root.id = oldId;
|
2846
|
+
|
2847
|
+
return results;
|
2848
|
+
case 'xpath':
|
2849
|
+
return document._getElementsByXPath(this.xpath, root);
|
2850
|
+
default:
|
2851
|
+
return this.matcher(root);
|
2852
|
+
}
|
2809
2853
|
},
|
2810
2854
|
|
2811
2855
|
match: function(element) {
|
@@ -2896,10 +2940,10 @@ Object.extend(Selector, {
|
|
2896
2940
|
'first-child': '[not(preceding-sibling::*)]',
|
2897
2941
|
'last-child': '[not(following-sibling::*)]',
|
2898
2942
|
'only-child': '[not(preceding-sibling::* or following-sibling::*)]',
|
2899
|
-
'empty': "[count(*) = 0 and (count(text()) = 0
|
2943
|
+
'empty': "[count(*) = 0 and (count(text()) = 0)]",
|
2900
2944
|
'checked': "[@checked]",
|
2901
|
-
'disabled': "[@disabled]",
|
2902
|
-
'enabled': "[not(@disabled)]",
|
2945
|
+
'disabled': "[(@disabled) and (@type!='hidden')]",
|
2946
|
+
'enabled': "[not(@disabled) and (@type!='hidden')]",
|
2903
2947
|
'not': function(m) {
|
2904
2948
|
var e = m[6], p = Selector.patterns,
|
2905
2949
|
x = Selector.xpath, le, v;
|
@@ -2959,13 +3003,13 @@ Object.extend(Selector, {
|
|
2959
3003
|
},
|
2960
3004
|
|
2961
3005
|
criteria: {
|
2962
|
-
tagName: 'n = h.tagName(n, r, "#{1}", c);
|
2963
|
-
className: 'n = h.className(n, r, "#{1}", c);
|
2964
|
-
id: 'n = h.id(n, r, "#{1}", c);
|
2965
|
-
attrPresence: 'n = h.attrPresence(n, r, "#{1}"); c = false;',
|
3006
|
+
tagName: 'n = h.tagName(n, r, "#{1}", c); c = false;',
|
3007
|
+
className: 'n = h.className(n, r, "#{1}", c); c = false;',
|
3008
|
+
id: 'n = h.id(n, r, "#{1}", c); c = false;',
|
3009
|
+
attrPresence: 'n = h.attrPresence(n, r, "#{1}", c); c = false;',
|
2966
3010
|
attr: function(m) {
|
2967
3011
|
m[3] = (m[5] || m[6]);
|
2968
|
-
return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}"); c = false;').evaluate(m);
|
3012
|
+
return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(m);
|
2969
3013
|
},
|
2970
3014
|
pseudo: function(m) {
|
2971
3015
|
if (m[6]) m[6] = m[6].replace(/"/g, '\\"');
|
@@ -2989,8 +3033,9 @@ Object.extend(Selector, {
|
|
2989
3033
|
tagName: /^\s*(\*|[\w\-]+)(\b|$)?/,
|
2990
3034
|
id: /^#([\w\-\*]+)(\b|$)/,
|
2991
3035
|
className: /^\.([\w\-\*]+)(\b|$)/,
|
2992
|
-
pseudo:
|
2993
|
-
|
3036
|
+
pseudo:
|
3037
|
+
/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/,
|
3038
|
+
attrPresence: /^\[((?:[\w]+:)?[\w]+)\]/,
|
2994
3039
|
attr: /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/
|
2995
3040
|
},
|
2996
3041
|
|
@@ -3014,7 +3059,7 @@ Object.extend(Selector, {
|
|
3014
3059
|
|
3015
3060
|
attr: function(element, matches) {
|
3016
3061
|
var nodeValue = Element.readAttribute(element, matches[1]);
|
3017
|
-
return Selector.operators[matches[2]](nodeValue, matches[
|
3062
|
+
return nodeValue && Selector.operators[matches[2]](nodeValue, matches[5] || matches[6]);
|
3018
3063
|
}
|
3019
3064
|
},
|
3020
3065
|
|
@@ -3029,14 +3074,15 @@ Object.extend(Selector, {
|
|
3029
3074
|
|
3030
3075
|
// marks an array of nodes for counting
|
3031
3076
|
mark: function(nodes) {
|
3077
|
+
var _true = Prototype.emptyFunction;
|
3032
3078
|
for (var i = 0, node; node = nodes[i]; i++)
|
3033
|
-
node.
|
3079
|
+
node._countedByPrototype = _true;
|
3034
3080
|
return nodes;
|
3035
3081
|
},
|
3036
3082
|
|
3037
3083
|
unmark: function(nodes) {
|
3038
3084
|
for (var i = 0, node; node = nodes[i]; i++)
|
3039
|
-
node.
|
3085
|
+
node._countedByPrototype = undefined;
|
3040
3086
|
return nodes;
|
3041
3087
|
},
|
3042
3088
|
|
@@ -3044,15 +3090,15 @@ Object.extend(Selector, {
|
|
3044
3090
|
// "ofType" flag indicates whether we're indexing for nth-of-type
|
3045
3091
|
// rather than nth-child
|
3046
3092
|
index: function(parentNode, reverse, ofType) {
|
3047
|
-
parentNode.
|
3093
|
+
parentNode._countedByPrototype = Prototype.emptyFunction;
|
3048
3094
|
if (reverse) {
|
3049
3095
|
for (var nodes = parentNode.childNodes, i = nodes.length - 1, j = 1; i >= 0; i--) {
|
3050
3096
|
var node = nodes[i];
|
3051
|
-
if (node.nodeType == 1 && (!ofType || node.
|
3097
|
+
if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++;
|
3052
3098
|
}
|
3053
3099
|
} else {
|
3054
3100
|
for (var i = 0, j = 1, nodes = parentNode.childNodes; node = nodes[i]; i++)
|
3055
|
-
if (node.nodeType == 1 && (!ofType || node.
|
3101
|
+
if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++;
|
3056
3102
|
}
|
3057
3103
|
},
|
3058
3104
|
|
@@ -3061,8 +3107,8 @@ Object.extend(Selector, {
|
|
3061
3107
|
if (nodes.length == 0) return nodes;
|
3062
3108
|
var results = [], n;
|
3063
3109
|
for (var i = 0, l = nodes.length; i < l; i++)
|
3064
|
-
if (!(n = nodes[i]).
|
3065
|
-
n.
|
3110
|
+
if (!(n = nodes[i])._countedByPrototype) {
|
3111
|
+
n._countedByPrototype = Prototype.emptyFunction;
|
3066
3112
|
results.push(Element.extend(n));
|
3067
3113
|
}
|
3068
3114
|
return Selector.handlers.unmark(results);
|
@@ -3102,7 +3148,7 @@ Object.extend(Selector, {
|
|
3102
3148
|
|
3103
3149
|
nextElementSibling: function(node) {
|
3104
3150
|
while (node = node.nextSibling)
|
3105
|
-
|
3151
|
+
if (node.nodeType == 1) return node;
|
3106
3152
|
return null;
|
3107
3153
|
},
|
3108
3154
|
|
@@ -3114,7 +3160,7 @@ Object.extend(Selector, {
|
|
3114
3160
|
|
3115
3161
|
// TOKEN FUNCTIONS
|
3116
3162
|
tagName: function(nodes, root, tagName, combinator) {
|
3117
|
-
|
3163
|
+
var uTagName = tagName.toUpperCase();
|
3118
3164
|
var results = [], h = Selector.handlers;
|
3119
3165
|
if (nodes) {
|
3120
3166
|
if (combinator) {
|
@@ -3127,7 +3173,7 @@ Object.extend(Selector, {
|
|
3127
3173
|
if (tagName == "*") return nodes;
|
3128
3174
|
}
|
3129
3175
|
for (var i = 0, node; node = nodes[i]; i++)
|
3130
|
-
if (node.tagName.toUpperCase()
|
3176
|
+
if (node.tagName.toUpperCase() === uTagName) results.push(node);
|
3131
3177
|
return results;
|
3132
3178
|
} else return root.getElementsByTagName(tagName);
|
3133
3179
|
},
|
@@ -3174,16 +3220,18 @@ Object.extend(Selector, {
|
|
3174
3220
|
return results;
|
3175
3221
|
},
|
3176
3222
|
|
3177
|
-
attrPresence: function(nodes, root, attr) {
|
3223
|
+
attrPresence: function(nodes, root, attr, combinator) {
|
3178
3224
|
if (!nodes) nodes = root.getElementsByTagName("*");
|
3225
|
+
if (nodes && combinator) nodes = this[combinator](nodes);
|
3179
3226
|
var results = [];
|
3180
3227
|
for (var i = 0, node; node = nodes[i]; i++)
|
3181
3228
|
if (Element.hasAttribute(node, attr)) results.push(node);
|
3182
3229
|
return results;
|
3183
3230
|
},
|
3184
3231
|
|
3185
|
-
attr: function(nodes, root, attr, value, operator) {
|
3232
|
+
attr: function(nodes, root, attr, value, operator, combinator) {
|
3186
3233
|
if (!nodes) nodes = root.getElementsByTagName("*");
|
3234
|
+
if (nodes && combinator) nodes = this[combinator](nodes);
|
3187
3235
|
var handler = Selector.operators[operator], results = [];
|
3188
3236
|
for (var i = 0, node; node = nodes[i]; i++) {
|
3189
3237
|
var nodeValue = Element.readAttribute(node, attr);
|
@@ -3262,7 +3310,7 @@ Object.extend(Selector, {
|
|
3262
3310
|
var h = Selector.handlers, results = [], indexed = [], m;
|
3263
3311
|
h.mark(nodes);
|
3264
3312
|
for (var i = 0, node; node = nodes[i]; i++) {
|
3265
|
-
if (!node.parentNode.
|
3313
|
+
if (!node.parentNode._countedByPrototype) {
|
3266
3314
|
h.index(node.parentNode, reverse, ofType);
|
3267
3315
|
indexed.push(node.parentNode);
|
3268
3316
|
}
|
@@ -3289,7 +3337,7 @@ Object.extend(Selector, {
|
|
3289
3337
|
'empty': function(nodes, value, root) {
|
3290
3338
|
for (var i = 0, results = [], node; node = nodes[i]; i++) {
|
3291
3339
|
// IE treats comments as element nodes
|
3292
|
-
if (node.tagName == '!' ||
|
3340
|
+
if (node.tagName == '!' || node.firstChild) continue;
|
3293
3341
|
results.push(node);
|
3294
3342
|
}
|
3295
3343
|
return results;
|
@@ -3300,14 +3348,15 @@ Object.extend(Selector, {
|
|
3300
3348
|
var exclusions = new Selector(selector).findElements(root);
|
3301
3349
|
h.mark(exclusions);
|
3302
3350
|
for (var i = 0, results = [], node; node = nodes[i]; i++)
|
3303
|
-
if (!node.
|
3351
|
+
if (!node._countedByPrototype) results.push(node);
|
3304
3352
|
h.unmark(exclusions);
|
3305
3353
|
return results;
|
3306
3354
|
},
|
3307
3355
|
|
3308
3356
|
'enabled': function(nodes, value, root) {
|
3309
3357
|
for (var i = 0, results = [], node; node = nodes[i]; i++)
|
3310
|
-
if (!node.disabled
|
3358
|
+
if (!node.disabled && (!node.type || node.type !== 'hidden'))
|
3359
|
+
results.push(node);
|
3311
3360
|
return results;
|
3312
3361
|
},
|
3313
3362
|
|
@@ -3327,18 +3376,29 @@ Object.extend(Selector, {
|
|
3327
3376
|
operators: {
|
3328
3377
|
'=': function(nv, v) { return nv == v; },
|
3329
3378
|
'!=': function(nv, v) { return nv != v; },
|
3330
|
-
'^=': function(nv, v) { return nv.startsWith(v); },
|
3379
|
+
'^=': function(nv, v) { return nv == v || nv && nv.startsWith(v); },
|
3380
|
+
'$=': function(nv, v) { return nv == v || nv && nv.endsWith(v); },
|
3381
|
+
'*=': function(nv, v) { return nv == v || nv && nv.include(v); },
|
3331
3382
|
'$=': function(nv, v) { return nv.endsWith(v); },
|
3332
3383
|
'*=': function(nv, v) { return nv.include(v); },
|
3333
3384
|
'~=': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + ' '); },
|
3334
|
-
'|=': function(nv, v) { return ('-' + nv
|
3385
|
+
'|=': function(nv, v) { return ('-' + (nv || "").toUpperCase() +
|
3386
|
+
'-').include('-' + (v || "").toUpperCase() + '-'); }
|
3387
|
+
},
|
3388
|
+
|
3389
|
+
split: function(expression) {
|
3390
|
+
var expressions = [];
|
3391
|
+
expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) {
|
3392
|
+
expressions.push(m[1].strip());
|
3393
|
+
});
|
3394
|
+
return expressions;
|
3335
3395
|
},
|
3336
3396
|
|
3337
3397
|
matchElements: function(elements, expression) {
|
3338
|
-
var matches =
|
3398
|
+
var matches = $$(expression), h = Selector.handlers;
|
3339
3399
|
h.mark(matches);
|
3340
3400
|
for (var i = 0, results = [], element; element = elements[i]; i++)
|
3341
|
-
if (element.
|
3401
|
+
if (element._countedByPrototype) results.push(element);
|
3342
3402
|
h.unmark(matches);
|
3343
3403
|
return results;
|
3344
3404
|
},
|
@@ -3351,11 +3411,7 @@ Object.extend(Selector, {
|
|
3351
3411
|
},
|
3352
3412
|
|
3353
3413
|
findChildElements: function(element, expressions) {
|
3354
|
-
|
3355
|
-
expressions = [];
|
3356
|
-
exprs.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) {
|
3357
|
-
expressions.push(m[1].strip());
|
3358
|
-
});
|
3414
|
+
expressions = Selector.split(expressions.join(','));
|
3359
3415
|
var results = [], h = Selector.handlers;
|
3360
3416
|
for (var i = 0, l = expressions.length, selector; i < l; i++) {
|
3361
3417
|
selector = new Selector(expressions[i].strip());
|
@@ -3366,13 +3422,22 @@ Object.extend(Selector, {
|
|
3366
3422
|
});
|
3367
3423
|
|
3368
3424
|
if (Prototype.Browser.IE) {
|
3369
|
-
|
3370
|
-
|
3371
|
-
|
3372
|
-
|
3373
|
-
|
3374
|
-
|
3375
|
-
|
3425
|
+
Object.extend(Selector.handlers, {
|
3426
|
+
// IE returns comment nodes on getElementsByTagName("*").
|
3427
|
+
// Filter them out.
|
3428
|
+
concat: function(a, b) {
|
3429
|
+
for (var i = 0, node; node = b[i]; i++)
|
3430
|
+
if (node.tagName !== "!") a.push(node);
|
3431
|
+
return a;
|
3432
|
+
},
|
3433
|
+
|
3434
|
+
// IE improperly serializes _countedByPrototype in (inner|outer)HTML.
|
3435
|
+
unmark: function(nodes) {
|
3436
|
+
for (var i = 0, node; node = nodes[i]; i++)
|
3437
|
+
node.removeAttribute('_countedByPrototype');
|
3438
|
+
return nodes;
|
3439
|
+
}
|
3440
|
+
});
|
3376
3441
|
}
|
3377
3442
|
|
3378
3443
|
function $$() {
|
@@ -3392,7 +3457,7 @@ var Form = {
|
|
3392
3457
|
var data = elements.inject({ }, function(result, element) {
|
3393
3458
|
if (!element.disabled && element.name) {
|
3394
3459
|
key = element.name; value = $(element).getValue();
|
3395
|
-
if (value != null && (element.type != 'submit' || (!submitted &&
|
3460
|
+
if (value != null && element.type != 'file' && (element.type != 'submit' || (!submitted &&
|
3396
3461
|
submit !== false && (!submit || key == submit) && (submitted = true)))) {
|
3397
3462
|
if (key in result) {
|
3398
3463
|
// a key is already present; construct an array of values
|
@@ -3553,7 +3618,6 @@ Form.Element.Methods = {
|
|
3553
3618
|
|
3554
3619
|
disable: function(element) {
|
3555
3620
|
element = $(element);
|
3556
|
-
element.blur();
|
3557
3621
|
element.disabled = true;
|
3558
3622
|
return element;
|
3559
3623
|
},
|
@@ -3593,22 +3657,22 @@ Form.Element.Serializers = {
|
|
3593
3657
|
else element.value = value;
|
3594
3658
|
},
|
3595
3659
|
|
3596
|
-
select: function(element,
|
3597
|
-
if (Object.isUndefined(
|
3660
|
+
select: function(element, value) {
|
3661
|
+
if (Object.isUndefined(value))
|
3598
3662
|
return this[element.type == 'select-one' ?
|
3599
3663
|
'selectOne' : 'selectMany'](element);
|
3600
3664
|
else {
|
3601
|
-
var opt,
|
3665
|
+
var opt, currentValue, single = !Object.isArray(value);
|
3602
3666
|
for (var i = 0, length = element.length; i < length; i++) {
|
3603
3667
|
opt = element.options[i];
|
3604
|
-
|
3668
|
+
currentValue = this.optionValue(opt);
|
3605
3669
|
if (single) {
|
3606
|
-
if (
|
3670
|
+
if (currentValue == value) {
|
3607
3671
|
opt.selected = true;
|
3608
3672
|
return;
|
3609
3673
|
}
|
3610
3674
|
}
|
3611
|
-
else opt.selected =
|
3675
|
+
else opt.selected = value.include(currentValue);
|
3612
3676
|
}
|
3613
3677
|
}
|
3614
3678
|
},
|
@@ -3779,8 +3843,23 @@ Event.Methods = (function() {
|
|
3779
3843
|
isRightClick: function(event) { return isButton(event, 2) },
|
3780
3844
|
|
3781
3845
|
element: function(event) {
|
3782
|
-
|
3783
|
-
|
3846
|
+
event = Event.extend(event);
|
3847
|
+
|
3848
|
+
var node = event.target,
|
3849
|
+
type = event.type,
|
3850
|
+
currentTarget = event.currentTarget;
|
3851
|
+
|
3852
|
+
if (currentTarget && currentTarget.tagName) {
|
3853
|
+
// Firefox screws up the "click" event when moving between radio buttons
|
3854
|
+
// via arrow keys. It also screws up the "load" and "error" events on images,
|
3855
|
+
// reporting the document as the target instead of the original image.
|
3856
|
+
if (type === 'load' || type === 'error' ||
|
3857
|
+
(type === 'click' && currentTarget.tagName.toLowerCase() === 'input'
|
3858
|
+
&& currentTarget.type === 'radio'))
|
3859
|
+
node = currentTarget;
|
3860
|
+
}
|
3861
|
+
if (node.nodeType == Node.TEXT_NODE) node = node.parentNode;
|
3862
|
+
return Element.extend(node);
|
3784
3863
|
},
|
3785
3864
|
|
3786
3865
|
findElement: function(event, expression) {
|
@@ -3791,11 +3870,15 @@ Event.Methods = (function() {
|
|
3791
3870
|
},
|
3792
3871
|
|
3793
3872
|
pointer: function(event) {
|
3873
|
+
var docElement = document.documentElement,
|
3874
|
+
body = document.body || { scrollLeft: 0, scrollTop: 0 };
|
3794
3875
|
return {
|
3795
3876
|
x: event.pageX || (event.clientX +
|
3796
|
-
(
|
3877
|
+
(docElement.scrollLeft || body.scrollLeft) -
|
3878
|
+
(docElement.clientLeft || 0)),
|
3797
3879
|
y: event.pageY || (event.clientY +
|
3798
|
-
(
|
3880
|
+
(docElement.scrollTop || body.scrollTop) -
|
3881
|
+
(docElement.clientTop || 0))
|
3799
3882
|
};
|
3800
3883
|
},
|
3801
3884
|
|
@@ -3840,7 +3923,7 @@ Event.extend = (function() {
|
|
3840
3923
|
};
|
3841
3924
|
|
3842
3925
|
} else {
|
3843
|
-
Event.prototype = Event.prototype || document.createEvent("HTMLEvents")
|
3926
|
+
Event.prototype = Event.prototype || document.createEvent("HTMLEvents")['__proto__'];
|
3844
3927
|
Object.extend(Event.prototype, methods);
|
3845
3928
|
return Prototype.K;
|
3846
3929
|
}
|
@@ -3850,9 +3933,9 @@ Object.extend(Event, (function() {
|
|
3850
3933
|
var cache = Event.cache;
|
3851
3934
|
|
3852
3935
|
function getEventID(element) {
|
3853
|
-
if (element.
|
3936
|
+
if (element._prototypeEventID) return element._prototypeEventID[0];
|
3854
3937
|
arguments.callee.id = arguments.callee.id || 1;
|
3855
|
-
return element.
|
3938
|
+
return element._prototypeEventID = [++arguments.callee.id];
|
3856
3939
|
}
|
3857
3940
|
|
3858
3941
|
function getDOMEventName(eventName) {
|
@@ -3880,7 +3963,7 @@ Object.extend(Event, (function() {
|
|
3880
3963
|
return false;
|
3881
3964
|
|
3882
3965
|
Event.extend(event);
|
3883
|
-
handler.call(element, event)
|
3966
|
+
handler.call(element, event);
|
3884
3967
|
};
|
3885
3968
|
|
3886
3969
|
wrapper.handler = handler;
|
@@ -3905,10 +3988,20 @@ Object.extend(Event, (function() {
|
|
3905
3988
|
cache[id][eventName] = null;
|
3906
3989
|
}
|
3907
3990
|
|
3991
|
+
|
3992
|
+
// Internet Explorer needs to remove event handlers on page unload
|
3993
|
+
// in order to avoid memory leaks.
|
3908
3994
|
if (window.attachEvent) {
|
3909
3995
|
window.attachEvent("onunload", destroyCache);
|
3910
3996
|
}
|
3911
3997
|
|
3998
|
+
// Safari has a dummy event handler on page unload so that it won't
|
3999
|
+
// use its bfcache. Safari <= 3.1 has an issue with restoring the "document"
|
4000
|
+
// object when page is returned to via the back button using its bfcache.
|
4001
|
+
if (Prototype.Browser.WebKit) {
|
4002
|
+
window.addEventListener('unload', Prototype.emptyFunction, false);
|
4003
|
+
}
|
4004
|
+
|
3912
4005
|
return {
|
3913
4006
|
observe: function(element, eventName, handler) {
|
3914
4007
|
element = $(element);
|
@@ -3962,11 +4055,12 @@ Object.extend(Event, (function() {
|
|
3962
4055
|
if (element == document && document.createEvent && !element.dispatchEvent)
|
3963
4056
|
element = document.documentElement;
|
3964
4057
|
|
4058
|
+
var event;
|
3965
4059
|
if (document.createEvent) {
|
3966
|
-
|
4060
|
+
event = document.createEvent("HTMLEvents");
|
3967
4061
|
event.initEvent("dataavailable", true, true);
|
3968
4062
|
} else {
|
3969
|
-
|
4063
|
+
event = document.createEventObject();
|
3970
4064
|
event.eventType = "ondataavailable";
|
3971
4065
|
}
|
3972
4066
|
|
@@ -3995,20 +4089,21 @@ Element.addMethods({
|
|
3995
4089
|
Object.extend(document, {
|
3996
4090
|
fire: Element.Methods.fire.methodize(),
|
3997
4091
|
observe: Element.Methods.observe.methodize(),
|
3998
|
-
stopObserving: Element.Methods.stopObserving.methodize()
|
4092
|
+
stopObserving: Element.Methods.stopObserving.methodize(),
|
4093
|
+
loaded: false
|
3999
4094
|
});
|
4000
4095
|
|
4001
4096
|
(function() {
|
4002
4097
|
/* Support for the DOMContentLoaded event is based on work by Dan Webb,
|
4003
4098
|
Matthias Miller, Dean Edwards and John Resig. */
|
4004
4099
|
|
4005
|
-
var timer
|
4100
|
+
var timer;
|
4006
4101
|
|
4007
4102
|
function fireContentLoadedEvent() {
|
4008
|
-
if (
|
4103
|
+
if (document.loaded) return;
|
4009
4104
|
if (timer) window.clearInterval(timer);
|
4010
4105
|
document.fire("dom:loaded");
|
4011
|
-
|
4106
|
+
document.loaded = true;
|
4012
4107
|
}
|
4013
4108
|
|
4014
4109
|
if (document.addEventListener) {
|