diff --git a/rb/lib/selenium/webdriver/common/profile_helper.rb b/rb/lib/selenium/webdriver/common/profile_helper.rb index 9f9a65ddb155d..5c38147f2a5b4 100644 --- a/rb/lib/selenium/webdriver/common/profile_helper.rb +++ b/rb/lib/selenium/webdriver/common/profile_helper.rb @@ -73,16 +73,10 @@ module ClassMethods def from_json(json) data = decoded(json) - # can't use Tempfile here since it doesn't support File::BINARY mode on 1.8 - # can't use Dir.mktmpdir(&blk) because of http://jira.codehaus.org/browse/JRUBY-4082 - tmp_dir = Dir.mktmpdir - begin - zip_path = File.join(tmp_dir, "webdriver-profile-duplicate-#{json.hash}.zip") + Tempfile.create do |zip_path| File.open(zip_path, 'wb') { |zip_file| zip_file << Base64.decode64(data) } new Zipper.unzip(zip_path) - ensure - FileUtils.rm_rf tmp_dir end end end # ClassMethods diff --git a/rb/lib/selenium/webdriver/common/zipper.rb b/rb/lib/selenium/webdriver/common/zipper.rb index 638ac8a3bc6b4..1aeb5250a6fbb 100644 --- a/rb/lib/selenium/webdriver/common/zipper.rb +++ b/rb/lib/selenium/webdriver/common/zipper.rb @@ -72,16 +72,8 @@ def zip_file(path) private def with_tmp_zip(&blk) - # can't use Tempfile here since it doesn't support File::BINARY mode on 1.8 - # can't use Dir.mktmpdir(&blk) because of http://jira.codehaus.org/browse/JRUBY-4082 - tmp_dir = Dir.mktmpdir - zip_path = File.join(tmp_dir, 'webdriver-zip') - - begin + Tempfile.create do |zip_path| Zip::File.open(zip_path, Zip::File::CREATE, &blk) - ensure - FileUtils.rm_rf tmp_dir - FileUtils.rm_rf zip_path end end