class SameSiteUaChecker
Generated by generate_regex_classes.rb
Generated by generate_regex_classes.rb
Generated by generate_regex_classes.rb
Generated by generate_regex_classes.rb
Generated by generate_regex_classes.rb
Constants
- VERSION
Public Class Methods
call(user_agent_string)
click to toggle source
@param [String] user_agent_string @return [Boolean] Browser has bug and should NOT receive SameSite=None cookie attribute
# File lib/same_site_ua_checker.rb, line 15 def self.call(user_agent_string) new.check(user_agent_string) end
Public Instance Methods
check(user_agent_string)
click to toggle source
# File lib/same_site_ua_checker.rb, line 19 def check(user_agent_string) raise ArgumentError, 'Only string argument is allowed' unless user_agent_string.is_a?(String) check_same_site_not_supported(user_agent_string) || check_same_site_strict_bug(user_agent_string) || check_same_site_none_bug(user_agent_string) end
Private Instance Methods
check_same_site_none_bug(user_agent_string)
click to toggle source
# File lib/same_site_ua_checker.rb, line 33 def check_same_site_none_bug(user_agent_string) # Additional check for chrome browser version is_chrome_based_browser = RegexListSameSiteNoneBug.new.check(user_agent_string) return false unless is_chrome_based_browser ucbrowser_version = RegexVersionUcbrowser.new.detect(user_agent_string) return !ucbrowser_version.at_least?(12, 13, 2) if ucbrowser_version.major != 0 chrome_browser_version = RegexVersionChrome.new.detect(user_agent_string) return chrome_browser_version.major_between_inc?(51, 66) if chrome_browser_version.major != 0 false end
check_same_site_not_supported(user_agent_string)
click to toggle source
# File lib/same_site_ua_checker.rb, line 29 def check_same_site_not_supported(user_agent_string) RegexListSameSiteNotSupported.new.check(user_agent_string) end
check_same_site_strict_bug(user_agent_string)
click to toggle source
# File lib/same_site_ua_checker.rb, line 48 def check_same_site_strict_bug(user_agent_string) is_chrome_based_browser = RegexListSameSiteNoneBug.new.check(user_agent_string) return false if is_chrome_based_browser RegexListSameSiteStrictBug.new.check(user_agent_string) end