auto_response 0.1.6 → 0.1.8

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 (334) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -3
  3. data/Gemfile.lock +9 -12
  4. data/bin/ar +14 -3
  5. data/lib/ar/har.rb +133 -0
  6. data/lib/ar/proxy_server.rb +171 -0
  7. data/lib/ar/rule_dsl.rb +4 -0
  8. data/lib/ar/rule_manager.rb +2 -1
  9. data/lib/ar/session_viewer.rb +18 -13
  10. data/lib/ar/version.rb +3 -0
  11. data/lib/ar/viewer/Images/applicationCache.png +0 -0
  12. data/lib/ar/viewer/Images/back.png +0 -0
  13. data/lib/ar/viewer/Images/checker.png +0 -0
  14. data/lib/ar/viewer/Images/closeButtons.png +0 -0
  15. data/lib/ar/viewer/Images/cookie.png +0 -0
  16. data/lib/ar/viewer/Images/database.png +0 -0
  17. data/lib/ar/viewer/Images/databaseTable.png +0 -0
  18. data/lib/ar/viewer/Images/deleteIcon.png +0 -0
  19. data/lib/ar/viewer/Images/disclosureTriangleSmallDown.png +0 -0
  20. data/lib/ar/viewer/Images/disclosureTriangleSmallDownBlack.png +0 -0
  21. data/lib/ar/viewer/Images/disclosureTriangleSmallDownWhite.png +0 -0
  22. data/lib/ar/viewer/Images/disclosureTriangleSmallRight.png +0 -0
  23. data/lib/ar/viewer/Images/disclosureTriangleSmallRightBlack.png +0 -0
  24. data/lib/ar/viewer/Images/disclosureTriangleSmallRightDown.png +0 -0
  25. data/lib/ar/viewer/Images/disclosureTriangleSmallRightDownBlack.png +0 -0
  26. data/lib/ar/viewer/Images/disclosureTriangleSmallRightDownWhite.png +0 -0
  27. data/lib/ar/viewer/Images/disclosureTriangleSmallRightWhite.png +0 -0
  28. data/lib/ar/viewer/Images/domain.png +0 -0
  29. data/lib/ar/viewer/Images/errorIcon.png +0 -0
  30. data/lib/ar/viewer/Images/errorMediumIcon.png +0 -0
  31. data/lib/ar/viewer/Images/errorRedDot.png +0 -0
  32. data/lib/ar/viewer/Images/fileSystem.png +0 -0
  33. data/lib/ar/viewer/Images/forward.png +0 -0
  34. data/lib/ar/viewer/Images/frame.png +0 -0
  35. data/lib/ar/viewer/Images/glossyHeader.png +0 -0
  36. data/lib/ar/viewer/Images/glossyHeaderPressed.png +0 -0
  37. data/lib/ar/viewer/Images/glossyHeaderSelected.png +0 -0
  38. data/lib/ar/viewer/Images/glossyHeaderSelectedPressed.png +0 -0
  39. data/lib/ar/viewer/Images/goArrow.png +0 -0
  40. data/lib/ar/viewer/Images/graphLabelCalloutLeft.png +0 -0
  41. data/lib/ar/viewer/Images/graphLabelCalloutRight.png +0 -0
  42. data/lib/ar/viewer/Images/indexedDB.png +0 -0
  43. data/lib/ar/viewer/Images/indexedDBIndex.png +0 -0
  44. data/lib/ar/viewer/Images/indexedDBObjectStore.png +0 -0
  45. data/lib/ar/viewer/Images/localStorage.png +0 -0
  46. data/lib/ar/viewer/Images/navigatorShowHideButton.png +0 -0
  47. data/lib/ar/viewer/Images/paneAddButtons.png +0 -0
  48. data/lib/ar/viewer/Images/paneBottomGrow.png +0 -0
  49. data/lib/ar/viewer/Images/paneBottomGrowActive.png +0 -0
  50. data/lib/ar/viewer/Images/paneElementStateButtons.png +0 -0
  51. data/lib/ar/viewer/Images/paneFilterButtons.png +0 -0
  52. data/lib/ar/viewer/Images/paneGrowHandleLine.png +0 -0
  53. data/lib/ar/viewer/Images/paneRefreshButtons.png +0 -0
  54. data/lib/ar/viewer/Images/paneSettingsButtons.png +0 -0
  55. data/lib/ar/viewer/Images/popoverArrows.png +0 -0
  56. data/lib/ar/viewer/Images/popoverBackground.png +0 -0
  57. data/lib/ar/viewer/Images/profileGroupIcon.png +0 -0
  58. data/lib/ar/viewer/Images/profileIcon.png +0 -0
  59. data/lib/ar/viewer/Images/profileSmallIcon.png +0 -0
  60. data/lib/ar/viewer/Images/profilesSilhouette.png +0 -0
  61. data/lib/ar/viewer/Images/programCounterBorder.png +0 -0
  62. data/lib/ar/viewer/Images/radioDot.png +0 -0
  63. data/lib/ar/viewer/Images/resourceCSSIcon.png +0 -0
  64. data/lib/ar/viewer/Images/resourceDocumentIcon.png +0 -0
  65. data/lib/ar/viewer/Images/resourceDocumentIconSmall.png +0 -0
  66. data/lib/ar/viewer/Images/resourceJSIcon.png +0 -0
  67. data/lib/ar/viewer/Images/resourcePlainIcon.png +0 -0
  68. data/lib/ar/viewer/Images/resourcePlainIconSmall.png +0 -0
  69. data/lib/ar/viewer/Images/resourcesSizeGraphIcon.png +0 -0
  70. data/lib/ar/viewer/Images/resourcesTimeGraphIcon.png +0 -0
  71. data/lib/ar/viewer/Images/scriptsSilhouette.png +0 -0
  72. data/lib/ar/viewer/Images/searchNext.png +0 -0
  73. data/lib/ar/viewer/Images/searchPrev.png +0 -0
  74. data/lib/ar/viewer/Images/searchSmallBlue.png +0 -0
  75. data/lib/ar/viewer/Images/searchSmallBrightBlue.png +0 -0
  76. data/lib/ar/viewer/Images/searchSmallGray.png +0 -0
  77. data/lib/ar/viewer/Images/searchSmallWhite.png +0 -0
  78. data/lib/ar/viewer/Images/segment.png +0 -0
  79. data/lib/ar/viewer/Images/segmentChromium.png +0 -0
  80. data/lib/ar/viewer/Images/segmentEnd.png +0 -0
  81. data/lib/ar/viewer/Images/segmentHover.png +0 -0
  82. data/lib/ar/viewer/Images/segmentHoverChromium.png +0 -0
  83. data/lib/ar/viewer/Images/segmentHoverEnd.png +0 -0
  84. data/lib/ar/viewer/Images/segmentHoverEndChromium.png +0 -0
  85. data/lib/ar/viewer/Images/segmentSelected.png +0 -0
  86. data/lib/ar/viewer/Images/segmentSelectedChromium.png +0 -0
  87. data/lib/ar/viewer/Images/segmentSelectedEnd.png +0 -0
  88. data/lib/ar/viewer/Images/segmentSelectedEndChromium.png +0 -0
  89. data/lib/ar/viewer/Images/sessionStorage.png +0 -0
  90. data/lib/ar/viewer/Images/spinner.gif +0 -0
  91. data/lib/ar/viewer/Images/spinnerActive.gif +0 -0
  92. data/lib/ar/viewer/Images/spinnerActiveSelected.gif +0 -0
  93. data/lib/ar/viewer/Images/spinnerInactive.gif +0 -0
  94. data/lib/ar/viewer/Images/spinnerInactiveSelected.gif +0 -0
  95. data/lib/ar/viewer/Images/splitviewDimple.png +0 -0
  96. data/lib/ar/viewer/Images/splitviewDividerBackground.png +0 -0
  97. data/lib/ar/viewer/Images/statusbarButtonGlyphs.png +0 -0
  98. data/lib/ar/viewer/Images/statusbarResizerHorizontal.png +0 -0
  99. data/lib/ar/viewer/Images/statusbarResizerVertical.png +0 -0
  100. data/lib/ar/viewer/Images/successGreenDot.png +0 -0
  101. data/lib/ar/viewer/Images/thumbActiveHoriz.png +0 -0
  102. data/lib/ar/viewer/Images/thumbActiveVert.png +0 -0
  103. data/lib/ar/viewer/Images/thumbHoriz.png +0 -0
  104. data/lib/ar/viewer/Images/thumbHoverHoriz.png +0 -0
  105. data/lib/ar/viewer/Images/thumbHoverVert.png +0 -0
  106. data/lib/ar/viewer/Images/thumbVert.png +0 -0
  107. data/lib/ar/viewer/Images/tickMark.png +0 -0
  108. data/lib/ar/viewer/Images/timelineHollowPillBlue.png +0 -0
  109. data/lib/ar/viewer/Images/timelineHollowPillGray.png +0 -0
  110. data/lib/ar/viewer/Images/timelineHollowPillGreen.png +0 -0
  111. data/lib/ar/viewer/Images/timelineHollowPillOrange.png +0 -0
  112. data/lib/ar/viewer/Images/timelineHollowPillPurple.png +0 -0
  113. data/lib/ar/viewer/Images/timelineHollowPillRed.png +0 -0
  114. data/lib/ar/viewer/Images/timelineHollowPillYellow.png +0 -0
  115. data/lib/ar/viewer/Images/timelinePillBlue.png +0 -0
  116. data/lib/ar/viewer/Images/timelinePillGray.png +0 -0
  117. data/lib/ar/viewer/Images/timelinePillGreen.png +0 -0
  118. data/lib/ar/viewer/Images/timelinePillOrange.png +0 -0
  119. data/lib/ar/viewer/Images/timelinePillPurple.png +0 -0
  120. data/lib/ar/viewer/Images/timelinePillRed.png +0 -0
  121. data/lib/ar/viewer/Images/timelinePillYellow.png +0 -0
  122. data/lib/ar/viewer/Images/toolbarIcons.png +0 -0
  123. data/lib/ar/viewer/Images/toolbarIconsSmall.png +0 -0
  124. data/lib/ar/viewer/Images/toolbarItemSelected.png +0 -0
  125. data/lib/ar/viewer/Images/trackHoriz.png +0 -0
  126. data/lib/ar/viewer/Images/trackVert.png +0 -0
  127. data/lib/ar/viewer/Images/treeDownTriangleBlack.png +0 -0
  128. data/lib/ar/viewer/Images/treeDownTriangleWhite.png +0 -0
  129. data/lib/ar/viewer/Images/treeRightTriangleBlack.png +0 -0
  130. data/lib/ar/viewer/Images/treeRightTriangleWhite.png +0 -0
  131. data/lib/ar/viewer/Images/treeUpTriangleBlack.png +0 -0
  132. data/lib/ar/viewer/Images/treeUpTriangleWhite.png +0 -0
  133. data/lib/ar/viewer/Images/userInputIcon.png +0 -0
  134. data/lib/ar/viewer/Images/userInputPreviousIcon.png +0 -0
  135. data/lib/ar/viewer/Images/userInputResultIcon.png +0 -0
  136. data/lib/ar/viewer/Images/warningIcon.png +0 -0
  137. data/lib/ar/viewer/Images/warningMediumIcon.png +0 -0
  138. data/lib/ar/viewer/Images/warningOrangeDot.png +0 -0
  139. data/lib/ar/viewer/Images/warningsErrors.png +0 -0
  140. data/lib/ar/viewer/chrome/Images/applicationCache.png +0 -0
  141. data/lib/ar/viewer/chrome/Images/back.png +0 -0
  142. data/lib/ar/viewer/chrome/Images/breakpointBorder.png +0 -0
  143. data/lib/ar/viewer/chrome/Images/breakpointConditionalBorder.png +0 -0
  144. data/lib/ar/viewer/chrome/Images/breakpointConditionalCounterBorder.png +0 -0
  145. data/lib/ar/viewer/chrome/Images/breakpointCounterBorder.png +0 -0
  146. data/lib/ar/viewer/chrome/Images/checker.png +0 -0
  147. data/lib/ar/viewer/chrome/Images/closeButtons.png +0 -0
  148. data/lib/ar/viewer/chrome/Images/cookie.png +0 -0
  149. data/lib/ar/viewer/chrome/Images/database.png +0 -0
  150. data/lib/ar/viewer/chrome/Images/databaseTable.png +0 -0
  151. data/lib/ar/viewer/chrome/Images/debuggerContinue.png +0 -0
  152. data/lib/ar/viewer/chrome/Images/debuggerPause.png +0 -0
  153. data/lib/ar/viewer/chrome/Images/debuggerStepInto.png +0 -0
  154. data/lib/ar/viewer/chrome/Images/debuggerStepOut.png +0 -0
  155. data/lib/ar/viewer/chrome/Images/debuggerStepOver.png +0 -0
  156. data/lib/ar/viewer/chrome/Images/deleteIcon.png +0 -0
  157. data/lib/ar/viewer/chrome/Images/disclosureTriangleSmallDown.png +0 -0
  158. data/lib/ar/viewer/chrome/Images/disclosureTriangleSmallDownBlack.png +0 -0
  159. data/lib/ar/viewer/chrome/Images/disclosureTriangleSmallDownWhite.png +0 -0
  160. data/lib/ar/viewer/chrome/Images/disclosureTriangleSmallRight.png +0 -0
  161. data/lib/ar/viewer/chrome/Images/disclosureTriangleSmallRightBlack.png +0 -0
  162. data/lib/ar/viewer/chrome/Images/disclosureTriangleSmallRightDown.png +0 -0
  163. data/lib/ar/viewer/chrome/Images/disclosureTriangleSmallRightDownBlack.png +0 -0
  164. data/lib/ar/viewer/chrome/Images/disclosureTriangleSmallRightDownWhite.png +0 -0
  165. data/lib/ar/viewer/chrome/Images/disclosureTriangleSmallRightWhite.png +0 -0
  166. data/lib/ar/viewer/chrome/Images/domain.png +0 -0
  167. data/lib/ar/viewer/chrome/Images/errorIcon.png +0 -0
  168. data/lib/ar/viewer/chrome/Images/errorMediumIcon.png +0 -0
  169. data/lib/ar/viewer/chrome/Images/errorRedDot.png +0 -0
  170. data/lib/ar/viewer/chrome/Images/fileSystem.png +0 -0
  171. data/lib/ar/viewer/chrome/Images/forward.png +0 -0
  172. data/lib/ar/viewer/chrome/Images/frame.png +0 -0
  173. data/lib/ar/viewer/chrome/Images/glossyHeader.png +0 -0
  174. data/lib/ar/viewer/chrome/Images/glossyHeaderPressed.png +0 -0
  175. data/lib/ar/viewer/chrome/Images/glossyHeaderSelected.png +0 -0
  176. data/lib/ar/viewer/chrome/Images/glossyHeaderSelectedPressed.png +0 -0
  177. data/lib/ar/viewer/chrome/Images/goArrow.png +0 -0
  178. data/lib/ar/viewer/chrome/Images/graphLabelCalloutLeft.png +0 -0
  179. data/lib/ar/viewer/chrome/Images/graphLabelCalloutRight.png +0 -0
  180. data/lib/ar/viewer/chrome/Images/indexedDB.png +0 -0
  181. data/lib/ar/viewer/chrome/Images/indexedDBIndex.png +0 -0
  182. data/lib/ar/viewer/chrome/Images/indexedDBObjectStore.png +0 -0
  183. data/lib/ar/viewer/chrome/Images/localStorage.png +0 -0
  184. data/lib/ar/viewer/chrome/Images/navigatorShowHideButton.png +0 -0
  185. data/lib/ar/viewer/chrome/Images/paneAddButtons.png +0 -0
  186. data/lib/ar/viewer/chrome/Images/paneBottomGrow.png +0 -0
  187. data/lib/ar/viewer/chrome/Images/paneBottomGrowActive.png +0 -0
  188. data/lib/ar/viewer/chrome/Images/paneElementStateButtons.png +0 -0
  189. data/lib/ar/viewer/chrome/Images/paneFilterButtons.png +0 -0
  190. data/lib/ar/viewer/chrome/Images/paneGrowHandleLine.png +0 -0
  191. data/lib/ar/viewer/chrome/Images/paneRefreshButtons.png +0 -0
  192. data/lib/ar/viewer/chrome/Images/paneSettingsButtons.png +0 -0
  193. data/lib/ar/viewer/chrome/Images/popoverArrows.png +0 -0
  194. data/lib/ar/viewer/chrome/Images/popoverBackground.png +0 -0
  195. data/lib/ar/viewer/chrome/Images/profileGroupIcon.png +0 -0
  196. data/lib/ar/viewer/chrome/Images/profileIcon.png +0 -0
  197. data/lib/ar/viewer/chrome/Images/profileSmallIcon.png +0 -0
  198. data/lib/ar/viewer/chrome/Images/profilesSilhouette.png +0 -0
  199. data/lib/ar/viewer/chrome/Images/programCounterBorder.png +0 -0
  200. data/lib/ar/viewer/chrome/Images/radioDot.png +0 -0
  201. data/lib/ar/viewer/chrome/Images/resourceCSSIcon.png +0 -0
  202. data/lib/ar/viewer/chrome/Images/resourceDocumentIcon.png +0 -0
  203. data/lib/ar/viewer/chrome/Images/resourceDocumentIconSmall.png +0 -0
  204. data/lib/ar/viewer/chrome/Images/resourceJSIcon.png +0 -0
  205. data/lib/ar/viewer/chrome/Images/resourcePlainIcon.png +0 -0
  206. data/lib/ar/viewer/chrome/Images/resourcePlainIconSmall.png +0 -0
  207. data/lib/ar/viewer/chrome/Images/resourcesSizeGraphIcon.png +0 -0
  208. data/lib/ar/viewer/chrome/Images/resourcesTimeGraphIcon.png +0 -0
  209. data/lib/ar/viewer/chrome/Images/scriptsSilhouette.png +0 -0
  210. data/lib/ar/viewer/chrome/Images/searchNext.png +0 -0
  211. data/lib/ar/viewer/chrome/Images/searchPrev.png +0 -0
  212. data/lib/ar/viewer/chrome/Images/searchSmallBlue.png +0 -0
  213. data/lib/ar/viewer/chrome/Images/searchSmallBrightBlue.png +0 -0
  214. data/lib/ar/viewer/chrome/Images/searchSmallGray.png +0 -0
  215. data/lib/ar/viewer/chrome/Images/searchSmallWhite.png +0 -0
  216. data/lib/ar/viewer/chrome/Images/segment.png +0 -0
  217. data/lib/ar/viewer/chrome/Images/segmentChromium.png +0 -0
  218. data/lib/ar/viewer/chrome/Images/segmentEnd.png +0 -0
  219. data/lib/ar/viewer/chrome/Images/segmentHover.png +0 -0
  220. data/lib/ar/viewer/chrome/Images/segmentHoverChromium.png +0 -0
  221. data/lib/ar/viewer/chrome/Images/segmentHoverEnd.png +0 -0
  222. data/lib/ar/viewer/chrome/Images/segmentHoverEndChromium.png +0 -0
  223. data/lib/ar/viewer/chrome/Images/segmentSelected.png +0 -0
  224. data/lib/ar/viewer/chrome/Images/segmentSelectedChromium.png +0 -0
  225. data/lib/ar/viewer/chrome/Images/segmentSelectedEnd.png +0 -0
  226. data/lib/ar/viewer/chrome/Images/segmentSelectedEndChromium.png +0 -0
  227. data/lib/ar/viewer/chrome/Images/sessionStorage.png +0 -0
  228. data/lib/ar/viewer/chrome/Images/spinner.gif +0 -0
  229. data/lib/ar/viewer/chrome/Images/spinnerActive.gif +0 -0
  230. data/lib/ar/viewer/chrome/Images/spinnerActiveSelected.gif +0 -0
  231. data/lib/ar/viewer/chrome/Images/spinnerInactive.gif +0 -0
  232. data/lib/ar/viewer/chrome/Images/spinnerInactiveSelected.gif +0 -0
  233. data/lib/ar/viewer/chrome/Images/splitviewDimple.png +0 -0
  234. data/lib/ar/viewer/chrome/Images/splitviewDividerBackground.png +0 -0
  235. data/lib/ar/viewer/chrome/Images/statusbarButtonGlyphs.png +0 -0
  236. data/lib/ar/viewer/chrome/Images/statusbarResizerHorizontal.png +0 -0
  237. data/lib/ar/viewer/chrome/Images/statusbarResizerVertical.png +0 -0
  238. data/lib/ar/viewer/chrome/Images/successGreenDot.png +0 -0
  239. data/lib/ar/viewer/chrome/Images/thumbActiveHoriz.png +0 -0
  240. data/lib/ar/viewer/chrome/Images/thumbActiveVert.png +0 -0
  241. data/lib/ar/viewer/chrome/Images/thumbHoriz.png +0 -0
  242. data/lib/ar/viewer/chrome/Images/thumbHoverHoriz.png +0 -0
  243. data/lib/ar/viewer/chrome/Images/thumbHoverVert.png +0 -0
  244. data/lib/ar/viewer/chrome/Images/thumbVert.png +0 -0
  245. data/lib/ar/viewer/chrome/Images/tickMark.png +0 -0
  246. data/lib/ar/viewer/chrome/Images/timelineHollowPillBlue.png +0 -0
  247. data/lib/ar/viewer/chrome/Images/timelineHollowPillGray.png +0 -0
  248. data/lib/ar/viewer/chrome/Images/timelineHollowPillGreen.png +0 -0
  249. data/lib/ar/viewer/chrome/Images/timelineHollowPillOrange.png +0 -0
  250. data/lib/ar/viewer/chrome/Images/timelineHollowPillPurple.png +0 -0
  251. data/lib/ar/viewer/chrome/Images/timelineHollowPillRed.png +0 -0
  252. data/lib/ar/viewer/chrome/Images/timelineHollowPillYellow.png +0 -0
  253. data/lib/ar/viewer/chrome/Images/timelinePillBlue.png +0 -0
  254. data/lib/ar/viewer/chrome/Images/timelinePillGray.png +0 -0
  255. data/lib/ar/viewer/chrome/Images/timelinePillGreen.png +0 -0
  256. data/lib/ar/viewer/chrome/Images/timelinePillOrange.png +0 -0
  257. data/lib/ar/viewer/chrome/Images/timelinePillPurple.png +0 -0
  258. data/lib/ar/viewer/chrome/Images/timelinePillRed.png +0 -0
  259. data/lib/ar/viewer/chrome/Images/timelinePillYellow.png +0 -0
  260. data/lib/ar/viewer/chrome/Images/toolbarIcons.png +0 -0
  261. data/lib/ar/viewer/chrome/Images/toolbarIconsSmall.png +0 -0
  262. data/lib/ar/viewer/chrome/Images/toolbarItemSelected.png +0 -0
  263. data/lib/ar/viewer/chrome/Images/trackHoriz.png +0 -0
  264. data/lib/ar/viewer/chrome/Images/trackVert.png +0 -0
  265. data/lib/ar/viewer/chrome/Images/treeDownTriangleBlack.png +0 -0
  266. data/lib/ar/viewer/chrome/Images/treeDownTriangleWhite.png +0 -0
  267. data/lib/ar/viewer/chrome/Images/treeRightTriangleBlack.png +0 -0
  268. data/lib/ar/viewer/chrome/Images/treeRightTriangleWhite.png +0 -0
  269. data/lib/ar/viewer/chrome/Images/treeUpTriangleBlack.png +0 -0
  270. data/lib/ar/viewer/chrome/Images/treeUpTriangleWhite.png +0 -0
  271. data/lib/ar/viewer/chrome/Images/userInputIcon.png +0 -0
  272. data/lib/ar/viewer/chrome/Images/userInputPreviousIcon.png +0 -0
  273. data/lib/ar/viewer/chrome/Images/userInputResultIcon.png +0 -0
  274. data/lib/ar/viewer/chrome/Images/warningIcon.png +0 -0
  275. data/lib/ar/viewer/chrome/Images/warningMediumIcon.png +0 -0
  276. data/lib/ar/viewer/chrome/Images/warningOrangeDot.png +0 -0
  277. data/lib/ar/viewer/chrome/Images/warningsErrors.png +0 -0
  278. data/lib/ar/viewer/chrome/dataGrid.css +218 -0
  279. data/lib/ar/viewer/chrome/devTools.css +97 -0
  280. data/lib/ar/viewer/chrome/dialog.css +55 -0
  281. data/lib/ar/viewer/chrome/elementsPanel.css +692 -0
  282. data/lib/ar/viewer/chrome/filteredItemSelectionDialog.css +41 -0
  283. data/lib/ar/viewer/chrome/heapProfiler.css +263 -0
  284. data/lib/ar/viewer/chrome/helpScreen.css +286 -0
  285. data/lib/ar/viewer/chrome/indexedDBViews.css +124 -0
  286. data/lib/ar/viewer/chrome/inspector.css +2878 -0
  287. data/lib/ar/viewer/chrome/inspectorCommon.css +177 -0
  288. data/lib/ar/viewer/chrome/inspectorSyntaxHighlight.css +111 -0
  289. data/lib/ar/viewer/chrome/nativeMemoryProfiler.css +86 -0
  290. data/lib/ar/viewer/chrome/navigatorView.css +142 -0
  291. data/lib/ar/viewer/chrome/networkLogView.css +559 -0
  292. data/lib/ar/viewer/chrome/networkPanel.css +340 -0
  293. data/lib/ar/viewer/chrome/panelEnablerView.css +168 -0
  294. data/lib/ar/viewer/chrome/popover.css +94 -0
  295. data/lib/ar/viewer/chrome/profilesPanel.css +201 -0
  296. data/lib/ar/viewer/chrome/resourceView.css +105 -0
  297. data/lib/ar/viewer/chrome/resourcesPanel.css +331 -0
  298. data/lib/ar/viewer/chrome/revisionHistory.css +90 -0
  299. data/lib/ar/viewer/chrome/scriptsPanel.css +286 -0
  300. data/lib/ar/viewer/chrome/splitView.css +91 -0
  301. data/lib/ar/viewer/chrome/tabbedPane.css +165 -0
  302. data/lib/ar/viewer/chrome/textEditor.css +181 -0
  303. data/lib/ar/viewer/chrome/textPrompt.css +69 -0
  304. data/lib/ar/viewer/chrome/timelinePanel.css +656 -0
  305. data/lib/ar/viewer/components/angular/angular.js +14760 -0
  306. data/lib/ar/viewer/components/angular/angular.min.js +162 -0
  307. data/lib/ar/viewer/components/angular/component.json +14 -0
  308. data/lib/ar/viewer/components/jquery/README.md +11 -0
  309. data/lib/ar/viewer/components/jquery/bower.json +14 -0
  310. data/lib/ar/viewer/components/jquery/component.json +22 -0
  311. data/lib/ar/viewer/components/jquery/composer.json +35 -0
  312. data/lib/ar/viewer/components/jquery/jquery-migrate.js +511 -0
  313. data/lib/ar/viewer/components/jquery/jquery-migrate.min.js +3 -0
  314. data/lib/ar/viewer/components/jquery/jquery.js +8755 -0
  315. data/lib/ar/viewer/components/jquery/jquery.min.js +6 -0
  316. data/lib/ar/viewer/components/jquery/package.json +7 -0
  317. data/lib/ar/viewer/css/style.css +186 -0
  318. data/lib/ar/viewer/index.html +422 -0
  319. data/lib/ar/viewer/js/controllers.js +124 -0
  320. data/lib/ar/viewer/js/libs/HAREntry.js +154 -0
  321. data/lib/ar/viewer/js/libs/devTools.js +371 -0
  322. data/lib/ar/viewer/js/libs/modernizr.custom.min.js +4 -0
  323. data/lib/ar/viewer/js/script.js +36 -0
  324. data/lib/ar/viewer/sample.har +6723 -0
  325. data/lib/ar/viewer/sass/style.scss +149 -0
  326. data/lib/{autoresponse.rb → auto_response.rb} +30 -31
  327. data/readme.md +4 -0
  328. data/rules.sample +9 -0
  329. data/test/helper.rb +1 -1
  330. metadata +365 -9
  331. data/bin/start_ar.rb +0 -5
  332. data/bin/start_ar.rb.pid +0 -1
  333. data/lib/ar/proxyserver.rb +0 -106
  334. data/lib/ar/viewer/tmpl/index.haml +0 -55
@@ -0,0 +1,340 @@
1
+ /*
2
+ * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
3
+ * Copyright (C) 2009 Anthony Ricaud <rik@webkit.org>
4
+ *
5
+ * Redistribution and use in source and binary forms, with or without
6
+ * modification, are permitted provided that the following conditions
7
+ * are met:
8
+ *
9
+ * 1. Redistributions of source code must retain the above copyright
10
+ * notice, this list of conditions and the following disclaimer.
11
+ * 2. Redistributions in binary form must reproduce the above copyright
12
+ * notice, this list of conditions and the following disclaimer in the
13
+ * documentation and/or other materials provided with the distribution.
14
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
15
+ * its contributors may be used to endorse or promote products derived
16
+ * from this software without specific prior written permission.
17
+ *
18
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
19
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
22
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
+ */
29
+
30
+ .network-larger-resources-status-bar-item .glyph {
31
+ -webkit-mask-position: -224px 0;
32
+ }
33
+
34
+ #network-views {
35
+ background: rgb(203, 203, 203);
36
+ }
37
+
38
+ #network-close-button {
39
+ position: absolute;
40
+ width: 14px;
41
+ height: 14px;
42
+ background-image: url(Images/closeButtons.png);
43
+ background-position: 0 0;
44
+ background-color: transparent;
45
+ border: 0 none transparent;
46
+ top: 8px;
47
+ left: 5px;
48
+ z-index: 10;
49
+ display: none;
50
+ }
51
+
52
+ #network-views.small #network-close-button {
53
+ top: 4px;
54
+ }
55
+
56
+ #network-close-button:hover {
57
+ background-position: 14px 0;
58
+ }
59
+
60
+ #network-close-button:active {
61
+ background-position: 28px 0;
62
+ }
63
+
64
+ .network.panel.viewing-resource #network-close-button {
65
+ display: block;
66
+ }
67
+
68
+ .network.panel .sidebar {
69
+ position: absolute;
70
+ top: 0;
71
+ bottom: 0;
72
+ left: 0;
73
+ right: 0;
74
+ width: auto;
75
+ border: none;
76
+ background: inherit;
77
+ }
78
+
79
+ .network.panel:not(.viewing-resource) .sidebar-resizer-vertical {
80
+ display: none;
81
+ }
82
+
83
+ .network.panel .scope-bar {
84
+ height: 23px;
85
+ padding-top: 5px;
86
+ }
87
+
88
+ .network.panel .data-grid th.sort-descending, .network.panel .data-grid th.sort-ascending {
89
+ background: -webkit-gradient(linear, left top, left bottom, from(rgb(236, 236, 236)), to(rgb(217, 217, 217)));
90
+ }
91
+
92
+ #network-views .network-item-view .tabbed-pane-header {
93
+ height: 31px;
94
+ padding-top: 8px;
95
+ padding-left: 25px;
96
+ white-space: nowrap;
97
+ }
98
+
99
+ #network-views.small .network-item-view .tabbed-pane-header {
100
+ height: 23px;
101
+ padding-top: 0;
102
+ }
103
+
104
+ .network-item-view {
105
+ display: none;
106
+ position: absolute;
107
+ background: white;
108
+ top: 0;
109
+ left: 0;
110
+ right: 0;
111
+ bottom: 0;
112
+ }
113
+
114
+ .network-item-view.visible {
115
+ display: -webkit-box;
116
+ }
117
+
118
+ .network-item-view .tabbed-pane-header {
119
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgb(236, 236, 236)), to(rgb(217, 217, 217)));
120
+ border-bottom: 1px solid rgb(163, 163, 163);
121
+ }
122
+
123
+ .network-item-view .scope-bar li {
124
+ border-bottom-left-radius: 0;
125
+ border-bottom-right-radius: 0;
126
+ }
127
+
128
+ .resource-headers-view {
129
+ display: none;
130
+ margin: 6px;
131
+ -webkit-user-select: text;
132
+ position: absolute;
133
+ top: 0;
134
+ left: 0;
135
+ right: 0;
136
+ bottom: 0;
137
+ overflow: auto;
138
+ }
139
+
140
+ .resource-headers-view.visible {
141
+ display: block;
142
+ }
143
+
144
+ .resource-headers-view .outline-disclosure .parent {
145
+ -webkit-user-select: none;
146
+ font-weight: bold;
147
+ }
148
+
149
+ .resource-headers-view .outline-disclosure .children li {
150
+ white-space: nowrap;
151
+ }
152
+
153
+ .resource-headers-view .outline-disclosure li.expanded .header-count {
154
+ display: none;
155
+ }
156
+
157
+ .resource-headers-view .outline-disclosure li .header-toggle {
158
+ display: none;
159
+ }
160
+
161
+ .resource-headers-view .outline-disclosure li .status-from-cache {
162
+ color: gray;
163
+ }
164
+
165
+ .resource-headers-view .outline-disclosure li.expanded .header-toggle {
166
+ display: inline;
167
+ margin-left: 30px;
168
+ font-weight: normal;
169
+ color: rgb(45%, 45%, 45%);
170
+ }
171
+
172
+ .resource-headers-view .outline-disclosure li .header-toggle:hover {
173
+ color: rgb(20%, 20%, 45%);
174
+ cursor: pointer;
175
+ }
176
+
177
+ .resource-headers-view .outline-disclosure .header-name {
178
+ color: rgb(33%, 33%, 33%);
179
+ display: inline-block;
180
+ margin-right: 0.5em;
181
+ font-weight: bold;
182
+ vertical-align: top;
183
+ white-space: pre-wrap;
184
+ }
185
+
186
+ .resource-headers-view .outline-disclosure .header-value {
187
+ display: inline;
188
+ margin-right: 100px;
189
+ white-space: pre-wrap;
190
+ word-break: break-all;
191
+ margin-top: 1px;
192
+ }
193
+
194
+ .resource-headers-view .outline-disclosure .raw-form-data {
195
+ white-space: pre-wrap;
196
+ }
197
+
198
+ .resource-cookies-view {
199
+ display: none;
200
+ position: absolute;
201
+ top: 0;
202
+ right: 0;
203
+ left: 0;
204
+ bottom: 0;
205
+ overflow: auto;
206
+ margin: 12px;
207
+ height: 100%;
208
+ }
209
+
210
+ .resource-cookies-view.visible {
211
+ display: block;
212
+ }
213
+
214
+ .resource-cookies-view .data-grid {
215
+ height: 100%;
216
+ }
217
+
218
+ .resource-cookies-view .data-grid .row-group {
219
+ font-weight: bold;
220
+ font-size: 11px;
221
+ }
222
+
223
+ .resource-timing-view {
224
+ display: none;
225
+ position: absolute;
226
+ top: 0;
227
+ right: 0;
228
+ left: 0;
229
+ bottom: 0;
230
+ margin: 6px;
231
+ font-weight: bold;
232
+ font-size: 11px;
233
+ color: rgb(30%, 30%, 30%);
234
+ }
235
+
236
+ .resource-timing-view table {
237
+ border-spacing: 21px 0;
238
+ }
239
+
240
+ .resource-timing-view .network-timing-bar {
241
+ opacity: 1;
242
+ }
243
+
244
+ .resource-timing-view .network-timing-bar.proxy {
245
+ background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(239, 228, 176)), to(rgb(139, 128, 76)));
246
+ border-left: 1px solid rgb(139, 128, 76);
247
+ }
248
+
249
+ .resource-timing-view .network-timing-bar.dns {
250
+ background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(153, 208, 216)), to(rgb(81, 174, 189)));
251
+ border-left: 1px solid rgb(81, 174, 189);
252
+ }
253
+
254
+ .resource-timing-view .network-timing-bar.connecting {
255
+ background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(203, 232, 145)), to(rgb(160, 214, 56)));
256
+ border-left: 1px solid rgb(160, 214, 56);
257
+ }
258
+
259
+ .resource-timing-view .network-timing-bar.ssl {
260
+ background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(21, 232, 145)), to(rgb(216, 149, 132)));
261
+ border-left: 1px solid rgb(216, 149, 132);
262
+ }
263
+
264
+ .resource-timing-view .network-timing-bar.sending {
265
+ background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(232, 192, 182)), to(rgb(216, 147, 130)));
266
+ border-left: 1px solid rgb(216, 147, 130);
267
+ }
268
+
269
+ .resource-timing-view .network-timing-bar.waiting {
270
+ background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(188, 179, 208)), to(rgb(141, 125, 175)));
271
+ border-left: 1px solid rgb(141, 125, 175);
272
+ }
273
+
274
+ .resource-timing-view .network-timing-bar.receiving {
275
+ background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(214, 214, 214)), to(rgb(182, 182, 182)));
276
+ border-left: 1px solid rgb(182, 182, 182);
277
+ }
278
+
279
+ .resource-timing-view.visible {
280
+ display: block;
281
+ }
282
+
283
+ .resource-websocket {
284
+ -webkit-user-select: text;
285
+ }
286
+
287
+ .resource-websocket, .resource-websocket .data-grid {
288
+ position: absolute;
289
+ top: 0;
290
+ left: 0;
291
+ right: 0;
292
+ bottom: 0;
293
+ border: none;
294
+ }
295
+
296
+ .resource-websocket .data-grid .data {
297
+ background-image: none;
298
+ font-size: 11px;
299
+ }
300
+
301
+ .resource-websocket td {
302
+ padding-top: 3px;
303
+ padding-bottom: 3px;
304
+ border-top: 1px solid rgb(240, 240, 240);
305
+ }
306
+
307
+ .resource-websocket .data-column div {
308
+ word-break: break-all;
309
+ white-space: pre-wrap;
310
+ }
311
+
312
+ .resource-websocket-row-outcoming {
313
+ background-color: rgb(226, 247, 218);
314
+ }
315
+
316
+ .resource-websocket-row-outcoming:not(.selected) td {
317
+ border-right-color: rgb(177, 209, 165);
318
+ }
319
+
320
+ .resource-websocket-row-outcoming:not(.selected) td, .resource-websocket-row-outcoming:not(.selected) + tr td {
321
+ border-top-color: rgb(199, 236, 185);
322
+ }
323
+
324
+ .resource-websocket-row-opcode {
325
+ background-color: rgb(255, 255, 232);
326
+ color: rgb(170, 111, 71);
327
+ }
328
+
329
+ .resource-websocket-row-opcode td {
330
+ border-color: rgb(211, 187, 171);
331
+ }
332
+
333
+ .resource-websocket-row-opcode td, .resource-websocket-row-opcode + tr td {
334
+ border-top-color: rgb(248, 240, 210);
335
+ }
336
+
337
+ .resource-websocket-row-error {
338
+ background-color: rgb(255, 237, 237);
339
+ color: rgb(182, 0, 0);
340
+ }
@@ -0,0 +1,168 @@
1
+ /*
2
+ * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
3
+ * Copyright (C) 2009 Anthony Ricaud <rik@webkit.org>
4
+ *
5
+ * Redistribution and use in source and binary forms, with or without
6
+ * modification, are permitted provided that the following conditions
7
+ * are met:
8
+ *
9
+ * 1. Redistributions of source code must retain the above copyright
10
+ * notice, this list of conditions and the following disclaimer.
11
+ * 2. Redistributions in binary form must reproduce the above copyright
12
+ * notice, this list of conditions and the following disclaimer in the
13
+ * documentation and/or other materials provided with the distribution.
14
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
15
+ * its contributors may be used to endorse or promote products derived
16
+ * from this software without specific prior written permission.
17
+ *
18
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
19
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
22
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
+ */
29
+
30
+ .panel-enabler-view {
31
+ z-index: 1000;
32
+ position: absolute;
33
+ top: 0;
34
+ left: 0;
35
+ right: 0;
36
+ bottom: 0;
37
+ background-color: white;
38
+ font-size: 13px;
39
+ text-align: center;
40
+ overflow-x: hidden;
41
+ overflow-y: overlay;
42
+ display: none;
43
+ }
44
+
45
+ .panel-enabler-view.visible {
46
+ display: block;
47
+ }
48
+
49
+ .panel-enabler-view .panel-enabler-view-content {
50
+ position: absolute;
51
+ top: 0;
52
+ left: 0;
53
+ right: 0;
54
+ bottom: 0;
55
+ max-height: 390px;
56
+ margin: auto;
57
+ white-space: nowrap;
58
+ }
59
+
60
+ .panel-enabler-view h1 {
61
+ color: rgb(110, 116, 128);
62
+ font-size: 16px;
63
+ line-height: 20px;
64
+ font-weight: normal;
65
+ margin-top: 0;
66
+ }
67
+
68
+ .panel-enabler-disclaimer {
69
+ font-size: 10px;
70
+ color: rgb(110, 116, 128);
71
+ margin-bottom: 12px;
72
+ margin-left: 20px;
73
+ }
74
+
75
+ .panel-enabler-disclaimer:empty {
76
+ display: none;
77
+ }
78
+
79
+ .panel-enabler-view img {
80
+ height: 100%;
81
+ min-height: 200px;
82
+ max-width: 100%;
83
+ top: 0;
84
+ bottom: 0;
85
+ padding: 20px 0 20px 20px;
86
+ margin: auto;
87
+ vertical-align: middle;
88
+ }
89
+
90
+ .panel-enabler-view img.hidden {
91
+ display: initial !important;
92
+ width: 0;
93
+ }
94
+
95
+ .panel-enabler-view .flexible-space {
96
+ -webkit-box-flex: 1;
97
+ }
98
+
99
+ .panel-enabler-view form {
100
+ display: inline-block;
101
+ vertical-align: middle;
102
+ width: 330px;
103
+ margin: 0;
104
+ padding: 15px;
105
+ white-space: normal;
106
+ }
107
+
108
+ .panel-enabler-view label {
109
+ position: relative;
110
+ display: block;
111
+ text-align: left;
112
+ word-break: break-word;
113
+ margin: 0 0 5px 20px;
114
+ }
115
+
116
+ .panel-enabler-view button:not(.status-bar-item) {
117
+ font-size: 13px;
118
+ margin: 6px 0 0 0;
119
+ padding: 3px 20px;
120
+ height: 24px;
121
+ color: rgb(6, 6, 6);
122
+ background-color: transparent;
123
+ border: 1px solid rgb(165, 165, 165);
124
+ background-color: rgb(237, 237, 237);
125
+ background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(252, 252, 252)), to(rgb(223, 223, 223)));
126
+ -webkit-border-radius: 12px;
127
+ -webkit-appearance: none;
128
+ }
129
+
130
+ body.inactive .panel-enabler-view button, .panel-enabler-view button:disabled {
131
+ color: rgb(130, 130, 130);
132
+ border-color: rgb(212, 212, 212);
133
+ background-color: rgb(239, 239, 239);
134
+ background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(250, 250, 250)), to(rgb(235, 235, 235)));
135
+ }
136
+
137
+ .panel-enabler-view input[type="radio"] {
138
+ height: 17px;
139
+ width: 17px;
140
+ border: 1px solid rgb(165, 165, 165);
141
+ background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(252, 252, 252)), to(rgb(223, 223, 223)));
142
+ -webkit-border-radius: 8px;
143
+ -webkit-appearance: none;
144
+ vertical-align: middle;
145
+ margin: 0 5px 5px 0;
146
+ }
147
+
148
+ .panel-enabler-view input[type="radio"]:active:not(:disabled) {
149
+ background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(194, 194, 194)), to(rgb(239, 239, 239)));
150
+ }
151
+
152
+ .panel-enabler-view input[type="radio"]:checked {
153
+ background: url(Images/radioDot.png) center no-repeat,
154
+ -webkit-gradient(linear, left top, left bottom, from(rgb(252, 252, 252)), to(rgb(223, 223, 223)));
155
+ }
156
+
157
+ .panel-enabler-view input[type="radio"]:checked:active {
158
+ background: url(Images/radioDot.png) center no-repeat,
159
+ -webkit-gradient(linear, left top, left bottom, from(rgb(194, 194, 194)), to(rgb(239, 239, 239)));
160
+ }
161
+
162
+ .panel-enabler-view.scripts img {
163
+ content: url(Images/scriptsSilhouette.png);
164
+ }
165
+
166
+ .panel-enabler-view.profiles img {
167
+ content: url(Images/profilesSilhouette.png);
168
+ }
@@ -0,0 +1,94 @@
1
+ .popover {
2
+ position: absolute;
3
+ -webkit-border-image: url(Images/popoverBackground.png) 25 25 25 25;
4
+ border-width: 25px;
5
+ z-index: 100;
6
+ pointer-events: none;
7
+ }
8
+
9
+ .popover .content {
10
+ position: absolute;
11
+ top: 0;
12
+ bottom: 0;
13
+ left: 0;
14
+ right: 0;
15
+ pointer-events: auto;
16
+ overflow: auto;
17
+ -webkit-user-select: text;
18
+ }
19
+
20
+ .popover .content.fixed-height {
21
+ overflow: hidden;
22
+ }
23
+
24
+ .popover .arrow {
25
+ position: absolute;
26
+ background-image: url(Images/popoverArrows.png);
27
+ width: 19px;
28
+ height: 19px;
29
+ margin-left: 15px;
30
+ margin-top: -25px;
31
+ top: 0;
32
+ left: 0;
33
+ }
34
+
35
+ .popover.top-left-arrow .arrow {
36
+ /* The default is top-left, no styles needed. */
37
+ }
38
+
39
+ .popover.top-right-arrow .arrow {
40
+ right: 25px;
41
+ left: auto;
42
+ }
43
+
44
+ .popover.bottom-left-arrow .arrow {
45
+ top: auto;
46
+ bottom: 0;
47
+ margin-top: 0;
48
+ margin-bottom: -25px;
49
+ background-position: 0 -19px;
50
+ }
51
+
52
+ .popover.bottom-right-arrow .arrow {
53
+ right: 15px;
54
+ left: auto;
55
+ top: auto;
56
+ bottom: 0;
57
+ margin-top: 0;
58
+ margin-bottom: -25px;
59
+ background-position: 0 -19px;
60
+ }
61
+
62
+ .popover.left-top-arrow .arrow {
63
+ top: 0;
64
+ margin-top: 15px;
65
+ margin-left: -25px;
66
+ background-position: 0 -38px;
67
+ }
68
+
69
+ .popover.left-bottom-arrow .arrow {
70
+ top: auto;
71
+ bottom: 0;
72
+ margin-bottom: 15px;
73
+ margin-left: -25px;
74
+ background-position: 0 -38px;
75
+ }
76
+
77
+ .popover.right-top-arrow .arrow {
78
+ right: 0;
79
+ left: auto;
80
+ top: 0;
81
+ margin-top: 15px;
82
+ margin-right: -25px;
83
+ background-position: 0 -57px;
84
+ }
85
+
86
+ .popover.right-bottom-arrow .arrow {
87
+ right: 0;
88
+ left: auto;
89
+ top: auto;
90
+ bottom: 0;
91
+ margin-bottom: 15px;
92
+ margin-right: -25px;
93
+ background-position: 0 -57px;
94
+ }