selenium-webdriver 2.47.0 → 2.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (529) hide show
  1. package/CHANGES.md +96 -0
  2. package/NOTICE +1 -1
  3. package/README.md +57 -6
  4. package/builder.js +375 -358
  5. package/chrome.js +549 -586
  6. package/edge.js +378 -0
  7. package/error.js +597 -5
  8. package/example/google_search_generator.js +2 -4
  9. package/example/logging.js +6 -2
  10. package/executors.js +11 -27
  11. package/firefox/binary.js +80 -114
  12. package/firefox/extension.js +10 -19
  13. package/firefox/index.js +175 -171
  14. package/firefox/profile.js +221 -239
  15. package/http/index.js +396 -77
  16. package/http/util.js +35 -35
  17. package/ie.js +288 -309
  18. package/index.js +34 -125
  19. package/io/exec.js +58 -39
  20. package/io/index.js +54 -48
  21. package/lib/actions.js +594 -0
  22. package/lib/by.js +276 -0
  23. package/lib/capabilities.js +404 -0
  24. package/lib/{webdriver/command.js → command.js} +89 -72
  25. package/lib/{webdriver/button.js → devmode.js} +13 -8
  26. package/lib/events.js +210 -0
  27. package/lib/firefox/amd64/libnoblur64.so +0 -0
  28. package/lib/firefox/i386/libnoblur.so +0 -0
  29. package/lib/firefox/webdriver.json +6 -1
  30. package/lib/firefox/webdriver.xpi +0 -0
  31. package/lib/{webdriver/key.js → input.js} +82 -2
  32. package/lib/logging.js +668 -0
  33. package/lib/promise.js +3093 -0
  34. package/lib/safari/client.js +697 -659
  35. package/lib/session.js +79 -0
  36. package/{test/promise_aplus_test.js → lib/symbols.js} +15 -25
  37. package/lib/test/build.js +4 -4
  38. package/lib/test/data/click_tests/disappearing_element.html +62 -0
  39. package/lib/test/data/click_tests/html5_submit_buttons.html +2 -1
  40. package/lib/test/data/click_tests/overlapping_elements.html +70 -0
  41. package/lib/test/data/click_tests/partially_overlapping_elements.html +124 -0
  42. package/lib/test/data/click_tests/wrapped_overlapping_elements.html +13 -0
  43. package/lib/test/data/readOnlyPage.html +3 -1
  44. package/lib/test/data/selectPage.html +18 -2
  45. package/lib/test/data/simpleTest.html +1 -0
  46. package/lib/test/fileserver.js +3 -4
  47. package/lib/test/index.js +13 -4
  48. package/lib/test/resources.js +1 -1
  49. package/lib/until.js +428 -0
  50. package/lib/webdriver.js +2351 -0
  51. package/net/portprober.js +15 -11
  52. package/opera.js +295 -314
  53. package/package.json +6 -5
  54. package/phantomjs.js +135 -140
  55. package/proxy.js +6 -4
  56. package/remote/index.js +234 -219
  57. package/safari.js +319 -310
  58. package/test/chrome/options_test.js +11 -9
  59. package/test/element_finding_test.js +51 -13
  60. package/test/error_test.js +163 -0
  61. package/test/execute_script_test.js +1 -1
  62. package/test/firefox/firefox_test.js +24 -0
  63. package/test/http/http_test.js +354 -43
  64. package/test/http/util_test.js +25 -23
  65. package/test/io_test.js +6 -1
  66. package/test/lib/by_test.js +127 -0
  67. package/test/lib/capabilities_test.js +84 -0
  68. package/test/lib/events_test.js +177 -0
  69. package/test/lib/logging_test.js +272 -0
  70. package/test/lib/promise_aplus_test.js +74 -0
  71. package/test/lib/promise_error_test.js +808 -0
  72. package/test/lib/promise_flow_test.js +2282 -0
  73. package/test/lib/promise_generator_test.js +308 -0
  74. package/test/lib/promise_test.js +996 -0
  75. package/test/lib/testutil.js +90 -0
  76. package/test/lib/until_test.js +436 -0
  77. package/test/lib/webdriver_test.js +2207 -0
  78. package/test/page_loading_test.js +7 -9
  79. package/test/stale_element_test.js +2 -2
  80. package/test/testing/assert_test.js +374 -0
  81. package/test/testing/index_test.js +9 -11
  82. package/testing/assert.js +334 -17
  83. package/testing/index.js +10 -0
  84. package/_base.js +0 -200
  85. package/docs/Changes.html +0 -317
  86. package/docs/class_bot_Error.html +0 -15
  87. package/docs/class_webdriver_ActionSequence.html +0 -115
  88. package/docs/class_webdriver_Alert.html +0 -24
  89. package/docs/class_webdriver_AlertPromise.html +0 -91
  90. package/docs/class_webdriver_Capabilities.html +0 -60
  91. package/docs/class_webdriver_Command.html +0 -15
  92. package/docs/class_webdriver_EventEmitter.html +0 -35
  93. package/docs/class_webdriver_FileDetector.html +0 -21
  94. package/docs/class_webdriver_Locator.html +0 -12
  95. package/docs/class_webdriver_Serializable.html +0 -9
  96. package/docs/class_webdriver_Session.html +0 -13
  97. package/docs/class_webdriver_TouchSequence.html +0 -49
  98. package/docs/class_webdriver_UnhandledAlertError.html +0 -18
  99. package/docs/class_webdriver_WebDriver.html +0 -313
  100. package/docs/class_webdriver_WebDriver_Logs.html +0 -15
  101. package/docs/class_webdriver_WebDriver_Navigation.html +0 -16
  102. package/docs/class_webdriver_WebDriver_Options.html +0 -41
  103. package/docs/class_webdriver_WebDriver_TargetLocator.html +0 -38
  104. package/docs/class_webdriver_WebDriver_Timeouts.html +0 -29
  105. package/docs/class_webdriver_WebDriver_Window.html +0 -27
  106. package/docs/class_webdriver_WebElement.html +0 -216
  107. package/docs/class_webdriver_WebElementPromise.html +0 -266
  108. package/docs/class_webdriver_http_Executor.html +0 -22
  109. package/docs/class_webdriver_http_Request.html +0 -12
  110. package/docs/class_webdriver_http_Response.html +0 -13
  111. package/docs/class_webdriver_logging_Entry.html +0 -15
  112. package/docs/class_webdriver_logging_Level.html +0 -55
  113. package/docs/class_webdriver_logging_LogRecord.html +0 -45
  114. package/docs/class_webdriver_logging_Logger.html +0 -119
  115. package/docs/class_webdriver_logging_Preferences.html +0 -8
  116. package/docs/class_webdriver_promise_CancellationError.html +0 -18
  117. package/docs/class_webdriver_promise_ControlFlow.html +0 -109
  118. package/docs/class_webdriver_promise_Deferred.html +0 -84
  119. package/docs/class_webdriver_promise_Promise.html +0 -74
  120. package/docs/class_webdriver_stacktrace_Frame.html +0 -20
  121. package/docs/class_webdriver_stacktrace_Snapshot.html +0 -6
  122. package/docs/class_webdriver_testing_Assertion.html +0 -99
  123. package/docs/class_webdriver_testing_Assertion_DelegatingMatcher_.html +0 -13
  124. package/docs/class_webdriver_testing_ContainsMatcher.html +0 -11
  125. package/docs/class_webdriver_testing_NegatedAssertion.html +0 -97
  126. package/docs/class_webdriver_until_Condition.html +0 -7
  127. package/docs/dossier.css +0 -1
  128. package/docs/dossier.js +0 -86
  129. package/docs/enum_bot_ErrorCode.html +0 -3
  130. package/docs/enum_bot_Error_State.html +0 -2
  131. package/docs/enum_webdriver_Browser.html +0 -2
  132. package/docs/enum_webdriver_Button.html +0 -2
  133. package/docs/enum_webdriver_Capability.html +0 -33
  134. package/docs/enum_webdriver_CommandName.html +0 -3
  135. package/docs/enum_webdriver_Key.html +0 -12
  136. package/docs/enum_webdriver_logging_Type.html +0 -6
  137. package/docs/enum_webdriver_promise_ControlFlow_EventType.html +0 -9
  138. package/docs/index.html +0 -123
  139. package/docs/interface_webdriver_CommandExecutor.html +0 -9
  140. package/docs/interface_webdriver_http_Client.html +0 -10
  141. package/docs/interface_webdriver_promise_Thenable.html +0 -77
  142. package/docs/module_selenium-webdriver.html +0 -23
  143. package/docs/module_selenium-webdriver__base.html +0 -23
  144. package/docs/module_selenium-webdriver__base_class_Context.html +0 -5
  145. package/docs/module_selenium-webdriver_builder.html +0 -2
  146. package/docs/module_selenium-webdriver_builder_class_Builder.html +0 -138
  147. package/docs/module_selenium-webdriver_chrome.html +0 -90
  148. package/docs/module_selenium-webdriver_chrome_class_Driver.html +0 -280
  149. package/docs/module_selenium-webdriver_chrome_class_Options.html +0 -127
  150. package/docs/module_selenium-webdriver_chrome_class_ServiceBuilder.html +0 -46
  151. package/docs/module_selenium-webdriver_class_ActionSequence.html +0 -115
  152. package/docs/module_selenium-webdriver_class_Builder.html +0 -138
  153. package/docs/module_selenium-webdriver_class_Capabilities.html +0 -60
  154. package/docs/module_selenium-webdriver_class_Command.html +0 -15
  155. package/docs/module_selenium-webdriver_class_EventEmitter.html +0 -35
  156. package/docs/module_selenium-webdriver_class_FileDetector.html +0 -21
  157. package/docs/module_selenium-webdriver_class_Serializable.html +0 -9
  158. package/docs/module_selenium-webdriver_class_Session.html +0 -13
  159. package/docs/module_selenium-webdriver_class_WebDriver.html +0 -313
  160. package/docs/module_selenium-webdriver_class_WebElement.html +0 -216
  161. package/docs/module_selenium-webdriver_class_WebElementPromise.html +0 -266
  162. package/docs/module_selenium-webdriver_enum_Browser.html +0 -2
  163. package/docs/module_selenium-webdriver_enum_Button.html +0 -2
  164. package/docs/module_selenium-webdriver_enum_Capability.html +0 -33
  165. package/docs/module_selenium-webdriver_enum_CommandName.html +0 -3
  166. package/docs/module_selenium-webdriver_enum_Key.html +0 -12
  167. package/docs/module_selenium-webdriver_error.html +0 -4
  168. package/docs/module_selenium-webdriver_error_class_Error.html +0 -15
  169. package/docs/module_selenium-webdriver_error_enum_ErrorCode.html +0 -3
  170. package/docs/module_selenium-webdriver_executors.html +0 -10
  171. package/docs/module_selenium-webdriver_executors_class_DeferredExecutor.html +0 -12
  172. package/docs/module_selenium-webdriver_firefox.html +0 -67
  173. package/docs/module_selenium-webdriver_firefox_binary.html +0 -4
  174. package/docs/module_selenium-webdriver_firefox_binary_class_Binary.html +0 -21
  175. package/docs/module_selenium-webdriver_firefox_class_Binary.html +0 -21
  176. package/docs/module_selenium-webdriver_firefox_class_Driver.html +0 -276
  177. package/docs/module_selenium-webdriver_firefox_class_Options.html +0 -19
  178. package/docs/module_selenium-webdriver_firefox_class_Profile.html +0 -50
  179. package/docs/module_selenium-webdriver_firefox_extension.html +0 -8
  180. package/docs/module_selenium-webdriver_firefox_profile.html +0 -13
  181. package/docs/module_selenium-webdriver_firefox_profile_class_Profile.html +0 -50
  182. package/docs/module_selenium-webdriver_http.html +0 -9
  183. package/docs/module_selenium-webdriver_http_class_Executor.html +0 -22
  184. package/docs/module_selenium-webdriver_http_class_HttpClient.html +0 -16
  185. package/docs/module_selenium-webdriver_http_class_Request.html +0 -12
  186. package/docs/module_selenium-webdriver_http_class_Response.html +0 -13
  187. package/docs/module_selenium-webdriver_http_util.html +0 -17
  188. package/docs/module_selenium-webdriver_ie.html +0 -11
  189. package/docs/module_selenium-webdriver_ie_class_Driver.html +0 -274
  190. package/docs/module_selenium-webdriver_ie_class_Options.html +0 -89
  191. package/docs/module_selenium-webdriver_ie_enum_Level.html +0 -1
  192. package/docs/module_selenium-webdriver_io.html +0 -37
  193. package/docs/module_selenium-webdriver_io_exec.html +0 -6
  194. package/docs/module_selenium-webdriver_namespace_By.html +0 -56
  195. package/docs/module_selenium-webdriver_namespace_error.html +0 -4
  196. package/docs/module_selenium-webdriver_namespace_logging.html +0 -18
  197. package/docs/module_selenium-webdriver_namespace_promise.html +0 -162
  198. package/docs/module_selenium-webdriver_namespace_stacktrace.html +0 -17
  199. package/docs/module_selenium-webdriver_namespace_until.html +0 -82
  200. package/docs/module_selenium-webdriver_net.html +0 -7
  201. package/docs/module_selenium-webdriver_net_portprober.html +0 -12
  202. package/docs/module_selenium-webdriver_opera.html +0 -62
  203. package/docs/module_selenium-webdriver_opera_class_Driver.html +0 -276
  204. package/docs/module_selenium-webdriver_opera_class_Options.html +0 -44
  205. package/docs/module_selenium-webdriver_opera_class_ServiceBuilder.html +0 -35
  206. package/docs/module_selenium-webdriver_phantomjs.html +0 -2
  207. package/docs/module_selenium-webdriver_phantomjs_class_Driver.html +0 -299
  208. package/docs/module_selenium-webdriver_proxy.html +0 -28
  209. package/docs/module_selenium-webdriver_remote.html +0 -8
  210. package/docs/module_selenium-webdriver_remote_class_DriverService.html +0 -32
  211. package/docs/module_selenium-webdriver_remote_class_FileDetector.html +0 -22
  212. package/docs/module_selenium-webdriver_remote_class_SeleniumServer.html +0 -40
  213. package/docs/module_selenium-webdriver_safari.html +0 -9
  214. package/docs/module_selenium-webdriver_safari_class_Driver.html +0 -279
  215. package/docs/module_selenium-webdriver_safari_class_Options.html +0 -23
  216. package/docs/module_selenium-webdriver_testing.html +0 -74
  217. package/docs/module_selenium-webdriver_testing_assert.html +0 -9
  218. package/docs/namespace_bot.html +0 -4
  219. package/docs/namespace_bot_json.html +0 -20
  220. package/docs/namespace_bot_response.html +0 -18
  221. package/docs/namespace_bot_userAgent.html +0 -33
  222. package/docs/namespace_webdriver.html +0 -30
  223. package/docs/namespace_webdriver_By.html +0 -56
  224. package/docs/namespace_webdriver_http.html +0 -6
  225. package/docs/namespace_webdriver_logging.html +0 -70
  226. package/docs/namespace_webdriver_promise.html +0 -165
  227. package/docs/namespace_webdriver_stacktrace.html +0 -17
  228. package/docs/namespace_webdriver_testing.html +0 -7
  229. package/docs/namespace_webdriver_testing_assert.html +0 -9
  230. package/docs/namespace_webdriver_testing_asserts.html +0 -18
  231. package/docs/namespace_webdriver_until.html +0 -82
  232. package/docs/source/_base.js.src.html +0 -1
  233. package/docs/source/builder.js.src.html +0 -1
  234. package/docs/source/chrome.js.src.html +0 -1
  235. package/docs/source/error.js.src.html +0 -1
  236. package/docs/source/executors.js.src.html +0 -1
  237. package/docs/source/firefox/binary.js.src.html +0 -1
  238. package/docs/source/firefox/extension.js.src.html +0 -1
  239. package/docs/source/firefox/index.js.src.html +0 -1
  240. package/docs/source/firefox/profile.js.src.html +0 -1
  241. package/docs/source/http/index.js.src.html +0 -1
  242. package/docs/source/http/util.js.src.html +0 -1
  243. package/docs/source/ie.js.src.html +0 -1
  244. package/docs/source/index.js.src.html +0 -1
  245. package/docs/source/io/exec.js.src.html +0 -1
  246. package/docs/source/io/index.js.src.html +0 -1
  247. package/docs/source/lib/atoms/error.js.src.html +0 -1
  248. package/docs/source/lib/atoms/json.js.src.html +0 -1
  249. package/docs/source/lib/atoms/response.js.src.html +0 -1
  250. package/docs/source/lib/atoms/userAgent.js.src.html +0 -1
  251. package/docs/source/lib/goog/array/array.js.src.html +0 -1
  252. package/docs/source/lib/goog/asserts/asserts.js.src.html +0 -1
  253. package/docs/source/lib/goog/async/freelist.js.src.html +0 -1
  254. package/docs/source/lib/goog/async/nexttick.js.src.html +0 -1
  255. package/docs/source/lib/goog/async/run.js.src.html +0 -1
  256. package/docs/source/lib/goog/async/workqueue.js.src.html +0 -1
  257. package/docs/source/lib/goog/base.js.src.html +0 -1
  258. package/docs/source/lib/goog/debug/debug.js.src.html +0 -1
  259. package/docs/source/lib/goog/debug/entrypointregistry.js.src.html +0 -1
  260. package/docs/source/lib/goog/debug/error.js.src.html +0 -1
  261. package/docs/source/lib/goog/debug/logbuffer.js.src.html +0 -1
  262. package/docs/source/lib/goog/debug/logger.js.src.html +0 -1
  263. package/docs/source/lib/goog/debug/logrecord.js.src.html +0 -1
  264. package/docs/source/lib/goog/deps.js.src.html +0 -1
  265. package/docs/source/lib/goog/disposable/disposable.js.src.html +0 -1
  266. package/docs/source/lib/goog/disposable/idisposable.js.src.html +0 -1
  267. package/docs/source/lib/goog/dom/browserfeature.js.src.html +0 -1
  268. package/docs/source/lib/goog/dom/dom.js.src.html +0 -1
  269. package/docs/source/lib/goog/dom/nodetype.js.src.html +0 -1
  270. package/docs/source/lib/goog/dom/safe.js.src.html +0 -1
  271. package/docs/source/lib/goog/dom/tagname.js.src.html +0 -1
  272. package/docs/source/lib/goog/dom/tags.js.src.html +0 -1
  273. package/docs/source/lib/goog/dom/vendor.js.src.html +0 -1
  274. package/docs/source/lib/goog/events/browserevent.js.src.html +0 -1
  275. package/docs/source/lib/goog/events/browserfeature.js.src.html +0 -1
  276. package/docs/source/lib/goog/events/event.js.src.html +0 -1
  277. package/docs/source/lib/goog/events/eventid.js.src.html +0 -1
  278. package/docs/source/lib/goog/events/events.js.src.html +0 -1
  279. package/docs/source/lib/goog/events/eventtarget.js.src.html +0 -1
  280. package/docs/source/lib/goog/events/eventtype.js.src.html +0 -1
  281. package/docs/source/lib/goog/events/keycodes.js.src.html +0 -1
  282. package/docs/source/lib/goog/events/listenable.js.src.html +0 -1
  283. package/docs/source/lib/goog/events/listener.js.src.html +0 -1
  284. package/docs/source/lib/goog/events/listenermap.js.src.html +0 -1
  285. package/docs/source/lib/goog/fs/url.js.src.html +0 -1
  286. package/docs/source/lib/goog/functions/functions.js.src.html +0 -1
  287. package/docs/source/lib/goog/html/safehtml.js.src.html +0 -1
  288. package/docs/source/lib/goog/html/safescript.js.src.html +0 -1
  289. package/docs/source/lib/goog/html/safestyle.js.src.html +0 -1
  290. package/docs/source/lib/goog/html/safestylesheet.js.src.html +0 -1
  291. package/docs/source/lib/goog/html/safeurl.js.src.html +0 -1
  292. package/docs/source/lib/goog/html/trustedresourceurl.js.src.html +0 -1
  293. package/docs/source/lib/goog/html/uncheckedconversions.js.src.html +0 -1
  294. package/docs/source/lib/goog/i18n/bidi.js.src.html +0 -1
  295. package/docs/source/lib/goog/iter/iter.js.src.html +0 -1
  296. package/docs/source/lib/goog/json/json.js.src.html +0 -1
  297. package/docs/source/lib/goog/labs/testing/assertthat.js.src.html +0 -1
  298. package/docs/source/lib/goog/labs/testing/logicmatcher.js.src.html +0 -1
  299. package/docs/source/lib/goog/labs/testing/matcher.js.src.html +0 -1
  300. package/docs/source/lib/goog/labs/testing/numbermatcher.js.src.html +0 -1
  301. package/docs/source/lib/goog/labs/testing/objectmatcher.js.src.html +0 -1
  302. package/docs/source/lib/goog/labs/testing/stringmatcher.js.src.html +0 -1
  303. package/docs/source/lib/goog/labs/useragent/browser.js.src.html +0 -1
  304. package/docs/source/lib/goog/labs/useragent/engine.js.src.html +0 -1
  305. package/docs/source/lib/goog/labs/useragent/platform.js.src.html +0 -1
  306. package/docs/source/lib/goog/labs/useragent/util.js.src.html +0 -1
  307. package/docs/source/lib/goog/math/box.js.src.html +0 -1
  308. package/docs/source/lib/goog/math/coordinate.js.src.html +0 -1
  309. package/docs/source/lib/goog/math/math.js.src.html +0 -1
  310. package/docs/source/lib/goog/math/rect.js.src.html +0 -1
  311. package/docs/source/lib/goog/math/size.js.src.html +0 -1
  312. package/docs/source/lib/goog/net/wrapperxmlhttpfactory.js.src.html +0 -1
  313. package/docs/source/lib/goog/net/xhrlike.js.src.html +0 -1
  314. package/docs/source/lib/goog/net/xmlhttp.js.src.html +0 -1
  315. package/docs/source/lib/goog/net/xmlhttpfactory.js.src.html +0 -1
  316. package/docs/source/lib/goog/object/object.js.src.html +0 -1
  317. package/docs/source/lib/goog/promise/promise.js.src.html +0 -1
  318. package/docs/source/lib/goog/promise/resolver.js.src.html +0 -1
  319. package/docs/source/lib/goog/promise/thenable.js.src.html +0 -1
  320. package/docs/source/lib/goog/reflect/reflect.js.src.html +0 -1
  321. package/docs/source/lib/goog/string/const.js.src.html +0 -1
  322. package/docs/source/lib/goog/string/string.js.src.html +0 -1
  323. package/docs/source/lib/goog/string/typedstring.js.src.html +0 -1
  324. package/docs/source/lib/goog/structs/collection.js.src.html +0 -1
  325. package/docs/source/lib/goog/structs/map.js.src.html +0 -1
  326. package/docs/source/lib/goog/structs/set.js.src.html +0 -1
  327. package/docs/source/lib/goog/structs/structs.js.src.html +0 -1
  328. package/docs/source/lib/goog/style/style.js.src.html +0 -1
  329. package/docs/source/lib/goog/testing/asserts.js.src.html +0 -1
  330. package/docs/source/lib/goog/testing/events/events.js.src.html +0 -1
  331. package/docs/source/lib/goog/testing/functionmock.js.src.html +0 -1
  332. package/docs/source/lib/goog/testing/jsunit.js.src.html +0 -1
  333. package/docs/source/lib/goog/testing/loosemock.js.src.html +0 -1
  334. package/docs/source/lib/goog/testing/mock.js.src.html +0 -1
  335. package/docs/source/lib/goog/testing/mockclock.js.src.html +0 -1
  336. package/docs/source/lib/goog/testing/mockcontrol.js.src.html +0 -1
  337. package/docs/source/lib/goog/testing/mockinterface.js.src.html +0 -1
  338. package/docs/source/lib/goog/testing/mockmatchers.js.src.html +0 -1
  339. package/docs/source/lib/goog/testing/objectpropertystring.js.src.html +0 -1
  340. package/docs/source/lib/goog/testing/propertyreplacer.js.src.html +0 -1
  341. package/docs/source/lib/goog/testing/recordfunction.js.src.html +0 -1
  342. package/docs/source/lib/goog/testing/stacktrace.js.src.html +0 -1
  343. package/docs/source/lib/goog/testing/strictmock.js.src.html +0 -1
  344. package/docs/source/lib/goog/testing/testcase.js.src.html +0 -1
  345. package/docs/source/lib/goog/testing/testrunner.js.src.html +0 -1
  346. package/docs/source/lib/goog/testing/watchers.js.src.html +0 -1
  347. package/docs/source/lib/goog/uri/uri.js.src.html +0 -1
  348. package/docs/source/lib/goog/uri/utils.js.src.html +0 -1
  349. package/docs/source/lib/goog/useragent/product.js.src.html +0 -1
  350. package/docs/source/lib/goog/useragent/product_isversion.js.src.html +0 -1
  351. package/docs/source/lib/goog/useragent/useragent.js.src.html +0 -1
  352. package/docs/source/lib/webdriver/actionsequence.js.src.html +0 -1
  353. package/docs/source/lib/webdriver/button.js.src.html +0 -1
  354. package/docs/source/lib/webdriver/capabilities.js.src.html +0 -1
  355. package/docs/source/lib/webdriver/command.js.src.html +0 -1
  356. package/docs/source/lib/webdriver/events.js.src.html +0 -1
  357. package/docs/source/lib/webdriver/http/http.js.src.html +0 -1
  358. package/docs/source/lib/webdriver/key.js.src.html +0 -1
  359. package/docs/source/lib/webdriver/locators.js.src.html +0 -1
  360. package/docs/source/lib/webdriver/logging.js.src.html +0 -1
  361. package/docs/source/lib/webdriver/promise.js.src.html +0 -1
  362. package/docs/source/lib/webdriver/serializable.js.src.html +0 -1
  363. package/docs/source/lib/webdriver/session.js.src.html +0 -1
  364. package/docs/source/lib/webdriver/stacktrace.js.src.html +0 -1
  365. package/docs/source/lib/webdriver/testing/asserts.js.src.html +0 -1
  366. package/docs/source/lib/webdriver/touchsequence.js.src.html +0 -1
  367. package/docs/source/lib/webdriver/until.js.src.html +0 -1
  368. package/docs/source/lib/webdriver/webdriver.js.src.html +0 -1
  369. package/docs/source/net/index.js.src.html +0 -1
  370. package/docs/source/net/portprober.js.src.html +0 -1
  371. package/docs/source/opera.js.src.html +0 -1
  372. package/docs/source/phantomjs.js.src.html +0 -1
  373. package/docs/source/proxy.js.src.html +0 -1
  374. package/docs/source/remote/index.js.src.html +0 -1
  375. package/docs/source/safari.js.src.html +0 -1
  376. package/docs/source/testing/assert.js.src.html +0 -1
  377. package/docs/source/testing/index.js.src.html +0 -1
  378. package/docs/types.js +0 -1
  379. package/lib/atoms/error.js +0 -202
  380. package/lib/atoms/json.js +0 -80
  381. package/lib/atoms/response.js +0 -110
  382. package/lib/atoms/userAgent.js +0 -257
  383. package/lib/goog/LICENSE +0 -176
  384. package/lib/goog/array/array.js +0 -1655
  385. package/lib/goog/asserts/asserts.js +0 -365
  386. package/lib/goog/async/freelist.js +0 -88
  387. package/lib/goog/async/nexttick.js +0 -241
  388. package/lib/goog/async/run.js +0 -139
  389. package/lib/goog/async/workqueue.js +0 -139
  390. package/lib/goog/base.js +0 -2547
  391. package/lib/goog/debug/debug.js +0 -653
  392. package/lib/goog/debug/entrypointregistry.js +0 -158
  393. package/lib/goog/debug/error.js +0 -63
  394. package/lib/goog/debug/logbuffer.js +0 -148
  395. package/lib/goog/debug/logger.js +0 -873
  396. package/lib/goog/debug/logrecord.js +0 -242
  397. package/lib/goog/deps.js +0 -151
  398. package/lib/goog/disposable/disposable.js +0 -307
  399. package/lib/goog/disposable/idisposable.js +0 -45
  400. package/lib/goog/dom/browserfeature.js +0 -72
  401. package/lib/goog/dom/dom.js +0 -2995
  402. package/lib/goog/dom/nodetype.js +0 -48
  403. package/lib/goog/dom/safe.js +0 -347
  404. package/lib/goog/dom/tagname.js +0 -160
  405. package/lib/goog/dom/tags.js +0 -42
  406. package/lib/goog/dom/vendor.js +0 -96
  407. package/lib/goog/events/browserevent.js +0 -386
  408. package/lib/goog/events/browserfeature.js +0 -85
  409. package/lib/goog/events/event.js +0 -143
  410. package/lib/goog/events/eventid.js +0 -47
  411. package/lib/goog/events/events.js +0 -984
  412. package/lib/goog/events/eventtarget.js +0 -394
  413. package/lib/goog/events/eventtype.js +0 -233
  414. package/lib/goog/events/keycodes.js +0 -420
  415. package/lib/goog/events/listenable.js +0 -335
  416. package/lib/goog/events/listener.js +0 -131
  417. package/lib/goog/events/listenermap.js +0 -308
  418. package/lib/goog/fs/url.js +0 -105
  419. package/lib/goog/functions/functions.js +0 -332
  420. package/lib/goog/html/safehtml.js +0 -756
  421. package/lib/goog/html/safescript.js +0 -234
  422. package/lib/goog/html/safestyle.js +0 -442
  423. package/lib/goog/html/safestylesheet.js +0 -276
  424. package/lib/goog/html/safeurl.js +0 -431
  425. package/lib/goog/html/trustedresourceurl.js +0 -224
  426. package/lib/goog/html/uncheckedconversions.js +0 -231
  427. package/lib/goog/i18n/bidi.js +0 -908
  428. package/lib/goog/iter/iter.js +0 -1305
  429. package/lib/goog/json/json.js +0 -365
  430. package/lib/goog/labs/testing/assertthat.js +0 -58
  431. package/lib/goog/labs/testing/logicmatcher.js +0 -212
  432. package/lib/goog/labs/testing/matcher.js +0 -80
  433. package/lib/goog/labs/testing/numbermatcher.js +0 -346
  434. package/lib/goog/labs/testing/objectmatcher.js +0 -317
  435. package/lib/goog/labs/testing/stringmatcher.js +0 -415
  436. package/lib/goog/labs/useragent/browser.js +0 -327
  437. package/lib/goog/labs/useragent/engine.js +0 -160
  438. package/lib/goog/labs/useragent/platform.js +0 -160
  439. package/lib/goog/labs/useragent/util.js +0 -148
  440. package/lib/goog/math/box.js +0 -389
  441. package/lib/goog/math/coordinate.js +0 -268
  442. package/lib/goog/math/math.js +0 -451
  443. package/lib/goog/math/rect.js +0 -476
  444. package/lib/goog/math/size.js +0 -227
  445. package/lib/goog/net/wrapperxmlhttpfactory.js +0 -71
  446. package/lib/goog/net/xhrlike.js +0 -124
  447. package/lib/goog/net/xmlhttp.js +0 -246
  448. package/lib/goog/net/xmlhttpfactory.js +0 -67
  449. package/lib/goog/object/object.js +0 -686
  450. package/lib/goog/promise/promise.js +0 -1310
  451. package/lib/goog/promise/resolver.js +0 -48
  452. package/lib/goog/promise/thenable.js +0 -126
  453. package/lib/goog/reflect/reflect.js +0 -78
  454. package/lib/goog/string/const.js +0 -182
  455. package/lib/goog/string/string.js +0 -1565
  456. package/lib/goog/string/typedstring.js +0 -48
  457. package/lib/goog/structs/collection.js +0 -56
  458. package/lib/goog/structs/map.js +0 -456
  459. package/lib/goog/structs/set.js +0 -279
  460. package/lib/goog/structs/structs.js +0 -354
  461. package/lib/goog/style/style.js +0 -2054
  462. package/lib/goog/testing/asserts.js +0 -1265
  463. package/lib/goog/testing/events/events.js +0 -727
  464. package/lib/goog/testing/functionmock.js +0 -176
  465. package/lib/goog/testing/jsunit.js +0 -162
  466. package/lib/goog/testing/loosemock.js +0 -242
  467. package/lib/goog/testing/mock.js +0 -645
  468. package/lib/goog/testing/mockclock.js +0 -617
  469. package/lib/goog/testing/mockcontrol.js +0 -220
  470. package/lib/goog/testing/mockinterface.js +0 -45
  471. package/lib/goog/testing/mockmatchers.js +0 -400
  472. package/lib/goog/testing/objectpropertystring.js +0 -68
  473. package/lib/goog/testing/propertyreplacer.js +0 -245
  474. package/lib/goog/testing/recordfunction.js +0 -215
  475. package/lib/goog/testing/stacktrace.js +0 -594
  476. package/lib/goog/testing/strictmock.js +0 -130
  477. package/lib/goog/testing/testcase.js +0 -1569
  478. package/lib/goog/testing/testrunner.js +0 -440
  479. package/lib/goog/testing/watchers.js +0 -46
  480. package/lib/goog/uri/uri.js +0 -1507
  481. package/lib/goog/uri/utils.js +0 -1116
  482. package/lib/goog/useragent/product.js +0 -175
  483. package/lib/goog/useragent/product_isversion.js +0 -143
  484. package/lib/goog/useragent/useragent.js +0 -538
  485. package/lib/webdriver/actionsequence.js +0 -356
  486. package/lib/webdriver/builder.js +0 -208
  487. package/lib/webdriver/capabilities.js +0 -411
  488. package/lib/webdriver/events.js +0 -179
  489. package/lib/webdriver/firefoxdomexecutor.js +0 -175
  490. package/lib/webdriver/http/corsclient.js +0 -133
  491. package/lib/webdriver/http/http.js +0 -523
  492. package/lib/webdriver/http/xhrclient.js +0 -67
  493. package/lib/webdriver/locators.js +0 -257
  494. package/lib/webdriver/logging.js +0 -347
  495. package/lib/webdriver/promise.js +0 -2609
  496. package/lib/webdriver/serializable.js +0 -41
  497. package/lib/webdriver/session.js +0 -74
  498. package/lib/webdriver/stacktrace.js +0 -619
  499. package/lib/webdriver/test/builder_test.js +0 -53
  500. package/lib/webdriver/test/capabilities_test.js +0 -72
  501. package/lib/webdriver/test/events_test.js +0 -203
  502. package/lib/webdriver/test/http/corsclient_test.js +0 -151
  503. package/lib/webdriver/test/http/http_test.js +0 -428
  504. package/lib/webdriver/test/http/xhrclient_test.js +0 -196
  505. package/lib/webdriver/test/locators_test.js +0 -59
  506. package/lib/webdriver/test/logging_test.js +0 -85
  507. package/lib/webdriver/test/promise_error_test.js +0 -719
  508. package/lib/webdriver/test/promise_flow_test.js +0 -1957
  509. package/lib/webdriver/test/promise_generator_test.js +0 -251
  510. package/lib/webdriver/test/promise_test.js +0 -1981
  511. package/lib/webdriver/test/stacktrace_test.js +0 -480
  512. package/lib/webdriver/test/test_bootstrap.js +0 -67
  513. package/lib/webdriver/test/testing/asserts_test.js +0 -117
  514. package/lib/webdriver/test/testing/client_test.js +0 -88
  515. package/lib/webdriver/test/testing/testcase_test.js +0 -229
  516. package/lib/webdriver/test/testutil.js +0 -209
  517. package/lib/webdriver/test/testutil_test.js +0 -104
  518. package/lib/webdriver/test/until_test.js +0 -411
  519. package/lib/webdriver/test/webdriver_generator_test.js +0 -92
  520. package/lib/webdriver/test/webdriver_test.js +0 -2369
  521. package/lib/webdriver/testing/asserts.js +0 -487
  522. package/lib/webdriver/testing/client.js +0 -179
  523. package/lib/webdriver/testing/jsunit.js +0 -363
  524. package/lib/webdriver/testing/testcase.js +0 -168
  525. package/lib/webdriver/testing/window.js +0 -244
  526. package/lib/webdriver/touchsequence.js +0 -248
  527. package/lib/webdriver/until.js +0 -412
  528. package/lib/webdriver/webdriver.js +0 -2492
  529. package/test/_base_test.js +0 -129
@@ -1,538 +0,0 @@
1
- // Copyright 2006 The Closure Library Authors. All Rights Reserved.
2
- //
3
- // Licensed under the Apache License, Version 2.0 (the "License");
4
- // you may not use this file except in compliance with the License.
5
- // You may obtain a copy of the License at
6
- //
7
- // http://www.apache.org/licenses/LICENSE-2.0
8
- //
9
- // Unless required by applicable law or agreed to in writing, software
10
- // distributed under the License is distributed on an "AS-IS" BASIS,
11
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- // See the License for the specific language governing permissions and
13
- // limitations under the License.
14
-
15
- /**
16
- * @fileoverview Rendering engine detection.
17
- * @see <a href="http://www.useragentstring.com/">User agent strings</a>
18
- * For information on the browser brand (such as Safari versus Chrome), see
19
- * goog.userAgent.product.
20
- * @author arv@google.com (Erik Arvidsson)
21
- * @see ../demos/useragent.html
22
- */
23
-
24
- goog.provide('goog.userAgent');
25
-
26
- goog.require('goog.labs.userAgent.browser');
27
- goog.require('goog.labs.userAgent.engine');
28
- goog.require('goog.labs.userAgent.platform');
29
- goog.require('goog.labs.userAgent.util');
30
- goog.require('goog.string');
31
-
32
-
33
- /**
34
- * @define {boolean} Whether we know at compile-time that the browser is IE.
35
- */
36
- goog.define('goog.userAgent.ASSUME_IE', false);
37
-
38
-
39
- /**
40
- * @define {boolean} Whether we know at compile-time that the browser is GECKO.
41
- */
42
- goog.define('goog.userAgent.ASSUME_GECKO', false);
43
-
44
-
45
- /**
46
- * @define {boolean} Whether we know at compile-time that the browser is WEBKIT.
47
- */
48
- goog.define('goog.userAgent.ASSUME_WEBKIT', false);
49
-
50
-
51
- /**
52
- * @define {boolean} Whether we know at compile-time that the browser is a
53
- * mobile device running WebKit e.g. iPhone or Android.
54
- */
55
- goog.define('goog.userAgent.ASSUME_MOBILE_WEBKIT', false);
56
-
57
-
58
- /**
59
- * @define {boolean} Whether we know at compile-time that the browser is OPERA.
60
- */
61
- goog.define('goog.userAgent.ASSUME_OPERA', false);
62
-
63
-
64
- /**
65
- * @define {boolean} Whether the
66
- * {@code goog.userAgent.isVersionOrHigher}
67
- * function will return true for any version.
68
- */
69
- goog.define('goog.userAgent.ASSUME_ANY_VERSION', false);
70
-
71
-
72
- /**
73
- * Whether we know the browser engine at compile-time.
74
- * @type {boolean}
75
- * @private
76
- */
77
- goog.userAgent.BROWSER_KNOWN_ =
78
- goog.userAgent.ASSUME_IE ||
79
- goog.userAgent.ASSUME_GECKO ||
80
- goog.userAgent.ASSUME_MOBILE_WEBKIT ||
81
- goog.userAgent.ASSUME_WEBKIT ||
82
- goog.userAgent.ASSUME_OPERA;
83
-
84
-
85
- /**
86
- * Returns the userAgent string for the current browser.
87
- *
88
- * @return {string} The userAgent string.
89
- */
90
- goog.userAgent.getUserAgentString = function() {
91
- return goog.labs.userAgent.util.getUserAgent();
92
- };
93
-
94
-
95
- /**
96
- * TODO(nnaze): Change type to "Navigator" and update compilation targets.
97
- * @return {Object} The native navigator object.
98
- */
99
- goog.userAgent.getNavigator = function() {
100
- // Need a local navigator reference instead of using the global one,
101
- // to avoid the rare case where they reference different objects.
102
- // (in a WorkerPool, for example).
103
- return goog.global['navigator'] || null;
104
- };
105
-
106
-
107
- /**
108
- * Whether the user agent is Opera.
109
- * @type {boolean}
110
- */
111
- goog.userAgent.OPERA = goog.userAgent.BROWSER_KNOWN_ ?
112
- goog.userAgent.ASSUME_OPERA :
113
- goog.labs.userAgent.browser.isOpera();
114
-
115
-
116
- /**
117
- * Whether the user agent is Internet Explorer.
118
- * @type {boolean}
119
- */
120
- goog.userAgent.IE = goog.userAgent.BROWSER_KNOWN_ ?
121
- goog.userAgent.ASSUME_IE :
122
- goog.labs.userAgent.browser.isIE();
123
-
124
-
125
- /**
126
- * Whether the user agent is Gecko. Gecko is the rendering engine used by
127
- * Mozilla, Firefox, and others.
128
- * @type {boolean}
129
- */
130
- goog.userAgent.GECKO = goog.userAgent.BROWSER_KNOWN_ ?
131
- goog.userAgent.ASSUME_GECKO :
132
- goog.labs.userAgent.engine.isGecko();
133
-
134
-
135
- /**
136
- * Whether the user agent is WebKit. WebKit is the rendering engine that
137
- * Safari, Android and others use.
138
- * @type {boolean}
139
- */
140
- goog.userAgent.WEBKIT = goog.userAgent.BROWSER_KNOWN_ ?
141
- goog.userAgent.ASSUME_WEBKIT || goog.userAgent.ASSUME_MOBILE_WEBKIT :
142
- goog.labs.userAgent.engine.isWebKit();
143
-
144
-
145
- /**
146
- * Whether the user agent is running on a mobile device.
147
- *
148
- * This is a separate function so that the logic can be tested.
149
- *
150
- * TODO(nnaze): Investigate swapping in goog.labs.userAgent.device.isMobile().
151
- *
152
- * @return {boolean} Whether the user agent is running on a mobile device.
153
- * @private
154
- */
155
- goog.userAgent.isMobile_ = function() {
156
- return goog.userAgent.WEBKIT &&
157
- goog.labs.userAgent.util.matchUserAgent('Mobile');
158
- };
159
-
160
-
161
- /**
162
- * Whether the user agent is running on a mobile device.
163
- *
164
- * TODO(nnaze): Consider deprecating MOBILE when labs.userAgent
165
- * is promoted as the gecko/webkit logic is likely inaccurate.
166
- *
167
- * @type {boolean}
168
- */
169
- goog.userAgent.MOBILE = goog.userAgent.ASSUME_MOBILE_WEBKIT ||
170
- goog.userAgent.isMobile_();
171
-
172
-
173
- /**
174
- * Used while transitioning code to use WEBKIT instead.
175
- * @type {boolean}
176
- * @deprecated Use {@link goog.userAgent.product.SAFARI} instead.
177
- * TODO(nicksantos): Delete this from goog.userAgent.
178
- */
179
- goog.userAgent.SAFARI = goog.userAgent.WEBKIT;
180
-
181
-
182
- /**
183
- * @return {string} the platform (operating system) the user agent is running
184
- * on. Default to empty string because navigator.platform may not be defined
185
- * (on Rhino, for example).
186
- * @private
187
- */
188
- goog.userAgent.determinePlatform_ = function() {
189
- var navigator = goog.userAgent.getNavigator();
190
- return navigator && navigator.platform || '';
191
- };
192
-
193
-
194
- /**
195
- * The platform (operating system) the user agent is running on. Default to
196
- * empty string because navigator.platform may not be defined (on Rhino, for
197
- * example).
198
- * @type {string}
199
- */
200
- goog.userAgent.PLATFORM = goog.userAgent.determinePlatform_();
201
-
202
-
203
- /**
204
- * @define {boolean} Whether the user agent is running on a Macintosh operating
205
- * system.
206
- */
207
- goog.define('goog.userAgent.ASSUME_MAC', false);
208
-
209
-
210
- /**
211
- * @define {boolean} Whether the user agent is running on a Windows operating
212
- * system.
213
- */
214
- goog.define('goog.userAgent.ASSUME_WINDOWS', false);
215
-
216
-
217
- /**
218
- * @define {boolean} Whether the user agent is running on a Linux operating
219
- * system.
220
- */
221
- goog.define('goog.userAgent.ASSUME_LINUX', false);
222
-
223
-
224
- /**
225
- * @define {boolean} Whether the user agent is running on a X11 windowing
226
- * system.
227
- */
228
- goog.define('goog.userAgent.ASSUME_X11', false);
229
-
230
-
231
- /**
232
- * @define {boolean} Whether the user agent is running on Android.
233
- */
234
- goog.define('goog.userAgent.ASSUME_ANDROID', false);
235
-
236
-
237
- /**
238
- * @define {boolean} Whether the user agent is running on an iPhone.
239
- */
240
- goog.define('goog.userAgent.ASSUME_IPHONE', false);
241
-
242
-
243
- /**
244
- * @define {boolean} Whether the user agent is running on an iPad.
245
- */
246
- goog.define('goog.userAgent.ASSUME_IPAD', false);
247
-
248
-
249
- /**
250
- * @type {boolean}
251
- * @private
252
- */
253
- goog.userAgent.PLATFORM_KNOWN_ =
254
- goog.userAgent.ASSUME_MAC ||
255
- goog.userAgent.ASSUME_WINDOWS ||
256
- goog.userAgent.ASSUME_LINUX ||
257
- goog.userAgent.ASSUME_X11 ||
258
- goog.userAgent.ASSUME_ANDROID ||
259
- goog.userAgent.ASSUME_IPHONE ||
260
- goog.userAgent.ASSUME_IPAD;
261
-
262
-
263
- /**
264
- * Whether the user agent is running on a Macintosh operating system.
265
- * @type {boolean}
266
- */
267
- goog.userAgent.MAC = goog.userAgent.PLATFORM_KNOWN_ ?
268
- goog.userAgent.ASSUME_MAC : goog.labs.userAgent.platform.isMacintosh();
269
-
270
-
271
- /**
272
- * Whether the user agent is running on a Windows operating system.
273
- * @type {boolean}
274
- */
275
- goog.userAgent.WINDOWS = goog.userAgent.PLATFORM_KNOWN_ ?
276
- goog.userAgent.ASSUME_WINDOWS :
277
- goog.labs.userAgent.platform.isWindows();
278
-
279
-
280
- /**
281
- * Whether the user agent is Linux per the legacy behavior of
282
- * goog.userAgent.LINUX, which considered ChromeOS to also be
283
- * Linux.
284
- * @return {boolean}
285
- * @private
286
- */
287
- goog.userAgent.isLegacyLinux_ = function() {
288
- return goog.labs.userAgent.platform.isLinux() ||
289
- goog.labs.userAgent.platform.isChromeOS();
290
- };
291
-
292
-
293
- /**
294
- * Whether the user agent is running on a Linux operating system.
295
- *
296
- * Note that goog.userAgent.LINUX considers ChromeOS to be Linux,
297
- * while goog.labs.userAgent.platform considers ChromeOS and
298
- * Linux to be different OSes.
299
- *
300
- * @type {boolean}
301
- */
302
- goog.userAgent.LINUX = goog.userAgent.PLATFORM_KNOWN_ ?
303
- goog.userAgent.ASSUME_LINUX :
304
- goog.userAgent.isLegacyLinux_();
305
-
306
-
307
- /**
308
- * @return {boolean} Whether the user agent is an X11 windowing system.
309
- * @private
310
- */
311
- goog.userAgent.isX11_ = function() {
312
- var navigator = goog.userAgent.getNavigator();
313
- return !!navigator &&
314
- goog.string.contains(navigator['appVersion'] || '', 'X11');
315
- };
316
-
317
-
318
- /**
319
- * Whether the user agent is running on a X11 windowing system.
320
- * @type {boolean}
321
- */
322
- goog.userAgent.X11 = goog.userAgent.PLATFORM_KNOWN_ ?
323
- goog.userAgent.ASSUME_X11 :
324
- goog.userAgent.isX11_();
325
-
326
-
327
- /**
328
- * Whether the user agent is running on Android.
329
- * @type {boolean}
330
- */
331
- goog.userAgent.ANDROID = goog.userAgent.PLATFORM_KNOWN_ ?
332
- goog.userAgent.ASSUME_ANDROID :
333
- goog.labs.userAgent.platform.isAndroid();
334
-
335
-
336
- /**
337
- * Whether the user agent is running on an iPhone.
338
- * @type {boolean}
339
- */
340
- goog.userAgent.IPHONE = goog.userAgent.PLATFORM_KNOWN_ ?
341
- goog.userAgent.ASSUME_IPHONE :
342
- goog.labs.userAgent.platform.isIphone();
343
-
344
-
345
- /**
346
- * Whether the user agent is running on an iPad.
347
- * @type {boolean}
348
- */
349
- goog.userAgent.IPAD = goog.userAgent.PLATFORM_KNOWN_ ?
350
- goog.userAgent.ASSUME_IPAD :
351
- goog.labs.userAgent.platform.isIpad();
352
-
353
-
354
- /**
355
- * @return {string} The string that describes the version number of the user
356
- * agent.
357
- * @private
358
- */
359
- goog.userAgent.determineVersion_ = function() {
360
- // All browsers have different ways to detect the version and they all have
361
- // different naming schemes.
362
-
363
- if (goog.userAgent.OPERA && goog.global['opera']) {
364
- var operaVersion = goog.global['opera'].version;
365
- return goog.isFunction(operaVersion) ? operaVersion() : operaVersion;
366
- }
367
-
368
- // version is a string rather than a number because it may contain 'b', 'a',
369
- // and so on.
370
- var version = '';
371
- var arr = goog.userAgent.getVersionRegexResult_();
372
- if (arr) {
373
- version = arr ? arr[1] : '';
374
- }
375
-
376
- if (goog.userAgent.IE && !goog.labs.userAgent.engine.isEdge()) {
377
- // IE9 can be in document mode 9 but be reporting an inconsistent user agent
378
- // version. If it is identifying as a version lower than 9 we take the
379
- // documentMode as the version instead. IE8 has similar behavior.
380
- // It is recommended to set the X-UA-Compatible header to ensure that IE9
381
- // uses documentMode 9.
382
- var docMode = goog.userAgent.getDocumentMode_();
383
- if (docMode > parseFloat(version)) {
384
- return String(docMode);
385
- }
386
- }
387
-
388
- return version;
389
- };
390
-
391
-
392
- /**
393
- * @return {Array|undefined} The version regex matches from parsing the user
394
- * agent string. These regex statements must be executed inline so they can
395
- * be compiled out by the closure compiler with the rest of the useragent
396
- * detection logic when ASSUME_* is specified.
397
- * @private
398
- */
399
- goog.userAgent.getVersionRegexResult_ = function() {
400
- var userAgent = goog.userAgent.getUserAgentString();
401
- if (goog.userAgent.GECKO) {
402
- return /rv\:([^\);]+)(\)|;)/.exec(userAgent);
403
- }
404
- if (goog.userAgent.IE && goog.labs.userAgent.engine.isEdge()) {
405
- return /Edge\/([\d\.]+)/.exec(userAgent);
406
- }
407
- if (goog.userAgent.IE) {
408
- return /\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(userAgent);
409
- }
410
- if (goog.userAgent.WEBKIT) {
411
- // WebKit/125.4
412
- return /WebKit\/(\S+)/.exec(userAgent);
413
- }
414
- };
415
-
416
-
417
- /**
418
- * @return {number|undefined} Returns the document mode (for testing).
419
- * @private
420
- */
421
- goog.userAgent.getDocumentMode_ = function() {
422
- // NOTE(user): goog.userAgent may be used in context where there is no DOM.
423
- var doc = goog.global['document'];
424
- return doc ? doc['documentMode'] : undefined;
425
- };
426
-
427
-
428
- /**
429
- * The version of the user agent. This is a string because it might contain
430
- * 'b' (as in beta) as well as multiple dots.
431
- * @type {string}
432
- */
433
- goog.userAgent.VERSION = goog.userAgent.determineVersion_();
434
-
435
-
436
- /**
437
- * Compares two version numbers.
438
- *
439
- * @param {string} v1 Version of first item.
440
- * @param {string} v2 Version of second item.
441
- *
442
- * @return {number} 1 if first argument is higher
443
- * 0 if arguments are equal
444
- * -1 if second argument is higher.
445
- * @deprecated Use goog.string.compareVersions.
446
- */
447
- goog.userAgent.compare = function(v1, v2) {
448
- return goog.string.compareVersions(v1, v2);
449
- };
450
-
451
-
452
- /**
453
- * Cache for {@link goog.userAgent.isVersionOrHigher}.
454
- * Calls to compareVersions are surprisingly expensive and, as a browser's
455
- * version number is unlikely to change during a session, we cache the results.
456
- * @const
457
- * @private
458
- */
459
- goog.userAgent.isVersionOrHigherCache_ = {};
460
-
461
-
462
- /**
463
- * Whether the user agent version is higher or the same as the given version.
464
- * NOTE: When checking the version numbers for Firefox and Safari, be sure to
465
- * use the engine's version, not the browser's version number. For example,
466
- * Firefox 3.0 corresponds to Gecko 1.9 and Safari 3.0 to Webkit 522.11.
467
- * Opera and Internet Explorer versions match the product release number.<br>
468
- * @see <a href="http://en.wikipedia.org/wiki/Safari_version_history">
469
- * Webkit</a>
470
- * @see <a href="http://en.wikipedia.org/wiki/Gecko_engine">Gecko</a>
471
- *
472
- * @param {string|number} version The version to check.
473
- * @return {boolean} Whether the user agent version is higher or the same as
474
- * the given version.
475
- */
476
- goog.userAgent.isVersionOrHigher = function(version) {
477
- return goog.userAgent.ASSUME_ANY_VERSION ||
478
- goog.userAgent.isVersionOrHigherCache_[version] ||
479
- (goog.userAgent.isVersionOrHigherCache_[version] =
480
- goog.string.compareVersions(goog.userAgent.VERSION, version) >= 0);
481
- };
482
-
483
-
484
- /**
485
- * Deprecated alias to {@code goog.userAgent.isVersionOrHigher}.
486
- * @param {string|number} version The version to check.
487
- * @return {boolean} Whether the user agent version is higher or the same as
488
- * the given version.
489
- * @deprecated Use goog.userAgent.isVersionOrHigher().
490
- */
491
- goog.userAgent.isVersion = goog.userAgent.isVersionOrHigher;
492
-
493
-
494
- /**
495
- * Whether the IE effective document mode is higher or the same as the given
496
- * document mode version. Because document modes were deprecated with the launch
497
- * of IE's new Edge engine, Edge browsers will always return true for this
498
- * function.
499
- * NOTE: Only for IE, return false for another browser.
500
- *
501
- * @param {number} documentMode The document mode version to check.
502
- * @return {boolean} Whether the IE effective document mode is higher or the
503
- * same as the given version.
504
- */
505
- goog.userAgent.isDocumentModeOrHigher = function(documentMode) {
506
- return goog.userAgent.IE && (goog.labs.userAgent.engine.isEdge() ||
507
- goog.userAgent.DOCUMENT_MODE >= documentMode);
508
- };
509
-
510
-
511
- /**
512
- * Deprecated alias to {@code goog.userAgent.isDocumentModeOrHigher}.
513
- * @param {number} version The version to check.
514
- * @return {boolean} Whether the IE effective document mode is higher or the
515
- * same as the given version.
516
- * @deprecated Use goog.userAgent.isDocumentModeOrHigher().
517
- */
518
- goog.userAgent.isDocumentMode = goog.userAgent.isDocumentModeOrHigher;
519
-
520
-
521
- /**
522
- * For IE version < 7 and IE Edge browsers, documentMode is undefined. For
523
- * non-Edge browsers attempt to use the CSS1Compat property to see if we are in
524
- * standards mode. If we are in standards mode, treat the browser version as the
525
- * document mode. Otherwise, IE is emulating version 5.
526
- * @type {number|undefined}
527
- * @const
528
- */
529
- goog.userAgent.DOCUMENT_MODE = (function() {
530
- var doc = goog.global['document'];
531
- var mode = goog.userAgent.getDocumentMode_();
532
- if (!doc || !goog.userAgent.IE ||
533
- (!mode && goog.labs.userAgent.engine.isEdge())) {
534
- return undefined;
535
- }
536
- return mode || (doc['compatMode'] == 'CSS1Compat' ?
537
- parseInt(goog.userAgent.VERSION, 10) : 5);
538
- })();